:root{--bg: #0b1220;--surface: #131c2e;--surface-2: #1a2540;--border: #243152;--text: #e8eef7;--muted: #8da0bd;--green: #0a7d3c;--green-bright: #1bbf5e;--live: #ff4757;--warn: #f0a83c;--qual: rgba(27, 191, 94, .12)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:680px;margin:0 auto;padding-bottom:40px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 12px;position:sticky;top:0;z-index:5;background:linear-gradient(180deg,var(--bg) 70%,transparent)}.brand{display:flex;align-items:center;gap:12px}.crest{font-size:30px}.topbar h1{font-size:19px;margin:0;letter-spacing:-.3px}.sub{margin:2px 0 0;font-size:12px;color:var(--muted)}.offline-pill{font-size:11px;text-transform:uppercase;letter-spacing:.5px;background:var(--warn);color:#1a1206;padding:4px 9px;border-radius:999px;font-weight:700}.tabs{display:flex;gap:8px;padding:4px 16px 14px}.tab{flex:1;padding:10px;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.tab.active{background:var(--green);color:#fff;border-color:var(--green-bright)}.content{padding:0 16px}.section{margin-bottom:26px}.section-head{margin:0 0 10px}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin:0;display:flex;align-items:center;gap:8px}.section-title.accent{color:var(--live)}button.section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit}.chevron{color:var(--muted);font-size:12px;transition:transform .15s ease}.chevron.open{transform:rotate(90deg)}.count{background:var(--surface-2);color:var(--muted);font-size:11px;padding:1px 8px;border-radius:999px;font-weight:700}.cards{display:flex;flex-direction:column;gap:10px}.match-card{width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;cursor:pointer;color:var(--text);display:grid;grid-template-columns:1fr;gap:10px;transition:border-color .15s,transform .05s}.match-card:hover{border-color:var(--green-bright)}.match-card:active{transform:scale(.995)}.badge{display:inline-flex;align-items:center;gap:6px;width:fit-content;font-size:11px;font-weight:700;letter-spacing:.5px;padding:3px 9px;border-radius:999px}.badge.live{background:#ff475726;color:var(--live)}.badge.done{background:var(--surface-2);color:var(--muted)}.badge.upcoming{background:var(--surface-2);color:var(--text)}.badge.warn{background:#f0a83c26;color:var(--warn)}.dot{width:7px;height:7px;border-radius:50%;background:var(--live);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.teams{display:flex;flex-direction:column;gap:6px}.team-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px}.team-row.winner .team-name{font-weight:700}.team-row .team-name{font-size:15px}.logo{width:22px;height:22px;object-fit:contain}.logo.sm{width:18px;height:18px}.logo.big{width:48px;height:48px}.score{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.venue{font-size:12px;color:var(--muted)}.empty,.loading{color:var(--muted);font-size:14px;padding:8px 2px}.odds{display:flex;flex-direction:column;gap:5px}.odds-bar{display:flex;height:6px;border-radius:4px;overflow:hidden;background:var(--surface-2)}.odds-bar .seg{height:100%}.seg.home{background:var(--green-bright)}.seg.draw{background:#5a6b8c}.seg.away{background:#4a90e2}.odds-pct{display:flex;justify-content:space-between;font-size:11px;font-variant-numeric:tabular-nums}.odds-pct .home-pct{color:var(--green-bright);font-weight:600}.odds-pct .away-pct{color:#6aa9ec;font-weight:600}.odds-pct .draw-pct{color:var(--muted)}.odds-block{margin:20px 0 26px}.odds-head{display:flex;align-items:baseline;justify-content:space-between}.odds-head .timeline-title{margin:0}.odds-source{font-size:11px;color:var(--muted)}.odds-teams{display:flex;justify-content:space-between;font-size:13px;margin:10px 0 6px}.odds-teams .muted{color:var(--muted)}.odds-detail .odds-bar{height:10px;border-radius:6px}.odds-detail .odds-pct{font-size:15px;font-weight:700;margin-top:4px}.stats-block{margin:22px 0}.stat-row{display:grid;grid-template-columns:2.5rem 1fr 2.5rem;align-items:center;gap:8px;margin-bottom:10px}.stat-row .stat-val{font-variant-numeric:tabular-nums;font-weight:600}.stat-row .stat-val:last-of-type{text-align:right}.stat-row .stat-label{text-align:center;font-size:12px;color:var(--muted)}.stat-bar{grid-column:1 / -1;display:flex;height:5px;border-radius:3px;overflow:hidden;background:var(--surface-2);gap:2px}.stat-bar .seg.home{background:var(--green-bright)}.stat-bar .seg.away{background:#4a90e2;margin-left:auto}.lineups-block{margin:22px 0}.lineups{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lineup-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.lineup.right .lineup-head{flex-direction:row-reverse}.formation{font-size:11px;color:var(--muted)}.xi{list-style:none;padding:0;margin:0}.xi li{display:flex;align-items:center;gap:6px;font-size:13px;padding:3px 0}.lineup.right .xi li{flex-direction:row-reverse;text-align:right}.xi .num{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:4px;background:var(--surface-2);font-size:11px;font-variant-numeric:tabular-nums}.xi .pname{flex:1}.lineup.right .xi .pname{text-align:right}.xi .pos{font-size:10px;color:var(--muted);min-width:18px}.coach{font-size:11px;color:var(--muted);margin-top:8px}.scorers{list-style:none;padding:10px 0 0;margin:0;display:flex;flex-direction:column;gap:5px}.scorers li{display:flex;align-items:center;gap:6px;font-size:12px}.goal-icon{font-size:11px}.goal-player{font-weight:600}.goal-min{color:var(--muted);font-variant-numeric:tabular-nums}.goal-team{margin-left:auto;color:var(--muted);font-size:11px}.recent-stats{margin-top:12px}.recent-stats .stat-row{margin-bottom:8px}.recent-stats .stat-label{font-size:11px}.groups{display:flex;flex-direction:column;gap:18px}.standings-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px}.group-title{margin:0 0 10px;font-size:15px}.standings{width:100%;border-collapse:collapse;font-size:13px}.standings th{color:var(--muted);font-weight:600;text-align:center;padding:6px 4px;font-size:11px}.standings td{padding:8px 4px;text-align:center;border-top:1px solid var(--border)}.standings .num{font-variant-numeric:tabular-nums}.standings .team-col{text-align:left;display:flex;align-items:center;gap:8px}th.team-col{display:table-cell}.standings .pts{font-weight:700}.standings tr.qualifying td:first-child{box-shadow:inset 3px 0 0 var(--green-bright)}.standings tr.qualifying{background:var(--qual)}.overlay{position:fixed;inset:0;background:#060a12b3;backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--surface);width:100%;max-width:680px;border-radius:18px 18px 0 0;padding:22px 18px 30px;position:relative;max-height:86vh;overflow-y:auto;border:1px solid var(--border);border-bottom:none;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:.6}}.close{position:absolute;top:14px;right:14px;background:var(--surface-2);border:none;color:var(--text);width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer}.detail-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:6px}.detail-team{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;text-align:center}.center{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.big-score{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums}.dash{color:var(--muted)}.detail-meta{text-align:center;color:var(--muted);font-size:12px;margin:14px 0 22px}.timeline-title{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 12px}.timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.event{display:grid;grid-template-columns:38px 24px 1fr;align-items:start;gap:8px;font-size:14px}.event-min{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.event-icon{text-align:center}.event-body{display:flex;flex-direction:column}.assist,.event-detail{color:var(--muted);font-size:12px}.event-team{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
