@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#182a3f;--lime:#96beeb;--cream:#f1f4f8;--ink:#192737;--muted:#737980;--line:#dfe3e7;--orange:#f09b6b;--white:#fff;--radius:20px}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px 'Be Vietnam Pro',sans-serif;line-height:1.7}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{line-height:1.3;letter-spacing:-.04em}h1{font-size:56px;font-weight:700}h2{font-size:36px}h3{font-size:20px}p{color:var(--muted)}.container{max-width:1240px;margin:auto;padding:0 40px}.announcement{background:var(--green);color:#dfe6ef;text-align:center;padding:8px 16px;font-size:11px;letter-spacing:.03em}.announcement span{color:var(--lime)}header{background:#fffdf8;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}nav{height:88px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brandmark{width:40px;height:43px;background:var(--green);color:var(--lime);border-radius:12px 4px 12px 4px;display:grid;place-items:center;font-size:24px;font-weight:800;transform:rotate(-5deg)}.brand strong{font-size:17px;letter-spacing:-.05em;display:block;line-height:1.3}.brand small{font-size:9px;letter-spacing:2px;color:var(--muted)}.navlinks{display:flex;gap:21px;margin-left:auto;font-size:12px;font-weight:500;align-items:center}.navlinks a{position:relative;white-space:nowrap}.navlinks a.active{color:#465b74}.navlinks a.active:after{content:'';height:4px;width:4px;border-radius:50%;background:#465b74;position:absolute;bottom:-12px;left:50%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:13px 21px;border-radius:9px;background:var(--green);color:white;font-size:12px;font-weight:600;border:1px solid transparent;line-height:1.5;transition:.2s}.btn:hover{transform:translateY(-2px);background:#28405b}.btn.light{background:white;color:var(--green);border-color:var(--line)}.btn.lime{background:var(--lime);color:var(--green)}.btn.small{padding:8px 14px;font-size:11px}.btn.danger{background:#fff0ee;color:#a43b39;border-color:#f6d6d1}.btn.ghost{background:transparent;color:var(--green);border-color:var(--line)}.menu{display:none}.eyebrow{display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:600;color:#546271;margin-bottom:20px}.eyebrow:before{content:'';width:6px;height:6px;background:#5e7691;border-radius:50%}.hero{position:relative;overflow:hidden;padding:64px 0 0;background:radial-gradient(ellipse at 80% 30%,#dce4ee,transparent 50%)}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.hero h1{max-width:590px;margin-bottom:22px}.hero h1 em{font-style:normal;color:#476485;position:relative}.hero h1 em:after{content:'';height:8px;background:#a4c3e6;position:absolute;left:0;right:0;bottom:1px;z-index:-1}.hero p{font-size:14px;max-width:435px;line-height:1.9}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.hero-notes{display:flex;gap:21px;font-size:10px;color:#646b73;padding:15px 0 36px}.hero-notes span:before{content:'✓';margin-right:7px;color:#4c6785}.hero-art{position:relative;padding:10px 10px 36px}.hero-art svg{width:100%;height:auto;display:block}.float-note{position:absolute;box-shadow:0 12px 35px #212e3d10;background:#fffdf6;border:1px solid #fff;border-radius:13px;padding:12px 17px;font-size:11px;line-height:1.5}.float-note strong{display:block;font-size:13px}.note-a{left:0;top:19%}.note-b{right:-8px;bottom:15%}.float-note .star{color:#dc9961}.hero-bottom{display:flex;border-top:1px solid #d7dde3;align-items:center;justify-content:space-between;padding:26px 0;margin-top:20px}.hero-bottom>p{font-size:10px;max-width:170px;margin:0}.stat{display:flex;align-items:center;gap:13px}.stat strong{font-size:27px;font-family:Manrope,sans-serif;letter-spacing:-1px}.stat small{font-size:10px;color:var(--muted);max-width:90px;line-height:1.6}.section{padding:74px 0}.white{background:white}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.section-heading h2{margin-bottom:8px}.section-heading p{margin-bottom:0;font-size:12px}.text-link{font-size:12px;font-weight:600;display:inline-flex;gap:20px;align-items:center}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 30px}.chip{background:transparent;border:1px solid var(--line);padding:9px 17px;border-radius:7px;font-size:11px;color:#697079}.chip.active{background:var(--green);color:white;border-color:var(--green)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.2s}.card:hover{box-shadow:0 12px 30px #17283b10;transform:translateY(-3px)}.course-art{height:175px;position:relative;overflow:hidden;padding:25px;background:#dae2ec;display:flex;align-items:center;justify-content:space-between}.course-art b{font-family:Manrope,sans-serif;font-size:53px;font-weight:800;letter-spacing:-4px;line-height:1}.course-art b small{display:block;font:10px 'Be Vietnam Pro';letter-spacing:2px;margin-top:9px}.course-art .orb{border:1px solid currentColor;border-radius:50%;width:112px;height:112px;display:grid;place-items:center;font-size:51px;transform:rotate(-12deg);background:#ffffff38}.course-art:after{content:'+';position:absolute;right:110px;bottom:5px;font-size:60px;font-weight:300;opacity:.2}.course-art.peach{background:#f6dfd0;color:#8e513a}.course-art.blue{background:#dce8ed;color:#3f6e80}.course-art.lilac{background:#e8e2f2;color:#71618c}.course-art.yellow{background:#ccdef3;color:#8b7841}.card-body{padding:22px}.tag{font-size:9px;padding:4px 9px;display:inline-block;border-radius:5px;background:#e8edf3;color:#506379;font-weight:600}.tag.peach{background:#fcf0e6;color:#b57642}.tag.blue{background:#eaf0f7;color:#5277a0}.card h3{font-size:17px;margin:13px 0 8px;letter-spacing:-.025em}.card p{font-size:11px;margin-bottom:17px}.meta{display:flex;gap:18px;font-size:10px;color:var(--muted);padding-bottom:17px;border-bottom:1px solid var(--line)}.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:17px;font-size:11px}.card-foot strong{font-size:12px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.feature-visual{background:#dfe6ed;border-radius:140px 140px 20px 20px;padding:45px 35px 0;position:relative;min-height:340px;display:grid;place-items:center}.big-letters{font-family:Manrope;font-size:100px;letter-spacing:-8px;line-height:1.3;transform:rotate(-8deg);color:#314153}.big-letters span{color:#cf9470}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:30px}.feature-item .icon{font-size:20px;width:42px;height:42px;display:grid;place-items:center;background:#e3eaf1;border-radius:10px;margin-bottom:12px}.feature-item h3{font-size:13px;letter-spacing:-.02em;margin-bottom:7px}.feature-item p{font-size:11px;line-height:1.8}.teacher-block{background:var(--green);color:white;border-radius:24px;display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;padding:48px;align-items:center}.teacher-block p{color:#bbc2cb;font-size:13px}.teacher-block h2{font-size:36px}.teacher-block .eyebrow{color:var(--lime)}.teacher-avatar{background:#bccfe4;border-radius:120px 120px 15px 15px;min-height:290px;position:relative;overflow:hidden;display:grid;place-items:center}.teacher-avatar svg{width:90%;max-height:290px}.news-card{padding:25px;background:#f0f3f7;border:1px solid var(--line);border-radius:16px}.news-card .date{font-size:10px;color:#767e87}.news-card h3{font-size:17px;margin-top:20px}.news-card p{font-size:11px}.cta{background:var(--lime);border-radius:20px;padding:38px 45px;display:flex;justify-content:space-between;align-items:center;gap:20px}.cta h2{font-size:29px;margin:0 0 8px}.cta p{color:#4d5d70;margin:0;font-size:12px}footer{padding:48px 0 20px;background:#fffdf8;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:45px}.footer-grid p,.footer-grid a{font-size:11px;display:block;color:#767b81}.footer-grid h4{font-size:12px;margin-bottom:20px}.footer-grid .brand{margin-bottom:18px}.copyright{margin-top:35px;padding-top:20px;border-top:1px solid var(--line);font-size:10px;color:#838990;display:flex;justify-content:space-between}.page-head{padding:46px 0;background:#e5ebf1;border-bottom:1px solid var(--line)}.page-head h1{font-size:38px;margin-bottom:12px}.page-head p{font-size:12px;max-width:620px}.crumb{font-size:10px;color:#7c8691;margin-bottom:22px}.filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:25px}.filters input{flex:1;min-width:200px}input,select,textarea{border:1px solid #dadee3;border-radius:8px;padding:11px 13px;background:white;color:var(--ink);width:100%;font-size:12px}textarea{min-height:100px;resize:vertical}select{width:auto}.filters select{min-width:160px}label{font-size:11px;font-weight:500;display:block;margin-bottom:6px}.field{margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.panel{padding:27px;background:white;border:1px solid var(--line);border-radius:16px}.panel h3{font-size:18px}.panel p{font-size:12px}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:28px}.notice{background:#e8eef4;border:1px solid #cbd8e6;border-radius:10px;padding:13px 17px;font-size:11px;color:#536478;margin-bottom:25px}.empty{text-align:center;padding:50px 20px;color:var(--muted);grid-column:1/-1}.schedule{display:grid;grid-template-columns:80px 1fr auto;gap:25px;align-items:center;padding:24px;background:white;border:1px solid var(--line);border-radius:13px;margin-bottom:14px}.datebox{background:#dfe7f1;border-radius:10px;text-align:center;padding:9px}.datebox strong{font-size:26px;display:block;line-height:1.4}.datebox span{font-size:9px}.schedule h3{font-size:16px;margin:4px 0}.schedule p{font-size:11px;margin:0}.contact-items{display:grid;gap:20px;padding:12px 0}.contact-items strong{font-size:12px;display:block}.contact-items span{font-size:12px;color:var(--muted)}.overlay{position:fixed;inset:0;background:#101e2d6b;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}.overlay[hidden]{display:none}.dialog{background:var(--cream);border-radius:20px;padding:30px;max-width:640px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 30px 100px #0003}.dialog.large{max-width:850px}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:20px}.dialog-head h2{font-size:24px;margin:0}.close{background:#e3e8ed;border-radius:50%;width:30px;height:30px;font-size:18px;color:var(--green);flex-shrink:0}#toast{position:fixed;right:25px;bottom:25px;background:var(--green);color:white;padding:14px 22px;border-radius:10px;z-index:200;box-shadow:0 10px 30px #0002;display:none;font-size:12px;max-width:90vw}.workspace{display:grid;grid-template-columns:235px 1fr;min-height:calc(100vh - 88px)}.sidebar{border-right:1px solid var(--line);padding:30px 17px;background:#fffdf8}.sidebar .group-label{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:#949ba3;padding:20px 13px 12px}.sidebar a{display:flex;gap:12px;padding:11px 15px;border-radius:8px;font-size:11px;margin-bottom:5px;color:#757c85}.sidebar a.active{background:var(--green);color:white}.sidebar .demo-label{font-size:10px;padding:13px;background:#dfe8f2;border-radius:10px;margin-top:24px;color:#887c52}.workspace-main{padding:35px 38px;min-width:0;background:#f0f3f6}.workspace-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px}.workspace-title h1{font-size:28px;margin:0 0 5px}.workspace-title p{font-size:11px;margin:0}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:27px}.kpi{padding:20px;background:white;border:1px solid var(--line);border-radius:13px}.kpi small{font-size:10px;color:#7e8791}.kpi strong{display:block;font-size:29px;letter-spacing:-1px;margin-top:10px}.kpi em{font-size:9px;font-style:normal;color:#7f8a96}.table-wrap{overflow-x:auto;background:white;border:1px solid var(--line);border-radius:13px}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left;white-space:nowrap}th{padding:14px 18px;background:#f5f7fa;font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#7d8691;font-weight:500;border-bottom:1px solid var(--line)}td{padding:16px 18px;border-bottom:1px solid #e9ecf0;max-width:290px;overflow:hidden;text-overflow:ellipsis}tr:last-child td{border-bottom:0}td .btn{margin-right:5px}.badge{font-size:9px;background:#e6ecf3;color:#49627e;padding:5px 9px;border-radius:5px}.badge.wait{background:#fff1dc;color:#a57e40}.progress{height:5px;background:#e2e7ed;border-radius:5px;margin:12px 0}.progress span{height:100%;display:block;border-radius:5px;background:#537499}.account-box{padding:15px;background:#dfe6ee;border-radius:10px;display:flex;gap:12px;align-items:center;font-size:11px;margin-bottom:20px}.avatar{width:36px;height:36px;background:#c1cfdf;border-radius:50%;display:grid;place-items:center;font-weight:600}.account-box small{color:var(--muted);display:block;font-size:9px}.lesson{display:flex;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}.lesson .number{height:35px;width:35px;border-radius:8px;background:#e5eaf0;display:grid;place-items:center;font-size:12px}.lesson h4{font-size:12px;margin:0}.lesson p{font-size:10px;margin:3px 0 0}.exam-layout{display:grid;grid-template-columns:1fr 250px;gap:25px}.question{padding:27px;border:1px solid var(--line);background:white;border-radius:15px;margin-bottom:20px}.question h3{font-size:16px;letter-spacing:0;margin:15px 0 20px}.option{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:9px;margin-bottom:10px;cursor:pointer;font-size:12px;font-weight:400}.option:has(input:checked){background:#e5ecf3;border-color:#6a87a9}.option input{width:auto;accent-color:var(--green)}.exam-side{position:sticky;top:120px;align-self:start}.timer{font:700 32px Manrope;letter-spacing:1px}.question-nav{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}.question-nav a{width:31px;height:31px;border-radius:6px;background:#e2e8ee;display:grid;place-items:center;font-size:10px}.question-nav a.done{background:var(--green);color:white}.result-score{font:700 65px Manrope;color:#496584}.review{padding:18px;border-radius:10px;background:#e8edf3;margin:15px 0;font-size:12px}.review.wrong{background:#fbefea}.review p{margin:5px 0;font-size:11px}.auth-shell{max-width:470px;margin:55px auto;padding:30px}.auth-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:25px}.auth-tabs button{flex:1;background:none;padding:13px;font-size:13px;color:var(--muted);border-bottom:2px solid transparent}.auth-tabs button.active{border-color:var(--green);color:var(--green)}.demo-strip{background:#f0ecdb;color:#887a4e;text-align:center;padding:7px 15px;font-size:9px}.mobile-nav{display:none}.auth-error{color:#ae443d;font-size:11px}.detail-heading{font-size:30px}.checklist{list-style:none;padding:0;font-size:12px}.checklist li{padding:8px 0}.checklist li:before{content:'✓';color:#577597;margin-right:12px}.article-body{font-size:13px;line-height:1.95;white-space:pre-wrap;color:#5f6873}.question-editor{padding:20px;background:#ebeff3;border:1px solid var(--line);border-radius:12px;margin-bottom:15px}.question-editor h4{font-size:12px;margin-bottom:12px}.question-editor .form-grid{gap:10px}.question-editor input{margin-bottom:10px}.question-editor select{width:100%}@media(min-width:1500px){.container{max-width:1320px}.hero h1{font-size:63px}}@media(max-width:1100px){.container{padding:0 25px}.navlinks{gap:12px;font-size:10px}nav{gap:15px}.brand strong{font-size:15px}.hero h1{font-size:46px}.hero-grid{gap:15px}.note-b{right:0}.workspace-main{padding:25px}.workspace{grid-template-columns:200px 1fr}.grid{gap:15px}.footer-grid{gap:25px}}@media(max-width:850px){.navlinks{display:none}.menu{display:block;margin-left:auto;background:none;font-size:25px;color:var(--green)}nav{height:74px}.mobile-nav.open{display:grid;grid-template-columns:1fr 1fr;padding:15px 25px;gap:15px;background:white;font-size:12px}.hero-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:38px}.float-note{font-size:8px;padding:8px}.float-note strong{font-size:10px}.hero p{font-size:12px}.hero-notes{gap:10px;font-size:8px}.hero-bottom{gap:15px}.stat{display:block}.stat strong{font-size:24px}.stat small{display:block}.grid{grid-template-columns:repeat(2,1fr)}.feature-grid{gap:25px}.feature-list{gap:15px}.teacher-block{gap:25px;padding:30px}.footer-grid{grid-template-columns:1.5fr 1fr}.workspace{grid-template-columns:175px 1fr}.sidebar{padding:20px 9px}.sidebar a{padding:10px;font-size:10px}.workspace-main{padding:22px 17px}.kpis{grid-template-columns:repeat(2,1fr)}.workspace .grid{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.exam-layout{grid-template-columns:1fr}.exam-side{position:static;grid-row:1}.exam-side .question-nav{display:none}.exam-side .panel{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:15px}.teacher-block h2{font-size:28px}.section{padding:50px 0}}@media(max-width:580px){.container{padding:0 20px}.announcement{font-size:9px}.brand strong{font-size:15px}.brandmark{width:34px;height:36px}.brand small{font-size:8px}nav>.btn{font-size:9px;padding:10px 12px}.hero{padding-top:35px}.hero-grid{grid-template-columns:1fr}.hero h1{font-size:43px;max-width:370px}.hero p{font-size:12px}.hero-art{max-width:380px;margin:auto;padding-bottom:10px;margin-top:-10px}.hero-notes{padding-bottom:5px;font-size:9px}.hero-bottom{margin-top:0;padding:20px 0;display:grid;grid-template-columns:repeat(3,1fr)}.hero-bottom>p{display:none}.stat strong{font-size:24px}.stat small{font-size:8px}.eyebrow{font-size:9px;margin-bottom:15px}.section-heading{align-items:start}.section-heading h2,h2{font-size:27px}.section-heading p{font-size:11px}.section-heading>.text-link{font-size:9px;gap:6px;white-space:nowrap;margin-top:8px}.grid{grid-template-columns:1fr;gap:18px}.course-art{height:180px}.feature-grid{grid-template-columns:1fr}.feature-visual{min-height:220px;padding:20px}.big-letters{font-size:85px}.feature-list{gap:22px}.teacher-block{grid-template-columns:1fr;padding:25px}.teacher-avatar{min-height:230px;max-width:230px;width:100%;margin:auto}.teacher-avatar svg{max-height:230px}.cta{display:block;padding:28px}.cta .btn{margin-top:20px}.cta h2{font-size:25px}.footer-grid{gap:25px;grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.copyright{display:block;font-size:9px}.copyright span{display:block;margin-top:8px}.page-head{padding:30px 0}.page-head h1{font-size:30px}.schedule{grid-template-columns:60px 1fr;gap:15px;padding:17px}.schedule .btn{grid-column:2;justify-self:start}.schedule h3{font-size:14px}.filters{gap:8px}.filters select{flex:1;min-width:130px}.form-grid{grid-template-columns:1fr}.workspace{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);display:flex;overflow-x:auto;gap:6px;padding:12px}.sidebar .group-label,.sidebar .demo-label,.sidebar .account-box{display:none}.sidebar a{white-space:nowrap;flex-shrink:0;margin:0}.workspace-title h1{font-size:23px}.workspace-title{align-items:start}.kpi{padding:16px}.kpi strong{font-size:25px}.dialog{padding:22px}.dialog-head h2{font-size:21px}.section{padding:40px 0}.auth-shell{margin:30px 20px}.exam-side .panel{gap:10px}.timer{font-size:24px}}
/* Hồng Lê — refined learning and management interfaces */
:root{--cream:#f2f5f8;--line:#dee2e7;--green:#172a3f;--muted:#747a81}html{scroll-padding-top:110px}body{font-size:14px}h1,h2,h3{letter-spacing:-.035em}.container{max-width:1300px}nav{height:84px}.hero{padding-top:70px}.hero h1{font-size:58px;line-height:1.2;letter-spacing:-.055em}.hero-grid{gap:60px}.hero-art{padding-top:0}.hero-bottom{padding:30px 0;margin-top:30px}.hero h1 em{color:#4b6583}.hero h1 em:after{height:5px;bottom:-5px}.section{padding:78px 0}.section-heading{margin-bottom:32px}.section-heading h2{font-size:34px}.card{border-radius:17px}.card-body{padding:25px}.card h3{line-height:1.5;letter-spacing:-.025em}.card p{line-height:1.9}.card:hover{transform:translateY(-4px);box-shadow:0 16px 40px #172a3f10}.course-art{height:186px}.btn{min-height:43px;padding:12px 21px;border-radius:9px}.btn.small{min-height:35px;padding:8px 14px}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn:focus-visible,a:focus-visible{outline:3px solid #7997b9}.chip{padding:10px 19px}.tag{letter-spacing:.01em;font-size:10px}.meta{font-size:11px;flex-wrap:wrap}.panel{box-shadow:0 4px 18px #172a3f03}.field{margin-bottom:20px}label{font-size:12px;margin-bottom:8px}input,select,textarea{padding:13px 15px;border-radius:9px;min-height:45px;font-size:12px;transition:border-color .18s,box-shadow .18s}input:focus,textarea:focus,select:focus{border-color:#7188a3;outline:none;box-shadow:0 0 0 3px #758ca620}select{appearance:none;-webkit-appearance:none;padding-right:47px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23556f8b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 17px center;background-size:14px;cursor:pointer}.filters{gap:12px;margin-bottom:27px}.filters input{max-width:600px}.form-grid{gap:0 20px}.teacher-block{padding:50px 65px;gap:60px}.teacher-avatar{padding:0;max-width:320px;width:100%;height:380px;border-radius:160px 160px 16px 16px}.teacher-avatar img{width:100%;height:100%;object-fit:cover;display:block}.photo-preview{height:190px;width:145px;border-radius:70px 70px 12px 12px;overflow:hidden;flex-shrink:0;background:#dde4eb}.photo-preview img{height:100%;width:100%;object-fit:cover}.photo-edit{display:flex;gap:25px;align-items:center}.photo-edit>div:last-child{flex:1}.photo-edit input[type=range]{width:100%;padding:0;accent-color:#465e7a}.photo-edit p{font-size:11px}.admin-header{background:#fff}.admin-header nav{height:76px}.admin-session{margin-left:auto;font-size:11px;display:flex;align-items:center;gap:10px}.status-dot{width:7px;height:7px;background:#58779b;border-radius:50%}.admin-badge{font-size:8px;background:#dbe4ef;color:#445972;letter-spacing:1px;border-radius:4px;padding:4px 6px;vertical-align:middle;margin-left:7px}.workspace{grid-template-columns:240px 1fr;min-height:calc(100vh - 76px)}.sidebar{padding:26px 17px}.sidebar a{min-height:43px;align-items:center;margin-bottom:5px;font-size:12px}.sidebar a>.menu-icon{display:grid;place-items:center;width:20px;font-size:16px}.sidebar .demo-label{background:#e6ecf3;color:#607083;font-size:10px;line-height:1.8}.sidebar .account-box{padding:14px 10px}.workspace-main{padding:38px 40px;background:#f0f3f6}.workspace-title{margin-bottom:30px}.workspace-title h1{font-size:30px}.workspace-title p{letter-spacing:1px;font-size:9px;color:#828b96;margin-bottom:5px}.kpi{padding:22px;border-radius:14px}.kpi strong{font-size:32px}.kpi small{font-size:11px}.table-wrap{border-radius:12px}td{padding:18px 20px;max-width:330px}td strong{font-weight:600}th{padding:15px 20px;background:#f5f7fa;font-size:10px;letter-spacing:0}.table-wrap tr:hover td{background:#f8fafd}.admin-toolbar{display:flex;gap:18px;align-items:center;margin-bottom:24px}.admin-toolbar>span{font-size:11px;color:#778390}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:30px;max-width:760px}.mode-tab{background:white;border:1px solid var(--line);padding:20px 22px;display:flex;gap:17px;align-items:center;text-align:left;border-radius:13px;color:var(--muted)}.mode-tab>span{font-size:23px;width:43px;height:43px;background:#e7ecf1;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.mode-tab strong{font-size:13px;color:var(--ink)}.mode-tab small{font-size:10px;font-weight:400;display:block;margin-top:4px;color:var(--muted)}.mode-tab.active{border-color:#5c7796;background:#e6edf4;box-shadow:0 0 0 1px #5c7796}.mode-tab.active>span{background:var(--green);color:var(--lime)}.access-note{font-size:11px;color:#717f8e;margin:-5px 0 24px}.exam-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.exam-icon{width:45px;height:45px;background:#e2e9f1;color:#496687;border-radius:12px;display:grid;place-items:center;font-size:25px}.overline{font-size:10px;letter-spacing:.3px;color:#7f8995}.exam-card h3{font-size:18px;min-height:52px}.upload-panel{background:#ecf0f5;border:1px solid #d7dee6;border-radius:13px;padding:23px;margin:10px 0 24px}.upload-panel h3{font-size:16px;margin-bottom:15px}.upload-panel p{font-size:11px;line-height:1.8}.upload-label{cursor:pointer}.upload-label input{display:none}.import-box{display:flex;align-items:center;gap:20px;border:1px dashed #aab9ca;padding:18px 20px;border-radius:12px;margin-bottom:23px;background:#f8fafd}.import-box p{font-size:10px;margin:0}.import-error{background:#fff0ed;color:#a25344;border-radius:10px;padding:17px;margin:10px 0 20px;font-size:11px;line-height:1.8}.question-editor{padding:24px;background:white}.question-editor input{margin-bottom:12px}.question-editor h4{font-size:13px}.check-row{display:flex;gap:10px;align-items:center;font-size:12px;font-weight:400;margin:13px 0}.check-row input{width:17px;height:17px;min-height:0;accent-color:var(--green);margin:0}.dialog{max-height:92vh}.dialog.large{max-width:940px}.sticky-actions{position:sticky;bottom:-30px;background:var(--cream);border-top:1px solid var(--line);padding:18px 0;margin-bottom:0;z-index:3}.dialog-head{margin-bottom:28px}.auth-layout{max-width:1060px;margin:65px auto;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:0 30px}.auth-message h1{font-size:42px;line-height:1.3}.auth-message em{font-style:normal;color:#4d6a8b}.auth-message p{font-size:12px;max-width:350px}.auth-message svg{max-width:330px;margin-top:-20px}.auth-card{padding:35px}.auth-card h2{font-size:28px}.auth-card>p{font-size:12px}.divider{text-align:center;border-top:1px solid var(--line);margin:30px 0 15px}.divider span{position:relative;top:-13px;background:white;padding:0 10px;color:var(--muted);font-size:10px}.social-button{border:1px solid var(--line);border-radius:9px;padding:12px 15px;width:100%;display:flex;align-items:center;gap:10px;background:#f7f9fb;color:#626a73;margin-bottom:12px;font-size:11px;text-align:left;cursor:default}.social-button small{font-size:8px;margin-left:auto;color:#8f97a1}.google-symbol{font:700 19px Arial;color:#6682a7}.facebook-symbol{font:700 21px Arial;background:#6c8cb2;border-radius:4px;color:white;width:20px;text-align:center;line-height:21px}.loading-state{text-align:center;padding:80px 20px;color:#6f7e90}[hidden]{display:none!important}@media(max-width:1100px){.hero h1{font-size:48px}.hero-grid{gap:20px}.workspace-main{padding:30px 25px}.workspace{grid-template-columns:215px 1fr}.teacher-block{padding:40px;gap:40px}.teacher-avatar{height:340px}.navlinks{gap:13px}}@media(max-width:850px){.hero h1{font-size:39px}.hero{padding-top:45px}.section{padding:55px 0}.workspace{grid-template-columns:185px 1fr}.sidebar a{font-size:10px;padding:9px}.workspace-main{padding:25px 17px}.teacher-block{padding:30px}.teacher-avatar{height:300px}.auth-layout{gap:30px}.auth-message h1{font-size:34px}.auth-card{padding:25px}.auth-card h2{font-size:24px}.hero-bottom{margin-top:15px}.admin-session{display:none}.admin-header .btn{margin-left:auto}.section-heading h2{font-size:29px}}@media(max-width:580px){.hero h1{font-size:43px}.hero-grid{gap:10px}.hero-art{margin-top:0}.hero-bottom{margin-top:5px}.section{padding:45px 0}.hero-bottom{padding:22px 0}.section-heading h2{font-size:27px}.teacher-block{padding:25px;gap:25px}.teacher-avatar{height:310px;max-width:250px}.workspace{display:block}.sidebar{padding:12px}.sidebar a{font-size:11px;min-height:38px;padding:9px 12px}.workspace-main{padding:25px 18px}.workspace-title h1{font-size:26px}.workspace-title .btn{font-size:10px}.mode-tabs{gap:10px}.mode-tab{padding:14px 12px;gap:10px;align-items:start}.mode-tab>span{width:30px;height:30px;font-size:18px}.mode-tab strong{font-size:11px}.mode-tab small{font-size:8px}.exam-card h3{min-height:0}.admin-toolbar{flex-wrap:wrap;gap:10px}.photo-edit{gap:15px;align-items:start}.photo-preview{width:100px;height:150px}.upload-panel{padding:18px}.import-box{align-items:start;flex-direction:column;gap:10px}.question-editor{padding:18px}.sticky-actions{bottom:-22px}.auth-layout{display:block;margin:30px auto;padding:0 20px}.auth-message{display:none}.auth-card{padding:27px}.auth-card h2{font-size:27px}.admin-header nav{height:70px}.admin-header .btn{font-size:9px;padding:8px}.form-grid{gap:0 14px}.dialog.large{padding:22px}.field{margin-bottom:18px}}
.option input[type=radio]{min-height:0;width:16px;height:16px;flex-shrink:0}.question-nav a{min-height:31px}.photo-edit input[type=range]{min-height:32px}.contact-items span{overflow-wrap:anywhere}.teacher-avatar{justify-self:center}.lesson p{line-height:1.8}.dialog .grid .exam-card{transform:none}.dialog .grid{gap:14px}
.password-input{position:relative}.password-input input{padding-right:65px}.show-password{position:absolute;right:13px;top:50%;transform:translateY(-50%);padding:5px;background:none;color:#54677c;font-size:10px;border-radius:4px}.auth-card .auth-error{font-size:11px;min-height:8px}.auth-tabs button{cursor:pointer}.auth-card button[type=submit]:disabled{opacity:.65}.admin-header nav{gap:15px}.admin-header .admin-session{margin-left:auto}@media(max-width:580px){.admin-header .brand strong{font-size:12px}.admin-header .brand small{font-size:7px}.admin-header nav{gap:8px}.admin-header .btn{font-size:8px;padding:7px 9px}.admin-header .btn.ghost{margin-left:0}}
/* Teaching calendar */
.cal-page{--cal-border:#dde2e8}.cal-intro{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:4px 0 25px}.cal-intro h2{font-size:29px;margin:0 0 9px}.cal-intro p{font-size:12px;margin:0}.cal-zone{font-size:10px;color:#74808d;white-space:nowrap;background:#dfe7f0;padding:9px 13px;border-radius:30px}.cal-warning{font-size:11px;border-color:#e8dfba;background:#f9f5e5;color:#8e7950;line-height:1.9}.cal-warning a{font-weight:600;text-decoration:underline}.cal-filters{display:flex;gap:15px;align-items:end;margin:0 0 25px}.cal-filters>div{flex:1;min-width:0}.cal-filters>div:nth-last-child(-n+2){flex:0 0 130px}.cal-filters label{font-size:10px;color:#6f7b89}.cal-filters select{width:100%;text-overflow:ellipsis}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start}.cal-main{padding:20px;min-width:0;overflow:hidden}.cal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}.cal-toolbar h3{font-size:18px;margin:0;letter-spacing:-.02em}.cal-navigation{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex-shrink:0}.cal-navigation button{font-size:10px;color:#5b6b7d;background:#fff;padding:8px 10px;min-height:34px}.cal-navigation button:first-child,.cal-navigation button:last-child{font-size:20px;padding:3px 11px}.cal-navigation button:hover{background:#e4ebf2}.cal-view-tabs{display:flex;background:#e6ebf1;padding:4px;border-radius:8px;gap:2px}.cal-view-tabs button{font-size:10px;padding:7px 13px;border-radius:5px;background:none;color:#758290}.cal-view-tabs button.active{background:#fff;color:var(--green);box-shadow:0 2px 5px #172a3f10}.cal-secondary{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.cal-secondary label{display:flex;align-items:center;gap:10px;margin:0;font-size:10px;color:#7f8a96}.cal-secondary input{width:155px;font-size:10px;min-height:35px;padding:8px 10px}.cal-secondary .text-link{font-size:10px;background:none;color:#5c6e82}.cal-month{border:1px solid var(--cal-border);border-radius:10px;overflow:hidden}.cal-weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f3f6fa;border-bottom:1px solid var(--cal-border)}.cal-weekday-row span{font-size:10px;padding:11px 4px;text-align:center;color:#768391}.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-month-day{min-height:122px;position:relative;padding:9px 5px 6px;border-right:1px solid var(--cal-border);border-bottom:1px solid var(--cal-border);background:white;min-width:0}.cal-month-day:nth-child(7n){border-right:0}.cal-month-day.outside{background:#f7f9fb}.cal-month-day.outside .cal-day-number{color:#a3acb7}.cal-month-day.selected{box-shadow:inset 0 0 0 1.5px #798fa9;background:#f2f7fc}.cal-day-number{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-size:11px;color:#4c5a69;background:none}.cal-day-number.today{background:var(--green);color:white}.cal-day-number:hover{background:#cbd9ea}.cal-day-number.today:hover{background:#384c63}.cal-day-count{position:absolute;right:5px;top:14px;font-size:8px;color:#808fa0}.cal-cell-events{display:grid;gap:4px;margin-top:7px}.cal-event{display:block;width:100%;text-align:left;border-left:3px solid #6e8aab;padding:8px;border-radius:5px;background:#e4ebf3;color:#40556e;overflow:hidden;font-size:10px;line-height:1.5;transition:filter .15s}.cal-event:hover{filter:brightness(.97)}.cal-event>span{font-size:9px;font-weight:600;display:block;white-space:nowrap}.cal-event>strong{display:block;font-size:10px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px 0}.cal-event>small{display:block;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.cal-event.compact{padding:3px 4px;border-left-width:2px;display:flex;gap:4px;align-items:baseline}.cal-event.compact>span{font-size:8px;flex-shrink:0}.cal-event.compact>strong{font-size:8px;margin:0}.cal-color-1{background:#fbebe0;border-left-color:#dda57b;color:#90694e}.cal-color-2{background:#e6eff5;border-left-color:#7fa2b9;color:#54778e}.cal-color-3{background:#eee8f6;border-left-color:#b5a0d2;color:#846d9f}.cal-color-4{background:#f5efdb;border-left-color:#c8b571;color:#8f7d43}.cal-more,.cal-empty-day{background:none;text-align:left;font-size:8px;color:#8894a1;padding:2px 3px}.cal-more{color:#566b84;font-weight:600}.cal-empty-day{margin-top:12px;font-weight:400}.cal-legend{font-size:9px;color:#8e97a2;display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap;padding:15px 0 0}.cal-legend span:first-child{color:#68809b}.cal-detail{display:grid;gap:18px}.cal-detail .panel{padding:22px}.cal-detail h3{font-size:17px;line-height:1.6;letter-spacing:-.02em}.cal-detail .eyebrow{font-size:8px;margin-bottom:12px}.cal-day-stats{display:flex;gap:40px;border-bottom:1px solid var(--line);padding:4px 0 20px;margin-bottom:3px}.cal-day-stats strong{font:700 27px Manrope,sans-serif}.cal-day-stats small{display:block;font:9px 'Be Vietnam Pro',sans-serif;color:#808fa0;margin-top:8px}.cal-class-card{padding:17px 0;border-bottom:1px solid var(--line)}.cal-class-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.cal-class-head b{font-size:11px;color:#59718c}.cal-class-head button{font-size:9px;background:none;color:#8e99a5;gap:0;padding:0}.cal-class-card h4{font-size:12px;line-height:1.7;margin:9px 0 7px}.cal-class-card p{font-size:10px;line-height:1.9;margin:0 0 5px}.cal-class-card>small{font-size:9px;color:#8e98a3}.cal-no-classes{font-size:11px;color:#8d99a6;padding:23px 0 12px}.cal-free-panel h3{font-size:15px}.cal-free-panel p,.cal-free-panel>small{font-size:10px;line-height:1.9;color:#8894a1}.cal-free-slot{background:#edf3f9;border:1px dashed #b7c8db;border-radius:9px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;width:100%;margin:10px 0;color:#5a7697;text-align:left}.cal-free-slot strong{font-size:11px;display:block}.cal-free-slot small{font-size:9px;display:block;color:#919faf;margin-top:3px}.cal-free-plus{font-size:20px;font-weight:400}.cal-time-scroll{max-height:760px;overflow:auto;border:1px solid var(--line);border-radius:10px}.cal-time-board.weekly{min-width:610px}.cal-time-header{display:grid;grid-template-columns:46px repeat(7,minmax(0,1fr));position:sticky;top:0;z-index:5;background:#f3f6fa;border-bottom:1px solid var(--line)}.cal-time-board.single .cal-time-header{grid-template-columns:46px minmax(0,1fr)}.cal-time-header>span{font-size:9px;padding:24px 5px;text-align:center;color:#8893a0}.cal-time-header button{background:transparent;border-left:1px solid var(--line);padding:11px 3px;font-size:11px;color:#5c7188;line-height:1.6}.cal-time-header button strong{display:block;font-size:14px;font-weight:600}.cal-time-header button small{display:block;font-size:9px;font-weight:400;color:#909ba7}.cal-time-header button.chosen{background:#dce6f1}.cal-time-body{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr)}.cal-axis{position:relative;background:#f9fbfd;border-right:1px solid var(--line)}.cal-axis span{position:absolute;left:5px;transform:translateY(-50%);font-size:8px;color:#97a1ad;background:#f9fbfd;padding:0 2px}.cal-axis span:first-child{transform:translateY(0)}.cal-time-days{display:grid;position:relative;height:100%}.cal-time-day{position:relative;border-right:1px solid #e9edf1;background:#fff;min-width:0}.cal-time-day:last-child{border-right:0}.cal-hour-line{position:absolute;left:0;right:0;border-top:1px solid #e6ebf1;pointer-events:none}.cal-position{position:absolute;z-index:2;min-width:0}.cal-position .cal-event{height:100%;padding:6px}.cal-time-empty{font-size:9px;position:absolute;top:22px;left:12px;color:#b4bcc6}.cal-day-picks{display:flex;gap:10px;margin:0 0 23px;flex-wrap:wrap}.cal-day-picks label{position:relative;cursor:pointer;margin:0}.cal-day-picks input{position:absolute;opacity:0;width:1px;min-height:0}.cal-day-picks span{width:46px;height:41px;display:grid;place-items:center;background:#fff;border:1px solid #cdd7e3;border-radius:8px;color:#7f8fa1;font-size:12px}.cal-day-picks input:checked+span{background:var(--green);border-color:var(--green);color:var(--lime)}.cal-day-picks input:focus-visible+span{outline:3px solid #95afcd;outline-offset:3px}.cal-preview-hint{font-size:11px;color:#9b9272;padding:10px 0}.cal-conflict{border:1px solid #e9c8b6;background:#fff3eb;color:#a3765b;border-radius:12px;padding:20px;margin:15px 0;font-size:12px}.cal-conflict li{font-size:11px;margin:10px 0;line-height:1.7}.cal-conflict p{font-size:10px;color:#a8856e;margin:0}.cal-event-info{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}.cal-event-info small{font-size:10px;display:block;color:#8f9aa6;margin-bottom:6px}.cal-event-info strong{font-size:12px;display:block;line-height:1.8;font-weight:500}@media(min-width:1700px){.cal-layout{grid-template-columns:minmax(0,1fr) 330px}.cal-month-day{min-height:145px}}@media(max-width:1250px){.cal-layout{grid-template-columns:minmax(0,1fr)}.cal-detail{grid-template-columns:1fr 1fr}.cal-intro h2{font-size:26px}.cal-main{padding:22px}.cal-month-day{min-height:125px}.cal-filters>div:nth-last-child(-n+2){flex:0 0 110px}.cal-filters{gap:10px}.cal-zone{display:none}}@media(max-width:850px){.cal-filters{display:grid;grid-template-columns:1fr 1fr}.cal-intro h2{font-size:24px}.cal-detail{gap:15px}.cal-toolbar{gap:12px}.cal-toolbar h3{order:-1;width:100%;font-size:19px}.cal-month-day{min-height:110px;padding:8px 4px}.cal-day-count{display:none}.cal-event.compact{display:block}.cal-event.compact>strong{font-size:8px}.cal-event.compact>span{font-size:7px}.cal-main{padding:16px}.cal-view-tabs button{padding:6px 10px}.cal-day-stats{gap:25px}}@media(max-width:580px){.cal-intro{margin-top:0}.cal-intro h2{font-size:22px}.cal-intro p{font-size:11px}.cal-detail{grid-template-columns:1fr}.cal-filters select{font-size:10px;padding-left:10px;padding-right:35px;background-position:right 12px center}.cal-main{padding:12px}.cal-month{overflow-x:auto}.cal-weekday-row,.cal-month-grid{min-width:530px}.cal-month-day{min-height:105px}.cal-toolbar h3{font-size:18px}.cal-secondary{gap:7px}.cal-secondary label{font-size:8px;gap:6px}.cal-secondary input{width:132px;font-size:9px;padding:7px}.cal-secondary .text-link{font-size:9px}.cal-day-picks{gap:7px}.cal-day-picks span{width:35px;height:37px;font-size:10px}.cal-event-info{grid-template-columns:1fr}.cal-day-stats{gap:60px}.cal-warning{font-size:10px}.cal-free-slot{padding:14px}.cal-time-scroll{max-height:650px}.cal-intro .eyebrow{font-size:8px}.cal-page .kpi strong{font-size:27px}.cal-page .kpi{padding:15px}.cal-page .kpi small{font-size:10px}.cal-legend{font-size:8px;gap:8px}}
/* Mixed-skill exams and teacher review */
.q-editor-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.q-editor-head h4{margin:0}.q-config{display:grid;grid-template-columns:1.5fr 1fr 90px;gap:15px;margin-bottom:20px}.q-config select{width:100%}.q-config label{font-size:10px;color:#798695}.q-config input{margin-bottom:0}.q-text{min-height:85px}.q-passage-editor{margin:15px 0 22px;border:1px dashed #c9d3df;border-radius:8px;padding:12px 15px;background:#f7f9fc}.q-passage-editor summary{font-size:11px;color:#7c8a9b;cursor:pointer}.q-passage-editor textarea{margin-top:15px;min-height:140px}.q-help,.q-order-preview{font-size:11px;color:#7f8fa2;line-height:1.8}.q-order-preview{background:#e9eff6;padding:12px 15px;border-radius:8px}.question-editor .q-specific label{margin-top:12px}.q-specific .field label{margin-top:0}.q-specific>.notice{font-size:10px;line-height:1.8}.question-media-editor{padding:20px;border:1px dashed #aabbcf;background:#eff4fa;border-radius:12px;margin:18px 0 22px}.question-media-editor .upload-label{margin:0}.q-media-name{font-size:10px;color:#7e8fa2;margin-left:15px;overflow-wrap:anywhere}.q-media-preview{margin-top:15px}.q-media-preview audio{width:100%;height:42px}.q-media-preview img{display:block;max-width:100%;max-height:240px;object-fit:contain;border-radius:8px}.question-media-editor>small{font-size:9px;color:#8b99aa}.question-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px;font-size:10px;color:#7f8fa2}.question-meta>.tag{font-size:10px}.skill-question h3{font-size:18px;line-height:1.8;letter-spacing:-.02em}.reading-passage{background:#eef3f8;border:1px solid #d6dfe9;border-radius:11px;padding:22px;margin:18px 0}.reading-passage>span{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#75879c}.reading-passage p{font-size:13px;line-height:2.1;white-space:pre-wrap;color:#536274;margin:10px 0 0}.reading-passage strong{font-size:11px}.listening-player{padding:22px;background:#e1eaf4;border:1px solid #bfd0e4;border-radius:13px;margin:20px 0 25px}.listening-player>span{font-size:11px;font-weight:600;color:#547091;display:block;margin-bottom:15px}.listening-player audio{width:100%;height:44px}.listening-player small{display:block;margin-top:10px;font-size:10px;color:#8697aa}.picture-prompt{margin:20px 0;background:#edf1f6;border:1px solid #d6dee7;padding:18px;border-radius:12px;display:flex;justify-content:center}.picture-prompt img{max-width:100%;max-height:430px;object-fit:contain;border-radius:7px}.writing-rubric{border-left:3px solid #97b0cd;padding:3px 0 3px 18px;margin:22px 0}.writing-rubric strong{font-size:12px}.writing-rubric p{font-size:12px;line-height:1.9;margin:7px 0;color:#7c8a9b;white-space:pre-wrap}.writing-rubric small{font-size:10px;color:#93a1b2}.writing-answer{min-height:240px;font-size:14px;line-height:2;background:#fffefa}.word-count{text-align:right;font-size:10px;color:#8997a7;margin-top:8px}.word-count.over{color:#ba8a57}.blank-sentence{font-size:16px;line-height:3;color:#44566b;white-space:pre-wrap}.blank-sentence .blank-answer{display:inline-block;width:150px;min-height:37px;height:40px;margin:4px 9px;border:0;border-bottom:2px solid #96aeca;border-radius:5px 5px 0 0;background:#ebf1f7;font-size:14px;padding:4px 10px;vertical-align:middle}.order-answer{display:flex;gap:10px;flex-wrap:wrap;align-items:center;min-height:85px;background:#ecf2f8;border:1px dashed #b4c3d5;border-radius:12px;padding:20px;margin:20px 0}.order-answer>span{font-size:12px;color:#99a6b5}.order-answer button{border-radius:7px;background:var(--green);color:#dde8f5;padding:10px 14px;font-size:12px;box-shadow:0 2px 4px #192a3d10}.order-answer button small{margin-left:7px;opacity:.5}.order-bank{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0}.order-bank button{background:white;border:1px solid #ccd5df;border-radius:8px;padding:11px 17px;color:#6b7f96;font-size:12px}.order-bank button:disabled{opacity:.25;cursor:default;background:#f2f5f9}.order-reset{background:none;color:#8295aa;font-size:11px;padding:5px 0}.result-summary{text-align:center}.result-summary h2{font-size:25px}.pending-score{font-size:24px;font-weight:600;color:#657e9b;margin:25px 0 15px}.pending-review{background:#e8eff6;border:1px solid #c8d6e7}.review h4{font-size:14px;line-height:1.9;margin:10px 0 20px}.review audio{width:100%;margin:12px 0 20px}.review-picture{max-width:100%;max-height:300px;object-fit:contain;border-radius:10px;display:block;margin:15px 0 20px}.student-response{background:#ffffff99;border:1px solid #d1dae440;border-radius:9px;padding:18px;margin:16px 0}.student-response>small{font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#8c9aa9}.student-response p{white-space:pre-wrap;font-size:13px;line-height:2;margin:10px 0 0;color:#57697d;overflow-wrap:anywhere}.teacher-feedback{border-left:3px solid #8ba3bf;padding:5px 15px;margin:20px 0 10px}.teacher-feedback strong{font-size:11px;color:#748ba5}.teacher-feedback p{font-size:12px;line-height:1.9;margin:7px 0;white-space:pre-wrap}.grading-question{padding:25px;border:1px solid var(--line);border-radius:13px;background:#fff;margin:20px 0}.grading-question h3{font-size:17px;line-height:1.8}.grading-question details{background:#ebf0f6;padding:15px;border-radius:8px;margin:20px 0;font-size:12px}.grading-question details summary{cursor:pointer;font-size:11px;color:#8092a7}.grading-question details p{white-space:pre-wrap;font-size:12px;line-height:2}.grading-question .field{margin-top:20px}@media(max-width:580px){.q-config{grid-template-columns:1fr 85px;gap:12px}.q-config>div:first-child{grid-column:1/-1}.q-config select{font-size:11px}.question-media-editor{padding:15px}.q-media-name{display:block;margin:12px 0 0}.question-meta{font-size:9px;gap:10px;align-items:start}.skill-question{padding:22px 18px}.skill-question h3{font-size:16px}.reading-passage{padding:17px}.reading-passage p{font-size:12px}.listening-player{padding:17px}.blank-sentence{font-size:14px}.blank-sentence .blank-answer{width:115px;margin:3px 6px;font-size:12px}.order-answer{padding:15px;gap:8px}.order-answer button{font-size:11px;padding:9px 12px}.order-bank{gap:8px}.order-bank button{font-size:11px;padding:9px 13px}.picture-prompt{padding:10px}.writing-answer{min-height:220px;font-size:13px}.grading-question{padding:18px}.result-summary h2{font-size:21px}.pending-score{font-size:20px}.review .question-meta{display:block}.review .question-meta>span{display:block;margin-top:7px}}
.question-skill-tags{display:flex;gap:6px;flex-wrap:wrap;margin:-5px 0 18px}.question-skill-tags span{background:#e9eef4;border:1px solid #dbe2ea;border-radius:5px;padding:3px 8px;font-size:9px;color:#8598ae}
/* Admin: independent navigation and compact scheduling workspace */
body:has(.admin-workspace){height:100dvh;overflow:hidden}
body:has(.admin-workspace) #app{height:100%;display:flex;flex-direction:column;overflow:hidden}
body:has(.admin-workspace) .admin-header{flex:none;position:relative}
body:has(.admin-workspace) .admin-header nav{height:64px}
body:has(.admin-workspace) .demo-strip{display:none}
.admin-workspace{flex:1;min-height:0;height:0;display:grid;grid-template-columns:218px minmax(0,1fr);overflow:hidden}
.admin-workspace .sidebar{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px;background:#fff;border-right:1px solid #dce1e6;scrollbar-width:thin}
.admin-workspace .sidebar .account-box{padding:8px;margin-bottom:4px;gap:10px;font-size:11px}
.admin-workspace .sidebar .avatar{width:32px;height:32px;font-size:11px}
.admin-workspace .sidebar .account-box small{font-size:9px}
.admin-workspace .sidebar .group-label{padding:9px 11px 6px;font-size:8px;letter-spacing:1.2px}
.admin-workspace .sidebar a{min-height:32px;padding:6px 11px;margin-bottom:2px;font-size:11px;gap:10px;border-radius:7px;line-height:1.5;align-items:center}
.admin-workspace .sidebar a>.menu-icon{font-size:16px;width:20px;flex:none}
.admin-workspace .sidebar a:hover{background:#eef1f5;color:#243e5b}
.admin-workspace .sidebar a.active{background:#20354d;color:#fff;box-shadow:0 3px 10px #20354d1a}
.admin-workspace .sidebar .demo-label{display:none}
.admin-workspace .workspace-main{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:22px 26px;background:#f3f4f6;scroll-behavior:smooth}
.admin-workspace .workspace-title{margin-bottom:16px;align-items:center}
.admin-workspace .workspace-title h1{font-size:25px;margin:0}
.admin-workspace .workspace-title p{font-size:8px;margin-bottom:3px}
.cal-page{--cal-border:#e1e5e9}
.cal-intro{margin:0 0 12px;gap:12px}
.cal-intro p{font-size:11px;color:#64707e;margin:0}
.cal-zone{font-size:10px;color:#5b6b7d}
.cal-page .kpis{gap:10px;margin-bottom:12px}
.cal-page .kpi{padding:12px 15px;border-radius:12px;border:1px solid #dfe3e8;box-shadow:none;background:#fff}
.cal-page .kpi:nth-child(2){background:#eef3ff;border-color:#dce5fa}
.cal-page .kpi:nth-child(3){background:#fff3e8;border-color:#f5e3d1}
.cal-page .kpi:nth-child(4){background:#eaf0f7;border-color:#d4dfeb}
.cal-page .kpi strong{font-size:24px;line-height:1.15;color:#283e58}
.cal-page .kpi small{font-size:10px;margin:0}
.cal-page .kpi p{font-size:9px;margin:3px 0 0}
.cal-filters{gap:10px;margin-bottom:12px;background:#fff;border:1px solid #dfe3e8;border-radius:12px;padding:10px 14px}
.cal-filters label{font-size:9px;margin-bottom:4px;color:#636e7a}
.cal-filters input,.cal-filters select{min-height:36px;height:36px;padding-top:6px;padding-bottom:6px;margin:0;font-size:11px;border-radius:7px;background-color:#f9fafb}
.cal-filters select{padding-right:36px;background-position:right 13px center}
.cal-layout{grid-template-columns:minmax(0,1fr) 270px;gap:14px}
.cal-main{padding:14px;border-radius:14px;box-shadow:0 3px 14px #23364b05}
.cal-toolbar{gap:10px;margin-bottom:10px;flex-wrap:wrap}
.cal-toolbar h3{font-size:18px;margin:0;order:initial;width:auto}
.cal-navigation{gap:4px}
.cal-navigation button{min-height:31px;padding:5px 10px;font-size:11px}
.cal-view-tabs{background:#edeff2}
.cal-view-tabs button{font-size:11px;padding:5px 10px;color:#5a6877}
.cal-view-tabs button.active{background:#243e5b;color:#fff;box-shadow:none}
.cal-secondary{margin-bottom:10px}
.cal-secondary input{min-height:30px;height:30px;padding:4px 8px}
.cal-month-day{min-height:clamp(78px,calc((100dvh - 370px)/var(--cal-rows,6)),110px);padding:5px 4px}
.cal-month-day.selected{background:#edf2f8;box-shadow:inset 0 0 0 2px #4875a8}
.cal-month-day.outside{background:#f6f7f9}
.cal-weekday-row span{padding:6px 4px;font-size:10px;font-weight:600;color:#586574}
.cal-day-number{width:23px;height:23px;font-size:10px}
.cal-day-number.today{background:#224f83}
.cal-day-count{top:8px;color:#5f6f82}
.cal-cell-events{margin-top:3px;gap:3px}
.cal-event{background:#dee7f2;border-left-color:#3769a2;color:#213d5c}
.cal-color-1{background:#ffeadb;border-left-color:#ee9853;color:#8b4d1e}
.cal-color-2{background:#e1edff;border-left-color:#6398eb;color:#315c98}
.cal-color-3{background:#eee5ff;border-left-color:#a17adf;color:#69449c}
.cal-color-4{background:#fff2cf;border-left-color:#d9af34;color:#85681b}
.cal-event.compact{padding:2px 4px;display:flex;gap:4px;line-height:1.5}
.cal-event.compact>strong,.cal-event.compact>span{font-size:9px}
.cal-empty-day{margin-top:4px;font-size:8px;color:#89929d}
.cal-more{font-size:9px;color:#294e79;padding:0 3px}
.cal-legend{padding-top:9px;font-size:9px;color:#64717f;gap:6px}
.cal-detail{gap:12px;max-height:calc(100dvh - 285px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;padding-right:2px}
.cal-detail .panel{padding:15px;border-radius:13px}
.cal-detail .eyebrow{margin-bottom:5px;font-size:8px}
.cal-detail h3{font-size:14px;margin-bottom:10px}
.cal-day-stats{gap:25px;padding:0 0 10px;margin-bottom:10px}
.cal-day-stats strong{font-size:22px}
.cal-day-stats small{margin-top:3px;font-size:9px}
.cal-class-card{border:0;border-left:3px solid #3769a2;border-radius:7px;padding:9px 10px;margin:8px 0}
.cal-class-card h4{font-size:11px;margin:4px 0;line-height:1.5}
.cal-class-card p{font-size:9px;line-height:1.6;color:inherit;margin-bottom:3px;opacity:.85}
.cal-class-card>small{font-size:8px;color:inherit;opacity:.75}
.cal-class-head b{color:inherit;font-size:10px}
.cal-class-head button{color:inherit;font-size:9px}
.cal-class-card.cal-color-1{border-left-color:#ee9853}.cal-class-card.cal-color-2{border-left-color:#6398eb}.cal-class-card.cal-color-3{border-left-color:#a17adf}.cal-class-card.cal-color-4{border-left-color:#d9af34}
.cal-free-panel{background:#f1f6fb;border-color:#d2dde9}
.cal-free-panel p{font-size:9px;line-height:1.7;margin-bottom:8px;color:#627182}
.cal-free-slot{padding:8px 10px;margin:7px 0;background:#fff;border-color:#a8bdd4;color:#284a70}
.cal-free-slot small{margin-top:0;font-size:8px;color:#6b7c8f}
.cal-free-slot strong{font-size:10px}
.cal-time-scroll{max-height:calc(100dvh - 330px);min-height:300px;scrollbar-width:thin}
.cal-time-header button{padding:5px 3px}
.cal-time-header>span{padding:14px 3px}
.cal-time-header button strong{font-size:12px}
.cal-time-header button small{font-size:8px;color:#637181}
.cal-position .cal-event{padding:4px}
.cal-event>strong{margin:2px 0;font-size:10px}
@media(max-height:730px) and (min-width:761px){.admin-workspace .sidebar{padding:7px 10px}.admin-workspace .sidebar a{min-height:29px;padding:4px 10px;font-size:10px}.admin-workspace .sidebar .group-label{padding-top:6px}.admin-workspace .sidebar .account-box{padding:4px 8px}.admin-workspace .workspace-main{padding:16px 20px}.cal-intro{display:none}}
@media(min-width:761px) and (max-width:1180px){.admin-workspace{grid-template-columns:190px minmax(0,1fr)}.admin-workspace .workspace-main{padding:18px}.cal-layout{grid-template-columns:minmax(0,1fr) 235px}.cal-toolbar h3{order:-1;width:100%;font-size:17px}.cal-detail{grid-template-columns:1fr}.cal-filters>div:nth-last-child(-n+2){flex-basis:100px}.cal-day-count{display:none}.cal-event.compact{display:block}.cal-month-day{min-height:90px}.cal-zone{display:none}}
@media(max-width:760px){.admin-workspace{display:flex;flex-direction:column}.admin-workspace .sidebar{flex:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:7px 10px;border-right:0;border-bottom:1px solid #dce1e6;max-height:220px}.admin-workspace .sidebar .account-box,.admin-workspace .sidebar .group-label{display:none}.admin-workspace .sidebar a{font-size:9px;min-height:28px;padding:5px 6px;gap:5px;margin:0;white-space:normal}.admin-workspace .sidebar a>.menu-icon{font-size:13px;width:16px}.admin-workspace .workspace-main{flex:1;padding:16px 12px}.cal-layout{grid-template-columns:1fr}.cal-detail{max-height:none;overflow:visible;grid-template-columns:1fr 1fr}.cal-page .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-page .kpi{padding:9px 12px}.cal-page .kpi strong{font-size:21px}.cal-filters{display:grid;grid-template-columns:1fr 1fr;padding:10px}.cal-main{padding:10px}.cal-toolbar h3{order:-1;width:100%}.cal-time-scroll{max-height:480px}.cal-zone{display:none}.cal-month-day{min-height:84px}.cal-month-grid,.cal-weekday-row{min-width:490px}}
@media(max-width:480px){.cal-detail{grid-template-columns:1fr}.admin-workspace .sidebar a{font-size:8px}.admin-workspace .sidebar{gap:2px}.admin-workspace .sidebar a>.menu-icon{display:none}.cal-intro p{font-size:10px}.cal-page .kpi small{font-size:9px}}
@media(min-width:761px){.admin-workspace .sidebar{display:block}.admin-workspace .sidebar .account-box{display:flex}.admin-workspace .sidebar .group-label{display:block}.cal-page .kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cal-page .kpi strong{margin-top:5px}.cal-page .kpi em{display:block;font-size:8px;line-height:1.5;margin-top:3px;color:#6c7784}
/* Connected administration and student learning flows */
.overview{max-width:1450px;margin:auto}.overview-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:27px 32px;border-radius:18px;background:radial-gradient(ellipse at top right,#46648655,transparent 65%),#1e3249;color:#fff;margin-bottom:18px;position:relative;overflow:hidden}.overview-hero h2{font-size:28px;letter-spacing:-.03em;margin:9px 0}.overview-hero p{font-size:12px;color:#c1ccd9;max-width:500px;margin-bottom:18px}.overview-hero .overline{font-size:9px;letter-spacing:2px;color:#aecae9}.overview-date{flex:none;text-align:center;padding:10px 26px;border:1px solid #ffffff24;border-radius:15px;background:#ffffff08;min-width:142px}.overview-date span{display:block;font-size:10px;color:#d2dbe6}.overview-date strong{display:block;font:700 52px Manrope,sans-serif;line-height:1.2;color:#aac9ed;margin:4px 0}.overview .kpis{gap:14px;margin-bottom:18px}.overview .kpi{position:relative;border:1px solid #dfe3e8;padding:17px 20px;overflow:hidden;background:#fff}.overview .kpi:before{content:'';height:4px;position:absolute;top:0;left:0;right:0;background:#5f7fa4}.overview .kpi:nth-child(2):before{background:#e7a66b}.overview .kpi:nth-child(3):before{background:#769bdf}.overview .kpi:nth-child(4):before{background:#b394d8}.overview .kpi strong{font-size:30px;margin:6px 0;line-height:1.2}.overview .kpi em{font-size:9px}.overview-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.overview .panel{padding:22px;border-radius:15px}.overview .section-heading{align-items:center;margin-bottom:14px}.overview .section-heading h3{font-size:16px;margin:0}.overview .section-heading .text-link{font-size:10px}.overview-event{display:flex;align-items:center;gap:12px;background:transparent;border-bottom:1px solid #edeff1;width:100%;padding:11px 0;text-align:left;color:#2f4258}.overview-event>span:nth-child(2){flex:1;min-width:0}.overview-event strong{display:block;font-size:12px}.overview-event small{display:block;font-size:10px;color:#798491;margin-top:3px}.mini-date{width:43px;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;border-radius:9px;background:#edf1f5}.mini-date b{font-size:18px;line-height:1.3}.mini-date small{font-size:8px;margin:0}.action-summary{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#f2f4f6;border:1px solid #e4e8ec;padding:14px;border-radius:10px;margin:10px 0}.action-summary>span{font-size:18px}.action-summary strong{font-size:12px;margin-left:10px}.action-summary small{display:block;font-size:9px;color:#798491;margin-left:29px}.action-summary b{font-size:16px;font-family:Manrope,sans-serif;white-space:nowrap}.action-summary:nth-of-type(2){background:#f6f1fc;border-color:#ece3f6}.quick-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.quick-actions .btn{font-size:9px;padding:7px 10px}.overview-recent{margin-top:18px}.overview-recent .table-wrap{border:0}.registry-summary{display:flex;gap:26px;flex-wrap:wrap;padding:13px 18px;border:1px solid #dfe4e9;background:#fff;border-radius:12px;margin-bottom:15px;color:#7c858f;font-size:11px}.registry-summary b{font-size:18px;color:#2c4561;margin-right:4px}.registry-filters{margin-bottom:14px;gap:10px}.registry-filters input{flex:1.4}.registry-filters select{flex:1;min-width:145px}.cell-meta{display:block;font-size:10px;color:#818891;margin-top:3px}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.row-actions .btn{white-space:nowrap}.list-count{font-size:10px;margin:12px 0;color:#808994}.table-title-link{background:none;color:#2d4b6e;padding:0;text-align:left;font-size:12px;font-weight:600;line-height:1.7}.table-title-link:hover{text-decoration:underline}.table-title-link:after{content:' ↗';font-weight:400;color:#97a1ac}.detail-title h2{font-size:25px;margin:14px 0}.detail-title p{font-size:12px;line-height:1.9}.class-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;background:#f4f6f8;border:1px solid #e1e5ea;border-radius:12px;padding:20px;margin:20px 0 25px}.class-facts small{display:block;font-size:9px;color:#848f9b;margin-bottom:4px}.class-facts strong{display:block;font-size:12px;font-weight:500;color:#3a4c61;overflow-wrap:anywhere}.dialog .section-heading h3{font-size:17px;margin:0}.dialog .section-heading{margin-bottom:15px;align-items:center}.resource-list{display:grid;gap:7px}.resource-list button{display:flex;justify-content:space-between;gap:15px;text-align:left;padding:12px 15px;background:#f3f5f7;border:1px solid #dce2e8;border-radius:8px;color:#506175;font-size:12px}.resource-heading{margin:25px 0 15px;font-size:17px}.related-tests{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.related-tests .card-body{padding:18px}.related-tests h3{font-size:16px}.related-tests .exam-card-top{margin-bottom:12px}.lesson-summary{margin:18px 0;font-size:12px;line-height:1.9}.my-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.my-course-card{padding:23px}.my-course-top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.my-course-card h3{font-size:20px;margin-bottom:10px}.my-course-card>p{font-size:12px;line-height:1.8}.enrollment-facts{border-top:1px solid #e6e9ec;margin:16px 0;padding-top:12px;display:grid;gap:8px}.enrollment-facts span{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#7f8893}.enrollment-facts strong{font-size:11px;color:#4a596b;text-align:right;font-weight:500}.student-schedule-list{display:grid;gap:14px}.student-class-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px}.student-class-card h3{font-size:19px;margin:12px 0 5px}.student-class-card p{font-size:11px;margin-bottom:10px}.student-class-card .class-time{font-size:12px;font-weight:600;margin-bottom:3px;color:#4f6379}.student-class-card small{font-size:10px;color:#86909c}.student-class-card>.btn{flex:none}.library-filters{gap:10px;align-items:center;margin-bottom:18px}.library-filters select,.library-filters input{flex:1;min-width:0}.library-empty{text-align:center;padding:55px 20px}.library-empty>span{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:18px;background:#e9eff5;font-size:30px;color:#768da7;margin-bottom:18px}.library-empty h3{font-size:20px}.library-empty p{font-size:12px}.student-header .brand small{letter-spacing:1.6px}.student-workspace .workspace-main{background:#f3f4f6}.student-workspace .sidebar .account-box{background:#e8edf3}.student-workspace .sidebar a{min-height:36px}.student-workspace .container.section{padding:0;max-width:none}.student-workspace .section{padding:0}.account-center{width:100%;max-width:760px;margin-left:auto!important;margin-right:auto!important}.account-center>.panel{max-width:none!important}.workspace-main:has(#profile-form) .workspace-title,.workspace-main:has(#settings-form) .workspace-title{max-width:760px;margin-left:auto;margin-right:auto}.account-center.panel{padding:26px}.account-center h3{font-size:19px}.account-center .form-grid{gap:16px}.account-center p{font-size:11px}.security-entry{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff;border:1px solid #e0e4e9;border-radius:13px;padding:17px 22px;margin-top:16px}.security-entry strong{font-size:12px}.security-entry p{font-size:10px;margin:4px 0 0}.security-entry .btn{flex:none}.dialog #password-form{max-width:480px}.dialog:has(#password-form){max-width:570px}.dialog:has(#password-form) .panel{border:0;box-shadow:none;padding:0;margin:0!important}.dialog:has(#password-form) .panel>h3{display:none}.field-wide{grid-column:1/-1}.field textarea{min-height:150px;line-height:1.9;padding:12px 14px;resize:vertical}.field textarea[name="content"],.field textarea[name="bio"],.field textarea[name="qualification"]{min-height:190px}.lesson-attachment{padding:18px}.lesson-attachment p{font-size:11px;margin:10px 0}.lesson-attachment>small{font-size:10px;color:#7f8b99}.lesson-attachment [hidden]{display:none!important}.cal-month-day{cursor:pointer}.cal-month-day:focus-visible{outline:3px solid #567ca8;outline-offset:-3px}.content-editor .form-grid{gap:14px 18px}.compact-exam .upload-panel{padding:15px;margin:16px 0}.compact-exam h3{font-size:16px}.compact-exam .upload-panel p{font-size:10px;line-height:1.7;margin:8px 0 0}.compact-exam .field{margin-bottom:0}.compact-exam .field label{font-size:10px;margin-bottom:5px}.compact-exam input,.compact-exam select{min-height:36px;padding-top:7px;padding-bottom:7px;font-size:11px}.compact-exam .section-heading{margin:18px 0 12px}.compact-exam .import-box{padding:12px 15px;display:flex;gap:15px;align-items:center;margin:12px 0}.compact-exam .import-box p{font-size:10px;margin:0}.compact-exam .question-editor{padding:0;border:1px solid #d6dde5;border-radius:11px;background:white;margin:10px 0;overflow:hidden}.question-editor>summary{list-style:none;cursor:pointer;padding:13px 16px;background:#eff3f7;margin:0;display:flex;align-items:center;gap:14px}.question-editor>summary::-webkit-details-marker{display:none}.question-editor>summary:before{content:'›';font-size:20px;line-height:1;color:#7088a4;transition:transform .15s}.question-editor[open]>summary:before{transform:rotate(90deg)}.question-editor>summary h4{font-size:12px;margin:0;flex:none}.q-summary{font-size:10px;color:#7b8da1;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.question-editor>summary .close{font-size:20px;width:25px;height:25px;flex:none}.q-editor-body{padding:16px}.compact-exam .q-config{gap:10px;margin-bottom:12px;grid-template-columns:1.4fr 1fr 80px}.compact-exam .q-config label{font-size:9px}.compact-exam .question-editor label{font-size:10px;margin-bottom:5px}.compact-exam .q-text{min-height:82px;font-size:12px;line-height:1.7;padding:10px 12px}.compact-exam .q-passage-editor{padding:8px 12px;margin:12px 0}.compact-exam .q-passage-editor textarea{min-height:170px;margin-top:10px}.compact-exam .q-specific .form-grid{gap:10px;margin-top:12px}.compact-exam .q-specific textarea{min-height:110px;line-height:1.8;font-size:12px}.compact-exam .q-specific textarea.q-reference,.compact-exam .q-specific textarea.q-rubric{min-height:150px}.compact-exam .q-help,.compact-exam .q-order-preview{font-size:10px;margin:8px 0}.compact-exam .notice{padding:11px 13px;font-size:10px;line-height:1.7;margin:10px 0}.compact-exam .question-media-editor{padding:12px;margin:12px 0}.compact-exam .q-media-preview img{max-height:170px}.compact-exam .q-media-preview audio{height:35px}.q-extra{margin-top:12px;border-top:1px solid #dee4eb;padding-top:10px}.q-extra summary{font-size:10px;color:#7a8ca0;cursor:pointer}.q-extra textarea{min-height:130px;margin-top:10px;line-height:1.8}.compact-exam .sticky-actions{margin-top:16px;padding:12px 0;background:#fff;bottom:0;z-index:2}.compact-exam .q-specific .check-row{margin:10px 0}.compact-exam .q-specific .check-row input{min-height:0}.student-workspace .exam-layout{grid-template-columns:minmax(0,1fr) 220px}.student-workspace .exam-top{padding:18px;margin-bottom:20px}.student-workspace .skill-question{padding:24px}
@media(max-width:1050px){.overview-columns{grid-template-columns:1fr}.overview .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-hero h2{font-size:24px}.my-course-grid{grid-template-columns:1fr}.student-workspace .exam-layout{grid-template-columns:1fr}.registry-filters{flex-wrap:wrap}.registry-filters input{flex-basis:100%}}
@media(max-width:760px){.overview-hero{padding:22px;gap:15px}.overview-date{padding:10px 15px;min-width:100px}.overview-date strong{font-size:42px}.overview-hero h2{font-size:21px}.overview-hero p{font-size:11px}.overview .panel{padding:17px}.student-workspace .sidebar{grid-template-columns:repeat(3,minmax(0,1fr))}.student-workspace .sidebar a{min-height:29px}.student-class-card{display:block;padding:18px}.student-class-card>.btn{margin-top:15px}.library-filters{display:grid;grid-template-columns:1fr 1fr}.library-filters input{grid-column:1/-1}.registry-filters{display:grid;grid-template-columns:1fr 1fr}.registry-filters input{grid-column:1/-1}.registry-filters select{width:100%;min-width:0}.class-facts{padding:15px;gap:12px}.class-facts strong{font-size:11px}.related-tests{grid-template-columns:1fr}.security-entry{padding:16px}.account-center.panel{padding:20px}.field textarea{min-height:145px}.compact-exam .import-box{display:block}.compact-exam .import-box p{margin-top:8px}.q-summary{display:none}.compact-exam .q-config{grid-template-columns:1.4fr 1fr 65px}.compact-exam .q-config>div:first-child{grid-column:auto}.compact-exam .q-config select{padding-left:8px;padding-right:30px;font-size:10px}.compact-exam .q-config label{font-size:8px}}
@media(max-width:480px){.overview-date{display:none}.overview-hero h2{font-size:22px}.overview .kpis{gap:9px}.overview .kpi{padding:13px}.overview .kpi strong{font-size:25px}.overview .kpi small{font-size:9px}.overview .kpi em{font-size:8px}.registry-summary{gap:10px 20px;font-size:10px}.registry-summary b{font-size:16px}.class-facts{grid-template-columns:1fr}.my-course-card{padding:18px}.security-entry{align-items:flex-start}.security-entry p{font-size:9px}.student-header .admin-session{display:none}.q-editor-body{padding:12px}.question-editor>summary{padding:10px 12px}.compact-exam .q-config{grid-template-columns:1fr 70px}.compact-exam .q-config>div:first-child{grid-column:1/-1}}
.class-row{cursor:pointer}.class-row:hover td{background:#f0f3f7}.class-row .btn{position:relative}.student-workspace .workspace-title{margin-bottom:20px}.student-workspace .sidebar a.active{background:#20354d;color:#fff}
.contact-help{font-size:10px;line-height:1.8;color:#7b8794;margin:-6px 0 18px}input[readonly]{background:#eff2f5;color:#7f8994;cursor:default}.account-center .account-box{display:block;overflow-wrap:anywhere}.account-center .account-box small{display:block;font-size:10px;margin-top:5px;color:#7a8897}
#notification-center{position:relative;flex:none;margin-left:2px}.notification-bell{width:38px;height:38px;border:1px solid #dfe3e8;background:#f2f5f8;border-radius:11px;display:grid;place-items:center;position:relative;color:#4e6176}.notification-bell:hover{background:#e3eaf2}.notification-bell svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.notification-count{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;border-radius:20px;background:#df8861;color:#fff;font-size:9px;line-height:18px;padding:0 4px;border:1px solid #fff}.notification-popover{position:absolute;top:calc(100% + 13px);right:0;width:390px;max-width:calc(100vw - 28px);background:#fff;border:1px solid #dce2e8;border-radius:15px;box-shadow:0 15px 50px #182a3f25;z-index:70;overflow:hidden}.notification-popover[hidden]{display:none}.notification-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 12px;border-bottom:1px solid #e8ecf0}.notification-heading strong{display:block;font-size:15px}.notification-heading small{display:block;font-size:9px;color:#ac9a72;margin-top:4px}.notification-heading small.live{color:#607995}.notification-heading>button{background:#eff2f6;color:#808fa1;border-radius:7px;width:26px;height:26px;font-size:20px;line-height:1}.notification-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;background:#f7f9fb;font-size:9px;color:#8995a3}.notification-tools button{font-size:9px;background:none;color:#55708e;white-space:nowrap;padding:0}.notification-list{max-height:min(470px,calc(100dvh - 220px));overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.notification-item{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid #ebeff3;background:#fff}.notification-item:hover{background:#f3f6fa}.notification-item.unread{background:#e9f0f7;border-left:3px solid #84a2c5;padding-left:15px}.notification-symbol{width:31px;height:31px;display:grid;place-items:center;flex:none;border-radius:9px;background:#dde6f0;color:#517298;font-size:16px}.notification-item>span:last-child{min-width:0;flex:1}.notification-item strong{display:block;font-size:11px;color:#4a5c71;margin-bottom:4px;line-height:1.6}.notification-item span>span{display:block;font-size:11px;color:#758394;line-height:1.8;overflow-wrap:anywhere}.notification-item small{display:block;font-size:9px;color:#94a1b0;margin-top:5px}.notification-empty{padding:38px 25px;text-align:center;font-size:11px;color:#8b99aa}.admin-header:has(#notification-center) .admin-session{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){#notification-center{margin-left:0}.notification-bell{width:32px;height:32px;border-radius:8px}.notification-bell svg{width:17px;height:17px}.notification-popover{position:fixed;right:12px;top:65px}.admin-header:has(#notification-center) .admin-session{display:none}.notification-list{max-height:calc(100dvh - 215px)}}
/* Focused dialogs, family profiles and advanced exam authoring */
.overlay{background:#15212e7d;backdrop-filter:blur(7px);padding:24px}.dialog,.dialog.large{padding:0;background:#fff;border:1px solid #ffffffb3;border-radius:20px;max-height:calc(100dvh - 48px);scrollbar-width:thin;box-shadow:0 25px 90px #111e2d3b}.dialog{max-width:660px}.dialog.large{max-width:1040px}.dialog-head{position:sticky;top:0;z-index:10;align-items:center;background:#fffefdf5;backdrop-filter:blur(12px);padding:20px 26px;border-bottom:1px solid #e6e9ed;margin:0;gap:20px}.dialog-head h2{font-size:21px;letter-spacing:-.035em;line-height:1.4;color:#25384d}.dialog-body{padding:22px 26px 24px}.close,.question-editor>summary .close{display:grid;place-items:center;align-items:center;justify-content:center;border-radius:50%;width:34px;height:34px;min-width:34px;padding:0;border:1px solid #dfe3e8;background:#f0f3f7;color:#637487;line-height:0;font-size:0;flex:none;transition:background .15s,transform .15s}.close svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.close:hover{background:#dbe4ee;transform:rotate(90deg)}.close:focus-visible{outline:3px solid #93abc7;outline-offset:3px}.question-editor>summary .close{width:27px;height:27px;min-width:27px;background:#fff}.question-editor>summary .close svg{width:12px;height:12px}.notification-heading>button{display:grid;place-items:center;padding:0;line-height:0;border-radius:50%}.notification-heading>button svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8}.dialog input,.dialog select,.dialog textarea{border-color:#dadfe5;border-radius:9px;background-color:#fbfcfd}.dialog input:focus,.dialog select:focus,.dialog textarea:focus{border-color:#738daa;box-shadow:0 0 0 3px #91aac720;outline:none}.dialog label{font-weight:500;color:#56687d;font-size:11px}.dialog .field{margin-bottom:15px}.dialog .form-grid{gap:0 18px}.dialog .upload-panel{border-radius:12px;border-color:#d9e0e9;background:#f2f6fa}.dialog .sticky-actions{position:sticky;bottom:-24px;z-index:4;display:flex;gap:10px;padding:15px 0 0;margin:20px 0 0;background:#fff;border-top:1px solid #e0e6ed}.dialog .sticky-actions .btn{min-height:39px}.dialog .compact-exam .sticky-actions{bottom:-24px;padding-top:13px}.dialog .auth-error:empty{display:none}.modal-intro{display:flex;align-items:center;gap:15px;padding:17px 18px;border:1px solid #d3dde8;border-radius:12px;background:#ecf2f8;margin-bottom:22px}.modal-intro-icon{width:42px;height:42px;display:grid;place-items:center;flex:none;background:#d7e2ee;border-radius:12px;font-size:24px;color:#5b7694}.modal-intro strong{font-size:13px;font-weight:600;color:#455b74}.modal-intro p{font-size:11px;line-height:1.8;margin:4px 0 0;color:#7f8fa2}.form-section{border:1px solid #dee4ea;border-radius:12px;padding:19px;margin:18px 0;background:#fff}.form-section-heading{display:flex;align-items:center;gap:10px;margin-bottom:16px}.form-section-heading>span{font:600 10px Manrope,sans-serif;letter-spacing:1px;background:#e6ecf3;color:#8095ac;border-radius:7px;padding:5px 8px}.form-section-heading h3{font-size:14px;margin:0;letter-spacing:-.02em;color:#4c6178}.form-section .field:last-child{margin-bottom:0}.manual-badge{display:block;font-size:8px;line-height:1.8;color:#667e9a;background:#dfebf8;border:1px solid #ece5c6;border-radius:5px;padding:2px 6px;width:fit-content;margin-top:5px}.audience-choices{display:grid;grid-template-columns:1fr 1fr;gap:18px}.audience-choice{display:block;position:relative;padding:26px;border:1px solid #d1dce8;background:#eaf1f8;border-radius:16px;text-align:left;color:#425974}.audience-choice.university{background:#f2eef8;border-color:#e2d8f0;color:#79628e}.audience-choice>span{font-size:9px;letter-spacing:1px;font-weight:600}.audience-choice>strong{display:block;font-size:25px;font-weight:600;line-height:1.35;margin:20px 0 12px;letter-spacing:-1px}.audience-choice>p{font-size:12px;line-height:1.9;color:#7c8c9f}.audience-choice.university>p{color:#a093ad}.audience-choice>b{font-size:12px;display:block;margin-top:30px}.audience-choice.school:hover{border-color:#839fbf;background:#e0eaf5}.format-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px}.format-buttons button{background:#fff;border:1px solid #dfd3ec;border-radius:8px;color:#8d73a2;font-size:11px;text-align:left;padding:11px}.format-buttons button:hover{background:#e9e0f1}.exam-manager-tabs{display:flex;gap:12px;margin-bottom:20px}.exam-manager-tabs>button{flex:1;border:1px solid #dae1e8;background:#fff;border-radius:12px;padding:16px 20px;text-align:left;color:#7b8c9f}.exam-manager-tabs strong{display:block;font-size:14px;font-weight:600}.exam-manager-tabs small{display:block;font-size:10px;margin-top:4px;color:#92a0b0}.exam-manager-tabs button.active{background:#23384f;border-color:#23384f;color:#d1e0f2}.exam-manager-tabs button.active small{color:#9aabbf}.exam-manager-tabs>button:nth-child(2).active{background:#6c5a84;border-color:#6c5a84}.exam-manager-tabs>button:nth-child(2).active small{color:#d3c7df}.exam-builder-banner{padding:18px 20px;border:1px solid #cfdbe9;background:#e9f0f8;border-radius:12px;margin:8px 0 18px}.exam-builder-banner>span{font-size:8px;letter-spacing:1.6px;color:#758da8}.exam-builder-banner h3{font-size:19px;margin:7px 0;color:#4f6680}.exam-builder-banner p{font-size:10px;line-height:1.9;margin:0;color:#8496ab}.exam-builder-banner.advanced{background:#f4f0fa;border-color:#e5dcf0}.exam-builder-banner.advanced>span{color:#a28bb5}.exam-builder-banner.advanced h3{color:#806596}.exam-builder-banner.advanced p{color:#a291b0}.exam-structure{padding:16px;border:1px solid #e7def1;border-radius:12px;margin-bottom:18px;background:#fcfaff}.structure-hint{align-self:center;font-size:10px;line-height:1.9;color:#a493b2;padding:8px 0}.exam-section-editor{border:1px solid #e4dbea;border-radius:10px;background:#fff;overflow:hidden;margin-bottom:10px}.exam-section-editor>summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;background:#f7f3fb}.exam-section-editor>summary::-webkit-details-marker{display:none}.exam-section-editor>summary:after{content:'⌄';font-size:16px;color:#b39ac6;margin-left:8px}.exam-section-editor[open]>summary:after{transform:rotate(180deg)}.exam-section-editor>summary strong{font-size:11px;color:#8b739f;font-weight:500;flex:1}.exam-section-editor>summary small{font-size:9px;color:#b09abd}.section-number{font:600 10px Manrope,sans-serif;border-radius:6px;background:#ece3f4;padding:4px 7px;color:#ad92be}.section-editor-body{padding:16px}.section-editor-body textarea{font-size:12px;line-height:1.9;min-height:80px}.section-editor-body textarea.section-passage{min-height:180px;margin-top:10px}.section-passage-details{padding:10px 12px;border:1px dashed #e3d6ed;border-radius:8px;margin:12px 0}.section-passage-details summary{font-size:10px;color:#aa94b8;cursor:pointer}.section-audio{margin:14px 0}.section-audio-name{font-size:9px;color:#a38bb2;margin-left:10px}.section-audio-preview audio{width:100%;height:36px;margin-top:12px}.section-editor-body .row-actions{margin-top:14px;gap:8px}.q-section-field{margin-bottom:12px;padding:10px 12px;background:#f4f0f8;border:1px solid #e9e1ef;border-radius:8px;display:flex;gap:12px;align-items:center}.q-section-field[hidden]{display:none}.q-section-field label{margin:0!important;flex:none;color:#ac95bc!important;font-size:9px!important}.q-section-field select{flex:1;min-width:0;border-color:#e3d7ed;background-color:#fff}.choice-toolbar{display:flex;align-items:center;gap:12px;margin:10px 0}.choice-toolbar label{margin:0!important}.choice-toolbar select{width:120px;min-height:30px!important;height:33px;padding-top:5px!important;padding-bottom:5px!important}.format-badge{display:inline-block;font-size:9px;color:#a18ab4;background:#f4eff9;border:1px solid #e8dff0;padding:3px 8px;border-radius:5px;margin-bottom:8px}.exam-section-heading{padding:23px;border:1px solid #e5ddef;border-left:4px solid #ae90c3;border-radius:12px;background:#faf7fd;margin:0 0 20px}.exam-section-heading>h2{font-size:23px;color:#846798;margin:14px 0 10px}.exam-section-heading>p{white-space:pre-wrap;font-size:12px;line-height:1.9;color:#a28bb0}.exam-section-heading .reading-passage{background:#fff;border-color:#e9e0f0}.exam-section-heading .reading-passage p{color:#8f7a9e}.exam-section-heading .listening-player{background:#f0eaf6;border-color:#dfd3eb}.dialog:has(.content-editor) .dialog-body{background:#fbfcfd}.dialog:has(.compact-exam) .dialog-body{background:#fff}.dialog .exam-structure .field{margin-bottom:8px}
@media(max-width:760px){.overlay{padding:10px}.dialog,.dialog.large{max-height:calc(100dvh - 20px);border-radius:16px}.dialog-head{padding:17px 18px;gap:12px}.dialog-head h2{font-size:18px}.dialog-body{padding:18px}.close{width:32px;height:32px;min-width:32px}.dialog .sticky-actions,.dialog .compact-exam .sticky-actions{bottom:-18px}.audience-choices{grid-template-columns:1fr}.audience-choice{padding:20px}.audience-choice>strong{font-size:22px;margin-top:12px}.audience-choice>b{margin-top:18px}.form-section{padding:15px}.modal-intro{padding:14px;gap:12px}.modal-intro strong{font-size:12px}.modal-intro p{font-size:10px}.exam-manager-tabs{gap:8px}.exam-manager-tabs>button{padding:13px}.exam-manager-tabs strong{font-size:12px}.exam-manager-tabs small{font-size:9px}.exam-section-editor>summary{padding:10px}.exam-section-editor>summary small{display:none}.section-editor-body{padding:12px}.exam-structure{padding:10px}.section-audio-name{display:block;margin:8px 0}.exam-section-heading{padding:18px}.exam-section-heading>h2{font-size:20px}}
/* Group-first exam creation and lightweight computing practice */
.audience-choice.computing{grid-column:1/-1;background:#eaf4fa;border-color:#d4e6f0;color:#56849d;padding:22px 26px}.audience-choice.computing>strong{font-size:22px;margin:10px 0}.audience-choice.computing>p{color:#92adba;margin-bottom:10px}.audience-choice.computing>b{margin-top:14px}.audience-choice.computing:hover{background:#e1eff7;border-color:#a8cede}.exam-manager-tabs>button:nth-child(3).active{background:#477d98;border-color:#477d98}.exam-manager-tabs>button:nth-child(3).active small{color:#c7e1eb}.exam-builder-banner.computing{background:#edf6fa;border-color:#dcecf2}.exam-builder-banner.computing>span{color:#92b5c6}.exam-builder-banner.computing h3{color:#638ea3}.exam-builder-banner.computing p{color:#98b5c2}.group-editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:18px 0 13px}.group-editor-toolbar>strong{font-size:13px;color:#5f6f82}.group-editor-toolbar .text-link{font-size:10px;color:#8597ab}.grouped-exam .exam-section-editor{border:1px solid #d7dfe8;border-radius:13px;margin-bottom:16px}.grouped-exam .exam-section-editor>summary{padding:14px 16px;background:#e9eff6}.grouped-exam .exam-section-editor>summary strong{font-size:13px;color:#5c728b}.grouped-exam .section-number{background:#cfdded;color:#6987aa}.grouped-exam .exam-section-editor>summary small{color:#8598ae;font-size:10px}.grouped-exam .section-editor-body{padding:16px;background:#f9fbfd}.grouped-exam .section-editor-body>.form-grid{gap:0 14px}.grouped-exam .section-editor-body>.form-grid .field{margin-bottom:10px}.group-material{background:#fff;border:1px dashed #cdd9e6;border-radius:10px;margin:4px 0 17px}.group-material>summary{font-size:11px;cursor:pointer;color:#778da7;padding:11px 13px}.group-material>div{padding:0 14px 14px}.group-material textarea{margin-top:6px;margin-bottom:12px}.group-material .section-instructions{min-height:75px}.group-material .section-passage{min-height:160px}.group-question-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:16px 0 10px}.group-question-heading strong{font-size:11px;font-weight:500;color:#798ba0}.group-question-heading span{font-size:9px;color:#93a2b4}.section-questions>.question-editor{background:white}.group-empty{font-size:11px;text-align:center;line-height:1.9;padding:24px 16px;background:#f0f4f8;border:1px dashed #d2dce7;border-radius:10px;color:#8c9db1}.group-empty[hidden]{display:none}.group-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:13px}.group-actions .btn{font-size:10px;padding:8px 11px;min-height:32px}.group-actions .group-remove{margin-left:auto;color:#a9a08a}.grouped-exam .add-group-button{width:100%;border:1px dashed #b9cadd;background:#f2f6fa;color:#778ea9;padding:12px}.section-import-preview{padding:15px;border:1px solid #cbd9e9;background:#eaf1f8;border-radius:10px;margin-top:12px}.section-import-preview[hidden]{display:none}.section-import-preview>strong{font-size:12px;color:#6481a2}.section-import-preview>p{font-size:10px;line-height:1.8;color:#8f9fb1;margin:8px 0 13px}.section-import-preview .row-actions .btn{font-size:9px}.grouped-exam #online-editor[hidden],.grouped-exam #download-editor[hidden],.grouped-exam #link-editor[hidden]{display:none!important}.it-exam #link-editor,.it-exam #download-editor{margin-top:10px;padding:20px;background:#f4f9fb;border-color:#dceaf0}.it-exam #link-editor h3,.it-exam #download-editor h3{color:#7999a9}.it-exam #link-editor p{color:#a3b9c3}.it-exam #link-editor input{background:#fff}.grouped-exam .q-words,.grouped-exam .q-accepted{min-height:85px!important}.grouped-exam .exam-section-editor[open]>summary{border-bottom:1px solid #d9e1ea}.grouped-exam:has(.exam-builder-banner.advanced) .exam-section-editor>summary{background:#f4f0fa}.grouped-exam:has(.exam-builder-banner.advanced) .exam-section-editor>summary strong{color:#937ba4}.grouped-exam:has(.exam-builder-banner.advanced) .section-number{background:#e9e0f1;color:#ae95bf}
@media(max-width:760px){.exam-manager-tabs{flex-wrap:wrap}.exam-manager-tabs>button{min-width:130px}.exam-manager-tabs>button:nth-child(3){flex-basis:100%}.grouped-exam .section-editor-body{padding:12px}.grouped-exam .exam-section-editor>summary{padding:11px 12px}.grouped-exam .exam-section-editor>summary strong{font-size:12px}.grouped-exam .exam-section-editor>summary small{display:block;font-size:8px}.group-actions .group-remove{margin-left:0}.group-actions{gap:6px}.group-actions .btn{font-size:9px}.group-editor-toolbar>strong{font-size:11px}.group-editor-toolbar .text-link{font-size:9px}.audience-choice.computing{padding:20px}}

/* Shared outline icon system for admin and student navigation. */
.admin-workspace .sidebar a>.menu-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:#f0f2f5;color:#5c6978;transition:background .18s,color .18s;line-height:1}
.admin-workspace .sidebar .menu-icon svg{display:block;width:19px;height:19px;flex:none}
.admin-workspace .sidebar a:hover>.menu-icon{background:#e1e7ee;color:#243e5b}
.admin-workspace .sidebar a.active>.menu-icon{background:#ffffff1f;color:#c9dcf2}
.admin-workspace .sidebar a:focus-visible{outline:2px solid #476485;outline-offset:2px}
@media(max-width:760px){.admin-workspace .sidebar a>.menu-icon{display:inline-flex;width:23px;height:23px;flex-basis:23px;border-radius:6px}.admin-workspace .sidebar .menu-icon svg{width:17px;height:17px}}
@media(prefers-reduced-motion:reduce){.admin-workspace .sidebar a>.menu-icon{transition:none}}
/* Compact question authoring and private speaking recorder. */
.compact-exam .q-specific .choice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:10px 0}
.compact-exam .q-specific .choice-options .field{margin:0;min-width:0}
.compact-exam .q-specific .choice-options label{margin:0 0 4px;font-size:11px}
.compact-exam .q-specific .choice-options input{min-height:38px;padding:8px 10px;margin:0}
.compact-exam .q-editor-body{padding:14px 16px}
.compact-exam .q-config{gap:10px;margin-bottom:12px}
.compact-exam .q-specific>.q-answer{max-width:180px;margin-top:4px}
.compact-exam .choice-toolbar{gap:10px;margin:8px 0}
.compact-exam .q-text{min-height:90px}
.speaking-panel{border:1px solid #cbd4de;background:#f5f7fa;border-radius:14px;padding:18px;margin-top:16px}
.speaking-actions{display:flex;gap:8px;flex-wrap:wrap}.speaking-status{font-size:12px;margin:12px 0}.speaking-preview audio,.student-response audio{display:block;width:100%;margin-top:10px}
/* Workspace footer stays outside the two independent scrolling regions. */
body:has(.admin-workspace) .demo-strip{display:flex;align-items:center;justify-content:center;flex:none;min-height:30px;padding:5px 12px;border-top:1px solid var(--line);background:#fff;font-size:10px;z-index:10}
body:not(:has(.admin-workspace)) #app{min-height:100dvh;display:flex;flex-direction:column}
body:not(:has(.admin-workspace)) #app>footer{margin-top:auto;flex:none}
@media(max-width:580px){.compact-exam .q-specific .choice-options{grid-template-columns:1fr;gap:8px}.speaking-panel{padding:12px}}
body:not(:has(.admin-workspace)){padding-bottom:48px}
body:not(:has(.admin-workspace)) footer .copyright{position:fixed;bottom:0;left:0;right:0;z-index:35;min-height:42px;padding:10px max(20px,calc((100vw - 1160px)/2));margin:0;border-top:1px solid var(--line);background:#fffdf8;box-shadow:0 -2px 12px #182a3f08}
@media(max-width:580px){body:not(:has(.admin-workspace)){padding-bottom:70px}body:not(:has(.admin-workspace)) footer .copyright{min-height:64px;display:flex;flex-direction:column;gap:2px;justify-content:center;font-size:9px}}

.forgot-password{display:block;margin:14px 0 0 auto;background:none;padding:4px 0;font-size:12px}.reset-student{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f2f4f7;margin-bottom:18px}.reset-student p{margin:4px 0 0;font-size:12px}.reset-password-result{display:flex;align-items:center;gap:10px;margin:8px 0 18px}.reset-password-result input{font:600 28px monospace;letter-spacing:5px;text-align:center;min-width:0;flex:1;background:#edf2f8;border:1px solid #c0cedd;padding:16px}.recovery-help{font-size:11px;line-height:1.7;margin-top:18px}@media(max-width:480px){.reset-password-result{flex-wrap:wrap}.reset-password-result input{width:100%}}
.toeic-pack-summary{display:flex;gap:20px;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#dde7f2,#eef2f7);border:1px solid #c5d3e3;border-radius:14px;padding:20px;margin-bottom:18px}.toeic-pack-summary h3{margin:10px 0 8px;font-size:20px}.toeic-pack-summary p{font-size:12px;max-width:680px;margin:0}.toeic-pack-summary .btn{flex:none}@media(max-width:650px){.toeic-pack-summary{align-items:start;flex-direction:column;padding:16px}}
/* The timer and submit action remain visible while only question numbers scroll. */
.exam-layout,.student-workspace .exam-layout{grid-template-columns:minmax(0,1fr) 250px;align-items:start}
.exam-side{position:sticky;top:var(--exam-sticky-top,100px);align-self:start;min-width:0;max-height:var(--exam-available-height,calc(100dvh - 180px))}
.exam-side>.panel{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:0;padding:18px;max-height:inherit;min-height:0;overflow:hidden;margin:0}
.exam-side .timer{font-size:32px;line-height:1.2;margin:6px 0}
.exam-side #answered-count{font-size:12px;margin:6px 0 10px;flex:none}
.exam-side .question-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;min-height:44px;max-height:calc(var(--exam-available-height,100dvh - 180px) - 250px);margin:0 0 12px;padding:3px 4px 4px 2px;flex:1 1 auto;align-content:start}
.exam-side .question-nav a{width:auto;height:32px;min-height:32px;font-size:11px}
.exam-side .question-nav:focus-visible{outline:2px solid #476485;outline-offset:1px}
.exam-side .notice{font-size:10px!important;padding:8px 10px;margin:0 0 8px;line-height:1.5;flex:none}
.exam-side [data-action="submit-exam"]{flex:none;min-height:38px;padding:10px 14px}
body:has(.admin-workspace) .exam-side{top:8px}
.skill-question{scroll-margin-top:110px}.workspace-main .skill-question{scroll-margin-top:12px}
.learning-progress{min-width:0}.progress-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.progress-kpis>div{padding:14px 16px;background:#eef1f5;border:1px solid #dce2e8;border-radius:12px}.progress-kpis strong{display:block;font-size:26px;line-height:1.3}.progress-kpis span{font-size:11px;color:var(--muted)}.progress-rule{font-size:11px;margin:8px 0;line-height:1.6}.progress-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0}.progress-toolbar .auth-tabs{margin:0;flex-wrap:wrap}.progress-toolbar .auth-tabs button{padding:8px 10px;font-size:11px}.progress-toolbar select,.progress-toolbar input{width:auto;max-width:260px;min-height:38px;font-size:11px}.progress-table{max-height:52dvh;overflow:auto}.progress-table th{position:sticky;top:0;background:#f1f3f6;z-index:1}.progress-table td{vertical-align:top}.progress-attempts{max-width:330px;max-height:180px;overflow:auto}.progress-attempts>div{padding:7px 0;border-bottom:1px solid var(--line)}.progress-attempts span,.progress-attempts small{display:block;font-size:10px}.progress-ranking{margin:20px 0 28px}.progress-ranking .section-heading h3{font-size:16px;margin-bottom:6px}.progress-ranking p{font-size:11px;margin:0}.rank-position{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:700;background:#eff1f3}.rank-1{background:#fff0b8;color:#8a6500}.rank-2{background:#e8edf1;color:#485a6b}.rank-3{background:#f5dfcf;color:#87573b}
@media(max-width:850px){.exam-layout,.student-workspace .exam-layout{grid-template-columns:minmax(0,1fr) 210px;gap:14px}.exam-side>.panel{padding:12px}.exam-side .question-nav{gap:4px}.exam-side .notice{font-size:9px!important}}
@media(max-width:650px){.exam-layout,.student-workspace .exam-layout{grid-template-columns:1fr}.exam-side{position:sticky;grid-row:1;z-index:12;background:var(--cream);top:var(--exam-sticky-top,85px)}.exam-side>.panel{padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:5px 12px;box-shadow:0 3px 12px #182a3f10}.exam-side>.panel>div:first-child{grid-column:1}.exam-side .timer{font-size:24px;display:inline-block;margin:0 0 0 8px}.exam-side #answered-count{grid-column:2;grid-row:1;align-self:center;margin:0;font-size:10px}.exam-side .question-nav{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(8,minmax(0,1fr));max-height:84px;min-height:32px;margin:0}.exam-side .notice{display:none}.exam-side [data-action="submit-exam"]{grid-column:1/-1;grid-row:3;min-height:32px;padding:6px}.skill-question{scroll-margin-top:310px}.workspace-main .skill-question{scroll-margin-top:240px}.progress-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-toolbar input,.progress-toolbar select{max-width:100%;width:100%}}
@media(min-width:651px) and (max-height:650px){.exam-side .notice{display:none}.exam-side .question-nav{max-height:calc(var(--exam-available-height,400px) - 160px)}}
.gcal-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:14px;background:linear-gradient(110deg,#edf5fe,#edf1f6);border:1px solid #d6dde5;border-radius:12px}.gcal-entry small,.gcal-help,.gcal-panel form small{font-size:11px;color:var(--muted)}.gcal-status{padding:15px 18px;border:1px solid #dce4e9;background:#f4f7fb;border-radius:12px;margin-bottom:18px}.gcal-status.connected{background:#eef3f8;border-color:#cdd9e6}.gcal-status p{font-size:12px;margin:5px 0 0}.gcal-panel h3{font-size:17px}.gcal-setup{padding:18px;background:#fff9e9;border:1px solid #f0dfb7;border-radius:12px;margin-bottom:18px}.gcal-setup li,.gcal-setup p{font-size:12px;line-height:1.8}.gcal-setup code{overflow-wrap:anywhere}.gcal-sync-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.gcal-sync-bar small{display:block;font-size:10px;margin-top:5px}.gcal-section{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:14px 0}.gcal-section>summary{font-weight:600;cursor:pointer}.gcal-section[open]>summary{margin-bottom:16px}.gcal-preview-list{max-height:360px;overflow:auto;margin-top:15px}.gcal-preview-row,.gcal-export-list>div{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.gcal-preview-row strong,.gcal-export-list strong{font-size:12px}.gcal-preview-row p,.gcal-export-list small{display:block;font-size:10px;margin:4px 0}.gcal-preview-row .btn,.gcal-export-list .btn{flex:none}.gcal-export-list{max-height:300px;overflow:auto}.gcal-report-row{padding:12px 0;border-bottom:1px solid var(--line)}.gcal-report-row p,.gcal-report-row small{font-size:11px}.gcal-report-row .actions{margin:10px 0}@media(max-width:600px){.gcal-entry,.gcal-sync-bar,.gcal-preview-row,.gcal-export-list>div{align-items:start;flex-direction:column}.gcal-entry small{font-size:10px}}
.auth-help{font-size:11px;line-height:1.8;color:var(--muted);margin-top:14px}.student-detail{max-width:1160px;margin:auto}.student-detail-head{display:flex;align-items:start;justify-content:space-between;gap:20px;margin:20px 0}.student-detail-head h2{margin:10px 0;font-size:30px}.student-detail-head p{font-size:12px}.student-detail-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start}.student-info{margin:0}.student-info>div{padding:9px 0;border-bottom:1px solid var(--line)}.student-info dt{font-size:10px;color:var(--muted)}.student-info dd{font-size:12px;margin:2px 0 0;overflow-wrap:anywhere}.student-detail .panel{padding:22px}.preserve-lines{white-space:pre-wrap;font-size:12px;overflow-wrap:anywhere}.student-fee-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.student-fee-summary>div{background:#eaeef3;border:1px solid #d4dbe3;padding:14px;border-radius:12px}.student-fee-summary small{display:block;font-size:10px}.student-fee-summary strong{display:block;font-size:17px;margin-top:8px}.student-class-list{display:grid;gap:14px}.student-class-card h3{font-size:18px;margin:10px 0 5px}.student-class-card p{font-size:12px}.fee-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.fee-facts span{font-size:10px;color:var(--muted)}.fee-facts strong{display:block;font-size:14px;color:var(--ink);margin-top:4px}.credentials-table{max-height:48dvh;overflow:auto}.credentials-table code{font-size:15px;letter-spacing:1px}.import-errors{max-height:200px;overflow:auto;background:#fff2ef;padding:12px;border-radius:9px}.import-errors p{font-size:12px;margin:4px 0;color:#a43b39}#managed-import-preview .table-wrap{max-height:40dvh;overflow:auto}.student-detail .section-heading{align-items:center;margin:20px 0 12px}@media(max-width:1000px){.student-detail-grid{grid-template-columns:250px minmax(0,1fr)}.student-fee-summary{grid-template-columns:1fr}.student-fee-summary>div{display:flex;align-items:center;justify-content:space-between}.student-fee-summary strong{margin:0}.student-detail-head{flex-direction:column}}@media(max-width:700px){.student-detail-grid{grid-template-columns:1fr}.student-detail .panel{padding:18px}.fee-facts{grid-template-columns:1fr 1fr}.student-detail-head h2{font-size:25px}}
/* Compact portal chrome and fixed dialog layout. */
:root{--control-height:38px;--portal-header:64px}
.admin-header .container{max-width:none;padding:0 22px}.admin-header nav{height:var(--portal-header)!important;gap:16px}.admin-header .brand{width:196px;min-width:196px;border-right:1px solid var(--line);height:100%;gap:10px}.admin-header .brandmark{width:32px;height:34px;font-size:21px;border-radius:10px;transform:none}.admin-header .brand strong{font-size:15px}.admin-header .brand small{font-size:8px;letter-spacing:1px}.header-space{flex:1}.header-tools{display:flex;align-items:center;gap:16px}.header-account{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;position:relative}.header-account small{display:block;font-size:9px;font-weight:400;color:var(--muted);line-height:1.4}.header-account .avatar{width:34px;height:34px;border-radius:50%;background:#e5e9ee;display:grid;place-items:center;font-size:13px}.header-account .status-dot{position:absolute;left:26px;bottom:0;border:2px solid white;width:10px;height:10px}.header-icon{width:38px;height:38px;display:grid;place-items:center;background:transparent;border-radius:8px;color:#717983;flex:none}.header-icon:hover{background:#eef1f4}.header-icon .menu-icon{width:19px;height:19px}.header-caption{font-size:11px;color:var(--muted)}.header-tools #notification-center{order:-1;margin:0}.notification-bell{width:38px;height:38px;background:transparent;border:0;border-radius:8px}.notification-popover{z-index:120}
.admin-workspace .sidebar>.account-box{display:none}.admin-workspace .sidebar{padding:10px}.admin-workspace .sidebar .group-label{padding-top:8px}.admin-workspace .workspace-main{padding:20px 24px;background:#f6f7f8}.workspace-title{margin-bottom:18px;align-items:center}.workspace-title h1{font-size:25px}.workspace-title p{display:none}.workspace .btn,.dialog .btn,.auth-card .btn,.btn.small{height:var(--control-height);min-height:var(--control-height);padding:0 13px;font-size:11px;line-height:1.35;gap:8px;white-space:nowrap}.btn:hover{transform:none}.row-actions,.actions{gap:8px}.actions{margin:16px 0}.workspace .panel,.dialog .panel{padding:18px}.workspace .grid{gap:14px}.workspace .section-heading{margin:18px 0 12px;align-items:center}.workspace .filters{margin-bottom:16px;gap:8px}.workspace td{padding:12px 14px}.workspace th{padding:11px 14px}.workspace .kpi{padding:16px}.workspace .kpis{gap:12px;margin-bottom:18px}.workspace .kpi strong{font-size:28px}.overview-hero{padding:22px!important;margin-bottom:16px!important}.overview-columns{gap:16px!important}.overview-recent{margin-top:16px!important}.workspace .field,.dialog .field{margin-bottom:12px}.workspace label,.dialog label{margin-bottom:5px}.workspace input:not([type=checkbox]):not([type=radio]):not([type=range]),.workspace select,.dialog input:not([type=checkbox]):not([type=radio]):not([type=range]),.dialog select{min-height:38px;padding:8px 12px;font-size:12px}.workspace select,.dialog select{padding-right:38px}.dialog textarea{padding:10px 12px;min-height:110px}.dialog .form-grid{gap:0 14px}.dialog .notice{padding:11px 13px;margin-bottom:14px}.dialog .upload-panel{padding:15px;margin:10px 0 16px}.dialog .form-section{margin-bottom:16px}.dialog h3{font-size:17px}.dialog .question-editor{padding:14px}
.overlay{padding:20px;backdrop-filter:blur(2px)}.overlay .dialog,.overlay .dialog.large{padding:0;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 40px);border-radius:14px;background:#fff}.overlay .dialog-head{flex:none;padding:16px 20px;margin:0;border-bottom:1px solid var(--line);align-items:center;background:white;z-index:2}.dialog-head h2{font-size:19px}.dialog-head .close{width:34px;height:34px;min-width:34px;display:grid;place-items:center;margin:0}.dialog-body{padding:18px 20px;overflow-y:auto;min-height:0;overscroll-behavior:contain}.dialog-body.form-dialog-body{padding:0;display:flex;flex-direction:column;overflow:hidden}.fixed-dialog-form{display:flex;flex-direction:column;overflow:hidden;min-height:0;max-height:100%;margin:0}.form-scroll{overflow-y:auto;min-height:0;padding:18px 20px;overscroll-behavior:contain}.dialog .dialog-footer{position:static;flex:none;margin:0;padding:12px 20px;border-top:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:flex-end;z-index:2;gap:8px;flex-wrap:wrap}.dialog-footer [role=alert]{flex-basis:100%;margin:0;font-size:11px}.dialog-footer [role=alert]:empty{display:none}.dialog-footer .btn{flex:none}.dialog-footer>.btn:first-of-type{order:2}.dialog-footer [data-action=close]{order:0;margin-right:auto}.dialog-footer .save-continue{order:1}
.overlay.detail-overlay{inset:64px 0 0 auto;width:min(600px,48vw);padding:0;background:transparent;backdrop-filter:none;pointer-events:none;align-items:stretch;justify-content:flex-end}.detail-overlay .dialog,.detail-overlay .dialog.large{pointer-events:auto;width:100%;max-width:none;max-height:100%;height:100%;border-radius:0;border-left:1px solid var(--line);box-shadow:-12px 0 40px #172a3f18;animation:detail-enter .2s ease-out}.detail-overlay .dialog-head{padding:16px 18px}.detail-overlay .dialog-body{padding:18px}.detail-overlay .student-detail-grid{grid-template-columns:1fr;gap:14px}.detail-overlay .student-detail-head{margin:0 0 16px;gap:10px;flex-direction:column}.detail-overlay .student-detail-head h2{font-size:23px;margin:8px 0}.detail-overlay .student-detail>a{display:none}.detail-overlay .student-fee-summary{grid-template-columns:1fr;gap:7px}.detail-overlay .student-fee-summary>div{display:flex;justify-content:space-between;align-items:center;padding:10px 12px}.detail-overlay .student-fee-summary strong{margin:0;font-size:15px}.detail-overlay .student-detail .panel{padding:16px}.detail-overlay .class-facts{gap:10px}.detail-overlay .grid{grid-template-columns:1fr}.detail-overlay .detail-title h2{font-size:24px}.detail-overlay .student-info{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.sidebar-collapsed .admin-workspace{grid-template-columns:0 minmax(0,1fr)}.sidebar-collapsed .sidebar{padding:0;border:0;visibility:hidden}.sidebar-collapsed .admin-header .brand{width:196px}
@keyframes detail-enter{from{transform:translateX(24px);opacity:.5}to{transform:translateX(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.detail-overlay .dialog{animation:none}}
@media(max-width:900px){.overlay.detail-overlay{width:min(560px,65vw)}.header-account>span:not(.avatar):not(.status-dot){display:none}.admin-header .brand{min-width:165px;width:165px}.admin-workspace .workspace-main{padding:18px}.header-tools{gap:8px}}
@media(max-width:600px){.admin-header .container{padding:0 12px}.admin-header nav{gap:8px}.admin-header .brand{min-width:130px;width:130px;border:0}.admin-header .brand strong{font-size:12px}.admin-header .brand small{font-size:7px}.admin-header .brandmark{width:29px;height:30px}.header-tools{gap:4px}.header-account .avatar{width:30px;height:30px}.header-icon,.notification-bell{width:36px;height:36px}.header-caption{display:none}.overlay{padding:10px}.overlay .dialog{max-height:calc(100dvh - 20px)}.overlay.detail-overlay{width:calc(100vw - 44px);top:64px}.detail-overlay .dialog{max-height:100%}.dialog .dialog-footer{padding:10px 12px;gap:6px}.dialog .dialog-footer .btn{font-size:10px;padding:0 10px}.form-scroll,.dialog-body{padding:16px}.workspace-title h1{font-size:22px}.admin-workspace .workspace-main{padding:16px 12px}.sidebar-collapsed .admin-workspace{grid-template-rows:0 minmax(0,1fr)}.detail-overlay .student-info{grid-template-columns:1fr}.workspace .btn{white-space:normal}.header-tools .menu-icon{width:18px}.detail-overlay .dialog-body{padding:14px}}
.overlay .dialog .fixed-dialog-form>.dialog-footer{position:static;bottom:auto;padding:12px 20px;margin:0;background:white;border-top:1px solid var(--line)}.created-account{background:#eaeff5!important;border:1px solid #c5d2e1}.created-account p{margin:6px 0 10px;color:var(--green)}.created-account code{font-size:14px;letter-spacing:1px}
/* Currency/date controls and compact enrollment cards. */
.money-control,.date-control{position:relative;min-width:0}.money-control>input[type=text]{padding-right:54px!important;font-variant-numeric:tabular-nums;font-weight:600}.money-control>span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--muted);pointer-events:none}.money-field>small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.date-control>input[type=text]{padding-right:46px!important;font-variant-numeric:tabular-nums}.date-picker-button{position:absolute;right:3px;top:3px;bottom:3px;width:34px;background:transparent;color:#647384;display:grid;place-items:center;border-radius:6px}.date-picker-button:hover{background:#edf0f3}.date-picker-button .menu-icon{width:18px;height:18px}.date-control .native-date-picker{position:absolute!important;left:0;bottom:0;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;opacity:0;pointer-events:none;clip-path:inset(50%)}
.student-class-list{display:grid;gap:12px;min-width:0}.enrollment-card{display:block;min-width:0;border:1px solid #e0e4e8;border-radius:12px;background:#fff;overflow:hidden}.enrollment-card .enrollment-card-head{position:static;z-index:auto;display:flex;justify-content:space-between;align-items:start;gap:12px;padding:14px 16px 12px;border:0;background:white}.enrollment-card-head>div{min-width:0}.enrollment-card-head h3{font-size:16px;line-height:1.4;margin:0 0 3px;letter-spacing:-.025em;overflow-wrap:anywhere}.enrollment-card-head p{font-size:11px;line-height:1.5;margin:0}.enrollment-card .badge{font-size:10px;white-space:nowrap;flex:none;padding:4px 8px;line-height:1.5;max-width:none}.enrollment-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 16px;background:#f5f6f8;border-radius:8px;padding:12px 0}.enrollment-amounts>div{min-width:0;padding:0 10px;border-right:1px solid #dfe3e8}.enrollment-amounts>div:last-child{border:0}.enrollment-amounts dt{font-size:10px;color:var(--muted);margin-bottom:4px}.enrollment-amounts dd{font-size:13px;line-height:1.5;font-weight:700;margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}.enrollment-amounts>div:last-child dd{color:#986527}.enrollment-payment{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;padding:10px 16px;font-size:10px;color:var(--muted)}.enrollment-payment strong{color:var(--ink);font-weight:500;margin-left:4px}.enrollment-note{padding:0 16px;font-size:11px;white-space:pre-wrap;margin:0 0 12px;overflow-wrap:anywhere}.enrollment-card .enrollment-card-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 16px;margin:0;border-top:1px solid #e9ebee;background:#fcfcfd;color:var(--ink)}.enrollment-card-actions .btn{height:38px;min-height:38px;padding:0 12px;font-size:10px}.enrollment-history{border:1px solid var(--line);border-radius:10px;background:#fafbfc;padding:12px 14px}.enrollment-history>summary{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;cursor:pointer}.enrollment-history>summary:before{content:'›';font-size:18px;line-height:1}.enrollment-history[open]>summary:before{transform:rotate(90deg)}.enrollment-history>summary span{background:#e7ebef;border-radius:6px;padding:0 7px;font-size:10px}.enrollment-history>div{display:grid;gap:10px;margin-top:12px}.student-detail .section-heading h3{font-size:16px;margin:0}.student-detail .section-heading{gap:10px;align-items:center}.student-fee-summary>div{padding:10px 12px}.student-fee-summary strong{font-size:15px}.detail-overlay .enrollment-card-head{padding:12px 14px}.detail-overlay .enrollment-amounts{margin:0 14px}.detail-overlay .enrollment-payment{padding:10px 14px}
@media(max-width:450px){.enrollment-card .enrollment-card-head{flex-wrap:wrap;gap:6px}.enrollment-amounts{margin:0 10px!important}.enrollment-amounts>div{padding:0 7px}.enrollment-amounts dd{font-size:11px}.enrollment-card .enrollment-card-actions{padding:10px;gap:6px}.enrollment-card-actions .btn{flex:1;font-size:9px;padding:0 8px}.student-detail .section-heading{flex-wrap:wrap}.enrollment-history{padding:10px}}
.dialog.large:has(#managed-fee-form){max-width:740px}#managed-fee-form textarea{height:104px;min-height:104px}#managed-fee-form>.form-scroll>p:first-child{font-size:11px;margin-bottom:14px}
.teacher-account-grid,.teacher-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.teacher-account-card{border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:12px;align-items:start}.teacher-account-card small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.teacher-accounts-panel{margin-bottom:18px}.teacher-first-password{max-width:620px;margin:32px auto;padding:0 18px}.teacher-first-password .panel{margin:0!important}.teacher-class-grid h3{font-size:17px}.teacher-class-grid p{font-size:12px}
.permission-heading{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px}.permission-heading h2{font-size:22px;margin:0 0 6px}.permission-heading p{font-size:12px;margin:0}.permission-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:14px}.permission-toolbar label{flex:1;min-width:230px;max-width:440px;font-size:11px}.permission-toolbar select{display:block;margin-top:6px;width:100%}.permission-toolbar>.badge{margin-bottom:8px}.permission-options{padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:0}.permission-options:disabled{opacity:.65}.permission-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px!important;border-bottom:1px solid var(--line);margin:0!important;cursor:pointer;background:white}.permission-row:last-child{border:0}.permission-row:hover{background:#f5f7f9}.permission-row strong{display:block;font-size:12px}.permission-row small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.permission-row em{display:block;font-size:10px;color:#788390;font-style:normal;margin-top:4px}.permission-row input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--green);flex:none;cursor:pointer}.permission-status{font-size:11px;min-height:20px;margin:10px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:600px){.permission-heading{flex-direction:column}.permission-toolbar label{max-width:none;flex-basis:100%}.permission-row{padding:12px!important}}
.permission-group-title{padding:10px 16px;background:#edf0f4;color:#45576b;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;font-weight:700}.permission-group-title:first-of-type{border-top:0}
.teacher-directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.teacher-directory-toolbar input{max-width:440px}.teacher-directory td{vertical-align:middle}.teacher-directory .row-actions{justify-content:flex-start;gap:6px}.teacher-directory code{font-size:12px;font-weight:600}.center-settings-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}.center-settings-tabs button{padding:11px 16px;background:transparent;color:var(--muted);font-size:12px;border-bottom:2px solid transparent}.center-settings-tabs button.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.center-settings .permission-heading h2{font-size:18px}.center-settings .permission-row{padding:11px 16px!important}.center-settings .permission-heading{margin-bottom:14px}@media(max-width:600px){.teacher-directory-toolbar{align-items:stretch;flex-direction:column}.teacher-directory .row-actions{min-width:220px}.center-settings-tabs button{padding:10px;font-size:11px}}

/* Compact, balanced tables and unified action controls. */
.workspace-main table,.dialog table{table-layout:fixed;white-space:normal;width:100%}
.workspace-main th,.workspace-main td,.dialog th,.dialog td{overflow-wrap:anywhere;padding:12px 14px;vertical-align:middle}
.workspace-main th:last-child,.workspace-main td:last-child,.dialog th:last-child,.dialog td:last-child{width:auto}
.table-action-cell{width:76px!important;text-align:right}
.table-action-select{width:116px;max-width:100%;height:38px;padding:6px 10px;border-radius:8px;background:#fff;font-size:12px;cursor:pointer}
.clickable-table-row{cursor:pointer}.clickable-table-row:hover td{background:#f0f3f6}.clickable-table-row:focus-visible{outline:2px solid #4a6685;outline-offset:-2px}.table-row-title{font-weight:600;color:#2d4b6e}
[hidden]{display:none!important}
.dialog .dialog-footer,.dialog .dialog-body>.actions,.dialog .dialog-body>form>.actions,.dialog .sticky-actions{justify-content:flex-end!important;text-align:right}
.dialog-footer [role="alert"]{flex-basis:100%;text-align:left}.dialog-footer .btn{margin-left:0!important;margin-right:0!important}
.btn.is-loading{pointer-events:none;opacity:.75;cursor:wait}.btn.is-loading:before{content:'';width:14px;height:14px;flex:0 0 14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:portal-spin .7s linear infinite}.btn.is-loading{transform:none!important}
@keyframes portal-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.workspace-main table,.dialog table{min-width:620px}.workspace-main th,.workspace-main td,.dialog th,.dialog td{padding:10px}.dialog-footer{gap:8px!important}}
@media(prefers-reduced-motion:reduce){.btn.is-loading:before{animation-duration:1.5s}}

.table-action-trigger{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:8px;border:1px solid transparent;border-radius:8px;background:transparent;color:#435164;cursor:pointer;vertical-align:middle}
.table-action-trigger svg{width:22px;height:22px}.table-action-trigger:hover,.table-action-trigger[aria-expanded=true]{background:#eaedf1;border-color:#dce1e7;color:var(--green)}
.table-action-menu{position:fixed;z-index:1000;width:220px;max-width:calc(100vw - 16px);max-height:min(360px,calc(100dvh - 16px));overflow-y:auto;padding:6px;background:#fff;border:1px solid #e9eaec;border-radius:10px;box-shadow:0 8px 28px #182b3026,0 2px 6px #182b3012;text-align:left}
.table-action-item{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:10px 12px;border-radius:6px;background:transparent;color:#343c46;text-align:left;font-size:12px;line-height:1.5;cursor:pointer}.table-action-item svg{width:19px;height:19px;flex:none}.table-action-item:hover,.table-action-item:focus-visible{background:#f1f3f6;outline:none}.table-action-item.edit{color:#305e93}.table-action-item.danger{color:#df3535}.table-action-item.danger:hover,.table-action-item.danger:focus-visible{background:#fff0f0}.table-action-item:disabled{opacity:.45;cursor:not-allowed}
.table-action-trigger.is-loading{cursor:wait;opacity:.65}.table-action-trigger.is-loading svg{display:none}.table-action-trigger.is-loading:before{content:'';width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:portal-spin .7s linear infinite}
/* Tenant branding and platform administration. */
.center-logo{width:40px;height:40px;object-fit:contain;border-radius:8px}.admin-header .brand strong{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subscription-panel,.platform-entry{margin-top:16px;max-width:750px}.subscription-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.subscription-facts span{font-size:11px;color:var(--muted)}.subscription-facts b{display:block;font-size:14px;color:var(--ink)}.platform-login{max-width:440px;margin:8vh auto}.platform-login h1{font-size:28px;margin-top:18px}.platform-login>.text-link{margin-top:20px}.platform-workspace .sidebar svg{width:19px;height:19px;flex:none}.platform-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.platform-table th:last-child{width:76px}.platform-table .table-action-trigger{font-size:26px;line-height:1}.platform-drawer{width:min(760px,95vw)!important}.platform-links{padding:16px;background:#f3f5f7;border-radius:10px;margin:14px 0}.platform-links a{display:block;font-size:12px;padding:5px 0;color:var(--green)}.platform-payment{display:grid;grid-template-columns:1fr 1.4fr;gap:5px 12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.platform-payment small{grid-column:1/-1;color:var(--muted)}.platform-drawer .dialog-body{padding:0}.platform-drawer h3{font-size:16px;margin:18px 0 12px}.platform-workspace .kpi strong{font-size:30px}.platform-workspace .table-action-cell .table-action-trigger:focus-visible{outline:2px solid var(--green)}
@media(max-width:760px){.platform-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-login{margin:24px 12px}.subscription-facts{grid-template-columns:1fr}.admin-header .brand strong{max-width:180px}.platform-workspace .sidebar{display:none}.platform-workspace{grid-template-columns:1fr}}
/* Stable header brand, icon rail and visual logo upload. */
.admin-header .brand,.sidebar-collapsed .admin-header .brand{width:clamp(210px,30vw,400px);min-width:0;max-width:46%;flex:0 1 400px;gap:10px;padding-right:14px;border-right:0;overflow:hidden}.admin-header .brand>span:last-child{min-width:0;flex:1}.admin-header .brand strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.admin-header .center-logo,.admin-header .brandmark{flex:none;width:38px;height:38px}.admin-header .header-tools{flex:none}.admin-header .header-space{min-width:0;flex:1}.header-account>span:not(.avatar):not(.status-dot){max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar{display:flex;flex-direction:column}.sidebar-collapse-button{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-height:38px;flex:none;margin-top:auto;padding:9px 12px;border-radius:8px;background:#f0f2f5;color:var(--green);font-size:11px;text-align:left}.sidebar-collapse-button svg{width:20px;height:20px;flex:none;transform:rotate(180deg)}.sidebar-collapsed .admin-workspace{grid-template-columns:68px minmax(0,1fr)}.sidebar-collapsed .admin-workspace .sidebar{padding:12px 8px;border-right:1px solid var(--line);visibility:visible;overflow:visible}.sidebar-collapsed .sidebar .sidebar-label,.sidebar-collapsed .sidebar .account-box,.sidebar-collapsed .sidebar .group-label{display:none}.sidebar-collapsed .sidebar>a{display:flex;justify-content:center;gap:0;padding:9px;margin-bottom:5px;font-size:0}.sidebar-collapsed .sidebar>a .menu-icon{width:22px;height:22px;margin:0}.sidebar-collapsed .sidebar-collapse-button{justify-content:center;padding:9px}.sidebar-collapsed .sidebar-collapse-button svg{transform:none}
.workspace-main:has(.center-settings)>.workspace-title{max-width:none;margin-left:0;margin-right:0}.center-settings .account-center{margin-left:0!important;margin-right:0!important;max-width:900px}.center-settings .account-center>.panel,.center-settings .subscription-panel,.center-settings .platform-entry{max-width:900px!important}.center-settings .security-entry{margin-left:0!important;margin-right:0!important}.brand-logo-uploader{display:flex;align-items:center;gap:16px}.brand-logo-preview{width:100px;height:100px;flex:none;display:grid;place-items:center;border:1px dashed #b7c1cd;background:#f4f6f8;border-radius:12px;overflow:hidden;cursor:pointer}.brand-logo-preview img{width:100%;height:100%;object-fit:contain;padding:6px}.brand-logo-preview>span{font-size:28px;text-align:center;line-height:1}.brand-logo-preview small{font-size:11px;display:block;margin-top:8px}.brand-logo-uploader>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.brand-logo-uploader>div>small,.brand-logo-uploader [role=status]{flex-basis:100%;font-size:10px;color:var(--muted)}
@media(max-width:760px){.sidebar-collapsed .admin-workspace{grid-template-columns:60px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.sidebar-collapsed .admin-workspace .sidebar{display:flex;max-height:none}.admin-header .brand,.sidebar-collapsed .admin-header .brand{flex:1 1 auto;max-width:70%;width:auto;padding-right:0}.admin-header .brand strong{font-size:12px}.admin-header .brand small{font-size:7px}.header-account>span:not(.avatar):not(.status-dot){display:none}.brand-logo-uploader{gap:12px}}
.renewal-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #efd89d;background:#fff8e7;color:#77531b;padding:12px 16px;border-radius:10px;margin-bottom:16px}.renewal-banner strong,.renewal-banner span{display:block}.renewal-banner span{font-size:11px;margin-top:3px}.renewal-banner.expired{background:#fff0ed;border-color:#efc7c0;color:#a43d30}.renewal-expired{max-width:1000px}.renewal-expired .subscription-panel{max-width:none}.billing-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.billing-plan{position:relative;display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.billing-plan:has(input:checked){border:2px solid var(--green);background:#f1f4f7;padding:17px}.billing-plan input{width:18px;height:18px;align-self:flex-end;accent-color:var(--green)}.billing-plan strong{font-size:18px}.billing-plan b{font-size:13px}.billing-plan span{font-size:10px;color:var(--muted)}.billing-plan:has(input:disabled){opacity:.6;cursor:default}.billing-checkout{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start}.billing-qr{text-align:center}.billing-qr img{width:100%;height:auto;min-height:200px;object-fit:contain;border:1px solid var(--line);border-radius:12px}.billing-qr small{font-size:10px;display:block}.billing-bank h2{font-size:26px;margin:12px 0}.billing-bank code{font-size:13px;overflow-wrap:anywhere}.billing-bank .student-info{grid-template-columns:1fr}.billing-bank .student-info>div{padding:7px 0}#billing-payment-status{font-size:12px;color:var(--green)}.dialog:has(.billing-content) .dialog-body>.billing-content>.actions,.dialog:has(.billing-checkout) .actions{justify-content:flex-end}.billing-content>.actions{justify-content:flex-end}
@media(max-width:650px){.billing-plans{grid-template-columns:1fr}.billing-plan{gap:5px;padding:12px}.billing-plan:has(input:checked){padding:11px}.billing-checkout{grid-template-columns:1fr}.billing-qr{max-width:240px;margin:auto}.renewal-banner{flex-wrap:wrap}}
.workspace-main:has(#settings-form)>.workspace-title{max-width:none!important;margin-left:0!important;margin-right:0!important}.workspace-main:has(.center-settings)>.security-entry{margin-left:0!important;margin-right:0!important}.admin-header .brand>span:last-child{overflow:hidden}#billing-config-form .permission-row input{width:20px;height:20px;accent-color:var(--green)}#billing-config-form>div.form-scroll>p{font-size:11px}

/* Navigation labels have their own typography; icon wrappers never size text. */
.admin-workspace{grid-template-columns:224px minmax(0,1fr)}
.admin-workspace .sidebar{display:flex;flex-direction:column;gap:0;padding:10px 9px;max-height:none;overflow-x:hidden;overflow-y:auto}
.admin-workspace .sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;min-height:38px;margin:0 0 6px;padding:0 5px;background:#fff;position:sticky;top:-10px;z-index:2}
.sidebar-caption{font-size:9px;font-weight:600;letter-spacing:1.2px;color:#878f98;padding-left:5px}
.admin-workspace .sidebar-collapse-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:30px;padding:5px;margin:0;border:1px solid transparent;border-radius:7px;background:transparent;color:#6b7682;flex:none;cursor:pointer}
.admin-workspace .sidebar-collapse-button:hover{background:#edf0f4;border-color:#d9e0e7;color:var(--green)}
.admin-workspace .sidebar-collapse-button>svg{width:19px;height:19px;transform:none}
.admin-workspace .sidebar>a{display:flex;align-items:center;gap:10px;min-height:38px;margin:0 0 3px;padding:5px 9px;font-size:12px;line-height:1.4;white-space:nowrap}
.admin-workspace .sidebar>a>.sidebar-label{display:block;width:auto;min-width:0;flex:1;font:500 12px/1.4 'Be Vietnam Pro',sans-serif;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-workspace .sidebar>a>.menu-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;font-size:0;margin:0;border-radius:7px}
.admin-workspace .sidebar>a>.menu-icon svg{display:block;width:18px;height:18px}
.admin-workspace .sidebar .group-label{font-size:8px;line-height:1.4;letter-spacing:1.1px;padding:9px 10px 6px;flex:none}
.sidebar-collapsed .admin-workspace{grid-template-columns:68px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.sidebar-collapsed .admin-workspace .sidebar{display:flex;padding:10px 8px;visibility:visible;overflow-x:hidden;overflow-y:auto;max-height:none}
.sidebar-collapsed .sidebar .sidebar-top{justify-content:center;padding:0;min-height:38px;margin-bottom:6px}
.sidebar-collapsed .sidebar .sidebar-caption,.sidebar-collapsed .admin-workspace .sidebar>a>.sidebar-label{display:none}
.sidebar-collapsed .admin-workspace .sidebar>a{justify-content:center;gap:0;padding:5px 3px;min-height:38px;margin:0 0 3px}
.sidebar-collapsed .admin-workspace .sidebar-collapse-button>svg{transform:scaleX(-1)}
.admin-header nav{height:60px;min-height:60px;gap:12px}.admin-header .brand,.sidebar-collapsed .admin-header .brand{flex:0 1 340px;width:auto;min-width:0;max-width:48%;gap:9px}
.admin-header .brand strong{font-size:14px;font-weight:650;line-height:1.35;letter-spacing:-.025em}.admin-header .brand small{font-size:8px;line-height:1.5;letter-spacing:.8px}.admin-header .center-logo,.admin-header .brandmark{width:32px;height:32px;flex:none}.admin-header .header-account{font-size:12px;line-height:1.4}.admin-header .header-account small{font-size:9px}.admin-header .header-account .avatar{width:32px;height:32px;font-size:12px}
@media(max-width:760px){.admin-workspace{grid-template-columns:190px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.sidebar-collapsed .admin-workspace{grid-template-columns:60px minmax(0,1fr)}.admin-workspace .sidebar>a>.sidebar-label{font-size:11px}.admin-workspace .sidebar>a{padding:5px 7px;gap:7px}.admin-header .brand,.sidebar-collapsed .admin-header .brand{max-width:65%;flex:1 1 auto}.admin-header .brand strong{font-size:12px}.admin-header .brand small{font-size:7px}.admin-header .container{padding:0 12px}}
/* Public owner account entry. */
.account-public-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);background:white}.account-public-header .brandmark{transform:none}.owner-layout{max-width:1120px;margin:44px auto;display:grid;grid-template-columns:1fr 440px;gap:70px;align-items:start;padding:0 24px}.owner-intro{padding-top:25px}.owner-intro h1{font-size:42px;margin:20px 0;line-height:1.25}.owner-intro>p{max-width:430px;font-size:13px}.owner-trial{background:#e7edf4;border:1px solid #cedae8;border-radius:14px;padding:20px;margin:26px 0}.owner-trial strong{font-size:17px}.owner-trial p{font-size:12px;margin:8px 0}.owner-trial-limits{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.owner-trial-limits span{font-size:10px;background:white;border-radius:6px;padding:4px 8px}.owner-auth{padding:26px}.owner-auth h2{font-size:23px;margin:20px 0}.owner-auth>.btn{margin:6px 6px 6px 0}.owner-auth form>.btn{width:100%}.owner-auth-tabs{display:flex;border-bottom:1px solid var(--line);gap:16px}.owner-auth-tabs button{padding:9px 0;background:none;font-size:12px;color:var(--muted);border-bottom:2px solid transparent}.owner-auth-tabs button.active{border-bottom-color:var(--green);color:var(--green);font-weight:600}.owner-auth .field{margin-bottom:12px}#owner-slug-preview{display:block;margin:-6px 0 14px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.owner-plan-preview{max-width:1120px;margin:0 auto 40px;padding:0 24px}.owner-plan-preview h2{font-size:23px}.owner-plan-preview .billing-plans{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.owner-plan-preview h3{font-size:19px}.owner-plan-preview strong{font-size:14px}.owner-plan-preview p,.owner-plan-preview small{font-size:11px}
@media(max-width:800px){.owner-layout{grid-template-columns:1fr;gap:20px;max-width:540px;margin:20px auto}.owner-intro{padding-top:0}.owner-intro h1{font-size:30px}.owner-trial{margin:16px 0}.owner-auth{padding:20px}.account-public-header{height:64px;padding:0 16px}.account-public-header .brand strong{font-size:13px}.account-public-header .text-link{font-size:10px}}
.platform-plan-list{display:grid;gap:8px}.platform-plan-row{width:100%;display:grid;grid-template-columns:1.5fr 1.3fr 1fr auto;align-items:center;gap:12px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font-size:11px}.platform-plan-row:hover{background:#f0f3f6}.platform-plan-row strong{display:block;font-size:13px}.platform-plan-row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.plan-feature-options{border:1px solid var(--line);border-radius:10px;overflow:hidden}#plan-form .permission-row input{width:20px;height:20px;accent-color:var(--green)}
@media(max-width:650px){.platform-plan-row{grid-template-columns:1fr 1fr;gap:8px}.platform-plan-row>span:last-child{justify-self:start}}
.plan-features{margin-top:8px;font-size:11px}.plan-features summary{cursor:pointer;color:var(--green);font-weight:600}.plan-features ul{margin:8px 0 0;padding-left:17px;color:var(--muted)}.plan-features li{margin:4px 0;font-size:10px}

/* Owner entry: overview and plans alongside the signup form. */
.account-public-header{height:64px}.owner-layout{max-width:1320px;margin:24px auto;grid-template-columns:minmax(0,1fr) minmax(350px,430px);gap:36px}.owner-intro{padding-top:4px;min-width:0}.owner-intro h1{font-size:34px;margin:12px 0}.owner-intro h1 br{display:none}.owner-intro>p{max-width:620px;margin:10px 0}.owner-trial{padding:15px 18px;margin:18px 0}.owner-trial-limits{margin-top:10px}.owner-auth{padding:22px}.owner-auth h2{font-size:21px;margin:16px 0}.owner-auth .field{margin-bottom:10px}.owner-auth .field input{height:42px;min-height:42px}.owner-auth .field label{margin-bottom:5px}.owner-auth .auth-help{font-size:11px;margin-bottom:0}.owner-slug-label{font-size:10px;color:var(--muted)}#owner-slug-preview{margin:3px 0 12px;font-size:11px}.owner-intro .owner-plan-preview{padding:0;margin:20px 0 0;max-width:none}.owner-plan-preview h2{font-size:17px;margin-bottom:12px}.owner-plan-preview .billing-plans{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.owner-plan-preview .panel{padding:15px;min-width:0}.owner-plan-preview h3{font-size:16px;margin:0 0 9px}.owner-plan-preview strong{font-size:12px}.owner-plan-preview p{margin:8px 0}.owner-plan-preview .plan-features{margin-top:10px}.platform-page-panel{padding:22px}.platform-page-panel>.form-scroll{overflow:visible;padding:0}.platform-page-panel .fixed-dialog-form{max-height:none;height:auto}.platform-page-panel .form-scroll{max-height:none}.platform-page-panel .dialog-footer{position:static;border-top:1px solid var(--line);margin-top:20px}.platform-page-panel .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.platform-account .btn svg{width:16px;height:16px}.platform-account{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.platform-account code,.platform-table td code{overflow-wrap:anywhere}.platform-table td:nth-child(2){max-width:240px;overflow-wrap:anywhere}
@media(max-width:900px){.owner-layout{gap:22px;grid-template-columns:minmax(0,1fr) 350px;padding:0 18px}.owner-plan-preview .billing-plans{grid-template-columns:1fr}.owner-intro h1{font-size:28px}}
@media(max-width:700px){.owner-layout{display:flex;flex-direction:column;max-width:540px;margin:18px auto}.owner-intro,.owner-auth{width:100%}.owner-auth{order:-1}.owner-plan-preview .billing-plans{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.owner-intro h1{font-size:26px}.platform-page-panel{padding:16px}.account-public-header .brand strong{font-size:12px}}

.platform-settings-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:0 0 18px;overflow-x:auto}.platform-settings-tabs a{white-space:nowrap;padding:11px 16px;color:var(--muted);font-size:12px;border-bottom:2px solid transparent}.platform-settings-tabs a.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.platform-page-panel .section-heading h2{font-size:17px;margin:0}.platform-page-panel .table-wrap{margin-top:12px}.platform-page-panel .table-wrap td{overflow-wrap:anywhere}

/* Class Management: shared control sizes, spacing and surfaces. */
:root{--radius:14px;--control-height:38px;--cream:#f6f7f8;--line:#e2e5e8;--muted:#6d747c}
.workspace-main{padding-top:24px}.workspace-title{margin-bottom:20px}.workspace-title h1{font-size:26px;letter-spacing:-.035em}.workspace-title p{font-size:10px;letter-spacing:.08em;margin-bottom:5px}
.workspace .panel,.dialog .upload-panel,.platform-page-panel{border-radius:12px;box-shadow:0 2px 8px #182a3f03}.workspace .panel{padding:20px}.workspace .section-heading{align-items:center;gap:12px;margin-bottom:16px}.workspace .section-heading h3{font-size:16px;margin:0}
.workspace .btn,.dialog .btn,.platform-page-panel .btn,.account-public-header .btn{height:var(--control-height);min-height:var(--control-height);padding:0 14px;font-size:12px;font-weight:600;border-radius:8px;gap:7px;white-space:nowrap}.workspace .btn:hover,.dialog .btn:hover,.platform-page-panel .btn:hover{transform:none;box-shadow:0 2px 8px #182a3f10}.btn svg{width:17px;height:17px;flex:none}
.workspace input:not([type=checkbox]):not([type=radio]):not([type=range]),.workspace select,.dialog input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),.dialog select,.platform-page-panel input:not([type=checkbox]),.platform-page-panel select{min-height:var(--control-height);height:var(--control-height);border-radius:8px;font-size:12px;padding:8px 12px}.workspace select,.dialog select,.platform-page-panel select{padding-right:32px}.workspace textarea,.dialog textarea,.platform-page-panel textarea{border-radius:8px;font-size:12px;line-height:1.65}.workspace .filters{gap:10px;margin-bottom:16px}.workspace .filters input,.workspace .filters select{max-width:340px}
.workspace table,.platform-page-panel table{width:100%;border-collapse:collapse;table-layout:auto}.workspace th,.platform-page-panel th{font-size:11px;text-transform:none;letter-spacing:0;font-weight:600;background:#f5f6f8;padding:12px 16px;color:#666f7a;border-bottom:1px solid var(--line)}.workspace td,.platform-page-panel td{font-size:12px;padding:13px 16px;line-height:1.6;border-bottom:1px solid #edeff1;vertical-align:middle}.workspace tbody tr:last-child td{border-bottom:0}.workspace tbody tr.clickable-table-row:hover{background:#f4f6f8}.workspace .table-wrap{border:1px solid var(--line);border-radius:12px;background:white;box-shadow:0 2px 8px #182a3f03}.workspace .cell-meta{font-size:11px;margin-top:3px}.workspace .badge,.platform-page-panel .badge{border-radius:6px;font-size:10px;padding:4px 8px}.workspace .empty{padding:32px 18px;font-size:12px}
.dialog-head h2{font-size:18px;letter-spacing:-.025em}.dialog .form-grid{gap:0 14px}.dialog .field{margin-bottom:13px}.dialog .form-section{padding:16px;margin:14px 0}.dialog .actions:not(.dialog-footer){margin:16px 0 0}.dialog .dialog-footer{padding:12px 20px;gap:8px}.dialog .form-scroll{padding:20px}.dialog .field label{color:#525b66;font-size:11px;margin-bottom:5px}.dialog p{font-size:12px}.detail-overlay .dialog-head{background:#fbfcfd}.student-info dt{font-size:11px}.student-info dd{font-size:12px}
.cm-tabs{height:auto;min-height:48px;display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);margin:0 0 18px;overflow-x:auto;padding:0 0 5px;scrollbar-width:thin}.cm-tabs a,.cm-tabs>button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-height:38px;background:transparent;border:0;border-radius:8px;padding:8px 14px;color:var(--muted);font-size:12px;font-weight:500;white-space:nowrap}.cm-tabs .active{background:#e7ebef;color:var(--green);font-weight:600}.cm-tabs svg{width:17px;height:17px;flex:none}.cm-tabs a>span{padding:0 6px;min-width:22px;border-radius:5px;background:#ffffffb3;font-size:10px}.cm-tabs .active span{color:var(--green)}.cm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.cm-filters{display:flex;align-items:center;gap:10px;flex:1;min-width:0;flex-wrap:wrap}.cm-filters>input{width:250px;max-width:100%}.cm-filters>select{width:220px;max-width:100%;background:white}.cm-filters input,.cm-filters select{border:1px solid var(--line)}.cm-toolbar .row-actions{margin:0}.learning-hub .table-wrap td:first-child{min-width:190px}.learning-hub .table-wrap th:last-child{width:76px}.cm-detail-heading h2{font-size:23px;margin:12px 0}.cm-detail-heading p{line-height:1.8}.cm-detail-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.cm-detail-section .section-heading{align-items:center;margin-bottom:12px}.cm-detail-section h3{font-size:16px;margin:0}.resource-list button{min-height:44px;padding:10px 12px;font-size:12px;border-radius:8px}.resource-list button small{font-size:11px;color:var(--muted)}
.cm-exam-start{display:flex;align-items:center;justify-content:space-between;padding:0 0 14px;border-bottom:1px solid var(--line);margin-bottom:16px;gap:10px}.cm-exam-start p{margin:0;font-size:11px}.cm-exam-basics{grid-template-columns:1fr}.cm-editor-settings{border:1px solid var(--line);border-radius:10px;margin:0 0 18px;background:#fcfcfd}.cm-editor-settings>summary{cursor:pointer;padding:12px 14px;font-size:12px;font-weight:600}.cm-editor-settings>summary span{font-size:10px;color:var(--muted);font-weight:400;margin-left:12px}.cm-editor-settings>.form-grid{padding:4px 14px 0}.compact-exam .group-editor-toolbar{padding:0 0 10px;margin-bottom:10px}.compact-exam .group-editor-toolbar strong{font-size:14px}.compact-exam .group-editor-toolbar strong span{font-size:11px;padding:2px 7px;background:#e7ebef;border-radius:5px;margin-left:6px}.compact-exam .exam-section-editor{border-color:var(--line);border-radius:10px;margin-bottom:12px}.compact-exam .exam-section-editor>summary{padding:12px 14px;background:#f4f5f7}.compact-exam .exam-section-editor>summary strong{color:var(--ink);font-size:12px}.compact-exam .section-number{background:#e4e8ec;color:var(--green)}.compact-exam .section-editor-body{padding:14px}.compact-exam .question-editor{border:1px solid var(--line);border-radius:9px;margin-bottom:10px;box-shadow:none}.compact-exam .question-editor>summary{background:#fff;padding:11px 12px}.compact-exam .q-editor-body{padding:14px}.compact-exam .q-config{grid-template-columns:1.4fr 1fr 85px;gap:12px}.compact-exam .q-config label{font-size:11px}.compact-exam .q-text{min-height:76px}.compact-exam .q-help{line-height:1.6}.compact-exam .group-material{background:#f8f9fa;border-color:var(--line)}.compact-exam .add-group-button{margin-top:0}.exam-manager-tabs.cm-tabs>button{flex:1;text-align:left;display:block;margin:0}.exam-manager-tabs.cm-tabs strong{display:block;font-size:12px;margin:0}.exam-manager-tabs.cm-tabs small{display:block;margin-top:3px;font-size:10px;color:var(--muted)}.exam-manager-tabs.cm-tabs>button.active{background:#e7ebef;color:var(--green)}
.overview-hero{border-radius:14px;padding:24px}.overview-hero h2{font-size:26px}.overview-hero p{font-size:12px}.overview-columns{gap:16px}.workspace .kpis{gap:14px;margin-bottom:20px}.workspace .kpi{border-radius:12px;padding:18px}.workspace .kpi strong{font-size:28px}.workspace .kpi small{font-size:11px}.sidebar a{transition:background .15s,color .15s}.sidebar a:hover{background:#edf0f3}.student-workspace .skill-question{padding:20px}.account-public-header .brand small{letter-spacing:1px}
@media(max-width:1100px){.cm-filters>input{width:220px}.cm-filters>select{width:180px}.cm-toolbar>.row-actions{width:100%;justify-content:flex-end}}
@media(max-width:700px){.workspace-title h1{font-size:23px}.workspace .panel{padding:16px}.workspace td,.workspace th{padding:11px 12px}.cm-tabs{gap:2px}.cm-tabs a,.cm-tabs>button{padding:8px 11px;font-size:11px}.cm-filters>input{width:100%}.cm-filters>select{flex:1;min-width:140px}.cm-exam-start p{font-size:10px}.cm-editor-settings>summary span{display:block;margin:4px 0 0}.compact-exam .q-config{grid-template-columns:1fr 1fr}.compact-exam .q-config>div:last-child{grid-column:1/-1}.cm-detail-section .section-heading{flex-wrap:wrap}.overview-hero{padding:20px}.overview-hero h2{font-size:23px}.cm-toolbar .btn{flex:1}}
/* Merged class management: one list, one editor, one class selector. */
.cm-class-description{padding:0 14px 4px}.learning-hub .table-wrap td:first-child{min-width:200px}.learning-hub .table-wrap td:nth-child(4){min-width:170px}#learning-merged-class,#library-class{min-width:220px;max-width:360px}.cm-editor-settings>.article-body{padding:0 14px 14px}.cm-detail-heading .badge{margin-bottom:8px}
@media(max-width:700px){#learning-merged-class,#library-class{width:100%;max-width:none;min-width:0}}
.independent-lesson .cm-editor-hint{margin:0 0 18px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#f4f6f8}.independent-lesson #f-content{min-height:170px}.lesson-assignment-section{border:1px solid var(--line);border-radius:10px;margin:16px 0;background:#fcfcfd}.lesson-assignment-section>summary{padding:12px 14px;font-size:12px;font-weight:600;cursor:pointer}.lesson-assignment-section>summary span{display:inline-block;background:#e7ebef;border-radius:5px;padding:1px 7px;margin-left:8px;font-size:11px}.lesson-assignment-section>p,.lesson-assignment-section>small{display:block;margin:0 14px 12px;font-size:11px;color:var(--muted)}.lesson-class-options{max-height:240px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:12px}.lesson-class-options>p{padding:12px 14px;margin:0}.lesson-class-options small{display:block;font-size:10px;color:var(--muted)}
/* Interactive activity library and five shared-template players. */
.activity-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.activity-intro p{margin:8px 0 0;color:var(--muted);font-size:13px}.activity-template-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.activity-template-chip{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);border-radius:9px;padding:9px 13px;font:inherit;font-size:12px;cursor:pointer;color:inherit}.activity-template-chip span{display:grid;place-items:center;width:23px;height:23px;background:#edf0f3;border-radius:6px;font-size:16px}.activity-template-chip.active{border-color:#4f6379;background:#edf1f5;color:#24374d}.activity-table{width:100%;table-layout:fixed}.activity-table th:first-child{width:30%}.activity-table th:nth-child(2){width:25%}.activity-table th:nth-child(3){width:23%}.activity-table th:last-child{width:66px}.activity-table td{overflow-wrap:anywhere}.activity-table .cell-meta{display:block;font-size:11px;color:var(--muted);margin-top:5px}.activity-editor-templates{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.activity-editor-templates>label{position:relative;display:flex;align-items:center;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:9px;padding:12px 4px;cursor:pointer;font-size:11px}.activity-editor-templates>label.active{border-color:#4f6379;background:#edf1f5}.activity-editor-templates input{position:absolute;opacity:0;width:1px;height:1px}.activity-editor-templates>label:focus-within{outline:2px solid #4f6379;outline-offset:2px}.activity-editor-templates span{font-size:20px}.activity-editor-help{color:var(--muted);font-size:12px;margin:10px 0 18px}.act-item{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbfc;margin-bottom:12px}.act-item-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.act-item-heading strong{font-size:12px}.act-item-heading>div{display:flex;gap:4px}.act-item-heading .btn{height:30px;min-height:30px;padding:0 9px}.act-item>label,.act-item>details{font-size:11px;display:block;margin:8px 0 5px;color:var(--muted)}.act-item textarea{width:100%;resize:vertical;min-height:58px}.act-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.act-options>label{display:flex;align-items:center;gap:7px;background:white;border:1px solid var(--line);padding:6px 8px;border-radius:8px}.act-options input[type=radio]{flex:0 0 15px;width:15px;height:15px;margin:0;accent-color:#354a63}.act-options span{font-size:11px;color:var(--muted)}.act-options .a-option{min-width:0;width:100%;border:0;background:transparent;box-shadow:none;padding:4px;min-height:28px}.act-option-count{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:11px;color:var(--muted)}.act-option-count label{display:flex;align-items:center;gap:8px}.act-option-count select{padding:3px 22px 3px 8px;min-height:30px;width:auto}.activity-play-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.activity-instructions{font-size:13px;white-space:pre-wrap;color:var(--muted)}.activity-question{font-size:21px!important;line-height:1.5;margin:24px 0 18px;white-space:pre-wrap}.activity-play-options{display:grid;gap:10px}.activity-play-options button{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);border-radius:10px;background:white;min-height:54px;padding:12px;font:inherit;font-size:14px;color:inherit;cursor:pointer}.activity-play-options button>span{display:grid;place-items:center;border-radius:7px;background:#f0f1f3;width:28px;height:28px;flex-shrink:0;font-size:12px}.activity-play-options button.selected{border-color:#354a63;background:#edf1f5}.activity-play-options button.selected>span{background:#354a63;color:white}.activity-text-answer{width:100%;margin-top:8px!important;min-height:48px!important}.activity-player>select{width:100%;margin-top:8px}.activity-question-nav{display:flex;flex-wrap:wrap;gap:6px;max-height:125px;overflow:auto;margin:24px 0 12px;padding:3px}.activity-question-nav button{border:1px solid var(--line);background:white;border-radius:6px;width:32px;height:32px;cursor:pointer;color:inherit}.activity-question-nav button.done{background:#edf1f5;color:#354a63}.activity-question-nav button.current{outline:2px solid #354a63;outline-offset:1px}.activity-order-target{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:90px;border:1px dashed #8b97a5;background:#f2f4f7;border-radius:10px;padding:12px;margin-bottom:14px}.activity-order-target>span{font-size:12px;color:var(--muted);align-self:center}.activity-order-bank{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.activity-order-bank button,.activity-order-target button{font:inherit;font-size:14px;padding:9px 14px;border:1px solid var(--line);border-radius:7px;background:white;color:inherit;cursor:pointer}.activity-flashcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;width:100%;min-height:270px;margin:22px 0;border:1px solid #d2d9e0;border-radius:16px;background:linear-gradient(145deg,#f4f6f9,#e5eaef);color:#24374d;cursor:pointer;padding:28px;box-shadow:0 9px 22px #17273a10}.activity-flashcard.flipped{background:#fdfaf1;border-color:#e6dbbb;color:#69552b}.activity-flashcard small{font-size:10px;letter-spacing:1.4px}.activity-flashcard strong{font-size:25px;line-height:1.5;white-space:pre-wrap}.activity-result{text-align:center;border-radius:12px;background:#f0f3f6;padding:28px;margin-bottom:16px}.activity-result h2{font-size:32px;margin:14px 0}.activity-review>div{padding:12px 0;border-bottom:1px solid var(--line)}.activity-review p{white-space:pre-wrap;font-size:13px}.activity-review small{white-space:pre-wrap;color:var(--muted)}.activity-history{padding:14px 0;border-bottom:1px solid var(--line)}.activity-history>summary{cursor:pointer;font-size:13px;margin-bottom:12px}.activity-report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.activity-report-summary span{padding:14px 10px;border:1px solid var(--line);background:#f7f8fa;border-radius:9px;font-size:12px;text-align:center}.dialog:has(.activity-player) .dialog-body{padding:0;overflow:hidden;display:flex}.activity-player{padding:20px;overflow-y:auto;width:100%;min-height:0}.activity-player>.actions{position:sticky;bottom:-20px;margin:20px -20px -20px;padding:14px 20px;background:white;border-top:1px solid var(--line);z-index:2;justify-content:flex-end}.activity-review+ .actions{justify-content:flex-end}
@media(max-width:700px){.activity-intro{align-items:flex-start}.activity-intro>.btn{white-space:nowrap}.activity-template-strip{gap:6px}.activity-template-chip{padding:6px 9px}.activity-editor-templates{grid-template-columns:repeat(3,1fr)}.act-options{grid-template-columns:1fr}.act-option-count{align-items:flex-start;flex-direction:column}.activity-table{min-width:680px}.activity-report-summary{gap:5px}.activity-report-summary span{padding:10px 6px;font-size:11px}.activity-flashcard strong{font-size:21px}}
/* Flashcards: calm classroom stage, real two-sided 3D cards, touch controls. */
.flash-player{background:radial-gradient(ellipse at 50% 15%,#f3f5f8 0,#f0f4f5 55%,#eaf0f2 100%);padding:20px 26px}.flash-topline,.flash-tools,.flash-progress-heading,.flash-card-controls,.flash-rating,.flash-stat-row{display:flex;align-items:center;gap:10px}.flash-topline,.flash-progress-heading{justify-content:space-between}.flash-tools{gap:6px}.flash-tools .btn{padding:0 10px;height:34px;min-height:34px;font-size:10px}.flash-tools svg,.flash-card-controls svg,.flash-rating svg,.flash-face-hint svg{width:18px;height:18px;flex-shrink:0}.flash-tools .btn,.flash-card-controls .btn,.flash-rating .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}.flash-progress-heading{font-size:11px;color:var(--muted);margin-top:20px}.flash-progress-heading strong{font-size:16px;color:#29384a}.flash-progress-heading strong span{font-weight:400;font-size:11px;color:var(--muted)}.flash-progress{height:6px;background:#dce1e7;border-radius:10px;margin-top:9px;overflow:hidden}.flash-progress>span{display:block;height:100%;background:#4c6786;border-radius:10px;transition:width .3s ease}.flash-instruction{font-size:12px;color:var(--muted);text-align:center;margin:14px 0 0;white-space:pre-wrap}.flash-stage{position:relative;perspective:1400px;margin:28px auto 20px;max-width:580px}.flash-stage:before,.flash-stage:after{content:'';position:absolute;inset:4px 12px -8px;background:#c6ced7;border-radius:18px;transform:rotate(-2deg);pointer-events:none}.flash-stage:after{inset:2px 6px -4px;background:#dce2e8;transform:rotate(1.6deg)}.flash-card{position:relative;z-index:1;display:block;width:100%;height:330px;border:0;background:transparent;padding:0;color:#263445;cursor:pointer;perspective:1400px;touch-action:pan-y;border-radius:16px;animation:flash-enter .28s ease}.flash-card:focus-visible{outline:3px solid #4c6786;outline-offset:5px}.flash-card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.75,.3,1)}.flash-card.is-flipped .flash-card-inner{transform:rotateY(180deg)}.flash-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 30px;border:1px solid #dce1e6;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:linear-gradient(145deg,#fff,#f8f9fb);box-shadow:0 12px 35px #17273a12;overflow:auto}.flash-back{transform:rotateY(180deg);background:linear-gradient(135deg,#24364a,#39506b);color:#fff;border-color:#39506b}.flash-face-label{font-size:9px;letter-spacing:2px;opacity:.6}.flash-face strong{font-size:clamp(21px,3vw,30px);line-height:1.4;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;font-weight:600}.flash-face img{max-width:100%;max-height:140px;object-fit:contain;border-radius:9px}.flash-face-hint{display:flex;align-items:center;gap:7px;font-size:10px;opacity:.6;margin-top:auto}.flash-face-label{margin-bottom:auto}.flash-card-controls{justify-content:center;margin:20px 0 14px}.flash-card-controls .btn{min-width:38px;height:36px;min-height:36px;padding:0 10px}.flash-card-position{font-size:11px;color:var(--muted);min-width:80px;text-align:center}.flash-rating{justify-content:center;gap:10px}.flash-rating .btn{min-width:155px;min-height:43px}.flash-rating [data-act="fc-review"]{background:#fffaf0;color:#8a692b;border:1px solid #e5d9bc}.flash-rating [aria-pressed="true"]{outline:2px solid currentColor;outline-offset:2px}.flash-stat-row{justify-content:center;font-size:11px;color:var(--muted);flex-wrap:wrap;margin-top:18px}.flash-stat-row>span{display:flex;align-items:center;gap:6px}.flash-dot{display:inline-block;width:7px;height:7px;border-radius:50%}.flash-dot.known{background:#4c6786}.flash-dot.review{background:#c49c45}.flash-stat-row .btn{height:30px;min-height:30px;padding:0 10px;font-size:10px;background:transparent;border-color:#c7ced5}.flash-key-hint{font-size:10px;color:var(--muted);text-align:center;margin:14px auto 0;max-width:500px;line-height:1.6}.flash-player>.actions{background:#f7f8fa!important;align-items:center}.flash-player>.actions small{font-size:10px;color:var(--muted);margin-right:auto}.flash-media-fields{padding:12px;background:white;border:1px solid var(--line);border-radius:8px;margin-top:12px!important}.flash-media-fields summary{cursor:pointer;font-size:11px}.flash-media-fields .form-grid{margin-top:12px}.flash-media-fields label{font-size:11px}.flash-media-fields input,.flash-media-fields select{display:block;width:100%;margin:5px 0 8px;font-size:12px}.flash-media-fields small{display:block;color:var(--muted);font-size:10px;line-height:1.5}.flash-celebration{position:relative;height:95px;display:grid;place-items:center;overflow:hidden}.flash-celebration>span{display:grid;place-items:center;width:60px;height:60px;background:#e2e9f0;color:#3a5675;border-radius:50%;font-size:30px;animation:flash-enter .5s ease}.flash-celebration i{position:absolute;top:12px;left:calc(10% + var(--i)*5%);width:6px;height:10px;background:#8d9fb4;transform:rotate(calc(var(--i)*35deg));animation:flash-confetti 1s ease both;animation-delay:calc(var(--i)*.025s)}.flash-celebration i:nth-child(3n){background:#d7b765}.flash-congrats{text-align:center;font-size:18px;font-weight:600;margin:0 0 16px;color:#31445a}.flash-study-summary{font-size:12px}.flash-study-summary small{color:var(--muted)}#modal:fullscreen,#modal.flash-expanded{background:#eef0f3;width:100vw;height:100dvh;padding:0;align-items:stretch;justify-content:stretch;z-index:10000}#modal:fullscreen>.dialog,#modal.flash-expanded>.dialog{max-width:none!important;width:100%;height:100dvh;max-height:100dvh;border-radius:0;margin:0}#modal:fullscreen .flash-player,#modal.flash-expanded .flash-player{padding-inline:max(22px,calc((100vw - 850px)/2))}#modal:fullscreen .flash-card,#modal.flash-expanded .flash-card{height:min(45dvh,440px)}.flash-card img:only-child{max-height:200px}
@keyframes flash-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes flash-confetti{from{opacity:0;translate:0 -15px}25%{opacity:1}to{opacity:0;translate:0 100px;rotate:160deg}}
@media(max-width:600px){.flash-player{padding:16px}.flash-topline{gap:8px;flex-wrap:wrap}.flash-tools .btn{font-size:9px;height:30px;min-height:30px}.flash-card{height:310px}.flash-stage{margin-top:22px}.flash-face{padding:20px}.flash-face strong{font-size:23px}.flash-face img{max-height:125px}.flash-rating .btn{min-width:0;flex:1;font-size:12px}.flash-player>.actions{margin:16px -16px -16px;bottom:-16px;padding:12px 16px;flex-wrap:wrap}.flash-player>.actions small{width:100%;text-align:right}.flash-key-hint{font-size:9px}}
@media(prefers-reduced-motion:reduce){.flash-card,.flash-celebration>span,.flash-celebration i{animation:none}.flash-card-inner,.flash-progress>span{transition:none}.flash-celebration i{display:none}}
/* Each flashcard face is an independent content block. */
.flash-face-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.flash-face-editor{background:white;border:1px solid #d9dee3;border-radius:12px;overflow:hidden}.flash-face-editor-title{display:flex;align-items:center;gap:9px;background:#f0f3f6;border-bottom:1px solid #dde2e7;padding:12px 14px}.flash-face-editor-title>span{font-size:10px;color:#4c6076;background:white;border-radius:6px;padding:5px}.flash-face-editor-title h4{margin:0;font-size:12px;font-weight:600}.flash-face-editor[data-face=back] .flash-face-editor-title{background:#edf2f7}.flash-face-editor>label{display:block;padding:12px 14px 0;font-size:11px;color:var(--muted)}.flash-face-editor textarea{margin-top:6px;min-height:85px}.flash-face-media{padding:12px 14px}.flash-face-image{padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px}.face-label{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:8px}.face-image-preview{min-height:90px;border:1px dashed #cfd6dd;background:#f8f9fa;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px;padding:8px;font-size:11px;color:var(--muted)}.face-image-preview img{max-height:145px;max-width:100%;object-fit:contain;border-radius:6px}.flash-face-editor .btn{height:33px;min-height:33px;font-size:11px;padding:0 10px}.face-upload-label{cursor:pointer;display:inline-flex!important;align-items:center;margin:0}.face-upload-label input[hidden]{display:none!important}.flash-face-editor details{margin-top:9px;font-size:10px;color:var(--muted)}.flash-face-editor details input{margin-top:7px;width:100%}.face-audio-preview{font-size:11px;color:var(--muted);min-height:40px;margin-bottom:8px}.face-audio-preview audio{width:100%;height:38px}.face-sound-actions{display:flex;gap:6px;flex-wrap:wrap}.face-record-status{font-size:10px;color:var(--muted);line-height:1.5;margin:9px 0 0}.face-sound-actions .recording{background:#b64040!important;color:white;border-color:#b64040;animation:record-pulse 1.2s infinite}.flash-face-help{font-size:10px;color:var(--muted);line-height:1.6;margin:10px 2px 0}.face-uploading{opacity:.65;pointer-events:none}.flash-audio-status{font-size:11px;color:#8c6330;text-align:center;line-height:1.6;margin:0 auto 10px;max-width:500px}.flash-audio-status:empty{display:none}.flash-audio-status .btn{height:30px;min-height:30px;font-size:10px;margin-left:6px}.flash-block-item{padding:12px}.flash-face-editor label .a-prompt,.flash-face-editor label .a-back{font-size:12px}.flash-face-editor-grid+.flash-face-help{margin-bottom:0}@keyframes record-pulse{50%{box-shadow:0 0 0 4px #b6404018}}
@media(max-width:760px){.flash-face-editor-grid{grid-template-columns:1fr}.flash-face-editor textarea{min-height:70px}.flash-face-media{display:grid;grid-template-columns:1fr 1fr;gap:12px}.flash-face-image{border-bottom:0;border-right:1px solid var(--line);padding-right:12px;margin:0;padding-bottom:0}.face-sound-actions{gap:5px}}@media(max-width:460px){.flash-face-media{display:block}.flash-face-image{border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:12px}}@media(prefers-reduced-motion:reduce){.face-sound-actions .recording{animation:none}}
/* Prompt-to-activity draft generation. */
.activity-create-actions{display:flex;gap:8px;flex-shrink:0}.activity-create-actions [data-act=new-ai]{background:#edf0f3;border-color:#b5bfcb;color:#31455c}.ai-generator-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}.ai-spark{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:12px;background:#e8ecf1;color:#475b72;font-size:26px}.ai-generator-heading h3{font-size:17px;margin:0 0 7px}.ai-generator-heading p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.ai-generator-fields{display:grid;grid-template-columns:1.2fr .65fr 1fr 1fr;gap:10px;margin-bottom:18px}.activity-ai-form label{font-size:11px;color:var(--muted);display:block}.activity-ai-form label>input,.activity-ai-form label>select,.activity-ai-form label>textarea{display:block;width:100%;margin-top:6px;font-size:12px}.ai-prompt-label textarea{min-height:160px;resize:vertical;font-size:14px!important;line-height:1.7;background:#fcfcfd}.ai-example-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 18px}.ai-example-row .btn{height:30px;min-height:30px;font-size:10px;padding:0 10px}.ai-example-row small,.ai-reference small{font-size:10px;color:var(--muted)}.ai-reference{border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:11px}.ai-reference summary{cursor:pointer;font-weight:600}.ai-reference textarea{display:block;width:100%;margin:12px 0;font-size:12px}.ai-reference>div{display:flex;gap:10px;align-items:center}.ai-reference .btn{height:32px;min-height:32px;font-size:10px}.ai-insert-mode{margin:18px 0}.ai-service-status{font-size:11px;padding:11px 13px;background:#f3f4f6;border-radius:8px;color:var(--muted);line-height:1.6;margin:16px 0 10px}.ai-service-status.ready{background:#edf1f5;color:#364a60}.ai-service-status.unavailable{background:#fff8eb;color:#80662d}.ai-review-note{font-size:11px;color:var(--muted);line-height:1.6;margin:10px 0}.activity-editor .section-heading .btn{margin-left:auto;margin-right:10px;font-size:11px;height:32px;min-height:32px}.ai-draft-ready{margin-top:0}.activity-ai-form .actions{justify-content:flex-end}.activity-ai-form #ai-error:empty{display:none}@media(max-width:700px){.activity-intro{flex-direction:column}.activity-create-actions{width:100%}.activity-create-actions .btn{flex:1;font-size:11px;padding-inline:10px}.ai-generator-fields{grid-template-columns:1fr 1fr}.ai-reference>div{align-items:flex-start;flex-direction:column}.ai-example-row{flex-wrap:wrap}.activity-editor .section-heading{flex-wrap:wrap;gap:8px}}
.platform-ai-config{max-width:850px}.platform-ai-heading h3{margin:12px 0 8px;font-size:19px}.platform-ai-heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.platform-ai-config .form-grid{margin:20px 0}.platform-ai-config .actions{justify-content:flex-end;border-top:1px solid var(--line);padding-top:16px;margin-top:22px}.platform-ai-config .auth-help{font-size:11px;line-height:1.7}.platform-ai-config #ai-config-result{font-size:12px;color:#354a63;line-height:1.7}.platform-ai-config .permission-row{font-size:12px}.platform-ai-config .actions [data-p=ai-disconnect]{color:#a34848}.platform-ai-config input[type=password]{font-family:inherit}.platform-settings-tabs{flex-wrap:wrap}
/* Compact authoring: two faces per row, inline media tools and collapsible cards. */
.flash-block-item{padding:0;margin-bottom:8px;border-radius:9px;overflow:visible;background:#fafbfc}.flash-block-item>.act-item-heading{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:0;cursor:pointer;list-style:none;min-height:43px}.flash-block-item>.act-item-heading::-webkit-details-marker{display:none}.flash-block-item>.act-item-heading:before{content:'›';font-size:19px;color:#667484;line-height:1;transform:rotate(0deg);transition:transform .15s}.flash-block-item[open]>.act-item-heading:before{transform:rotate(90deg)}.flash-block-item>.act-item-heading>strong{font-size:11px;white-space:nowrap;flex-shrink:0}.flash-block-item>.act-item-heading>div{margin-left:auto;flex-shrink:0}.flash-block-item>.act-item-heading .btn{height:28px;min-height:28px;width:28px;padding:0;font-size:12px}.flash-card-summary{display:flex;align-items:center;gap:8px;flex:1;min-width:0;color:var(--muted);font-size:11px}.flash-card-summary>.flash-summary-front,.flash-card-summary>.flash-summary-back{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:44%}.flash-block-item[open]>.act-item-heading .flash-card-summary{opacity:.6}.flash-card-editor-content{padding:0 10px 10px}.flash-face-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.flash-face-editor{border-radius:8px;min-width:0}.flash-face-editor-title{padding:6px 9px;gap:7px}.flash-face-editor-title>span{padding:2px 5px;font-size:9px}.flash-face-editor-title h4{font-size:11px}.flash-face-editor>label.flash-face-text{padding:8px 8px 0;margin:0}.flash-face-editor .flash-face-text textarea{min-height:52px;margin:0;line-height:1.5;padding:7px 9px;resize:vertical;font-size:12px}.flash-face-media{padding:8px;display:flex;gap:8px;align-items:flex-start}.flash-face-image{border:0;border-right:1px solid var(--line);padding:0 8px 0 0;margin:0;flex:0 1 38%;min-width:0}.flash-face-sound{flex:1;min-width:0}.face-image-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.face-sound-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.flash-face-editor .btn{height:29px;min-height:29px;font-size:10px;padding:0 8px;border-radius:6px;white-space:nowrap}.flash-face-editor [data-act=face-remove-image],.flash-face-editor [data-act=face-remove-audio]{width:23px;padding:0;font-size:14px}.flash-face-editor:not(:has(.face-image-preview img)) [data-act=face-remove-image]{display:none}.flash-face-editor:not(:has(.face-audio-preview audio)):not(:has(.recording)) [data-act=face-remove-audio]{display:none}.flash-face-editor .face-image-actions details{margin:0;font-size:10px;position:relative}.face-image-actions summary{cursor:pointer;padding:6px 3px;list-style:none;color:#556577}.face-image-actions details[open] input{position:absolute;z-index:4;top:100%;left:0;width:210px;margin:3px 0 0;padding:7px 9px;box-shadow:0 4px 14px #17273a20;background:white}.face-image-preview{min-height:0;border:0;padding:0;margin:0;background:transparent;justify-content:flex-start}.face-image-preview:empty,.face-audio-preview:empty,.face-record-status:empty{display:none}.face-image-preview:has(img){margin-top:7px}.face-image-preview img{max-height:65px;max-width:100%;border-radius:5px}.face-audio-preview{min-height:0;margin:0;font-size:10px}.face-audio-preview:has(audio){margin-top:7px}.face-audio-preview audio{display:block;width:100%;height:30px;min-width:0}.face-record-status{font-size:9px;line-height:1.4;margin:5px 0 0}.flash-list-tools{display:flex;gap:5px;margin-left:auto}.activity-editor .section-heading .flash-list-tools .btn{height:28px;min-height:28px;font-size:10px;margin:0;padding:0 9px}.activity-editor:has(.flash-block-item) .activity-editor-templates>label{flex-direction:row;justify-content:center;padding:7px 4px;gap:6px}.activity-editor:has(.flash-block-item) .activity-editor-templates span{font-size:16px}.activity-editor:has(.flash-block-item) .activity-editor-help{margin:7px 0 12px;font-size:11px}.activity-editor:has(.flash-block-item) .field{margin-bottom:12px}.activity-editor:has(.flash-block-item) .section-heading{margin:12px 0 8px;gap:8px}.activity-editor:has(.flash-block-item) .section-heading h3{margin:0}.activity-editor:has(.flash-block-item) .section-heading>small{font-size:10px}.flash-block-item:focus-within{border-color:#919fae}.flash-block-item>.act-item-heading:focus-visible{outline:2px solid #667484;outline-offset:1px;border-radius:8px}
@media(max-width:640px){.flash-face-editor-grid{grid-template-columns:1fr}.flash-card-summary{gap:5px;font-size:10px}.flash-block-item>.act-item-heading{gap:6px;padding:7px 8px}.flash-card-editor-content{padding:0 8px 8px}.flash-face-media{display:flex;padding:7px;gap:8px}.flash-face-image{border-right:1px solid var(--line);border-bottom:0;margin:0;padding:0 8px 0 0;flex-basis:38%}.flash-list-tools{margin-left:0}.activity-editor:has(.flash-block-item) .activity-editor-templates>label{font-size:10px}.face-image-actions details[open] input{left:-25px;width:180px}}
.face-image-actions details[open]{flex-basis:100%;position:static}.face-image-actions details[open] input{position:static;width:100%;margin:5px 0 0;box-shadow:none;max-width:none}.flash-face-text .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Unified activity authoring. All five templates share geometry and controls. */
.activity-editor-v2 .activity-editor-templates{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.activity-editor-v2 .activity-editor-templates>label{display:flex;flex-direction:row!important;align-items:center;justify-content:center;height:42px;padding:0 8px!important;gap:7px!important;border-radius:8px;font-size:12px!important;margin:0;min-width:0}.activity-editor-v2 .activity-editor-templates span{display:grid;place-items:center;width:20px;font-size:18px!important;line-height:1}.activity-editor-v2 .activity-editor-templates strong{font-size:11px;white-space:nowrap}.activity-editor-v2 .section-heading{display:flex;align-items:center;gap:10px;margin:14px 0 9px;flex-wrap:wrap}.activity-editor-v2 .section-heading h3{margin:0;font-size:13px}.activity-editor-v2 .section-heading>small{font-size:10px;color:var(--muted)}.activity-editor-v2 .flash-list-tools{margin-left:auto}.activity-editor-v2 .btn,.activity-file-tools .btn{height:32px;min-height:32px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11px;line-height:1;margin:0}.activity-editor-v2 .flash-block-item>.act-item-heading .btn{height:28px;min-height:28px;width:28px;padding:0}.activity-editor-v2 .flash-face-media{display:block;padding:8px}.activity-editor-v2 .flash-face-image{border:0;padding:0;margin:0 0 8px;min-width:0}.activity-editor-v2 .face-image-actions{display:grid;grid-template-columns:52px minmax(0,1fr) 28px;gap:6px;align-items:center}.activity-editor-v2 .face-image-actions>.face-upload-label{grid-column:1;grid-row:1;width:100%}.activity-editor-v2 .face-image-actions>.face-image-url{grid-column:2;grid-row:1;width:100%;min-width:0;height:32px;min-height:32px;padding:6px 8px;margin:0;font-size:11px;background:#fff;position:static;box-shadow:none}.activity-editor-v2 .face-image-actions>[data-act=face-remove-image]{grid-column:3;grid-row:1;display:inline-flex;width:28px;visibility:hidden}.activity-editor-v2 .flash-face-editor:has(.face-image-preview img) [data-act=face-remove-image]{visibility:visible}.activity-editor-v2 .face-sound-actions{display:grid;grid-template-columns:1fr 1fr 28px;gap:6px;align-items:center}.activity-editor-v2 .face-sound-actions .btn{width:100%;height:32px;min-height:32px}.activity-editor-v2 .face-sound-actions [data-act=face-remove-audio]{display:inline-flex;visibility:hidden;width:28px}.activity-editor-v2 .flash-face-editor:has(.face-audio-preview audio) [data-act=face-remove-audio],.activity-editor-v2 .flash-face-editor:has(.recording) [data-act=face-remove-audio]{visibility:visible}.activity-editor-v2 .face-audio-preview:has(audio),.activity-editor-v2 .face-image-preview:has(img){margin-top:7px}.activity-editor-v2 .flash-face-editor-title{padding:7px 9px}.activity-editor-v2 .activity-editor-help{font-size:11px;margin:8px 0 12px}.activity-editor-v2 .activity-question-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.activity-editor-v2 .activity-question-top{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:10px;align-items:start}.activity-editor-v2 .compact-activity-item label{display:block;font-size:11px;color:var(--muted);margin:0;min-width:0}.activity-editor-v2 .compact-activity-item textarea{width:100%;min-height:52px;padding:7px 9px;line-height:1.5;margin-top:5px;resize:vertical;font-size:12px}.activity-editor-v2 .activity-question-top select{margin-top:5px;width:100%;height:36px;min-height:36px}.activity-editor-v2 .act-options{margin-top:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.activity-editor-v2 .act-options>label{display:flex;align-items:center;gap:7px;padding:5px 8px;min-height:38px}.activity-editor-v2 .act-options .a-option{height:28px;min-height:28px;margin:0;padding:3px;line-height:1.5;min-width:0}.activity-editor-v2 .act-options .a-correct{width:15px;height:15px;min-height:15px;flex-shrink:0;margin:0}.activity-editor-v2 .activity-explanation{display:grid!important;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:9px;margin-top:8px!important}.activity-editor-v2 .activity-explanation textarea{min-height:34px;height:34px;margin:0}.activity-file-tools{border:1px solid var(--line);background:#f6f7f9;border-radius:8px;padding:9px 10px;margin:0 0 12px}.activity-file-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.activity-file-actions>span{margin-left:auto;color:var(--muted);font-size:10px}.activity-import-preview{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.activity-import-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:11px}.activity-import-preview .table-wrap{max-height:260px;overflow:auto}.activity-import-preview td,.activity-import-preview th{padding:8px 10px!important;font-size:11px}.activity-import-preview thead{position:sticky;top:0;z-index:1}.activity-import-preview td:first-child{width:45px}.activity-import-apply{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.activity-import-apply select{font-size:11px;width:auto;min-width:200px;height:32px;min-height:32px;padding:5px 32px 5px 9px}.activity-editor-v2>.actions .btn{height:36px;min-height:36px}.activity-editor-v2 .form-grid{grid-template-columns:1fr 1fr}.activity-editor-v2 .section-heading .flash-list-tools .btn{margin:0}
@media(max-width:640px){.activity-editor-v2 .activity-editor-templates{grid-template-columns:repeat(3,minmax(0,1fr))}.activity-editor-v2 .activity-editor-templates>label{font-size:10px!important;height:38px}.activity-editor-v2 .activity-question-fields{grid-template-columns:1fr}.activity-editor-v2 .activity-question-top{grid-template-columns:minmax(0,1fr) 82px}.activity-editor-v2 .act-options{grid-template-columns:1fr}.activity-editor-v2 .activity-explanation{grid-template-columns:1fr;gap:4px}.activity-file-actions>span{width:100%;margin:3px 0 0}.activity-import-apply{flex-wrap:wrap}.activity-import-apply select{width:100%}.activity-editor-v2 .flash-list-tools{margin-left:0}.activity-editor-v2 .face-image-actions,.activity-editor-v2 .face-sound-actions{gap:6px}}

/* Compact class and student management */
#managed-student-form .notice{padding:10px 12px;font-size:12px;margin-bottom:12px}#managed-student-form .form-section{margin:0 0 12px;padding:0}#managed-student-form .form-section h3{font-size:13px;margin:8px 0}#managed-student-form .form-grid,#editor-form[data-type=schedules] .form-grid{gap:10px 14px}#managed-student-form .field{margin-bottom:8px}#managed-student-form textarea{min-height:60px;height:60px}#managed-student-form input[readonly]{height:40px;min-height:40px;background:#f3f4f6;color:var(--muted)}#editor-form[data-type=schedules] .upload-panel{padding:12px;margin:12px 0 10px}#editor-form[data-type=schedules] .upload-panel h3{font-size:13px;margin:0 0 10px}#editor-form[data-type=schedules] .upload-panel p{font-size:11px;margin:8px 0 0}#editor-form[data-type=schedules] [hidden]{display:none!important}.class-detail-dialog.large{width:min(1040px,calc(100vw - 80px))!important;max-width:1040px!important;display:flex;flex-direction:column;overflow:hidden}.class-detail-dialog .class-detail-scroll{min-height:0;flex:1;overflow:auto}.class-detail-dialog>.dialog-footer{flex-shrink:0;padding:14px 20px;margin:0;border-top:1px solid var(--line);background:#fff;display:flex;justify-content:flex-end;gap:8px}.workspace-title,.workspace-main>.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.workspace-title>.actions,.workspace-title>.row-actions,.workspace-main>.section-heading>.actions{margin-left:auto;justify-content:flex-end}.workspace-main .toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.workspace-main .toolbar>.actions{margin-left:auto;justify-content:flex-end}.dialog-footer{justify-content:flex-end}.class-detail-actions .btn{height:38px;min-height:38px}@media(max-width:700px){.class-detail-dialog.large{width:100vw!important;max-width:100vw!important}.class-detail-dialog>.dialog-footer{flex-wrap:wrap;padding:10px}.workspace-title{flex-wrap:wrap}.workspace-title>.actions{margin-left:auto}}

.registry-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.registry-filters .admin-toolbar{margin:0 0 0 auto;gap:8px;justify-content:flex-end;flex-wrap:wrap}.registry-filters>input{flex:1;min-width:180px}.registry-filters>select{width:auto;max-width:210px}.cm-toolbar>.row-actions{margin-left:auto;justify-content:flex-end}.workspace-main>.admin-toolbar{justify-content:flex-end;gap:8px}.workspace-title>.btn{margin-left:auto}#managed-student-form input:not([type=checkbox]):not([type=hidden]),#managed-student-form select{height:40px;min-height:40px;padding-top:9px;padding-bottom:9px}

.detail-overlay:has(.class-detail-dialog){width:min(1040px,calc(100vw - 80px))}@media(max-width:700px){.detail-overlay:has(.class-detail-dialog){width:100vw}}

/* Record dialogs: comfortable inner spacing and consistent destructive actions. */
#managed-student-form .form-section{padding:14px 16px;margin:0 0 12px;border-radius:12px}#managed-student-form .form-section h3{margin:0 0 12px}#managed-student-form .form-section .field{min-width:0;margin-bottom:2px}#managed-student-form .form-section .auth-help{margin:10px 0 0}#managed-student-form .form-section .form-grid{gap:12px 16px}#managed-student-form .form-section input,#managed-student-form .form-section select{width:100%;box-sizing:border-box}
.dialog .dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0;padding:14px 18px;border-top:1px solid var(--line);background:#fff;margin:0}.dialog>.dialog-footer{position:relative}.dialog:has(>.dialog-footer){display:flex;flex-direction:column;overflow:hidden}.dialog .detail-body-scroll{flex:1;min-height:0;overflow:auto}.dialog-footer>.delete-action,.dialog-footer>.btn.danger,.dialog-footer>[data-action="admin-delete"],.dialog-footer>[data-action="managed-state-confirm"][data-state="deleted"]{order:-1;margin-right:auto;margin-left:0}.dialog-footer>[role="alert"]{flex-basis:100%;margin:0}.dialog-footer:has(>[role="alert"]:not(:empty)){flex-wrap:wrap}.dialog-footer .auth-error:empty{display:none}
.class-detail-dialog .class-detail-title{margin:0 0 16px;padding:0}.class-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.class-detail-dialog .class-title-row h2{margin:0;font-size:23px;line-height:1.35;min-width:0;overflow-wrap:anywhere}.class-detail-dialog .class-title-row .tag{margin:0;flex-shrink:0;font-size:11px;padding:6px 10px}.class-detail-dialog .class-detail-title>p{margin:9px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}.class-detail-dialog .class-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 18px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.class-detail-dialog .class-facts>div{padding:12px 14px;min-width:0;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8f9fa}.class-detail-dialog .class-facts>div:nth-child(3n){border-right:0}.class-detail-dialog .class-facts>div:nth-last-child(-n+3){border-bottom:0}.class-detail-dialog .class-facts small{font-size:11px;margin-bottom:5px;display:block}.class-detail-dialog .class-facts strong{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.class-detail-dialog .section-heading{margin:12px 0;align-items:center}.class-detail-dialog .section-heading h3{margin:0;font-size:14px}.record-question-list details{padding:10px 0;border-bottom:1px solid var(--line)}.record-question-list summary{cursor:pointer;font-size:12px}.record-question-list p,.record-question-list li{font-size:12px}
@media(max-width:700px){#managed-student-form .form-section{padding:12px}.class-detail-dialog .class-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.class-detail-dialog .class-facts>div{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;padding:10px}.class-detail-dialog .class-facts>div:nth-child(2n){border-right:0!important}.class-detail-dialog .class-facts>div:nth-last-child(-n+2){border-bottom:0!important}.class-detail-dialog .class-title-row h2{font-size:20px}.dialog .dialog-footer{flex-wrap:wrap}}@media(max-width:420px){.class-detail-dialog .class-facts{grid-template-columns:1fr}.class-detail-dialog .class-facts>div{border-right:0!important}.class-detail-dialog .class-facts>div:nth-last-child(2){border-bottom:1px solid var(--line)!important}}
.dialog .dialog-footer>.btn.danger,.dialog .dialog-footer>.delete-action,.dialog .dialog-footer>[data-action="admin-delete"],.dialog .dialog-footer>[data-action="managed-state-confirm"][data-state="deleted"]{order:-1!important;margin-right:auto!important;margin-left:0!important}
.dialog .dialog-footer>[data-action="close"]{margin-right:0!important}
/* Forms-inspired exam authoring, with native audio attachments. */
.exam-form-dialog.large{width:min(1120px,96vw);max-width:1120px}.exam-form-builder .form-scroll{background:#f1f3f5;padding:18px 24px!important}.exam-form-builder .form-scroll>div,.exam-form-builder .form-scroll>details,.exam-form-builder .form-scroll>section{max-width:920px;margin-left:auto;margin-right:auto}.forms-builder-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 14px;border-bottom:1px solid #dce0e5;margin-bottom:16px}.forms-builder-head>div{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600}.forms-builder-head svg{height:20px;width:20px;color:var(--green)}.forms-builder-tabs{display:flex;align-items:center;gap:4px}.forms-builder-tabs>button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;border-radius:7px;padding:9px 12px;color:var(--muted);font-size:12px;cursor:pointer}.forms-builder-tabs>button.active{color:var(--green);background:#dfe5ec;font-weight:600}.forms-builder-tabs svg{width:16px;height:16px}.exam-form-builder .cm-exam-basics{padding:14px 18px 0;background:white;border:1px solid var(--line);border-top:4px solid var(--green);border-radius:10px 10px 0 0;gap:0}.exam-form-builder .cm-exam-basics+.form-grid{background:#fff;padding:0 18px 14px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;margin-bottom:16px}.exam-form-builder .cm-editor-settings{background:#fff}.exam-form-builder[data-view=questions] .form-scroll>.cm-editor-settings{display:none}.exam-form-builder[data-view=settings] #online-editor,.exam-form-builder[data-view=settings] #download-editor,.exam-form-builder[data-view=settings] #link-editor{display:none!important}.exam-form-builder[data-view=preview] .form-scroll>:not(.forms-builder-head):not(#exam-live-preview){display:none!important}.exam-form-builder[data-view=preview] #exam-live-preview{display:block}.exam-form-builder .group-editor-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px}.forms-editor-tools{display:flex;gap:6px;margin-left:auto}.exam-form-builder .group-editor-toolbar .text-link{font-size:11px}.exam-form-builder .btn{min-height:34px;height:34px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11px;line-height:1.3}.exam-form-builder .btn svg{width:16px;height:16px;flex-shrink:0}.exam-form-builder .exam-section-editor{border:1px solid #dbe0e5;background:#eaedf0;border-radius:10px;margin-bottom:14px}.exam-form-builder .exam-section-editor>summary{padding:12px 14px;background:#e5e9ee}.exam-form-builder .section-editor-body{padding:12px}.exam-form-builder .section-editor-body>.form-grid{gap:10px}.exam-form-builder .section-editor-body>.form-grid .field{margin-bottom:10px}.exam-form-builder .group-material{background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:14px}.exam-form-builder .group-material>summary{padding:10px 12px;font-size:11px}.exam-form-builder .group-material>div{padding:0 12px 12px}.exam-form-builder .group-material textarea{min-height:64px;font-size:12px}.exam-form-builder .section-audio{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.exam-form-builder .section-audio-preview{flex-basis:100%}.exam-form-builder audio{width:100%;height:38px}.exam-form-builder .question-editor{border:1px solid #dce0e5;border-left:4px solid transparent;background:#fff;border-radius:9px;margin-bottom:12px;overflow:hidden}.exam-form-builder .question-editor[open]{border-left-color:#546a83;box-shadow:0 2px 8px #172a3f08}.exam-form-builder .q-editor-head{padding:11px 14px;background:#fff;display:flex;gap:10px;align-items:center;cursor:pointer;list-style:none}.exam-form-builder .q-editor-head::-webkit-details-marker{display:none}.exam-form-builder .q-editor-head h4{font-size:12px;margin:0;white-space:nowrap}.exam-form-builder .q-summary{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.q-card-chevron{color:var(--muted);font-size:17px;transition:transform .15s}.question-editor[open] .q-card-chevron{transform:rotate(180deg)}.exam-form-builder .q-editor-body{padding:0 16px 14px}.q-form-top{display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:start;gap:14px;margin:4px 0 12px}.exam-form-builder .q-form-top>div{min-width:0}.exam-form-builder .q-form-top label{font-size:11px;margin:0 0 6px;display:block}.exam-form-builder .q-form-top .q-text{min-height:76px;width:100%;padding:10px 12px;border:0;border-bottom:1px solid #bbc3cd;border-radius:5px 5px 0 0;background:#f6f7f8;line-height:1.6;margin:0}.exam-form-builder .q-form-top select{width:100%;height:40px;min-height:40px;padding:8px 32px 8px 10px;font-size:12px}.exam-form-builder .q-specific{display:block}.exam-form-builder .choice-toolbar{display:flex;gap:8px;align-items:center;margin:0 0 10px;flex-wrap:wrap}.exam-form-builder .choice-toolbar label{margin:0;font-size:11px}.exam-form-builder .choice-toolbar select{width:110px;min-height:32px;height:32px;padding:4px 25px 4px 8px}.exam-form-builder .choice-toolbar small{font-size:10px;color:var(--muted);margin-left:auto}.exam-form-builder .choice-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.exam-form-builder .forms-choice-row{display:grid!important;grid-template-columns:18px 16px minmax(0,1fr);align-items:center;gap:7px;border:1px solid var(--line);border-radius:7px;padding:6px 9px;margin:0!important}.exam-form-builder .forms-choice-row.is-correct{background:#f0f4f8;border-color:#99a7b7}.exam-form-builder .forms-choice-row .q-correct-choice{height:16px;min-height:16px;width:16px;margin:0;padding:0;accent-color:var(--green)}.exam-form-builder .forms-choice-row>span{font-size:11px;color:var(--muted)}.exam-form-builder .forms-choice-row .q-option{min-height:31px;height:31px;padding:4px;border:0;background:transparent;box-shadow:none;min-width:0;font-size:12px}.exam-form-builder .q-answer,.exam-form-builder .q-answer-select-label{display:none!important}.exam-form-builder .q-audio-block{border:1px dashed #bec6d0;border-radius:8px;margin:0 0 12px;background:#f9fafc}.exam-form-builder .q-audio-block>summary{display:flex;align-items:center;gap:7px;cursor:pointer;padding:9px 11px;font-size:11px;color:#425163}.q-audio-block summary svg{width:17px;height:17px}.q-audio-block summary small{margin-left:auto;font-size:10px;color:var(--muted)}.exam-form-builder .question-media-editor{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding:10px 12px;border:0;background:transparent}.exam-form-builder .question-media-editor>.q-media-preview{flex-basis:100%}.exam-form-builder .question-media-editor>.q-media-preview:empty{display:none}.exam-form-builder .question-media-editor>small{font-size:10px;flex-basis:100%;margin:0}.exam-form-builder .q-media-name{font-size:11px;min-width:0;overflow-wrap:anywhere}.exam-form-builder .q-passage-editor,.exam-form-builder .q-extra{margin:8px 0;border:0;border-radius:0;background:transparent}.exam-form-builder .q-passage-editor>summary,.exam-form-builder .q-extra>summary{padding:6px 0;cursor:pointer;font-size:11px;color:var(--muted)}.exam-form-builder .q-extra textarea,.exam-form-builder .q-passage-editor textarea{min-height:64px;font-size:12px}.q-form-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.exam-form-builder .q-form-footer .q-config{display:grid;grid-template-columns:130px 80px;gap:10px;margin:0;padding:0;background:transparent}.exam-form-builder .q-form-footer .q-config>div{grid-column:auto}.exam-form-builder .q-config label{font-size:10px;margin:0 0 4px}.exam-form-builder .q-config select,.exam-form-builder .q-config input{min-height:34px;height:34px;padding:6px 9px;font-size:11px;max-width:100%}.exam-form-builder .q-config select{padding-right:28px}.q-card-actions{display:flex;gap:5px}.exam-form-builder .q-card-actions .btn{height:32px;min-height:32px;width:32px;padding:0}.exam-form-builder .q-insert-button{width:100%;margin:12px 0 0;background:#f9fafb;border-style:dashed;font-size:11px}.blank-marker-hint{font-size:11px;line-height:1.6;color:var(--muted);padding:9px 11px;border-radius:7px;background:#f2f4f6}.blank-marker-status{font-size:11px;margin:9px 0!important;color:var(--green)}.blank-key-list{display:grid;gap:10px}.blank-key-row{border:1px solid var(--line);padding:11px 12px;border-radius:8px;background:#fafbfc}.blank-key-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.blank-key-label strong{font-size:11px}.blank-key-label small{font-size:10px;color:var(--muted)}.blank-variants{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.blank-variant-line{display:flex;align-items:center;gap:5px;min-width:0}.exam-form-builder .blank-variant{min-width:0;flex:1;height:36px;min-height:36px;font-size:12px;padding:7px 10px}.exam-form-builder .blank-variant-line .btn{width:28px;min-height:28px;height:28px;padding:0}.exam-form-builder .blank-key-row>.btn{font-size:10px;min-height:29px;height:29px;padding:0 8px}.exam-form-builder .blank-key-editor .check-row{font-size:11px;margin:10px 0}.forms-preview-banner{padding:10px 14px;background:#e2e7ec;border-radius:8px;font-size:12px;color:var(--green);margin-bottom:14px}.forms-preview-title{background:white;border-radius:10px;border-top:5px solid var(--green);padding:18px 20px;margin-bottom:14px}.forms-preview-title h2{font-size:24px;margin:0 0 8px}.forms-preview-title p{margin:0;font-size:12px;color:var(--muted)}.forms-preview-section>h3{font-size:14px;margin:16px 0 10px}.forms-preview-section>p{font-size:12px}.forms-preview-question{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;margin:12px 0}.forms-preview-question>small{font-size:10px;color:var(--muted)}.forms-preview-question h4{font-size:14px;margin:8px 0 14px}.forms-preview-option{display:flex;align-items:center;gap:8px;font-size:12px;margin:10px 0}.forms-preview-option input{width:16px;min-height:16px;height:16px}.forms-preview-question textarea{width:100%;font-size:12px}.exam-preview-image{display:block;max-width:100%;max-height:260px;margin:10px 0}.forms-preview-words{display:flex;gap:8px;flex-wrap:wrap}.forms-preview-words span{font-size:12px;border:1px solid var(--line);border-radius:6px;padding:8px 12px}.exam-form-builder [hidden]{display:none!important}
@media(max-width:700px){.exam-form-builder .form-scroll{padding:12px!important}.forms-builder-head{align-items:flex-start;flex-direction:column;gap:10px}.forms-builder-tabs{width:100%}.forms-builder-tabs>button{flex:1;padding:8px;font-size:11px}.q-form-top{grid-template-columns:1fr}.exam-form-builder .q-editor-body{padding:0 11px 12px}.exam-form-builder .choice-options,.blank-variants{grid-template-columns:1fr}.q-form-footer{align-items:flex-start;flex-wrap:wrap}.q-card-actions{margin-left:auto}.blank-key-label{align-items:flex-start;flex-direction:column;gap:3px}.q-audio-block summary small{display:none}.exam-form-builder .group-editor-toolbar{gap:8px}.forms-editor-tools{margin-left:auto}.exam-form-builder .forms-editor-tools .btn{font-size:10px;padding:0 8px}}
.forms-builder-tabs{height:auto!important;min-height:0;padding:0!important;margin:0}.forms-builder-head{min-height:40px}.exam-form-builder .form-scroll>.form-grid:not(.cm-exam-basics){display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) 125px;background:#fff;padding:10px 18px 14px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;margin-top:0;margin-bottom:16px;gap:12px}.exam-form-builder .form-scroll>.form-grid:not(.cm-exam-basics) .field{margin:0}.exam-form-builder .cm-exam-basics .field{margin-bottom:8px}.exam-form-builder .cm-exam-basics{padding:12px 18px 0;margin-bottom:0;border-bottom:0}.exam-form-builder .cm-exam-basics .field select{min-width:235px;width:auto;height:36px;min-height:36px;font-size:12px;padding:7px 35px 7px 10px}.forms-preview-question .blank-sentence .blank-answer{display:inline-block;max-width:180px;width:150px;vertical-align:middle}.exam-form-builder .q-editor-head:before{display:none!important}@media(max-width:700px){.exam-form-builder .form-scroll>.form-grid:not(.cm-exam-basics){grid-template-columns:1fr 1fr;padding:10px 12px 12px}.exam-form-builder .form-scroll>.form-grid:not(.cm-exam-basics) .field:first-child{grid-column:1/-1}.exam-form-builder .cm-exam-basics{padding:12px 12px 0}}
/* Compact authoring controls stay on the question header. */
.exam-form-builder .q-editor-head{padding:8px 10px;gap:8px;min-height:46px;flex-wrap:nowrap}.exam-form-builder .q-editor-head h4{font-size:11px;flex-shrink:0}.exam-form-builder .question-editor[open]>.q-editor-head>.q-summary{display:none}.exam-form-builder .q-header-controls{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex:1;min-width:0}.exam-form-builder .q-header-controls>div:first-child{width:190px;min-width:135px}.exam-form-builder .q-header-controls label{display:block;margin:0 0 3px;font-size:9px;color:var(--muted);line-height:1.2}.exam-form-builder .q-header-controls select{height:32px;min-height:32px;padding:5px 26px 5px 8px;font-size:11px;width:100%;background-position:right 8px center}.exam-form-builder .q-header-controls .q-config{display:flex!important;align-items:flex-end;gap:8px;margin:0;padding:0;background:transparent}.exam-form-builder .q-header-controls .q-config>div:first-child{width:85px}.exam-form-builder .q-header-controls .q-config>div:last-child{width:62px}.exam-form-builder .q-header-controls .q-points{width:62px;min-height:32px;height:32px;padding:5px 7px;font-size:11px}.exam-form-builder .q-header-actions{display:flex;align-items:center;gap:4px;margin:12px 0 0}.exam-form-builder .q-header-actions .btn{width:28px;min-height:28px;height:28px;padding:0}.exam-form-builder .q-header-actions svg{width:14px;height:14px}.exam-form-builder .question-editor:not([open]) .q-header-controls{display:none}.exam-form-builder .question-editor:not([open]) .q-header-actions{margin:0}.exam-form-builder .question-editor:not([open]) [data-action=exam-question-up],.exam-form-builder .question-editor:not([open]) [data-action=exam-question-down]{display:none}.exam-form-builder .q-card-chevron{font-size:15px;flex-shrink:0}.exam-form-builder .q-editor-body{padding:0 10px 10px}.exam-form-builder .q-form-top{display:block;margin:4px 0 8px}.exam-form-builder .q-form-top label{font-size:10px;margin-bottom:4px}.exam-form-builder .q-form-top .q-text{min-height:52px;height:52px;padding:8px 10px;font-size:12px;line-height:1.5}.exam-form-builder .q-audio-block{margin:0 0 6px}.exam-form-builder .q-audio-block>summary{padding:6px 9px;font-size:10px;min-height:30px}.exam-form-builder .q-audio-block>summary small{font-size:9px}.exam-form-builder .q-audio-block>summary svg{height:14px;width:14px}.exam-form-builder .q-passage-editor,.exam-form-builder .q-extra{margin:4px 0}.exam-form-builder .q-passage-editor>summary,.exam-form-builder .q-extra>summary{font-size:10px;padding:5px 0}.exam-form-builder .q-extra textarea,.exam-form-builder .q-specific textarea,.exam-form-builder .q-passage-editor textarea{min-height:54px;font-size:12px;padding:7px 9px}.exam-form-builder .q-specific .q-help{font-size:10px;line-height:1.5;margin:6px 0}.exam-form-builder .q-specific .notice{padding:7px 9px;font-size:10px;margin:7px 0}.exam-form-builder .q-insert-button{height:28px;min-height:28px;margin-top:7px;font-size:10px}.exam-form-builder .blank-marker-hint{padding:5px 8px;font-size:10px;line-height:1.4;background:transparent}.exam-form-builder .blank-marker-status{font-size:10px;margin:4px 0!important}.exam-form-builder .blank-key-list{gap:6px}.exam-form-builder .blank-key-row{padding:8px;display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:8px;align-items:start}.exam-form-builder .blank-key-label{margin:8px 0 0}.exam-form-builder .blank-key-label strong{font-size:10px}.exam-form-builder .blank-key-label small{display:none}.exam-form-builder .blank-variants{gap:6px;margin:0}.exam-form-builder .blank-variant{height:32px;min-height:32px;padding:5px 8px;font-size:11px}.exam-form-builder .blank-key-row>.btn{height:30px;min-height:30px;font-size:9px}.exam-form-builder .q-inline-numbers{display:flex;align-items:flex-start;gap:14px;margin:6px 0 8px}.exam-form-builder .q-inline-numbers>label{font-size:10px;margin:0;display:block}.exam-form-builder .q-inline-numbers input{display:block;width:90px!important;min-height:32px;height:32px;padding:5px 7px;margin-top:4px;font-size:11px}.exam-form-builder .q-word-limits{display:flex;gap:14px;margin:7px 0}.exam-form-builder .q-word-limits>.field{width:auto;margin:0}.exam-form-builder .q-word-limits label{font-size:10px;display:block;margin-bottom:4px}.exam-form-builder .q-word-limits input{width:90px;min-height:32px;height:32px;padding:5px 7px;font-size:11px}.exam-form-builder .q-response-mode{height:34px;min-height:34px;width:220px;max-width:100%;font-size:11px;padding:6px 30px 6px 8px}.section-progress-setting{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:8px 10px;background:white;border:1px solid var(--line);border-radius:7px}.section-progress-setting label{font-size:10px;margin:0}.section-progress-setting select{width:auto;max-width:100%;min-height:32px;height:32px;padding:5px 30px 5px 8px;font-size:11px}.exam-form-builder[data-section-mode=all] .section-progress-setting{display:none}.exam-section-progress{padding:14px 16px;background:#edf0f4;border:1px solid #d4dbe2;border-radius:10px;margin-bottom:16px}.exam-section-progress>strong{font-size:15px}.exam-section-progress>span{font-size:12px;display:block;margin-top:6px}.exam-section-progress>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.exam-section-progress>div>span{font-size:10px;padding:5px 8px;border-radius:6px;background:#e4e6e9;color:#868b90}.exam-section-progress>div>.current{background:#1a3049;color:white}.exam-section-progress>div>.completed{background:#d1dce8;color:#31465f}.exam-section-bottom{display:flex;align-items:center;gap:15px;justify-content:space-between;padding:18px 0}.exam-section-bottom p{font-size:11px;line-height:1.6;color:var(--muted);max-width:330px;margin:0}.exam-section-bottom .btn{flex-shrink:0}.exam-side .btn.is-loading{pointer-events:none}@media(max-width:800px){.exam-form-builder .q-editor-head{flex-wrap:wrap}.exam-form-builder .question-editor[open] .q-header-controls{order:2;flex-basis:100%;justify-content:flex-start}.exam-form-builder .q-header-actions{margin:0 0 0 auto}.exam-form-builder .question-editor[open] .q-card-chevron{margin:0}.exam-form-builder .blank-key-row{grid-template-columns:1fr auto}.exam-form-builder .blank-key-label{grid-column:1/-1;margin:0}.exam-form-builder .blank-variants{grid-template-columns:1fr 1fr}.section-progress-setting{flex-wrap:wrap}.exam-section-bottom{flex-direction:column;align-items:stretch}.exam-section-bottom p{max-width:none}.exam-form-builder .q-header-controls>div:first-child{flex:1;width:auto}}@media(max-width:480px){.exam-form-builder .blank-variants{grid-template-columns:1fr}.exam-form-builder .blank-key-row{grid-template-columns:1fr}.exam-form-builder .blank-key-row>.btn{width:fit-content}.exam-form-builder .q-header-controls .q-config>div:first-child{width:70px}.exam-form-builder .q-header-controls>div:first-child{min-width:120px}.exam-form-builder .q-header-controls{gap:5px}.exam-form-builder .q-header-controls .q-config{gap:5px}}
/* One-line controls share a common height throughout both portals. */
:root{--control-height:38px}
body input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not(.native-date-picker),body select{box-sizing:border-box;height:var(--control-height)!important;min-height:var(--control-height)!important;padding-top:8px!important;padding-bottom:8px!important;line-height:20px!important;font-size:12px}
body textarea{box-sizing:border-box;line-height:1.5}.date-control .date-picker-button{height:var(--control-height);min-height:var(--control-height)}.money-control{min-height:var(--control-height);align-items:center}.money-control>span{line-height:var(--control-height)}
.exam-form-builder .q-header-controls{align-items:flex-end;gap:8px}.exam-form-builder .q-header-controls>div,.exam-form-builder .q-header-controls .q-config>div{display:flex;flex-direction:column;justify-content:flex-end}.exam-form-builder .q-header-controls label{height:14px;line-height:14px;margin:0 0 4px;font-size:10px}.exam-form-builder .q-header-actions{align-self:flex-end;margin-top:0}.exam-form-builder .q-header-actions .btn{width:var(--control-height);height:var(--control-height);min-height:var(--control-height)}.exam-form-builder .q-header-actions svg{height:16px;width:16px}.exam-form-builder .q-card-chevron{align-self:flex-end;margin-bottom:10px}.exam-form-builder .q-skill-field[hidden]{display:none!important}.exam-form-builder .q-header-controls .q-config{align-items:flex-end}.exam-form-builder .forms-choice-row{height:var(--control-height);min-height:var(--control-height);padding:0 9px}.exam-form-builder .forms-choice-row input.q-option{height:calc(var(--control-height) - 2px)!important;min-height:calc(var(--control-height) - 2px)!important;padding-top:7px!important;padding-bottom:7px!important}.exam-form-builder .forms-choice-row .q-correct-choice{height:16px!important;min-height:16px!important}.exam-form-builder .blank-key-row{align-items:center}.exam-form-builder .blank-key-row>.btn{height:var(--control-height);min-height:var(--control-height)}.exam-form-builder .blank-key-label{margin:0}.exam-form-builder .q-inline-numbers{align-items:flex-end}.exam-form-builder .section-skill{width:160px}.delete-dependencies{padding:12px 14px;background:#f7f8f9;border:1px solid var(--line);border-radius:9px;font-size:12px;line-height:1.65}.delete-dependencies>p{margin:0 0 8px}.delete-dependencies>p:last-child{margin-bottom:0}.delete-dependencies ul{padding-left:18px;margin:7px 0}.delete-dependencies section{padding-top:8px;margin-top:8px;border-top:1px solid var(--line)}.delete-dependencies section strong{font-size:12px}.dialog #delete-error{white-space:pre-line;font-size:12px;line-height:1.6}
@media(max-width:800px){.exam-form-builder .q-header-actions{align-self:center}.exam-form-builder .q-card-chevron{align-self:center;margin:0}.exam-form-builder .q-header-controls>div:first-child{flex:1}.exam-form-builder .section-skill{width:100%}}
.exam-form-builder .q-header-controls>.q-config{flex-direction:row!important;align-items:flex-end!important}.exam-form-builder .q-header-controls .q-config>.q-skill-field{width:85px;flex-shrink:0}.exam-form-builder .q-header-controls .q-config>div{flex-shrink:0}

.mixed-import-table{max-height:320px;overflow:auto;margin:12px 0}.mixed-import-table thead th{position:sticky;top:0;background:var(--surface,#fff);z-index:1}.mixed-import-table td{white-space:normal;overflow-wrap:anywhere}.mixed-import-table td:nth-child(3){min-width:180px;max-width:420px}
/* Class Management: unified, colorful workspace and form system */
:root{--green:#3d72b8;--lime:#e9eff6;--cream:#f6f8fb;--ink:#203148;--muted:#6b7b90;--line:#e3eaf3;--orange:#2d74d3;--radius:16px}
body{background:#f6f8fb;color:var(--ink)}.workspace-main{background:radial-gradient(ellipse at 95% 0,#f0f4f975,transparent 42%),#f6f8fb}.admin-header{background:#fff!important;border-bottom:1px solid #e3eaf3;box-shadow:0 2px 14px #28446906}.brandmark,.avatar{background:linear-gradient(135deg,#5687c9,#386aad)!important;color:#fff!important}.workspace-title h1{color:#273952;font-size:25px;letter-spacing:-.035em}.workspace-title p{color:#8b99ac;font-size:10px;letter-spacing:.08em}.sidebar{background:#fff!important;border-right:1px solid #e5ebf4}.sidebar>a{color:#65768c;border-radius:10px;transition:background .15s,color .15s}.sidebar>a:hover{background:#f4f7fb;color:#4879ba}.sidebar>a.active{background:#f0f4f9!important;color:#5482be!important;box-shadow:inset 3px 0 #7b9ecd}.sidebar .menu-icon{color:#84a5d0}.sidebar>a:nth-of-type(3n+2) .menu-icon{color:#1b579c}.sidebar>a:nth-of-type(3n) .menu-icon{color:#2e75d3}.sidebar>a.active .menu-icon{color:#6a92c6}.sidebar .account-box{background:#f9fbfd;border:1px solid #eff3f9;border-radius:12px}.group-label{color:#9aaac0}.btn{min-height:38px;border-radius:9px;background:#3d72b8;color:#fff;box-shadow:0 3px 8px #3d72b818;font-weight:600;transition:background .15s,box-shadow .15s,transform .15s}.btn:hover{background:#305f9e;box-shadow:0 5px 12px #3d72b826}.btn.light{background:#f1f5fa;color:#4879b9;border:1px solid #e6ecf5;box-shadow:none}.btn.ghost{background:#f5f8fb;color:#5e6f85;border:1px solid #e6ecf4;box-shadow:none}.btn.danger{background:#fff0f2;color:#d44462;border:1px solid #f6d9df;box-shadow:none}.btn.danger:hover{background:#ffe4e9}.btn.lime{background:#e6eef7;color:#184b86;border:1px solid #ccdcee}.panel,.card,.table-wrap,.kpi{border-color:#e5ebf4;border-radius:14px;box-shadow:0 3px 16px #28446805}.kpi:nth-child(4n+1){background:linear-gradient(120deg,#f2f5fa,#fff)}.kpi:nth-child(4n+2){background:linear-gradient(120deg,#e8eff8,#fff)}.kpi:nth-child(4n+3){background:linear-gradient(120deg,#e9f0fa,#fff)}.kpi:nth-child(4n){background:linear-gradient(120deg,#f0f4f9,#fff)}.kpi strong{color:#3d5d88}.kpi small{color:#76869b}.table-wrap table thead th{background:#f5f8fb;color:#798aa0;font-weight:600;font-size:11px;letter-spacing:.025em}.table-wrap tbody tr:hover{background:#fafbfd}.table-wrap td{border-color:#eef2f8}.badge,.tag{background:#e8eff6;color:#205188;border-radius:7px}.badge.wait,.tag.peach{background:#e5eef9;color:#2662b1}.notice,.access-note{background:#f3f6fa;border:1px solid #e7edf6;color:#58759b;border-radius:10px}.auth-error{color:#d34c69}.registry-summary span{background:#fff;border:1px solid #e5ebf4;border-radius:10px;padding:10px 16px}.registry-summary span b{color:#2e5fa1}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{border-color:#dfe6f0;border-radius:9px;background:#fff;color:#35465c}input:focus,select:focus,textarea:focus{outline:2px solid #afc4e055;border-color:#8fadd5;box-shadow:0 0 0 3px #8fadd50d}label{color:#67778d}.filters{gap:10px}.dialog{background:#fff;border:1px solid #e5ecf5;border-radius:17px;box-shadow:0 24px 100px #273b552b}.dialog-head{background:linear-gradient(110deg,#f4f7fb,#fafbfd)!important;border-bottom:1px solid #e8eef6!important;padding:17px 22px}.dialog-head h2{color:#415a7c;font-size:19px}.dialog-head .close{background:#ffffffa8;color:#72849b;border-radius:8px}.dialog-footer{background:#fff!important;border-top:1px solid #e9eef5!important;padding:12px 20px}.dialog-body{background:#fcfdfe}.dialog-body .panel{box-shadow:none}.student-detail-head,.class-detail-title{background:linear-gradient(110deg,#f2f5fa,#f8fafc);padding:18px;border-radius:12px}.enrollment-card-head{background:#fafbfd!important}.enrollment-amounts{background:#f4f7fb}.enrollment-amounts dd{color:#5578a6}.enrollment-card-actions{gap:8px}.tabs button.active,.cm-tabs .active{background:#f0f4f9;color:#5f8ac2}.cal-toolbar,.cal-header{background:#f6f8fb}.cal-event{border-radius:7px}.calendar-grid{border-color:#e1e7f0}.dialog .upload-panel{background:#f9fbfd;border-color:#e6ecf5}.forms-choice-row.is-correct{background:#eef3f9;border-color:#9db9d8}.question-editor{border:1px solid #e3e9f0!important;border-radius:12px!important;background:#fff!important;box-shadow:0 3px 12px #35475e04}.question-editor[open]{border-color:#b9cce5!important;box-shadow:0 3px 16px #5883bd0b}.q-editor-head{background:#fbfcfe!important}.q-editor-body{padding:15px!important}.q-header-actions .btn{box-shadow:none}.q-text{font-size:14px;min-height:70px!important}.forms-builder-head{background:#fff;border-bottom:1px solid #e5ebf4;padding:12px 0}.forms-builder-tabs button.active{color:#5a86c1;border-color:#769bcb}.simple-exam .exam-title-card{background:#fff;border:1px solid #e4eaf1;border-top:4px solid #779bcb;border-radius:12px;padding:17px;margin:12px 0}.simple-exam .exam-title-card input{font-size:19px;height:44px!important;font-weight:600;border-color:transparent;border-bottom-color:#e7edf4;border-radius:0;padding-left:0}.exam-layout-choice{display:flex;align-items:center;gap:14px;margin-top:10px}.exam-layout-choice select{width:auto;min-width:230px}.simple-import-bar{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px solid #e3ebf5;border-radius:11px;background:linear-gradient(100deg,#f2f5fa,#f6f8fb);margin:12px 0}.simple-import-bar>div{margin-right:auto;min-width:0}.simple-import-bar strong,.simple-import-bar small{display:block}.simple-import-bar strong{font-size:12px;color:#546d8d}.simple-import-bar small{font-size:10px;color:#8392a6}.simple-import-bar .btn svg{width:15px;height:15px}.simple-exam .exam-section-editor{background:#fff;border-color:#e4eaf1;border-radius:12px}.simple-exam .section-number{background:#f0f4f9;color:#6890c6}.simple-exam.flat-exam .exam-section-editor{border:0!important;padding:0!important;background:transparent!important}.flat-exam .exam-section-editor>summary,.flat-exam .section-editor-body>.form-grid,.flat-exam .section-progress-setting,.flat-exam .group-material,.flat-exam .group-question-heading,.flat-exam .group-remove,.flat-exam .group-actions>.upload-label{display:none!important}.flat-exam .section-editor-body{padding:0!important}.flat-exam .section-questions{padding:0}.flat-exam .group-actions{justify-content:center}.flat-exam .group-actions>.btn:first-child{min-width:220px;background:#f0f4f9;color:#5784bf}.flat-exam .group-empty{border:1px dashed #c9d7e9;background:#f7f9fc;border-radius:12px;padding:30px}.simple-exam .cm-editor-settings{border:1px solid #e4eaf1;background:#fff;border-radius:11px;padding:14px;margin:12px 0}.simple-exam .cm-editor-settings summary{color:#637690}.simple-exam .group-editor-toolbar{margin:12px 0}.exam-library-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px;border-radius:16px;background:linear-gradient(110deg,#eef2f8,#f0f4f9);margin-bottom:18px;border:1px solid #e2eaf4}.exam-library-banner h2{font-size:22px;color:#465d7b;margin:8px 0}.exam-library-banner p{margin:0;font-size:12px;color:#808c9d}.exam-library-banner .tag{background:#ffffff9c;color:#7b93b3;font-size:9px;letter-spacing:.1em}.owner-layout{max-width:1100px;grid-template-columns:1.1fr 1fr;align-items:center;gap:70px;min-height:78vh}.owner-intro h1{font-size:43px;line-height:1.24;letter-spacing:-.045em;color:#344a68}.owner-auth{padding:30px;border-top:4px solid #3d72b8}.owner-auth h2{font-size:25px}.owner-auth>p{font-size:12px}.owner-intro>.tag{background:#eff3f9;color:#7999c4}.login-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px}.login-feature-grid article{border-radius:12px;padding:16px 12px;background:#fff;border:1px solid #e6ecf3}.login-feature-grid article:nth-child(2){background:#eff4f9}.login-feature-grid article:nth-child(3){background:#eef4fb}.login-feature-grid strong,.login-feature-grid span{display:block}.login-feature-grid strong{font-size:12px;color:#5b718d}.login-feature-grid span{font-size:10px;color:#8993a0;margin-top:5px}.account-public-header{background:#fff;border-bottom:1px solid #e4eaf1}.platform-page-panel{background:#fff}.platform-settings-tabs{display:none}
@media(max-width:760px){.workspace-title h1{font-size:22px}.simple-import-bar{flex-wrap:wrap}.simple-import-bar>div{flex-basis:100%}.exam-library-banner{padding:18px;align-items:flex-start;flex-direction:column}.exam-layout-choice{align-items:flex-start;flex-direction:column;gap:5px}.exam-layout-choice select{width:100%}.owner-layout{display:block;padding:24px;min-height:0}.owner-intro h1{font-size:32px}.owner-intro{margin-bottom:28px}.owner-auth{padding:22px}.login-feature-grid{gap:7px}.simple-exam .q-editor-body{padding:12px!important}}
body{--green:#3d72b8!important;--lime:#eaf0f7!important;--cream:#f6f8fb!important;--ink:#25374e!important;--muted:#78879b!important}.overlay{background:#2433486b;backdrop-filter:blur(4px)}.exam-form-dialog .dialog-body,.exam-form-builder .form-scroll{background:#f6f9fc!important}.forms-builder-tabs button.active{background:#eff3f9!important;color:#5985c0!important}.forms-preview-banner{background:#eef3f9!important;color:#628cc3!important}.simple-exam .exam-title-card input{height:38px!important}.flat-exam .exam-section-editor::before,.flat-exam .exam-section-editor::after{display:none!important}
/* Earth-orange brand and a stable, white exam dialog. */
:root{--accent:#3d72b8;--accent-hover:#305f9e;--accent-soft:#e9f0fa;--accent-line:#c9d8ec;--green:#3d72b8;--lime:#d1e0f4;--cream:#f4f7fa;--ink:#2a323d;--muted:#6e7987;--line:#d7dfea}
body{--green:#3d72b8!important;--lime:#d1e0f4!important;--cream:#f4f7fa!important;--ink:#2a323d!important;--muted:#6e7987!important;background:#f4f7fa;color:#2a323d}.workspace-main{background:#f4f7fa}.brandmark,.avatar{background:#3d72b8!important;color:#fff!important}.workspace-title h1{color:#2c3848}.btn{background:var(--accent);box-shadow:0 2px 6px #436faa14}.btn:hover{background:var(--accent-hover)}.btn.light{background:#eaf1fa;color:#315e99;border-color:#cbdaed}.btn.ghost{background:#fff;color:#5e6e84;border-color:#d9e0e9}.btn.danger{color:#ba3f4e;background:#f4f8fd;border-color:#f0d4d6}.btn.lime{background:#e5eef9;color:#315e99;border-color:#cbdaed}input:focus,select:focus,textarea:focus{outline:2px solid #6595d550;border-color:#6591cc;box-shadow:0 0 0 3px #6595d510}a:focus-visible,button:focus-visible{outline:2px solid #477abe;outline-offset:3px}.table-wrap table thead th{background:#eef3f9;color:#707f92}.table-wrap tbody tr:hover{background:#f4f8fd}.table-wrap,.panel,.card,.kpi{border-color:#d7dfea}.kpi:nth-child(n){background:#fff;border-top:3px solid #91b3df}.kpi strong{color:#3564a3}.kpi small{color:#788494}.sidebar{border-color:#d7dfea!important}.admin-workspace .sidebar>a{color:#607187}.admin-workspace .sidebar>a:hover,.admin-workspace .sidebar>a:focus-visible{background:#eaf1fb;color:#2c5893}.admin-workspace .sidebar>a.active{background:#d8e5f7!important;color:#29548e!important;box-shadow:inset 3px 0 #3d72b8}.admin-workspace .sidebar>a>.menu-icon,.admin-workspace .sidebar>a:nth-of-type(n)>.menu-icon{background:#ecf2fa;color:#486c9c!important}.admin-workspace .sidebar>a:is(.active,:hover,:focus-visible)>.menu-icon{background:#c1d6f1!important;color:#254f87!important}.admin-workspace .sidebar>a>.menu-icon svg{color:inherit!important;stroke:currentColor!important;opacity:1}.sidebar .account-box{background:#f2f6fc;border-color:#d6e0ee}.sidebar-collapse-button{color:#466b9b;background:#eef3fa}.sidebar .group-label,.sidebar-caption{color:#889ab1}.registry-summary span b{color:#3969a8}.notice,.access-note{background:#ecf2fb;border-color:#cfdced;color:#5b7392}.tabs button.active,.cm-tabs .active,.forms-builder-tabs button.active{background:#e0eaf8!important;color:#305f9d!important}.login-feature-grid article:nth-child(n){background:#fff;border-color:#d7dfea}.owner-auth{border-top-color:#3d72b8}.owner-intro h1{color:#2e3d51}.owner-intro>.tag{background:#e0eaf8;color:#4671aa}.overlay{background:#1f283373}
.overlay .exam-form-dialog.large{width:min(1080px,calc(100vw - 32px));max-width:1080px;height:min(780px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);background:#fff;border-radius:14px;transition:none}.exam-form-dialog>.dialog-head{background:#fff!important;border-bottom:1px solid #d7dfea!important;padding:15px 20px}.exam-form-dialog .dialog-head h2{color:#334660}.exam-form-dialog>.dialog-body.form-dialog-body{background:#fff!important;flex:1;min-height:0;overflow:hidden}.exam-form-dialog .exam-form-builder.fixed-dialog-form{flex:1;height:100%;min-height:0;max-height:100%;background:#fff}.exam-form-dialog .exam-form-builder .form-scroll{flex:1;min-height:0;overflow-y:auto;background:#fff!important;padding:14px 20px!important;scrollbar-gutter:stable}.exam-form-builder .form-scroll>div,.exam-form-builder .form-scroll>details,.exam-form-builder .form-scroll>section{width:100%;max-width:none;margin-left:0;margin-right:0}.exam-form-dialog .forms-builder-head{position:sticky;top:-14px;z-index:3;background:#fff!important;padding:10px 0 12px;margin-bottom:14px;border-color:#d7dfea;gap:12px}.exam-form-dialog .dialog-footer{background:#fff!important;flex:none;border-color:#d7dfea!important}.exam-form-dialog .simple-exam .exam-title-card{background:#fff!important;border:0!important;border-radius:0;padding:0;margin:0 0 12px}.exam-form-dialog .simple-exam .exam-title-card input{height:38px!important;font-size:16px;border:1px solid #d4dce7;border-radius:8px;padding-left:11px}.exam-form-dialog .exam-layout-choice{margin-top:10px}.exam-form-dialog .simple-import-bar{background:#fff;border-color:#d3ddea;padding:10px 12px;margin:12px 0}.simple-import-bar strong{color:#3d5f8b}.simple-import-bar small{color:#798ca5}.exam-form-dialog .group-editor-toolbar{margin:10px 0}.exam-form-dialog .exam-section-editor,.exam-form-dialog .question-editor,.exam-form-dialog .q-editor-head,.exam-form-dialog .grouped-exam .exam-section-editor>summary,.exam-form-dialog .cm-editor-settings,.exam-form-dialog .group-empty,.exam-form-dialog .forms-preview-section,.exam-form-dialog .forms-preview-question{background:#fff!important}.exam-form-dialog .exam-section-editor{border-color:#d4dde8}.exam-form-dialog .exam-section-editor>summary{border-bottom:1px solid #dfe5ee}.exam-form-dialog .exam-section-editor>summary strong{color:#3d5677}.exam-form-dialog .exam-section-editor>summary small{color:#7789a1}.exam-form-dialog .section-number{background:#e5eefa;color:#3c6cab}.exam-form-dialog .question-editor[open]{border-color:#8cabd5!important;box-shadow:none}.exam-form-dialog .question-editor{box-shadow:none}.exam-form-dialog .group-empty{padding:20px;border-color:#c0cfe4}.exam-form-dialog .flat-exam .group-actions>.btn:first-child{background:#e0eaf8;color:#305f9d}.exam-form-dialog .forms-preview-title{border-top-color:#3d72b8}.exam-form-dialog .forms-preview-banner{background:#fff!important;color:#5879a5!important;border-bottom:1px solid #d7dfea;border-radius:0}.exam-form-dialog .q-extra,.exam-form-dialog .q-passage-editor,.exam-form-dialog .q-audio-block,.exam-form-dialog .group-material{background:#fff!important;border-color:#d7dfe9}.exam-form-dialog .section-editor-body{padding:12px}.exam-form-dialog .group-actions{gap:8px}.exam-form-dialog .add-group-button{background:#fff;color:#3e69a3;border:1px dashed #a6bcda}.exam-form-dialog .q-summary{color:#758499}
@media(max-width:700px){.overlay .exam-form-dialog.large{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.exam-form-dialog .exam-form-builder .form-scroll{padding:12px!important}.exam-form-dialog .forms-builder-head{top:-12px}.exam-form-dialog .dialog-head,.exam-form-dialog .dialog-footer{padding:12px}.exam-form-dialog .section-editor-body{padding:10px}}
.admin-workspace .workspace-main,.student-workspace .workspace-main{background:#f4f7fa!important}.exam-form-dialog .section-editor-body,.exam-form-dialog .section-questions,.exam-form-dialog .group-actions{background:#fff!important}.exam-form-dialog .group-editor-toolbar strong,.exam-form-dialog .group-question-heading>strong{color:#3f5777}.exam-form-dialog .group-empty{color:#7688a0}.exam-form-dialog .section-editor-body label{color:#5b6d84}

/* Consistent blue workspace and compact exam authoring */
:root{--accent:#2563a6;--accent-hover:#1d4f88;--accent-soft:#edf4fc;--line:#dce5ef}
body{--green:#2563a6!important;--lime:#e1edfa!important;--cream:#f5f8fc!important;--ink:#26374b!important;--muted:#738397!important;background:#f5f8fc;color:var(--ink)}
.brandmark,.avatar{background:#2563a6!important}.admin-workspace .workspace-main,.student-workspace .workspace-main{background:#f5f8fc!important}
.admin-workspace .sidebar>a.active{background:#e4effc!important;color:#1d4f88!important;box-shadow:inset 3px 0 #2563a6}.admin-workspace .sidebar>a>.menu-icon,.admin-workspace .sidebar>a:nth-of-type(n)>.menu-icon{background:#f0f5fb;color:#376b9e!important}.admin-workspace .sidebar>a:is(.active,:hover,:focus-visible)>.menu-icon{background:#d5e5f9!important;color:#164c85!important}
.exam-form-dialog .simple-import-bar{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;padding:10px 0;border:0;border-bottom:1px solid #dce5ef;border-radius:0}
.exam-form-dialog .simple-import-bar .exam-layout-choice{display:flex;align-items:center;gap:10px;margin:0;flex:1;min-width:260px}.exam-form-dialog .exam-layout-choice label{margin:0;white-space:nowrap}.exam-form-dialog .exam-layout-choice select{width:210px;max-width:100%;margin:0;height:38px;min-height:38px}
.exam-form-dialog .simple-import-bar>.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;min-height:38px;margin:0!important;white-space:nowrap;flex-shrink:0;padding:0 12px;box-sizing:border-box}.exam-form-dialog .excel-template-info{display:none}
.exam-form-builder .question-editor>.q-editor-head{margin:0!important;min-height:50px!important;padding:8px 12px!important;align-items:center;gap:10px}.exam-form-builder .question-editor:not([open]){min-height:0!important;height:auto!important;padding:0!important}.exam-form-builder .question-editor:not([open])>.q-editor-head{height:50px!important;min-height:50px!important;padding:8px 12px!important}.exam-form-builder .question-editor:not([open]) .q-summary{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exam-form-builder .question-editor:not([open]) .q-header-actions{margin:0!important;flex-shrink:0}.exam-form-builder .q-editor-head h4{margin:0!important}
.exam-form-builder .choice-toolbar{display:flex;align-items:center;gap:10px;margin:12px 0 10px;flex-wrap:wrap}.exam-form-builder .q-specific .choice-toolbar>label{margin:0!important;line-height:38px;white-space:nowrap}.exam-form-builder .choice-toolbar select{width:120px;height:38px;min-height:38px;margin:0!important}.exam-form-builder .choice-toolbar small{margin-left:auto}.exam-form-builder .q-listening-response{padding-top:1px}.exam-form-builder .q-response-mode{margin:6px 0 0}.exam-form-builder .forms-choice-row{gap:10px;padding:0 8px!important;align-items:center;min-height:38px}.exam-form-builder .forms-choice-row input.q-option{margin:0!important;min-width:0;height:36px!important;min-height:36px!important;border:0!important;background:transparent!important;padding:6px!important}.exam-form-builder .forms-choice-row input[type=radio]{margin:0!important;flex-shrink:0}.exam-form-builder .forms-choice-row>span{flex-shrink:0}
@media(max-width:760px){.exam-form-dialog .simple-import-bar{flex-wrap:wrap}.exam-form-dialog .simple-import-bar .exam-layout-choice{flex-basis:100%;min-width:0}.exam-form-dialog .choice-toolbar small{flex-basis:100%;margin:0}.exam-form-builder .question-editor:not([open]) .q-summary{max-width:40vw}}
/* Shared control colors, including legacy form focus rules. */
body label,.dialog label{color:#66788e}.dialog input:focus,.dialog select:focus,.dialog textarea:focus,input:focus,select:focus,textarea:focus{outline:2px solid #2563a635!important;border-color:#6b9bcf!important;box-shadow:0 0 0 3px #2563a610!important}.btn:focus-visible,.close:focus-visible{outline:2px solid #2563a6!important;outline-offset:2px}.exam-form-dialog .section-editor-body label{color:#66788e}.exam-form-dialog .q-editor-head{color:#26374b}.exam-form-dialog .q-extra>summary,.exam-form-dialog .q-passage-editor>summary,.exam-form-dialog .q-audio-block>summary{color:#66788e}.exam-form-dialog .group-editor-toolbar strong,.exam-form-dialog .group-question-heading>strong{color:#355575}
/* Shared selects: white surface, compact blue selection, border-only focus. */
body select:not([multiple]):not([size]),body select[size="1"]{appearance:none;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%2375879c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 11px center!important;background-size:16px!important;border:1px solid #dce3eb!important;border-radius:7px!important;padding-left:11px!important;padding-right:34px!important;color:#35465c;cursor:pointer;box-shadow:none!important;transition:border-color .12s ease}
body input:is(:hover,:focus,:focus-visible),body select:is(:hover,:focus,:focus-visible),body textarea:is(:hover,:focus,:focus-visible),.dialog input:is(:hover,:focus,:focus-visible),.dialog select:is(:hover,:focus,:focus-visible),.dialog textarea:is(:hover,:focus,:focus-visible){outline:none!important;box-shadow:none!important;border-color:#3182ed!important;outline-offset:0!important}
body input:disabled,body select:disabled,body textarea:disabled{cursor:not-allowed;border-color:#dce3eb!important;opacity:.6}
body select option{background:#fff;color:#35465c}
@supports (appearance:base-select){
 body select:not([multiple]):not([size]),body select[size="1"],body select:not([multiple]):not([size])::picker(select),body select[size="1"]::picker(select){appearance:base-select}
 body select:not([multiple]):not([size]),body select[size="1"]{background-image:none!important;align-items:center;gap:12px;padding-right:11px!important}
 body select::picker-icon{color:#75879c;transition:color .12s;content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;rotate:45deg;translate:0 -2px;flex-shrink:0;margin-left:auto;margin-right:3px}
 body select:is(:hover,:focus,:open)::picker-icon{color:#3182ed}
 body select::picker(select){background:#fff;border:1px solid #e0e5ed;border-radius:9px;padding:6px;box-shadow:0 5px 18px #243e5814;max-height:min(320px,55dvh);overflow-y:auto;margin-top:5px;color:#35465c}
 body select option{display:flex;align-items:center;min-height:36px;padding:8px 11px;border:0;border-radius:6px;gap:8px;cursor:pointer;outline:none!important;box-shadow:none!important;white-space:normal;overflow-wrap:anywhere}
 body select option::checkmark{display:none}
 body select option:is(:hover,:focus){background:#f2f4f7;color:#35465c}
 body select option:checked{background:#e9f2ff;color:#245f9e}
 body select option:disabled{opacity:.45;cursor:not-allowed}
 body select optgroup{font-size:inherit;font-weight:600;color:#75879c;padding:4px}
}
/* Choice text fields use their row's border, without an extra focus ring. */
body .exam-form-builder .forms-choice-row:focus-within,body .exam-form-builder .forms-choice-row:hover{border-color:#3182ed!important;outline:none!important;box-shadow:none!important}
body .exam-form-builder .forms-choice-row input.q-option:is(:hover,:focus,:focus-visible){border:0!important;outline:none!important;box-shadow:none!important;background:transparent!important}

body select:open{border-color:#3182ed!important;outline:none!important;box-shadow:none!important}

/* Keep editing controls outside the disclosure summary so selecting an option never toggles it. */
.exam-form-dialog .exam-form-builder .question-editor{position:relative;padding:0!important}
.exam-form-dialog .exam-form-builder .question-editor[open]>.q-editor-head{height:64px;min-height:64px!important;padding:8px 10px!important}
.exam-form-dialog .exam-form-builder .question-editor>.q-header-controls{position:absolute;top:8px;right:124px;width:min(400px,calc(100% - 232px));margin:0;align-items:flex-end;gap:8px;z-index:1}
.exam-form-dialog .exam-form-builder .q-header-actions{margin:0 0 0 auto!important}
.exam-form-dialog .exam-form-builder .q-editor-body{padding:0 10px 10px!important}
.exam-form-dialog .exam-form-builder .q-form-top{margin:0 0 6px}
.exam-form-dialog .exam-form-builder .q-form-top .q-text{height:56px;min-height:56px!important}
.exam-form-dialog .exam-form-builder .q-extra,.exam-form-dialog .exam-form-builder .q-passage-editor{margin:4px 0;padding:4px 0;border:0}
.exam-form-dialog .exam-form-builder .q-extra>summary,.exam-form-dialog .exam-form-builder .q-passage-editor>summary{padding:4px 0;min-height:24px}
.exam-form-dialog .exam-form-builder .q-inline-numbers{margin:6px 0;gap:12px}
.exam-form-dialog .exam-form-builder .q-inline-numbers label{margin-top:0}
.exam-form-dialog .exam-form-builder .q-insert-button{margin-top:6px}
body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),body textarea{background-color:#f8fbff!important}
body input::placeholder,body textarea::placeholder{color:#8b9fb7;opacity:1}
body .exam-form-builder .forms-choice-row{background:#fff!important}
body .exam-form-builder .forms-choice-row.is-correct{background:#f1f7ff!important}
@media(max-width:760px){.exam-form-dialog .exam-form-builder .question-editor>.q-header-controls{position:static;width:auto;margin:0 10px 8px;justify-content:flex-start;flex-wrap:wrap}.exam-form-dialog .exam-form-builder .question-editor[open]>.q-editor-head{height:44px;min-height:44px!important}.exam-form-dialog .exam-form-builder .q-header-controls>div:first-child{flex:1}}

/* White, single-surface choice rows; avoid nested input backgrounds. */
#editor-form .forms-choice-row{--control-height:36px;display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px!important;background:#fff!important;border:1px solid #dce5ef;border-radius:8px;overflow:hidden}
#editor-form .forms-choice-row.is-correct{background:#fff!important;border-color:#6b9bd0!important}
#editor-form .forms-choice-row input.q-option,#editor-form .forms-choice-row input.q-option:is(:hover,:focus,:focus-visible){background:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important;outline:none!important;height:36px!important;min-height:36px!important;padding:7px 0!important;flex:1;min-width:0;margin:0!important;line-height:22px!important}
#editor-form .forms-choice-row input.q-option::placeholder{color:#94a3b8;font-weight:400}
#editor-form .forms-choice-row>span{color:#6d829c;font-size:12px;font-weight:600;min-width:12px}
#editor-form .forms-choice-row input[type=radio]{width:16px;height:16px;margin:0!important;accent-color:#2563a6}
body .brandmark.class-brandmark{background:transparent!important;padding:0;box-shadow:none;border-radius:10px;overflow:hidden;flex-shrink:0}
.class-brandmark img{display:block;width:100%;height:100%;object-fit:contain}
.brand-boot{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 42%,#edf5ff 0,#f9fcff 42%,#fff 75%);transition:opacity .25s ease,visibility .25s;animation:boot-failsafe 0s 12s forwards}
.brand-boot.is-ready{opacity:0;visibility:hidden;pointer-events:none}
.brand-boot-content{text-align:center;padding:24px;color:#26374b}
.brand-boot-symbol{position:relative;display:grid;place-items:center;width:100px;height:100px;margin:0 auto 22px}
.brand-boot-symbol img{border-radius:17px;box-shadow:0 12px 30px #2563a61c;animation:boot-float 1.8s ease-in-out infinite}
.brand-boot-orbit{position:absolute;inset:0;border:1px solid #d8e8fa;border-top:2px solid #4e90d4;border-radius:50%;animation:boot-orbit 1.6s linear infinite}
.brand-boot-content>strong{font-size:25px;letter-spacing:-.7px;font-weight:700}.brand-boot-content>strong>span{color:#2563a6}.brand-boot-content>p{font-size:12px;color:#8498b1;margin:9px 0 20px}
.brand-boot-dots{display:flex;justify-content:center;gap:6px}.brand-boot-dots i{height:5px;width:5px;border-radius:50%;background:#4e90d4;animation:boot-dot 1.2s ease-in-out infinite}.brand-boot-dots i:nth-child(2){animation-delay:.15s}.brand-boot-dots i:nth-child(3){animation-delay:.3s}
@keyframes boot-orbit{to{transform:rotate(360deg)}}@keyframes boot-float{50%{transform:translateY(-4px)}}@keyframes boot-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes boot-failsafe{to{visibility:hidden;pointer-events:none}}
@media(prefers-reduced-motion:reduce){.brand-boot,.brand-boot-symbol img,.brand-boot-orbit,.brand-boot-dots i{animation:none}.brand-boot{animation:boot-failsafe 0s 12s forwards;transition:none}}

/* Inline labels and vertically centered question controls. */
.exam-form-dialog .exam-form-builder .question-editor[open]>.q-editor-head{height:54px;min-height:54px!important;align-items:center}
.exam-form-dialog .exam-form-builder .question-editor>.q-header-controls{top:8px;right:124px;width:min(660px,calc(100% - 220px));height:38px;align-items:center;gap:14px}
.exam-form-dialog .exam-form-builder .q-header-controls>div:first-child{display:flex;align-items:center;gap:8px;min-width:0;width:auto;flex:1}
.exam-form-dialog .exam-form-builder .q-header-controls label{display:inline-block;white-space:nowrap;margin:0!important;line-height:1.3;font-size:10px}
.exam-form-dialog .exam-form-builder .q-header-controls select{margin:0!important;min-width:0;flex:1}
.exam-form-dialog .exam-form-builder .q-header-controls>.q-config{display:flex!important;align-items:center!important;gap:12px}
.exam-form-dialog .exam-form-builder .q-header-controls>.q-config>div{display:flex;align-items:center;gap:8px;width:auto!important}
.exam-form-dialog .exam-form-builder .q-header-controls .q-skill{width:85px;flex:none}
.exam-form-dialog .exam-form-builder .q-header-controls .q-points{width:56px!important;margin:0!important}
.student-portal-settings{max-width:750px;margin-bottom:16px}.student-portal-settings h3{margin:0 0 6px}.student-portal-settings p{margin:0 0 14px;color:var(--muted);font-size:12px}.student-portal-link-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.student-portal-link-row label{margin:0;white-space:nowrap}.student-portal-link-row input{flex:1;min-width:180px;width:auto;overflow:hidden;text-overflow:ellipsis}.student-portal-link-row .btn{flex-shrink:0;gap:6px}.student-portal-link-row svg{width:15px;height:15px}.student-portal-settings [role=status]{display:block;font-size:11px;color:#2563a6;margin-top:8px}
@media(max-width:950px){.exam-form-dialog .exam-form-builder .question-editor>.q-header-controls{position:static;width:auto;height:auto;margin:0 10px 8px;justify-content:flex-start;flex-wrap:wrap}.exam-form-dialog .exam-form-builder .question-editor[open]>.q-editor-head{height:44px;min-height:44px!important}.exam-form-dialog .exam-form-builder .q-header-controls>div:first-child{flex:1;min-width:230px}.exam-form-dialog .exam-form-builder .q-header-controls>.q-config{flex:none}.student-portal-link-row input{flex-basis:65%}}
.exam-form-dialog .exam-form-builder .q-header-controls>div:first-child,.exam-form-dialog .exam-form-builder .q-header-controls>.q-config>div{flex-direction:row!important;align-items:center!important}
/* Unified deletion controls and confirmations. */
body .btn.danger,body .btn.danger:hover,body .btn.danger:focus{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:#c43246!important}
body .dialog .dialog-footer>.btn.danger,body .dialog .dialog-footer>.delete-action,body .dialog .dialog-footer>[data-action="admin-delete"],body .dialog .dialog-footer>[data-action="managed-state-confirm"][data-state="deleted"]{order:0!important;margin-right:0!important;margin-left:0!important}
body .dialog-footer{justify-content:flex-end}
body .delete-confirm-dialog{width:min(520px,calc(100vw - 32px))!important;max-width:520px;min-height:0;height:auto!important;border-radius:18px;background:#fff;box-shadow:0 20px 70px #172a3f25}
body .delete-confirm-dialog>.dialog-head{padding:22px 24px 8px;background:#fff!important;border:0!important}.delete-confirm-dialog .dialog-head h2{display:flex;align-items:center;gap:10px;font-size:21px;color:#253247}
.confirm-warning{display:inline-grid;place-items:center;flex-shrink:0;width:26px;height:26px;background:#c31230;color:#fff;font-weight:700;border-radius:8px;font-size:18px;line-height:1}
body .delete-confirm-dialog .dialog-body{padding:12px 24px 18px;background:#fff;max-height:60dvh;overflow:auto}.delete-confirm-dialog .dialog-body p{font-size:14px;line-height:1.7;color:#435269}.delete-confirm-dialog .dialog-footer{border:0!important;padding:8px 24px 22px;gap:10px;background:#fff!important}
body .delete-confirm-dialog .btn.confirm-primary,body .draft-delete-confirm .btn.confirm-primary{background:#c31230!important;color:#fff!important;border:1px solid #c31230!important;box-shadow:none!important;min-width:100px}.delete-confirm-dialog .btn.light,.draft-delete-confirm .btn.light{background:#edf0f4;color:#344054;border-color:#edf0f4;min-width:100px}
.draft-delete-confirm{border:0;border-radius:18px;padding:24px;width:min(500px,calc(100vw - 32px));color:#253247;box-shadow:0 20px 70px #172a3f25}.draft-delete-confirm::backdrop{background:#172a3f73}.draft-delete-confirm header{display:flex;align-items:center;justify-content:space-between;gap:12px}.draft-delete-confirm h2{display:flex;align-items:center;gap:10px;margin:0;font-size:21px}.draft-delete-confirm .close{width:30px;height:30px;background:none;color:#435269;padding:6px}.draft-delete-confirm .close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}.draft-delete-confirm p{font-size:14px;line-height:1.7;color:#435269;margin:20px 0 0}.draft-delete-confirm p+p{margin-top:6px}.draft-delete-confirm footer{position:static;display:flex;justify-content:flex-end;gap:10px;background:none;border:0;padding:24px 0 0;margin:0;min-height:0}
/* Notifications slide into the upper right, with dismiss and automatic expiry. */
body #toast{position:fixed;top:22px;right:22px;bottom:auto;left:auto;transform:none;max-width:calc(100vw - 32px);width:390px;padding:20px;background:#fff;color:#26374b;border:1px solid #e4eaf1;border-radius:14px;box-shadow:0 12px 42px #1d365326;z-index:21000;text-align:left;font-size:13px;line-height:1.6}
#toast .toast-heading{display:flex;align-items:center;gap:10px}#toast .toast-heading strong{font-size:15px;line-height:1.4;flex:1}#toast .toast-symbol{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e8f1ff;color:#2563a6;font-weight:700;flex-shrink:0}#toast.toast-success .toast-symbol{background:#258a51;color:#fff}#toast p{margin:10px 0 0;overflow-wrap:anywhere}#toast .toast-close{height:25px;width:25px;background:none;padding:4px;color:#62748a;cursor:pointer}#toast .toast-close svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8}#toast.toast-enter{animation:toast-slide-in .28s ease-out}
@keyframes toast-slide-in{from{transform:translateX(calc(100% + 32px));opacity:0}to{transform:translateX(0);opacity:1}}
.exam-manager-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.exam-manager-filters>input{flex:1;min-width:220px}.exam-manager-filters>select{width:200px;max-width:100%}.exam-assignment{white-space:normal;max-width:420px}
@media(max-width:700px){body #toast{top:12px;right:12px;width:calc(100vw - 24px)}.exam-manager-filters>select{flex:1;min-width:150px}}
@media(prefers-reduced-motion:reduce){#toast.toast-enter{animation:none}}
body #modal .delete-confirm-dialog .dialog-footer>button{order:0!important}
/* Fixed student identity/actions and tabs; only the selected panel scrolls. */
body .dialog:has(.student-detail)>.dialog-body{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0!important}
.student-detail{display:flex;flex-direction:column;min-height:0;height:100%;width:100%}
.student-detail-fixed{flex:none;background:#fff;z-index:2;border-bottom:1px solid #dce5ef}
.student-detail-fixed>.text-link{display:inline-block;margin:12px 18px 0;font-size:11px}
.detail-overlay .student-detail-fixed>.text-link{display:none}
.student-detail .student-detail-head{display:block;padding:16px 20px;margin:0;background:#f8fbff;border:0;border-radius:0}
.student-detail-head h2{font-size:23px;line-height:1.3;margin:0 0 9px;letter-spacing:-.5px}
.student-login-line{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;color:#7589a3;font-size:12px}.student-login-line .tag{margin:0;padding:4px 8px;font-size:10px;line-height:1.4}.student-detail-head .row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center;justify-content:flex-start}.student-detail-head .row-actions .btn{height:38px;min-height:38px;margin:0}
.student-detail-tabs{display:flex;align-items:center;gap:20px;padding:0 20px;margin:0;height:46px!important;min-height:46px;width:100%;border:0;background:#fff}
.student-detail-tabs [role=tab]{border:0;border-bottom:2px solid transparent;background:transparent;color:#7c8da3;font:inherit;font-size:12px;font-weight:600;height:46px;padding:0 0;cursor:pointer;white-space:nowrap}.student-detail-tabs [role=tab][aria-selected=true]{color:#2563a6;border-bottom-color:#2563a6}.student-detail-tabs [role=tab]:focus-visible{outline:1px solid #2563a6;outline-offset:-3px;border-radius:4px}
.student-detail-panels{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px;background:#fff;scrollbar-gutter:stable}.student-detail-panels>.panel{margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:#fff}.student-detail-panels .student-info-panel>h3{display:none}.student-detail-panels .student-info{margin-top:0}.student-detail-panels .student-info>div{padding:10px 0}.student-detail-panels .student-info-panel h4{font-size:12px;margin:14px 0 6px}.student-detail-panels .student-info-panel p{font-size:12px;color:#71859e;margin:0;line-height:1.7}.student-detail-panels .student-fee-summary{margin:0 0 16px}.student-detail-panels .section-heading{margin:12px 0}.student-detail-panels .section-heading h3{font-size:15px}
.workspace-main>.student-detail{height:calc(100dvh - 185px);min-height:320px;max-width:none;background:#fff;border:1px solid #dce5ef;border-radius:12px;overflow:hidden}
@media(max-width:600px){.student-detail .student-detail-head{padding:13px 14px}.student-detail-head h2{font-size:21px}.student-detail-head .row-actions{gap:6px;margin-top:10px}.student-detail-head .row-actions .btn{font-size:10px;padding-left:9px;padding-right:9px}.student-detail-tabs{padding:0 14px;gap:18px}.student-detail-panels{padding:12px 14px}.student-login-line{font-size:11px}}
/* Child forms sit above the unchanged detail drawer. */
.modal-underlay{pointer-events:none!important}.modal-child-layer.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#192d4559;backdrop-filter:none;padding:16px}
.modal-child-layer.overlay.detail-overlay{inset:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#192d4559;pointer-events:auto}
.modal-child-layer.overlay.detail-overlay>.dialog{position:relative;inset:auto;width:min(850px,calc(100vw - 32px));max-width:850px;height:min(800px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);border-radius:14px;pointer-events:auto}
.modal-child-layer .dialog{max-height:calc(100dvh - 32px)}
/* Compact learner practice browser and two-column answers. */
.student-test-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 18px}.student-test-filters>input{flex:1;min-width:230px;width:auto;max-width:520px}.student-test-filters>select{width:190px;max-width:100%;margin:0}
.student-test-browser .exam-card .card-body{padding:18px;display:flex;flex-direction:column;gap:12px}.student-test-browser .exam-card h3{font-size:18px;line-height:1.4;margin:0}.student-test-browser .exam-card .exam-lesson-name{margin:0;font-size:12px;min-height:0}.student-test-browser .exam-card .question-skill-tags{margin:0}.student-test-browser .exam-card .meta{margin:0;gap:14px}.student-test-browser .exam-card .card-foot{margin-top:auto;padding-top:12px;justify-content:flex-end}.student-test-browser .exam-card{min-height:0}.student-test-browser #test-list{align-items:stretch;gap:16px}
.exam-choice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}.exam-choice-options>.option{display:flex;align-items:flex-start;gap:9px;margin:0!important;padding:11px 12px;min-height:43px;border:1px solid #dce5ef;border-radius:8px;background:#fff;cursor:pointer;overflow-wrap:anywhere}.exam-choice-options>.option>input[type=radio]{margin:3px 0 0!important;width:16px;height:16px;flex-shrink:0;accent-color:#2563a6}.exam-choice-options>.option>span{font-size:13px;line-height:1.65;min-width:0}.exam-choice-options>.option:has(input:checked){border-color:#5e97d4;background:#f1f7ff}.exam-choice-options>.option:hover{border-color:#3182ed}
.password-settings-form{max-width:520px;padding:20px;border:1px solid #dce5ef;border-radius:12px;background:#fff;margin-top:18px}.password-settings-form .field{width:100%;margin:0 0 14px}.password-settings-form .field label{display:block;margin:0 0 6px;font-size:12px}.password-help{font-size:12px;line-height:1.7;color:#7589a3;margin:0 0 18px}.password-settings-form>.actions{display:flex;justify-content:flex-end;margin-top:18px}.password-settings-form>.actions>[data-action=close]{display:none}
body .password-dialog{width:min(520px,calc(100vw - 32px));max-width:520px;height:auto;min-height:0}.password-dialog>.dialog-body{padding:0!important}.password-dialog .password-settings-form{width:100%;max-width:none;margin:0;border:0;border-radius:0;padding:0}.password-dialog .password-settings-form h3{display:none}.password-dialog .password-settings-form .form-scroll{padding:18px 22px!important}.password-dialog .password-settings-form .field{display:block;width:100%;margin:0 0 14px}.password-dialog .password-settings-form input{width:100%}.password-dialog .password-settings-form>.actions>[data-action=close]{display:inline-flex}.password-dialog .dialog-footer{padding:12px 22px!important;margin:0}.password-dialog .dialog-head{padding:16px 22px!important}
@media(max-width:600px){.student-test-filters>input{flex-basis:100%;max-width:none;min-width:0}.student-test-filters>select{flex:1;width:auto;min-width:140px}.exam-choice-options{gap:7px}.exam-choice-options>.option{padding:9px;gap:6px}.exam-choice-options>.option>span{font-size:12px}}
@media(max-width:360px){.exam-choice-options{grid-template-columns:1fr}}
body .password-dialog #password-form{width:100%!important;max-width:none!important;align-self:stretch}body .password-dialog #password-form .dialog-footer>.btn{order:0!important}.dialog-footer>[data-action=confirm-exit-exam]{order:3!important}
.student-test-browser .exam-card h3{min-height:0;height:auto}.student-test-browser .exam-card .meta{padding:0;min-height:0;border:0}.student-test-browser .exam-card .card-body{gap:10px}
/* Calendar controls: one date/navigation group, with refresh above the filters. */
.cal-filter-actions{display:flex;justify-content:flex-end;margin:0 0 8px}.cal-page .cal-filters{display:grid;grid-template-columns:minmax(220px,1fr) 140px 140px;gap:12px;align-items:end}.cal-page .cal-filters>div{min-width:0}.cal-page .cal-filters label{display:block;margin:0 0 6px;font-size:11px}.cal-page .cal-filters input,.cal-page .cal-filters select{width:100%}
.cal-page .cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:0 0 14px}.cal-page .cal-toolbar>h3{margin:0;font-size:18px;flex:1;text-align:center;min-width:150px}.cal-page .cal-navigation{display:flex;align-items:center;gap:6px;border:0;background:transparent;flex-shrink:0}.cal-page .cal-navigation>button{height:38px;min-height:38px;min-width:32px;border:1px solid #dce5ef;border-radius:7px;background:#fff;color:#456988;padding:0 10px}.cal-page .cal-navigation>[data-action=cal-today]{white-space:nowrap;font-size:12px}.cal-date-jump .date-control{width:145px;max-width:100%;margin:0}.cal-date-jump .date-control>input[data-date-input]{width:100%;padding-right:32px!important;font-size:12px}.cal-page .cal-date-jump .date-picker-button{width:30px;height:34px;top:2px;right:2px}.cal-date-jump .menu-icon{background:transparent;padding:0}.cal-date-jump .menu-icon svg{width:16px;height:16px}.cal-integration-note{font-size:11px;color:#8294ab;margin:16px 0 0;line-height:1.7}.cal-integration-note a{color:#2563a6;text-decoration:underline;text-underline-offset:3px}
/* Settings heading remains left aligned, while the content column is centered. */
.workspace-main>.center-settings{width:min(780px,100%);max-width:780px;margin:0 auto!important}.center-settings>.account-center{display:flex;flex-direction:column;gap:16px;width:100%;max-width:none;margin:0;padding:0}.center-settings .account-center>.panel{width:100%;max-width:none!important;margin:0!important}.workspace-main:has(>.center-settings)>.workspace-title{margin-left:0!important;margin-right:0!important;text-align:left}.workspace-main:has(>.center-settings)>.security-entry{width:min(780px,100%);max-width:780px;margin-left:auto!important;margin-right:auto!important}.center-settings #settings-form .field{margin-bottom:16px}.center-settings #settings-form{max-width:none}.google-settings-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.google-settings-heading .menu-icon{color:#2563a6;background:#edf4ff;border-radius:10px;width:38px;height:38px;padding:9px;flex-shrink:0}.google-settings-heading h3{margin:0 0 6px}.google-settings-heading p{font-size:12px;line-height:1.7;color:#8294ab;margin:0}
body .password-dialog #password-form{min-width:0;max-width:none!important;width:100%!important;margin:0!important}.password-dialog #password-form .form-scroll{width:100%;max-width:none;padding:18px 22px!important}.password-dialog #password-form .field{padding:0;max-width:none}.password-dialog #password-form .password-help{margin:0 0 16px}.password-dialog #password-form .dialog-footer{width:100%;max-width:none;justify-content:flex-end}.password-dialog #password-form .dialog-footer>.btn{order:0!important}
@media(max-width:900px){.cal-page .cal-toolbar>h3{order:-1;flex-basis:100%;text-align:left}.cal-page .cal-filters{grid-template-columns:minmax(180px,1fr) 120px 120px}.cal-page .cal-navigation{flex-shrink:1}}
@media(max-width:600px){.cal-page .cal-filters{grid-template-columns:1fr 1fr}.cal-page .cal-filters>div:first-child{grid-column:1/-1}.cal-page .cal-toolbar{gap:10px}.cal-page .cal-navigation{flex-wrap:wrap;width:100%;gap:5px}.cal-date-jump{flex:1}.cal-date-jump .date-control{width:100%;min-width:125px}.cal-page .cal-view-tabs{margin-left:auto}.workspace-main>.center-settings{width:100%}}

/* Calendar: refresh beside the time range; white, aligned date navigation. */
.cal-page .cal-filters{grid-template-columns:minmax(180px,1fr) 140px 140px auto}.cal-page .cal-refresh-field .btn{height:38px;min-height:38px;white-space:nowrap}
.cal-page .cal-toolbar{background:#fff!important}.cal-page .cal-navigation{background:#fff!important;overflow:visible}.cal-page .cal-date-jump .date-control{position:relative;background:#fff;height:38px}.cal-page .cal-date-jump input[data-date-input]{height:38px;min-height:38px;background:#fff!important;padding-right:36px!important}.cal-page .cal-date-jump .date-picker-button{top:1px;right:1px;bottom:1px;width:32px;height:36px;min-height:0;padding:0;display:grid;place-items:center;background:transparent!important;box-shadow:none}.cal-page .cal-date-jump .date-picker-button .menu-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin:0;padding:0;color:#456988}.cal-page .cal-view-tabs{background:#fff;border:1px solid #dce5ef}.cal-page .cal-view-tabs button.active{background:#2563a6;color:#fff;box-shadow:none}
@media(max-width:1180px){.cal-page .cal-layout{grid-template-columns:minmax(0,1fr)}.cal-page .cal-detail{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-page .cal-filters{grid-template-columns:minmax(150px,1fr) 115px 115px auto}.cal-page .cal-toolbar>h3{order:-1;flex-basis:100%;text-align:left}.cal-page .cal-main{padding:16px}}
@media(max-width:760px){.cal-page .cal-filters{grid-template-columns:1fr 1fr;gap:10px}.cal-page .cal-filters>div:first-child{grid-column:1/-1}.cal-page .cal-refresh-field{grid-column:1/-1;display:flex;justify-content:flex-end}.cal-page .cal-intro{flex-wrap:wrap;gap:8px;margin-bottom:16px}.cal-page .cal-detail{grid-template-columns:minmax(0,1fr)}.cal-page .cal-main{padding:10px}.cal-page .cal-navigation{width:100%;flex-wrap:nowrap;min-width:0}.cal-page .cal-date-jump{flex:1;min-width:0}.cal-page .cal-date-jump .date-control{width:100%;min-width:0}.cal-page .cal-navigation>button{padding:0 8px;flex-shrink:0}.cal-page .cal-view-tabs{margin-left:auto}.cal-page .cal-month-day{min-height:90px;padding:5px 2px}.cal-page .cal-event.compact{display:block;padding:3px 2px}.cal-page .cal-event.compact>span,.cal-page .cal-event.compact>strong{font-size:8px}.cal-page .cal-day-count{position:static;display:block;font-size:8px}.cal-page .cal-legend{gap:6px}.cal-page .cal-time-scroll{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.cal-page .cal-toolbar{gap:8px}.cal-page .cal-toolbar>h3{font-size:16px}}

.owner-forgot-link{display:block;margin:14px auto 0;padding:4px;background:transparent;color:#2563a6}.owner-recovery h1{font-size:24px}.owner-recovery>p{font-size:13px;line-height:1.7}.owner-recovery .actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.owner-recovery #recovery-result{font-size:13px;line-height:1.7;color:#2563a6}.reset-request-badge{display:block;width:fit-content;margin-top:6px;font-size:10px;white-space:normal}.reset-request-note{padding:10px;border:1px solid #cfe1fa;border-radius:8px;background:#f2f7ff;color:#2563a6;font-size:12px}

body .paper-export-dialog{width:min(1100px,calc(100vw - 24px));height:min(900px,calc(100dvh - 32px));max-width:1100px}.paper-export-dialog>.dialog-body{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0!important}.exam-paper-export{flex:1;min-height:0;display:flex;flex-direction:column}.paper-export-help{margin:0;padding:12px 18px;font-size:12px;line-height:1.7;background:#f4f8ff;border-bottom:1px solid #dce5ef}.exam-paper-export iframe{display:block;flex:1;min-height:220px;width:100%;border:0;background:#eef2f7}.paper-export-dialog .dialog-footer{flex-shrink:0;margin:0;padding:12px 18px;gap:8px;justify-content:flex-end}.paper-export-dialog #paper-export-error{font-size:12px;color:#b42318;margin:0 auto 0 0}.paper-export-loading{padding:28px;font-size:13px}@media(max-width:600px){body .paper-export-dialog{width:calc(100vw - 12px);height:calc(100dvh - 16px)}.paper-export-dialog .dialog-footer{flex-wrap:wrap;padding:10px}.paper-export-dialog .dialog-footer .btn{padding:0 10px;font-size:11px}.paper-export-help{padding:10px;font-size:11px}}

.word-import-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 12px;padding:10px 12px;border:1px solid #dce7f5;border-radius:9px;background:#f7faff}.word-import-bar>span{font-size:12px;font-weight:600;margin-right:auto}.word-import-bar .btn{height:36px;min-height:36px;font-size:12px}.word-import-bar small{font-size:11px;color:#7890ac}.word-import-summary{border:1px solid #d5e3f5;border-radius:10px;padding:12px;background:#fff;margin:10px 0}.word-import-summary>strong{font-size:13px}.word-import-summary p,.word-import-summary li{font-size:12px;line-height:1.7}.word-import-summary details{padding:8px 0}.word-import-summary ul,.word-import-summary ol{max-height:220px;overflow:auto;padding-left:22px}.word-import-summary .actions{justify-content:flex-end;gap:8px;flex-wrap:wrap}.word-review-note{padding:8px 10px;margin:0 0 8px;border:1px solid #cbdff7;border-radius:6px;background:#f5f9ff;color:#2563a6;font-size:12px}@media(max-width:600px){.word-import-bar small{flex-basis:100%}.word-import-summary .actions .btn{font-size:11px}}

.exam-form-dialog .exam-file-picker{display:flex;align-items:center;flex-shrink:0;min-width:0}.exam-form-dialog .exam-file-trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;min-height:38px;margin:0;padding:0 12px;white-space:nowrap}.exam-file-trigger>svg{width:17px;height:17px;flex-shrink:0}.exam-file-trigger>.exam-file-chevron{width:14px;height:14px;margin-left:2px}.exam-file-trigger[aria-expanded=true]{border-color:#2563a6;background:#f2f7ff}.exam-file-picker>[hidden]{display:none!important}@media(max-width:760px){.exam-form-dialog .simple-import-bar .exam-file-picker{flex:1}.exam-form-dialog .exam-file-trigger{width:100%}}

/* Navigation contract shared by platform, center admin and student. */
.mobile-nav-toggle,.mobile-nav-backdrop{display:none}
.admin-workspace,.admin-workspace .workspace-main{min-width:0}
@media(max-width:1100px){
 body .admin-workspace,body.sidebar-collapsed .admin-workspace{display:block!important;grid-template-columns:minmax(0,1fr)!important;min-height:calc(100dvh - 60px)}
 body .admin-workspace .sidebar,body.sidebar-collapsed .admin-workspace .sidebar{position:fixed!important;inset:0 auto 0 0!important;display:flex!important;flex-direction:column;align-items:stretch;width:min(292px,85vw)!important;height:100dvh!important;max-height:100dvh!important;min-height:0;margin:0;padding:calc(12px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom))!important;overflow-x:hidden;overflow-y:auto!important;overscroll-behavior:contain;background:#fff;z-index:1201;visibility:hidden;transform:translateX(-100%);transition:transform .2s ease,visibility .2s;box-shadow:none;border:0!important;gap:2px}
 body.mobile-nav-open .admin-workspace .sidebar{visibility:visible;transform:translateX(0);box-shadow:8px 0 30px #20385622}
 body .admin-workspace .sidebar>.sidebar-top{display:flex!important;justify-content:space-between!important;position:static!important;margin:0 0 10px!important;padding:0 4px!important;min-height:44px}
 body .admin-workspace .sidebar .sidebar-caption{display:block!important;font-size:11px;letter-spacing:.1em}
 body .admin-workspace .sidebar>a{display:flex!important;align-items:center;justify-content:flex-start!important;gap:10px!important;padding:8px 12px!important;margin:0!important;min-height:44px!important;width:100%;flex:none;border-radius:8px}
 body .admin-workspace .sidebar>a>.sidebar-label{display:block!important;flex:1;text-align:left;font-size:13px;white-space:normal}
 body .admin-workspace .sidebar>a>.menu-icon{display:inline-flex!important;width:28px;height:28px;flex:0 0 28px}
 body .admin-workspace .sidebar .group-label{display:block!important;margin:12px 12px 5px;font-size:10px}
 .mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;padding:8px;border:1px solid #dce5f0;border-radius:9px;background:#fff;color:#365f98;cursor:pointer}
 .mobile-nav-toggle svg{width:22px;height:22px}
 .mobile-nav-backdrop{display:block;position:fixed;inset:0;width:100%;height:100dvh;margin:0;padding:0;background:#172c4b66;border:0;border-radius:0;z-index:1200;cursor:pointer}
 body.mobile-nav-open{overflow:hidden}
 body .admin-header{width:100%;min-width:0}
 body .admin-header nav{display:flex;gap:8px;min-width:0;height:60px;min-height:60px;padding-top:0;padding-bottom:0}
 body .admin-header .brand{min-width:0;max-width:none;flex:1;gap:7px}
 body .admin-header .brand>span:last-child{min-width:0;overflow:hidden}
 body .admin-header .brand strong{font-size:14px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body .admin-header .brand small{font-size:8px;white-space:nowrap}
 body .admin-header .center-logo,body .admin-header .brandmark{width:34px;height:34px;min-width:34px;flex:0 0 34px;object-fit:contain}
 body .admin-header .header-space{display:none}
 body .admin-header .header-tools{flex:none;gap:6px}
 body .admin-header .header-account>span:not(.avatar){display:none}
 body .admin-header nav>.brand~span:not(.header-space){display:none}
 body .admin-workspace .workspace-main{width:100%;margin:0;padding:18px 16px;box-sizing:border-box}
 body .student-workspace .exam-layout{min-width:0}
}
@media(max-width:600px){body .admin-header>.container,body .admin-header>nav.container{padding-left:10px;padding-right:10px}body .admin-workspace .workspace-main{padding:14px 10px}body .admin-header .header-account{display:none}body .admin-header nav>.btn{padding:0 10px;font-size:11px;flex:none}}
@media(prefers-reduced-motion:reduce){body .admin-workspace .sidebar{transition:none!important}}
/* Personal knowledge race */
.race-player{max-width:760px;margin:auto}.race-top{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#315f9e;font-size:13px;font-weight:700}.race-track{position:relative;height:82px;margin:20px 0 24px;border-radius:18px;background:linear-gradient(#e5f3ff 0 58%,#dce8f9 58% 100%);overflow:hidden}.race-track:after{content:'';position:absolute;left:0;right:0;bottom:15px;border-top:3px dashed #a6bdd8}.race-runner,.race-finish{position:absolute;z-index:1;bottom:8px;font-size:36px;transition:left .5s ease}.race-finish{right:10px}.race-player .activity-play-options button{min-height:48px}.race-player .activity-question{line-height:1.4}@media(max-width:600px){.race-top{font-size:11px}.race-track{height:68px}.race-runner,.race-finish{font-size:29px}.race-player .activity-play-options{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.race-runner{transition:none}}
.race-media{margin:10px 0;border:1px solid #d8e4f1;border-radius:9px;padding:10px 12px;background:#f8fbff}.race-media summary{cursor:pointer;color:#365f98;font-weight:600}.race-media-fields{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}.race-media-fields>div{flex:1 1 240px;min-width:0}.race-media-fields .btn{margin:0 5px 5px 0}.race-media-fields img{max-height:120px;max-width:100%;object-fit:contain}.race-media-fields audio,.race-question-audio{width:100%;max-width:450px}.race-question-image{display:block;max-width:100%;max-height:260px;object-fit:contain;margin:10px auto;border-radius:10px}.race-question-audio{display:block;margin:10px 0 16px}
/* Compact activity creation and game chooser. */
.game-choice-intro{font-size:13px;color:#71819a;margin:0 0 14px}.game-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.game-choice-card{display:flex;align-items:center;gap:14px;text-align:left;width:100%;min-height:104px;padding:16px;border:1px solid #dfe8f4;border-radius:12px;background:#fff;color:#293d58;cursor:pointer;transition:border-color .15s,background .15s}.game-choice-card:hover,.game-choice-card:focus-visible{border-color:#5b8dce;background:#f7faff}.game-choice-icon{display:grid;place-items:center;flex:0 0 58px;height:58px;border-radius:16px;color:#356fc1;background:#e8f2ff}.game-choice-icon.race{color:#3467b2;background:#e4edfc}.game-choice-icon svg{width:40px;height:40px}.game-choice-text{min-width:0;flex:1}.game-choice-text strong,.game-choice-text small{display:block}.game-choice-text strong{font-size:14px;margin-bottom:6px}.game-choice-text small{font-size:12px;color:#748297;line-height:1.45}.game-choice-arrow{font-size:24px;color:#9cb0cb}.activity-editor .activity-main-settings{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}.activity-editor .activity-content-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 12px}.activity-content-heading h3{margin:0}.activity-content-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.activity-content-actions .btn{margin:0;white-space:nowrap}.activity-editor #activity-file-preview:empty{display:none}.activity-editor .race-media-fields>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.activity-editor .race-media-fields .btn{margin:0!important}.activity-editor .race-media-fields .face-image-preview,.activity-editor .race-media-fields .face-audio-preview,.activity-editor .race-media-fields .face-record-status{flex-basis:100%}.activity-editor .flash-face-image .face-image-actions,.activity-editor .flash-face-sound .face-sound-actions{gap:8px}
@media(max-width:760px){.game-choice-grid{grid-template-columns:1fr}.game-choice-card{min-height:86px;padding:12px}.game-choice-icon{flex-basis:50px;height:50px}.game-choice-icon svg{width:34px;height:34px}.activity-editor .activity-main-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-content-heading h3{flex:1 1 100%}.activity-content-actions{justify-content:flex-start}.activity-content-actions .btn{font-size:11px;padding-left:10px;padding-right:10px}}
@media(max-width:420px){.activity-editor .activity-main-settings{grid-template-columns:1fr}.activity-content-actions{gap:6px}.activity-content-actions .btn{flex:1 1 auto}}
/* Stable activity dialogs: only the content scrolls, not the header. */
body .overlay .dialog:has(#activity-editor),body .overlay .dialog:has(.activity-player),body .overlay .dialog:has(.activity-result){width:min(1080px,calc(100vw - 32px));height:min(780px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden}
body .dialog:has(#activity-editor)>.dialog-body,body .dialog:has(.activity-player)>.dialog-body,body .dialog:has(.activity-result)>.dialog-body{flex:1 1 auto;min-height:0}
body .dialog:has(.activity-player)>.dialog-body{display:flex;overflow:hidden;padding:0}
body .dialog .activity-player{flex:1 1 auto;min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
body .dialog .activity-play-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body .dialog .activity-play-options button{min-width:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){body .overlay .dialog:has(#activity-editor),body .overlay .dialog:has(.activity-player),body .overlay .dialog:has(.activity-result){width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}body .dialog .activity-player{padding:14px}body .dialog .activity-play-options{gap:7px}body .dialog .activity-play-options button{padding:8px;gap:7px;font-size:12px}}
/* Playful, original activity visuals for Class Management. */
.race-player{max-width:800px;padding:24px 28px;color:#27405e}.race-top{display:flex;align-items:center;gap:12px}.race-eyebrow{font-size:11px;font-weight:800;letter-spacing:.09em;color:#3d73ba}.race-top strong{padding:6px 12px;border-radius:999px;color:#3264a6;background:#eaf2fd;font-size:12px}.race-track{height:118px;border:1px solid #cfe3f9;border-radius:18px;background:linear-gradient(180deg,#e6f5ff 0%,#edf8ff 65%,#d7e9f5 66%,#c8dceb 100%);margin:18px 0;isolation:isolate}.race-track:after{bottom:20px;border-top:3px dashed #fff;opacity:.9}.race-sun{position:absolute;top:13px;right:19%;width:25px;height:25px;border-radius:50%;background:#ffe4a5;box-shadow:0 0 0 7px #fff7d588}.race-hill{position:absolute;bottom:34px;width:42%;height:56px;background:#c9e7ee;border-radius:100% 100% 0 0}.race-hill-one{left:-5%}.race-hill-two{left:39%;height:42px;background:#bfe1e9}.race-runner{width:64px;height:48px;bottom:9px;z-index:3;animation:race-drive .6s cubic-bezier(.2,.7,.2,1) both}.race-runner svg{width:100%;height:100%;filter:drop-shadow(0 3px 2px #304b6830)}.race-finish{right:16px;bottom:8px;z-index:2;font-size:36px;color:#466b9e}.race-question-enter{animation:activity-enter .32s ease both}.race-question-count{display:inline-flex;margin:2px 0 10px;padding:4px 9px;border-radius:7px;background:#edf4fd;color:#5680b8;font-size:10px;font-weight:800;letter-spacing:.08em}.race-player .activity-question{margin:0 0 12px;font-size:20px;line-height:1.45;color:#253e61}.race-player .activity-play-options{gap:10px}.race-player .activity-play-options button{min-height:58px;background:#fff;border:1px solid #dbe7f5;box-shadow:0 3px 10px #355f9710;transition:background .15s,border-color .15s,transform .15s}.race-player .activity-play-options button:hover{border-color:#81a9db;background:#f4f9ff;transform:translateY(-1px)}.race-player .activity-play-options button:focus-visible{outline:2px solid #447fc8;outline-offset:2px}.race-player .activity-play-options button>span{background:#eaf2fd;color:#3c70b4;font-weight:700}.race-feedback{display:inline-flex;align-items:center;max-width:100%;margin:0 0 12px;padding:7px 12px;border-radius:9px;font-size:12px;font-weight:600;animation:activity-enter .3s ease both}.race-feedback.correct{background:#e7f3fe;color:#2c68a1}.race-feedback.incorrect{background:#fff2e8;color:#96602d}.game-card-enter{animation:activity-enter .3s ease both}.game-celebration{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:154px;margin:0 0 12px;padding:12px;border-radius:16px;background:linear-gradient(135deg,#eef7ff,#f5f0ff);text-align:center}.game-trophy{position:relative;z-index:1;display:grid;place-items:center;width:76px;height:76px;border-radius:24px;background:#fff;box-shadow:0 8px 22px #5477a420;animation:game-trophy-pop .6s cubic-bezier(.2,.8,.25,1.2) both}.game-trophy svg{width:58px;height:58px}.game-celebration p{position:relative;z-index:1;color:#31598c;font-weight:700;font-size:17px;margin:10px 0 0}.game-confetti{position:absolute;inset:0;pointer-events:none}.game-confetti i{position:absolute;left:calc(5% + var(--piece)*5%);top:-12px;width:7px;height:12px;border-radius:2px;background:#6da1df;animation:game-confetti-fall 1.3s ease-out both;animation-delay:calc(var(--piece)*.035s)}.game-confetti i:nth-child(3n){background:#f3bd62}.game-confetti i:nth-child(3n+1){background:#a88cda}
@keyframes activity-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes race-drive{from{left:var(--race-from);transform:translateY(-3px)}to{left:var(--race-to);transform:translateY(0)}}@keyframes game-trophy-pop{from{opacity:0;transform:translateY(16px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes game-confetti-fall{0%{opacity:0;transform:translateY(-12px) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translateY(170px) rotate(250deg)}}
@media(max-width:600px){.race-player{padding:16px}.race-track{height:90px}.race-hill{bottom:30px;height:42px}.race-hill-two{height:32px}.race-runner{width:53px;height:40px}.race-player .activity-question{font-size:17px}.race-player .activity-play-options button{min-height:50px}.game-celebration{min-height:135px}.game-celebration p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.race-runner,.race-question-enter,.race-feedback,.game-card-enter,.game-trophy,.game-confetti i{animation:none!important}.game-confetti{display:none}.race-player .activity-play-options button{transition:none}}
/* Keep the race content anchored at the top, including text-only questions. */
body .dialog .race-player{align-self:stretch;margin:0 auto;min-height:100%;padding-top:20px}.race-player .race-track{height:88px;margin:12px 0}.race-player .race-question-enter{margin-top:0}.race-player .activity-question{margin-top:0}.race-player .race-question-image{max-height:190px}.race-player .activity-play-options button{min-height:46px}.race-player .race-feedback{margin-bottom:8px}@media(max-width:600px){body .dialog .race-player{padding-top:12px}.race-player .race-track{height:75px;margin:10px 0}.race-player .race-question-image{max-height:150px}}
/* Flashcard presentation: clear content, gentle color and useful controls. */
body .dialog .flash-player{background:radial-gradient(ellipse at 50% 10%,#fff 0,#f5f9ff 52%,#edf4fe 100%);padding:22px max(24px,calc((100% - 820px)/2));color:#263d5b}
.flash-presentation-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #d6e6fa;border-radius:999px;background:#fff;color:#4278bd;font-size:10px;letter-spacing:.08em;font-weight:700}.flash-presentation-badge span{color:#f1b64e;font-size:15px;line-height:1}
.flash-player .flash-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.flash-player .flash-tools .btn{border:1px solid #d7e6f8;background:#fff;color:#3e679b;border-radius:9px;min-height:36px;padding:0 11px}.flash-player .flash-tools .btn[aria-pressed=true]{background:#e8f2ff;border-color:#bed7f4;color:#2d5e9b}.flash-player .flash-progress-heading{margin-top:18px;color:#7990ac}.flash-player .flash-progress-heading strong{color:#365e91;font-size:14px}.flash-player .flash-progress-heading strong span{color:#7890ae;font-size:12px}.flash-player .flash-progress{height:7px;background:#dce9f8}.flash-player .flash-progress>span{background:linear-gradient(90deg,#73a9e8,#3c79c8)}
.flash-player .flash-stage{margin:23px auto 18px;max-width:600px}.flash-player .flash-stage:before{background:#c9dcf5;transform:rotate(-2.4deg);inset:7px 14px -8px}.flash-player .flash-stage:after{background:#e0ebfa;transform:rotate(1.8deg);inset:3px 7px -4px}.flash-player .flash-card{height:clamp(260px,38dvh,360px);border-radius:20px}.flash-player .flash-face{border-radius:20px;border:1px solid #d7e6f7;background:linear-gradient(150deg,#fff 20%,#f4f9ff 100%);box-shadow:0 15px 40px #315d9820;padding:24px 28px}.flash-player .flash-front:before,.flash-player .flash-back:before{content:'✦';position:absolute;top:20px;right:24px;font-size:18px;color:#ecc36e;opacity:.8}.flash-player .flash-back{background:linear-gradient(145deg,#3672bc,#275692);border-color:#2d61a0;color:#fff}.flash-player .flash-face-label{font-size:10px;letter-spacing:.13em;font-weight:700;opacity:.72;color:#6185b3}.flash-player .flash-back .flash-face-label{color:#e2edff}.flash-player .flash-face strong{font-size:clamp(24px,3vw,36px);color:#273f60}.flash-player .flash-back strong{color:#fff}.flash-player .flash-face-hint{padding:6px 11px;border-radius:999px;background:#edf5ff;color:#567aa6;opacity:1}.flash-player .flash-back .flash-face-hint{background:#ffffff24;color:#fff}.flash-player .flash-face-hint svg{width:15px;height:15px}.flash-player .flash-card-controls{margin:18px 0 8px;gap:9px}.flash-player .flash-card-controls .btn{height:40px;min-height:40px;min-width:42px;border-radius:10px;background:#fff;border:1px solid #d5e4f5;color:#3a6da9}.flash-player .flash-card-controls .btn:hover{background:#eaf3ff;border-color:#a6c9ee}.flash-player .flash-card-controls .btn:disabled{opacity:.45}.flash-player .flash-card-position{color:#5d7799;font-size:12px;font-weight:600}.flash-player .flash-audio-status{text-align:center;color:#6780a1;font-size:11px}.flash-player>.flash-editor-return{margin:12px 0 0;padding:10px 0;background:transparent!important;border:0}
@media(max-width:600px){body .dialog .flash-player{padding:14px 14px 20px}.flash-player .flash-topline{align-items:flex-start;gap:10px}.flash-player .flash-tools{justify-content:flex-start}.flash-player .flash-tools .btn{font-size:10px;min-height:34px;padding:0 8px}.flash-player .flash-stage{margin:18px auto 12px}.flash-player .flash-card{height:clamp(230px,38dvh,310px)}.flash-player .flash-face{padding:18px}.flash-player .flash-face strong{font-size:clamp(22px,6vw,28px)}.flash-player .flash-card-controls{flex-wrap:wrap;margin:16px 0 8px}.flash-player>.flash-editor-return{margin:8px 0 0;padding:8px 0}}
@media(prefers-reduced-motion:reduce){.flash-player .flash-card-inner,.flash-player .flash-progress>span{transition:none!important}.flash-player .flash-card,.flash-player .game-card-enter{animation:none!important}}
/* Roomier flashcard presentation on classroom displays and tablets. */
body .dialog .flash-player{padding:32px max(32px,calc((100% - 1100px)/2)) 38px}
body #modal:fullscreen .flash-player,body #modal.flash-expanded .flash-player{padding:36px max(40px,calc((100vw - 1180px)/2)) 40px}
.flash-player .flash-topline{gap:24px;align-items:center}
.flash-player .flash-tools{gap:10px}
.flash-player .flash-tools .btn{min-height:42px;padding:0 15px;font-size:12px}
.flash-player .flash-presentation-badge{padding:9px 14px;font-size:11px}
.flash-player .flash-progress-heading{margin-top:28px}
.flash-player .flash-progress{margin-top:12px;height:8px}
.flash-player .flash-stage{width:100%;max-width:840px;margin:34px auto 26px}
.flash-player .flash-card{height:clamp(300px,42dvh,420px)}
body #modal:fullscreen .flash-player .flash-card,body #modal.flash-expanded .flash-player .flash-card{height:clamp(320px,45dvh,500px)}
.flash-player .flash-face{padding:32px 40px;gap:22px}
.flash-player .flash-face strong{font-size:clamp(28px,3.4vw,42px)}
.flash-player .flash-face img{max-height:min(42%,200px)}
.flash-player .flash-card-controls{gap:16px;margin:26px 0 12px}
.flash-player .flash-card-controls .btn{min-height:46px;height:46px;min-width:48px;padding:0 15px}
.flash-player .flash-card-position{min-width:96px;font-size:13px}
@media(max-width:900px){body .dialog .flash-player,body #modal:fullscreen .flash-player,body #modal.flash-expanded .flash-player{padding:24px 24px 32px}.flash-player .flash-stage{margin:28px auto 22px}.flash-player .flash-card-controls{gap:12px;margin-top:22px}}
@media(max-width:600px){body .dialog .flash-player,body #modal:fullscreen .flash-player,body #modal.flash-expanded .flash-player{padding:18px 16px 26px}.flash-player .flash-topline{gap:14px}.flash-player .flash-tools{gap:8px}.flash-player .flash-tools .btn{min-height:40px;padding:0 10px;font-size:11px}.flash-player .flash-progress-heading{margin-top:22px}.flash-player .flash-stage{margin:24px auto 20px}.flash-player .flash-card,body #modal:fullscreen .flash-player .flash-card,body #modal.flash-expanded .flash-player .flash-card{height:clamp(240px,38dvh,340px)}.flash-player .flash-face{padding:24px;gap:15px}.flash-player .flash-face strong{font-size:clamp(24px,6vw,32px)}.flash-player .flash-card-controls{gap:10px;margin:22px 0 8px}.flash-player .flash-card-controls .btn{min-height:44px;height:44px;min-width:44px;padding:0 12px}.flash-player .flash-card-position{min-width:75px;font-size:12px}}
.maze-player{max-width:920px;margin:0 auto;padding:22px 28px;color:#263e60;align-self:stretch}.maze-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#386eaf;font-size:12px;font-weight:800;letter-spacing:.06em}.maze-top strong{padding:6px 12px;border-radius:99px;background:#fff3d7;color:#946a20;letter-spacing:0}.maze-player h2{margin:3px 0 14px;font-size:20px;line-height:1.45}.maze-count{font-size:10px;color:#6787ae;font-weight:700;letter-spacing:.1em;margin:14px 0 6px}.maze-question-image{display:block;max-width:100%;max-height:145px;object-fit:contain;margin:8px 0;border-radius:9px}.maze-audio{width:100%;max-width:400px;margin:8px 0}.maze-layout{display:grid;grid-template-columns:minmax(260px,400px) minmax(170px,1fr);gap:24px;align-items:start}.maze-hint{font-size:12px;color:#72849b;line-height:1.5;margin:0 0 9px}.maze-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:9px;background:#d4e5f7;border:1px solid #b8d1ed;border-radius:14px;aspect-ratio:1}.maze-cell{display:grid;place-items:center;min-width:0;border-radius:6px;background:#f9fcff;color:#315d9c;aspect-ratio:1}.maze-cell.wall{background:#86add4;box-shadow:inset 0 2px #ffffff4a}.maze-cell.goal{background:#ffedc6;color:#825a10;border:2px solid #f0cb78;font-weight:800}.maze-cell.current{background:#deefff}.maze-avatar{width:62%;height:62%;display:grid;place-items:center;border-radius:50%;background:#3e78c5;color:#fff;font-size:20px;box-shadow:0 3px 0 #2a5997}.maze-answer-list{display:grid;gap:7px}.maze-answer-list>strong{color:#526e91;font-size:12px}.maze-answer-list>div{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px;border:1px solid #d8e5f4;border-radius:9px;background:#fff}.maze-answer-list span{display:grid;place-items:center;flex:0 0 30px;height:30px;background:#fff0cf;border-radius:8px;color:#8b651d;font-weight:700}.maze-answer-list p{margin:0;overflow-wrap:anywhere;font-size:13px}.maze-controls{display:flex;flex-direction:column;align-items:center;gap:5px;margin:12px 0}.maze-controls>div{display:flex;gap:5px}.maze-controls .btn{min-width:44px;min-height:44px;font-size:20px;padding:0;border-radius:9px}.maze-wall-setting{align-items:center;gap:12px}.game-choice-icon.maze{color:#4267ac;background:#eaf0ff}
@media(max-width:700px){.maze-player{padding:14px}.maze-layout{grid-template-columns:1fr;gap:12px}.maze-layout>div:first-child{max-width:340px;width:100%;margin:auto}.maze-answer-list{grid-template-columns:1fr 1fr}.maze-answer-list>strong{grid-column:1/-1}.maze-answer-list>div{min-width:0}.maze-board{gap:3px}.maze-player h2{font-size:17px}.maze-question-image{max-height:110px}}
/* Word maze: large playable cells and a compact, single-dialog layout. */
.maze-author-fields{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,1.4fr);gap:12px;margin:10px 0}.maze-author-fields label{min-width:0}.maze-author-fields input{width:100%;margin-top:5px}.maze-author-fields small{font-size:10px;color:#7d90a9;font-weight:400}
body .dialog .maze-compact{display:flex;flex-direction:column;align-self:stretch;width:100%;max-width:1050px;margin:0 auto;padding:14px 22px;min-height:0;overflow:auto}.maze-compact .maze-top{flex:none;margin-bottom:5px}.maze-compact .maze-top small{font-size:10px;letter-spacing:0;color:#728da9}.maze-compact .race-feedback{flex:none;margin:0 0 5px;padding:4px 9px}.maze-compact .maze-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:18px;align-items:center;flex:1 1 auto;min-height:0}.maze-main{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;min-width:0}.maze-question{width:100%;max-width:640px;text-align:center;flex:none}.maze-compact .maze-question h2{margin:0 0 5px;font-size:clamp(15px,2vw,20px);line-height:1.3;overflow-wrap:anywhere}.maze-compact .maze-question-image{display:inline-block;max-width:150px;max-height:58px;margin:3px;vertical-align:middle}.maze-compact .maze-audio{display:inline-block;max-width:250px;height:34px;margin:3px;vertical-align:middle}.maze-compact .maze-board{width:min(100%,max(180px,calc(100dvh - 270px)),500px);min-width:0;gap:4px;padding:8px;flex:none}.maze-compact .maze-cell{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.maze-compact .maze-cell.goal{background:#fff;border:1px solid #dfebf9}.maze-compact .maze-cell b{font-size:clamp(10px,1.3vw,16px);line-height:1.1;font-weight:700;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#365d91}.maze-compact .maze-cell.current{background:#dcecff;border:2px solid #6b9dd9}.maze-compact .maze-cell.current b{position:absolute;bottom:1px;font-size:9px;z-index:2;background:#ffffffde;border-radius:4px;padding:0 2px}.maze-compact .maze-avatar{width:78%;height:78%;border:0;background:none;box-shadow:none;display:block;z-index:1}.maze-compact .maze-avatar svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 2px #65453355)}.maze-side{display:flex;flex-direction:column;align-items:stretch;gap:9px;text-align:center}.maze-side .maze-hint{margin:0;font-size:12px}.maze-current{min-height:38px;padding:8px;border-radius:9px;background:#edf5ff;color:#436d9f;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.maze-compact .maze-controls{margin:0;gap:6px}.maze-compact .maze-controls>div{gap:6px}.maze-compact .maze-controls .btn{min-width:46px;min-height:46px;font-size:20px}.maze-side>[data-act=maze-choose]{min-height:44px}.maze-compact>.actions{flex:none;margin-top:8px}
@media(max-width:700px){.maze-author-fields{grid-template-columns:1fr;gap:8px}body .dialog .maze-compact{padding:10px 12px}.maze-compact .maze-layout{grid-template-columns:minmax(0,1fr) 120px;gap:9px}.maze-compact .maze-main{width:100%;max-width:none;margin:0}.maze-compact .maze-board{width:min(100%,max(160px,calc(100dvh - 260px)),400px);gap:2px;padding:5px}.maze-compact .maze-question h2{font-size:15px}.maze-compact .maze-controls .btn{min-width:36px;min-height:38px;font-size:17px}.maze-compact .maze-controls,.maze-compact .maze-controls>div{gap:3px}.maze-side .maze-hint{font-size:10px}.maze-current{font-size:11px;padding:6px}.maze-side>[data-act=maze-choose]{font-size:11px;padding:0 6px}.maze-compact .maze-cell b{font-size:clamp(9px,2.7vw,13px)}}
@media(max-width:340px){.maze-compact .maze-layout{grid-template-columns:minmax(0,1fr) 96px;gap:6px}.maze-compact .maze-controls .btn{min-width:30px;min-height:34px}.maze-compact .maze-board{gap:1px}}
/* Larger maze cells with readable labels and visible keyboard focus. */
.maze-compact .maze-board{width:min(100%,max(180px,calc(100dvh - 235px)),560px);gap:5px;padding:10px}.maze-compact .maze-board:focus-visible{outline:2px solid #3976bd;outline-offset:4px}.maze-compact .maze-cell b{white-space:normal;overflow-wrap:anywhere;text-align:center;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-height:1.1;font-size:clamp(10px,1.15vw,15px)}.maze-compact .maze-cell.current b{-webkit-line-clamp:1;max-width:96%}
@media(max-width:700px){.maze-compact .maze-board{width:min(100%,max(160px,calc(100dvh - 240px)),440px);gap:3px;padding:6px}.maze-compact .maze-cell b{font-size:clamp(9px,2.6vw,13px)}}
/* Thời gian và phản hồi gọn trong từng trò chơi */
.game-clock{display:inline-flex;align-items:center;white-space:nowrap;padding:5px 10px;border:1px solid #dceafa;border-radius:999px;background:#f4f9ff;color:#426b9f;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.maze-stats{display:flex;align-items:center;gap:8px}.maze-side .maze-answer-feedback{display:block;margin:0;padding:8px;border-radius:10px;animation:maze-feedback-pop .45s cubic-bezier(.2,.8,.3,1.2) both}.maze-side .maze-answer-feedback.incorrect{animation:maze-feedback-shake .45s ease both}@keyframes maze-feedback-pop{0%{opacity:0;transform:scale(.8) translateY(8px)}70%{opacity:1;transform:scale(1.06)}100%{transform:scale(1)}}@keyframes maze-feedback-shake{0%{opacity:0;transform:translateX(0)}25%{opacity:1;transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}100%{transform:translateX(0)}}.activity-detail-report{margin:20px 0}.activity-detail-report .table-wrap{max-width:100%}@media(prefers-reduced-motion:reduce){.maze-side .maze-answer-feedback{animation:none!important}}
/* Bộ lọc và bảng hoạt động */
.workspace-title .activity-title-action{margin-left:auto;flex:none}.activity-title-action .btn{white-space:nowrap}.activity-table th:last-child,.activity-table td:last-child{text-align:center}.activity-table .table-action-cell [data-activity-trigger]{display:inline-flex;justify-content:center}input[type="search"],input[placeholder*="Tìm"],input[placeholder*="tìm"]{background-color:#fff}@media(max-width:600px){.activity-title-action .btn{padding-inline:10px;font-size:12px}.workspace-title .activity-title-action{align-self:center}}
/* Cột tác vụ thẳng hàng và sát lề phải ở các bảng có menu. */
:is(.workspace,.dialog) table:has(td.table-action-cell){width:100%;table-layout:fixed}
:is(.workspace,.dialog) table:has(td.table-action-cell) th:last-child,:is(.workspace,.dialog) table:has(td.table-action-cell) td.table-action-cell{width:76px!important;text-align:right!important}
:is(.workspace,.dialog) table:has(td.table-action-cell) td.table-action-cell [data-activity-trigger]{display:inline-flex;justify-content:flex-end}
:is(.workspace,.dialog) table:has(td.table-action-cell) th:not(:last-child){width:auto!important}
.journey-stage-editor,.journey-question-editor{border:1px solid #dbe8f8;background:#fff;border-radius:12px;padding:14px;margin:12px 0}.journey-question-editor{background:#f7faff}.journey-stage-heading,.journey-question-heading,.journey-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.journey-stage-heading h3{margin:0}.journey-question-editor label,#journey-editor>label{display:block;margin:9px 0}.journey-question-editor textarea,.journey-question-editor input,.journey-stage-editor input,.journey-stage-editor select,#journey-editor>label input{width:100%}.journey-question-editor [hidden]{display:none!important}.journey-player{max-width:850px;margin:auto;padding:22px}.journey-progress{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.journey-stage-pill{padding:7px 10px;border-radius:20px;background:#edf5ff;color:#35699f;font-size:12px}.journey-stage-pill.current{background:#2e6db4;color:#fff}.journey-content h2{font-size:20px}.journey-content audio{max-width:100%;display:block;margin:10px 0}.journey-content .activity-play-options{grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0}.journey-content>label{display:block;margin:12px 0}.journey-hint{font-size:13px;color:#69809f}@media(max-width:600px){.journey-player{padding:14px}.journey-content .activity-play-options{grid-template-columns:1fr}.journey-stage-editor .form-grid{grid-template-columns:1fr}}
#journey-editor .journey-stage-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,190px) minmax(120px,165px);gap:10px;align-items:end}#journey-editor .journey-question-grid{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:end}#journey-editor textarea{min-height:44px;height:44px;resize:vertical}#journey-editor .journey-remove{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-height:38px;padding:8px;border:1px solid #e05252;background:#fff;color:#d93838;border-radius:8px}#journey-editor .journey-remove svg{width:20px;height:20px}#journey-editor .journey-remove:hover{background:#fff1f1}@media(max-width:650px){#journey-editor .journey-stage-grid,#journey-editor .journey-question-grid{grid-template-columns:1fr}#journey-editor textarea{min-height:44px}}
/* Chi tiết hoạt động rộng hơn; bảng có thể cuộn ngang trên màn hình nhỏ. */
.detail-overlay .dialog:has(.activity-detail-report){width:min(980px,96vw)!important;max-width:980px!important}.activity-detail-report .table-wrap{width:100%;overflow-x:auto}.activity-report-table{width:100%;min-width:650px;table-layout:auto}.activity-report-table th,.activity-report-table td{white-space:nowrap}.activity-report-table th:nth-child(2),.activity-report-table td:nth-child(2){white-space:normal;min-width:155px}@media(max-width:700px){.detail-overlay .dialog:has(.activity-detail-report){width:100vw!important;max-width:100vw!important}}
/* Hành trình riêng cho Vượt ải, giữ nội dung ở phía trên. */
body .dialog .journey-player{align-self:flex-start;max-width:900px;min-height:0;margin:0 auto;padding:20px 24px;color:#284365}.journey-adventure{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;min-height:112px;padding:15px 20px;border:1px solid #cbe0f6;border-radius:18px;background:linear-gradient(115deg,#eaf5ff 0%,#f1efff 67%,#fff7e3 100%)}.journey-compass{position:relative;z-index:1;flex:none;width:70px;height:70px;filter:drop-shadow(0 5px 8px #406b9d30);animation:journey-float 3s ease-in-out infinite}.journey-compass svg{width:100%;height:100%}.journey-adventure-copy{position:relative;z-index:1;display:grid;gap:4px}.journey-adventure-copy small{font-size:10px;font-weight:800;letter-spacing:.12em;color:#6988b4}.journey-adventure-copy strong{font-size:20px;color:#315d96}.journey-adventure-copy span{font-size:12px;color:#6d83a2}.journey-hills{position:absolute;right:-25px;bottom:-58px;width:210px;height:100px;border-radius:50%;background:#c7dbf5aa;box-shadow:-100px 25px 0 #d6cffa99}.journey-orbit{position:absolute;color:#edb55f;font-size:21px;animation:journey-sparkle 2s ease-in-out infinite}.journey-orbit-one{right:20%;top:18px}.journey-orbit-two{right:11%;top:35px;animation-delay:.5s}.journey-meter{height:7px;background:#e6effa;border-radius:20px;overflow:hidden;margin:12px 2px 0}.journey-meter>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#558cd1,#8f8edc);transition:width .4s ease}.journey-player .journey-content{padding:17px 19px;border:1px solid #dce9f8;border-radius:16px;background:#fff;box-shadow:0 5px 20px #3863960c;animation:activity-enter .35s ease both}.journey-player .journey-content h2{margin:8px 0 16px;line-height:1.4}.journey-player .activity-play-options button{border-radius:11px;border-color:#d8e7f7;background:#f8fbff}.journey-player .activity-play-options button:hover{border-color:#8bafe0;background:#eff6ff}.journey-player .activity-play-options button span{background:#e4eefc;color:#3970b4}.journey-player .activity-order-target{min-height:65px;border-color:#b8cfee;background:#f5f9ff}.journey-player .race-feedback{animation:journey-feedback .4s ease both}@keyframes journey-float{50%{transform:translateY(-5px) rotate(3deg)}}@keyframes journey-sparkle{50%{opacity:.45;transform:scale(.7)}}@keyframes journey-feedback{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){body .dialog .journey-player{padding:12px}.journey-adventure{padding:12px;min-height:86px}.journey-compass{width:52px;height:52px}.journey-adventure-copy strong{font-size:16px}.journey-adventure-copy span{font-size:11px}.journey-player .journey-content{padding:13px}}@media(prefers-reduced-motion:reduce){.journey-compass,.journey-orbit,.journey-player .journey-content,.journey-player .race-feedback{animation:none!important}.journey-meter>span{transition:none}}
.crossword-editor-row{padding:12px;border:1px solid #d9e6f5;border-radius:12px;margin:10px 0}.crossword-editor-row-head,.crossword-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.crossword-editor-row label,#crossword-editor>label{display:block;margin:8px 0}.crossword-editor-row input,#crossword-editor>label input{width:100%}.crossword-editor-fields{display:grid;grid-template-columns:1fr 180px;gap:10px}.crossword-editor-row .journey-remove{width:38px;height:38px;padding:8px;border:1px solid #df5050;color:#d93838;background:white}.crossword-editor-row .journey-remove svg{width:20px}.crossword-help{font-size:12px;color:#69809d}.dialog .crossword-player{align-self:flex-start;width:100%;max-width:1100px;margin:0 auto;padding:20px;color:#29476c}.crossword-top h2{margin:3px 0 12px;font-size:22px}.crossword-top small,.crossword-clue-tag{color:#4076b6;font-size:10px;font-weight:800;letter-spacing:.1em}.crossword-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);gap:20px;align-items:start}.crossword-board{overflow-x:auto;border-radius:16px;background:linear-gradient(135deg,#eff8ff,#e0edff);padding:14px}.crossword-row{display:flex;align-items:center;gap:7px;background:transparent;padding:3px;width:max-content;cursor:pointer}.crossword-row.selected .crossword-cell:not(.empty){border-color:#6999d4}.crossword-number{display:grid;place-items:center;flex:none;width:25px;height:25px;background:#fff;border-radius:50%;color:#3d77bb;font-weight:700;font-size:12px}.crossword-cells{display:grid;grid-template-columns:repeat(var(--columns),34px);gap:3px}.crossword-cell{display:grid;place-items:center;width:34px;height:34px;border:1px solid #bcd5f0;border-radius:6px;background:#fff;color:#285588;font-weight:800;font-size:15px}.crossword-cell.secret{background:#ffdc7a;border-color:#e8bb50}.crossword-cell.empty{visibility:hidden}.crossword-clue{padding:18px;border:1px solid #dbe8f5;background:white;border-radius:16px}.crossword-clue h3{margin:10px 0;font-size:18px;line-height:1.45}.crossword-clue label{display:block;margin:12px 0 5px}.crossword-clue input{width:100%;text-transform:uppercase}.crossword-clue .btn{margin-top:10px;width:100%}@media(max-width:700px){.crossword-layout{grid-template-columns:1fr}.dialog .crossword-player{padding:12px}.crossword-cells{grid-template-columns:repeat(var(--columns),30px)}.crossword-cell{width:30px;height:30px}.crossword-editor-fields{grid-template-columns:1fr}}
.journey-player .journey-top{margin-bottom:14px}.journey-player .activity-order-target button,.journey-player .activity-order-bank button{will-change:transform}.journey-player .activity-order-target button:focus-visible,.journey-player .activity-order-bank button:focus-visible{outline:2px solid #4e82c4;outline-offset:2px}@media(max-width:600px){.journey-player .journey-top{margin-bottom:12px}}
/* Ô chữ giao nhau; các chữ bí mật được gom thành dải theo thứ tự câu. */
.crossword-intersecting-grid{display:grid;grid-template-columns:repeat(var(--cw-cols),34px);grid-template-rows:repeat(var(--cw-rows),34px);gap:2px;width:max-content;margin:2px auto 16px}.crossword-grid-cell{position:relative;display:grid;place-items:center;width:34px;height:34px;padding:0;background:#fff;border:1px solid #accbe9;border-radius:5px;color:#285588;font-size:15px;font-weight:800;cursor:pointer}.crossword-grid-cell.secret{background:#ffdf86;border-color:#e8b94a}.crossword-grid-cell.selected{outline:2px solid #4282cd;outline-offset:-2px}.crossword-grid-cell small{position:absolute;top:1px;left:3px;font-size:8px;line-height:1;color:#6383a8}.crossword-legend{display:flex;flex-wrap:wrap;gap:5px;min-width:0;margin:10px 0}.crossword-legend button{padding:5px 8px;border-radius:7px;background:#fff;color:#45688f;border:1px solid #d2e3f5;font-size:11px;text-align:left;cursor:pointer}.crossword-legend button.selected{border-color:#568acf;background:#e4f0ff}.crossword-legend button:disabled{opacity:.65;cursor:default}.crossword-secret-strip{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12px;color:#6c592b}.crossword-secret-strip>div{display:flex;flex-wrap:wrap;gap:3px}.crossword-secret-strip span{display:grid;place-items:center;width:30px;height:30px;background:#ffdf86;border:1px solid #e8b94a;border-radius:5px;font-weight:800;color:#75561e}@media(max-width:700px){.crossword-intersecting-grid{grid-template-columns:repeat(var(--cw-cols),30px);grid-template-rows:repeat(var(--cw-rows),30px)}.crossword-grid-cell{width:30px;height:30px}}
/* Ô chữ: tách danh sách gợi ý và ô đoán nhanh khỏi lưới. */
.dialog .crossword-player{max-width:1380px;padding:26px}.crossword-layout{grid-template-columns:minmax(190px,240px) minmax(320px,1fr) minmax(250px,300px);gap:22px;align-items:start}.crossword-board{padding:24px;min-width:0}.crossword-clue-list,.crossword-clue{border:1px solid #dbe8f5;border-radius:18px;background:#fff;padding:20px}.crossword-clue-list h3{margin:0;font-size:16px;color:#355d8c}.crossword-clue-list>p{font-size:11px;color:#7b90aa;margin:5px 0 12px}.crossword-legend{display:flex;flex-direction:column;gap:8px;margin:0;max-height:440px;overflow-y:auto}.crossword-legend button{display:flex;align-items:center;gap:9px;width:100%;padding:10px;border-radius:10px;line-height:1.4}.crossword-legend button span{display:grid;place-items:center;width:25px;height:25px;flex:none;border-radius:50%;background:#e8f1fc;color:#3b70ae}.crossword-quick-key{border-top:1px solid #e1ebf6;margin-top:20px;padding-top:14px}.crossword-quick-key h3{color:#966c22}.crossword-quick-key .btn{background:#c9942f;border-color:#c9942f}.crossword-grid-cell{transition:background-color .2s,border-color .2s,transform .2s;animation:crossword-appear .34s ease both}.crossword-grid-cell:hover{transform:translateY(-2px);border-color:#5286c3}.crossword-grid-cell.secret{animation:crossword-glow 2.8s ease-in-out infinite}.crossword-secret-strip span:not(:empty){animation:crossword-reveal .35s cubic-bezier(.2,.8,.3,1.2) both}@keyframes crossword-appear{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@keyframes crossword-glow{50%{background:#ffedb4}}@keyframes crossword-reveal{from{transform:scale(.65);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:1050px){.crossword-layout{grid-template-columns:minmax(170px,220px) minmax(0,1fr)}.crossword-clue{grid-column:1/-1}}@media(max-width:700px){.dialog .crossword-player{padding:14px}.crossword-layout{grid-template-columns:1fr;gap:14px}.crossword-clue{grid-column:auto}.crossword-board{padding:16px}.crossword-legend{max-height:210px}}@media(prefers-reduced-motion:reduce){.crossword-grid-cell,.crossword-grid-cell.secret,.crossword-secret-strip span{animation:none!important;transition:none}}
.crossword-secret-strip{display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:100%;overflow-x:auto;padding:4px 0 8px}.crossword-secret-strip>div{display:flex;flex-wrap:nowrap;width:max-content;gap:4px}.crossword-secret-strip span{flex:0 0 30px}.cw-key-letter{display:inline-grid;place-items:center;min-width:25px;height:25px;border-radius:7px;background:#ffdf86;color:#805e19}.crossword-editor-row[hidden]{display:none!important}.crossword-grid-cell.secret{animation:crossword-highlight 1.8s ease-in-out infinite}.crossword-grid-cell.selected{animation:crossword-selected .45s ease both}.crossword-clue{animation:crossword-clue-enter .3s ease both}.crossword-quick-key .btn:hover{transform:translateY(-2px);transition:transform .2s}.crossword-intersecting-grid .crossword-grid-cell span:not(:empty){animation:crossword-letter-pop .45s cubic-bezier(.2,.8,.25,1.3) both}@keyframes crossword-highlight{50%{box-shadow:0 0 0 4px #f6c95a55;background:#fff0be}}@keyframes crossword-selected{0%{transform:scale(.9)}65%{transform:scale(1.08)}100%{transform:scale(1)}}@keyframes crossword-clue-enter{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes crossword-letter-pop{from{opacity:0;transform:scale(.4) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(prefers-reduced-motion:reduce){.crossword-grid-cell.secret,.crossword-grid-cell.selected,.crossword-clue,.crossword-intersecting-grid .crossword-grid-cell span{animation:none!important}.crossword-quick-key .btn:hover{transform:none}}
/* Phản hồi ngay khi đang gửi câu trả lời; kết quả vẫn do máy chủ chấm. */
.activity-play-options button.answer-pending,.activity-play-options button.is-loading{border-color:#4e87cc;background:#eaf3ff;opacity:.8;cursor:wait}.activity-play-options button.answer-pending::after,.activity-play-options button.is-loading::after{content:'';display:inline-block;width:15px;height:15px;margin-left:auto;border:2px solid #7ea5d7;border-right-color:transparent;border-radius:50%;animation:portal-spin .7s linear infinite}@media(prefers-reduced-motion:reduce){.activity-play-options button.answer-pending::after,.activity-play-options button.is-loading::after{animation:none}}
.activity-exit-overlay{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;padding:18px;background:#19365777}.activity-exit-dialog{width:min(440px,100%);padding:24px;border-radius:16px;background:#fff;box-shadow:0 15px 48px #102e5240;color:#294365}.activity-exit-dialog h2{margin:8px 0;font-size:20px}.activity-exit-dialog p{line-height:1.6;color:#647a98}.activity-exit-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#a16e13;background:#fff2ce;font-size:22px;font-weight:700}.activity-exit-dialog .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}

/* Feedback on each student answer */
.activity-review .activity-review-item{border-radius:10px;padding:12px 14px;margin:8px 0;border:1px solid}
.activity-review .activity-review-item.is-correct{color:#176538;background:#effaf2;border-color:#b9e5c5}
.activity-review .activity-review-item.is-incorrect{color:#a32b2b;background:#fff2f2;border-color:#efc1c1}
.activity-review .activity-review-item p{margin:6px 0 0;color:inherit;overflow-wrap:anywhere}

/* Activity report tabs and student ranking columns */
.activity-report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:7px;min-width:0}
.activity-report-toolbar .cm-tabs{border:0;margin:0;padding:0;min-width:0;flex:1}
.activity-report-toolbar .filters{margin:0;flex:none}
.activity-report-toolbar select{width:190px;max-width:100%;background-color:#fff}
.activity-students-table{table-layout:fixed;min-width:590px}
.activity-students-table .report-rank-col{width:68px}
.activity-students-table .report-name-col{width:auto}
.activity-students-table .report-status-col{width:150px}
.activity-students-table .report-attempt-col{width:88px}
.activity-students-table .report-score-col{width:125px}
.activity-students-table th:nth-child(2),.activity-students-table td:nth-child(2){min-width:0}
.activity-students-table.with-rank th:nth-child(2),.activity-students-table.with-rank td:nth-child(2),.activity-students-table.without-rank th:first-child,.activity-students-table.without-rank td:first-child{white-space:normal;overflow-wrap:anywhere}
@media(max-width:560px){.activity-report-toolbar{flex-wrap:wrap}.activity-report-toolbar .cm-tabs{flex:1 1 100%}.activity-report-toolbar .filters{width:100%}.activity-report-toolbar select{width:100%}}

/* Keep the secret column connected and the play area within the viewport. */
body .dialog:has(.crossword-player){width:min(1500px,calc(100vw - 32px))!important;max-width:1500px!important;height:min(920px,calc(100dvh - 32px))}
body .dialog:has(.crossword-player)>.dialog-body{overflow:hidden}
.dialog .crossword-player{max-width:none;padding:12px 18px;min-height:0;height:100%;overflow:auto}
.crossword-top h2{font-size:19px;margin:1px 0 8px}
.crossword-layout{grid-template-columns:minmax(170px,220px) minmax(260px,1fr) minmax(240px,300px);gap:14px;align-items:start}
.crossword-board{container-type:inline-size;padding:12px;overflow:visible;min-width:0}
.crossword-intersecting-grid{--cw-cell:min(34px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 280px) / var(--cw-rows)));grid-template-columns:repeat(var(--cw-cols),var(--cw-cell));grid-template-rows:repeat(var(--cw-rows),var(--cw-cell));gap:2px;margin:0 auto 8px}
.crossword-grid-cell{width:var(--cw-cell);height:var(--cw-cell);font-size:clamp(10px,calc(var(--cw-cell) * .46),15px)}
.crossword-grid-cell small{font-size:clamp(6px,calc(var(--cw-cell) * .23),8px);left:2px}
.crossword-secret-strip{gap:3px;margin-top:4px;padding:0;overflow:visible}
.crossword-secret-strip>div{gap:2px;max-width:100%}
.crossword-secret-strip span{width:min(30px,calc((100cqw - 52px) / var(--cw-count)));height:min(30px,calc((100cqw - 52px) / var(--cw-count)));flex:0 0 min(30px,calc((100cqw - 52px) / var(--cw-count)));font-size:12px}
.crossword-clue-list,.crossword-clue{padding:14px}
.crossword-legend{max-height:calc(100dvh - 255px);gap:5px}
.crossword-legend button{padding:6px 8px;min-height:36px}
.crossword-quick-key{margin-top:12px;padding-top:10px}
.crossword-clue h3{margin:6px 0;font-size:16px}
.crossword-clue label{margin:6px 0 3px}
.crossword-clue .btn{margin-top:6px}
@media(max-width:900px){.crossword-layout{grid-template-columns:minmax(140px,190px) minmax(250px,1fr);gap:10px}.crossword-clue{grid-column:1/-1}.dialog .crossword-player{overflow-y:auto}.crossword-board{overflow-x:auto}}
@media(max-width:600px){body .dialog:has(.crossword-player){width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)}.crossword-layout{grid-template-columns:1fr}.crossword-clue{grid-column:auto}.crossword-legend{max-height:140px}.crossword-intersecting-grid{--cw-cell:min(32px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 280px) / var(--cw-rows)))}}
@media(min-width:901px) and (min-height:600px){
 body .dialog .crossword-player:has(.crossword-layout){overflow:hidden}
 .crossword-layout{max-height:calc(100dvh - 180px)}
 .crossword-clue{max-height:calc(100dvh - 200px);overflow-y:auto}
}
/* Crossword board and clues side by side; answers remain at the bottom. */
.crossword-layout{grid-template-columns:minmax(280px,1.5fr) minmax(240px,1fr);gap:16px;align-items:stretch}
.crossword-clue-list{min-width:0;max-height:calc(100dvh - 310px);display:flex;flex-direction:column}
.crossword-legend{max-height:none;min-height:0;overflow-y:auto}
.crossword-board{display:flex;flex-direction:column;justify-content:center}
.crossword-intersecting-grid{--cw-cell:min(34px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 360px) / var(--cw-rows)))}
.crossword-answer-bar{display:flex;align-items:end;gap:16px;padding:12px 0 0;margin-top:12px;border-top:1px solid #dce8f5;flex-wrap:wrap}
.crossword-answer-field{flex:1 1 280px;min-width:0}
.crossword-answer-field label{display:block;color:#56708f;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crossword-answer-field>div{display:flex;gap:8px;align-items:center}
.crossword-answer-field input{min-width:0;flex:1;text-transform:uppercase}
.crossword-answer-field .btn{flex:none;white-space:nowrap}
.crossword-key-field .btn{background:#c9942f;border-color:#c9942f}
.crossword-answer-bar .race-feedback{flex-basis:100%;margin:0}
@media(max-width:900px){.crossword-layout{grid-template-columns:minmax(220px,1fr) minmax(170px,.8fr)}.crossword-clue-list{max-height:45dvh}.crossword-intersecting-grid{--cw-cell:min(32px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 340px) / var(--cw-rows)))}}
@media(max-width:600px){.crossword-layout{grid-template-columns:1fr}.crossword-clue-list{max-height:170px}.crossword-answer-bar{position:relative;gap:8px}.crossword-answer-field{flex-basis:100%}.crossword-intersecting-grid{--cw-cell:min(32px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 320px) / var(--cw-rows)))}}

/* An academic, focused surface for the crossword. */
.crossword-board{position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:8px;padding:16px 18px 12px;border:1px solid #d2e4f5;border-radius:18px;background:radial-gradient(ellipse at 8% 0%,#fff 0%,transparent 42%),linear-gradient(135deg,#edf6ff,#e3effb);box-shadow:inset 0 1px 0 #fff,0 8px 22px #345c8b0d}
.crossword-board-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding-bottom:9px;border-bottom:1px solid #c9deef}
.crossword-board-heading>div{display:flex;flex-direction:column;gap:1px}
.crossword-board-eyebrow{font-size:9px;letter-spacing:.15em;font-weight:800;color:#688caf}
.crossword-board-heading strong{font-size:15px;line-height:1.25;color:#284d77}
.crossword-board-progress{flex:none;border:1px solid #d4e5f5;background:#ffffffd9;color:#52769c;border-radius:999px;padding:4px 10px;font-size:10px;font-weight:700}
.crossword-board-canvas{display:grid;place-items:center;min-width:0;flex:1;padding:4px 0;background-image:radial-gradient(#8bb3d62b .7px,transparent .7px);background-size:14px 14px;border-radius:12px}
.crossword-intersecting-grid{--cw-cell:min(34px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 410px) / var(--cw-rows)));margin:0 auto}
.crossword-grid-cell{border-color:#a9c7e5;border-radius:7px;box-shadow:0 2px 5px #47719e13;color:#234b78}
.crossword-grid-cell.secret{background:#ffe497;border-color:#d7a943;color:#714d10}
.crossword-grid-cell.selected{outline:2px solid #357ad1;outline-offset:-2px;background:#f8fbff}
.crossword-grid-cell.secret.selected{background:#ffdf7e}
.crossword-board-note{display:flex;align-items:center;justify-content:center;gap:7px;color:#6884a1;font-size:10px;font-weight:600}
.crossword-key-swatch{width:12px;height:12px;border-radius:4px;border:1px solid #d7a943;background:#ffe497;flex:none}
.crossword-clue-list{box-shadow:0 8px 22px #345c8b0b}
.crossword-legend button.selected{background:#eaf3ff;border-color:#6799d4;box-shadow:inset 3px 0 #4e87cb}
@media(max-width:900px){.crossword-intersecting-grid{--cw-cell:min(32px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 380px) / var(--cw-rows)))}}
@media(max-width:600px){.crossword-board{padding:12px}.crossword-intersecting-grid{--cw-cell:min(32px,calc((100cqw - 66px) / var(--cw-cols)),calc((100dvh - 340px) / var(--cw-rows)))}}

/* Keep crossword controls visible; show errors without moving the layout. */
.crossword-answer-bar{position:relative;flex:0 0 auto}
.crossword-inline-feedback{position:absolute;right:0;bottom:calc(100% + 5px);z-index:3;max-width:min(100%,420px);margin:0;padding:7px 11px;border:1px solid #edc3bf;border-radius:9px;background:#fff6f4;color:#a13b32;font-size:11px;font-weight:600;box-shadow:0 4px 16px #753a3214}
.crossword-inline-feedback:empty{display:none}
.crossword-grid-cell.crossword-just-filled{animation:crossword-soft-fill .5s ease-out both}
@keyframes crossword-soft-fill{0%{transform:scale(.93);filter:brightness(1.12)}55%{transform:scale(1.04)}100%{transform:scale(1);filter:none}}
@media(min-width:901px) and (min-height:600px){
 body .dialog .crossword-player:has(.crossword-layout){display:flex;flex-direction:column;overflow:hidden}
 .crossword-player .crossword-top,.crossword-player>.actions{flex:0 0 auto}
 .crossword-player .crossword-layout{flex:1 1 0;min-height:0;max-height:none;overflow:hidden;align-items:stretch}
 .crossword-player .crossword-board,.crossword-player .crossword-clue-list{min-height:0;height:100%;max-height:none}
 .crossword-player .crossword-board-canvas{min-height:0;overflow:auto}
 .crossword-player .crossword-legend{flex:1;min-height:0}
}
@media(prefers-reduced-motion:reduce){.crossword-grid-cell.crossword-just-filled{animation:none!important}}

/* Shared full-screen control for activity players. */
body .dialog:has(.activity-player){position:relative}
body .dialog:has(.activity-player) .dialog-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:44px}
.activity-fullscreen-toggle{position:absolute;z-index:12;top:17px;right:62px;display:grid;place-items:center;width:36px;height:36px;padding:8px;color:#547397;border:1px solid #d7e2ed;border-radius:9px;background:#fff}
.activity-fullscreen-toggle:hover{color:#2469b0;border-color:#9cc0e9;background:#eff6ff}
.activity-fullscreen-toggle svg{width:19px;height:19px}
body #modal:fullscreen,body #modal.activity-expanded{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;background:#f5f9ff;z-index:15000}
body #modal:fullscreen>.dialog:has(.activity-player),body #modal.activity-expanded>.dialog:has(.activity-player){width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;border:0;border-radius:0}
body #modal:fullscreen .activity-exit-overlay{position:fixed;inset:0;z-index:30000}
@media(max-width:600px){.activity-fullscreen-toggle{right:52px;width:34px;height:34px}body .dialog:has(.activity-player) .dialog-head h2{padding-right:38px}}
