/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.quick-note-fab{z-index:58;color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:linear-gradient(145deg,#4d70e8,#8b5fd1);border:1px solid #b9c6ff;border-radius:50%;place-items:center;width:56px;height:56px;padding:0;transition:opacity .18s,filter .18s;display:grid;position:fixed;bottom:24px;right:24px;box-shadow:0 14px 34px #425fc747}.quick-note-fab:active{cursor:grabbing}.quick-note-fab:hover{filter:brightness(1.08)}.quick-note-fab svg{stroke-width:1.9px;width:26px;height:26px}.quick-note-fab.active{opacity:0;pointer-events:none}.ai-hub-drawer{z-index:57;background:#fff;border-left:1px solid #e7e7e2;grid-template-rows:auto minmax(0,1fr);width:min(520px,100vw - 72px);transition:width .18s;animation:.2s ease-out operation-drawer-in;display:grid;position:fixed;inset:0 0 0 auto;box-shadow:-18px 0 48px #17223624}.ai-hub-drawer.history-open{width:min(740px,100vw - 72px)}.ai-hub-switch{background:#fbfbfd;border-bottom:1px solid #e8e9ee;align-items:stretch;min-height:58px;display:flex}.ai-hub-switch>div{align-items:stretch;display:flex}.ai-hub-switch [role=tab]{color:#7b8392;background:0 0;border:0;align-items:center;gap:8px;min-width:132px;padding:0 18px;font-size:13px;font-weight:700;display:flex;position:relative}.ai-hub-switch [role=tab] svg{width:18px;height:18px}.ai-hub-switch [role=tab][aria-selected=true]{color:#485fc1}.ai-hub-switch [role=tab][aria-selected=true]:after{content:"";background:linear-gradient(90deg,#4d70e8,#8b5fd1);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:16px;right:16px}.ai-hub-close{color:#8b93a1;background:#f1f2f4;border:0;border-radius:50%;width:38px;height:38px;margin:auto 14px auto auto;font-size:21px}.quick-note-module{grid-template-rows:auto auto minmax(0,1fr);min-height:0;display:grid}.quick-note-module>header{border-bottom:1px solid var(--line);align-items:center;min-height:76px;padding:15px 20px;display:flex}.quick-note-module>header>div{align-items:center;gap:11px;display:flex}.quick-note-module>header>div>span{color:#c56356;background:linear-gradient(135deg,#f9ded8,#f6ecdc);border-radius:12px;place-items:center;width:39px;height:39px;font-size:17px;display:grid}.quick-note-module>header small{color:var(--coral);letter-spacing:1.5px;font-size:9px;font-weight:700;display:block}.quick-note-module>header h2{margin:2px 0 0;font:700 20px Georgia,Songti SC,serif}.quick-note-tabs{background:#f4f4f1;border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;margin:12px 20px 0;padding:4px;display:grid}.quick-note-tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:9px;font-size:12px;font-weight:700}.quick-note-tabs button[aria-selected=true]{color:var(--ink);background:#fff;box-shadow:0 2px 8px #27304712}.quick-note-body{min-height:0;padding:20px;overflow-y:auto}.quick-note-compose{gap:13px;display:grid}.quick-note-compose>label{color:#5c6575;gap:9px;font-size:12px;font-weight:700;display:grid}.quick-note-compose textarea,.quick-note-edit-grid input,.quick-note-edit-grid textarea,.quick-note-filters input{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#fbfbf9;border-radius:10px;outline:0;padding:12px;font-size:13px;line-height:1.65}.quick-note-compose textarea:focus,.quick-note-edit-grid input:focus,.quick-note-edit-grid textarea:focus,.quick-note-filters input:focus{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.quick-note-compose-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.quick-note-compose-meta small{color:var(--muted);font-size:10px}.quick-note-compose-meta button{border:1px solid var(--line);color:#687284;background:#fff;border-radius:17px;align-items:center;gap:6px;padding:7px 10px;font-size:11px;display:inline-flex}.quick-note-compose-meta button>span{color:var(--coral);font-size:9px}.quick-note-compose-meta button.listening{color:#b95246;background:#fff4f1;border-color:#e5a097}.quick-note-voice-notice{color:#9b7a45;margin:-4px 0 0;font-size:10px}.quick-note-parse,.quick-note-save{width:100%;min-height:44px}.quick-note-parse:disabled,.quick-note-save:disabled{cursor:default;opacity:.55}.quick-note-examples{border-top:1px solid var(--line);gap:7px;margin-top:7px;padding-top:16px;display:grid}.quick-note-examples small{color:var(--muted);font-size:10px}.quick-note-examples button{color:#657081;text-align:left;background:#fafaf7;border:1px solid #ecece7;border-radius:9px;padding:10px 11px;font-size:11px}.quick-note-confirm{gap:13px;display:grid}.quick-note-confirm-intro{justify-content:space-between;gap:16px;display:flex}.quick-note-confirm-intro small{color:var(--coral);font-size:10px;font-weight:700}.quick-note-confirm-intro h3{margin:2px 0 3px;font:700 18px Georgia,Songti SC,serif}.quick-note-confirm-intro p{color:var(--muted);margin:0;font-size:10px}.quick-note-confirm-intro>button{color:var(--blue);white-space:nowrap;background:0 0;border:0;align-self:start;padding:4px 0;font-size:10px}.quick-note-confirm blockquote{color:#606878;background:#fff7f5;border-left:3px solid #ebb2a8;border-radius:0 8px 8px 0;margin:0;padding:11px 13px;font-size:11px}.quick-note-edit-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;overflow:visible}.quick-note-card-head{align-items:center;gap:8px;margin-bottom:13px;display:flex}.quick-note-card-head>span{color:#c45f52;background:#fbe5df;border-radius:50%;place-items:center;width:24px;height:24px;font-size:10px;font-weight:700;display:grid}.quick-note-card-head b{font-size:13px}.quick-note-card-head button{color:var(--muted);background:0 0;border:0;margin-left:auto;font-size:18px}.quick-note-edit-grid{grid-template-columns:1fr 1fr;gap:11px;display:grid}.quick-note-edit-grid .full{grid-column:1/-1}.quick-note-edit-grid label{color:#677082;gap:6px;font-size:11px;display:grid}.quick-note-edit-grid .form-field{gap:6px;font-size:11px}.quick-note-edit-grid .custom-select{font-size:11px}.quick-note-edit-grid .custom-select summary{min-height:41px;padding:9px 10px}.quick-note-edit-grid .custom-select-options{z-index:20}.quick-note-follow{color:#697384;align-items:center;gap:7px;margin-top:12px;font-size:11px;display:flex}.quick-note-follow input{accent-color:var(--coral)}.quick-note-review-summary{grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:15px;display:grid}.quick-note-review-summary button{border:1px solid var(--line);text-align:left;background:#fafaf7;border-radius:10px;padding:11px}.quick-note-review-summary button:hover,.quick-note-review-summary button.active{color:#b95f53;background:#fff1ed;border-color:#e8aaa1}.quick-note-review-summary small{color:var(--muted);font-size:9px;display:block}.quick-note-review-summary strong{margin-top:3px;font:700 21px Georgia,serif;display:block}.quick-note-filters{grid-template-columns:1fr 1fr;gap:9px;display:grid}.quick-note-filters label,.quick-note-filters .form-field{color:#737c8a;gap:5px;font-size:10px;display:grid}.quick-note-date-range{color:#737c8a;grid-column:1/-1;gap:5px;font-size:10px;display:grid}.quick-note-filters input{padding:10px;font-size:11px}.quick-note-filters .date-range-panel input{min-height:38px;padding:7px 9px}.quick-note-filters .custom-select{font-size:11px}.quick-note-filters .custom-select summary{min-height:40px;padding:8px 10px}.quick-note-status-filter{color:#737c8a;grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;font-size:10px;display:flex}.quick-note-status-filter>div{background:#f3f3ef;border-radius:9px;gap:4px;padding:3px;display:flex}.quick-note-status-filter button{color:#707989;background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:10px}.quick-note-status-filter button.active{color:#b95f53;background:#fff;box-shadow:0 2px 7px #26324712}.quick-note-export{justify-content:flex-end;align-items:center;gap:7px;margin:14px 0 6px;display:flex}.quick-note-export>span{color:var(--muted);margin-right:auto;font-size:10px}.quick-note-export button{border:1px solid var(--line);color:#647184;background:#fff;border-radius:7px;padding:7px 9px;font-size:10px}.quick-note-timeline{padding-left:9px;position:relative}.quick-note-timeline:before{content:"";background:#e4e6e3;width:1px;position:absolute;top:11px;bottom:11px;left:74px}.quick-note-timeline>article{grid-template-columns:55px 10px minmax(0,1fr);gap:10px;padding:12px 0;display:grid;position:relative}.quick-note-timeline time{color:var(--muted);text-align:right;font-size:9px}.quick-note-timeline-dot{z-index:1;background:#9eb5c2;border:2px solid #fff;border-radius:50%;width:9px;height:9px;margin-top:3px;box-shadow:0 0 0 1px #cdd6da}.quick-note-timeline-dot.positive{background:#e1ad4d;box-shadow:0 0 0 1px #e1ad4d}.quick-note-timeline-dot.negative{background:#dc7062;box-shadow:0 0 0 1px #dc7062}.quick-note-timeline>article>div{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;padding:11px 12px}.quick-note-timeline-head{align-items:center;gap:6px;display:flex}.quick-note-timeline-head b{font-size:12px}.quick-note-timeline-head span,.quick-note-timeline-head i{color:#618296;background:#edf3f5;border-radius:10px;padding:2px 6px;font-size:8px;font-style:normal}.quick-note-timeline-head i{color:#bc5f53;background:#fbe5df;margin-left:auto}.quick-note-timeline-head i.resolved{color:#4f8061;background:#e9f3ed}.quick-note-timeline h3{margin:7px 0 3px;font-size:12px}.quick-note-timeline p{color:#606a79;white-space:pre-wrap;margin:0;font-size:11px;line-height:1.6}.quick-note-timeline>article>div>small{color:var(--muted);margin-top:7px;font-size:9px;display:block}.quick-note-follow-up-meta{color:#687181;background:#f7f8f5;border-radius:8px;margin-top:10px;padding:9px 10px;font-size:9px}.quick-note-follow-up-meta b{color:#4f5968;margin-right:6px}.quick-note-follow-up-meta p{margin-top:5px;font-size:10px}.quick-note-follow-up-actions{justify-content:flex-end;margin-top:9px;display:flex}.quick-note-follow-up-actions button{color:#b85d51;background:#fff7f4;border:1px solid #e5b0a8;border-radius:7px;padding:6px 9px;font-size:9px;font-weight:700}.quick-note-empty{color:var(--muted);text-align:center;justify-items:center;gap:5px;padding:45px 10px;font-size:11px;display:grid}.quick-note-empty>span{color:#a8bdc8;font-size:28px}.quick-note-empty p{margin:0}.quick-note-print{display:none}.teaching-page-header{margin-bottom:20px!important}.teaching-toolbar{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:minmax(210px,1fr) minmax(250px,1.2fr) auto;align-items:end;gap:16px;margin-bottom:18px;padding:18px 20px;display:grid}.teaching-class-switch,.teaching-subject-switch,.assignment-choice{color:#687181;gap:7px;min-width:0;font-size:12px;font-weight:700;display:grid}.teaching-class-switch .custom-select,.teaching-subject-switch .custom-select,.assignment-choice .custom-select{width:100%}.teaching-toolbar-summary{border-left:1px solid var(--line);text-align:right;min-width:108px;padding-left:18px}.teaching-toolbar-summary b{font:700 25px Georgia,serif}.teaching-toolbar-summary span{color:#596477;margin-left:5px;font-size:12px}.teaching-toolbar-summary small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.template-library,.assignment-board,.completion-board,.learning-warning-board,.learning-database,.exam-analysis-grid>article,.score-entry{border:1px solid var(--line);background:#fff;border-radius:16px;margin-bottom:20px;padding:24px}.teaching-section-title{justify-content:space-between;align-items:end;gap:14px;margin-bottom:17px;display:flex}.teaching-section-title small{color:var(--coral);letter-spacing:1.5px;font-size:10px;font-weight:700}.teaching-section-title h2{margin:3px 0 0;font:700 22px Georgia,Songti SC,serif}.teaching-section-title>span{color:var(--muted);font-size:11px}.template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.template-grid>button{text-align:left;background:#fafaf7;border:1px solid #ecece8;border-radius:11px;gap:6px;min-width:0;padding:16px;transition:border-color .15s,transform .15s;display:grid}.template-grid>button:hover{border-color:#e8aaa1;transform:translateY(-1px)}.template-grid>button>span{color:#ba5d51;background:#fbe5df;border-radius:10px;justify-self:start;padding:3px 7px;font-size:10px}.template-grid>button b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.template-grid>button p{color:#667080;min-height:40px;margin:0;font-size:13px;line-height:1.55;overflow:hidden}.template-grid>button small{color:var(--muted);font-size:11px}.assignment-list{gap:10px;display:grid}.assignment-list>article{border:1px solid #ecece8;border-radius:11px;grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:13px;padding:16px;display:grid}.assignment-type{color:#c76558;background:#fbe5df;border-radius:11px;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.assignment-type.reading,.assignment-type.preview{color:#5d879e;background:#e6f0f4}.assignment-type.writing,.assignment-type.recitation{color:#a77a2e;background:#f8eccf}.assignment-main{min-width:0}.assignment-main>div{flex-wrap:wrap;gap:6px;display:flex}.assignment-main>div span,.assignment-main>div i{color:#687181;background:#f5f5f1;border-radius:10px;padding:2px 7px;font-size:10px;font-style:normal}.assignment-main h3{margin:7px 0 3px;font-size:15px}.assignment-main p{color:#687181;white-space:pre-wrap;margin:0;font-size:13px;line-height:1.65}.assignment-main footer{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:9px;font-size:11px;display:flex}.assignment-actions{gap:5px;display:flex}.assignment-actions button,.exam-toolbar-actions button{color:#657081;background:0 0;border:0;border-radius:7px;min-height:34px;padding:7px 9px;font-size:11px}.assignment-actions button:hover,.exam-toolbar-actions button:hover{color:var(--ink);background:#f2f3ef}.assignment-actions button:first-child{color:#bd5e52;background:#fff3f0}.assignment-actions button:last-child,.exam-toolbar-actions .danger{color:#c45f53}.assignment-actions button:last-child:hover,.exam-toolbar-actions .danger:hover{color:#ae5045;background:#fff0ed}.completion-bulk button{border:1px solid var(--line);color:#657081;background:#fff;border-radius:17px;min-height:34px;padding:6px 10px;font-size:11px}.completion-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-entry-card{background:linear-gradient(135deg,#fff7f4,#fff 58%);border:1px solid #e8d9d5;border-radius:14px;grid-template-columns:minmax(240px,.85fr) minmax(380px,1.55fr);align-items:center;gap:18px;margin-bottom:18px;padding:20px 22px;display:grid}.quick-entry-copy{align-items:center;gap:12px;display:flex}.quick-entry-copy>span{color:#bb5f52;background:#f8dcd5;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-size:18px;display:grid}.quick-entry-copy small{color:var(--coral);letter-spacing:1.4px;font-size:10px;font-weight:700}.quick-entry-copy h2{margin:2px 0;font:700 19px Georgia,Songti SC,serif}.quick-entry-copy p{color:var(--muted);margin:0;font-size:12px}.quick-entry-form{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;display:grid}.quick-entry-form textarea{resize:vertical;border:1px solid var(--line);background:#fff;border-radius:9px;outline:0;min-height:68px;padding:10px 12px;font-size:13px;line-height:1.6}.quick-entry-form textarea:focus{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.quick-entry-form button{border:1px solid var(--line);background:#fff;border-radius:9px;align-self:stretch;padding:0 13px;font-size:12px}.quick-entry-form button.listening{color:#b64f43;background:#fff0ec;border-color:#df8073}.voice-secure-note{color:#9a7b4d;grid-column:2;font-size:10px}.completion-bulk{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 15px;padding-bottom:14px;display:flex}.completion-bulk label{align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.completion-bulk input,.completion-student input,.target-picker input,.assignment-options input{accent-color:var(--coral)}.completion-bulk>div{flex-wrap:wrap;gap:6px;display:flex}.completion-roster{gap:8px;display:grid}.completion-roster>article{border:1px solid #ecece8;border-radius:10px;grid-template-columns:minmax(170px,.8fr) minmax(390px,1.5fr) minmax(300px,1.3fr);align-items:center;gap:12px;padding:12px 13px;display:grid}.completion-roster>article.dirty{background:#fffbfa;border-color:#e8aaa1}.completion-student{align-items:center;gap:9px;min-width:0;display:flex}.completion-student .avatar{flex:none}.completion-student div{min-width:0;display:grid}.completion-student b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.completion-student small{color:var(--muted);font-size:11px}.completion-statuses,.completion-tags{flex-wrap:wrap;gap:5px;display:flex}.completion-statuses button,.completion-tags button{color:#727b8b;background:#fff;border:1px solid #e7e8e4;border-radius:14px;padding:5px 9px;font-size:11px}.completion-statuses button.active,.completion-tags button.active{color:#b75a4e;background:#fff0ed;border-color:#e4a69d}.completion-statuses button.active.excellent{color:#9a742a;background:#fff8e6;border-color:#e4c885}.completion-statuses button.active.incomplete{color:#aa4c41;background:#f9e6e3;border-color:#d9aaa4}.completion-statuses button.active.empty{color:#727b8b;background:#f5f5f2;border-color:#cfd3d6}.learning-filters{border:1px solid var(--line);background:#fff;border-radius:14px;gap:14px;margin-bottom:18px;padding:18px 20px;display:grid}.learning-filter-scope{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:14px;display:grid}.learning-filter-query{border-top:1px solid #ecece8;grid-template-columns:minmax(320px,1.4fr) minmax(170px,.8fr) minmax(170px,.8fr) auto;align-items:end;gap:14px;padding-top:14px;display:grid}.learning-filter-query>div{color:#687181;gap:7px;min-width:0;font-size:12px;font-weight:700;display:grid}.learning-filters input{border:1px solid var(--line);width:100%;min-width:0;min-height:46px;color:var(--ink);background:#fbfbf9;border-radius:8px;outline:0;padding:9px 11px}.learning-filters .date-range-panel input{min-height:38px;padding:7px 9px}.learning-filter-query>.primary-button{min-width:84px;height:46px}.learning-overview,.exam-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.learning-overview article,.exam-metrics article{border:1px solid var(--line);background:#fff;border-radius:12px;gap:3px;padding:18px 20px;display:grid}.learning-overview small,.exam-metrics small{color:var(--muted);font-size:12px}.learning-overview strong,.exam-metrics strong{font:700 25px Georgia,serif}.learning-overview span,.exam-metrics span{color:var(--muted);font-size:11px}.exam-metrics i{color:#b9bdc4;font-size:14px;font-style:normal}.warning-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.warning-list article{background:#fafaf7;border:1px solid #e4e6e3;border-radius:10px;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:13px;display:grid}.warning-list article>span{color:#538068;background:#eaf2ed;border-radius:10px;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.warning-list article.decline>span{color:#bd5c50;background:#f9e4df}.warning-list b{font-size:13px}.warning-list b small{color:var(--muted);font-size:11px}.warning-list p{color:#687181;margin:3px 0 0;font-size:12px}.learning-no-warning{color:var(--muted);text-align:center;background:#fafaf7;border-radius:10px;margin:0;padding:26px;font-size:12px}.learning-table-wrap,.score-table-wrap{overflow-x:auto}.learning-table,.score-table{border-collapse:collapse;width:100%}.learning-table{min-width:980px}.learning-table th,.score-table th{color:var(--muted);text-align:left;background:#fafaf8;padding:12px;font-size:11px;font-weight:600}.learning-table td,.score-table td{vertical-align:middle;border-top:1px solid #eff0ed;padding:14px 12px;font-size:12px}.learning-table td:first-child b,.learning-table td:first-child small,.learning-table td>small,.score-table td:first-child b,.score-table td:first-child small{display:block}.learning-table td strong{font-size:15px}.learning-table td small,.score-table td small{color:var(--muted);font-size:10px}.module-bars{gap:5px;min-width:250px;display:grid}.module-bars>div{grid-template-columns:55px 1fr 28px;align-items:center;gap:6px;display:grid}.module-bars span{color:#626c7c;font-size:10px}.module-bars i,.question-analysis i{background:#eceeea;border-radius:4px;height:5px;overflow:hidden}.module-bars i b,.question-analysis i b{border-radius:inherit;background:#7fa5b8;height:100%;display:block}.module-bars small{text-align:right}.mini-trend{align-items:end;gap:3px;width:120px;height:48px;display:flex;position:relative}.mini-trend>span{background:#e4a08f;border-radius:3px 3px 0 0;width:7px;max-height:34px}.mini-trend small{white-space:nowrap;position:absolute;bottom:-2px;left:0;transform:translateY(100%)}.exam-toolbar{grid-template-columns:minmax(170px,.7fr) minmax(140px,.55fr) minmax(240px,1fr) auto}.exam-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.exam-analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.exam-analysis-grid>article{min-width:0;margin:0}.exam-analysis-grid .teaching-section-title .custom-select{width:150px}.question-analysis{gap:11px;display:grid}.question-analysis>div{grid-template-columns:minmax(120px,.8fr) minmax(100px,1.2fr) 38px;align-items:center;gap:10px;display:grid}.question-analysis>div>span{display:grid}.question-analysis b{font-size:12px}.question-analysis small{color:var(--muted);font-size:10px}.question-analysis strong{text-align:right;font-size:12px}.question-analysis .weak i b{background:#e17d6f}.question-analysis .weak strong{color:#bc5a4e}.student-trend-chart{border-bottom:1px solid #e8e9e5;justify-content:center;align-items:stretch;gap:13px;height:190px;padding:18px 8px 0;display:flex}.student-trend-chart>div{grid-template-rows:minmax(0,1fr) 38px;justify-items:center;gap:7px;min-width:46px;display:grid}.student-trend-chart>div>span{background:linear-gradient(#eaa091,#f4c7bd);border-radius:7px 7px 2px 2px;align-self:end;width:30px;max-height:120px;position:relative}.student-trend-chart span b{text-align:center;width:100%;font-size:10px;position:absolute;top:-20px}.student-trend-chart small{max-width:64px;color:var(--muted);text-align:center;text-overflow:ellipsis;font-size:10px;overflow:hidden}.score-table{min-width:900px}.score-table th small{display:block}.score-table td input{border:1px solid var(--line);background:#fbfbf9;border-radius:7px;outline:0;width:76px;padding:8px;font-size:12px}.score-table td:last-child input{width:140px}.score-table tr.dirty td{background:#fff9f7}.exam-print{display:none}.modal.teaching-modal{width:min(760px,100%)}.modal.teaching-modal.exam-editor{width:min(860px,100%)}.teaching-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.teaching-form-grid>label,.teaching-form-grid>div{color:#667080;gap:7px;min-width:0;font-size:12px;display:grid}.teaching-form-grid input,.teaching-form-grid textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfbf9;border-radius:8px;outline:0;padding:10px 11px}.teaching-form-grid input:focus,.teaching-form-grid textarea:focus{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.teaching-form-grid .full{grid-column:1/-1}.target-picker,.question-editor{border:1px solid var(--line);border-radius:10px;margin:0;padding:13px}.target-picker legend,.question-editor legend{color:#596477;padding:0 5px;font-size:11px;font-weight:700}.target-picker{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.target-picker.students{grid-template-columns:repeat(4,1fr);max-height:210px;overflow-y:auto}.target-picker label{color:#596477;background:#f7f7f3;border-radius:7px;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:8px;display:grid}.target-picker small{color:var(--muted);font-size:10px}.assignment-options{flex-wrap:wrap;gap:18px!important;display:flex!important}.assignment-options label{color:#606a79;align-items:center;gap:7px;display:flex}.question-editor legend{justify-content:space-between;align-items:center;width:100%;display:flex}.question-editor legend button{color:var(--coral);background:0 0;border:0;font-size:11px}.question-editor>div{grid-template-columns:minmax(150px,1fr) minmax(130px,.8fr) 90px 28px;align-items:center;gap:7px;margin-top:8px;display:grid}.question-editor>div label{position:relative}.question-editor>div label span{color:var(--muted);font-size:10px;position:absolute;top:10px;right:9px}.question-editor>div label input{padding-right:23px}.question-editor>div>button{color:#bd5f53;background:#f8e7e3;border:0;border-radius:50%;width:28px;height:28px}.course-image-trigger{align-self:flex-end;align-items:center;gap:7px;display:inline-flex}.course-image-trigger span{color:#ffe4df}.course-image-modal{width:min(1040px,100vw - 32px)}.course-image-modal .modal-title p{max-width:520px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:12px;overflow:hidden}.course-image-preview-layout{grid-template-columns:minmax(220px,300px) 1fr;gap:20px;min-height:390px;display:grid}.course-image-photo{border:1px solid var(--line);background:#f4f4f0;border-radius:14px;place-items:center;min-height:360px;display:grid;overflow:hidden}.course-image-photo img{object-fit:contain;width:100%;height:100%;max-height:520px}.course-image-result{min-width:0}.course-image-loading,.course-image-error{border:1px dashed var(--line);min-height:360px;color:var(--muted);text-align:center;border-radius:14px;place-content:center;justify-items:center;gap:10px;display:grid}.course-image-loading i{border:3px solid #f3d6d0;border-top-color:var(--coral);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite auth-spin}.course-image-loading b,.course-image-error b{color:var(--ink);font-size:15px}.course-image-loading small{font-size:12px}.course-image-error{color:#a95e53;background:#fff8f6;border-color:#f1c9c2}.course-image-error p{margin:0}.course-image-summary{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.course-image-summary b{font-size:16px}.course-image-summary span{color:var(--muted);font-size:12px}.course-image-days{grid-template-columns:repeat(5,minmax(112px,1fr));gap:8px;display:grid}.course-image-days article{border:1px solid var(--line);background:#fafaf7;border-radius:12px;min-width:0;padding:11px}.course-image-days h3{justify-content:space-between;align-items:center;margin:0 0 9px;font-size:13px;display:flex}.course-image-days h3 small{color:var(--muted);font-size:10px;font-weight:500}.course-image-days p{background:#fff;border-radius:8px;gap:3px;margin:0 0 7px;padding:8px;display:grid;box-shadow:0 2px 8px #29344808}.course-image-days p span,.course-image-days p small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.course-image-days p b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.course-image-days em{color:#adb2ba;text-align:center;padding:20px 0;font-size:11px;font-style:normal;display:block}.course-image-warnings{color:#8d6a34;background:#fff7e6;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:12px}.course-image-warnings summary{cursor:pointer;font-weight:700}.course-image-warnings p{margin:7px 0 0}@media (max-width:860px){.course-image-preview-layout{grid-template-columns:1fr}.course-image-photo{min-height:180px;max-height:260px}.course-image-days{grid-template-columns:repeat(2,minmax(0,1fr))}}.date-range-field{min-width:0;font-weight:500;position:relative}.date-range-field>summary{border:1px solid var(--line);min-height:46px;color:var(--ink);cursor:pointer;background:#fbfbf9;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;list-style:none;display:flex}.date-range-field>summary::-webkit-details-marker{display:none}.date-range-field>summary i{color:#8b93a1;font-size:12px;font-style:normal}.date-range-field[open]>summary{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.date-range-panel{z-index:60;background:#fff;border:1px solid #e1e3e0;border-radius:11px;grid-template-columns:1fr 1fr;gap:10px;width:100%;min-width:320px;padding:13px;display:grid;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 14px 34px #24304724}.date-range-panel label{color:#70798a;gap:5px;font-size:10px;font-weight:700;display:grid}.date-range-panel input{border:1px solid var(--line);width:100%;min-width:0;min-height:38px;color:var(--ink);background:#fbfbf9;border-radius:7px;outline:0;padding:7px 9px}.date-range-panel footer{grid-column:1/-1;justify-content:flex-end;gap:7px;padding-top:3px;display:flex}.date-range-panel footer button{color:#697384;background:#f3f3ef;border:0;border-radius:7px;padding:7px 10px;font-size:10px}.date-range-panel footer button:last-child{color:#b85d51;background:#fff0ec;font-weight:700}@media (max-width:760px){.date-range-panel{min-width:0}}:root{--ink:#293448;--muted:#858d9d;--cream:#f7f7f3;--line:#e7e8e4;--coral:#eb7c6d;--blue:#668fa8;--yellow:#e8b458}*{box-sizing:border-box}html,body{background:var(--cream);min-height:100%;color:var(--ink);margin:0;font:14px/1.55 Arial,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{color:inherit}button,select{cursor:pointer}.app-shell{min-height:100vh}.auth-shell{background:#fff;grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr);min-height:100vh;display:grid}.auth-intro{color:#fff;background:#2f3c52;flex-direction:column;justify-content:space-between;min-height:100vh;padding:48px clamp(42px,6vw,90px);display:flex;position:relative;overflow:hidden}.auth-intro:after{content:"";border:90px solid #ffffff0b;border-radius:50%;width:460px;height:460px;position:absolute;bottom:-150px;right:-170px}.auth-brand{align-items:center;gap:12px;font:700 24px Georgia,Songti SC,serif;display:flex}.auth-brand .brand-mark{display:inline-grid}.auth-intro>div{z-index:1;position:relative}.auth-intro>div small{color:#efaa9e;letter-spacing:2.5px;font-size:11px;font-weight:700}.auth-intro h1{letter-spacing:1px;margin:18px 0;font:400 clamp(34px,4vw,52px)/1.45 Georgia,Songti SC,serif}.auth-intro p{color:#cbd2dc;max-width:520px;margin:0;font-size:15px;line-height:1.9}.auth-intro blockquote{color:#d8bd98;margin:0;font:17px Georgia,Songti SC,serif}.auth-card{border:1px solid var(--line);background:#fff;border-radius:18px;place-self:center;gap:17px;width:min(430px,100% - 48px);padding:36px;display:grid;box-shadow:0 20px 60px #27304712}.auth-card>small{color:var(--coral);letter-spacing:2px;font-size:11px;font-weight:700}.auth-card h2{margin:-3px 0 -10px;font:700 27px Georgia,Songti SC,serif}.auth-card>p{color:var(--muted);margin:0 0 3px;font-size:13px}.auth-card label{color:#677082;gap:8px;font-size:13px;display:grid}.auth-card input{border:1px solid var(--line);background:#fbfbf9;border-radius:9px;outline:0;width:100%;padding:13px;font-size:14px}.auth-card input:focus{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.auth-error{color:#b8584d;background:#fdf0ed;border-radius:8px;padding:11px 12px;font-size:12px}.auth-notice{color:#55735e;background:#eef7f0;border-radius:8px;padding:11px 12px;font-size:12px;line-height:1.6}.auth-submit{width:100%;margin-top:2px;padding:13px 18px}.auth-submit:disabled{cursor:wait;opacity:.65}.auth-switch{color:var(--muted);justify-content:center;gap:5px;font-size:12px;display:flex}.auth-switch button{color:var(--coral);background:0 0;border:0;padding:0;font-weight:700}.auth-loading{width:100%;min-height:100vh;box-shadow:none;background:radial-gradient(circle at 50% 45%,#fff 0 150px,#f8f7f3 520px);border:0;border-radius:0;grid-column:1/-1;align-content:center;align-self:stretch;justify-items:center;gap:9px}.auth-loading-mark{place-items:center;width:76px;height:76px;margin-bottom:5px;animation:1.8s ease-in-out infinite auth-loading-breathe;display:grid;position:relative}.auth-loading-mark:before,.auth-loading-mark:after{content:"";border:1px solid #eb7c6d38;border-radius:24px;animation:1.8s ease-out infinite auth-loading-ring;position:absolute;inset:5px;transform:rotate(-3deg)}.auth-loading-mark:after{animation-delay:.45s;inset:-4px}.auth-loading .brand-mark{border-radius:14px;width:48px;height:48px;font-size:24px}.auth-loading h2{margin:0;font-size:25px}.auth-loading p{color:#596477;margin:0;font-size:14px;font-weight:600}.auth-loading>small{color:#9a9fa9;letter-spacing:0;font-size:11px;font-weight:400}.auth-loading-dots{align-items:center;gap:5px;height:12px;display:flex}.auth-loading-dots i{background:var(--coral);border-radius:50%;width:5px;height:5px;animation:1s ease-in-out infinite auth-loading-dot}.auth-loading-dots i:nth-child(2){animation-delay:.16s}.auth-loading-dots i:nth-child(3){animation-delay:.32s}@keyframes auth-loading-breathe{50%{transform:translateY(-3px)scale(1.03)}}@keyframes auth-loading-ring{0%{opacity:.7;transform:rotate(-3deg)scale(.74)}80%,to{opacity:0;transform:rotate(-3deg)scale(1.2)}}@keyframes auth-loading-dot{0%,60%,to{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.auth-loading-mark,.auth-loading-mark:before,.auth-loading-mark:after,.auth-loading-dots i{animation:none}}.hydrating .workspace{visibility:hidden}.hydration-mask{background:var(--cream);color:var(--muted);place-items:center;font-size:13px;display:grid;position:fixed;inset:0 0 0 208px}.sidebar{border-right:1px solid var(--line);z-index:20;background:#fff;flex-direction:column;width:208px;padding:24px 16px 20px;transition:width .18s,padding .18s;display:flex;position:fixed;inset:0 auto 0 0}.brand{text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:10px;padding:0 7px 28px;font:700 20px Georgia,Songti SC,serif;display:flex}.brand-mark{background:var(--coral);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;font-size:18px;display:grid;transform:rotate(-3deg);box-shadow:0 4px 10px #ef806f33}.sidebar-toggle{z-index:2;border:1px solid var(--line);color:#7e8796;background:#fff;border-radius:50%;place-items:center;width:27px;height:27px;font-size:19px;line-height:1;display:grid;position:absolute;top:70px;right:-13px;box-shadow:0 3px 10px #27304714}nav{scrollbar-width:thin;gap:6px;min-height:0;display:grid;overflow-y:auto}.nav-item{text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:11px 12px;font-size:14px;display:flex}.nav-item b{white-space:nowrap;font-weight:500}.nav-item span{text-align:center;place-items:center;width:18px;font-size:16px;display:grid}.nav-icon svg{width:18px;height:18px}.nav-item.active{color:#df6d5e;background:#fdf0ed;font-weight:700}.sidebar-note{background:#f8f8f4;border-radius:11px;gap:9px;margin-top:auto;padding:12px;font-size:12px;display:flex}.sidebar-note>span{color:var(--coral);font-size:18px}.sidebar-note div,.profile div{gap:3px;display:grid}.sidebar-note small,.profile small{color:var(--muted);font-size:12px}.sidebar-note .backup-actions{gap:10px;margin-top:7px;display:flex}.backup-actions button,.backup-actions label{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.backup-actions input{display:none}.profile{border-top:1px solid var(--line);align-items:center;gap:9px;margin-top:16px;padding:16px 3px 0;font-size:12px;display:flex}.profile>span{color:#b95f53;background:#f7d5cc;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.profile>button{color:var(--muted);background:0 0;border:0;margin-left:auto;padding:5px;font-size:11px}.workspace{width:calc(100% - 208px);max-width:none;margin-left:208px;padding:20px clamp(28px,3.5vw,56px) 64px;transition:margin-left .18s,width .18s}.inner-workspace{max-width:none}.workspace-topbar{justify-content:flex-end;align-items:center;gap:8px;height:38px;margin-bottom:10px;display:flex}.workspace-topbar button{color:#596273;min-height:38px;box-shadow:none;background:#f7f5f2;border:1px solid #0000;border-radius:19px;align-items:center;gap:8px;padding:8px 13px;font-size:12px;font-weight:700;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.workspace-topbar button span{color:#bc6a9c;background:linear-gradient(135deg,#f8ddd7,#eee6ff);border-radius:50%;place-items:center;width:21px;height:21px;display:grid}.workspace-topbar button:hover,.workspace-topbar button.active{color:var(--coral);background:#fff6f3;border-color:#efd9d4}.sidebar.collapsed{width:72px;padding-inline:10px}.sidebar.collapsed .brand{justify-content:center;padding-inline:0}.sidebar.collapsed .brand>span:last-child,.sidebar.collapsed .nav-item b,.sidebar.collapsed .sidebar-note>div,.sidebar.collapsed .profile>div,.sidebar.collapsed .profile>button{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding-inline:0}.sidebar.collapsed .nav-item span{width:24px;font-size:18px}.sidebar.collapsed .sidebar-note{justify-content:center;padding:10px}.sidebar.collapsed .sidebar-note>span{font-size:18px}.sidebar.collapsed .profile{justify-content:center;padding-inline:0}.app-shell.sidebar-collapsed .workspace{width:calc(100% - 72px);margin-left:72px}.app-shell.sidebar-collapsed .hydration-mask{left:72px}.app-shell.ai-open .workspace{width:calc(100% - 588px)}.app-shell.ai-open.sidebar-collapsed .workspace{width:calc(100% - 452px)}.app-shell.ai-history-open .workspace{width:calc(100% - 848px)}.app-shell.ai-history-open.sidebar-collapsed .workspace{width:calc(100% - 712px)}.workspace>header{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.workspace>header p{color:var(--muted);margin:0 0 7px;font-size:13px}.workspace>header h1{margin:0 0 7px;font:700 30px Georgia,Songti SC,serif}.workspace>header h1 span{font:20px Arial,sans-serif}.workspace>header small{color:var(--muted);font-size:13px}.page-header{border-bottom:1px solid var(--line);padding-bottom:23px}.page-header p{letter-spacing:2px;font-weight:700;color:var(--coral)!important;font-size:11px!important}.ghost-button,.data-toolbar button,.data-toolbar .file-button{border:1px solid var(--line);background:#fff;border-radius:9px;min-height:44px;padding:10px 18px;font-size:14px;box-shadow:0 3px 10px #27304708}.seating-export-button{justify-content:center;align-items:center;gap:8px;min-width:116px;display:inline-flex}.seating-export-button:disabled{cursor:wait;opacity:.72}.seating-export-button:disabled:before{content:"";border:2px solid #d7dadd;border-top-color:var(--coral);border-radius:50%;width:13px;height:13px;animation:.75s linear infinite seating-export-spin}@keyframes seating-export-spin{to{transform:rotate(360deg)}}.primary-button{border-radius:9px;min-height:44px;padding:10px 18px;font-size:14px;box-shadow:0 5px 14px #eb7c6d2e;background:var(--coral)!important;color:#fff!important;border:0!important}.primary-button,.ghost-button,.quiet-action{transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.primary-button:hover:not(:disabled){box-shadow:0 7px 18px #eb7c6d38;background:#e46f60!important}.ghost-button:hover:not(:disabled){color:var(--ink);background:#fafaf7;border-color:#dddcd7}.primary-button:disabled,.ghost-button:disabled,.quiet-action:disabled{cursor:not-allowed;opacity:.52;box-shadow:none}.danger-link{color:#ce6559!important;box-shadow:none!important;background:0 0!important;border-color:#f0d7d3!important}.quiet-action{color:#697384;cursor:pointer;border-radius:7px;min-height:34px;padding:6px 9px;font-size:12px;font-weight:700;box-shadow:none!important;background:0 0!important;border:0!important}:is(.quiet-action:hover,.quiet-action:focus-visible){color:var(--ink);outline:0;background:#f3f4f1!important}.quiet-action.danger{color:#c86a5e}:is(.quiet-action.danger:hover,.quiet-action.danger:focus-visible){color:#b35247;background:#fff1ee!important}.hero{color:#fff;background:#2f3c52;border-radius:16px;justify-content:space-between;min-height:245px;padding:38px 44px;display:flex;position:relative;overflow:hidden}.hero>div:first-child{z-index:1}.eyebrow{color:#d7b78c;letter-spacing:1.8px;border:1px solid #ffffff30;border-radius:20px;padding:6px 12px;font-size:11px;display:inline-block}.hero h2{letter-spacing:1px;margin:15px 0 13px;font:400 32px/1.4 Georgia,Songti SC,serif}.hero em{color:#f3a697;font-style:normal}.hero p{color:#cad0d9;margin:0;font-size:14px}.hero-art{width:42%;min-width:310px;position:relative}.hero-art:before{content:"";background:#566b7c55;border-radius:50%;width:330px;height:330px;position:absolute;top:-105px;right:-15px}.sun{color:#efbd71;font-size:45px;position:absolute;top:25px;right:72px}.book{color:#2f3c52;background:#f1ad9d;border:9px solid #e6eee7;border-radius:80px 80px 8px 8px;place-items:center;width:185px;height:130px;font-size:86px;display:grid;position:absolute;bottom:-52px;right:115px;transform:rotate(-4deg)}.plant{color:#91b1a2;font-size:120px;position:absolute;bottom:-38px;right:10px;transform:rotate(15deg)}.stats{grid-template-columns:repeat(3,1fr);gap:15px;margin:18px 0 32px;display:grid}.stats article{border:1px solid var(--line);background:#fff;border-radius:13px;align-items:center;gap:18px;padding:24px;display:flex}.stat-icon{border-radius:12px;flex:none;place-items:center;width:48px;height:48px;font-size:22px;display:grid}.coral{color:#db7161;background:#fbe5df}.blue{color:#5e889f;background:#e5eef3}.yellow{color:#bd8f3f;background:#f9edcf}.stats article div{grid-template-columns:auto auto;align-items:end;column-gap:11px;display:grid}.stats small{color:var(--muted);grid-column:1/-1;font-size:12px}.stats strong{margin-top:4px;font:700 30px Georgia,serif}.stats p{color:var(--muted);margin:0 0 2px;font-size:12px}.stats p b{color:var(--ink)}.quick-insights{grid-template-columns:repeat(3,1fr);gap:15px;margin:-14px 0 30px;display:grid}.quick-insights>article{border:1px solid var(--line);background:#fff;border-radius:13px;min-width:0;padding:18px 20px}.quick-insight-title{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;display:grid}.quick-insight-title>span{border-radius:11px;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.quick-insight-title>span.warning{color:#c86155;background:#fbe5df}.quick-insight-title>span.praise{color:#b38431;background:#f9edcf}.quick-insight-title>span.homework{color:#56859b;background:#e6f1f5}.quick-insight-title small{color:var(--muted);font-size:12px;display:block}.quick-insight-title strong{margin-top:2px;font-size:14px;display:block}.quick-insight-title button{color:var(--blue);background:0 0;border:0;font-size:12px}.quick-insights ul{gap:7px;margin:14px 0 0;padding:0;list-style:none;display:grid}.quick-insights li{grid-template-columns:76px minmax(0,1fr);gap:8px;font-size:12px;display:grid}.quick-insights li b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quick-insights li span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quick-insights article>p{color:var(--muted);margin:14px 0 0;font-size:12px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:14px;display:flex}.section-heading small{color:var(--coral);letter-spacing:1.8px;font-size:11px;font-weight:700}.section-heading h2{margin:5px 0 0;font:700 23px Georgia,Songti SC,serif}.section-heading button{color:#6d7483;background:0 0;border:0;font-size:12px}.class-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.class-card,.add-class{border:1px solid var(--line);text-align:left;background:#fff;border-radius:13px;min-height:210px;padding:24px}.class-index{float:right;border-radius:9px;place-items:center;width:40px;height:40px;font:700 14px Georgia,serif;display:grid}.class-card>small{color:var(--muted);letter-spacing:.8px;font-size:11px}.class-card h3{margin:14px 0 12px;font:700 19px Georgia,Songti SC,serif}.class-card p{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.class-card p span{color:var(--blue);font-size:17px}.class-card p i{background:#c7cbd0;border-radius:50%;width:3px;height:3px}.class-card button{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;width:100%;margin-top:26px;padding:15px 0 0;font-size:12px}.class-card button span{float:right}.add-class{color:var(--muted);border-style:dashed;align-content:center;place-items:center;gap:8px;display:grid}.add-class>span{width:37px;height:37px;color:var(--coral);background:#f5e5e0;border-radius:50%;place-items:center;font-size:20px;display:grid}.add-class b{color:var(--ink);font-size:13px}.add-class small{font-size:11px}.data-card,.seat-tools,.seat-board,.standalone{border:1px solid var(--line);background:#fff;border-radius:16px}.class-workspace-control{z-index:4;border:1px solid var(--line);background:#fff;border-radius:16px;margin-bottom:14px;position:relative;overflow:visible;box-shadow:0 7px 22px #27304708}.class-switch-row{border-bottom:1px solid var(--line);background:#fafaf8;border-radius:16px 16px 0 0;align-items:flex-end;gap:18px;padding:16px 22px 14px;display:flex}.class-switcher{gap:7px;width:min(340px,100%);display:grid}.class-switcher>span{color:var(--muted);letter-spacing:.05em;font-size:11px;font-weight:700}.class-switch-summary{min-height:46px;color:var(--muted);align-items:center;gap:8px;margin-left:auto;display:flex}.class-switch-summary>span{color:#bd6457;background:#fbe5df;border-radius:10px;padding:5px 9px;font-size:11px;font-weight:700}.class-switch-summary b{color:var(--ink);font:700 21px Georgia,serif}.class-switch-summary small{font-size:11px}.class-command-row{justify-content:space-between;align-items:center;gap:18px;padding:17px 22px;display:flex}.class-command-row h2{margin:0;font:700 22px Georgia,Songti SC,serif}.class-command-row p{color:var(--muted);margin:0 10px 0 0;font-size:12px;display:inline}.class-command-row small{color:var(--muted);font-size:11px}.class-command-row>div:last-child{flex:none;gap:8px;display:flex}.class-command-row button{font-size:12px}.class-content-panel{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #27304708}.class-content-tabs{background:#fafaf8;gap:4px;padding:0 22px;display:flex}.class-content-tabs button{color:#737c8b;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;min-height:48px;padding:0 16px;font-weight:700;display:flex}.class-content-tabs button[aria-selected=true]{border-bottom-color:var(--coral);color:var(--coral)}.class-content-tabs button:hover{color:var(--ink);background:#f3f3ef}.class-content-tabs svg{width:17px;height:17px}.class-content-tabs button>span{color:#858d9d;background:#f1f2ef;border-radius:9px;padding:2px 7px;font-size:10px}.class-content-body{border-top:1px solid var(--line)}.class-tab-card{border:0;border-radius:0}.class-seating-tab{background:#f8f8f5;gap:14px;padding:16px;display:grid}.class-tab-toolbar{justify-content:space-between;align-items:center;gap:16px;padding:5px 5px 2px;display:flex}.class-tab-toolbar h2{margin:0 0 3px;font:700 20px Georgia,Songti SC,serif}.class-tab-toolbar p{color:var(--muted);margin:0;font-size:12px}.class-seating-tab .layout-form{border-top:0;margin-top:0;padding-top:0}.data-card{min-width:0;overflow:hidden}.data-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:26px 28px;display:flex}.data-toolbar h2{margin:0 0 6px;font:700 23px Georgia,Songti SC,serif}.data-toolbar p{color:var(--muted);margin:0;font-size:13px}.data-toolbar>div:last-child{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.data-toolbar button,.data-toolbar .file-button{min-height:40px;padding:8px 14px;font-size:12px}.data-toolbar .file-button{cursor:pointer}.data-toolbar .file-button input{display:none}.student-toolbar .quiet-action{align-self:center;min-height:34px;padding-inline:9px}.search-row{justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.search-row label{border:1px solid var(--line);background:#fafaf8;border-radius:8px;align-items:center;width:min(400px,70%);padding:0 11px;display:flex}.search-row label span{color:var(--muted);font-size:17px}.search-row input{background:0 0;border:0;outline:0;width:100%;padding:10px;font-size:13px}.search-row>span{color:var(--muted);font-size:12px}.student-table-wrap{overflow-x:auto}.student-table{border-collapse:collapse;width:100%;min-width:920px}.student-table th{color:var(--muted);text-align:left;background:#fafaf8;padding:14px 18px;font-size:12px;font-weight:600}.student-table td{vertical-align:middle;border-top:1px solid #eff0ed;padding:17px 18px;font-size:13px}.student-table td:first-child{white-space:nowrap}.student-table td:first-child .avatar{vertical-align:middle;margin-right:9px}.student-number{white-space:nowrap}.student-number span,.student-table td small{color:var(--muted);font-size:12px}.student-table .personality{text-overflow:ellipsis;white-space:nowrap;color:#687082;max-width:260px;overflow:hidden}.student-table td:last-child{white-space:nowrap}.student-table td button{color:var(--blue);background:0 0;border:0;padding:6px;font-size:12px}.user-page-header{align-items:flex-end!important}.security-status{color:#66806d;background:#f3f8f4;border:1px solid #dce8df;border-radius:20px;align-items:center;gap:8px;padding:9px 13px;font-size:12px;font-weight:700;display:inline-flex}.security-status b{background:#dcece0;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.user-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:-4px 0 16px;display:grid}.user-summary article{border:1px solid var(--line);background:linear-gradient(135deg,#fff,#fbfbf8);border-radius:14px;align-items:center;gap:13px;min-height:82px;padding:15px 18px;display:flex;box-shadow:0 5px 18px #27304708}.summary-icon{border-radius:11px;flex:none;place-items:center;width:40px;height:40px;font-size:17px;display:grid}.user-summary article>div{gap:1px;display:grid}.user-summary small{color:var(--muted);font-size:12px}.user-summary strong{font:700 25px Georgia,serif}.user-card{border-radius:16px;width:100%;max-width:none;overflow:visible;box-shadow:0 8px 24px #27304709;container-type:inline-size}.user-toolbar{padding:19px 24px}.user-toolbar-title{align-items:center;gap:12px!important;display:flex!important}.user-toolbar-title>span{color:#cf6a5d;background:#fbe5df;border-radius:11px;place-items:center;width:40px;height:40px;font-size:18px;display:grid}.user-toolbar-title h2{margin-bottom:3px;font-size:21px}.role-legend{color:var(--muted);align-items:center;font-size:12px;gap:16px!important;display:flex!important}.role-legend span{align-items:center;gap:6px;display:inline-flex}.role-legend i{border-radius:50%;width:8px;height:8px}.role-legend i.admin{background:#e78676}.role-legend i.teacher{background:#77a0b6}.role-legend i.active{background:#75a984}.role-legend i.pending{background:#d3a64f}.role-legend i.disabled{background:#a8adb5}.user-list{gap:10px;padding:12px 24px 24px;display:grid}.user-account{background:#fff;border:1px solid #e8e9e5;border-radius:14px;grid-template-columns:230px minmax(330px,.95fr) minmax(470px,1.25fr);align-items:center;gap:16px;min-height:108px;padding:17px 20px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;position:relative;overflow:visible}.user-account:before{content:"";background:#75a984;border-radius:0 4px 4px 0;width:3px;position:absolute;inset:14px auto 14px 0}.user-account.pending:before{background:#d3a64f}.user-account.disabled:before{background:#a8adb5}.user-account:hover,.user-account:focus-within{z-index:2;border-color:#dfded8;transform:translateY(-1px);box-shadow:0 8px 20px #2730470d}.user-account-profile{align-items:center;gap:12px;min-width:0;display:flex}.user-avatar{color:#527e97;background:#e5eef3;width:42px;height:42px;font-size:12px}.user-identity{gap:3px;display:grid}.user-identity>div{align-items:center;gap:8px;display:flex}.user-identity b{font-size:14px}.user-identity>small{font-size:11px}.current-user{background:#f2f3ef;border-radius:10px;padding:3px 7px;font-weight:500}.role-badge{border-radius:12px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.role-badge.admin{color:#bd6457;background:#fbe5df}.role-badge.teacher{color:#527e97;background:#e5eef3}.user-status-badge{border-radius:12px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.user-status-badge.active{color:#5a8063;background:#e8f3eb}.user-status-badge.pending{color:#9a762d;background:#fbf1d9}.user-status-badge.disabled{color:#7b828c;background:#eef0f2}.user-account-meta{background:#f8f8f5;border-radius:11px;grid-template-columns:repeat(3,minmax(0,1fr));padding:11px 12px;display:grid}.user-account-meta>div{align-content:center;justify-items:start;gap:6px;min-width:0;padding:0 12px;display:grid}.user-account-meta>div+div{border-left:1px solid #e4e5e1}.user-account-meta small,.user-account-control>span{color:var(--muted);font-size:10px;font-weight:600}.user-account-meta time{color:#586273;white-space:nowrap;font-size:12px}.user-account-control{gap:5px;min-width:0;display:grid}.user-account-control-row{align-items:center;gap:8px;min-width:0;display:flex}.user-role-switch{background:#f1f2ef;border-radius:9px;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;min-width:0;height:38px;padding:3px;display:grid}.user-role-switch button{color:#7a8290;background:0 0;border:0;border-radius:7px;min-width:0;font-size:11px;font-weight:700}.user-role-switch button.active{background:#fff;box-shadow:0 2px 7px #27304712}.user-role-switch button.active.admin{color:#bd6457}.user-role-switch button.active.teacher{color:#527e97}.user-role-switch button:disabled{cursor:default}.user-role-switch button.active:disabled{opacity:1}.user-account-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.user-account-actions button{white-space:nowrap;border-radius:7px;min-height:34px;font-size:11px;font-weight:700;color:#b96b5f!important;background:0 0!important;border:0!important;padding:6px 9px!important}.user-account-actions button:hover:not(:disabled){background:#fff1ee!important}.user-account-actions button.approve{color:#5d8066!important;background:0 0!important}.user-account-actions button.approve:hover:not(:disabled){background:#edf6ef!important}.user-account-actions button:disabled{opacity:.45;cursor:default}.user-account-control>small{color:var(--muted);text-align:right;font-size:10px;line-height:1.45}.user-teacher-binding{gap:6px;display:grid}.user-teacher-binding>small{color:var(--muted);font-size:10px;font-weight:600}.user-teacher-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.user-teacher-tags>button{color:#4e768b;background:#eaf2f5;border:0;border-radius:15px;align-items:center;gap:7px;min-height:30px;padding:5px 8px 5px 11px;font-size:11px;font-weight:700;display:inline-flex}.user-teacher-tags>button:hover:not(:disabled){background:#deebf0}.user-teacher-tags>button i{color:#7794a3;background:#ffffffb8;border-radius:50%;place-items:center;width:16px;height:16px;font-style:normal;display:grid}.user-teacher-tags>em{color:#989da6;font-size:11px;font-style:normal}.teacher-binding-picker{position:relative}.teacher-binding-picker summary{color:#687181;cursor:pointer;background:#f2f3ef;border-radius:15px;align-items:center;min-height:30px;padding:5px 10px;font-size:11px;font-weight:700;list-style:none;display:inline-flex}.teacher-binding-picker summary::-webkit-details-marker{display:none}.teacher-binding-picker[open] summary{color:#b85d51;background:#fff0ed}.teacher-binding-picker>div{z-index:8;background:#fff;border:1px solid #e2e3df;border-radius:10px;gap:3px;width:240px;max-height:230px;padding:6px;display:grid;position:absolute;top:calc(100% + 7px);right:0;overflow-y:auto;box-shadow:0 12px 28px #2730471c}.teacher-binding-picker>div button{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:7px;gap:2px;padding:8px 9px;display:grid}.teacher-binding-picker>div button:hover{background:#f5f5f1}.teacher-binding-picker>div b{font-size:11px}.teacher-binding-picker>div small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}@container (width<=1120px){.user-account{grid-template-columns:230px minmax(0,1fr);gap:14px}.user-account-control{grid-column:1/-1}}@container (width<=680px){.user-list{padding:10px 12px 14px}.user-account{grid-template-columns:1fr;gap:14px;padding:16px}.user-account-meta{grid-template-columns:1fr;gap:10px}.user-account-meta>div{grid-template-columns:90px 1fr;align-items:center;padding:0}.user-account-meta>div+div{border-left:0}.user-account-control-row{flex-direction:column;align-items:stretch}.user-account-actions{justify-content:stretch}.user-account-actions button{flex:1}.user-account-control>small{text-align:left}.teacher-binding-picker>div{left:0;right:auto}}.course-controls{z-index:3;border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:220px minmax(240px,1fr) auto;align-items:stretch;gap:22px;margin-bottom:20px;padding:21px 22px;display:grid;position:relative;box-shadow:0 8px 24px #27304708}.course-control-block,.course-entity-select{grid-template-rows:auto 46px;gap:8px;min-width:0;display:grid}.course-control-label{color:#7a8290;letter-spacing:.04em;font-size:12px;font-weight:600}.perspective-switch{background:#f1f2ee;border-radius:10px;gap:4px;height:46px;padding:4px;display:flex}.perspective-switch button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:7px;flex:1;padding:0 13px;font-size:13px}.perspective-switch button.active{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 2px 9px #27304715}.course-entity-select .custom-select summary{height:46px}.course-count-form{grid-template-rows:auto 46px;grid-template-columns:auto auto;gap:8px 10px;display:grid}.course-count-form>.course-control-label{grid-column:1/-1}.course-count-fields{gap:8px;height:46px;display:flex}.course-count-form label{border:1px solid var(--line);color:#677082;white-space:nowrap;background:#fbfbf9;border-radius:9px;align-items:center;gap:5px;height:46px;padding:0 6px 0 12px;font-size:13px;display:flex}.course-count-form label span{font-weight:600}.course-count-form label small{color:var(--muted)}.course-count-form input{width:38px;color:var(--ink);text-align:center;background:#fff;border:0;border-radius:6px;outline:0;padding:7px 3px;font-weight:700}.course-count-form label:focus-within{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.course-count-form button{background:var(--coral);color:#fff;white-space:nowrap;border:0;border-radius:9px;height:46px;padding:0 16px;font-size:13px;font-weight:700;box-shadow:0 5px 14px #eb7c6d24}.course-count-form button:hover{background:#e46f60}.course-board{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 10px 30px #2730470b}.course-board-title{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fff 65%,#fff8f5);justify-content:space-between;align-items:center;gap:20px;padding:22px 26px;display:flex}.course-board-identity{align-items:center;gap:13px;display:flex}.course-board-identity>span{width:43px;height:43px;color:var(--coral);background:#fbe5df;border-radius:12px;place-items:center;font-size:18px;display:grid}.course-board-title small{color:var(--muted);font-size:12px}.course-board-title h2{margin:3px 0 0;font:700 22px Georgia,Songti SC,serif}.course-board-actions{align-items:center;gap:16px;display:flex}.course-board-meta{justify-items:end;gap:5px;display:grid}.course-board-meta p{color:#677082;margin:0;font-size:13px}.course-board-meta p b{color:var(--ink);margin-right:3px;font-size:18px}.course-board-meta>small span{color:var(--coral);font-size:15px}.course-export-button{white-space:nowrap;min-width:112px;height:40px}.course-export-button:disabled{cursor:wait;opacity:.68}.course-table-wrap{background:#fafaf7;padding:14px 20px 24px;overflow-x:auto}.course-table{table-layout:fixed;border-spacing:8px 7px;width:100%;min-width:820px}.course-table th{color:var(--muted);text-align:center;font-size:12px;font-weight:600}.course-table thead th{color:#667083;height:34px;font-size:12px}.course-table th:first-child{width:76px}.course-table td{height:84px}.course-period-row th{text-align:left;padding:12px 0 2px}.course-period+.course-period .course-period-row th{border-top:1px solid #e7e8e3;padding-top:24px}.course-period-row div{align-items:center;gap:9px;display:flex}.course-period-row span{color:#bd6457;background:#fbe5df;border-radius:12px;padding:5px 10px;font-size:12px;font-weight:700}.course-period.afternoon .course-period-row span{color:#527e97;background:#e5eef3}.course-period-row small{color:var(--muted);font-size:12px;font-weight:500}.course-cell{color:#a1a7af;background:#fff;border:1px solid #e4e6e2;border-radius:12px;align-content:center;place-items:center;gap:5px;width:100%;height:100%;min-height:80px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;position:relative;overflow:hidden}.course-cell:hover{z-index:1;border-color:#e8b8af;transform:translateY(-1px);box-shadow:0 7px 18px #27304712}.course-cell>span{color:#aab0b7;background:#f1f2ef;border-radius:50%;place-items:center;width:25px;height:25px;font-size:16px;display:grid}.course-cell small{color:var(--muted);font-size:12px}.course-cell.filled{color:var(--ink);background:linear-gradient(145deg,#fff8f5,#fff);border-color:#f0d8d2}.course-cell.filled:before{content:"";background:var(--coral);border-radius:0 4px 4px 0;width:3px;position:absolute;top:15px;bottom:15px;left:0}.course-cell.filled:hover{border-color:#e69c91;box-shadow:0 8px 20px #d76b5b18}.course-cell.filled b{font-size:14px}.course-slot-summary{background:#f8f8f4;border-radius:10px;grid-template-columns:auto 1fr;gap:4px 12px;margin-bottom:18px;padding:15px;display:grid}.course-slot-summary>span{color:#bd6457;background:#fbe5df;border-radius:8px;grid-row:1/3;align-self:center;padding:7px 9px;font-size:12px;font-weight:700}.course-slot-summary b{font-size:14px}.course-slot-summary small{color:var(--muted);font-size:12px}.course-empty-options{color:#916c35;background:#fff7e6;border-radius:9px;margin:0;padding:14px;font-size:12px;line-height:1.7}.clear-course-button{margin-right:auto}.system-page-header{align-items:flex-end!important}.connection-status{color:#a47831;background:#fff9eb;border:1px solid #ecd9b4;border-radius:20px;align-items:center;gap:8px;padding:9px 13px;font-size:12px;font-weight:700;display:inline-flex}.connection-status b{background:#f8e9c7;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.connection-status.secure{color:#66806d;background:#f3f8f4;border-color:#dce8df}.connection-status.secure b{background:#dcece0}.settings-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:18px;display:grid}.settings-card,.settings-help{border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:0 8px 24px #27304709}.settings-card{gap:22px;padding:28px;display:grid}.settings-card-title{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding-bottom:20px;display:flex}.settings-card-title>span{width:44px;height:44px;color:var(--coral);background:#fbe5df;border-radius:12px;place-items:center;font-size:20px;display:grid}.settings-card-title h2{margin:0 0 3px;font:700 22px Georgia,Songti SC,serif}.settings-card-title p{color:var(--muted);margin:0;font-size:12px}.settings-card label{color:#677082;grid-template-columns:auto 1fr;gap:8px;font-size:13px;display:grid}.settings-card label>input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfbf9;border-radius:9px;outline:0;grid-column:1/-1;padding:13px 14px;font-size:14px}.settings-card label>input:focus{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.settings-card label>input:disabled{cursor:not-allowed;color:var(--muted);background:#f3f3f0}.key-state{color:var(--muted);background:#f2f3ef;border-radius:10px;justify-self:end;padding:3px 8px;font-size:11px}.key-state.configured{color:#63806a;background:#e6f0e8}.https-notice{color:#9a7134;background:#fff7e6;border-radius:9px;align-items:center;gap:9px;margin:-4px 0 0;padding:12px 13px;font-size:12px;display:flex}.https-notice>span{background:#f6e4bb;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-weight:700;display:grid}.https-notice.secure{color:#607c68;background:#f1f7f2}.https-notice.secure>span{background:#dcece0}.settings-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding-top:20px;display:flex}.settings-actions small{color:var(--muted);font-size:11px}.settings-actions button:disabled{cursor:wait;opacity:.65}.settings-action-buttons{gap:9px;display:flex}.settings-help{padding:25px}.settings-help>span{color:#5e889f;background:#e5eef3;border-radius:11px;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.settings-help h3{margin:16px 0 8px;font:700 18px Georgia,Songti SC,serif}.settings-help p{color:var(--muted);margin:0;font-size:12px;line-height:1.7}.settings-help ul{border-top:1px solid var(--line);color:#677082;margin:18px 0 0;padding:16px 0 0 18px;font-size:12px;line-height:2}.ai-assistant-module{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.ai-assistant-module>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:76px;padding:15px 19px;display:flex}.ai-assistant-module>header>div:last-child{align-items:center;gap:5px;display:flex}.ai-assistant-module>header button{color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;padding:7px 8px;font-size:12px;display:inline-flex}.ai-assistant-module>header button:disabled{opacity:.35;cursor:default}.ai-header-actions svg{color:#4d70e8;width:17px;height:17px}.ai-header-actions button[aria-label=历史对话],.ai-header-actions button[aria-label=新建对话]{background:#fff;border:1px solid #e1e6f5;border-radius:8px;width:32px;height:32px;padding:0}.ai-header-actions button[aria-pressed=true]{color:#4267d8;background:#eef3ff;border-radius:8px}.ai-assistant-title{align-items:center;gap:11px;display:flex}.ai-assistant-title>span{color:#b7679b;background:linear-gradient(135deg,#f9ded8,#eee6ff);border-radius:12px;place-items:center;width:38px;height:38px;font-size:17px;display:grid}.ai-assistant-title>span svg{width:20px;height:20px}.ai-assistant-title h2{margin:0 0 3px;font:700 18px Georgia,Songti SC,serif}.ai-assistant-title small{max-width:210px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.ai-assistant-main{grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.ai-hub-drawer.history-open .ai-assistant-main{grid-template-columns:230px minmax(0,1fr)}.ai-assistant-chat{grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.ai-conversation-sidebar{border-right:1px solid var(--line);background:#f7f7f4;min-height:0;overflow-y:auto}.ai-conversation-sidebar-title{z-index:2;background:#f7f7f4;justify-content:space-between;align-items:center;gap:8px;padding:16px 13px 12px;display:flex;position:sticky;top:0}.ai-conversation-sidebar-title b{font-size:12px;display:block}.ai-conversation-sidebar-title small{color:var(--muted);font-size:9px;display:block}.ai-conversation-sidebar-title button{color:#687284;background:#fff;border:1px solid #e3e3de;border-radius:8px;padding:6px 8px;font-size:10px}.ai-conversation-list{gap:5px;padding:0 8px 14px;display:grid}.ai-conversation-list article{border:1px solid #0000;border-radius:10px;position:relative;overflow:hidden}.ai-conversation-list article:hover,.ai-conversation-list article.active{background:#fff;border-color:#ead8d4}.ai-conversation-select{text-align:left;background:0 0;border:0;gap:3px;width:100%;padding:10px 48px 10px 10px;display:grid}.ai-conversation-select b,.ai-conversation-select small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-conversation-select b{font-size:11px}.ai-conversation-select small{color:var(--muted);font-size:9px}.ai-conversation-select time{color:#a0a6ae;font-size:9px}.ai-conversation-actions{opacity:0;display:flex;position:absolute;top:8px;right:6px}.ai-conversation-list article:hover .ai-conversation-actions,.ai-conversation-list article.active .ai-conversation-actions{opacity:1}.ai-conversation-actions button{color:#969da7;background:0 0;border:0;width:21px;height:21px;padding:0;font-size:12px}.ai-conversation-actions button:hover{color:var(--coral)}.ai-conversation-list article>form{grid-template-columns:minmax(0,1fr) 26px 26px;gap:3px;padding:7px;display:grid}.ai-conversation-list article>form input{border:1px solid #e6b5ad;border-radius:7px;outline:0;min-width:0;padding:6px 7px;font-size:10px}.ai-conversation-list article>form button{color:#788291;background:#fff;border:0;border-radius:6px}.ai-conversation-empty{color:var(--muted);text-align:center;margin:0;padding:28px 12px;font-size:10px}.ai-assistant-content{background:linear-gradient(#fff 0,#fbfbf8 100%);padding:20px 18px;overflow-y:auto}.ai-assistant-welcome{gap:22px;display:grid}.ai-welcome-intro{align-items:center;gap:12px;padding:4px 2px 0;display:flex}.ai-welcome-intro>span{color:#b7679b;background:linear-gradient(135deg,#f9ded8,#eee6ff);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:18px;display:grid}.ai-welcome-intro h3{margin:0 0 4px;font:700 18px Georgia,Songti SC,serif}.ai-welcome-intro p{color:var(--muted);margin:0;font-size:11px}.ai-assistant-block{gap:9px;display:grid}.ai-assistant-block>small{color:#727b8a;font-size:11px;font-weight:700}.ai-capability-cards{gap:9px;display:grid}.ai-capability-cards>button{color:#414b5c;text-align:left;background:#f7f7f5;border:1px solid #e8e8e3;border-radius:11px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;width:100%;padding:13px 14px;display:grid}.ai-capability-cards>button.featured{background:linear-gradient(100deg,#f7efff,#fff7f3);border-color:#eadff3}.ai-capability-cards>button:hover{border-color:#e6bfb8;transform:translateY(-1px);box-shadow:0 6px 16px #2730470a}.ai-capability-cards>button>span{color:#a25e94;background:#fff;border-radius:9px;place-items:center;width:34px;height:34px;font-size:15px;display:grid}.ai-capability-cards b{margin-bottom:2px;font-size:12px;display:block}.ai-capability-cards small{color:var(--muted);font-size:10px}.ai-capability-cards i,.ai-question-list i{color:#a9aeb6;font-style:normal}.ai-question-list{background:#fff;border:1px solid #e7e8e4;border-radius:11px;overflow:hidden}.ai-question-list button{color:#4e5766;text-align:left;background:0 0;border:0;border-bottom:1px solid #eff0ed;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:11px 13px;font-size:11px;display:flex}.ai-question-list button:last-child{border-bottom:0}.ai-question-list button:hover{color:#ba695d;background:#fff8f6}.ai-message{align-items:flex-start;gap:9px;margin-bottom:18px;display:flex}.ai-message>span{color:#8b6aaa;background:#eee7fa;border-radius:9px;flex:none;place-items:center;width:29px;height:29px;font-size:12px;font-weight:700;display:grid}.ai-message.user{flex-direction:row-reverse}.ai-message.user>span{color:#c26558;background:#f8ddd7}.ai-message>div{width:calc(100% - 42px);max-width:560px}.ai-message.user>div{text-align:right}.ai-message>div>small{color:var(--muted);margin:0 3px 5px;font-size:10px;display:block}.ai-message p{color:#384253;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid #e8e8e3;border-radius:4px 13px 13px;margin:0;padding:11px 13px;font-size:12px;line-height:1.7}.ai-message.user p{background:#fff5f2;border-color:#f0d3cd;border-radius:13px 4px 13px 13px}.ai-generated-files{gap:7px;margin-top:8px;display:grid}.ai-generated-files>button{color:#495367;text-align:left;background:linear-gradient(110deg,#faf8ff,#fff);border:1px solid #e4e2eb;border-radius:11px;grid-template-columns:38px minmax(0,1fr) 22px;align-items:center;gap:10px;width:100%;padding:9px 10px;display:grid}.ai-generated-files>button:hover{border-color:#cfc2df;transform:translateY(-1px);box-shadow:0 5px 14px #4c35670c}.ai-generated-files>button>span{color:#805f9f;background:#eee7fa;border-radius:9px;place-items:center;width:38px;height:38px;font-size:9px;font-weight:800;display:grid}.ai-generated-files>button>div{gap:2px;min-width:0;display:grid}.ai-generated-files b,.ai-generated-files small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-generated-files b{font-size:11px}.ai-generated-files small{color:var(--muted);font-size:9px}.ai-generated-files i{color:#8368a0;background:#f3f0f7;border-radius:7px;place-items:center;width:22px;height:22px;font-style:normal;display:grid}.ai-action-card{background:#fff;border:1px solid #eadfd7;border-radius:13px;margin:-4px 0 18px 38px;overflow:hidden;box-shadow:0 8px 22px #2730470a}.ai-action-card>header{background:#fff8f4;align-items:center;gap:9px;padding:11px 12px;display:flex}.ai-action-card>header>span{color:#be6659;background:#f8dcd5;border-radius:8px;place-items:center;width:26px;height:26px;font-size:12px;display:grid}.ai-action-card>header>div{flex:1;min-width:0;display:grid}.ai-action-card>header small{color:#a08178;font-size:9px}.ai-action-card>header b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ai-action-card>header em{color:#a16f65;font-size:9px;font-style:normal}.ai-action-card>p{color:#455064;margin:0;padding:11px 12px 5px;font-size:11px;font-weight:700}.ai-action-card>ul{color:#717a89;gap:4px;margin:0;padding:4px 12px 11px 28px;font-size:10px;line-height:1.5;display:grid}.ai-action-card>footer{border-top:1px solid #efefeb;justify-content:flex-end;gap:7px;padding:9px 12px;display:flex}.ai-action-card>footer button{color:#687181;background:#fff;border:1px solid #e2e3df;border-radius:8px;padding:7px 11px;font-size:10px;font-weight:700}.ai-action-card>footer button.confirm{border-color:var(--coral);background:var(--coral);color:#fff}.ai-action-card.executed{border-color:#d9e8dd}.ai-action-card.executed>header{background:#f2f8f3}.ai-action-card.rejected,.ai-action-card.expired{opacity:.72}.ai-message p.ai-typing:after{content:"";vertical-align:-2px;background:currentColor;width:1px;height:1em;margin-left:3px;animation:.8s step-end infinite ai-caret;display:inline-block}.ai-thinking{gap:4px;display:flex;padding-block:14px!important}.ai-thinking i{background:#b9a5c9;border-radius:50%;width:5px;height:5px;animation:1s infinite alternate ai-dot}.ai-thinking i:nth-child(2){animation-delay:.2s}.ai-thinking i:nth-child(3){animation-delay:.4s}.ai-run-details{background:#fafaf8;border:1px solid #e7e7e2;border-radius:11px;margin:0 0 9px}.ai-run-summary{justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;display:flex}.ai-run-summary>button:first-child{color:#687283;background:0 0;border:0;align-items:center;gap:7px;min-width:0;padding:2px;font-size:11px;display:flex}.ai-run-summary>button:first-child>i{background:#8eb49a;border-radius:50%;width:7px;height:7px}.ai-run-details.running .ai-run-summary>button:first-child>i{background:var(--coral);animation:.8s infinite alternate ai-dot;box-shadow:0 0 0 4px #f7ddd8}.ai-run-details.failed .ai-run-summary>button:first-child>i{background:#d9776a}.ai-run-details.cancelled .ai-run-summary>button:first-child>i{background:#a5a9b0}.ai-run-summary>button:first-child>small{color:#939aa4;margin:0;font-size:9px;font-weight:400;display:inline}.ai-run-summary>button:first-child>span{color:#a2a7ae}.ai-run-stop{color:#c06558;background:#fff7f5;border:1px solid #efc8c1;border-radius:7px;padding:5px 8px;font-size:10px}.ai-run-stop:disabled{opacity:.5}.ai-run-details ol{border-top:1px solid #ecece8;gap:7px;margin:0;padding:2px 12px 11px 26px;list-style:none;display:grid}.ai-run-details li{color:#77808e;font-size:10px;line-height:1.45;position:relative}.ai-run-details li>i{background:#c6c9ce;border-radius:50%;width:5px;height:5px;position:absolute;top:5px;left:-13px}.ai-run-details li>span>small{color:#a0a6ae;margin:2px 0 0;font-size:9px;display:block}.ai-run-details li.running>i{background:#df9f55}.ai-run-details li.done>i{background:#79a986}.ai-run-details li.error{color:#b9685d}.ai-run-details li.error>i{background:#d9776a}.ai-composer{border-top:1px solid var(--line);background:#fff;padding:14px 16px 17px}.ai-composer>p{color:#916c35;background:#fff7e6;border-radius:8px;align-items:center;gap:7px;margin:0 0 10px;padding:9px 10px;font-size:11px;display:flex}.ai-composer>p span{background:#f5e3bb;border-radius:50%;place-items:center;width:18px;height:18px;font-weight:700;display:grid}.ai-attachment-list{scrollbar-width:thin;gap:6px;margin:0 0 9px;display:flex;overflow-x:auto}.ai-attachment-list>span{color:#596273;background:#fafaf8;border:1px solid #e4e5e1;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px;min-width:0;max-width:100%;padding:7px 8px;font-size:10px;display:grid}.ai-attachment-list i{color:#5e8b68;background:#e8f3ea;border-radius:5px;place-items:center;width:16px;height:16px;font-style:normal;display:grid}.ai-attachment-list b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-attachment-list small{color:#a0a5ad;white-space:nowrap}.ai-attachment-list button{color:#9a9fa8;background:0 0;border:0;border-radius:5px;width:19px;height:19px;font-size:15px;line-height:1}.ai-attachment-list button:hover{color:#c5675b;background:#f8e7e3}.ai-composer-box{background:#fbfbf9;border:1px solid #dedfdc;border-radius:13px;transition:border-color .15s,box-shadow .15s}.ai-composer-box:focus-within{border-color:#e5a69c;box-shadow:0 0 0 3px #fbeae7}.ai-composer textarea{resize:none;width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:11px 12px 4px;font:12px/1.6 Arial,sans-serif}.ai-composer textarea:disabled{color:var(--muted)}.ai-composer-actions{justify-content:flex-end;gap:7px;padding:5px 8px 8px;display:flex}.ai-composer-actions input{display:none}.ai-composer-actions button{border:0;border-radius:9px;place-items:center;width:29px;height:29px;font-size:17px;display:grid}.ai-attach-button{color:#5f6979;background:#eceeea}.ai-send-button{background:var(--coral);color:#fff}.ai-composer-actions button:disabled{color:#aeb2b8;cursor:default;background:#e5e5e1}.ai-upload-spinner{border:2px solid #9aa1ac55;border-top-color:#697384;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite ai-spin}.ai-composer>small{color:#a0a5ad;text-align:center;margin-top:8px;font-size:10px;display:block}@keyframes ai-spin{to{transform:rotate(360deg)}}.avatar{border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:inline-grid}.avatar.girl{color:#bd6457;background:#f9ded8}.avatar.boy{color:#527e97;background:#dceaf0}.empty-state{text-align:center;align-content:center;justify-items:center;gap:8px;min-height:360px;padding:30px;display:grid}.empty-state>span{color:#9eb4c0;font-size:35px}.empty-state h3{margin:4px 0 0;font:700 20px Georgia,Songti SC,serif}.empty-state p{color:var(--muted);margin:0 0 10px;font-size:13px}.seating-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:20px;display:grid}.seating-layout.tools-collapsed{grid-template-columns:minmax(0,1fr);gap:0}.seat-tools{padding:22px;position:sticky;top:20px}.seat-tools[hidden]{display:none}.field-label,.form-grid label,.form-field{color:#677082;gap:8px;font-size:13px;display:grid}.form-grid input,.form-grid textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfbf9;border-radius:8px;outline:0;padding:12px;font-size:14px}.form-grid input:focus,.form-grid textarea:focus{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.custom-select{width:100%;color:var(--ink);font-size:14px;position:relative}.custom-select summary{border:1px solid var(--line);cursor:pointer;background:#fbfbf9;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:46px;padding:11px 12px;list-style:none;display:flex}.custom-select summary::-webkit-details-marker{display:none}.custom-select summary:focus{border-color:#e59c92;outline:0;box-shadow:0 0 0 3px #fbeae7}.custom-select summary i{color:var(--muted);font-size:17px;font-style:normal;transition:transform .15s}.custom-select[open] summary i{transform:rotate(180deg)}.custom-select-options{z-index:10;border:1px solid var(--line);background:#fff;border-radius:10px;max-height:220px;padding:5px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 32px #1722361f}.custom-select-options button{text-align:left;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;width:100%;padding:10px;font-size:13px;display:flex}.custom-select-options button:hover,.custom-select-options button[aria-selected=true]{color:#c76255;background:#fdf0ed}.custom-select.disabled summary{cursor:not-allowed;color:var(--muted);background:#f5f5f2}.custom-select.disabled .custom-select-options,.custom-select input[type=hidden]{display:none}.layout-form{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:17px 0;padding:17px 0}.layout-form h3,.student-pool h3{margin:0 0 5px;font-size:15px}.layout-form p,.student-pool>p{color:var(--muted);margin:0 0 13px;font-size:12px;line-height:1.6}.layout-inputs{grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px;display:grid}.layout-inputs label{color:var(--muted);gap:5px;font-size:12px;display:grid}.layout-inputs input{border:1px solid var(--line);text-align:center;border-radius:7px;width:100%;min-width:0;padding:9px 5px;font-size:13px}.layout-form .primary-button{width:100%}.student-pool>div:first-child{justify-content:space-between;align-items:center;display:flex}.student-pool>div:first-child span{color:var(--muted);font-size:12px}.pool-list{gap:8px;max-height:420px;padding-right:2px;display:grid;overflow-y:auto}.pool-list button{border:1px solid var(--line);text-align:left;background:#fff;border-radius:9px;grid-template-rows:1fr 1fr;grid-template-columns:34px 1fr auto;align-items:center;column-gap:9px;padding:10px;display:grid}.pool-list button.selected{border-color:var(--coral);background:#fdf2ef;box-shadow:0 0 0 2px #f8dcd6}.pool-list .avatar{grid-row:1/3}.pool-list b{font-size:13px}.pool-list small{color:var(--muted);font-size:12px}.pool-list i{color:#b3b6bd;grid-area:1/3/3;font-style:normal}.pool-empty{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:9px;padding:25px 8px;font-size:12px}.seat-board{min-width:0;padding:26px;overflow-x:auto}.board-top{justify-content:space-between;align-items:end;display:flex}.board-heading{align-items:center;gap:11px;display:flex}.seat-tools-toggle{border:1px solid var(--line);color:#7f8793;background:#fafaf7;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:20px;line-height:1;display:grid;box-shadow:0 2px 7px #1722360d}:is(.seat-tools-toggle:hover,.seat-tools-toggle:focus-visible){color:#bd6559;background:#fff4f1;border-color:#e4b2aa;outline:0}.board-top small{color:var(--muted);font-size:12px}.board-top h2{margin:4px 0 0;font:700 22px Georgia,Songti SC,serif}.board-top>span{color:var(--muted);font-size:12px}.blackboard{color:#dfe8e9;text-align:center;letter-spacing:7px;background:#41576a;border-radius:5px;width:44%;min-width:250px;margin:30px auto 38px;padding:13px;font:16px Georgia,Songti SC,serif;box-shadow:0 5px #ccd2cd}.seat-groups{align-items:start;gap:26px;width:max-content;min-width:100%;padding:8px;display:grid}.seat-group{min-width:max-content}.seat-group-header{text-align:center;min-height:22px;margin:0 0 10px}.seat-group-header h3{color:var(--muted);white-space:nowrap;margin:0;font-size:12px;font-weight:600}.seat-grid{gap:9px;display:grid}.seat-slot{min-width:0;min-height:78px;position:relative}.seat{color:#b1b6be;background:#fbfbf9;border:1px dashed #d9dcd8;border-radius:9px;align-content:center;place-items:center;gap:3px;width:100%;min-width:0;height:100%;min-height:78px;display:grid;position:relative}.seat>span:not(.avatar){font-size:14px}.seat>small{font-size:11px}.seat.occupied{color:var(--ink);text-align:left;column-gap:7px;place-items:initial;background:#fff;border:1px solid #dfe2df;grid-template-rows:1fr 1fr;grid-template-columns:27px minmax(0,1fr);align-items:center;padding:9px 8px}.seat.occupied .avatar{grid-row:1/3;width:27px;height:27px}.seat.occupied b{white-space:nowrap;align-self:end;min-width:0;font-size:13px}.seat.occupied small{color:var(--muted);align-self:start}.seat.occupied i{color:#c0c3c7;padding:4px;font-size:16px;font-style:normal;position:absolute;top:0;right:4px}.seat.occupied.group-leader{background:#fffdf7;border-color:#d7a54e;box-shadow:0 0 0 2px #f4e4be}.seat.occupied.group-deputy{background:#f8fcfe;border-color:#8cb4c8;box-shadow:0 0 0 2px #dcecf3}.seat-role-badge{border-radius:8px;padding:2px 5px;font-size:10px;font-style:normal;font-weight:700;position:absolute;top:5px;right:5px}.seat-role-badge.leader{color:#9a671c;background:#f7e7bd}.seat-role-badge.deputy{color:#527e97;background:#deedf4}.seat-role-actions{z-index:2;opacity:0;pointer-events:none;background:#fffffff5;border:1px solid #e5e5e0;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:3px;transition:opacity .15s,transform .15s;display:grid;position:absolute;bottom:5px;left:5px;right:5px;transform:translateY(4px);box-shadow:0 5px 14px #2632471a}.seat-role-actions button{color:#7b6845;white-space:nowrap;background:#f7f5ef;border:0;border-radius:6px;min-width:0;padding:4px 2px;font-size:10px;font-weight:700}.seat-role-actions button:last-child{color:#557f95;background:#edf5f8}.seat-slot:hover .seat-role-actions,.seat-slot:focus-within .seat-role-actions{opacity:1;pointer-events:auto;transform:translateY(0)}:is(.seat-role-actions button:hover,.seat-role-actions button:focus-visible){filter:brightness(.96);outline:0}.seat-remove{z-index:2;color:#b66a60;opacity:.78;background:#fff7f5;border:1px solid #efd9d5;border-radius:50%;place-items:center;width:22px;height:22px;font-size:15px;line-height:1;display:grid;position:absolute;top:-7px;right:-7px;box-shadow:0 2px 7px #6c463f1c}:is(.seat-remove:hover,.seat-remove:focus-visible){color:#a84f45;opacity:1;background:#f6dcd7;outline:0}.seat.ready{background:#fff6f3;border-color:#e9a298}.seat-tip{color:var(--muted);text-align:center;margin:22px 0 0;font-size:12px}.standalone{margin-top:10px}.operation-drawer-backdrop{z-index:54;cursor:default;background:#27304728;border:0;position:fixed;inset:0}.operation-drawer{z-index:55;background:#fff;grid-template-rows:auto minmax(0,1fr) auto;width:min(420px,100vw - 72px);animation:.2s ease-out operation-drawer-in;display:grid;position:fixed;inset:0 0 0 auto;box-shadow:-18px 0 48px #17223624}.operation-drawer>header{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fff,#fbfaf7);justify-content:space-between;align-items:center;gap:16px;min-height:78px;padding:17px 20px;display:flex}.operation-drawer>header>div{align-items:center;gap:12px;display:flex}.operation-drawer>header>div>span{color:#cb685b;background:#fbe5df;border-radius:11px;place-items:center;width:39px;height:39px;font-size:19px;display:grid}.operation-drawer>header small{color:var(--coral);letter-spacing:1.5px;font-size:9px;font-weight:700;display:block}.operation-drawer>header h2{margin:2px 0 0;font:700 20px Georgia,Songti SC,serif}.operation-drawer>header>button{width:34px;height:34px;color:var(--muted);background:#f5f5f1;border:0;border-radius:50%;font-size:21px;line-height:1}.operation-drawer-body{overflow-y:auto}.operation-drawer>footer{border-top:1px solid var(--line);background:#fff;padding:14px 20px}.operation-drawer>footer button{border:1px solid var(--line);color:#667184;background:#fbfbf8;border-radius:9px;width:100%;padding:10px;font-size:12px;font-weight:700}.operation-drawer>footer button:disabled{cursor:wait;opacity:.6}.operation-list{padding:7px 20px}.operation-list article{grid-template-columns:38px minmax(0,1fr);gap:12px;padding:15px 0;display:grid;position:relative}.operation-list article:not(:last-child){border-bottom:1px solid #eff0ed}.operation-dot{z-index:1;width:34px;height:34px;color:var(--blue);background:#f8faf9;border:1px solid #e4e7e4;border-radius:50%;place-items:center;font-size:14px;display:grid;position:relative}.operation-dot svg{width:16px;height:16px}.operation-list article>div{min-width:0}.operation-meta{justify-content:space-between;align-items:center;gap:14px;display:flex}.operation-meta b{font-size:13px}.operation-meta time{color:var(--muted);white-space:nowrap;font-size:11px}.operation-list p{color:#525c6e;margin:5px 0 0;font-size:13px;line-height:1.6}.operation-list article>div>small{color:#708697;background:#f3f6f7;border-radius:12px;margin-top:8px;padding:3px 7px;font-size:10px;display:inline-block}.operation-empty{color:var(--muted);text-align:center;padding:34px 22px;font-size:12px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#23304588;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:min(620px,100%);max-height:calc(100vh - 40px);padding:30px;overflow-y:auto;box-shadow:0 25px 70px #17223645}.modal-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;margin-bottom:19px;padding-bottom:17px;display:flex}.modal-title small{color:var(--coral);letter-spacing:2px;font-size:11px;font-weight:700}.modal-title h2{margin:5px 0 0;font:700 24px Georgia,Songti SC,serif}.modal-title>button{background:#f5f5f1;border:0;border-radius:50%;width:34px;height:34px;font-size:20px}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.form-grid .full{grid-column:1/-1}.form-grid textarea{resize:vertical;line-height:1.6}.subject-field{border:0;grid-column:1/-1;margin:0;padding:0}.subject-field legend{color:#677082;margin-bottom:8px;font-size:13px}.subject-options{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.subject-options label{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fbfbf9;border-radius:8px;align-items:center;gap:8px;padding:9px 10px;display:flex}.subject-options input{width:auto;accent-color:var(--coral);margin:0;padding:0}.subject-field>p{color:var(--muted);margin:0;font-size:13px}.teacher-assignment-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.teacher-assignment-grid .form-field>span{color:var(--ink);font-weight:600}.required-mark{color:#d84f45}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;margin-top:22px;padding-top:17px;display:flex}.modal-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 20px;font-size:13px}.follow-up-backdrop{z-index:61}.follow-up-modal{width:min(500px,100%)}.follow-up-source{background:#f7f7f3;border-radius:11px;gap:6px;padding:14px;display:grid}.follow-up-source span{color:var(--coral);font-size:11px;font-weight:700}.follow-up-source b{font-size:14px}.follow-up-source p{color:#687181;margin:0;font-size:12px;line-height:1.6}.follow-up-result{color:#5d6675;gap:7px;margin-top:18px;font-size:12px;font-weight:700;display:grid}.follow-up-result textarea{resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fbfbf9;border-radius:10px;outline:0;padding:12px;font-weight:400;line-height:1.65}.follow-up-result textarea:focus{border-color:#e59c92;box-shadow:0 0 0 3px #fbeae7}.follow-up-result small{color:var(--muted);text-align:right;font-size:9px;font-weight:400}.toast{z-index:70;background:#fff;border:1px solid #f1d5cf;border-radius:12px;grid-template-columns:28px 1fr 24px;align-items:center;gap:10px;width:min(390px,100vw - 40px);padding:14px 15px;animation:.18s ease-out toast-in;display:grid;position:fixed;top:24px;right:28px;box-shadow:0 14px 38px #17223624}.toast>span{color:#cf6658;background:#fbe5df;border-radius:50%;place-items:center;width:28px;height:28px;font-weight:700;display:grid}.toast p{margin:0;font-size:13px}.toast button{color:var(--muted);background:0 0;border:0;font-size:20px}.confirm-backdrop{z-index:60}.confirm-card{text-align:center;background:#fff;border-radius:16px;width:min(420px,100%);padding:30px;box-shadow:0 25px 70px #17223645}.confirm-icon{color:#cf6658;background:#fbe5df;border-radius:50%;place-items:center;width:44px;height:44px;margin:0 auto 14px;font:700 22px Georgia,serif;display:grid}.confirm-card h2{margin:0 0 9px;font:700 22px Georgia,Songti SC,serif}.confirm-card>p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.danger-button{color:#fff!important;background:#d9685b!important;border-color:#0000!important}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}@keyframes ai-dot{to{opacity:.3;transform:translateY(-2px)}}@keyframes ai-caret{50%{opacity:0}}@keyframes operation-drawer-in{0%{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.ai-message p.ai-typing:after{animation:none}}@media print{.print-quick-notes body *{visibility:hidden!important}.print-quick-notes .quick-note-print,.print-quick-notes .quick-note-print *{visibility:visible!important}.print-quick-notes .quick-note-print{color:#222;background:#fff;padding:24px;display:block;position:fixed;inset:0}.print-quick-notes .quick-note-print>h1{margin:0 0 4px;font-size:22px}.print-quick-notes .quick-note-print>p{color:#666;margin:0 0 20px;font-size:11px}.print-quick-notes .quick-note-print article{break-inside:avoid;border-top:1px solid #ddd;padding:12px 0}.print-quick-notes .quick-note-print time{color:#666;font-size:10px}.print-quick-notes .quick-note-print h2{margin:4px 0;font-size:14px}.print-quick-notes .quick-note-print h3{margin:4px 0;font-size:12px}.print-quick-notes .quick-note-print article p{margin:0;font-size:11px}.print-exam-report body *{visibility:hidden!important}.print-exam-report .exam-print,.print-exam-report .exam-print *{visibility:visible!important}.print-exam-report .exam-print{color:#222;background:#fff;padding:28px;display:block;position:fixed;inset:0}.print-exam-report .exam-print h1{margin:0 0 5px;font-size:23px}.print-exam-report .exam-print>p{color:#666;margin:0 0 18px}.print-exam-report .exam-print>div{flex-wrap:wrap;gap:10px;display:flex}.print-exam-report .exam-print span{border:1px solid #ddd;border-radius:6px;padding:8px 11px}.print-exam-report .exam-print h2{margin-top:24px;font-size:16px}.print-exam-report .exam-print h2~p{border-top:1px solid #eee;margin:0;padding:7px 0}}@media (max-width:1100px){.ai-hub-drawer{width:min(520px,100% - 208px)}.ai-hub-drawer.history-open{width:min(740px,100% - 208px)}.app-shell.sidebar-collapsed .ai-hub-drawer{width:min(520px,100% - 72px)}.app-shell.sidebar-collapsed .ai-hub-drawer.history-open{width:min(740px,100% - 72px)}.class-grid{grid-template-columns:repeat(2,1fr)}.stats,.quick-insights{grid-template-columns:1fr}.seating-layout{grid-template-columns:230px minmax(0,1fr)}.settings-layout{grid-template-columns:1fr}.course-controls{grid-template-columns:auto minmax(220px,1fr)}.course-count-form{grid-column:1/-1;grid-template-columns:1fr auto}.course-count-fields{justify-content:flex-end}.template-grid,.learning-filter-query{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-date-range{grid-column:1/-1}.learning-filter-query>.primary-button{width:100%}.completion-roster>article{grid-template-columns:minmax(150px,.7fr) minmax(330px,1.4fr)}.completion-tags{grid-column:1/-1;padding-left:30px}.exam-toolbar{grid-template-columns:1fr 1fr}.exam-toolbar-actions{grid-column:1/-1}}@media (max-width:760px){.auth-shell{background:#fff;grid-template-columns:1fr;align-content:start}.auth-intro{min-height:auto;padding:26px}.auth-intro>div,.auth-intro blockquote{display:none}.auth-card{width:calc(100% - 36px);margin:28px 0;padding:28px 24px}.hydration-mask{left:72px}.sidebar{width:72px;padding:24px 10px}.sidebar-toggle,.brand span:last-child,.nav-item b{display:none}.brand{padding:0 8px 35px}.nav-item{justify-content:center;padding-inline:0}.nav-item span{font-size:20px}.sidebar-note,.profile div,.profile>button{display:none}.workspace{width:calc(100% - 72px);margin-left:72px;padding:24px 18px 50px}.ai-hub-drawer,.ai-hub-drawer.history-open{width:calc(100% - 72px);left:72px}.ai-hub-drawer.history-open .ai-assistant-main{grid-template-columns:1fr}.ai-hub-drawer.history-open .ai-assistant-chat,.hero-art{display:none}.hero{padding:28px}.class-grid{grid-template-columns:1fr}.class-switch-row,.class-command-row,.class-tab-toolbar{flex-direction:column;align-items:stretch}.class-switcher{width:100%}.class-switch-summary{margin-left:0}.class-command-row>div:last-child{justify-content:flex-start}.class-content-tabs{padding-inline:12px}.seating-layout{display:block}.seat-tools{margin-bottom:14px;position:static}.seat-board{width:100%}.workspace>header .ghost-button{display:none}.security-status,.connection-status,.role-legend{display:none!important}.user-summary{grid-template-columns:1fr}.data-toolbar{align-items:flex-start;gap:12px}.data-toolbar>div:last-child{flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.subject-options{grid-template-columns:repeat(2,1fr)}.teacher-assignment-grid{grid-template-columns:1fr}.settings-card{padding:22px}.settings-actions{flex-direction:column;align-items:stretch}.settings-action-buttons>button{flex:1}.course-controls{grid-template-columns:1fr;align-items:stretch}.course-count-form{grid-column:auto;grid-template-rows:auto auto 46px;grid-template-columns:1fr}.course-count-fields{justify-content:stretch}.course-count-form label{flex:1}.course-board-title{flex-direction:column;align-items:flex-start;gap:8px}.course-board-meta{justify-items:start}.operation-drawer{width:calc(100% - 72px)}.operation-list{padding-inline:16px}.ai-hub-drawer{width:calc(100% - 72px)}.quick-note-fab,.quick-note-fab.active{bottom:16px;right:16px}.teaching-page-header{gap:12px;align-items:flex-start!important}.teaching-page-header .primary-button{flex:none;padding-inline:12px}.teaching-toolbar,.completion-toolbar,.exam-toolbar{grid-template-columns:1fr;align-items:stretch}.teaching-toolbar-summary{border-top:1px solid var(--line);text-align:left;border-left:0;padding:10px 0 0}.template-grid,.learning-overview,.exam-metrics,.warning-list,.exam-analysis-grid{grid-template-columns:1fr}.assignment-list>article{grid-template-columns:34px minmax(0,1fr)}.assignment-type{width:34px;height:34px}.assignment-actions{grid-column:2;justify-content:flex-end}.quick-entry-card{grid-template-columns:1fr}.quick-entry-form{grid-template-columns:1fr 1fr}.quick-entry-form textarea{grid-column:1/-1}.voice-secure-note{grid-column:1}.completion-bulk{flex-direction:column;align-items:flex-start}.completion-roster>article{grid-template-columns:1fr}.completion-tags{grid-column:auto;padding-left:0}.learning-filter-scope,.learning-filter-query{grid-template-columns:1fr}.learning-date-range{grid-column:auto}.learning-date-range>div{grid-template-columns:1fr}.learning-date-range i{text-align:center}.exam-toolbar-actions{grid-column:auto;justify-content:flex-start}.teaching-form-grid{grid-template-columns:1fr}.teaching-form-grid .full{grid-column:auto}.target-picker,.target-picker.students{grid-template-columns:repeat(2,1fr)}.question-editor>div{border-top:1px solid var(--line);grid-template-columns:1fr;padding:10px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
