/*! © 2026 Nuvira Technologies, LLC. All rights reserved. WonderWise, its tutors, artwork, voices, lessons and software may not be copied, scraped or reused. See /terms. */
:root{--ink:#17324D;--muted:#778480;--teal:#256F66;--teal-light:#E3F3F0;--coral:#EF8A6F;--line:#C9DEDC;--page:#EEF7F5;--paper:#fffef9;--font:'DM Sans',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--heading:'Manrope',var(--font)}
*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font);font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button{color:inherit}svg{width:20px;height:20px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.skip-link{position:absolute;top:-80px;left:20px;z-index:100;background:var(--teal);color:white;padding:12px 20px;border-radius:8px}.skip-link:focus{top:12px}.app-shell{width:100%;margin:auto;min-height:100vh;padding:0 34px;display:flex;flex-direction:column}.topbar{height:94px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:var(--heading);font-weight:800;letter-spacing:-1.15px;font-size:27px;line-height:1}.brand-light{font-weight:500}.brand small{display:block;font:8px var(--font);letter-spacing:1.65px;font-weight:600;margin-top:9px;color:#7a8982}.brand-mark{display:block;background:var(--teal);border-radius:15px 15px 15px 5px;width:46px;height:47px;text-align:center;color:white;line-height:45px;font-size:35px;position:relative;font-weight:800}.brand-mark span{position:absolute;right:5px;top:0;line-height:16px;font-size:14px;color:#f6c576}.session-controls{display:flex;align-items:center;gap:21px}.select-wrap{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.select-wrap select{border:0;background:none;font-weight:600;font-size:13px;padding:8px 17px 8px 1px;color:var(--ink);cursor:pointer}.button{border-radius:10px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:600}.button-quiet{border:1px solid #cdd8ce;background:transparent}.button-quiet:hover{background:#E3F3F0}.classroom{display:grid;grid-template-columns:42% 58%;flex:1;min-height:0;padding:29px 0 0}.teacher-panel{display:flex;flex-direction:column;padding:8px 36px 18px 6px;position:relative;min-width:0}.teacher-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;position:relative;z-index:1}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:#89958a;margin-bottom:8px}h1{font-family:var(--heading);font-size:29px;letter-spacing:-1.1px;line-height:1.3;margin:0;font-weight:600}.hello-spark{color:#d99563;font-size:28px;display:inline-block;margin-left:9px;vertical-align:2px}.teacher-status{padding:7px 10px;border-radius:20px;background:#eaf0e5;color:#547260;display:flex;align-items:center;gap:6px;font-size:10px;white-space:nowrap}.teacher-status i{width:5px;height:5px;background:#79966a;border-radius:50%}.teacher-status[data-state=thinking] i,.teacher-status[data-state=listening] i{animation:status-pulse 1s ease-in-out infinite;background:var(--coral)}.teacher-status[data-state=speaking] i{background:var(--teal);animation:status-pulse .6s ease-in-out infinite}.character-space{position:relative;flex:1;min-height:350px;isolation:isolate;display:flex;justify-content:center;align-items:center;padding:5px 0 0}#koa-stage{position:relative;width:100%;height:100%;min-height:350px;max-height:590px;z-index:1;display:flex;justify-content:center;align-items:center;aspect-ratio:4/5}#koa-stage>img.koa-fallback{max-height:100%;width:auto;max-width:100%;mix-blend-mode:multiply;object-fit:contain}.character-floor{position:absolute;bottom:6%;left:20%;right:20%;height:22px;border-radius:50%;background:#dedecf;filter:blur(13px);opacity:.3;z-index:-1}.ambient-symbol{position:absolute;color:#c3cdb9;opacity:.55;font-family:Georgia,serif;pointer-events:none}.symbol-a{left:4%;top:33%;font-style:italic;font-size:35px;transform:rotate(-13deg)}.symbol-star{right:1%;top:21%;font-size:33px}.symbol-plus{right:7%;bottom:24%;font-size:28px;transform:rotate(12deg)}.teacher-message{position:relative;background:#FFFFFF;border:1px solid #DDEFEC;box-shadow:0 3px 6px #2b473b03;border-radius:16px;padding:15px 20px 17px;margin:3px 2px 0}.teacher-message:before{content:'';position:absolute;width:13px;height:13px;left:45%;top:-7px;background:#FFFFFF;border-top:1px solid #DDEFEC;border-left:1px solid #DDEFEC;transform:rotate(45deg)}.message-author{display:flex;align-items:center;gap:6px;color:var(--teal);font-size:11px;font-weight:700}.message-author .icon-button{margin-left:auto;width:25px;height:25px;color:#9ca69b}.message-author svg{width:15px;height:15px}.mini-spark{font-size:16px;color:var(--coral)}.teacher-message p{margin:8px 0 0;font-size:14px;line-height:1.65;color:#3C5670;max-height:130px;overflow:auto;scrollbar-width:thin}.teacher-footer{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:18px 3px 0;color:#718075;min-height:40px}.voice-toggle{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:10px;white-space:nowrap}.voice-toggle input{width:1px;height:1px;position:absolute;opacity:0}.toggle-track{width:25px;height:14px;background:#bbc6ba;border-radius:14px;position:relative;transition:background .2s}.toggle-track:before{content:'';width:10px;height:10px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s}.voice-toggle input:checked+.toggle-track{background:var(--teal)}.voice-toggle input:checked+.toggle-track:before{transform:translateX(11px)}.voice-toggle input:focus-visible+.toggle-track{outline:3px solid var(--focus);outline-offset:3px}.text-button{background:transparent;border:0;display:inline-flex;align-items:center;gap:5px;padding:2px;color:#7c8981;font-size:10px}.text-button:hover{color:var(--teal)}.text-button svg{width:13px;height:13px}.motion-tools{position:relative;font-size:10px}.motion-tools summary{list-style:none;display:flex;align-items:center;gap:4px;cursor:pointer}.motion-tools summary::-webkit-details-marker{display:none}.motion-tools summary svg{width:14px;height:14px}.motion-menu{position:absolute;bottom:27px;right:0;padding:7px;border-radius:12px;background:white;box-shadow:0 5px 30px #17324D22;z-index:5;min-width:110px}.motion-menu button{display:block;border:0;border-radius:6px;background:none;width:100%;text-align:left;font-size:12px;padding:8px 12px}.motion-menu button:hover{background:var(--teal-light)}.workspace-panel{border:1px solid #C9DEDC;border-radius:17px;box-shadow:0 9px 30px #38584904;background:var(--paper);min-width:0;position:relative;display:flex;flex-direction:column;margin-bottom:14px;overflow:hidden}.board-toolbar{height:58px;flex-shrink:0;border-bottom:1px solid #DDEFEC;display:flex;align-items:center;justify-content:space-between;padding:0 23px;gap:12px;background:#FFFFFF;z-index:1}.board-label{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600}.board-label svg{width:18px;height:18px;color:#7f9184}.board-tag{background:#f1f1e8;color:#8d9685;font-size:7px;letter-spacing:1px;padding:5px 6px;border-radius:4px;font-weight:600;margin-left:6px}.board-actions{display:flex;gap:5px}.icon-button{width:30px;height:30px;border:0;border-radius:7px;background:transparent;display:inline-flex;justify-content:center;align-items:center;color:#89948a}.icon-button:hover{background:#E3F3F0;color:var(--ink)}.board-actions svg{width:16px;height:16px}.whiteboard{position:relative;flex:1;min-height:340px;overflow:auto;scrollbar-width:thin;background-image:radial-gradient(#c7d1bc70 .75px,transparent .75px);background-size:21px 21px;display:flex;flex-direction:column}.board-content{padding:36px 44px 32px;flex:1;outline:none}.board-content>header .lesson-kicker{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:1.6px;color:#8e9b87;font-weight:600}.lesson-kicker .lesson-dot{width:5px;height:5px;border-radius:50%;background:var(--coral)}.board-content h2{font-family:var(--heading);font-size:31px;line-height:1.3;letter-spacing:-1.1px;font-weight:600;margin:12px 0 12px;max-width:95%}.board-intro{color:#7e8a80;font-size:13px;line-height:1.7;max-width:460px;margin:0}.marker-underline{display:inline-block;position:relative}.marker-underline:after{content:'';position:absolute;left:0;right:-4px;bottom:-4px;height:4px;background:#e9b38277;transform:rotate(-1deg);border-radius:50%}.sample-equation{display:flex;align-items:center;gap:24px;margin:38px 0 30px;padding-left:10px;font-family:var(--heading);font-weight:500;font-size:32px;color:#477568}.fraction{display:inline-flex;flex-direction:column;align-items:center;font-size:31px;line-height:1.15;min-width:29px}.fraction span:first-child{padding:0 7px 5px;border-bottom:2px solid currentColor}.fraction span:last-child{padding-top:5px}.equation-operator{color:#a2aa96;font-weight:400;font-size:27px}.question-mark{color:var(--coral);font-size:42px;margin-left:3px}.sample-visual{display:flex;gap:17px;align-items:center;margin:0 0 29px;padding:0 5px}.fraction-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;width:144px;height:45px}.fraction-bar i{background:#b7d5c3;border:1px solid #9fbeab;border-radius:5px}.fraction-bar i.blank{background:#f5f5e9;border-color:#d7ddca}.fraction-bar.coral i{background:#eeb59f;border-color:#dca48f}.visual-plus{color:#b3b9aa;font-size:23px}.hint-card{display:flex;align-items:flex-start;gap:11px;padding:16px 18px;border:1px solid #e1e6d7;border-radius:10px;background:#f6f7ed;margin-bottom:20px;max-width:520px}.hint-card .hint-icon{color:#9b9f75}.hint-card strong{font-size:12px;font-weight:600}.hint-card p{margin:5px 0 0;font-size:12px;color:#7e8b7c;line-height:1.6}.sample-question{color:#758675;font-size:13px;font-style:italic;padding-left:5px}.try-sample{border:0;background:var(--teal-light);color:#256F66;padding:8px 12px;border-radius:7px;font-size:10px;font-weight:600;margin-top:5px}.try-sample:hover{background:#cfdfcf}.board-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 24px 10px;min-height:30px;color:#a4ad9a;font-size:9px;letter-spacing:.1px}.board-bottom span span{color:#c3a26f;margin-right:4px}.marker-tray{display:flex;align-self:flex-end;gap:5px;border-bottom:4px solid #d6dacb;padding:0 8px;transform:translateY(10px)}.marker-tray i{width:7px;height:25px;background:#d9dfd0;border-radius:3px 3px 0 0;border-top:8px solid #568777}.marker-tray i:nth-child(2){height:29px;border-top-color:var(--coral)}.marker-tray i:nth-child(3){height:22px;border-top-color:#dbbd6e}.conversation-area{position:relative;background:#FFFFFF;border-top:1px solid #DDEFEC;padding:17px 20px 12px;flex-shrink:0}.homework-row{margin-bottom:13px}.homework-drop{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:1px dashed #ced9c8;border-radius:10px;background:#EEF7F5;padding:12px 13px}.homework-drop:hover{background:#eff4e9;border-color:#90aa89}.upload-icon{display:flex;align-items:center;justify-content:center;color:#7e9a7d;width:30px;height:31px;border-radius:7px;background:#eaf0e2}.upload-icon svg{width:17px;height:17px}.homework-drop strong{display:block;font-size:11px;font-weight:600;color:#687b65}.homework-drop small{display:block;font-size:10px;color:#a1aa96;margin-top:4px}.homework-drop>.file-formats{margin-left:auto;white-space:nowrap;font-size:7px;letter-spacing:1px;color:#a1ab97}.homework-drop>span:last-child svg{width:13px;height:13px;color:#899e83}.input-shell{display:flex;align-items:flex-end;border:1px solid #C9DEDC;background:white;border-radius:12px;padding:7px;gap:5px;box-shadow:0 3px 6px #38584903}.input-shell:focus-within{border-color:#7FA9A3;box-shadow:0 0 0 3px #256F6609}textarea{resize:none;flex:1;min-width:0;max-height:120px;min-height:35px;border:0;outline:none!important;padding:9px 7px 6px;background:none;color:var(--ink);font-size:12px;line-height:1.45}textarea::placeholder{color:#a0aaa1}textarea:disabled{opacity:.7}.mic-button{height:35px;width:30px;flex-shrink:0}.mic-button svg{width:18px;height:18px}.mic-button[aria-pressed=true]{background:#fff0e9;color:#bc6550;animation:status-pulse 1.6s ease-in-out infinite}.send-button{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:35px;height:35px;border:0;background:var(--teal);color:white;border-radius:8px;transition:background .2s}.send-button:hover{background:#1C5A53}.send-button svg{width:20px;height:20px}.cancel-button{background:#b97d61}.conversation-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;min-height:18px;font-size:9px;color:#a0aa9c}.mode-control{display:flex;align-items:center;gap:5px}.mode-control select{max-width:195px;background:none;border:0;padding:2px 0;font-size:9px;color:#87977f;cursor:pointer}.connection-dot{width:4px;height:4px;background:#bbad7a;border-radius:50%}.connection-dot.live{background:#72936c}.conversation-meta .text-button{font-size:9px}.conversation-meta #history-count{font-size:8px;padding:2px 4px;border-radius:4px;background:#eef1e8;min-width:15px}.app-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:38px;flex-shrink:0;color:#a4ada0;font-size:9px;padding:0 2px 6px}.app-footer>span:first-child>span{color:#c7af84;margin-right:6px}.board-block{margin:24px 0}.board-paragraph{font-size:17px;line-height:1.8;color:#557267;white-space:pre-wrap;overflow-wrap:anywhere}.board-equation{font-family:var(--heading);font-size:clamp(24px,2.8vw,38px);font-weight:500;letter-spacing:-.5px;color:var(--teal);white-space:pre-wrap;overflow-wrap:anywhere;padding:20px 24px;background:#edf3e980;border-radius:10px;border-left:3px solid #a5bda0}.board-steps{padding:0;list-style:none;counter-reset:steps;display:grid;gap:14px}.board-steps li{counter-increment:steps;display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.65;color:#61766b;white-space:pre-wrap;overflow-wrap:anywhere}.board-steps li:before{content:counter(steps);display:flex;align-items:center;justify-content:center;flex-shrink:0;width:25px;height:25px;border-radius:50%;background:#e6eee0;color:#6a8a63;font-size:11px;font-weight:600}.empty-board{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;text-align:center;color:#93a18d}.empty-board svg{height:35px;width:35px;margin-bottom:12px;color:#bac7b1}.empty-board h2{font-size:23px;margin:10px 0}.empty-board p{font-size:12px;line-height:1.7;max-width:310px}.attachments{list-style:none;margin:0 0 12px;padding:0;display:flex;gap:7px;overflow:auto;scrollbar-width:thin}.attachment{display:flex;align-items:center;gap:7px;max-width:230px;min-width:140px;flex-shrink:0;border:1px solid #dce5d7;background:#f2f6ee;border-radius:8px;padding:6px}.attachment img{height:32px;width:32px;object-fit:cover;border-radius:4px}.attachment .file-icon{width:27px;text-align:center;color:#739278}.attachment-text{overflow:hidden;flex:1}.attachment strong{font-size:10px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment small{font-size:8px;color:#8f9f87;display:block;margin-top:3px}.attachment .icon-button{width:23px;height:23px;flex-shrink:0}.attachment svg{height:13px;width:13px}.notice{font-size:11px;line-height:1.5;padding:10px 12px;margin-bottom:10px;border-radius:8px;background:#f2f3e8;color:#788262}.notice.error{background:#fff0eb;color:#a1644f}.drop-overlay{position:absolute;inset:60px 12px 12px;z-index:20;border:2px dashed #769d7b;border-radius:13px;background:#f3f7edee;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#557e5e;pointer-events:none}.drop-overlay svg{width:42px;height:42px}.drop-overlay strong{font-family:var(--heading);font-size:22px}.drop-overlay>span:last-child{font-size:12px}.history-panel{position:absolute;left:15px;right:15px;bottom:34px;border:1px solid #dce4d4;border-radius:12px;background:#FFFFFF;box-shadow:0 12px 50px #263f3822;z-index:10;max-height:420px;display:flex;flex-direction:column}.history-header{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px}.history-panel ol{list-style:none;padding:12px 17px;margin:0;overflow:auto;font-size:12px;line-height:1.6}.history-panel li{padding:10px 0;border-bottom:1px solid #edf0e5}.history-panel li:last-child{border:0}.history-panel li strong{display:block;font-size:10px;margin-bottom:3px;color:var(--teal)}.history-panel li p{margin:0;color:#71816f;white-space:pre-wrap;overflow-wrap:anywhere}.history-empty{padding:15px;text-align:center;color:#95a08c;font-size:11px}.board-expanded .teacher-panel{display:none}.board-expanded .classroom{grid-template-columns:1fr}.board-expanded .board-content{max-width:1000px;width:100%;margin:auto}.board-expanded .whiteboard{min-height:440px}.board-expanded .conversation-area{max-width:none}.board-expanded .character-space{display:none}@keyframes status-pulse{50%{opacity:.45}}
@media(min-width:1100px) and (min-height:800px){.app-shell{height:100vh;min-height:780px}.classroom{overflow:hidden}.teacher-panel{min-height:0}.character-space{min-height:0;overflow:hidden}#koa-stage{min-height:0;max-height:100%}.whiteboard{min-height:0}.board-content{padding-top:37px}.teacher-message p{max-height:100px}}
@media(min-width:1600px){.app-shell{padding:0 56px}.teacher-panel{padding-right:55px;padding-left:15px}.board-content{padding:42px 65px}.teacher-message{margin-left:22px;margin-right:22px}.teacher-footer{padding-left:25px;padding-right:25px}.board-content h2{font-size:38px}.sample-equation{margin:46px 0 35px;gap:32px}.fraction{font-size:39px}.sample-visual{margin-bottom:35px}.fraction-bar{width:174px;height:49px}.board-intro{font-size:15px}.hint-card{padding:20px 24px}.hint-card strong{font-size:14px}.hint-card p{font-size:13px}}
@media(max-width:1099px){.app-shell{padding:0 22px}.topbar{height:83px}.classroom{grid-template-columns:39% 61%;padding-top:22px}.teacher-panel{padding-right:23px}.teacher-heading{align-items:flex-start;flex-wrap:wrap}.teacher-status{font-size:9px;padding:5px 8px;margin-top:3px}.character-space{min-height:330px}#koa-stage{min-height:330px}.teacher-message{padding:12px 14px}.teacher-message p{font-size:12px}.teacher-footer{flex-wrap:wrap;gap:10px}.board-content{padding:30px 28px}.board-content h2{font-size:27px}.sample-equation{gap:20px;margin-top:30px}.board-toolbar{padding:0 18px}.board-tag{font-size:6px;letter-spacing:.8px;margin-left:2px}.homework-drop .file-formats{display:none}.conversation-area{padding:15px 15px 11px}.session-controls{gap:12px}.app-footer{font-size:8px}.brand{font-size:25px}.brand small{font-size:7px;letter-spacing:1.2px}.brand-mark{width:42px;height:43px;line-height:42px}.subject-select{gap:4px}}
@media(max-width:760px){.app-shell{padding:0 14px}.topbar{height:auto;min-height:84px;padding:18px 0;flex-wrap:wrap;gap:17px}.brand{font-size:25px}.session-controls{width:100%;justify-content:space-between;border-top:1px solid #DDEFEC;padding-top:8px}.select-wrap{font-size:11px}.button{padding:8px 11px;font-size:11px}.classroom{display:flex;flex-direction:column;padding-top:20px}.teacher-panel{padding:0 6px 18px}.teacher-heading{flex-wrap:nowrap;align-items:center}.eyebrow{font-size:8px}h1{font-size:26px}.teacher-status{font-size:10px}.character-space{min-height:270px;height:300px;max-height:340px;padding-top:0}#koa-stage{min-height:0;height:100%;width:auto;max-width:340px;aspect-ratio:4/5}.symbol-a{left:14%;top:35%}.symbol-star{right:14%;top:18%}.symbol-plus{right:18%;bottom:20%}.teacher-message{margin:0 0 0;padding:12px 16px}.teacher-message p{font-size:13px;max-height:100px}.teacher-footer{padding-top:13px;flex-wrap:nowrap}.workspace-panel{margin-top:4px;margin-bottom:0}.board-toolbar{height:54px;padding:0 16px}.board-content{padding:29px 24px}.whiteboard{min-height:390px;max-height:none}.sample-equation{margin:29px 0 24px}.sample-visual{gap:13px}.fraction-bar{width:128px;height:41px}.board-content h2{font-size:27px}.board-intro{font-size:12px}.hint-card{padding:14px}.app-footer{flex-direction:column;align-items:center;padding:18px 0;gap:8px;font-size:8px}.teacher-footer .voice-toggle,.teacher-footer .text-button,.teacher-footer .motion-tools{font-size:10px}.history-panel{max-height:350px}.board-expanded .teacher-panel{display:none}.conversation-area{padding-bottom:13px}.board-paragraph{font-size:16px}.board-equation{font-size:27px}.board-steps li{font-size:14px}}
@media(max-width:390px){.app-shell{padding:0 10px}.board-toolbar{padding:0 12px}.board-label{font-size:11px;gap:6px}.board-tag{font-size:6px;letter-spacing:.3px}.board-content{padding:26px 19px}.sample-visual{gap:10px}.fraction-bar{width:113px}.conversation-meta{gap:5px;font-size:8px}.mode-control select{font-size:8px;max-width:145px}.conversation-meta .text-button{font-size:8px}.voice-toggle{font-size:9px}.teacher-footer{gap:7px}.subject-select select{max-width:92px}}
/* Keep the learning surface and functional controls comfortably readable. */
.fraction-bar.coral i.blank{background:#f5f5e9;border-color:#d7ddca}
/* Absolutely positioned avatar layers need a real mobile stage, even before
   their artwork loads. Auto width plus an empty flex item can collapse to zero. */
@media(max-width:760px){.character-space{flex:0 0 340px;height:340px;min-height:340px;max-height:340px}#koa-stage{width:100%;height:340px;min-height:340px;max-width:340px;max-height:340px;flex:0 0 auto;aspect-ratio:auto}}
.select-wrap{font-size:12px}.select-wrap select{font-size:14px}.button{font-size:13px;min-height:38px}.teacher-status{font-size:12px;padding:8px 10px}.teacher-message p{font-size:16px;line-height:1.6}.message-author{font-size:12px}.teacher-footer .voice-toggle,.teacher-footer .text-button,.teacher-footer .motion-tools{font-size:12px}.teacher-footer{gap:10px;flex-wrap:wrap}.motion-menu button{font-size:14px;padding:10px 12px}.board-label{font-size:14px}.board-tag{font-size:9px}.board-intro{font-size:16px;line-height:1.6}.hint-card strong{font-size:14px}.hint-card p{font-size:14px;line-height:1.6}.sample-question{font-size:16px;line-height:1.5}.try-sample{font-size:13px;min-height:36px}.homework-drop strong{font-size:14px}.homework-drop small{font-size:12px}.homework-drop{min-height:62px}.homework-drop>.file-formats{font-size:9px}.input-shell{padding:8px}.input-shell textarea{font-size:15px;min-height:39px;line-height:1.5}.send-button{width:39px;height:39px}.mic-button{height:39px;width:34px}.conversation-meta{font-size:12px;flex-wrap:wrap;row-gap:8px}.mode-control select{font-size:12px;max-width:210px}.conversation-meta .text-button{font-size:12px}.conversation-meta #history-count{font-size:10px}.attachment strong{font-size:12px}.attachment small{font-size:10px}.attachment .icon-button{width:30px;height:30px}.notice{font-size:13px}.history-header{font-size:14px}.history-panel ol{font-size:14px}.history-panel li strong{font-size:12px}.history-empty{font-size:13px}.empty-board p{font-size:15px}.board-steps li{font-size:16px}.board-bottom{font-size:10px}.teacher-footer .voice-toggle{min-height:28px}.motion-tools summary{min-height:28px}.icon-button{min-width:30px;min-height:30px}.message-author .icon-button{min-width:30px;min-height:30px}
@media(max-width:1099px){.teacher-heading{flex-wrap:wrap;gap:8px}.teacher-message p{font-size:15px}.teacher-footer{gap:7px}.homework-drop .file-formats{display:none}.board-tag{font-size:8px}.board-intro{font-size:15px}.conversation-meta{column-gap:9px}}
@media(max-width:760px){.teacher-heading{flex-wrap:nowrap}.teacher-status{font-size:12px}.teacher-message p{font-size:16px}.board-label{font-size:13px}.board-tag{font-size:8px}.board-content h2{font-size:27px}.board-intro{font-size:15px}.board-paragraph,.board-steps li{font-size:16px}.sample-question{font-size:15px}.conversation-meta,.conversation-meta .text-button,.mode-control select{font-size:12px}.conversation-meta>span:first-child{font-size:11px}.teacher-footer .voice-toggle,.teacher-footer .text-button,.teacher-footer .motion-tools{font-size:12px}.board-actions{gap:1px}.session-controls{gap:8px}}
@media(max-width:390px){.board-tag{font-size:7px;letter-spacing:.3px}.mode-control select{max-width:175px}.conversation-meta{justify-content:flex-start;column-gap:12px;row-gap:9px}.conversation-meta>span:first-child{font-size:11px}.homework-drop small{font-size:11px}.teacher-footer{column-gap:12px}.teacher-heading{align-items:flex-start;flex-wrap:wrap}.select-wrap select{font-size:13px}.select-wrap{font-size:12px}.button{font-size:12px}.brand small{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* One continuous white teaching canvas: Koa and the lesson share the space. */
:root{--page:#fff;--paper:#fff}
body,.app-shell,.classroom,.teacher-panel,.workspace-panel,.whiteboard,.board-toolbar,.conversation-area{background:#fff}
.classroom{padding-top:12px}
.teacher-panel{padding-top:0}
.teacher-heading{min-height:58px;align-items:center;flex-wrap:nowrap}
.teacher-heading .eyebrow,.hello-spark,.ambient-symbol,.character-floor{display:none}
.teacher-heading h1{font-size:21px;letter-spacing:-.5px;font-weight:600}
.workspace-panel{border:0;border-radius:0;box-shadow:none;overflow:visible}
.board-toolbar{border-bottom:0;padding-left:23px;padding-right:23px}
.whiteboard{background-image:none}
.teacher-message{border:0;box-shadow:none;border-radius:0;background:#fff;padding:12px 2px;margin:0 12px}
.teacher-message:before{display:none}
.teacher-message p{color:#3C5670}
.teacher-footer{padding-left:12px;padding-right:12px}
.conversation-area{border-top:1px solid #DDEFEC;padding-left:20px;padding-right:20px}
.homework-drop{background:#fff}
.homework-drop:hover{background:#EEF7F5}
.hint-card{background:#fff;border:0;border-left:2px solid #cedbc5;border-radius:0;padding-left:16px}
.board-equation{background:#fff;border-left:0;padding-left:0;border-radius:0}
.board-bottom{padding-bottom:10px}
.marker-tray{display:none}
@media(max-width:760px){.classroom{padding-top:8px}.teacher-panel{padding-top:0;padding-bottom:12px}.teacher-heading{min-height:45px}.teacher-heading h1{font-size:20px}.workspace-panel{margin-top:0}.board-toolbar{padding-left:16px;padding-right:16px}.teacher-message{margin-left:6px;margin-right:6px}.teacher-footer{padding-left:6px;padding-right:6px}.board-content{padding-top:22px}.conversation-area{padding-left:12px;padding-right:12px}}
/* Readable lesson controls, with full pages for homework and preferences. */
body{font-size:16px}.topbar{height:88px;gap:24px}.brand{font-size:28px}.main-nav{display:flex;align-items:center;gap:8px;margin-left:auto}.main-nav a{color:#3C5670;font-size:17px;font-weight:600;text-decoration:none;padding:12px 16px;border-radius:12px;white-space:nowrap}.main-nav a:hover{background:#EEF7F5}.main-nav a[aria-current=page]{background:#E3F3F0;color:#256F66}.button{font-size:16px;min-height:46px;padding:11px 17px;text-decoration:none}.button-primary{background:#256F66;color:#fff;border:1px solid #256F66}.button-primary:hover{background:#18584f}.button-danger{background:#a23e31;color:#fff;border:1px solid #a23e31}.icon-button{min-width:42px;min-height:42px}.teacher-heading h1{font-size:25px}.teacher-status{font-size:16px}.teacher-message p{font-size:20px;line-height:1.5;max-height:150px}.message-author{font-size:16px}.teacher-footer{gap:12px}.teacher-footer .voice-toggle,.teacher-footer .text-button,.teacher-footer .motion-tools{font-size:16px}.teacher-footer .voice-toggle{min-height:42px}.motion-menu button{font-size:16px}.board-label{font-size:18px}.board-tag{font-size:12px;letter-spacing:.5px;padding:7px 9px}.board-toolbar{height:64px}.board-content{padding:20px 28px 28px}.board-content>header .lesson-kicker{display:none}.board-content h2{font-size:34px;line-height:1.2;letter-spacing:-.8px;margin:6px 0 22px}.board-equation{font-size:44px;margin:18px 0;padding:0;line-height:1.25}.board-paragraph,.board-steps li{font-size:23px;line-height:1.45}.board-steps li:before{width:32px;height:32px;font-size:18px}.board-block{margin:18px 0}.try-sample{font-size:18px;min-height:46px;padding:11px 16px;margin-top:8px}.board-bottom{display:none}.homework-drop{padding:13px 16px;min-height:72px;gap:14px}.homework-drop strong{font-size:18px}.homework-drop small{font-size:16px;line-height:1.4;color:#3C5670}.upload-icon{width:38px;height:38px;flex-shrink:0}.upload-icon svg{width:23px;height:23px}.input-shell textarea{font-size:18px;min-height:46px;padding:10px}.send-button{height:46px;width:46px}.mic-button{height:46px;width:42px}.conversation-meta,.conversation-meta .text-button,.mode-control select{font-size:16px}.conversation-meta{gap:10px 18px;justify-content:flex-start}.mode-control select{max-width:240px;min-height:36px}.conversation-meta #history-count{font-size:14px;padding:3px 6px}.conversation-meta #voice-label{display:none}.session-note{font-size:16px;color:#3C5670;line-height:1.4;margin:4px 0 0}.notice{font-size:17px;line-height:1.5}.attachment{max-width:300px;padding:8px}.attachment strong{font-size:16px}.attachment small{font-size:14px}.attachment .icon-button{width:36px;height:36px;min-width:36px;min-height:36px}.history-panel{bottom:48px;background:#fff}.history-header{font-size:18px}.history-panel ol{font-size:18px}.history-panel li strong{font-size:16px}.history-empty{font-size:17px}.empty-board p{font-size:20px}.empty-board h2{font-size:30px}.drop-overlay>span:last-child{font-size:18px}
.page-view{width:100%;max-width:none;margin:0 auto;padding:48px clamp(16px,2vw,48px) 60px;flex:1}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:36px}.page-heading h1{font-size:40px;letter-spacing:-1.2px;line-height:1.2;margin:0}.page-heading p{font-size:20px;color:#3C5670;line-height:1.5;margin:12px 0 0}.page-heading h1:focus,.teacher-heading h1:focus{outline:none}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.settings-grid fieldset{border:1px solid #C9DEDC;border-radius:18px;padding:26px;min-width:0;margin:0}.setting-field{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:0 0 25px;font-size:19px;color:#2d4840;font-weight:600}.setting-field select{width:100%;font-size:20px;color:#17324D;background:#fff;border:1px solid #b9cabe;border-radius:10px;padding:12px 14px;min-height:52px;cursor:pointer}.setting-field:last-child{margin-bottom:0}.setting-check{display:flex;gap:14px;align-items:center;font-size:19px;line-height:1.4;margin:4px 0 30px}.setting-check input{width:24px;height:24px;accent-color:#256F66;flex-shrink:0}.setting-help,.preferences-status{font-size:17px;line-height:1.5;color:#3C5670;margin:0}.preferences-status{grid-column:1/-1}.work-heading-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.work-heading-actions .button{min-height:44px;font-size:17px;white-space:normal}.work-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.work-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px;border:1px solid #C9DEDC;border-radius:12px;min-width:0}.work-file-icon{width:44px;height:44px;background:#edf4ee;color:#256F66;display:flex;align-items:center;justify-content:center;border-radius:10px}.work-file-icon svg{width:25px;height:25px}.work-row-copy{min-width:0}.work-row h2{font-size:21px;line-height:1.35;overflow-wrap:anywhere;margin:0;font-weight:650}.work-row p{font-size:15px;color:#3C5670;line-height:1.5;margin:5px 0 0}.work-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:450px}.work-row-actions .button{min-height:44px;font-size:16px;padding:9px 12px;white-space:normal}.work-row-actions .work-row-delete{color:#8b3d31}.work-row-actions .work-row-delete:hover{border-color:#a8685d;background:#fff5f2}@media(max-width:1000px){.work-row{grid-template-columns:44px minmax(0,1fr)}.work-row-actions{grid-column:2;justify-content:flex-start;max-width:none}}@media(max-width:480px){#work-page>.page-heading{flex-direction:column;gap:16px}.work-heading-actions{justify-content:flex-start}.work-row{gap:10px;padding:14px}.work-row h2{font-size:20px}.work-row-actions{grid-column:1 / -1}.work-row-actions .button{flex:0 1 auto}}.work-empty{grid-column:1/-1;padding:65px 24px;text-align:center;background:#EEF7F5;border-radius:18px}.work-empty h2{font-size:28px;margin:0 0 16px;font-weight:600}.work-empty p{font-size:20px;color:#3C5670;line-height:1.5;margin:0 0 24px}.work-dialog{border:1px solid #C9DEDC;border-radius:18px;padding:30px;max-width:520px;width:calc(100% - 32px);color:#17324D}.work-dialog::backdrop{background:#17324D55}.work-dialog h2{font-size:28px;margin:0 0 20px}.work-dialog p{font-size:18px;line-height:1.5;overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px;flex-wrap:wrap}
.board-illustration{margin:16px 0 24px;max-width:600px}.illustration-drawing{display:flex;gap:20px;align-items:center;flex-wrap:wrap;min-height:70px}.board-illustration figcaption{font-size:18px;line-height:1.4;color:#3C5670;margin:12px 0 0}.teaching-fraction{display:grid;grid-template-columns:repeat(var(--pieces),1fr);height:72px;width:min(100%,380px);gap:5px}.teaching-fraction span{border:2px solid #9abaac;border-radius:7px;background:#fff}.teaching-fraction .filled{background:#BFE2DC;border-color:#6f9f88}.fraction-value{font-size:32px;font-weight:550}.count-group{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:85px}.count-dots{display:grid;grid-template-columns:repeat(3,34px);gap:9px;min-height:34px;align-content:center}.count-dot{height:34px;width:34px;border-radius:50%;background:#e8b25b;border:2px solid #bf8737}.count-group:nth-of-type(2n) .count-dot{background:#8fc6ac;border-color:#599b7b}.count-caption,.count-zero{font-size:32px}.illustration-operator{font-size:40px;color:#3C5670}.illustration-balance .illustration-drawing{display:block}.balance-pans{display:grid;grid-template-columns:1fr 38px 1fr;gap:10px;align-items:end}.balance-pan{min-height:100px;display:flex;justify-content:center;align-items:center;gap:8px;border-bottom:4px solid #517f6a;border-radius:0 0 15px 15px;padding:8px 8px 16px;flex-wrap:wrap}.algebra-tile{font-size:28px;background:#e4efe7;border:2px solid #88af96;padding:8px 14px;border-radius:6px;line-height:1}.balance-number,.balance-equal{font-size:32px;font-weight:500}.balance-equal{align-self:center;text-align:center}.balance-beam{height:5px;background:#517f6a;margin:20px 10% 0;position:relative}.balance-beam:after{content:'';display:block;position:absolute;left:calc(50% - 14px);top:5px;border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:22px solid #b2c9b8}.illustration-balance figcaption{margin-top:35px}.sequence-step{font-size:22px;border:2px solid #a1c0aa;padding:17px 22px;border-radius:12px;background:#f6faf6}.sequence-arrow{font-size:28px;color:#3C5670}body[data-age-group=early] .board-content h2{font-size:39px}body[data-age-group=early] .board-paragraph{font-size:29px}body[data-age-group=early] .board-equation{font-size:52px}body[data-age-group=early] .count-dots{grid-template-columns:repeat(3,42px);gap:11px}body[data-age-group=early] .count-dot{width:42px;height:42px}body[data-age-group=early] .board-illustration figcaption{font-size:21px}
@media(min-width:1100px) and (min-height:800px){.teacher-message p{max-height:120px}.teacher-panel{padding-bottom:12px}.teacher-footer{padding-top:6px}.classroom{padding-top:8px}.character-space,#koa-stage{min-height:0}.page-view{overflow:auto}}
@media(max-width:1099px){.app-shell{padding:0 22px}.topbar{gap:12px}.main-nav{gap:0}.main-nav a{font-size:16px;padding:12px}.brand{font-size:25px}.topbar>.button{font-size:16px;padding:10px 12px}.teacher-status{font-size:16px}.teacher-message p{font-size:18px}.board-content{padding:18px 20px 24px}.board-content h2{font-size:30px}.board-label{font-size:17px}.board-tag{font-size:12px}.board-paragraph,.board-steps li{font-size:22px}.teacher-heading{align-items:flex-start;flex-wrap:wrap}.teacher-footer .voice-toggle,.teacher-footer .text-button,.teacher-footer .motion-tools{font-size:16px}.board-toolbar{padding-left:16px;padding-right:16px}.conversation-meta{row-gap:4px}.teaching-fraction{width:270px;height:60px}.settings-grid{gap:20px}.board-equation{font-size:38px}}
@media(max-width:760px){.topbar{padding:16px 0;height:auto;min-height:112px;gap:12px;flex-wrap:wrap}.brand{font-size:25px}.brand-mark{width:42px;height:42px;line-height:40px}.main-nav{order:3;width:100%;margin:0;justify-content:space-between}.main-nav a{padding:10px 16px;font-size:17px}.topbar>.button{margin-left:auto}.classroom{padding-top:12px}.teacher-heading{align-items:center;flex-wrap:nowrap}.teacher-panel{padding-bottom:18px}.teacher-message p{font-size:20px;max-height:none}.teacher-footer{flex-wrap:wrap}.board-toolbar{flex-wrap:wrap;height:auto;min-height:62px;padding:8px 12px;gap:8px}.board-label{gap:7px;font-size:17px}.board-tag{font-size:12px;letter-spacing:0;margin-left:0}.board-actions{gap:1px;margin-left:auto}.board-actions .icon-button{min-width:36px;width:36px}.board-content{padding:16px 12px 28px}.board-content h2{font-size:32px}.board-equation{font-size:40px}.board-paragraph,.board-steps li{font-size:23px}.conversation-area{padding:16px 0}.homework-drop small{font-size:16px}.input-shell textarea{font-size:18px}.conversation-meta,.mode-control select,.conversation-meta .text-button{font-size:16px}.mode-control select{max-width:230px}.page-view{padding:30px 0 48px}.page-heading{margin-bottom:28px;gap:16px}.page-heading h1{font-size:34px}.page-heading p{font-size:19px}.settings-grid{grid-template-columns:1fr;gap:24px}.settings-grid fieldset{padding:22px}.work-empty{padding:44px 18px}.work-empty h2{font-size:25px}.teaching-fraction{width:min(100%,280px)}.illustration-drawing{gap:16px}.count-dots{grid-template-columns:repeat(3,30px)}.count-dot{height:30px;width:30px}body[data-age-group=early] .count-dots{grid-template-columns:repeat(3,34px)}body[data-age-group=early] .count-dot{height:34px;width:34px}body[data-age-group=early] .board-content h2{font-size:36px}.balance-pans{gap:6px;grid-template-columns:1fr 25px 1fr}.balance-pan{padding:6px 4px 12px}.algebra-tile{padding:8px 11px;font-size:26px}.balance-number,.balance-equal{font-size:28px}}
.preview-dialog{max-width:900px;max-height:90vh}.preview-heading{display:flex;align-items:flex-start;gap:16px;justify-content:space-between}.preview-heading h2{overflow-wrap:anywhere;font-size:25px}.preview-heading .icon-button{flex-shrink:0}.work-image-preview{display:block;max-width:100%;height:auto;max-height:65vh;object-fit:contain;margin:0 auto}.work-text-preview{font:20px/1.6 var(--font);white-space:pre-wrap;overflow-wrap:anywhere;max-height:65vh;overflow:auto;margin:0;padding:10px}
.board-tag{font-size:16px;letter-spacing:0}.conversation-meta #history-count,.attachment small{font-size:16px}
@media(max-width:760px){.board-label{flex-wrap:wrap}.board-tag{font-size:16px}.board-toolbar{align-items:flex-start}.board-actions{align-self:flex-start}}

/* One finite teaching sequence. All lesson content stays visible throughout. */
.lesson-actions{display:flex;flex-wrap:wrap;gap:10px;padding:10px 20px;border-top:1px solid #edf0e8}.explain-button,.replay-board{min-height:44px;border-radius:10px;padding:9px 16px;font-size:16px;font-weight:650}.explain-button{border:1px solid #256F66;background:#eaf4ee;color:#175b51}.explain-button:hover:not(:disabled){background:#d8ecdf}.replay-board{border:1px solid #cddbd0;background:white;color:#426c5b}.replay-board:hover:not(:disabled){background:#f1f8f2}
body[data-lesson-motion=full] .playing-lesson :is(.count-dot,.count-zero,.count-caption,.illustration-operator,.teaching-fraction .filled,.fraction-value,.algebra-tile,.balance-number,.balance-equal,.balance-beam,.sequence-step,.sequence-arrow,.board-steps li,.explore-piece,.explore-bin-label){animation:lesson-emphasis .7s ease-out;animation-delay:calc(var(--cue-start,0ms) + var(--move-index,0) * 320ms)}
body[data-lesson-motion=full] .playing-lesson .count-dot{animation-name:count-emphasis}
body[data-lesson-motion=full] .playing-lesson .teaching-fraction .filled{animation-name:piece-emphasis}
body[data-lesson-motion=full] .playing-lesson .balance-beam{animation-name:balance-emphasis}
@keyframes lesson-emphasis{0%,100%{filter:none}45%{filter:drop-shadow(0 0 4px #7cab8c);transform:scale(1.08)}}
@keyframes count-emphasis{0%,100%{transform:scale(1);box-shadow:none}45%{transform:scale(1.18);box-shadow:0 0 0 5px #e8b25b55}}
@keyframes piece-emphasis{0%,100%{transform:translateY(0);filter:none}45%{transform:translateY(-8px);filter:brightness(.86)}}
@keyframes balance-emphasis{0%,100%{transform:scaleX(1)}45%{transform:scaleX(1.06);box-shadow:0 0 0 4px #a6c9b677}}
@media(prefers-reduced-motion:reduce){.playing-lesson *{animation:none!important}}
@media(max-width:760px){.lesson-actions{padding:10px 0}.explain-button,.replay-board{font-size:16px}}

/* Equal side tracks keep the teacher status at the page center, independent
   of the different widths of the brand and navigation controls. */
:root{--lesson-header-height:88px}
.app-shell>.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;height:var(--lesson-header-height);min-height:var(--lesson-header-height);padding:12px 0}
.topbar>.brand{grid-column:1;grid-row:1;min-width:0}
.topbar>.teacher-status-group{grid-column:2;grid-row:1;justify-self:center;display:flex;align-items:center;gap:6px;min-width:0;max-width:100%}
.teacher-status-group>#teacher-status{min-width:0;margin:0;font-size:14px;line-height:1.3;white-space:normal}
.teacher-status-group>#teacher-status i{flex-shrink:0}
.conversation-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:7px 10px;border:1px solid #7FA9A3;border-radius:9px;background:#fff;color:var(--teal);font-size:14px;font-weight:600;white-space:nowrap;flex-shrink:0}
.conversation-toggle svg{width:20px;height:20px}
.conversation-toggle[aria-pressed=true]{background:#256F66;border-color:#256F66;color:#fff}

.teacher-status-group>#teacher-status{max-width:190px}
@media(max-width:600px){.teacher-status-group>#teacher-status{font-size:12px;flex:1 1 auto}.conversation-toggle{font-size:13px;padding:7px}}
.topbar>.header-actions{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.topbar .main-nav{justify-content:flex-end;min-width:0;margin:0}
.topbar .main-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px}
.topbar #new-lesson{flex:0 0 auto;margin:0;padding:10px 12px;font-size:16px;white-space:nowrap}
@media(max-width:1399px){
 :root{--lesson-header-height:128px}
 .topbar>.header-actions{display:contents}
 .topbar .main-nav{grid-column:1 / -1;grid-row:2;justify-content:center}
 .topbar #new-lesson{grid-column:3;grid-row:1;justify-self:end}
}
@media(max-width:600px){
 :root{--lesson-header-height:176px}
 .app-shell>.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
 .topbar>.teacher-status-group{grid-column:1 / -1;grid-row:1;justify-self:center}
 .teacher-status-group>#teacher-status{padding:5px 9px}
 .topbar>.brand{grid-column:1;grid-row:2}
 .topbar #new-lesson{grid-column:2;grid-row:2}
 .topbar .main-nav{grid-column:1 / -1;grid-row:3;justify-content:space-between;width:100%}
}

/* Koa and the conversation share the left column. The rig fits the space left
   above the composer; tall lesson content scrolls within the right whiteboard. */
body[data-page=lesson] .app-shell{height:auto;min-height:100dvh}
.classroom{position:relative;grid-template-columns:minmax(0,2fr) minmax(0,3fr);grid-template-rows:auto minmax(0,1fr);gap:8px 24px;align-items:stretch;min-height:0;height:calc(100dvh - var(--lesson-header-height));flex:0 0 auto;padding:12px 0;overflow:visible}
.teacher-column{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0;height:100%}
.teacher-column .teacher-panel{flex:0 1 auto;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:var(--teacher-aspect,1264 / 1440);overflow:visible;padding:0}
.teacher-column .character-space{flex:1 1 0;width:100%;height:auto;min-height:0;max-height:none;padding:0;overflow:visible}
/* Match KOA_FRAMING: keep the complete character and gesture room while dropping
   unused floor padding. The canvas fits normally, without a CSS scale or overlap. */
.teacher-column #koa-stage{width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:var(--teacher-aspect,1264 / 1440)}
.teacher-column .teacher-footer{padding:0;gap:8px 14px;flex-wrap:wrap;justify-content:flex-start;flex-shrink:0}
.teacher-column .teacher-footer :is(.voice-toggle,.text-button,.motion-tools){font-size:14px}
.teacher-column .conversation-area{display:flex;flex:0 0 auto;flex-direction:column;gap:8px;position:relative;margin:0;padding:10px;min-width:0;border:1px solid #C9DEDC;border-radius:16px;background:#fff}
/* Keep reply updates accessible without consuming visible lesson space. */
.teacher-column .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.classroom>.lesson-actions{grid-column:1 / -1;grid-row:1;display:flex;flex-direction:column;gap:6px;border:0;padding:0 0 6px;min-width:0;flex-shrink:0}
.practice-actions,.native-practice-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.practice-actions>.replay-board,.native-practice-buttons>.replay-board{font-size:14px;min-height:40px;padding:7px 10px}
.composer-box{position:relative;border:1px dashed #7FA9A3;border-radius:12px;padding:6px;min-width:0;background:#fff}
.composer-box:focus-within{border-color:#256F66;box-shadow:0 0 0 2px #E3F3F0}
.composer-box .question-form{margin:0;min-width:0}
.composer-box .input-shell{height:auto;min-height:52px;gap:2px;border:0;border-radius:0;box-shadow:none;padding:0;background:#fff}
.composer-box textarea{min-width:0;font-size:18px;min-height:46px;padding:8px 4px}
.composer-box :is(.mic-button,.send-button){flex-shrink:0;width:48px;height:48px;min-width:48px;min-height:48px}
.composer-box :is(.mic-button,.send-button) svg{width:26px;height:26px}
.composer-box .homework-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:4px 0 0;min-width:0}
.composer-box .homework-drop{width:auto;height:auto;min-height:36px;padding:5px 7px;gap:6px;border:0;border-radius:6px;background:#fff;color:var(--teal);font-size:14px}
.composer-box .homework-drop:hover:not(:disabled){background:#edf4ee}
.composer-box .homework-drop svg{width:18px;height:18px;flex-shrink:0}
.composer-box .drop-overlay{border-radius:12px;gap:6px;background:#f3f7edf5}
.composer-box .drop-overlay svg{width:28px;height:28px}
.composer-box .drop-overlay strong{font-size:18px}
.composer-box .drop-overlay>span:last-child{font-size:14px}
.teacher-column .notice{margin:0;max-height:96px;overflow:auto;font-size:16px;overflow-wrap:anywhere}
.teacher-column .attachments{margin:0;max-height:100px;overflow:auto}
.teacher-column .attachment{min-width:0;max-width:100%;width:100%}
.teacher-column .attachment-text{min-width:0;flex:1}
.teacher-column .attachment-text strong{max-width:100%;overflow-wrap:anywhere;white-space:normal}
.workspace-panel{grid-column:2;grid-row:2;align-self:stretch;margin:0;min-height:0;height:100%;max-height:none;position:relative;top:auto}
.workspace-panel .whiteboard{min-height:0;max-height:none;flex:1 1 0;overflow:auto}
.workspace-panel :is(.board-toolbar,.homework-view-switch){flex-shrink:0}
.lesson-actions .board-toolbar{height:auto;min-height:42px;align-items:stretch;gap:0;padding:0}
.workspace-actions{flex:0 0 auto;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;min-height:44px;margin:0 0 14px}
.workspace-actions .reset-practice-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:40px;padding:6px 9px;border:1px solid #C9DEDC;border-radius:8px;background:#fff;color:var(--teal);font-size:15px}
.workspace-actions .reset-practice-button svg{width:19px;height:19px;flex-shrink:0}
.lesson-actions .practice-actions{padding:0;gap:6px}
.lesson-actions .native-practice-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}
.lesson-actions .native-practice-status{font-size:14px;margin:0}
/* Teaching begins near the top; tall content and its answer remain in normal
   scrollable flow. The original-homework view keeps its own page layout. */
.workspace-panel #board-content{flex:0 0 auto;width:100%;max-width:none;margin:0;padding-top:4px;padding-bottom:8px;text-align:center}
.workspace-panel #board-content h2{margin:4px 0 8px}
.workspace-panel #board-content>:last-child{margin-bottom:0}
.workspace-panel .lesson-answer-form{flex:0 0 auto;width:min(100%,760px);margin:12px auto 20px;padding:0;text-align:left}
.lesson-answer-form>label{display:block;font-size:22px;font-weight:600;line-height:1.4;margin-bottom:6px}
.answer-entry{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;padding:5px;border:1px solid #7FA9A3;border-radius:12px;background:#fff}
.answer-entry:focus-within{border-color:#256F66;box-shadow:0 0 0 2px #E3F3F0}
.answer-entry input{flex:1 1 160px;width:0;min-width:0;min-height:48px;padding:8px;border:0;border-radius:7px;background:#fff;font-size:24px;line-height:1.3}
.answer-entry button{min-height:48px;font-size:18px;max-width:100%}
.answer-entry #answer-mic-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;min-width:48px;min-height:48px;color:var(--teal)}
.answer-entry #answer-mic-button[aria-pressed=true]{color:#bc6550}
.answer-entry #answer-mic-button svg{width:26px;height:26px}
/* The native answer replaces the equation blank; text questions keep the
   labeled answer form above as their ordinary fallback. */
.board-answer-equation{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.2em}
.board-answer-equation>span{min-width:0;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
.workspace-panel .lesson-answer-form.inline-answer-form{display:inline-flex;flex:0 1 auto;width:auto;max-width:100%;min-width:0;margin:0;padding:0;font:inherit;line-height:inherit;text-align:center;vertical-align:middle}
.inline-answer-form>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.inline-answer-form .answer-entry{flex-wrap:nowrap;max-width:100%;gap:4px;padding:4px}
.inline-answer-form .answer-entry input{flex:1 1 170px;width:170px;min-width:0;max-width:210px;padding:4px 6px;font:inherit;line-height:1.2;text-align:center}
.inline-answer-form .answer-entry input::placeholder{font-family:var(--font);font-size:16px;font-weight:400;letter-spacing:0;color:#3C5670;opacity:1}
.workspace-panel .answer-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;min-width:0;padding:8px 12px 20px;background:#fff}
.answer-actions #check-answer{min-height:48px;max-width:100%;padding:10px 24px;font-size:18px;line-height:1.3;white-space:normal}
.workspace-panel .lesson-hint{display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;min-height:48px;margin:0;padding:8px 14px;border:1px solid #7FA9A3;border-radius:9px;background:#fff;color:#256F66;font-size:18px;line-height:1.3;font-weight:600;white-space:normal}
.workspace-panel .lesson-hint:hover:not(:disabled){background:#E3F3F0;border-color:#256F66}
.workspace-panel .lesson-hint:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.workspace-panel .lesson-answer-section{flex:0 0 auto;width:calc(100% - 32px);max-width:760px;min-width:0;margin:6px auto 20px;padding:16px 20px;border:1px solid #abcbbd;border-radius:14px;background:#E3F3F0}
.lesson-answer-section>.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.answer-problem{min-width:0;text-align:center}
.answer-problem>.board-equation{margin:0}
.answer-prompt{margin:0 0 12px;font-size:24px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.lesson-answer-section .lesson-answer-form{width:100%;margin:0}
.lesson-answer-section .lesson-answer-form>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.lesson-answer-section .answer-actions{padding:12px 0 0;background:transparent}
@media(max-width:760px){.workspace-panel .lesson-answer-section{width:calc(100% - 24px);padding:14px 12px}}

.workspace-panel #board-content .board-illustration{max-width:none;margin-left:auto;margin-right:auto}
.workspace-panel #board-content .illustration-drawing{justify-content:center}
.workspace-panel #board-content :is(.board-paragraph,.board-steps){max-width:42rem;margin-left:auto;margin-right:auto}
.workspace-panel #board-content .board-steps{text-align:left}
.drop-overlay{position:absolute;inset:0;z-index:20}
.board-expanded .classroom{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;height:calc(100dvh - var(--lesson-header-height))}
.board-expanded .workspace-panel{grid-column:1;grid-row:2;position:relative;top:auto;width:100%}
.board-expanded .teacher-column{grid-column:1;grid-row:3;width:min(100%,800px);height:auto;margin:0 auto}
@media(max-width:1099px) and (min-width:761px){
 .classroom{column-gap:18px}
}
@media(max-width:760px){
 /* The first two rows fit one viewport. Homework follows below them without
    stealing height from Koa or the composer in that first view. */
 .classroom{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 75dvh;gap:8px;padding:12px 0;min-height:0;height:calc(175dvh - var(--lesson-header-height) + 8px)}
 .teacher-column{grid-column:1;grid-row:2;width:100%;height:100%;gap:10px}
 .teacher-column .character-space{flex:1 1 0;height:auto;min-height:0;max-height:none}
 .teacher-column #koa-stage{height:100%;width:100%;max-width:100%;max-height:none}
 .teacher-column .conversation-area{padding:10px}
 .workspace-panel{grid-column:1;grid-row:3;position:relative;top:auto;width:100%;height:100%;min-height:0}
 .workspace-panel .whiteboard{flex:1 1 0;min-height:0;max-height:none}
 .board-expanded .classroom{grid-template-rows:auto minmax(0,1fr) auto;height:calc(100dvh - var(--lesson-header-height))}
 .board-expanded .workspace-panel{grid-row:2}
 .board-expanded .teacher-column{grid-row:3;height:auto}
}

/* The renderer fits the whole gesture canvas inside its measured stage.
   Scaling the CSS canvas afterward clips the ears in short Chrome windows. */
#koa-stage .koa-character-canvas,#koa-stage .koa-master-fallback,#koa-stage .koa-fallback{transform:none}

/* Large lesson copy and one calm visual reading order. */
.board-content h2{font-size:38px;line-height:1.2}.board-paragraph,.board-steps li{font-size:26px;line-height:1.5}.board-equation{font-size:48px;line-height:1.3}.board-illustration figcaption{font-size:24px;line-height:1.45}.try-sample{font-size:19px}.teaching-fraction{height:84px;width:min(100%,420px)}.fraction-value,.count-caption,.count-zero,.balance-number,.balance-equal{font-size:36px}.count-dots{grid-template-columns:repeat(3,40px);gap:10px}.count-dot{width:40px;height:40px}.sequence-step{font-size:25px}.algebra-tile{font-size:32px}.illustration-drawing{min-height:84px}
body[data-lesson-motion=full] .playing-lesson :is(header h2,.board-paragraph,.board-equation,figcaption){animation:reading-emphasis .8s ease-out;animation-delay:calc(var(--cue-start,0ms) + var(--move-index,0) * 320ms)}
@keyframes reading-emphasis{0%,100%{text-shadow:none}45%{text-shadow:0 0 1px #2f8a69,0 0 10px #c6e4ce}}
body[data-age-group=early] .board-content h2{font-size:41px}body[data-age-group=early] .board-paragraph,body[data-age-group=early] .board-steps li{font-size:29px}body[data-age-group=early] .board-illustration figcaption{font-size:25px}
@media(max-width:760px){.board-content h2{font-size:35px}.board-paragraph,.board-steps li{font-size:25px}.board-equation{font-size:44px}.board-illustration figcaption{font-size:23px}.teaching-fraction{width:calc(100% - 85px);min-width:180px;height:70px}.illustration-drawing{gap:14px}.fraction-value{font-size:32px}.count-dots{grid-template-columns:repeat(3,34px);gap:9px}.count-dot{width:34px;height:34px}body[data-age-group=early] .board-content h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){.playing-lesson *{animation:none!important}}

body[data-lesson-motion=full] .playing-lesson .teaching-fraction .unfilled{animation:empty-piece-emphasis .7s ease-out;animation-delay:calc(var(--cue-start,0ms) + var(--move-index,0) * 320ms)}
@keyframes empty-piece-emphasis{0%,100%{box-shadow:none}45%{box-shadow:0 0 0 5px #b7d6c088}}
@media(prefers-reduced-motion:reduce){.playing-lesson *{animation:none!important}}

body[data-lesson-motion=full] .teacher-message.playing-lesson p{animation:reading-emphasis .8s ease-out .4s}
@media(prefers-reduced-motion:reduce){.teacher-message.playing-lesson p{animation:none!important}}

@media(min-width:761px){.whiteboard{scrollbar-width:thin;scrollbar-color:#a3b9a9 #E3F3F0}.whiteboard::-webkit-scrollbar{width:8px}.whiteboard::-webkit-scrollbar-track{background:#E3F3F0;border-radius:8px}.whiteboard::-webkit-scrollbar-thumb{background:#a3b9a9;border-radius:8px}}

.hint-button{min-height:44px;border:1px solid #256F66;border-radius:10px;padding:9px 16px;font-size:16px;font-weight:650;background:#256F66;color:#fff}.hint-button:hover:not(:disabled){background:#18584f}

.attachments{flex-wrap:wrap;overflow:visible;max-height:180px;overflow-y:auto}.attachment{align-items:flex-start;max-width:min(100%,500px);min-width:min(100%,300px)}.attachment-text{overflow:visible}.attachment-text strong{max-width:260px}.attachment .read-status,.attachment .read-warning{font-size:14px;line-height:1.35;white-space:normal;margin-top:4px}.attachment .read-warning{color:#775d3b}.page-choice,.image-choice{display:flex;align-items:center;gap:6px;font-size:14px;line-height:1.35;margin-top:6px}.page-choice select{min-height:32px;max-width:130px}.image-choice input{width:18px;height:18px;flex-shrink:0}

.homework-view-switch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 14px}.homework-view-switch button{font:inherit;min-height:40px;padding:6px 10px;border:1px solid #7FA9A3;border-radius:8px;background:white;color:#1C5A53}.homework-view-switch button[aria-pressed=true]{background:#E3F3F0;border-color:#256F66}.homework-view{padding:12px 18px 28px}.homework-view p{font-size:15px;line-height:1.4}.homework-surface{position:relative;width:min(100%,800px);margin:auto;background:white;box-shadow:0 1px 7px #0002}.homework-surface canvas,.homework-surface svg{position:absolute;inset:0;width:100%;height:100%}.homework-surface svg{touch-action:none;cursor:crosshair}.homework-surface svg:focus-visible{outline:3px solid #256F66}

.homework-focus{width:min(100%,800px);margin:auto;padding:16px;border:1px solid #cadbd0;border-radius:12px;background:#fff;animation:focus-lift 240ms ease-out}.homework-focus h2{margin:0;font-size:22px}.homework-focus canvas{display:block;width:100%;height:auto;margin:12px auto}.homework-focus button{font:inherit;min-height:42px;padding:7px 12px;border:1px solid #7FA9A3;border-radius:8px;background:white;color:#1C5A53}@keyframes focus-lift{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}body[data-lesson-motion=reduced] .homework-focus{animation:none}@media(prefers-reduced-motion:reduce){.homework-focus{animation:none}}

.focus-actions{display:flex;flex-wrap:wrap;gap:8px}.homework-focus + .homework-surface{margin-top:16px}

/* Make room for a legible page while keeping the teacher and chat in the lesson. */
.showing-homework .homework-view{padding:6px 12px 24px}
.homework-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;min-width:0;margin:0 0 10px}
.homework-source{display:flex;align-items:center;flex:1 1 180px;gap:8px;min-width:0;font-size:16px}
.homework-source select{flex:1;min-width:0;width:100%;max-width:100%;min-height:44px;padding:8px;border:1px solid #7FA9A3;border-radius:8px;font-size:17px;background:#fff;color:#1C5A53}
.homework-drawing-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.homework-tools{display:flex;flex-wrap:wrap;gap:3px;max-width:100%;padding:3px;border:1px solid #C9DEDC;border-radius:10px}
.homework-tools button,#clear-marks{min-height:44px;max-width:100%;padding:8px 11px;border:1px solid transparent;border-radius:7px;background:#fff;color:#1C5A53;font-size:16px;line-height:1.25;white-space:normal}
.homework-tools button[aria-pressed=true]{border-color:#256F66;background:#e2f0e8;color:#154d42;font-weight:700;box-shadow:inset 0 -2px 0 #256F66}
.homework-tools button:hover:not(:disabled),#clear-marks:hover:not(:disabled){background:#E3F3F0}
.homework-tools button:focus-visible,#clear-marks:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
#clear-marks{border-color:#C9DEDC}
.homework-keyboard-help{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.showing-homework #homework-status{margin:5px 0 8px}


.homework-focus canvas{max-height:min(42vh,380px);object-fit:contain}

.native-practice-controls{flex-basis:100%;min-width:0}.native-practice-status{font-size:16px;line-height:1.4;margin:0 0 8px;color:#3C5670}.native-practice-buttons{display:flex;flex-wrap:wrap;gap:8px}

/* The document tab has its own explicit intake; dropping still uses the shared
   validated upload path in the application. */
#homework-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;width:min(100%,400px);aspect-ratio:1;min-width:0;padding:clamp(16px,4vw,28px);margin:20px auto;border:2px dashed #7FA9A3;border-radius:16px;background:#fff;text-align:center}
#homework-drop-zone p{margin:0;max-width:100%;font-size:22px;line-height:1.4}
#homework-drop-zone small{max-width:100%;font-size:15px;line-height:1.4;color:#3C5670}
#homework-upload-button{min-height:48px;max-width:100%;padding:11px 20px;font-size:18px;white-space:normal}
.homework-view[data-has-homework=false]{display:flex;flex:1 0 auto;flex-direction:column;justify-content:center}
.homework-view[data-has-homework=false] .homework-controls{display:none}
#homework-status:empty{display:none}
.homework-view[data-has-homework=true] #homework-drop-zone{width:100%;aspect-ratio:auto;flex-direction:row;justify-content:space-between;flex-wrap:wrap;gap:8px 14px;padding:14px;margin:0 0 14px;border-radius:12px;text-align:left}
.homework-view[data-has-homework=true] #homework-drop-zone p{flex:1 1 180px;font-size:20px}
.homework-view[data-has-homework=true] #homework-drop-zone small{flex-basis:100%}
#homework-drop-zone.drag-active,#homework-drop-zone:focus-within{border-color:#256F66;background:#edf6ef;box-shadow:0 0 0 2px #d4e8d9}
.mode-setting{display:flex;align-items:center;gap:8px;min-width:0}.mode-setting select{min-width:0;max-width:100%}
.settings-secondary-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.settings-secondary-controls :is(.text-button,.motion-tools){font-size:17px;min-height:42px}


/* Identity is separate from local lesson preferences and local My Work. */
.account-settings{margin:28px 0 0;padding:24px;border:1px solid #C9DEDC;border-radius:14px;max-width:760px;min-width:0;background:#fff}

.account-settings .setting-help{font-size:17px;line-height:1.5;margin:8px 0}
.account-status,.account-identity{font-size:18px;line-height:1.5;overflow-wrap:anywhere}
.account-status:empty{display:none}
.account-form{display:flex;flex-direction:column;gap:16px;min-width:0;margin-top:18px}
.account-form .setting-field{min-width:0}
.account-form input{width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #7FA9A3;border-radius:9px;font-size:20px;background:#fff}
.account-actions{display:flex;flex-wrap:wrap;gap:10px}
.account-settings .button{min-height:48px;font-size:18px;white-space:normal;max-width:100%}
@media(max-width:480px){.account-settings{padding:18px}.account-actions .button{flex:1 1 130px}}

.lesson-category{margin:0 0 4px;font-size:14px;line-height:1.3;color:#3C5670;overflow-wrap:anywhere}
.presentation-settings{margin-top:16px}.presentation-settings summary{min-height:44px;padding:10px 0;font-size:17px;cursor:pointer}.presentation-settings .setting-field{margin-top:10px}

/* Original work stays beside the explanation; collapse it without losing the lesson. */
.lesson-workspace{min-width:0;width:100%}.teaching-pane{min-width:0}
.lesson-workspace.has-reference{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,44%);gap:16px;align-items:start}
/* An open original gets more room; lesson copy stays readable beside it. */
.workspace-panel .has-reference #board-content{padding-left:12px;padding-right:12px}
.workspace-panel .has-reference #board-content h2{font-size:30px}
.workspace-panel .has-reference #board-content :is(.board-paragraph,.board-steps li){font-size:22px;line-height:1.4}
.workspace-panel .has-reference #board-content .board-equation{font-size:36px}
.workspace-panel .has-reference #board-content figcaption{font-size:20px;line-height:1.4}
.lesson-reference{min-width:0;padding:6px;border:1px solid #d6e2d9;border-radius:10px;background:#f8faf8}
.lesson-reference img{display:block;width:100%;height:auto;max-height:66vh;object-fit:contain;background:#fff}
.lesson-reference p{font-size:13px;line-height:1.35;overflow-wrap:anywhere;margin:8px 0}
.workspace-view-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:138px;padding:9px 14px;border:1px solid #7FA9A3;border-radius:9px;background:#fff;color:#256F66;font-size:14px;font-weight:600;line-height:1.2}
.workspace-view-button:hover{background:#f0f6f2}
.homework-preview-toggle[aria-expanded=true]{background:#E3F3F0;border-color:#256F66}
.showing-homework #lesson-workspace,.showing-homework #homework-preview-toggle{display:none}
.homework-view .attachments{flex-wrap:wrap;overflow:visible;margin:0 0 12px}.homework-view .attachment{flex:1 1 230px;max-width:100%}
.workspace-panel{container-type:inline-size}
@container(max-width:620px){.lesson-workspace.has-reference{grid-template-columns:1fr}.lesson-reference{grid-row:1}.lesson-reference img{max-height:40vh}.lesson-reference p{margin:4px 0}.teaching-pane{grid-row:2}.workspace-view-button{min-width:0;flex:0 1 auto}}

.lesson-progress{padding:14px 18px;margin:8px 0 12px;border-radius:12px;background:#E3F3F0;color:#256F66;font-size:clamp(19px,2vw,24px);line-height:1.4}

/* The starting lesson owns the same learning choices as Settings. */
.learning-start{padding:20px clamp(12px,3vw,32px) 16px;min-width:0}
.learning-start h2{font:650 clamp(26px,2.3vw,34px)/1.2 var(--heading);letter-spacing:-.6px;margin:0 0 10px}
.learning-start>p{font-size:20px;line-height:1.4;margin:0 0 22px;color:#3C5670}
.learning-start-fields{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(150px,1fr);gap:16px}
.learning-start .setting-field{min-width:0;margin:0;gap:9px;font-size:18px}
.learning-start select{min-width:0;max-width:100%;font-size:18px;min-height:54px;padding:12px 10px}
.teaching-pane.choosing-learning #board-content{display:none}
@container(max-width:520px){.learning-start-fields{grid-template-columns:minmax(0,1fr)}.learning-start{padding-top:16px}.learning-start>p{font-size:18px}.learning-start-fields{gap:14px}}

/* The library keeps its own visible upload surface and shares the lesson dispatcher. */
.work-intake{width:100%;min-height:108px;margin:0 0 22px;padding:18px 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;text-align:left;border:2px dashed #a7c3b4;border-radius:16px;background:#EEF7F5}.work-intake-copy{min-width:0}.work-intake p{margin:0 0 6px;font-size:clamp(20px,2.2vw,25px);font-weight:600;line-height:1.3}.work-intake small{font-size:15px;line-height:1.5;color:#3C5670}.work-intake .button{font-size:18px;min-height:48px;padding:12px 20px}.work-intake.drag-active{border-color:#256F66;background:#e8f4ec;outline:3px solid #BFE2DC;outline-offset:3px}.work-intake[aria-busy="true"]{opacity:.65}
.work-row-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:340px;max-width:100%}.work-row-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}.work-row-action-grid .button{width:100%;min-width:0;min-height:44px}.work-row-delete{min-height:44px;background:#fff0ed;border-color:#e3b7af;color:#8b3d31}.work-row-delete:hover{background:#ffe3dd;border-color:#b96c60}
@media(max-width:1000px){.work-row-actions{width:100%;max-width:420px}}@media(max-width:480px){.work-intake{padding:16px;gap:12px;min-height:0}.work-intake .button{font-size:16px;min-height:44px;padding:10px 12px}.work-intake small{font-size:13px}.work-row-actions{gap:8px}.work-row-actions .button{font-size:15px;padding:9px 10px}}

/* One clear intake replaces the duplicate neutral lesson copy. */
.learning-intake{width:100%;min-height:108px;margin:20px 0 0;padding:18px 22px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 18px;text-align:left;border:2px dashed #a7c3b4;border-radius:16px;background:#EEF7F5}
.learning-intake p{grid-column:1;margin:0;font-size:clamp(20px,2.1vw,25px);font-weight:600;line-height:1.3}
.learning-intake small{grid-column:1;min-width:0;font-size:15px;line-height:1.5;color:#3C5670}
.learning-intake .button{grid-column:2;grid-row:1 / span 2;font-size:18px;min-height:48px;padding:12px 18px}
.learning-intake.drag-active{border-color:#256F66;background:#e8f4ec;outline:3px solid #BFE2DC;outline-offset:3px}
.learning-intake[aria-busy="true"]{opacity:.65}
/* Reserve arrow space so native platform arrows cannot collide with labels. */
.setting-field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23203b3b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;padding-right:42px}
@media(forced-colors:active){.setting-field select{appearance:auto;-webkit-appearance:auto;background-image:none}}
@container(max-width:520px){.learning-intake{min-height:0;padding:16px;gap:6px 12px}.learning-intake small{font-size:13px}.learning-intake .button{font-size:16px;padding:10px 12px;min-height:44px}}

.learning-go{display:flex;width:min(100%,300px);min-height:64px;margin:22px auto 0;font-size:28px;font-weight:750;letter-spacing:.04em;background:#70c65a;color:#17321b;border:2px solid #64b94e;border-radius:14px}
.learning-go:hover{background:#82d36d;border-color:#64b94e}.learning-go:disabled{opacity:.48}

.lesson-source-context{font-size:clamp(.85rem,1.3vw,1rem);line-height:1.5;color:var(--muted,#5c665f);padding:.55rem .75rem;margin:.65rem 0 0;border-left:3px solid #7FA9A3;background:#f4f8f3;overflow-wrap:anywhere;}

/* A supported subtraction picture keeps the original blocks countable. The
   dashed tray and diagonal slashes also distinguish removal without color. */
.illustration-take_away .illustration-drawing{display:block;width:100%}
.take-away-quantities{display:flex;gap:8px 24px;flex-wrap:wrap;margin-bottom:14px;font-size:20px;line-height:1.35}
.take-away-trays{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px;align-items:stretch}
.take-away-tray{min-width:0;padding:12px;border:2px solid #3C5670;border-radius:12px;background:#fff}
.take-away-aside{border-style:dashed}
.take-away-tray-label{position:relative;z-index:2;display:block;width:fit-content;max-width:100%;padding:0 3px;margin:0 0 14px;font-size:20px;line-height:1.35;background:#fff;color:#17324D;overflow-wrap:anywhere}
.take-away-grid{display:grid;grid-template-columns:repeat(5,minmax(0,40px));align-content:start;gap:8px;min-height:88px}
.take-away-block,.take-away-origin{position:relative;display:block;width:100%;aspect-ratio:1;min-width:0}
.take-away-origin{visibility:hidden}
.take-away-block-shape{position:absolute;inset:3px;display:block;border:2px solid #4c8f86;border-radius:5px;background:#91c9bd;box-shadow:inset 2px 2px 0 #d0e9e1}
.take-away-removed .take-away-block-shape{border-style:dashed;background:#f5f8f5;box-shadow:none}
.take-away-removed .take-away-block-shape:after{content:'';position:absolute;width:120%;height:3px;left:-10%;top:calc(50% - 1px);transform:rotate(-45deg);background:#17324D;border:1px solid #17324D}
.visual-exploring .take-away-removed{z-index:1}
body[data-age-group=early] .take-away-quantities,body[data-age-group=early] .take-away-tray-label{font-size:22px}
@media(forced-colors:active){.take-away-tray{border-color:CanvasText;background:Canvas}.take-away-tray-label{color:CanvasText;background:Canvas}.take-away-block-shape{border-color:CanvasText;background:Canvas;box-shadow:none}.take-away-removed .take-away-block-shape:after{background:CanvasText;border-color:CanvasText}}

/* Each multiplication factor has its own visible role. Choosing a row marks
   that same group; dots never move, merge, disappear, or reveal a running sum. */
.illustration-equal_groups .illustration-drawing{display:block;width:100%}
.equal-groups-quantities{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:20px;line-height:1.35;margin-bottom:14px}
.equal-groups{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:min(100%,420px)}
.equal-group{appearance:none;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px;width:100%;min-width:0;padding:8px 12px;border:2px solid #7FA9A3;border-radius:12px;background:#fff;color:#17324D;font:inherit;font-size:20px;line-height:1.35;text-align:left;cursor:pointer}
.equal-group-label{display:block;flex:0 0 4em;font-weight:600;overflow-wrap:anywhere;max-width:100%}
.equal-group-dots{display:grid;flex:0 0 auto;grid-template-columns:repeat(var(--equal-group-size),minmax(0,36px));gap:10px;width:min(100%,calc(var(--equal-group-size) * 46px - 10px));max-width:220px}
.equal-group-dot{display:block;width:100%;aspect-ratio:1;border:2px solid #3C5670;border-radius:50%;background:#BFE2DC}
.equal-group:hover{background:#EEF7F5}
.equal-group[aria-pressed=true]{outline:3px solid #256F66;outline-offset:2px;border-color:#256F66;background:#edf5ee}
.equal-group:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
body[data-age-group=early] .equal-groups-quantities,body[data-age-group=early] .equal-group{font-size:22px}
@media(forced-colors:active){.equal-group{color:ButtonText;background:ButtonFace;border-color:ButtonText}.equal-group[aria-pressed=true],.equal-group:focus-visible{outline-color:Highlight}.equal-group-dot{border-color:CanvasText;background:Canvas}}

/* Manual sharing uses the same finite dots in supply and groups. A learner can
   make unequal choices; this picture offers no solved state or answer check. */
.illustration-equal_sharing .illustration-drawing{display:block;width:100%}
.sharing-supply{padding:10px 12px;margin-bottom:12px;border:2px dashed #7FA9A3;border-radius:12px;background:#fafcf9}
.sharing-supply-heading{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:10px;font-size:18px;line-height:1.35}
.sharing-supply-dots,.sharing-group-dots{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;min-width:0;min-height:24px}
.sharing-dot{display:block;flex:none;width:24px;height:24px;border:2px solid #3C5670;border-radius:50%;background:#BFE2DC}
.sharing-groups{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.sharing-group{display:grid;grid-template-columns:5em minmax(24px,1fr) auto;align-items:center;gap:8px 10px;min-width:0;padding:6px 8px;border:2px solid #7FA9A3;border-radius:10px;background:#fff;font-size:16px;line-height:1.35}
.sharing-group-heading{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}.sharing-group-label{font-size:18px}.sharing-group-count{font-size:16px}
.sharing-reset{appearance:none;max-width:100%;min-height:44px;padding:8px 10px;border:2px solid #7FA9A3;border-radius:9px;background:#EEF7F5;color:#17324D;font:inherit;font-size:16px;line-height:1.3;font-weight:600;cursor:pointer}
.sharing-controls{display:flex;flex-wrap:wrap;gap:8px}
.sharing-reset:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.sharing-reset:hover{background:#e8f1e9}
.sharing-reset[aria-disabled=true]{opacity:.6;cursor:default}

@media(forced-colors:active){.sharing-supply,.sharing-group{border-color:CanvasText;background:Canvas}.sharing-dot{border-color:CanvasText;background:Canvas}.sharing-reset{color:ButtonText;border-color:ButtonText;background:ButtonFace}.sharing-reset:focus-visible{outline-color:Highlight}}

/* Base-ten rods and loose ones share one fixed cell size in both arrangements. */
.illustration-base_ten .illustration-drawing{display:block;width:100%}
.base-ten-trays{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:100%}
.base-ten-tray{min-width:0;padding:12px;border:2px solid #3C5670;border-radius:12px;background:#fff}
.base-ten-ones{border-style:dashed}
.base-ten-quantity{display:block;margin-bottom:12px;font-size:22px;line-height:1.35}
.base-ten-rods{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
.base-ten-rod{appearance:none;display:flex;flex:none;flex-direction:column;align-items:center;gap:8px;width:76px;max-width:100%;padding:8px 4px;border:2px solid #3C5670;border-radius:9px;background:#fff;color:#17324D;font:inherit;font-size:16px;line-height:1.3;cursor:pointer}
.base-ten-rod-name,.base-ten-rod-action{display:block;font-weight:600}
.base-ten-rod-stage{display:grid;place-items:center;width:44px;height:180px}
.base-ten-rod-cells{display:grid;grid-template-columns:18px;grid-auto-rows:18px;gap:0;outline:1px solid #17324D}
.base-ten-unit{box-sizing:border-box;display:block;flex:none;width:18px;height:18px;border:2px solid #3C5670;background:#BFE2DC}
.base-ten-rod[aria-pressed=true] .base-ten-rod-cells{grid-template-columns:repeat(2,18px);gap:4px;outline:none}
.base-ten-rod[aria-pressed=true]{outline:2px solid #17324D;outline-offset:2px;border-style:double}
.base-ten-rod:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.base-ten-rod:hover{background:#EEF7F5}
.base-ten-loose{display:flex;flex-wrap:wrap;gap:8px;min-height:24px;align-items:center}
.base-ten-zero{font-size:20px;line-height:1.4}
body[data-age-group=early] .base-ten-quantity{font-size:24px}
@media(forced-colors:active){.base-ten-tray,.base-ten-rod{color:CanvasText;background:Canvas;border-color:CanvasText}.base-ten-unit{border-color:CanvasText;background:Canvas}.base-ten-rod-cells{outline-color:CanvasText}.base-ten-rod[aria-pressed=true],.base-ten-rod:focus-visible{outline-color:Highlight}}

/* Packed unit-square rectangle model, with independent counting marks. */
.illustration-unit_grid .illustration-drawing{display:block;width:100%}
.unit-grid-model{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;width:100%}
.unit-grid-width,.unit-grid-height{font-size:22px;line-height:1.35}
.unit-grid{display:grid;grid-template-columns:repeat(var(--unit-grid-width),minmax(0,1fr));gap:0;width:min(100%,calc(var(--unit-grid-width) * 48px));padding:0;margin:0}
.unit-grid-tile{appearance:none;box-sizing:border-box;display:grid;place-items:center;min-width:0;min-height:0;width:100%;aspect-ratio:1;padding:0;margin:0;border:1px solid #17324D;border-radius:0;overflow:hidden;background:#fff;color:#17324D;font:inherit;font-size:26px;line-height:1;cursor:pointer}
.unit-grid-mark{visibility:hidden;font-weight:700}
.unit-grid-tile[aria-pressed=true]{background:#C9DEDC}
.unit-grid-tile[aria-pressed=true] .unit-grid-mark{visibility:visible}
.unit-grid-tile:focus-visible{position:relative;z-index:1;outline:3px solid var(--focus);outline-offset:-4px}
.unit-grid-unit-label{margin:0;font-size:18px;line-height:1.45;max-width:100%}
.unit-grid-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.unit-grid-reset{appearance:none;min-height:44px;padding:8px 12px;border:2px solid #7FA9A3;border-radius:9px;background:#EEF7F5;color:#17324D;font:inherit;font-size:18px;font-weight:600;cursor:pointer}
.unit-grid-reset:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(forced-colors:active){.unit-grid-tile,.unit-grid-reset{border-color:ButtonText;background:ButtonFace;color:ButtonText}.unit-grid-tile[aria-pressed=true]{background:Canvas;color:CanvasText}.unit-grid-tile:focus-visible,.unit-grid-reset:focus-visible{outline-color:Highlight}}

/* Closed rectangle with separate unit-length controls outside each side. */
.illustration-rectangle_boundary .illustration-drawing{display:block;width:100%}
.boundary-model{display:grid;grid-template-columns:24px 44px minmax(0,1fr) 44px 24px;grid-template-rows:auto 44px auto 44px auto;gap:0;width:min(100%,calc(var(--boundary-width) * 44px + 136px));max-width:100%;margin:0}
.boundary-interior{box-sizing:border-box;grid-column:3;grid-row:3;min-width:0;width:100%;aspect-ratio:var(--boundary-width) / var(--boundary-height);border:2px solid #17324D;background:#fff}
.boundary-side{position:relative;min-width:0;min-height:0}
.boundary-segments{position:absolute;inset:0;display:grid;min-width:0;min-height:0;gap:0}
.boundary-top,.boundary-bottom{grid-column:3}
.boundary-top .boundary-segments,.boundary-bottom .boundary-segments{grid-template-columns:repeat(var(--boundary-segments),minmax(0,1fr))}
.boundary-top{grid-row:2}.boundary-bottom{grid-row:4}
.boundary-left,.boundary-right{grid-row:3}
.boundary-left .boundary-segments,.boundary-right .boundary-segments{grid-template-rows:repeat(var(--boundary-segments),minmax(0,1fr))}
.boundary-left{grid-column:2}.boundary-right{grid-column:4}
.boundary-caption{min-width:0;font-size:18px;line-height:1.35;text-align:center}
.boundary-caption-top,.boundary-caption-bottom{grid-column:3;padding:6px 0}
.boundary-caption-top{grid-row:1}.boundary-caption-bottom{grid-row:5}
.boundary-caption-left,.boundary-caption-right{position:relative;grid-row:3;min-height:0}
.boundary-caption-left{grid-column:1}.boundary-caption-right{grid-column:5}
.boundary-caption-left .boundary-side-label,.boundary-caption-right .boundary-side-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;white-space:nowrap;font-size:16px}
.boundary-segment{appearance:none;box-sizing:border-box;display:grid;place-items:center;min-width:0;min-height:0;width:100%;height:100%;padding:0;margin:0;border:1px solid #3C5670;border-radius:0;background:#EEF7F5;color:#17324D;font:inherit;font-size:24px;line-height:1;cursor:pointer}
.boundary-mark{display:block;max-width:100%;max-height:100%;overflow:hidden;visibility:hidden;font-weight:700}
.boundary-segment[aria-pressed=true]{background:#C9DEDC}
.boundary-segment[aria-pressed=true] .boundary-mark{visibility:visible}
.boundary-segment:focus-visible{position:relative;z-index:2;outline:3px solid var(--focus);outline-offset:1px}
.boundary-model-note{margin:12px 0 0;font-size:18px;line-height:1.45}
.boundary-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.boundary-reset{appearance:none;min-height:44px;padding:8px 12px;border:2px solid #7FA9A3;border-radius:9px;background:#EEF7F5;color:#17324D;font:inherit;font-size:18px;font-weight:600;cursor:pointer}
.boundary-reset:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(forced-colors:active){.boundary-interior{border-color:CanvasText;background:Canvas}.boundary-segment,.boundary-reset{border-color:ButtonText;background:ButtonFace;color:ButtonText}.boundary-segment[aria-pressed=true]{background:Canvas;color:CanvasText}.boundary-segment:focus-visible,.boundary-reset:focus-visible{outline-color:Highlight}}

/* Fraction sources share identical wholes, slots and persistent lettered pieces. */
.illustration-fraction_join .illustration-drawing{display:block;width:100%}
.fraction-join-wholes{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:min(100%,420px)}
.fraction-join-row{min-width:0;width:100%}
.fraction-join-heading{display:block;margin:0 0 8px;font-size:20px;line-height:1.35}
.fraction-join-whole{display:grid;grid-template-columns:repeat(var(--fraction-join-parts),minmax(0,1fr));gap:0;width:100%;height:56px}
.fraction-join-slot{box-sizing:border-box;position:relative;min-width:0;height:56px;border:1px solid #3C5670;background:#fff}
.fraction-join-piece{box-sizing:border-box;position:absolute;inset:0;display:grid;place-items:center;min-width:0;width:100%;height:100%;border:2px solid #17324D;overflow:hidden;background:#C9DEDC;color:#203c2b;font-size:16px;font-weight:700;line-height:1;z-index:1}
.fraction-join-piece-B{border-style:dashed;background:#f2dcad}
.fraction-join-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fraction-join-reset{appearance:none;min-height:44px;padding:8px 10px;border:2px solid #7FA9A3;border-radius:9px;background:#EEF7F5;color:#17324D;font:inherit;font-size:18px;font-weight:600;cursor:pointer}
.fraction-join-reset:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.fraction-join-reset[aria-disabled=true]{cursor:default;border-style:dashed}
@media(forced-colors:active){.fraction-join-slot{border-color:CanvasText;background:Canvas}.fraction-join-piece{border-color:CanvasText;background:Canvas;color:CanvasText}.fraction-join-reset{border-color:ButtonText;background:ButtonFace;color:ButtonText}.fraction-join-reset:focus-visible{outline-color:Highlight}}

/* Hundred flats keep ten permanent rows of ten identical unit cells. */
.illustration-base_ten_hundreds .illustration-drawing{display:block;width:100%}
.hundreds-trays{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:100%}
.hundreds-tray{min-width:0;padding:10px;border:2px solid #3C5670;border-radius:12px;background:#fff}
.hundreds-tens{border-style:double}.hundreds-ones{border-style:dashed}
.hundreds-quantity{display:block;margin-bottom:12px;font-size:22px;line-height:1.35}
.hundreds-flats{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
.hundreds-flat{appearance:none;box-sizing:border-box;display:flex;flex:none;flex-direction:column;align-items:center;gap:8px;width:112px;padding:8px 2px;border:2px solid #3C5670;border-radius:8px;background:#fff;color:#17324D;font:inherit;font-size:16px;line-height:1.3;cursor:pointer}
.hundreds-flat-name,.hundreds-flat-action{display:block;max-width:100%;font-weight:600;overflow-wrap:anywhere}
.hundreds-flat-rows{display:grid;grid-template-columns:100px;grid-auto-rows:10px;gap:0;width:100px;font-size:0;line-height:0;outline:1px solid #17324D}
.hundreds-flat-row{display:grid;grid-template-columns:repeat(10,10px);grid-template-rows:10px;gap:0;width:100px;height:10px;font-size:0;line-height:0}
.hundreds-unit{box-sizing:border-box;display:block;flex:none;min-width:10px;max-width:10px;width:10px;min-height:10px;max-height:10px;height:10px;border:1px solid #3C5670;background:#BFE2DC}
.hundreds-flat[aria-pressed=true] .hundreds-flat-rows{gap:4px;outline:none}
.hundreds-flat[aria-pressed=true]{border-style:double;outline:2px solid #17324D;outline-offset:2px}
.hundreds-flat:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.hundreds-rods,.hundreds-loose{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;min-height:10px}
.hundreds-rod{display:grid;grid-template-columns:10px;grid-template-rows:repeat(10,10px);gap:0;width:10px;height:100px;font-size:0;line-height:0;outline:1px solid #17324D}
.hundreds-zero{font-size:18px;line-height:1.4}
.hundreds-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.hundreds-reset{appearance:none;min-height:44px;padding:8px 12px;border:2px solid #7FA9A3;border-radius:9px;background:#EEF7F5;color:#17324D;font:inherit;font-size:18px;font-weight:600;cursor:pointer}
.hundreds-reset:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(forced-colors:active){.hundreds-tray,.hundreds-flat{border-color:CanvasText;background:Canvas;color:CanvasText}.hundreds-unit{border-color:CanvasText;background:Canvas}.hundreds-flat-rows,.hundreds-rod{outline-color:CanvasText}.hundreds-flat[aria-pressed=true],.hundreds-flat:focus-visible,.hundreds-reset:focus-visible{outline-color:Highlight}.hundreds-reset{border-color:ButtonText;background:ButtonFace;color:ButtonText}}

/* Explicit bundling conserves source units and changes only their grouping. */
.illustration-bundle_tens .illustration-drawing{display:block;width:100%}
.bundle-tens-model{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:100%}
.bundle-tens-source{font-size:22px;line-height:1.35}
.bundle-tens-tray{min-width:0;padding:10px;border:2px solid #3C5670;border-radius:12px;background:#fff}
.bundle-tens-loose-tray{border-style:dashed}
.bundle-tens-tray-label{display:block;margin-bottom:12px;font-size:20px;line-height:1.35}
.bundle-tens-loose{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;min-height:10px}
.bundle-tens-unit{box-sizing:border-box;display:block;flex:none;min-width:10px;max-width:10px;width:10px;min-height:10px;max-height:10px;height:10px;border:1px solid #3C5670;background:#BFE2DC}
.bundle-tens-rods{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px}
.bundle-tens-rod{display:flex;flex-direction:column;align-items:center;gap:8px;width:86px;max-width:100%;min-width:0}
.bundle-tens-rod-label{font-size:16px;line-height:1.35;text-align:center;overflow-wrap:anywhere}
.bundle-tens-rod-cells{display:grid;grid-template-columns:10px;grid-template-rows:repeat(10,10px);gap:0;width:10px;height:100px;font-size:0;line-height:0;outline:1px solid #17324D}
.bundle-tens-loose-empty,.bundle-tens-rods-empty{font-size:18px;line-height:1.4}
.bundle-tens-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.bundle-tens-reset{appearance:none;min-height:44px;padding:8px 10px;border:2px solid #7FA9A3;border-radius:9px;background:#EEF7F5;color:#17324D;font:inherit;font-size:18px;font-weight:600;cursor:pointer}
.bundle-tens-reset:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.bundle-tens-reset[aria-disabled=true]{border-style:dashed;cursor:default}
@media(forced-colors:active){.bundle-tens-tray{border-color:CanvasText;background:Canvas}.bundle-tens-unit{border-color:CanvasText;background:Canvas}.bundle-tens-rod-cells{outline-color:CanvasText}.bundle-tens-reset{border-color:ButtonText;background:ButtonFace;color:ButtonText}.bundle-tens-reset:focus-visible{outline-color:Highlight}}

/* Group-size division moves source objects into one chosen full group at a time. */
.illustration-group_size .illustration-drawing{display:block;width:100%}
.group-size-model{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:100%}
.group-size-givens{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:20px;line-height:1.35}
.group-size-tray{min-width:0;padding:10px;border:2px solid #3C5670;border-radius:12px;background:#fff}
.group-size-loose-tray{border-style:dashed}
.group-size-tray-label{display:block;margin-bottom:12px;font-size:20px;line-height:1.35}
.group-size-loose{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;min-height:20px}
.group-size-object{box-sizing:border-box;display:block;flex:none;min-width:20px;max-width:20px;width:20px;min-height:20px;max-height:20px;height:20px;border:2px solid #3C5670;border-radius:50%;background:#BFE2DC}
.group-size-groups{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
.group-size-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:8px;width:160px;max-width:100%;min-width:0;padding:8px;border:2px solid #3C5670;border-radius:10px;background:#fff}
.group-size-group-label{font-size:16px;line-height:1.35;text-align:center;overflow-wrap:anywhere}
.group-size-group-objects{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:100%}
.group-size-loose-empty,.group-size-groups-empty{font-size:18px;line-height:1.4}
.group-size-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.group-size-reset{appearance:none;min-height:44px;padding:8px 10px;border:2px solid #7FA9A3;border-radius:9px;background:#EEF7F5;color:#17324D;font:inherit;font-size:18px;font-weight:600;cursor:pointer}
.group-size-reset:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.group-size-reset[aria-disabled=true]{border-style:dashed;cursor:default}
@media(forced-colors:active){.group-size-tray,.group-size-group{border-color:CanvasText;background:Canvas}.group-size-object{border-color:CanvasText;background:Canvas}.group-size-reset{border-color:ButtonText;background:ButtonFace;color:ButtonText}.group-size-reset:focus-visible{outline-color:Highlight}}

/* ---- Compact lesson layout: the whiteboard sits close to the top menu and a
   whole lesson (picture, direction, question, answer) fits without scrolling. ---- */
:root{--lesson-header-height:62px}
.app-shell>.topbar{display:flex;align-items:center;gap:10px;padding:6px 0;height:var(--lesson-header-height);min-height:var(--lesson-header-height)}
.topbar>.brand{font-size:24px;margin-right:auto;flex:0 0 auto}
.topbar>.brand .brand-mark{width:38px;height:38px;line-height:36px}
.topbar>.teacher-status-group{margin:0 auto 0 0;flex:0 1 auto}
.topbar>.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 1 auto;min-width:0}
.topbar .main-nav{order:0;width:auto;margin:0;justify-content:flex-end}
.topbar .main-nav a{min-height:40px;padding:6px 12px;font-size:16px}
.topbar #new-lesson{padding:6px 12px;min-height:40px}
.teacher-status-group>#teacher-status{max-width:160px;padding:4px 10px}
@media(max-width:1099px){.teacher-status-group>#teacher-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0}}
.classroom{padding:6px 0;gap:6px 24px}
.classroom>.lesson-actions{padding:0 0 2px;gap:4px}
.workspace-panel{position:relative}
.workspace-actions{position:absolute;top:4px;right:6px;z-index:3;margin:0;min-height:0;gap:6px}
.workspace-actions>button{min-height:34px;padding:4px 10px;font-size:14px}
.workspace-panel #board-content{padding-top:0;padding-bottom:4px}
.board-content,.workspace-panel .board-content{padding-top:6px}
.workspace-panel #board-content h2{margin:0 0 4px;font-size:clamp(24px,4.4vh,34px);line-height:1.15}
.workspace-panel #board-content .lesson-category{margin:0 0 2px;font-size:13px}
.workspace-panel #board-content header{padding:0 150px}
.workspace-panel #board-content .board-illustration{margin:6px auto 8px}
.workspace-panel .lesson-answer-section{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;margin:4px auto 8px;padding:8px 12px;width:calc(100% - 24px)}
.lesson-answer-section .answer-problem{flex:1 1 100%}
.answer-prompt{margin:0 0 4px;font-size:clamp(18px,3.2vh,24px);line-height:1.3}
.lesson-answer-section .lesson-answer-form{flex:1 1 220px;width:auto}
.lesson-answer-section .answer-actions{flex:0 0 auto;padding:0;gap:8px}
.answer-actions #check-answer,.workspace-panel .lesson-hint{min-height:44px;padding:6px 16px;font-size:17px}
.answer-entry input{min-height:44px;font-size:20px}
.answer-entry button,.answer-entry #answer-mic-button{min-height:44px}
.answer-entry #answer-mic-button{width:44px;height:44px;flex-basis:44px;min-width:44px}
@media(max-width:760px){
  :root{--lesson-header-height:100px}
  .app-shell{padding:0 12px}
  .app-shell>.topbar{flex-wrap:wrap;gap:4px 8px;padding:4px 0}
  .topbar>.brand{font-size:21px}
  .topbar>.teacher-status-group{order:2;margin:0 0 0 auto}
  .topbar>.header-actions{display:contents}
  .topbar .header-end{order:3;gap:6px}
  .topbar .main-nav{order:5;flex:1 1 100%;width:100%;justify-content:space-between}
  .topbar .main-nav a{padding:6px 8px;min-height:38px}
  .teacher-status-group>#teacher-status{position:absolute}
  #conversation-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .conversation-toggle{padding:7px;min-width:44px;min-height:44px}
  .classroom{grid-template-rows:auto minmax(0,1fr) auto;height:calc(100dvh - var(--lesson-header-height));gap:4px;padding:4px 0}
  .workspace-panel{grid-row:2;height:100%}
  .teacher-column{grid-row:3;height:auto}
  .teacher-column .teacher-panel{display:none}
  .teacher-column .conversation-area{padding:0}
  .composer-box{display:flex;align-items:center;gap:4px;padding:4px}
  .composer-box .question-form{flex:1 1 auto}
  .composer-box .homework-row{margin:0;flex:0 0 auto}
  .composer-box .homework-drop>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .composer-box .homework-drop{min-width:44px;min-height:44px;justify-content:center}
  .composer-box textarea{font-size:16px;min-height:40px;padding:6px 4px}
  .composer-box .input-shell{min-height:44px}
  .composer-box :is(.mic-button,.send-button){width:44px;height:44px;min-width:44px;min-height:44px}
  .workspace-actions{top:2px;right:2px}
  .workspace-panel #board-content header{padding:0}
  .workspace-panel #board-content h2{font-size:24px}
  .workspace-panel .lesson-answer-section{padding:6px 8px;width:calc(100% - 8px)}
}
@media(max-width:760px){
  .topbar>.brand>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .topbar>.teacher-status-group{margin:0 auto 0 0}
  .topbar #new-lesson{margin-left:auto}
  .workspace-panel #board-content .lesson-category{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .workspace-panel #board-content header{padding:0 100px 0 0;min-height:34px}
  .workspace-actions>button{min-height:32px;padding:2px 8px;font-size:13px}
}
@container(max-width:400px){.sharing-group{grid-template-columns:minmax(0,1fr)}}
/* Phone: a small teacher beside the chat bar; the whole lesson fits one screen. */
@media(max-width:760px){
  .classroom{grid-template-rows:auto minmax(0,1fr) auto}
  .classroom>.lesson-actions{flex-direction:row;flex-wrap:nowrap;align-items:flex-start;gap:4px}
  .lesson-actions .practice-actions{flex:0 0 auto}
  .practice-actions>.replay-board{min-height:42px;padding:2px 8px;font-size:12px}
  .teacher-column{display:grid;grid-template-columns:104px minmax(0,1fr);gap:6px;align-items:stretch;height:118px;min-height:0}
  .teacher-column .teacher-panel{display:flex;flex-direction:column;padding:0;height:118px;min-height:0;min-width:0;overflow:hidden}
  .teacher-column .character-space{flex:1 1 auto;height:118px;min-height:0;max-height:118px;width:104px}
  .teacher-column #koa-stage{width:100%;height:100%;min-height:0;max-width:100%;max-height:100%}
  .teacher-column .conversation-area{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:0;min-width:0}
  .composer-box{display:block;padding:4px}
  .composer-box .question-form{flex:none}
  .composer-box .homework-row{margin:2px 0 0}
  .composer-box .homework-drop{min-height:36px}
  .composer-box .homework-drop>span:last-child{position:static;width:auto;height:auto;clip-path:none;font-size:13px}
  .composer-box textarea{min-width:0}
  .teacher-column .conversation-area{position:relative}
  .teacher-column .conversation-area>.notice{position:absolute;left:-110px;right:0;bottom:calc(100% + 4px);z-index:6;pointer-events:none;font-size:12px;line-height:1.25;padding:3px 8px;margin:0;box-shadow:0 2px 8px rgba(0,0,0,.12)}
  .workspace-panel #board-content header{padding:0 90px 0 0;min-height:30px}
  .workspace-panel #board-content h2{font-size:20px;line-height:1.1}
  .board-equation,.board-answer-equation{font-size:26px;line-height:1.2}
  .workspace-panel #board-content .board-illustration{margin:2px auto 2px}
  .workspace-panel .lesson-answer-section{margin:2px auto 4px;padding:4px 8px}
  .answer-problem .board-equation{padding:0}
  .inline-answer-form .answer-entry input{font-size:20px;width:120px;max-width:140px}
}

.classroom>.lesson-actions{flex-direction:row;flex-wrap:nowrap;align-items:flex-start}
.classroom>.lesson-actions>.board-toolbar{flex:1 1 0;min-width:0}
.lesson-actions .practice-actions{flex:0 0 auto}

/* Phones: during a guided lesson keep only the tools a learner can use now,
   so the row stays one line with readable labels. */
@media(max-width:760px){
  body[data-native-practice="active"] #start-native-practice,body[data-native-practice="active"] #replay-board{display:none}
}

/* Start screen: pick a subject, then homework help or a lesson for the grade. */
.learning-start-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:12px 16px;margin-bottom:16px}
.learning-start-head h2{margin:0;font:700 clamp(22px,2.2vw,28px)/1.2 var(--heading);color:var(--ink)}
.learning-start .learning-step-heading{margin:0 0 10px}
.workspace-panel .teaching-pane.choosing-learning{justify-content:flex-start}
.learning-start .learning-grade-field{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;gap:10px;font-size:18px;font-weight:650}
.learning-start .learning-grade-field select{width:160px;min-height:48px;font-size:18px;padding:8px 10px}
.learning-subjects{display:flex;flex-wrap:wrap;gap:8px}
.learning-subject{min-height:44px;padding:8px 18px;border:2px solid #b8d4c8;border-radius:999px;background:#fff;color:var(--ink);font-size:18px;font-weight:650}
.learning-subject[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
.learning-start .learning-intake{display:block;min-height:0;margin-top:14px;padding:12px 16px}
.learning-start h3{margin:0;font:650 clamp(20px,1.9vw,24px)/1.25 var(--heading)}
.learning-start .learning-intake p{margin:2px 0 10px;font-size:17px;font-weight:500;color:#3C5670}
.learning-intake-actions{display:flex;flex-wrap:wrap;gap:10px}
.learning-start .learning-intake .button{font-size:17px;min-height:46px;padding:10px 16px}
.learning-explore{margin-top:14px}
.learning-explore h3{margin-bottom:10px}
.learning-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.learning-topic{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:64px;padding:8px 14px;text-align:left;border:2px solid #d8e7df;border-radius:14px;background:#EEF7F5;color:var(--ink);font-size:19px;font-weight:700;line-height:1.2}
.learning-topic:hover,.learning-topic:focus-visible{border-color:var(--teal);background:#eaf5ef}
.learning-topic small{font-size:14px;font-weight:700;color:#2f8f83}
.learning-topic-practice{background:#fff8e6;border-color:#f2d58a}.learning-topic-practice small{color:#9a6a00}
.learning-topic-explore{background:var(--ww-mint,#e3f4ea);border-color:#7cc9a9}.learning-topic-explore small{color:#2f8f6f}
.learning-topic-quiz{background:var(--surface);border-color:var(--peach)}.learning-topic-quiz small{color:var(--ink)}
.learning-group-heading{grid-column:1/-1;margin:8px 0 0;font:650 20px/1.25 var(--heading);color:var(--ink)}.learning-group-heading:first-child{margin-top:0}
.learning-topics-note{grid-column:1/-1;margin:0;font-size:18px;color:#3C5670}
@container(max-width:520px){
  .learning-start{padding-top:8px}
  .learning-start-head{padding-right:0;margin-bottom:8px}
  .learning-start-head{gap:8px 12px;margin-bottom:12px}
  .learning-start-head h2{font-size:21px;white-space:nowrap}
  .learning-start .learning-step-heading{margin-bottom:8px}
  .learning-start .learning-grade-field select{min-height:40px;width:auto;font-size:16px;padding:6px 28px 6px 8px}
  .learning-subjects{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.learning-subject{min-height:42px;padding:4px 6px;font-size:15px;line-height:1.1;border-radius:12px}
  .learning-start .learning-intake{padding:8px 12px;margin-top:10px}
  .learning-start h3{font-size:19px}
  .learning-start .learning-intake p{display:none}
  .learning-intake-actions{gap:8px;margin-top:6px}
  .learning-start .learning-intake .button{font-size:15px;min-height:42px;padding:8px 12px;flex:1 1 0}
  .learning-explore{margin-top:10px}.learning-explore h3{margin-bottom:6px}
  .learning-topics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .learning-topic{min-height:52px;padding:5px 10px;font-size:17px}.learning-topic small{font-size:12px}
}

/* A menu on the board: big tap targets instead of an answer box. */
.board-choices{display:grid;gap:12px;margin:18px 0 0;max-width:560px}
.board-choice{min-height:60px;padding:12px 18px;text-align:left;border:2px solid #b8d4c8;border-radius:14px;background:#EEF7F5;color:var(--ink);font-size:clamp(19px,1.9vw,23px);font-weight:700;line-height:1.25}
.board-choice:hover,.board-choice:focus-visible{border-color:var(--teal);background:#eaf5ef}
/* Tablets show Full Screen above the start card; keep the grade picker clear of it. */
.learning-start .learning-grade-field>span{display:none}
