@font-face{font-family:Local;src:local('Aptos'),local('Segoe UI')}*{box-sizing:border-box} :root{--bg:#faf9fc;--card:#fff;--text:#21182d;--muted:#6e6578;--primary:#7529c4;--soft:#f3ebfc;--border:#e6dfed;--success:#176a49;--success-bg:#e8f6ee;--danger:#a82e42;--danger-bg:#fff0f2;--blue:#27528e;--shadow:0 5px 26px #21182d06;--warning:#84500a;color-scheme:light}html[data-theme=dark]{--bg:#15111d;--card:#211b2c;--text:#f5effc;--muted:#beb2cd;--primary:#bd86fa;--soft:#362346;--border:#44354f;--success:#85dbb2;--success-bg:#173a2c;--danger:#ffa5b4;--danger-bg:#43212c;--blue:#a1c8ff;--warning:#ffd495;--shadow:none;color-scheme:dark}body{margin:0;font:16px/1.6 Local,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:default}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--primary);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,3.3vw,42px);font-weight:650;letter-spacing:-1.3px;line-height:1.18}h2{font-size:23px;font-weight:650;letter-spacing:-.5px}h3{font-size:18px;line-height:1.4}p{margin:10px 0}small,.muted{color:var(--muted)}small{font-size:13px}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:750;color:var(--primary)}.app-shell{display:grid;grid-template-columns:242px 1fr;min-height:100vh}.sidebar{position:fixed;width:242px;inset:0 auto 0 0;background:var(--card);border-right:1px solid var(--border);padding:32px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:800;letter-spacing:2px;font-size:18px}.brand img{width:40px;height:40px;border-radius:12px;object-fit:cover}.brand small{display:block;font-size:8px;letter-spacing:2.4px;font-weight:600}.nav-label{font-size:10px;letter-spacing:1.8px;color:var(--muted);margin:38px 14px 10px}.nav-link{display:flex;gap:12px;align-items:center;padding:11px 14px;margin:3px 0;color:var(--muted);border-radius:10px;font-size:14px;font-weight:550;min-height:46px}.nav-link:hover{text-decoration:none;background:var(--bg);color:var(--primary)}.nav-link.active{background:var(--soft);color:var(--primary)}.icon{font-size:19px;width:22px;display:inline-block;text-align:center}.sidebar-foot{margin-top:auto;padding-top:30px}.sidebar-note{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px;font-size:12px;color:var(--muted)}.workspace{grid-column:2;min-width:0}.topbar{height:85px;padding:0 46px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--card);gap:15px}.breadcrumb{font-size:13px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:20px}.avatar{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:var(--soft);font-size:13px;font-weight:700;color:var(--primary)}.user-chip{display:flex;gap:10px;align-items:center;font-size:13px}.top-link{color:var(--muted);font-size:13px}.content{max-width:1260px;margin:0 auto;padding:40px 46px 70px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.page-heading p{color:var(--muted);font-size:14px;margin:12px 0 0}.badge{display:inline-flex;align-items:center;gap:7px;border-radius:20px;padding:5px 11px;background:var(--soft);color:var(--primary);font-size:11px;font-weight:700;white-space:nowrap}.badge.blue{background:#eaf0fa;color:#245190}.badge.green{background:var(--success-bg);color:var(--success)}.badge.neutral{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.grid{display:grid;gap:22px}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.main-grid{grid-template-columns:minmax(0,1.85fr) minmax(270px,1fr);align-items:start}.stack{display:grid;gap:22px}.card{background:var(--card);border:1px solid var(--border);border-radius:17px;padding:25px;box-shadow:var(--shadow)}.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#34135d,#692baa 70%,#8141b8);color:white;border:0;padding:30px 32px;min-height:263px}.hero .eyebrow{color:#d8b5fc}.hero h2{font-size:29px;max-width:330px;margin:15px 0 8px;line-height:1.2}.hero p{color:#e1cef2;max-width:360px;font-size:14px}.hero .hero-line{margin-top:27px;display:flex;gap:18px;align-items:center}.hero .orb{position:absolute;right:-35px;top:25px;width:200px;height:200px;border:1px solid #ffffff1b;border-radius:50%;pointer-events:none}.hero .orb:before,.hero .orb:after{content:'';position:absolute;border:1px solid #ffffff20;inset:25px;border-radius:50%}.hero .orb:after{inset:50px}.hero-label{color:#e4cef9;font-size:12px}.button,button.primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--primary);color:var(--card);padding:11px 19px;border-radius:9px;font-weight:650;font-size:14px;min-height:45px;text-decoration:none}.button:hover{text-decoration:none;filter:brightness(1.06)}.hero .button{background:#fff;color:#542080}.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--card);border:1px solid var(--border);color:var(--text);padding:10px 15px;border-radius:9px;min-height:44px;font-size:14px}.quiet{background:transparent;color:var(--muted);font-size:13px;padding:8px 0;min-height:44px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.section-head a{font-size:12px;font-weight:650}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:23px 0}.stat{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:19px 21px}.stat strong{font-size:26px;font-weight:650;display:block;line-height:1.3;margin-top:9px}.stat small{font-size:12px}.stat .symbol{font-size:17px;color:var(--primary)}.list-row{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.list-row>div.grow{flex:1;min-width:0}.list-row h3{font-size:14px}.list-row p{margin:3px 0 0;font-size:12px;color:var(--muted)}.tile-icon{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;border-radius:12px;color:var(--primary);background:var(--soft);font-size:19px}.row-end{margin-left:auto}.day-plan{display:flex;gap:8px;margin:18px 0}.day-plan button{flex:1}.day-plan .selected{color:var(--primary);background:var(--soft);border-color:var(--primary)}.week{display:flex;justify-content:space-between;gap:5px;margin-top:20px}.week span{display:flex;flex-direction:column;align-items:center;font-size:10px;color:var(--muted);gap:7px}.week b{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1px solid var(--border);font-size:11px}.week b.done{background:var(--primary);color:var(--card);border-color:var(--primary)}.progress{width:100%;height:6px;border-radius:6px;overflow:hidden;background:var(--soft);margin:16px 0}.progress progress{width:100%;height:6px;appearance:none;display:block}.progress progress::-webkit-progress-bar{background:var(--soft)}.progress progress::-webkit-progress-value{background:var(--primary);border-radius:6px}.footer-note{margin-top:30px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-art{background:#3c1763;color:white;padding:64px;display:flex;flex-direction:column;justify-content:space-between}.auth-art .brand{color:white}.auth-art h1{font-size:54px;max-width:450px}.auth-art p{color:#ddc7f1;max-width:390px}.auth-art .eyebrow{color:#cda6ed}.auth-form{display:grid;place-items:center;padding:35px}.auth-form .inner{width:100%;max-width:400px}.auth-form h1{font-size:32px}.auth-tabs,.tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin:24px 0;overflow:auto}.tab{padding:11px 15px;white-space:nowrap;color:var(--muted);background:transparent;border-bottom:3px solid transparent;border-radius:0;font-size:14px}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}label{display:block;font-size:13px;font-weight:650;margin:14px 0 5px}input,select,textarea{width:100%;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:11px 13px;min-height:46px}textarea{min-height:110px;resize:vertical}input[type=checkbox]{width:20px;min-height:20px;margin-right:8px;accent-color:var(--primary)}.check-label{display:flex;align-items:center;font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{margin-top:0}.full{width:100%}.alert{border-radius:10px;padding:13px 16px;background:var(--soft);font-size:14px;color:var(--primary);margin:15px 0}.error{background:var(--danger-bg);color:var(--danger)}.success{background:var(--success-bg);color:var(--success)}.empty{padding:32px 20px;text-align:center;color:var(--muted)}.roadmap-unit{margin-bottom:28px}.lesson-item{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:16px;padding:22px;border:1px solid var(--border);border-radius:13px;background:var(--card);margin-top:10px}.lesson-item.locked{background:var(--bg)}.lesson-item h3{font-size:16px}.lesson-item p{font-size:13px;color:var(--muted);margin:4px 0}.reader{max-width:790px;margin:auto}.reader .card{padding:35px}.reading-block{margin-bottom:23px;font-size:18px;line-height:1.8}.reading-block.example{padding:18px 22px;border-left:3px solid var(--primary);background:var(--soft);border-radius:0 10px 10px 0}.reading-block.note{font-size:15px;color:var(--muted)}.reading-block.heading{font-weight:650;font-size:23px;margin-top:30px}.question-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:24px}.question-prompt{font-size:24px;line-height:1.45;margin-bottom:25px}.choices{display:grid;gap:10px}.choice{text-align:left;display:flex;align-items:center;gap:15px;border:1px solid var(--border);background:var(--card);color:var(--text);padding:15px 18px;border-radius:10px;min-height:52px}.choice.selected{background:var(--soft);border-color:var(--primary);color:var(--primary)}.choice .letter{border:1px solid var(--border);border-radius:6px;width:29px;height:29px;display:grid;place-items:center;font-size:12px;flex-shrink:0}.tile-zone{display:flex;gap:9px;flex-wrap:wrap;min-height:75px;background:var(--bg);border:1px dashed var(--border);border-radius:12px;padding:16px;margin:14px 0}.word-tile{padding:10px 15px;background:var(--card);border:1px solid var(--border);border-bottom:3px solid var(--border);color:var(--text);border-radius:8px;min-height:44px}.matching{display:grid;grid-template-columns:1fr 1fr;gap:16px}.matching>div{display:grid;gap:10px}.match-tile{padding:12px;background:var(--card);border:1px solid var(--border);border-radius:9px;color:var(--text);min-height:52px;overflow-wrap:anywhere}.match-tile.selected{background:var(--soft);border-color:var(--primary)}.match-tile.paired{background:var(--success-bg);color:var(--success);border-color:var(--success)}.question-nav{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0}.question-nav button{min-width:40px;height:40px;border-radius:7px;background:var(--bg);color:var(--muted);border:1px solid var(--border)}.question-nav button.answered{background:var(--soft);color:var(--primary)}.question-nav button.current{border:2px solid var(--primary)}.question-nav button.flagged:after{content:' •';color:var(--warning)}.timer{font-variant-numeric:tabular-nums;background:var(--soft);color:var(--primary);padding:7px 12px;border-radius:8px;font-weight:700}.sync{font-size:12px;color:var(--muted)}.feedback{margin-top:22px;padding:20px;border-radius:12px;background:var(--success-bg);color:var(--success)}.feedback.incorrect{background:var(--danger-bg);color:var(--danger)}.feedback p{font-size:14px}.result-number{font-size:68px;letter-spacing:-3px;line-height:1.2;color:var(--primary);font-weight:700;margin:20px 0}.word-table{width:100%;border-collapse:collapse}.word-table td,.word-table th{text-align:left;padding:17px 10px;border-bottom:1px solid var(--border);font-size:14px}.word-table th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.flashcard{min-height:290px;width:100%;border:1px solid var(--border);border-radius:18px;background:var(--card);color:var(--text);padding:35px;text-align:center;transition:transform .2s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.flashcard strong{font-size:32px}.flashcard.flipped{background:var(--soft)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:1px}.data-table th,.data-table td{padding:14px 12px;border-bottom:1px solid var(--border)}.data-table td button{font-size:12px;padding:7px 10px}.staff-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.staff-tabs .active{background:var(--soft);color:var(--primary);border-color:var(--primary)}details{border-bottom:1px solid var(--border);padding:14px 0}summary{cursor:pointer;font-weight:600}.mono{font-family:ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}dialog{max-width:720px;width:calc(100% - 32px);border:1px solid var(--border);border-radius:17px;background:var(--card);color:var(--text);padding:28px;max-height:90vh;overflow:auto}dialog::backdrop{background:#160a29a8}dialog #close-modal{margin-top:20px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--card);padding:12px 22px;border-radius:12px;box-shadow:0 5px 30px #0002;z-index:100;display:none;max-width:90%;font-size:14px}.skip{position:fixed;left:10px;top:-70px;padding:10px;background:var(--card);z-index:200}.skip:focus{top:10px}.loading{padding:80px;text-align:center;color:var(--muted)}.mobile-brand{display:none}.spinner{display:inline-block;width:15px;height:15px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.content{animation:enter .25s ease-out}@keyframes enter{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}button:active,.button:active{transform:translateY(1px)}@media(max-width:1100px){.sidebar{width:205px;padding:26px 15px}.app-shell{grid-template-columns:205px 1fr}.content{padding:30px 28px}.topbar{padding:0 28px}.main-grid{grid-template-columns:1fr}.main-grid>.stack{grid-template-columns:1fr 1fr}.hero .orb{right:25px}.auth-art{padding:40px}.auth-art h1{font-size:44px}}@media(max-width:720px){.app-shell{display:block}.sidebar{inset:auto 0 0;width:100%;height:68px;padding:5px 7px;display:block;border-right:0;border-top:1px solid var(--border);overflow-x:auto}.sidebar>.brand,.nav-label,.sidebar-foot{display:none}.sidebar nav{display:flex;justify-content:space-between;min-width:440px}.nav-link{display:flex;flex-direction:column;padding:4px 9px;gap:1px;font-size:9px;min-height:52px;margin:0}.nav-link .icon{font-size:18px}.sidebar .desktop-only{display:none}.workspace{padding-bottom:68px}.topbar{height:68px;padding:0 20px}.breadcrumb{display:none}.mobile-brand{display:flex;font-size:14px}.mobile-brand img{width:31px;height:31px}.mobile-brand small{display:none}.top-actions{gap:10px}.user-chip span{display:none}.content{padding:27px 18px 35px}.page-heading{align-items:start;gap:10px;margin-bottom:24px}.page-heading h1{font-size:29px}.page-heading .badge{font-size:9px;max-width:120px;white-space:normal}.hero{padding:26px;min-height:250px}.hero h2{font-size:27px;max-width:230px}.hero .orb{right:-90px}.hero .hero-line{gap:12px;flex-wrap:wrap}.main-grid>.stack{grid-template-columns:1fr}.stats{gap:9px;margin:18px 0}.stat{padding:14px 12px}.stat strong{font-size:23px}.stat small{font-size:10px}.card{padding:21px}.cols-2,.cols-3{grid-template-columns:1fr}.auth{display:block}.auth-art{padding:23px}.auth-art>div:not(:first-child),.auth-art>small{display:none}.auth-form{padding:35px 22px}.form-grid{grid-template-columns:1fr}.lesson-item{grid-template-columns:37px 1fr;padding:17px;gap:12px}.lesson-item>.actions{grid-column:2}.reader .card{padding:22px}.question-prompt{font-size:21px}.question-header{flex-wrap:wrap}.reading-block{font-size:17px}.word-table td,.word-table th{padding:12px 5px;font-size:12px}.word-table .extra{display:none}.footer-note{display:block}.matching{gap:9px}.match-tile{font-size:13px;padding:10px 6px}.data-table{min-width:650px}.section-head h2{font-size:20px}.flashcard strong{font-size:27px}.tabs{margin-top:20px}.tab{padding:10px 12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.sidebar{overflow-y:auto}.content>.card+.card,.reader>.card+.card,.content>.grid+.card{margin-top:22px}.content>.actions+.card{margin-top:22px}@media(max-width:720px){.sidebar{overflow-y:hidden}}

.word-table td{overflow-wrap:anywhere;max-width:24rem}.word-table button{min-width:44px;padding:8px}.question-nav button{min-width:44px;height:44px}.question-prompt,.reading-block{overflow-wrap:anywhere}
/* Round 1 review fixes */
.nav-more{display:none}
button.nav-link{background:none;border:0;font:inherit;cursor:pointer;text-align:left}
.signout-top{min-height:36px;padding:6px 0}
.field-hint{display:block;color:var(--muted);font-size:12px;margin-top:5px;line-height:1.4}
.pending-row td{background:var(--soft)}
.badge.warn{background:var(--danger-bg);color:var(--danger)}
.more-list{display:grid;gap:6px;margin-top:12px}
.more-link{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;font-size:15px;font-weight:600;min-height:52px;width:100%;cursor:pointer;text-decoration:none}
.more-link:hover{background:var(--soft);color:var(--primary);text-decoration:none}
.more-link .icon{width:22px;text-align:center;color:var(--primary)}
.danger-link{color:var(--danger)}
@media(max-width:720px){
  .sidebar{overflow-x:visible}
  .sidebar nav{min-width:0;justify-content:space-around}
  .sidebar nav .nav-link{flex:1 1 0;align-items:center;min-width:0;padding:4px 2px;text-align:center;font-size:9px}
  .nav-extra{display:none!important}
  .nav-more{display:flex}
  .signout-top{display:none}
  .data-table.stack-table{min-width:0}
  .stack-table thead{display:none}
  .stack-table,.stack-table tbody,.stack-table tr,.stack-table td{display:block;width:100%}
  .stack-table tr{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--card)}
  .stack-table tr.pending-row{background:var(--soft)}
  .stack-table td,.pending-row td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;border:0;text-align:right;background:none}
  .stack-table td::before{content:attr(data-label);color:var(--muted);font-size:12px;text-align:left;flex:none}
  .stack-table td:first-child{display:block;text-align:left;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:4px}
  .stack-table td:first-child::before{content:none}
  .stack-table td[data-label="Manage"]{justify-content:flex-end;gap:8px}
  .stack-table td[data-label="Manage"]::before{margin-right:auto}
}
/* Round 2: teacher upgrades */
.hidden{display:none!important}
.head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.live-bar{margin-bottom:18px}
.live-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.live-tile{padding:14px 16px}
.live-tile strong{font-size:24px;margin-top:4px}
.live-tile.attention{border-color:var(--primary);background:var(--soft)}
.live-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:10px 2px 0}
.live-status .quiet{min-height:30px;padding:2px 6px;font-size:12px;color:var(--primary)}
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--success);margin-right:7px;vertical-align:1px;box-shadow:0 0 0 0 rgba(23,106,73,.45);animation:live-pulse 2s infinite}
.live-text{color:var(--success)}
@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(23,106,73,.45)}70%{box-shadow:0 0 0 7px rgba(23,106,73,0)}100%{box-shadow:0 0 0 0 rgba(23,106,73,0)}}
.warn-text{color:var(--danger)}
.group-card h3{margin-top:4px}
.group-stats{grid-template-columns:repeat(4,1fr)}
.meter-row{display:flex;align-items:center;gap:10px;min-width:130px}
.meter-row .progress{margin:0;flex:1;height:8px}
.meter-row .progress progress{height:8px}
.meter-row strong{font-size:13px;min-width:38px;text-align:right}
.progress.meter.good progress::-webkit-progress-value{background:var(--success)}
.progress.meter.mid progress::-webkit-progress-value{background:var(--warning)}
.progress.meter.low progress::-webkit-progress-value{background:var(--danger)}
.progress.meter.good progress::-moz-progress-bar{background:var(--success)}
.progress.meter.mid progress::-moz-progress-bar{background:var(--warning)}
.progress.meter.low progress::-moz-progress-bar{background:var(--danger)}
.section-bars{display:grid;gap:12px;margin:10px 0 18px}
.section-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,45%);gap:14px;align-items:center;font-size:14px}
.list-row.compact{padding:10px 0}
.all-members{margin-top:16px}
.all-members summary{cursor:pointer;font-weight:650;color:var(--primary);padding:8px 0}
.words-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}
.words-grid textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;line-height:1.5}
.word-preview{max-height:520px;overflow:auto}
.word-preview .data-table{min-width:0}
.line-error td{background:var(--danger-bg)}
.credentials code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;background:var(--soft);padding:2px 6px;border-radius:6px}
.credentials{min-width:0}
@media(max-width:720px){
  .live-tiles,.group-stats{grid-template-columns:repeat(2,1fr)}
  .words-grid{grid-template-columns:1fr}
  .section-bar{grid-template-columns:1fr}
  .head-actions{justify-content:flex-start}
  .section-head{flex-wrap:wrap}
}
@media(max-width:720px){.staff-tabs{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin-right:-18px;padding-right:18px}.staff-tabs::-webkit-scrollbar{display:none}.staff-tabs>*{flex:none;white-space:nowrap}}
.live-status{flex-wrap:nowrap;align-items:center}.live-status .live-dot{flex:none}.live-note{flex:1 1 auto;min-width:0}.live-status .quiet{flex:none}

/* ---------- Vocabulary (static/vocab.js): wide unit pages and the 5-step set path ---------- */
.v-page{--v-ok:var(--success);--v-ok-bg:var(--success-bg);--v-bad:var(--danger);--v-bad-bg:var(--danger-bg)}
.v-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:650;margin-bottom:14px;min-height:40px}
.v-head{margin-bottom:22px}.v-head h1{margin:6px 0 0}.v-head p{margin:8px 0 0;font-size:15px}
.v-uz{color:var(--muted);font-weight:500}
.v-sec{font-size:21px;margin:30px 0 14px}.v-sec small{font-size:14px;color:var(--muted);font-weight:500;margin-left:6px}
.v-bar progress{width:100%;height:9px;appearance:none;-webkit-appearance:none;display:block;border:0;border-radius:9px;background:var(--soft);overflow:hidden}
.v-bar progress::-webkit-progress-bar{background:var(--soft);border-radius:9px}
.v-bar progress::-webkit-progress-value{background:var(--primary);border-radius:9px}
.v-bar progress::-moz-progress-bar{background:var(--primary);border-radius:9px}
.v-progress-row{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);margin-bottom:6px}.v-progress-row strong{color:var(--text)}
.v-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:center;background:linear-gradient(135deg,var(--soft),var(--card) 70%)}
.v-hero h2{margin:8px 0 4px;font-size:28px;max-width:none}.v-hero p{margin:0 0 18px}
.v-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.v-stat{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;text-align:center}
.v-stat strong{display:block;font-size:30px;line-height:1.1;color:var(--primary)}.v-stat small{color:var(--muted);font-size:12.5px;line-height:1.35}
.v-how{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.v-how div{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;text-align:center;font-weight:650;font-size:14px}
.v-how em{display:block;font-style:normal;font-size:24px;margin-bottom:4px}.v-how small{display:block;color:var(--muted);font-weight:500;font-size:12px}
.v-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.v-qbtn{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;color:var(--text);font-weight:650;min-height:64px}
.v-qbtn:hover,.v-ucard:hover,.v-set:hover,.v-step:hover{border-color:var(--primary)}
.v-qbtn em{font-style:normal;font-size:26px}.v-qbtn small{display:block;color:var(--muted);font-weight:500;font-size:12.5px}
.v-units{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.v-ucard{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:17px;padding:20px;color:var(--text);box-shadow:var(--shadow)}
.v-ucard-top small{display:block;color:var(--muted);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700}.v-ucard-top b{display:block;font-size:18px;line-height:1.3;margin-top:2px}
.v-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.v-tip{display:flex;gap:12px;align-items:flex-start;background:var(--soft);border-radius:14px;padding:14px 16px;margin:18px 0;font-size:14.5px;line-height:1.5}
.v-tip>span{font-size:22px;line-height:1}.v-tip b{display:block;margin-bottom:2px}.v-tip.ok{background:var(--v-ok-bg)}.v-tip .actions{margin-top:10px}
.v-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr);gap:24px;align-items:start}
.v-side{display:grid;gap:16px;margin-top:30px}.v-side-card{padding:22px}.v-side-card h3{margin:0 0 6px;font-size:17px}.v-side-card p{font-size:14px;margin:0 0 14px}
.v-test{background:linear-gradient(135deg,var(--primary),#4a1a85);color:#fff;border-radius:17px;padding:24px;box-shadow:var(--shadow)}
.v-test h3{margin:6px 0;font-size:20px}.v-test p{font-size:14px;margin:0 0 14px;opacity:.95}.v-test .v-uz{color:#fff;opacity:.85}.v-test-icon{font-size:36px;line-height:1}
.v-test .badge{background:#ffffff26;color:#fff;white-space:normal}
.v-test-btn{background:#fff;color:#4a1a85;font-weight:700;border-radius:10px;padding:12px 18px;min-height:46px;width:100%;font-size:15px}
.v-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.v-set,.v-step{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:15px;padding:14px 16px;color:var(--text);min-height:74px}
.v-set.done{background:var(--v-ok-bg)}
.v-num{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--soft);color:var(--primary);font-weight:750;font-size:17px}
.v-set.done .v-num{background:var(--v-ok);color:var(--card)}
.v-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.v-info b{font-size:15px}.v-info b small{color:var(--muted);font-weight:600}
.v-preview{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v-dots{display:flex;gap:5px;margin-top:3px}.v-dots i{width:18px;height:6px;border-radius:4px;background:var(--border)}.v-dots i.on{background:var(--v-ok)}
.v-go{flex:none;font-size:13px;font-weight:700;color:var(--primary)}
.v-path{display:grid;gap:12px}
.v-step.next{border:2px solid var(--primary);box-shadow:0 6px 22px #7529c41f}.v-step.done{background:var(--v-ok-bg)}
.v-si{position:relative;flex:none;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--soft);font-size:25px}
.v-si sup{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;border-radius:10px;background:var(--primary);color:var(--card);font-size:11px;font-weight:750;display:grid;place-items:center;padding:0 5px}
.v-step.done .v-si sup{background:var(--v-ok)}.v-step .v-info small{color:var(--muted);font-size:13px}
.v-chips{display:flex;flex-wrap:wrap;gap:6px}.v-chips span,.v-chip{background:var(--soft);color:var(--primary);border-radius:20px;padding:4px 11px;font-size:12.5px;font-weight:650}
.v-center{justify-content:center;text-align:center;margin-top:18px}
.v-mode{max-width:1040px;margin:0 auto}
.v-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.v-seg{display:inline-flex;background:var(--soft);border-radius:11px;padding:4px;gap:4px;flex-wrap:wrap}
.v-seg button{background:transparent;color:var(--muted);border-radius:8px;padding:8px 13px;font-weight:650;font-size:13.5px;min-height:38px}
.v-seg button.on{background:var(--card);color:var(--primary);box-shadow:0 1px 4px #21182d1a}
.v-wlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:10px}
.v-witem{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:13px;padding:12px 14px;min-height:62px}
.v-n{flex:none;width:28px;color:var(--muted);font-size:13px;font-weight:700;text-align:center}
.v-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.v-en{font-weight:700;font-size:16px}.v-tr{color:var(--muted)}.v-tx small{color:var(--muted);font-size:12.5px;font-style:italic}
.v-hidden{color:transparent!important;background:var(--soft);border-radius:6px;cursor:pointer;user-select:none;min-width:90px}
.v-say{flex:none;width:42px;height:42px;border-radius:12px;background:var(--soft);font-size:18px;display:grid;place-items:center}
.v-qhead{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;color:var(--muted);font-weight:650;margin-bottom:8px;flex-wrap:wrap}
.v-fc{position:relative;margin:18px auto 0;max-width:620px;min-height:290px;border:1px solid var(--border);border-radius:22px;background:var(--card);box-shadow:var(--shadow);cursor:pointer;display:flex;align-items:stretch}
.v-fc:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.v-face{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:34px 24px;text-align:center;animation:v-flip .28s ease-out}
.v-backf{display:none;background:var(--soft);border-radius:22px}.v-fc.flip .v-front{display:none}.v-fc.flip .v-backf{display:flex}
.v-face .v-say{position:absolute;top:14px;right:14px}
.v-lang{font-size:11px;letter-spacing:2px;font-weight:750;color:var(--primary)}
.v-word{font-size:clamp(26px,4.5vw,40px);font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.v-hint{color:var(--muted);font-size:13.5px}
.v-fc-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:620px;margin:16px auto 0}
.v-fc-btns button{border-radius:14px;padding:12px;font-weight:700;font-size:15px;min-height:62px;display:flex;flex-direction:column;align-items:center;gap:2px}
.v-fc-btns small{font-weight:500;font-size:12px;opacity:.85}
.v-no{background:var(--v-bad-bg);color:var(--v-bad)}.v-yes{background:var(--v-ok-bg);color:var(--v-ok)}
.v-kbd{text-align:center;color:var(--muted);font-size:12.5px;margin-top:14px}
.v-qcard{max-width:760px;margin:12px auto 0}
.v-instr{color:var(--muted);font-size:14px;font-weight:650;margin-bottom:10px}
.v-prompt{display:flex;align-items:center;gap:12px;font-size:clamp(24px,3.6vw,34px);font-weight:700;line-height:1.25;margin-bottom:18px;overflow-wrap:anywhere}
.v-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v-opt{display:flex;align-items:center;gap:12px;text-align:left;background:var(--card);color:var(--text);border:1.5px solid var(--border);border-radius:13px;padding:13px 14px;font-size:15.5px;font-weight:600;min-height:58px}
.v-opt:hover:not(:disabled){border-color:var(--primary)}
.v-k{flex:none;width:28px;height:28px;border-radius:8px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-size:13px;font-weight:750}
.v-opt.right{border-color:var(--v-ok);background:var(--v-ok-bg)}.v-opt.wrong{border-color:var(--v-bad);background:var(--v-bad-bg)}.v-opt:disabled{cursor:default}
.v-typebox{display:flex;gap:10px}.v-typebox input{flex:1;font-size:18px}
#v-type.good{border-color:var(--v-ok);background:var(--v-ok-bg)}#v-type.bad{border-color:var(--v-bad);background:var(--v-bad-bg)}
.v-hintline{font-family:ui-monospace,Consolas,monospace;letter-spacing:3px;color:var(--primary);min-height:24px;margin:10px 0 4px;font-size:17px}
.v-fb{display:none;border-radius:12px;padding:12px 14px;margin-top:14px;font-size:15px;line-height:1.5}
.v-fb.show{display:block}.v-fb.good{background:var(--v-ok-bg);color:var(--v-ok)}.v-fb.bad{background:var(--v-bad-bg);color:var(--v-bad)}
.v-next{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px}.v-next:empty{display:none}
.v-result{text-align:center;max-width:760px;margin:12px auto 0}.v-result h2{max-width:none;margin:4px 0}
.v-big{font-size:46px;font-weight:750;color:var(--primary);line-height:1.1}
.v-review{display:grid;gap:8px;text-align:left;margin-top:22px;border-top:1px solid var(--border);padding-top:16px}
.v-ri{display:flex;align-items:center;gap:12px}.v-ri span{display:block;color:var(--muted);font-size:14px}
.v-mgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.v-mcol{display:grid;gap:10px;align-content:start}
.v-tile{background:var(--card);color:var(--text);border:1.5px solid var(--border);border-radius:13px;padding:12px 14px;font-size:15px;font-weight:650;min-height:56px;text-align:center;overflow-wrap:anywhere}
.v-tile.sel{border-color:var(--primary);background:var(--soft);color:var(--primary)}
.v-tile.okm{border-color:var(--v-ok);background:var(--v-ok-bg);color:var(--v-ok);opacity:.6;cursor:default}
.v-tile.badm{border-color:var(--v-bad);background:var(--v-bad-bg);color:var(--v-bad)}
.v-shake{animation:v-shake .4s}
@keyframes v-shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@keyframes v-flip{from{transform:rotateY(70deg);opacity:.3}to{transform:none;opacity:1}}
.v-words{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:0 22px}
.v-wrow{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);padding:10px 0;min-height:60px}
.v-wrow .v-tx b{font-size:15.5px}.v-wrow .v-tx span{color:var(--muted);font-size:14.5px}
.v-acts{flex:none;display:flex;gap:6px}.v-acts .quiet{min-height:40px;padding:6px 8px;color:var(--primary);font-weight:650}
.v-count{font-size:13.5px;font-weight:650;margin:8px 0 4px}
.v-cert{position:relative;text-align:center;border:3px double var(--primary);border-radius:20px;padding:30px 24px;margin-bottom:20px;background:linear-gradient(180deg,var(--soft),var(--card))}
.v-cert.pass{border-color:#b8860b;background:linear-gradient(180deg,#fff6dc,var(--card))}
[data-theme=dark] .v-cert.pass{background:linear-gradient(180deg,#3a2f16,var(--card))}
.v-cert-t{font-size:13px;letter-spacing:3px;font-weight:800;color:var(--primary)}.v-cert.pass .v-cert-t{color:#9a6a00}
[data-theme=dark] .v-cert.pass .v-cert-t{color:#f3c862}
.v-cert-line{color:var(--muted);margin-top:8px}.v-cert-name{font-size:clamp(26px,4vw,38px);font-weight:750;margin-top:6px;overflow-wrap:anywhere}
.v-cert-score{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.v-cert-score span{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 16px;min-width:110px;font-size:12.5px;color:var(--muted)}
.v-cert-score b{display:block;font-size:22px;color:var(--text)}.v-cert-date{font-size:13px}
@media(max-width:1100px){.v-layout{grid-template-columns:1fr}.v-side{margin-top:0;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.v-hero{grid-template-columns:1fr}}
@media(max-width:720px){.v-how{grid-template-columns:1fr 1fr}.v-quick{grid-template-columns:1fr}.v-stats{gap:8px}.v-stat{padding:12px 8px}.v-stat strong{font-size:24px}
.v-wlist,.v-words,.v-sets,.v-units{grid-template-columns:1fr}.v-opts{grid-template-columns:1fr}.v-hero h2{font-size:23px}
.v-fc{min-height:240px}.v-typebox{flex-direction:column}.v-acts .quiet{padding:6px 6px}.v-wrow{flex-wrap:wrap}.v-wrow .v-acts{margin-left:38px}
.v-mgrid{gap:8px}.v-tile{font-size:14px;padding:10px 8px}.v-cert{padding:22px 14px}}
@media(prefers-reduced-motion:reduce){.v-face,.v-shake{animation:none}}
