:root{color-scheme:dark;--bg:#101318;--panel:#181e27;--panel2:#222b36;--edge:#343d48;--text:#f0f1ee;--muted:#a5afbb;--gold:#e9b865;--red:#df503d;--green:#73d5b0;--blue:#93aafa;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse 72% 17% at 50% 0%,#2b2c26,transparent 85%),var(--bg);color:var(--text);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}main{max-width:1240px;margin:auto;padding:22px 18px 60px}.hidden{display:none!important}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:24px}.brand{text-decoration:none;color:var(--red);font-size:19px;letter-spacing:.04em;font-weight:900}.brand span{color:var(--text)}.brand small{font-size:10px;color:var(--muted);letter-spacing:0}.subtle-link{color:var(--muted);text-decoration:none;font-size:12px}.subtle-link:hover{color:var(--gold)}h1{font-size:clamp(28px,4.4vw,42px);letter-spacing:-.05em;line-height:1.13;margin:6px 0 9px}h2{font-size:16px;margin:0;letter-spacing:-.01em}p{line-height:1.55}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:.16em;font-weight:800;text-transform:uppercase}.muted{color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin:8px 0 23px}.intro p{color:var(--muted);margin:0;font-size:13px}.auto-label{font-size:11px;font-weight:750;color:var(--green);white-space:nowrap}.auto-label i{display:inline-block;width:7px;height:7px;background:currentColor;border-radius:50%;margin-right:5px;box-shadow:0 0 12px currentColor}.controls{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:19px}.period-switch,.mini-switch{display:flex;background:#151b22;border:1px solid var(--edge);border-radius:11px;padding:3px;gap:2px}.period-switch button,.mini-switch button{border:0;color:var(--muted);background:transparent;font-size:12px;font-weight:750;padding:9px 12px;border-radius:8px}.period-switch button[aria-pressed=true],.mini-switch button[aria-pressed=true]{background:#2a333e;color:var(--gold)}.outline-button,.small-button{background:var(--panel2);border:1px solid var(--edge);color:var(--text);border-radius:10px;font-size:12px;font-weight:750;padding:10px 13px}.small-button{padding:5px 9px}.outline-button:disabled{opacity:.5;cursor:wait}.updated{font-size:11px;margin-left:auto}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:18px}.metric{background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:16px 17px;min-width:0}.metric-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:750}.metric-number{font-size:31px;font-weight:850;margin:7px 0 1px;font-variant-numeric:tabular-nums}.metric-number.green{color:var(--green)}.metric-number.gold{color:var(--gold)}.metric-sub{font-size:11px;color:var(--muted)}.charts{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px}.panel{background:var(--panel);border:1px solid var(--edge);border-radius:16px;overflow:hidden;margin-bottom:16px;min-width:0}.panel-head{padding:17px 18px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--edge)}.panel-head span{font-size:11px;color:var(--muted)}.chart-panel{min-height:295px}.plot{padding:9px 12px 6px;min-height:210px}.plot svg{display:block;width:100%;height:205px;overflow:visible}.plot-label{fill:var(--muted);font-size:10px}.plot-grid{stroke:#394451;stroke-dasharray:2 4;stroke-width:1}.plot-line{fill:none;stroke:var(--gold);stroke-width:2.8;stroke-linejoin:round}.plot-dot{fill:var(--gold)}.plot-area{fill:#c28b3d;opacity:.1}.chart-caption{font-size:11px;color:var(--muted);margin:5px 18px 14px}.sources{display:flex;flex-direction:column;gap:14px;padding:18px}.source-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12px;font-weight:750}.source-title small{color:var(--muted);font-weight:500}.track{height:7px;border-radius:20px;background:#37404a;margin-top:7px;overflow:hidden}.track>span{display:block;height:100%;border-radius:20px;background:var(--gold);min-width:0}.track.friend>span{background:#8ea7ff}.track.daily>span{background:#77cbb2}.track.timing_lab_daily>span{background:#dba978}.body-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.side-column{min-width:0}.filters{display:flex;gap:8px;padding:11px 15px;border-bottom:1px solid var(--edge)}.filters input,.filters select{background:#222b35;border:1px solid #384353;border-radius:9px;color:var(--text);font-size:12px;padding:9px 10px;min-width:0;max-width:100%}.filters input{flex:1;width:35%}.filters select{flex:1;max-width:50%}.filters input::placeholder{color:#8794a4}.players-list{max-height:480px;overflow:auto}.feed-list{max-height:650px;overflow:auto}.player-row,.feed-row,.mode-row{display:grid;align-items:center;gap:10px;border-bottom:1px solid #29333e;padding:12px 16px}.player-row:last-child,.feed-row:last-child,.mode-row:last-child{border:0}.player-row{grid-template-columns:minmax(0,1fr) auto;cursor:pointer;outline-offset:-2px}.player-row:hover,.player-row.selected{background:#28323f}.player-row:focus-visible{outline:2px solid var(--gold)}.person-name{font-size:13px;font-weight:850;overflow-wrap:anywhere}.person-sub,.feed-sub,.mode-sub{font-size:11px;color:var(--muted);line-height:1.5;margin-top:3px}.right{text-align:right}.run-count{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.pill{display:inline-block;border:1px solid #475361;background:#29313a;color:var(--muted);font-size:9px;font-weight:850;border-radius:100px;padding:3px 6px;white-space:nowrap}.pill.active{color:var(--green);background:#183d34;border-color:#377f6b}.tiny-tag{font-size:11px;color:var(--muted)}.feed-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.feed-name{font-size:12px;font-weight:750}.feed-name .middle{color:#75839a;margin:0 4px}.feed-score{font-size:12px;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums;text-align:right}.source-label{display:inline-block;font-size:9px;color:#c7d1df;background:#303948;border-radius:5px;padding:2px 5px;margin:0 3px 0 0}.source-label.friend{background:#2c3655;color:#bdc9ff}.source-label.daily,.source-label.timing_lab_daily{background:#1e473f;color:#b0ecda}.panel-foot{font-size:10px;color:#97a5b4;padding:10px 15px;border-top:1px solid #2c3641;line-height:1.5}.empty{color:var(--muted);text-align:center;padding:25px 12px;font-size:12px}.mode-row{grid-template-columns:minmax(0,1fr) auto}.mode-title{font-weight:750;font-size:12px}.bar{height:5px;background:#35404e;border-radius:6px;overflow:hidden;margin-top:8px}.bar span{display:block;background:linear-gradient(90deg,#d49750,#f0c688);height:100%;border-radius:6px}.profile-body{padding:17px}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.profile-stat{background:#232c37;border-radius:9px;padding:10px}.profile-stat strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}.profile-stat span{font-size:10px;color:var(--muted)}.profile-section-title{font-weight:800;font-size:12px;margin:16px 0 8px}.profile-game{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:9px 0;border-bottom:1px solid #303a46;font-size:12px}.profile-game:last-child{border:0}.profile-game span{font-size:11px;color:var(--muted)}.profile-results{margin-top:10px;max-height:270px;overflow:auto}.profile-event{padding:7px 0;border-bottom:1px solid #2a3542;font-size:11px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.profile-event:last-child{border:0}.hour-chart{padding:17px 18px 11px}.hour-bars{height:100px;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:3px;align-items:end}.hour-bar{border-radius:3px 3px 0 0;background:linear-gradient(#ecc078,#9d6b35);min-height:2px}.hour-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:9px}.notice{color:var(--muted);font-size:11px;line-height:1.6;padding:0 5px 5px;border-left:2px solid #917348;margin-left:4px;padding-left:11px}footer{font-size:11px;color:#8f9bac;margin-top:12px;line-height:1.6}#footError{color:#f6a9a9}.gate{max-width:560px;margin:85px auto 0;text-align:center;padding:30px 25px}.gate-icon{font-size:35px}.gate h2{font-size:24px}.gate p{font-size:13px;color:var(--muted);margin:12px 0 25px}.primary-link{display:inline-block;text-decoration:none;background:var(--gold);color:#211b12;font-weight:800;border-radius:10px;padding:12px 18px;font-size:12px}
@media(min-width:1000px){.metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.metric{padding:15px 13px}.metric-label{font-size:10px}.metric-number{font-size:29px}}
@media(max-width:760px){main{padding:15px 12px 40px}.charts,.body-layout{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric{padding:13px 11px}.metric-number{font-size:25px}.metric-label{font-size:10px}.metric-sub{font-size:10px}.intro{align-items:start}.intro p{max-width:34ch}.period-switch{width:100%}.period-switch button{flex:1}.updated{margin-left:0}.chart-panel{min-height:unset}.player-row,.feed-row,.mode-row{padding:12px 14px}}
@media(max-width:430px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{display:block}.auto-label{display:inline-block;margin-top:14px}.brand{font-size:17px}.period-switch button{font-size:11px;padding:9px 4px}.filters{flex-wrap:wrap}.filters input,.filters select{flex:1 1 40%;width:auto}.panel-head{padding:15px}.panel-head h2{font-size:15px}.mini-switch button{padding:7px 8px;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.source-btn,.mode-button{appearance:none;background:none;border:0;color:inherit;text-align:left;width:100%;padding:0;cursor:pointer}.source-btn:hover .source-title,.mode-button:hover .mode-title{color:var(--gold)}.source-btn:focus-visible,.mode-button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.mode-button{padding:12px 16px}

/* R374: compact always-visible controls; hidden entirely until Supabase authorises access. */
:root{--sticky-height:114px}
html{scroll-padding-top:var(--sticky-height)}
main{padding-top:0}
.sticky-toolbar{
 position:sticky;top:0;z-index:80;
 margin:0 -18px 20px;padding:10px 18px 10px;
 background:rgba(16,19,24,.96);border-bottom:1px solid #36404b;
 box-shadow:0 8px 20px rgba(0,0,0,.28);
 -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)
}
.sticky-toolbar.hidden{display:none!important}
.sticky-toolbar .topbar{min-height:32px;padding:0 0 9px}
.sticky-toolbar .brand{font-size:17px;white-space:nowrap}
.sticky-toolbar .brand small{font-size:9px}
.sticky-toolbar .subtle-link{font-size:12px;white-space:nowrap}
.sticky-toolbar .controls{display:flex;flex-wrap:nowrap;align-items:center;gap:9px;margin:0}
.sticky-toolbar .period-switch{flex:1;min-width:0;width:auto}
.sticky-toolbar .period-switch button{flex:1;min-width:0;padding:8px 7px;white-space:nowrap}
.sticky-toolbar .outline-button{flex:0 0 auto;white-space:nowrap;padding:9px 12px}
.label-short{display:none}
.intro-status{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.intro-status .updated{font-size:11px;margin:0;white-space:nowrap}
.gate{margin-top:clamp(40px,11vh,120px);padding:38px 25px 42px;box-shadow:0 18px 50px rgba(0,0,0,.15)}
.gate h1{font-size:clamp(30px,6vw,39px);margin:5px 0 12px}
.gate p{font-size:14px;max-width:38ch;margin:0 auto 24px}
.gate-icon{font-size:35px;margin-bottom:14px}
.gate .eyebrow{margin-bottom:7px}
.gate .primary-link:focus-visible{outline:3px solid var(--text);outline-offset:3px}
.auth-loading{max-width:510px;margin:clamp(80px,19vh,190px) auto;text-align:center;color:var(--muted);font-size:13px}
.auth-loading-brand{font-size:22px;letter-spacing:.03em;font-weight:900;color:var(--red)}
.auth-loading-brand span{color:var(--text)}
.auth-loading-brand small{font-size:10px;color:var(--muted)}
#profilePanel,.panel,#feed,.metrics{scroll-margin-top:var(--sticky-height)}
@media(max-width:760px){
 :root{--sticky-height:110px}
 .sticky-toolbar{margin:0 -12px 17px;padding:10px 12px 9px}
 .sticky-toolbar .topbar{padding-bottom:8px}
 .sticky-toolbar .brand{font-size:16px}
 .intro-status{align-items:flex-start;margin-top:5px}
}
@media(max-width:480px){
 :root{--sticky-height:102px}
 .sticky-toolbar{padding:9px 12px}
 .sticky-toolbar .brand{font-size:15px}
 .sticky-toolbar .brand small{font-size:9px}
 .sticky-toolbar .subtle-link{font-size:11px}
 .sticky-toolbar .period-switch{padding:3px;gap:1px}
 .sticky-toolbar .period-switch button{font-size:11px;padding:8px 4px}
 .sticky-toolbar .controls{gap:7px}
 .sticky-toolbar .outline-button{padding:9px 11px;font-size:17px;line-height:16px}
 .label-long,.refresh-word{display:none}
 .label-short{display:inline}
 .intro-status{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
 .intro-status .auto-label{margin:0}
 .intro-status .updated{font-size:10px;white-space:normal;text-align:right}
}
@media(max-width:350px){.sticky-toolbar .brand{font-size:14px}.sticky-toolbar .subtle-link{font-size:10px}.sticky-toolbar .period-switch button{font-size:10px;padding:8px 2px}}

/* R375: hourly bar chart for Today and 24h; daily line chart for 7/30 days. */
.plot-bar{fill:var(--gold)}
.plot svg{overflow:visible}

/* R381: authenticated, paginated owner history */
.history-day{display:grid;grid-template-columns:70px minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:11px;margin:9px 0}
.history-day strong{text-align:right;font-variant-numeric:tabular-nums}.history-bar{height:9px;border-radius:10px;background:#333f4c;overflow:hidden}.history-bar i{display:block;height:100%;background:linear-gradient(90deg,#be844c,#edc68d);border-radius:10px}
.history-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 0;font-size:11px;color:var(--muted)}.history-controls select{background:#222b35;color:var(--text);border:1px solid #435064;padding:8px;border-radius:8px;max-width:56%;font:inherit}
.history-entries{border-top:1px solid var(--edge);max-height:600px;overflow:auto}.history-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 1px;border-bottom:1px solid var(--edge);font-size:12px}.history-score{text-align:right;font-variant-numeric:tabular-nums}.history-score small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.history-pagination{display:flex;justify-content:space-between;gap:12px;margin:13px 0}.history-pagination button{color:var(--text);background:#303c4b;border:1px solid #4b5a6a;padding:9px 12px;border-radius:9px;cursor:pointer}.history-pagination button:disabled{opacity:.4;cursor:default}.history-help{font-size:11px;line-height:1.5;color:var(--muted)}
.source-label.trials{background:#3f3528;color:#e8c79c}.track.trials>span{background:#e6bc7f}
