:root{--bg:#f4f6f2;--paper:#fff;--ink:#192e29;--muted:#73837a;--line:#e3e9e2;--green:#215c46;--mint:#def0de;--side:#163d33;--orange:#b7662a;--violet:#6b5c92;--shadow:0 8px 32px #203e2610}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.65 "Microsoft YaHei","PingFang SC",system-ui,sans-serif}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:9px;padding:9px 15px;color:var(--ink);transition:.15s}button:hover{border-color:#92ae96;background:#f1f7ee}button:disabled{opacity:.5;cursor:wait}button.primary,.primary{background:var(--green);color:white;border-color:var(--green)}button.primary:hover{background:#164b38}button.ghost{background:transparent;border-color:transparent}button.small{font-size:12px;padding:6px 12px}.danger{color:#ac3b37}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:28px;letter-spacing:-.7px;line-height:1.4}h2{font-size:18px;line-height:1.5}h3{font-size:15px}small,.sub{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.stack{display:grid;gap:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}.layout{display:grid;grid-template-columns:226px 1fr;min-height:100vh}.sidebar{background:var(--side);color:#d5e5dc;padding:30px 19px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:226px}.brand{display:flex;align-items:center;gap:10px;padding:0 10px;margin-bottom:32px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;background:#c4e7b7;color:#143d31;border-radius:13px;font-size:24px;font-weight:700}.brand-name{color:#fff;font-size:22px;font-weight:700;letter-spacing:3px}.brand-caption{font-size:10px;letter-spacing:1px;color:#a6bcad}.role-pill{margin:0 10px 22px;font-size:11px;letter-spacing:2px;color:#a9c8ac}.nav{display:grid;gap:7px}.nav button{color:#b6cdbf;border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:12px;padding:13px 15px}.nav button.active{background:#d7ebc5;color:#173b2e;font-weight:700}.nav button:hover{background:#ffffff12}.nav button.active:hover{background:#e1f1d4}.nav svg{width:18px;height:18px;flex:none}.side-bottom{margin-top:auto;padding:20px 10px 0;border-top:1px solid #ffffff18}.side-note{padding:20px 12px;color:#b6cabc;font-size:12px}.side-note strong{color:#deebc7;font-weight:500}.avatar{height:34px;width:34px;border-radius:50%;background:#e2ecd9;color:#375942;display:grid;place-items:center;font-weight:700;flex:none}.user-name{font-size:13px;color:#f3f7ee}.logout{font-size:11px;color:#bfd0c3;background:transparent;border:0;padding:0}.main{grid-column:2;min-width:0}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#fbfcf9;gap:14px}.breadcrumb{color:var(--muted);font-size:12px}.breadcrumb b{color:#365344;font-weight:500}.topbar select{max-width:260px;background:#f3f6f0}.status-dot{display:inline-block;height:6px;width:6px;border-radius:50%;background:#68946c;margin-right:6px}.content{max-width:1350px;margin:0 auto;padding:30px 38px 46px}.page-head{margin-bottom:25px}.page-head p{color:var(--muted);margin-top:7px}.eyebrow{font-size:11px;letter-spacing:2px;color:#67856c;margin-bottom:7px;font-weight:600}.hero{background:#e2ecd8;border:1px solid #d6e3ca;border-radius:16px;padding:28px 30px;display:flex;justify-content:space-between;gap:18px;margin-bottom:24px;position:relative;overflow:hidden}.hero h2{font-size:24px;margin:4px 0 8px}.hero p{color:#61765e;max-width:590px}.hero-art{width:160px;height:116px;flex:none;position:relative;margin-top:7px}.node{position:absolute;width:17px;height:17px;border-radius:50%;border:3px solid #769965;background:#d7e9c4;z-index:1}.n1{left:20px;top:45px}.n2{left:75px;top:5px}.n3{left:128px;top:46px}.n4{left:74px;top:92px}.edge{height:2px;width:71px;background:#9bb58b;position:absolute;transform-origin:left center;left:29px;top:54px}.e1{transform:rotate(-36deg)}.e2{transform:rotate(38deg)}.e3{left:83px;top:14px;transform:rotate(39deg)}.e4{left:84px;top:100px;transform:rotate(-43deg)}.e5{width:107px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:19px 21px}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-size:30px;line-height:1.35;margin:8px 0 3px;font-weight:650;letter-spacing:-1px}.stat-foot{font-size:11px;color:#8a958b}.panel,.card{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 3px 10px #203e2603}.panel{padding:23px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.card{padding:22px}.card h3{font-size:17px;margin:12px 0 8px}.card-footer{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.badge{display:inline-flex;align-items:center;border-radius:5px;padding:3px 8px;font-size:11px;white-space:nowrap;background:#eef3eb;color:#4f6d48}.badge.orange{background:#fff0dd;color:#a96826}.badge.purple{background:#efeaf8;color:#776097}.badge.gray{background:#f0f2ef;color:#7d867b}.badge.red{background:#ffebe7;color:#ae5549}.meta{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px}.empty{padding:36px 18px;text-align:center;color:var(--muted);border:1px dashed #d5dfd1;border-radius:10px;background:#fafcf8}.empty p{margin:6px auto;max-width:440px}.concept-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #edf0e9}.concept-row:last-child{border:0}.concept-row p{font-size:11px;color:var(--muted);margin-top:2px}.mini-bars{display:flex;gap:3px;align-items:flex-end}.mini-bars span{display:block;width:5px;height:15px;background:#dfe9da;border-radius:2px}.mini-bars span.filled{background:#79a16c}.mini-bars span.wrong{background:#dca76f}.field{display:grid;gap:7px;font-size:12px;color:#57705d;margin-bottom:16px}input,select,textarea{width:100%;border:1px solid #dce4d7;border-radius:8px;padding:10px 12px;color:var(--ink);background:#fcfdfb}input:focus,select:focus,textarea:focus{border-color:#72946a;outline:2px solid #c7dfbc80}input[type=checkbox],input[type=radio]{width:17px;height:17px;accent-color:var(--green);flex:none}textarea{resize:vertical;min-height:110px;line-height:1.8}.notice{background:#f1f6ec;border:1px solid #e1ead8;padding:12px 15px;border-radius:9px;color:#66755a;font-size:12px;margin-bottom:20px}.notice.warn{background:#fff5e6;border-color:#f0dfc6;color:#967044}.notice.error{background:#fff0ed;border-color:#efd6ce;color:#9b5246}.section-gap{margin-top:26px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-title{font-size:14px;font-weight:600;margin-bottom:5px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-weight:500;color:var(--muted);background:#f8faf5}td.wrap-cell{white-space:normal;min-width:180px}form .row .field{flex:1}.question{padding:24px;margin-bottom:18px;scroll-margin-top:20px}.question-prompt{font-size:15px;line-height:1.9;margin:15px 0 18px;white-space:pre-wrap;overflow-wrap:anywhere}.option{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--line);padding:12px 14px;border-radius:9px;cursor:pointer;margin:9px 0}.option:hover{background:#f7faf3;border-color:#aac298}.option:has(input:checked){background:#f0f7e8;border-color:#a3bf92}.option input{margin-top:3px}.answer-bar{position:sticky;bottom:0;background:#fdfefbf5;border:1px solid var(--line);border-radius:12px;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.feedback{border-left:3px solid #bfd3b1;background:#f7faf3;padding:14px 17px;white-space:pre-wrap;margin-top:16px;line-height:1.8;font-size:13px}.feedback.bad{border-color:#dda56c;background:#fffbf4}.answer-reference{font-size:12px;background:#f6f7f3;padding:12px;border-radius:8px;margin-top:12px;white-space:pre-wrap}.result-row{padding:20px 0;border-bottom:1px solid var(--line)}.result-row:last-child{border:0}.builder-row{display:grid;grid-template-columns:26px 1fr 95px 80px;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}.builder-row .field{margin:0}.builder-row p{font-size:13px;white-space:pre-wrap}.builder-row .muted{font-size:11px}.tabs{display:flex;gap:6px;margin-bottom:20px;border-bottom:1px solid var(--line)}.tabs button{border:0;border-radius:0;background:transparent;color:var(--muted);padding:11px 15px}.tabs button.active{border-bottom:2px solid var(--green);color:var(--green);font-weight:600}details{border:1px solid var(--line);border-radius:9px;margin:10px 0}summary{padding:12px 15px;cursor:pointer}details .detail-body{padding:4px 16px 18px}.pre{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9f4;padding:12px;border-radius:8px}.loading{padding:55px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);padding:12px 22px;background:#243e32;color:white;border-radius:10px;box-shadow:var(--shadow);z-index:100;opacity:0;pointer-events:none;transition:.2s;max-width:90vw}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}dialog{border:1px solid var(--line);border-radius:16px;max-width:650px;width:calc(100% - 32px);max-height:88vh;padding:25px;box-shadow:0 20px 90px #14281d33}dialog::backdrop{background:#112d254d;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-story{background:#173d32;padding:48px 11%;display:flex;flex-direction:column;justify-content:space-between;color:#dce9db;position:relative;overflow:hidden}.login-story .brand{padding:0}.login-story h1{font-size:42px;color:#f1f5e9;line-height:1.55;font-weight:500;letter-spacing:2px}.login-story h1 span{color:#c9e6ab}.login-story .story-copy{margin:22px 0;color:#a5bda9;line-height:2;max-width:350px}.story-flow{display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:11px;color:#c6d9c3}.story-flow span{border:1px solid #537059;border-radius:20px;padding:6px 11px}.login-form-wrap{display:flex;justify-content:center;align-items:center;padding:50px 28px;background:#f6f8f2}.login-form{max-width:385px;width:100%}.login-form h2{font-size:28px;margin-bottom:6px}.login-form .sub{margin-bottom:28px}.login-form .field{margin-bottom:19px}.login-form .primary{width:100%;margin-top:5px;padding:12px}.demo-box{padding:16px;background:#edf2e7;border:1px solid #e0e7d8;border-radius:10px;margin-top:25px;font-size:12px}.demo-box .row{margin:8px 0}.error-text{color:#ad4d42;font-size:12px;min-height:20px}.login-foot{font-size:11px;color:#7a8b73;margin-top:28px}.mobile-brand{display:none}.save-status{font-size:11px;color:var(--muted)}.compact{max-width:850px}.date{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#cbd6c6;border-radius:5px}@media(min-width:1450px){.content{padding-top:40px}}@media(max-width:1100px){.layout{grid-template-columns:195px 1fr}.sidebar{width:195px;padding-left:12px;padding-right:12px}.content{padding:24px}.topbar{padding:0 24px}.stats{gap:10px}.stat{padding:16px}.grid2{grid-template-columns:1fr}.hero-art{width:145px}.cards{grid-template-columns:1fr 1fr}}@media(max-width:750px){body{font-size:13px}.layout{display:block}.sidebar{position:static;width:100%;padding:12px 15px;display:block}.brand{margin:0;padding:0;gap:8px}.brand-mark{width:32px;height:32px;border-radius:10px;font-size:20px}.brand-name{font-size:19px}.brand-caption{font-size:8px}.role-pill,.side-note,.side-bottom{display:none}.nav{display:flex;overflow-x:auto;margin-top:12px;gap:6px;scrollbar-width:none}.nav button{padding:8px 12px;font-size:12px;white-space:nowrap;gap:6px}.nav svg{width:14px;height:14px}.topbar{height:56px;padding:0 18px}.topbar select{max-width:180px;padding:5px}.breadcrumb{font-size:11px}.top-date{display:none}.content{padding:22px 16px 30px}h1{font-size:23px}.hero{padding:22px;margin-bottom:18px}.hero h2{font-size:21px}.hero-art{display:none}.hero p{font-size:12px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.stat-value{font-size:26px}.panel{padding:18px}.cards{grid-template-columns:1fr}.grid2{gap:16px}.page-head{margin-bottom:20px}.question{padding:18px}.question-prompt{font-size:14px}.answer-bar{padding:12px;flex-wrap:wrap}.answer-bar .row{gap:6px}.answer-bar button{padding:8px 12px}.builder-row{grid-template-columns:22px 1fr 75px 65px;gap:7px}.builder-row select,.builder-row input[type=number]{padding:6px}.login-page{display:block}.login-story{min-height:240px;padding:25px}.login-story h1{font-size:27px;margin-top:30px}.login-story .story-copy,.story-flow,.story-bottom{display:none}.login-form-wrap{padding:35px 24px}.login-form h2{font-size:24px}.meta{gap:10px}.row.wrap-mobile{flex-wrap:wrap}.review-actions{flex-wrap:wrap}.question textarea{font-size:14px}dialog{padding:19px}.hero .primary{margin-top:12px}.list-row{gap:10px}.list-row button{flex:none}}
button{white-space:nowrap}.topbar select{width:auto;flex:none}.hero h2{text-wrap:balance}


/* UI refinement v0.2 — task hierarchy, accessible controls and focused answering. */
.resource-summary{display:flex;align-items:center;gap:42px;margin-bottom:23px;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:12px}
.resource-summary>div{display:flex;align-items:center;gap:12px}.resource-summary b{font-size:24px;margin-right:8px;font-weight:600}.resource-summary div span:not(.resource-summary-icon){font-size:11px;color:#8a987d}.resource-summary-icon{width:38px;height:38px;border-radius:10px;background:#f1f6eb;display:grid;place-items:center;color:#8aa074}.resource-summary-icon svg{width:19px;height:19px}.resource-summary>p{margin-left:auto;font-size:10px;line-height:1.9;color:#8d9a80}.template-download,.file-formats{display:block;background:#f7faf2;border:1px dashed #dfe8d4;border-radius:8px;padding:10px 12px;font-size:10px;min-height:39px;margin-bottom:7px;text-decoration:none;color:#81976d}.file-formats span{float:right;color:#9aa58f}.resource-item{padding:21px 0;border-bottom:1px solid var(--line)}.resource-item:last-child{padding-bottom:0;border-bottom:0}.resource-type{font-size:9px;color:#97a28e;letter-spacing:.5px}.resource-item h3{font-size:14px;margin-top:12px;font-weight:600}.resource-meta{font-size:10px;color:#899b78;margin:6px 0}.resource-meta span{margin:0 5px;color:#c2cbb8}.resource-source{font-size:10px;color:#9aa48f;line-height:1.9;margin:8px 0 13px}.resource-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.resource-footer .sub{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-help{margin-top:22px;border-color:#e1e8d9;background:#fff;font-size:11px;color:#89997a}.resource-help summary{padding:15px 18px}.resource-help .detail-body{padding:0 18px 17px;line-height:1.9}.generation-flow{display:flex;align-items:center;gap:20px;margin-bottom:24px;padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:#fff}.generation-flow>span{display:flex;align-items:center;gap:8px;font-size:11px;color:#96a18b}.generation-flow b{font-size:10px;font-weight:500;border-radius:50%;background:#f0f4e8;width:21px;height:21px;display:grid;place-items:center}.generation-flow .current{color:#547440}.generation-flow .current b{background:#e4efd7;color:#618947}.generation-flow i{color:#becab2;font-style:normal}.generation-submit{width:100%}.connection-hint{border-top:1px solid var(--line);padding-top:17px;margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#96a18a}.generation-record{padding:18px 0;border-bottom:1px solid var(--line)}.generation-record:last-child{border-bottom:0;padding-bottom:0}.generation-record h3{font-size:13px;margin-top:10px}.generation-record p{font-size:10px;color:#8f9e81;margin-top:5px}.generation-record>button{margin-top:13px}.generation-record .sub{font-size:10px}
@media(max-width:750px){.resource-summary{gap:25px;padding:16px}.resource-summary>p{display:none}.resource-summary-icon{display:none}.resource-summary b{font-size:22px}.resource-summary div span:not(.resource-summary-icon){font-size:9px}.generation-flow{gap:8px;padding:12px}.generation-flow>span{font-size:9px;gap:5px}.generation-flow b{width:17px;height:17px;font-size:9px}.generation-flow i{font-size:10px}.resources-grid .panel{padding:18px}.resource-item h3{font-size:13px}.resource-source{font-size:10px}.connection-hint{flex-wrap:wrap}}
:root {
  --bg: #f5f7f6;
  --ink: #20362f;
  --muted: #687b72;
  --line: #e0e8e3;
  --green: #24634c;
  --side: #153c32;
}
[hidden] { display: none !important; }
html { scroll-padding-top: 90px; }
button, input, textarea, select { -webkit-tap-highlight-color: transparent; }
button { min-height: 40px; font-weight: 500; }
button:hover { border-color: #91b19b; background: #f3f8f3; }
button:focus-visible, summary:focus-visible, a:focus-visible {
  outline: 3px solid #91baa1;
  outline-offset: 3px;
}
button.small { min-height: 34px; padding: 7px 12px; }
button.primary { box-shadow: 0 3px 7px #1b573116; }
button:disabled { cursor: default; opacity: .5; }
button:disabled:hover { background: inherit; }
button.primary:disabled:hover { background: var(--green); }
input, select, textarea { min-width: 0; background: #fff; border-color: #cedbd2; }
input::placeholder, textarea::placeholder { color: #8c9a91; }
textarea { font-size: 15px; line-height: 1.9; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.layout { grid-template-columns: 220px minmax(0, 1fr); }
.sidebar { width: 220px; padding: 27px 16px 23px; }
.sidebar .brand { padding: 0 9px; margin-bottom: 27px; }
.brand-name { letter-spacing: 2px; }
.role-pill { color: #a5c0af; letter-spacing: 1px; font-size: 11px; margin: 0 12px 17px; }
.nav { gap: 6px; }
.nav button { border-radius: 9px; padding: 12px 14px; min-height: 46px; }
.nav button.active { background: #d5e8c8; }
.nav-short { display: none; }
.side-bottom { padding: 20px 8px 0; }
.side-bottom .sub { color: #b6c9bd; font-size: 10px; }
.side-settings { width: 29px; min-height: 29px; padding: 4px; background: transparent; color: #bfd1c3; border: 0; }
.side-settings svg { width: 18px; height: 18px; }
.side-settings:hover { background: #ffffff12; }
.topbar { height: 72px; padding: 0 32px; background: #fff; position: sticky; top: 0; z-index: 25; }
.breadcrumb { display: flex; gap: 13px; white-space: nowrap; color: #718379; }
.breadcrumb>span { color: #c2cec4; }
.topbar-tools { display: flex; gap: 17px; align-items: center; min-width: 0; }
.class-picker { display: flex; gap: 10px; align-items: center; min-width: 0; }
.class-picker>span { color: var(--muted); font-size: 11px; white-space: nowrap; }
.topbar select { background: #f8faf7; max-width: 245px; padding: 8px 29px 8px 12px; border-color: #e0e7dc; font-size: 12px; }
.account-button { background: transparent; border: 0; padding: 0; display: flex; align-items: center; gap: 9px; font-size: 12px; max-width: 155px; }
.account-button>span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-button .avatar { width: 32px; height: 32px; font-size: 12px; }
.logout-top { border: 0; padding: 0; background: transparent; font-size: 11px; color: var(--muted); }
.content { max-width: 1400px; padding: 30px 32px 48px; outline: none; }
.page-head { margin-bottom: 24px; gap: 20px; }
.page-head>div { min-width: 0; }
.page-head h1 { font-size: 27px; line-height: 1.5; font-weight: 650; letter-spacing: -.6px; overflow-wrap: anywhere; }
.page-head p { font-size: 12px; line-height: 1.8; margin-top: 7px; }
.eyebrow { font-size: 10px; letter-spacing: 1px; color: #7d9583; margin-bottom: 5px; font-weight: 500; }
h2 { font-size: 17px; font-weight: 650; }
.panel, .card { border-radius: 13px; box-shadow: 0 3px 10px #203c2703; }
.panel { padding: 22px; min-width: 0; }
.panel-head { margin-bottom: 17px; align-items: flex-start; }
.panel-head>.sub { text-align: right; max-width: 48%; }
.panel-head p { margin-top: 4px; }
.badge { font-size: 10px; padding: 3px 8px; font-weight: 500; border-radius: 6px; line-height: 1.8; }
.badge.gray { color: #68786d; background: #f0f3ef; }
.badge.orange { color: #986323; background: #fff1db; }
.badge.purple { color: #775c98; background: #f0eaf9; }
.stats { gap: 15px; margin-bottom: 22px; }
.stat { padding: 17px 19px 16px; position: relative; overflow: hidden; }
.stat-top { display: flex; justify-content: space-between; align-items: center; }
.stat-label { font-size: 12px; color: #62766a; }
.stat-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #6e9278; background: #f1f6ee; }
.stat-icon svg { width: 16px; height: 16px; }
.stat-value { font-size: 33px; font-weight: 650; margin: 0 0 4px; color: #213f30; font-variant-numeric: tabular-nums; }
.stat-foot { font-size: 10px; color: #7c8c81; }
.focus-banner { display: flex; gap: 17px; align-items: center; background: #eaf2e5; border: 1px solid #dce8d4; border-radius: 12px; padding: 21px 24px; margin-bottom: 27px; }
.focus-icon { color: #567b4c; background: #deebd5; width: 48px; height: 48px; flex: none; display: grid; place-items: center; border-radius: 13px; }
.focus-icon svg { width: 23px; height: 23px; }
.focus-banner .eyebrow { color: #71876b; }
.focus-banner h2 { font-size: 19px; margin-bottom: 4px; }
.focus-banner p { color: #6a7d62; font-size: 11px; }
.focus-banner>button { color: #385d32; border-color: #cbdcbd; background: #ffffff90; font-size: 12px; flex: none; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) 335px; gap: 24px; align-items: start; }
.dashboard-assignments { display: grid; gap: 15px; }
.dashboard-grid>.stack { gap: 17px; }
.assignment-card { padding: 20px; }
.assignment-top { display: flex; align-items: center; justify-content: space-between; }
.assignment-symbol { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #eff5e9; color: #5b7b4a; }
.assignment-symbol svg { width: 18px; height: 18px; }
.assignment-card h3 { margin: 13px 0 6px; font-size: 16px; font-weight: 650; line-height: 1.6; }
.assignment-due { font-size: 11px; color: #7c8d80; margin-bottom: 16px; }
.assignment-metrics { display: grid; grid-template-columns: 1fr 1fr 1fr; padding: 11px 0; background: #f8faf6; border-radius: 9px; }
.assignment-metrics>div { display: flex; align-items: baseline; justify-content: center; gap: 7px; border-right: 1px solid #e7ede3; }
.assignment-metrics>div:last-child { border: 0; }
.assignment-metrics b { font-size: 17px; font-weight: 600; }
.assignment-metrics span { font-size: 10px; color: #7d8b78; }
.assignment-card .card-footer { margin-top: 16px; padding-top: 14px; }
.card-footer>.sub { font-size: 10px; }
.cards { gap: 20px; }
.text-button { padding: 0; min-height: 25px; background: transparent; border: 0; color: var(--green); font-size: 11px; }
.text-button:hover { background: transparent; text-decoration: underline; }
.panel-note { border-top: 1px solid var(--line); padding-top: 13px; margin-top: 15px; color: #879080; font-size: 10px; line-height: 1.8; }
.concept-row { padding: 13px 0; gap: 8px; }
.concept-label { display: flex; gap: 9px; align-items: flex-start; min-width: 0; }
.concept-dot { width: 6px; height: 6px; margin-top: 8px; border-radius: 50%; background: #8faf7e; flex: none; }
.concept-dot.needs-work { background: #d5a45c; }
.concept-dot.no-evidence { background: #c5cec1; }
.concept-row h3 { font-size: 12px; }
.concept-row p { font-size: 10px; margin-top: 3px; }
.concept-row .badge { font-size: 9px; padding: 3px 6px; }
.empty { border: 1px dashed #dce5d7; background: #fbfcf9; padding: 28px 17px; }
.empty-symbol { width: 38px; height: 38px; display: grid; place-items: center; margin: 0 auto 12px; border-radius: 11px; background: #eef4e8; color: #98ad8b; }
.empty-symbol svg { width: 20px; height: 20px; }
.empty h3 { font-size: 13px; font-weight: 500; color: #667b5e; margin-bottom: 4px; }
.empty p { font-size: 11px; color: #8a9782; max-width: 400px; }
.class-code-line { display: flex; justify-content: space-between; align-items: center; padding: 0 0 12px; }
.copy-code { background: #f5f8ef; border-color: #e2e9da; font-family: Consolas, monospace; letter-spacing: 1px; padding: 5px 11px; min-height: 32px; color: #4e6d3e; font-weight: 600; }
.copy-code span { opacity: .5; font-size: 11px; }
.quick-link { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: transparent; border: 0; border-radius: 7px; padding: 9px 0; font-size: 12px; color: #4d6a55; }
.quick-link svg { width: 16px; height: 16px; color: #8da180; }
.quick-link>span:last-child { margin-left: auto; color: #a6b39b; }
.service-status { display: flex; align-items: center; gap: 6px; padding-top: 13px; margin-top: 10px; border-top: 1px solid var(--line); font-size: 10px; color: #7a8a73; }
.service-status .text-button { margin-left: auto; font-size: 10px; }
.status-dot { width: 5px; height: 5px; margin-right: 1px; }
.status-dot.off { background: #b4bead; }
.list-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 18px; }
.filter-tabs { background: #eaf0e8; padding: 4px; display: flex; gap: 3px; border-radius: 10px; }
.filter-tabs button { border: 0; min-height: 33px; padding: 6px 15px; background: transparent; color: #788a70; border-radius: 7px; font-size: 12px; }
.filter-tabs button.active { background: white; color: #315b3a; box-shadow: 0 2px 5px #23381e0c; }
.search-field { position: relative; display: flex; align-items: center; gap: 9px; background: white; border: 1px solid #dce5d7; border-radius: 8px; padding: 0 12px; min-width: 0; }
.search-field:focus-within { border-color: #82a178; outline: 2px solid #d6e5c7; }
.search-field>span { font-size: 22px; color: #94a48a; line-height: 1; }
.search-field input { padding: 9px 0; border: 0; border-radius: 0; font-size: 12px; background: transparent; }
.search-field input:focus { outline: none; }
.list-toolbar .search-field { width: 265px; }
.list-caption { margin: 0 0 14px; color: #8c9883; font-size: 11px; }
.page-note { margin: 22px 0 0; font-size: 11px; color: #8a9680; }
.assignment-overview { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 16px; margin-bottom: 23px; border: 1px solid var(--line); border-radius: 11px; background: #fff; padding: 17px 21px; }
.assignment-overview>div { display: grid; gap: 5px; }
.assignment-overview span { color: #8b9881; font-size: 11px; }
.assignment-overview strong { font-size: 13px; font-weight: 500; }
.table-student { font-weight: 600; color: #395939; }
.published-question summary { display: flex; align-items: center; gap: 13px; padding: 14px; font-size: 12px; }
.summary-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; line-height: 1.6; }
.answer-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; align-items: start; }
.answer-side { grid-column: 2; grid-row: 1; position: sticky; top: 94px; }
.answer-main { grid-column: 1; grid-row: 1; min-width: 0; }
.answer-guide { padding: 18px; }
.answer-guide h2 { font-size: 14px; }
.answer-guide .panel-head { margin-bottom: 13px; align-items: center; }
.progress-track { height: 5px; background: #eaf0e5; border-radius: 5px; overflow: hidden; }
.progress-track>span { display: block; height: 100%; width: 0; background: #6f9b5b; border-radius: 5px; transition: width .2s; }
.progress-counts { display: flex; justify-content: space-between; font-size: 10px; color: #8a977f; margin: 11px 0 18px; }
.progress-counts b { font-weight: 500; color: #597049; margin-left: 5px; font-variant-numeric: tabular-nums; }
.question-navigation { border: 0; margin: 0; border-top: 1px solid var(--line); border-radius: 0; }
.question-navigation summary { padding: 13px 0; font-size: 12px; color: #5c7650; }
.question-navigation summary>.sub { float: right; font-size: 10px; }
.question-nav-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-top: 3px; }
.question-nav-grid button { padding: 0; min-height: 32px; font-size: 11px; border-radius: 7px; background: #fafcf8; border-color: #dde6d5; color: #7a8c6f; }
.question-nav-grid button.done { background: #e4f0d8; color: #3d652f; border-color: #b2cf9a; }
.question-nav-grid button.optional:not(.done) { border-style: dashed; color: #8d7c9c; background: #faf8fc; }
.nav-legend { display: flex; gap: 9px; flex-wrap: wrap; font-size: 9px; color: #98a18e; margin: 12px 0 0; }
.nav-legend span { display: flex; align-items: center; gap: 4px; }
.nav-legend i { width: 7px; height: 7px; display: inline-block; border: 1px solid #d3deca; border-radius: 2px; }
.nav-legend i.done { background: #b8d29d; border-color: #b8d29d; }
.nav-legend i.optional { border-style: dashed; }
.guide-note { font-size: 10px; color: #98a08f; line-height: 1.9; margin-top: 15px; }
.question { padding: 24px; margin-bottom: 17px; scroll-margin-top: 95px; }
.question-heading { display: flex; align-items: center; justify-content: space-between; }
.question-number { height: 33px; width: 33px; display: grid; place-items: center; border-radius: 10px; background: #f0f5e9; color: #7a9b65; font: 500 14px/1 Consolas, monospace; }
.question-type { color: #8a9880; font-size: 10px; margin-left: 9px; }
.question-points { color: #4d6f3e; font-size: 18px; font-weight: 600; }
.question-points small { color: #8f9c84; font-size: 10px; font-weight: 400; margin-left: 5px; }
.question-prompt { font-size: 15px; line-height: 1.95; margin: 20px 0 18px; color: #304b34; }
.answer-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.options-grid { display: grid; gap: 9px; }
.options-grid.short-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.option { margin: 0; border-color: #dde5d5; padding: 11px 13px; min-height: 46px; background: #fff; line-height: 1.65; font-size: 13px; }
.option:has(input:checked) { background: #f1f7e9; border-color: #93b67c; }
.option input { width: 16px; height: 16px; margin-top: 3px; }
.input-hint { font-size: 10px; color: #93a086; margin-top: 8px; }
.answer-fieldset textarea { min-height: 165px; }
.answer-bar { position: static; border-radius: 11px; background: #fff; box-shadow: 0 3px 14px #2f481b08; padding: 16px 18px; }
.answer-bar strong { font-size: 12px; }
.save-status { font-size: 10px; color: #89977b; margin-top: 3px; }
.submission-banner { background: #fff; border: 1px solid #e0e8d8; border-radius: 11px; padding: 16px 19px; display: flex; align-items: center; gap: 12px; margin-bottom: 21px; }
.submission-icon { background: #f0f4e9; color: #7d9566; border-radius: 10px; width: 35px; height: 35px; display: grid; place-items: center; flex: none; }
.submission-icon svg { width: 17px; height: 17px; }
.submission-banner h3 { font-size: 13px; }
.submission-banner p { font-size: 10px; margin-top: 3px; }
.builder-fields { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 150px; gap: 17px; }
.builder-fields .field { margin-bottom: 0; }
.field { color: #607a53; }
.step-number { display: inline-grid; place-items: center; background: #edf4e6; color: #7e9c63; width: 23px; height: 23px; font-size: 11px; border-radius: 7px; margin-right: 5px; }
.pool-toolbar { display: flex; gap: 10px; align-items: center; margin: 6px 0 19px; padding-bottom: 19px; border-bottom: 1px solid var(--line); }
.pool-toolbar .search-field { flex: 1; }
.pool-toolbar>select { width: 150px; font-size: 12px; }
.pool-group-title { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #607a4d; margin: 18px 0 0; }
.builder-row { grid-template-columns: 22px minmax(0, 1fr) 180px; gap: 13px; padding: 20px 9px; border-radius: 8px; }
.builder-row.selected { background: #f7faf3; }
.builder-row>[data-select] { margin-top: 5px; }
.builder-content { min-width: 0; }
.builder-row p { font-size: 12px; line-height: 1.85; }
.builder-prompt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.builder-row .meta { margin-top: 8px; gap: 10px; align-items: center; font-size: 10px; }
.builder-controls { display: grid; grid-template-columns: 1fr 75px; gap: 9px; }
.builder-controls .field { font-size: 10px; }
.builder-controls select, .builder-controls input { font-size: 12px; padding: 8px; }
.builder-row details { border: 0; margin-bottom: 0; }
.builder-row summary { padding: 7px 0 0; font-size: 10px; color: #799465; }
.builder-row .detail-body { padding: 12px 0 0; }
.builder-row .pre { margin-top: 10px; font-size: 11px; }
.pool-pagination { border-top: 1px solid var(--line); padding-top: 17px; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.pool-pagination .row { gap: 10px; }
.builder-bar { position: sticky; bottom: 20px; z-index: 12; background: #ffffffed; backdrop-filter: blur(10px); }
.builder-bar .sub { font-size: 10px; margin-top: 3px; }
dialog { padding: 0; max-width: 650px; max-height: 90dvh; overflow-y: auto; border-radius: 16px; border-color: #d9e4d1; }
dialog.wide { max-width: 940px; }
dialog::backdrop { background: #153b284a; backdrop-filter: blur(4px); }
.dialog-head { padding: 19px 24px; margin: 0; background: white; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5; }
.dialog-head h2 { font-size: 18px; }
.dialog-body { padding: 21px 24px 27px; }
.icon-button { background: #f6f8f3; border: 0; border-radius: 8px; padding: 4px; min-height: 32px; width: 32px; color: #87947d; }
.feedback-summary { display: flex; align-items: center; gap: 0; border: 1px solid var(--line); background: #fafcf7; border-radius: 10px; padding: 15px 0; margin-bottom: 13px; }
.feedback-summary>div { flex: 1; text-align: center; display: grid; gap: 2px; border-right: 1px solid var(--line); }
.feedback-summary strong { font-size: 24px; font-weight: 600; color: #557943; }
.feedback-summary span { font-size: 10px; color: #8b987e; }
.feedback-summary>p { padding: 0 17px; font-size: 10px; color: #8c9880; text-align: right; }
.feedback-intro { font-size: 11px; margin-bottom: 18px; }
.feedback-item { border-color: #dfe7d7; border-radius: 10px; overflow: clip; margin: 11px 0; }
.feedback-item>summary { display: flex; align-items: center; gap: 11px; padding: 14px; font-size: 12px; list-style: none; }
.feedback-item>summary::-webkit-details-marker { display: none; }
.feedback-item>summary::after { content: '⌄'; color: #94a486; font-size: 14px; margin-left: 1px; }
.feedback-item[open]>summary { background: #f8fbf3; border-bottom: 1px solid #e8eee1; }
.feedback-item[open]>summary::after { transform: rotate(180deg); }
.feedback-index { width: 25px; height: 25px; display: grid; place-items: center; flex: none; background: #edf3e6; color: #7b9861; border-radius: 7px; font-size: 11px; }
.feedback-item>.detail-body { padding: 0 19px 20px; }
.feedback-item .question-prompt { font-size: 13px; margin-top: 16px; }
.student-answer { background: #f5f7f2; border: 1px solid #e9eee1; border-radius: 8px; padding: 12px 14px; font-size: 12px; }
.student-answer strong { font-size: 10px; color: #95a184; display: block; margin-bottom: 5px; font-weight: 500; }
.student-answer p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.9; }
.feedback { border-left-width: 2px; border-radius: 0 8px 8px 0; white-space: normal; padding: 15px 17px; margin-top: 13px; }
.feedback-head { display: flex; align-items: center; gap: 12px; justify-content: space-between; margin-bottom: 7px; }
.feedback-head strong { font-size: 11px; }
.feedback>p { font-size: 12px; white-space: pre-wrap; }
.feedback>.sub { font-size: 10px; margin-top: 7px; }
.evidence-list { display: grid; gap: 9px; margin-top: 13px; padding-top: 12px; border-top: 1px solid #dde8d3; }
.evidence-list strong { font-size: 10px; color: #7a9362; }
.evidence-list p { font-size: 11px; margin-top: 2px; color: #718661; white-space: pre-wrap; }
.suggested-score { padding: 9px 11px; margin-top: 12px; background: #f5f0fb; border-radius: 7px; color: #9178a6; font-size: 12px; }
.suggested-score span { margin-left: 12px; font-size: 10px; color: #a597b0; }
.reference-details { font-size: 10px; margin-top: 14px; border-color: #dfe7d4; }
.reference-details summary { padding: 7px 10px; }
.answer-reference { background: #fff; border: 1px solid #e6eddd; padding: 12px 13px; margin-top: 14px; border-radius: 7px; }
.answer-reference strong { font-size: 10px; color: #879976; }
.answer-reference p { font-size: 12px; margin-top: 5px; line-height: 1.9; white-space: pre-wrap; }
.review-context { display: flex; justify-content: space-between; align-items: center; gap: 18px; background: #f3f6ed; border-radius: 9px; padding: 15px 17px; margin-bottom: 17px; }
.review-context strong { font-size: 14px; }
.review-context .sub { font-size: 10px; margin-top: 2px; }
.review-form { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 15px; }
.review-form-title { font-size: 11px; font-weight: 600; margin-bottom: 11px; color: #617b4c; }
.review-fields { display: grid; grid-template-columns: 135px minmax(0, 1fr); gap: 16px; }
.review-fields .field { font-size: 10px; }
.form-message { background: #fff2e9; border: 1px solid #edcdb9; color: #ac6844; border-radius: 8px; padding: 10px 12px; font-size: 12px; margin: 12px 0; width: 100%; }
.answer-bar:has(.form-message) { flex-wrap: wrap; }
.spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid #c7d6bd; border-top-color: #6b9654; border-radius: 50%; animation: spin .7s linear infinite; flex: none; }
.loading { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 12px; }
.is-busy::before { content: ''; display: inline-block; width: 12px; height: 12px; border: 2px solid #ffffff50; border-top-color: currentColor; border-radius: 50%; animation: spin .7s linear infinite; margin-right: 8px; vertical-align: -2px; }
.login-form>.sub { margin-bottom: 26px; }
.demo-box .sub { margin-bottom: 0; }
.demo-box .row { gap: 17px; }
.login-form .login-foot { margin-top: 22px; }
#toast { font-size: 12px; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 1200px) {
  .content { padding: 27px 25px 40px; }
  .dashboard-grid { grid-template-columns: minmax(0, 1fr) 295px; gap: 20px; }
  .topbar { padding: 0 25px; }
  .topbar-tools { gap: 13px; }
  .class-picker>span { display: none; }
  .answer-workspace { grid-template-columns: minmax(0, 1fr) 210px; gap: 19px; }
  .builder-fields { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 120px; }
}
@media (max-width: 1000px) {
  .layout { grid-template-columns: 190px minmax(0, 1fr); }
  .sidebar { width: 190px; padding-left: 12px; padding-right: 12px; }
  .content { padding: 24px 21px 40px; }
  .topbar { padding: 0 21px; }
  .dashboard-grid { grid-template-columns: minmax(0, 1fr); }
  .dashboard-grid>aside { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .account-button>span:last-child { display: none; }
  .stats { gap: 10px; }
  .stat { padding: 15px; }
  .stat-icon { display: none; }
  .stat-value { margin-top: 5px; }
  .answer-workspace { grid-template-columns: minmax(0, 1fr); }
  .answer-side { grid-column: 1; grid-row: auto; position: static; }
  .answer-main { grid-column: 1; grid-row: auto; }
  .question-nav-grid { grid-template-columns: repeat(8, 1fr); }
  .guide-note { display: none; }
  .builder-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .builder-fields>.field:last-child { max-width: 180px; }
}
@media (max-width: 750px) {
  html { scroll-padding-top: 74px; }
  .layout { display: block; }
  .sidebar { position: static; width: 100%; padding: 13px 17px; height: 64px; display: flex; align-items: center; justify-content: space-between; }
  .sidebar .brand { margin: 0; padding: 0; }
  .role-pill { display: block; margin: 0; padding: 3px 8px; border: 1px solid #6a88724d; border-radius: 5px; font-size: 9px; color: #b3c7b3; }
  .side-bottom { display: none; }
  .sidebar .nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 7px 9px calc(7px + env(safe-area-inset-bottom)); background: #fffffff5; border-top: 1px solid #dfe7d6; box-shadow: 0 -3px 20px #344b2008; gap: 3px; overflow: visible; backdrop-filter: blur(15px); }
  body[data-role="teacher"] .sidebar .nav { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .nav button { padding: 6px 2px; min-height: 47px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 8px; color: #9aaa8e; }
  .nav button.active { background: #edf5e7; color: #4e7a38; }
  .nav button:hover { background: #f3f8ed; }
  .nav-label { display: none; }
  .nav-short { display: block; font-size: 9px; line-height: 1.3; }
  .nav svg { width: 19px; height: 19px; }
  .topbar { height: 55px; padding: 0 16px; position: sticky; top: 0; gap: 7px; }
  .breadcrumb { font-size: 10px; gap: 8px; }
  .topbar-tools { gap: 9px; }
  .topbar select { font-size: 10px; max-width: 147px; min-height: 32px; padding: 5px 20px 5px 8px; }
  .account-button .avatar { width: 28px; height: 28px; font-size: 10px; }
  .account-button { min-height: 30px; }
  .logout-top { display: none; }
  .content { padding: 22px 16px calc(94px + env(safe-area-inset-bottom)); }
  .page-head { margin-bottom: 22px; gap: 13px; align-items: flex-start; }
  .page-head h1 { font-size: 23px; }
  .page-head p { font-size: 11px; }
  .page-head>.primary { font-size: 12px; padding: 10px 14px; }
  .eyebrow { font-size: 9px; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 17px; }
  .stat { padding: 14px 15px 13px; }
  .stat-top { min-height: 18px; }
  .stat-label { font-size: 10px; }
  .stat-value { font-size: 29px; line-height: 1.5; margin: 1px 0 0; }
  .stat-foot { font-size: 9px; }
  .focus-banner { padding: 17px; gap: 11px; flex-wrap: wrap; margin-bottom: 25px; }
  .focus-icon { display: none; }
  .focus-banner h2 { font-size: 16px; }
  .focus-banner p { font-size: 10px; margin-top: 7px; }
  .focus-banner>button { min-height: 32px; font-size: 11px; padding: 5px 12px; margin-top: 1px; }
  .dashboard-grid { gap: 23px; }
  .dashboard-grid>aside { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .panel { padding: 19px; }
  .panel-head { margin-bottom: 16px; }
  .panel-head h2 { font-size: 16px; }
  .panel-head p { font-size: 10px; }
  .assignment-card { padding: 18px; }
  .assignment-card h3 { font-size: 15px; }
  .assignment-metrics b { font-size: 17px; }
  .assignment-metrics span { font-size: 9px; }
  .cards { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .list-toolbar { display: flex; flex-wrap: wrap; gap: 13px; }
  .filter-tabs { width: 100%; }
  .filter-tabs button { flex: 1; font-size: 11px; padding: 6px 10px; }
  .list-toolbar .search-field { width: 100%; }
  .list-caption { font-size: 10px; }
  .assignment-overview { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 16px; gap: 18px; }
  .assignment-overview span { font-size: 9px; }
  .assignment-overview strong { font-size: 12px; }
  .published-question summary { gap: 7px; font-size: 10px; padding: 12px 10px; }
  .published-question summary>.sub { display: none; }
  .answer-workspace { display: flex; flex-direction: column; gap: 16px; }
  .answer-side, .answer-main { width: 100%; }
  .answer-guide { padding: 16px; }
  .answer-guide h2 { font-size: 13px; }
  .answer-guide .panel-head { margin-bottom: 10px; }
  .progress-counts { margin-bottom: 9px; }
  .question-navigation summary { padding: 10px 0 1px; font-size: 11px; }
  .question-navigation[open] summary { padding-bottom: 10px; }
  .question-nav-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .question-nav-grid button { min-height: 32px; }
  .question { padding: 18px; margin-bottom: 15px; scroll-margin-top: 72px; }
  .question-number { height: 28px; width: 28px; font-size: 12px; border-radius: 8px; }
  .question-type { font-size: 9px; margin-left: 6px; }
  .question-points { font-size: 17px; }
  .question-points small { font-size: 9px; }
  .question-prompt { font-size: 14px; line-height: 1.95; margin: 16px 0; }
  .option { padding: 10px 11px; font-size: 12px; min-height: 44px; gap: 9px; }
  .answer-fieldset textarea { font-size: 14px; min-height: 170px; }
  .notice { font-size: 11px; padding: 12px 14px; line-height: 1.8; }
  .submission-banner { padding: 14px; flex-wrap: wrap; gap: 10px; }
  .submission-banner>.grow { flex-basis: calc(100% - 47px); }
  .submission-banner>.row { margin-left: 45px; }
  .submission-banner .small { min-height: 32px; font-size: 10px; }
  body[data-role="student"][data-view="assignment"] .sidebar .nav { display: none; }
  body[data-role="student"][data-view="assignment"] .content { padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
  body[data-role="student"][data-view="assignment"] .answer-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 40; padding: 13px 15px calc(13px + env(safe-area-inset-bottom)); border-radius: 13px 13px 0 0; background: #fffffff5; box-shadow: 0 -4px 20px #3550220d; backdrop-filter: blur(12px); flex-wrap: nowrap; gap: 9px; }
  .submit-progress { flex: 1; min-width: 0; }
  .answer-bar .submit-progress strong { font-size: 10px; line-height: 1.7; display: block; }
  .answer-bar .save-status { font-size: 9px; }
  .answer-bar>.row { gap: 7px; flex: none; }
  .answer-bar button { font-size: 11px; min-height: 38px; padding: 8px 11px; }
  .builder-basics .panel-head { flex-wrap: wrap; }
  .builder-fields { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .builder-fields>.field:last-child { max-width: none; }
  .pool-toolbar { flex-wrap: wrap; gap: 9px; padding-bottom: 15px; }
  .pool-toolbar>.search-field { flex-basis: 100%; }
  .pool-toolbar>select { width: auto; flex: 1; min-width: 0; font-size: 11px; }
  .pool-toolbar>button { font-size: 10px; }
  .builder-row { grid-template-columns: 20px minmax(0, 1fr); padding: 16px 4px; gap: 10px; }
  .builder-controls { grid-column: 2; grid-template-columns: minmax(0, 1fr) 95px; margin-top: 1px; }
  .builder-row .meta { font-size: 9px; }
  .builder-row .field { font-size: 9px; }
  .builder-prompt { -webkit-line-clamp: 4; }
  .pool-pagination { flex-wrap: wrap; }
  .pool-pagination .row { width: 100%; justify-content: space-between; }
  .builder-bar { position: static; flex-wrap: wrap; padding: 16px; }
  .builder-bar>button { width: 100%; margin-top: 6px; min-height: 42px; }
  .builder-bar strong { font-size: 11px; }
  dialog { max-height: 92dvh; width: calc(100% - 20px); border-radius: 12px; }
  .dialog-head { padding: 15px 16px; }
  .dialog-head h2 { font-size: 16px; }
  .dialog-body { padding: 17px 15px 20px; }
  .feedback-summary { padding: 12px 0; }
  .feedback-summary>p { display: none; }
  .feedback-summary>div:last-of-type { border: 0; }
  .feedback-summary strong { font-size: 22px; }
  .feedback-summary span { font-size: 9px; }
  .feedback-intro { font-size: 10px; }
  .feedback-item>summary { gap: 7px; padding: 11px 10px; font-size: 11px; }
  .feedback-index { width: 22px; height: 22px; border-radius: 6px; font-size: 10px; }
  .feedback-item>.detail-body { padding: 0 12px 15px; }
  .feedback { padding: 13px 12px; }
  .feedback-head { flex-wrap: wrap; gap: 7px; }
  .feedback-head strong { font-size: 10px; }
  .feedback>p, .student-answer p, .answer-reference p { font-size: 11px; }
  .review-context { padding: 13px; align-items: flex-start; }
  .review-context>p { display: none; }
  .review-fields { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .review-fields>.field:first-child { max-width: 145px; }
  .review-form .row { gap: 10px; }
  .review-form .sub { font-size: 9px; }
  .form-message { font-size: 11px; }
  .suggested-score { font-size: 11px; }
  .suggested-score span { margin-left: 5px; font-size: 9px; }
  .login-form-wrap { padding-top: 30px; }
  #toast { bottom: 90px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Keep secondary information readable on both desktop and touch screens. */
body { font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif; }
.sub, small { font-size: 12px; }
.page-head p { font-size: 13px; }
.eyebrow { font-size: 11px; }
.stat-foot { font-size: 11px; }
.assignment-due, .assignment-metrics span, .card-footer>.sub { font-size: 12px; }
.badge { font-size: 11px; }
.concept-row h3 { font-size: 13px; }
.concept-row p { font-size: 11px; }
.concept-row .badge { font-size: 10px; }
.panel-note, .service-status, .service-status .text-button { font-size: 11px; }
.panel-head p { font-size: 12px; }
.focus-banner p { font-size: 12px; }
.list-caption, .page-note, .text-button, .search-field input { font-size: 12px; }
.class-picker>span, .quick-link, .service-status { font-size: 11px; }
.resource-type, .resource-meta, .resource-source, .template-download, .file-formats, .resource-footer .sub { font-size: 12px; }
.generation-record p, .generation-record .sub, .connection-hint, .generation-flow>span { font-size: 12px; }
.builder-row p, .builder-controls .field, .builder-row .meta, .builder-row summary { font-size: 12px; }
.builder-row .pre { font-size: 12px; }
.progress-counts, .nav-legend, .guide-note, .question-type, .question-points small, .input-hint { font-size: 11px; }
.save-status { font-size: 11px; }
.submit-progress strong { font-size: 13px; }
.submission-banner p { font-size: 12px; }
.feedback-head strong, .evidence-list strong, .student-answer strong, .answer-reference strong, .review-fields .field { font-size: 12px; }
.feedback>p, .student-answer p, .answer-reference p, .evidence-list p { font-size: 13px; }
.feedback-summary span, .feedback-summary>p, .feedback-intro, .review-context .sub { font-size: 12px; }
.review-fields .field input { font-size: 13px; }
.options-grid { gap: 10px; }
@media (max-width: 750px) {
  .sidebar { flex-direction: row; }
  .sidebar .brand { gap: 8px; }
  .role-pill { font-size: 10px; }
  .page-head p { font-size: 12px; }
  .topbar select { font-size: 11px; }
  .stat-label { font-size: 11px; }
  .stat-foot { font-size: 10px; }
  .focus-banner p { font-size: 12px; }
  .focus-banner .eyebrow { font-size: 10px; }
  .focus-banner>button { font-size: 12px; }
  .panel-head p { font-size: 11px; }
  .assignment-metrics span { font-size: 10px; }
  .assignment-due, .card-footer>.sub { font-size: 11px; }
  .assignment-metrics>div { gap: 4px; }
  .concept-row .badge { font-size: 10px; }
  .notice { font-size: 12px; }
  .filter-tabs button, .list-caption { font-size: 12px; }
  .resource-summary div span:not(.resource-summary-icon) { font-size: 11px; }
  .resource-type, .resource-meta, .resource-source, .file-formats, .template-download, .resource-footer .sub { font-size: 11px; }
  .file-formats>span { float: none; display: block; margin-top: 4px; }
  .file-formats { min-height: 45px; }
  .resource-item h3 { font-size: 14px; }
  .generation-flow { gap: 6px; }
  .generation-flow>span { font-size: 10px; }
  .generation-flow b { flex: none; }
  .generation-record h3 { font-size: 14px; }
  .generation-record p, .generation-record .sub { font-size: 11px; }
  .builder-row .field, .builder-row .meta, .builder-row summary { font-size: 11px; }
  .question-type, .progress-counts, .nav-legend { font-size: 11px; }
  .question-type { margin-left: 7px; }
  .question .badge { font-size: 10px; }
  .question-points small { font-size: 10px; }
  .submission-banner p { font-size: 11px; }
  .submission-banner .small { font-size: 12px; }
  .answer-bar .submit-progress strong { font-size: 11px; }
  .answer-bar .save-status { font-size: 10px; }
  .answer-bar>.row { gap: 6px; }
  .answer-bar button { padding: 8px 10px; }
  .feedback-summary span, .feedback-intro { font-size: 11px; }
  .feedback-item>summary { font-size: 12px; }
  .feedback-head strong, .student-answer strong, .evidence-list strong, .answer-reference strong { font-size: 11px; }
  .feedback>p, .student-answer p, .answer-reference p, .evidence-list p { font-size: 12px; }
  .review-fields .field { font-size: 12px; }
}
@media (max-width: 359px) {
  .breadcrumb { font-size: 9px; gap: 5px; }
  .topbar-tools { gap: 5px; }
  .topbar select { max-width: 123px; }
  .account-button { display: none; }
  .generation-flow i { display: none; }
  .generation-flow { justify-content: space-between; }
  .answer-bar .save-status { max-width: 115px; }
}
/* Students open individually; answers and review forms appear one question at a time. */
.student-list-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 22px;padding:0 0 18px;color:#53665b;font-size:13px}.student-list-summary strong{font-size:18px;color:var(--green);margin-right:3px}.student-list-summary>.sub{margin-left:auto}
.student-list-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.student-list-tools .filter-tabs{margin:0}.student-list-tools .filter-tabs span{margin-left:5px;font-variant-numeric:tabular-nums}.student-list-tools .search-field{width:250px}
.student-row-head,.student-submission-row{display:grid;grid-template-columns:minmax(170px,1.3fr) minmax(145px,1fr) minmax(115px,.7fr) 60px;gap:16px;align-items:center}.student-row-head{padding:0 16px 10px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.student-submission-row{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:17px 16px;min-height:84px;background:white}.student-submission-row:last-child{border-bottom:0}.student-submission-row:hover,.student-submission-row:focus-visible{background:#f3f8ef}.student-submission-row:focus-visible{outline:2px solid #64966f;outline-offset:-2px}.student-row-person{display:flex;align-items:center;gap:12px;min-width:0}.student-row-person>span:last-child{min-width:0}.student-row-person strong{font-size:14px;overflow-wrap:anywhere}.student-row-person small,.student-row-time small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.student-row-time{font-size:13px;font-variant-numeric:tabular-nums}.student-row-arrow{color:var(--green);font-size:12px;white-space:nowrap}.student-list-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px;margin-top:8px}
.published-set{background:white;border-radius:13px;border-color:var(--line)}.published-set>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:19px 23px}.published-set>summary::-webkit-details-marker{display:none}.published-set>summary strong{font-size:16px}.published-set>summary small{display:block;margin-top:4px}.published-set[open]>summary{border-bottom:1px solid var(--line)}.published-set>.detail-body{padding:10px 22px 18px}
.student-identity{display:flex;gap:12px;align-items:center}.student-identity .avatar{width:46px;height:46px}.student-identity strong{font-size:17px}.student-identity>.sub{margin-left:auto;text-align:right}.student-assignment-name{margin:18px 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.student-detail-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:22px}.student-detail-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:11px 16px;background:transparent;color:var(--muted)}.student-detail-tabs button.active{border-color:var(--green);color:var(--green);font-weight:600}.student-attempt-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0}.student-attempt-heading h3{font-size:15px}.student-attempt-heading p{margin-top:4px}
.student-detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;background:#f8faf6;margin:18px 0}.student-detail-stats>div{display:grid;text-align:center;padding:18px 10px;gap:4px}.student-detail-stats strong{font-size:25px;color:var(--green);line-height:1.3}.student-detail-stats span{font-size:12px;color:var(--muted)}.student-start-review{width:100%;min-height:44px;margin-bottom:8px}.student-question-heading{margin-top:24px}.student-question-heading .sub{font-size:12px}
.result-question{display:flex;width:100%;align-items:center;gap:14px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:11px;margin-top:10px;min-width:0}.result-question:hover{background:#f5f9f1}.result-question-text{flex:1;min-width:0}.result-question-text strong{display:block;font-size:13px;font-weight:600}.result-question-text small{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;margin-top:4px;color:var(--muted);font-size:12px}.result-question .badge{flex-shrink:0}.result-question-arrow{color:var(--muted)}
.student-history-row{display:flex;align-items:center;gap:14px;justify-content:space-between;width:100%;text-align:left;padding:16px;margin-top:12px}.student-history-row>span:first-child{flex:1;min-width:0}.student-history-row strong{display:block;font-size:13px}.student-history-row small{display:block;color:var(--muted);margin-top:5px;font-size:12px}
.question-detail-nav{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 22px;padding-bottom:16px;border-bottom:1px solid var(--line)}.question-detail-nav>.text-button{padding-left:0}.question-detail-nav>.row{gap:9px}.question-detail-nav .sub{font-variant-numeric:tabular-nums}.question-detail-nav button:disabled{cursor:default}.single-question-review .review-form{margin:24px 0 0}.single-question-review .student-answer,.single-question-feedback .student-answer{padding:16px 18px;border-radius:11px;background:#f7f9f4;border:1px solid var(--line)}.single-question-review .student-answer p,.single-question-feedback .student-answer p{font-size:14px}.review-reference,.review-analysis{margin-top:16px}.review-reference summary,.review-analysis summary{font-size:13px;color:var(--green)}.review-analysis .feedback{margin-top:4px}
.feedback-attempt-picker{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:12px;margin-bottom:20px}.feedback-attempt-picker select{max-width:340px}.feedback-attempt-caption{margin-bottom:20px}.student-feedback-overview .feedback-intro{margin:18px 0}.student-feedback-overview .result-question-list{margin-top:16px}
@media(max-width:900px){.student-row-head,.student-submission-row{grid-template-columns:minmax(145px,1.2fr) minmax(125px,1fr) minmax(95px,.7fr) 20px;gap:12px}.student-row-arrow{font-size:0}.student-row-arrow::after{content:'→';font-size:18px}.student-list-summary>.sub{margin-left:0;width:100%}}
@media(max-width:650px){.student-list-tools{flex-direction:column;align-items:stretch;gap:12px}.student-list-tools .search-field{width:100%}.student-list-tools .filter-tabs{width:100%}.student-row-head{display:none}.student-submission-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:16px 5px;min-height:96px}.student-row-person{grid-row:1;grid-column:1}.student-row-person .avatar{width:36px;height:36px;font-size:12px}.student-row-status{grid-row:1;grid-column:2;justify-self:end}.student-row-time{grid-row:2;grid-column:1;margin-left:48px;font-size:12px}.student-row-time small{display:inline;margin-left:7px;font-size:10px}.student-row-arrow{grid-row:2;grid-column:2;justify-self:end}.student-row-person strong{font-size:14px}.student-row-person small{font-size:11px}.student-list-summary{gap:8px 18px}.student-list-summary>.sub{font-size:11px}.student-list-footer{flex-wrap:wrap}.student-detail-tabs button{flex:1;padding:11px 8px;font-size:12px}.student-identity>.sub{font-size:11px;max-width:90px}.student-detail-stats>div{padding:15px 5px}.student-detail-stats strong{font-size:23px}.student-detail-stats span{font-size:11px}.student-question-heading{flex-wrap:wrap;gap:4px}.student-question-heading>.sub{max-width:100%;text-align:left}.result-question{gap:9px;padding:13px 10px}.result-question-text strong{font-size:12px}.result-question-text small{-webkit-line-clamp:2;font-size:11px}.result-question .badge{font-size:10px;padding:4px 7px}.result-question-arrow{display:none}.feedback-attempt-picker{display:grid;gap:6px}.feedback-attempt-picker select{max-width:100%;width:100%}.question-detail-nav{align-items:stretch;gap:8px}.question-detail-nav>.text-button{width:100%;text-align:left}.question-detail-nav>.row{justify-content:space-between;width:100%}.question-detail-nav>.row button{min-height:36px}.student-history-row{gap:8px;padding:14px 10px}.student-history-row .badge{font-size:10px}.published-set>summary{padding:17px}.published-set>.detail-body{padding:8px 12px 14px}.single-question-review .review-fields{grid-template-columns:1fr}.single-question-review .review-form>.row{align-items:stretch}.single-question-review .review-form>.row button{width:100%;min-height:44px}}
/* Correction workspace: evidence, support and independent checks stay readable on phones. */
#analysis-modal{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #dce5e0;border-radius:22px;box-sizing:border-box;overflow-y:auto;box-shadow:0 24px 80px #153e3529}
#analysis-modal::backdrop{background:#10291f66;backdrop-filter:blur(4px)}
.analysis-complete{padding:32px;text-align:center}.analysis-complete h2{font-size:24px;margin:18px 0 8px}.analysis-result-icon{display:grid;place-items:center;width:64px;height:64px;margin:auto;border-radius:50%;background:#e7f4eb;color:#226344;font-size:34px;font-weight:600}.analysis-result-icon.warning{background:#fff2dc;color:#99611a}
.analysis-assignment{color:#53665b;font-weight:600;overflow-wrap:anywhere}.analysis-complete>p{line-height:1.8}.analysis-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}.analysis-counts>div{padding:16px 8px;background:#f4f7f3;border-radius:12px}.analysis-counts strong{display:block;font-size:26px;color:#153e35}.analysis-counts span{font-size:13px;color:#53665b}.analysis-complete .notice{text-align:left;font-size:13px}.analysis-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.analysis-actions button{min-height:44px;flex:1}
@media(max-width:480px){.analysis-complete{padding:24px 20px}.analysis-actions{gap:8px}.analysis-actions button{padding:10px;font-size:13px}}
.coaching-entry,.coaching-unit-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0;padding:20px;border:1px solid #d6e4f5;border-radius:16px;background:#f4f8ff}
.coaching-entry p{margin:6px 0 0}.coaching-entry button,.coaching-unit-intro button{flex-shrink:0}
.diagnosis-card{margin:16px 0;padding:18px;background:#fff9ed;border:1px solid #eeddb9;border-radius:14px}
.diagnosis-card p{margin:10px 0 0;line-height:1.75;overflow-wrap:anywhere}
.coaching-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:24px 0;gap:10px}
.coaching-stages li{display:flex;align-items:flex-start;gap:9px;padding:14px 10px;border-radius:12px;background:#f1f4f8;color:#64748b;font-size:13px}
.coaching-stages b{display:grid;place-items:center;min-width:25px;height:25px;border-radius:50%;background:white}
.coaching-stages small{display:block;margin-top:5px;font-size:11px}.coaching-stages .passed{background:#eaf6f1;color:#237052}.coaching-stages .current{background:#e9f1ff;color:#214c91;outline:1px solid #b7cef0}
.coaching-section{border-top:1px solid #e5eaf1;margin-top:24px;padding-top:22px}.coaching-section>h3,.coaching-section .panel-head h3{margin:0 0 12px}
.coaching-section summary{cursor:pointer;padding:8px 0}.coaching-section form{margin-top:16px}.coaching-section textarea{width:100%}
.hint-step{display:flex;gap:12px;margin:12px 0;padding:14px;background:#f4f7fc;border-radius:12px}.hint-step span{display:grid;place-items:center;flex:0 0 24px;height:24px;color:#2755a1;background:#e1eafd;border-radius:50%;font-weight:600}.hint-step p{margin:0;line-height:1.8}
.correction-record,.coaching-case-card{padding:17px;border:1px solid #e2e8f0;border-radius:14px;margin-top:14px;overflow-wrap:anywhere}.correction-record p{line-height:1.7;margin:8px 0}.coaching-case-card>p{line-height:1.75;margin:12px 0 0}
.stage-question,.retest-wait{padding:18px;background:#f6f9fe;border:1px solid #dce7f5;border-radius:14px;margin-top:14px}.retest-wait p{line-height:1.8}
.coaching-list{margin-bottom:24px}.coaching-timeline article{padding:14px 0;border-bottom:1px solid #e8edf4}.coaching-timeline article>span{display:block;margin-top:5px}.coaching-timeline p{margin:8px 0 0}
@media(max-width:650px){.coaching-entry,.coaching-unit-intro{align-items:stretch;flex-direction:column;padding:16px}.coaching-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.coaching-stages li{padding:12px 9px}.coaching-section{margin-top:18px;padding-top:18px}.diagnosis-card{padding:14px}.stage-question{padding:14px}}
