:root,:root[data-theme=dark]{--bg: #12151c;--bg-soft: #171b24;--card: #1a2029;--card-hover: #212936;--border: #2a3341;--text: #e9edf3;--text-dim: #98a3b3;--text-faint: #69748a;--accent: #4fd1c5;--accent-ink: #06231f;--accent-soft: rgba(79, 209, 197, .14);--live: #ff5a3c;--hot: #ffb020;--on: #3ddc84;--soon: #6aa9ff;--cold: #8894a6;--radius: 14px;--shadow: 0 6px 20px rgba(0, 0, 0, .32);--page-bg: radial-gradient(1100px 560px at 85% -12%, #13322e 0%, var(--bg) 58%)}:root[data-theme=light]{--bg: #f1f4f9;--bg-soft: #e7ecf4;--card: #ffffff;--card-hover: #f6f8fc;--border: #d8e0ec;--text: #131922;--text-dim: #5a6675;--text-faint: #8b96a6;--accent: #0d9488;--accent-ink: #ffffff;--accent-soft: rgba(13, 148, 136, .1);--live: #d1382a;--hot: #b26a00;--on: #17924f;--soon: #2563eb;--cold: #6b7280;--shadow: 0 4px 16px rgba(20, 35, 60, .1);--page-bg: radial-gradient(1100px 560px at 85% -12%, #dcefec 0%, var(--bg) 58%)}*{box-sizing:border-box}body{margin:0;background:var(--bg);background-image:var(--page-bg);background-attachment:fixed;color:var(--text);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}h1,h2,h3{margin:0;line-height:1.2}.dim{color:var(--text-dim)}.app{max-width:1080px;margin:0 auto;padding:calc(22px + env(safe-area-inset-top,0px)) calc(18px + env(safe-area-inset-right,0px)) 64px calc(18px + env(safe-area-inset-left,0px))}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px}.brand h1{font-size:28px;letter-spacing:-.02em}.tagline{margin:4px 0 0;color:var(--text-dim)}.theme-toggle{flex:none;background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:10px;width:40px;height:40px;font-size:18px;cursor:pointer}.theme-toggle:hover{background:var(--card-hover)}.summary{margin:14px 0 22px;color:var(--text)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.card{display:block;text-decoration:none;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);transition:background .15s,transform .15s,border-color .15s}.card:hover{background:var(--card-hover);border-color:var(--accent);transform:translateY(-2px)}.card-head{display:flex;align-items:center;gap:10px}.card-icon{width:40px;height:40px;border-radius:9px;flex:none;box-shadow:0 1px 3px #00000040}.card-title{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.card-title h3{font-size:17px;letter-spacing:-.01em}.badge{align-self:flex-start;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:999px;border:1px solid currentColor}.badge-hot{color:var(--hot)}.badge-on{color:var(--on)}.badge-soon{color:var(--soon)}.badge-cold{color:var(--cold)}.live-dot{flex:none;color:var(--live);font-weight:700;font-size:12px;white-space:nowrap;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.live-dot{animation:none}}.card-body{margin-top:12px}.card-count{font-size:13px;color:var(--text-dim);margin-bottom:8px}.card-next{font-size:14px}.rows{display:flex;flex-direction:column;gap:6px}.row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg-soft);border:1px solid var(--border);border-radius:9px;padding:6px 8px}.row-teams{display:flex;align-items:center;gap:6px;min-width:0}.row-line{font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.star{flex:none;background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:15px;line-height:1;padding:2px}.star:hover,.star-on{color:var(--hot)}.pill{flex:none;font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--accent-soft);color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums}.pill-live{background:#ff5a3c29;color:var(--live)}.pill-final{color:var(--text-faint)}.myteams{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);padding:14px 16px;margin-bottom:22px}.myteams h2{font-size:16px;margin-bottom:10px}.myteams-list{display:flex;flex-direction:column;gap:10px}.myteams-item{display:flex;flex-direction:column;gap:4px}.myteams-tag{font-size:12px;font-weight:600;color:var(--accent);text-decoration:none;width:fit-content}.myteams-tag:hover{text-decoration:underline}.recap{margin-top:26px}.recap-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;cursor:pointer;font-size:16px;font-weight:700;color:var(--text);margin-bottom:10px}.recap-chevron{color:var(--text-dim);font-size:13px}.recap-toggle:hover .recap-chevron{color:var(--accent)}.upcoming{margin-top:30px}.up-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.upcoming h2{font-size:18px}.up-tabs{display:flex;gap:4px;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:3px}.up-tab{border:none;background:none;color:var(--text-dim);font-size:12.5px;font-weight:600;padding:4px 12px;border-radius:999px;cursor:pointer}.up-tab.on{background:var(--accent-soft);color:var(--accent)}.up-cal-scroll{overflow-x:auto}.up-cal{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));border:1px solid var(--border);border-radius:12px;overflow:hidden;min-width:700px;background:var(--border);gap:1px}.up-cal-head{background:var(--bg-soft);padding:6px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.up-cal-cell{background:var(--bg);min-height:74px;padding:6px;display:flex;flex-direction:column;gap:4px}.up-cal-cell.is-out{background:var(--bg-soft)}.up-cal-cell.is-out .up-cal-date{color:var(--text-faint)}.up-cal-cell.is-today{box-shadow:inset 0 0 0 1.5px var(--accent)}.up-cal-date{font-size:11px;font-weight:700;color:var(--text-dim);font-variant-numeric:tabular-nums}.up-cal-cell.is-today .up-cal-date{color:var(--accent)}.up-cal-game{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:5px;font-size:11.5px;color:inherit;text-decoration:none;background:var(--bg-soft);border:1px solid var(--border);border-radius:7px;padding:3px 6px;min-width:0}.up-cal-game:hover{border-color:var(--accent)}.up-cal-game img{border-radius:3px}.up-cal-line{font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-cal-time{grid-column:2;font-size:10px;color:var(--text-faint);font-variant-numeric:tabular-nums}.up-day{margin-bottom:16px}.up-date{font-size:13px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.up-list{display:flex;flex-direction:column;gap:6px}.up-item{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;border-radius:9px}.up-item:hover .row{border-color:var(--accent)}.up-sport{flex:none;display:flex;align-items:center;gap:6px;width:148px;font-size:12px;font-weight:600;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-sport img{border-radius:4px;flex:none}.up-row{flex:1;min-width:0}@media (max-width: 560px){.up-item{flex-direction:column;align-items:stretch;gap:3px}.up-sport{width:auto}}.shelf{margin-top:30px}.shelf h2{font-size:18px}.shelf-note{margin:4px 0 14px;font-size:13px}.shelf-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.shelf-item{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px 12px}.shelf-icon{width:24px;height:24px;border-radius:6px;flex:none}.shelf-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-links{display:flex;gap:12px;flex:none}.shelf-links a{font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap}.shelf-links a:hover{text-decoration:underline}.foot{margin-top:32px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;display:flex;flex-direction:column;gap:4px}.foot a{color:var(--accent)}.controls{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.chip{padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text-dim);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.chip:hover{background:var(--card-hover);color:var(--text)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip-select{display:inline-flex;align-items:center;gap:5px}.chip-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:inherit;font:inherit;cursor:pointer;padding-right:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.row-right{display:flex;align-items:center;gap:6px;flex:none}.row-net{font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--text-faint);border:1px solid var(--border);border-radius:5px;padding:1px 5px;white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}.card-net{margin-left:8px;font-size:10px;font-weight:700;color:var(--text-faint);border:1px solid var(--border);border-radius:5px;padding:1px 5px;white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;width:100%;max-width:460px;max-height:85vh;overflow-y:auto}.modal h2{margin:0 0 4px;font-size:18px}.modal-note{margin:0 0 14px;font-size:13px}.svc-group{border:none;padding:0;margin:0 0 14px}.svc-group legend{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-weight:700;padding:0;margin-bottom:8px}.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}.svc{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--border);border-radius:9px;font-size:13px;cursor:pointer;background:var(--bg-soft)}.svc.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.svc input{accent-color:var(--accent)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:6px}.btn-primary{padding:8px 18px;border-radius:9px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;cursor:pointer}.btn-link{background:none;border:none;color:var(--text-dim);font:inherit;text-decoration:underline;cursor:pointer}.svc-icon{border-radius:5px;flex:none}.svc-sport{font-weight:600}
