*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;background:var(--bg-primary);color:var(--text-main);font:15px/1.45 system-ui,sans-serif}
button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}
button:disabled{opacity:.42;cursor:default}a{color:var(--accent-cyan);text-decoration:none}
button,select,input{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-main);border-radius:8px;padding:8px 11px;min-height:40px}
button:hover{background:var(--bg-card-hover)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent-cyan);outline-offset:3px}
select,input{min-width:0;max-width:100%}h1,h2,h3,p{margin:0}h1{font-size:24px;letter-spacing:-.035em}h2{font-size:21px;letter-spacing:-.025em}h3{font-size:19px;line-height:1.3}
main{max-width:1920px;margin:auto;padding:12px 22px 18px}.mast{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:2px 0 14px}.mast a{font-size:12px}
.eyebrow{font-size:10px;font-weight:750;letter-spacing:.13em;color:var(--accent-cyan)}.muted,.small{color:var(--text-muted)}.small{font-size:11px;line-height:1.5}
.actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.primary{background:var(--accent-cyan);color:var(--bg-primary);border-color:transparent;font-weight:750}.primary:hover{background:var(--accent-cyan);filter:brightness(1.08)}
.quiet{font-size:12px;background:transparent}.voicebar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:10px 14px}
.voice-state{display:flex;align-items:center;gap:12px}.voice-state strong{display:block;font-size:13px}.voice-state small{display:block;font-size:11px;color:var(--text-muted)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.dot.live{background:#46d6a5;box-shadow:0 0 0 4px #46d6a51b}.dot.busy{background:#f9c851}
.lesson-toolbar{display:flex;align-items:center;gap:12px;padding:12px 0;flex-wrap:wrap}.segmented{display:flex;background:var(--bg-secondary);border:1px solid var(--border-color);padding:3px;border-radius:10px}.segmented button{border:0;background:transparent;min-height:36px;font-size:13px}.segmented button[aria-pressed=true]{background:var(--accent-cyan);color:var(--bg-primary);font-weight:750}
.group-picker{flex:1;max-width:320px;min-width:200px}.group-picker select{width:100%}.pace-picker{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:7px}.pace-picker select{font-size:12px}#lesson-state{margin-left:auto}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:15px;align-items:start}.studio,.lesson{border:1px solid var(--border-color);border-radius:15px;min-width:0;overflow:hidden;background:var(--bg-secondary)}.studio{padding:16px}.lesson{padding:16px}
.stage-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.view-tabs{display:flex;gap:4px}.view-tabs button{font-size:12px}.view-tabs button[aria-pressed=true]{color:var(--accent-cyan);border-color:var(--accent-cyan);background:var(--bg-card)}
.stage-cue{font-size:14px;color:var(--accent-gold);font-weight:600;margin:10px 0 13px;min-height:20px}
#visual-stage{border-radius:10px;background:linear-gradient(180deg,#080f20,#101e36);color:#e9f3ff;padding:13px;min-height:250px}
.light-grid{display:grid;grid-template-columns:repeat(var(--count),minmax(0,1fr));gap:8px;min-height:225px}
.light-tile{position:relative;min-width:0;border:1px solid #2c3c55;background:#101b2d;color:#d9e5f5;padding:25px 8px 10px;display:flex;align-items:center;flex-direction:column;border-radius:9px;overflow:hidden}
.light-tile:hover{background:#1a2b43}.light-tile.selected{border-color:#67d4ff;box-shadow:inset 0 3px #67d4ff;background:#132b43}
.tile-order{position:absolute;top:4px;left:9px;font-size:10px;color:#8299b5}.light-tile strong{font-size:12px;line-height:1.35;min-height:34px;display:flex;align-items:center;justify-content:center}.tile-rhythm{font:12px ui-monospace,monospace;color:var(--light);margin:5px 0}
.stem{flex:1;min-height:22px;width:1px;border-left:1px dashed #68819f55;margin:4px 0}
.bulb-row{display:flex;gap:16px;height:38px;align-items:center}.bulb{display:block;width:16px;height:16px;border-radius:50%;background:var(--light);box-shadow:0 0 15px 6px color-mix(in srgb,var(--light) 50%,transparent)}
.bulb.flashing{animation:flash var(--period) steps(1,end) infinite}.still .bulb{animation:none;opacity:1}
@keyframes flash{0%,15%{opacity:1;box-shadow:0 0 15px 6px color-mix(in srgb,var(--light) 50%,transparent)}16%,100%{opacity:.15;box-shadow:none}}
.daymark{width:41px;height:41px}.daymark svg{display:block;width:100%;height:100%}.tile-structure{font-size:11px;line-height:1.35;color:#b8cbe3;min-height:30px;margin-top:7px}
.visual-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:8px 0 12px}.visual-foot .small{max-width:650px}.visual-foot button{flex-shrink:0}
.visual-cover{min-height:220px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:14px;padding:20px}.visual-cover span{font-size:10px;color:#7ad6ff;letter-spacing:.16em}.visual-cover p{font-size:12px;color:#acbed6}
.sector-layout{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(220px,1fr);align-items:center;gap:15px}.sector-map{width:100%;max-height:330px}.sector-explain h3{font-size:18px;color:#ffdb70;margin:5px 0 15px}.sector-explain .small{color:#aec2db;margin:10px 0}.sector-explain a{color:#7cd8ff;font-size:12px}.bearing-label{display:block;font-size:12px;color:#bacce3}.bearing-label strong{color:#7cd8ff}.bearing-slider{display:block;width:100%;padding:0;accent-color:#7cd8ff}.sector-result{font-size:13px;color:#71e9bb}.sector-result.obscured{color:#ffd15d}
.source-panel{border-top:1px solid var(--border-color);padding-top:12px}.source-top{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px}.source-top select{font-size:11px;min-height:34px;max-width:265px}
.pdf-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:7px 0;font-size:11px}.pdf-controls button,.pdf-controls select{font-size:11px;min-height:30px;padding:5px 8px}.pdf-controls button[aria-pressed=true]{border-color:var(--accent-gold);color:var(--accent-gold)}.pdf-controls label{display:flex;align-items:center;gap:5px;margin-left:auto}.pdf-controls a{padding:6px}
.pdf-view{border-radius:7px;background:#f4f0df;overflow:auto;max-height:200px;min-height:95px;overscroll-behavior:contain}.source-panel.expanded .pdf-view{max-height:62vh;min-height:370px}.pdf-page{background:white;color:#172a30;padding:5px 0 0;min-width:100%;width:var(--page-width,100%)}.pdf-page small{display:block;font:10px system-ui;color:#49606b;padding:0 10px 4px}.pdf-page svg{width:100%;height:auto;display:block;background:white}.row-mark{fill:#ffdf33;fill-opacity:.38;stroke:#dca800;stroke-width:.65;mix-blend-mode:multiply;pointer-events:none}
.cover{display:flex;align-items:center;justify-content:center;gap:12px;min-height:90px;border:1px dashed var(--border-color);border-radius:7px;font-size:13px}
.group-head{display:flex;align-items:center;gap:10px;justify-content:space-between}.group-head h2{font-size:15px}.pill{font-size:10px;color:var(--text-muted);white-space:nowrap}#group-intro{font-size:11px;margin:6px 0;line-height:1.45}
.steps{display:flex;gap:6px;margin:10px 0;flex-wrap:wrap}.steps button{padding:3px;width:32px;min-height:32px;font-size:12px;border-radius:50%}.steps button[aria-current=true]{background:var(--accent-cyan);color:var(--bg-primary)}.steps button[data-result=recalled]:after{content:'✓';font-size:8px}.steps button[data-result=needs_practice]{border-color:#edb35f}
.aid-card{border-top:1px solid var(--border-color);padding-top:13px}.aid-card h3{margin:5px 0 12px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:11px}.fact small{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);display:block}.fact strong{font-size:21px;display:block}.fact.wide{grid-column:1/-1}.fact.wide strong{font-size:13px;font-weight:550}.characteristic .small{display:block;font-size:11px}.color-cue{display:inline-block;width:9px;height:9px;border-radius:50%;background:#f5edcc;margin-right:5px}.color-cue.green{background:#34de94}.color-cue.red{background:#f36975}.color-cue.unlit{border:1px solid var(--text-muted);background:transparent}
#height-note:empty,#attempt-note:empty{display:none}#height-note,#attempt-note{margin-top:10px}.attempt-note{font-size:12px;color:var(--accent-gold)}
.entry-controls{margin-top:16px}.entry-controls button{flex:1;padding:7px;font-size:11px}#self-grade{margin:8px 0}#self-grade button{font-size:10px;min-height:32px;padding:4px 8px}#progress{margin-left:auto;font-size:10px}.group-actions{justify-content:space-between;border-top:1px solid var(--border-color);padding-top:9px;margin-top:10px}.group-actions button{font-size:10px;padding:6px;min-height:32px}
details{margin-top:12px}summary{cursor:pointer;font-size:12px;color:var(--accent-cyan);min-height:28px;padding:4px 0}details p,details li{font-size:12px}ul{padding-left:18px}.peg{font-size:13px;color:var(--accent-gold);padding:8px 0}.connections button{display:block;width:100%;text-align:left;font-size:12px;margin:5px 0}
.conversation{border:1px solid var(--border-color);border-radius:13px;margin-top:14px;padding:12px 16px;background:var(--bg-secondary)}.caption-line{display:flex;align-items:center;gap:15px}.caption-line p{flex:1;font-size:13px;max-height:100px;overflow:auto}.caption-line .eyebrow{flex-shrink:0}#text-form{display:flex;gap:6px;margin-top:10px}#message{width:100%;font-size:12px}#send{font-size:12px}#transcript{max-height:200px;overflow:auto;font-size:12px}#transcript p{margin:10px 0}#transcript strong{display:block;font-size:10px;text-transform:uppercase;color:var(--accent-cyan)}#transcript .learner strong{color:var(--accent-gold)}
#error{padding:12px;border:1px solid #d1845b;background:#3b2517;color:#ffdec5;border-radius:10px;margin-top:10px}
footer{display:flex;flex-wrap:wrap;gap:18px;font-size:11px;margin-top:16px;color:var(--text-muted)}footer span{margin-left:auto}
dialog{border:1px solid var(--border-color);border-radius:18px;background:var(--bg-secondary);color:var(--text-main);max-width:500px;width:calc(100% - 32px);padding:25px}dialog::backdrop{background:#0009}dialog h2,dialog p{margin:12px 0}dialog input[type=password]{display:block;width:100%;margin:7px 0}.remember{display:flex;align-items:center;gap:9px;font-size:13px}.remember input{min-height:24px}
.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}
@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 360px}.light-grid{min-height:270px}.light-tile strong{font-size:14px}.tile-structure{font-size:12px}.pdf-view{max-height:240px}}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 290px}.light-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.light-tile{min-height:200px}.sector-layout{grid-template-columns:1fr}.sector-map{max-height:250px}.sector-explain{padding:0 10px 8px}#lesson-state{display:none}}
@media(max-width:800px){main{padding:12px}.workspace{grid-template-columns:1fr}.mast h1{font-size:21px}.mast a{display:none}.voicebar{flex-wrap:wrap}.voicebar .voice-state{flex:1;min-width:200px}.voicebar .voice-state small{display:none}.lesson-toolbar{gap:7px}.group-picker{max-width:none}.pace-picker{width:100%;justify-content:space-between}.pace-picker select{flex:1;max-width:240px}.studio,.lesson{padding:12px}.light-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));min-height:180px}.light-tile{min-height:180px}.light-tile strong{min-height:30px}.stage-heading h2{font-size:18px}.stage-cue{font-size:12px}.view-tabs button{padding:6px 9px;min-height:38px}.sector-layout{grid-template-columns:1fr 1fr;gap:5px}.sector-map{min-width:0}.sector-explain h3{font-size:15px}.facts{grid-template-columns:1fr 1fr}.facts .wide{grid-column:auto}.fact.wide:last-child{grid-column:1/-1}.voice-connected .voicebar{position:sticky;top:4px;z-index:10;box-shadow:0 4px 18px #0003}.caption-line{gap:8px}.caption-line>span{display:none}.source-top{flex-wrap:wrap}.source-top select{flex:1}.pdf-view{max-height:170px}.visual-foot .small{font-size:9px}.visual-foot button{font-size:10px;min-height:36px;padding:6px}footer span{margin-left:0}}
@media(max-width:450px){.light-grid{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:6px}.light-tile{padding:24px 5px 8px;min-height:179px}.light-tile strong{font-size:11px}.tile-structure{font-size:10px}.stage-heading{flex-wrap:wrap}.stage-heading>div:first-child{flex:1}.stage-heading .eyebrow{font-size:8px}.stage-heading h2{font-size:16px}.sector-layout{grid-template-columns:1fr}.sector-map{max-height:260px}.source-top>strong{font-size:11px}.source-top select{min-width:130px}.group-picker{min-width:160px}.segmented button{padding:6px 9px}.pdf-controls label{margin-left:0}#visual-stage{padding:8px}}
@media(prefers-reduced-motion:reduce){.bulb.flashing{animation:none;opacity:1}.visual-foot:before{content:'Reduced motion: flashes held steady.';font-size:10px;color:var(--text-muted)}}
/* Keep the teaching surface and source above the fold on ordinary laptops. */
@media(min-width:801px){
 .study-shell{min-height:38px;padding:4px 22px}
 .study-shell a,.study-shell button{min-height:30px;padding:4px 10px;font-size:11px}
 main{padding-top:8px}.mast{padding:0 0 9px}.mast>div{display:flex;align-items:center;gap:16px}.mast h1{font-size:20px}.mast .eyebrow{font-size:9px}
 .voicebar{padding:8px 12px}.voicebar button{min-height:36px;font-size:12px}
 .lesson-toolbar{padding:8px 0}.light-grid{min-height:190px}.light-tile{min-height:190px}
 #visual-stage{min-height:216px}.sector-map{max-height:270px}
 .stage-cue{margin:6px 0 10px}.stage-heading h2{font-size:19px}
}
[data-theme=light] #visual-stage .eyebrow{color:#7cd8ff}
