:root{color:#172126;font-synthesis:none;--zhh-primary:#176b62;--zhh-accent:#b98226;--zhh-bg:#f4f6f7;--zhh-surface:#fff;--zhh-surface-subtle:#eef2f2;--zhh-border:#dbe2e4;--zhh-text:#172126;--zhh-text-muted:#66747a;--zhh-sidebar:#183234;--zhh-sidebar-text:#dfe9e8;--zhh-shadow:0 8px 28px #142a2b14;background:#f4f6f7;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}:root[data-theme=dark]{--zhh-bg:#131718;--zhh-surface:#1d2325;--zhh-surface-subtle:#252d30;--zhh-border:#354145;--zhh-text:#edf2f2;--zhh-text-muted:#a3b0b3;--zhh-sidebar:#10191a;--zhh-sidebar-text:#dbe5e4;--zhh-shadow:0 8px 28px #00000038}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;color:var(--zhh-text);background:var(--zhh-bg)}.route-loading{place-items:center;min-height:180px;display:grid}button,input,textarea,select{font:inherit}.brand-mark{align-items:center;gap:10px;min-width:0;display:flex}.brand-symbol{object-fit:contain;flex:0 0 42px;width:42px;height:34px;display:block}.brand-copy{min-width:0;line-height:1.15;display:grid}.brand-copy strong{color:inherit;white-space:nowrap;font-size:15px}.brand-copy small{color:currentColor;opacity:.66;margin-top:4px;font-size:11px}.content-page{width:100%}.content-page-header{border-bottom:1px solid var(--zhh-border);justify-content:space-between;align-items:center;gap:16px;min-height:34px;padding:0 0 10px;display:flex}.content-page-header h1{letter-spacing:0;white-space:nowrap;flex:none;margin:0;font-size:22px;line-height:1.35}.content-page-actions{flex-wrap:wrap;flex:auto;justify-content:flex-end;gap:8px;min-width:0;display:flex}.content-page-header.is-titleless .content-page-actions{flex-basis:100%;justify-content:flex-end}.content-page-body{padding:12px 0 0}.content-page-body.is-headerless{padding-top:0}@media (width<=640px){.content-page-header{flex-direction:column;align-items:stretch;min-height:auto}.content-page-header h1{font-size:19px}.content-page-actions{justify-content:flex-start}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--school-brand:#1b4f9c;--school-nav:#f7f8f8;--school-success:#267a55}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--school-brand:#6ba6e8;--school-nav:var(--zhh-sidebar);--school-success:#79c9a1}body{color:var(--zhh-text);background:var(--zhh-bg)}a,button{-webkit-tap-highlight-color:transparent}.school-layout{--sidebar-width:260px;min-height:100dvh;color:var(--zhh-text);background:var(--zhh-surface)}.school-layout.is-collapsed{--sidebar-width:84px}.school-sidebar{z-index:20;width:var(--sidebar-width);background:var(--school-nav);border-right:1px solid var(--zhh-border);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.school-brand{justify-content:space-between;align-items:center;gap:8px;min-height:72px;padding:12px 14px;display:flex}.school-brand .brand-symbol{flex-basis:32px;width:32px;height:26px}.school-brand .brand-copy strong{font-size:18px}.school-sidebar nav,.school-mobile-nav nav{gap:6px;padding:12px;display:grid}.school-sidebar nav a,.school-mobile-nav nav a{min-height:46px;color:var(--zhh-text);border-radius:10px;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.school-sidebar nav a:hover,.school-mobile-nav nav a:hover{background:var(--zhh-surface-subtle)}.school-sidebar nav a.active,.school-mobile-nav nav a.active{background:color-mix(in srgb, var(--zhh-text) 9%, transparent);font-weight:600}.school-sidebar svg,.school-mobile-nav svg{flex-shrink:0}.school-sidebar-note{color:var(--zhh-text-muted);overflow-wrap:anywhere;align-items:flex-start;gap:10px;margin:auto 20px 20px;padding-top:24px;font-size:13px;line-height:1.6;display:flex}.school-account{border-top:1px solid var(--zhh-border);align-items:center;gap:10px;padding:16px 12px;display:flex}.school-avatar{background:var(--zhh-surface-subtle);width:36px;height:36px;color:var(--school-brand);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.school-account-copy{flex:1;gap:4px;min-width:0;display:grid}.school-account-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.school-account-copy small{color:var(--zhh-text-muted);font-size:12px}.is-collapsed .school-brand{flex-direction:column}.is-collapsed .school-sidebar nav a{justify-content:center}.is-collapsed .school-sidebar nav a span,.is-collapsed .school-sidebar-note,.is-collapsed .school-account-copy{display:none}.is-collapsed .school-account{flex-direction:column;margin-top:auto}.school-workspace{margin-left:var(--sidebar-width);min-width:0}.school-header{z-index:10;border-bottom:1px solid var(--zhh-border);background:var(--zhh-surface);align-items:center;gap:16px;min-height:72px;padding:12px 32px;display:flex;position:sticky;top:0}.school-workspace-title{white-space:nowrap;align-items:center;gap:12px;display:flex}.school-workspace-icon,.school-class-icon{background:color-mix(in srgb, var(--school-brand) 10%, var(--zhh-surface));color:var(--school-brand);border-radius:12px;place-items:center;display:grid}.school-workspace-icon{width:40px;height:40px}.school-current-school{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:320px;color:var(--zhh-text-muted);margin-left:auto;font-size:13px;overflow:hidden}.school-theme-control{flex-shrink:0}.school-mobile-toggle.ant-btn{display:none}.school-content{width:100%;max-width:1440px;margin:0 auto;padding:40px 40px 56px}.school-page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.school-page-heading h2.ant-typography{margin:0 0 10px;font-size:28px}.school-page-heading .ant-typography{margin-bottom:0}.school-section-label{color:var(--zhh-text-muted);white-space:nowrap;padding-top:12px;font-size:12px}.school-class-grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:20px;display:grid}.school-class-card{border:1px solid var(--zhh-border);min-width:0;color:var(--zhh-text);background:var(--zhh-surface);overflow-wrap:anywhere;border-radius:16px;padding:24px;text-decoration:none;transition:border-color .15s,background .15s;display:block}.school-class-card:hover{border-color:var(--school-brand);background:var(--zhh-surface-subtle);color:var(--zhh-text)}.school-class-heading{justify-content:space-between;align-items:center;display:flex}.school-class-icon{width:48px;height:48px}.school-class-arrow{color:var(--zhh-text-muted)}.school-class-card h3{margin:24px 0 8px;font-size:20px;line-height:1.4}.school-class-card p{color:var(--zhh-text-muted);margin:0 0 24px;font-size:14px}.school-class-meta{border-top:1px solid var(--zhh-border);flex-wrap:wrap;align-items:center;gap:12px;padding-top:16px;display:flex}.school-management .ant-tag.school-status-active{color:var(--school-success);background:color-mix(in srgb, var(--school-success) 10%, var(--zhh-surface))}.school-class-meta .ant-tag.school-homeroom-tag{color:var(--school-brand);background:color-mix(in srgb, var(--school-brand) 10%, var(--zhh-surface))}.school-term-name{color:var(--zhh-text-muted);font-size:13px}.school-state,.school-loading{place-items:center;min-height:60dvh;padding:24px;display:grid}.school-loading{background:var(--zhh-surface)}.school-state .ant-alert{max-width:100%}.school-empty{padding:40px 16px}.school-text-link{color:var(--school-brand);align-items:center;gap:8px;display:inline-flex}.class-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.class-card{max-width:720px}.school-management .ant-card,.school-management .ant-tabs,.school-management .ant-tabs-content-holder{min-width:0}.school-management .ant-card{overflow:hidden}.school-management .ant-table-cell{overflow-wrap:anywhere}.school-management .ant-tabs-nav{margin-bottom:24px}.school-management .ant-table-pagination{flex-wrap:wrap}.school-login{background:var(--zhh-bg);grid-template-columns:minmax(0,1fr) minmax(340px,460px);align-items:center;gap:clamp(40px,8vw,140px);min-height:100dvh;padding:8vw;display:grid;position:relative}.school-login-theme{position:absolute;top:20px;right:24px}.school-login-brand{max-width:620px}.school-login-brand h1.ant-typography{margin-top:80px;font-size:clamp(34px,4vw,60px);line-height:1.2}.school-login-brand p{color:var(--zhh-text-muted);font-size:18px}.school-login-card{width:100%;max-width:460px;box-shadow:var(--zhh-shadow);border-radius:20px}.login-switch{margin-bottom:20px}.login-error{margin-bottom:16px}.school-class-card:focus-visible,.school-sidebar a:focus-visible,.school-mobile-nav a:focus-visible{outline:2px solid var(--school-brand);outline-offset:3px}@media (width<=1000px) and (width>=761px){.school-content{padding:28px 24px}.school-current-school{display:none}.school-theme-control{margin-left:auto}}@media (width<=760px){.school-sidebar{display:none}.school-workspace{margin-left:0}.school-header{gap:8px;min-height:64px;padding:12px 16px}.school-workspace-icon,.school-current-school,.school-theme-control>span:not(.ant-btn-icon),.school-theme-control>svg{display:none}.school-theme-control{margin-left:auto}.school-mobile-toggle.ant-btn{display:inline-flex}.school-content{padding:28px 16px 40px}.school-page-heading{margin-bottom:24px}.school-page-heading h2.ant-typography{font-size:24px}.school-section-label{display:none}.school-class-card{padding:20px}.school-management .ant-card-body{padding:16px}.school-management .ant-card-head{padding:0 16px}.school-state .ant-alert{flex-wrap:wrap;gap:12px}.school-mobile-nav .ant-drawer-body{flex-direction:column;padding:0;display:flex}.school-login{grid-template-columns:minmax(0,1fr);gap:24px;padding:72px 20px 32px}.school-login-brand h1.ant-typography{margin-top:32px}.school-login-card{max-width:none}}@media (prefers-reduced-motion:reduce){.school-class-card{transition:none}}.school-header .school-selector{background:var(--zhh-surface);border:1px solid var(--zhh-border);border-radius:6px;padding:6px;display:block}@media (width<=760px){.school-header .school-selector{flex:1;max-width:30vw}}
