.teacher-page{min-height:100vh}.teacher-lock{position:relative;z-index:3;min-height:100vh;display:grid;place-items:center;padding:20px}.teacher-lock-card{width:min(460px,94vw);background:#fff;border:4px solid var(--navy);border-radius:24px;box-shadow:0 14px 0 rgba(23,36,95,.18);padding:28px;text-align:center}.teacher-lock-card img{width:150px}.teacher-lock-card h1{margin:8px 0;font:700 2rem Fredoka}.teacher-lock-card p{color:var(--muted);font-weight:700}.teacher-lock-card form{display:grid;gap:12px;margin:20px 0}.teacher-lock-card input{padding:14px;border:3px solid var(--navy);border-radius:13px;font:900 1.1rem Nunito;text-align:center}.teacher-lock-card a{font-weight:900;color:var(--navy)}.teacher-error{min-height:22px;color:#ba2636;font-weight:900}
.teacher-app{position:relative;z-index:3;min-height:100vh}.teacher-main{min-width:0;padding:14px 18px}.teacher-top{display:flex;align-items:center;gap:12px;max-width:1560px;margin:0 auto 12px;background:#fff;border:3px solid var(--navy);border-radius:18px;padding:10px 14px}.teacher-top>div{flex:1}.teacher-top h1{margin:0;font:700 1.45rem Fredoka}.teacher-menu-button{display:grid;place-items:center;width:42px;height:42px;border:3px solid var(--purple);border-radius:11px;background:#fff;color:var(--purple);font:900 1.35rem/1 Fredoka;box-shadow:0 3px 0 var(--navy);cursor:pointer}
.teacher-sidebar{position:fixed;z-index:60;left:0;top:0;width:250px;height:100vh;background:#faf9ff;border-right:4px solid var(--purple);padding:18px 14px;display:flex;flex-direction:column;transform:translateX(-105%);transition:.2s transform;box-shadow:12px 0 30px rgba(23,36,95,.18)}.teacher-sidebar.open{transform:translateX(0)}.teacher-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:2px 2px 16px}.teacher-sidebar-head strong{display:block;font:700 1.12rem Fredoka;margin-top:3px}.teacher-drawer-close{width:34px;height:34px;border:2px solid var(--purple);border-radius:9px;background:#fff;color:var(--purple);font:900 1.1rem Nunito;cursor:pointer}.teacher-sidebar nav{display:grid;gap:7px}.teacher-sidebar nav button,.logout-btn{border:2px solid transparent;border-radius:11px;background:transparent;padding:10px 11px;text-align:left;font:900 .9rem Nunito;color:var(--navy);cursor:pointer}.teacher-sidebar nav button.active,.teacher-sidebar nav button:hover{background:#fff;border-color:var(--purple);box-shadow:0 2px 0 var(--purple)}.teacher-side-spacer{flex:1}.logout-btn{border-color:#d7d9ef;background:#fff}.teacher-drawer-scrim{position:fixed;z-index:55;inset:0;background:rgba(16,18,48,.34);opacity:0;pointer-events:none;transition:.2s}.teacher-drawer-scrim.open{opacity:1;pointer-events:auto}
.teacher-content{max-width:1560px;margin:auto;background:rgba(255,255,255,.96);border:3px solid var(--navy);border-radius:20px;padding:14px;min-height:74vh}.teacher-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:center}.teacher-hero h2{font:700 clamp(2rem,4vw,3.2rem) Fredoka;margin:.2em 0}.teacher-hero p{font-weight:700;color:var(--muted);max-width:700px}.tool-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.tool-card{border:3px solid var(--navy);border-radius:18px;background:#fff;padding:18px;text-decoration:none;color:var(--navy);box-shadow:0 5px 0 var(--navy)}.tool-card h3{font:700 1.25rem Fredoka;margin:2px 0 5px}.tool-card p{margin:0;color:var(--muted);font-weight:700}
.banks-layout{display:grid;grid-template-columns:190px 1fr;gap:12px;min-height:650px}.banks-nav{border:3px solid var(--purple);border-radius:14px;background:#faf8ff;padding:7px;overflow:auto;max-height:calc(100vh - 170px);position:sticky;top:10px}.banks-nav-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:2px 4px 7px}.banks-nav-head h3{font:700 .95rem Fredoka;margin:0}.banks-nav-head button{width:28px;height:28px;border:2px solid var(--purple);background:#fff;border-radius:8px;color:var(--purple);font-weight:900}.tree-row{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:2px;margin:1px 0}.tree-row.unit{padding-left:10px}.tree-toggle{width:22px;height:22px;border:0;background:transparent;color:var(--purple);font:900 .9rem Nunito;cursor:pointer;padding:0}.tree-toggle.open{transform:rotate(90deg)}.tree-label{border:0;background:transparent;text-align:left;padding:5px 4px;border-radius:7px;font:800 .75rem Nunito;color:var(--navy);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-label.book{font-weight:900}.tree-label:hover,.tree-label.active{background:#eee8ff;color:#5f3fc9}.tree-children{display:none}.tree-children.open{display:block}.bank-tree-set{display:block;width:calc(100% - 20px);margin-left:20px;border:0;background:transparent;text-align:left;padding:5px 7px;border-radius:7px;font:800 .71rem Nunito;color:var(--navy);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-tree-set:hover,.bank-tree-set.active{background:#e8defe;color:#5f3fc9}
.banks-view{min-width:0}.crumbs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:2px 0 10px;font-weight:900;color:var(--muted)}.crumbs button{border:0;background:transparent;color:var(--purple);font-weight:900;cursor:pointer;padding:0}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:10px}.library-card{--card-primary:var(--purple);position:relative;border:3px solid var(--navy);border-radius:14px;background:#fff;padding:12px 12px 12px 18px;text-align:left;color:var(--navy);box-shadow:0 3px 0 var(--navy);overflow:hidden;min-height:108px}.library-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--card-primary)}.library-card h3{margin:0;font:700 1rem/1.15 Fredoka}.library-card p{margin:6px 0 0;color:var(--muted);font-weight:800;font-size:.78rem}.library-card em{color:var(--purple);font-style:normal}.book-card,.unit-card{cursor:pointer;display:flex;flex-direction:column;justify-content:center}.unit-card{padding-top:36px}.unit-number{position:absolute;left:18px;top:10px;min-width:30px;height:23px;border-radius:7px;background:var(--card-primary);color:#fff;display:grid;place-items:center;font:900 .7rem Nunito}.set-card{padding:0 0 0 8px;display:flex;flex-direction:column}.set-card-main{display:flex;flex-direction:column;justify-content:center;flex:1;width:100%;border:0;background:#fff;padding:12px 12px 8px;text-align:left;color:var(--navy);cursor:pointer;min-height:72px}.set-card-main h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.3em}.set-card-actions{display:flex;justify-content:flex-end;align-items:center;min-height:38px;padding:6px 8px;border-top:2px solid #ecebf6;background:#fff}.set-card-actions button{border:2px solid var(--purple);background:#fff;color:var(--purple);border-radius:7px;padding:4px 8px;font:900 .68rem Nunito;cursor:pointer}.set-card-actions button.move{margin-left:auto}
.set-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px;padding:11px 12px;border:3px solid var(--purple);border-radius:14px;background:#fff}.set-view-head h2{margin:2px 0 2px;font:700 1.3rem Fredoka}.set-view-head p{margin:0;color:var(--muted);font-weight:800}.set-manager-actions{display:flex;gap:7px;flex-wrap:wrap}.action-btn.purple{background:var(--purple);color:#fff}.action-btn.danger{background:#fff0f1;color:#a91d31;border-color:#a91d31}.question-list.compact{display:grid;gap:8px}.compact-question{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,220px);gap:12px;border:3px solid var(--navy);border-radius:14px;background:#fff;padding:10px 11px}.compact-question h3{margin:0 0 8px;font:700 .94rem Fredoka}.question-copy{min-width:0}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.answer-option{position:relative;border:2px solid #d7d7e8;border-radius:9px;padding:7px 9px;background:#fbfbff;font:800 .79rem Nunito;min-height:38px;display:flex;align-items:center;gap:7px}.answer-option.correct{border:3px solid #39a653;background:#f3fff0}.answer-option img{width:42px;height:34px;object-fit:contain;margin-left:auto;cursor:zoom-in}.answer-option audio{width:110px}.question-side-image{width:100%;height:100%;max-height:132px;object-fit:contain;border:2px solid #d5d8e8;border-radius:10px;background:#f6f7fc;cursor:zoom-in;align-self:stretch}.open-answer{border:3px solid #39a653;background:#f3fff0;border-radius:9px;padding:8px;font-weight:900;color:#28723b}.compact-question:not(:has(.question-side-image)){grid-template-columns:1fr}
.inline-edit-set-name{display:grid;grid-template-columns:auto minmax(220px,420px);gap:8px;align-items:center}.inline-edit-set-name input,.inline-question textarea,.inline-question input,.inline-question select{border:2px solid var(--navy);border-radius:8px;background:#fff;padding:7px 8px;font:800 .79rem Nunito;color:var(--navy);width:100%}.inline-question textarea{min-height:68px;resize:vertical}.inline-question .answer-option{display:block;padding:6px}.inline-question .answer-option input{margin-top:4px}.inline-media{display:grid;gap:6px;margin-top:7px}.inline-media label{font:900 .69rem Nunito;color:var(--muted)}.inline-question-image-wrap{display:grid;gap:7px}.inline-question-image-wrap img{width:100%;max-height:150px;object-fit:contain;border:2px solid #d5d8e8;border-radius:10px;background:#f6f7fc}.inline-editor-actions{display:flex;gap:7px;justify-content:flex-end;margin:0 0 10px;position:sticky;top:6px;z-index:6;background:rgba(255,255,255,.96);padding:7px;border-radius:12px}
.teacher-lightbox{width:min(920px,95vw);max-height:92vh;border:4px solid var(--purple);border-radius:18px;background:#fff;padding:16px}.teacher-lightbox::backdrop{background:rgba(17,22,56,.72)}.teacher-lightbox img{display:block;max-width:100%;max-height:82vh;margin:auto;object-fit:contain}.teacher-lightbox button{position:absolute;right:10px;top:10px;width:38px;height:38px;border:3px solid var(--navy);border-radius:10px;background:#fff;font-weight:900;z-index:2}
.manager-dialog{width:min(760px,94vw);max-height:88vh;border:4px solid var(--purple);border-radius:18px;padding:0;background:#fff}.manager-dialog::backdrop{background:rgba(17,22,56,.6)}.manager-dialog-head{position:sticky;top:0;z-index:3;background:#f5f0ff;border-bottom:3px solid var(--purple);padding:12px 15px;display:flex;align-items:center;justify-content:space-between}.manager-dialog-head h2{margin:2px 0;font:700 1.25rem Fredoka}.dialog-x{width:36px;height:36px;border:3px solid var(--navy);border-radius:9px;background:#fff;font-weight:900}.manager-dialog-body{padding:14px;overflow:auto}.manager-field{display:grid;gap:5px;margin-bottom:12px;font-weight:900}.manager-field input,.manager-field select,.manager-field textarea{border:2px solid var(--navy);border-radius:8px;padding:9px}.manager-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.manager-actions.sticky{position:sticky;bottom:0;background:#fff;padding:10px 0}.teacher-toast{position:fixed;z-index:100;right:18px;bottom:18px;transform:translateY(120px);opacity:0;background:#1c245f;color:#fff;padding:11px 16px;border-radius:12px;border:3px solid #fff;box-shadow:0 4px 0 #10163c;font-weight:900;transition:.18s}.teacher-toast.show{transform:none;opacity:1}.teacher-toast.error{background:#a91d31}.upload-bank{display:grid;gap:18px;max-width:900px}.upload-bank h2{font:700 2rem Fredoka;margin:4px 0}.upload-bank p{font-weight:700;color:var(--muted)}.upload-drop{display:grid;place-items:center;min-height:220px;border:4px dashed var(--purple);border-radius:20px;background:#faf8ff;text-align:center;cursor:pointer}.upload-drop.drag{background:#efe7ff}.upload-drop input{display:none}.upload-icon{font-size:3rem;color:var(--purple)}.upload-drop strong{font:700 1.2rem Fredoka}.upload-preview{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:stretch}.hidden{display:none!important}
@media(max-width:1000px){.banks-layout{grid-template-columns:175px 1fr}.compact-question{grid-template-columns:1fr 150px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}@media(max-width:760px){.teacher-main{padding:10px}.teacher-hero{grid-template-columns:1fr}.tool-cards{grid-template-columns:1fr}.banks-layout{grid-template-columns:1fr}.banks-nav{position:static;max-height:220px}.compact-question{grid-template-columns:1fr}.question-side-image{max-height:180px}.upload-preview{grid-template-columns:1fr}.teacher-top{padding:9px}.teacher-content{padding:10px}.library-grid{grid-template-columns:1fr 1fr}.inline-edit-set-name{grid-template-columns:1fr}}@media(max-width:520px){.library-grid{grid-template-columns:1fr}.teacher-top .action-btn{font-size:.72rem;padding:8px}.answer-grid{grid-template-columns:1fr}}
/* ==== v18.3 inline answer/media editing ==== */
.inline-question{position:relative;transition:background .15s,border-color .15s,box-shadow .15s}
.inline-question.incomplete{background:#fff1f3;border-color:#d84a5d;box-shadow:inset 0 0 0 2px rgba(216,74,93,.08)}
.inline-question.incomplete::before{content:"Choose the correct answer";position:absolute;right:10px;top:8px;color:#a91d31;background:#ffe0e5;border:2px solid #d84a5d;border-radius:8px;padding:4px 7px;font:900 .66rem Nunito;z-index:2}
.inline-question.attention{animation:questionAttention .45s ease 2}
@keyframes questionAttention{50%{transform:translateX(4px);box-shadow:0 0 0 5px rgba(216,74,93,.18)}}
.editable-question-copy{display:grid;gap:9px}
.editable-question-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:start}
.question-field{min-width:0}.question-field textarea{margin-top:4px}
.question-media-rail,.answer-media-rail{display:grid;gap:6px;align-content:start;position:relative}
.answer-media-rail{flex:0 0 32px}
.media-tool-wrap{position:relative}
.media-icon-btn{width:32px;height:32px;padding:5px;border:2px solid var(--navy);border-radius:8px;background:#fff;color:var(--navy);display:grid;place-items:center;cursor:pointer;box-shadow:none}
.media-icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.media-icon-btn.has-media{background:#eee7ff;border-color:var(--purple);color:var(--purple)}
.media-icon-btn:hover{background:#f4efff;border-color:var(--purple);color:var(--purple)}
.media-popover{position:absolute;z-index:30;left:38px;top:0;width:min(330px,70vw);padding:9px;border:3px solid var(--purple);border-radius:12px;background:#fff;box-shadow:0 7px 22px rgba(23,36,95,.2);display:grid;gap:7px}
.answer-media-rail .media-popover{left:36px}
.media-popover-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.media-popover-head strong{font:800 .78rem Fredoka}.media-close{width:27px;height:27px;border:2px solid var(--navy);border-radius:7px;background:#fff;padding:0;font-weight:900;box-shadow:none}
.media-url-input{border:2px solid var(--navy)!important;border-radius:8px!important;padding:7px!important;font-size:.74rem!important}
.paste-zone{border:2px dashed #b8addf;border-radius:8px;background:#faf8ff;padding:10px;text-align:center;color:#695f8e;font:800 .69rem Nunito;outline:none}.paste-zone:focus{border-color:var(--purple);background:#f1eaff}
.media-preview-slot{min-height:0}.media-preview-slot img{display:block;max-width:100%;max-height:110px;margin:auto;border:2px solid #d8d8e8;border-radius:8px;object-fit:contain;cursor:zoom-in}.media-preview-slot audio{width:100%;height:34px}
.media-popover-actions{display:flex;justify-content:flex-end;gap:6px}.media-popover-actions button{border:2px solid var(--purple);border-radius:7px;background:#fff;color:var(--purple);padding:5px 8px;font:900 .68rem Nunito;box-shadow:none}.media-popover-actions .media-apply{background:var(--purple);color:#fff}
.editable-answer-grid{align-items:stretch}.editable-answer{display:flex!important;align-items:stretch!important;gap:7px!important;cursor:pointer;padding:7px!important;min-height:70px!important;background:#fff!important;border:2px solid #d7d7e8!important;transition:border-color .12s,background .12s,box-shadow .12s}
.editable-answer.correct{border:3px solid #39a653!important;background:#f1fff2!important;box-shadow:inset 0 0 0 1px rgba(57,166,83,.12)}
.editable-answer.correct .editable-answer-body>span{color:#23783a}.editable-answer.correct .editable-answer-body>span::after{content:" · Correct";font-weight:900;color:#23783a}
.editable-answer-body{display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1}.editable-answer-body>span{font:900 .68rem Nunito;color:var(--muted);margin-bottom:3px}.editable-answer-body input{margin:0!important}
@media(max-width:760px){.media-popover{position:fixed;left:50%!important;top:50%!important;transform:translate(-50%,-50%);width:min(360px,92vw)}.editable-question-row{grid-template-columns:34px 1fr}.answer-media-rail{flex-basis:30px}.inline-question.incomplete::before{position:static;grid-column:1/-1;justify-self:start;margin-bottom:4px}}
