.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:15px}.modal-content{background:var(--white);border-radius:var(--radius-md);width:100%;max-width:500px;border:1px solid var(--border);display:flex;flex-direction:column}.modal-header{padding:10px 15px;border-bottom:1px solid var(--border)}.modal-body{padding:15px;overflow-y:auto;max-height:70vh}.modal-footer{padding:10px 15px;border-top:1px solid var(--border);background-color:var(--bg-main)}.close-btn{background:transparent;border:none;font-size:1.5rem;color:#999;cursor:pointer;line-height:1}.close-btn:hover{color:#333}.navbar-header{background:#fff;border-bottom:1px solid #cccccc}.navbar-container{max-width:1000px;margin:0 auto;padding:10px 15px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.navbar-logo{display:flex;align-items:center;gap:5px;font-weight:700;font-size:1.25rem;color:#333}.logo-emoji{font-size:1.25rem}.logo-text{color:var(--primary)}.navbar-links{display:flex;align-items:center;gap:15px}.nav-link{font-size:.9rem;font-weight:400;color:#555;padding:5px;border-bottom:2px solid transparent}.nav-link:hover{color:var(--primary)}.nav-link.active{color:var(--primary);font-weight:700;border-bottom-color:var(--primary)}.nav-link-btn{background:none;border:none;font-family:inherit;cursor:pointer}.navbar-user-actions{display:flex;align-items:center;gap:5px;background:#eee;padding:5px 10px;border-radius:4px;border:1px solid #cccccc}.persona-label{font-size:.75rem;font-weight:700;color:#555}.persona-dropdown{background:transparent;border:none;font-family:inherit;font-size:.8rem;font-weight:700;color:#333;cursor:pointer;outline:none}.user-indicator{font-size:.8rem;color:#555;border-left:1px solid #cccccc;padding-left:5px;margin-left:5px}@media(max-width:768px){.navbar-container{flex-direction:column;align-items:center;text-align:center}.navbar-links{width:100%;justify-content:center;flex-wrap:wrap;gap:10px}}.footer{background-color:#eee;color:#555;padding:15px;border-top:1px solid #cccccc;font-size:.85rem;text-align:center}.footer-container{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:5px}.footer-meta{color:#666}.footer-link{color:var(--primary);text-decoration:underline}.footer-link:hover{text-decoration:none}.hero-section{background:linear-gradient(135deg,var(--primary) 0%,#1c74d1 100%);color:#fff;padding:45px 20px;border-radius:20px;text-align:center;margin-bottom:24px;border:none;box-shadow:0 12px 30px #0056b347,inset 0 1px #ffffff59}.hero-title{font-size:2.3rem;color:#fff;margin-bottom:10px;text-shadow:0 1px 2px rgba(0,0,0,.12)}.hero-subtitle{font-size:1.1rem;color:#ffffffe6;max-width:600px;margin:0 auto 20px}.section{margin-bottom:20px}.section-title{font-size:1.5rem;margin-bottom:10px;color:#333}.btn-lg-padding{padding:10px 26px;font-size:.95rem;border-radius:999px;box-shadow:0 4px 10px #00000026;transition:transform .2s ease,box-shadow .2s ease}.btn-lg-padding:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003}.btn-hero-outline{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.7)}.btn-hero-outline:hover{background:#ffffff38}.sport-card{flex-direction:column;text-align:center;padding:24px 18px;background:linear-gradient(180deg,#fff,#f7f9fc);border:none;border-radius:16px;box-shadow:0 6px 16px #0f172a14,0 1px 3px #0f172a0f,inset 0 1px #fffc;transition:transform .25s ease,box-shadow .25s ease}.sport-card:hover{transform:translateY(-5px);box-shadow:0 14px 28px #0f172a24,0 3px 6px #0f172a14,inset 0 1px #fffc}.sport-icon{font-size:2.5rem;margin-bottom:10px;display:inline-block;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12))}.sport-card h3{margin-bottom:5px;font-size:1.15rem}.sport-card p{color:#666;font-size:.9rem;margin-bottom:10px}.sport-link{font-size:.85rem;font-weight:700;color:var(--primary);text-decoration:underline}.sport-link:hover{text-decoration:none}.court-featured-card{border-left:4px solid var(--primary);border-radius:16px;background:linear-gradient(180deg,#fff,#f7f9fc);box-shadow:0 6px 16px #0f172a14,0 1px 3px #0f172a0f;transition:transform .25s ease,box-shadow .25s ease}.court-featured-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0f172a21,0 2px 5px #0f172a12}.court-name{font-size:1.1rem;color:#333}.court-address{font-size:.85rem;color:#666;margin-bottom:5px}.court-review{font-style:italic;font-size:.85rem;color:#555;background:#f8f9fa;padding:8px 12px;border-radius:10px;border-left:2px solid #cccccc}.onboarding-card{flex-direction:column;text-align:center;padding:24px 18px;background:linear-gradient(180deg,#fff,#f7f9fc);border:none;border-radius:16px;box-shadow:0 6px 16px #0f172a14,0 1px 3px #0f172a0f,inset 0 1px #fffc;transition:transform .25s ease,box-shadow .25s ease}.onboarding-card:hover{transform:translateY(-5px);box-shadow:0 14px 28px #0f172a24,0 3px 6px #0f172a14,inset 0 1px #fffc}.onboarding-icon{font-size:2.2rem;margin-bottom:10px;display:inline-block;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12))}.onboarding-card h3{margin-bottom:5px;font-size:1.05rem;font-weight:700}.onboarding-card p{color:#666;font-size:.85rem;line-height:1.4}.page-subtitle{color:#666;font-size:.9rem}.flex-1{flex:1}.filters-card{padding:10px 15px;background:#fff;border:1px solid #cccccc}.games-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}@media(max-width:768px){.games-grid{grid-template-columns:1fr}}.game-sport-icon{font-size:1.25rem}.player-count{font-size:.8rem;color:#666}.detail-row{font-size:.85rem;margin-bottom:5px;color:#333}.game-card--past{opacity:.55}.past-game-badge{display:inline-block;background-color:#f1f2f4;color:var(--secondary);border:1px solid #d1d5db;margin-bottom:.5rem}.toast-notification{position:fixed;bottom:20px;right:20px;background-color:var(--success);color:var(--white);padding:12px 24px;border-radius:var(--radius-sm);box-shadow:0 4px 12px #00000026;z-index:1000;font-weight:700;font-size:.95rem;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.page-title{font-size:1.5rem;color:#333}.stats-row{margin-bottom:20px}.stat-card{padding:10px;text-align:center;border:1px solid #cccccc;background:#fff}.stat-label{font-size:.75rem;font-weight:700;color:#666;text-transform:uppercase;margin-bottom:5px}.stat-value{font-size:1.75rem;font-weight:700;color:#333;line-height:1}.grid-cols-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media(max-width:768px){.grid-cols-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.grid-cols-4{grid-template-columns:1fr}}.match-log-row{padding:10px 15px;border-bottom:1px solid #cccccc}.match-log-row:last-child{border-bottom:none}.match-sport-icon{font-size:1.5rem}.match-sport-title{font-size:.95rem;font-weight:700;color:#333}.match-date,.score-box{font-size:.8rem;color:#666}.score-value{font-size:.95rem;color:#333;margin-left:5px}.court-directory-card{min-height:200px}.court-title-text{font-size:1.15rem;color:#333;margin-right:5px;flex:1}.rating-number{font-size:.85rem;font-weight:700;color:#555}.court-location-text{font-size:.85rem;color:#666;margin-bottom:10px}.court-review-box{background:#f8f9fa;border-left:2px solid var(--primary);padding:8px 12px;border-radius:4px}.review-quote{font-size:.85rem;font-style:italic;color:#333;line-height:1.4}.court-meta-author{font-size:.75rem;color:#888;font-weight:400}.star{color:#ffc107}.star-empty{color:#ccc}.hover-danger:hover{background:#ffebee;border-color:#ffcdd2;color:var(--danger)}.rating-stars{color:#ffc107;font-size:.95rem}.search-card{gap:15px;flex-wrap:wrap;margin-bottom:20px;padding:10px 15px}.court-card-top{display:flex;flex-direction:column;gap:5px}.court-card-bottom{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #cccccc;margin-top:20px;padding-top:10px}.details-btn{opacity:.6;cursor:not-allowed}.court-stars-row{display:flex;justify-content:flex-start;gap:5px;margin:5px 0}.checklist-card{min-height:200px}.checklist-title{font-size:1.1rem;color:#333;flex:1}.delete-list-btn{background:transparent;border:none;font-size:1.25rem;color:#ccc;cursor:pointer;line-height:1}.delete-list-btn:hover{color:var(--danger)}.remove-item-btn{background:transparent;border:none;font-size:1.1rem;color:#ccc;cursor:pointer;line-height:1;padding:0 5px}.remove-item-btn:hover{color:var(--danger)}.checklist-item{display:flex;align-items:center;padding:6px 4px;border-bottom:1px dashed #cccccc;gap:10px}.checklist-item:last-child{border-bottom:none}.checklist-checkbox{width:1rem;height:1rem;cursor:pointer}.checklist-text{flex:1;font-size:.9rem}.checklist-text.checked{text-decoration:line-through;color:#888}.header-row{margin-bottom:20px}.loading-text{min-height:200px;color:#666}.card-header{margin-bottom:10px;align-items:center}.edit-title-form{gap:8px;flex:1}.edit-title-input{padding:4px 8px;font-size:1.1rem}.progress-bar-container{margin-bottom:15px}.progress-text{margin-bottom:4px;font-size:.85rem;color:#666;font-weight:700;gap:8px}.progress-track{height:6px;background:#eee;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background-color:var(--primary)}.items-list{margin-bottom:15px}.checklist-label{gap:10px;cursor:pointer;flex:1;justify-content:flex-start}.empty-checklist-text{font-style:italic;font-size:.85rem;color:#666;padding:15px 0;text-align:center}.add-item-form{gap:8px;margin-bottom:10px;border-top:1px dashed #cccccc;padding-top:10px}.add-item-input{font-size:.9rem;padding:8px 12px;flex:1}.add-item-save-btn{padding:8px 14px;font-size:.9rem}.card-actions{gap:8px;border-top:1px solid #cccccc;padding-top:10px;margin-top:auto}.card-actions button{flex:1}.empty-state-card{padding:40px;color:#666}.empty-state-title{font-size:1.15rem;font-weight:700;margin-bottom:5px}:root{--primary: #0056b3;--primary-hover: #003d80;--secondary: #4b5563;--secondary-hover: #374151;--accent: #196f3d;--accent-hover: #114f2b;--success: #196f3d;--success-hover: #114f2b;--danger: #b01a27;--danger-hover: #8a141e;--dark: #333333;--gray-dark: #495057;--gray-light: #4b5563;--border: #cccccc;--bg-main: #f8f9fa;--white: #ffffff;--glass-bg: #ffffff;--glass-border: #cccccc;--font-main: "Inter", Arial, Helvetica, sans-serif;--radius-sm: 4px;--radius-md: 4px;--radius-lg: 4px;--transition: none}*{margin:0;padding:0;box-sizing:border-box}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--primary);outline-offset:2px}body{font-family:var(--font-main);background-color:var(--bg-main);color:var(--dark);line-height:1.5}.app-container{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding:20px;max-width:1000px;width:100%;margin:0 auto}.container{width:100%}h1,h2,h3,h4,h5{font-weight:700;color:var(--dark);margin-bottom:10px}a{text-decoration:none;color:var(--primary)}a:hover{text-decoration:underline}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.flex-column{flex-direction:column}.grid-cols-2{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.grid-cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.grid-cols-4{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}@media(max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:15px;margin-bottom:15px}.card-hover:hover{border-color:var(--primary)}.glass-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md)}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-main);font-weight:700;font-size:.9rem;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;gap:5px;background-color:var(--secondary);color:var(--white)}.btn-primary{background-color:var(--primary);color:var(--white)}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary);color:var(--white)}.btn-secondary:hover{background-color:var(--secondary-hover)}.btn-accent{background-color:var(--accent);color:var(--white)}.btn-accent:hover{background-color:var(--accent-hover)}.btn-success{background-color:var(--success);color:var(--white)}.btn-success:hover{background-color:var(--success-hover)}.btn-danger{background-color:var(--danger);color:var(--white)}.btn-danger:hover{background-color:var(--danger-hover)}.btn-outline{background-color:transparent;border:1px solid var(--border);color:var(--dark)}.btn-outline:hover{background-color:#eee}.form-group{margin-bottom:15px}.form-label{display:block;font-weight:700;font-size:.85rem;margin-bottom:5px;color:var(--dark)}.form-control{width:100%;font-family:var(--font-main);font-size:.9rem;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background-color:var(--white)}.form-control:focus{outline:1px solid var(--primary)}textarea.form-control{resize:vertical;min-height:80px}.badge{display:inline-flex;align-items:center;font-size:.75rem;font-weight:700;padding:3px 8px;border-radius:4px;gap:3px}.badge-sport{background-color:#e3f2fd;color:var(--primary);border:1px solid #bbdefb}.badge-level{background-color:#f3e5f5;color:#8e24aa;border:1px solid #e1bee7}.badge-outcome-win{background-color:#e8f5e9;color:var(--accent);border:1px solid #c8e6c9}.badge-outcome-loss{background-color:#ffebee;color:var(--danger);border:1px solid #ffcdd2}.badge-outcome-tie{background-color:#f1f2f4;color:var(--secondary);border:1px solid #d1d5db}
