:root{--bg-primary:#0b0f19;--bg-secondary:#111827;--bg-card:#111827b3;--bg-card-hover:#1f2937cc;--border-color:#ffffff14;--border-active:#3b82f666;--color-live:#ef4444;--color-emerald:#10b981;--color-gold:#f59e0b;--color-blue:#3b82f6;--text-main:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--font-display:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--transition-smooth:all .25s cubic-bezier(.4, 0, .2, 1);--card-shadow:0 10px 30px #0000004d;--glass-blur:blur(12px)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-body);background-image:radial-gradient(at 10% 20%,#3b82f614 0,#0000 50%),radial-gradient(at 90% 80%,#10b9810d 0,#0000 50%);background-attachment:fixed;font-size:15px;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600}a{color:inherit;text-decoration:none}.live-blinker{background-color:var(--color-live);border-radius:50%;width:8px;height:8px;animation:1.5s infinite blink;display:inline-block;box-shadow:0 0 #ef4444b3}@keyframes blink{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1);box-shadow:0 0 0 6px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.container{max-width:1400px;margin:0 auto;padding:0 20px}.card-base{background:var(--bg-card);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);box-shadow:var(--card-shadow);transition:var(--transition-smooth);border-radius:12px}.app-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);z-index:100;background:#0b0f19d9;padding:16px 0;position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-icon{background:linear-gradient(135deg, var(--color-blue), var(--color-emerald));color:#fff;width:38px;height:38px;font-family:var(--font-display);border-radius:8px;justify-content:center;align-items:center;font-size:20px;font-weight:800;display:flex}.brand h1{background:linear-gradient(90deg,#fff,#d1d5db);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:22px}.socket-status{border:1px solid var(--border-color);background:#ffffff0d;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.status-dot{border-radius:50%;width:7px;height:7px}.status-dot.connected{background-color:var(--color-emerald)}.status-dot.disconnected{background-color:var(--color-live)}.filter-bar{justify-content:space-between;align-items:center;margin:25px 0 20px;display:flex}.tabs{border:1px solid var(--border-color);background:#ffffff0a;border-radius:8px;padding:4px;display:flex}.tab-btn{color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 18px;font-size:14px;font-weight:500;display:flex}.tab-btn.active{color:var(--text-main);background:#ffffff1a;box-shadow:0 2px 8px #0003}.tab-btn:hover:not(.active){color:var(--text-main);background:#ffffff05}.dashboard-grid{grid-template-columns:450px 1fr;gap:24px;height:calc(100vh - 160px);margin-bottom:20px;display:grid}.sidebar-panel{flex-direction:column;height:100%;display:flex}.matches-list{flex-direction:column;flex:1;gap:14px;padding-right:4px;display:flex;overflow-y:auto}.main-panel{height:100%;overflow:hidden}.match-card{cursor:pointer}.match-card:hover{background:var(--bg-card-hover);border-color:#ffffff26;transform:translateY(-2px)}.match-card.selected{border-color:var(--border-active);background:#3b82f614}.card-header{border-bottom:1px solid var(--border-color);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;display:flex}.card-body{flex-direction:column;gap:12px;padding:16px;display:flex}.team-row{justify-content:space-between;align-items:center;display:flex}.team-meta{align-items:center;gap:10px;display:flex}.team-logo{border:1px solid var(--border-color);object-fit:cover;background:#1f2937;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex}.team-name{font-size:15px;font-weight:500}.score-meta{align-items:baseline;gap:6px;display:flex}.score-val{font-size:16px;font-weight:700;font-family:var(--font-display)}.overs-val{color:var(--text-secondary);font-size:12px}.card-footer{border-top:1px solid var(--border-color);background:#ffffff05;justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;display:flex}.status-badge{align-items:center;gap:6px;font-weight:600;display:flex}.status-badge.live{color:var(--color-live)}.status-badge.finished{color:var(--color-emerald)}.status-badge.upcoming{color:var(--color-gold)}.detail-placeholder{height:100%;color:var(--text-secondary);text-align:center;border:1px dashed var(--border-color);background:#ffffff05;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.placeholder-icon{color:var(--text-muted);margin-bottom:16px}.detail-view{flex-direction:column;height:100%;display:flex}.detail-scroll{flex-direction:column;flex:1;gap:20px;padding-right:4px;display:flex;overflow-y:auto}.match-detail-header{flex-direction:column;gap:16px;padding:20px;display:flex}.detail-header-top{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:13px;display:flex}.detail-teams-row{justify-content:space-around;align-items:center;margin:10px 0;display:flex}.detail-team-box{flex-direction:column;align-items:center;gap:10px;width:140px;display:flex}.detail-team-logo{border:1px solid var(--border-color);width:60px;height:60px;font-size:20px;font-family:var(--font-display);background:#1f2937;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.detail-team-name{font-family:var(--font-display);text-align:center;font-size:18px;font-weight:600}.detail-team-score{font-family:var(--font-display);font-size:24px;font-weight:800}.detail-vs{font-family:var(--font-display);color:var(--text-muted);font-size:20px;font-style:italic;font-weight:800}.header-bottom-meta{border:1px solid var(--border-color);text-align:center;background:#ffffff08;border-radius:8px;justify-content:space-around;padding:12px;font-size:13px;display:flex}.meta-item-title{color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px;font-size:11px}.meta-item-val{font-weight:600}.target-info{color:#fbbf24;text-align:center;background:#f59e0b14;border:1px solid #f59e0b33;border-radius:6px;padding:10px;font-size:14px;font-weight:500}.active-players-card{padding:16px}.section-title{color:var(--text-secondary);border-left:3px solid var(--color-blue);align-items:center;gap:8px;margin-bottom:12px;padding-left:8px;font-size:16px;display:flex}.table-responsive{width:100%;overflow-x:auto}.table-stats{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.table-stats th{color:var(--text-muted);border-bottom:1px solid var(--border-color);text-transform:uppercase;padding:8px;font-size:11px;font-weight:500}.table-stats td{border-bottom:1px solid var(--border-color);padding:10px 8px}.table-stats tr:last-child td{border-bottom:none}.player-name-col{align-items:center;gap:8px;font-weight:600;display:flex}.strike-star{color:var(--color-gold)}.run-highlight{color:var(--text-main);font-weight:700}.commentary-card{flex-direction:column;gap:14px;padding:16px;display:flex}.timeline-list{flex-direction:column;gap:12px;display:flex}.timeline-item-ball{border:1px solid var(--border-color);transition:var(--transition-smooth);background:#ffffff05;border-radius:8px;align-items:flex-start;gap:12px;padding:12px;display:flex}.ball-num{color:var(--text-secondary);text-align:right;width:32px;padding-top:4px;font-size:13px;font-weight:700}.ball-badge{border:1px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:flex}.ball-badge.dot{color:var(--text-secondary);background-color:#ffffff14}.ball-badge.single{color:#60a5fa;background-color:#3b82f626;border-color:#3b82f64d}.ball-badge.boundary{color:#34d399;background-color:#10b98126;border-color:#10b9814d;font-weight:800}.ball-badge.wicket{color:#f87171;background-color:#ef444426;border-color:#ef44444d;font-weight:800}.ball-badge.extra{color:#fbbf24;background-color:#f59e0b26;border-color:#f59e0b4d}.ball-desc{flex:1;font-size:13px}.ball-commentary{color:var(--text-main);font-weight:500}.ball-details{color:var(--text-secondary);margin-top:2px;font-size:12px}.timeline-item-over{background:linear-gradient(90deg,#3b82f60f,#10b98108);border:1px solid #3b82f626;border-radius:8px;padding:12px}.over-summary-header{font-weight:700;font-family:var(--font-display);color:#60a5fa;border-bottom:1px dashed #ffffff0f;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;font-size:14px;display:flex}.over-summary-content{color:var(--text-secondary);justify-content:space-between;font-size:12px;display:flex}.over-summary-batsmen{flex-direction:column;gap:2px;display:flex}.over-summary-bowler{text-align:right;color:var(--text-main);font-weight:500}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr;height:auto}.sidebar-panel{height:400px}}
