:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#24352f;background:#f3f6f4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-size:14px;--green: #1e705b;--dark: #173c32;--muted: #5f7268;--line: #dfe7e1;--paper: #fff;--accent: #dceee4;--shadow: 0 4px 20px #173c3206}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8cbd97;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-.8px;font-weight:650;line-height:1.4}h2{font-size:20px;line-height:1.5;font-weight:650}h3{font-size:16px;line-height:1.5;font-weight:600}fieldset{margin:0;padding:0;border:0;min-width:0}.brand{display:inline-flex;align-items:center;gap:11px;font-size:20px;font-weight:650;letter-spacing:1px;white-space:nowrap}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:2.5px;margin-top:4px}.brand-mark{width:39px;height:42px;display:grid;place-items:center;border:1px solid #b8d2c1;border-radius:10px;color:#2b6c53;background:#edf4e9}.brand.light{color:#f4f6ef}.brand.light .brand-mark{background:#29423b;border-color:#40594c;color:#c9dfb9}.eyebrow{color:#63826d;font-size:10px;letter-spacing:2.3px;font-weight:650;margin-bottom:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;padding:12px 19px;border-radius:10px;min-height:44px;line-height:1.4;font-weight:550;white-space:nowrap;transition:background .2s,transform .2s}.button:not(:disabled):hover{transform:translateY(-1px)}.button.primary{background:var(--green);color:#fff;box-shadow:0 4px 10px #164a3020}.button.primary:not(:disabled):hover{background:#1c604b}.button.secondary{background:#fff;border-color:#dce2d9;color:#435b4b}.button.secondary:not(:disabled):hover{background:#f1f5ed}.button.small{padding:8px 12px;font-size:12px}.button.full{width:100%}.icon-button{display:inline-grid;place-items:center;border:0;background:transparent;padding:10px;min-width:40px;min-height:40px;border-radius:6px;color:inherit}.icon-button:hover{background:#65886d18}.quiet-link,.back-link,.resume-link{display:flex;align-items:center;gap:8px;font-size:13px;color:#50715b}.back-link{width:fit-content;margin-bottom:25px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}.page-heading p{color:var(--muted);font-size:13px;margin-top:12px;line-height:1.8}.page-heading>.button{margin-top:4px}.field{display:flex;flex-direction:column;gap:9px;margin-bottom:19px;font-size:13px;color:#42584a}.field>span{font-weight:550}.field small{font-size:12px;color:var(--muted);line-height:1.7}.field input,.field select,.field textarea{width:100%;border:1px solid #dce3d9;background:#fff;border-radius:6px;padding:11px 12px;color:#2c3f32;line-height:1.6;transition:border-color .2s}.field input::placeholder,.field textarea::placeholder{color:#a7afa7}.field input:focus,.field textarea:focus,.field select:focus{border-color:#739c7b;outline:2px solid #739c7b22;outline-offset:0}.field textarea{resize:vertical;min-height:72px}.field input:disabled,.field textarea:disabled,.field select:disabled,fieldset:disabled input,fieldset:disabled textarea,fieldset:disabled select{background:#f3f5f0;color:#748074}.form-row{display:grid;grid-template-columns:2fr 1fr;gap:20px}.form-row.three{grid-template-columns:repeat(3,1fr)}.notice{background:#fff1ee;color:#aa4d3d;border:1px solid #f2d9d1;padding:12px 15px;border-radius:7px;line-height:1.7;font-size:13px;margin-bottom:20px;overflow-wrap:anywhere}.notice.success{background:#edf5e9;border-color:#d6e7ce;color:#4e7349}.loading{display:flex;align-items:center;justify-content:center;padding:65px 20px;color:#788a79;gap:10px}.spin{animation:spin 1.3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--muted);line-height:1.8}.fine-print{font-size:12px!important;color:var(--muted);line-height:1.8!important;margin-top:22px!important}.empty{text-align:center;padding:55px 25px;color:#92a08b;border:1px dashed #d8e0d3;border-radius:9px;background:#fbfcf9}.empty h3{color:#5c715c;margin:15px 0 8px}.empty p{font-size:12px;line-height:1.8}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:27px;margin-bottom:22px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.95;font-size:14px;color:#50635a}.section-label{display:flex;align-items:center;gap:8px;color:#6b886e;font-size:11px;font-weight:550;letter-spacing:1px;margin-bottom:16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.section-heading h2{font-size:17px}.section-heading>span{font-size:11px;color:#91998e;white-space:nowrap}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;font-size:10px;font-weight:550;padding:5px 9px;white-space:nowrap}.badge.draft{background:#f1f1e8;color:#8b8b66}.badge.voting{background:#e6f2e6;color:#477c50}.badge.closed{background:#edf0f0;color:#768286}.badge.large{padding:9px 14px;font-size:12px}.text-button{border:0;background:none;padding:4px;font-size:12px}.danger{color:#af6755}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.welcome{min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 85% 35%,#e1eee1 0,transparent 55%),#f7f8f2;padding:35px 6vw}.welcome>header{display:flex;align-items:center;justify-content:space-between}.welcome-content{position:relative;z-index:2;padding-top:13vh;max-width:660px}.welcome-content h1{font-family:Georgia,Songti SC,SimSun,serif;font-size:clamp(44px,5vw,68px);line-height:1.36;letter-spacing:-1px;font-weight:500}.welcome-content h1 em{font-style:normal;color:#3f7857}.welcome-content>p{font-size:15px;line-height:2.1;color:#5f7264;margin-top:27px}.welcome-actions{display:flex;gap:15px;margin-top:35px}.welcome-actions .button{padding:15px 23px}.welcome-features{display:flex;gap:30px;margin-top:55px;color:#819079;font-size:12px}.welcome-features span{display:flex;align-items:center;gap:9px}.welcome-features svg{width:17px}.welcome-art{position:absolute;right:4%;top:22%;width:440px;height:440px;border-radius:50%;background:#e9efdf;box-shadow:0 0 110px 30px #e9efdf77}.orbit{position:absolute;border:1px solid #bccdac;border-radius:50%;inset:30px;transform:rotate(-20deg)}.orbit-two{inset:82px;transform:rotate(20deg);border-style:dashed}.decision-circle{position:absolute;inset:125px;background:#203e2e;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e6eddd;font-size:68px;font-family:Georgia,serif}.decision-circle span{font-family:system-ui;font-size:13px;text-align:center;letter-spacing:3px;line-height:1.8}.floating-label{position:absolute;background:#fff;border:1px solid #e0e7d6;border-radius:30px;padding:13px 22px;color:#617355;font-size:13px;box-shadow:0 10px 30px #30442708}.label-one{top:20px;left:0}.label-two{right:-20px;top:220px}.label-three{bottom:0;left:5px}.welcome>footer{display:flex;justify-content:space-between;margin-top:90px;font-size:11px;color:#9ba78e;position:relative;z-index:2}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:45px 20px;background:radial-gradient(ellipse at top,#eaf0e3,transparent 60%),#f7f8f4}.auth-card{margin-top:55px;background:#fff;border:1px solid #e1e7db;border-radius:20px;width:min(100%,460px);padding:38px 40px;box-shadow:0 20px 65px #34482b0d}.auth-card h1{font-size:26px}.auth-card>p{font-size:14px;color:var(--muted);line-height:1.9;margin-top:10px}.auth-card form{margin-top:28px}.icon-tile{width:42px;height:42px;border-radius:10px;background:#edf3e7;color:#587c4c;display:grid;place-items:center;margin-bottom:22px}.auth-bottom{border-top:1px solid var(--line);padding-top:23px;margin-top:26px;color:#97a08d;font-size:12px;display:flex;justify-content:space-between}.auth-bottom a{color:#4f7951}.resume-link{background:#eef5e9;padding:12px;border-radius:6px;margin-top:20px;justify-content:space-between}.class-preview{background:#f2f6ed;border-left:3px solid #87a476;padding:12px 14px;margin:-3px 0 22px}.class-preview strong{display:block;font-size:13px;margin-bottom:5px}.class-preview span{font-size:11px;color:#899a7b}.teacher-shell{display:flex;min-height:100vh}.sidebar{width:238px;background:linear-gradient(175deg,#153d34,#122c28 80%);color:#b4c2b4;position:fixed;top:0;left:0;bottom:0;padding:32px 22px;display:flex;flex-direction:column;z-index:10}.sidebar .brand{font-size:18px}.sidebar-section{font-size:10px;color:#70897b;letter-spacing:1.5px;margin:52px 14px 17px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:7px;font-size:13px}.sidebar nav a.active{background:#ffffff14;color:#e5f5df;box-shadow:inset 3px 0 #b6d9a9}.sidebar nav a:hover{background:#2a4137}.sidebar-note{border:1px solid #365044;background:#213b31;border-radius:9px;padding:20px 17px;margin-top:auto;margin-bottom:28px;color:#a3bd9a}.sidebar-note strong{display:block;font-size:12px;margin:15px 0 9px;letter-spacing:.5px}.sidebar-note p{font-size:11px;line-height:1.9;color:#819d83}.sidebar-bottom{display:flex;align-items:center;gap:10px;border-top:1px solid #2d4539;padding-top:24px;font-size:12px}.sidebar-bottom small{display:block;font-size:9px;color:#78917d;margin-top:5px}.sidebar-bottom .icon-button{margin-left:auto}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#3b5540;color:#c6dbb5;font-size:12px}.teacher-main{width:calc(100% - 238px);margin-left:238px;display:flex;flex-direction:column;min-height:100vh}.topbar{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 43px;font-size:12px;color:var(--muted);background:#fcfcf9}.mobile-logout{display:none}.workspace-label{display:flex;align-items:center;gap:8px;color:#6d866d}.dot{width:6px;height:6px;border-radius:50%;background:#78a16e}.workspace{padding:42px 43px 55px;max-width:1500px;width:100%;margin:0 auto;flex:1}.workspace-footer{display:flex;justify-content:space-between;padding:20px 43px;border-top:1px solid var(--line);font-size:9px;color:#a4ad9c;letter-spacing:1px}.workspace-footer span{letter-spacing:0}.summary-row{display:grid;grid-template-columns:repeat(3,1fr) 1.35fr;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);background:#fff;padding:26px 0;margin-bottom:20px}.summary-row>div{padding:0 28px;border-right:1px solid var(--line)}.summary-row>div:last-child{border:0}.summary-row>div>span{font-size:13px;color:var(--muted)}.summary-row strong{display:block;font-size:32px;line-height:1;margin-top:15px;letter-spacing:-1px;font-weight:550;color:#35503b}.summary-row strong small{font-size:12px;color:var(--muted);letter-spacing:0;font-weight:400;margin-left:10px}.summary-caption{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(100deg,#f8faf5,#fff)}.summary-caption p{font-size:14px;color:#536e4b;margin-top:9px;letter-spacing:1px}.classroom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.classroom-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:24px;transition:box-shadow .2s,border-color .2s,transform .2s;min-width:0}.classroom-card:hover{border-color:#b7c9ab;box-shadow:0 8px 25px #263c1c0a;transform:translateY(-3px)}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.class-icon{width:43px;height:43px;border-radius:9px;display:grid;place-items:center;background:#eef3e7;color:#779162}.class-serial{display:flex;justify-content:space-between;gap:10px;font-size:11px;letter-spacing:1.8px;color:var(--muted);margin-bottom:9px}.classroom-card h3{font-size:19px;color:var(--dark);overflow-wrap:anywhere}.classroom-card>p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-stats{display:flex;gap:16px;font-size:12px;color:#5a7264;margin:25px 0 12px}.class-stats span{display:flex;align-items:center;gap:6px}.class-card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0e8;padding-top:17px;font-size:12px;color:var(--muted)}.class-card-bottom strong{color:var(--dark);font-size:13px;margin-left:7px;letter-spacing:1px;font-weight:550}.circle-arrow{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f2f5ec;color:#8ba074}.modal-backdrop{position:fixed;inset:0;background:#102a2466;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{position:relative;width:min(100%,570px);max-height:90vh;overflow:auto;border-radius:14px;padding:38px;background:#fff;box-shadow:0 30px 100px #102e2b33}.modal-close{position:absolute;right:18px;top:18px;color:#83927a}.modal>h2{font-size:24px;margin-bottom:12px}.modal>p{font-size:12px}.modal form{margin-top:28px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:8px}.detail-tabs{display:flex;gap:30px;border-bottom:1px solid #dfe5d8;margin-bottom:28px}.detail-tabs button{display:flex;align-items:center;gap:8px;border:0;border-bottom:2px solid transparent;background:none;color:#8c9884;font-size:12px;padding:0 3px 16px}.detail-tabs button[aria-selected=true]{color:#4b7746;border-bottom-color:#5f8958}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px}.current-stage .section-label{justify-content:space-between;letter-spacing:1.5px}.current-stage .section-label span{font-size:35px;color:#dae5d1;line-height:1}.current-stage h2{margin-bottom:15px}.stage-actions{border-top:1px solid #e9eee3;padding-top:22px;margin-top:25px;display:flex;gap:15px;align-items:center;flex-wrap:wrap}.stage-actions>span{font-size:11px;color:#98a18f}.roster .empty{padding:35px 15px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{background:#f6f8f2;padding:12px 10px;font-size:10px;font-weight:500;color:#8a987c;white-space:nowrap}td{padding:14px 10px;border-bottom:1px solid #edf0e7;color:#6a7b5d;overflow-wrap:anywhere}tbody tr:last-child td{border-bottom:none}.table-tag{background:#f0f4e9;padding:4px 7px;border-radius:4px;font-size:10px;white-space:nowrap}.table-sub{display:block;font-size:10px;color:#a1ad94;margin-top:4px}.join-panel{text-align:center;padding:25px 20px}.join-panel .section-label{justify-content:center;font-size:10px}.join-panel h2{font-size:17px}.qr-frame{display:inline-flex;padding:12px;background:#fff;border:1px solid #e8eddf;border-radius:9px;margin:20px 0 14px}.join-panel>p{font-size:10px;color:#9aa58e}.join-code{display:block;letter-spacing:5px;font-size:26px;margin:11px 0 22px;color:#4b6c41;font-weight:550}.join-link-input{border:0;border-bottom:1px solid #e9eee0;width:100%;background:none;color:#9aa48e;font-size:9px;padding:13px 0;text-align:center;min-width:0}.join-panel>small{display:block;font-size:9px;color:#a6af9c;margin-top:12px}.teaching-tip{display:flex;gap:10px;padding:6px 9px;color:#8c9e7d}.teaching-tip svg{flex-shrink:0}.teaching-tip strong{font-size:11px;font-weight:500}.teaching-tip p{font-size:11px;line-height:1.9;color:#9aa48f;margin-top:8px}.settings-form{max-width:950px}.settings-form .panel>.muted{font-size:12px;margin:-6px 0 24px}.role-edit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.role-edit{padding:20px;border:1px solid #e6ebdf;border-radius:8px;background:#fbfcf9}.role-edit .field:last-child{margin-bottom:0}.role-edit .form-row{gap:14px}.role-edit .field{font-size:11px}.stage-edit{border-top:1px solid #e5eadf;padding-top:24px;margin-top:25px}.stage-edit details{background:#f5f8ef;border-radius:7px;padding:14px 17px}.stage-edit summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#789169;list-style:none}.stage-briefings{padding-top:20px}.save-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border:1px solid #dfe7d4;border-radius:8px;background:#f0f5e8}.save-bar>span{font-size:11px;color:#8b9b7b}.results-header{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:16px}.results-header h2{font-size:19px}.results-header .muted{font-size:12px;margin-top:8px}.results-header .field{min-width:240px;margin:0}.results-count{color:#97a48a;font-size:12px;margin-bottom:20px}.results-count strong{color:#597e47;font-size:22px;margin:0 4px}.results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.group-results{margin:0}.vote-totals{display:grid;grid-template-columns:repeat(3,1fr);background:#f7f9f2;border-radius:7px;padding:15px 0;margin-bottom:20px}.vote-totals>div{text-align:center;border-right:1px solid #e6ecdd}.vote-totals>div:last-child{border:0}.vote-totals span{display:block;font-size:10px;color:#8c9e7c}.vote-totals strong{display:block;font-size:25px;font-weight:550;margin:7px 0 3px;color:#6b8d52}.vote-totals small{font-size:8px;color:#b0baa3}.vote-totals .reject strong{color:#b38a66}.vote-totals .abstain strong{color:#94a288}.group-feedback{border-top:1px solid #e7eddf;margin-top:20px;padding-top:20px}.group-feedback .section-label{font-size:10px;margin-bottom:8px}.group-feedback p{font-size:12px}.ai-layout{display:grid;grid-template-columns:minmax(0,600px) 1fr;gap:50px}.ai-layout .panel{padding:32px}.mode-description{background:#f2f6ec;color:#8c9c7e;font-size:12px;line-height:1.9;padding:15px 17px;border-radius:6px;margin-bottom:25px}.ai-note{max-width:280px;color:#83996e;padding-top:12px}.ai-note h2{font-size:18px;color:#657f51;line-height:1.7;margin:18px 0}.ai-note p{font-size:12px;line-height:2;margin-bottom:18px}.ai-note>span{display:block;border-top:1px solid #e3e9da;padding-top:17px;font-size:10px;color:#a2b092}.student-shell{min-height:100vh;background:#f6f8f3;display:flex;flex-direction:column}.student-header{height:88px;display:flex;justify-content:space-between;align-items:center;padding:0 max(5vw,24px);border-bottom:1px solid var(--line);background:#fcfdf9}.student-header-right{display:flex;align-items:center;gap:25px;color:#7d9070}.student-label{font-size:11px;letter-spacing:1px}.student-main{width:100%;max-width:1240px;padding:44px 40px 60px;margin:auto;flex:1}.student-main .page-heading{margin-bottom:24px}.student-meta{display:flex;gap:25px;align-items:center;padding-bottom:25px;margin-bottom:28px;border-bottom:1px solid #e0e7d8;color:var(--muted);font-size:13px}.student-meta>span{display:flex;align-items:center;gap:7px}.student-meta .badge{margin-left:auto}.student-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:28px;align-items:start}.case-panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:32px;margin-bottom:25px}.case-panel h2{font-size:24px;margin-bottom:20px;color:#405637}.case-panel>.prose{color:#50635a}.stage-highlight{display:flex;gap:22px;background:#f2f6eb;border-radius:8px;padding:22px;margin-top:28px}.stage-number{font-size:34px;color:#a2b78d;font-weight:300}.stage-highlight small{font-size:9px;letter-spacing:1px;color:#9bac89}.stage-highlight h3{margin:7px 0 10px;color:#5c754b}.stage-highlight p{color:#536c51;font-size:14px}.role-panel{background:linear-gradient(145deg,#235344,#183a31);color:#b9c9a9;border:1px solid #314d3c;border-radius:14px;padding:28px 25px;position:sticky;top:22px;box-shadow:0 10px 35px #2b46160a}.role-heading{display:flex;justify-content:space-between;align-items:center;color:#96b284}.role-heading span{font-size:10px;letter-spacing:1px}.role-panel h2{color:#e2ecd7;font-size:26px;margin-top:24px;letter-spacing:2px}.role-weight{font-size:11px;color:#8fa580;margin-top:14px}.role-weight strong{font-size:22px;color:#c4d7af;font-weight:500;margin-left:12px}.role-divider{height:1px;background:#3c5743;margin:25px 0}.role-panel h3{font-size:12px;color:#bdd0a8;margin-bottom:12px}.role-panel .prose{font-size:14px;color:#d1dfc9;line-height:2}.role-tip{background:#314e3c;border:1px solid #3e5a44;border-radius:6px;padding:14px;font-size:12px;line-height:1.9;color:#c4d6b8;margin-top:26px}.vote-panel{padding:30px 32px}.vote-panel h2{font-size:20px;margin-bottom:12px}.vote-panel>.muted{font-size:12px}.vote-options{display:flex;gap:13px;margin:25px 0}.vote-choice{display:flex;align-items:center;justify-content:center;gap:11px;flex:1;padding:16px;border:1px solid #e0e7d6;border-radius:10px;cursor:pointer;color:#536c51;background:#fbfcf8}.vote-choice.selected{background:#e5f2e9;border-color:#2b795f;color:#205f48;box-shadow:0 0 0 1px #2b795f}.vote-choice input{accent-color:#5f8747}.submitted{display:flex;gap:14px;align-items:center;background:#f0f6e9;border:1px solid #dbe8cf;border-radius:8px;color:#71935a;padding:22px;margin-top:25px}.submitted strong{font-size:14px}.submitted p{font-size:11px;color:#95a684;margin-top:8px}.waiting{padding:20px;border-radius:7px;background:#f5f7f0;color:#a0aa94;font-size:12px;line-height:1.8;margin-top:24px}.feedback-panel{background:#f4f8ed;border-color:#dce6d0;padding:30px 32px}.feedback-panel h2{color:#607b47;margin-bottom:15px}.feedback-panel>.prose{color:#879774}.student-footer{border-top:1px solid var(--line);padding:24px 6vw;display:flex;justify-content:space-between;color:#a5b197;font-size:10px}.classroom-guide{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:18px 22px;margin-bottom:34px;border:1px solid #dfe9df;border-radius:12px;background:#edf3ec;color:#506855;font-size:12px}.classroom-guide>span{display:inline-flex;align-items:center;gap:8px}.classroom-guide .guide-title{font-weight:600;color:#294c3c;margin-right:auto}.classroom-guide b{font-size:11px;font-variant-numeric:tabular-nums;color:#758b69}.classroom-guide>svg{color:#82977a}.class-serial>span{letter-spacing:0}.classroom-card.voting{border-top:3px solid var(--green);padding-top:22px}.enrollment-progress{appearance:none;display:block;width:100%;height:5px;border:0;border-radius:10px;overflow:hidden;margin-bottom:22px;background:#eaf0e8;color:#88ad88}.enrollment-progress::-webkit-progress-bar{background:#eaf0e8}.enrollment-progress::-webkit-progress-value{background:#88ad88;border-radius:10px}.enrollment-progress::-moz-progress-bar{background:#88ad88;border-radius:10px}.classroom-card.voting .enrollment-progress::-webkit-progress-value{background:var(--green)}.classroom-card.voting .enrollment-progress::-moz-progress-bar{background:var(--green)}.stage-track{display:flex;gap:16px;overflow-x:auto;list-style:none;margin:0 0 28px;padding:2px 0 12px}.stage-track li{display:flex;align-items:center;flex:1 0 210px;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#f9fbf8;color:#647367}.stage-track li.current{border-color:#7ba38d;background:#fff;box-shadow:var(--shadow)}.stage-track-number{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:#eaf0e7;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.stage-track .current .stage-track-number{background:var(--green);color:#fff}.stage-track .complete .stage-track-number{color:#26704f;background:#dfeddf}.stage-track strong{display:block;font-size:13px;line-height:1.5}.stage-track small{display:block;font-size:11px;margin-top:4px}.vote-choice:has(input:focus-visible){outline:3px solid #8cbd97;outline-offset:3px}.vote-choice.reject.selected{background:#fcf0ec;border-color:#ae5f4c;color:#95422f;box-shadow:0 0 0 1px #ae5f4c}.vote-choice.abstain.selected{background:#edf1f3;border-color:#657985;color:#475e6b;box-shadow:0 0 0 1px #657985}@media(min-width:1500px){.welcome-art{right:12%;top:25%}.welcome-content{margin-left:5%}}@media(max-width:1180px){.welcome-art{width:350px;height:350px;right:-5%;top:30%;opacity:.7}.decision-circle{inset:95px}.classroom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-caption{display:none!important}.summary-row{grid-template-columns:repeat(3,1fr)}.summary-row>div:nth-child(3){border:0}.sidebar{width:210px;padding:30px 17px}.teacher-main{margin-left:210px;width:calc(100% - 210px)}.workspace{padding:35px 28px}.topbar{padding:0 28px}.detail-grid{grid-template-columns:minmax(0,1fr) 240px;gap:18px}.panel{padding:22px}.join-panel{padding:22px 16px}.qr-frame{padding:8px}.qr-frame svg{width:160px;height:160px}.role-edit-list{grid-template-columns:1fr}.ai-layout{gap:25px}.student-grid{grid-template-columns:minmax(0,1fr) 255px;gap:22px}.student-main{padding:35px 28px}}@media(max-width:900px){.sidebar{width:180px;padding:25px 13px}.sidebar .brand{font-size:15px;gap:8px}.sidebar .brand small{font-size:6px;letter-spacing:1.6px}.sidebar .brand-mark{width:32px;height:35px}.sidebar nav a{font-size:12px;padding:12px 11px}.sidebar-note{padding:16px 12px}.sidebar-bottom{gap:7px;font-size:10px}.sidebar-bottom small{font-size:8px}.teacher-main{margin-left:180px;width:calc(100% - 180px)}.workspace{padding:30px 22px}.page-heading{align-items:flex-start}.page-heading h1{font-size:27px}.page-heading>.button{font-size:11px;padding:11px 13px}.detail-grid{grid-template-columns:1fr}.detail-grid>aside{display:grid;grid-template-columns:240px 1fr;gap:25px;align-items:start}.summary-row>div{padding:0 20px}.summary-row strong small{display:block;margin:10px 0 0;font-size:9px}.classroom-card{padding:20px}.class-stats{gap:10px;font-size:10px}.results-grid{grid-template-columns:1fr}.results-header{align-items:flex-start;flex-direction:column}.results-header .field{width:100%}.ai-layout{grid-template-columns:1fr}.ai-note{max-width:none;padding:0 10px}.student-grid{grid-template-columns:1fr}.role-panel{position:static;grid-row:1;padding:22px 25px}.role-panel h2{margin-top:13px;font-size:23px}.role-divider{margin:18px 0}.role-tip{margin-top:18px}.student-primary{grid-row:2}.welcome-art{opacity:.15;right:-100px}.welcome-content{padding-top:12vh}.welcome>footer{margin-top:80px}}@media(max-width:640px){.classroom-guide{gap:9px 12px;padding:16px;margin-bottom:25px}.classroom-guide .guide-title{width:100%;margin-bottom:4px}.classroom-guide>svg{display:none}.stage-track{gap:10px;margin-bottom:18px}.stage-track li{flex-basis:220px;padding:14px}.field input,.field textarea,.field select{font-size:16px}.button,.icon-button{min-height:44px}.icon-button{min-width:44px}.mobile-logout{display:inline-grid}.teacher-shell{display:block}.sidebar{position:relative;width:100%;padding:18px 20px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}.sidebar .brand{font-size:17px}.sidebar .brand small{font-size:7px}.sidebar-section,.sidebar-note,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;gap:6px;margin-left:auto}.sidebar nav a{font-size:13px;padding:9px;gap:6px}.sidebar nav a svg{width:15px}.teacher-main{width:100%;margin:0}.topbar{height:48px;padding:0 22px;font-size:10px}.workspace{padding:28px 20px 40px}.workspace-footer{padding:20px;font-size:8px;gap:15px}.page-heading{gap:13px;margin-bottom:25px}.page-heading h1{font-size:25px;overflow-wrap:anywhere}.page-heading p{font-size:13px;line-height:1.9}.eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:10px}.page-heading>.button{font-size:12px;padding:10px;gap:4px}.page-heading>.button svg{width:14px}.summary-row{padding:19px 0;margin-bottom:28px}.summary-row>div{padding:0 15px}.summary-row>div>span{font-size:12px}.summary-row strong{font-size:28px;margin-top:12px}.classroom-grid{grid-template-columns:1fr;gap:16px}.classroom-card{padding:23px}.classroom-card h3{font-size:18px}.card-top{margin-bottom:19px}.class-stats{font-size:12px;gap:20px}.section-heading h2{font-size:16px}.classroom-card>p{font-size:12px}.empty{padding:40px 18px}.modal{padding:30px 23px}.modal>h2{font-size:22px}.form-row.three{gap:10px}.form-row.three .field{font-size:10px}.form-row.three input{padding:10px}.modal-actions{gap:9px}.detail-tabs{gap:20px;justify-content:space-between}.detail-tabs button{font-size:12px;gap:6px}.detail-tabs button svg{width:14px}.detail-grid>aside{display:block}.join-panel{max-width:330px;margin:0 auto 20px}.teaching-tip{max-width:330px;margin:auto}.current-stage h2{font-size:18px}.stage-actions .button{font-size:12px}.panel{padding:22px 19px}.back-link{font-size:11px;margin-bottom:22px}.page-heading>.badge{font-size:11px;margin-top:5px;padding:7px}.role-edit{padding:17px}.role-edit .form-row{grid-template-columns:1.5fr 1fr}.save-bar{padding:14px;gap:14px}.save-bar>span{font-size:10px;line-height:1.8}.save-bar .button{padding:10px 12px;font-size:11px;gap:7px}.settings-form .section-heading>span{font-size:8px}.ai-layout .panel{padding:25px 20px}.student-header{height:76px;padding:0 21px}.student-header .brand{font-size:17px;gap:9px}.student-header .brand small{font-size:6px}.student-header-right{gap:10px}.student-label{font-size:9px}.student-main{padding:28px 20px 35px}.student-meta{gap:15px;font-size:12px;flex-wrap:wrap;padding-bottom:20px;margin-bottom:22px}.student-meta>span{gap:5px}.student-meta svg{width:14px}.student-meta .badge{font-size:11px}.case-panel,.vote-panel,.feedback-panel{padding:25px 20px}.case-panel h2{font-size:21px;line-height:1.6}.stage-highlight{gap:14px;padding:18px 15px}.stage-number{font-size:28px}.stage-highlight h3{font-size:14px}.vote-panel h2{font-size:18px}.vote-options{gap:9px}.vote-choice{padding:15px 10px;gap:8px;font-size:14px}.student-footer{font-size:8px;padding:20px;gap:20px}.auth-page{padding:30px 20px}.auth-card{margin-top:35px;padding:30px 25px}.auth-card h1{font-size:24px}.welcome{padding:25px 24px}.welcome>header .brand{font-size:17px;gap:9px}.welcome>header .brand small{font-size:6px}.welcome>header>.quiet-link{font-size:10px;gap:4px}.welcome-content{padding-top:11vh}.welcome-content h1{font-size:43px}.welcome-content>p{font-size:14px;line-height:2}.welcome-actions{gap:11px;margin-top:28px}.welcome-actions .button{font-size:13px;padding:13px 16px;gap:7px}.welcome-features{gap:21px;margin-top:40px;font-size:12px}.welcome-features span{gap:6px}.welcome-features svg{width:15px}.welcome>footer{font-size:9px;gap:25px;line-height:1.8;margin-top:80px}.welcome-art{right:-180px;top:28%;opacity:.12}.table-scroll table{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.button.danger{background:#b3402f;color:#fff;box-shadow:0 4px 10px #b3402f20}.button.danger:not(:disabled):hover{background:#97341f}.button.danger.small{padding:8px 12px;font-size:12px}.heading-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.card-delete{color:#b3402f}.card-delete:hover{background:#b3402f14}.preset-roles{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}.preset-chip{display:inline-flex;align-items:baseline;gap:6px;border:1px solid #dce2d9;border-radius:999px;padding:5px 12px;font-size:12px;color:#435b4b;background:#f7f9f4}.preset-chip small{color:#7b8d80;font-size:10px}.stage-readonly{display:grid;gap:14px;margin-top:12px}.stage-readonly-item{border:1px solid #e6eae1;border-radius:10px;padding:14px 16px;background:#fbfcf9}.stage-readonly-item h3{margin:0;font-size:14px}.role-count-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px 14px;margin:6px 0 14px}.special-toggles{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 14px}.special-toggle{display:flex;align-items:center;gap:10px;border:1px solid #dce2d9;border-radius:10px;padding:10px 14px;background:#fbfcf9;cursor:pointer}.special-toggle input{width:16px;height:16px}.special-toggle span{display:flex;flex-direction:column;line-height:1.35}.special-toggle small{color:#7b8d80}.resolution{font-size:12px;font-weight:600;padding:7px 12px;border-radius:8px;margin:2px 0 12px}.resolution.valid{background:#e8f3ea;color:#1f6a43}.resolution.invalid{background:#fdecec;color:#b3402f}.group-actions{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 12px}.group-actions span{border:1px solid #e6eae1;border-radius:999px;padding:4px 12px;font-size:12px;color:#435b4b;background:#f7f9f4}.vote-choice.neutral{border-color:#c9d4c2}.role-weight small{display:block;color:#7b8d80;font-weight:500;font-size:11px;margin-top:3px}.behavior-rounds{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}.round-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid #dce2d9;border-radius:999px;padding:6px 14px;background:#fbfcf9;cursor:pointer;font-size:13px;color:#435b4b}.round-toggle input{width:15px;height:15px}.behavior-panel{border-left:3px solid #c9d4c2}
