/* Local UI 2.0 foundation; module layouts continue to be reviewed individually. */
:root{--v2-bg:#f3f5f7;--v2-surface:var(--theme-surface,#fff);--v2-text:#242a34;--v2-muted:#66717f;--v2-line:#e1e5eb;--v2-accent:#ad2434;--v2-soft:#fbf0f2;--v2-radius:12px;--v2-space:24px;--red:var(--v2-accent);--deep:#8a1c2b;--ink:var(--v2-text);--muted:var(--v2-muted);--paper:var(--v2-bg);--line:var(--v2-line);--shadow:0 6px 24px #1d283b06;--ui-accent:var(--v2-accent);--ui-text:var(--v2-text);--ui-muted:var(--v2-muted);--ui-border:var(--v2-line);--ui-radius:8px}
body.workspace{background:var(--v2-bg);color:var(--v2-text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.65}
body.workspace h1,body.workspace h2,body.workspace h3{font-family:inherit;letter-spacing:0;color:var(--v2-text)}
body.workspace .portal-topbar{height:72px;padding:0 28px;background:var(--theme-surface,#fff);border-bottom:1px solid var(--v2-line);box-shadow:none}
body.workspace .portal-topbar img{width:244px;max-height:44px}
body.workspace .demo{background:var(--night-surface,#f6f7f9);border:0;color:var(--v2-muted);font-size:12px}
body.workspace .shell{width:100%;max-width:1680px;margin:0 auto 48px;padding:24px;grid-template-columns:216px minmax(0,1fr);gap:28px}
body.workspace .shell>nav,#admin-dashboard>nav{background:transparent;border:0;box-shadow:none;padding:8px 0;top:96px;max-height:calc(100dvh - 116px);overflow:auto}
body.workspace .shell>nav>b,#admin-dashboard>nav>b{padding:0 16px 18px;color:var(--night-ink,#596473);font-size:12px;letter-spacing:.08em}
body.workspace .shell>nav>button,#admin-dashboard>nav>button{min-height:44px;margin:3px 0;padding:11px 16px!important;color:var(--night-ink,#525e6d);font-size:14px;border-radius:8px!important;font-weight:500}
body.workspace .shell>nav>button.active,#admin-dashboard>nav>button.active{background:var(--theme-surface,#fff)!important;color:var(--v2-accent)!important;box-shadow:inset 3px 0 var(--v2-accent),0 2px 10px #1d283b05;font-weight:700}
body.workspace .view>h1{font-size:28px;margin:4px 0 24px;font-weight:700}
body.workspace .panel{border:1px solid var(--v2-line);border-radius:var(--v2-radius);box-shadow:none;padding:24px}
body.workspace .panel h2{font-size:18px;margin-bottom:18px;font-weight:650}
body.workspace .grid{gap:20px;margin-top:20px}
body.workspace .profile{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:var(--v2-radius);color:var(--v2-text);min-height:180px;padding:28px 32px;box-shadow:none;position:relative;overflow:hidden}
body.workspace .profile:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--v2-accent)}
body.workspace .profile h1{font-size:28px;margin:4px 0 20px;color:var(--v2-text)}
body.workspace .profile .overline{color:var(--v2-accent);letter-spacing:.08em}
body.workspace .profile .details small{color:var(--v2-muted);font-size:12px;margin-bottom:3px}
body.workspace .profile .details{gap:30px}
body.workspace .stats{gap:16px}
body.workspace .stats article{border:1px solid var(--v2-line);border-radius:10px;padding:20px;box-shadow:none}
body.workspace .stats b{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--v2-text)}
body.workspace .stats span,body.workspace .stats small{font-size:12px;color:var(--v2-muted)}
body.workspace .lessons article{grid-template-columns:94px minmax(0,1fr) auto;background:var(--night-surface,#f7f8fa);border:0;border-radius:8px;padding:14px 16px}
body.workspace .lessons time{white-space:nowrap;font-size:13px;font-variant-numeric:tabular-nums}
body.workspace table{font-size:13px;font-variant-numeric:tabular-nums}
body.workspace table th{background:var(--night-surface,#f4f6f8);color:var(--night-ink,#4c5868);font-size:12px;font-weight:650;border-bottom:1px solid var(--v2-line);padding:13px 14px}
body.workspace table td{padding:13px 14px;border-bottom:1px solid #edf0f3}
body.workspace tbody tr:hover{background:var(--night-surface,#f8fafc)}
body.workspace input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),body.workspace select,body.workspace textarea{border-radius:8px;border:1px solid #cfd6df;background:var(--theme-surface,#fff);color:var(--v2-text);padding:9px 12px;font-size:14px;min-height:42px;max-width:100%}
body.workspace input:focus-visible,body.workspace select:focus-visible,body.workspace textarea:focus-visible{outline:2px solid #216ac2;outline-offset:2px}
body.workspace [role=tablist]{gap:6px;border-bottom:1px solid var(--v2-line);padding-bottom:12px;margin-bottom:24px}
body.workspace [role=tablist] button{font-size:13px;padding:9px 16px!important;border-radius:8px!important}
body.workspace dialog.ui-dialog{border-radius:14px!important;box-shadow:0 24px 80px #18253826}
body.workspace .ui-dialog-head{border-bottom:1px solid var(--v2-line)}
body.workspace .ui-dialog-foot{border-top:1px solid var(--v2-line)}
@media(max-width:900px){body.workspace .shell{padding:16px;grid-template-columns:1fr;gap:18px}body.workspace .shell>nav,#admin-dashboard>nav{position:static;display:flex;gap:6px;max-height:none;overflow:auto;padding:0 0 10px}body.workspace .shell>nav>b,#admin-dashboard>nav>b{display:none}body.workspace .shell>nav>button,#admin-dashboard>nav>button{width:auto;flex:0 0 auto;margin:0;padding:9px 14px!important;background:var(--theme-surface,#fff);white-space:nowrap}body.workspace .shell>nav>button.active,#admin-dashboard>nav>button.active{box-shadow:inset 0 -3px var(--v2-accent)}body.workspace .portal-topbar{padding:0 16px}body.workspace .grid{grid-template-columns:1fr}}
@media(max-width:540px){body.workspace .portal-topbar{height:64px;padding:0 14px}body.workspace .portal-topbar img{width:184px}body.workspace .shell{padding:12px;gap:12px}body.workspace .view>h1{font-size:24px;margin:4px 0 18px}body.workspace .panel{padding:18px 16px;border-radius:10px}body.workspace .profile{padding:22px 20px;min-height:0}body.workspace .profile h1{font-size:24px}body.workspace .profile .details{gap:14px}body.workspace .stats{gap:10px}body.workspace .stats article{padding:16px}body.workspace .stats b{font-size:26px}body.workspace .lessons article{grid-template-columns:86px minmax(0,1fr);gap:8px}body.workspace .lessons article>small{grid-column:2}body.workspace [role=tablist]{display:flex;overflow:auto;flex-wrap:nowrap}body.workspace [role=tablist] button{flex:0 0 auto;white-space:nowrap}}
body.workspace .weekly-work-plan{border-top:1px solid var(--v2-line)}
body.workspace .weekly-work-tabs{background:var(--theme-subtle,#f3f5f8);border-radius:10px;padding:5px;gap:4px}
body.workspace .weekly-work-tabs button{border-radius:7px;color:var(--v2-muted)}
body.workspace .weekly-work-tabs button.active{box-shadow:0 1px 4px #1d283b12;color:var(--v2-accent)}
body.workspace .weekly-work-tabs button small{font-size:11px}
body.workspace .weekly-work-day{border-radius:9px;background:var(--theme-surface,#fff);padding:20px}
body.workspace .weekly-work-day.today{border-left:3px solid #267050;background:var(--night-surface,#f5faf7)}
body.workspace .weekly-work-day h3{font-size:18px}
body.workspace .weekly-work-notes{border-radius:9px;background:var(--night-surface,#f8f9fb)}
body.workspace .weekly-work-day header>span{background:var(--night-surface,#eef2f6);color:var(--night-ink,#526173)}
body.workspace .weekly-work-notes summary small,body.workspace .weekly-work-nav span{font-size:12px}
body.workspace{--homework-accent:var(--v2-accent);--homework-accent-dark:#8a1c2b;--homework-ink:var(--v2-text);--homework-muted:var(--v2-muted);--homework-line:var(--v2-line);--homework-paper:var(--theme-surface,#fff);--homework-soft:#f5f7fa}
body.workspace :is(.homework-heading,.homework-student-heading,.teacher-roster-heading,.home-visit-heading,.institutional-heading,.allowance-public-heading,.survey-unified-heading){margin:4px 0 24px;align-items:center;gap:20px}
body.workspace :is(.homework-heading,.homework-student-heading,.teacher-roster-heading,.home-visit-heading,.institutional-heading,.allowance-public-heading,.survey-unified-heading) h1{font-size:28px;line-height:1.4;margin:4px 0 6px}
body.workspace :is(.homework-heading,.homework-student-heading,.teacher-roster-heading,.home-visit-heading,.institutional-heading,.allowance-public-heading,.survey-unified-heading) p{color:var(--v2-muted);font-size:13px}
body.workspace :is(.home-visit-summary,.allowance-personal-summary,.survey-unified-stats){gap:16px}
body.workspace :is(.home-visit-summary,.allowance-personal-summary,.survey-unified-stats) article{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:10px;box-shadow:none;padding:20px}
body.workspace :is(.home-visit-summary,.allowance-personal-summary,.survey-unified-stats) b{color:var(--v2-text);font-size:28px;font-variant-numeric:tabular-nums}
body.workspace .survey-unified-stats article::after{display:none}
body.workspace :is(.home-visit-card,.institutional-card,.survey-unified-panel,.allowance-teacher-daily,.allowance-breakdown,.homework-detail){background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;box-shadow:none}
body.workspace .home-visit-card.approved{border-left:3px solid #267050}
body.workspace .home-visit-card.rejected{border-left:3px solid #ad2434}
body.workspace .institutional-file-mark{border-radius:8px;background:var(--night-surface,#f2f5f8);color:var(--night-ink,#5e6b7a)}
body.workspace .homework-summary span{border-radius:9px;padding:10px 18px}
body.workspace .homework-summary b{font-size:22px;color:var(--v2-text)}
body.workspace .homework-teacher-layout{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:20px}
body.workspace .homework-list-panel{min-width:0}
body.workspace .homework-publish{background:var(--theme-surface,#fff)}
body.workspace .homework-file-picker{border-radius:8px;background:var(--night-surface,#f5f7fa)}
body.workspace .homework-review-dialog{border-radius:14px;border-color:var(--v2-line);background:var(--theme-surface,#fff)}
body.workspace .homework-review-dialog h2{font-family:inherit;font-size:20px}
body.workspace :is(.roster-content-toolbar,.teacher-roster-tools,.survey-unified-tools,.homework-detail-tools){gap:12px}
body.workspace .privacy-roster-note{background:var(--night-surface,#f5f7fa);border:1px solid var(--v2-line);border-radius:8px;color:var(--v2-muted)}
body.workspace .hte-hero{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;color:var(--v2-text);box-shadow:none}
body.workspace .hte-hero h1{font-size:28px;color:var(--v2-text)}
body.workspace .hte-hero p{color:var(--v2-muted)}
body.workspace .hte-grid article{border:1px solid var(--v2-line);border-radius:10px;box-shadow:none;background:var(--theme-surface,#fff)}
body.workspace .hte-grid b{color:var(--v2-text)}
body.workspace .achievement-hero{border:1px solid var(--v2-line);border-radius:12px;background:var(--theme-surface,#fff);box-shadow:none;padding:28px}
body.workspace .achievement-hero:after{display:none}
body.workspace .achievement-hero h1{font-size:28px;color:var(--v2-text)}
body.workspace .achievement-hero p{color:var(--v2-muted)}
body.workspace .achievement-summary article{border:1px solid var(--v2-line);background:var(--night-surface,#f6f8fa);border-radius:9px;color:var(--v2-text)}
@media(max-width:1100px){body.workspace .homework-teacher-layout{grid-template-columns:1fr}}
@media(max-width:540px){body.workspace :is(.homework-heading,.homework-student-heading,.teacher-roster-heading,.home-visit-heading,.institutional-heading,.allowance-public-heading,.survey-unified-heading){align-items:flex-start;flex-direction:column;gap:12px}body.workspace :is(.homework-heading,.homework-student-heading,.teacher-roster-heading,.home-visit-heading,.institutional-heading,.allowance-public-heading,.survey-unified-heading) h1{font-size:24px}body.workspace :is(.home-visit-summary,.allowance-personal-summary,.survey-unified-stats){gap:10px}body.workspace :is(.home-visit-summary,.allowance-personal-summary,.survey-unified-stats) article{padding:16px}body.workspace :is(.home-visit-summary,.allowance-personal-summary,.survey-unified-stats) b{font-size:24px}}
body.workspace .schedule-bookmarks{background:transparent;border:0;border-bottom:1px solid var(--v2-line);padding:0 0 12px;gap:8px;width:100%;overflow-x:auto}
body.workspace .schedule-bookmarks button{background:transparent;color:var(--v2-muted);min-width:0;padding:10px 18px;border-radius:8px;white-space:nowrap;font-size:13px;font-weight:600}
body.workspace .schedule-bookmarks button.active{background:var(--theme-surface,#fff);color:var(--v2-accent);box-shadow:0 1px 4px #1d283b0a}
body.workspace .schedule-bookmarks button.active:after{display:none}
body.workspace .class-schedule-picker,body.workspace .roster-content-toolbar{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;padding:20px 24px;box-shadow:none}
body.workspace .class-schedule-copy h2,body.workspace .roster-content-toolbar h2{font-size:20px}
body.workspace .schedule-grade-switch{border:1px solid var(--v2-line);border-radius:8px;background:var(--theme-subtle,#f3f5f8)}
body.workspace .schedule-grade-switch button[aria-selected=true]{border-radius:6px;color:var(--v2-accent);box-shadow:0 1px 4px #1d283b12}
/* Standalone academic workspaces use the same surfaces and hierarchy. */
body.v2-academic{background:var(--v2-bg);color:var(--v2-text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
body.v2-academic>header{height:72px;background:var(--theme-surface,#fff);border-bottom:1px solid var(--v2-line);padding:0 28px}
body.v2-academic>main{max-width:1480px;padding:28px;margin:auto}
body.v2-academic h1{font-size:28px;letter-spacing:0}
body.v2-academic h2{font-size:20px}
body.v2-academic .controls{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;padding:20px;gap:16px;margin:24px 0}
body.v2-academic label{color:var(--v2-muted);font-size:13px}
body.v2-academic :is(select,input,textarea){border-color:#cfd6df;border-radius:8px;background:var(--theme-surface,#fff);color:var(--v2-text)}
body.v2-academic nav{border-color:var(--v2-line);gap:12px}
body.v2-academic nav button{padding:12px 16px;border-radius:8px 8px 0 0;color:var(--v2-muted)}
body.v2-academic nav button[aria-pressed=true]{background:var(--theme-surface,#fff);color:var(--v2-accent);border-bottom-color:var(--v2-accent)}
body.v2-academic :is(.panel,.focus,.table-wrap){background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;box-shadow:none}
body.v2-academic .summary{padding:20px 24px;background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;gap:32px}
body.v2-academic .summary strong{font-size:28px;color:var(--v2-text)}
body.v2-academic th{background:var(--night-surface,#f4f6f8);color:var(--night-ink,#526173);border-color:var(--v2-line)}
body.v2-academic td{border-color:#edf0f3}
body.v2-academic tbody tr:hover{background:var(--night-surface,#f8fafc)}
body.v2-academic .notice{background:var(--night-surface,#fff9ea);border-color:#bd8424;color:#785514;border-radius:8px}
@media(max-width:540px){body.v2-academic>header{height:auto;min-height:64px;padding:14px 16px}body.v2-academic>main{padding:18px 12px}body.v2-academic h1{font-size:24px}body.v2-academic .controls{padding:16px;gap:12px}body.v2-academic .controls>label{min-width:0;flex:1 1 140px}body.v2-academic .controls select{width:100%}body.v2-academic .summary{padding:16px;gap:20px}}
body.workspace .star-campus-view{--star-ink:var(--v2-text);--star-muted:var(--v2-muted);--star-line:var(--v2-line);--star-paper:var(--theme-surface,#fff);--star-red:var(--v2-accent)}
body.workspace .star-page-head{border-bottom:1px solid var(--v2-line);padding-bottom:20px;margin:4px 0 24px}
body.workspace .star-page-head h1{font-family:inherit;font-size:28px;letter-spacing:0}
body.workspace .star-page-head p{font-size:13px;color:var(--v2-muted)}
body.workspace .star-section-head h2{font-size:20px}
body.workspace .star-teacher-leaderboard{background:#30242b;border-radius:14px;box-shadow:none;padding:28px}
body.workspace .star-teacher-leaderboard h2{color:#fff7e8;font-size:24px}
body.workspace .star-leader-feature{border-radius:10px}
body.workspace .star-homeroom-overview{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;box-shadow:none;overflow:hidden}
body.workspace .star-homeroom-overview>.star-section-head{background:var(--theme-surface,#fff);padding:24px;border-bottom:1px solid var(--v2-line)}
body.workspace .star-homeroom-overview>.star-section-head h2{font-size:20px}
body.workspace .star-class-snapshot{background:var(--night-surface,#f7f9fb)}
body.workspace .star-class-snapshot strong{font-size:22px}
body.workspace .star-toolbar{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;padding:20px;box-shadow:none}
body.workspace .star-quota>div{padding:0 24px;border-color:var(--v2-line)}
body.workspace .star-quota strong{font-size:28px}
body.workspace .star-rule-entry{border-radius:8px;background:var(--theme-surface,#fff);border-color:var(--v2-line)}
@media(max-width:540px){body.workspace .star-page-head h1{font-size:24px}body.workspace .star-teacher-leaderboard{padding:20px 16px}body.workspace .star-quota>div{padding:0 12px}body.workspace .star-quota strong{font-size:21px}body.workspace .star-homeroom-overview>.star-section-head{padding:18px 16px}}
/* Student names and status markers are inline controls, never action pills. */
body.workspace .student-profile-link,body.workspace .discipline-student-link{background:transparent;border:0;border-radius:0;padding:0;margin:0;min-height:0;color:inherit;font-size:inherit;font-weight:650;line-height:inherit;text-align:inherit;box-shadow:none}
body.workspace .student-profile-link:hover,body.workspace .discipline-student-link:hover{color:var(--v2-accent);text-decoration:underline;text-underline-offset:3px}
body.workspace .special-student-heart,body.workspace .discipline-student-alert{width:25px;height:25px;min-width:25px;min-height:25px;border:0;border-radius:50%;padding:0;font-size:14px;line-height:1;box-shadow:none}
body.workspace .special-student-heart{color:#ad2930;background:var(--night-surface,#f8e7e6)}
body.workspace .discipline-student-alert{color:#a45d0e;background:var(--night-surface,#fff0d9)}
body.workspace .discipline-warning-empty{padding:12px 0;color:var(--v2-muted)}
body.workspace .star-rule-entry{background:var(--theme-surface,#fff)!important;border:1px solid var(--v2-line)!important;border-radius:8px;box-shadow:none}
body.workspace .star-homeroom-head-actions button{background:var(--theme-surface,#fff)}
body.workspace .star-dialog-panel,body.workspace .star-student-selector,body.workspace .star-batch-classes{background:var(--theme-surface,#fff);border-color:var(--v2-line)}
body.workspace .star-dialog-panel{border-radius:12px;box-shadow:none}
body.workspace .star-dialog-panel h2{font-family:inherit;font-size:22px}
body.workspace .star-dialog-kicker{color:var(--v2-muted)}
@media(prefers-reduced-motion:reduce){body.workspace *,body.portal-home *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
body.workspace .star-rules-entry{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:7px;box-shadow:none;color:var(--v2-text)}
body.workspace .star-rules-entry small{color:var(--v2-muted);font-size:11px}
body.workspace .star-leader-feature:first-child{background:var(--theme-surface,#fff);color:var(--v2-text);border-top:3px solid var(--v2-accent)}
body.workspace .star-leader-feature:first-child>span{color:var(--v2-accent)}
body.workspace .star-leader-feature:first-child>strong{color:var(--v2-accent)}
body.workspace .star-rules-panel{background:var(--theme-surface,#fff);color:var(--v2-text);border:1px solid var(--v2-line);border-radius:12px;overflow:hidden;box-shadow:0 24px 80px #18253826}
body.workspace .star-rules-header{background:var(--theme-surface,#fff);border-top:0;border-bottom:1px solid var(--v2-line);padding:24px}
body.workspace .star-rules-header h2{font-family:inherit;font-size:22px}
body.workspace .star-rules-header p{color:var(--v2-muted);font-size:12px}
body.workspace .star-rules-close{border:0;background:transparent;border-radius:6px;color:var(--v2-muted)}
body.workspace .star-rules-backdrop{background:#18233166;backdrop-filter:none}
body.workspace :is(.roster-dialog,.sanction-modal,.home-visit-form,.ui-overlay-panel){background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;box-shadow:0 24px 80px #18253826;color:var(--v2-text)}
body.workspace :is(.roster-dialog,.sanction-modal,.home-visit-form,.ui-overlay-panel) h2{font-family:inherit;font-size:22px;color:var(--v2-text);padding-right:44px}
/* Dialog families share surface, hierarchy, and spacing. Business content stays scoped. */
body.workspace :is(.allowance-dialog,.allowance-invigilation-dialog,.allowance-detail-dialog,.overtime-review-dialog,.personality-dialog,.achievement-award-dialog,.career-honor-dialog,.career-delete-dialog,.evaluation-dialog,.evaluation-bonus-dialog,.evaluation-report-dialog,.address-nav-dialog,.student-profile-dialog,.institutional-form-modal>section,.officer-modal>section,.account-modal>section,.read-detail-dialog){background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:12px;box-shadow:0 24px 80px #18253826;color:var(--v2-text)}
body.workspace :is(.allowance-dialog,.allowance-invigilation-dialog,.allowance-detail-dialog,.overtime-review-dialog,.personality-dialog,.achievement-award-dialog,.career-honor-dialog,.career-delete-dialog,.evaluation-dialog,.evaluation-bonus-dialog,.evaluation-report-dialog,.address-nav-dialog,.student-profile-dialog,.institutional-form-modal,.officer-modal,.account-modal,.read-detail-dialog) h2{font-family:inherit;font-size:22px;line-height:1.5;letter-spacing:0;color:var(--v2-text)}
body.workspace :is(.allowance-dialog-head,.evaluation-dialog>header,.career-honor-dialog>header,.student-profile-dialog>header){background:var(--theme-surface,#fff);border-color:var(--v2-line)}
body.workspace .account-modal>section{border-top:1px solid var(--v2-line);padding:28px}
body.workspace .account-modal h2{padding-right:40px}
body.workspace .account-flow-intro{color:var(--v2-muted)}
body.workspace .password-contact-notice{background:var(--night-surface,#f6f8fa);border:1px solid var(--v2-line);border-radius:8px}
body.workspace :is(.account-modal,.home-visit-modal,.sanction-modal-layer,.roster-modal,.read-detail-modal,.admin-notice-detail-modal,.career-honor-modal,.evaluation-modal){background:#18233166;backdrop-filter:none}
@media(max-width:540px){body.workspace :is(.allowance-dialog,.allowance-invigilation-dialog,.allowance-detail-dialog,.overtime-review-dialog,.personality-dialog,.achievement-award-dialog,.career-honor-dialog,.career-delete-dialog,.evaluation-dialog,.evaluation-bonus-dialog,.evaluation-report-dialog,.address-nav-dialog,.student-profile-dialog,.institutional-form-modal,.officer-modal,.account-modal,.read-detail-dialog) h2{font-size:20px}}
body.workspace .star-rules-intro{border-bottom:1px solid var(--v2-line)}
body.workspace .star-rules-intro p{font-family:inherit;font-size:14px;color:var(--v2-text)}
body.workspace .star-rules-intro small{font-size:12px;color:var(--v2-muted)}
body.workspace .star-rules-alerts{background:var(--night-surface,#f7f9fb);border:1px solid var(--v2-line);border-radius:8px;overflow:hidden}
body.workspace .star-rules-alerts p{border-color:var(--v2-line);font-size:12px;color:var(--v2-muted)}
body.workspace .star-rules-jump{background:var(--theme-surface,#fff);border-color:var(--v2-line);backdrop-filter:none;gap:8px}
body.workspace .star-rules-jump a{width:auto;display:inline-flex;align-items:center;min-height:36px;padding:8px 12px;border:1px solid var(--v2-line);border-radius:6px;color:var(--v2-muted);font-size:12px}
body.workspace .star-rule-section{background:var(--theme-surface,#fff);border:1px solid var(--v2-line);border-radius:10px;overflow:hidden}
body.workspace .star-rule-section>header{background:var(--night-surface,#f5f7fa);border-color:var(--v2-line)}
body.workspace .star-rule-section h3{font-family:inherit;font-size:18px}
body.workspace .star-rule-section header p{color:var(--v2-muted);font-size:12px}
body.workspace .star-rule-section>header>span{border:0;background:var(--night-surface,#eaf0f5);color:var(--night-ink,#526173);border-radius:7px}
body.workspace .star-rule-items article{border-color:var(--v2-line)}
body.workspace .star-rule-items p{font-size:13px;color:var(--v2-muted)}
body.workspace .star-rule-items b{font-size:13px}
body.workspace .star-rules-footer{background:var(--night-surface,#f5f7fa);border:1px solid var(--v2-line);border-radius:8px;font-size:13px;color:var(--v2-muted)}
/* Navigation levels use text tabs; geometry no longer resembles action buttons. */
body.workspace :is(.schedule-bookmarks,.student-profile-tabs,.discipline-branch-tabs,[data-homeroom-work-tabs],[data-teaching-work-tabs]){display:flex;align-items:center;justify-content:flex-start;gap:24px;width:100%;margin:0 0 24px;padding:0;background:transparent;border:0;border-bottom:1px solid var(--v2-line);border-radius:0;box-shadow:none;overflow-x:auto;flex-wrap:nowrap}
body.workspace :is(.schedule-bookmarks,.student-profile-tabs,.discipline-branch-tabs,[data-homeroom-work-tabs],[data-teaching-work-tabs])>button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;min-width:0;min-height:44px;margin:0;padding:12px 2px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--night-ink,#657180)!important;box-shadow:none!important;white-space:nowrap;font-size:14px!important;font-weight:500!important;line-height:1.4;transform:none}
body.workspace :is(.schedule-bookmarks,.student-profile-tabs,.discipline-branch-tabs,[data-homeroom-work-tabs],[data-teaching-work-tabs])>button.active,body.workspace :is(.schedule-bookmarks,.student-profile-tabs,.discipline-branch-tabs)>button[aria-selected=true]{color:var(--v2-accent)!important;font-weight:650!important;background:transparent!important}
body.workspace :is(.schedule-bookmarks,.student-profile-tabs,.discipline-branch-tabs,[data-homeroom-work-tabs],[data-teaching-work-tabs])>button.active:after{content:"";display:block!important;position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--v2-accent);border-radius:0}
body.workspace :is(.schedule-bookmarks,.student-profile-tabs,.discipline-branch-tabs)>button:hover{color:var(--v2-text)!important;background:transparent!important}
body.workspace .discipline-branch-tabs{gap:22px;margin:0 0 20px;border-bottom:1px solid var(--v2-line)}
body.workspace .discipline-branch-tabs>button{font-size:13px!important;min-height:40px}
body.workspace .student-profile-tabs{position:sticky;top:-28px;background:var(--theme-surface,#fff);z-index:2;padding-top:8px;margin-bottom:24px;gap:28px;grid-template-columns:none}
body.workspace .student-profile-tabs>button{font-size:14px!important;min-height:48px}
body.workspace .personality-badge{display:inline-flex;align-items:center;gap:0;margin:0 0 0 4px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--night-ink,#7b8795);font:500 11px/1.4 inherit;min-height:0;min-width:0;vertical-align:baseline;white-space:nowrap;letter-spacing:.025em}
body.workspace .personality-badge b{font-family:inherit;font-size:11px;font-weight:500;color:inherit}
body.workspace .personality-badge span{display:none}
body.workspace .personality-badge:hover{color:var(--night-ink,#435166);text-decoration:underline;text-underline-offset:3px;background:transparent}
body.workspace .roster-student-name{gap:4px;flex-wrap:nowrap}
body.workspace .student-profile-name-heading>.personality-badge{margin:0 8px 0 0;order:3}
@media(max-width:700px){body.workspace :is(.schedule-bookmarks,.discipline-branch-tabs,[data-homeroom-work-tabs],[data-teaching-work-tabs]){gap:20px;margin-bottom:20px}body.workspace .student-profile-tabs{top:-18px;gap:20px;padding-top:4px}body.workspace .student-profile-tabs>button{min-width:0;min-height:44px;font-size:13px!important}}
@media(prefers-reduced-motion:no-preference){body.workspace :is(.schedule-bookmarks,.student-profile-tabs,.discipline-branch-tabs)>button{transition:color .15s}}
body.workspace .student-profile-layer{background:#18233166;backdrop-filter:none}
body.workspace .student-profile-pane>section{border-color:var(--v2-line);border-radius:8px;background:var(--theme-surface,#fff)}
body.workspace .student-profile-summary span{background:var(--night-surface,#f5f7fa);border-radius:8px;color:var(--v2-muted)}
body.workspace .student-profile-summary b{color:var(--v2-text)}
@media(max-width:700px){body.workspace .student-profile-dialog>header{padding-right:0}body.workspace .student-profile-name-heading{font-size:18px!important;gap:8px;padding-right:0}body.workspace .student-profile-name-heading>span:not(.student-profile-star-badge){min-width:0;flex:1}body.workspace .student-profile-name-heading>.personality-badge{flex:0 0 auto;margin:0;font-size:11px}}
/* Level 2: workspace navigation. Level 3: compact switch inside the workspace. */
body.workspace :is([data-homeroom-work-tabs],[data-teaching-work-tabs]){gap:8px;margin-bottom:28px;padding:6px;background:var(--night-surface,#e9edf2);border:1px solid #e0e5ec;border-radius:9px}
body.workspace :is([data-homeroom-work-tabs],[data-teaching-work-tabs])>button{min-height:42px;padding:10px 16px!important;border-radius:6px!important;color:var(--night-ink,#536171)!important;font-size:14px!important;font-weight:600!important}
body.workspace :is([data-homeroom-work-tabs],[data-teaching-work-tabs])>button.active{background:var(--theme-surface,#fff)!important;color:var(--theme-accent,#9b2232)!important;box-shadow:0 1px 4px #25334b12!important}
body.workspace :is([data-homeroom-work-tabs],[data-teaching-work-tabs])>button.active:after{display:none!important}
body.workspace :is([data-homeroom-work-tabs],[data-teaching-work-tabs])>button:hover:not(.active){background:var(--theme-subtle,#f3f5f8)!important}
body.workspace :is(.discipline-branch-tabs,.schedule-bookmarks:not([data-homeroom-work-tabs]):not([data-teaching-work-tabs])){gap:22px;padding:0 2px;background:transparent;border:0;border-bottom:1px solid var(--v2-line);border-radius:0;margin-bottom:20px}
body.workspace :is(.discipline-branch-tabs,.schedule-bookmarks:not([data-homeroom-work-tabs]):not([data-teaching-work-tabs]))>button{min-height:38px;font-size:13px!important;padding:10px 0!important;font-weight:500!important}
@media(max-width:700px){body.workspace :is([data-homeroom-work-tabs],[data-teaching-work-tabs]){gap:4px;padding:5px;margin-bottom:22px}body.workspace :is([data-homeroom-work-tabs],[data-teaching-work-tabs])>button{padding:10px 12px!important;font-size:13px!important}}

/* Achievement overview: one quiet summary, readable labels and stable figures. */
body.workspace .achievement-summary{background:var(--theme-surface,#fff);border:1px solid #e1e6ed;border-radius:10px;backdrop-filter:none;min-width:390px;overflow:hidden}
body.workspace .achievement-summary article{border:0;border-right:1px solid #e6eaf0;border-radius:0;background:transparent;padding:22px 20px;text-align:left}
body.workspace .achievement-summary article:last-child{border:0}
body.workspace .achievement-summary b{font-family:inherit;font-size:32px;font-weight:700;line-height:1.15;color:var(--theme-text,#263344);font-variant-numeric:tabular-nums}
body.workspace .achievement-summary span{margin-top:9px;color:var(--theme-muted,#647183);font-size:12px;font-weight:500;white-space:nowrap}
body.workspace .achievement-badge-complete img{mix-blend-mode:multiply}
@media(max-width:900px){body.workspace .achievement-summary{min-width:0;width:100%}}
@media(max-width:560px){body.workspace .achievement-summary article{padding:17px 12px}body.workspace .achievement-summary b{font-size:27px}body.workspace .achievement-summary span{font-size:11px}}

body.workspace #allowance-publication .allowance-public-heading{border:0;padding-bottom:0;margin:4px 0 20px;align-items:center}
body.workspace #allowance-publication .allowance-public-heading h1{font-size:28px;line-height:1.4}
body.workspace #allowance-publication .allowance-teacher-tabs{display:flex;gap:28px;margin:0 0 24px;padding:0;border:0;border-bottom:1px solid var(--v2-line);background:transparent;overflow-x:auto}
body.workspace #allowance-publication .allowance-teacher-tabs>button{position:relative;flex:0 0 auto;min-width:0;width:auto;min-height:44px;padding:10px 2px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;color:var(--night-ink,#657180)!important;font-size:14px!important;font-weight:500!important;white-space:nowrap}
body.workspace #allowance-publication .allowance-teacher-tabs>button.active{color:var(--v2-accent)!important;font-weight:650!important}
body.workspace #allowance-publication .allowance-teacher-tabs>button.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--v2-accent)}
body.workspace #allowance-publication .allowance-teacher-tabs>button:hover{color:var(--v2-accent)!important}
@media(max-width:650px){body.workspace #allowance-publication .allowance-public-heading h1{font-size:24px}}
/* Compact seating workspace: inline controls, one row for legend inputs. */
body.workspace #seat-planner .seat-planner-heading{margin:0 0 12px}
body.workspace #seat-planner .seat-planner-heading h1{font-size:25px;line-height:1.3}
body.workspace #seat-planner .seat-planner-heading p{font-size:12px;margin-top:4px}
body.workspace #seat-planner .seat-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}
body.workspace #seat-planner .seat-toolbar label{display:flex;align-items:center;gap:6px;font-size:11px}
body.workspace #seat-planner :is(.seat-toolbar,.seat-personalize) button{height:32px!important;min-height:32px!important;padding:5px 10px!important;font-size:12px!important;border-radius:5px!important;line-height:1.3}
body.workspace #seat-planner :is(.seat-toolbar,.seat-personalize) select,body.workspace #seat-planner .seat-personalize input{height:32px!important;min-height:32px!important;padding:4px 8px!important;font-size:12px!important;border-radius:5px!important;width:auto}
body.workspace #seat-planner .seat-toolbar-break{flex-basis:100%;height:0;margin:0}
body.workspace #seat-planner .seat-personalize{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 12px;margin-bottom:10px;border-radius:7px}
body.workspace #seat-planner .seat-display-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
body.workspace #seat-planner .seat-display-options label{display:flex;align-items:center;gap:5px;white-space:nowrap}
body.workspace #seat-planner .seat-marker-actions{display:flex;align-items:center;gap:6px;margin-left:auto}
body.workspace #seat-planner .seat-legend-editor{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px;flex:0 0 100%;min-width:0}
body.workspace #seat-planner .seat-legend-editor label{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;font-size:11px}
body.workspace #seat-planner .seat-legend-editor input{width:100%;min-width:0;flex:1}
body.workspace #seat-planner .seat-legend-editor .seat-wide-note{flex-basis:auto}
@media(max-width:760px){body.workspace #seat-planner .seat-toolbar label{width:auto}body.workspace #seat-planner .seat-toolbar button{width:auto}body.workspace #seat-planner .seat-marker-actions{margin-left:0;flex-wrap:wrap}body.workspace #seat-planner .seat-legend-editor{grid-template-columns:1fr 1fr}body.workspace #seat-planner .seat-wide-note{grid-column:1/-1}body.workspace #seat-planner .seat-display-options{gap:8px}body.workspace #seat-planner .seat-display-options label{max-width:100%}body.workspace #seat-planner .seat-display-options select{max-width:180px}}
/* Aisle controls belong to the column boundary, outside the seat cards. */
body.workspace #seat-planner .seat-aisle-editor{height:34px;margin-bottom:7px;align-items:center}
body.workspace #seat-planner button.seat-aisle-toggle{display:grid;place-items:center;width:26px!important;min-width:26px!important;height:26px!important;min-height:26px!important;padding:0!important;margin:0!important;border:1px solid #c6ced8!important;border-radius:4px!important;background:var(--theme-surface,#fff)!important;color:var(--night-ink,#617084)!important;font-size:18px!important;font-weight:500!important;line-height:1!important;opacity:1;box-shadow:none!important}
body.workspace #seat-planner button.seat-aisle-toggle.active{border-color:var(--theme-accent,#9b2232)!important;background:var(--theme-accent,#9b2232)!important;color:var(--theme-surface,#fff)!important}
body.workspace #seat-planner button.seat-aisle-toggle:hover{border-color:var(--theme-accent,#9b2232)!important;transform:none;background:var(--night-surface,#f6f8fa)!important;color:var(--theme-accent,#9b2232)!important}
body.workspace #seat-planner button.seat-aisle-toggle.active:after{top:33px}
/* Course tables keep intrinsic columns instead of stretching across the panel. */
body.workspace .full-schedule table{width:max-content;min-width:0;table-layout:auto}
body.workspace .full-schedule :is(th,td){box-sizing:border-box;padding:8px 10px;font-size:12px}
body.workspace .full-schedule th:first-child{width:100px;min-width:100px;max-width:100px;padding:8px;white-space:nowrap}
body.workspace .full-schedule thead th:not(:first-child),body.workspace .full-schedule td{width:124px;min-width:124px;max-width:150px;text-align:center}
body.workspace .full-schedule tbody th small{white-space:nowrap;font-size:10px}
body.workspace .full-schedule.daytime-only table{min-width:0}
/* Dense supplementary timetables. */
body.workspace .supplemental-intro{margin:0 0 8px;gap:10px}
body.workspace .supplemental-intro h2{font-size:18px;line-height:1.3}
body.workspace .supplemental-intro span{font-size:11px}
body.workspace .supplemental-duty-grid{gap:7px}
body.workspace .supplemental-block{margin-bottom:0;border-radius:6px}
body.workspace .supplemental-block>.supplemental-title{min-height:0!important;padding:9px 12px!important;gap:8px}
body.workspace .supplemental-title h2{font-size:15px!important;line-height:1.3}
body.workspace .supplemental-title small{font-size:11px}
body.workspace .supplemental-title span{gap:10px}
body.workspace .supplemental-block table{width:max-content;min-width:0;table-layout:auto}
body.workspace .supplemental-block :is(th,td){padding:5px 7px!important;line-height:1.35;font-size:11px;min-width:68px;text-align:center}
body.workspace .supplemental-block td b{font-size:11px;line-height:1.35}
body.workspace .supplemental-block td small{font-size:10px;line-height:1.3;margin-top:0}
body.workspace .supplemental-block .week-badge{min-width:0;padding:2px 5px;font-size:11px;border:0;background:var(--theme-subtle,#f3f5f8)}
body.workspace .sunday-block{margin-top:7px}
body.workspace .sunday-block tbody tr.week-start>*{border-top-width:2px}
body.workspace .supplemental-duty-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.workspace details.supplemental-block.panel{padding:0!important;min-width:0}
body.workspace details.supplemental-block.panel>summary.supplemental-title{padding:9px 12px!important;min-height:36px!important}
body.workspace .supplemental-block .table{padding:0;margin:0;border:0}
body.workspace .supplemental-block table{width:100%}
@media(max-width:1050px){body.workspace .supplemental-duty-grid{grid-template-columns:1fr}}
body.workspace .supplemental-duty-grid{align-items:start}
body.workspace .supplemental-title h2{margin:0!important}
/* Teacher reward form uses the workspace's neutral surfaces. */
body.workspace #star-campus-teacher{--star-ink:var(--theme-text,#263344);--star-muted:var(--theme-muted,#647183);--star-line:var(--theme-line,#dfe5ec);--star-paper:var(--theme-surface,#fff);--star-canvas:var(--theme-subtle,#f3f5f8)}
body.workspace #star-campus-teacher .star-form{background:var(--theme-surface,#fff);border-color:var(--theme-line,#dfe5ec);border-radius:8px}
body.workspace #star-campus-teacher .star-form :is(input,select,textarea){background:var(--theme-surface,#fff);border-color:#d2dae4;color:var(--theme-text,#263344)}
body.workspace #star-campus-teacher .star-form fieldset{background:var(--night-surface,#f6f8fa);border:1px solid var(--theme-line,#dfe5ec);border-radius:6px}
body.workspace #star-campus-teacher .star-student-picker{background:var(--theme-surface,#fff);border-color:var(--theme-line,#dfe5ec);border-radius:6px;overflow:hidden}
body.workspace #star-campus-teacher .star-student-picker-head{background:var(--theme-subtle,#f3f5f8);border-color:var(--theme-line,#dfe5ec)}
body.workspace #star-campus-teacher :is(.star-selected-students,.star-award-split){background:var(--theme-subtle,#f3f5f8);border-left-color:#b8c3d2}
body.workspace #star-campus-teacher .star-selected-summary b{color:var(--night-ink,#354357)}
body.workspace #star-campus-teacher .star-selected-chips button{background:var(--theme-surface,#fff);border-color:#d2dae4;color:var(--night-ink,#354357)}
/* Reward footer must reserve a complete, single-line action. */
body.workspace #star-campus-teacher .star-form-actions{display:flex;flex-direction:row;align-items:center;gap:14px;flex-wrap:wrap}
body.workspace #star-campus-teacher .star-form-actions .star-form-note{flex:1 1 220px;min-width:0;font-size:11px;line-height:1.6;color:var(--theme-muted,#647183)}
body.workspace #star-campus-teacher .star-form-actions>button{flex:0 0 auto;min-width:108px!important;min-height:40px!important;width:auto!important;padding:10px 18px!important;white-space:nowrap!important;word-break:keep-all;line-height:1.3;font-size:13px!important;border-radius:6px!important}
body.workspace #star-campus-teacher .star-form-actions .star-reversal-policy{padding:0;border:0;background:transparent}
@media(max-width:560px){body.workspace #star-campus-teacher .star-form-actions{align-items:stretch;flex-direction:column;gap:10px}body.workspace #star-campus-teacher .star-form-actions .star-form-note{flex:auto}body.workspace #star-campus-teacher .star-form-actions>button{align-self:flex-end}}
@media(min-width:901px){body.workspace .shell{grid-template-columns:176px minmax(0,1fr);gap:20px}body.workspace .shell>nav>button{padding:10px 12px!important;font-size:13px;white-space:nowrap}body.workspace .shell>nav>b{padding-left:12px;padding-right:12px}}
@media(min-width:901px){body.workspace .shell{grid-template-columns:156px minmax(0,1fr);gap:16px}body.workspace .shell>nav>button{padding:10px 10px!important;font-size:14px!important}body.workspace .shell>nav>b{padding-left:10px;padding-right:10px}}

/* Quiet disclosure controls: the whole heading remains the click target. */
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details>summary{list-style:none;cursor:pointer;min-height:44px;transition:background-color .15s ease}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details>summary::-webkit-details-marker{display:none}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details>summary:hover{background:var(--theme-subtle,#f4f6f8)!important}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details>summary:focus-visible{outline:2px solid var(--theme-accent,#a92330);outline-offset:3px}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details>summary>i:last-child{display:inline-flex!important;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;margin-left:auto;padding:0!important;min-width:48px;width:auto!important;height:auto!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;font-size:0!important;font-style:normal;color:var(--theme-muted,#657180)!important}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details>summary>i:last-child::before{content:'展开'!important;font-family:inherit;font-weight:500;line-height:1.4;font-size:12px!important;color:var(--theme-muted,#657180)!important}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details[open]>summary>i:last-child::before{content:'收起'!important}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details>summary>i:last-child::after{content:''!important;color:inherit!important;display:block!important;width:6px!important;height:6px!important;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;font-size:0!important;transform:rotate(45deg)!important;transition:transform .18s ease}
body.workspace :is(#schedule,#discipline,#allowance-publication,#notice) details[open]>summary>i:last-child::after{transform:rotate(225deg)!important}
body.workspace :is(#notice) button[data-tree-toggle]{width:32px;min-width:32px;min-height:36px;padding:0;border:0!important;border-radius:4px;background:transparent!important;color:transparent!important;box-shadow:none!important}
body.workspace :is(#notice) button[data-tree-toggle]::after{content:''!important;inset:auto;position:absolute;top:13px;left:12px;width:6px;height:6px;border-right:1.5px solid var(--theme-muted,#657180);border-bottom:1.5px solid var(--theme-muted,#657180);transform:rotate(-45deg);transition:transform .18s ease}
body.workspace :is(#notice) button[data-tree-toggle][aria-expanded=true]::after{transform:rotate(45deg)}
@media(prefers-reduced-motion:reduce){body.workspace details>summary,body.workspace details>summary>i:last-child::after,body.workspace button[data-tree-toggle]::after{transition:none!important}}
body.workspace #allowance-publication .allowance-day-list summary{grid-template-columns:150px minmax(0,1fr) auto 52px}
body.workspace #notice button[data-tree-toggle]:hover{background:var(--theme-subtle,#f4f6f8)!important}
@media(max-width:650px){body.workspace #allowance-publication .allowance-day-list summary{grid-template-columns:minmax(0,1fr) auto auto 52px;gap:8px}}
