:root{--bg-0: #0a0b0f;--bg-1: #0f1118;--bg-2: #151a26;--card: rgba(20, 23, 34, .78);--border: rgba(255, 255, 255, .08);--text: #f8fafc;--muted: #9ca3af;--muted-2: #6b7280;--accent: #3b82f6;--accent-2: #facc15;--danger: #ef4444;--success: #22c55e;--shadow: 0 30px 60px rgba(0, 0, 0, .45)}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,sans-serif;background:radial-gradient(circle at 20% 20%,#1f2b4d 0%,transparent 45%),radial-gradient(circle at 80% 0%,#1f2f3d 0%,transparent 50%),linear-gradient(180deg,var(--bg-0),var(--bg-1) 50%,var(--bg-2) 100%);color:var(--text);min-height:100vh}#root{min-height:100vh}.app-shell{position:relative;min-height:100vh;padding:40px 24px 120px;overflow:hidden}.ambient-glow{position:absolute;inset:10% -20% auto -20%;height:420px;background:radial-gradient(circle,rgba(59,130,246,.2),transparent 70%);filter:blur(40px);pointer-events:none;z-index:0}.page{position:relative;z-index:1;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:32px}.page-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.brand-mini{font-family:Bebas Neue,sans-serif;font-size:26px;letter-spacing:2px;color:var(--text);text-decoration:none}.back-link{font-size:12px;padding:6px 12px;text-transform:uppercase;letter-spacing:1px}.phase-pill{display:inline-flex;align-items:center;padding:6px 18px;border-radius:999px;font-size:12px;letter-spacing:2px;text-transform:uppercase;border:1px solid var(--border);background:#0f172a66;color:var(--muted)}.phase-pill.small{font-size:10px;padding:4px 12px}.hero{display:flex;flex-direction:column;gap:20px;align-items:flex-start;animation:floatIn .6s ease-out}.hero-title{font-family:Bebas Neue,sans-serif;font-size:clamp(64px,16vw,140px);letter-spacing:6px;margin:0;line-height:.9}.hero-title-accent{color:var(--accent)}.hero-subtitle{max-width:560px;font-size:18px;color:var(--muted);line-height:1.6;margin:0}.cta-button{display:inline-flex;align-items:center;gap:12px;padding:16px 28px;border-radius:999px;border:none;background:var(--text);color:#0a0b0f;font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease}.cta-button:hover{transform:translateY(-2px);box-shadow:0 20px 40px #00000059}.cta-button.dark{background:linear-gradient(120deg,#1f2937,#111827);color:var(--text);border:1px solid var(--border)}.cta-button:disabled{opacity:.6;cursor:not-allowed}.cta-icon{display:inline-flex;width:24px;height:24px}.cta-icon svg{width:100%;height:100%}.hero-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:20px}.feature-card{padding:20px;border-radius:18px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);animation:floatIn .7s ease-out}.feature-title{font-size:22px;font-weight:600;margin:0 0 6px}.feature-subtitle{color:var(--muted);margin:0}.page-hero h2{margin:0;font-size:36px}.page-hero p{margin:6px 0 0;color:var(--muted)}.match-list{display:grid;gap:18px}.match-card{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:24px;border-radius:22px;border:1px solid var(--border);background:var(--card);color:var(--text);box-shadow:var(--shadow);cursor:pointer;transition:transform .2s ease,border .2s ease;animation:slideIn .4s ease both}.match-card:hover{transform:translateY(-4px);border-color:#3b82f666}.match-card.skeleton{height:140px;background:linear-gradient(90deg,#ffffff0a,#ffffff14,#ffffff0a);background-size:200% 100%;animation:shimmer 1.4s ease infinite;border:none}.match-card-teams{display:flex;flex-direction:column;gap:12px}.team-row{display:flex;align-items:center;gap:12px;font-size:20px}.team-dot{width:20px;height:20px;border-radius:50%}.team-name{font-weight:600}.match-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.match-note{margin:0;font-size:14px;color:var(--muted);max-width:240px;text-align:right}.status-pill{padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.status-live{background:#ef444433;color:var(--danger)}.status-open{background:#22c55e33;color:var(--success)}.status-upcoming{background:#3b82f633;color:var(--accent)}.status-closed,.status-done{background:#94a3b833;color:var(--muted)}.status-created{background:#3b82f633;color:var(--accent)}.live{gap:24px}.live-header{flex-wrap:wrap;gap:10px}.live-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:14px}.meta-divider{opacity:.5}.live-scoreboard{display:flex;flex-direction:column;gap:18px}.sim-key-strip{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;border:1px solid var(--border);background:#0c111cb3}.sim-key-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted-2)}.sim-key-value{flex:1;min-width:0;font-size:12px;font-weight:600;letter-spacing:.6px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ghost-button.sim-key-copy{padding:6px 12px;font-size:11px;letter-spacing:.8px;text-transform:uppercase}.score-card{padding:28px;border-radius:26px;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}.score-card.compact{padding:22px;gap:12px}.score-heading-block{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}.score-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px;align-items:stretch}.score-summary{display:flex;flex-direction:column;gap:14px;min-width:0}.score-heading{margin:0;color:var(--muted);font-size:14px;letter-spacing:1px;text-transform:uppercase}.score-meta{margin:0;color:#f8fafcb8;font-size:12px;letter-spacing:1px;text-transform:uppercase}.score-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"score event" "players event";column-gap:18px;row-gap:10px;align-items:start}.score-chart{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:18px;border:1px solid var(--border);background:#0c111cb3;min-width:0}.chart-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.chart-sub{color:var(--muted-2);font-size:11px}.chart-frame{position:relative;width:100%;min-height:140px}.chart-svg{width:100%;height:100%}.chart-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted-2);font-size:12px;text-align:center;padding:0 12px}.chart-axis{stroke:#94a3b866;stroke-width:.6}.chart-label{fill:#94a3b8b3;font-size:4.5px;letter-spacing:.4px}.chart-line{stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.chart-line.innings-1{stroke:#f8fafccc}.chart-line.innings-1.faded{stroke:#f8fafc59}.chart-line.innings-2{stroke:#3b82f6e6}.score-main{display:flex;flex-direction:column;gap:6px;grid-area:score}.score-card.compact .score-main{flex-direction:row;align-items:baseline;gap:12px}.score-value{font-family:Bebas Neue,sans-serif;font-size:clamp(60px,15vw,120px)}.score-card.compact .score-value{font-size:clamp(46px,12vw,92px)}.score-metrics{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);align-items:center;gap:10px;width:100%}.score-metrics.two-col{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.metric{display:flex;flex-direction:column;gap:4px;text-align:center;min-width:0}.metric-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-value{font-size:15px;font-weight:600;color:var(--text);letter-spacing:.4px}.metric.primary .metric-label{color:#f8fafccc}.metric.primary .metric-value{font-size:16px;letter-spacing:.6px}.score-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;grid-area:players;min-width:0}.player-mini{display:flex;flex-direction:column;gap:2px}.score-row .event-banner{grid-area:event;justify-self:end;align-self:start}.event-banner{padding:10px 16px;border-radius:14px;background:#3b82f62e;color:var(--text);font-weight:600;letter-spacing:1px;text-transform:uppercase;animation:pulseIn .32s ease;width:fit-content}.event-banner.compact{padding:8px 14px;font-size:12px;letter-spacing:.8px}.score-balls{min-width:0}.last-six{display:grid;grid-template-columns:repeat(var(--balls-per-over, 6),minmax(0,1fr));gap:clamp(6px,1.2vw,10px);align-items:center;margin-top:8px;min-height:59px}.ball-pill{width:100%;max-width:52px;aspect-ratio:1 / 1;border-radius:50%;border:1px solid var(--border);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-weight:600;color:var(--text);background:#0f172a99;font-size:clamp(10px,1.2vw,14px);line-height:1;text-align:center;justify-self:center;overflow:hidden}.ball-pill.boundary-4{border-color:#22c55e8c;background:#22c55e2e;color:#86efac}.ball-pill.boundary-6{border-color:#38bdf88c;background:#38bdf82e;color:#7dd3fc}.ball-pill.long{font-size:10px}.ball-pill.extra{border-color:#facc158c;color:var(--accent-2)}.ball-pill.wicket{border-color:#ef444499;color:var(--danger);background:#ef44442e}.ball-extras{font-size:10px;color:var(--accent-2);letter-spacing:.5px;text-align:center;white-space:nowrap}.ball-main{font-size:inherit}.player-role{display:block;text-transform:uppercase;letter-spacing:.8px;color:var(--muted-2);font-size:10px}.player-name{margin:0;font-size:14px;font-weight:600}.live-actions{display:grid;gap:10px}.live-actions-row{display:flex;align-items:center;gap:16px}.timer-pill{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:#0f172ab3;color:var(--muted);font-size:12px;letter-spacing:1px;text-transform:uppercase}.timer-pill strong{color:var(--text);font-weight:600}.advance-note{color:var(--muted);font-size:14px}.odds-panel{padding:24px;border-radius:24px;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow)}.odds-panel-header{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.odds-panel-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.odds-panel-row .ghost-button{margin-left:auto}.odds-panel h3{margin:0;font-size:24px}.odds-header-sub{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted-2)}.odds-pill-row{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}.odds-pill{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid var(--border);background:#0c111cb3;color:var(--text);font-size:13px;letter-spacing:.6px;text-transform:uppercase}.odds-pill.up{border-color:#22c55e80}.odds-pill.down{border-color:#ef444480}.odds-pill-team{color:var(--muted);font-size:11px;letter-spacing:1px}.odds-pill-value{font-size:16px;font-weight:700;letter-spacing:.8px}.odds-pill-divider{color:var(--muted-2);font-size:16px;font-weight:600}.odds-card{padding:18px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(145deg,#10172ad9,#0a0f1ae6);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;transition:border .2s ease,transform .2s ease}.odds-card.up{border-color:#22c55e99}.odds-card.down{border-color:#ef444499}.odds-team{color:var(--muted);font-size:12px;letter-spacing:1px;text-transform:uppercase}.odds-value{font-size:36px;font-weight:700;letter-spacing:1px;text-align:center}.odds-chart{--odds-team-a: #38bdf8;--odds-team-b: #f59e0b;padding:16px;border-radius:18px;border:1px solid var(--border);background:radial-gradient(circle at 20% 20%,rgba(56,189,248,.18),transparent 60%),radial-gradient(circle at 80% 0%,rgba(245,158,11,.16),transparent 60%),#0a0e18e6;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;height:100%}.odds-chart-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.odds-chart-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}.legend-swatch{width:8px;height:8px;border-radius:999px;background:var(--muted)}.legend-swatch.team-a{background:var(--odds-team-a);box-shadow:0 0 8px #38bdf899}.legend-swatch.team-b{background:var(--odds-team-b);box-shadow:0 0 8px #f59e0b80}.odds-chart-frame{position:relative;width:100%;min-height:120px}.odds-chart-svg{width:100%;height:100%}.odds-chart-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted-2);font-size:12px;text-align:center;padding:0 12px}.odds-chart-axis{stroke:#94a3b859;stroke-width:.6}.odds-chart-grid{stroke:#94a3b81f;stroke-width:.6}.odds-chart-label{fill:#94a3b8b3;font-size:6px;letter-spacing:.4px}.odds-chart-break{stroke:#94a3b873;stroke-width:.8;stroke-dasharray:3 3}.odds-chart-break-label{fill:#94a3b8b3;font-size:6px;letter-spacing:.6px;text-transform:uppercase}.odds-chart-area{opacity:.65}.odds-chart-line{stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.odds-chart-marker{fill:#0b1220;stroke-width:1.6}.odds-chart-marker.team-a{stroke:var(--odds-team-a)}.odds-chart-marker.team-b{stroke:var(--odds-team-b)}.odds-chart-footer{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted-2);padding:0 6px}.ghost-button{background:transparent;border:1px solid var(--border);color:var(--text);padding:8px 14px;border-radius:999px;cursor:pointer}.result-banner{margin-top:16px;padding:12px 16px;border-radius:12px;background:#22c55e1f;color:var(--success);font-weight:600}.error-banner{padding:12px 16px;border-radius:12px;background:#ef444426;color:var(--danger)}.error-state{display:flex;flex-direction:column;gap:16px;align-items:flex-start}.loading{color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617b3;display:flex;align-items:center;justify-content:center;padding:24px;z-index:20}.modal{background:#0f172a;border-radius:20px;padding:24px;max-width:420px;width:100%;border:1px solid var(--border)}.modal h4{margin-top:0}.consent-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#070a12c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:24px;z-index:50}.consent-modal{width:min(520px,100%);border-radius:22px;border:1px solid var(--border);background:#0b0f1af2;padding:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.consent-modal h3{margin:0;font-size:22px}.consent-modal p{margin:0;color:var(--muted);line-height:1.5}.consent-actions{display:flex;gap:12px;flex-wrap:wrap}.toss-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#070a12b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:24px;z-index:55}.toss-card{width:min(420px,100%);border-radius:24px;border:1px solid var(--border);background:#0b0f1af2;padding:28px;box-shadow:var(--shadow);display:grid;place-items:center;gap:14px;text-align:center}.toss-count{font-family:Bebas Neue,sans-serif;font-size:64px;letter-spacing:4px}.toss-coin{width:72px;height:72px;border-radius:50%;border:2px solid rgba(248,250,252,.6);background:radial-gradient(circle at 30% 30%,#facc15e6,#eab30899);box-shadow:0 12px 24px #00000059;animation:coinFlip .9s ease-in-out infinite}.toss-result{font-size:14px;color:var(--text);letter-spacing:.6px;text-transform:uppercase}@keyframes floatIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes coinFlip{0%{transform:rotateY(0) rotate(0)}50%{transform:rotateY(180deg) rotate(8deg)}to{transform:rotateY(360deg) rotate(0)}}@media (max-width: 720px){.app-shell{padding:32px 18px 80px}.hero-title{letter-spacing:3px}.match-card{flex-direction:column;align-items:flex-start;gap:16px}.match-card-meta{align-items:flex-start}.match-note{text-align:left}.live-actions-row{align-items:stretch;gap:10px}.live-actions-row .cta-button,.live-actions-row .timer-pill{flex:1;justify-content:center;padding:12px 10px;font-size:14px}.odds-card{padding:14px}.odds-value{font-size:24px}.odds-pill-row{gap:8px}.odds-pill{padding:9px 16px;font-size:12px}.odds-pill-value{font-size:14px}.odds-chart-frame{min-height:110px}.sim-key-strip{flex-wrap:wrap;align-items:flex-start}.sim-key-value{white-space:normal;word-break:break-all}.ghost-button.sim-key-copy{width:100%;justify-content:center}.score-row{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);grid-template-areas:"score players" "event event";column-gap:14px;row-gap:12px}.score-card.compact .score-main{flex-direction:column;align-items:flex-start}.score-body{grid-template-columns:1fr}.chart-frame{min-height:160px}.consent-actions{flex-direction:column}.score-players{width:100%;display:flex;flex-direction:column;gap:6px;padding-left:12px;border-left:1px solid var(--border);justify-self:end}.score-row .event-banner{justify-self:start}.score-metrics{gap:6px}.metric-label{font-size:9px;letter-spacing:.6px}.metric-value{font-size:12px;letter-spacing:.2px}.metric.primary .metric-value{font-size:13px}}
