:root{color:#1d261f;font-synthesis:none;background:#f3f5ef;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}body{margin:0}.shell{width:min(1080px,100% - 40px);margin:42px auto 80px}.hero{justify-content:space-between;align-items:end;gap:28px;padding:28px 4px 30px;display:flex}.eyebrow{color:#4f6d55;letter-spacing:.04em;text-transform:uppercase;margin:0 0 9px;font-size:.78rem;font-weight:800}h1{letter-spacing:-.06em;margin:0;font-size:clamp(2.2rem,5vw,4.6rem);line-height:.98}h2{margin:4px 0 0;font-size:1.35rem}p{color:#566058;line-height:1.65}.hero p:not(.eyebrow){max-width:540px;margin-bottom:0}.upload-button,button{font:inherit;cursor:pointer;color:#22442a;white-space:nowrap;background:#dcebdd;border:0;border-radius:999px;padding:13px 19px;font-weight:750}.upload-button input{display:none}button.primary{color:#fff;background:#245d35}button.secondary{color:#8a3b2e;background:#f5e5e1}button:disabled{cursor:not-allowed;opacity:.42}.notice{color:#36563b;background:#e9f1e6;border-radius:12px;margin:0 0 18px;padding:14px 17px}.panel,.empty-state{background:#fff;border:1px solid #d9ded4;border-radius:18px;margin:16px 0;padding:24px;box-shadow:0 9px 30px #2a4b2510}.section-heading{justify-content:space-between;align-items:start;gap:15px;display:flex}code{color:#7d887e}.metrics{grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0;display:grid}.metric{background:#f6f8f3;border-radius:13px;gap:8px;padding:15px;display:grid}.metric span{color:#6f786f;font-size:.85rem}.metric strong{font-size:1.65rem}.metric strong.good{color:#367d48}.metric strong.bad{color:#b14b3b}.metric strong.warn{color:#a66b21}.actions{flex-wrap:wrap;gap:9px;display:flex}.hint{margin-bottom:0;font-size:.88rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid #edf0eb;padding:12px 10px}th{color:#697369;text-transform:uppercase;font-size:.78rem}td:first-child{color:#8b958b}.tag{border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:750}.tag.bad{color:#9d4438;background:#fbe8e4}.tag.warn{color:#96631d;background:#fff2d9}.empty,.empty-state{color:#68736a}.empty-state{text-align:center;place-content:center;gap:9px;min-height:180px;display:grid}@media (width<=700px){.shell{width:min(100% - 24px,1080px);margin-top:20px}.hero{display:block}.upload-button{margin-top:22px;display:inline-block}.metrics{grid-template-columns:repeat(2,1fr)}.panel{padding:17px}}.editor{gap:14px;display:grid}.editor label{color:#526055;gap:6px;font-size:.86rem;font-weight:700;display:grid}.editor input,.editor textarea,.editor select{box-sizing:border-box;width:100%;font:inherit;color:#1d261f;background:#fbfcfa;border:1px solid #d4ddd2;border-radius:9px;padding:10px}.editor textarea{resize:vertical;min-height:78px}.option-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.option-grid label{color:#526055;gap:6px;font-size:.86rem;font-weight:700;display:grid}.clickable{cursor:pointer}.clickable:hover{background:#f5f8f2}.open-hint{float:right;color:#4f6d55;font-size:.78rem}:root{--paper:#f6f0e6;--ink:#25342d;--pine:#254c41;--rust:#ad583e;--line:#d7cbb9;--muted:#68736d;color:var(--ink);background:#e7dfd2;font-family:Noto Sans SC,PingFang SC,sans-serif}*{box-sizing:border-box}button,.upload-button{border-radius:0}.site-frame{background:var(--paper);max-width:1480px;min-height:100vh;margin:auto;box-shadow:0 20px 70px #25342d22}.masthead{border-bottom:1px solid var(--line);background:#f8f3eb;justify-content:space-between;align-items:center;gap:22px;min-height:79px;padding:0 28px;display:flex}.identity{align-items:center;gap:12px;min-width:280px;display:flex}.seal{border:2px solid var(--rust);width:38px;height:38px;color:var(--rust);place-items:center;font:700 24px serif;display:grid}.identity b{letter-spacing:.04em;font-family:Noto Serif SC,serif;font-size:18px;display:block}.identity small{color:var(--muted);letter-spacing:.12em;margin-top:3px;font-size:9px;display:block}.user-state{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.avatar{width:29px;height:29px;color:var(--pine);background:#dcc3a7;border-radius:50%;place-items:center;font-weight:800;display:grid}.teacher-shell{min-height:calc(100vh - 79px)}.teacher-head{background:var(--pine);color:#f7f1e5;padding:35px 48px 0}.teacher-head-row{justify-content:space-between;align-items:start;gap:20px;display:flex}.teacher-head .eyebrow{color:#e5c47c;letter-spacing:.13em;font-size:11px}.teacher-head h1{letter-spacing:0;max-width:850px;margin:8px 0 28px;font:700 clamp(28px,3vw,43px)/1.3 Noto Serif SC,serif}.teacher-head-row>p{color:#d8e2d9;text-align:right;overflow-wrap:anywhere;max-width:280px;font-size:12px}.teacher-tabs{gap:28px;display:flex}.teacher-tabs button{color:#d1dfd6;background:0 0;border:0;border-bottom:3px solid #0000;padding:13px 3px;font-size:13px}.teacher-tabs button.active{color:#fff;border-color:#d9a95f}.teacher-body{padding:36px 48px 70px}.teacher-pane{min-height:440px}.teacher-pane>h2,.bank-top h2,.hero h2{margin:5px 0 15px;font:700 clamp(25px,2.5vw,34px)/1.35 Noto Serif SC,serif}.section-label{color:var(--rust);letter-spacing:.12em;margin:0;font-size:11px;font-weight:800}.intro{max-width:680px;font-size:15px}.bank-top{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px;padding-bottom:20px;display:flex}.bank-layout{grid-template-columns:205px minmax(0,1fr);gap:28px;display:grid}.filters{border-right:1px solid var(--line);padding-right:18px}.filter{border-left:3px solid #0000;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:13px 10px;font-size:13px;display:flex}.filter.active{border-left-color:var(--rust);background:#eee4d5}.filter b{color:var(--pine)}.filters button.filter{text-align:left;width:100%;color:var(--ink);white-space:normal;background:0 0;min-width:0;font-weight:400}.filters button.filter:hover{background:#eee4d5}.filters button.filter:focus-visible{outline:2px solid var(--pine);outline-offset:2px}.bank-view>.bank-top{flex-wrap:wrap}.material-workbench :is(h3,h4,p){overflow-wrap:anywhere}.material-workbench input[type=file]{min-width:0;max-width:100%}.material-import-preview{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);max-height:320px;font:inherit;background:#f0e9df;padding:14px;line-height:1.7;overflow:auto}.catalog-status{color:var(--muted);margin:0 0 15px;font-size:12px}.content-table{background:#faf7f0}.content-table th{color:var(--pine);border-bottom:2px solid var(--ink)}.content-table td{border-bottom:1px solid var(--line);vertical-align:top}.content-table td:first-child{color:var(--ink);width:55%}.content-table td b{font-size:14px;font-weight:600;line-height:1.5;display:block}.content-table td small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.tag.live{color:#296047;background:#dae9db}.archive-foot{color:var(--muted);margin:14px 0;font-size:12px}.teacher-body .primary,.teacher-body .upload-button{background:var(--pine);color:#fff;padding:11px 17px;font-size:13px}.content-view .hero{align-items:center;padding:8px 0 16px}.content-view .hero h2{font-size:25px}.import-file-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;display:flex}.content-view .template-download{border:1px solid var(--pine);min-height:42px;color:var(--pine);white-space:nowrap;justify-content:center;align-items:center;padding:11px 17px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.content-view .template-download:hover{background:#e7dfd0}.content-view .template-download:focus-visible{outline:2px solid var(--pine);outline-offset:3px}.import-file-actions .upload-button{margin-top:0}.content-view .notice{border-left:3px solid var(--rust);color:var(--ink);background:#efe7d8;border-radius:0}.content-view .panel,.content-view .empty-state{border-color:var(--line);box-shadow:none;background:#faf7f0;border-radius:0}.content-view .metric{background:#f0e9df;border-radius:0}.content-view button{color:var(--pine);background:#e7dfd0}.content-view button.primary{background:var(--pine);color:#fff}@media (width<=760px){.masthead{flex-wrap:wrap;padding:14px 16px}.identity{min-width:0}.user-state{font-size:11px}.teacher-head{padding:27px 20px 0}.teacher-head-row>p{display:none}.teacher-tabs{gap:16px;overflow:auto}.teacher-body{padding:25px 16px 50px}.bank-layout{grid-template-columns:1fr;gap:15px}.filters{border-right:0;gap:8px;padding:0;display:flex}.filter{flex:1}.content-table{min-width:620px}.bank-top{align-items:start}}.login-shell{color:#273a32;background:#e9e4d8;place-content:center;min-height:100vh;padding:24px;display:grid}.login-brand{align-items:center;gap:12px;margin-bottom:28px;font-family:Noto Serif SC,serif;display:flex}.login-card{background:#fbf8f0;border:1px solid #c9c2b2;width:min(420px,100vw - 48px);padding:36px;box-shadow:0 20px 50px #273a3220}.login-card h1{margin:8px 0;font-size:30px}.login-card p{color:#58675e;line-height:1.6}.login-card form{gap:16px;margin-top:24px;display:grid}.login-card label{gap:7px;font-weight:600;display:grid}.login-card input{width:100%;font:inherit;background:#fff;border:1px solid #b9b6aa;padding:12px}.login-card button{color:#fff;font:inherit;cursor:pointer;background:#2c5142;border:0;padding:12px}.login-card button:disabled{opacity:.6}.login-card .login-error{color:#9b332a;margin:0}.admin-workbench{background:var(--paper);max-width:1440px;min-height:100vh;margin:auto;font-size:14px;line-height:1.5}.admin-workbench h1{letter-spacing:0;margin:6px 0 0;font:700 28px/1.35 Noto Sans SC,PingFang SC,sans-serif}.admin-workbench h2{margin:0 0 14px;font-size:18px}.admin-workbench p{margin:8px 0 16px}.admin-workbench button{color:var(--pine);background:#e9e4d7;border:1px solid #0000;min-height:40px;padding:9px 14px;font-size:14px;font-weight:600}.admin-workbench button.primary{background:var(--pine);color:#fff}.admin-workbench button.admin-danger{color:#8b3529;background:#f4e5df}.admin-workbench :is(button,input,select):focus-visible{outline:2px solid var(--pine);outline-offset:3px}.admin-masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:76px;padding:16px 28px;display:flex}.admin-masthead .identity{min-width:0}.admin-masthead .identity b{font-size:16px}.admin-person{align-items:center;gap:12px;min-width:0;display:flex}.admin-person>span{overflow-wrap:anywhere}.admin-workbench .admin-avatar{background:#dcc3a7;border-radius:50%;flex-shrink:0;width:40px;padding:0}.admin-layout{grid-template-columns:190px minmax(0,1fr);min-height:calc(100vh - 76px);display:grid}.admin-sidebar{border-right:1px solid var(--line);background:#eee7db;padding:24px 16px}.admin-sidebar>p{color:var(--muted);padding:0 10px;font-size:12px;font-weight:600}.admin-sidebar nav{gap:6px;display:grid}.admin-sidebar nav button{text-align:left;background:0 0}.admin-sidebar nav button[aria-current=page]{background:var(--pine);color:#fff}.admin-sidebar .admin-scope{margin-top:32px;font-weight:400;line-height:1.8}.admin-body{min-width:0;padding:28px}.admin-page-heading,.admin-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.admin-page-heading .section-label{margin:0}.admin-panel{border:1px solid var(--line);background:#fbf8f0;margin:18px 0;padding:22px}.admin-section-heading h2{margin:0}.admin-subtitle,.admin-muted{color:var(--muted);font-size:13px}.admin-notice{border-left:3px solid var(--pine);overflow-wrap:anywhere;background:#e5ebdf;padding:14px 16px}.admin-read-error{border-left:3px solid var(--rust);background:#f3e7dd;padding:14px 16px}.admin-read-error p{margin-top:0}.admin-read-status,.admin-empty{color:var(--muted);padding:20px 0}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.admin-workbench .admin-stat{text-align:left;border:1px solid var(--line);white-space:normal;background:#fbf8f0;gap:8px;padding:20px;display:grid}.admin-stat strong{color:var(--pine);font-size:30px;line-height:1.2}.admin-stat small{color:var(--muted);font-size:12px}.admin-role-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.admin-role-grid button{white-space:normal;justify-content:space-between;gap:12px;display:flex}.admin-role-grid strong{font-size:20px}.admin-audit-summary{justify-content:space-between;align-items:center;gap:20px;display:flex}.admin-audit-summary h2{margin-bottom:8px}.admin-audit-summary p{margin-bottom:0}.admin-workbench label{gap:7px;min-width:0;font-weight:600;display:grid}.admin-workbench :is(input,select){width:100%;min-width:0;font:inherit;color:var(--ink);background:#fff;border:1px solid #b8b8a9;border-radius:0;min-height:42px;padding:10px 12px}.admin-filters{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:20px;display:flex}.admin-filters label:first-child{flex:1;min-width:180px}.admin-filters label:not(:first-child){min-width:130px}.admin-filters button{min-height:42px}.admin-workbench table{font-size:14px}.admin-workbench th{color:var(--muted);text-transform:none;white-space:nowrap;font-size:12px}.admin-workbench td{vertical-align:middle;color:var(--ink);border-color:var(--line);padding:14px 10px}.admin-workbench td b{overflow-wrap:anywhere;font-weight:600;display:block}.admin-workbench td small{color:var(--muted);overflow-wrap:anywhere;margin-top:3px;font-size:12px;display:block}.admin-workbench td .actions{gap:6px}.admin-workbench td button{padding:7px 10px}.admin-status{white-space:nowrap;background:#e8e3d8;padding:3px 8px;font-size:12px;display:inline-block}.admin-status.active{color:#285239;background:#dfeadd}.admin-status.disabled{color:#843c31;background:#f1e0db}.admin-pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:18px;font-size:13px;display:flex}.admin-form-panel form{gap:14px;max-width:540px;display:grid}.admin-form-panel form>p{margin:0}.admin-form-panel small{color:var(--muted)}.admin-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 20px;display:grid}.admin-details dt{color:var(--muted);margin-bottom:5px;font-size:12px}.admin-details dd{overflow-wrap:anywhere;margin:0}.admin-security>section[aria-label=账号安全]{background:0 0!important;border-bottom:0!important;padding:0 0 20px!important}.admin-security form{max-width:540px!important}.admin-filter-chip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-audit-table{min-width:620px}.admin-audit-table time{white-space:nowrap}@media (width<=1000px){.admin-stats,.admin-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-layout{grid-template-columns:160px minmax(0,1fr)}.admin-body{padding:22px}}@media (width<=700px){.admin-masthead{flex-wrap:wrap;padding:14px 16px}.admin-person{margin-left:auto}.admin-layout{grid-template-columns:1fr}.admin-sidebar{border-right:0;border-bottom:1px solid var(--line);padding:12px 16px}.admin-sidebar>p{display:none}.admin-sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.admin-sidebar nav button{text-align:center;padding:8px 4px;font-size:13px}.admin-body{padding:20px 16px}.admin-panel{padding:16px}.admin-page-heading{gap:10px}.admin-page-heading h1{font-size:24px}.admin-stats{gap:10px}.admin-workbench .admin-stat{padding:14px}.admin-stat strong{font-size:26px}.admin-role-grid{gap:8px}.admin-role-grid button{padding:10px;font-size:13px}.admin-audit-summary{display:block}.admin-audit-summary>button{margin-top:16px}.admin-filters label:first-child{flex-basis:100%}.admin-filters label:not(:first-child){flex:1;min-width:100px}.admin-account-table thead{display:none}.admin-account-table,.admin-account-table tbody{display:block}.admin-account-table tr{border-bottom:1px solid var(--line);padding:12px 0;display:block}.admin-workbench .admin-account-table td{border:0;grid-template-columns:90px minmax(0,1fr);gap:4px 12px;padding:6px 0;display:grid}.admin-account-table td:before{content:attr(data-label);color:var(--muted);grid-row:1/3;font-size:12px}.admin-account-table td .actions{grid-column:2}.admin-pagination{flex-wrap:wrap}.admin-details{grid-template-columns:1fr}.admin-workbench .identity .seal{width:32px;height:32px;font-size:20px}}
