/* Approved 0.7.14 visual language, copied from the original player/coach prototype. */

:root{--navy:#071521;--navy2:#0b1f3b;--ice:#f4fafc;--cyan:#55d6e8;--lime:#b9f227;--red:#e5484d;--muted:#9fb0bf;--panel:#0d2236;--panel2:#102a43;--line:#24455e;--white:#f7fbff;--amber:#f4b942;--soft:#132d43}
*{box-sizing:border-box}html{background:var(--navy)}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--navy);color:var(--white);min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:760px;margin:0 auto;min-height:100vh;background:linear-gradient(180deg,#071521 0%,#071a2a 100%);padding-bottom:max(28px,env(safe-area-inset-bottom))}
.top{position:sticky;top:0;z-index:40;background:rgba(7,21,33,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:13px 18px 10px}.headerrow{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.brand img{width:54px;height:54px;border-radius:13px;object-fit:cover;flex:0 0 auto}.brandcopy{min-width:0}.brandline{font-weight:850;font-size:24px;line-height:1;white-space:nowrap}.brandline .my{color:var(--lime)}.tagline{color:var(--muted);font-size:13px;margin-top:7px;letter-spacing:.02em}.menuBtn{appearance:none;border:1px solid var(--line);background:#0e263a;color:var(--white);width:48px;height:48px;border-radius:15px;font-size:25px;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}.menuBtn:active{transform:scale(.97)}
.topselector{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#091c2c;border:1px solid var(--line);border-radius:16px;padding:5px;margin-top:12px}.topselector button{border:0;background:transparent;color:#8fa4b4;font-weight:850;letter-spacing:.08em;padding:11px;border-radius:12px;cursor:pointer}.topselector button.active{background:#173b58;color:#fff;box-shadow:0 2px 12px rgba(0,0,0,.2)}
main{padding:18px}.screen{display:none}.screen.active{display:block}.eyebrow{font-size:12px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}.h1{font-size:34px;line-height:1.08;margin:9px 0 10px}.lead{font-size:18px;line-height:1.48;color:#b7c7d5;margin:0 0 20px}.card{background:linear-gradient(180deg,var(--panel),#0b2032);border:1px solid var(--line);border-radius:24px;padding:18px;margin-bottom:14px;box-shadow:0 10px 24px rgba(0,0,0,.12)}.card h2,.card h3{margin:0}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#102c45;color:#c9d9e6;padding:7px 10px;border-radius:999px;font-size:13px;white-space:nowrap}.pill.lime{background:rgba(185,242,39,.12);border-color:rgba(185,242,39,.35);color:var(--lime)}.pill.red{background:rgba(229,72,77,.12);border-color:rgba(229,72,77,.35);color:#ff9b9e}.pill.cyan{background:rgba(85,214,232,.12);border-color:rgba(85,214,232,.35);color:var(--cyan)}.pill.amber{background:rgba(244,185,66,.12);border-color:rgba(244,185,66,.35);color:#ffd786}
.btn{appearance:none;border:0;border-radius:16px;padding:14px 16px;font-weight:850;font-size:16px;cursor:pointer;background:var(--cyan);color:#041421;min-height:48px}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.secondary{background:#12304b;color:var(--white);border:1px solid var(--line)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--white)}.btn.danger{background:rgba(229,72,77,.12);border:1px solid rgba(229,72,77,.38);color:#ff9b9e}.btn.full{width:100%}.btn.smallbtn{padding:9px 11px;min-height:40px;font-size:14px;border-radius:12px}.btnrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}.back{border:0;background:transparent;color:var(--cyan);font-weight:800;font-size:15px;padding:0 0 14px;cursor:pointer}
.block{padding:0;overflow:hidden}.blockhead{padding:17px 18px;cursor:pointer}.blockmeta,.exsub,.small{font-size:13px;color:var(--muted);line-height:1.45}.blockbody{display:none;border-top:1px solid var(--line)}.block.open .blockbody{display:block}.exercise{padding:14px 16px;border-top:1px solid rgba(36,69,94,.7)}.exercise:first-of-type{border-top:0}.exmain{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.excheck{width:22px;height:22px;accent-color:var(--cyan)}.exname{font-size:16px;font-weight:800}.detailsBtn{appearance:none;background:#102c45;border:1px solid var(--line);color:#dbe7ef;border-radius:12px;padding:9px 11px;font-weight:750;cursor:pointer}.exdetails{display:none;padding-top:14px}.exercise.expanded .exdetails{display:block}.drillimg{display:block;width:100%;border-radius:16px;border:1px solid var(--line);background:#fff;cursor:zoom-in}.imgactions{display:flex;justify-content:flex-end;margin-top:8px}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.mini{background:#091d2d;border:1px solid var(--line);border-radius:14px;padding:11px}.mini b{font-size:13px}.mini p{font-size:12px;color:#bac9d5;line-height:1.4;margin:5px 0 0}.warning{background:rgba(229,72,77,.12);border:1px solid rgba(229,72,77,.42);color:#ffd6d8;border-radius:16px;padding:13px;margin:10px 0}.warning b{color:#ff9b9e}.info{background:rgba(85,214,232,.08);border:1px solid rgba(85,214,232,.3);border-radius:16px;padding:13px;margin:10px 0;color:#d4edf3}.coachRec,.coachfocus{border-left:3px solid var(--lime);padding-left:12px}.coachfocus{background:rgba(185,242,39,.07);border-top:1px solid rgba(185,242,39,.18);border-right:1px solid rgba(185,242,39,.18);border-bottom:1px solid rgba(185,242,39,.18);border-radius:0 14px 14px 0;padding:10px 12px;margin:10px 0}.coachfocus b{color:var(--lime)}
.sticky-action{position:sticky;bottom:10px;padding-top:10px;background:linear-gradient(180deg,transparent,#071a2a 34%)}.summaryline{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.summaryline:last-child{border-bottom:0}.summaryline small{display:block;margin-top:4px}.switches{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.choice{appearance:none;border:1px solid var(--line);background:#0d273d;color:#d7e4ed;padding:12px 8px;border-radius:14px;font-weight:800;min-height:46px;cursor:pointer}.choice.active{border-color:var(--cyan);background:rgba(85,214,232,.14);color:#fff}.choice.active.lime{border-color:var(--lime);background:rgba(185,242,39,.12);color:var(--lime)}.choice.active.red{border-color:var(--red);background:rgba(229,72,77,.12);color:#ff9b9e}.timer{font-size:60px;text-align:center;font-weight:900;letter-spacing:.02em;margin:10px 0 8px}.session-ex{padding:13px 0;border-bottom:1px solid var(--line)}.session-ex:last-child{border-bottom:0}.eval{border:2px solid transparent;background:#0b2032;border-radius:20px;padding:16px;margin-bottom:12px}.eval.missing{border-color:var(--red)}textarea,input,select{width:100%;background:#081b2b;border:1px solid var(--line);color:#fff;border-radius:13px;padding:12px;font:inherit;min-height:47px}textarea{min-height:92px;resize:vertical}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field.fullrow{grid-column:1/-1}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check{display:flex!important;align-items:center;gap:7px;background:#091d2d;border:1px solid var(--line);padding:9px;border-radius:12px;color:#dbe7ee!important}.check input{width:18px;height:18px;min-height:auto}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}.kpi{background:#0d263a;border:1px solid var(--line);border-radius:18px;padding:14px;text-align:center}.kpi b{display:block;font-size:25px}.kpi span{font-size:11px;color:var(--muted)}.demoFlag{margin:0 0 14px}.chartcard{padding:16px}.charttitle{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.charttitle h3{font-size:18px}.charttitle p{margin:4px 0 0}.svgchart{width:100%;height:auto;display:block;overflow:visible}.axislabel{font-size:10px;fill:#8ea4b4}.chartgrid{stroke:#1f3f58;stroke-width:1}.chartline{fill:none;stroke:#55d6e8;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chartarea{fill:rgba(85,214,232,.12)}.chartdot{fill:#b9f227;stroke:#071521;stroke-width:3}.legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;color:#b9c8d3;font-size:12px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:9px;height:9px;border-radius:999px;display:inline-block}.dot.better{background:var(--lime)}.dot.same{background:var(--cyan)}.dot.worse{background:var(--red)}.donutwrap{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:20px}.donut{width:140px;height:140px;border-radius:50%;display:grid;place-items:center;position:relative}.donut:after{content:'';width:88px;height:88px;border-radius:50%;background:#0b2032;position:absolute}.donutcenter{z-index:1;text-align:center}.donutcenter b{display:block;font-size:24px}.donutcenter small{color:var(--muted)}.outcomeRows{display:grid;gap:8px}.outcomeRow{display:grid;grid-template-columns:70px 1fr 42px;align-items:center;gap:8px;font-size:13px}.bartrack{height:10px;border-radius:999px;background:#071622;overflow:hidden}.barfill{height:100%;border-radius:999px;background:var(--cyan)}.barfill.lime{background:var(--lime)}.barfill.red{background:var(--red)}.skillrow{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 44px;align-items:center;gap:10px;margin:11px 0}.skillrow b{font-size:13px}.skilltrack{height:12px;background:#071622;border-radius:999px;overflow:hidden}.skillfill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--lime));border-radius:999px}.skillscore{font-size:12px;color:#c9d9e5;text-align:right}.mixrow{display:grid;grid-template-columns:minmax(130px,1fr) 2fr 34px;align-items:center;gap:10px;margin:9px 0}.compare{display:grid;gap:12px}.compareRow{border-bottom:1px solid var(--line);padding-bottom:11px}.compareRow:last-child{border-bottom:0}.compareName{font-size:13px;font-weight:800;margin-bottom:7px}.compareBars{display:grid;grid-template-columns:54px 1fr 36px;gap:8px;align-items:center;font-size:11px;color:var(--muted);margin:5px 0}.ai{border:1px solid rgba(185,242,39,.35);background:rgba(185,242,39,.07)}.ai h3{color:var(--lime)}.plus{border:1px solid rgba(185,242,39,.35);background:linear-gradient(145deg,rgba(185,242,39,.08),rgba(85,214,232,.05))}.empty{text-align:center;color:var(--muted);padding:22px 10px}.history{display:flex;flex-direction:column;gap:8px}.historyitem{background:#0a1d2d;border:1px solid var(--line);border-radius:14px;padding:12px}.historyitem summary{cursor:pointer;list-style:none}.historyitem summary::-webkit-details-marker{display:none}.historyitem .date{font-size:12px;color:var(--muted)}.historyitem strong{display:block;margin-top:4px}.historydetails{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.recitem{background:#0a1d2d;border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:9px}.recitem b{display:block}.recitem small{color:var(--muted)}
.drawerBackdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:70;opacity:0;pointer-events:none;transition:.2s}.drawerBackdrop.open{opacity:1;pointer-events:auto}.drawer{position:absolute;right:0;top:0;height:100%;width:min(340px,88vw);background:#091b2b;border-left:1px solid var(--line);padding:18px;transform:translateX(100%);transition:.23s;overflow:auto}.drawerBackdrop.open .drawer{transform:translateX(0)}.drawerTop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.drawerTop img{width:45px;height:45px;border-radius:12px}.drawerClose{border:0;background:transparent;color:#fff;font-size:27px;padding:8px;cursor:pointer}.menuitem{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#eef7fd;text-align:left;padding:15px 4px;font:inherit;font-weight:750;cursor:pointer}.menuitem span:last-child{color:#7d94a5}.drawerMeta{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.6}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.76);z-index:90;display:none;align-items:flex-end;justify-content:center}.modal.open{display:flex}.sheet{background:#0b2032;border:1px solid var(--line);border-radius:24px 24px 0 0;width:min(760px,100%);max-height:92vh;overflow:auto;padding:20px}.viewerModal{position:fixed;inset:0;background:#02070b;z-index:110;display:none;flex-direction:column}.viewerModal.open{display:flex}.viewerTop{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;background:rgba(7,21,33,.97);border-bottom:1px solid var(--line)}.viewerTitle{font-weight:800;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewerControls{display:flex;align-items:center;gap:7px}.viewerControls button{border:1px solid var(--line);background:#102c45;color:#fff;border-radius:11px;min-width:42px;height:42px;font-weight:800;font-size:17px}.viewerBody{flex:1;overflow:auto;text-align:center;padding:10px;touch-action:pan-x pan-y pinch-zoom}.viewerBody img{display:block;margin:0 auto;background:#fff;max-width:none;width:100%;border-radius:10px;transition:width .15s}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(16px);background:#132f47;color:#fff;border:1px solid #2d526d;border-radius:14px;padding:11px 14px;opacity:0;pointer-events:none;transition:.2s;z-index:120;max-width:90%;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.hidden{display:none!important}.hr{height:1px;background:var(--line);margin:14px 0}
@media(max-width:560px){.formgrid{grid-template-columns:1fr}.field.fullrow{grid-column:auto}.h1{font-size:31px}.lead{font-size:17px}.top{padding-left:14px;padding-right:14px}.brand img{width:48px;height:48px}.brandline{font-size:20px}.tagline{font-size:12px}.mini-grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(3,1fr)}.kpi{padding:11px 7px}.kpi b{font-size:21px}.donutwrap{grid-template-columns:1fr;text-align:center}.donut{margin:auto}.outcomeRows{text-align:left}.skillrow{grid-template-columns:105px 1fr 38px}.mixrow{grid-template-columns:115px 1fr 30px}.checks{grid-template-columns:1fr}.switches{grid-template-columns:repeat(3,1fr)}.viewerBody img{width:145%}}
@media(min-width:561px){.viewerBody img{width:min(1050px,95vw)}}
.planGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.planCard{background:#091d2d;border:2px solid var(--line);border-radius:18px;padding:14px}.planCard.active{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(85,214,232,.08)}.planCard.plusPlan.active{border-color:var(--lime);box-shadow:0 0 0 2px rgba(185,242,39,.08)}.billingSwitch{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}.billingSwitch .choice{font-size:13px;padding:9px 6px;min-height:42px}.recActions{display:flex;gap:8px;align-items:center;margin-top:12px}.recActions .btn{flex:1}.recAdded{color:var(--lime);font-size:12px;font-weight:800;text-align:center;margin-top:8px}@media(max-width:520px){.planGrid{grid-template-columns:1fr}.billingSwitch{grid-template-columns:1fr 1fr}}
/* Extend the baseline, keep its tokens and components. */
.blockhead{user-select:none}.exercise.selected{background:rgba(85,214,232,.09);border-left:3px solid var(--cyan)}.detailsBtn{background:transparent;border-color:var(--line)}.exercise.expanded .detailsBtn{background:#173b58;border-color:var(--cyan)}.choice:not(.active){background:transparent}.excheck{appearance:none;width:22px;height:22px;border:2px solid var(--line);border-radius:6px;background:transparent;min-height:22px;padding:0;cursor:pointer}.excheck:checked{background:var(--cyan);border-color:var(--cyan)}.excheck:checked:after{content:'✓';display:block;color:#041421;text-align:center;font-weight:900;line-height:18px}.prototypebar{padding:8px 18px;background:#0b2032;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.prototypebar button{padding:4px 7px;min-height:30px;font-size:12px;border-radius:8px}.topselector.coachnav{grid-template-columns:1fr}.rowwrap{display:flex;gap:8px;flex-wrap:wrap}.note-inline{margin-top:10px}.wizard{align-items:center;z-index:130}.wizard .sheet{border-radius:24px;max-width:620px;margin:12px;max-height:92vh}.wizard .field{margin-top:12px}.wizard h2{margin-top:0}.permission-row{display:flex;align-items:center;gap:10px;padding:10px 0}.permission-row input{width:20px;min-height:20px}.pending-content{opacity:.65}.masteryline{margin:10px 0}.desktopHint{display:none}.coach-card{margin-top:10px}.original-note{padding:8px 0;color:var(--muted);font-size:13px}.syncstatus{font-size:12px;color:var(--cyan)}.sheet button{margin-top:8px}.screen h2{overflow-wrap:anywhere}.app{width:100%}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
@media(min-width:900px){.app{max-width:1040px}.desktopHint{display:block}.screen#screen-progress{max-width:900px;margin:auto}.desktopPlan .h1{font-size:32px}.top{padding-left:28px;padding-right:28px}main{padding:24px 28px}.viewerBody img{width:min(1050px,95vw)}}
/* Review: consistent form rhythm, compact centered desktop CTAs. */
#screen-coach .card>label.small{display:block;margin:16px 0 7px}
#screen-coach .card>select{margin:8px 0 16px}
#screen-coach .card>textarea{margin:8px 0 18px}
#screen-coach .card>.btn{margin-top:12px}
#screen-coach .rowwrap{gap:12px;margin-top:14px}
#screen-coach .rowwrap .btn{min-width:140px}
@media(min-width:900px){.screen .btn.full,.sticky-action .btn.full{width:min(100%,380px);display:block;margin-left:auto;margin-right:auto}.btnrow{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}.btnrow .btn{min-width:180px}.topselector{max-width:680px;margin-left:auto;margin-right:auto}.topselector.coachnav{max-width:380px}}


/* Shared button system: Primary, Secondary, Secondary compact. */
.btn,.prototypebar .btn,.btn.smallbtn{min-height:48px;border-radius:16px;padding:14px 16px;font-size:16px;font-weight:850;border:1px solid transparent;box-sizing:border-box}
.btn.secondary,.btn.ghost{background:transparent;color:var(--white);border-color:var(--line)}
.btn.secondary.compact,.btn.smallbtn,.prototypebar .btn{min-height:44px;padding:9px 12px;font-size:14px;border-radius:16px;background:transparent;color:var(--white);border:1px solid var(--line)}
.btn.secondary.danger.compact{color:#ff9b9e;border-color:rgba(229,72,77,.6);background:transparent}
.btn:active{filter:brightness(.85)}.btn:focus-visible,.player-card:focus-visible,summary:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.player-card{cursor:pointer}.player-card:active{border-color:var(--cyan)}
.rec-actions{display:flex;align-items:flex-start;gap:8px;margin-top:12px;flex-wrap:wrap}.rec-menu{margin-left:0}.rec-menu summary{list-style:none;cursor:pointer;display:grid;place-items:center;min-width:44px}.rec-menu summary::-webkit-details-marker{display:none}.context-actions{display:grid;gap:8px;margin-top:8px}
.access-dialog{background:#0b2032;color:var(--white);border:1px solid var(--line);border-radius:24px;padding:24px;width:min(560px,calc(100vw - 32px));max-height:90dvh;overflow:auto;box-sizing:border-box}.access-dialog::backdrop{background:rgba(0,0,0,.7)}.access-actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-start;margin-top:24px}.access-dialog h2{margin-top:0}.access-dialog .permission-row{align-items:center}


.rec-actions{display:flex;flex-wrap:nowrap;align-items:flex-start}.rec-actions>.btn{padding-left:10px;padding-right:10px;min-width:0}.rec-menu{min-width:0}.rec-menu summary{white-space:normal;text-align:center;line-height:1.2;min-height:48px;max-width:120px;padding:9px 10px}.context-actions{position:relative;min-width:0}.context-actions .btn{white-space:normal;width:100%;overflow-wrap:anywhere}


/* Shared inset for dropdown chevrons, matching the menu spacing. */
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23f7fbff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;background-size:18px 18px;padding-right:54px}


.recitem[data-rec-id]>small{display:inline-block;margin-top:6px;margin-bottom:8px}.recitem[data-rec-id]>.pill{display:inline-flex;margin-left:12px;margin-top:6px;margin-bottom:8px;vertical-align:middle}.recitem[data-rec-id]>b{display:block}.recitem[data-rec-id]>.usernote{margin-top:4px}


.rec-menu summary{display:flex;align-items:center;justify-content:center;gap:8px;max-width:none}.rec-menu summary:after{content:'';flex:0 0 7px;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-4px 3px 0 0}.rec-menu[open] summary:after{transform:rotate(225deg);margin-top:4px}.rec-menu .context-actions{gap:8px;padding-top:4px}


/* Breathing room between coach recommendations and their CTA. */
#recBanner .coachRec>.btn{margin-top:16px}


/* Settings language and testing action rhythm. */
#settingsExtra .card{display:flex;flex-direction:column;gap:16px}#settingsExtra .card>h3{margin:0}#settingsExtra .card>.btn.full{margin-top:0;margin-bottom:0}#settingsExtra .btnrow{gap:12px}

.contact-email{min-height:48px;text-decoration:none;box-sizing:border-box}
.variant-summary{margin:10px 16px 16px;padding:12px;border:1px solid #356273;border-radius:12px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;background:#102938}.variant-summary small{color:#8edce7}.variant-row{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;min-height:64px;padding:14px;margin:12px 0;border-radius:12px;border:1px solid #476575;background:#102938;color:white;font:inherit}.variant-row.chosen{border:2px solid #b6e65a}.variant-row:disabled{opacity:.6}.variant-row small{font-size:13px}.access-dialog .btn.full{margin-top:12px}#variantTesting select{width:100%;min-height:48px}#variantDialog{max-height:85dvh;overflow:auto}#variantProgressCard .summaryline{flex-wrap:wrap;gap:12px}#history .summaryline{flex-wrap:wrap}

/* Shared action proportions on desktop and mobile. */
body .btn.full,body .screen .btn.full,body .sticky-action .btn.full{width:100%;max-width:340px;display:block;margin-left:auto;margin-right:auto}
#welcome .sheet>.btn.full{margin-top:12px;margin-bottom:12px}
#welcome .sheet>.btnrow{display:flex;justify-content:center;gap:12px;margin:20px auto 0;max-width:340px}
#welcome .sheet>.btnrow .choice{flex:1;max-width:164px;margin:0;min-height:46px}
.connection-actions{display:flex;align-items:stretch;justify-content:center;gap:12px;margin-top:22px}
.connection-actions .btn{flex:1;max-width:340px;white-space:normal;line-height:1.35;font-size:14px;padding:12px}
.blockbody{border-top:0}
.block-selection{padding:16px 32px 20px}
.block-selection .selectblock{display:block;width:100%;max-width:340px;margin:0 auto;min-height:46px}
.block-selection+.exercise{border-top:0;padding-top:12px}
@media(max-width:420px){.connection-actions{flex-wrap:wrap}.connection-actions .btn{flex:1 1 150px}.block-selection{padding-bottom:20px}}

#screen-coach>.uninvited-test{margin-bottom:16px}
.variant-summary{gap:8px;padding:10px 12px;margin-top:8px;margin-bottom:12px}
.variant-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.variant-heading small{white-space:nowrap;font-size:12px}
.variant-summary>.btn.compact{min-height:48px;padding:8px 11px}
/* Breathing room around starting skill state and stacked exercise fields. */
#blocks .note-inline>label{display:block;margin:16px 0 8px}
#blocks .note-inline>label:first-child{margin-top:0}
#blocks .note-inline>select{display:block;margin-bottom:16px}
#blocks .exdetails select+select{margin-top:16px}
/* Align the block mastery action with the exercise content. */
#blocks .masteryline{padding:16px 32px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#blocks .masteryline>.btn{max-width:100%;white-space:normal;text-align:left}
.supplemental-skill{padding:16px 0;border-bottom:1px solid var(--line)}
.supplemental-skill:last-child{border-bottom:0}
.supplemental-skill .between{flex-wrap:wrap;gap:10px}
#supplementalDialog{max-height:85dvh;overflow:auto}
#supplementalDialog>label{display:block;margin:16px 0 8px}
#supplementalDialog .variant-row input{width:20px;min-height:20px}

/* Content status is informational, alongside the skill name. */
.supplemental-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.supplemental-content-status{color:var(--cyan);font-size:13px;line-height:1.45}
.supplemental-skill>.btn{margin-right:12px;margin-bottom:8px}
.skill-sheet-link{appearance:none;background:none;border:0;color:var(--white);font:inherit;font-weight:800;text-align:left;padding:8px 0;cursor:pointer}
.skill-sheet-link span{color:var(--cyan);margin-left:6px}
.skill-sheet-link:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:4px}
#supplementalSheet{max-height:85dvh;overflow:auto}
@media(max-width:560px){#blocks .masteryline{flex-direction:column;align-items:flex-start;gap:10px}#blocks .note-inline>label{margin-bottom:12px}}
.supplemental-heading .skill-sheet-link{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.supplemental-heading .skill-sheet-link span{margin-left:0}
/* Session note label spacing across desktop and mobile. */
#sessionNote{margin-top:12px}
/* Progress review actions sit below their content, without stretching. */
#variantProgressCard .summaryline{flex-direction:column;align-items:flex-start;gap:12px}
#variantProgressCard .summaryline>.btn{align-self:flex-start;flex:0 0 auto;min-height:40px;padding:8px 11px}
/* Place comparison dividers closer to the previous legend, away from the next title. */
#coachCompare .compareRow{padding-bottom:8px}
#coachCompare .compareRow>p.small{margin-bottom:0}
#coachCompare .compareRow+.compareRow{padding-top:16px}
/* Settings field rhythm and data action spacing. */
#variantTesting>h3{margin-bottom:16px}
#variantTesting>label{display:block}
#variantTesting>label>select{display:block;margin-top:12px;margin-bottom:16px}
#variantTesting>p{margin-top:16px;margin-bottom:12px}
#variantTesting>select{display:block;margin-top:0;margin-bottom:16px}
#screen-data .data-controls>h3{margin-bottom:12px}
#screen-data .data-controls>.btnrow{justify-content:flex-start;gap:12px}
.coach-identity>label{display:block;margin-bottom:12px}
.work-label{display:block;margin:16px 0 12px;color:var(--muted)}
.incoming-recs{margin-bottom:20px}.incoming-recs>h3{margin-bottom:12px}
.prototype-details{margin:8px 24px;font-size:13px;color:var(--muted)}.prototype-details>summary{display:inline-block;padding:10px 12px;border:1px solid var(--line);border-radius:20px;cursor:pointer}
.topselector button,.btn,.btn.smallbtn,.detailsBtn,.choice,.skill-sheet-link{min-height:48px}
.assessment-difference{color:var(--cyan);font-size:13px}
.field-error{color:#ff9b9e;font-size:13px;margin:8px 0 16px}
label{display:block;margin-bottom:10px}input,select,textarea{margin-bottom:12px}button,.btn{min-height:48px}.data-controls .btn{margin-top:12px}#reviewList .variant-heading{display:flex;gap:8px;flex-wrap:wrap}#sessionEdit input,#sessionEdit textarea{width:100%}#sessionEdit{max-height:90vh;overflow:auto}#reviewList .variant-summary{padding:10px 12px}#reviewList .btnrow{justify-content:flex-start}
@media(max-width:600px){.blockhead,.block-header{flex-wrap:wrap;gap:12px}.blockhead button,.block-header button{width:100%}}
@media(max-width:600px){.masteryline{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.masteryline button{width:100%;text-align:left}}
.exercise-touch-target{display:flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;margin:0;flex-shrink:0}.exercise-touch-target input{margin:0}.blockhead{min-height:48px}#reviewList .variant-heading small:before{content:'· ';}

/* GMH-13: visible focus on the dark theme for every custom control. */
.blockhead:focus-visible,.choice:focus-visible,.variant-row:focus-visible,.excheck:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.menuitem:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
/* GMH-15: 44 px minimum touch targets. */
.drawerClose{min-width:48px;min-height:48px}#screen-coach details>summary,.prototype-details>summary{min-height:48px;display:flex;align-items:center}

.choice,.btn,select,input:not([type=checkbox]),.menuitem{min-height:48px}.viewerControls button{min-width:48px;min-height:48px}.field label{margin-bottom:11px}.screen-error{padding:12px;border:1px solid var(--red);border-radius:12px}.contact-email:focus-visible{outline:3px solid var(--lime);outline-offset:2px}

.feedback-notice{border:1px solid var(--cyan);border-left:4px solid var(--cyan);margin-top:16px}.feedback-notice-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.feedback-notice-row p{margin:0;flex:1}.feedback-notice h2{font-size:20px;margin-bottom:12px}@media(max-width:600px){.feedback-notice-row{align-items:stretch;flex-direction:column}.feedback-notice-row button{align-self:flex-start}}

.variant-picker{padding:10px 12px;display:flex;flex-direction:column;gap:7px}.variant-count{color:inherit;font-size:12px;line-height:1.3}.variant-selected{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;width:100%;min-height:48px;padding:10px 12px;margin:0}.variant-selected span:first-child{min-width:0;overflow-wrap:anywhere}.variant-selected span:last-child{font-size:22px}.variant-readonly{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 8px;padding:9px 12px}.variant-readonly small{color:inherit}
/* Selected-variant chooser: bounded width rather than stretching across the card. */
.variant-picker{width:33.333%;min-width:250px;max-width:100%;box-sizing:border-box}
.variant-picker .variant-count{color:inherit}
@media(max-width:600px){.variant-picker{width:min(100%,260px);min-width:0}}

.supplemental-coach-panel{border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:14px;padding:16px;margin:16px 0 22px;background:#102938}.supplemental-coach-panel h3{margin:0 0 12px}.supplemental-coach-panel .usernote{white-space:pre-wrap;overflow-wrap:anywhere}.progress-section-title{font-size:25px;line-height:1.25;margin:32px 0 14px}.shared-sessions summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;cursor:pointer;list-style:none}.shared-sessions summary::-webkit-details-marker{display:none}.disclosure-chevron{font-size:24px;display:inline-block}.shared-sessions[open] .disclosure-chevron{transform:rotate(180deg)}.coach-focus-field{max-width:340px;margin:14px 0}.coach-focus-field label{display:block;margin-bottom:11px}.blank-exercise-sheet{min-height:180px;border:1px dashed var(--line);border-radius:14px;padding:20px;display:grid;place-items:center;text-align:center;margin:16px 0}

.detailsBtn{min-width:100px;min-height:48px;padding:12px 18px;text-align:center}@media(max-width:600px){.detailsBtn{min-width:80px;padding:12px 14px}}

.shared-sessions summary{justify-content:flex-start;gap:10px}.variant-picker{width:auto;min-width:0;max-width:none;align-self:stretch}.variant-picker .variant-selected{width:33.333%;min-width:250px;max-width:100%}@media(max-width:600px){.variant-picker{width:auto;min-width:0}.variant-picker .variant-selected{width:min(100%,260px);min-width:0}}.manual-evaluate{margin:12px auto}.plan-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:16px 0}@media(max-width:899px){.manual-evaluate{display:none!important}}

@media(min-width:900px){#startBtn{background:transparent;border-color:var(--line);color:#eef7fd}}

.feedback-notice-list{max-height:210px;overflow-y:scroll;scrollbar-gutter:stable;padding:4px 14px 4px 0;margin:12px 0;scrollbar-color:#55d6e8 #18374b;scrollbar-width:auto}.feedback-notice-list::-webkit-scrollbar{width:10px}.feedback-notice-list::-webkit-scrollbar-track{background:#18374b;border-radius:6px}.feedback-notice-list::-webkit-scrollbar-thumb{background:#55d6e8;border-radius:6px}.feedback-notice-list:focus-visible{outline:3px solid var(--lime);outline-offset:3px}@media(min-width:900px){.screen select{width:33.333%;min-width:240px;max-width:100%}.screen .btn.full{width:33.333%;min-width:220px;max-width:340px}}@media(max-width:899px){.screen select{max-width:100%}.feedback-notice-list{max-height:280px}}

/* Clear inline affordance; SVG avoids the low baseline of the text chevron. */
.shared-sessions summary{align-items:center;justify-content:flex-start;gap:8px}.shared-sessions .disclosure-chevron{width:18px;height:18px;flex:0 0 18px;display:block}
#screen-build{--review-safe-space:96px;padding-bottom:calc(var(--review-safe-space) + env(safe-area-inset-bottom,0px))}#screen-build #blocks{padding-bottom:var(--review-safe-space)}#screen-build .blockbody{padding-bottom:var(--review-safe-space)}#screen-build .sticky-action{bottom:0;padding:10px 0 max(10px,env(safe-area-inset-bottom,0px));box-sizing:border-box}html{scroll-padding-bottom:96px}
@media(max-width:600px){.variant-picker{border:0;background:transparent;box-shadow:none;padding:0;gap:7px;margin-top:8px;margin-bottom:12px}.variant-picker .variant-selected{border:1px solid var(--line)}.variant-count{line-height:1.4}}

/* Saved coach comments share the row on desktop and stack on phones. */
.saved-coach-assessment{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;padding:16px 0;border-top:1px solid var(--line,#24465b)}
.saved-coach-assessment p{margin:0 0 8px}.saved-coach-comment .usernote{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}
@media(max-width:600px){.saved-coach-assessment{grid-template-columns:minmax(0,1fr);gap:12px}}
.coach-feedback-picker select { max-width: 360px; min-height: 48px; }
.coach-feedback-picker .btn { min-height: 48px; }
.session-time-form{display:grid;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.session-time-form .field{max-width:420px}
.session-time-form .small{margin:0}
.session-time-form .btn{justify-self:start}
