:root{--ink:#17322d;--muted:#667a75;--line:#dbe5e1;--paper:#fff;--canvas:#f4f7f5;--brand:#146c5b;--brand-dark:#0d4b40;--brand-soft:#e5f2ee;--accent:#e9a53b;--danger:#b84a4a;--danger-soft:#faeceb;--shadow:0 10px 30px #16403712}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:var(--canvas);font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.auth-page{background:#f8faf9;grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);min-height:100vh;display:grid}.auth-story{color:#fff;background:radial-gradient(circle at 82% 18%,#e9a53b2e,#0000 25%),linear-gradient(145deg,#0e5547,#153f38);flex-direction:column;justify-content:space-between;padding:clamp(48px,8vw,110px);display:flex}.brand-lockup{letter-spacing:.04em;align-items:center;gap:12px;font-weight:800;display:flex}.brand-mark{border:1px solid #ffffff59;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.auth-story h1{letter-spacing:-.04em;max-width:720px;margin:80px 0 18px;font-size:clamp(40px,5vw,70px);line-height:1.08}.auth-story p{color:#ffffffb8;max-width:660px;font-size:18px}.diagnosis-flow{color:#ffffffd6;flex-wrap:wrap;gap:8px;display:flex}.diagnosis-flow span{border:1px solid #ffffff2e;border-radius:999px;padding:8px 12px}.auth-panel{place-items:center;padding:48px;display:grid}.login-card{width:min(420px,100%)}.login-card h2{margin:0 0 8px;font-size:32px}.login-card>p{color:var(--muted);margin:0 0 32px}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:#123e36;flex-direction:column;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.sidebar .brand-lockup{padding:4px 8px 28px}.nav-list{gap:6px;display:grid}.nav-link{color:#ffffffb8;border-radius:10px;align-items:center;gap:12px;padding:11px 13px;display:flex}.nav-link:hover{color:#fff;background:#ffffff14}.sidebar-footer{border-top:1px solid #ffffff1f;margin-top:auto;padding:18px 8px 4px}.sidebar-footer strong,.sidebar-footer span{display:block}.sidebar-footer span{color:#ffffff8c;margin-top:2px;font-size:13px}.main-area{min-width:0}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:5;background:#ffffffdb;justify-content:space-between;align-items:center;height:72px;padding:0 34px;display:flex;position:sticky;top:0}.topbar-title{font-weight:700}.content{max-width:1480px;margin:0 auto;padding:34px}.page-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.page-header h1{letter-spacing:-.03em;margin:0 0 8px;font-size:31px;line-height:1.2}.page-header p{color:var(--muted);margin:0}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.metric-card,.card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px}.metric-card{padding:20px}.metric-label{color:var(--muted);justify-content:space-between;align-items:center;font-size:14px;display:flex}.metric-value{letter-spacing:-.04em;margin-top:8px;font-size:31px;font-weight:800}.metric-note{color:var(--muted);margin-top:3px;font-size:12px}.card{padding:22px}.card+.card{margin-top:18px}.card-header{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.card-header h2,.card h2{margin:0;font-size:18px}.section-grid{grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);align-items:start;gap:18px;display:grid}.btn{border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-weight:700;display:inline-flex}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark)}.btn-secondary{background:var(--brand-soft);color:var(--brand-dark)}.btn-ghost{color:var(--muted);border:1px solid var(--line);background:0 0}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{gap:7px;display:grid}.field-full{grid-column:1/-1}.field label{font-size:14px;font-weight:700}.input,.select,.textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #cddbd6;border-radius:10px;outline:none;padding:10px 12px}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #146c5b1f}.textarea{resize:vertical;min-height:96px}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:9px;padding:9px 11px;font-size:14px}.form-success{color:var(--brand-dark);background:var(--brand-soft);border-radius:9px;padding:9px 11px;font-size:14px}.help{color:var(--muted);font-size:13px}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;color:var(--muted);letter-spacing:.04em;border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px;font-weight:700}.data-table td{vertical-align:middle;border-bottom:1px solid #edf2ef;padding:13px 12px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f8fbf9}.number{font-variant-numeric:tabular-nums}.link{color:var(--brand);font-weight:700}.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:42px 20px}.status{border-radius:999px;align-items:center;padding:4px 9px;font-size:12px;font-weight:700;display:inline-flex}.status-draft{color:#7a5a1e;background:#fff3d7}.status-published,.status-good{color:var(--brand-dark);background:var(--brand-soft)}.status-risk{color:var(--danger);background:var(--danger-soft)}.score-cell{align-items:center;gap:10px;min-width:150px;display:flex}.score-bar{background:#e9efec;border-radius:99px;flex:1;height:7px;overflow:hidden}.score-bar>span{background:var(--brand);border-radius:inherit;height:100%;display:block}.score-bar.risk>span{background:#d46a5f}.class-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.class-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:15px;padding:20px}.class-card h3{margin:0 0 5px}.class-card-meta{color:var(--muted);margin-bottom:18px;font-size:14px}.class-card-stats{border-top:1px solid var(--line);justify-content:space-between;padding-top:14px;display:flex}.upload-zone{text-align:center;background:#f7fbf9;border:1px dashed #9db9b0;border-radius:14px;padding:30px}.upload-zone input{max-width:100%;margin:16px auto;display:block}.steps{counter-reset:step;gap:14px;display:grid}.step{grid-template-columns:30px 1fr;align-items:start;gap:10px;display:grid}.step:before{counter-increment:step;content:counter(step);background:var(--brand-soft);width:25px;height:25px;color:var(--brand-dark);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.step strong,.step span{display:block}.step span{color:var(--muted);font-size:13px}.knowledge-list{gap:15px;display:grid}.knowledge-row{grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) 64px;align-items:center;gap:16px;display:grid}.knowledge-path{font-size:14px}.knowledge-path small{color:var(--muted);display:block}.risk-panel{border-left:4px solid #d46a5f}.weak-point{border-bottom:1px solid var(--line);padding:16px 0}.weak-point:last-child{border-bottom:0}.weak-point h3{margin:0 0 6px;font-size:16px}.evidence-list{color:var(--muted);margin:10px 0 0;padding-left:18px;font-size:14px}details.editor{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}details.editor summary{cursor:pointer;color:var(--brand);font-weight:700}details.editor form{margin-top:16px}.collapsible-card{padding:0;overflow:hidden}.collapsible-card>summary{cursor:pointer;justify-content:space-between;gap:16px;padding:22px;font-weight:700;display:flex}.collapsible-card>summary small{color:var(--muted);font-weight:400}.collapsible-card .table-wrap{padding:0 22px 22px}.item-editor summary{color:var(--brand);cursor:pointer;white-space:nowrap;font-weight:700}.item-editor form{border:1px solid var(--line);background:#f7fbf9;border-radius:12px;width:min(680px,76vw);margin-top:12px;padding:16px}.exam-result-list{gap:10px;display:grid}.exam-result{border:1px solid var(--line);border-radius:12px;overflow:hidden}.exam-result>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.exam-result summary span,.exam-result summary small{display:block}.exam-result summary small{color:var(--muted);margin-top:3px}.exam-result summary em{white-space:nowrap;font-style:normal}.exam-result-body{border-top:1px solid var(--line);padding:0 16px 16px}@media (max-width:1050px){.metrics,.class-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.section-grid{grid-template-columns:1fr}}@media (max-width:760px){.auth-page{grid-template-columns:1fr}.auth-story{display:none}.auth-panel{min-height:100vh;padding:28px}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:14px;position:static}.sidebar .brand-lockup{padding:0 4px 12px}.nav-list{display:flex;overflow-x:auto}.nav-link{white-space:nowrap}.sidebar-footer{display:none}.topbar{height:60px;padding:0 18px}.content{padding:22px 16px}.page-header{flex-direction:column}.metrics,.class-cards,.form-grid{grid-template-columns:1fr}.field-full{grid-column:auto}.knowledge-row{grid-template-columns:1fr 1fr}.knowledge-row .knowledge-path{grid-column:1/-1}.table-wrap{overflow-x:auto}}.table-actions{white-space:nowrap;align-items:center;gap:12px;display:flex}.btn-compact{padding:6px 10px;font-size:12px}.status-inactive{color:var(--muted);background:#edf2ef}.student-edit-row td{background:#f7fbf9;padding:16px 12px 18px}.student-edit-form{grid-template-columns:minmax(120px,.7fr) minmax(160px,1fr) minmax(120px,.6fr) auto;align-items:end;gap:14px;display:grid}.student-edit-actions{align-items:center;gap:8px;display:flex}.student-edit-form .form-error{grid-column:1/-1}@media (max-width:760px){.student-edit-form{grid-template-columns:1fr}.student-edit-form .form-error{grid-column:auto}.student-edit-actions{justify-content:flex-start}}
