/* Page purpose is a structural rule, not a fullscreen toggle.
   Focus routes do not render the site's sidebar, commerce or report widgets. */
[hidden]{display:none!important}
:root{--focus-ink:#193E56;--focus-muted:rgba(25, 62, 86, 0.72);--focus-green:#193E56;--focus-line:rgba(25, 62, 86, 0.2);--focus-bg:rgba(25, 62, 86, 0.055)}
body{color:var(--focus-ink)}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid rgba(25, 62, 86, 0.22);outline-offset:3px}
#main:focus{outline:none}
.btn{min-height:42px}.btn-primary{background:rgba(25, 62, 86, 0.88);color:#fff}.btn-secondary{color:#193E56}
.field-help{font-size:13px;color:var(--focus-muted);line-height:1.85}.form-error{font-size:13px;color:#193E56;margin:10px 0;line-height:1.8}.form-error:empty{display:none}
.compact-heading{margin-bottom:24px}.compact-heading h1{font-size:29px}.page-heading p{color:#193E56;font-size:14px}.compact-heading>.btn{padding-left:0;margin-bottom:12px}
.sidebar .side-bottom{margin-top:auto}.nav-label{color:#193E56}.main-content{max-width:1380px}.footer-note{display:none}.map-note{color:#193E56}
.chapter-intro{display:flex;align-items:center;gap:30px;padding:15px 0 25px}.chapter-intro .island-art{width:160px}.chapter-intro h1{font-size:30px;margin:5px 0}.chapter-intro p{color:#193E56}
.single-form{max-width:720px;padding:30px}.single-form label{display:block;font-size:14px;font-weight:600;margin:20px 0 8px}.single-form input,.single-form textarea,.single-form select{width:100%;font-size:15px}.single-form>.btn{margin-top:22px}.single-form p{color:#193E56;font-size:14px;line-height:1.9}.single-form hr{border:0;border-top:1px solid var(--focus-line);margin:25px 0}.single-form h2{font-size:18px}.single-form .row{margin-top:15px;flex-wrap:wrap}.subtle-link{display:inline-block;margin-top:24px;text-decoration:underline;color:#193E56}.single-form .space-code{display:block;font-size:14px}.danger-zone summary{cursor:pointer;color:#193E56}.danger-zone p{margin:15px 0}
.purpose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:1000px}.purpose-card{text-align:left;position:relative;padding:30px;transition:border-color .15s}.purpose-card:hover{border-color:rgba(25, 62, 86, 0.22)}.purpose-card h2{font-size:20px;margin:18px 0 10px}.purpose-card p{font-size:14px;color:#193E56;line-height:1.9}.purpose-icon{display:inline-flex;padding:12px;border-radius:14px;background:rgba(25, 62, 86, 0.035);color:#193E56}.purpose-arrow{position:absolute;right:26px;top:35px}a.purpose-card{display:block;color:inherit;text-decoration:none}
.review-list{max-width:820px}.review-item{padding:28px}.review-item h2{font-size:19px}.review-item label{display:block;margin-top:16px;font-size:13px;font-weight:600}.review-item select{font-size:14px}.review-item textarea{font-size:14px}.review-item .review-reflection{font-size:14px;line-height:1.9;color:#193E56}.review-item details{font-size:12px;color:#193E56}.review-item pre{font-size:12px}.review-rubric{margin:14px 0;padding:12px 14px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:rgba(25, 62, 86, 0.035);color:#193E56}.review-rubric summary{font-size:12px;font-weight:700;color:#193E56;min-height:28px}.review-rubric ul{margin:7px 0 8px;padding-left:20px;font-size:12px;line-height:1.8}.review-rubric p{margin:8px 0 0;color:#193E56;font-size:11px;line-height:1.7}.independent-task{font-size:14px;line-height:1.9;margin:20px 0;padding:16px;background:rgba(25, 62, 86, 0.035);border-radius:10px}.review-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}
/* Public:understand the course and enter; no progress dashboard. */
.public-header{max-width:1200px;padding:28px 24px;margin:auto;display:flex;align-items:center;gap:28px}.public-brand{display:flex;align-items:center;gap:9px;color:#193E56;text-decoration:none}.public-brand strong{font-size:21px}.public-brand span{font-size:9px;letter-spacing:1.4px;color:#193E56}.public-header nav{display:flex;gap:30px;margin-left:auto;margin-right:15px}.public-header nav a{font-size:13px;color:#193E56;text-decoration:none}.public-main{max-width:1200px;margin:auto;padding:0 24px}.public-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;min-height:605px}.public-hero h1{font-size:clamp(30px,3.8vw,50px);letter-spacing:-1px;line-height:1.5;margin:24px 0}.public-hero h1 span{color:#193E56}.public-description{font-size:16px;line-height:2;color:#193E56;max-width:435px}.public-cta{font-size:16px;padding:15px 25px;margin-top:30px}.public-reassurance{display:flex;gap:17px;font-size:11px;color:#193E56;margin-top:22px}.public-reassurance span{display:flex;align-items:center;gap:4px}.journey-illustration{position:relative;height:420px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:32px;background:radial-gradient(ellipse,rgba(25, 62, 86, 0.035),rgba(25, 62, 86, 0.035))}.journey-line{position:absolute;inset:0;width:100%;height:100%}.journey-island{position:absolute;text-align:center;display:flex;flex-direction:column;align-items:center}.journey-island .island-art{width:133px;height:125px}.journey-island strong{font-size:13px;margin-top:0}.journey-island span{font-size:11px;color:#193E56;margin-top:4px}.journey-island.first{left:3%;top:132px}.journey-island.second{left:35%;top:14px}.journey-island.third{right:2%;top:145px}.journey-note{position:absolute;bottom:20px;left:20px;right:20px;border:1px solid rgba(25, 62, 86, 0.22);background:#fff;border-radius:12px;padding:17px;font-size:12px;display:flex;align-items:center;gap:13px;color:#193E56}.public-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:15px 0 64px}.public-principles article{border-top:1px solid rgba(25, 62, 86, 0.22);padding-top:25px}.public-principles article>span{color:#193E56;font-size:11px}.public-principles h2{font-size:20px;margin:16px 0 12px}.public-principles p{font-size:14px;line-height:1.9;color:#193E56}.public-footer{border-top:1px solid rgba(25, 62, 86, 0.22);max-width:1152px;margin:auto;padding:24px 0;display:flex;justify-content:space-between;font-size:11px;color:#193E56}
/* Dedicated lesson shell:a single lesson, never the application shell. */
body[data-surface="focus"]{background:var(--focus-bg)}
body[data-surface="focus"] #toasts{bottom:98px}
.focus-shell{min-height:100dvh;display:flex;flex-direction:column}
.focus-header{height:84px;display:grid;grid-template-columns:180px minmax(0,1fr) 200px;gap:18px;align-items:center;padding:0 38px;border-bottom:1px solid var(--focus-line);background:#fff}
.focus-exit{display:flex;align-items:center;gap:10px;color:#193E56;font-size:13px;min-height:44px;width:fit-content}.focus-exit:hover{color:#193E56}.focus-heading{text-align:center}.focus-heading>span{font-size:11px;color:#193E56}.focus-heading h1{font-size:18px;line-height:1.7;margin-top:1px;font-weight:600}.focus-save{display:flex;justify-content:flex-end;align-items:center;gap:7px;font-size:11px;color:#193E56;flex-wrap:wrap}.save-dot{width:6px;height:6px;background:rgba(25, 62, 86, 0.16);border-radius:50%}.focus-save [data-error="true"]{color:#193E56}
.focus-main{width:100%;max-width:1240px;margin:auto;padding:0 28px 35px;flex:1;min-width:0}
.lesson-steps{display:flex;align-items:center;justify-content:center;gap:54px;padding:28px 0;margin-bottom:15px}
.lesson-step{display:flex;align-items:center;gap:10px;color:#193E56;font-size:13px;min-height:40px;position:relative}.lesson-step:not(:last-child):after{content:'';position:absolute;width:27px;height:1px;background:rgba(25, 62, 86, 0.035);right:-40px}.lesson-step>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:50%;font-size:12px;background:rgba(25, 62, 86, 0.035)}.lesson-step.active{color:#193E56;font-weight:600}.lesson-step.active>span{background:rgba(25, 62, 86, 0.88);color:#fff;border-color:rgba(25, 62, 86, 0.22)}.focus-notice{max-width:780px;margin:0 auto 12px;display:flex;gap:7px;align-items:center;padding:0;background:transparent;border:0;border-radius:0;font-size:11px;color:#193E56;line-height:1.45}.focus-notice svg{width:14px;height:14px;flex:none}.focus-notice button{text-decoration:underline;margin-left:8px}
.think-stage,.explain-stage{max-width:780px;margin:25px auto}.stage-kicker{font-size:12px;color:#193E56;letter-spacing:1px}.stage-intro h2{font-size:29px;line-height:1.6;margin:15px 0 16px;letter-spacing:-.5px}.stage-intro p{font-size:15px;line-height:2;color:#193E56;max-width:740px}.prediction-card{border:0;margin:32px 0 15px;padding:0;min-width:0}.prediction-card legend{font-size:17px;font-weight:600;margin-bottom:8px}.prediction-card>.field-help{margin-bottom:18px}.prediction-card .radio-card{padding:17px 19px;background:#fff;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;gap:13px;font-size:15px;color:#193E56;margin:11px 0;line-height:1.7;min-height:62px}.prediction-card .radio-card:hover{border-color:rgba(25, 62, 86, 0.22)}.prediction-card .radio-card:has(input:checked){background:rgba(25, 62, 86, 0.035);border-color:rgba(25, 62, 86, 0.22);box-shadow:0 0 0 1px rgba(25, 62, 86, 0.32)}.prediction-card .radio-card input{accent-color:#193E56;width:17px;height:17px}.option-letter{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:6px;color:#193E56;font-size:12px;background:rgba(25, 62, 86, 0.035)}
.build-stage{margin-top:20px}.workspace-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.workspace-caption h2{font-size:20px;font-weight:500;margin-top:6px;line-height:1.6}.focus-workspace{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:22px;align-items:start}.focus-workspace .lab-card,.focus-workspace .output-panel{margin:0;min-width:0}.focus-workspace .lab-body{padding:26px;min-height:350px}.focus-workspace .lab-toolbar{font-size:12px;color:#193E56;padding:14px 21px}.focus-workspace .output-panel{align-self:start;background:#fff;border-color:rgba(25, 62, 86, 0.22)}.focus-workspace .output-title{font-size:13px;padding:17px;border-bottom:1px solid rgba(25, 62, 86, 0.22)}.focus-workspace .output-content{font-size:13px;padding:19px;color:#193E56;max-height:600px;overflow:auto}.focus-workspace .output-content pre{white-space:pre-wrap;overflow-wrap:anywhere}.focus-workspace .empty-output{font-size:13px;align-items:flex-start;line-height:1.9;flex-direction:column;gap:16px;margin:0;color:#193E56;min-height:26px}.check-row{font-size:12px;line-height:1.8}.check-row small{font-size:11px}.focus-workspace .grid-lab{grid-template-columns:minmax(170px,1fr) minmax(200px,.92fr);gap:24px}.focus-workspace .game-grid{max-width:350px;margin:0 auto}.focus-workspace .block-builder h4{font-size:14px;margin-bottom:15px}.focus-workspace .block-add{font-size:12px;min-height:34px}.focus-workspace .block-sequence{min-height:150px}.focus-workspace .command-block{font-size:13px;min-height:42px}.focus-workspace .block-footer{font-size:11px}.focus-workspace .block-empty{font-size:13px}.focus-workspace .logic-syntax{font-size:11px;margin-top:15px}.focus-workspace .logic-syntax input{font-size:12px}.focus-workspace .CodeMirror{font-size:14px;min-height:325px;height:auto}.focus-workspace .CodeMirror-scroll{min-height:325px;max-height:520px}.focus-workspace .runtime-note{font-size:11px;line-height:1.8}.inline-hint{position:relative;font-size:12px;color:#193E56}.inline-hint summary{cursor:pointer;min-height:28px;display:flex;align-items:center}.inline-hint[open]>div{position:absolute;z-index:20;right:0;top:36px;background:rgba(25, 62, 86, 0.035);padding:19px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;width:280px;box-shadow:0 12px 36px rgba(25, 62, 86, 0.1);line-height:1.9}.inline-hint small{display:block;color:#193E56;margin-top:10px;font-size:11px}
.focus-footer{position:sticky;bottom:0;z-index:40;display:flex;gap:20px;align-items:center;min-height:86px;padding:17px 38px;background:#fff;border-top:1px solid var(--focus-line);backdrop-filter:blur(8px)}.focus-footer>.btn{min-width:110px}.focus-footer-note{font-size:12px;color:#193E56;display:flex;align-items:center;gap:8px}.focus-primary-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.focus-primary-actions .btn-primary{padding:13px 25px;font-size:14px;min-height:46px}.focus-primary-actions .btn-secondary{font-size:12px}.focus-footer>[data-action="previous-step"][hidden]+.focus-footer-note{margin-left:0}.reflection-card{padding:28px;background:#fff;border:1px solid rgba(25, 62, 86, 0.22);border-radius:16px;margin-top:27px}.reflection-card label{font-size:15px;font-weight:600}.reflection-card textarea{width:100%;font-size:16px;line-height:1.9;padding:17px;min-height:175px;margin:13px 0 7px;resize:vertical}.review-explain{border-top:1px solid rgba(25, 62, 86, 0.22);margin-top:22px;padding-top:18px;font-size:12px;color:#193E56;line-height:1.9}.studio-heading p{margin:28px 0;font-size:14px;color:#193E56}body[data-page="studio"] .focus-footer .btn-primary{margin-left:auto}
.completion-page{max-width:700px;min-height:90dvh;padding:35px 30px;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.completion-visual .island-art{width:190px;height:155px}.completion-page h1{font-size:33px;margin:18px 0}.completion-page>p:not(.eyebrow){font-size:15px;line-height:2;color:#193E56;max-width:475px}.completion-page .eyebrow{margin-top:14px}.completion-recap{display:flex;gap:23px;font-size:12px;margin:28px 0;color:#193E56}.completion-recap span{display:flex;align-items:center;gap:8px}.completion-actions{display:flex;flex-direction:column;gap:8px;width:min(100%,400px);margin-top:8px}.completion-actions .btn-primary{min-height:52px;font-size:15px}.completion-link{font-size:12px;color:#193E56;margin-top:27px;text-decoration:underline;text-underline-offset:4px;min-height:40px}
@media(max-width:1050px){.focus-workspace{grid-template-columns:minmax(0,1fr) 245px;gap:15px}.focus-workspace .grid-lab{grid-template-columns:1fr}.focus-workspace .game-grid{max-width:260px}.public-hero{gap:30px}.public-brand span{display:none}.public-header nav{gap:18px}.journey-island .island-art{width:105px}.public-hero h1{font-size:37px}}
@media(max-width:760px){.focus-header{height:78px;padding:0 16px;gap:9px;grid-template-columns:35px minmax(0,1fr) 84px}.focus-exit span{display:none}.focus-exit{min-width:35px;min-height:44px}.focus-heading h1{font-size:15px}.focus-heading>span{font-size:10px}.focus-save{font-size:10px;gap:4px}.focus-save .save-dot{display:none}.focus-save [data-action="retry-save"]{padding:2px 4px;min-height:24px;font-size:10px}.focus-main{padding:0 16px 23px}.lesson-steps{padding:20px 0 10px;gap:24px;margin-bottom:7px;justify-content:space-between}.lesson-step{font-size:12px;gap:6px}.lesson-step>span{width:24px;height:24px;font-size:11px}.lesson-step:not(:last-child):after{display:none}.think-stage,.explain-stage{margin:22px auto 10px}.stage-intro h2{font-size:23px;margin-top:13px;line-height:1.65}.stage-intro p{font-size:14px;line-height:1.95}.stage-kicker{font-size:11px}.prediction-card{margin-top:28px}.prediction-card legend{font-size:16px;line-height:1.8}.prediction-card .radio-card{font-size:14px;padding:15px 12px;gap:9px}.option-letter{display:none}.field-help{font-size:12px}.workspace-caption{margin-top:8px;gap:8px;align-items:flex-start}.workspace-caption h2{font-size:17px}.workspace-caption .btn{font-size:10px;white-space:nowrap;padding:4px;min-height:30px}.focus-workspace{grid-template-columns:1fr}.focus-workspace .lab-body{padding:18px}.focus-workspace .grid-lab{grid-template-columns:1fr;gap:18px}.focus-workspace .game-grid{max-width:270px}.focus-workspace .block-sequence{min-height:100px}.focus-workspace .block-empty{min-height:100px}.focus-workspace .output-content{max-height:340px}.focus-workspace .empty-output{flex-direction:row;font-size:12px;margin:0;gap:10px}.focus-workspace .CodeMirror{font-size:12px}.focus-workspace .lab-toolbar{padding:12px 14px;gap:10px}.inline-hint[open]>div{width:min(275px,75vw)}.focus-footer{padding:13px 16px;padding-bottom:calc(13px + env(safe-area-inset-bottom));min-height:74px;gap:8px}.focus-footer-note{display:none}.focus-footer>.btn{min-width:75px;padding:10px 5px;font-size:12px}.focus-primary-actions{gap:8px}.focus-primary-actions .btn-primary{font-size:13px;padding:12px 17px;min-height:44px}.focus-primary-actions .btn-secondary{font-size:11px;padding:10px;min-height:40px}.focus-notice{font-size:11px;margin-top:4px}.reflection-card{padding:20px;margin-top:20px}.reflection-card textarea{font-size:15px}.review-explain{font-size:11px}.completion-page h1{font-size:28px}.completion-recap{gap:14px;font-size:11px}.public-header{padding:18px 16px;gap:12px}.public-header nav{display:flex;gap:12px;margin-left:auto;margin-right:0}.public-header nav a{font-size:11px;white-space:nowrap}.public-header>.btn{display:none}.public-main{padding:0 22px}.public-hero{grid-template-columns:1fr;gap:30px;min-height:0;padding:35px 0 30px}.public-hero h1{font-size:36px;line-height:1.5;letter-spacing:-1px;margin:15px 0 22px}.public-description{font-size:14px}.public-cta{font-size:14px;margin-top:24px}.public-reassurance{gap:12px;font-size:10px}.journey-illustration{height:360px}.journey-island .island-art{width:110px;height:98px}.journey-island.first{left:0;top:128px}.journey-island.second{left:34%;top:16px}.journey-island.third{right:0;top:137px}.journey-island strong{font-size:11px}.journey-island span{font-size:9px}.journey-note{font-size:10px;bottom:17px;padding:13px;left:13px;right:13px}.public-principles{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.public-principles h2{font-size:18px;margin:13px 0 8px}.public-principles p{font-size:13px}.public-footer{margin:0 22px;font-size:10px;line-height:1.9;flex-direction:column;gap:8px}.single-form{padding:22px}.purpose-grid{grid-template-columns:1fr;gap:16px}.purpose-card{padding:24px}.purpose-card h2{font-size:18px}.purpose-card p{font-size:13px}.review-actions{flex-wrap:wrap}.review-item{padding:20px}.review-item h2{font-size:17px}.chapter-intro .island-art{width:115px}.chapter-intro{gap:15px}.chapter-intro h1{font-size:24px}.chapter-intro p{font-size:12px}.compact-heading h1{font-size:25px}body[data-page="studio"] .focus-footer p{display:none}}
@media print{.focus-header,.focus-footer,.public-header,.completion-actions,.completion-link{display:none!important}.focus-main{padding:0}.purpose-grid{display:block}}

.lesson-stage h2[tabindex="-1"]:focus{outline:none}
.audience-tip{max-width:780px;margin:18px auto 22px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:rgba(25, 62, 86, 0.035);padding:11px 14px;color:#193E56}.audience-tip summary{font-size:12px;font-weight:600;cursor:pointer;min-height:25px}.audience-tip p{font-size:12px;line-height:1.75;color:#193E56;margin:8px 0}.audience-tip a{font-size:11px;color:#193E56;text-decoration:underline}
.audience-route{max-width:780px;margin:18px auto 22px;padding:16px 18px;border:1px solid rgba(25, 62, 86, 0.22);border-left:4px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:rgba(25, 62, 86, 0.035);color:#193E56}.audience-route-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;font-weight:700;color:#193E56}.audience-route-heading a{font-size:11px;color:#193E56;text-decoration:underline}.audience-route-cue{margin:8px 0 0;font-size:14px;line-height:1.65;font-weight:600}.audience-route-task{margin:6px 0 0;color:#193E56;font-size:13px;line-height:1.8}.audience-route-evidence{margin:8px 0 0;padding-top:8px;border-top:1px solid rgba(25, 62, 86, 0.22);color:#193E56;font-size:12px;line-height:1.7}.activity-route-caption{max-width:760px;font-size:12px;line-height:1.6;color:#193E56}.quiz-route-note{margin:2px 0 10px;color:#193E56;font-size:11px;line-height:1.6}
.modality-picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.modality-option{min-height:40px;padding:8px 14px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:#fff;color:#193E56;font-size:12px;cursor:pointer}.modality-option.selected{border-color:rgba(25, 62, 86, 0.22);background:rgba(25, 62, 86, 0.035);box-shadow:inset 0 0 0 1px rgba(25, 62, 86, 0.32)}.modality-option:focus-visible{outline:3px solid rgba(25, 62, 86, 0.22);outline-offset:2px}.direction-card-builder .block-palette{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.direction-card-builder .block-add{min-height:60px;flex-direction:column;gap:5px;border-radius:12px;font-size:13px;touch-action:manipulation}.direction-card-builder .block-add span{font-size:22px}.state-trace-input{display:grid;gap:6px;margin-top:15px;font-size:12px;font-weight:600;color:#193E56}.state-trace-input textarea{min-height:72px;font-size:13px;line-height:1.7}.state-trace-input small{font-size:11px;line-height:1.55;font-weight:400;color:#193E56}.trace-log{margin-top:8px;font-size:12px}.trace-log summary{cursor:pointer;color:#193E56}
.git-lab{display:grid;gap:14px;color:#193E56}.git-sandbox-note{padding:14px 16px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:rgba(25, 62, 86, 0.035)}.git-sandbox-note strong{font-size:13px}.git-sandbox-note p{margin-top:5px;font-size:11px;line-height:1.7;color:#193E56}.git-editor{display:grid;grid-template-columns:minmax(140px,190px) 1fr auto;gap:8px;align-items:start}.git-editor label{grid-column:1/-1;font-size:12px;font-weight:600}.git-editor select,.git-editor textarea,.git-command-row input{border:1px solid rgba(25, 62, 86, 0.22);border-radius:8px;background:#fff;color:#193E56;padding:9px;font-size:12px}.git-editor textarea{grid-column:1/-1;min-height:125px;resize:vertical;font:12px/1.6 ui-monospace,SFMono-Regular,monospace}.git-command-row{display:grid;grid-template-columns:95px minmax(0,1fr) 80px minmax(0,1fr);gap:8px;align-items:center}.git-command-row label{font-size:11px;color:#193E56}.git-command-row input{min-width:0}.git-palette{display:flex;flex-wrap:wrap;gap:7px;padding:10px;border:1px solid rgba(25, 62, 86, 0.22);background:rgba(25, 62, 86, 0.035);border-radius:9px}.git-sequence-head{display:flex;justify-content:space-between;align-items:center;font-size:12px}.git-action-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}.git-action-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:37px;padding:5px 8px 5px 11px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:7px;background:#fff;font-size:11px}.git-action-list li strong{margin-right:8px;color:#193E56;font:10px ui-monospace,monospace}.git-action-list .git-empty{color:#193E56;justify-content:flex-start;background:rgba(25, 62, 86, 0.035)}.git-action-list .icon-btn{width:30px;height:30px;min-height:30px}.git-lab [data-git-clear]{justify-self:start}
@media(max-width:760px){.git-editor{grid-template-columns:1fr auto}.git-editor select{grid-column:1/-1}.git-editor textarea{grid-column:1/-1}.git-command-row{grid-template-columns:1fr}.git-command-row label{margin-top:5px}.git-palette{gap:5px}.git-lab .btn-sm{font-size:10px}.git-action-list li{font-size:10px}}
.player{width:68%;height:68%;border-radius:10px;background:#193E56;box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 2px 6px rgba(25, 62, 86, 0.32)}
.player-arrow{font-size:clamp(22px,4vw,32px);line-height:1;transform:none;text-shadow:0 1px 2px rgba(25, 62, 86, 0.32)}
.grid-direction{gap:10px;margin-bottom:12px;font-size:13px}
.direction-mark{width:36px;height:36px;border-radius:10px;font-size:22px}
.focus-workspace .player{display:flex;flex-direction:column;justify-content:center;gap:0;width:76%;height:76%;border-radius:11px;background:#193E56;box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 3px 8px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:78%;height:70%;transform-origin:50% 50%;filter:drop-shadow(0 1px 1px rgba(25, 62, 86, 0.32))}
.focus-workspace .player-arrow svg{width:100%;height:100%}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}
.focus-workspace .player-heading{font-size:clamp(8px,1.3vw,12px);font-weight:900;line-height:1;color:#fff}
.focus-workspace .grid-direction strong{font-size:15px;color:#193E56}
.compass-mark{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:30px;padding:0 6px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:8px;background:#fff;color:#193E56;font:700 11px/1 ui-monospace,monospace}
.block-empty{min-height:140px}
.block-footer{font-size:10px}
.page-reference{display:flex;flex-wrap:wrap;gap:8px;padding:15px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:#fff;margin:12px 0 18px}
.page-reference span{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:rgba(25, 62, 86, 0.035);color:#193E56;font:700 15px ui-monospace,monospace}
.page-policy-label{margin-bottom:8px}
.page-policies{display:flex;gap:8px;flex-wrap:wrap}
.page-policies .selected{background:rgba(25, 62, 86, 0.12);border-color:rgba(25, 62, 86, 0.22);color:#193E56}

.focus-workspace .player-arrow{display:grid;place-items:center;width:100%;height:100%;font-size:0!important;text-shadow:none!important}.focus-workspace .player-arrow svg{width:76%;height:76%;overflow:visible}.focus-workspace .player-arrow path{fill:#fff;stroke:#fff;stroke-width:1.2;stroke-linejoin:round}

.concept-note{margin-top:8px;color:#193E56;font-size:12px}.concept-note summary{cursor:pointer;display:inline-block;color:#193E56}.concept-note p{margin:7px 0 0;font-size:12px;line-height:1.7;color:#193E56}.stage-intro .concept-note{max-width:780px}

/* Shared lesson brief:one quiet route label and one task sentence. */
.lesson-brief{max-width:780px;margin:3px auto 10px;color:#193E56}
.lesson-brief-meta{display:flex;align-items:center;gap:10px;font-size:11px}
.lesson-audience{font-size:10px;font-weight:700;color:#193E56}
.lesson-details{margin-top:0;font-size:11px;color:#193E56}
.lesson-details summary{display:inline-flex;align-items:center;min-height:32px;cursor:pointer;color:#193E56}
.lesson-details>p{margin:7px 0 0;font-size:12px;line-height:1.65;color:#193E56}
.lesson-details .lesson-evidence-text{color:#193E56;font-size:11px}
.lesson-evidence{margin-top:7px;font-size:11px;color:#193E56}
.lesson-evidence summary{cursor:pointer;display:inline-block}
.lesson-evidence p{margin:5px 0 0;line-height:1.65}
.page-heading>p:not(.eyebrow){max-width:680px;margin-top:7px;line-height:1.7}

/* Make the explorer's facing direction legible at a glance. */
.focus-workspace .player{width:82%;height:82%;border-radius:9px;background:#193E56;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(25, 62, 86, 0.32),0 3px 8px rgba(25, 62, 86, 0.32);gap:1px}
.focus-workspace .player-arrow{width:92%;height:76%;filter:drop-shadow(0 1px 1px rgba(25, 62, 86, 0.32))}
.focus-workspace .player-arrow svg{width:100%;height:100%}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:2.2;stroke-linejoin:round}
.focus-workspace .player-heading{font-size:clamp(9px,1.5vw,13px);font-weight:900;line-height:1;color:#fff}
.focus-workspace .grid-direction{gap:8px;margin-bottom:9px}
.focus-workspace .direction-mark{width:30px;height:30px;border-radius:50%;background:#193E56;color:#F3A546;box-shadow:0 0 0 2px rgba(25, 62, 86, 0.32)}

/* The player uses one oversized, high-contrast arrow; its heading is stated once above the map. */
.focus-workspace .player{width:88%;height:88%;border-radius:8px;background:#193E56;box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 3px 8px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{width:100%;height:100%;filter:drop-shadow(0 1px 1px rgba(25, 62, 86, 0.32))}
.focus-workspace .player-arrow svg{width:100%;height:100%}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.6;stroke-linejoin:round}
.focus-workspace .grid-direction{min-height:38px}
.focus-workspace .direction-mark{width:34px;height:34px;font-size:23px}
.focus-workspace .compass-mark{min-width:31px;height:27px;padding:0 5px;font-size:10px}
.focus-workspace .block-builder h4{margin-bottom:9px}

/* Put the live facing direction in words and an arrow above the board. */
.focus-workspace .grid-direction{justify-content:space-between;max-width:350px;margin:0 auto 8px;padding:0 3px}
.focus-workspace .facing-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:999px;background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:12px}
.focus-workspace .facing-status b{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#193E56;color:#F3A546;font-size:18px;line-height:1}
.focus-workspace .facing-status strong{min-width:1.2em;color:#193E56;font-size:13px}
.focus-workspace .grid-legend{font-size:10px;gap:16px;color:#193E56}
.focus-workspace .block-footer{font-size:10px;color:#193E56}
.focus-workspace .grid-legend{gap:10px;font-size:10px}
.focus-workspace .player{width:88%;height:88%;border-radius:8px;gap:2px}
.focus-workspace .player-arrow{width:90%;height:72%;flex:1;min-height:0}
.focus-workspace .player-arrow svg{width:100%;height:100%}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.1;stroke-linejoin:round}
.focus-workspace .player-heading{display:grid;place-items:center;min-width:15px;height:12px;padding:0 2px;border-radius:5px;background:#fff;color:#193E56;font-size:9px;font-weight:900;line-height:1}
.focus-workspace .block-builder h4{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#193E56}
.block-key{font-size:10px;font-weight:400;color:#193E56}
.focus-workspace .player{position:relative;display:grid;place-items:center;width:88%;height:88%;background:#193E56;box-shadow:0 0 0 2px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 3px 9px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{width:100%;height:100%;display:grid;place-items:center;filter:drop-shadow(0 2px 1px rgba(25, 62, 86, 0.32))}
.focus-workspace .player-arrow svg{width:110%;height:110%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.8;stroke-linejoin:round}
.focus-workspace .player-heading{position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;width:18px;height:18px;padding:0;border:2px solid #193E56;border-radius:50%;background:#fff;color:#193E56;font-size:10px;font-weight:900;line-height:1}
.focus-workspace .grid-direction strong{font-size:12px}
.focus-workspace .compass-mark{min-width:27px;height:24px;font-size:9px}
.focus-workspace .block-footer{margin-top:5px}
.focus-workspace .empty-output{gap:8px;line-height:1.5}
.focus-independent-task{margin:0 0 18px;padding:12px 14px;border-left:3px solid rgba(25, 62, 86, 0.22);border-radius:0 9px 9px 0;background:rgba(25, 62, 86, 0.035);color:#193E56}
.focus-independent-task strong{font-size:12px}

/* Direction cue:a full arrow with its compass label beneath it. */
.focus-workspace .player{display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:0;width:88%;height:88%;padding:3px 2px 2px;border-radius:9px;background:#193E56;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(25, 62, 86, 0.32),0 3px 9px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:100%;height:100%;min-height:0;filter:drop-shadow(0 1px 1px rgba(25, 62, 86, 0.32))}
.focus-workspace .player-arrow svg{width:94%;height:94%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.35;stroke-linejoin:round}
.focus-workspace .player-heading{position:static;display:grid;place-items:center;min-width:18px;height:12px;padding:0 3px;border:0;border-radius:5px;background:#fff;color:#193E56;font-size:9px;font-weight:900;line-height:1}
.focus-workspace .grid-direction strong{font-size:13px}
.focus-workspace .direction-mark{flex:0 0 auto}
.stage-intro h2{line-height:1.45;margin:10px 0 8px}
.stage-intro .concept-note{margin-top:3px}
.focus-workspace .grid-legend{font-size:10px}
.focus-independent-task p{margin:4px 0;font-size:13px;line-height:1.65}
.focus-independent-task small{font-size:11px;color:#193E56}
.focus-workspace .workspace-caption{justify-content:flex-end;margin-bottom:8px}
.focus-workspace .workspace-caption>span{display:none}
.focus-workspace .output-title{font-size:12px}

/* Make the moving explorer read as a direction marker at a glance. */
.focus-workspace .player{position:relative;display:grid;place-items:center;width:90%;height:90%;padding:2px;border:2px solid #193E56;border-radius:50%;background:rgba(243, 165, 70, 0.12);box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 2px 7px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:100%;height:100%;filter:drop-shadow(0 1px 0 #fff)}
.focus-workspace .player-arrow svg{width:92%;height:92%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.15;stroke-linejoin:round}
.focus-workspace .player-heading{position:absolute;right:-7px;bottom:-5px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 2px;border:2px solid #193E56;border-radius:50%;background:#fff;color:#193E56;font-size:9px;font-weight:900;line-height:1}
.focus-workspace .grid-direction{gap:7px}
.focus-workspace .direction-mark{background:#193E56;color:#F3A546}
.focus-workspace .grid-direction strong{font-size:14px}
.focus-workspace .compass-mark{color:#193E56;font-weight:800}

/* Keep the explorer's direction unmistakable while reducing repeated labels. */
.focus-workspace .player{width:94%;height:94%;border:3px solid #193E56;background:rgba(243, 165, 70, 0.12);box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(25, 62, 86, 0.32),0 3px 9px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow svg{width:112%;height:112%}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.8;stroke-linejoin:round}
.focus-workspace .player-heading{right:-9px;bottom:-8px;min-width:25px;height:25px;border-width:3px;font-size:13px}
.focus-workspace .grid-direction{gap:7px;margin-bottom:7px}
.focus-workspace .grid-direction strong{font-size:13px}
.focus-workspace .compass-mark{min-width:32px;height:26px;font-size:11px}
.focus-workspace .grid-legend{gap:8px}
.focus-workspace .grid-legend span{white-space:nowrap}

/* Make the explorer's heading unmistakable at a glance. */
.focus-workspace .player{position:relative;display:grid;place-items:center;width:78%;height:78%;padding:3px;border:3px solid #193E56;border-radius:50%;background:rgba(243, 165, 70, 0.12);box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 3px 8px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:88%;height:88%;filter:drop-shadow(0 1px 0 #fff)}
.focus-workspace .player-arrow svg{width:100%;height:100%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.8;stroke-linejoin:round}
.focus-workspace .player-heading{position:absolute;right:-10px;top:-9px;display:grid;place-items:center;min-width:23px;height:23px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:#193E56;color:#fff;font-size:11px;font-weight:800;line-height:1;box-shadow:0 1px 4px rgba(25, 62, 86, 0.32)}
.focus-workspace .facing-status{gap:4px;padding:2px 8px;font-size:11px}
.focus-workspace .facing-status b{width:20px;height:20px;font-size:16px}
.focus-workspace .facing-status strong{font-size:12px}
.focus-workspace .block-builder h4{margin-bottom:7px}
.focus-workspace .block-footer{margin-top:3px;font-variant-numeric:tabular-nums}

/* One clear direction cue:a large arrow with a separate, unobstructed heading label. */
.focus-workspace .player{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:1px;width:88%;height:88%;padding:3px 2px;border:2px solid #193E56;border-radius:50%;background:#193E56;box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 2px 7px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:82%;height:100%;min-height:0;filter:drop-shadow(0 1px 0 rgba(25, 62, 86, 0.32))}
.focus-workspace .player-arrow svg{width:100%;height:100%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.35;stroke-linejoin:round}
.focus-workspace .player-heading{position:static;display:grid;place-items:center;min-width:20px;height:14px;padding:0 4px;border-radius:999px;background:#fff;color:#193E56;font-size:10px;font-weight:900;line-height:1}
.focus-workspace .facing-status{gap:5px;padding:2px 9px}
.focus-workspace .facing-status strong{font-size:13px}
.focus-workspace .block-builder h4{margin-bottom:7px}
.focus-workspace .grid-legend{margin-top:6px}
.subnet-cases{display:grid;gap:12px;margin-top:14px}
.subnet-case{min-width:0;margin:0;padding:12px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:#fff}
.subnet-case legend{padding:0 6px;color:#193E56;font-size:12px;font-weight:700}
.subnet-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.subnet-fields label{display:grid;gap:4px;color:#193E56;font-size:10px}
.subnet-fields label:last-child{grid-column:1/-1}
.subnet-fields input{min-width:0;width:100%;padding:7px 9px;font:12px ui-monospace,SFMono-Regular,Consolas,monospace}
@media(max-width:760px){.subnet-fields{grid-template-columns:1fr 1fr}}

.api-practice{display:grid;gap:14px;padding:15px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:rgba(25, 62, 86, 0.035)}
.api-practice .notice{font-size:12px;padding:9px 12px}
.api-request-fields{display:grid;grid-template-columns:1fr 140px;gap:12px}
.api-request-fields label{display:grid;gap:5px;font-size:12px;color:#193E56}
.api-request-fields select{padding:8px 10px}
.api-url-preview{overflow-wrap:anywhere;padding:10px 12px;border-radius:8px;background:#193E56;color:#fff;font:12px/1.6 ui-monospace,monospace}
.api-response{min-height:120px;padding:12px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:9px;background:#fff}
.api-status{margin-bottom:8px;color:#193E56;font-size:12px;font-weight:700}
.api-status.error{color:#193E56}
.api-response pre{margin:0;font-size:12px;line-height:1.6;color:#193E56}
.api-cache-box{padding:11px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:8px;background:rgba(25, 62, 86, 0.035)}
.api-cache-box strong,.api-cache-box small{display:block;color:#193E56;font-size:11px}
.api-cache-box pre{margin:7px 0;color:#193E56;font-size:11px}
.api-header-field{display:grid;gap:5px;color:#193E56;font-size:12px}
.api-header-field select{padding:8px 10px}
.api-retry-actions{display:flex;justify-content:flex-start}
.api-attempt+.api-attempt{padding-top:10px;margin-top:10px;border-top:1px solid rgba(25, 62, 86, 0.22)}
@media(max-width:480px){.api-request-fields{grid-template-columns:1fr}.api-practice{padding:11px}}

/* Keep the facing label readable inside the moving marker. */
.focus-workspace .player-heading{right:-8px;bottom:-7px;min-width:24px;height:22px;padding:0 4px;border:2px solid #193E56;border-radius:999px;background:#fff;color:#193E56;font-size:12px;font-weight:900;box-shadow:0 1px 3px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow svg{width:100%;height:100%}
.focus-workspace .grid-direction{gap:9px}
.focus-workspace .direction-mark{width:34px;height:34px;font-size:23px}
.audience-tip:not([open]){padding:8px 12px}
.audience-tip summary{font-size:11px}
.focus-footer-note{font-size:11px}
.review-explain{font-size:11px;line-height:1.6}

/* High-contrast heading:bright pointer on a dark explorer token. */
.focus-workspace .player{background:#193E56}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}
.focus-workspace .player-heading{background:#fff;color:#193E56;border-color:#193E56}

/* Show the same live heading both as an arrow and as a compact direction label. */
.focus-workspace .player{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:0;width:90%;height:90%;padding:2px 2px 3px;border:2px solid #193E56;border-radius:50%;background:#193E56;box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 2px 7px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:88%;height:88%;min-height:0;filter:drop-shadow(0 1px 0 rgba(25, 62, 86, 0.32))}
.focus-workspace .player-arrow svg{width:100%;height:100%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.25;stroke-linejoin:round}
.focus-workspace .player-heading{position:static;display:grid;place-items:center;min-width:18px;height:12px;padding:0 3px;border:0;border-radius:999px;background:#fff;color:#193E56;font-size:9px;font-weight:900;line-height:1}
.focus-workspace .grid-direction strong{font-size:13px}
.focus-workspace .compass-mark{min-width:30px;height:25px;padding:0 5px;font-size:10px}
.focus-workspace .block-builder h4{margin-bottom:9px}

/* Final lesson marker:large dark pointer plus a separate cardinal badge. */
.focus-workspace .player{position:relative;display:grid;place-items:center;width:78%;height:78%;padding:3px;border:3px solid #193E56;border-radius:50%;background:rgba(243, 165, 70, 0.12);box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 3px 8px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:88%;height:88%;filter:drop-shadow(0 1px 0 #fff)}
.focus-workspace .player-arrow svg{width:100%;height:100%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.8;stroke-linejoin:round}
.focus-workspace .player-heading{position:absolute;right:-10px;top:-9px;display:grid;place-items:center;min-width:23px;height:23px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:#193E56;color:#fff;font-size:11px;font-weight:800;line-height:1;box-shadow:0 1px 4px rgba(25, 62, 86, 0.32)}
.focus-workspace .facing-status{gap:4px;padding:2px 8px;font-size:11px}
.focus-workspace .facing-status b{width:20px;height:20px;font-size:16px}
.focus-workspace .facing-status strong{font-size:12px}
.focus-workspace .block-builder h4{margin-bottom:7px}
.focus-workspace .block-footer{margin-top:3px;font-variant-numeric:tabular-nums}


/* 方向优先：棋盘人物的箭头占主体，方位标记作为第二重提示。 */
.focus-workspace .facing-status{gap:8px;padding:5px 12px;border:2px solid rgba(25, 62, 86, 0.22);background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:14px}
.focus-workspace .facing-status b{width:30px;height:30px;background:#193E56;color:#F3A546;font-size:23px}
.focus-workspace .facing-status strong{min-width:3.3em;font-size:14px;font-weight:800}
.focus-workspace .player{display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:0;width:90%;height:90%;padding:3px 2px 2px;border:2px solid #193E56;border-radius:50%;background:rgba(243, 165, 70, 0.12);box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(25, 62, 86, 0.32),0 2px 7px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:100%;height:100%;min-height:0;filter:drop-shadow(0 1px 0 #fff)}
.focus-workspace .player-arrow svg{width:94%;height:94%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}
.focus-workspace .player-heading{position:static;display:grid;place-items:center;min-width:20px;height:14px;padding:0 4px;border-radius:5px;background:#193E56;color:#fff;font-size:10px;font-weight:900;line-height:1}
.focus-workspace .grid-legend{font-size:11px}
.stage-intro h2{font-size:26px;line-height:1.5;margin:10px 0 5px}
.stage-intro .concept-note{margin-top:0}
.think-stage .prediction-card{margin-top:22px}
@media(max-width:760px){.focus-workspace .facing-status{padding:3px 9px;font-size:13px}.focus-workspace .facing-status b{width:27px;height:27px}.stage-intro h2{font-size:22px;line-height:1.5}.think-stage .prediction-card{margin-top:18px}}
@media(max-width:760px){.lesson-brief{margin:7px auto 11px}.lesson-details>p{font-size:11px;line-height:1.5}.page-heading>p:not(.eyebrow){max-width:54ch}}

/* Shared page intro:one title, one short task summary, then the page content. */
.shared-page-heading{margin:0 0 20px}
.shared-page-heading h1{font-size:29px;line-height:1.35;margin:2px 0 0}
.shared-page-heading .page-summary,.page-heading>p:not(.eyebrow){max-width:54ch;margin:6px 0 0;font-size:13px;line-height:1.55;color:#193E56}
.shared-page-heading.compact-heading{margin-bottom:16px}
@media(max-width:760px){.shared-page-heading{margin-bottom:15px}.shared-page-heading h1{font-size:24px}.shared-page-heading .page-summary,.page-heading>p:not(.eyebrow){font-size:12px;line-height:1.5}}

/* Final logic-lab pass:the arrow carries direction; the status names it once. */
.focus-workspace .player{position:relative;display:grid;place-items:center;width:88%;height:88%;padding:3px;border:3px solid #193E56;border-radius:50%;background:rgba(243, 165, 70, 0.12);box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(25, 62, 86, 0.32),0 3px 9px rgba(25, 62, 86, 0.32)}
.focus-workspace .player-arrow{display:grid;place-items:center;width:100%;height:100%;filter:drop-shadow(0 1px 0 #fff)}
.focus-workspace .player-arrow svg{display:block;width:92%;height:92%;overflow:visible}
.focus-workspace .player-arrow path{fill:#F3A546;stroke:#fff;stroke-width:1.4;stroke-linejoin:round}
.focus-workspace .player-heading{display:none}
.focus-workspace .facing-status{gap:7px;padding:4px 10px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:999px;background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:13px}
.focus-workspace .facing-status b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#193E56;color:#F3A546;font-size:21px;line-height:1}
.focus-workspace .facing-status strong{min-width:2.5em;font-size:14px;font-weight:800}
.focus-workspace .grid-direction{gap:9px;margin-bottom:7px}
.focus-workspace .block-builder h4{margin-bottom:7px}
.focus-workspace .logic-syntax{margin-top:8px}
@media(max-width:760px){.focus-workspace .facing-status{padding:3px 8px}.focus-workspace .facing-status b{width:24px;height:24px}}
.forward-mark,.turn-mark,.direction-arrow-icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:0;line-height:0}
.forward-mark,.turn-mark{width:16px;height:16px}.direction-arrow-icon{width:100%;height:100%}
.forward-mark svg,.turn-mark svg{display:block;width:16px;height:16px;fill:currentColor}
.direction-arrow-icon svg{display:block;width:72%;height:72%;fill:#F3A546}
.focus-workspace .game-grid{grid-template-columns:repeat(var(--grid-size,6),minmax(0,1fr));grid-template-rows:repeat(var(--grid-size,6),minmax(0,1fr))}
.focus-workspace .grid-cell{min-height:0;aspect-ratio:auto}
.linked-model{display:grid;gap:16px;padding:18px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:14px;background:rgba(25, 62, 86, 0.035)}.linked-model-note{padding:10px 12px;border-radius:9px;background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:12px;font-weight:650}.linked-chain{display:flex;align-items:center;gap:12px;list-style:none;padding:10px 0;overflow:auto}.linked-node{position:relative;min-width:74px;min-height:72px;display:grid;place-items:center;gap:3px;border:2px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:#fff}.linked-node:not(:last-child)::after{content:'→';position:absolute;left:calc(100% + 3px);color:#193E56;font-size:18px}.linked-node .node-id{font-size:10px;color:#193E56}.linked-node small{font-size:10px;color:#193E56}.linked-node.unlinked{opacity:.42;text-decoration:line-through}.linked-select-label{font-size:12px;font-weight:600}.linked-model select{max-width:100%;min-height:40px;padding:8px 10px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:9px;background:#fff;color:#193E56}.index-node-list{display:grid;gap:8px}.index-node-row{display:grid;grid-template-columns:1fr auto minmax(125px,auto);align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:#fff;font-size:12px}.index-node-row span:first-child{display:grid;gap:3px}.index-node-row small{color:#193E56;font-size:10px}.index-node-row select{min-width:130px}@media(max-width:600px){.linked-model{padding:13px}.linked-chain{gap:7px}.linked-node{min-width:58px;min-height:62px}.linked-node:not(:last-child)::after{font-size:15px}.index-node-row{grid-template-columns:1fr auto;gap:8px}.index-node-row select{grid-column:1/-1;width:100%}}

.focus-workspace .lab-tools{display:flex;align-items:center;gap:14px;flex:none}.focus-workspace .lab-tools>.btn{white-space:nowrap}
@media(max-width:760px){.focus-workspace .lab-tools{gap:7px}}

.test-design-note{padding:12px 14px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:13px;line-height:1.7}
.test-design-cases{display:grid;gap:12px;margin:14px 0}
.test-design-case{min-width:0;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;padding:12px;background:#fff}
.test-design-case legend{padding:0 5px;font-size:12px;font-weight:600;color:#193E56}
.test-design-case legend .btn{margin-left:10px;min-height:26px;padding:3px 8px;font-size:11px}
.test-design-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.test-design-fields label{display:grid;gap:5px;font-size:11px;color:#193E56}
.test-design-fields input,.test-design-fields select{width:100%;min-width:0;min-height:38px;padding:8px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:7px;background:#fff;color:#193E56;font:inherit;font-size:13px}
@media(max-width:760px){.test-design-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.test-design-fields label:last-child{grid-column:1/-1}}
.match-main{max-width:860px;padding-top:48px}.match-heading{max-width:700px;margin:0 auto 24px}.match-heading h1{margin:8px 0 10px;color:#193E56;font-size:clamp(28px,4vw,42px);letter-spacing:-.035em}.match-heading>p:last-child{color:#193E56}.match-progress{height:5px;max-width:700px;margin:0 auto 22px;overflow:hidden;border-radius:10px;background:rgba(25, 62, 86, 0.035)}.match-progress span{display:block;height:100%;border-radius:10px;background:rgba(25, 62, 86, 0.88);transition:width .2s ease}.match-options{display:grid;gap:10px;max-width:700px;margin:auto}.match-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:14px 17px;text-align:left;color:#193E56;font-size:15px;cursor:pointer}.match-option:hover,.match-option.selected{border-color:rgba(25, 62, 86, 0.22);background:rgba(25, 62, 86, 0.035)}.match-option.selected{box-shadow:0 0 0 2px rgba(25, 62, 86, 0.32) inset}.match-actions{display:flex;align-items:center;justify-content:center;gap:10px;margin:22px auto;flex-wrap:wrap}.match-actions .btn:disabled{opacity:.48;cursor:not-allowed}.match-disclaimer{max-width:700px;margin:20px auto;color:#193E56;font-size:12px;line-height:1.7;text-align:center}.match-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.match-course{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:20px}.match-course h2{margin:0;color:#193E56;font-size:19px}.match-course p{margin:0;color:#193E56;font-size:13px;line-height:1.7}.match-course .btn{margin-top:auto}.match-primary{border:2px solid rgba(25, 62, 86, 0.22);box-shadow:0 8px 24px rgba(25, 62, 86, 0.1)}.match-boundary{max-width:860px;margin:14px auto;padding:13px 16px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:13px;line-height:1.7}.match-boundary p{margin:4px 0}.match-primary .match-boundary{margin-top:0}.match-results+.match-actions{margin-top:22px}
.course-status{max-width:800px;margin:0 auto 18px;padding:16px 19px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:13px;background:rgba(25, 62, 86, 0.035);color:#193E56;line-height:1.7}.course-status p{margin:5px 0 0;color:#193E56;font-size:13px}.course-pathway-actions{display:flex;align-items:center;gap:14px;max-width:800px;margin:18px auto 28px;flex-wrap:wrap}.course-units-heading{max-width:800px;margin:22px auto 12px;color:#193E56;font-size:17px}.course-units{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:800px;margin:auto}.course-unit{padding:17px}.course-unit h3{margin:12px 0 7px;font-size:16px;color:#193E56}.course-unit p{min-height:40px;margin:0 0 9px;color:#193E56;font-size:12px;line-height:1.6}.course-unit small{color:#193E56;font-size:11px}
@media(max-width:760px){.match-main{padding:30px 17px}.match-heading{margin-bottom:20px}.match-option{min-height:56px;padding:12px 14px;font-size:14px}.match-results{grid-template-columns:1fr}.match-course{padding:17px}.match-course .btn{margin-top:6px}}
@media(max-width:760px){.course-pathway-actions{align-items:flex-start;flex-direction:column}.course-units{grid-template-columns:1fr}.course-unit p{min-height:0}}
.grid-lab.blockly-layout{grid-template-columns:minmax(170px,.85fr) minmax(0,1.15fr);align-items:start}.blockly-pilot-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 8px;color:#193E56;font-size:12px}.blockly-pilot-head span{font-size:11px;color:#193E56;font-variant-numeric:tabular-nums}.blockly-host{height:278px;min-width:0;overflow:hidden;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:rgba(25, 62, 86, 0.035)}.blockly-pilot-status{min-height:18px;margin:5px 1px 0;color:#193E56;font-size:11px;line-height:1.55}.blockly-host .blocklySvg{border-radius:11px;background:rgba(25, 62, 86, 0.035)}@media(max-width:760px){.grid-lab.blockly-layout{grid-template-columns:minmax(0,1fr);gap:15px}.blockly-host{height:285px}}
.focus-workspace .game-grid{grid-template-columns:repeat(var(--grid-size,6),minmax(0,1fr));grid-template-rows:repeat(var(--grid-size,6),minmax(0,1fr));box-sizing:border-box}.focus-workspace .grid-cell{display:block;box-sizing:border-box;aspect-ratio:auto;min-height:0;overflow:hidden}.focus-workspace .grid-cell>svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.focus-workspace .grid-cell>.player{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
.guided-project{display:grid;gap:16px;max-width:860px;margin:0 auto;color:#193E56}.guided-project p{line-height:1.75}.learning-example{padding:18px 20px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:14px;background:rgba(25, 62, 86, 0.035)}.learning-example>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.learning-example>div:first-child strong{font-size:14px}.learning-example>div:first-child span{font-size:11px;color:#193E56}.learning-example p{margin:12px 0 0;font-size:14px;color:#193E56}.learning-example p b{color:#193E56}.learning-choice-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.learning-choice{min-height:40px;padding:8px 13px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:9px;background:#fff;color:#193E56;font-size:12px;text-align:left;cursor:pointer}.learning-choice:hover{border-color:rgba(25, 62, 86, 0.22)}.learning-choice.selected{border-color:rgba(25, 62, 86, 0.22);background:rgba(25, 62, 86, 0.035);color:#193E56;box-shadow:inset 0 0 0 1px rgba(25, 62, 86, 0.32)}.learning-sort,.learning-source{min-width:0;margin:0;padding:15px 17px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:#fff}.learning-sort legend,.learning-source legend{padding:0 5px;font-size:13px;font-weight:700;color:#193E56}.learning-sort>p[role=status]{margin:10px 0 0;color:#193E56;font-size:12px}.learning-output{display:grid;gap:8px;padding:17px 19px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:#fff}.learning-output label{margin-top:5px;font-size:12px;font-weight:700;color:#193E56}.learning-output textarea,.learning-output input{width:100%;min-height:44px;padding:11px 13px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:9px;background:#fff;color:#193E56;font-family:inherit;font-size:13px;line-height:1.7}.learning-output textarea{min-height:75px;resize:vertical}.learning-output textarea:focus,.learning-output input:focus{outline:3px solid rgba(25, 62, 86, 0.22);border-color:rgba(25, 62, 86, 0.22)}.learning-source{margin-top:7px;padding:10px 12px}.learning-source legend{font-size:11px}.learning-source .learning-choice-row{margin-top:5px}.process-steps{list-style:none;display:grid;gap:7px;margin:14px 0 0;padding:0}.process-steps li{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:9px;background:#fff}.process-steps li>span{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:50%;background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:11px}.process-steps li strong{flex:1;font-size:12px}.process-steps li.is-wait{border-color:rgba(243, 165, 70, 0.22);background:rgba(25, 62, 86, 0.075)}.process-steps li .learning-choice{min-height:32px;padding:5px 9px;font-size:11px}@media(max-width:760px){.guided-project{gap:11px}.learning-example{padding:14px}.learning-example p{font-size:13px}.learning-choice{font-size:11px;min-height:38px;padding:7px 10px}.learning-output{padding:14px}.process-steps li{gap:7px}.process-steps li strong{font-size:11px}}
.semester-band-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:20px 0}.semester-band{display:flex;flex-direction:column;gap:5px;text-align:left;padding:14px;border:1px solid var(--line,rgba(25, 62, 86, 0.22));border-radius:14px;background:var(--surface,#fff);color:var(--ink,#193E56);cursor:pointer}.semester-band span{font-size:12px;color:var(--muted,#193E56)}.semester-band.selected{border-color:rgba(25, 62, 86, 0.22);background:rgba(25, 62, 86, 0.035);box-shadow:0 0 0 2px rgba(25, 62, 86, 0.102)}.semester-overview{margin-bottom:16px}.semester-overview h2{margin:4px 0}.semester-status{padding:10px 12px;background:rgba(25, 62, 86, 0.035);border-radius:10px;color:#193E56;font-size:13px}.semester-weeks{display:grid;gap:9px}.semester-week{padding:0!important}.semester-week>summary{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;cursor:pointer;list-style:none;padding:14px 16px}.semester-week>summary::-webkit-details-marker{display:none}.semester-week-body{border-top:1px solid rgba(25, 62, 86, 0.22);padding:4px 16px 12px}.semester-week-body p{margin:10px 0;font-size:13px;line-height:1.65}.semester-student-prompt{margin:10px 0;padding:12px 14px;border-left:3px solid rgba(25, 62, 86, 0.22);border-radius:0 10px 10px 0;background:rgba(25, 62, 86, 0.035);color:#193E56;font-size:14px;line-height:1.75;white-space:pre-line}.semester-student-prompt code{padding:1px 4px;border-radius:4px;background:rgba(25, 62, 86, 0.035);font-family:ui-monospace,SFMono-Regular,monospace}.semester-band:focus-visible,.semester-week summary:focus-visible{outline:3px solid rgba(25, 62, 86, 0.22);outline-offset:2px}@media(max-width:760px){.semester-band-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.semester-week-body{padding-inline:12px}}

.semester-flow-blocks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.semester-flow-blocks section{min-width:0;padding:13px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:12px;background:#fff}.semester-flow-blocks h3{margin:0 0 7px;font-size:13px;color:#193E56}.semester-flow-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;padding:9px 0;border-top:1px solid rgba(25, 62, 86, 0.22)}.semester-flow-time{color:#193E56;font-size:11px;font-variant-numeric:tabular-nums}.semester-flow-row strong{font-size:12px;color:#193E56}.semester-flow-row p{margin:3px 0 0!important;font-size:12px!important;line-height:1.65!important;color:#193E56}@media(max-width:760px){.semester-flow-blocks{grid-template-columns:1fr;gap:9px}.semester-flow-blocks section{padding:11px}.semester-flow-row{grid-template-columns:34px minmax(0,1fr);gap:7px}}
.semester-week-body>.btn{margin:10px 0}.semester-lesson-intro{margin:16px 0}.semester-lesson-intro .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.semester-class-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.semester-class-step{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:start;border-top:1px solid rgba(25, 62, 86, 0.22);padding:9px 0}.semester-class-step>span{font-size:12px;color:#193E56;font-variant-numeric:tabular-nums}.semester-class-step p{margin:0;font-size:13px;line-height:1.6}.semester-response,.semester-homework,.semester-check{margin:14px 0}.semester-response label,.semester-homework label,.semester-report-card label{display:block;margin:12px 0 6px;font-size:13px;font-weight:600}.semester-response textarea,.semester-homework textarea,.semester-report-card textarea{display:block;width:100%;min-height:74px;resize:vertical;border:1px solid rgba(25, 62, 86, 0.22);border-radius:10px;padding:10px 12px;background:#fff;color:#193E56;font:inherit;font-size:14px}.semester-homework select,.semester-report-card select{display:block;margin:0 0 12px;min-height:40px;border:1px solid rgba(25, 62, 86, 0.22);border-radius:9px;padding:7px 10px;background:#fff;color:#193E56}.semester-homework ol{padding-left:22px;color:#193E56;font-size:14px;line-height:1.75}.semester-homework .btn{margin-top:12px}.semester-feedback{padding:11px;background:rgba(25, 62, 86, 0.035);border-radius:9px;color:#193E56;font-size:13px}.semester-report-list{display:grid;gap:14px}.semester-report-card h2{margin:4px 0}.semester-report-card blockquote small,.semester-report-homework small{display:block;margin-top:8px;color:#193E56;font-size:11px}.semester-report-homework{margin-top:16px;padding-top:12px;border-top:1px solid rgba(25, 62, 86, 0.22)}.semester-event-history{margin-top:12px;color:#193E56;font-size:12px}.semester-event-history ol{line-height:1.8}@media(max-width:760px){.semester-class-grid{grid-template-columns:1fr}.semester-lesson-intro .row>.btn{flex:1}.semester-report-card>.between{align-items:flex-start}}

