
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#09274a;background:#f9fcfe;font-synthesis:none;--red:#e52339;--ink:#09274a;--blue:#d8effb;--line:#d8e3ec;--muted:#63778d}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#f6fbfe url("assets/ice.svg") repeat;background-size:650px}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:9px;padding:11px 16px;font-weight:600;transition:background .15s,box-shadow .15s}button:hover{background:#eff8fd;box-shadow:0 2px 8px #153a6610}button:disabled{opacity:.45;cursor:default}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #247ca9;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #72b7dd;outline-offset:2px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:25px}h2{font-size:19px;letter-spacing:-.4px}h3{font-size:15px}p{line-height:1.6}.muted{font-size:12px;color:var(--muted);line-height:1.6}.primary{background:var(--red);color:#fff;border-color:var(--red);font-weight:700}.primary:hover{background:#cf1930}.secondary{border-color:var(--red)}.quiet{background:transparent;font-size:12px;padding:7px 10px;border:1px solid #dce6ed}.text-button{background:none;border:0;color:#476483;padding:7px;font-size:12px}.danger{color:#ac2534}header{max-width:1500px;margin:auto;padding:27px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative}header:before{content:'';position:absolute;top:0;left:2%;right:2%;height:70px;border-top:4px solid var(--red);border-radius:50% 50% 0 0/90% 90% 0 0;pointer-events:none}header h1{font-size:22px;margin:0}.wordmark{background:none;border:0;letter-spacing:6px;font-size:22px;font-weight:900;padding:12px 0}.back{border:0;background:none;min-width:90px}#app,#review{max-width:1500px;margin:0 auto;padding:10px 32px 55px}.surface{background:#fffffff5;border:1px solid var(--line);border-radius:15px;padding:24px;box-shadow:0 3px 12px #172d4705}.page{max-width:1050px;margin:15px auto}.page.narrow{max-width:620px}.bar,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading h2{margin:0}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spaced{margin-top:22px}.empty{padding:45px 20px;text-align:center}.empty p{color:var(--muted);font-size:14px}.error{color:#9c2435;font-size:13px;background:#fff1f2;padding:12px;border-radius:8px}.error:empty{display:none}.notice{padding:14px 18px;border:1px solid #d4e8f5;background:#ecf7ff;border-radius:9px;font-size:13px;line-height:1.6;margin-bottom:18px}label{display:block;font-size:13px;font-weight:600;margin:14px 0 0}input,select,textarea{display:block;width:100%;border:1px solid #cfdce7;border-radius:8px;padding:11px 12px;color:var(--ink);background:#fff;margin-top:7px;font-weight:400;min-width:0}textarea{min-height:85px;resize:vertical}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.fields>*{min-width:0}summary{cursor:pointer;font-weight:600;line-height:1.4}.disclosure{border:1px solid var(--line);border-radius:9px;padding:13px 14px;background:#fff;margin:13px 0}.disclosure summary{font-size:13px}.disclosure>p{margin-top:13px}.disclosure[open]>summary{margin-bottom:13px}.hint{font-weight:400;color:#7a8da1;font-size:11px;float:right}.chip{font-size:10px;font-weight:700;border-radius:5px;padding:5px 8px;background:#e9f5ff;letter-spacing:.2px;white-space:nowrap}.chip.complete{background:#edf0f5;color:#566b81}.filter-row{display:flex;gap:16px;margin:0 0 22px}.filter-row label{flex:1;margin:0}.filter-row select{max-width:100%}
/* Approved home: only the wordmark and four equal buttons. */
#app:has(.home){max-width:1280px;padding:26px 36px;min-height:100svh;display:grid;place-items:center}.home{width:100%;min-height:min(760px,90svh);border:6px solid var(--red);outline:9px solid white;border-radius:49% 49% 40px 40px/39% 39% 40px 40px;background:var(--blue) url("assets/ice.svg") repeat;background-size:580px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:70px 70px 85px;box-shadow:0 8px 35px #4783a312}.home h1{font-size:clamp(48px,6.5vw,86px);font-weight:900;letter-spacing:2px;margin:5px 0 65px;line-height:1}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:min(850px,100%)}.home-grid button{min-height:130px;border:3px solid var(--red);border-radius:24px;background:#fff;font-size:clamp(21px,2.7vw,33px);font-weight:800;box-shadow:0 6px 12px #1a405913}.home-grid button:hover{background:#f2faff;transform:translateY(-2px);box-shadow:0 9px 15px #1a40591c}#intro{position:fixed;inset:0;z-index:100;background:#fff;display:grid;place-items:center;animation:pageTurn .75s cubic-bezier(.7,0,.22,1) .45s forwards;box-shadow:-30px 0 60px #1330481a;pointer-events:auto}#intro img{width:min(70vw,440px);height:auto;object-fit:contain}@keyframes pageTurn{to{transform:translateX(105%)}}@media(prefers-reduced-motion:reduce){#intro{display:none}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
/* Setup and short game cards */
.setup .primary{width:100%;margin-top:24px}.upload-area{margin-top:20px;padding:18px;background:#f4faff;border:1px dashed #a8c8de;border-radius:9px}.upload-area label{margin:0}.upload-area input{font-size:12px;background:transparent;border:0;padding:4px 0}.upload-area p{margin:10px 0 0}.game-list{display:grid;gap:12px}.game-card{padding:18px 22px;display:grid;grid-template-columns:1.2fr 1fr auto;align-items:center;gap:18px}.game-card h2{margin:0 0 5px;font-size:17px}.game-card .muted{margin:0}.mini-stats{display:flex;gap:28px}.mini-stats span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.mini-stats b{font-size:19px;font-variant-numeric:tabular-nums}.game-card .chip{display:inline-block;margin-left:8px;vertical-align:middle}.data-menu{margin-top:28px}.data-menu p{margin:10px 0}.data-menu .actions{margin-top:15px}
/* Video and the compact shot panel */
.review-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(440px,1fr);gap:20px;align-items:start}.video-panel{padding:20px;position:sticky;top:15px}.video-panel video{width:100%;max-height:65vh;background:#081b2b;border-radius:10px;margin-top:16px;display:block}.video-empty{min-height:410px;margin-top:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#edf6fc;border:1px solid #d9e9f3;border-radius:10px;padding:35px}.video-empty svg{width:62px;fill:none;stroke:#779ab4;stroke-width:2;margin-bottom:22px}.video-empty svg path{fill:#779ab4;stroke:none}.video-empty p{font-size:13px;color:var(--muted)}.video-panel .muted{margin:12px 0 0;font-size:11px}.shot-panel{border:2px solid var(--red);padding:19px 20px}.shot-panel h2{font-size:24px;margin-bottom:18px}.diagram-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.diagram-row h3{margin:0 0 8px;font-size:13px}.diagram{width:100%;height:150px;display:block;background:#f3f9fd;border-radius:10px;cursor:crosshair;touch-action:manipulation;border:1px solid #e0e8ee}.diagram text{font-family:inherit}.diagram-row select{font-size:11px;padding:7px 5px;margin-top:6px}.orientation{font-size:10px;color:var(--muted);margin:8px 0 15px}.outcome-label{font-size:13px;font-weight:700;margin:12px 0 9px}.outcomes{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.outcome{display:flex;align-items:center;justify-content:space-between;border:1px solid #cddbe6;border-radius:8px;grid-column:span 2;background:white;overflow:hidden}.outcome:nth-child(n+4){grid-column:span 3}.outcome.selected{border-color:var(--red);background:#eaf6fd;box-shadow:inset 0 0 0 1px var(--red)}.outcome .pick{border:0;background:transparent;font-size:12px;padding:13px 6px 13px 10px;flex:1;text-align:left;white-space:nowrap}.outcome .info{background:none;border:0;padding:8px 7px 8px 2px;font-size:15px;font-weight:400}.outcome .info:hover{color:var(--red)}.outcome-help{background:#edf7ff;border:1px solid #cddff0;border-radius:9px;padding:14px;margin:12px 0 0}.outcome-help h3{margin:0 0 5px}.outcome-help p{font-size:12px;line-height:1.6;margin:0}.shot-panel .disclosure{margin-top:15px}.shot-panel .primary{width:100%;font-size:15px;padding:14px}.shot-panel label{font-size:11px}.shot-panel input,.shot-panel select{font-size:12px}.shot-panel .fields{gap:0 12px}.context-help{font-size:11px;color:var(--muted);margin:5px 0;line-height:1.4}.shot-error{font-size:12px;color:#a22435;min-height:0}.shot-error:empty{display:none}.time-row{display:flex;align-items:center;gap:8px}.time-row input{flex:1;min-width:0}.time-row button{font-size:10px;padding:9px 6px;margin-top:7px}.review-heading{margin-bottom:18px}.review-heading h2{margin:0;font-size:17px}.review-heading .muted{margin:4px 0 0}.review-extras{margin-top:24px}.shot-history{max-height:500px;overflow:auto}.shot-row{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #e5edf3}.shot-row p{font-size:12px;margin:4px 0}.shot-row b{font-size:13px}.shot-row .actions button{font-size:11px;padding:7px 9px}.review-foot{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px}.review-foot .muted{margin:0}
/* Season list and optional detail */
.stat-list{margin:0}.stat-list>div{display:flex;justify-content:space-between;align-items:center;padding:17px 4px;border-bottom:1px solid #e4edf3;gap:20px}.stat-list>div:last-child{border-bottom:0}.stat-list dt{font-size:14px}.stat-list dd{margin:0;font-size:24px;font-weight:750;font-variant-numeric:tabular-nums}.stat-list .small{font-size:13px}.stats-notes{font-size:11px;margin:16px 0 0;color:var(--muted);line-height:1.6}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;border-bottom:1px solid #e3edf4;padding:11px 8px;font-variant-numeric:tabular-nums}th{font-size:10px;color:var(--muted)}.trend{width:100%;height:150px;display:block;margin:15px 0}.metric-bars{display:grid;gap:14px;margin:20px 0}.metric-bars>div{display:grid;grid-template-columns:95px 1fr 32px;gap:12px;align-items:center;font-size:12px}.track{height:9px;background:#e8f1f7;border-radius:10px;overflow:hidden}.track i{height:100%;display:block;background:#e52339;border-radius:10px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.insight{padding:18px;border-radius:9px;background:#f2f9fe;margin-bottom:12px}.insight h3{font-size:14px;margin:0 0 8px}.insight p{font-size:12px;margin:0;line-height:1.6}
/* Practice checklist */
.focus-form{display:flex;gap:10px;margin:14px 0 24px}.focus-form input{margin:0;flex:1;min-width:0}.focus-form button{white-space:nowrap}.focus-item{border-top:1px solid #e3ebf1;padding:17px 0}.focus-main{display:flex;align-items:center;gap:12px}.focus-main input{width:20px;height:20px;margin:0;accent-color:var(--red)}.focus-main label{margin:0;flex:1;line-height:1.5}.focus-item.done .focus-main label{text-decoration:line-through;color:var(--muted)}.focus-item details{margin:9px 0 0 32px;font-size:12px;color:var(--muted)}.focus-item textarea{font-size:13px}.suggestion{padding:18px;background:#f4faff;border:1px solid #e0ecf5;border-radius:10px;margin-top:12px}.suggestion h3{margin:0 0 8px}.suggestion p{font-size:12px;color:var(--muted)}.suggestion button{font-size:12px}.compact-title{margin:0 0 10px}.utility-link{color:#526f8b;font-size:12px}dialog{width:min(520px,95vw);border:1px solid #c7d9e6;border-radius:16px;padding:28px;color:var(--ink)}dialog::backdrop{background:#071a3266}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:200;background:#09274a;color:white;border-radius:9px;padding:13px 20px;max-width:90vw;font-size:13px;box-shadow:0 8px 30px #09274a30;display:none}.report-only{display:none}
@media(max-width:1100px){.review-grid{grid-template-columns:minmax(0,1fr) minmax(390px,1fr)}.shot-panel{padding:17px}.video-empty{min-height:340px}.game-card{grid-template-columns:1fr auto}.game-card .mini-stats{grid-row:2;grid-column:1/-1}.home{padding:80px 45px 65px}.home-grid button{min-height:120px}}
@media(max-width:800px){.review-grid{grid-template-columns:1fr}.video-panel{position:static}.video-empty{min-height:220px}.video-panel video{max-height:45vh}.home-grid{gap:15px}.home{padding:70px 28px 50px;min-height:75svh}.home h1{margin-bottom:45px}.home-grid button{border-width:2px;border-radius:15px;min-height:105px;font-size:22px}.two-col{grid-template-columns:1fr}}
@media(max-width:520px){header{padding:22px 17px;gap:8px}header h1{font-size:17px}.wordmark{font-size:16px;letter-spacing:3px}.back{min-width:55px;padding:9px 0;font-size:12px}#app,#review{padding:5px 14px 35px}#app:has(.home){padding:18px}.home{border-width:4px;outline-width:6px;border-radius:49% 49% 24px 24px/25% 25% 24px 24px;padding:65px 17px 50px;min-height:80svh}.home h1{font-size:47px;margin-bottom:43px}.home-grid{gap:12px}.home-grid button{font-size:17px;min-height:105px;padding:12px 7px}.surface{padding:20px}.shot-panel{padding:16px}.diagram{height:130px}.outcome .pick{font-size:11px;padding-left:7px}.outcome .info{font-size:14px;padding-right:5px}.fields{gap:0 10px}.game-card{padding:16px;gap:10px}.game-card h2{font-size:16px}.game-card .chip{display:block;margin:7px 0 0;width:max-content}.mini-stats{gap:26px}.filter-row{gap:10px}.filter-row label{font-size:11px}.shot-row{display:block}.shot-row .actions{margin-top:8px}.review-foot{align-items:flex-start}.hint{display:none}.focus-form{flex-direction:column}.stat-list dd{font-size:22px}}
@media print{#intro,header,.filter-row,.actions,button,#toast,.video-panel,#shotPanel,.data-menu{display:none!important}body{background:white}#app,#review{padding:0}.surface{box-shadow:none}.disclosure{break-inside:avoid}details>*{display:block!important}table{display:table!important}.report-only{display:block}.page{max-width:none}.review-grid{display:none}.shot-history{max-height:none}.home{display:none}}

.account-bar{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:10px 24px;font-size:12px;color:#486075}.account-bar button{font-size:13px;padding:8px 15px;min-height:36px}#accountDialog{width:min(460px,92vw);max-height:90vh;overflow:auto;border:1px solid #d2e2ec;border-radius:20px;padding:26px;color:#09274a}#accountDialog::backdrop{background:#09274a60}#accountDialog h2{margin-top:0}#accountDialog label{display:block;margin:15px 0}#accountDialog input{width:100%}#accountDialog button{margin:4px 0}#accountDialog .account-actions{display:grid;gap:8px}#accountDialog button[disabled]{opacity:.55;cursor:not-allowed}#accountMessage{color:#ac1930;font-size:14px}#accountDialog .close-account{float:right;padding:5px 12px} .home{min-height:calc(100svh - 95px)}
