/* Practice Gym V3: a scholar's practice desk. Hub-only styles. */
.gym-v3 { --gym-navy:#142744; --gym-blue:#245bc8; --gym-paper:#f5f2eb; --gym-mint:#b8eadb; --gym-selected:#245bc8; }
.gym-v3>.light-band--page { background:var(--gym-paper); }
.gym-v3 [hidden] { display:none !important; }
.gym-v3 button, .gym-v3 textarea, .gym-v3 a { -webkit-tap-highlight-color:transparent; }
.gym-v3 button:focus-visible, .gym-v3 a:focus-visible, .gym-v3 textarea:focus-visible, .gym-v3 [tabindex]:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.gym-welcome { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,1fr);gap:2rem;align-items:center;padding:3rem 3.2rem;border:1px solid #223b69;border-radius:30px;background:radial-gradient(ellipse at 88% 16%,#285b83 0%,transparent 50%),linear-gradient(125deg,#101f3b,#17366b 70%,#18546a);position:relative;overflow:hidden;box-shadow:0 20px 60px #152b4518; }
.gym-welcome::before { content:'';position:absolute;right:-90px;top:-130px;width:660px;height:660px;border:1px solid #91cfc45c;border-radius:50%;pointer-events:none;box-shadow:0 0 0 70px #91cfc410,0 0 0 140px #91cfc409; }
.gym-welcome::after { content:'';position:absolute;left:0;bottom:0;width:100%;height:5px;background:linear-gradient(90deg,#f4c766 0% 30%,#65c3b4 30% 62%,#7eaaff 62%); }
.gym-welcome-copy,.gym-team { position:relative;min-width:0; }
.gym-welcome .eyebrow { color:#c8e8f3;font-size:.68rem;letter-spacing:.16em; }
.gym-welcome .eyebrow>span { color:#f4c766;margin:0 .55rem; }
.gym-welcome h1 { color:#fff;font-size:clamp(3.4rem,5.7vw,5.5rem);line-height:1.01;margin:1rem 0 1.25rem;letter-spacing:-.035em; }
.gym-welcome h1 em { font-style:italic;color:#f4d185; }
.gym-welcome-copy>p { color:#d7e3f4;font-size:1.03rem;line-height:1.65;max-width:32rem;margin:0; }
.gym-welcome-actions { display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.4rem;align-items:center; }
.gym-button { display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:.65rem 1rem;border:1px solid var(--line-strong);border-radius:10px;font:600 .9rem var(--font-body);background:var(--surface);color:var(--ink);text-decoration:none;cursor:pointer; }
.gym-button--primary { background:var(--gym-navy);color:#fff;border-color:var(--gym-navy); }
.gym-button--quiet { background:transparent;color:var(--gym-navy);border-color:#a9bad3; }
.gym-welcome .gym-button--primary { background:#f4cf79;color:#172640;border-color:#f4cf79; }
.gym-welcome .gym-button--quiet { color:#fff;border-color:#ffffff65;background:#ffffff09; }
.gym-team { text-align:center;padding:1rem 0; }
.gym-stage-caption { display:block;color:#c8e8f3;font:600 .62rem var(--font-mono);letter-spacing:.17em;margin-bottom:1.2rem; }
.gym-stage-orbit { position:absolute;inset:8% 2% 0;border:1px solid #f4d18545;border-radius:50%;transform:rotate(-15deg);pointer-events:none; }
.gym-stage-orbit::after { content:'';position:absolute;width:11px;height:11px;border-radius:50%;background:#f4cf79;top:20%;right:4%;box-shadow:0 0 22px #f4cf7970; }
.gym-team-stage { display:flex;justify-content:center;align-items:flex-end;gap:0;margin:0 auto .75rem;max-width:420px; }
.gym-portrait { width:155px;height:175px;position:relative;display:grid;place-items:center;background:#e4edf8;border:1px solid #bacde5;border-radius:80px 80px 24px 24px;overflow:hidden;isolation:isolate; }
.gym-portrait[hidden] { display:none; }
.gym-portrait--pet { width:112px;height:128px;margin-left:-15px;margin-bottom:-8px;background:#dcf3eb;border-color:#a9d6c5;transform:rotate(5deg); }
.gym-welcome .gym-portrait { width:215px;height:250px;border:2px solid #c8deef75;background:#203b5b;box-shadow:0 20px 40px #07132755;transform:rotate(-5deg);animation:gym-team-arrive .9s cubic-bezier(.2,.65,.3,1) both; }
.gym-welcome .gym-portrait--pet { width:150px;height:175px;margin-left:-30px;margin-bottom:-12px;border-color:#f4cf7980;transform:rotate(7deg);animation-delay:.15s; }
.gym-portrait .gym-glyph { font-size:3.5rem; }
.gym-portrait img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1; }
.gym-portrait video { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2; }
.gym-team-label { font:600 1rem var(--font-body);color:#fff;margin:1.45rem 0 .4rem; }
.gym-team-note { color:#d7e3f4;font-size:.82rem;line-height:1.5;margin:0; }
.gym-topline { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:1.1rem 0 2rem; }
.gym-topline p { font-size:.85rem;color:var(--ink-2);margin:0; }
.gym-topline-links { display:flex;flex-wrap:wrap;gap:1rem;align-items:center;font-size:.85rem; }
.gym-topline a { color:var(--accent);text-underline-offset:3px; }
.gym-v3 .gym-section { margin:2rem 0; }
.gym-v3 .gym-courses,.gym-v3 .gym-modules,.gym-v3 .gym-lessons { max-width:none; }
.gym-v3 .gym-step-label { text-align:left;font-size:.72rem;color:var(--ink-2); }
.gym-section-title { margin:.35rem 0 1.2rem;font:500 clamp(2rem,3.3vw,3rem)/1.1 var(--font-display);color:var(--gym-navy); }
.gym-v3 .gym-courses { gap:.75rem; }
.gym-v3 #gym-courses { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gym-explore { margin-top:1.3rem;border-top:1px solid #b9c7d8;padding-top:1rem; }
.gym-explore summary { cursor:pointer;color:var(--gym-navy);font:600 1rem var(--font-body);padding:.7rem 0;min-height:44px; }
.gym-explore .gym-courses { margin-top:.75rem; }
@media (max-width:619px) { .gym-v3 #gym-courses { grid-template-columns:1fr; }.gym-v3 #gym-courses .gym-course { min-height:120px; } }
.gym-v3 .gym-course { text-align:left;display:grid;grid-template-columns:1fr 44px;column-gap:.6rem;border:1px solid transparent;padding:1.3rem;border-radius:18px;min-height:136px;background:var(--accent);position:relative;overflow:hidden;box-shadow:0 6px 18px #17264012; }
.gym-v3 .gym-course::after { content:'';position:absolute;right:-28px;bottom:-55px;width:150px;height:150px;border:1px solid #ffffff35;border-radius:50%;box-shadow:0 0 0 22px #ffffff09;pointer-events:none; }
.gym-v3 .gym-course .glyph { grid-column:2;grid-row:1 / span 2;align-self:center;font-size:2.4rem;color:#fff;position:relative;z-index:1; }
.gym-v3 .gym-course .nm { grid-column:1;grid-row:1;align-self:end;margin:0;line-height:1.25;font-family:var(--font-body);font-size:1.05rem;color:#fff;position:relative;z-index:1; }
.gym-v3 .gym-course .mc { grid-column:1;grid-row:2;align-self:start;margin:.4rem 0 0;font-size:.65rem;color:#fff;position:relative;z-index:1; }
.gym-v3 .gym-course.active { background:var(--accent);outline:3px solid var(--gym-navy);outline-offset:3px; }
.gym-v3 .gym-modrow,.gym-v3 .gym-controls,.gym-v3 .gym-lesson-quick { justify-content:flex-start; }
.gym-v3 .gym-modbtn { min-height:72px;text-align:left;border-radius:14px;padding:1rem 1.2rem;flex:1 1 260px;max-width:100%;border-left:4px solid var(--gym-selected);font-size:1rem; }
.gym-v3 .gym-modbtn.active { background:var(--gym-selected);color:#fff;border-color:var(--gym-selected); }
.gym-v3 .gym-modbtn.active .num { color:#fff; }
.gym-v3 .gym-mountwrap { margin-top:0;min-width:0; }
.gym-desk { margin:2rem 0;scroll-margin-top:110px; }
.gym-deskbar { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;padding:1.15rem 1.4rem;border:1px solid #c8d2df;border-radius:18px;background:#e6edf5; }
.gym-desk-title h2 { margin:0;font-size:1.9rem;line-height:1.1; }
.gym-desk-title p { margin:.35rem 0 0;font-size:.8rem;color:var(--ink-2); }
.gym-tool-buttons { display:flex;flex-wrap:wrap;gap:.5rem; }
.gym-tool-buttons button[aria-expanded=true] { background:var(--accent-tint);border-color:var(--accent); }
.gym-workspace { display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start;scroll-margin-top:100px; }
.gym-tools { min-width:0;border:1px solid #b5c5da;border-radius:20px;background:#edf2f9;max-height:calc(100dvh - 140px);overflow:auto;scroll-margin-top:100px;box-shadow:0 15px 40px #152b4510; }
.gym-tool-head { position:sticky;top:0;background:var(--surface);z-index:3;display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:1rem;border-bottom:1px solid var(--line); }
.gym-tool-head h3 { margin:0;font:600 1.15rem var(--font-body); }
.gym-tool-head p { margin:.25rem 0 0;color:var(--ink-2);font-size:.78rem; }
#gym-calculator .gym-tool-head { top:auto;bottom:0;border-top:1px solid #b5c5da;border-bottom:0;background:#f6f8fc; }
.gym-tool-body { padding:1rem;min-width:0; }
.gym-tool-foot { font-size:.8rem;line-height:1.5;margin:.75rem 1rem 1rem;color:var(--ink-2); }
.gym-tool-foot a { color:var(--accent); }
.gym-calc-frame { display:block;width:100%;height:720px;border:0;background:var(--surface); }
.gym-tool-status { font-size:.8rem;line-height:1.5;margin:.75rem 1rem;color:var(--ink-2); }
.gym-scratch { display:block;resize:vertical;width:100%;min-height:260px;border:1px solid var(--line-strong);border-radius:10px;padding:.85rem;font:1rem/1.7 var(--font-body);color:var(--ink);background:var(--surface);box-sizing:border-box; }
.gym-scratch-label { display:block;font-size:.9rem;font-weight:600;margin-bottom:.65rem; }
.gym-tools .cl-controls { grid-template-columns:minmax(0,1fr); }
.gym-tools .cl-field--search { grid-column:auto; }
.gym-tools .cl-label { letter-spacing:.04em;font-size:.68rem; }
.gym-empty { padding:2rem;border:1px dashed var(--line-strong);border-radius:16px;text-align:center;color:var(--ink-2); }
.gym-empty h3 { color:var(--ink);margin:0 0 .5rem; }
.gym-empty p { margin:0;font-size:.9rem; }
.gym-v3 .pe-widget { margin:0;max-width:none;border-radius:20px;border-top-width:5px;box-shadow:0 14px 42px #152b4514; }
.gym-v3 .pe-stem { background:var(--recessed);color:var(--ink);border-left:4px solid var(--accent);border-radius:12px;font-size:1.25rem;padding:1.3rem; }
.gym-v3 .pe-progress { height:26px;border-radius:7px; }
.gym-v3 .pe-head { padding-bottom:.9rem;border-bottom:1px solid var(--line); }
.gym-v3 .pe-head { flex-wrap:wrap; }
.gym-v3 .pe-titles { min-width:0;flex:1 1 180px; }
.gym-v3 .pe-title { overflow-wrap:anywhere; }
.gym-intro { position:fixed;inset:0;margin:auto;height:fit-content;border:1px solid #b7c8df;border-radius:24px;padding:2rem;background:var(--gym-paper);color:var(--gym-navy);width:min(520px,calc(100vw - 3rem));max-height:calc(100dvh - 3rem);overflow:auto;box-sizing:border-box;text-align:center; }
.gym-intro::backdrop { background:rgba(13,24,45,.6); }
.gym-intro h2 { font-size:2.3rem;margin:0 0 .5rem;color:var(--gym-navy); }
.gym-intro p { color:#344561;line-height:1.5; }
.gym-intro .gym-team-stage { margin:1.5rem auto; }
.gym-intro-actions { display:flex;justify-content:center;gap:.65rem;flex-wrap:wrap; }
.gym-v3[data-calm=true] .gym-welcome { grid-template-columns:1fr;padding:1.5rem;background:var(--surface);border-radius:14px; }
.gym-v3[data-calm=true] .gym-welcome::before,.gym-v3[data-calm=true] .gym-team,.gym-v3[data-calm=true] #gym-watch-intro { display:none; }
.gym-v3[data-calm=true] .gym-welcome h1 { font-size:2.8rem; }
.gym-v3[data-calm=true] .gym-welcome h1,.gym-v3[data-calm=true] .gym-welcome h1 em { color:var(--gym-navy); }
.gym-v3[data-calm=true] .gym-welcome .eyebrow,.gym-v3[data-calm=true] .gym-welcome-copy>p { color:#344561; }
.gym-v3[data-calm=true] .gym-welcome .gym-button--quiet { color:var(--gym-navy);border-color:#a9bad3; }
.gym-v3[data-calm=true] .gym-welcome::after { display:none; }
.gym-v3[data-calm=true] .gym-course:hover { transform:none; }
.gym-v3[data-calm=true] *, .gym-v3[data-calm=true] *::before { scroll-behavior:auto !important;animation:none !important;transition:none !important; }
@media(min-width:1100px) {
  .gym-workspace[data-tool-open=true] { grid-template-columns:minmax(0,1fr) minmax(390px,430px); }
  .gym-calc-frame { height:clamp(450px,calc(100dvh - 330px),650px); }
  .gym-tools { position:sticky;top:100px;max-height:calc(100dvh - 140px);overflow:auto;scrollbar-gutter:stable; }
  .gym-tool-head { position:sticky;top:0;background:var(--surface);z-index:3; }
}
@media(max-width:619px) {
  .gym-welcome { grid-template-columns:1fr;padding:1.5rem;gap:1.4rem;border-radius:18px; }
  .gym-welcome h1 { font-size:3.6rem; }
  .gym-welcome-copy>p { font-size:.94rem; }
  .gym-team-stage { margin-bottom:.75rem; }
  .gym-portrait { width:125px;height:135px; }
  .gym-portrait--pet { width:94px;height:105px; }
  .gym-welcome .gym-portrait { width:150px;height:172px; }
  .gym-welcome .gym-portrait--pet { width:110px;height:126px;margin-left:-22px; }
  .gym-v3 .gym-courses { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gym-v3 .gym-course { grid-template-columns:1fr;min-height:148px;padding:1rem; }
  .gym-v3 .gym-course .glyph { grid-column:1;grid-row:1;font-size:2rem;align-self:start;margin-bottom:.7rem; }
  .gym-v3 .gym-course .nm { grid-column:1;grid-row:2;font-size:.92rem; }
  .gym-v3 .gym-course .mc { grid-column:1;grid-row:3; }
  .gym-calc-frame { height:690px; }
  .gym-intro { padding:1.5rem; }
  .gym-tool-buttons { width:100%; }
  .gym-tool-buttons .gym-button { flex:1 1 auto;padding:.55rem .7rem;font-size:.85rem; }
}
@keyframes gym-team-arrive { from { opacity:0;translate:0 22px; } to { opacity:1;translate:0 0; } }
@media(prefers-reduced-motion:reduce) {
  .gym-v3 *, .gym-v3 *::before { animation:none !important;transition:none !important;scroll-behavior:auto !important; }
}
@media print { .gym-welcome,.gym-topline,.gym-deskbar,.gym-tools,.gym-intro { display:none !important; } .gym-workspace { display:block !important; } }
/* Show one choice at a time; the mounted question remains alive behind edits. */
.gym-v3[data-flow-ready=true] #gym-subjects,.gym-v3[data-flow-ready=true] #gym-modules,.gym-v3[data-flow-ready=true] #gym-lessons,.gym-v3[data-flow-ready=true] #gym-desk { display:none!important; }
.gym-v3[data-flow-ready=true][data-gym-step=course] #gym-subjects,.gym-v3[data-flow-ready=true][data-gym-step=module] #gym-modules,.gym-v3[data-flow-ready=true][data-gym-step=lesson] #gym-lessons,.gym-v3[data-flow-ready=true][data-gym-step=practice] #gym-desk { display:block!important; }
.gym-v3[data-flow-ready=true]:not([data-gym-step=course]) .gym-welcome { display:none; }
.gym-breadcrumbs { display:flex;flex-wrap:wrap;gap:.45rem;margin:1.4rem 0 .75rem; }
.gym-breadcrumbs[hidden] { display:none; }
.gym-breadcrumbs button { border:1px solid #b9c7d8;background:#fff;color:#283e5c;border-radius:8px;padding:.65rem .8rem;min-height:44px;font:600 .8rem var(--font-body);cursor:pointer; }
.gym-breadcrumbs button[aria-current=step] { background:var(--gym-navy);color:#fff;border-color:var(--gym-navy); }
.gym-breadcrumbs button:disabled { opacity:.6;cursor:default; }
.gym-flow-status { font-size:.85rem;color:#344561;line-height:1.5; }
.gym-flow-return { margin:.75rem 0; }
.gym-topic-step,.gym-v3 .gym-section,.gym-v3 .gym-modules,.gym-v3 .gym-lessons { margin-top:1.8rem;scroll-margin-top:110px; }
.gym-topic-choices { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0 1.4rem; }
.gym-topic-choices button { text-align:left;padding:1.4rem;border:1px solid #b9c7d8;border-left:5px solid var(--gym-selected);border-radius:16px;background:#fff;color:var(--gym-navy);min-height:100px;font:600 1.1rem var(--font-body);cursor:pointer;box-shadow:0 8px 20px #152b4507; }
.gym-topic-choices button span { display:block;margin-top:.75rem;color:#435675;font-size:.75rem;font-weight:400; }
.gym-topic-choices button:disabled { opacity:.6;cursor:default; }
.gym-settings-note { font-size:.8rem;color:#435675;line-height:1.5; }
#gym-change-settings { margin-top:1rem;text-align:left; }
.gym-config-dialog { position:fixed;inset:0;margin:auto;height:fit-content;color:var(--gym-navy);background:var(--gym-paper);border:1px solid #c1cddd;border-radius:22px;padding:1.7rem;width:min(610px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;box-sizing:border-box; }
.gym-config-dialog::backdrop { background:#10213aaa; }
.gym-config-heading { display:flex;align-items:center;justify-content:space-between;gap:1rem; }
.gym-config-heading h2 { font-size:2rem;margin:.2rem 0; }
.gym-config-dialog>p { font-size:.9rem;line-height:1.5; }
.gym-config-dialog form { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.gym-config-dialog form>label { display:grid;gap:.4rem;font-size:.8rem;font-weight:600;min-width:0; }
.gym-config-dialog select { width:100%;min-height:46px;padding:.65rem;border:1px solid #a5b6ce;border-radius:9px;background:#fff;color:#142744;font:400 .9rem var(--font-body); }
.gym-config-dialog .gym-config-mode { grid-column:1/-1;display:flex;align-items:center;gap:.5rem; }
#gym-config-status,#gym-config-apply { grid-column:1/-1; }
.gym-step-enter { animation:gym-step-enter .3s ease-out both; }
@keyframes gym-step-enter { from { opacity:0;transform:translateY(16px); } to { opacity:1;transform:none; } }
@media(max-width:619px) { .gym-topic-choices,.gym-config-dialog form { grid-template-columns:1fr; }.gym-config-dialog { padding:1.2rem; }.gym-breadcrumbs button { font-size:.74rem;padding:.6rem; } }
/* Native dialogs live outside main; pin their palette instead of inheriting the site's dark shell. */
.gym-intro,.gym-config-dialog { --gym-navy:#142744;--gym-paper:#f5f2eb;--ink:#142744;--ink-2:#344561;--surface:#fff;--line-strong:#a9bad3;--accent:#245bc8;--font-body:'Outfit',sans-serif;--font-mono:'JetBrains Mono',monospace; }
.gym-config-dialog h2,.gym-config-dialog p,.gym-config-dialog .eyebrow { color:#344561; }
.gym-config-dialog h2 { color:#142744; }
.gym-v3[data-gym-step=practice]>.light-band--page { padding-top:2rem; }
.gym-v3[data-gym-step=practice] .gym-topline>p { display:none; }
.gym-v3[data-gym-step=practice] .gym-topline { justify-content:flex-end;margin-top:0;margin-bottom:1rem; }
@media(max-width:619px) {
  .gym-v3[data-gym-step=practice] .gym-topline-links { gap:.6rem;font-size:.75rem; }
  .gym-v3[data-gym-step=practice] .gym-topline-links .gym-button { font-size:.75rem;padding:.55rem .7rem; }
  .gym-v3[data-gym-step=practice] .gym-breadcrumbs { margin-top:1rem; }
  .gym-v3[data-gym-step=practice] .gym-deskbar h2 { font-size:1.4rem; }
  .gym-v3[data-gym-step=practice] .gym-tool-buttons { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;width:100%; }
  .gym-v3[data-gym-step=practice] .gym-tool-buttons .gym-button { padding:.55rem .4rem;font-size:.75rem; }
}
.gym-welcome h1 em { background:none;-webkit-text-fill-color:currentColor; }
.gym-v3[data-calm=true] .gym-course { background:#fff;border-color:#b9c7d8;border-left:5px solid var(--accent);box-shadow:none; }
.gym-v3[data-calm=true] .gym-course::before { display:none; }
.gym-v3[data-calm=true] .gym-course .nm,.gym-v3[data-calm=true] .gym-course .mc,.gym-v3[data-calm=true] .gym-course .glyph { color:#142744; }
.gym-intro--boxing { width:min(960px,calc(100vw - 2rem));padding:1.3rem; }
.gym-intro--boxing h2 { font-size:2.1rem; }
.gym-intro-scene { position:relative;aspect-ratio:16/9;width:100%;margin:1rem 0;border-radius:16px;overflow:hidden;background:#142744;isolation:isolate; }
.gym-intro-scene .gym-intro-plate { position:absolute;inset:0;width:100%;height:100%;object-fit:contain; }
.gym-intro-scene .gym-portrait { position:absolute;margin:0;border:2px solid #f0c77d99;background:#142744;box-shadow:0 8px 26px #0005;transform:translate(-50%,-50%);border-radius:18px; }
.gym-intro-scene .gym-portrait img { object-fit:contain; }
.gym-intro-scene .gym-intro-scholar { left:28%;top:55%;width:28%;height:64%; }
.gym-intro-scene .gym-intro-pet { left:12%;top:78%;width:12%;height:25%;border-radius:50%; }
.gym-intro-example { position:absolute;left:2%;top:3%;padding:.35rem .5rem;border:1px solid #f0c77d66;border-radius:5px;background:#142744e6;color:#f0c77d;font:600 .65rem var(--font-mono);letter-spacing:.08em; }
@media(max-width:619px) { .gym-intro--boxing { padding:1rem; }.gym-intro--boxing h2 { font-size:1.8rem; }.gym-intro-example { font-size:.45rem;padding:.2rem; }.gym-intro-scene .gym-glyph { font-size:1.8rem; }.gym-intro-scene .gym-intro-pet .gym-glyph { font-size:1rem; } }
.gym-v3[data-flow-ready=true][data-gym-step=lesson]:not([data-gym-topic=all]) .gym-topics { grid-template-columns:1fr;max-width:900px; }
.gym-v3 .gym-topic { border-radius:16px;box-shadow:0 10px 28px #152b4508; }
.gym-v3 .gym-topic-head { font-size:1.25rem;padding:1.1rem;border-bottom-color:#c8d2df; }
.gym-v3 .gym-lesson { padding:.85rem;min-height:54px;border-radius:10px; }
.gym-v3[data-flow-ready=true]:not([data-gym-step=course]) .gym-about { display:none; }

/* V3.1 "Studio Atlas": the chosen course colour travels through every step.
   Presentation only. Expressive rules skip calm view, which keeps the quiet skin above. */
.gym-v3 { --gym-gold:#f0c77d;--gym-wash:#eaf0fa;--gym-edge:#c9d3e2;--gym-numeral:#dbe3f0;--gym-deep:#1b3563; }
@supports (color:color-mix(in srgb,red,blue)) {
  .gym-v3 { --gym-wash:color-mix(in srgb,var(--gym-selected) 13%,#fffdf8);--gym-edge:color-mix(in srgb,var(--gym-selected) 38%,#ddd6c8);--gym-numeral:color-mix(in srgb,var(--gym-selected) 24%,#fffdf8);--gym-deep:color-mix(in srgb,var(--gym-selected) 30%,#0f1d36); }
}
.gym-v3:not([data-calm=true])>.light-band--page { background-color:var(--gym-paper);background-image:linear-gradient(#1427440b 1px,transparent 1px),linear-gradient(90deg,#1427440b 1px,transparent 1px);background-size:28px 28px; }

/* Route: the breadcrumbs become numbered stops; every stop stays a real, editable button. */
.gym-v3:not([data-calm=true]) .gym-breadcrumbs { counter-reset:gym-stop;gap:.2rem;width:fit-content;max-width:100%;padding:.35rem;border:1px solid var(--gym-edge);border-radius:999px;background:#fffdf8;box-shadow:0 10px 24px -16px #14274466; }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button { counter-increment:gym-stop;display:inline-flex;align-items:center;gap:.5rem;border:0;border-radius:999px;background:transparent;color:var(--gym-navy);padding:.45rem .95rem .45rem .45rem;overflow-wrap:anywhere;text-align:left; }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button::before { content:counter(gym-stop);content:counter(gym-stop) / '';display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--gym-edge);font:600 .7rem var(--font-mono); }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button:has(~ [aria-current=step])::before,
.gym-v3:not([data-calm=true])[data-gym-step=practice] .gym-breadcrumbs button::before { content:'✓';content:'✓' / '';background:var(--gym-wash);border-color:var(--gym-selected); }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button[aria-current=step] { background:var(--gym-navy);color:#fff; }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button[aria-current=step]::before { background:var(--gym-gold);border-color:var(--gym-gold);color:var(--gym-navy); }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button:not(:disabled):not([aria-current=step]):hover { background:var(--gym-wash); }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button:disabled { opacity:1;color:#5b6a82; }
.gym-v3:not([data-calm=true]) .gym-breadcrumbs button:disabled::before { border-style:dashed; }
.gym-v3:not([data-calm=true]) .gym-flow-status:not(:empty) { display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border:1px solid #9fd9c5;border-radius:14px;background:#e3f6ef;color:var(--gym-navy); }
.gym-v3:not([data-calm=true]) .gym-flow-status:not(:empty)::before { content:'';flex:none;width:10px;height:10px;border-radius:50%;background:#2f9b7c; }
.gym-v3:not([data-calm=true]) #gym-flow-return { background:var(--gym-gold);border-color:var(--gym-gold);color:var(--gym-navy); }

/* Plates: one step at a time, washed in the course colour, with a large decorative numeral. */
.gym-v3:not([data-calm=true]) :is(#gym-subjects,#gym-modules,#gym-topic-step,#gym-lessons) { position:relative;isolation:isolate;padding:clamp(1.25rem,3.2vw,2.6rem);border:1px solid var(--gym-edge);border-radius:28px;background:radial-gradient(110% 80% at 100% 0%,var(--gym-wash),transparent 62%),#fffdf8;box-shadow:0 30px 60px -36px #14274466; }
.gym-v3:not([data-calm=true]) :is(#gym-subjects,#gym-modules,#gym-topic-step,#gym-lessons)::before { position:absolute;z-index:-1;top:clamp(.4rem,2vw,1.1rem);right:clamp(1rem,3vw,2.2rem);font:italic 600 clamp(4.5rem,11vw,9rem)/1 var(--font-display);color:var(--gym-numeral);pointer-events:none; }
.gym-v3:not([data-calm=true]) #gym-subjects::before { content:'01';content:'01' / ''; }
.gym-v3:not([data-calm=true]) #gym-modules::before { content:'02';content:'02' / ''; }
.gym-v3:not([data-calm=true]) #gym-topic-step::before { content:'03';content:'03' / ''; }
.gym-v3:not([data-calm=true]) #gym-lessons::before { content:'04';content:'04' / ''; }
.gym-v3:not([data-calm=true]) .gym-step-label { display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:999px;background:var(--gym-navy);color:#fff;font:600 .66rem var(--font-mono);letter-spacing:.14em;margin:0; }
.gym-v3:not([data-calm=true]) .gym-step-label::before { content:'';width:8px;height:8px;border-radius:50%;background:var(--gym-gold); }
.gym-v3:not([data-calm=true]) .gym-section-title { font:600 clamp(2.2rem,4.4vw,3.7rem)/1.02 var(--font-display);letter-spacing:-.02em;color:var(--gym-navy);margin:.9rem 0 1.5rem;max-width:18ch; }
.gym-v3:not([data-calm=true]) .gym-section-title::after { content:'';display:block;width:3.5rem;height:4px;margin-top:.8rem;border-radius:4px;background:linear-gradient(90deg,var(--gym-selected) 60%,var(--gym-gold) 60%); }

/* Course covers: keep the colour, add a navy dusk scrim so white text holds contrast on light accents. */
.gym-v3:not([data-calm=true]) .gym-course { background:linear-gradient(to top,#0f1d36eb 0%,#0f1d36b8 55%,#0f1d3626 100%),var(--accent);min-height:168px;border-radius:22px;transition:transform .18s ease,box-shadow .18s ease; }
.gym-v3:not([data-calm=true]) .gym-course:hover { transform:translateY(-4px) rotate(-.4deg);box-shadow:0 18px 34px -16px #142744aa; }
.gym-v3:not([data-calm=true]) .gym-course .nm { font:600 1.4rem/1.08 var(--font-display); }
.gym-v3:not([data-calm=true]) .gym-course .mc { font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase; }

/* Modules: a calm chapter list, not a wall of equal buttons. */
.gym-v3:not([data-calm=true]) .gym-modrow { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:.75rem; }
.gym-v3:not([data-calm=true]) .gym-modbtn { display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.9rem;min-height:76px;padding:.9rem 1.1rem .9rem .9rem;background:#fff;color:var(--gym-navy);border:1px solid var(--gym-edge);border-left:6px solid var(--gym-selected);border-radius:16px;font:500 1rem/1.35 var(--font-body);text-align:left;box-shadow:0 10px 22px -18px #142744aa;transition:transform .15s ease,background-color .15s ease; }
.gym-v3:not([data-calm=true]) .gym-modbtn:hover { transform:translateY(-2px);background:var(--gym-wash); }
.gym-v3:not([data-calm=true]) .gym-modbtn .num { margin:0;display:grid;place-items:center;min-width:3rem;height:3rem;border-radius:12px;background:var(--gym-wash);color:var(--gym-navy);font:600 .78rem var(--font-mono); }
.gym-v3:not([data-calm=true]) .gym-modbtn.active { background:var(--gym-wash);color:var(--gym-navy);outline:3px solid var(--gym-navy);outline-offset:2px; }
.gym-v3:not([data-calm=true]) .gym-modbtn.active .num { background:var(--gym-navy);color:#fff; }
.gym-v3:not([data-calm=true]) .gym-controls { margin-top:1.4rem;padding-top:1.1rem;border-top:1px dashed var(--gym-edge); }
.gym-v3:not([data-calm=true]) .gym-toggle { padding:.4rem .9rem;border:1px solid var(--gym-edge);border-radius:999px;background:#fff;color:var(--gym-navy); }
.gym-v3:not([data-calm=true]) .gym-toggle:has(input:checked) { background:var(--gym-navy);border-color:var(--gym-navy);color:#fff; }

/* Topics: the cards are the one primary path; "whole module" steps back to a quiet option. */
.gym-v3:not([data-calm=true]) .gym-topic-choices .gym-topic-choice { display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:132px;padding:1.3rem 1.4rem 1.2rem;border:1px solid var(--gym-edge);border-top:6px solid var(--gym-selected);border-radius:18px;background:linear-gradient(160deg,#fff 55%,var(--gym-wash));font:600 1.45rem/1.15 var(--font-display);color:var(--gym-navy);transition:transform .15s ease,box-shadow .15s ease; }
.gym-v3:not([data-calm=true]) .gym-topic-choices .gym-topic-choice:not(:disabled):hover { transform:translateY(-3px);box-shadow:0 18px 30px -18px #142744aa; }
.gym-v3:not([data-calm=true]) .gym-topic-choices button span { padding-top:1rem;font:500 .7rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:#435675; }
.gym-v3:not([data-calm=true]) .gym-topic-choices button:disabled { opacity:1;border-style:dashed;border-top-style:solid;background:transparent;color:#5b6a82; }
.gym-v3:not([data-calm=true]) .gym-topic-choices>button:not(.gym-topic-choice) { grid-column:1/-1;min-height:56px;padding:.9rem;border:1.5px dashed var(--gym-edge);border-radius:14px;background:transparent;font:600 .95rem var(--font-body);text-align:center; }
.gym-v3:not([data-calm=true]) #gym-start-module { background:transparent;color:var(--gym-navy);border-color:#a9bad3; }

/* Lessons */
.gym-v3:not([data-calm=true]) .gym-lesson-quick { padding:.75rem;border-radius:14px;background:var(--gym-wash); }
.gym-v3:not([data-calm=true]) .gym-topic { background:#fff;border:1px solid var(--gym-edge);border-top:6px solid var(--gym-selected);border-radius:18px;padding:1.2rem 1.3rem 1rem; }
.gym-v3:not([data-calm=true]) .gym-topic-head { font:600 1.5rem/1.15 var(--font-display);color:var(--gym-navy); }
.gym-v3:not([data-calm=true]) .gym-lesson { border:1px solid transparent; }
.gym-v3:not([data-calm=true]) .gym-lesson:has(input:checked) { background:var(--gym-wash);border-color:var(--gym-edge);color:var(--gym-navy); }
.gym-v3:not([data-calm=true]) .gym-sticky { background:var(--gym-navy);border-color:var(--gym-navy);border-radius:16px;box-shadow:0 -10px 30px -12px #14274466; }
.gym-v3:not([data-calm=true]) .gym-sticky-count { color:#fff;font:600 .78rem var(--font-mono);letter-spacing:.06em; }
.gym-v3:not([data-calm=true]) #gym-sticky-start { background:var(--gym-gold);border-color:var(--gym-gold);color:var(--gym-navy);font-weight:700; }
.gym-v3:not([data-calm=true]) #gym-sticky-start:disabled { background:#ffffff26;border-color:#ffffff40;color:#d7e3f4; }
.gym-v3:not([data-calm=true]) #gym-sticky-clear { background:transparent;border-color:#ffffff80;color:#fff; }
.gym-v3:not([data-calm=true]) .gym-sticky :focus-visible { outline-color:var(--gym-gold); }

/* Desk: navy instrument rail above a graph-paper desk. */
.gym-v3:not([data-calm=true]) .gym-deskbar { position:relative;border:0;border-radius:20px;background:linear-gradient(120deg,var(--gym-navy),var(--gym-deep));box-shadow:0 18px 40px -24px #142744aa; }
.gym-v3:not([data-calm=true]) .gym-deskbar::after { content:'';position:absolute;left:1.4rem;right:1.4rem;bottom:0;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--gym-selected) 0 55%,var(--gym-gold) 55% 75%,var(--gym-mint) 75%); }
.gym-v3:not([data-calm=true]) .gym-desk-title h2 { color:#fff;font:600 clamp(1.5rem,2.6vw,2.1rem)/1.1 var(--font-display); }
.gym-v3:not([data-calm=true]) .gym-desk-title p { color:#d7e3f4;font:500 .72rem var(--font-mono);letter-spacing:.04em; }
.gym-v3:not([data-calm=true]) .gym-tool-buttons .gym-button { background:#ffffff12;border-color:#ffffff4d;color:#fff; }
.gym-v3:not([data-calm=true]) .gym-tool-buttons .gym-button:hover { background:#ffffff24; }
.gym-v3:not([data-calm=true]) .gym-tool-buttons .gym-button[aria-expanded=true],.gym-v3:not([data-calm=true]) .gym-tool-buttons .gym-button[aria-expanded=true]:hover { background:var(--gym-gold);border-color:var(--gym-gold);color:var(--gym-navy); }
.gym-v3:not([data-calm=true]) .gym-deskbar :focus-visible { outline-color:var(--gym-gold); }

/* Ring: the daily intro on a navy night stage. The scene's own plate, avatar and pet are untouched. */
body:has(.gym-v3:not([data-calm=true])) .gym-intro--boxing { background:radial-gradient(90% 70% at 50% 0%,#24497f,transparent 70%),var(--gym-navy);border-color:#f0c77d66; }
body:has(.gym-v3:not([data-calm=true])) .gym-intro--boxing h2 { color:#fff;font-family:'Cormorant Garamond',serif; }
body:has(.gym-v3:not([data-calm=true])) .gym-intro--boxing p { color:#d7e3f4; }
body:has(.gym-v3:not([data-calm=true])) .gym-intro--boxing .gym-button--primary { background:var(--gym-gold);border-color:var(--gym-gold);color:var(--gym-navy); }
body:has(.gym-v3:not([data-calm=true])) .gym-intro--boxing .gym-button--quiet { background:transparent;border-color:#ffffff80;color:#fff; }
body:has(.gym-v3:not([data-calm=true])) .gym-intro--boxing :focus-visible { outline-color:var(--gym-gold); }
body:has(.gym-v3:not([data-calm=true])) .gym-intro-scene { background:linear-gradient(transparent calc(32% - 1px),#f0c77d59 0 calc(32% + 2px),transparent 0 calc(44% - 1px),#f0c77d59 0 calc(44% + 2px),transparent 0),radial-gradient(60% 55% at 62% 40%,#2c5a8f,transparent 70%),linear-gradient(#142744 74%,#0d1a30 74%);box-shadow:inset 0 0 0 1px #f0c77d40,inset 0 -3px 0 var(--gym-gold); }

/* Both views: calculator controls sit beneath the device and never overlay it. */
.gym-v3 #gym-calculator .gym-tool-head { position:static;border-top:1px solid #b5c5da; }
@media(min-width:960px) and (max-width:1099px) {
  .gym-workspace[data-tool-open=true] { grid-template-columns:minmax(0,1fr) minmax(360px,380px); }
  .gym-tools { position:sticky;top:100px;max-height:calc(100dvh - 140px);overflow:auto;scrollbar-gutter:stable; }
  .gym-calc-frame { height:clamp(450px,calc(100dvh - 330px),650px); }
}

/* Both views: 44px targets and no iOS focus zoom. */
.gym-v3 .gym-toggle,.gym-config-dialog .gym-config-mode { min-height:44px; }
.gym-v3 .gym-toggle input,.gym-config-dialog .gym-config-mode input,.gym-v3 .gym-lesson input,.gym-v3 .gym-topic-all input { width:20px;height:20px;accent-color:var(--gym-navy); }
.gym-v3 .gym-topline-links>a,.gym-v3 .gym-tool-foot a { display:inline-flex;align-items:center;min-height:44px; }
.gym-v3 #gym-random,.gym-v3 .gym-lesson-quick .pe-btn { min-height:44px; }
@media(max-width:619px) {
  .gym-welcome h1 { font-size:clamp(2.6rem,11vw,3.6rem); }
  .gym-config-dialog select,.gym-v3 .gym-upto select { font-size:16px; }
  .gym-intro-example { font-size:.75rem;padding:.25rem .45rem; }
  .gym-v3:not([data-calm=true]) .gym-breadcrumbs { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:auto;border-radius:18px; }
  .gym-v3:not([data-calm=true]) .gym-breadcrumbs button { min-width:0;border-radius:12px;padding:.4rem .5rem;font-size:.74rem; }
  .gym-v3:not([data-calm=true]) .gym-breadcrumbs button::before { width:24px;height:24px; }
  .gym-v3:not([data-calm=true]) :is(#gym-subjects,#gym-modules,#gym-topic-step,#gym-lessons) { padding:1.1rem;border-radius:20px; }
  .gym-v3:not([data-calm=true]) :is(#gym-subjects,#gym-modules,#gym-topic-step,#gym-lessons)::before { font-size:3.4rem; }
  .gym-v3:not([data-calm=true]) .gym-section-title { font-size:2.2rem;max-width:none; }
  .gym-v3:not([data-calm=true]) .gym-course { padding:1rem .8rem; }.gym-v3:not([data-calm=true]) .gym-course .nm { font-size:1.12rem;overflow-wrap:anywhere; }
  .gym-v3:not([data-calm=true]) .gym-modbtn { min-height:64px;padding:.75rem .85rem;gap:.7rem;font-size:.95rem; }
  .gym-v3:not([data-calm=true]) .gym-modbtn .num { min-width:2.5rem;height:2.5rem; }
  .gym-v3:not([data-calm=true]) .gym-topic-choices .gym-topic-choice { min-height:104px;font-size:1.25rem; }
  .gym-v3:not([data-calm=true]) .gym-deskbar { padding:1rem;border-radius:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .gym-v3 .gym-course:hover,.gym-v3 .gym-modbtn:hover,.gym-v3 .gym-topic-choices button:hover { transform:none !important; }
}
