

:root{font-family:Arial,Helvetica,sans-serif;color:#263d37;background:#f1f4f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.32;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #658fed;outline-offset:3px}button:hover:not(:disabled){filter:brightness(.96)}.topbar{height:84px;background:white;border-bottom:1px solid #dee5e1;display:flex;align-items:center;padding:0 28px;gap:28px}.brand{font-size:24px;font-weight:750;letter-spacing:-1px;display:flex;gap:11px;align-items:center;min-width:238px}.brand-icon{width:40px;height:40px;border-radius:12px;background:#213f35;color:#dff59a;display:grid;place-items:center}.brand-dot{color:#78a758}.document-title{padding-left:28px;border-left:1px solid #e0e7e3;flex:1}.document-title input{display:block;border:0;background:transparent;color:#334c42;font-size:16px;font-weight:600;width:100%;max-width:420px;outline:none}.document-title>span{display:block;font-size:12px;color:#86938c;margin-top:6px}.top-actions{display:flex;gap:12px;align-items:center}.icon-button{display:grid;place-items:center;padding:10px;border-radius:9px}.save,.primary{background:#244d3e;color:white;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:9px;padding:12px 18px;font-size:14px;font-weight:600;text-decoration:none}.avatar{border:1px solid #dae3dd;border-radius:50%;display:grid;place-items:center;width:40px;height:40px}.workspace{display:flex;min-height:calc(100dvh - 157px)}.toolrail{background:#fff;border-right:1px solid #dee5e1;width:104px;flex-shrink:0;padding:24px 10px 10px;display:flex;flex-direction:column;gap:9px}.rail-label{font-size:10px;font-weight:bold;letter-spacing:1.1px;color:#8e9a93;text-align:center;margin-bottom:13px}.rail-tool{position:relative;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;width:100%;padding:14px 0;color:#586c62}.rail-tool span{font-size:12px}.rail-tool:hover,.rail-tool.active{background:#edf4eb;color:#2c6048}.rail-tool i{position:absolute;right:18px;top:13px;width:5px;height:5px;background:#a890d6;border-radius:50%}.rail-bottom{margin-top:auto;padding-top:16px;border-top:1px solid #e8ede9}.board-area{position:relative;padding:25px 35px 16px;min-width:0;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.board-meta{width:100%;display:flex;justify-content:space-between;align-items:center;color:#86928a;font-size:12px;margin-bottom:17px}.board-meta>span:first-child{display:flex;align-items:center;gap:14px}.small-badge{font-size:10px;letter-spacing:1.4px;color:#61796b;border:1px solid #d7e1da;border-radius:5px;padding:5px 8px}.stage{position:relative;width:100%;aspect-ratio:12/7;max-height:calc(100dvh - 310px);background-color:white;border:1px solid #d8e0db;border-radius:10px;box-shadow:0 7px 25px #18392b06;overflow:hidden;container-type:inline-size;isolation:isolate}.stage.dots{background-image:radial-gradient(#d6dfd9 1px,transparent 1px);background-size:22px 22px}.stage.grid{background-image:linear-gradient(#e4eae6 1px,transparent 1px),linear-gradient(90deg,#e4eae6 1px,transparent 1px);background-size:25px 25px}.stage canvas{position:absolute;width:100%;height:100%;inset:0;touch-action:none;z-index:2}.widget{position:absolute;z-index:3;display:flex;flex-direction:column;transform-origin:center}.widget.note{background:#fff2b8;box-shadow:0 6px 12px #4f4c2312;border-radius:3px;color:#675622}.widget-handle{height:30px;min-height:22px;display:flex;align-items:center;gap:7px;padding:3px 10px;cursor:grab;touch-action:none;color:#82712e80;font-size:10px;letter-spacing:1px}.widget-handle span{flex:1}.widget-handle button{padding:2px}.widget textarea{background:transparent;border:0;resize:none;width:100%;height:100%;padding:7px 18px 18px;color:#655625;line-height:1.6;font-size:clamp(12px,1.6cqw,22px);outline:none}.widget.image{background:white;border:1px solid #d2dcd5}.widget.image img{object-fit:contain;width:100%;height:calc(100% - 30px);pointer-events:none}.widget.ruler,.widget.triangle{filter:drop-shadow(0 4px 4px #29473a12)}.widget.ruler .widget-handle,.widget.triangle .widget-handle{background:#d0e6deee;color:#477061}.widget svg{width:100%;height:100%}.widget-handle svg{width:18px;height:18px}.widget-controls{position:absolute;left:0;top:100%;background:#fff;box-shadow:0 2px 6px #173e2820;border:1px solid #d4e3d8;border-radius:5px;padding:6px;display:flex;gap:6px;font-size:11px;white-space:nowrap}.widget-controls label{display:flex;align-items:center;gap:4px}.widget-controls input[type=range]{width:60px}.widget-controls input[type=number]{width:40px}.selected{outline:1px dashed #628d75;outline-offset:2px}.drawing-toolbar{margin-top:22px;border:1px solid #dce4df;background:#fff;border-radius:14px;box-shadow:0 4px 12px #29493805;display:flex;align-items:center;padding:8px;gap:4px;max-width:100%;flex-wrap:wrap;justify-content:center}.drawing-toolbar>button:not(.swatch){height:36px;width:37px;display:grid;place-items:center;border-radius:7px;color:#63756b}.drawing-toolbar button.chosen{color:#315d44;background:#e5efdd}.separator{height:22px;width:1px;background:#e4e9e5;margin:0 7px}.drawing-toolbar .swatch{width:19px;height:19px;border:1px solid #0002;border-radius:50%;margin:0 3px}.swatch-active{outline:2px solid #aab7ac;outline-offset:3px}.drawing-toolbar input{width:58px;margin:0 6px;accent-color:#526b59}.board-hint{font-size:12px;color:#8a978f;margin-top:13px;text-align:center;min-height:15px}footer{height:73px;border-top:1px solid #dde5df;display:flex;align-items:center;justify-content:space-between;background:white;padding:0 26px 0 128px;gap:10px}.slide-list{display:flex;gap:12px;overflow:auto;align-items:center}.slide-tab{display:flex;align-items:center;gap:10px;border:1px solid #dbe3dd;border-radius:8px;padding:10px 14px;font-size:12px;white-space:nowrap}.slide-tab>span:first-child{font-size:11px;color:#6a8973;background:#edf2eb;padding:4px;border-radius:3px}.slide-tab.current{border-color:#7e9b79;background:#f5f8ef}.slide-tab>span:nth-child(2){max-width:180px;overflow:hidden;text-overflow:ellipsis}.new-slide{display:flex;gap:7px;align-items:center;white-space:nowrap;color:#6f7f74;font-size:13px;padding:10px}.panel{position:fixed;right:20px;top:102px;width:350px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 140px);overflow:auto;padding:24px;z-index:20;background:white;border:1px solid #dce4df;border-radius:16px;box-shadow:0 15px 60px #17392a26}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel h2{font-size:21px;margin:0;letter-spacing:-.5px}.panel h3{font-size:20px;line-height:1.35}.panel p{font-size:14px;line-height:1.6;color:#6a7b70;margin:14px 0 20px}.option{display:flex;width:100%;align-items:center;gap:14px;padding:16px;border:1px solid #dce4de;border-radius:10px;margin-top:10px;font-size:15px;text-align:left}.panel .subtle{font-size:12px;color:#8b988f}.panel .primary{width:100%;margin-top:17px;min-height:44px}.field-label{display:flex;flex-direction:column;gap:10px;font-size:14px;margin:20px 0}.field-label input:not([type=range]){border:1px solid #cddbd0;border-radius:8px;padding:13px;width:100%;font-size:18px;color:#2b4637;background:#fafcf9}.field-label input[type=range]{accent-color:#547859}.examples{display:flex;flex-wrap:wrap;gap:6px}.examples button{font-size:12px;background:#f0f4ee;border-radius:5px;padding:7px}.result{margin-top:20px;padding:18px;background:#eef5e8;border-radius:10px}.result>span{font-size:10px;letter-spacing:1px;color:#6c865a}.result pre{white-space:pre-wrap;font-family:inherit;line-height:1.7;font-size:16px}.result button{font-size:12px;text-decoration:underline}.notice{background:#f4f5f3;border-radius:10px;padding:16px;margin:20px 0;font-size:14px}.notice p{margin:8px 0 0;font-size:13px}.ai-icon,.account-symbol{background:#eee9f7;color:#8166ac;display:grid;place-items:center;width:60px;height:60px;border-radius:17px;margin:24px 0}.account-symbol{background:#ebf1e7;color:#577b55}.sound-orb{background:#edf5e8;border-radius:15px;color:#5d864f;padding:25px 8px;display:flex;align-items:center;flex-direction:column;gap:15px;font-size:16px}.sound-orb.loud,.sound-floating.loud{background:#fff0e9;color:#c25b41}.meter{height:10px;border-radius:8px;background:#edf1ec;overflow:hidden;margin-top:25px}.meter>div{height:100%;transition:width .15s}.sound-floating{position:fixed;bottom:96px;right:25px;background:#e0edd3;border:1px solid #bdd1ad;padding:13px;border-radius:10px;display:flex;gap:10px;align-items:center;font-size:13px;z-index:15}.toast{position:fixed;bottom:88px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 30px);background:#244c3e;color:white;padding:16px 18px;z-index:50;border-radius:10px;display:flex;align-items:center;gap:18px;font-size:14px;box-shadow:0 5px 25px #13342425}.toast button{color:white}.empty-board{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#bec9c0;pointer-events:none}.empty-board p{font-size:23px;margin:18px 0 8px;color:#85988a}.empty-board span{font-size:14px;color:#a2b0a6}
@media(min-width:1500px){.board-area{padding-left:60px;padding-right:60px}.stage{max-width:1400px}.board-meta{max-width:1400px}}@media(max-width:1000px){.topbar{padding:0 18px;gap:15px}.brand{min-width:auto;font-size:21px}.document-title{padding-left:16px}.board-area{padding:20px 18px}.toolrail{width:90px}.drawing-toolbar{gap:2px}.drawing-toolbar>button:not(.swatch){width:31px}.separator{margin:0 4px}footer{padding-left:108px}.stage{max-height:none}}@media(max-width:700px){.topbar{height:73px;padding:0 12px;gap:10px}.brand{font-size:19px}.brand-icon{height:34px;width:34px}.document-title{display:none}.top-actions{margin-left:auto;gap:5px}.save{padding:10px}.save span{display:none}.fullscreen{display:none}.workspace{flex-direction:column;min-height:calc(100dvh - 139px)}.toolrail{width:100%;flex-direction:row;padding:6px 8px;border-right:0;border-bottom:1px solid #dde5df;gap:0;overflow-x:auto}.rail-label{display:none}.rail-tool{padding:10px 5px;min-width:66px;gap:6px}.rail-tool span{font-size:10px}.rail-tool svg{width:20px;height:20px}.rail-bottom{margin:0;border:0;padding:0}.board-area{justify-content:flex-start;padding:20px 12px}.board-meta{font-size:11px;margin-bottom:14px}.stage{min-height:280px;aspect-ratio:12/7}.drawing-toolbar{margin-top:18px;gap:7px;border-radius:11px;padding:9px}.drawing-toolbar>button:not(.swatch){width:31px;height:31px}.drawing-toolbar .swatch{width:20px;height:20px}.separator{display:none}.board-hint{font-size:11px;line-height:1.5}footer{padding:0 12px;height:66px}.slide-tab{padding:8px}.slide-tab>span:nth-child(2){max-width:125px}.new-slide{font-size:12px}.widget-handle{padding:2px 5px;height:23px;font-size:8px}.widget textarea{padding:4px 8px;font-size:12px}.widget-controls{flex-direction:column}.panel{top:85px}.empty-board p{font-size:19px}.empty-board span{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.loading-shield{position:fixed;inset:84px 0 0;z-index:40;background:#f1f4f3e8;display:grid;place-items:center;color:#365e48;font-size:18px}
/* Preserve mathematical proportions at every viewport size. */
.stage{width:min(100%,max(300px,calc((100dvh - 310px)*1.7142857)));max-height:none;min-height:0;flex-shrink:0}
@media(max-width:1000px){.stage{width:100%}}
.ai-top{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dcd1ec;background:#f2edf8;color:#795c9f;padding:10px 12px;border-radius:9px;font-size:14px;white-space:nowrap}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.folder-current{display:flex;align-items:center;gap:6px;font-size:12px;max-width:55%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.folder-button{display:flex;gap:8px;align-items:center;font-size:13px;background:#edf3e8;padding:11px;border-radius:8px;flex-shrink:0}.folder-button span{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slide-list{flex:1}.folder-choices{max-height:230px;overflow:auto}.folder-choices .option{padding:12px;font-size:14px}.folder-choices .option span{flex:1;overflow-wrap:anywhere}.folder-choices .option small{background:#e9efe5;padding:3px 7px;border-radius:5px}.folder-active{background:#edf5e6;border-color:#91ac86}.panel hr{border:0;border-top:1px solid #dce4df;margin:24px 0}.field-label select,.field-label textarea{width:100%;border:1px solid #cddbd0;background:#fafcf9;border-radius:8px;padding:12px;font-size:15px;line-height:1.6;color:#294d37}.field-label textarea{resize:vertical}.alarm-toggle{display:flex;align-items:center;gap:10px;font-size:14px;margin-top:20px}.alarm-toggle input{width:18px;height:18px;accent-color:#365d41}.ai-result{border-top:1px solid #dce4df;margin-top:22px;padding-top:5px}.ai-result>div{white-space:pre-wrap;line-height:1.7;font-size:15px;overflow-wrap:anywhere}.error-message{color:#a34c38!important;background:#fff1e9;padding:12px;border-radius:8px}.topbar{gap:18px}.brand{min-width:210px}@media(max-width:1000px){.brand{min-width:auto}.ai-top span{display:none}.folder-button span{max-width:95px}}@media(max-width:700px){.folder-button{padding:9px}.folder-button span{display:none}.ai-top{padding:8px}.topbar{gap:7px}.board-meta>span:first-child{gap:6px}.folder-current{font-size:11px}}

html,body,#root{min-height:100%;}button{line-height:normal}h1,h2,h3,p{overflow-wrap:break-word}.panel{overscroll-behavior:contain}

.correction-card{margin:20px 0;padding-top:12px;border-top:1px solid #dce7df}.correction-preview{width:100%;border:1px solid #dce7df;border-radius:10px;background:white}.math-steps{font-family:Georgia,serif;font-size:20px;line-height:1.6;margin:15px 0;color:#283d36;overflow-wrap:anywhere}.math-steps div:last-child{color:#176a50;font-weight:bold}.correction-card .primary{width:100%}

.mode-chip{background:#e6efe5;color:#2c5b41;border-radius:7px;padding:8px;font-weight:bold}.widget.ai,.widget.exam{background:white;border:1px solid #a9beb0;border-radius:8px;box-shadow:0 5px 22px #244d3e25;overflow:visible}.widget.ai .widget-handle,.widget.exam .widget-handle{color:#386149;background:#e6eee6;border-radius:8px 8px 0 0;flex-shrink:0;letter-spacing:0}.ai-widget-image{width:100%;height:calc(100% - 30px);object-fit:contain;min-height:0;pointer-events:none}.visibility-toggle{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:15px}.visibility-toggle input{width:20px;height:20px;accent-color:#244d3e}.exam-task{border:1px solid #d3dfd5;border-radius:8px;margin:20px 0;padding:12px}.exam-reference{width:100%;margin:15px 0;border:1px solid #d5ded9}.exam-pagination{position:absolute;bottom:0;background:#e6eee6;font-size:11px;display:flex;align-items:center;justify-content:center;width:100%;gap:12px}.exam-pagination button{padding:4px 12px}.print-pages{display:none}@media print{@page{size:A4;margin:0}html,body,main{margin:0!important;padding:0!important;background:white!important}main>:not(.print-pages){display:none!important}.print-pages{display:block!important}.print-pages img{display:block;width:210mm;height:297mm;break-after:page}.print-pages img:last-child{break-after:auto}}

.axis-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.axis-fields input{min-width:0}.function-editor details{margin:16px 0;font-size:14px}.function-editor summary{cursor:pointer;padding:8px 0}.value-table{border-collapse:collapse;width:100%;font-size:14px;margin:12px 0}.value-table th,.value-table td{text-align:right;border-bottom:1px solid #d6e2d9;padding:7px}
/* Web board: floating tool docks */
.classroom{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.classroom .topbar{height:76px;flex-shrink:0}.classroom .workspace{position:relative;flex:1;min-height:0;overflow:hidden;background:white}.classroom .board-area{padding:0;justify-content:center;overflow:hidden}.classroom .stage{width:min(100%,calc((100dvh - 146px)*12/7));height:auto;max-width:none;max-height:none;min-height:0;aspect-ratio:12/7;border:0;border-radius:0;box-shadow:none}.classroom footer{height:70px;flex-shrink:0}.classroom .board-meta{position:absolute;top:12px;left:106px;z-index:5;max-width:calc(100% - 130px)}.classroom .board-hint{display:none}.classroom .toolrail{position:absolute;left:12px;top:12px;bottom:auto;max-height:calc(100% - 90px);overflow:auto;z-index:10;width:82px;border:1px solid #dbe4df;border-radius:15px;box-shadow:0 6px 24px #17392a16;padding:6px;gap:2px;background:#fffffff5;flex-direction:column}.classroom .rail-label{display:none}.classroom .rail-tool{padding:9px 0;gap:4px}.classroom .rail-tool span{font-size:10px}.classroom .rail-bottom{padding-top:5px}.classroom .drawing-toolbar{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);margin:0;z-index:11;max-width:calc(100% - 32px);width:max-content;box-shadow:0 5px 20px #17392a20}.dock-toggle{display:flex;align-items:center;justify-content:center;gap:4px;min-height:34px;width:100%}.dock-toggle span{font-size:9px}.classroom .dock-min>*:not(.dock-toggle){display:none!important}.classroom .toolrail.dock-min{width:82px;bottom:auto}.classroom .drawing-toolbar.dock-min{left:20px;transform:none}.classroom.immersive .topbar,.classroom.immersive footer{display:none}.classroom.immersive .stage{width:min(100%,calc(100dvh*12/7))}.exit-full{position:fixed;top:14px;right:16px;z-index:25;background:white;border:1px solid #dbe4df;border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:8px;box-shadow:0 3px 20px #17392a20}.panel-header{cursor:grab;touch-action:none;gap:5px}.panel-header h2{flex:1}.panel-min{resize:none!important;min-height:0!important;padding:12px!important;overflow:hidden!important;height:auto!important}.panel-min>:not(.panel-header){display:none!important}.panel-min .panel-header{margin:0}.panel{resize:both;min-width:280px;min-height:80px;width:380px;max-height:calc(100dvh - 110px)}.pro-pill,.pro-badge{background:#e9f1d4;color:#365035;border:1px solid #d5e0be;border-radius:8px;font-size:12px;font-weight:750;letter-spacing:.3px;padding:7px 12px;display:inline-flex;gap:7px;align-items:center}.admin-link{font-size:13px;color:#365644}.pro-card ul{padding-left:20px;line-height:1.9;font-size:14px}.pro-price{font-size:25px;font-weight:700;margin:24px 0 0}.pro-price small{font-size:13px;font-weight:400}.danger{color:#a63b30!important}.widget-handle button{flex-shrink:0}.admin-page{max-width:1160px;margin:0 auto;padding:30px 40px 80px;overflow:auto;min-height:100dvh}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-head a{display:flex;align-items:center;gap:8px;text-decoration:none;color:#385a4a;font-size:14px}.admin-page h1{font-size:46px;line-height:1.1;letter-spacing:-2px;margin:50px 0 18px}.admin-page h1 span{color:#6b8166}.admin-lead{color:#6b7e70}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:30px 0 18px}.admin-card{padding:26px;border:1px solid #dce4de;border-radius:18px;background:white}.admin-card h2{display:flex;gap:12px;align-items:center;font-size:20px;margin:0 0 24px}.admin-card .subtle{font-size:13px;line-height:1.6;color:#708074}.admin-card .field-label{margin:18px 0}.admin-page .primary{width:max-content;min-height:44px}.admin-card .visibility-toggle{display:flex;gap:10px;margin:18px 0;align-items:center}.admin-card input[type=checkbox]{width:18px;height:18px;accent-color:#356249}.admin-card input,.admin-card select{max-width:100%}.access-card{margin-top:28px}.access-card>p{font-size:14px;line-height:1.6;color:#708074}.grant-form{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.grant-form .field-label:first-child{flex:1;min-width:230px}.grant-form .field-label:nth-child(2){width:90px}.grant-form .primary{margin-bottom:18px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:15px 10px;border-bottom:1px solid #e6ebe6}th{font-size:12px;color:#687e6c}td small{display:block;color:#7b877c;margin-top:4px}td button{text-decoration:underline;color:#9e453b;white-space:nowrap}.admin-page .notice{padding:14px;border-radius:9px;line-height:1.5;background:#edf2e6}.loading-shield{z-index:50}
@media(max-width:760px){.classroom .topbar{padding:0 12px;gap:10px;height:66px}.brand{min-width:0;font-size:19px}.brand-icon{display:none}.document-title{display:none}.top-actions{gap:6px;margin-left:auto}.ai-top span{display:none}.classroom .stage{width:min(100%,calc((100dvh - 126px)*12/7))}.classroom footer{height:60px}.classroom .toolrail{width:65px;left:6px;max-height:calc(100% - 76px)}.classroom .rail-tool{padding:8px 0}.classroom .board-meta{left:80px;font-size:11px}.classroom .drawing-toolbar{gap:3px;padding:6px;bottom:8px}.panel{top:76px;width:350px;max-height:calc(100dvh - 90px)}.admin-page{padding:22px 18px 50px}.admin-grid{grid-template-columns:1fr}.admin-page h1{font-size:35px}.admin-card{padding:20px}.admin-link{font-size:11px}}
@media print{.classroom{height:auto;overflow:visible;display:block}.exit-full,.panel,.topbar,.workspace,footer,.toast{display:none!important}.print-pages{display:block!important}}
.geometry-editor details{border:1px solid #d9e3dc;border-radius:8px;padding:10px;margin:8px 0}.geometry-editor summary{cursor:pointer;font-size:14px;font-weight:600}.point-fields{display:flex;align-items:center;gap:8px;margin:8px 0}.point-fields label{display:flex;gap:4px;align-items:center}.point-fields input{width:80px;padding:6px;border:1px solid #cbd8cc;border-radius:5px}

.ai-surface{position:relative;flex:1;min-height:0;width:100%;overflow:hidden;background:white}.ai-annotation-svg{display:block;width:100%;height:100%;user-select:none}.ai-surface.inking{outline:2px solid #4c8966;outline-offset:-2px}.window-ink-tools{position:absolute;left:5px;right:5px;bottom:5px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px;padding:5px;border:1px solid #b9cfbf;background:#fffffff2;border-radius:8px;box-shadow:0 2px 8px #0001;z-index:5}.window-ink-tools button{display:grid;place-items:center;width:30px;height:30px;border-radius:5px}.window-ink-tools button[aria-pressed=true],.widget-handle button[aria-pressed=true]{background:#d7e9d7;color:#244d3e}.window-ink-tools input[type=color]{width:28px;height:28px;padding:1px;border:0;background:transparent}.window-ink-tools input[type=range]{width:48px;accent-color:#42754f}.window-ink-tools span{width:100%;text-align:center;font-size:10px;color:#4b6856}.widget.ai .widget-handle{min-height:30px;height:30px;flex-shrink:0}.widget.ai .widget-handle button{padding:4px}.widget.ai .widget-handle>span{min-width:0;overflow:hidden;white-space:nowrap}.widget.ai .widget-handle{gap:3px}

.stage>.snap-guide{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}.widget.table,.widget.text{background:white;border:1px solid #cfdbd3;border-radius:5px}.widget.table .widget-handle,.widget.text .widget-handle{background:#edf3ef;color:#486653;height:30px;min-height:30px;flex-shrink:0}.table-surface{flex:1;min-height:0;overflow:auto}.classroom-table{width:100%;height:100%;table-layout:fixed;border-collapse:collapse}.classroom-table td{border:1px solid #6c8977;padding:0;vertical-align:top}.classroom-table td.table-heading{background:#e4eee5}.classroom-table textarea{display:block;border:0;border-radius:0;resize:none;background:transparent;width:100%;height:100%;min-height:32px;padding:5px;color:#263d37;font-size:clamp(12px,1.4cqw,22px);line-height:1.3}.classroom-table .table-heading textarea{font-weight:700}.widget.text textarea.free-text{flex:1;min-height:0;resize:none;border:0;padding:8px 12px;background:transparent;line-height:1.3}.widget.text .widget-controls{flex-wrap:wrap;max-width:100%;white-space:normal}.widget.text .widget-controls input[type=color]{width:28px;height:24px;padding:0;border:0}.widget.table .widget-handle svg,.widget.text .widget-handle svg{width:18px;height:18px}

.widget-handle .guide-rotate{pointer-events:auto;touch-action:none;cursor:grab;display:flex;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:32px;padding:4px 7px;border:1px solid #75a58f;border-radius:6px;background:#f3fff8;color:#24573e;letter-spacing:0}.guide-rotate:active{cursor:grabbing}.guide-rotate:focus-visible{outline:3px solid #356de5;outline-offset:2px}.widget-handle .guide-rotate span{font-size:11px;white-space:nowrap}.widget.ruler .widget-handle,.widget.triangle .widget-handle{min-height:38px;flex-shrink:0}.rotation-slider{width:100%;accent-color:#42754f;min-height:40px}.rotation-actions{display:flex;gap:8px}.rotation-actions .option{flex:1;justify-content:center}

.panel.exam-editor-panel{width:min(600px,calc(100vw - 24px));max-width:calc(100vw - 24px)}.exam-extra summary{cursor:pointer;font-weight:700;padding:12px 0}.exam-extra textarea{width:100%;min-height:80px;border:1px solid #d3dfd5;padding:8px}.exam-ai{background:#eff5ef;border-radius:10px;padding:14px}.widget.exam .widget-handle{height:36px;min-height:36px}.widget.exam .widget-handle button{min-width:28px;min-height:28px}.widget.exam .widget-handle>span{min-width:0;overflow:hidden}.widget.exam .exam-pagination{position:static;min-height:25px;flex-shrink:0}.widget.exam .window-ink-tools{bottom:5px}

.exam-actions{display:flex;flex-wrap:wrap;gap:6px;padding:6px;background:#edf4ef;flex-shrink:0;position:relative;z-index:4;pointer-events:auto}.exam-actions button{background:#244d3e;color:white;padding:8px 10px;border-radius:6px;font-size:12px;min-height:36px}.exam-page-body{flex:1;min-height:0;display:flex;flex-direction:column}.exam-page-body>.ai-surface{height:100%}.exam-editor-backdrop{position:fixed;inset:0;background:#12281c66;z-index:59}.panel.exam-editor-panel{position:fixed;z-index:60;top:3dvh!important;left:50%!important;right:auto!important;transform:translateX(-50%);width:min(820px,calc(100vw - 20px));height:94dvh;max-height:94dvh;min-width:0;resize:none;overflow-y:auto;pointer-events:auto}.exam-editor-panel .panel-header{position:sticky;top:-24px;z-index:2;background:white;padding:12px 0;cursor:default}.exam-editor-panel .exam-task textarea{min-height:110px;width:100%;padding:12px;border:1px solid #9eb9a7;border-radius:6px;background:white;color:#203c34;resize:vertical}.exam-editor-panel .exam-ai summary{cursor:pointer;font-weight:600}.exam-save-top{margin:14px 0}.exam-editor-panel.panel-min{height:94dvh!important}.exam-editor-panel.panel-min>:not(.panel-header){display:revert!important}

/* Only the dedicated grip moves a window; the action bar never captures pointers. */
.widget-handle{position:relative;z-index:15;isolation:isolate;overflow:visible;cursor:default;pointer-events:auto;touch-action:auto}.widget-drag-zone{display:flex;align-items:center;gap:5px;flex:1;min-width:0;cursor:grab;touch-action:none}.widget-drag-zone>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.widget-handle>button{position:relative;z-index:1;pointer-events:auto;touch-action:manipulation;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.widget-handle>button>svg{pointer-events:none;flex-shrink:0;width:18px;height:18px}.widget.exam .widget-handle{min-height:40px;height:40px;gap:3px;flex-shrink:0}.widget.exam .widget-handle>button{min-width:34px;min-height:34px}.widget.exam .exam-page-body{position:relative;z-index:0}.widget.exam .exam-actions{z-index:1}
/* The transparent board status row overlaps windows near the top of the board.
   Only its actual controls may receive clicks; its empty area must pass through. */
.classroom .board-meta{pointer-events:none}
.classroom .board-meta button,.classroom .board-meta a,.classroom .board-meta input,.classroom .board-meta select{pointer-events:auto}
.package-card{padding:16px;border:1px solid #c9dacd;border-radius:10px;margin:16px 0}.legal-links{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;padding:6px}.legal-links a{color:#365947;text-transform:capitalize}
