@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2) format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-500-normal-Dk9ku72i.woff2) format("woff2"),url(/assets/instrument-sans-latin-500-normal-Z6ESRlEs.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2) format("woff2"),url(/assets/instrument-sans-latin-600-normal-B9e8oLYv.woff) format("woff")}@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2) format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff) format("woff")}:root{color-scheme:light;--ground: #fcfcfa;--surface: #f2f3ed;--raised: #fff;--text: #262c25;--muted: #555f55;--line: #dce1d7;--control: #aab5a8;--accent: #1b6e66;--hover: #14564f;--active: #e4e8e1;--positive: #245f39;--warning: #815120;--warning-bg: #f3e8d5;--negative: #a32628;--radius: 16px;--space: 16px;font-family:Instrument Sans,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:16px;font-variant-numeric:tabular-nums;color:var(--text);background:var(--ground)}*,*:before,*:after{box-sizing:border-box}body,h1,h2,p,dl,dd{margin:0}h1{font-size:2rem;line-height:1.25;letter-spacing:-.025em}h2{font-size:1.1rem;line-height:1.45}p{line-height:1.65}p+p{margin-top:6px}a{color:inherit;text-underline-offset:.2em}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled{cursor:default;opacity:.52}button svg,a svg{flex-shrink:0}::selection{background:#d5e9df;color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[tabindex="-1"]:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;top:8px;left:12px;z-index:2;transform:translateY(-150%);padding:12px;background:var(--raised)}.skip:focus{transform:none}.muted,small{color:var(--muted)}small{font-size:.87rem}.positive{color:var(--positive)}.warning{color:var(--warning)}.error{color:var(--negative)}.notice,.feedback{padding:var(--space);background:var(--active);border-radius:10px}.notice{margin-bottom:var(--space)}form .notice{margin-bottom:0}.stack{display:grid;gap:var(--space);align-content:start}.actions,.section-heading,.overview-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.section-heading,.overview-actions{justify-content:space-between}.section-heading{margin-bottom:8px}.section-heading h2{margin:0}.button,.text-button,.nav a,.back,.text-link{min-height:44px;display:inline-flex;align-items:center;gap:8px}.button{justify-content:center;border:1px solid var(--control);background:var(--raised);color:var(--text);border-radius:999px;padding:9px 16px;text-decoration:none;font-weight:600;transition:background-color .16s,border-color .16s}.button:not(:disabled):hover{background:var(--active)}.button.primary{border-color:var(--accent);background:var(--accent);color:var(--raised)}.button.primary:not(:disabled):hover{background:var(--hover);border-color:var(--hover)}.icon-button{padding:0;width:44px}.text-link,.text-button,.back{color:var(--accent);font-weight:600}.text-button{background:transparent;border:0;padding:0;text-decoration:underline;text-underline-offset:.2em}label{display:grid;gap:6px;font-weight:600}input:not([type=radio],[type=checkbox]),select,textarea{color:var(--text);background:var(--raised);border:1px solid var(--control);border-radius:8px;min-height:44px;width:100%;padding:9px 12px;font-weight:400;caret-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted)}input[type=radio],input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--accent);flex:none}textarea{resize:vertical}fieldset{min-width:0;margin:0;border:0;padding:0}legend{padding:0;margin-bottom:8px;font-weight:600}.checkbox{display:flex;align-items:center;gap:10px;min-height:44px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space)}.brand{display:flex;align-items:center;min-width:0}.brand-logo{display:block;width:150px;max-width:100%;height:auto;object-fit:contain}.brand-hero .brand-logo{width:192px}.shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:29px 18px 18px;border-right:1px solid var(--line)}.sidebar .brand{margin:0}.nav{display:grid;gap:4px;margin-top:34px}.nav a{padding:8px 10px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:.925rem}.nav a:hover,.nav a.router-link-active,.nav a.current{background:var(--active);color:var(--text)}.nav a.router-link-active,.nav a.current{font-weight:600}.account{display:flex;align-items:center;gap:6px;justify-content:space-between;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.account strong,.account small{display:block;overflow-wrap:anywhere}.workspace{width:min(100%,1200px);margin:0 auto;padding:54px 40px}.page-heading{margin-bottom:26px}.page-heading p{margin-top:8px;color:var(--muted)}.surface{background:var(--surface);border-radius:var(--radius);min-width:0;padding:20px}.surface>h2{margin-bottom:8px}.section{margin-top:24px}.section>h2{margin-bottom:8px}.rows{margin:0;list-style:none;padding:0}.row{display:flex;gap:14px;align-items:center;min-height:63px;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0;overflow-wrap:anywhere}.row small,.choice small{display:block;margin-top:3px}.row>span{flex-shrink:0}.row-link{text-decoration:none}.row-link:hover strong{color:var(--accent);text-decoration:underline}.badge{display:inline-block;font-size:.77rem;font-weight:600;border-radius:5px;padding:3px 7px;background:var(--active);color:var(--text);vertical-align:middle;white-space:nowrap}.warning-badge{background:var(--warning-bg);color:var(--warning)}.metrics,.overview-grid,.form-grid{display:grid;gap:var(--space)}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0 var(--space)}.metrics dt{color:var(--muted);font-size:.9rem}.metrics dd{margin-top:7px;font-size:2rem}.overview-grid{grid-template-columns:minmax(0,2fr) minmax(240px,1fr)}.form-grid{grid-template-columns:3fr 2fr;align-items:start}.choice{display:flex;gap:12px;align-items:center;margin-top:8px;min-height:48px;border:1px solid var(--line);background:var(--raised);cursor:pointer;padding:9px 13px;border-radius:8px;font-weight:500;overflow-wrap:anywhere}.choice:hover,.choice.selected{border-color:var(--accent)}.choice.correct{background:#e0eee5}fieldset:disabled .choice,.choice:has(input:disabled){cursor:default}.choice:has(input[type=checkbox]:disabled):not(.selected){color:var(--muted)}.role-student .page-heading h1{font-family:"Instrument Serif",Songti SC,SimSun,serif;font-size:2.6rem}.notebook{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:34px}.notebook h2{font-size:1.55rem;margin:4px 0 8px}.notebook .button{margin-top:16px}.notebook-mark{display:grid;place-items:center;width:86px;aspect-ratio:1;border:1px solid var(--control);color:var(--accent);border-radius:6px}.exercise,.editor{max-width:720px}.exercise legend{font-size:1.2rem}.exercise .prompt{white-space:pre-wrap;font-size:1.15rem;margin-bottom:var(--space)}.exercise .choice{min-height:54px;font-size:1.05rem}.option-letter{color:var(--muted)}.table-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:var(--space)}.table-tools .primary{margin-left:auto}.table-wrap{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{padding:12px 14px 12px 0;border-bottom:1px solid var(--line)}td:not(:first-child),th{white-space:nowrap}th{color:var(--muted);font-size:.87rem}td{font-size:.92rem;padding-block:5px;height:54px}.table-wrap>p{margin-top:12px}.option-edit{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:8px}.option-edit+.button{margin-top:4px}.session-state{max-width:640px;margin:36px auto;padding:0 var(--space)}.session-state .brand{margin-bottom:20px}.skeleton{height:15px;width:70%;background:var(--active);border-radius:5px;margin:10px 0}.skeleton.short{width:45%}.login{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.login-cover{display:flex;flex-direction:column;justify-content:space-between;gap:38px;min-width:0;padding:36px 54px;background:#e5eadf}.cover-copy h1{font-size:clamp(32px,3.8vw,60px);font-weight:400;line-height:1.5;letter-spacing:0}.poem-line{display:block}.poem-line img{display:block;width:7em;max-width:100%;height:auto}.cover-copy p{color:var(--muted);margin-top:18px}.cover-subjects{display:flex;max-width:420px;justify-content:space-between;border-top:1px solid var(--control);padding-top:13px;color:var(--muted)}.login-form{display:grid;place-items:center;padding:36px}.login-form form{width:min(100%,340px);gap:20px}.login-form h2{font-size:2rem;margin-bottom:5px}@media(max-width:1050px){.shell{grid-template-columns:184px minmax(0,1fr)}.workspace{padding:38px 24px}.overview-grid,.form-grid{grid-template-columns:1fr}.login-cover{padding-inline:32px}}@media(max-width:760px){.shell{display:block}.sidebar{position:static;height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:10px 16px 0;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0}.sidebar .brand-logo{width:100px}.nav{display:flex;flex-wrap:wrap;grid-row:2;grid-column:1 / -1;margin:4px 0 6px}.account{margin:0;padding:0;border:0}.account strong,.account small{font-size:.75rem;max-width:78px}.workspace{padding:26px 16px 42px}.page-heading{margin-bottom:20px}h1,.role-student .page-heading h1{font-size:1.65rem}.surface,.notebook{padding:16px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.notebook-mark{width:54px}.notebook-mark svg{width:30px}.login{grid-template-columns:1fr;min-height:auto}.login-cover{gap:20px;padding:20px 24px}.brand-hero .brand-logo{width:108px}.cover-copy h1{font-size:clamp(28px,7.6vw,36px)}.cover-copy p{margin-top:9px}.login-form{padding:28px 24px 42px}.cover-subjects{max-width:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
