@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--border-color:#e2e8f0;--border-active:#bfdbfe;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--color-primary:#1e40af;--color-primary-light:#3b82f6;--color-primary-hover:#1d4ed8;--color-accent:#2563eb;--color-accent-light:#eff6ff;--color-live:#ef4444;--color-live-light:#fee2e2;--color-finished:#10b981;--color-finished-light:#d1fae5;--color-gold:#f5c518;--color-gold-light:#fef9c3;--color-green-qualified:#22c55e;--shadow-sm:0 1px 3px 0 #0f172a0d;--shadow-md:0 4px 6px -1px #0f172a0f, 0 2px 4px -2px #0f172a0f;--shadow-lg:0 10px 15px -3px #0f172a14, 0 4px 6px -4px #0f172a14;--shadow-glow:0 0 15px #2563eb26;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--transition:all .25s cubic-bezier(.4, 0, .2, 1);--font-display:"Outfit", "Inter", -apple-system, sans-serif;--font-body:"Inter", -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-primary);font-weight:700}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.app-container{min-h-screen:100vh;flex-direction:column;display:flex}.main-content{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:24px 16px}.navbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-b:1px solid var(--border-color);z-index:100;box-shadow:var(--shadow-sm);background-color:#ffffffe6;position:sticky;top:0}.navbar-container{justify-content:space-between;align-items:center;max-width:1280px;height:70px;margin:0 auto;padding:0 16px;display:flex}.brand{align-items:center;display:flex}.logo-img{object-fit:contain;width:auto;height:44px;max-height:52px;display:block}.nav-links{gap:8px;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);transition:var(--transition);align-items:center;gap:8px;padding:10px 16px;font-size:.95rem;font-weight:600;display:flex}.nav-item:hover{background-color:var(--bg-tertiary);color:var(--color-primary)}.nav-item.active{background-color:var(--color-accent-light);color:var(--color-accent)}.refresh-btn{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-secondary);transition:var(--transition);justify-content:center;align-items:center;padding:8px;display:flex}.refresh-btn:hover{background-color:var(--bg-tertiary);color:var(--color-primary)}.refresh-btn.loading{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dashboard-grid{grid-template-columns:2fr 1fr;gap:24px;margin-top:20px;display:grid}@media (width<=968px){.dashboard-grid{grid-template-columns:1fr}}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition);padding:24px;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-active)}.card-title{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:1.25rem;font-weight:700;display:flex}.stats-bar{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}@media (width<=640px){.stats-bar{grid-template-columns:repeat(2,1fr)}}.stat-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:4px;padding:16px;display:flex}.stat-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.stat-value{font-size:1.6rem;font-family:var(--font-display);color:var(--color-primary);font-weight:800}.countdown-banner{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);justify-content:space-between;align-items:center;margin-bottom:24px;padding:24px;display:flex}@media (width<=640px){.countdown-banner{text-align:center;flex-direction:column;gap:16px}}.countdown-title{color:#fff;opacity:.9;margin-bottom:4px;font-size:1.1rem;font-weight:500}.countdown-subtitle{color:#fff;font-size:1.4rem;font-weight:700;font-family:var(--font-display)}.timer-box{gap:12px;display:flex}.time-segment{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#ffffff26;flex-direction:column;align-items:center;min-width:60px;padding:8px 14px;display:flex}.time-val{font-family:var(--font-display);font-size:1.5rem;font-weight:800}.time-lbl{text-transform:uppercase;letter-spacing:.05em;opacity:.8;font-size:.7rem}.match-card-list{flex-direction:column;gap:12px;display:flex}.match-row{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.match-row:hover{background-color:var(--bg-tertiary);transform:translate(4px)}.match-info-meta{flex-direction:column;gap:4px;min-width:140px;display:flex}.match-stage{color:var(--color-primary-light);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.match-venue{color:var(--text-secondary);font-size:.75rem}.match-teams-score{flex:1;justify-content:center;align-items:center;gap:24px;display:flex}.team-container{flex:1;align-items:center;gap:12px;display:flex}.team-container.left{justify-content:flex-end}.team-container.right{justify-content:flex-start}.team-name{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.team-flag{object-fit:contain;background-color:#f8fafc;border-radius:4px;width:24px;height:24px;box-shadow:0 1px 3px #0000001a}.score-display{background-color:var(--bg-tertiary);border-radius:var(--radius-full);font-family:var(--font-display);justify-content:center;align-items:center;gap:8px;min-width:80px;padding:6px 16px;font-size:1.2rem;font-weight:800;display:flex}.score-display.live-score{background-color:var(--color-live-light);color:var(--color-live);animation:2s infinite pulse-border}@keyframes pulse-border{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 6px #ef444400}to{box-shadow:0 0 #ef444400}}.status-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;justify-content:center;align-items:center;gap:4px;min-width:90px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.status-badge.live{background-color:var(--color-live-light);color:var(--color-live)}.status-badge.upcoming{background-color:var(--bg-tertiary);color:var(--text-secondary)}.status-badge.finished{background-color:var(--color-finished-light);color:var(--color-finished)}.groups-container{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px;display:grid}@media (width<=480px){.groups-container{grid-template-columns:1fr}}.group-table-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.group-header{background-color:var(--color-accent-light);border-bottom:1px solid var(--border-color);font-family:var(--font-display);color:var(--color-primary);justify-content:space-between;align-items:center;padding:16px 20px;font-size:1.1rem;font-weight:700;display:flex}.group-table{border-collapse:collapse;width:100%;min-width:320px}.group-table th{text-transform:uppercase;color:var(--text-secondary);text-align:center;border-bottom:1px solid var(--border-color);background-color:#fafbfc;padding:10px 8px;font-size:.75rem;font-weight:700}.group-table th.team-col{text-align:left;padding-left:16px}.group-table td{text-align:center;border-bottom:1px solid var(--border-color);padding:12px 8px;font-size:.9rem}.group-table tr:last-child td{border-bottom:none}.group-table td.team-col{text-align:left;align-items:center;gap:8px;padding-left:20px;font-weight:500;display:flex}.qualify-indicator{border-radius:2px;width:4px;height:24px}.qualify-indicator.advance{background-color:var(--color-green-qualified)}.qualify-indicator.contention{background-color:var(--color-gold)}.qualify-indicator.none{background-color:#0000}.rank-num{color:var(--text-secondary);text-align:center;width:16px;font-size:.85rem;font-weight:700;display:inline-block}.group-table tr:hover td{background-color:var(--bg-primary)}.schedule-filters{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.filter-btn{border-radius:var(--radius-full);border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-secondary);transition:var(--transition);padding:10px 20px;font-size:.9rem;font-weight:600}.filter-btn:hover{background-color:var(--bg-tertiary);color:var(--color-primary)}.filter-btn.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.bracket-wrapper{justify-content:flex-start;min-height:600px;padding:20px 0;display:flex;overflow-x:auto}.bracket-container{align-items:stretch;gap:40px;min-width:1200px;padding:20px;display:flex}.bracket-column{flex-direction:column;flex:1;justify-content:space-around;min-width:240px;display:flex}.bracket-header{font-family:var(--font-display);text-align:center;color:var(--color-primary);border-bottom:2px solid var(--border-color);margin-bottom:20px;padding-bottom:10px;font-size:1.1rem;font-weight:700}.bracket-match-node{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);width:240px;transition:var(--transition);flex-direction:column;gap:8px;margin:16px 0;padding:12px;display:flex;position:relative}.bracket-match-node:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-light)}.bracket-meta{color:var(--text-muted);text-transform:uppercase;justify-content:space-between;font-size:.7rem;font-weight:600;display:flex}.bracket-team-row{justify-content:space-between;align-items:center;padding:4px 0;font-size:.9rem;font-weight:500;display:flex}.bracket-team-row.winner{color:var(--color-primary);font-weight:700}.bracket-score{font-family:var(--font-display);background-color:var(--bg-tertiary);border-radius:4px;padding:2px 8px;font-size:1rem;font-weight:700}.mobile-bottom-nav{display:none}@media (width<=768px){.nav-links{display:none!important}.mobile-bottom-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border-color);z-index:1000;height:64px;padding-bottom:env(safe-area-inset-bottom,0px);background-color:#fffffff5;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0f172a14}.mobile-nav-item{color:var(--text-secondary);height:100%;transition:var(--transition);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:6px 0;font-size:.72rem;font-weight:600;display:flex}.mobile-nav-item.active{color:var(--color-accent)}.mobile-nav-item:active{transform:scale(.95)}.main-content{padding-bottom:80px}footer{padding-bottom:88px!important}.match-row{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.match-info-meta{border-bottom:1px solid var(--border-color);flex-direction:row;justify-content:space-between;width:100%;padding-bottom:8px}.match-teams-score{gap:12px;width:100%}.team-name{white-space:normal;font-size:.9rem}.score-display{min-width:60px;padding:6px 10px;font-size:1rem}.status-badge{width:100%}}.page-title-section{margin-bottom:24px}.page-title{font-size:2rem;font-family:var(--font-display);color:var(--color-primary);margin-bottom:6px;font-weight:800}.page-subtitle{color:var(--text-secondary);font-size:1rem}.loading-container{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 20px;display:flex}.spinner{border:4px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}
