:root{--ink:#172033;--muted:#68748b;--paper:#f4f6fa;--card:#fff;--line:#dfe4ee;--primary:#2157b8;--primary-dark:#173f88;--primary-soft:#eaf1ff;--green:#217249;--green-soft:#e7f6ed;--amber:#8d5c00;--amber-soft:#fff1d8;--red:#9a3737;--red-soft:#fdeaea;--shadow:0 10px 28px #1b2a490f}*{box-sizing:border-box}html{scroll-behavior:smooth;min-height:100%}body{background:radial-gradient(circle at top right, #2157b814, transparent 32rem), var(--paper);min-height:100vh;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.site-shell{width:min(1120px,100% - 32px);margin:0 auto;padding:24px 0 64px}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;display:flex}.brand{flex-direction:column;gap:2px;display:inline-flex}.brand-title{letter-spacing:-.02em;font-size:21px;font-weight:820}.brand-subtitle{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:12px}.topbar-actions,.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.identity-chip,.chip{background:var(--primary-soft);min-height:30px;color:var(--primary-dark);border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:760;display:inline-flex}.portal-nav{border:1px solid var(--line);box-shadow:var(--shadow);scrollbar-width:thin;background:#ffffffe6;border-radius:14px;align-items:center;gap:7px;margin:0 0 24px;padding:7px;display:flex;overflow-x:auto}.portal-nav-link{color:#44516a;white-space:nowrap;border-radius:9px;flex:none;padding:8px 10px;font-size:13px;font-weight:760}.portal-nav-link:hover{background:var(--primary-soft);color:var(--primary-dark)}.portal-nav-link:focus-visible{outline-offset:2px;outline:3px solid #d79a25}.portal-anchor,#to-do,#recommended,#grammar-map,#practice-check,#progress{scroll-margin-top:18px}.portal-anchor{margin-bottom:20px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:24px}.card-flat{box-shadow:none}.page-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:20px;display:grid}.stack{gap:16px;display:grid}.eyebrow{color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin:0 0 7px;font-size:12px;font-weight:820}h1,h2,h3,p{overflow-wrap:anywhere}h1{letter-spacing:-.035em;margin:0 0 10px;font-size:clamp(30px,5vw,42px);line-height:1.06}h2{letter-spacing:-.015em;margin:0 0 10px;font-size:22px}h3{margin:0 0 6px;font-size:17px}p{line-height:1.58}.lead{color:var(--muted);max-width:70ch;margin:0;font-size:16px}.muted{color:var(--muted)}.zh{color:#46536d;line-height:1.6}.divider{background:var(--line);height:1px;margin:20px 0}.button{cursor:pointer;background:var(--primary);color:#fff;border:0;border-radius:11px;justify-content:center;align-items:center;min-height:42px;padding:10px 15px;font-weight:780;transition:transform .12s,background .12s;display:inline-flex}.button:hover{background:var(--primary-dark)}.button:active{transform:translateY(1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button-secondary{color:var(--ink);background:#edf1f7}.button-secondary:hover{background:#e2e8f1}.button-small{min-height:34px;padding:7px 11px;font-size:13px}.button-wide{width:100%}.field{gap:6px;margin:14px 0;display:grid}.field label{font-size:13px;font-weight:760}.input,.select,.textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:11px;outline:none;padding:11px 12px}.input:focus,.select:focus,.textarea:focus{border-color:#8aa6dc;box-shadow:0 0 0 3px #2157b817}.textarea{resize:vertical;min-height:100px}.login-wrap{width:min(520px,100%);margin:7vh auto 0}.login-card{padding:clamp(24px,6vw,36px)}.login-mark{background:var(--primary-soft);color:var(--primary-dark);border-radius:999px;margin-bottom:20px;padding:7px 11px;font-size:12px;font-weight:800;display:inline-flex}.message{border-radius:11px;margin:14px 0;padding:11px 13px;font-size:13px;line-height:1.45}.message-error{color:var(--red);background:var(--red-soft)}.message-info{color:#6b4a00;background:#fff3d5}.message-success{color:var(--green);background:var(--green-soft)}.module-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:18px}.module-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.module-title{font-size:18px;font-weight:800}.module-actions{margin-top:15px}.state{color:#4c596f;white-space:nowrap;background:#eef1f6;border-radius:999px;align-items:center;padding:5px 8px;font-size:11px;font-weight:820;display:inline-flex}.state-secure{background:var(--green-soft);color:var(--green)}.state-practising{background:var(--amber-soft);color:var(--amber)}.state-learning{background:var(--red-soft);color:var(--red)}.state-review_due{color:#6548a3;background:#ede7ff}.progress-number{font-variant-numeric:tabular-nums;font-weight:800}.assignment-card{padding:0;overflow:hidden}.assignment-card-head{grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:18px;display:grid}.assignment-title{margin-top:10px}.assignment-instructions{margin:6px 0 0}.assignment-meta{min-width:158px;color:var(--muted);text-align:right;align-content:start;justify-items:end;gap:3px;font-size:12px;display:grid}.assignment-meta b{color:var(--ink);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.assignment-module-list{border-top:1px solid var(--line)}.assignment-module-row{border-top:1px solid var(--line);background:#fbfcff;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.assignment-module-row:first-child{border-top:0}.assignment-module-copy{gap:3px;min-width:0;display:grid}.assignment-module-copy>b{font-size:14px}.assignment-module-copy .zh{font-size:13px}.assignment-module-progress{font-size:11px}.assignment-module-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.assignment-locked{font-size:12px}.assignment-empty{text-align:left;justify-items:start;gap:10px;display:grid}.assignment-empty>span{font-size:13px}.assignment-history{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.assignment-history summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;font-weight:800;display:flex}.assignment-history summary span{background:var(--primary-soft);min-width:28px;color:var(--primary-dark);text-align:center;border-radius:999px;padding:4px 8px;font-size:11px}.assignment-history-list{margin-top:12px}.teacher-class-picker{min-width:230px;margin:0}.assignment-context-bar{color:#516179;background:#f7faff;border:1px solid #d6e0ef;border-radius:13px;flex-wrap:wrap;gap:8px;margin:18px 0 20px;padding:11px 12px;font-size:12px;display:flex}.assignment-context-bar span{border-right:1px solid #d6e0ef;padding-right:9px}.assignment-context-bar span:last-child{border-right:0}.assignment-form-grid{align-items:stretch}.assignment-step-card{background:#fbfcff}.assignment-step-label{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:850}.assignment-late-choice{background:#fff;margin-top:12px}.assignment-module-section{border:1px solid var(--line);background:#fbfcff;border-radius:16px;margin-top:20px;padding:20px}.assignment-select-actions{justify-content:flex-end}.assignment-node-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.assignment-node-choice{background:#fff;min-height:58px;margin:0}.assignment-node-choice>span{gap:2px;display:grid}.assignment-node-choice small{font-size:12px;display:block}.assignment-node-selected{background:var(--primary-soft);border-color:#8aa6dc}.assignment-publish-bar{background:#f5f8fd;border:1px solid #cbd8ec;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:14px 16px;display:flex}.assignment-publish-bar>div:first-child{gap:3px;display:grid}.assignment-publish-bar>div:first-child span{color:var(--muted);font-size:12px}.assignment-counts{justify-content:flex-end}.teacher-assignment-card{padding:0;position:relative;overflow:hidden}.teacher-assignment-card:before{content:"";background:#c8d1df;width:4px;position:absolute;inset:0 auto 0 0}.teacher-assignment-open:before{background:var(--green)}.teacher-assignment-scheduled:before{background:#d28b19}.teacher-assignment-overdue:before{background:var(--red)}.teacher-assignment-card-head{grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px 18px 12px 22px;display:grid}.teacher-assignment-title{margin-top:9px}.teacher-assignment-instructions{margin:5px 0 0}.teacher-assignment-dates{min-width:185px;color:var(--muted);text-align:right;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:11px;display:grid}.teacher-assignment-dates span{align-content:start;gap:3px;display:grid}.teacher-assignment-dates b{color:var(--ink);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.teacher-assignment-targets{flex-wrap:wrap;gap:7px;padding:0 18px 14px 22px;display:flex}.teacher-assignment-actions{border-top:1px solid var(--line);background:#fbfcff;padding:12px 18px 14px 22px}.concept-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0;display:grid}.concept-card{border:1px solid var(--line);background:#fbfcff;border-radius:15px;padding:16px}.concept-card p{margin:9px 0 0}.concept-title-zh{margin-top:6px;font-weight:700}.concept-example{background:var(--primary-soft);border-radius:11px;margin-top:12px;padding:11px 12px;line-height:1.55}.metric-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px;display:grid}.metric{border:1px solid var(--line);border-radius:14px;padding:14px}.metric-value{font-size:24px;font-weight:850;display:block}.metric-label{color:var(--muted);margin-top:2px;font-size:12px;display:block}.question{border-top:1px solid var(--line);padding:22px 0}.question:first-child{border-top:0}.question-no{color:var(--muted);letter-spacing:.08em;font-size:11px;font-weight:820}.question-prompt{margin:7px 0 4px;font-size:18px;font-weight:760;line-height:1.4}.choice{border:1px solid var(--line);cursor:pointer;border-radius:11px;align-items:flex-start;gap:9px;margin:8px 0;padding:10px 12px;display:flex}.choice:hover{background:#fafbfe}.choice input{margin-top:3px}.feedback{border-radius:11px;margin-top:10px;padding:11px 13px;font-size:14px;line-height:1.5}.feedback-correct{background:var(--green-soft);color:#175a39}.feedback-incorrect{background:var(--red-soft);color:#7f3030}.score-number{letter-spacing:-.04em;font-size:48px;font-weight:880}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 9px}th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:11px}code{background:#f0f3f8;border-radius:5px;padding:2px 5px;font-size:.92em}.teacher-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.learning-tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.learning-tool-grid>a{border:1px solid var(--line);background:#fafbfe;border-radius:13px;align-content:start;gap:6px;padding:15px;display:grid}.learning-tool-grid>a:hover{background:var(--primary-soft);border-color:#a8bcdf}.learning-tool-grid>a:focus-visible{outline-offset:2px;outline:3px solid #d79a25}.learning-tool-grid strong{font-size:14px}.learning-tool-grid span{color:var(--muted);font-size:12px;line-height:1.5}.credential-box{background:#fbfcff;border:1px dashed #aebad0;border-radius:13px;margin-top:14px;padding:13px}.empty{color:var(--muted);text-align:center;border:1px dashed #bcc6d7;border-radius:14px;padding:18px}@media (max-width:820px){.learning-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-grid,.teacher-tools,.concept-grid,.metric-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.assignment-card-head{grid-template-columns:1fr;gap:12px}.assignment-meta{text-align:left;justify-items:start;min-width:0}.assignment-node-grid{grid-template-columns:1fr}.assignment-publish-bar{flex-direction:column;align-items:flex-start}.teacher-assignment-card-head{grid-template-columns:1fr}.teacher-assignment-dates{text-align:left;min-width:0}}@media (max-width:560px){.learning-tool-grid{grid-template-columns:1fr}.site-shell{width:min(100% - 20px,1120px);padding-top:14px}.topbar{margin-bottom:10px}.topbar-actions{justify-content:flex-end}.brand-title{font-size:18px}.brand-subtitle{font-size:10px}.portal-nav{border-radius:12px;margin-bottom:18px}.portal-nav-link{padding:7px 9px;font-size:12px}.card{border-radius:16px;padding:18px}.identity-chip{display:none}.module-heading{flex-direction:column}.assignment-card-head{padding:16px}.assignment-module-row{flex-direction:column;align-items:flex-start;padding:14px 16px}.assignment-module-actions{justify-content:space-between;width:100%}.assignment-module-actions .button{width:100%}.teacher-class-picker{width:100%;min-width:0}.assignment-context-bar span{border-right:0;width:100%;padding:0}.assignment-module-section{padding:16px}.assignment-select-actions{justify-content:flex-start;width:100%}.assignment-publish-bar .row{width:100%}.assignment-publish-bar .button{flex:100%;width:100%}.teacher-assignment-dates{grid-template-columns:1fr}.teacher-assignment-actions .button{flex:auto}}:root{--surface-raised:#fff;--surface-muted:#f8faff;--surface-blue:#f3f7ff;--line-strong:#cbd6e5;--shadow-soft:0 1px 2px #1424400a, 0 12px 30px #2336580e;--shadow-hover:0 2px 6px #1424400f, 0 16px 34px #23365817;--focus:#d99625}body{background:radial-gradient(circle at 90% -10%,#2157b817,#0000 34rem),radial-gradient(circle at -10% 28%,#1d7e8b0d,#0000 30rem),linear-gradient(#f8fafd 0,#f3f6fa 34rem,#f6f8fb 100%)}.site-shell{padding-top:22px}.topbar{padding:0 2px}.brand-title{color:#13233e}.identity-chip,.chip{border:1px solid #d7e3f6;box-shadow:inset 0 1px #ffffffb3}.portal-nav{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe0;border-color:#dce3ee;box-shadow:0 1px 2px #14244009,0 10px 24px #2336580b}.portal-nav-link{border:1px solid #0000;transition:background .14s,border-color .14s,color .14s,transform .14s}.portal-nav-link:hover{background:#f2f6ff;border-color:#d7e3f6;transform:translateY(-1px)}.portal-nav-link:focus-visible,.button:focus-visible,.choice:focus-within,input:focus-visible,select:focus-visible,textarea:focus-visible,.feature-card:focus-visible,.tool-card:focus-visible,.ai-tool-card:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.card{box-shadow:var(--shadow-soft);border-color:#e0e6ef}.card-flat{background:linear-gradient(#fff 0,#fbfcfe 100%);border-color:#e2e7ef;box-shadow:0 1px 2px #14244006}.button{border:1px solid #143f882e;gap:7px;transition:transform .14s,background .14s,border-color .14s,box-shadow .14s;box-shadow:0 5px 14px #2157b826}.button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #2157b833}.button:active{transform:translateY(0);box-shadow:0 3px 9px #2157b824}.button-secondary{color:#34435b;background:#fff;border-color:#d3dce9;box-shadow:0 1px 2px #1424400a}.button-secondary:hover{color:var(--primary-dark);background:#f6f8fc;border-color:#b8c7dc;box-shadow:0 5px 13px #23365812}.button:disabled{box-shadow:none}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{color:var(--ink);background-color:#fff;border:1px solid #d4dce8;border-radius:12px;transition:border-color .14s,box-shadow .14s,background .14s;box-shadow:inset 0 1px 1px #14244006}input:not([type=checkbox]):not([type=radio]):not([type=range]):hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#bac6d7}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus{border-color:#7898d1;outline:none;box-shadow:0 0 0 3px #2157b81a,inset 0 1px 1px #14244005}input:disabled,select:disabled,textarea:disabled{color:#8993a3;background:#f3f5f8}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}input[type=checkbox]{width:17px;height:17px}.choice{background:#fff;border-color:#dbe2ec;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s;box-shadow:0 1px 2px #14244006}.choice:has(input:checked){background:#f1f6ff;border-color:#91abda;box-shadow:0 0 0 2px #2157b80f}.table-wrap{background:#fff;border:1px solid #e0e6ef;border-radius:14px}.table-wrap table{border-collapse:separate;border-spacing:0}.table-wrap th{background:#f8fafd}.table-wrap th:first-child{border-top-left-radius:13px}.table-wrap th:last-child{border-top-right-radius:13px}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover td{background:#fafcff}.empty{background:linear-gradient(#fbfcfe,#f7f9fc);border-color:#c7d1df}.feature-showcase{box-shadow:var(--shadow-soft);background:radial-gradient(circle at 93% 0,#2157b814,#0000 18rem),linear-gradient(145deg,#fff,#f8fbff);border:1px solid #d7e2ef;border-radius:22px;margin-bottom:20px;padding:22px}.feature-showcase-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;display:flex}.feature-showcase-head h2{margin-bottom:4px}.feature-showcase-head p:last-child{margin:0}.feature-showcase-pill{color:#31568f;letter-spacing:.08em;text-transform:uppercase;background:#f1f6ff;border:1px solid #d8e4f5;border-radius:999px;flex:none;padding:6px 9px;font-size:10px;font-weight:850}.feature-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;display:grid}.feature-card{background:#fffffff0;border:1px solid #dce3ed;border-radius:17px;flex-direction:column;min-height:164px;padding:17px;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s;display:flex;position:relative;box-shadow:0 1px 2px #14244006}.feature-card:hover{box-shadow:var(--shadow-hover);background:#fff;border-color:#b8c8dd;transform:translateY(-3px)}.feature-symbol{color:#24539f;background:#eef4ff;border-radius:12px;justify-content:center;align-items:center;width:39px;height:39px;margin-bottom:16px;font-size:19px;font-weight:900;display:inline-flex}.feature-card-audio .feature-symbol{color:#1f7465;background:#eaf8f5}.feature-card-games .feature-symbol{color:#966212;background:#fff3df}.feature-card-marking .feature-symbol{color:#6247a3;background:#f0ecff}.feature-badge{color:#607089;letter-spacing:.08em;text-transform:uppercase;background:#f3f6fa;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:850;position:absolute;top:15px;right:15px}.feature-card strong{letter-spacing:-.01em;font-size:15px}.feature-card p{color:var(--muted);margin:7px 0 14px;font-size:12px;line-height:1.5}.feature-link{color:var(--primary);margin-top:auto;font-size:12px;font-weight:800}.feature-link b{margin-left:4px}.tool-drawer{padding:0;overflow:hidden}.tool-drawer-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;list-style:none;display:flex}.tool-drawer-summary::-webkit-details-marker{display:none}.tool-drawer-summary>span:first-child{gap:3px;display:grid}.tool-drawer-summary strong{font-size:15px}.tool-drawer-summary small{color:var(--muted);font-size:11px;font-weight:600}.tool-drawer-action{color:#53637b;background:#f7f9fc;border:1px solid #d6dfec;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800}.tool-drawer[open] .tool-drawer-summary{border-bottom:1px solid var(--line);background:#fbfcfe}.tool-grid{padding:16px 18px 18px}.tool-card{align-items:flex-start;gap:12px;min-height:112px;transition:transform .14s,border-color .14s,box-shadow .14s;display:flex;position:relative;background:#fff!important;border:1px solid #e0e6ef!important;border-radius:15px!important;padding:16px 42px 16px 16px!important}.tool-card:hover{transform:translateY(-2px);box-shadow:0 9px 22px #23365812;border-color:#bdcadc!important}.tool-card-copy{gap:7px;display:grid}.tool-card-copy p{font-size:12px;line-height:1.45;margin:0!important}.tool-card-arrow{color:#45638f;background:#f0f4fb;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;font-weight:850;display:inline-flex;position:absolute;top:15px;right:15px}.learning-tool-grid>a{background:#fff;border-color:#e0e6ef;min-height:104px;padding:17px 42px 16px 16px;transition:transform .14s,border-color .14s,box-shadow .14s,background .14s;position:relative;box-shadow:0 1px 2px #14244006}.learning-tool-grid>a:after{content:"→";color:#4e6690;background:#eff4fb;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;font-weight:850;display:inline-flex;position:absolute;top:15px;right:15px}.learning-tool-grid>a:hover{background:#fff;border-color:#b8c8dd;transform:translateY(-2px);box-shadow:0 9px 22px #23365812}.page-hero{background:radial-gradient(circle at 95% 0,#2157b81a,#0000 19rem),linear-gradient(145deg,#fff,#f8fbff);position:relative;overflow:hidden}.page-hero:after{content:"";pointer-events:none;border:22px solid #2157b809;border-radius:50%;width:140px;height:140px;position:absolute;bottom:-76px;right:-72px}.compact-hero h1{font-size:clamp(30px,4.5vw,39px)}.page-actions{margin-top:16px}.ai-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.ai-tool-card{background:#fff;border:1px solid #dce3ed;border-radius:14px;align-content:start;gap:6px;min-height:104px;padding:15px 40px 15px 15px;transition:transform .14s,border-color .14s,box-shadow .14s;display:grid;position:relative}.ai-tool-card:after{content:"→";color:var(--primary);font-weight:850;position:absolute;top:14px;right:14px}.ai-tool-card:hover{border-color:#b7c7dd;transform:translateY(-2px);box-shadow:0 9px 20px #23365812}.ai-tool-card strong{font-size:13px}.ai-tool-card span{color:var(--muted);font-size:11px;line-height:1.45}.info-card{background:linear-gradient(#fff,#fbfcfe)}.media-studio{overflow:hidden}.media-studio>.eyebrow{margin-bottom:-6px}.media-studio label{color:#33415a;gap:7px;font-size:12px;font-weight:780;display:grid}.media-studio textarea,.media-studio input:not([type=checkbox]):not([type=radio]),.media-studio select{width:100%;padding:11px 12px}.media-studio textarea{resize:vertical;line-height:1.55}.studio-cost-note{color:#55657d;background:#f7faff;border:1px solid #dbe5f3;border-radius:12px;margin:0;padding:11px 13px;font-size:12px;line-height:1.5}.studio-section{background:linear-gradient(#fff,#fafcff);border-color:#dfe6ef;padding:18px}.studio-control-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:11px;display:grid}.studio-footnote{border-top:1px solid #e6ebf2;margin-bottom:0;padding-top:14px;font-size:11px}.studio-preview{background:#f9fbfe;border:1px solid #e0e6ef;border-radius:17px;padding:12px}.feature-banner{background:radial-gradient(circle at 88% 12%,#1d7e8b21,#0000 17rem),linear-gradient(135deg,#fff,#f5fbfb);border-color:#d5e1ee;position:relative;overflow:hidden}.feature-banner-topline{align-items:center;gap:8px;margin-bottom:9px;display:flex}.feature-banner-badge{color:#1f7465;letter-spacing:.09em;text-transform:uppercase;background:#e6f6f4;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900}@media (max-width:940px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.ai-tool-grid,.studio-control-grid{grid-template-columns:1fr}}@media (max-width:560px){.feature-showcase{border-radius:18px;padding:18px}.feature-showcase-head{flex-direction:column;gap:10px}.feature-grid{grid-template-columns:1fr}.feature-card{min-height:0}.tool-drawer-summary{align-items:flex-start}.tool-drawer-action{display:none}.tool-grid{padding:12px 14px 14px}.page-actions .button{flex:auto}}.reference-gate-card{background:radial-gradient(circle at 92% 0,#2157b814,#0000 15rem),linear-gradient(145deg,#fff,#f8fbff)}.reference-gate-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.reference-gate-badge,.source-chip,.reference-context-label,.authority-badge{letter-spacing:.075em;text-transform:uppercase;border-radius:999px;align-items:center;width:max-content;font-size:9px;font-weight:900;display:inline-flex}.reference-gate-badge{color:#315a96;background:#eaf3ff;border:1px solid #d5e4f7;padding:5px 8px}.authority-flow{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:7px;margin:15px 0;display:grid}.authority-flow>div{background:#fff;border:1px solid #dfe6ef;border-radius:12px;gap:3px;min-height:70px;padding:11px;display:grid}.authority-flow strong{color:#26466f;font-size:11px}.authority-flow span{color:var(--muted);font-size:10px;line-height:1.35}.authority-flow>b{color:#8a9ab0}.reference-details{margin-top:12px}.reference-details>summary{cursor:pointer;color:#36516f;font-weight:800}.reference-ladder{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.reference-ladder li{background:#fff;border:1px solid #e3e8ef;border-radius:11px;grid-template-columns:26px 1fr;align-items:start;gap:10px;padding:9px;display:grid}.reference-ladder li>span{color:#315a96;background:#eef4ff;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:900;display:flex}.reference-ladder p{color:var(--muted);margin:3px 0 0;font-size:10px;line-height:1.4}.reference-context{background:#fafbfd;border:1px solid #e0e5ed;border-left:4px solid #98a6b8;border-radius:12px;gap:5px;padding:12px 13px;display:grid}.reference-context-ready{background:#f5fbf9;border-left-color:#2f8779}.reference-context>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.reference-context-label{color:#52657f;background:#edf2f8;padding:4px 7px}.reference-context-ready .reference-context-label{color:#226b60;background:#e3f4ef}.reference-context p,.reference-context small{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.feedback-mode-picker{background:linear-gradient(#fff,#fafcff);border:1px solid #dce4ee;border-radius:15px;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.2fr);align-items:center;gap:14px;margin:0 0 16px;padding:14px;display:grid}.feedback-mode-copy{gap:4px;display:grid}.feedback-mode-copy p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.feedback-mode-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.feedback-mode-option{color:#45566f;cursor:pointer;background:#fff;border:1px solid #d9e1ec;border-radius:11px;min-height:44px;padding:9px;transition:all .14s}.feedback-mode-option:hover{background:#f8faff;border-color:#b7c7da}.feedback-mode-option[aria-pressed=true]{color:#244f91;background:#eef4ff;border-color:#7898d1;box-shadow:0 0 0 2px #2157b80f}.feedback-mode-option:disabled{cursor:not-allowed;opacity:.65}.marking-submission-card{gap:9px;display:grid}.submission-title-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.authority-badge{color:#5c6b7f;background:#f5f7fa;border:1px solid #dce4ee;flex:none;padding:5px 8px}.authority-rubric{color:#315a96;background:#eaf3ff;border-color:#d0e1f5}.authority-exact{color:#1f7465;background:#e5f6ef;border-color:#cae9df}.submission-reference-strip{background:#fafbfd;border:1px solid #e2e7ee;border-radius:11px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px 11px;display:grid}.submission-reference-ready{background:#f7fbff;border-color:#d6e3f3}.submission-reference-strip p{color:var(--muted);margin:3px 0 0;font-size:10px;line-height:1.4}.source-provenance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.source-provenance-grid>div{background:#fafbfd;border:1px solid #e2e7ee;border-radius:10px;gap:4px;padding:10px;display:grid}.source-provenance-grid span{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:9px;font-weight:800}.source-list{gap:7px;padding:0;list-style:none;display:grid}.source-list li{background:#fff;border:1px solid #e3e8ef;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:7px 10px;padding:9px;font-size:11px;display:grid}.source-list code{color:#6b7788;overflow-wrap:anywhere;grid-column:2;font-size:9px}.source-chip{color:#236f63;background:#e5f6ef;padding:4px 6px}@media (max-width:760px){.authority-flow{grid-template-columns:1fr}.authority-flow>b{justify-self:center;transform:rotate(90deg)}.feedback-mode-picker,.feedback-mode-options,.source-provenance-grid,.submission-reference-strip{grid-template-columns:1fr}}:root{--bg:#f4f8fb;--surface:#fff;--ink:#0f2942;--muted:#52667a;--line:#d5e2ec;--primary:#0b5cab;--primary-soft:#e8f2fc}.topbar{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;border-bottom:1px solid #d5e2ece6;position:sticky;top:0;box-shadow:0 2px 12px #0f29420a}.portal-nav{z-index:45;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#f8fbfef0;gap:6px;padding-top:8px;padding-bottom:8px;position:sticky;top:64px}.portal-nav-link{color:#2c465d;border-radius:10px;align-items:center;min-height:38px;padding:7px 13px;font-size:13px;font-weight:750;transition:background .15s,color .15s,transform .12s;display:inline-flex}.portal-nav-link:hover,.portal-nav-link:focus-visible{color:#09355e;background:#e3f1fc;transform:translateY(-1px)}.card{border:1px solid #d7e3ee;border-radius:20px;box-shadow:0 2px 6px #0f294208,0 12px 28px #0f29420d}.module-card{background:#fff;border:1px solid #d7e3ee;border-radius:16px;transition:transform .15s,box-shadow .15s,border-color .15s}.module-card:hover{border-color:#9ec3e6;box-shadow:0 8px 22px #0b5cab14}.button{letter-spacing:-.01em;border-radius:12px;min-height:44px;font-weight:800;transition:transform .12s,box-shadow .15s,background .15s}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #0b5cab2e}.button:active:not(:disabled){transform:translateY(0)}.button-small{border-radius:10px;min-height:38px;padding:7px 13px}.exercise-progress-bar{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;border:1px solid #c8dced;border-radius:14px;margin:14px 0;padding:12px 16px;position:sticky;top:112px;box-shadow:0 6px 18px #0f294212}.exercise-progress-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:13px;display:flex}.exercise-progress-track{background:#e3edf5;border-radius:999px;width:100%;height:8px;overflow:hidden}.exercise-progress-fill{background:linear-gradient(90deg,#0b5cab,#1d95a4);border-radius:999px;height:100%;transition:width .25s}.question{background:#fbfdff;border:1px solid #d9e5f0;border-radius:16px;margin-bottom:16px;padding:20px;transition:border-color .15s,box-shadow .15s}.question:focus-within{background:#fff;border-color:#67a5e0;box-shadow:0 0 0 3px #0b5cab1a}.choice{cursor:pointer;background:#fff;border:1.5px solid #d5e2ec;border-radius:12px;align-items:center;gap:12px;min-height:48px;margin-bottom:8px;padding:11px 15px;font-weight:600;transition:border-color .14s,background .14s,box-shadow .14s;display:flex}.choice:hover{background:#f4f9fe;border-color:#7eb3e6}.choice:has(input:checked){color:#08386b;background:#eaf4fe;border-color:#0b5cab;font-weight:750;box-shadow:0 2px 8px #0b5cab1a}.choice input[type=radio]{accent-color:#0b5cab;flex-shrink:0;width:20px;height:20px}.input,.textarea,.select{border:1.5px solid #c9d8e6;border-radius:12px;min-height:46px;padding:10px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:#0b5cab;outline:none;box-shadow:0 0 0 3px #0b5cab24}@media (max-width:720px){.portal-nav{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;top:0;overflow-x:auto}.exercise-progress-bar{padding:10px 12px;top:56px}.question{padding:15px}}
.teacher-analysis{overflow:hidden}.analysis-header{grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;gap:28px;display:grid}.analysis-header>div:first-child>.muted{max-width:64ch}.analysis-controls{border:1px solid var(--line);background:#fbfcff;border-radius:14px;grid-template-columns:1fr;gap:4px;padding:14px;display:grid}.analysis-controls .field{margin:0}.analysis-controls .field+.field{margin-top:10px}.analysis-scope-banner{background:#f7faff;border:1px solid #d8e1ef;border-radius:13px;align-items:flex-start;gap:12px;margin-top:18px;padding:12px 14px;display:flex}.analysis-scope-banner>div{min-width:0}.analysis-scope-banner b{margin-bottom:2px;display:block}.analysis-scope-banner p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.analysis-priority-grid{grid-template-columns:minmax(0,1.45fr) minmax(240px,.55fr);align-items:stretch;gap:16px;margin-top:16px;display:grid}.analysis-priority-panel{background:#fbfcff;border:1px solid #d8e1ef;border-radius:16px;padding:18px}.analysis-priority-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.analysis-priority-head h2{margin-bottom:5px}.analysis-priority-head .muted{margin:0;font-size:13px}.analysis-attention-list{gap:8px;display:grid}.analysis-attention-row{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:11px 12px;display:flex}.analysis-attention-code{gap:2px;min-width:0;display:grid}.analysis-attention-code b{font-size:14px}.analysis-attention-code span{color:var(--muted);font-size:11px}.analysis-attention-reasons{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.analysis-clear-state{background:var(--green-soft);color:var(--green);border:1px solid #cfe4d7;border-radius:12px;padding:16px;font-size:13px;font-weight:760}.analysis-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.analysis-metric{border:1px solid var(--line);background:#fff;border-radius:14px;align-content:center;min-height:100px;padding:14px;display:grid}.analysis-metric-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(24px,4vw,31px);font-weight:850}.analysis-metric-label{color:var(--muted);margin-top:4px;font-size:11px;font-weight:760}.analysis-section-nav{border:1px solid var(--line);scrollbar-width:thin;background:#fff;border-radius:13px;align-items:center;gap:7px;margin-top:18px;padding:8px;display:flex;overflow-x:auto}.analysis-section-nav a{color:#4b5870;white-space:nowrap;border-radius:9px;flex:none;padding:7px 10px;font-size:12px;font-weight:760}.analysis-section-nav a:hover{background:var(--primary-soft);color:var(--primary-dark)}.analysis-section{border-top:1px solid var(--line);margin-top:20px;padding-top:20px;scroll-margin-top:18px}.analysis-section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.analysis-section-heading .muted{margin:0;font-size:13px}.analysis-subsection{border:1px solid var(--line);background:#fbfcff;border-radius:13px;margin-top:16px;padding:14px}.analysis-subsection h3{margin-bottom:10px}.analysis-student-detail{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.analysis-student-detail>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;list-style:none;display:flex}.analysis-student-detail>summary::-webkit-details-marker{display:none}.analysis-student-detail>summary:hover{background:#fbfcff}.analysis-student-detail>summary>span:first-child{gap:2px;min-width:0;display:grid}.analysis-student-detail>summary small{color:var(--muted);font-size:11px;font-weight:600}.analysis-student-detail[open]>summary{border-bottom:1px solid var(--line);background:#fbfcff}.analysis-student-meta{padding:12px 16px 0}.analysis-attempt-list{padding:12px 16px 16px}.analysis-attempt-card{border:1px solid var(--line);background:#fbfcff;border-radius:12px;padding:14px}@media (max-width:900px){.analysis-header{grid-template-columns:1fr;gap:14px}.analysis-priority-grid{grid-template-columns:1fr}.analysis-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.analysis-metric{min-height:84px}}@media (max-width:640px){.analysis-controls{padding:12px}.analysis-scope-banner{flex-direction:column}.analysis-priority-panel{padding:15px}.analysis-priority-head,.analysis-section-heading{flex-direction:column}.analysis-attention-row{flex-direction:column;align-items:flex-start}.analysis-attention-reasons{justify-content:flex-start}.analysis-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-metric{min-height:82px}.analysis-section-nav{margin-inline:-4px}.analysis-student-detail>summary{align-items:flex-start}.analysis-student-meta{align-items:stretch}.analysis-student-meta .button{width:100%}}
.account-management{gap:18px;display:grid}.account-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.account-step-card{border:1px solid var(--line);background:#fbfcff;border-radius:16px;min-width:0;padding:20px}.account-roster-card{align-content:start;display:grid}.account-step-heading{align-items:flex-start;gap:12px;display:flex}.account-step-heading .eyebrow{margin-bottom:4px}.account-step-heading h3{margin-bottom:0}.account-step-number{background:var(--primary);color:#fff;border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;font-weight:850;display:inline-flex}.account-form-row{grid-template-columns:minmax(90px,.7fr) minmax(140px,1.3fr);gap:12px;display:grid}.account-roster-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 16px;display:grid}.account-roster-summary span{min-height:64px;color:var(--muted);background:#fff;border:1px solid #d8e1ef;border-radius:12px;align-content:center;padding:10px;font-size:11px;line-height:1.35;display:grid}.account-roster-summary b{color:var(--ink);font-size:19px;line-height:1.1;display:block}.account-next-step{color:var(--muted);background:#fff;border:1px dashed #b9c6da;border-radius:12px;padding:13px;font-size:13px;line-height:1.5}.account-privacy-note{background:var(--primary-soft);color:#405274;border-radius:11px;margin:14px 0 0;padding:11px 12px;font-size:12px;line-height:1.5}.account-exceptions{border:1px solid var(--line);background:#fff;border-radius:15px;overflow:hidden}.account-exceptions>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:15px 17px;list-style:none;display:flex}.account-exceptions>summary::-webkit-details-marker{display:none}.account-exceptions>summary:hover{background:#fbfcff}.account-exceptions>summary>span:first-child{gap:2px;min-width:0;display:grid}.account-exceptions>summary small{color:var(--muted);font-size:11px;font-weight:600}.account-exceptions[open]>summary{border-bottom:1px solid var(--line);background:#fbfcff}.account-exception-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.account-exception-card{min-width:0;padding:18px}.account-exception-card+.account-exception-card{border-left:1px solid var(--line)}.account-exception-card>.muted{font-size:13px}.account-removal-card{background:#fffdfb}.account-safety-note{color:#75531d;background:#fff8ea;border:1px solid #ead9be;border-radius:11px;margin:12px 0;padding:10px 11px;font-size:12px;line-height:1.45}@media (max-width:820px){.account-setup-grid,.account-exception-grid{grid-template-columns:1fr}.account-exception-card+.account-exception-card{border-left:0;border-top:1px solid var(--line)}}@media (max-width:560px){.account-step-card{padding:16px}.account-form-row{grid-template-columns:1fr;gap:0}.account-roster-summary{grid-template-columns:1fr}.account-roster-summary span{min-height:0}.account-exceptions>summary{align-items:flex-start}.account-exceptions>summary>.chip{display:none}.account-exception-card{padding:16px}}.account-step-card{background:linear-gradient(#fff,#fafcff);border-color:#dee5ee;box-shadow:0 1px 2px #14244006}.account-step-number{box-shadow:0 5px 12px #2157b82b}.account-roster-summary span{border-color:#dfe6ef;box-shadow:0 1px 2px #14244005}.account-exceptions{border-color:#dfe5ee;box-shadow:0 1px 2px #14244006}.account-exceptions>summary{transition:background .14s}.account-exception-card{background:#fff}
.progression-role-hero{grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);align-items:stretch;gap:20px;margin-bottom:20px;display:grid}.progression-role-status{border:1px solid var(--line);background:#fbfcff;border-radius:16px;padding:18px}.progression-role-status h2{margin-top:10px}.progression-role-status p{color:var(--muted);margin-bottom:0}.progression-role-status-pending{background:#fffaf0;border-color:#ead8a8}.progression-role-path{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.progression-path-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:18px}.progression-path-live{background:#f7fcf9;border-color:#b8d7c4}.progression-path-step{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:850;display:inline-block}.progression-path-card h2,.progression-control-card h3,.progression-checkpoint-card h3{margin-top:8px}.progression-path-card p{color:var(--muted)}.progression-role-section{margin-top:20px}.progression-checkpoint-grid,.progression-control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.progression-checkpoint-card,.progression-control-card{border:1px solid var(--line);background:#fbfcff;border-radius:14px;padding:16px}.progression-readiness-summary{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.progression-readiness-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.progression-readiness-card{border:1px solid var(--line);background:#fbfcff;border-radius:13px;align-content:start;gap:9px;padding:14px;display:grid}.progression-readiness-card .state{justify-self:start}@media (max-width:820px){.progression-role-hero,.progression-role-path{grid-template-columns:1fr}.progression-readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.progression-checkpoint-grid,.progression-control-grid,.progression-readiness-grid{grid-template-columns:1fr}.progression-role-hero,.progression-role-path{gap:10px}.progression-role-status,.progression-path-card,.progression-checkpoint-card,.progression-control-card,.progression-readiness-card{padding:14px}.progression-path-card .row .button,.progression-role-section .row .button{width:100%}}
