.class-content-tabs{margin:-8px 0 22px}.seating-workspace{min-width:0}.seat-plan-bar,.seat-plan-choice,.seat-editor-toolbar,.seat-statistics,.seat-save-bar,.seat-random-controls{display:flex;align-items:center;gap:10px}.seat-plan-bar{justify-content:space-between;margin-bottom:16px}.seat-plan-choice{min-width:0;flex:1}.seat-plan-choice>svg{color:#527c9a;flex-shrink:0}.seat-plan-choice select{min-width:0;max-width:240px;flex:1;font-size:12px}.seat-save-state{color:#7b8790;font-size:11px;white-space:nowrap}.seat-save-state.unsaved{color:#a66628}.seat-editor-toolbar{justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:14px}.seat-editor-toolbar .actions{gap:3px}.seat-edit-modes button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:6px 11px;font-size:12px}.seat-editor-toolbar .icon-button,.seat-plan-bar .icon-button{width:32px;height:34px}.toolbar-divider{width:1px;height:18px;background:var(--line);margin:0 5px}.seat-statistics{flex-wrap:wrap;font-size:11px;color:#74828b;gap:14px;margin-bottom:14px;min-height:24px}.seat-statistics>span{display:inline-flex;align-items:center;gap:4px}.seat-statistics strong{font-size:13px;color:#4e6574;font-variant-numeric:tabular-nums;font-weight:550}.seat-statistics .text-button{margin-left:auto;font-size:11px}.seat-zoom{display:flex;align-items:center;gap:5px;margin-left:auto}.seat-zoom .icon-button{width:26px;height:28px}.seat-zoom svg{width:14px;height:14px}.seat-zoom input{width:68px;padding:0;height:18px;accent-color:#5a8199;border:0;background:transparent}.seat-zoom output{width:34px;text-align:center;font-size:10px;font-variant-numeric:tabular-nums;color:#788c9a}.draw-seat-view>.seat-zoom{justify-content:flex-end;margin-bottom:12px}.seat-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 142px;gap:20px;align-items:start}.seat-board-scroll{overflow:auto;max-height:720px;border:1px solid #dce4e9;border-radius:6px;background:#fff;padding:20px 14px 12px;min-width:0;overscroll-behavior:contain}.seat-map{min-width:calc(var(--seat-columns) * 64px + 48px);width:100%;--aisle-width: 12px}.seat-front{display:flex;align-items:center;gap:18px;margin-bottom:24px;justify-content:center;padding:0 15%}.seat-front span{flex:1;height:1px;background:#cddad6}.seat-front strong{border-bottom:3px solid #608b7d;background:#edf5f0;color:#5a7c6e;padding:9px 22px;font-size:12px;font-weight:500;white-space:nowrap;border-radius:3px 3px 0 0}.seat-grid{display:grid;gap:8px 5px}.seat-position-wrap{min-width:0}.seat{width:100%;height:66px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 4px 10px;border:1px solid #e0e6eb;border-bottom:3px solid #cbd6df;border-radius:5px;background:#f6f8fa;color:#9aa7b0;transition:background-color .13s ease,border-color .13s ease,box-shadow .13s ease}button.seat{cursor:pointer;touch-action:manipulation}.seat.occupied{color:#344f61;background:#eef4f9;border-color:#c7d9e6;border-bottom-color:#9ebbd0}button.seat:hover:not(:disabled){border-color:#638fab;background:#e4eef5}.seat-position{font-size:9px;line-height:1;color:#8b9caa;position:absolute;left:5px;top:5px;font-variant-numeric:tabular-nums}.seat-position>span{margin:0 2px}.seat-name{font-size:12px;line-height:1.35;text-align:center;overflow-wrap:anywhere;width:100%;max-height:36px;overflow:hidden}.seat-mark{position:absolute;top:3px;right:4px;min-width:11px;min-height:12px}.seat.locked{background:#faf5e8;border-color:#dfc992;color:#796128}.seat.locked .seat-position{color:#ad995e}.seat.blocked{border-style:dashed;background:repeating-linear-gradient(135deg,#f5f6f8 0,#f5f6f8 5px,#eceff2 5px,#eceff2 6px);color:#9aa5ad;border-bottom-width:1px}.seat.selected,.waiting-student.selected{border-color:#43826a;box-shadow:0 0 0 2px #43826a;background:#eaf5ed;color:#29684f}.seat.drop-over{background:#d9eee2;border-color:#3e8a65;box-shadow:0 0 0 2px #84baa0}.seat.dragging,.waiting-student.dragging{opacity:.3}.seat-back{text-align:center;font-size:10px;color:#9da9b2;margin-top:18px}.waiting-list{border-left:1px solid var(--line);padding-left:16px;min-width:0;min-height:220px;border-radius:0}.waiting-list.drop-over{background:#e6f1eb}.waiting-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;color:#788896;font-size:12px}.waiting-title h3{display:flex;gap:6px;align-items:center;font-size:12px;font-weight:500;color:#4e687a}.waiting-list .search-field{width:100%;gap:5px;padding-left:8px;height:34px}.waiting-list .search-field input{width:100%;min-width:0;padding-left:0;padding-right:4px;font-size:11px}.waiting-students{display:flex;flex-direction:column;gap:6px;max-height:570px;overflow:auto;padding:4px 3px;margin:10px -3px}.waiting-student{display:flex;align-items:center;gap:4px;width:100%;min-height:38px;text-align:left;padding:7px 6px;border:1px solid #e2e7eb;border-radius:4px;font-size:12px;background:#fff;color:#49657a;touch-action:manipulation}.waiting-student>svg{flex-shrink:0;color:#a6b3bc}.waiting-student>span{overflow-wrap:anywhere;min-width:0}.waiting-student small{display:block;font-size:9px;color:#91a0ab}.waiting-list>.button{width:100%;font-size:11px;padding:6px;gap:4px}.waiting-done{display:flex;gap:8px;justify-content:center;align-items:center;color:#7b9485;font-size:11px;padding-top:24px}.seat-drag-label{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #6d9d87;background:#eef8f2;box-shadow:0 6px 18px #294e3d2b;color:#386c53;border-radius:5px;min-height:48px;padding:10px;font-size:13px}.seat-save-bar{margin-top:20px;border-top:1px solid var(--line);padding-top:18px;justify-content:space-between;flex-wrap:wrap;gap:14px}.seat-save-bar .button{font-size:12px;min-height:36px;padding-left:12px;padding-right:12px}.seat-random-controls{gap:6px;flex-wrap:wrap}.seat-random-controls select{font-size:11px;padding:8px;max-width:160px}.seat-active{font-size:11px;display:flex;gap:3px;align-items:center;color:#63836c;white-space:nowrap}.seat-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:18px}.aisle-options{border:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 20px;font-size:12px}.aisle-options legend{margin-bottom:13px}.aisle-options label{display:flex;gap:6px;align-items:center}.aisle-options input{accent-color:var(--green)}.layout-capacity{margin-top:20px;font-size:12px;color:#7a8e9a}.draw-display-mode{display:flex;gap:0}.draw-display-mode button{padding:5px 10px;font-size:11px}.draw-tool-heading>.actions{gap:12px}.draw-seat-view{background:#fcfdfd;padding:20px}.draw-seat-scroll{overflow:auto;max-height:660px}.draw-seat-scroll .seat-map{min-width:calc(var(--seat-columns) * 64px + 64px)}.draw-seat-scroll .seat{height:60px}.draw-seat-caption{display:flex;justify-content:space-between;align-items:start;gap:20px;padding-top:20px;font-size:12px;color:#6c8377}.draw-seat-caption>span{overflow-wrap:anywhere}.draw-seat-caption>button{flex-shrink:0;font-size:11px}.seat.called{border-color:#3b8a62;border-bottom-color:#28724d;color:#1e6945;background:#d8efdf;box-shadow:0 0 0 2px #63a77c;animation:seat-called .28s var(--ease-out) both}html[data-input-method=keyboard] .seat{transition:none;animation:none}.draw-seat-view.drawing .seat.occupied{animation:seat-thinking .9s ease infinite alternate}@keyframes seat-called{0%{transform:translateY(-4px)}to{transform:translateY(0)}}@keyframes seat-thinking{0%{opacity:.55}to{opacity:1}}.seat-export-offscreen{position:fixed;left:-16000px;top:0;pointer-events:none;width:1120px}.seat-export{width:1120px;padding:36px 40px 28px;background:#fff;color:#283f4b}.seat-export header{margin-bottom:30px;text-align:center}.seat-export header p{color:#71848e;font-size:14px;margin-bottom:8px;overflow-wrap:anywhere}.seat-export h1{font-size:26px;font-weight:600;margin:0 0 12px;overflow-wrap:anywhere}.seat-export header>div{display:flex;gap:20px;justify-content:center;font-size:12px;color:#7d8f98}.seat-export .seat-map{min-width:0;--aisle-width: 20px}.seat-export .seat{height:70px}.seat-export .seat-name{font-size:14px;max-height:42px}.seat-export footer{margin-top:22px;font-size:11px;color:#8b9ba4;text-align:right}#seat-print-root{display:none}@media(max-width:1200px){.seat-editor-layout{grid-template-columns:minmax(0,1fr)}.waiting-list{border-left:0;padding-left:0;min-height:0;padding-top:18px;border-top:1px solid var(--line)}.waiting-list .search-field{max-width:240px}.waiting-students{flex-direction:row;flex-wrap:wrap;max-height:220px}.waiting-student{width:120px}.waiting-list>.button{width:auto}.waiting-done{justify-content:flex-start;padding-top:0}}@media(max-width:600px){.seat-plan-bar{gap:4px}.seat-plan-choice{gap:6px}.seat-plan-choice>svg{display:none}.seat-plan-choice select{padding:8px 4px}.seat-save-state{font-size:10px}.seat-plan-bar>.actions{gap:0}.seat-plan-bar .icon-button{width:28px}.seat-editor-toolbar{gap:10px}.seat-editor-toolbar .actions{margin-left:auto}.seat-board-scroll{padding:16px 10px 10px;max-height:650px}.seat-editor-toolbar .icon-button{width:32px;height:36px}.seat-statistics{gap:10px}.seat-map{min-width:calc(var(--seat-columns) * 62px + 40px)}.seat-save-bar{align-items:stretch;gap:15px}.seat-random-controls{width:100%;justify-content:space-between}.seat-random-controls select{flex:1;max-width:none;min-width:0}.seat-save-bar>.actions{width:100%;justify-content:space-between}.seat-save-bar>.actions>.primary{min-width:130px}.seat-edit-modes{width:100%}.seat-edit-modes button{flex:1;min-height:38px}.waiting-student{width:calc((100% - 12px) / 3);min-height:44px}.waiting-student>svg{display:none}.waiting-student>span{width:100%;text-align:center}.draw-tool-heading{gap:8px;padding-left:12px;padding-right:12px}.draw-tool-heading>.actions{gap:5px}.draw-seat-view{padding:16px 12px}.draw-display-mode button{padding:5px 8px}.draw-seat-caption{gap:12px}}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff!important}body>:not(#seat-print-root){display:none!important}#seat-print-root{display:block}#seat-print-root .seat-export{width:270mm;padding:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}#seat-print-root .seat-export header{margin-bottom:12px}#seat-print-root h1{font-size:18px;margin-bottom:6px}#seat-print-root header p{font-size:11px;margin-bottom:5px}#seat-print-root .seat-front{margin-bottom:12px}#seat-print-root .seat-front strong{padding:5px 20px;font-size:10px}#seat-print-root .seat-grid{gap:4px}#seat-print-root .seat{height:min(52px,calc((140mm + 4px) / var(--seat-rows) - 4px));padding:12px 3px 3px;break-inside:avoid}#seat-print-root .seat-name{font-size:11px;line-height:1.15}#seat-print-root .seat-position{font-size:7px;top:2px;left:3px}#seat-print-root .seat-back{margin-top:8px}#seat-print-root footer{margin-top:10px}}:root{font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#273830;background:#f7f9f8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-size:14px;font-weight:400;letter-spacing:0;--green: #18745c;--green-dark: #115743;--muted: #67776d;--line: #e5ebe7;--blue: #4679ab;--rose: #b65f77;--amber: #ae8137}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;letter-spacing:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}button{color:inherit}button,a,input,select,textarea{outline-offset:3px}:focus-visible{outline:2px solid #258367}button:disabled{opacity:.46;cursor:not-allowed}a{color:var(--green);text-decoration:none}button{border:0;background:none}h1,h2,h3,p{margin:0;overflow-wrap:anywhere}strong{font-weight:600}h1{font-size:27px;line-height:1.4;font-weight:650}h2{font-size:16px;font-weight:600;line-height:1.5}h3{font-size:17px;font-weight:600}svg{flex-shrink:0}input,select,textarea{min-width:0;color:#273830}input:not([type=checkbox]),select,textarea{border:1px solid #dce4de;border-radius:6px;background:#fff}input:not([type=checkbox]),select{height:42px;padding:0 12px}input::placeholder,textarea::placeholder{color:#a1aaa4}input:focus,select:focus,textarea:focus{border-color:#5b9e84}textarea{width:100%;padding:13px;resize:vertical;line-height:1.9}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.right{text-align:right}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 14px;border:1px solid #dce4de;border-radius:6px;background:#fff;color:#44534a;font-size:13px;font-weight:500;line-height:1.5;white-space:nowrap;transition:background .15s,border-color .15s}.button:hover:not(:disabled){background:#f3f7f4;border-color:#b7c9be}.button.primary{color:#fff;background:var(--green);border-color:var(--green)}.button.primary:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}.button.danger{background:#bf4d50;color:#fff;border-color:#bf4d50}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:5px;padding:0;color:#7a877e;flex-shrink:0;transition:background .15s,color .15s}.icon-button:hover:not(:disabled){background:#eaf1ec;color:var(--green)}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 0;color:var(--green);font-size:13px}.text-button:hover{color:var(--green-dark)}.danger-text{color:#b45c5d}.brand{display:flex;gap:10px;align-items:center;font-size:24px;font-weight:650;color:#1c5946}.brand-symbol{background:var(--green);color:#fff;display:grid;place-items:center;width:39px;height:43px;border-radius:7px}.brand>span:last-child{display:flex;align-items:baseline;gap:8px}.brand-en{font-size:11px;color:#89a092;font-weight:500}.workspace{display:flex;min-height:100dvh}.sidebar{width:224px;flex-shrink:0;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);background:#fff;display:flex;flex-direction:column;padding:30px 19px 0;z-index:30}.sidebar>.brand{padding-left:9px;margin-bottom:34px}.workspace-name{display:flex;align-items:center;gap:10px;padding:13px 11px;background:#f6f8f6;border:1px solid #eef1ed;border-radius:6px;margin-bottom:27px}.workspace-avatar{display:grid;place-items:center;width:32px;height:32px;background:#e8efe9;color:#567763;border-radius:5px}.workspace-name strong{display:block;font-size:13px}.workspace-name div>span{display:block;margin-top:4px;color:#929b93;font-size:10px}.main-nav{display:flex;flex-direction:column;gap:6px}.main-nav button{display:flex;align-items:center;width:100%;gap:12px;height:43px;text-align:left;border-radius:6px;padding:0 13px;color:#7a857d;font-size:13px}.main-nav button:hover{background:#f5f8f5}.main-nav button.active{background:#e9f3ed;color:var(--green);font-weight:600}.nav-count{margin-left:auto;font-size:11px;background:#edf1ed;padding:1px 6px;border-radius:4px}.sidebar-classes{display:flex;align-items:center;justify-content:space-between;color:#9aa59d;font-size:10px;margin:31px 4px 9px 12px}.sidebar-classes .icon-button{width:25px;height:25px}.sidebar-classes svg{width:15px}.sidebar-class-list{display:flex;flex-direction:column;gap:3px;overflow-y:auto}.sidebar-class-list button{display:flex;align-items:center;text-align:left;gap:11px;font-size:12px;color:#738177;padding:10px 13px;border-radius:5px;min-height:36px}.sidebar-class-list button.selected{color:#355b46;background:#f6f8f5}.sidebar-class-list button>span:nth-child(2){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-class-list small{color:#a2aba4;font-size:10px}.class-dot{display:inline-block;width:7px;height:7px;border-radius:2px;flex-shrink:0;background:var(--green)}.class-dot.blue{background:var(--blue)}.class-dot.rose{background:var(--rose)}.class-dot.amber{background:var(--amber)}.sidebar-bottom{margin-top:auto;padding-top:28px}.sidebar-bottom-link{width:100%;display:flex;align-items:center;gap:12px;color:#8b968c;font-size:12px;padding:10px 13px;text-align:left;border-radius:5px}.sidebar-bottom-link:hover,.sidebar-bottom-link.selected{color:var(--green);background:#f3f7f3}.user-profile{display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);margin-top:17px;padding:20px 0}.profile-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f0eae3;color:#9c8267;font-size:13px}.user-profile>div{flex:1;min-width:0}.user-profile strong{display:block;font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-profile div>span{display:block;margin-top:3px;color:#a0a99f;font-size:10px}.user-profile .icon-button svg{width:16px}.main-shell{width:calc(100% - 224px);margin-left:224px;min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;height:69px;flex-shrink:0;background:#ffffffb3;border-bottom:1px solid var(--line);padding:0 40px;font-size:11px;color:#7a887d}.topbar>div{display:flex;align-items:center;gap:13px}.breadcrumb-parent{color:#a0aaa2}.topbar time{color:#98a198;font-size:11px}.mobile-menu{display:none}.main-content{width:100%;max-width:1410px;padding:37px 40px 25px;margin:0 auto;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:31px}.page-heading p{margin-top:9px;color:#92a095;font-size:12px}.page-heading>.button{align-self:center}.draw-toolbar{display:flex;align-items:center;gap:20px;margin-bottom:19px}.class-select{display:flex;align-items:center;border:1px solid #dfe7e0;background:#fff;height:41px;border-radius:6px;position:relative;max-width:65%}.class-select .class-dot{position:absolute;left:15px;pointer-events:none}.class-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0 33px;width:100%;font-weight:500;font-size:12px;min-width:170px;max-width:400px}.class-select>svg{position:absolute;right:11px;pointer-events:none;color:#839284}.toolbar-meta{display:flex;gap:7px;align-items:center;font-size:11px;color:#99a398}.round-meta{margin-left:auto}.draw-layout{display:grid;grid-template-columns:minmax(0,1fr) 257px;gap:29px;align-items:start}.draw-tool{background:#fff;border:1px solid #dce7df;border-radius:8px;min-width:0;position:relative;overflow:hidden}.draw-tool-heading{display:flex;align-items:center;justify-content:space-between;padding:13px 19px;color:#7f9485;font-size:11px;border-bottom:1px solid #f0f4f0}.draw-tool-heading>span{display:flex;gap:8px;align-items:center}.draw-tool-heading .icon-button{width:26px;height:26px}.draw-tool-heading .icon-button svg{width:15px}.live-dot{width:5px;height:5px;background:#6a9c7f;border-radius:50%}.draw-stage{min-height:310px;height:310px;display:flex;align-items:center;justify-content:center;padding:30px 25px;background-color:#fbfdfb;background-image:radial-gradient(#dfe9df .65px,transparent .65px);background-size:19px 19px}.stage-ready,.stage-empty{text-align:center;color:#8da494}.ready-mark{display:grid;place-items:center;margin:0 auto 23px;color:#6b997c;width:76px;height:76px;border:1px solid #e0ebe1;border-radius:20px;background:#f2f7ef;transform:rotate(-7deg)}.ready-mark svg{transform:rotate(7deg)}.stage-ready h2{font-size:19px;font-weight:500;color:#4c7159}.stage-ready p{font-size:11px;margin-top:12px;color:#9aaa9b}.stage-empty h2{margin:17px 0;color:#738976;font-weight:500}.single-result{display:flex;flex-direction:column;align-items:center;gap:21px;width:100%;text-align:center}.single-result strong{font-size:58px;font-weight:550;line-height:1.3;color:#226043;max-width:100%;overflow-wrap:anywhere;max-height:160px;overflow:auto}.result-label{color:#9aa99b;font-size:11px}.result-sub{font-size:11px;color:#7c9885}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 16px;width:100%;max-height:256px;overflow-y:auto;padding:10px 0;text-align:center}.result-person strong{font-size:25px;font-weight:550;color:#226043;display:block;overflow-wrap:anywhere}.result-person span{display:block;margin-top:6px;font-size:10px;color:#91a28f;overflow-wrap:anywhere}.draw-bottom{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-top:1px solid #edf2ec;color:#9aa89a;font-size:10px;min-height:48px}.draw-bottom span{display:inline-flex;gap:6px;align-items:center}.fullscreen-action{display:none}.draw-tool:fullscreen{display:flex;flex-direction:column;width:100%;height:100%;border-radius:0}.draw-tool:fullscreen .draw-stage{flex:1;height:auto}.draw-tool:fullscreen .single-result strong{font-size:90px;max-height:45vh}.draw-tool:fullscreen .fullscreen-action{display:flex;justify-content:center;padding:20px}.draw-options{padding:13px 0 0}.draw-options h2{font-size:14px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--line)}.control-label{display:block;font-size:11px;color:#89988a;margin-bottom:11px}.segmented{display:flex;align-items:center;background:#edf2ed;padding:3px;border-radius:5px;gap:2px}.segmented button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-width:0;height:34px;color:#8a988b;font-size:11px;border-radius:4px;white-space:nowrap}.segmented button.active{color:#357052;background:#fff;box-shadow:0 1px 3px #24352a0a}.mode-control{margin-bottom:24px}.number-control{display:flex;align-items:center;border:1px solid #dde6de;border-radius:6px;background:#fff;height:40px;padding:3px;margin-bottom:27px}.number-control input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;border:0;background:none;text-align:center;width:100%;padding:0;height:32px;font-size:13px}.number-control input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.number-control>span{color:#9aa59a;font-size:11px;padding-right:10px}.number-control>.icon-button{width:29px;height:29px}.number-control svg{width:16px}.cycle-progress{margin-bottom:23px}.cycle-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#89988a;margin-bottom:10px}.cycle-progress strong{color:#407355;font-size:13px}.cycle-progress strong span{color:#a3afa3;font-weight:400;font-size:11px}progress{display:block;width:100%;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:5px;overflow:hidden;background:#e6ede5}progress::-webkit-progress-bar{background:#e6ede5}progress::-webkit-progress-value{background:#629b77;border-radius:5px}progress::-moz-progress-bar{background:#629b77}.progress-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:7px;color:#9eab9f;font-size:10px}.progress-bottom .icon-button{width:25px;height:25px}.progress-bottom svg{width:13px}.draw-submit{height:46px;width:100%;font-size:13px}.recent-section{margin-top:36px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.section-heading h2{font-size:14px;display:flex;align-items:center;gap:9px}.section-heading .text-button{font-size:11px;color:#94a293}.recent-list{border-top:1px solid var(--line)}.recent-row{display:flex;align-items:center;gap:14px;min-height:57px;padding:12px 2px;border-bottom:1px solid var(--line);font-size:12px}.recent-check{display:grid;place-items:center;width:26px;height:26px;background:#ebf3ec;color:#7e9e82;border-radius:50%;flex-shrink:0}.recent-names{flex:1;min-width:0;color:#576b58;overflow-wrap:anywhere}.pill{display:inline-block;padding:4px 7px;border-radius:4px;background:#edf1ed;color:#90a08f;font-size:10px;white-space:nowrap}.recent-row time{color:#a1afa1;font-size:10px;width:100px;text-align:right;flex-shrink:0}.section-empty{color:#a0aaa0;padding:35px 0;text-align:center;border-top:1px solid var(--line);font-size:12px}.workspace-footer{display:flex;justify-content:space-between;color:#aab3aa;font-size:10px;padding:20px 40px 22px;margin-top:15px}.icp-link{color:#7e8e80;font-size:10px;white-space:nowrap}.class-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:36px}.schools-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid var(--line)}.school-filter{display:flex;align-items:center;gap:10px;color:#6b8372;max-width:65%;min-width:0}.school-filter select{max-width:100%;width:280px;font-size:12px}.class-school{font-size:10px;line-height:1.6;color:#748b79;overflow-wrap:anywhere}.workspace-name>div{min-width:0}.workspace-name div>span{line-height:1.7;overflow-wrap:anywhere}.history-school{display:block;font-size:10px;color:#7b8b7e;line-height:1.6;margin-top:5px}.class-tile{display:flex;flex-direction:column;padding:18px;border:1px solid #e0e7e1;border-radius:7px;background:#fff;text-align:left;gap:15px;min-width:0;color:#547d63;transition:border-color .15s}.class-tile.selected{border-color:#80b092;background:#f3f8f2}.class-tile:hover{border-color:#80b092}.class-tile.blue{color:var(--blue)}.class-tile.rose{color:var(--rose)}.class-tile.amber{color:var(--amber)}.class-tile.blue.selected{background:#f1f6fb;border-color:#96b6d0}.class-tile.rose.selected{background:#fbf4f6;border-color:#d0a2b0}.class-tile.amber.selected{background:#fbf8f0;border-color:#caba95}.class-tile-top{display:flex;width:100%;align-items:center;justify-content:space-between}.class-symbol{display:grid;place-items:center;background:#f3f6f2;border-radius:6px;width:35px;height:35px}.class-tile>strong{font-size:15px;color:#3c5243;overflow-wrap:anywhere}.class-tile-meta{display:flex;width:100%;gap:8px;justify-content:space-between;color:#94a191;font-size:10px;align-items:center;overflow-wrap:anywhere}.class-tile-meta>span{display:inline-flex;gap:4px;align-items:center;white-space:nowrap}.roster-section{min-width:0}.roster-heading{margin-bottom:22px;padding-bottom:21px;border-bottom:1px solid var(--line)}.roster-heading h2{font-size:18px}.roster-heading p{color:#9ca89a;font-size:11px;margin-top:6px}.count-badge{font-weight:400;font-size:10px;color:#8f9d8f;background:#edf2eb;padding:2px 7px;border-radius:4px}.actions{display:flex;align-items:center;gap:8px}.roster-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.search-field{display:inline-flex;align-items:center;gap:9px;padding-left:11px;background:#fff;border:1px solid #e0e7de;border-radius:5px;max-width:250px;color:#9fa99d}.search-field input{border:0;background:transparent;width:100%;height:36px;padding-left:0;font-size:11px}.table-scroll{overflow-x:auto;width:100%}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-weight:400;font-size:10px;color:#91a08f;background:#eff3ee;padding:13px 15px;white-space:nowrap}th:first-child{border-radius:5px 0 0 5px}th:last-child{border-radius:0 5px 5px 0}td{padding:14px 15px;border-bottom:1px solid var(--line);overflow-wrap:anywhere;max-width:320px}.index-cell{width:70px}.roster-table{min-width:570px}.student-name{display:inline-flex;gap:11px;align-items:center;line-height:1.7}.student-avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;font-size:9px;background:#eaf2e8;color:#749277;border-radius:50%}.student-avatar.blue{background:#e8eff7;color:#698aad}.student-avatar.rose{background:#f6ebef;color:#b98494}.student-avatar.amber{background:#f7f1e6;color:#b49c6d}.status{display:inline-flex;align-items:center;gap:4px;color:#629472;background:#eaf3e9;padding:3px 7px;border-radius:4px;font-size:10px;white-space:nowrap}.status.neutral{color:#a0a99d;background:#edf1eb}.status.disabled{color:#b97878;background:#f9eeee}.row-actions{display:flex;gap:5px;justify-content:flex-end}.row-actions .icon-button{width:28px;height:28px}.row-actions svg{width:14px}.table-foot,.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#9ba698;font-size:10px;padding:20px 2px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:330px;gap:18px;padding:40px 15px}.empty-symbol{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#eaf0e8;color:#7f9b81}.empty h3{color:#6f856f;font-size:17px;font-weight:500}.empty p{font-size:12px;color:#99a495}.history-filters{display:flex;gap:16px;align-items:flex-end;margin-bottom:25px;flex-wrap:wrap}.history-filters label{display:flex;flex-direction:column;gap:9px;color:#8b9989;font-size:11px}.history-filters select{width:185px}.history-filters input,.history-filters select{font-size:12px;height:38px}.date-separator{padding-bottom:13px;font-size:11px;color:#a2ac9d}.history-filters>.icon-button{margin-bottom:3px}.history-table{min-width:670px}.history-date{display:block;font-size:11px;color:#72836f}.history-time{display:block;font-size:10px;color:#a8b1a1;margin-top:4px}.history-names{min-width:140px;max-width:400px}.name-tag{display:inline-block;padding:4px 7px;margin:3px;border-radius:4px;background:#eaf1e7;color:#63825d;font-size:11px}.pagination>div{display:flex;align-items:center;gap:12px}.pagination .icon-button{border:1px solid #e1e7dd;background:#fff;width:27px;height:27px}.pagination svg{width:14px}.account-section{padding:5px 0 28px;margin-bottom:26px;border-bottom:1px solid var(--line)}.account-section h2{margin-bottom:25px}.account-info{display:flex;gap:70px;margin:0;flex-wrap:wrap}.account-info dt{font-size:11px;color:#9aa595;margin-bottom:9px}.account-info dd{margin:0;font-size:13px}.password-form{max-width:370px}.password-form>.button{margin-top:6px}.admin-label{display:flex;gap:7px;align-items:center;color:#698d67;background:#e9f1e5;padding:7px 11px;border-radius:4px;font-size:11px}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:34px;padding-bottom:30px;border-bottom:1px solid var(--line)}.admin-stats>div{padding-left:25px;border-left:1px solid var(--line)}.admin-stats>div:first-child{padding-left:0;border-left:0}.admin-stats span{display:flex;gap:8px;align-items:center;font-size:11px;color:#8b9a85}.admin-stats strong{font-size:32px;font-weight:500;display:block;margin-top:16px;color:#506e47}.registration-setting{display:flex;align-items:center;justify-content:space-between;margin-bottom:37px;padding-bottom:30px;border-bottom:1px solid var(--line)}.registration-setting h2{margin-bottom:7px}.registration-setting .muted{font-size:11px}.switch{display:inline-flex;align-items:center;position:relative;cursor:pointer}.switch input{width:39px;height:23px;opacity:0;margin:0;position:absolute;z-index:1;cursor:pointer}.switch span{background:#c4cec0;border-radius:20px;display:block;width:39px;height:23px;padding:3px;transition:background .15s}.switch span:after{content:"";display:block;width:17px;height:17px;background:#fff;border-radius:50%;transition:transform .15s}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{transform:translate(16px)}.switch input:focus-visible+span{outline:2px solid var(--green);outline-offset:3px}.admin-users table{min-width:660px}.field{display:flex;flex-direction:column;align-items:stretch;position:relative;gap:9px;font-size:12px;color:#71816c;margin-bottom:22px}.field>.optional{position:absolute;top:1px;left:36px;color:#a8b2a3;font-size:10px}.field input{width:100%}.password-field{position:relative;display:block}.password-field input{padding-right:43px}.password-field .icon-button{position:absolute;top:5px;right:5px;color:#a4aea0}.password-field .icon-button svg{width:16px}.modal{padding:0;border:1px solid #e2e8dd;border-radius:8px;width:450px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);color:#344b35;background:#fff;box-shadow:0 18px 80px #18362726}.modal::backdrop{background:#243b375c}.modal.wide{width:640px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:15px}.modal-body{padding:26px 24px 13px;overflow-y:auto;max-height:calc(100dvh - 230px)}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:17px 24px;background:#fafbf8;border-top:1px solid var(--line)}.swatches{display:flex;gap:10px}.swatch{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#6d9b78;color:#fff}.swatch.blue{background:#6d9cc3}.swatch.rose{background:#c3879b}.swatch.amber{background:#c1aa6e}.swatch[aria-pressed=true]{outline:1px solid currentColor;outline-offset:3px;box-shadow:0 0 0 2px #fff,0 0 0 3px #95aa90}.confirm-text{font-size:13px;line-height:1.9;margin-bottom:17px;color:#7c8c74}.error-line{display:flex;align-items:flex-start;gap:7px;color:#b35f5b;background:#fbefeb;font-size:12px;padding:11px 12px;border-radius:5px;line-height:1.7;margin-bottom:15px}.error-line svg{margin-top:2px}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:-7px 0 24px}.tabs button{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 2px;color:#9aa593;font-size:12px;border-bottom:2px solid transparent}.tabs button.active{color:var(--green);border-bottom-color:var(--green)}.input-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:12px;color:#7d8d73}.segmented.small button{height:26px;min-width:57px;font-size:10px}.import-body textarea{font-size:13px;margin-bottom:10px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:1px dashed #b3c6aa;background:#f7faf4;border-radius:6px;padding:45px 20px;width:100%;color:#86a07a;min-height:220px}.dropzone.dragging{background:#e7f3df;border-color:var(--green)}.dropzone strong{font-size:13px;overflow-wrap:anywhere;max-width:100%}.dropzone span{font-size:11px;color:#a0ae95}.template-link{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:11px;margin:14px 0 10px}.preview-summary{display:grid;grid-template-columns:repeat(3,1fr);background:#f3f7ee;border-radius:5px;padding:16px;margin-bottom:18px;text-align:center}.preview-summary span{color:#97a38b;font-size:11px}.preview-summary strong{font-size:21px;color:#638653;margin-right:5px;font-weight:500}.preview-table{max-height:320px;margin-bottom:13px}.preview-table th{position:sticky;top:0}.preview-table td{padding:11px 15px}.notice{background:#f6f6ee;color:#9c9771;padding:11px;border-radius:5px;margin-bottom:14px;font-size:11px;line-height:1.8;overflow-wrap:anywhere}.notice.warning{background:#fcf1ec;color:#b88b74}.table-empty{padding:35px;text-align:center;color:#a5ae9c;font-size:12px}.toast{display:flex;align-items:center;gap:9px;position:fixed;bottom:27px;left:calc(50% + 112px);transform:translate(-50%);padding:10px 12px 10px 17px;border-radius:6px;background:#fff;color:#4c835e;border:1px solid #d9e7d6;box-shadow:0 5px 30px #17351b10;z-index:80;font-size:12px;width:max-content;max-width:calc(100vw - 36px)}.toast.error{color:#b56b65;border-color:#eecfc8}.toast .icon-button{width:24px;height:24px}.toast .icon-button svg{width:15px}.loading-inline{min-height:170px;display:flex;align-items:center;justify-content:center;color:#9aaf90}.stage-loader{color:#9aaf90}.boot-screen{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;min-height:100dvh}.auth-page{display:flex;min-height:100dvh;background:#fff}.auth-photo{width:49%;position:relative;background:#163d30;overflow:hidden}.auth-photo>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.auth-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#10372d70,#14392c0a 40%,#0d3528c9)}.auth-photo-content{position:relative;z-index:1;padding:45px 45px 40px;height:100%;min-height:100dvh;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.auth-photo-content .brand{color:#fff}.auth-photo-content .brand-symbol{background:#fff;color:#2d6951}.auth-photo-content .brand-en{color:#e1e9d7}.auth-photo-content>div:nth-child(2){margin-top:auto;margin-bottom:58px}.auth-caption{font-size:28px;font-weight:500;line-height:1.8;display:block;max-width:400px}.auth-photo-content p{font-size:12px;margin-top:18px;color:#dce7d3}.auth-photo-bottom{font-size:11px;color:#d0ddc7}.auth-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 42px;position:relative}.auth-form{width:100%;max-width:344px;margin:20px 0 65px}.section-label{color:#7b9a77;font-size:11px}.auth-form h1{margin-top:17px;font-size:30px}.auth-subtitle{margin:13px 0 34px;font-size:12px;color:#9da895}.auth-form .field{margin-bottom:23px;font-size:11px}.auth-form input{height:46px;font-size:12px;border-color:#e1e7db}.auth-form .password-field .icon-button{top:7px}.auth-submit{width:100%;height:44px;margin-top:6px}.auth-switch{font-size:11px;text-align:center;margin-top:24px;color:#a3ad9b}.auth-switch button{padding:4px;margin-left:5px;color:var(--green);font-size:11px}.auth-footer{position:absolute;bottom:28px;font-size:10px;color:#acb5a5;text-align:center;line-height:2}.auth-footer span{display:block;color:#bac2b2}.mobile-brand{display:none}.toolbar-meta,.round-meta,.control-label,.draw-bottom,.result-label,.stage-ready p,.progress-bottom,.cycle-progress>div:first-child,.section-empty,.section-heading .text-button,.recent-row time,.table-foot,.pagination,.class-tile-meta,.history-time,.auth-subtitle,.auth-switch,.section-label,.field,.history-filters label,th{color:#6b7b70}.segmented button,.sidebar-class-list button,.sidebar-bottom-link{color:#6b7b70}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(min-width:1550px){.main-content{padding-top:46px}.draw-stage{height:365px}.draw-options{padding-top:22px}.draw-options h2{margin-bottom:29px}.cycle-progress{margin-top:34px}.draw-submit{margin-top:9px}}@media(max-width:1200px){.sidebar{width:205px;padding-left:15px;padding-right:15px}.main-shell{width:calc(100% - 205px);margin-left:205px}.main-content{padding:30px 28px 20px}.topbar{padding:0 28px}.workspace-footer{padding-left:28px;padding-right:28px}.draw-layout{grid-template-columns:minmax(0,1fr) 222px;gap:22px}.class-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.class-tile{padding:15px}.toast{left:calc(50% + 102px)}}@media(max-width:1000px){.draw-layout{grid-template-columns:minmax(0,1fr) 195px;gap:19px}.draw-stage{padding-left:16px;padding-right:16px}.stage-ready h2{font-size:16px}.single-result strong{font-size:46px}.draw-options h2{margin-bottom:21px}.main-content{padding-left:24px;padding-right:24px}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-photo-content{padding:35px 30px}.auth-caption{font-size:24px}}@media(max-width:820px){.sidebar{width:224px;transform:translate(-100%);transition:transform .2s ease}.sidebar.open{transform:translate(0)}.main-shell{margin-left:0;width:100%}.topbar{height:59px;padding:0 22px}.topbar>div{gap:9px}.mobile-menu{display:inline-flex;margin-left:-7px}.topbar time{font-size:10px}.nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#273e374f;z-index:29}.main-content{padding:29px 24px 18px}.draw-layout{grid-template-columns:minmax(0,1fr) 220px;gap:24px}.workspace-footer{padding:20px 24px}.toast{left:50%}.auth-photo{width:43%}.auth-main{padding-left:35px;padding-right:35px}.auth-photo-content{padding:32px 23px}.auth-caption{font-size:22px}}@media(max-width:600px){.schools-toolbar{flex-wrap:wrap;gap:12px}.school-filter{max-width:100%;width:100%}.school-filter select{width:100%;flex:1}.schools-toolbar>.actions{margin-left:auto}.workspace-footer{flex-wrap:wrap;gap:10px}.workspace-footer>span:last-child{display:none}h1{font-size:23px}.topbar{padding:0 17px}.topbar time{font-size:9px}.breadcrumb-parent{display:none}.topbar>div>svg{display:none}.main-content{padding:26px 18px 12px}.page-heading{margin-bottom:25px;gap:12px}.page-heading p{font-size:11px;margin-top:7px}.page-heading .button{font-size:11px;padding:8px 11px;gap:6px;min-height:35px}.page-heading .button svg{width:15px}.draw-toolbar{gap:12px;margin-bottom:14px;flex-wrap:wrap}.class-select{max-width:calc(100% - 100px)}.class-select select{min-width:145px;font-size:11px}.toolbar-meta{font-size:10px}.round-meta{display:none}.draw-layout{display:flex;flex-direction:column;gap:19px}.draw-tool{width:100%}.draw-stage{height:270px;min-height:270px}.single-result strong{font-size:48px}.stage-ready h2{font-size:18px}.draw-options{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;padding:0;width:100%}.draw-options h2{display:none}.draw-options>.control-label:first-of-type{grid-row:1;grid-column:1}.draw-options>.control-label:nth-of-type(2){grid-row:1;grid-column:2}.control-label{margin-bottom:0;font-size:10px}.mode-control{grid-row:2;grid-column:1;margin:0}.number-control{grid-row:2;grid-column:2;margin:0}.cycle-progress{grid-row:3;grid-column:1 / -1;margin:9px 0 0}.draw-submit{grid-row:4;grid-column:1 / -1;height:44px}.recent-section{margin-top:30px}.recent-row{gap:9px;font-size:11px}.recent-row time{width:82px;font-size:9px}.recent-row .pill{font-size:9px}.workspace-footer{padding:24px 18px 20px;font-size:9px}.workspace-footer span:last-child{max-width:55%;text-align:right}.class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:28px}.class-tile{padding:14px;gap:12px}.class-tile>strong{font-size:13px}.class-tile-meta{font-size:9px}.class-tile-meta svg{width:11px}.class-symbol{width:30px;height:30px}.class-symbol svg{width:18px}.roster-heading{gap:8px}.roster-heading h2{font-size:15px;gap:6px}.roster-heading .actions{gap:2px}.roster-heading .button{font-size:11px;padding:7px 8px}.roster-heading .icon-button{width:28px;height:28px}.roster-heading .icon-button svg{width:15px}.roster-toolbar{flex-wrap:wrap;gap:12px}.search-field{max-width:none;flex:1;min-width:150px}.roster-toolbar>.search-field{width:100%;flex-basis:100%}.roster-toolbar .actions{width:100%;justify-content:flex-end}.roster-toolbar .button{font-size:11px}.history-filters{gap:12px 10px}.history-filters label{width:calc(50% - 5px);font-size:10px}.history-filters label:first-child{width:100%}.history-filters select,.history-filters input{width:100%;font-size:11px}.date-separator{display:none}.history-filters>.icon-button{margin-left:auto}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0}.admin-stats>div:nth-child(3){border:0;padding-left:0}.admin-stats strong{font-size:28px;margin-top:10px}.admin-label{font-size:10px;padding:6px 8px}.admin-users>.section-heading{flex-wrap:wrap}.admin-users .search-field{flex-basis:100%}.account-info{gap:24px 45px}.account-info dt{font-size:10px}.account-info dd{font-size:12px}.password-form{max-width:none}.modal{max-width:calc(100vw - 24px);max-height:calc(100dvh - 30px)}.modal-head{padding:15px 18px}.modal-head h2{font-size:14px}.modal-body{padding:23px 18px 12px}.modal-footer{padding:15px 18px}.preview-summary{padding:14px 7px}.preview-summary span{font-size:10px}.preview-summary strong{font-size:18px}.auth-photo{display:none}.auth-main{padding:34px 30px 90px;min-height:100dvh;justify-content:flex-start}.mobile-brand{display:block;width:100%;max-width:344px;margin-bottom:46px}.auth-form{margin:0;max-width:344px}.auth-form h1{font-size:28px}.auth-form .section-label{font-size:11px}.auth-footer{bottom:20px}.auth-subtitle{margin-bottom:28px}.auth-form .field{margin-bottom:21px}.result-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:220px}.result-person strong{font-size:21px}.draw-tool:fullscreen .single-result strong{font-size:54px}.draw-tool:fullscreen .draw-stage{min-height:0}.draw-tool:fullscreen .result-grid{max-height:60vh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.rolling{visibility:hidden}}@media(max-width:600px){.toast{top:8px;bottom:auto;left:auto;right:12px;transform:none;max-width:calc(100vw - 65px);min-height:42px;padding:7px 9px;font-size:11px;gap:6px}.workspace:has(.toast) .topbar>time,.workspace:has(.toast) .topbar>div>span:not(.mobile-menu){visibility:hidden}}:root{color:#28343c;background:#f5f6f8;--line: #e3e7eb;--muted: #64717b;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1)}.button,.icon-button{transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s var(--ease-out)}html[data-input-method=pointer] :is(.button,.icon-button):active:not(:disabled){transform:scale(.97)}.icon-button.danger-icon:hover{background:#fcf0f2;color:#ad4c61}.topbar-tools{gap:16px}.topbar-tools>.icon-button{border:1px solid var(--line);color:#6c7c86;background:#fff}.topbar time{color:#75818a}.workspace-name{background:#f5f7f8;border-color:#e8ecef}.workspace-name div>span{color:#687b78;font-size:11px}.profile-avatar{color:#527b9c;background:#edf3f8}.page-heading p,.roster-heading p{color:#707d85}.main-nav button,.sidebar-bottom-link{transition:color .12s ease,background-color .12s ease}.table-foot,.pagination,.field{font-size:12px}table{font-size:13px}th{color:#677780;background:#eef1f4;font-size:11px}.status.neutral{color:#697a84;background:#edf1f4}.search-field{border-color:#dce3e8;color:#7c8a95}.search-field input{font-size:12px}.search-field:focus-within{outline:2px solid #b7d6ca;outline-offset:1px}.search-field input:focus{outline:none}.search-field .icon-button{width:28px;height:28px;margin-right:4px}.management-layout{display:grid;grid-template-columns:204px minmax(0,1fr);gap:28px;align-items:start}.school-directory{border-right:1px solid var(--line);padding-right:18px;position:sticky;top:24px}.directory-title{display:flex;align-items:center;gap:8px;padding:6px 10px 17px;color:#63819a}.directory-title h2{font-size:12px;color:#596f80;font-weight:500;flex:1}.directory-title>span{font-size:11px;font-variant-numeric:tabular-nums}.school-directory-list{display:flex;flex-direction:column;gap:6px;max-height:calc(100dvh - 220px);overflow-y:auto;padding:3px}.school-link{display:flex;align-items:flex-start;gap:9px;min-height:43px;padding:11px 9px;border-radius:5px;text-align:left;width:100%;color:#697a88;transition:background-color .12s ease,color .12s ease}.school-link>svg{margin-top:1px}.school-link>span{flex:1;min-width:0;font-size:12px;line-height:1.65;overflow-wrap:anywhere}.school-link>small{font-size:11px;color:#72899c;padding-top:2px}.school-link:hover{background:#edf1f5}.school-link.selected{color:#386d91;background:#e8eff6}.school-link.selected>span{font-weight:550}.management-content{min-width:0}.mobile-school-select{display:none}.school-section{padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid var(--line)}.school-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.school-heading-name{display:flex;gap:12px;align-items:center;min-width:0}.school-heading-icon{display:grid;place-items:center;width:40px;height:42px;color:#497c9e;background:#eaf0f6;border-radius:6px;flex-shrink:0}.school-heading-name h2{font-size:17px;line-height:1.6;color:#344e60}.school-heading-name p{display:flex;align-items:center;gap:10px;margin-top:5px;color:#72808b;font-size:11px}.school-heading-name p>span{width:1px;height:10px;background:#cbd4db}.school-section-heading>.actions{flex-shrink:0;gap:4px}.school-section-heading .button{margin-left:7px}.management-layout .class-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;gap:12px}.management-layout .class-tile{padding:0;gap:0;position:relative;background:#fff;border-color:#e0e5e9;min-height:128px}.management-layout .class-tile.selected{background:#f2f8f5;border-color:#7cae97}.management-layout .class-tile.blue.selected{background:#f0f5fb;border-color:#8aafce}.management-layout .class-tile.rose.selected{background:#fbf2f5;border-color:#d2a0af}.management-layout .class-tile.amber.selected{background:#fcf8ed;border-color:#c9b884}.class-tile-select{display:flex;flex-direction:column;text-align:left;gap:10px;padding:14px;width:100%;height:100%;flex:1;border-radius:6px}.class-tile-select .class-tile-top{padding-right:29px;min-height:32px}.class-tile-select>strong{color:#364d43;font-size:15px;line-height:1.55;padding-right:16px;overflow-wrap:anywhere}.class-tile-select .class-tile-meta{margin-top:auto;font-size:11px;color:#738379}.class-tile-select .class-tile-meta>span:last-child{white-space:normal;text-align:right}.class-tile-edit{position:absolute;right:9px;top:15px;background:#fff9;color:#5c7d6e}.class-tile-select .class-symbol{width:32px;height:32px;border:1px solid #e1e9e3;background:#fff}.class-school{font-size:11px;color:#6d7c86}.school-section>.empty{min-height:230px}.roster-title{display:flex;align-items:center;gap:12px;min-width:0}.roster-title>.class-dot{width:5px;height:35px}.management-layout .roster-heading{padding-bottom:20px;margin-bottom:22px}.management-layout .roster-heading h2{font-size:18px;color:#2e4038}.management-layout .roster-heading p{font-size:11px;line-height:1.7}.management-layout .roster-heading .actions{flex-shrink:0}.count-badge{color:#64786c;background:#eaf0ec;font-size:11px;white-space:nowrap}.management-layout .roster-toolbar{margin-bottom:18px}.management-layout .roster-table{min-width:0;table-layout:fixed}.roster-table td,.roster-table th{padding-left:12px;padding-right:12px}.roster-table .index-cell{width:56px}.roster-table .student-number-cell,.roster-table .student-status-cell{width:100px}.roster-table .student-actions-cell{width:88px}.roster-table tbody tr{background:transparent;transition:background-color .12s ease}.roster-table tbody tr:hover{background:#f0f4f6}.roster-table .student-name{width:100%;gap:10px}.roster-table .student-name>span:last-child{min-width:0}.student-name-button{text-align:left;padding:4px 0;font-weight:500;color:#344c40;line-height:1.6;overflow-wrap:anywhere}.student-name-button:hover{text-decoration:underline;text-underline-offset:4px;color:var(--green)}.student-mobile-meta{display:none}.roster-table .row-actions{gap:4px}.roster-table .row-actions .icon-button{height:34px;width:34px;color:#668073;border:1px solid #dfe7e3;background:#fff}.roster-table .row-actions svg{width:16px;height:16px}.roster-table .row-actions .icon-button:hover{background:#e7f1ec;border-color:#9fbead}.roster-table .row-actions .danger-icon{color:#8b7c83}.roster-table .row-actions .danger-icon:hover{color:#ad4c61;background:#fcf0f2;border-color:#dfbac4}.form-context{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.8;color:#607b8c;padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.form-context svg{margin-top:3px}.draw-tool{box-shadow:0 2px 8px #273c3410}.draw-stage{position:relative;isolation:isolate;overflow:hidden;background:#fcfdfd}.draw-stage>:not(.paper-motion){position:relative;z-index:1}.paper-motion{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.paper-motion:before{content:"";position:absolute;left:36px;top:0;bottom:0;width:1px;background:#c8787c22}.paper-motion>span{display:block;position:absolute;top:-32px;right:0;bottom:-32px;left:0;background-image:repeating-linear-gradient(to bottom,transparent 0 31px,#83a7c018 31px 32px);animation:paper-drift 24s linear infinite}.is-drawing .paper-motion>span{animation-duration:4s}.has-result .paper-motion>span{animation-play-state:paused}.draw-stage .result-sub{display:inline-flex;align-items:center;justify-content:center;gap:6px}.draw-stage .single-result:not(.rolling),.draw-stage .result-grid{animation:result-reveal .24s var(--ease-out) both}.draw-tool-heading{background:#fff}.live-dot{width:6px;height:6px;box-shadow:0 0 0 3px #e9f3ed}.ready-mark{border-radius:8px;background:#eef6f2}.stage-ready h2{color:#3f6654}.single-result strong{color:#18553e}.modal[open]{animation:dialog-in .18s var(--ease-out) both}.modal::backdrop{background:#233a4666;animation:backdrop-in .16s ease both}.modal-head{padding-top:20px;padding-bottom:20px}.modal-footer{background:#f7f9fa}.toast{animation:notice-in .18s var(--ease-out) both}.nav-backdrop{animation:backdrop-in .16s ease both}.sidebar{transition-timing-function:var(--ease-drawer)}@keyframes paper-drift{0%{transform:translateY(0)}to{transform:translateY(32px)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes result-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes notice-in{0%{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@media(max-width:1200px){.management-layout{grid-template-columns:180px minmax(0,1fr);gap:22px}.management-layout .class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.school-section-heading{align-items:flex-start;flex-wrap:wrap}.school-section-heading>.actions{margin-left:auto}.roster-table .student-number-cell{width:78px}.roster-table .student-status-cell{width:84px}}@media(max-width:1000px){.management-layout{display:block}.school-directory{display:none}.mobile-school-select{display:flex;align-items:center;gap:10px;color:#527b99;margin-bottom:24px}.mobile-school-select>select{width:100%;font-size:13px}.management-layout .class-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.sidebar{transition:transform .22s var(--ease-drawer),visibility .22s}.sidebar:not(.open){visibility:hidden}.sidebar.open{visibility:visible}}@media(max-width:600px){.toast{top:auto;bottom:16px;left:16px;right:16px;width:auto;max-width:none;transform:none;min-height:44px;padding:10px 12px}.toast>span{flex:1}.workspace:has(.toast) .topbar>time,.workspace:has(.toast) .topbar>div>span:not(.mobile-menu){visibility:visible}.topbar-tools{gap:8px}.topbar-tools>time{display:none}.topbar-tools>.icon-button{width:30px;height:30px}.school-section-heading{gap:15px;margin-bottom:18px}.school-heading-name{gap:10px;width:100%}.school-heading-name h2{font-size:16px}.school-section-heading>.actions{margin-left:0;width:100%}.school-section-heading .button{margin-left:auto}.school-section-heading .icon-button{width:36px;height:36px;background:#fff;border:1px solid #e0e6eb}.school-section{padding-bottom:24px;margin-bottom:24px}.management-layout .class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.management-layout .class-tile{min-height:128px}.class-tile-select{padding:13px;gap:10px}.class-tile-select>strong{font-size:14px;padding-right:0}.class-tile-select .class-tile-meta{flex-wrap:wrap;gap:5px}.class-tile-edit{right:8px;top:12px}.management-layout .roster-heading{align-items:flex-start;flex-wrap:wrap;gap:14px}.management-layout .roster-heading h2{font-size:18px}.management-layout .roster-heading>.actions{width:100%;gap:8px}.management-layout .roster-heading .icon-button{height:36px;width:36px;background:#fff;border:1px solid #e0e6eb}.management-layout .roster-heading .button{margin-left:auto;height:36px;font-size:12px}.management-layout .roster-toolbar>.search-field{flex-basis:100%}.management-layout .roster-toolbar .actions{justify-content:space-between;gap:10px}.management-layout .roster-toolbar .button{flex:1;font-size:12px;min-height:40px}.roster-table .index-cell,.roster-table .student-number-cell,.roster-table .student-status-cell{display:none}.roster-table .student-actions-cell{width:96px}.roster-table td,.roster-table th{padding:12px 8px}.roster-table td:first-of-type+td{padding-left:6px}.roster-table .student-avatar{width:32px;height:32px;font-size:12px;border-radius:6px}.roster-table .student-name{gap:9px}.student-name-button{font-size:14px;padding-top:1px;padding-bottom:1px}.student-mobile-meta{display:block;font-size:11px;color:#788994;overflow-wrap:anywhere}.roster-table .row-actions{gap:6px}.roster-table .row-actions .icon-button{width:36px;height:38px}.management-layout .table-foot{flex-wrap:wrap;gap:8px;font-size:11px;padding-top:17px}.paper-motion:before{left:22px}.draw-stage .single-result strong{font-size:48px}}@media(pointer:coarse){.roster-table .row-actions .icon-button{min-height:44px}.class-tile-edit{height:36px}}html[data-input-method=keyboard] :is(.button,.icon-button,.school-link,.main-nav button,.sidebar){transition:none}html[data-input-method=keyboard] :is(.modal[open],.toast,.single-result:not(.rolling),.result-grid){animation:none}html[data-motion=reduced] *,html[data-motion=reduced] *:before,html[data-motion=reduced] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
