/* Theme (2026-10-06): light is the default (the original palette); <html data-theme="dark"> switches to dark. */
:root{--bg:#E3E6EC;--surface:#F2F3F6;--surface-2:#DEE1E9;--border:#D3D9E6;--text:#111827;--text-muted:#526078;--accent:#4F46E5;--success:#087F5B;--warning:#A66A00;--danger:#D6293E;--dim:#7A8499;--on-accent:#FFFFFF;--on-success:#FFFFFF;--midnight:#08131F;--card-border:#E1E4EC;--shadow:rgba(16,24,40,.04);--shadow-strong:rgba(16,24,40,.14);--overlay:rgba(8,19,31,.55);--popup-shadow:rgba(8,19,31,.25);--toast-shadow:rgba(8,19,31,.22);--focus-inner:#FFFFFF;--focus-outer:#000000;--warning-tint:rgba(166,106,0,.12);--warning-tint-soft:rgba(166,106,0,.07);--danger-tint:rgba(214,41,62,.1);--danger-tint-soft:rgba(214,41,62,.05);--success-tint:rgba(8,127,91,.12);--success-ring:rgba(63,207,142,.1);--accent-tint:rgba(79,70,229,.08);--accent-border:rgba(79,70,229,.4);--count-bg:rgba(0,0,0,.12);--inset-bg:rgba(0,0,0,.14);--divider-soft:rgba(255,255,255,.12);--on-court:#16A34A;--pf4:#B45309;--pf5:#DC2626;--cup:#8A5300;--dot-edge:transparent;--seg-raised:#F2F3F6;--surface2:var(--surface-2);--line:var(--border);--muted:var(--text-muted);--good:var(--success);--star:var(--warning);--bad:var(--danger);--fs-title:17px;--fs-primary:15px;--fs-secondary:13px;--fs-label:11px;color-scheme:light}
:root[data-theme="dark"]{--bg:#0F1115;--surface:#181B21;--surface-2:#20242C;--border:#2A2F38;--text:#E6E8EB;--text-muted:#9AA1AB;--accent:#5B9CFF;--success:#22C55E;--warning:#F5B942;--danger:#EF5350;--dim:#737B87;--on-accent:#0F1115;--on-success:#0F1115;--midnight:#E6E8EB;--card-border:#2A2F38;--shadow:rgba(0,0,0,.35);--shadow-strong:rgba(0,0,0,.5);--overlay:rgba(0,0,0,.65);--popup-shadow:rgba(0,0,0,.55);--toast-shadow:rgba(0,0,0,.5);--focus-inner:#0F1115;--focus-outer:#E6E8EB;--warning-tint:rgba(245,185,66,.14);--warning-tint-soft:rgba(245,185,66,.08);--danger-tint:rgba(239,83,80,.16);--danger-tint-soft:rgba(239,83,80,.08);--success-tint:rgba(34,197,94,.16);--success-ring:rgba(34,197,94,.18);--accent-tint:rgba(91,156,255,.14);--accent-border:rgba(91,156,255,.5);--count-bg:rgba(255,255,255,.12);--inset-bg:rgba(0,0,0,.25);--divider-soft:rgba(255,255,255,.12);--on-court:#22C55E;--pf4:#F5B942;--pf5:#EF5350;--cup:#F5B942;--dot-edge:rgba(230,232,235,.6);--seg-raised:#2E3440;color-scheme:dark}
    /* 2026-09-25: .shell-nav switched from position:fixed to a real flex
       child (see body/.wrap/.shell-nav below) after four separate fixed-
       positioning workarounds (GPU-layer promotion, forced reflow, a
       scroll nudge, then direct measurement-and-correction) all failed to
       reliably fix a WKWebView bug where the nav rendered with a visible
       gap below it specifically on the very first cold-launch render,
       self-correcting only once a real touch happened. Flex layout
       computes position as part of normal layout flow, not as an
       out-of-flow viewport-relative calculation, so it doesn't go through
       whatever compositing path was glitching -- this sidesteps the bug
       category entirely rather than trying to out-guess it again. body is
       now the single flex column filling the true viewport height
       (height:100dvh, not just min-height, so it never grows taller than
       the screen); .wrap is the one scrolling region inside it
       (flex:1 + min-height:0, the classic flexbox fix that lets a flex
       item's own overflow:auto actually engage instead of forcing the
       column to grow); .shell-nav is simply the last flex child, so it's
       always visually pinned to the bottom of whatever space .wrap didn't
       use -- no position/z-index/transform trickery needed at all. */
    *{box-sizing:border-box}/* No double-tap zoom anywhere (2026-10-10, "if i double tap on the app it zooms in but its usually a mistake"); pinch zoom still works. */html,body{height:100%;touch-action:manipulation}body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-feature-settings:'tnum' 1,'cv11' 1;-webkit-font-smoothing:antialiased;overscroll-behavior:none;height:100dvh;height:var(--app-height,100dvh);display:flex;flex-direction:column;overflow:hidden}.wrap{max-width:760px;width:100%;margin:auto;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:calc(8px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 18px calc(14px + env(safe-area-inset-left))}.sub{color:var(--muted);font-size:var(--fs-secondary);font-weight:400;text-align:right;margin:4px 0 16px}.safe-area-top-mask{position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);background:var(--bg);z-index:30;pointer-events:none}
.shell-nav{flex-shrink:0;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:var(--surface);border-top:1px solid var(--line);padding:6px calc(6px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(6px + env(safe-area-inset-left));box-sizing:border-box;max-width:760px;margin:0 auto}.navbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px;min-width:44px;padding:6px 4px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:700;font-size:11px;cursor:pointer;text-align:center;font-family:inherit;transition:color .12s ease}.navbtn-icon{display:flex;align-items:center;justify-content:center;line-height:1}.navbtn-icon svg{width:17px;height:17px;flex-shrink:0}.navbtn-label{overflow-wrap:anywhere;line-height:1.15}.navbtn.active{background:transparent;color:var(--accent);font-weight:800}.navbtn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-inner),0 0 0 5px var(--focus-outer)}.panel{display:block}.panel[hidden]{display:none!important}.banner{background:var(--surface);border:1px solid var(--accent);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:12.5px}.game-switcher{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;box-shadow:0 1px 2px var(--shadow)}.game-switcher>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:13.5px;font-weight:700;color:var(--text)}.game-switcher>summary::-webkit-details-marker{display:none}.game-switcher>summary::after{content:'';width:9px;height:9px;margin-left:auto;border-right:3px solid var(--accent);border-bottom:3px solid var(--accent);border-radius:1px;transform:rotate(45deg);transition:transform .15s ease;flex-shrink:0}.game-switcher[open]>summary::after{transform:rotate(225deg)}.game-switcher-list{padding:0 12px 12px}.banner b{color:var(--accent)}.state-strip{border-left:3px solid var(--dim);border-radius:4px;background:var(--bg);margin-bottom:14px;font-size:12.5px}.state-strip summary{cursor:pointer;padding:8px 12px;font-weight:600;color:var(--muted);list-style:none}.state-strip summary::-webkit-details-marker{display:none}.state-strip[data-tone="failure"]{border-left-color:var(--bad);background:var(--danger-tint-soft)}.state-strip[data-tone="failure"] summary{color:var(--bad);font-weight:700}.state-strip-detail{padding:0 12px 10px;color:var(--muted)}.state-strip-retry{padding:0 12px 10px}.search{width:100%;background:var(--surface);border:1px solid var(--line);color:var(--text);padding:12px 14px;border-radius:10px;font-size:16px;margin-bottom:12px}.search:focus,select:focus,input:focus{outline:none;border-color:var(--accent)}.player-card,.leader-row,.fixture-card,.alert-row{background:var(--surface);border:1px solid var(--card-border);border-radius:12px;margin-bottom:8px;box-shadow:0 1px 2px var(--shadow)}.player-card{padding:13px 14px}.player-card.watching,.leader-row.watching{border-color:var(--star)}
.leader-row.is-cut{background:var(--surface2)}
.leader-row.is-cut>:not(.star){opacity:.5}.p-top{display:flex;align-items:center;gap:10px}.star{background:none;border:0;cursor:pointer;color:var(--dim);padding:0;display:inline-flex;align-items:center;justify-content:center}.star.on{color:var(--star)}.star-icon{width:19px;height:19px;display:block;transition:transform .12s ease}.star:active .star-icon{transform:scale(.88)}.p-name{font-weight:700;flex:1;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:-.01em}.p-meta{font-size:12.5px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{font-size:11.5px;padding:5px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface2);color:var(--muted);cursor:pointer;font-weight:700;transition:transform .12s ease}.chip.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent);transform:scale(1.02)}.starter-badge{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-tint);border:1px solid var(--accent);border-radius:4px;padding:1px 5px;margin-left:4px;line-height:1.5;vertical-align:middle}.section-title{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:24px 0 10px;border-bottom:1px solid var(--line);padding-bottom:6px}.threshold-panel{background:var(--surface);border:1px solid var(--card-border);border-radius:12px;padding:14px;box-shadow:0 1px 2px var(--shadow)}.form-row{display:grid;grid-template-columns:1.3fr 1fr .8fr auto;gap:7px;align-items:end}#nblPanel .form-row{grid-template-columns:1.2fr 1fr .9fr .8fr auto}.form-row label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:4px;font-weight:700}select,input{width:100%;background:var(--surface2);border:1px solid var(--line);color:var(--text);padding:9px;border-radius:7px;font-size:16px}.btn{background:var(--accent);color:var(--on-accent);border:0;padding:10px 14px;border-radius:7px;font-weight:800;cursor:pointer}.btn:disabled{opacity:.55;cursor:default}.btn-icon{width:15px;height:15px;vertical-align:-3px;margin-right:6px}.empty{text-align:center;color:var(--muted);padding:35px 0;font-size:13px}.fixture-card{display:flex;justify-content:space-between;align-items:center;padding:8px 11px;cursor:pointer;gap:8px}.fixture-card.active{border:2px solid var(--star);background:var(--warning-tint-soft)}.fixture-card.disabled{cursor:default;opacity:.6}.fixture-teams{font-size:12px;font-weight:500;line-height:1.3;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:-.01em}.fixture-team-logo{width:14px;height:14px;object-fit:contain;vertical-align:-2px;margin:0 3px 0 0}.fixture-meta{font-size:12.5px;color:var(--muted);margin-top:2px}.fixture-status{font-size:9px;padding:2px 7px;border-radius:20px;background:var(--surface2);font-weight:800;white-space:nowrap}.fixture-status.live{color:var(--good)}.fixture-status.scheduled{color:var(--bad)}.fixture-status.final{color:var(--muted)}.lineup-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.lineup-row{display:flex;align-items:center;gap:10px;width:100%;background:var(--surface);border:1px solid var(--card-border);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--text);text-align:left;cursor:pointer;font-family:inherit;box-shadow:0 1px 2px var(--shadow)}.lineup-row.watching{border-color:var(--star)}.lineup-row .star{color:var(--dim);flex-shrink:0}.lineup-row .star-icon{width:16px;height:16px}.lineup-row .star.on{color:var(--star)}.leader-wrap{overflow-x:auto}/* Leader grid = 6 cols: star,pos,player,score,today,thru. Header markup (~line 74) and renderGolf()'s row template (~line 996) both hardcode 6 children to match this column count — update both together if a column is ever added or removed. */.leader-head,.leader-row{display:grid;grid-template-columns:30px 34px minmax(0,1fr) 46px 44px 58px;align-items:center;gap:4px;min-width:0}.leader-head{font-size:11px;color:var(--muted);text-transform:uppercase;padding:0 10px 7px}.leader-row{padding:10px}.leader-pos{font-weight:800}.leader-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:-.01em}.leader-score{font-weight:800;text-align:right;font-variant-numeric:tabular-nums}.leader-today,.leader-thru{text-align:right;font-size:12px;color:var(--muted)}.leader-thru{white-space:nowrap}.leader-head-today{text-align:right}.leader-today{font-variant-numeric:tabular-nums}.golf-starred-wrap{overflow-x:auto;margin-bottom:14px;border:1px solid var(--card-border);border-radius:12px;background:var(--surface);box-shadow:0 1px 2px var(--shadow)}.golf-starred-table{width:100%;min-width:650px;border-collapse:collapse;font-size:12px}.golf-starred-table th{background:var(--surface2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:9px 8px;text-align:right;border-bottom:1px solid var(--line)}.golf-starred-table th:nth-child(2){text-align:left}.golf-starred-table td{padding:10px 8px;text-align:right;border-bottom:1px solid var(--line);font-weight:700;font-variant-numeric:tabular-nums}.golf-starred-table td:nth-child(2){text-align:left;white-space:nowrap}.golf-starred-table tr:last-child td{border-bottom:0}
.golf-starred-table tr.is-cut td{background:var(--surface2)}
.golf-starred-table tr.is-cut td:not(.star-cell){opacity:.5}.status-pill{display:inline-block;padding:3px 7px;border-radius:999px;background:var(--surface2);font-size:11px;color:var(--muted);white-space:nowrap}.status-pill.on-course{color:var(--good)}.status-pill.finished{color:var(--accent)}.golf-tools{display:grid;gap:8px;margin-bottom:12px}.golf-tools--search{grid-template-columns:1fr auto}.tiny{font-size:11.5px;color:var(--muted);margin:8px 0 14px}.rm{background:none;border:0;color:var(--dim);font-size:17px;cursor:pointer}.fired{color:var(--good);font-size:11px;font-weight:700}.err{color:var(--bad)!important}.schedule-card{background:var(--surface);border:1px solid var(--card-border);border-radius:12px;padding:10px 13px;margin-bottom:8px;cursor:pointer;box-shadow:0 1px 2px var(--shadow)}.schedule-card.ready{border:2px solid var(--star);background:var(--warning-tint-soft)}.schedule-name{font-size:13px;font-weight:700;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:-.01em}.schedule-meta{font-size:12px;color:var(--muted);margin-top:2px}.schedule-actions{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}.schedule-id-input{width:140px;max-width:38vw;flex:0 1 140px}.btn-sm{padding:6px 10px;font-size:11px;border-radius:10px}.watched-wrap{overflow-x:auto;overflow-y:auto;max-height:260px;-webkit-overflow-scrolling:touch;margin-bottom:14px;border:1px solid var(--card-border);border-radius:12px;background:var(--surface);box-shadow:0 1px 2px var(--shadow)}.watched-table{width:100%;min-width:645px;border-collapse:collapse;font-size:11px;table-layout:fixed}.watched-table th{position:sticky;top:0;background:var(--surface2);color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.03em;padding:7px 5px;text-align:right;border-bottom:1px solid var(--line)}.watched-table th:first-child{width:30px}.watched-table th:nth-child(2){text-align:left;width:135px}.watched-table th.stat-th{width:36px}.watched-table td{padding:8px 5px;text-align:right;border-bottom:1px solid var(--line);font-weight:700;font-variant-numeric:tabular-nums}.watched-table tr:last-child td{border-bottom:0}.watched-table td:nth-child(2){text-align:left;width:135px;overflow:hidden}
.watched-table td:nth-child(2) .name-row{display:flex;align-items:center;gap:2px;overflow:hidden}
.watched-table td:nth-child(2) .nm{white-space:normal;word-break:break-word;line-height:1.25;min-width:0}
.watched-table td:nth-child(2) .starter-badge{flex:0 0 auto}.watched-table .star-cell{width:30px;text-align:center}.dash-grid{display:grid;gap:14px}.dash-card{background:var(--surface);border:1px solid var(--card-border);border-radius:12px;padding:14px;box-shadow:0 1px 2px var(--shadow)}.dash-card h2{font-size:var(--fs-title);font-weight:600;color:var(--midnight);font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.dash-card-link{cursor:pointer;-webkit-tap-highlight-color:transparent}.dash-card-link:hover{color:var(--accent)}.dash-card-logo{display:inline-block;width:auto;object-fit:contain;vertical-align:-3px;margin-right:2px}.dash-count{color:var(--on-accent);background:var(--accent);font-weight:800;font-variant-numeric:tabular-nums;font-size:var(--fs-label);padding:2px 8px;border-radius:999px;margin-left:auto}.dash-player{display:flex;align-items:flex-start;gap:9px;padding:10px 0;border-top:1px solid var(--line)}.dash-player:first-of-type{border-top:0}.dash-main{flex:1;min-width:0}.dash-name{font-weight:700;color:var(--midnight);font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:-.01em}.dash-meta{font-size:11px;color:var(--muted);margin-top:3px}.dash-stats{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.dash-stat{background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:10.5px;font-weight:600}.dash-empty{color:var(--muted);font-size:12px;padding:10px 0}.dash-note{font-size:12px;color:var(--muted);margin-bottom:12px}.watched-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px}.list-label{font-size:12px;color:var(--muted);margin:7px 0 9px}.stat-abbr{font-variant-numeric:tabular-nums}.app-topbar{display:flex;align-items:center;height:44px}.app-topbar-btn{display:flex;align-items:center;background:none;border:0;padding:0;margin:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.brand-wordmark{height:26px;width:auto;display:block}.monitor-card{background:linear-gradient(145deg,var(--surface),var(--surface2));border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:14px}.monitor-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.monitor-title{font-weight:700;color:var(--midnight);font-size:14px;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:-.01em}.health-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700;text-transform:uppercase}.health-dot{width:8px;height:8px;border-radius:50%;background:var(--dim)}.health-pill.healthy .health-dot,.health-pill.running .health-dot{background:var(--good);box-shadow:0 0 0 4px var(--success-ring)}.health-pill.delayed .health-dot{background:var(--star)}.health-pill.stopped .health-dot{background:var(--bad)}.monitor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:13px}.monitor-stat{background:var(--inset-bg);border:1px solid var(--line);border-radius:10px;padding:10px}.monitor-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.monitor-value{font-size:13px;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums}.monitor-error{color:var(--bad);font-size:11px;margin-top:10px}.activity-card{background:var(--surface);border:1px solid var(--card-border);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px var(--shadow)}.activity-item{padding:11px 13px;border-top:1px solid var(--line)}.activity-item:first-child{border-top:0}.activity-title{font-size:12px;font-weight:700}.activity-meta{font-size:11px;color:var(--muted);margin-top:3px}.activity-fail .activity-title{color:var(--bad)}.chevron-details{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px var(--shadow);margin:16px 0;overflow:hidden}.chevron-details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:700;color:var(--text)}.chevron-details>summary .dash-count{margin-left:0}.chevron-details>summary::-webkit-details-marker{display:none}.chevron-details>summary::after{content:'';width:8px;height:8px;margin-left:auto;border-right:3px solid var(--accent);border-bottom:3px solid var(--accent);border-radius:1px;transform:rotate(45deg);transition:transform .15s ease;flex-shrink:0}.chevron-details[open]>summary{border-bottom:1px solid var(--line)}.chevron-details[open]>summary::after{transform:rotate(225deg)}.chevron-details .activity-card{background:transparent;border:0;border-radius:0;box-shadow:none}.chevron-details .chevron-details{margin:8px 10px}.chevron-details>.chevron-body{padding:0 2px 8px}.nbl-cat{margin:0;scroll-margin-top:12px}.nbl-cat[open]>*:not(summary){animation:nblCatReveal .18s ease}.nbl-cat>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:13px 2px;margin:0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;font-size:15px;font-weight:700;color:var(--text);min-height:48px;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transition:background-color .12s ease}.nbl-cat>summary:active{background:var(--surface2)}.nbl-cat>summary::-webkit-details-marker{display:none}.nbl-cat>summary::after{content:'';width:9px;height:9px;margin-left:auto;border-right:3px solid var(--accent);border-bottom:3px solid var(--accent);border-radius:1px;transform:rotate(45deg);transition:transform .15s ease;flex-shrink:0}.nbl-cat[open]>summary::after{transform:rotate(225deg)}.nbl-cat>summary .cat-count{color:var(--muted);font-weight:600;text-transform:none}.nbl-cat.nbl-past>summary,.nbl-cat.nbl-future>summary{color:var(--muted)}.nbl-cat.nbl-past>summary::after,.nbl-cat.nbl-future>summary::after{border-color:var(--dim)}.cat-subhead{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 4px 4px}.nbl-injury-team{padding:10px 13px;border-top:1px solid var(--line)}.nbl-injury-team:first-child{border-top:0}.nbl-injury-team-name{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.nbl-injury-row{display:flex;align-items:baseline;gap:7px;padding:3px 0;font-size:12.5px}.nbl-injury-player{font-weight:700;color:var(--midnight)}.nbl-injury-status{background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700}.nbl-injury-body{color:var(--muted);font-size:11px}.nbl-news-item{padding:10px 13px;border-top:1px solid var(--line)}.nbl-news-item:first-child{border-top:0}.nbl-news-head{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.nbl-news-team{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;flex-shrink:0}.nbl-news-headline{font-size:12.5px;font-weight:700;color:inherit;text-decoration:none}.nbl-news-meta{font-size:11px;color:var(--muted);margin-top:3px}.nbl-news-status{font-size:10px;font-weight:800;color:var(--muted);background:var(--surface2);text-transform:uppercase;letter-spacing:.02em;padding:1px 7px;border-radius:999px;white-space:nowrap;flex-shrink:0}@media(max-width:600px){.form-row{grid-template-columns:1fr 1fr}.form-row .btn{grid-column:1/-1}.form-row>div:first-child{grid-column:1/-1}.golf-tools .btn{grid-column:1/-1}}.loading-bar{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:9999;opacity:0;pointer-events:none;transition:opacity .15s}.loading-bar.active{opacity:1;animation:loadingBarSlide 1s ease-in-out infinite}@keyframes loadingBarSlide{0%{width:0;left:0}50%{width:55%;left:22%}100%{width:0;left:100%}}@keyframes nblCatReveal{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.navbtn{transition:none!important}.loading-bar.active{animation:none;width:100%}.nbl-cat[open]>*:not(summary){animation:none}}.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}
  
    .region-skeleton{display:grid;gap:8px;padding:12px 0}.region-skeleton span{display:block;height:42px;border-radius:10px;background:var(--surface2);opacity:.75;animation:skeletonPulse 1.2s ease-in-out infinite}.region-skeleton span:first-child{width:72%}@keyframes skeletonPulse{50%{opacity:.42}}@media(prefers-reduced-motion:reduce){.region-skeleton span{animation:none}}
    .cut-line-row{border-style:dashed;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:800}.cut-line-content{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px}.cut-line-score{color:var(--text);font-variant-numeric:tabular-nums}
    .nbl-score-header{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px;box-shadow:0 1px 2px var(--shadow)}.nbl-score-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.nbl-score-team{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:0;text-align:center}.nbl-score-team-away{flex-direction:column-reverse;text-align:center}.nbl-team-logo{width:28px;height:28px;object-fit:contain;flex-shrink:0}.nbl-score-team .nbl-team-logo{width:52px;height:52px}.nbl-team-name{font-weight:700;font-size:12.5px;white-space:normal;line-height:1.15}.nbl-score-nums{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;padding:0 6px}.nbl-score-nums-row{display:flex;align-items:center;gap:10px;font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}.nbl-score-num{color:var(--muted)}.nbl-score-num.lead{color:var(--text)}.nbl-score-pill{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);background:var(--surface2);border-radius:999px;padding:3px 10px;white-space:nowrap}.nbl-score-pill.live{color:var(--on-success);background:var(--good)}.nbl-team-extra{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:11px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.3}.nbl-team-fouls.bonus{color:var(--bad);font-weight:800}.nbl-score-info{text-align:center;margin-top:10px;font-size:12px;color:var(--muted)}.nbl-quarter-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}.nbl-quarter-table th{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:6px 4px;text-align:right;border-bottom:1px solid var(--line)}.nbl-quarter-table th:first-child,.nbl-quarter-table td:first-child{text-align:left}.nbl-quarter-table td{padding:7px 4px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);border-bottom:1px solid var(--line)}.nbl-quarter-table td.hi{color:var(--text);font-weight:700}.nbl-quarter-table td.tot{color:var(--text);font-weight:800}.nbl-quarter-table tr:last-child td{border-bottom:0}.nbl-quarter-abbr{font-weight:700;color:var(--text)}
    .nbl-sticky-score{position:sticky;top:0;z-index:20;height:0;overflow:visible}.nbl-sticky-inner{opacity:0;transform:translateY(-6px);transition:opacity .15s ease,transform .15s ease;background:var(--surface);border-bottom:1px solid var(--line)}.nbl-sticky-score.visible .nbl-sticky-inner{opacity:1;transform:translateY(0)}.nbl-sticky-row{display:flex;align-items:center;gap:8px;padding:10px 4px;max-width:760px;margin:0 auto}.nbl-sticky-team{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.nbl-sticky-team-away{flex-direction:row-reverse;text-align:right}.nbl-sticky-logo{width:20px;height:20px;object-fit:contain;flex-shrink:0}.nbl-sticky-code{font-size:13px;font-weight:700;color:var(--text)}.nbl-sticky-score-num{font-size:15px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}.nbl-sticky-score-num.lead{color:var(--text)}.nbl-sticky-pill{flex-shrink:0}@media(prefers-reduced-motion:reduce){.nbl-sticky-inner{transition:none}}.nbl-box-controls{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}.nbl-box-seg{display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface2)}.nbl-box-seg button{border:0;background:none;border-radius:8px;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;font-weight:600;color:var(--muted);padding:8px 12px;min-height:36px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.nbl-box-seg button[aria-pressed="true"]{background:var(--seg-raised);color:var(--accent);font-weight:700;box-shadow:0 1px 2px var(--shadow-strong)}.nbl-box-seg img{width:14px;height:14px;object-fit:contain}.nbl-box-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.nbl-box-r{display:flex;align-items:center;gap:4px;min-height:48px;padding:6px 8px;border-top:1px solid var(--line);font-size:16px;font-variant-numeric:tabular-nums;cursor:pointer}.nbl-box-r:first-child{border-top:0}.nbl-box-r-head{border-top:0;min-height:36px;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;cursor:default}.nbl-box-r-total{background:var(--surface2);font-weight:700;cursor:default}.nbl-box-r .star{width:18px;flex:none}.nbl-box-r-ind{width:10px;flex:none;display:flex;justify-content:center}.nbl-box-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--on-court)}.nbl-box-r-name{flex:1;min-width:0;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-weight:600}.nbl-box-badge{display:inline-block;font-size:11px;font-weight:700;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:0 4px;margin-left:6px;vertical-align:2px;line-height:16px}.nbl-box-team-tag{font-size:12px;color:var(--muted);margin-left:6px;font-weight:600}.nbl-box-stat{width:28px;flex:none;text-align:right;color:var(--text);font-weight:700}.nbl-box-stat-pts{font-weight:800}.nbl-box-stat-pf{width:30px;align-self:stretch;display:flex;align-items:center;justify-content:flex-end}.nbl-box-pf4{color:var(--pf4);font-weight:800}.nbl-box-pf5{color:var(--pf5);font-weight:800}.nbl-box-fouled-out{opacity:.45}.nbl-box-section{font-size:13px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--muted);background:var(--surface2);border-top:1px solid var(--line);height:32px;display:flex;align-items:center;padding:0 12px}.nbl-box-full{display:flex}.nbl-box-pin{width:150px;flex:none;border-right:1px solid var(--line);background:var(--surface)}.nbl-box-scroll{flex:1;overflow-x:auto;-webkit-overflow-scrolling:touch}.nbl-box-scroll-inner{width:max-content}.nbl-box-cell{display:flex;align-items:center;min-height:48px;border-top:1px solid var(--line);font-size:16px;font-variant-numeric:tabular-nums;cursor:pointer}.nbl-box-cell:first-child{border-top:0}.nbl-box-cell-head{border-top:0;min-height:36px;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;cursor:default}.nbl-box-cell-total{background:var(--surface2);font-weight:700;cursor:default}.nbl-box-pin .nbl-box-cell{gap:6px;padding:6px 8px 6px 12px}.nbl-box-c{width:50px;text-align:right;padding-right:8px;flex:none;white-space:nowrap;color:var(--text);font-weight:700}.nbl-box-c-wide{width:66px}.nbl-box-hint{font-size:13px;color:var(--muted);margin-top:10px;display:flex;align-items:center;gap:6px}.on-court-mark{color:var(--good);font-weight:900;margin-left:3px;font-size:14px}.starter-mark{display:inline-block;font-size:9.5px;font-weight:800;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 3px;margin-left:5px;vertical-align:middle;line-height:1.4}.nbl-watched-wrap{overflow-x:auto;margin-bottom:10px;border:1px solid var(--card-border);border-radius:10px;background:var(--surface)}.nbl-watched-table{width:100%;min-width:520px;border-collapse:collapse;font-size:16px}.nbl-watched-table th{background:var(--surface2);color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:12px 10px;text-align:right;border-bottom:1px solid var(--line)}.nbl-watched-table th:nth-child(2){text-align:left}.nbl-watched-table td{padding:12px 10px;text-align:right;border-bottom:1px solid var(--line);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.nbl-watched-table td:nth-child(2){text-align:left;white-space:normal;overflow-wrap:break-word;min-width:120px}.nbl-watched-table tr:last-child td{border-bottom:0}
    .nbl-heading{display:flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:24px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}.nbl-heading:first-of-type{margin-top:0}.nbl-logo-mark{width:20px;height:20px;object-fit:contain;flex-shrink:0;border-radius:4px}    .identity-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:18px;background:var(--overlay)}.identity-overlay[hidden]{display:none!important}.identity-card{width:100%;max-width:340px;background:var(--surface);border-radius:14px;padding:22px 20px;box-shadow:0 8px 30px var(--popup-shadow)}.identity-card h2{margin:0 0 6px;font-size:16px;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif}.identity-card p{margin:0 0 16px;font-size:12.5px;color:var(--muted)}.identity-card input{margin-bottom:10px}.identity-card .btn{width:100%}.identity-error{color:var(--bad);font-size:12px;margin:-4px 0 10px}.identity-error[hidden]{display:none!important}
    .subtabs{display:flex;gap:6px;margin-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.subtab{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;background:var(--surface2);border:1px solid var(--line);color:var(--muted);font-weight:700;font-size:12.5px;padding:8px 14px;border-radius:999px;cursor:pointer;font-family:inherit;white-space:nowrap}.subtab .nbl-logo-mark{width:14px;height:14px;object-fit:contain}.subtab.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.subtab .dash-count{background:var(--count-bg);color:inherit;margin-left:0}.back-btn{display:inline-flex;align-items:center;gap:3px;background:none;border:0;color:var(--accent);font-weight:600;font-size:15px;padding:10px 2px;margin:0 0 6px -2px;min-height:44px;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent}.back-btn:active{opacity:.6}.alert-picker-stats{display:flex;flex-direction:column;gap:0;max-height:min(50vh,320px);overflow-y:auto;margin-bottom:16px;border:1px solid var(--line);border-radius:10px}.alert-picker-stat{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;font-size:14px;font-weight:600;color:var(--text)}.alert-picker-stat:last-child{border-bottom:0}.alert-picker-stat input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.alert-picker-actions{display:flex;gap:16px}.alert-picker-actions .btn{flex:1;width:auto;padding:14px;font-size:15px}.btn-secondary{background:var(--surface2);color:var(--text)}.player-name-cell{cursor:pointer}.breadcrumb{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.player-sheet-meta{font-size:12.5px;color:var(--muted);margin:-8px 0 16px}.player-sheet-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:16px}.player-sheet-stat{display:flex;flex-direction:column;gap:2px}.player-sheet-stat-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.player-sheet-stat-value{font-size:18px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.pull-refresh{height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:12.5px;font-weight:700;transition:color .15s ease}.pull-refresh.armed{color:var(--accent)}.pull-refresh-icon{flex:0 0 auto}.pull-refresh.refreshing .pull-refresh-icon{animation:pullRefreshSpin .7s linear infinite}@keyframes pullRefreshSpin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.pull-refresh{transition:none}.pull-refresh.refreshing .pull-refresh-icon{animation:none}}
/* Mockup redesign Stage 1 (2026-09-25): the one shared fixture-card
   component for live/final/scheduled games -- see nblScoreCardHtml_.
   Replaces the old Today-only .today-live-* / .today-next-* rules (now
   unused everywhere, removed). */
.nbl-fx-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 1px 2px var(--shadow);transition:background-color .1s ease}
.nbl-fx-card:active{background:var(--surface2)}
.nbl-fx-head-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.nbl-fx-action{font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.nbl-fx-action.live{color:var(--accent)}
.nbl-fx-card.live{border-width:1.5px;border-color:var(--good)}
.golf-status-card{cursor:default;margin-bottom:14px}
.nbl-fx-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.nbl-fx-head-left{display:flex;align-items:center;gap:6px;min-width:0}
.nbl-fx-cup{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--cup);flex-shrink:0}
.nbl-fx-cup svg{width:11px;height:11px;flex-shrink:0}
.nbl-rd-cup{width:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--cup)}
.nbl-rd-cup svg{width:13px;height:13px}
.nbl-fx-status{font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text);display:flex;align-items:center}
.nbl-fx-status.live{color:var(--good)}
.nbl-fx-dot{width:8px;height:8px;border-radius:50%;background:var(--good);margin-right:6px;flex-shrink:0}
.nbl-fx-chevron{color:var(--dim);font-size:var(--fs-primary);line-height:1;flex-shrink:0}
.nbl-fx-team-row{display:flex;align-items:center;gap:10px;padding:4px 0}
.nbl-fx-logo{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.nbl-fx-logo img{width:28px;height:28px;object-fit:contain;display:block}
.nbl-fx-name{flex:1;min-width:0;font-size:15px;font-weight:600;color:var(--text);font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nbl-fx-score{font-size:20px;font-weight:700;color:var(--text);flex-shrink:0;font-variant-numeric:tabular-nums}
.nbl-fx-score.muted{font-weight:500;color:var(--muted)}
.nbl-fx-row-wrap{display:flex;align-items:center;gap:12px}
.nbl-fx-teams-col{flex:1;min-width:0}
.nbl-fx-time{text-align:right;border-left:1px solid var(--line);padding-left:14px;flex-shrink:0}
.nbl-fx-time-num{font-size:18px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.nbl-fx-time-ampm{font-size:12px;color:var(--muted);font-weight:600}
.nbl-fx-venue{font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);margin-top:10px;padding-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Mockup redesign Stage 2: hero's "nothing to show" fallback. */
.nbl-hero-empty{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px 16px;text-align:center;color:var(--muted);font-size:var(--fs-primary);margin-bottom:14px}
/* Mockup redesign Stage 3 (statalert_round_accordion_expanded.html):
   compact per-game rows inside round accordions -- NOT full cards, no
   venue, fixed-width left "when" column, 20px logos. */
.nbl-rd-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent}
.nbl-rd-row:active{background:var(--surface2)}
.nbl-rd-when{width:58px;flex-shrink:0;font-size:12px;color:var(--muted);line-height:1.35}
.nbl-rd-when.live{color:var(--good);font-weight:600}
.nbl-rd-time-primary{color:var(--text);font-weight:700}
.nbl-rd-teams{flex:1;min-width:0}
.nbl-rd-team{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.3;padding:2px 0}
.nbl-rd-team-name{flex:1;min-width:0;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nbl-rd-team.lead .nbl-rd-team-name{font-weight:700}
.nbl-rd-team.trail .nbl-rd-team-name{color:var(--muted)}
.nbl-rd-logo{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.nbl-rd-logo img{width:20px;height:20px;object-fit:contain;display:block}
.nbl-rd-score{width:28px;flex-shrink:0;text-align:right;font-size:14px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.nbl-rd-team.trail .nbl-rd-score{font-weight:400;color:var(--muted)}
.nbl-rd-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--good);margin-right:4px;vertical-align:1px}
/* Today tab (redesign 2026-10-03, docs/today-tab-spec.md): one card per
   event, built by todayBuildView_/todayViewHtml_ in app.js. Existing tokens
   only -- same surfaces, borders, status colours and type scale as the rest
   of the app. Text wraps rather than truncating so nothing important is cut
   off at large Android font sizes; every tappable thing is 44px+. */
/* color-scheme now set per theme in the token blocks at the top. */

.t-section{margin-bottom:20px}
.t-section-label{display:flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line);line-height:18px}
.t-pills{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.t-pill{font-size:var(--fs-secondary);line-height:16px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--surface);color:var(--dim);border:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
.t-pill.pending{background:var(--warning-tint);color:var(--star);border-color:transparent}
.t-pill.landed{background:var(--success-tint);color:var(--good);border-color:transparent}
.t-pill.missed{background:var(--danger-tint);color:var(--bad);border-color:transparent}
.t-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px var(--shadow)}
.t-card.live{border-width:1.5px;border-color:var(--good)}
.t-tap{cursor:pointer;-webkit-tap-highlight-color:transparent}
.t-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.t-status{display:flex;align-items:center;min-width:0;font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text);overflow-wrap:anywhere}
.t-status.live{color:var(--good)}
.t-warn{flex-shrink:0;font-size:12px;font-weight:700;color:var(--star);background:var(--warning-tint);border-radius:999px;padding:2px 8px;white-space:nowrap}
.t-team{display:flex;align-items:center;gap:10px;padding:4px 0;font-size:15px;font-weight:600;color:var(--text)}
.t-team.trail .t-score{font-weight:500;color:var(--muted)}
.t-team-name{flex:1;min-width:0;overflow-wrap:anywhere;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.t-score{flex-shrink:0;font-size:20px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.t-divider{height:1px;background:var(--line);margin:12px 0}
.t-alert{margin-bottom:12px}
.t-alert-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:var(--fs-primary)}
.t-alert-who{min-width:0;overflow-wrap:anywhere}
.t-alert-name{font-weight:700;color:var(--text)}
.t-alert-target{color:var(--muted);margin-left:6px;white-space:nowrap}
.t-alert-count{flex-shrink:0;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.t-alert-count.landed{color:var(--good)}
.t-alert-count.missed{color:var(--bad)}
.t-bar{height:6px;background:var(--surface2);border-radius:3px;margin-top:7px;overflow:hidden}
.t-bar>div{height:100%;background:var(--star);border-radius:3px}
@media(prefers-reduced-motion:no-preference){.t-bar>div{transition:width .4s ease}}
.t-star-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;column-gap:10px;font-size:14px;color:var(--muted);padding:3px 0}
.t-star-name{min-width:0;overflow-wrap:anywhere}
.t-star{color:var(--star)}
.t-star-stats{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.t-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:4px 0 -10px;font-size:var(--fs-secondary);color:var(--dim)}
.t-nbl-foot{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.t-venue{min-width:0;overflow-wrap:anywhere}
.t-link{flex-shrink:0;min-height:44px;min-width:44px;padding:0 6px;margin-right:-6px;border:0;background:none;font:inherit;font-size:var(--fs-secondary);font-weight:700;color:var(--accent);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.t-set-alert{display:block;width:100%;min-height:44px;margin-top:12px;padding:10px;font:inherit;font-size:14px;font-weight:600;color:var(--accent);background:transparent;border:1.5px dashed var(--accent-border);border-radius:10px;cursor:pointer;touch-action:manipulation}
.t-row-btn{width:100%;min-height:48px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;column-gap:10px;row-gap:2px;font:inherit;font-size:var(--fs-primary);text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.t-final-detail+.t-row-btn{margin-top:8px}
.t-row-matchup{font-weight:600;font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}
.t-row-meta{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.t-landed{color:var(--good)}
.t-missed{color:var(--bad)}
.t-chev{display:inline-block;color:var(--dim)}
.t-row-btn[aria-expanded="true"] .t-chev{transform:rotate(90deg)}
.t-final-detail{padding:12px 16px 0}
.t-final-detail[hidden]{display:none}
.t-final-link{display:block;margin:-6px -6px 0 auto}
.t-golf-sub{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin-bottom:10px}
.t-golf-event{min-width:0;overflow-wrap:anywhere}
.t-lb{display:grid;grid-template-columns:minmax(34px,auto) minmax(0,1fr) auto;column-gap:10px;row-gap:7px;align-items:baseline;font-size:var(--fs-primary)}
.t-lb-pos{color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.t-lb-name{min-width:0;overflow-wrap:anywhere;color:var(--text);font-weight:600}
.t-lb-name.mine{font-weight:700}
.t-lb-name.out,.t-lb-sc.out{color:var(--dim);font-weight:400}
.t-lb-sc{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.t-lb-more{color:var(--dim);font-size:12px;font-weight:400;white-space:nowrap}
.t-lb-label{font-size:12px;font-weight:600;color:var(--dim);margin:12px 0 7px}
.t-lb-empty{font-size:var(--fs-secondary);color:var(--muted)}
.t-empty{text-align:center;padding:40px 20px 24px}
.t-empty h2{font-size:18px;font-weight:700;color:var(--midnight);margin:0 0 6px}
.t-empty p{font-size:14px;color:var(--muted);margin:0 0 18px;line-height:1.5}
.t-empty-next{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:14px;text-align:left}
.t-empty-next-val{color:var(--accent);font-weight:600}
.t-load-error{font-size:var(--fs-secondary);color:var(--bad);margin:0 0 12px 4px}
.t-skel-pills span{display:block;width:84px;height:30px;border-radius:999px;background:var(--surface2)}
.t-skel-label::before{content:"";display:block;width:72px;height:18px;border-radius:4px;background:var(--surface2)}
.t-skel-card{height:172px;box-shadow:none}
.t-skel-card-nbl{height:212px}
.t-skel-pills span,.t-skel-label,.t-skel-card{animation:skeletonPulse 1.2s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.t-skel-pills span,.t-skel-label,.t-skel-card{animation:none}}
/* Confirmation toast (2026-09-25): "OK" on the NBL alert-picker popup only
   ever confirmed via #statusLine, which lives at the very top of .wrap --
   scrolled out of view once you're down at the box score where the star tap
   actually happened, so saving looked like it did nothing (real feedback).
   Fixed position (outside .wrap, unaffected by scroll) + floats above the
   nav bar so it's visible regardless of where on the page the action fired. */
.toast{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));transform:translate(-50%,10px);display:flex;align-items:center;gap:8px;background:var(--good);color:var(--on-success);font-weight:700;font-size:13.5px;padding:11px 18px;border-radius:999px;box-shadow:0 6px 20px var(--toast-shadow);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:9000;max-width:calc(100vw - 32px)}
.toast[hidden]{display:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.toast-err{background:var(--bad)}
.toast-icon{width:16px;height:16px;flex-shrink:0}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}
/* NBL Fixtures-home top-card wrapper -- purely structural (data-match-id
   anchor for renderNblFixturesListPreserving_'s scroll-preservation); the
   inner .nbl-fx-card supplies its own margin-bottom, which collapses with
   this wrapper's since there's no border/padding between them. */
/* NBL target alerts redesign (2026-09-26, alerts-redesign.html) -- the
   shared alert-row card (nblAlertRowHtml_, both the per-game Alerts tab and
   Today's alerts-by-game section) plus the New-alert form's stat-label,
   stepper, and Today's tally/per-game grouping. */
.nbl-alert-form-label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:4px;font-weight:700}
.nbl-alert-stepper{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:10px}
/* Real feedback (2026-09-26): fast repeated taps on the old small .btn-sm
   +/- registered as a double-tap, triggering the browser's double-tap-to-
   zoom gesture. touch-action:manipulation tells the browser this element
   only ever needs single taps, so it skips the delay/gesture-detection that
   causes that -- the standard fix, not a workaround. Bigger target (44px,
   the usual minimum tap-target guideline) and a much larger glyph also make
   the buttons themselves easier to hit and read. */
.nbl-alert-stepper-btn{width:44px;height:44px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--surface2);color:var(--accent);font-size:26px;font-weight:800;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.nbl-alert-stepper-btn:active{background:var(--surface)}
/* A typeable input, not just a display span (2026-09-26, real feedback: the
   +/- buttons crowded the quick-pick chips below on mobile, and stepping
   one at a time to reach e.g. 40 points is tedious) -- keeps the +/- for a
   quick nudge, but typing straight in (e.g. "40") works for any stat's
   range without scrolling a long list. Native spinner arrows hidden since
   the flanking +/- buttons already cover that. */
.nbl-alert-value{font-size:18px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;width:72px;text-align:center;background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:8px 4px}
.nbl-alert-value::-webkit-outer-spin-button,.nbl-alert-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.nbl-alert-value{-moz-appearance:textfield}
#nblTQuickPicks{margin-top:12px}
.nbl-alert-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px;transition:opacity .15s ease}
.nbl-alert-row.removing{opacity:.45;pointer-events:none}
#nblAlertList.removing{opacity:.5;pointer-events:none}
@media(prefers-reduced-motion:reduce){.nbl-alert-row{transition:none}.nbl-alert-bar-fill{transition:none}}
.nbl-alert-row-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.nbl-alert-row-player{font-weight:700;color:var(--text);font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.nbl-alert-row-desc{font-size:var(--fs-secondary);color:var(--muted);margin-top:2px}
.nbl-alert-row-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.nbl-alert-pill{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;padding:4px 9px;border-radius:999px;white-space:nowrap}
.nbl-alert-saving{color:var(--muted);background:var(--surface-2);animation:nblSavingPulse 1.2s ease-in-out infinite}
@keyframes nblSavingPulse{50%{opacity:.5}}
.nbl-alert-row.pending .nbl-alert-bar-wrap{opacity:.5}
.nbl-alert-retry{margin-left:6px;padding:4px 10px;font-size:12px}
.nbl-alert-bar-wrap{display:flex;align-items:center;gap:8px;margin-top:10px}
.nbl-alert-bar{position:relative;flex:1;height:6px;border-radius:999px;background:var(--surface2);overflow:visible}
.nbl-alert-bar-fill{position:absolute;top:0;left:0;bottom:0;border-radius:999px;transition:width .2s ease}
.nbl-alert-bar-val{flex-shrink:0;font-size:12px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.nbl-alert-tally{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.nbl-alert-tally-box{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 8px;text-align:center}
.nbl-alert-tally-num{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.nbl-alert-tally-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-top:2px}
.nbl-alert-game{margin-bottom:16px}
.nbl-alert-game-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;padding:0 2px 8px}
.nbl-alert-game-final{color:var(--text);text-transform:none;font-weight:600}
/* NBL Ladder (2026-10-03): reuses the box score's .nbl-box-* rows, segmented control and Full layout */
.nbl-ladder-meta{align-self:center;font-size:13px;font-weight:600;color:var(--muted)}
.nbl-ladder-r{gap:4px;cursor:default}
.nbl-ladder-pos{width:22px;flex:none;text-align:center;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.nbl-box-r-head .nbl-ladder-pos,.nbl-box-cell-head .nbl-ladder-pos{color:var(--muted);font-weight:700}
.nbl-ladder-logo{width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center}
.nbl-ladder-logo img{width:26px;height:26px;object-fit:contain}
.nbl-ladder-name{flex:1;min-width:0;line-height:1.25;overflow-wrap:normal;color:var(--text);font-weight:600;font-size:15px}
.nbl-box-r-head .nbl-ladder-name,.nbl-box-cell-head .nbl-ladder-name{color:var(--muted);font-weight:700}
.nbl-ladder-n{width:22px;font-size:15px;flex:none;text-align:right;color:var(--text);font-weight:700}
.nbl-ladder-p{width:42px;font-size:15px;flex:none;text-align:right;color:var(--text);font-weight:700}
.nbl-box-r-head .nbl-ladder-n,.nbl-box-r-head .nbl-ladder-p{color:var(--muted)}
.nbl-ladder-pin{width:190px}
.nbl-ladder-pin .nbl-box-cell{padding:6px 8px}
.nbl-ladder-card .nbl-box-cell{cursor:default}
.nbl-ladder-cut{position:relative;height:24px;flex:none;border-top:2px solid var(--accent);display:flex;align-items:center;padding:0 8px}
.nbl-ladder-cut span{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);border-radius:999px;padding:2px 9px;line-height:16px}
.nbl-ladder-cut+.nbl-box-r,.nbl-ladder-cut+.nbl-box-cell{border-top:0}
.nbl-ladder-legend{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.4}
.nbl-ladder-updated{font-size:12px;color:var(--dim);margin-top:6px;line-height:1.4}
.nbl-ladder-skel{height:520px;background:var(--surface2);animation:skeletonPulse 1.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.nbl-ladder-skel{animation:none}}
.nbl-ladder-cut-playin{border-top-color:var(--text)}
.nbl-ladder-cut-playin span{background:var(--text);color:var(--surface)}
/* Four NBL subtabs (Fixtures/News/Injuries/Ladder) fit a 384px-wide phone without scrolling */
#nblHomeTabs .subtab{padding:8px 11px}
#nblHomeTabs{gap:5px}
/* NBL News timeline (2026-10-06, polished): mimics "The Latest" on
   nbl.com.au. Geometry: the list is indented 22px; the 2px line's centre is
   6px in; each 10px dot is centred on it (left -21px from the item) and on
   the 18px meta line (top 10px padding + 9px - 5px = 14px), with a 2px ring
   in the page colour so the line seems to pass behind it. Dot = the item's
   team colour (--dot, set inline from NBL_TEAM_COLOURS_), else the accent.
   Day headers sit on the line with no dot. The app is light-only
   (color-scheme: only light), so these are light-theme tokens. */
:root{--pill-feature-bg:#EDE9FE;--pill-feature-fg:#5B21B6;--pill-neutral-bg:#E9ECF2;--pill-neutral-fg:#3F4A5E;--pill-red-bg:#FDE2E4;--pill-red-fg:#A61B2B;--pill-amber-bg:#FDEFD3;--pill-amber-fg:#8A5300;--pill-green-bg:#DCF3E8;--pill-green-fg:#066646;--pill-teal-bg:#D5F2F0;--pill-teal-fg:#0B5F5A;--pill-blue-bg:#DDE8FD;--pill-blue-fg:#1D4FA8;--tl-line:#C3CADB}
:root[data-theme="dark"]{--pill-feature-bg:rgba(167,139,250,.16);--pill-feature-fg:#C4B5FD;--pill-neutral-bg:#2A2F38;--pill-neutral-fg:#C9CED6;--pill-red-bg:rgba(239,83,80,.16);--pill-red-fg:#FF8A87;--pill-amber-bg:rgba(245,185,66,.16);--pill-amber-fg:#F5C76A;--pill-green-bg:rgba(34,197,94,.16);--pill-green-fg:#6EE7A0;--pill-teal-bg:rgba(45,212,191,.14);--pill-teal-fg:#5EEAD4;--pill-blue-bg:rgba(91,156,255,.16);--pill-blue-fg:#93BBFF;--tl-line:#3A404B}
#nblLatestNews,#nblInjuryNewsList{padding:4px 0 0 2px;background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible}
.nbl-tl{list-style:none;margin:0;padding:0 0 0 22px;position:relative}
.nbl-tl::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--tl-line);border-radius:1px}
.nbl-tl-li{position:relative;margin:0}
.nbl-tl-li::before{content:"";position:absolute;left:-21px;top:14px;width:10px;height:10px;box-sizing:border-box;border-radius:50%;background:var(--dot,var(--accent));border:1.5px solid var(--dot-edge);box-shadow:0 0 0 2px var(--bg)}
.nbl-tl-day{position:relative;margin:12px 0 0;padding:4px 0 2px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;line-height:16px;color:var(--muted)}
.nbl-tl-day:first-child{margin-top:0}
.nbl-tl-item{display:flex;flex-direction:column;gap:4px;min-height:44px;padding:10px 10px;margin:0 -10px;border-radius:10px;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .1s ease}
.nbl-tl-item:active{background:var(--surface2)}
.nbl-tl-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:13px;font-weight:400;line-height:18px;color:var(--muted)}
.nbl-tl-title{font-family:inherit;font-size:16px;font-weight:600;line-height:1.35;letter-spacing:normal;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.nbl-pill{display:inline-block;font-size:11px;font-weight:600;line-height:14px;padding:2px 7px;border-radius:4px;white-space:nowrap}
.nbl-pill-feature{background:var(--pill-feature-bg);color:var(--pill-feature-fg)}
.nbl-pill-neutral{background:var(--pill-neutral-bg);color:var(--pill-neutral-fg)}
.nbl-pill-injury,.nbl-pill-red{background:var(--pill-red-bg);color:var(--pill-red-fg)}
.nbl-pill-amber{background:var(--pill-amber-bg);color:var(--pill-amber-fg)}
.nbl-pill-green{background:var(--pill-green-bg);color:var(--pill-green-fg)}
.nbl-pill-teal{background:var(--pill-teal-bg);color:var(--pill-teal-fg)}
.nbl-pill-blue{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}
#nblHomeNews .nbl-box-seg .dash-count{margin-left:2px}
@media(prefers-reduced-motion:reduce){.nbl-tl-item{transition:none}}
/* Settings › Dark mode switch (2026-10-06) */
.theme-row{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;min-height:44px}
.theme-switch{appearance:none;-webkit-appearance:none;flex:none;width:50px;height:30px;margin:0;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);position:relative;cursor:pointer;transition:background-color .15s ease}
.theme-switch::after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:var(--text-muted);transition:transform .15s ease,background-color .15s ease}
.theme-switch:checked{background:var(--accent);border-color:var(--accent)}
.theme-switch:checked::after{transform:translateX(20px);background:var(--on-accent)}
.theme-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.theme-switch:disabled{opacity:.6}
@media(prefers-reduced-motion:reduce){.theme-switch,.theme-switch::after{transition:none}}

/* Wordmark letters follow the theme (light keeps #08131F via --midnight). */
.brand-wordmark [fill="#08131F"]{fill:var(--midnight)}
.nbl-article-prompt{padding:13px;margin-bottom:12px;border-color:var(--accent)}.nbl-article-prompt-title{font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:10px}.nbl-article-prompt-actions{display:flex;gap:8px}.nbl-article-prompt-actions .btn{text-decoration:none;text-align:center;flex:1}
.monitor-load{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.monitor-load .dash-meta{margin-top:4px;line-height:1.4}
.nbl-play{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}.nbl-play:last-child{border-bottom:0}.nbl-play-clock{width:38px;flex-shrink:0;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.nbl-play-main{flex:1;min-width:0}.nbl-play-who{font-size:14px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nbl-play-what{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nbl-play-score{flex-shrink:0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.nbl-play-score b{color:var(--text)}.nbl-play-pts{display:inline-block;margin-right:6px;padding:2px 6px;border-radius:999px;font-size:11px;font-weight:800;color:var(--good);background:var(--success-tint)}.nbl-play.missed .nbl-play-who{color:var(--muted);font-weight:600}#nblPlaysFilter{margin-bottom:6px}
.nbl-play-what.subs{white-space:normal;line-height:1.35}.nbl-play.sub .nbl-play-who{font-size:13px;color:var(--muted)}
.nbl-alert-bar-val .nbl-alert-now{font-size:22px;font-weight:800;line-height:1;letter-spacing:-.01em}.nbl-alert-bar-val .nbl-alert-line{font-size:13px;font-weight:600;color:var(--muted)}.nbl-alert-bar-wrap{gap:10px}
.nbl-notice-card{padding:13px;margin-bottom:12px;border-color:var(--accent)}.nbl-notice-text{white-space:pre-line;font-size:14px;line-height:1.45;color:var(--text);margin-bottom:10px}.nbl-notice-card .btn{width:100%}

/* Notifications bell + list (2026-10-10). */
.app-bell{position:relative;margin-left:auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:22px;background:var(--surface);border:1px solid var(--line);color:var(--midnight);cursor:pointer;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.app-bell-count{position:absolute;top:-3px;right:-3px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:10px;background:var(--bad);color:var(--on-accent);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}
.app-bell-count[hidden]{display:none}
.inbox-overlay{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column;padding:calc(8px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 0 calc(14px + env(safe-area-inset-left))}
.inbox-overlay[hidden]{display:none}
.inbox-head{display:flex;align-items:center;gap:6px;height:44px;max-width:760px;width:100%;margin:0 auto}
.inbox-back{width:44px;height:44px;margin-left:-10px;border:0;background:none;color:var(--midnight);display:flex;align-items:center;justify-content:center;cursor:pointer}
.inbox-title{flex:1;margin:0;font-family:'Inter Tight','Inter',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-weight:800;font-size:22px;color:var(--midnight)}
.inbox-markall{min-height:44px;padding:0 4px;border:0;background:none;font:inherit;font-size:13px;font-weight:700;color:var(--accent);cursor:pointer}
.inbox-filters{display:flex;gap:8px;flex-wrap:wrap;padding:8px 0 10px;max-width:760px;width:100%;margin:0 auto}
.inbox-chip{min-height:36px;padding:0 14px;border-radius:999px;font:inherit;font-size:13px;font-weight:700;background:var(--surface);color:var(--text-muted);border:1px solid var(--line);cursor:pointer}
.inbox-chip.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.inbox-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(24px + env(safe-area-inset-bottom));max-width:760px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.inbox-day{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:10px 2px 2px}
.inbox-item{position:relative;overflow:hidden;border-radius:12px;touch-action:pan-y;flex:none}
.inbox-del{position:absolute;top:0;right:0;bottom:0;width:88px;border:0;border-radius:0 12px 12px 0;background:var(--bad);color:var(--on-accent);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.inbox-row{position:relative;z-index:1;box-sizing:border-box;text-decoration:none;transition:transform .2s ease;display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:12px;border:1px solid var(--card-border);background:var(--surface);text-align:left;font:inherit;color:inherit;width:100%;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.inbox-item.open .inbox-row{transform:translateX(-88px)}
.inbox-row.unread{background:var(--seg-raised);border-color:var(--accent-border)}
.inbox-icon{width:36px;height:36px;flex:none;border-radius:18px;display:flex;align-items:center;justify-content:center}
.inbox-icon.k-watch{background:var(--accent-tint);color:var(--accent)}.inbox-icon.k-hit{background:var(--success-tint);color:var(--success)}.inbox-icon.k-miss,.inbox-icon.k-injury{background:var(--danger-tint);color:var(--danger)}.inbox-icon.k-foul,.inbox-icon.k-lineup,.inbox-icon.k-starters{background:var(--warning-tint);color:var(--warning)}.inbox-icon.k-news,.inbox-icon.k-other{background:var(--surface2);color:var(--text-muted)}
.inbox-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.inbox-top{display:flex;align-items:baseline;gap:8px}
.inbox-row-title{flex:1;min-width:0;font-weight:700;font-size:14px;color:var(--midnight);line-height:1.3}
.inbox-time{font-size:11.5px;color:var(--muted);white-space:nowrap}
.inbox-body{font-size:13px;color:var(--text-muted);line-height:1.4;white-space:pre-line}
.inbox-dot{width:9px;height:9px;border-radius:5px;background:var(--accent);flex:none;margin-top:6px}
.inbox-empty{padding:40px 14px;text-align:center;font-size:13px;color:var(--muted)}
.inbox-foot{padding:14px 2px 0;font-size:12px;color:var(--muted);text-align:center}
.inbox-kind{align-self:flex-start;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;line-height:1.4}
.inbox-kind.k-watch{background:var(--accent-tint);color:var(--accent)}.inbox-kind.k-hit{background:var(--success-tint);color:var(--success)}.inbox-kind.k-miss,.inbox-kind.k-injury{background:var(--danger-tint);color:var(--danger)}.inbox-kind.k-foul,.inbox-kind.k-lineup,.inbox-kind.k-starters{background:var(--warning-tint);color:var(--warning)}.inbox-kind.k-news,.inbox-kind.k-other{background:var(--surface2);color:var(--text-muted)}
/* Follow a game (2026-10-11). */
.nbl-game-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nbl-game-bar .breadcrumb{flex:1;min-width:0}
.nbl-follow-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text-muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;touch-action:manipulation;flex:none}
.nbl-follow-btn[hidden]{display:none}
.nbl-follow-btn.on{background:var(--accent-tint);border-color:var(--accent-border);color:var(--accent)}
.nbl-fx-follow{width:36px;height:36px;margin:-8px 0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:18px;background:none;color:var(--dim);cursor:pointer;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.nbl-fx-follow.on{color:var(--accent)}
/* Select several / all (2026-10-11). */
.inbox-markall[hidden]{display:none}
.inbox-check{width:22px;height:22px;flex:none;border-radius:11px;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--on-accent);margin-top:7px}
.inbox-check.on{background:var(--accent);border-color:var(--accent)}
.inbox-row.picked{border-color:var(--accent-border);background:var(--accent-tint)}
.inbox-selectbar{display:flex;gap:10px;max-width:760px;width:100%;margin:0 auto;padding:10px 0 calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg)}
.inbox-selectbar[hidden]{display:none}
.inbox-selectbar-btn{flex:1;min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.inbox-selectbar-btn.danger{background:var(--bad);border-color:var(--bad);color:var(--on-accent)}
.inbox-selectbar-btn:disabled{opacity:.45;cursor:default}
.t-alert-count .t-alert-now{font-size:20px;font-weight:800;line-height:1;letter-spacing:-.01em;color:var(--text)}.t-alert-count .t-alert-line{font-size:13px;font-weight:600;color:var(--muted)}
/* "Moved to statalert.app" card on the old address (2026-10-11). */
.moved-card{background:var(--accent-tint);border:1px solid var(--accent-border);border-radius:12px;padding:14px;margin:0 0 14px}
.moved-card[hidden]{display:none}
.moved-title{font-weight:800;font-size:15px;color:var(--midnight)}
.moved-text{font-size:13px;color:var(--text-muted);margin-top:6px;line-height:1.45}
.moved-btn{display:block;text-align:center;text-decoration:none;margin-top:12px}
