:root{--ink:#223b35;--soft:#78877f;--green:#245c4b;--line:#e1e7e0;--paper:#f6f7f3;font-family:'Microsoft YaHei',system-ui,sans-serif;color:var(--ink)}a{text-decoration:none;color:inherit}button,.button{font:inherit;cursor:pointer;border:1px solid #d6dfd5;background:#fff;color:#365247;border-radius:8px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .15s,transform .15s}button:hover,.button:hover{background:#edf2e9}button:disabled{opacity:.5;cursor:wait}.primary,button.primary{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 3px 8px #245c4b13}.primary:hover{background:#194c3c}input,select,textarea{font:inherit;padding:11px 12px;border:1px solid #d5dfd2;border-radius:7px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #bad0bd;outline-offset:1px}input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #83a48a;outline-offset:3px}input{min-width:0}label{font-size:13px}.form-error{color:#a43b31;font-size:13px;line-height:1.6}.form-error:empty{display:none}.eyebrow{font-size:10px;letter-spacing:2.6px;color:#8a9b88}.top{height:86px;border-bottom:1px solid var(--line);padding:0 max(40px,calc((100vw - 1240px)/2));background:#fcfdf9}.top .wordmark{display:flex;gap:11px;align-items:center;font:700 21px Georgia;letter-spacing:1px}.wordmark .mark{display:grid;place-items:center;background:#234e40;color:#f0f4e9;border-radius:9px;width:39px;height:42px;font:24px Georgia}.wordmark small{display:block;font:10px 'Microsoft YaHei';letter-spacing:2px;color:#7b8c7b;margin-top:5px}.top-right{display:flex;gap:22px;align-items:center}.server-pill{font-size:11px;color:#82917f;display:flex;align-items:center;gap:7px}.server-pill i,.status-dot{width:6px;height:6px;border-radius:50%;background:#83a184;display:inline-block;margin-right:7px}.status-dot.inactive{background:#aaa}.quiet{background:transparent!important;font-size:12px!important}.home{max-width:1240px;margin:58px auto;padding:0 40px}.hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:58px}.hero h1{font-size:31px;letter-spacing:-.7px;margin:17px 0 12px;font-weight:600}.hero p,.section-heading p{color:#82907e;font-size:13px;line-height:1.8;margin:0}.hero button{padding:13px 20px;white-space:nowrap}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.section-heading h2{font-size:17px;font-weight:600;margin:0 0 8px}.section-heading h2 span{font-size:10px;background:#e8eee2;padding:4px 8px;border-radius:15px;margin-left:9px}.section-heading input{width:235px;background:#fbfcf8;font-size:12px}.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.class-card{border:1px solid var(--line);border-radius:13px;padding:25px 25px 0;background:#fff;box-shadow:0 4px 15px #223b3503;transition:transform .18s,box-shadow .18s;overflow:hidden}.class-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #223b350a}.card-heading{display:flex;align-items:center;justify-content:space-between}.class-symbol{display:grid;place-items:center;min-width:52px;height:52px;padding:0 8px;background:#edf2e7;color:#506c49;font-size:18px;border-radius:11px;font-weight:600}.subject-tag{font-size:10px;background:#f0f4eb;padding:5px 9px;border-radius:20px;color:#849078}.tone-1 .class-symbol{background:#edf0f4;color:#53647d}.tone-2 .class-symbol{background:#f6efe5;color:#997a4c}.class-open{display:block}.class-open h3{font-size:23px;margin:23px 0 8px;font-weight:600;letter-spacing:-.4px}.class-open p{color:#8a9686;font-size:11px;height:16px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-stats{display:flex;justify-content:space-between;margin:27px 0 23px}.card-stats>div{display:flex;flex-direction:column;gap:6px}.card-stats strong{font:24px Georgia;color:#355642}.card-stats span{font-size:10px;color:#8c9888}.card-enter{border-top:1px solid #edf0e9;padding:17px 0;color:#4c7059;font-size:12px}.card-enter span{float:right}.card-controls{display:flex;align-items:center;justify-content:space-between;margin:0 -25px;padding:11px 20px;background:#fcfdf9;border-top:1px solid #f1f3ed;gap:5px}.card-controls button{padding:3px 5px;font-size:10px;background:none;border:0;color:#8a9785}.card-controls span{font-size:10px;color:#a0aa99}.new-class-card{border:1px dashed #cbd7c4;min-height:333px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(130deg,#f9fbf5,#f3f6ed);border-radius:13px;color:#7e9477;box-shadow:none}.new-class-card:hover{background:#edf3e5}.add-circle{border:1px solid #ccd9c4;background:#f8fbf3;border-radius:50%;width:49px;height:49px;display:grid;place-items:center;font-size:27px;margin-bottom:4px}.new-class-card strong{font-size:17px;color:#5c7752;font-weight:500}.new-class-card>span:not(.add-circle){font-size:12px;color:#8b9c83}.new-class-card small{font-size:10px;color:#a2ae99}.home-bottom{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e2e8dc;margin-top:62px;padding-top:30px;gap:30px}.home-bottom strong{font-size:11px;font-weight:500;letter-spacing:1px;color:#6b8162}.home-bottom p{font-size:11px;color:#9ca794;line-height:1.8}.small-icon{margin-right:9px;color:#91a284}dialog{border:1px solid #dbe3d5;border-radius:15px;padding:0;max-height:90vh;width:min(820px,94vw);color:var(--ink);box-shadow:0 20px 80px #183b3230}dialog::backdrop{background:#1a352c66;backdrop-filter:blur(4px)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;padding:30px 34px 22px;border-bottom:1px solid #ebeee5}.dialog-header h2{font-size:25px;margin:12px 0 8px}.dialog-header p{font-size:12px;color:#8a9881;margin:0}.icon-button{border:0;background:none;font-size:25px;padding:0 7px;color:#9caa92}.dialog-body{padding:20px 34px 24px;max-height:60vh;overflow:auto}.step-label{display:flex;gap:12px;color:#9bab8f;font:13px Georgia;margin:20px 0}.step-label span{font:600 13px 'Microsoft YaHei';color:#526c47}.step-label small{font:10px 'Microsoft YaHei';margin-left:auto;color:#9ba68f}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}.form-grid label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#7e8e73}.form-grid .wide{grid-column:1/-1}.required{color:#ab7463;display:contents}.dialog-footer{border-top:1px solid #e4e9dd;display:flex;align-items:center;gap:10px;padding:18px 34px;background:#fbfcf8}.dialog-footer>span{font-size:10px;color:#9ba88f;margin-right:auto}.dialog-footer button{font-size:12px}.roster-upload{display:flex;align-items:center;gap:14px;border:1px dashed #cad8bf;background:#f8fbf3;padding:20px;border-radius:10px}.upload-icon{font-size:25px;color:#8da57c;width:26px}.roster-upload strong{font-size:12px;color:#607f50}.roster-upload p{font-size:10px;color:#92a085;margin:7px 0 0}.roster-upload .button{margin-left:auto;white-space:nowrap;font-size:11px;background:#fff}.roster-meta{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:11px;color:#8a9b7e}.roster-meta button{font-size:10px;padding:5px 10px}.paste-box{font-size:11px;color:#8e9e81;margin-top:16px}.paste-box textarea{display:block;width:100%;height:120px;margin:10px 0}.paste-box button{font-size:11px}.roster-scroll{max-height:280px;overflow:auto;margin-top:12px}.roster-edit{width:100%;border-collapse:collapse;margin:0}.roster-edit th{position:sticky;top:0;z-index:1;background:#f4f7ee;color:#8a9b7c;font-size:10px;font-weight:500;text-align:left;padding:9px 12px}.roster-edit td{padding:6px 10px;border-bottom:1px solid #eef2e6}.roster-edit td:first-child{width:24%}.roster-edit td:last-child{width:44px}.roster-edit input{width:100%;font-size:12px;border-color:transparent;padding:7px;background:#fcfdf9}.roster-edit input:hover{border-color:#dbe4d2}.roster-edit button{border:0;background:none;color:#a5b296;padding:3px 7px}.signin-page{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;background:#fbfcf8}.signin-story{position:relative;overflow:hidden;background:#193f34;color:#eff4e8;padding:50px 10%;display:flex;flex-direction:column;justify-content:space-between}.signin-story:after{content:'';position:absolute;width:550px;height:550px;border:1px solid #d3dfb70c;border-radius:50%;bottom:-300px;right:-230px;box-shadow:0 0 0 75px #d3dfb706,0 0 0 150px #d3dfb704;pointer-events:none}.signin-wordmark{font:bold 25px Georgia;letter-spacing:2px;display:flex;align-items:center;gap:16px}.signin-wordmark span{font:10px 'Microsoft YaHei';letter-spacing:2px;color:#a2bda1}.signin-copy h1{font-size:39px;font-weight:500;line-height:1.7;letter-spacing:-1px;margin:28px 0 22px}.signin-copy .eyebrow{color:#a0b79b;font-size:9px}.signin-copy p{font-size:13px;color:#9eb79e;line-height:2.2}.signin-story>small{font-size:10px;color:#88a68a;letter-spacing:2px}.signin-lines{display:flex;gap:7px;margin-top:40px}.signin-lines i{display:block;width:36px;height:3px;background:#afc39a;border-radius:3px}.signin-lines i:nth-child(2){width:18px;opacity:.4}.signin-lines i:nth-child(3){width:10px;opacity:.15}.signin-main{display:grid;place-items:center;padding:40px}.signin-form{width:340px;max-width:100%}.welcome-mark{display:grid;place-items:center;width:46px;height:49px;border:1px solid #dae4d2;border-radius:10px;font:28px Georgia;color:#5f7d51;margin-bottom:32px;background:#f2f6ec}.signin-form .eyebrow{font-size:9px}.signin-form h2{font-size:26px;margin:14px 0;font-weight:500}.signin-form>p{font-size:12px;color:#8d9c83;line-height:1.8}.signin-form label{display:block;margin:36px 0 10px;font-size:11px;color:#789069}.signin-form input{width:100%;height:48px;background:#fff;font-size:13px}.signin-form button{display:flex;width:100%;height:46px;justify-content:space-between;margin-top:20px;font-size:12px}.signin-form>small{display:block;margin-top:28px;font-size:10px;color:#a2af96}.workspace-page{background:#f5f7f2}.workspace-page aside{background:#1b4337;width:240px;padding:30px 23px}.workspace-page main{margin-left:240px;width:calc(100% - 240px);padding:37px 42px}.back-home{font-size:11px;color:#a6bda3}.workspace-brand{font:30px Georgia;color:#e4edda;margin-top:35px;display:flex;gap:12px;align-items:center}.workspace-brand span{font:11px 'Microsoft YaHei';letter-spacing:1px;color:#c7d7bb}.sidebar-class{border-top:1px solid #ffffff12;border-bottom:1px solid #ffffff12;padding:24px 0;margin:30px 0 20px;display:flex;flex-direction:column;gap:10px}.sidebar-class small{font-size:9px;color:#90ac8d;letter-spacing:2px}.sidebar-class strong{font-weight:500;font-size:24px;overflow-wrap:anywhere}.sidebar-class span{font-size:10px;color:#8fa98c;line-height:1.8}.side-tool{display:block;padding:13px 12px;font-size:11px;margin:8px -4px;color:#a1ba99;border-radius:7px}.side-tool.active{background:#ffffff0e;color:#dce9d1;border-left:2px solid #bccca4}.side-tool:hover{background:#ffffff0b}.new-side{border:1px dashed #ffffff20;margin-top:24px}.workspace-page .side-note{bottom:28px;font-size:9px;line-height:2.2;color:#849f81}.workspace-page h1{font-size:26px;letter-spacing:-.5px}.workspace-page header p{font-size:11px;color:#94a18b}.workspace-page .notice{font-size:11px;background:#edf1e4;border-left:2px solid #b4c496;color:#829370;border-radius:0 6px 6px 0;margin:24px 0 17px}.workspace-page nav{gap:25px;margin-bottom:22px;border-color:#e2e7db}.workspace-page nav button{font-size:11px;padding:14px 0;color:#90a07e}.workspace-page nav button.selected{color:#3c674b;border-color:#5b825c}.workspace-page .panel{padding:22px 24px;border-color:#e2e8db;border-radius:11px;box-shadow:0 3px 12px #32452102}.workspace-page .panel h2{font-size:15px}.workspace-page .panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.workspace-page .panel p{font-size:11px;line-height:1.9}.workspace-page .toolbar{font-size:11px}.workspace-page .toolbar button,.workspace-page .actions button,.workspace-page .actions .button{font-size:10px;padding:9px 12px}.workspace-page .stats{gap:15px}.workspace-page .stat{padding:20px 24px;border-color:#e2e8db;border-radius:10px}.workspace-page .stat>span{font-size:11px;color:#849779}.workspace-page .stat strong{font:35px Georgia;color:#3f644a;margin:14px 0 8px}.workspace-page .stat small{font-size:10px;color:#a0ac93}.workspace-page th{font-size:10px;font-weight:500;color:#91a180;background:#f7f9f2}.workspace-page td{font-size:12px;border-color:#edf1e5}.workspace-page td button{font-size:10px;padding:6px 9px}.workspace-page .empty{padding:55px 20px;color:#a4af97;font-size:12px}.workspace-page .empty b{font-size:18px;color:#728d60;font-weight:500}.workspace-page #student-dialog{width:min(400px,92vw);padding:28px}.workspace-page #student-dialog label{display:flex;flex-direction:column;gap:9px;margin:16px 0}.workspace-page .import-panel summary{font-size:12px;color:#7a9468}.workspace-page .roster-upload p{font-size:10px}.workspace-page footer{font-size:9px;color:#a7b297}.workspace-page .rule-grid label{font-size:11px}.workspace-page details summary{font-size:11px}.workspace-page .error{font-size:11px}.workspace-page .paper td,.workspace-page .paper th{font-size:12px;border-color:#000;color:#000;background:#fff}.workspace-page .paper h1{font-size:22px;letter-spacing:0}.workspace-page .paper .A{font:bold 16px Arial}.workspace-page .paper .B{font:italic 16px Georgia}.workspace-page .paper .C{font:15px 'Courier New';text-decoration:underline}@media(max-width:1000px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:27px}.workspace-page main{padding:25px}.workspace-page aside{width:205px;padding:25px 18px}.workspace-page main{margin-left:205px;width:calc(100% - 205px)}.signin-copy h1{font-size:30px}.signin-story{padding:40px 9%}}@media(max-width:650px){.top{padding:0 22px;height:75px}.server-pill{display:none}.home{padding:0 22px;margin-top:35px}.hero{align-items:flex-start;flex-direction:column;margin-bottom:35px}.hero h1{font-size:25px;line-height:1.6}.class-grid{grid-template-columns:1fr}.section-heading input{width:145px;font-size:10px}.home-bottom{grid-template-columns:1fr;gap:15px;margin-top:35px}.home-bottom p{margin:7px 0}.new-class-card{min-height:270px}.dialog-header{padding:23px}.dialog-body{padding:10px 23px 20px;max-height:60vh}.dialog-footer{padding:16px 23px;flex-wrap:wrap}.dialog-footer>span{flex-basis:100%;margin-bottom:3px}.form-grid{grid-template-columns:1fr}.roster-upload{padding:15px;gap:9px;flex-wrap:wrap}.roster-upload .button{margin-left:39px}.signin-page{display:block}.signin-story{min-height:210px;padding:25px}.signin-copy h1{font-size:24px;line-height:1.6;margin:25px 0 0}.signin-copy h1 br{display:none}.signin-copy .eyebrow,.signin-copy p,.signin-lines,.signin-story>small{display:none}.signin-main{padding:35px 25px}.welcome-mark{display:none}.signin-form h2{font-size:23px}.workspace-page aside{position:static;width:100%;height:auto;min-height:0;padding:18px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.workspace-page .workspace-brand,.workspace-page .sidebar-class small,.workspace-page .sidebar-class span,.workspace-page .side-note,.workspace-page .side-tool.active{display:none}.workspace-page .sidebar-class{padding:0;margin:0 auto 0 10px;border:0}.workspace-page .sidebar-class strong{font-size:18px}.workspace-page .side-tool{padding:6px;margin:0;font-size:10px}.workspace-page .new-side{border:0}.workspace-page main{margin:0;width:100%;padding:22px}.workspace-page nav{gap:18px}.workspace-page header .actions{margin-top:15px}.workspace-page .panel{padding:18px}.workspace-page .stats{gap:10px}.workspace-page .stat{padding:16px}.workspace-page .stat strong{font-size:29px}.workspace-page .panel-heading{align-items:flex-start}.workspace-page .panel-heading button{font-size:10px;white-space:nowrap}.workspace-page .record-grid{overflow:auto}}@media print{.workspace-page .paper td,.workspace-page .paper th{border-color:black}.workspace-page .paper h1{font-size:22px}.workspace-page .paper{box-shadow:none}}
