@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css");@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap");:root{--purple-50:#F5F2FA;--purple-100:#F0EBF8;--purple-200:#E5DCF2;--purple-300:#D8C9EC;--purple-400:#B8A2D8;--purple-500:#8B7FA8;--purple-600:#7B68C8;--purple-700:#5C4B9C;--purple-800:#4A3A82;--purple-900:#2A2438;--bg:var(--purple-50);--bg-card:#FFFFFF;--bg-soft:#FAF8FD;--ink:var(--purple-900);--ink-soft:#4A4358;--ink-mute:#6B5BA0;--ink-dim:var(--purple-500);--line:#EFE9F7;--line-soft:#F5F1FA;--line-strong:var(--purple-200);--success-bg:#DCEFE3;--success-fg:#2D6B45;--warn-bg:#FCE9D8;--warn-fg:#B56F22;--error-bg:#FBE0E8;--error-fg:#B5476B;--info-bg:#DCE5F4;--info-fg:#2D5B9C;--seat-print-bg:#7BA3D4;--seat-print-fg:#0A2748;--seat-print-bg-soft:#EEF4FA;--seat-print-fg-soft:#7A92A8;--seat-eval-bg:#D4A06A;--seat-eval-fg:#4A2808;--seat-eval-bg-soft:#FBF3E8;--seat-eval-fg-soft:#A88B68;--seat-complete-bg:#6BB890;--seat-complete-fg:#0A3320;--seat-complete-bg-soft:#E8F5EC;--seat-complete-fg-soft:#7A9A86;--seat-shell-bg:#F0EEF3;--seat-shell-fg:#8A8496;--seat-disabled-bg:#E8E8E6;--seat-disabled-fg:#8A8A86;--grad-purple:linear-gradient(135deg,#7B68C8,#5C4B9C);--grad-purple-soft:linear-gradient(135deg,#9788D6,#7B68C8);--shadow-sm:0 1px 2px rgba(92,75,156,0.04);--shadow-md:0 2px 8px rgba(92,75,156,0.08);--shadow-lg:0 4px 16px rgba(92,75,156,0.12);--shadow-purple:0 2px 12px rgba(92,75,156,0.20);--app-chrome-height:128px}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--ink);font-family:Pretendard,Noto Sans KR,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:14px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media print{body,html{min-height:0!important;height:auto!important;background:#fff!important}}a{color:inherit;text-decoration:none}.app{max-width:1200px;margin:0 auto;padding:16px 20px 60px}.app-wide{max-width:1400px}.app-chrome{position:-webkit-sticky;position:sticky;top:0;z-index:10000;isolation:isolate;background:var(--bg);margin-bottom:10px;padding-bottom:0;box-shadow:0 4px 12px rgba(92,75,156,.05);pointer-events:auto}.app-chrome .topbar{padding:8px 12px;margin-bottom:6px;border-radius:10px}.app-chrome .brand-mark{width:34px;height:34px}.app-chrome .brand-name{font-size:13px}.app-chrome .brand-sub{font-size:10px}.app-chrome .topright{gap:8px;font-size:11px;flex-wrap:wrap;justify-content:flex-end}.app-chrome .topright .user-info{font-size:12px}.app-chrome .topright .tnav-dd--compact .tnav-dd-btn{padding:6px 10px;font-size:11px;font-weight:600;border:1px solid var(--line);border-radius:10px;background:white;box-shadow:none}.app-chrome .topright .tnav-dd--compact .tnav-dd-btn:hover{background:var(--purple-50,#faf5ff)}.app-chrome .topright .tnav-dd--compact .tnav-dd-btn.active{color:white;background:var(--grad-purple);border-color:transparent;box-shadow:var(--shadow-purple)}.app-chrome .topright .tnav-dd--compact .tnav-dd-btn.is-open:not(.active),.app-chrome .topright .tnav-dd--compact.is-open .tnav-dd-btn:not(.active){color:var(--purple-800);background:var(--purple-100);box-shadow:none}.app-chrome .subbar{display:none}.app-chrome .hub-teacher-nav-wrap,.app-chrome .tnav{margin-bottom:0}.app-chrome .tnav{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:2px;padding:3px 4px;border-radius:10px;scrollbar-width:thin;scrollbar-color:var(--purple-300) transparent;-webkit-overflow-scrolling:touch}.app-chrome .tnav.tnav--dd-open{overflow:visible}.app-chrome .tnav::-webkit-scrollbar{height:4px}.app-chrome .tnav::-webkit-scrollbar-thumb{background:var(--purple-300);border-radius:4px}.app-chrome .tnav-dd-btn,.app-chrome .tnav>a{padding:5px 9px;font-size:12px;gap:4px;flex-shrink:0;white-space:nowrap;border-radius:7px}.app-chrome .tnav-dd-menu{min-width:156px}.app-chrome .tnav-dd-menu a{padding:7px 9px;font-size:12px}.app-chrome .tnav a>span:first-child{font-size:13px;line-height:1}.app-chrome .tnav a .num{display:none}.app-main{min-width:0}.bookshelf-sidenav{position:-webkit-sticky;position:sticky;top:var(--app-chrome-height,0);align-self:flex-start;width:152px;flex-shrink:0;max-height:calc(100vh - var(--app-chrome-height, 0px));overflow-y:auto;border-right:1px solid var(--line);background:var(--paper-2);padding:12px 0;z-index:20}.mono{font-family:JetBrains Mono,monospace}h1,h2,h3,h4{font-weight:600;color:var(--ink);letter-spacing:-.02em}.topbar{justify-content:space-between;padding:14px 20px;background:white;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-bottom:14px}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px}.brand-mark{width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.brand-mark img{width:100%;height:100%;object-fit:contain}.brand-text{display:flex;flex-direction:column;gap:1px}.brand-name{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.brand-sub{font-size:11px;color:var(--ink-mute);font-weight:500}.brand-sub .em{color:var(--purple-700);font-weight:600}.topright{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--ink-mute)}.topright .user-info{font-size:13px;color:var(--ink)}.topright .user-info strong{color:var(--purple-700);font-weight:600}.subbar{display:flex;justify-content:space-between;align-items:center;padding:6px 4px 18px;font-size:12px;color:var(--ink-mute)}.subbar .em{color:var(--purple-700);font-weight:600}.subbar .vol{color:var(--ink);font-weight:600}.hero{background:var(--grad-purple);border-radius:14px;padding:28px 26px;color:white;margin-bottom:18px;position:relative;overflow:hidden;box-shadow:var(--shadow-purple)}.hero:after{content:"🪐";position:absolute;right:-30px;top:-20px;font-size:180px;opacity:.08;pointer-events:none}.hero h1,.hero h2{color:white;font-size:22px;font-weight:700;margin-bottom:6px;position:relative}.hero .desc{font-size:13px;opacity:.9;position:relative}.tnav{display:flex;gap:4px;margin-bottom:18px;background:white;padding:6px;border-radius:12px;border:1px solid var(--line);flex-wrap:wrap}.tnav a{padding:9px 14px;font-size:13px;font-weight:500;color:var(--ink-mute);border-radius:8px;display:flex;align-items:center;gap:6px;transition:all .15s ease}.tnav a:hover{color:var(--purple-700);background:var(--purple-100)}.tnav a.active{color:white;background:var(--grad-purple);box-shadow:var(--shadow-purple)}.tnav a.pending{opacity:.65;cursor:wait;pointer-events:none}.tnav a .num{font-family:JetBrains Mono,monospace;font-size:10px;opacity:.7}.tnav-dd{position:relative;flex-shrink:0}.tnav-dd-btn{padding:9px 14px;font-size:13px;font-weight:500;color:var(--ink-mute);border-radius:8px;border:none;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-family:inherit;transition:all .15s ease;white-space:nowrap;pointer-events:auto}.tnav-dd-btn:hover{color:var(--purple-700);background:var(--purple-100)}.tnav-dd-btn.active{color:white;background:var(--grad-purple);box-shadow:var(--shadow-purple)}.tnav-dd-btn.is-open:not(.active),.tnav-dd.is-open .tnav-dd-btn:not(.active){color:var(--purple-800);background:var(--purple-100);box-shadow:none}.tnav-dd-caret{font-size:10px;opacity:.75;line-height:1}.tnav-dd.is-open .tnav-dd-caret{transform:rotate(180deg)}.tnav-dd-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;min-width:168px;padding:6px;background:white;border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-md);z-index:10050;flex-direction:column;gap:2px;pointer-events:auto}.tnav-dd-menu.is-open,.tnav-dd.is-open .tnav-dd-menu{display:flex}.tnav-dd-menu a{width:100%;justify-content:flex-start;padding:8px 10px;border-radius:7px;white-space:nowrap}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:14px;position:relative}.panel-compact{padding:12px 14px;margin-bottom:8px;border-radius:8px}.panel-compact .panel-title{margin-bottom:2px}.panel-compact .panel-title h2{font-size:15px}.panel-compact .panel-sub{margin-bottom:8px;padding-left:0;font-size:12px;line-height:1.45}.skip-reports-shell{padding:0;margin-bottom:12px;overflow:hidden}.skip-reports-panel .panel-num,.skip-reports-shell .panel-num{display:none}.skip-reports-title{font-size:14px;font-weight:700;margin:0;white-space:nowrap;color:var(--ink)}.skip-reports-head{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line)}.skip-reports-tabs{display:flex;flex-wrap:nowrap;gap:3px;flex-shrink:0}.skip-reports-loading{padding:10px 12px;font-size:12px;color:var(--ink-mute);margin:0}.skip-reports-desk{padding:4px 8px 6px}.skip-reports-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:4px;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-bottom:1px}.skip-reports-toolbar-sep{width:1px;height:14px;background:var(--line);flex-shrink:0}.skip-reports-count{font-size:11px;color:var(--ink-mute);white-space:nowrap;flex-shrink:0}.skip-reports-filter-group{display:flex;flex-wrap:wrap;align-items:center;gap:3px;flex-shrink:0}.skip-reports-filter-label{font-size:10px;color:var(--ink-mute);flex-shrink:0}.skip-reports-search{flex:1 1 100px;min-width:96px;max-width:168px;padding:3px 7px;border-radius:6px;border:1px solid var(--line);font-size:11px}.skip-reports-select-all{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--ink-mute);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.skip-reports-batch{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:5px 8px;margin-bottom:4px;border-radius:6px;border:1px solid var(--purple-300);background:var(--purple-50)}.skip-reports-list{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:white}.skip-reports-section-head{padding:4px 8px;font-size:10px;font-weight:700;color:var(--ink-mute);background:var(--bg-soft);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:5px}.skip-reports-section-select{font-size:11px;font-weight:700;color:var(--ink);margin-right:2px}.skip-reports-section-select input{width:16px;height:16px;accent-color:var(--purple-600,#7c3aed);cursor:pointer}.skip-reports-row{padding:4px 8px;border-bottom:1px solid var(--line-soft);display:flex;flex-wrap:nowrap;align-items:center;gap:5px;font-size:11px;min-height:30px}.skip-reports-row:last-child{border-bottom:none}.skip-reports-row--ai{border-left:2px solid #7c3aed;background:#faf5ff}.skip-reports-row--selected{background:var(--purple-50)}.skip-reports-row-check{flex-shrink:0;width:16px;height:16px;margin:0;accent-color:var(--purple-600,#7c3aed);cursor:pointer}.skip-reports-row-meta{font-family:JetBrains Mono,monospace;font-weight:700;flex-shrink:0;font-size:10px;min-width:18px;text-align:center}.skip-reports-row-source{font-size:10px;color:var(--ink-mute);flex-shrink:1;min-width:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skip-reports-row-badge{flex-shrink:0;font-size:9px;padding:1px 5px;line-height:1.3}.skip-reports-row-stem{flex:1 1 120px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft)}.skip-reports-row-when{flex-shrink:0;font-size:10px;color:var(--ink-mute)}.skip-reports-row-when--fixed{color:var(--success-fg)}.skip-reports-row-reporters{flex-shrink:0;font-size:10px;color:var(--ink-mute);cursor:help}.skip-reports-row-ai-note{flex-basis:100%;font-size:10px;color:#6d28d9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;margin-top:0}.assignment-new-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px;gap:12px;align-items:start}@media (max-width:860px){.assignment-new-grid{grid-template-columns:1fr}}.assignment-new-page{padding:8px 10px!important;margin-bottom:8px}.assignment-new-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--line);flex-wrap:wrap}.assignment-new-meta{display:grid;grid-template-columns:minmax(140px,2fr) minmax(110px,.9fr) minmax(80px,.6fr) minmax(160px,1.3fr);grid-gap:6px 8px;gap:6px 8px;align-items:end;margin-top:8px}.assignment-new-field{display:grid;grid-gap:2px;gap:2px;min-width:0}.assignment-new-field>span{font-size:10px;color:var(--ink-mute);line-height:1.2}.assignment-new-field input,.assignment-new-field select{padding:5px 8px;font-size:12px;line-height:1.25;min-width:0;width:100%}.assignment-new-target-row{display:flex;gap:6px;align-items:center;min-width:0}.assignment-new-target-row select{flex:1 1;min-width:0}.assignment-new-mode-toggle{display:flex;gap:2px;flex-shrink:0}.assignment-new-mode-toggle button{padding:4px 8px!important;font-size:11px!important;border-radius:4px;min-width:32px}.assignment-new-picked{font-size:11px;color:var(--ink-mute);white-space:nowrap}.assignment-new-bottom{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,2fr);grid-gap:8px;gap:8px;margin-top:6px;align-items:start}.assignment-new-field--memo input{width:100%}.assignment-new-students{border:1px solid var(--line);border-radius:6px;max-height:min(36vh,200px);overflow-y:auto;padding:4px 6px}.assignment-new-class-block+.assignment-new-class-block{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}.assignment-new-class-head{display:flex;justify-content:space-between;align-items:center;padding:2px 4px;font-size:11px}.assignment-new-class-head button{font-size:10px;padding:0}.assignment-new-student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));grid-gap:0 8px;gap:0 8px}.assignment-new-student-item{display:flex;align-items:center;gap:4px;padding:1px 4px;font-size:11px;line-height:1.3;cursor:pointer;min-width:0}.assignment-new-student-item input{margin:0;flex-shrink:0}.assignment-new-student-item .code{color:var(--ink-mute);font-size:9px;overflow:hidden;text-overflow:ellipsis}@media (max-width:900px){.assignment-new-meta{grid-template-columns:1fr 1fr}.assignment-new-field--title{grid-column:1/-1}.assignment-new-bottom{grid-template-columns:1fr}}.lesson-meta-row{gap:4px 10px;font-size:12px;color:var(--ink-mute);margin-bottom:6px;line-height:1.4}.lesson-action-bar,.lesson-meta-row{display:flex;flex-wrap:wrap;align-items:center}.lesson-action-bar{gap:6px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--line-soft,var(--line))}.lesson-detail-sticky-head{position:-webkit-sticky;position:sticky;top:var(--app-chrome-height,0);z-index:50;background:var(--paper,#f8f7fc);padding-bottom:8px;margin-bottom:10px}.lesson-detail-sticky-head .lesson-unit-nav-shell{margin-bottom:8px}.lesson-detail-sticky-head .lesson-action-bar{margin-bottom:6px;padding-bottom:6px}.lesson-detail-sticky-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;padding:4px 2px 2px}.lesson-questions-sticky-toolbar{position:-webkit-sticky;position:sticky;top:calc(var(--app-chrome-height, 0px) + var(--lesson-detail-sticky-offset, 0px));z-index:45;background:var(--paper-2,#fafaf9);margin:-12px -14px 12px;padding:10px 14px 12px;border-bottom:1px solid var(--line);box-shadow:0 4px 14px rgba(60,30,90,.07);border-radius:8px 8px 0 0}.lesson-questions-sticky-toolbar--compact{margin:-8px -14px 8px;padding:6px 14px 8px;box-shadow:0 2px 10px rgba(60,30,90,.06)}.answer-batch-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px}.answer-batch-toolbar-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}.answer-batch-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;margin-left:auto}.answer-batch-saved-flash{font-size:11px;font-weight:600;color:var(--success-fg,#047857)}.answer-batch-import-inputs{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.lesson-footer-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:11px;color:var(--ink-mute);line-height:1.4}.word-pick-group-header{position:-webkit-sticky;position:sticky;top:calc(var(--app-chrome-height, 0px) + var(--lesson-detail-sticky-offset, 0px) + 8px);z-index:2;border-left:3px solid var(--purple-600);box-shadow:var(--shadow-md)}.shared-passage-block{margin-top:12px;padding:12px 14px;background:var(--paper);border:1px solid var(--line-strong);border-radius:8px;line-height:1.75}.shared-passage-block .formatted-stem{font-size:15px}.blank-fill-root{font-size:15;line-height:2}.blank-fill-inline{line-height:2;word-break:keep-all;overflow-wrap:break-word}.blank-fill-chunk{white-space:pre-wrap}.blank-fill-inline .blank-fill-chunk,.blank-fill-inline .formatted-stem{display:inline}.blank-fill-inline .blank-fill-chunk p,.blank-fill-inline .formatted-stem p{display:inline;margin:0}.blank-fill-html .stem-cols-2,.blank-fill-html .stem-cols-3{display:grid;width:100%;margin:8px 0}.blank-fill-input{display:inline-block;vertical-align:baseline;min-width:2.2em;max-width:24em;margin:0 2px;padding:4px 8px;border:2px solid var(--purple-500);border-radius:6px;background:var(--purple-50);font-size:15px;line-height:1.4;box-sizing:content-box;font-family:inherit}.blank-fill-input.is-wrong{border-color:var(--error-fg,#b42318);background:#fef3f2;color:#b42318;box-shadow:0 0 0 1px rgba(180,35,24,.15)}.blank-fill-input.is-correct{border-color:var(--success-fg,#166534);background:#ecfdf3;color:#166534}.blank-fill-input-wrap.is-wrong .blank-fill-num{color:var(--error-fg,#b42318)}.blank-fill-input-wrap.is-correct .blank-fill-num{color:var(--success-fg,#166534)}.blank-fill-input[lang=en]{ime-mode:disabled}.blank-fill-input::placeholder{color:var(--ink-mute);opacity:.4;font-size:.72em;font-weight:400}.blank-fill-input-wrap{position:relative;display:inline-block;vertical-align:baseline}.blank-fill-num{position:absolute;top:1px;left:4px;font-size:9px;line-height:1.2;font-weight:800;color:var(--ink,#2A2438);pointer-events:none;z-index:1}.blank-fill-input--solo{display:block;margin-top:10px;min-width:8em;max-width:100%}.blank-fill-paren{display:inline;white-space:nowrap}.blank-fill-paren-punct{color:var(--ink-soft)}.blank-fill-paren-slash{margin:0 5px;color:var(--ink-mute);-webkit-user-select:none;-moz-user-select:none;user-select:none}.blank-fill-paren-opt{display:inline}.blank-fill-paren button{padding:2px 8px;margin:0 1px;border-radius:6px;border:1px dashed var(--purple-400);background:white;color:var(--purple-800);cursor:pointer;font:inherit;font-weight:500;vertical-align:baseline}.blank-fill-paren button.is-selected,.blank-fill-paren button[aria-pressed=true]{border:2px solid var(--purple-600);background:var(--purple-600);color:white;font-weight:600}.blank-fill-paren button:disabled{cursor:default;opacity:.65}.blank-fill-paren-hint-group{display:inline;white-space:nowrap}.blank-fill-paren-given{display:inline;margin-right:4px;color:var(--purple-800);font-weight:600}.blank-fill-paren-given-word{padding:0 2px}.blank-fill-html .blank-fill-paren-given{margin-right:6px}.word-bank-dialogue-chip:not(:disabled):hover{background:var(--purple-100);border-color:var(--purple-500)}.word-bank-dialogue-chip.is-used:not(:disabled):hover{background:var(--purple-700);border-color:var(--purple-700)}.blank-fill-slot{display:inline;white-space:nowrap}.blank-fill-hint{margin:8px 0 0;font-size:11px}.blank-fill-english-hints{margin:0 0 8px;font-size:13px;color:var(--purple-800);font-weight:600}.blank-fill-input--hinted::placeholder{color:var(--purple-600);font-weight:600;opacity:.85}.try-preview-root{max-width:1280px;margin:0 auto}.try-preview-body{display:flex;gap:16px;align-items:flex-start}.try-preview-main{flex:1 1;min-width:0;max-width:920px}.try-preview-embedded-wrap{padding-bottom:calc(16px + env(safe-area-inset-bottom, 0px))!important}.try-preview-embedded-wrap .try-preview-root .panel:last-child{margin-bottom:4px}body.try-edit-mode{padding-bottom:calc(68px + env(safe-area-inset-bottom, 0px))}body.try-edit-mode footer{pointer-events:none}.try-edit-actions-spacer{height:4px}.try-edit-sticky-actions{position:fixed;bottom:0;left:0;right:0;z-index:5000;pointer-events:auto;margin-top:12px;padding:10px 16px max(10px,env(safe-area-inset-bottom,0px));background:var(--paper,#fff);border-top:1px solid var(--line,#e5e7eb);box-shadow:0 -4px 16px rgba(0,0,0,.1)}.try-edit-sticky-actions-inner{max-width:920px;margin:0 auto;display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;align-items:center;pointer-events:auto}.try-answer-sheet{width:268px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:calc(var(--app-chrome-height, 0px) + 12px);max-height:calc(100vh - var(--app-chrome-height, 0px) - 24px);overflow:auto;padding:12px 10px!important}.skip-fix-layout{display:grid;grid-gap:12px;gap:12px;align-items:start}@media (min-width:900px){.skip-fix-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}}.skip-fix-source-sticky{position:-webkit-sticky;position:sticky;top:calc(var(--app-chrome-height, 0px) + 12px);align-self:start;max-height:calc(100vh - var(--app-chrome-height, 0px) - 24px);overflow-y:auto}.skip-fix-action-sticky{position:static;margin-bottom:12px;display:flex;flex-direction:column;gap:12px}.skip-fix-action-sticky .panel{box-shadow:0 4px 14px rgba(60,30,90,.08)}.try-answer-sheet-head{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.example-box{margin:12px 0;padding:10px 14px;border:1.5px solid var(--purple-300,#c4b5fd);border-radius:10px;background:var(--purple-50,#f5f3ff)}.example-box__label{display:inline-block;margin-bottom:6px;padding:1px 10px;font-size:12px;font-weight:800;letter-spacing:.04em;color:#fff;background:var(--purple-500,#8b5cf6);border-radius:999px}.example-box__label:before{content:"〈"}.example-box__label:after{content:"〉"}.example-box__body{font-size:15px;font-weight:600;line-height:1.7;color:var(--ink,#1f2937)}.condition-box{margin:12px 0;padding:10px 14px;border:1.5px solid #f59e0b;border-radius:10px;background:#fffbeb}.condition-box__label{display:inline-block;margin-bottom:6px;padding:1px 10px;font-size:12px;font-weight:800;letter-spacing:.04em;color:#fff;background:#d97706;border-radius:999px}.condition-box__label:before{content:"〈"}.condition-box__label:after{content:"〉"}.condition-box__body{font-size:14px;font-weight:600;line-height:1.7;color:var(--ink,#1f2937)}.condition-box--given-sentence{margin:16px 0;padding:14px 16px 14px 18px;border:2px solid #2563eb;border-left-width:5px;border-radius:12px;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 2px 10px rgba(37,99,235,.12)}.condition-box--given-sentence .condition-box__label{margin-bottom:8px;padding:2px 12px;font-size:13px;background:#1d4ed8}.condition-box--given-sentence .condition-box__body{font-size:16px;font-weight:700;line-height:1.75;color:#0f172a}.stem-question-prompt{margin-top:20px;margin-bottom:16px;padding-top:14px;border-top:1px dashed var(--line-strong,#d8d4e4);font-size:14px;font-weight:500;line-height:1.6;color:var(--ink-soft,#5b5470)}.stem-reading-passage{font-size:18px;line-height:1.85;color:var(--ink,#2a2438)}.passage-box{margin:12px 0;padding:10px 14px 12px;border:1.5px solid var(--purple-300,#c4b5fd);border-radius:10px;background:var(--purple-50,#f5f3ff)}.passage-box__label{display:inline-block;margin-bottom:8px;padding:1px 10px;font-size:12px;font-weight:800;letter-spacing:.04em;color:#fff;background:var(--purple-600,#7c3aed);border-radius:999px}.passage-box--verb-form{font-family:Georgia,Times New Roman,Times,serif;font-size:16px;line-height:1.8;color:var(--ink,#2a2438)}.passage-box--verb-form .blank-fill-paren-given-word{font-weight:600}.try-answer-sheet-title{font-size:13px;font-weight:700;color:var(--purple-800)}.try-answer-sheet-meta{font-size:11px;color:var(--ink-mute);margin-top:2px}.try-answer-sheet-grid{display:grid;grid-gap:6px;gap:6px}.try-answer-sheet-cell{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:6px 5px;min-height:52px;border:1.5px solid var(--line);border-radius:8px;background:white;cursor:pointer;text-align:center;font:inherit;color:inherit;position:relative;transition:border-color .12s ease,background .12s ease}.try-answer-sheet-cell:hover{border-color:var(--purple-400);background:var(--purple-50)}.try-answer-sheet-cell.is-current{border-color:var(--purple-600);box-shadow:0 0 0 2px var(--purple-100);background:var(--purple-50)}.try-answer-sheet-cell.is-answered:not(.is-correct):not(.is-wrong){border-color:var(--purple-300);background:var(--purple-50)}.try-answer-sheet-cell.is-correct{border-color:var(--success-fg);background:var(--success-bg)}.try-answer-sheet-cell.is-wrong{border-color:var(--danger-fg,#c0392b);background:#fff5f5}.try-answer-sheet-num{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;color:var(--purple-700)}.try-answer-sheet-val{font-size:10px;line-height:1.25;color:var(--ink-soft);word-break:break-all;min-height:1.25em}.try-answer-sheet-cell:not(.is-answered) .try-answer-sheet-val{color:var(--ink-mute)}.try-answer-sheet-mark{position:absolute;top:3px;right:4px;font-size:9px;font-weight:700;line-height:1}.try-answer-sheet-cell.is-correct .try-answer-sheet-mark{color:var(--success-fg)}.try-answer-sheet-cell.is-wrong .try-answer-sheet-mark{color:var(--danger-fg,#c0392b)}@media (max-width:1024px){.try-preview-body{flex-direction:column}.try-answer-sheet{width:100%;position:static;max-height:none}}.panel-num{position:absolute;top:14px;right:18px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--purple-400);letter-spacing:.13em;font-weight:500}.panel-title{display:flex;align-items:center;gap:10px;margin-bottom:4px}.panel-title .ord{width:4px;height:22px;background:var(--purple-600);border-radius:2px;flex-shrink:0}.panel-title h2{font-size:17px;font-weight:700;color:var(--ink)}.panel-sub{color:var(--ink-mute);font-size:13px;margin-bottom:18px;padding-left:14px}label{display:block;font-size:12px;color:var(--ink);font-weight:500;margin-bottom:6px}input[type=email],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{width:100%;background:white;border:1px solid var(--line-strong);color:var(--ink);font-family:inherit;font-size:14px;padding:10px 13px;border-radius:8px;transition:all .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--purple-600);box-shadow:0 0 0 3px var(--purple-100)}input::placeholder,textarea::placeholder{color:var(--purple-400)}textarea{min-height:90px;resize:vertical;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-bottom:14px}.field-row.three{grid-template-columns:1fr 1fr 1fr}.field{margin-bottom:14px}.hint{font-size:12px;color:var(--ink-mute);margin-top:5px;line-height:1.5}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border:none;cursor:pointer;font-family:inherit;font-weight:500;font-size:13px;transition:all .15s ease;border-radius:10px;white-space:nowrap}.btn-primary{background:var(--grad-purple);color:white;box-shadow:0 2px 8px rgba(92,75,156,.25)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 14px rgba(92,75,156,.35);transform:translateY(-1px)}.btn-primary:disabled{background:var(--purple-400);cursor:not-allowed;transform:none;box-shadow:none}.btn-accent{background:var(--purple-600);color:white}.btn-accent:hover{background:var(--purple-700)}.btn-ghost{background:white;color:var(--ink);border:1px solid var(--line-strong)}.btn-ghost:hover{border-color:var(--purple-600);color:var(--purple-700);background:var(--purple-50)}.btn-link{background:transparent;color:var(--purple-700);border:none;padding:6px 0;cursor:pointer;font-family:inherit;font-size:13px;font-weight:500}.btn-link:hover{text-decoration:underline}.btn-arrow{font-size:13px}.actions{gap:8px;flex-wrap:wrap;margin-top:4px}.actions,.section-rule{display:flex;align-items:center}.section-rule{gap:12px;margin:20px 0 12px}.section-rule h3{font-size:15px;font-weight:700;color:var(--ink)}.section-rule .line{flex:1 1;height:1px;background:var(--line)}.section-rule .ord{background:var(--purple-100);color:var(--purple-700);font-size:10px;padding:3px 10px;border-radius:10px;font-weight:600;letter-spacing:.05em}.empty-state{text-align:center;padding:48px 24px;color:var(--ink-mute)}.empty-state .ico{font-size:56px;margin-bottom:14px;opacity:.6}.bookshelf-search-root{position:relative;z-index:100;padding:12px 16px 0}.bookshelf-search-dropdown{position:absolute;left:16px;right:16px;top:calc(100% + 4px);z-index:101;max-height:min(360px,60vh);overflow-y:auto;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.14)}.bookshelf-search-item{display:block;width:100%;text-align:left;padding:10px 14px;border:none;border-bottom:1px solid var(--line);background:var(--paper);cursor:pointer;line-height:1.45;flex-shrink:0}.bookshelf-search-item:hover{background:var(--paper-2)}.bookshelf-search-item:last-child{border-bottom:none}.bookshelf-search-item-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-width:0}.bookshelf-search-item-title>span:last-child{flex:1 1 120px}.bookshelf-search-item-meta{margin-top:4px;font-size:11px;color:var(--ink-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{position:fixed;bottom:24px;right:24px;background:var(--grad-purple);color:white;padding:12px 20px;border-radius:12px;font-size:13px;font-weight:500;z-index:200;box-shadow:var(--shadow-lg);animation:tin .3s ease}.toast.success{background:linear-gradient(135deg,#4ABE73,#2D6B45)}.toast.error{background:linear-gradient(135deg,#E27791,#B5476B)}@keyframes tin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}footer{margin-top:40px;padding:18px 4px;border-top:1px solid var(--line);font-size:11px;color:var(--ink-dim);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:18px}.stat-card{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;transition:all .15s ease}.stat-card:hover{border-color:var(--purple-300);box-shadow:var(--shadow-md)}.stat-card .label{font-size:11px;color:var(--ink-mute);font-weight:500;margin-bottom:6px}.stat-card .num{font-size:28px;font-weight:700;color:var(--purple-700);line-height:1;letter-spacing:-.02em}.stat-card .num .small{font-size:13px;color:var(--ink-mute);font-weight:400;margin-left:2px}.dt{width:100%;border-collapse:collapse;font-size:13px}.dt td,.dt th{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line-soft)}.dt th{font-size:11px;color:var(--ink-mute);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.dt th,.dt tr:hover td{background:var(--bg-soft)}.dt .badge{display:inline-block;padding:3px 9px;font-size:10px;font-weight:600;background:var(--purple-100);color:var(--purple-700);border-radius:8px;letter-spacing:.02em}.dt .badge.ok{background:var(--success-bg);color:var(--success-fg)}.dt .badge.warn{background:var(--warn-bg);color:var(--warn-fg)}.dt .badge.bad{background:var(--error-bg);color:var(--error-fg)}.dt .student-id{background:var(--purple-100);color:var(--purple-700);font-size:9px;padding:2px 7px;border-radius:6px;margin-left:5px;font-family:JetBrains Mono,monospace;font-weight:500}.classes-table-scroll{overflow:auto;max-height:min(72vh,880px)}.dt-classes{--cls-col-1:148px;--cls-col-2:92px;--cls-col-3:76px;--cls-col-4:76px;--cls-head-row:38px;width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.dt-classes td,.dt-classes th{background:var(--bg-card)}.dt-classes thead th{position:-webkit-sticky;position:sticky;z-index:2;background:var(--bg-soft)}.dt-classes thead tr:first-child th{top:0}.dt-classes thead tr:nth-child(2) th{top:var(--cls-head-row)}.dt-classes .cls-sticky-1{position:-webkit-sticky;position:sticky;left:0;z-index:3;min-width:var(--cls-col-1);max-width:var(--cls-col-1)}.dt-classes .cls-sticky-2{position:-webkit-sticky;position:sticky;left:var(--cls-col-1);z-index:3;min-width:var(--cls-col-2);max-width:var(--cls-col-2)}.dt-classes .cls-sticky-3{position:-webkit-sticky;position:sticky;left:calc(var(--cls-col-1) + var(--cls-col-2));z-index:3;min-width:var(--cls-col-3);max-width:var(--cls-col-3)}.dt-classes .cls-sticky-4{position:-webkit-sticky;position:sticky;left:calc(var(--cls-col-1) + var(--cls-col-2) + var(--cls-col-3));z-index:3;min-width:var(--cls-col-4);max-width:var(--cls-col-4);box-shadow:4px 0 8px -4px rgba(42,36,56,.12)}.dt-classes thead .cls-sticky-1,.dt-classes thead .cls-sticky-2,.dt-classes thead .cls-sticky-3,.dt-classes thead .cls-sticky-4{z-index:5}.dt-classes thead tr:first-child th.cls-sticky-1{z-index:6}.dt-classes .cls-sticky-group{position:-webkit-sticky;position:sticky;left:var(--cls-col-1);z-index:4;min-width:calc(var(--cls-col-2) + var(--cls-col-3) + var(--cls-col-4))}.dt-classes tbody tr:hover .cls-sticky-1,.dt-classes tbody tr:hover .cls-sticky-2,.dt-classes tbody tr:hover .cls-sticky-3,.dt-classes tbody tr:hover .cls-sticky-4{background:var(--bg-soft)}.landing-card{background:white;border:1px solid var(--line);border-radius:14px;padding:32px;text-align:left;transition:all .2s ease}.landing-card:hover{border-color:var(--purple-600);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.landing-tag{display:inline-block;background:var(--purple-100);color:var(--purple-700);font-size:11px;font-weight:600;padding:4px 10px;border-radius:8px;margin-bottom:14px;letter-spacing:.04em}.landing-title{font-size:26px;font-weight:700;color:var(--purple-700);margin-bottom:8px;letter-spacing:-.02em}.landing-desc{font-size:13px;color:var(--ink-mute);line-height:1.6;margin-bottom:18px}.landing-cta{font-size:13px;color:var(--purple-700);font-weight:600}@media (max-width:880px){.field-row,.field-row.three,.stats-grid{grid-template-columns:1fr}.topbar{gap:10px}.tnav,.topbar{flex-wrap:wrap}.app-chrome .tnav{flex-wrap:nowrap}.panel{padding:18px}.hero{padding:22px 20px}.hero h1,.hero h2{font-size:19px}.stats-grid{grid-template-columns:repeat(2,1fr)}}.rte{border:1px solid var(--line-strong);border-radius:8px;background:white;overflow:hidden}.rte-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--paper-2,#f9f9f7)}.rte-btn,.rte-color{min-width:28px;height:28px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;background:white;cursor:pointer;font-family:inherit;font-size:13px;line-height:1}.rte-btn:hover,.rte-color:hover{border-color:var(--purple-500);background:var(--purple-50)}.rte-btn:disabled,.rte-color:disabled{opacity:.5;cursor:not-allowed}.rte-sep{width:1px;height:18px;background:var(--line);margin:0 4px}.rte-size{height:28px;width:auto;min-width:56px;max-width:72px;flex:0 0 auto;padding:0 4px;border:1px solid var(--line-strong);border-radius:4px;background:white;font-family:inherit;font-size:12px;cursor:pointer}.rte-size:disabled{opacity:.5;cursor:not-allowed}.rte-hint{font-size:11px;color:var(--ink-mute);margin-left:6px}.rte-editor{padding:10px 12px;font-size:14px;line-height:1.6;outline:none;min-height:72px}.rte-editor.is-empty:before,.rte-editor:empty:before{content:attr(data-placeholder);color:var(--ink-mute);pointer-events:none}.formatted-stem p,.rte-editor p{margin:0 0 .6em;line-height:1.6}.formatted-stem{word-break:break-word}.formatted-stem p:last-child,.rte-editor p:last-child{margin-bottom:0}.formatted-stem u,.rte-editor u{text-decoration:underline;text-underline-offset:2px}.formatted-stem mark,.rte-editor mark{background-color:#fff59d;color:inherit;padding:0 1px;border-radius:2px}.formatted-stem b,.formatted-stem strong,.rte-editor b,.rte-editor strong{font-weight:700}.formatted-stem img,.rte-editor img{max-width:100%;height:auto;border-radius:8px;margin:8px 0;display:block}.formatted-stem table,.rte-editor table{width:100%;max-width:100%;border-collapse:collapse;margin:10px 0;font-size:13px;table-layout:auto}.formatted-stem td,.formatted-stem th,.rte-editor td,.rte-editor th{border:1px solid var(--line-strong);padding:6px 8px;vertical-align:top;text-align:left;min-width:2em}.formatted-stem th,.rte-editor th{background:var(--purple-50);font-weight:600}.formatted-stem caption,.rte-editor caption{caption-side:top;font-size:12px;color:var(--ink-mute);margin-bottom:4px}.formatted-stem .stem-cols-2,.rte-editor .stem-cols-2{display:grid;grid-template-columns:1fr 1fr;align-items:start;align-content:start;grid-column-gap:28px;column-gap:28px;width:100%;margin:12px 0;box-sizing:border-box}.formatted-stem .stem-cols-3,.rte-editor .stem-cols-3{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;align-content:start;grid-column-gap:20px;column-gap:20px;width:100%;margin:12px 0;box-sizing:border-box}.formatted-stem .stem-col,.rte-editor .stem-col{align-self:start;min-width:0;height:auto}.formatted-stem .stem-col+.stem-col,.rte-editor .stem-col+.stem-col{border-left:1px dashed var(--line);padding-left:14px;margin-left:-14px}.formatted-stem .stem-cols-3 .stem-col+.stem-col,.rte-editor .stem-cols-3 .stem-col+.stem-col{margin-left:-10px;padding-left:10px}.formatted-stem .stem-col p,.rte-editor .stem-col p{margin:0 0 8px}.formatted-stem .stem-col img:first-child,.rte-editor .stem-col img:first-child{margin-top:0}.formatted-stem table.stem-cols-2,.formatted-stem table.stem-cols-3,.rte-editor table.stem-cols-2,.rte-editor table.stem-cols-3{border:none!important;border-collapse:collapse;margin:12px 0;width:100%}.formatted-stem table.stem-cols-2 tbody,.formatted-stem table.stem-cols-3 tbody,.rte-editor table.stem-cols-2 tbody,.rte-editor table.stem-cols-3 tbody{display:block}.formatted-stem table.stem-cols-2 tr,.formatted-stem table.stem-cols-3 tr,.rte-editor table.stem-cols-2 tr,.rte-editor table.stem-cols-3 tr{display:grid;align-items:start}.formatted-stem table.stem-cols-2 tr,.rte-editor table.stem-cols-2 tr{grid-template-columns:1fr 1fr;column-gap:28px}.formatted-stem table.stem-cols-3 tr,.rte-editor table.stem-cols-3 tr{grid-template-columns:1fr 1fr 1fr;column-gap:20px}.formatted-stem table.stem-cols-2 td,.formatted-stem table.stem-cols-3 td,.rte-editor table.stem-cols-2 td,.rte-editor table.stem-cols-3 td{display:block;border:none!important;vertical-align:top!important;height:auto!important;width:auto!important;padding:0;min-height:0}.formatted-stem table.stem-cols-2 td+td,.formatted-stem table.stem-cols-3 td+td,.rte-editor table.stem-cols-2 td+td,.rte-editor table.stem-cols-3 td+td{border-left:1px dashed var(--line);padding-left:14px}.formatted-stem table.stem-cols-2 td p,.formatted-stem table.stem-cols-3 td p,.rte-editor table.stem-cols-2 td p,.rte-editor table.stem-cols-3 td p{margin:0 0 8px}@media (max-width:720px){.formatted-stem .stem-cols-2,.formatted-stem .stem-cols-3,.rte-editor .stem-cols-2,.rte-editor .stem-cols-3{grid-template-columns:1fr;row-gap:12px}.formatted-stem .stem-col+.stem-col,.rte-editor .stem-col+.stem-col{border-left:none;margin-left:0;padding-left:0;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}.formatted-stem table.stem-cols-2,.formatted-stem table.stem-cols-2 tbody,.formatted-stem table.stem-cols-2 tr,.formatted-stem table.stem-cols-3,.formatted-stem table.stem-cols-3 tbody,.formatted-stem table.stem-cols-3 tr{display:block}.formatted-stem table.stem-cols-2 td,.formatted-stem table.stem-cols-3 td{display:block;width:100%!important;padding:12px 0!important;border-left:none!important;border-top:1px dashed var(--line)}.formatted-stem table.stem-cols-2 td:first-child,.formatted-stem table.stem-cols-3 td:first-child{border-top:none}}.concept-lesson-hero{padding:20px 22px;background:linear-gradient(135deg,var(--purple-50) 0,#fff 55%);border:1px solid var(--purple-200);border-radius:12px;margin-bottom:16px}.concept-lesson-badge{display:inline-block;font-size:11px;font-weight:600;color:var(--purple-700);background:white;border:1px solid var(--purple-300);border-radius:999px;padding:4px 10px;margin-bottom:10px}.concept-lesson-title{font-size:22px;font-weight:700;margin:0 0 6px;color:var(--purple-800)}.concept-lesson-topic{margin:0;font-size:14px;color:var(--ink-mute)}.concept-lesson-body{padding:22px 24px;line-height:1.75}.concept-lesson-content{font-size:15px}.concept-lesson-footer{margin-top:20px;display:flex;justify-content:center}.concept-lesson-complete-btn{min-width:220px;font-size:15px;padding:12px 20px}.concept-lesson-done{text-align:center;font-size:15px;font-weight:600;color:var(--success-fg);padding:12px 20px;background:var(--success-bg);border-radius:8px}.constituent-workbench{margin-top:8px}.constituent-sentence{gap:6px 4px;line-height:1.6;padding:12px;background:var(--bg-soft);border-radius:8px;border:1px solid var(--line)}.constituent-sentence,.constituent-toolbar{display:flex;flex-wrap:wrap;align-items:center}.constituent-toolbar{gap:6px;margin-top:10px}.const-token-btn{background:white;border:1px solid var(--line-strong);border-radius:6px;padding:0;cursor:pointer;font:inherit;font-size:15px;line-height:1.5;transition:box-shadow .15s,border-color .15s}.const-token-btn--readonly{cursor:default}.const-token-btn--selected{box-shadow:0 0 0 2px var(--purple-600);border-color:var(--purple-600)}.const-mark-inner{display:inline-block;padding:2px 6px;vertical-align:baseline}.const-mark--subject .const-mark-inner{border:2px solid #7c3aed;border-radius:2px;padding:1px 7px}.const-mark--verb .const-mark-inner{border:2px solid #2563eb;border-radius:999px;padding:1px 10px}.const-mark--object{position:relative;padding:0 2px}.const-mark--object .const-mark-inner{border-left:2px solid #16a34a;border-right:2px solid #16a34a;border-bottom:2px solid #16a34a;padding:2px 8px 3px;position:relative;z-index:1;background:white}.const-mark--object:before{content:"";position:absolute;left:0;right:0;top:0;height:9px;border-left:2px solid #16a34a;border-right:2px solid #16a34a;-webkit-clip-path:polygon(0 100%,50% 0,100% 100%);clip-path:polygon(0 100%,50% 0,100% 100%);pointer-events:none}.const-mark--complement{position:relative;padding:0 2px}.const-mark--complement .const-mark-inner{border-left:2px solid #ea580c;border-right:2px solid #ea580c;border-top:2px solid #ea580c;padding:3px 8px 2px;position:relative;z-index:1;background:white}.const-mark--complement:after{content:"";position:absolute;left:0;right:0;bottom:0;height:9px;border-left:2px solid #ea580c;border-right:2px solid #ea580c;-webkit-clip-path:polygon(0 0,50% 100%,100% 0);clip-path:polygon(0 0,50% 100%,100% 0);pointer-events:none}.word-pick-workbench{margin-top:8px}.word-pick-sentence{display:flex;flex-wrap:wrap;gap:6px 4px;align-items:center;line-height:1.6;padding:12px;background:var(--bg-soft);border-radius:8px;border:1px solid var(--line)}.word-pick-token{background:white;border:1px solid var(--line-strong);border-radius:6px;padding:4px 10px;cursor:pointer;font:inherit;font-size:15px;transition:background .15s,border-color .15s,box-shadow .15s}.word-pick-token--readonly{cursor:default}.word-pick-token--selected{background:var(--success-bg);border-color:var(--success-fg);color:var(--success-fg);font-weight:600;box-shadow:0 0 0 2px rgba(22,163,74,.25)}.word-pick-token:not(:disabled):hover{border-color:var(--purple-500)}.hub-date-bar{display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}.hub-date-nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.hub-date-title{font-size:1.25rem;font-weight:600}.hub-item-list{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.hub-item-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;transition:border-color .15s,box-shadow .15s}.hub-item-row:hover{border-color:var(--purple-300);box-shadow:var(--shadow-sm)}.hub-item-order{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--purple-100);color:var(--purple-700);border-radius:8px;font-weight:600;font-size:13px;flex-shrink:0}.hub-item-body{flex:1 1;min-width:0}.hub-item-label{font-weight:600}.hub-item-meta{font-size:12px;color:var(--ink-mute);margin-top:2px}.hub-item-arrow{color:var(--purple-500);font-weight:600}.hub-badge{font-size:11px;padding:4px 10px;border-radius:999px;font-weight:600;flex-shrink:0}.hub-badge.pending{background:var(--warn-bg);color:var(--warn-fg)}.hub-badge.done{background:var(--success-bg);color:var(--success-fg)}.hub-notice-block{padding:12px 14px;background:var(--info-bg);border-radius:10px;margin-top:10px}.hub-notice-block p{margin-top:6px;white-space:pre-wrap}.hub-notice-personal{background:var(--purple-100)}.hub-activity-list{list-style:none;display:grid;grid-gap:8px;gap:8px;margin-top:10px}.hub-activity-list li{display:flex;gap:10px;align-items:center;padding:8px 12px;background:var(--bg-soft);border-radius:8px}.hub-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:10px;gap:10px;margin-top:12px}.hub-app-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;background:white;border:1px solid var(--line);border-radius:12px;font-weight:500;text-align:center}.hub-app-card:hover{border-color:var(--purple-400)}.hub-app-emoji{font-size:1.5rem}.hub-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-top:12px}.hub-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--ink-mute)}.hub-form-grid input,.hub-form-grid select,.hub-form-grid textarea{font:inherit;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;background:white}.hub-plan-draft{list-style:none;margin-top:12px;display:grid;grid-gap:6px;gap:6px}.hub-plan-draft li{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-soft);border-radius:8px}.hub-teacher-nav-wrap{margin-bottom:16px}.hub-nav-section-label{font-size:11px;font-weight:700;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 6px;padding-left:4px}.hub-nav-secondary{margin-bottom:4px}.hub-report-table-wrap{overflow-x:auto;margin-top:12px}.hub-report-table{width:100%;border-collapse:collapse;font-size:13px}.hub-report-table td,.hub-report-table th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}.hub-report-table th{font-size:11px;color:var(--ink-mute);font-weight:600}.hub-student-app{max-width:1280px}.hub-student-page{margin-top:4px}.hub-student-hero{position:relative;border-radius:22px;overflow:hidden;margin-bottom:20px;min-height:140px}.hub-student-hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#7B68C8,#5C4B9C 45%,#1FA896);opacity:.95}.hub-student-hero-bg:after{content:"GWJ";position:absolute;right:-10px;top:-20px;font-size:120px;font-weight:800;color:rgba(255,255,255,.08);letter-spacing:-.06em;pointer-events:none}.hub-student-hero-inner{position:relative;z-index:1;padding:28px 32px;color:white}.hub-student-kicker{font-size:12px;font-weight:700;letter-spacing:.12em;opacity:.85;text-transform:uppercase}.hub-student-title{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:800;margin-top:4px;letter-spacing:-.03em}.hub-student-hero-inner .hub-student-title,.hub-student-hero-title{color:#fff!important}.hub-student-date{margin-top:6px;font-size:15px;opacity:.92}.hub-date-nav--hero{margin-top:16px;justify-content:flex-start}.hub-pill-btn{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:white;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hub-pill-btn:hover{background:rgba(255,255,255,.22)}.hub-pill-btn.active{background:white;color:var(--purple-700);border-color:white}.hub-pill-btn--light{border-color:var(--line-strong);background:white;color:var(--ink)}.hub-pill-btn--light:hover{background:var(--purple-50)}.hub-pill-btn--light.active{background:var(--purple-600);color:white;border-color:var(--purple-600)}.hub-error,.hub-loading{padding:20px;border-radius:14px;text-align:center}.hub-error{background:var(--error-bg);color:var(--error-fg)}.hub-student-shell{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);grid-gap:18px;gap:18px;align-items:start}@media (max-width:960px){.hub-student-shell{grid-template-columns:1fr}}.hub-bento{display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:118px 118px 118px;grid-template-areas:"hero hero library" "hero hero ranking" "reading results vocab";grid-gap:14px;gap:14px}@media (max-width:640px){.hub-bento{grid-template-columns:repeat(2,1fr);grid-template-rows:auto;grid-template-areas:"hero hero" "library ranking" "reading results" "vocab vocab"}}.hub-bento-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:18px 16px;border-radius:20px;overflow:hidden;min-height:108px;color:white;background:linear-gradient(145deg,var(--hub-accent-soft),var(--hub-accent));box-shadow:0 8px 24px rgba(0,0,0,.12);transition:transform .18s ease,box-shadow .18s ease}.hub-bento-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.16)}.hub-bento-card--hero{grid-area:hero;min-height:250px;padding:24px 22px}.hub-bento-card--library{grid-area:library}.hub-bento-card--ranking{grid-area:ranking}.hub-bento-card--reading{grid-area:reading}.hub-bento-card--results{grid-area:results}.hub-bento-card--vocab{grid-area:vocab}.hub-bento-deco{position:absolute;right:-20px;top:-20px;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.15)}.hub-bento-card--hero .hub-bento-deco{width:140px;height:140px;right:-30px;top:-30px}.hub-bento-emoji{font-size:28px;line-height:1;margin-bottom:auto}.hub-bento-card--hero .hub-bento-emoji{font-size:42px}.hub-bento-name{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}.hub-bento-card--hero .hub-bento-name{font-size:1.65rem}.hub-bento-tagline{font-size:12px;opacity:.88;margin-top:4px}.hub-bento-go{position:absolute;right:14px;bottom:14px;font-size:11px;font-weight:700;opacity:.85}.hub-today-strip{margin-top:16px;padding:16px 18px;background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm)}.hub-today-strip--due{border-color:var(--purple-200)}.hub-today-strip-head{display:flex;align-items:center;gap:8px;font-size:15px;margin-bottom:12px}.hub-today-strip-list{display:flex;flex-wrap:wrap;gap:8px}.hub-due-chip,.hub-plan-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:var(--purple-50);border:1px solid var(--purple-200);font-size:13px;font-weight:500;max-width:100%}.hub-due-chip:hover,.hub-plan-chip:hover{border-color:var(--purple-400)}.hub-plan-no{width:22px;height:22px;border-radius:50%;background:var(--purple-600);color:white;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hub-plan-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.hub-due-chip em{font-style:normal;font-size:11px;font-weight:700;margin-left:4px}.hub-due-chip em.pending{color:var(--warn-fg)}.hub-due-chip em.done{color:var(--success-fg)}.hub-student-side{display:grid;grid-gap:14px;gap:14px}.hub-side-card{background:white;border-radius:18px;border:1px solid var(--line);overflow:hidden;box-shadow:var(--shadow-sm)}.hub-side-title{padding:14px 16px 10px;font-size:14px;font-weight:700;border-bottom:3px solid var(--hub-side-accent,var(--purple-400))}.hub-side-body{padding:12px 16px 16px}.hub-side-empty{color:var(--ink-mute);font-size:13px;padding:8px 0}.hub-side-notice{padding:10px 12px;background:var(--info-bg);border-radius:10px;margin-bottom:8px}.hub-side-notice p{margin-top:4px;font-size:13px;line-height:1.5;white-space:pre-wrap}.hub-side-notice--personal{background:var(--purple-100)}.hub-side-label{font-size:11px;font-weight:700;color:var(--ink-mute)}.hub-rank-list{list-style:none;display:grid;grid-gap:6px;gap:6px}.hub-rank-list li{display:grid;grid-template-columns:28px 1fr auto;align-items:center;grid-gap:8px;gap:8px;padding:8px 10px;border-radius:10px;background:var(--bg-soft);font-size:13px}.hub-rank-list li.me{background:var(--purple-100);font-weight:700}.hub-rank-no{font-weight:800;color:var(--purple-600)}.hub-rank-score{font-weight:700;color:var(--purple-700)}.hub-my-rank{color:var(--ink-mute)}.hub-my-rank,.hub-side-link{margin-top:10px;font-size:12px}.hub-side-link{display:inline-block;font-weight:700;color:var(--purple-600)}.hub-tip{font-size:14px;line-height:1.6;font-weight:500;color:var(--ink-soft)}.hub-activity-mini{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.hub-activity-mini ul{list-style:none;margin-top:6px;display:grid;grid-gap:4px;gap:4px;font-size:12px;color:var(--ink-mute)}.hub-results-page{margin-top:4px}.hub-results-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}.hub-results-shell{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);grid-gap:18px;gap:18px;align-items:start}@media (max-width:900px){.hub-results-shell{grid-template-columns:1fr}}.hub-results-month-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:14px;font-size:1.1rem}.hub-cal-weekdays{text-align:center;font-size:11px;font-weight:700;color:var(--ink-mute);margin-bottom:8px}.hub-cal-grid,.hub-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr)}.hub-cal-grid{grid-gap:6px;gap:6px}.hub-cal-cell{aspect-ratio:1;border:1px solid var(--line);border-radius:12px;background:white;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;font:inherit;position:relative;transition:border-color .15s,background .15s}.hub-cal-cell.empty{visibility:hidden;pointer-events:none}.hub-cal-cell.has-data{background:var(--purple-50)}.hub-cal-cell.active{border-color:var(--purple-500);background:var(--purple-100);box-shadow:0 0 0 2px rgba(123,104,200,.25)}.hub-cal-day{font-weight:700;font-size:14px}.hub-cal-dot{font-size:10px;font-weight:700;color:var(--purple-700);background:white;border-radius:999px;padding:1px 6px;border:1px solid var(--purple-200)}.hub-results-summary{margin-top:14px;font-size:13px;color:var(--ink-mute);text-align:center}.hub-results-list{list-style:none;display:grid;grid-gap:10px;gap:10px}.hub-results-item{padding:12px 14px;background:var(--bg-soft);border-radius:12px;border:1px solid var(--line)}.hub-results-item-top{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.hub-results-item-top strong{font-size:12px;color:var(--purple-600);min-width:42px}.hub-results-status{margin-top:6px;font-size:12px;font-weight:600;color:var(--success-fg)}.student-home{display:grid;grid-gap:16px;gap:16px}.student-home-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.student-home-summary-chip{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;background:var(--paper-2,#f8fafc);border:1px solid var(--line);color:var(--ink-soft)}.student-home-summary-chip--now{background:var(--info-bg,#eff6ff);border-color:var(--info-fg,#1d4ed8);color:var(--info-fg,#1d4ed8)}.student-home-summary-chip--warn{background:var(--warn-bg,#fffbeb);border-color:var(--warn-fg,#b45309);color:var(--warn-fg,#b45309)}.student-home-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.student-home-section-title{margin:0;font-size:17px;font-weight:700}.student-home-section-link{font-size:12px;font-weight:600;color:var(--purple-700,#6d28d9);text-decoration:none;white-space:nowrap}.student-home-now-block{display:grid;grid-gap:12px;gap:12px}.student-home-now-cards{display:grid;grid-gap:10px;gap:10px}@media (min-width:720px){.student-home-now-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}.student-home-now-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);border-left-width:4px;background:var(--paper,#fff)}.student-home-now-card--active{box-shadow:var(--shadow-sm,0 1px 3px rgba(0,0,0,.06))}.student-home-now-card--idle{opacity:.72;background:var(--paper-2,#f8fafc)}.student-home-now-card-body{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1}.student-home-now-card-emoji{font-size:22px;line-height:1;flex-shrink:0}.student-home-now-card-meta{min-width:0}.student-home-now-card-track{display:block;font-size:12px;font-weight:700}.student-home-now-card-unit{display:block;margin-top:2px;font-size:15px;font-weight:700;color:var(--ink);line-height:1.35}.student-home-now-card-idle-label{display:block;margin-top:2px;font-size:13px;color:var(--ink-mute)}.student-home-now-cta{flex-shrink:0;white-space:nowrap;font-weight:700}.student-home-now-empty{margin:0;font-size:13px;color:var(--ink-mute)}.student-home-curriculum{border:1px solid var(--line);border-radius:12px;background:var(--paper-2,#f8fafc);padding:4px 12px 8px}.student-home-curriculum-summary{cursor:pointer;list-style:none;font-size:14px;font-weight:700;padding:10px 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.student-home-curriculum-summary::-webkit-details-marker{display:none}.student-home-curriculum-summary:before{content:"▸ ";color:var(--ink-mute)}.student-home-curriculum[open]>.student-home-curriculum-summary:before{content:"▾ "}.student-home-curriculum-hint{font-size:11px;font-weight:500;color:var(--ink-mute)}.student-home-curriculum .student-home-track-grid{margin-top:4px;margin-bottom:8px}.student-home-todos{padding:16px}.student-home-todo-list{display:grid;grid-gap:10px;gap:10px}.student-home-todo-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg-soft,#fafafa);text-decoration:none;color:inherit}.student-home-todo-row--static{background:var(--paper,#fff)}a.student-home-todo-row:hover{border-color:var(--purple-300,#c4b5fd);box-shadow:var(--shadow-sm,0 1px 3px rgba(0,0,0,.06))}.student-home-todo-main{display:flex;align-items:flex-start;gap:12px;min-width:0;flex:1 1}.student-home-todo-emoji{font-size:20px;line-height:1.2;flex-shrink:0}.student-home-todo-title{display:block;font-size:15px}.student-home-todo-sub{margin-top:3px;font-size:12px;color:var(--ink-mute);line-height:1.4}.student-home-todo-msg{margin-top:4px;font-size:12px;color:var(--success-fg,#15803d)}.student-home-todo-cta{flex-shrink:0;white-space:nowrap;pointer-events:none}button.student-home-todo-cta{pointer-events:auto}.student-home-todo-special{padding-top:4px}.student-home-todo-special-label{font-size:13px;font-weight:700;margin-bottom:8px;color:var(--ink-soft);display:flex;align-items:center;gap:6px}.student-home-special-embedded .student-home-special-donebox{margin-top:10px}.student-home-skip-retry{display:block;text-decoration:none;color:inherit;border:1px solid var(--maple);background:var(--paper-2)}.student-home-skip-retry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.student-home-skip-retry-go{font-size:12px;color:var(--maple);font-weight:700}.student-home-skip-retry-groups{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.student-home-skip-retry-chip{font-size:11px;padding:4px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--ink-soft)}.student-home-special-list{display:grid;grid-gap:10px;gap:10px}.student-home-special-empty{margin:0 0 4px;font-size:13px;color:var(--ink-mute)}.student-home-special-donebox{margin-top:14px;border-top:1px solid var(--line-soft);padding-top:10px}.student-home-special-donebox-summary{cursor:pointer;list-style:none;font-size:14px;font-weight:600;color:var(--ink-soft);-webkit-user-select:none;-moz-user-select:none;user-select:none}.student-home-special-donebox-summary::-webkit-details-marker{display:none}.student-home-special-donebox-summary:before{content:"▸ ";display:inline-block;transition:transform .12s}.student-home-special-donebox[open]>.student-home-special-donebox-summary:before{content:"▾ "}.student-home-special-donebox-list{margin-top:10px}.student-home-special-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg-soft);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.student-home-special-item:hover{border-color:var(--purple-300);box-shadow:var(--shadow-sm)}.student-home-special-item--done{border-color:var(--success-bg);background:var(--paper)}.student-home-special-item--urgent{border-color:var(--warn-bg)}.student-home-special-main{min-width:0;flex:1 1}.student-home-special-title{font-size:15px;font-weight:600;color:var(--ink)}.student-home-special-meta{margin-top:4px;font-size:11px;color:var(--ink-mute);letter-spacing:.04em;text-transform:uppercase}.student-home-special-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.student-home-special-due{font-size:11px;font-weight:600}.student-home-special-score{font-size:18px;font-weight:700;color:var(--purple-700)}.student-home-special-go{padding:6px 14px;font-size:13px;pointer-events:none}.student-home-track-grid{display:grid;grid-gap:10px;gap:10px}.student-home-track-card{border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);overflow:hidden}.student-home-track-card--active{border-color:var(--purple-300)}.student-home-track-card--open{background:var(--paper);box-shadow:var(--shadow-sm)}.student-home-track-head{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border:0;background:transparent;cursor:pointer;text-align:left;color:inherit;font:inherit}.student-home-track-head:hover{background:rgba(123,104,200,.04)}.student-home-track-emoji{font-size:22px;line-height:1;flex-shrink:0}.student-home-track-meta{flex:1 1;min-width:0}.student-home-track-label{display:block;font-size:16px;font-weight:700;color:var(--ink)}.student-home-track-summary{display:block;margin-top:2px;font-size:12px;color:var(--ink-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-home-track-chevron{flex-shrink:0;color:var(--purple-600);font-size:14px}.student-home-track-body{border-top:1px solid var(--line);padding:8px 10px 10px;display:grid;grid-gap:8px;gap:8px}.student-home-track-empty{padding:12px 8px;font-size:13px;color:var(--ink-mute);text-align:center}.student-home-part{border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);overflow:hidden}.student-home-part-head{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:0;background:transparent;cursor:pointer;text-align:left;color:inherit;font:inherit}.student-home-part-head:hover{background:rgba(123,104,200,.04)}.student-home-part-titles{min-width:0}.student-home-part-title{display:block;font-size:14px;font-weight:700;color:var(--ink)}.student-home-part-sub{display:block;margin-top:2px;font-size:12px;color:var(--ink-mute)}.student-home-part-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.student-home-part-due{font-size:10px;font-weight:600}.student-home-part-summary{font-size:11px;color:var(--purple-700);font-weight:600}.student-home-unit-list{border-top:1px solid var(--line);padding:8px;display:grid;grid-gap:8px;gap:8px}.student-home-unit{padding:10px 12px;border-radius:8px;background:var(--paper);border:1px solid var(--line-soft)}.student-home-unit--locked{opacity:.65}.student-home-unit-chapter{font-size:11px;font-weight:700;color:var(--purple-700);margin-bottom:6px}.student-home-unit-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-home-unit-info{min-width:0;flex:1 1}.student-home-unit-title{font-size:14px;font-weight:600;color:var(--ink)}.student-home-unit-meta{margin-top:3px;font-size:11px;color:var(--ink-mute)}.student-home-now-strip{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;padding:10px 12px;border-radius:10px;background:var(--purple-50,#f5f3ff);border:1px solid var(--purple-200,#ddd6fe)}.student-home-now-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;line-height:1.4}.student-home-now-emoji{font-size:14px}.student-home-now-label{color:var(--ink-mute);font-weight:600}.student-home-now-sep{color:var(--ink-soft)}.student-home-now-unit{color:var(--purple-800,#5b21b6);font-weight:700}.student-home-part-now{display:block;margin-top:2px;font-size:11px;font-weight:700;color:var(--purple-700,#6d28d9)}.student-home-unit--current{background:var(--purple-50,#f5f3ff);border-radius:8px}.student-home-unit-badge{margin-left:8px;font-size:10px;font-weight:700;padding:2px 6px;border-radius:999px}.student-home-unit-badge--now{color:white;background:var(--purple-600,#7c3aed)}.student-home-unit-badge--done{color:var(--success-fg);background:var(--success-bg)}.student-home-unit-badge--lock{color:var(--ink-mute);background:var(--line-soft)}.student-home-unit-btn{flex-shrink:0;padding:6px 12px;font-size:12px;white-space:nowrap}.student-home-unit-btn--disabled{cursor:not-allowed;opacity:.7;pointer-events:none}.student-home-history{padding:0;overflow:hidden}.student-home-history-summary{padding:16px 18px;cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:15px;font-weight:700;color:var(--ink-soft)}.student-home-history-summary::-webkit-details-marker{display:none}.student-home-history-summary:before{content:"▸ ";display:inline-block;color:var(--purple-600)}.student-home-history[open]>.student-home-history-summary:before{content:"▾ "}.student-home-history-list{display:grid;grid-gap:8px;gap:8px;padding:0 12px 12px;border-top:1px solid var(--line-soft)}.student-home-history-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 10px;color:inherit;text-decoration:none;border-bottom:1px solid var(--line-soft)}.student-home-history-item:last-child{border-bottom:0}.student-home-history-item:hover b,.student-home-history-item:hover strong{color:var(--purple-700)}.student-home-history-main{min-width:0}.student-home-history-main span,.student-home-history-main strong{display:block}.student-home-history-main strong{font-size:14px;color:var(--ink)}.student-home-history-main span{margin-top:3px;overflow:hidden;color:var(--ink-mute);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.student-home-history-side{display:flex;flex-shrink:0;flex-direction:column;align-items:flex-end;gap:3px;font-size:11px;color:var(--ink-mute)}.student-home-history-side b{font-size:12px;color:var(--purple-600)}.live-quiz-monitor{display:grid;grid-gap:14px;gap:14px}.live-quiz-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.live-quiz-toolbar-left,.live-quiz-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.live-quiz-status-dot{width:8px;height:8px;border-radius:50%;background:var(--success-fg);box-shadow:0 0 0 3px var(--success-bg)}.live-quiz-status-text{font-size:12px;color:var(--ink-mute)}.live-quiz-alert-pill{font-size:11px;font-weight:700;color:var(--error-fg);background:var(--error-bg);padding:4px 10px;border-radius:999px}.live-quiz-alert-pill--danger{animation:live-quiz-danger-pulse 1.2s ease-in-out infinite}@keyframes live-quiz-danger-pulse{0%,to{opacity:1}50%{opacity:.75}}.live-quiz-select{font:inherit;font-size:13px;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--paper)}.live-quiz-error{padding:12px;border-radius:10px;background:var(--error-bg);color:var(--error-fg);font-size:13px}.live-quiz-empty{padding:32px 16px;text-align:center;color:var(--ink-mute);font-size:14px}.live-quiz-empty-sub{margin-top:8px;font-size:12px}.live-quiz-grid{display:grid;grid-gap:12px;gap:12px}.live-quiz-card{border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);padding:14px}.live-quiz-card--alert{border-color:var(--warn-fg);background:var(--warn-bg)}.live-quiz-card--danger{border-color:var(--error-fg);background:var(--error-bg);box-shadow:0 0 0 1px color-mix(in srgb,var(--error-fg) 35%,transparent)}.live-quiz-card-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.live-quiz-student{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:15px;font-weight:700;color:var(--ink)}.live-quiz-class,.live-quiz-code{font-size:11px;font-weight:600;color:var(--ink-mute)}.live-quiz-learn-path{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 12px;color:var(--purple-700);line-height:1.45}.live-quiz-learn-item,.live-quiz-learn-path{font-size:12px;font-weight:600;word-break:break-word}.live-quiz-learn-item{color:var(--ink);line-height:1.35}.live-quiz-learn-item em{font-style:normal;font-size:10px;font-weight:700;color:var(--ink-mute);margin-right:4px}.live-quiz-stats{text-align:right}.live-quiz-alert-tag{display:inline-block;margin-bottom:4px;font-size:10px;font-weight:800;color:var(--error-fg);background:var(--error-bg);padding:3px 8px;border-radius:999px}.live-quiz-alert-tag--danger{font-size:11px;letter-spacing:.02em}.live-quiz-score{font-size:18px;font-weight:800;color:var(--ink)}.live-quiz-score-sub{display:block;font-size:11px;font-weight:600;color:var(--ink-mute)}.live-quiz-rate{font-size:13px;font-weight:700}.live-quiz-omr{display:flex;flex-wrap:wrap;gap:6px}.live-quiz-omr-cell{width:42px;min-height:42px;border-radius:8px;border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;line-height:1.1}.live-quiz-omr-cell--empty{opacity:.45}.live-quiz-omr-cell--ok{background:var(--success-bg);border-color:var(--success-fg);color:var(--success-fg)}.live-quiz-omr-cell--bad{background:var(--error-bg);border-color:var(--error-fg);color:var(--error-fg)}.live-quiz-omr-cell--skip{background:var(--warn-bg);border-color:var(--warn-fg);color:var(--warn-fg)}.live-quiz-omr-no{font-size:9px;opacity:.7}.live-quiz-omr-val{font-size:12px;font-weight:800}.live-quiz-card-foot{margin-top:10px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--ink-mute)}.live-quiz-legend{display:inline-flex;align-items:center;gap:8px}.live-quiz-legend .live-quiz-omr-cell{width:14px;min-height:14px;border-radius:4px;display:inline-block}@media (max-width:640px){.student-home-part-head{flex-direction:column}.student-home-part-side{flex-direction:row;align-items:center;flex-wrap:wrap;width:100%}.student-home-unit-row{flex-direction:column;align-items:stretch}.student-home-unit-btn{width:100%;text-align:center}}