:root{--bg: #0b0f14;--surface: #141a22;--surface-raised: #1c242f;--border: #263140;--text: #e8eef5;--text-dim: #8a97a8;--text-faint: #5c6878;--accent: #4ade80;--accent-dim: #16a34a;--warn: #fbbf24;--bad: #f87171;--captain: #fbbf24;--pitch-top: #12482c;--pitch-bottom: #1a6039;--pitch-line: rgba(255, 255, 255, .28);--radius: 12px;--radius-sm: 8px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}.app{max-width:560px;margin:0 auto;padding:0 0 96px;min-height:100%}.masthead{padding:20px 16px 12px}.masthead h1{margin:0;font-size:19px;font-weight:650;letter-spacing:-.01em}.masthead p{margin:4px 0 0;color:var(--text-dim);font-size:13px}.tabs{display:flex;gap:4px;padding:4px;margin:0 16px 14px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.tabs button{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-dim);font:inherit;font-size:14px;font-weight:550;padding:9px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,color .15s}.tabs button[aria-selected=true]{background:var(--surface-raised);color:var(--text)}.gw-bar{display:flex;align-items:center;gap:8px;padding:0 16px 14px}.gw-bar button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:36px;flex:0 0 36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:17px;line-height:1;cursor:pointer}.gw-bar button:disabled{opacity:.3;cursor:default}.gw-bar select{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;font-weight:550;padding:9px 12px;border-radius:var(--radius-sm);text-align:center;text-align-last:center}.score{margin:0 16px 14px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.score-top{display:flex;align-items:baseline;gap:10px}.score-points{font-size:38px;font-weight:700;letter-spacing:-.03em;line-height:1}.score-unit{color:var(--text-dim);font-size:14px}.status{margin-left:auto;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:20px;border:1px solid var(--border);color:var(--text-dim)}.status.final{color:var(--accent);border-color:var(--accent-dim)}.score-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:13px;color:var(--text-dim)}.delta{font-weight:600}.delta.up{color:var(--accent)}.delta.down{color:var(--bad)}.chip-badge{display:inline-block;margin-top:10px;padding:4px 10px;font-size:12px;font-weight:600;border-radius:20px;background:#fbbf241f;color:var(--captain);border:1px solid rgba(251,191,36,.3)}.pitch{margin:0 16px;padding:20px 8px 14px;border-radius:var(--radius) var(--radius) 0 0;background:repeating-linear-gradient(to bottom,#ffffff09 0,#ffffff09 34px,#00000009 34px,#00000009 68px),linear-gradient(to bottom,var(--pitch-top),var(--pitch-bottom));border:1px solid var(--border);border-bottom:0;position:relative;overflow:hidden}.pitch-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;fill:none;stroke:var(--pitch-line);stroke-width:2}.pitch-lines .spot{fill:var(--pitch-line);stroke:none}.pitch .row{position:relative}.pitch .player-name,.pitch .player-points{text-shadow:0 1px 2px rgba(0,0,0,.55)}.pitch .player-fixture{color:#ffffff9e;text-shadow:0 1px 2px rgba(0,0,0,.5)}.pitch .player-points.zero{color:#ffffffb8}.row{display:flex;justify-content:center;gap:2px;margin-bottom:14px}.row:last-child{margin-bottom:4px}.player{flex:1 1 0;min-width:0;max-width:88px;background:none;border:0;padding:0 2px;font:inherit;color:inherit;cursor:pointer;text-align:center;position:relative}.player-shirt{width:40px;height:40px;margin:0 auto;display:block;object-fit:contain}.player.out .player-shirt{opacity:.35}.shirt-fallback{display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-raised);border:1px solid var(--border);font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--text-dim)}.player-name{margin-top:3px;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-fixture{font-size:9.5px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-points{margin-top:2px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.player-points.zero{color:var(--text-faint)}.badge{position:absolute;top:-3px;right:8px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;font-size:9.5px;font-weight:700;line-height:16px;color:#0b0f14;background:var(--captain)}.badge.vice{background:var(--text-dim);color:var(--bg)}.badge.sub-on{background:var(--accent);left:8px;right:auto}.badge.sub-off{background:var(--bad);left:8px;right:auto}.bench{margin:0 16px 16px;padding:12px 8px 10px;background:var(--surface);border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius)}.bench-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);text-align:center;margin-bottom:8px}.bench.boosted .bench-label{color:var(--accent)}.bench .row{margin-bottom:0}.panel{margin:0 16px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.panel>h2{margin:0;padding:13px 16px;font-size:13px;font-weight:650;letter-spacing:.01em}.panel-body{padding:0 16px 14px}.note{color:var(--text-dim);font-size:13px;margin:0 0 10px}.transfer{border-top:1px solid var(--border)}.transfer summary{padding:12px 16px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-size:14px}.transfer summary::-webkit-details-marker{display:none}.transfer summary:after{content:"▾";margin-left:auto;color:var(--text-faint);font-size:11px}.transfer[open] summary:after{content:"▴"}.swap-out{color:var(--bad);font-weight:600}.swap-in{color:var(--accent);font-weight:600}.swap-arrow{color:var(--text-faint)}.compare{width:100%;border-collapse:collapse;font-size:12.5px;margin:0 0 6px}.compare th,.compare td{padding:6px 16px;text-align:right;font-variant-numeric:tabular-nums}.compare th:first-child,.compare td:first-child{text-align:left;color:var(--text-dim);font-weight:400}.compare thead th{color:var(--text);font-weight:650}.compare tbody tr:nth-child(odd){background:#ffffff04}.compare .gain{color:var(--accent);font-weight:650}.compare .loss{color:var(--bad);font-weight:650}.fixture-strip{display:flex;gap:3px;justify-content:flex-end;flex-wrap:wrap}.fdr{font-size:9.5px;font-weight:600;padding:2px 4px;border-radius:3px;white-space:nowrap}.fdr-1,.fdr-2{background:#4ade802e;color:#86efac}.fdr-3{background:#ffffff14;color:var(--text-dim)}.fdr-4{background:#fb923c2e;color:#fdba74}.fdr-5{background:#f8717133;color:#fca5a5}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-top:1px solid var(--border)}.stat{background:var(--surface);padding:13px 10px;text-align:center}.stat-value{font-size:21px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-label{font-size:10.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-top:3px}.chart{padding:14px 16px 6px}.legend{display:flex;gap:14px;font-size:11.5px;color:var(--text-dim);margin-bottom:8px}.legend span{display:flex;align-items:center;gap:5px}.swatch{width:10px;height:2.5px;border-radius:2px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:50;animation:fade .15s ease}.sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;border-top:1px solid var(--border);padding:0 16px calc(20px + env(safe-area-inset-bottom));animation:rise .2s cubic-bezier(.2,0,0,1)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(24px)}}.sheet-handle{width:34px;height:4px;border-radius:2px;background:var(--border);margin:8px auto 14px}.sheet-head{display:flex;align-items:center;gap:12px}.sheet-head img{width:46px;height:46px}.sheet-head h3{margin:0;font-size:17px;font-weight:650}.sheet-head p{margin:2px 0 0;font-size:12.5px;color:var(--text-dim)}.sheet-reason{margin:14px 0 0;padding:12px;background:var(--surface-raised);border-radius:var(--radius-sm);font-size:13.5px;line-height:1.5}.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-top:14px}.sheet-grid div{background:var(--surface);padding:9px 11px}.sheet-grid dt{font-size:10.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.sheet-grid dd{margin:2px 0 0;font-size:15px;font-weight:650;font-variant-numeric:tabular-nums}.message{margin:40px 16px;text-align:center;color:var(--text-dim);font-size:14px}.message.error{color:var(--bad)}.skeleton{margin:0 16px 14px;height:120px;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface),var(--surface-raised),var(--surface));background-size:200% 100%;animation:shimmer 1.3s infinite}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.setup-stages{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}.setup-stages li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-faint)}.setup-mark{width:9px;height:9px;border-radius:50%;background:var(--surface-raised);box-shadow:inset 0 0 0 1.5px currentColor;flex:none}.setup-stages li.done{color:var(--text-dim)}.setup-stages li.done .setup-mark{background:currentColor;box-shadow:none}.setup-stages li.active{color:var(--text);font-weight:600}.setup-stages li.active .setup-mark{background:currentColor;box-shadow:none;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.setup code{font-size:12.5px;padding:1px 5px;border-radius:5px;background:var(--surface-raised)}.setup-stages+.note{margin-top:16px}
