:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#eef4fb;font-size:14px;--admin-bg: #eef4fb;--admin-sider: #071a32;--admin-sider-soft: #0d2749;--admin-primary: #2475ff;--admin-border: #d9e4f2;--admin-muted: #66758b}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--admin-bg);-webkit-font-smoothing:antialiased}html,body,#root{height:100%}.admin-shell{height:100vh;min-height:0;overflow:hidden;background:var(--admin-bg)}.admin-sider{height:100vh;overflow:hidden;border-right:1px solid #dfe7f2;background:#fffffff5!important}.app-sider-inner{position:relative;min-height:100vh;display:flex;flex-direction:column}.sider-brand{height:64px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid #dce5f0}.sider-brand .ant-typography{display:block;color:#0c2140;font-size:14px;line-height:1.35}.sider-brand .ant-typography-secondary{color:#718198;font-size:12px}.logo-avatar{background:var(--admin-primary);font-weight:800}.sider-brand .ant-avatar{width:34px;height:34px;line-height:34px;font-size:13px}.ant-layout-sider-collapsed .sider-brand{justify-content:center;padding:0}.ant-layout-sider-collapsed .sider-brand .ant-avatar{width:28px;height:28px;line-height:28px;font-size:11px}.ant-layout-sider-collapsed .sider-brand>div{display:none}.app-menu.ant-menu{flex:1;padding:10px 10px 16px;border-inline-end:0!important;background:transparent}.ant-layout-sider-collapsed .app-menu.ant-menu{padding:10px 4px 16px}.app-menu .ant-menu-item{height:40px;margin:3px 0;padding-inline:14px!important;border-radius:8px;color:#41506a;font-size:14px;font-weight:600}.ant-layout-sider-collapsed .app-menu .ant-menu-item{width:40px;margin-inline:auto}.app-menu .ant-menu-item .anticon{color:#52647d;font-size:16px}.app-menu .ant-menu-item-selected{color:#176bff!important;background:#edf5ff!important}.app-menu .ant-menu-item-selected .anticon{color:#176bff}.admin-main{min-width:0;height:100vh;min-height:0;overflow:hidden;background:var(--admin-bg)}.admin-header{height:64px;flex:0 0 64px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;background:#fffffff0;border-bottom:1px solid var(--admin-border)}.admin-header-left{min-width:0;display:flex;align-items:center;gap:10px}.admin-header .ant-typography{color:#16243b;font-size:16px}.admin-icon-button{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #d8e2ef;border-radius:8px;color:#334155;background:#fff;cursor:pointer}.admin-icon-button:hover{background:#f1f6fd}.admin-account-trigger{height:38px;display:inline-flex;align-items:center;gap:9px;padding:0 10px 0 4px;border:1px solid #dce6f2;border-radius:8px;color:#20314d;background:#fff;cursor:pointer}.admin-account-name{max-width:120px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:650}.admin-auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 16%,rgba(36,117,255,.12),transparent 30%),linear-gradient(140deg,#f7fbff,#edf5fb 56%,#f8fbff)}.admin-login-card{width:min(420px,100%);border:1px solid var(--admin-border);border-radius:8px;box-shadow:0 28px 90px #1c315224}.admin-login-card .ant-card-body{padding:32px}.admin-login-brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}.admin-login-brand h3{margin:0;color:#11213b}.admin-login-logo{color:#fff;background:var(--admin-primary);font-weight:800}.admin-login-card .ant-btn-lg{height:46px;border-radius:6px;font-weight:750}.avatar-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px}.avatar-picker-item{position:relative;height:72px;display:grid;place-items:center;border:1px solid #dbe5f2;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.avatar-picker-item:hover{border-color:#9dc0ff;background:#f7fbff}.avatar-picker-item.selected{border-color:#2475ff;background:#eff6ff;box-shadow:inset 0 0 0 1px #2475ff}.avatar-picker-check{position:absolute;right:6px;bottom:6px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#2475ff;font-size:10px}.admin-page{flex:1 1 auto;min-height:0;height:calc(100vh - 64px);padding:20px;overflow:auto}.admin-content{min-height:0;display:grid;gap:16px}.admin-alert{border-radius:8px}.admin-card{border:1px solid var(--admin-border);border-radius:8px;box-shadow:0 16px 34px #20355a12}.admin-card .ant-card-head{min-height:48px;border-bottom-color:#e7edf6;background:#fbfdff}.admin-card .ant-card-head-title{color:#14223a;font-size:15px;font-weight:750}.admin-card .ant-card-body{padding:18px}.admin-card .ant-form-item-label>label{color:#3d4b61;font-weight:650}.admin-card .ant-input,.admin-card .ant-input-affix-wrapper,.admin-card .ant-select-selector{border-color:#d9e4f2!important}.account-id-cell{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.form-actions{width:100%;justify-content:flex-end}.ant-table-wrapper .ant-table{color:#243047}.ant-table-wrapper .ant-table-thead>tr>th{color:#536176;background:#f7f9fc;border-bottom-color:#dde7f4;font-weight:750}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f4f8ff}.ant-btn-primary{box-shadow:0 8px 16px #2475ff2e}.relation-manager-card .ant-card-body{display:grid;gap:16px}.settings-page{width:min(560px,100%)}.settings-card-intro{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;padding:14px;border:1px solid #dbe7f4;border-radius:8px;background:#f7fbff}.settings-card-intro>.anticon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;color:#176bff;background:#e8f1ff}.settings-card-intro .ant-typography{display:block;line-height:1.55}.settings-form-actions{margin-bottom:0}.settings-form-actions .ant-form-item-control-input-content{display:flex;justify-content:flex-end}.relation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.relation-toolbar .ant-input-search{width:min(360px,100%)}.relation-summary{flex-wrap:wrap;justify-content:flex-end}.teacher-relation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.teacher-relation-card{min-width:0;min-height:240px;display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid #dfe8f3;border-radius:8px;background:#fff}.teacher-relation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.teacher-relation-head .ant-tag{flex:0 0 auto;margin-inline-end:0}.teacher-relation-name,.teacher-student-copy{min-width:0;display:grid;gap:3px}.teacher-relation-name .ant-typography,.teacher-student-copy .ant-typography{max-width:100%;margin:0}.teacher-student-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border:1px solid #edf2f8;border-radius:8px;background:#f8fbff}.teacher-student-add-row .ant-select{min-width:0}.teacher-student-list{flex:1 1 auto;min-height:86px;display:grid;align-content:start;gap:8px}.teacher-student-row{min-width:0;min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #edf2f8;border-radius:8px;background:#fbfdff}.teacher-student-list .ant-empty{margin:8px 0}.admin-mobile-drawer .ant-drawer-body{padding:0;overflow:hidden}.admin-mobile-drawer .app-sider-inner{height:auto;min-height:0}.admin-mobile-drawer .sider-brand{display:none}.admin-mobile-drawer .ant-drawer-header{min-height:48px;padding:0 14px}.admin-mobile-drawer .ant-drawer-title{font-size:14px;font-weight:700}.admin-mobile-drawer .ant-drawer-close{width:32px;height:32px;margin-inline-end:6px}.admin-mobile-drawer .app-menu.ant-menu{flex:0 0 auto;padding:8px}.admin-mobile-drawer .app-menu .ant-menu-item{margin:3px 0}@media(max-width:991px){.admin-header{height:56px;flex-basis:56px;padding:0 12px}.admin-header-left{flex:1 1 auto}.admin-header-left>.ant-typography{display:none}.admin-account-name{display:none}.admin-account-trigger{width:36px;height:36px;justify-content:center;gap:0;padding:0}.admin-account-trigger .ant-avatar{width:32px;height:32px}.admin-account-trigger .anticon-down{display:none}.admin-page{height:calc(100vh - 56px);padding:12px}.admin-login-card .ant-card-body{padding:24px}.relation-toolbar{align-items:stretch;flex-direction:column}.relation-toolbar .ant-input-search{width:100%}.relation-summary{justify-content:flex-start}}@media(max-width:560px){.admin-card .ant-card-body{padding:14px}.table-toolbar{width:100%}.table-toolbar .ant-input-search,.table-toolbar .ant-select{width:100%!important}.teacher-relation-grid{grid-template-columns:1fr}.teacher-relation-head,.teacher-student-row{align-items:stretch;grid-template-columns:1fr}.teacher-relation-head{display:grid}.teacher-student-add-row{grid-template-columns:1fr}}
