*{box-sizing:border-box}:root{--brand-red: #962f37;--brand-blue: #2a4e87;--brand-blue-soft: rgba(42, 78, 135, .1);--brand-blue-soft-hover: rgba(42, 78, 135, .06);--ink: #20242b;--ink-muted: #667085;--canvas: #f5f6f8;--surface: #ffffff;--surface-subtle: #f6f7f9;--line: rgba(21, 22, 26, .09);--surface-radius: 16px;--control-radius: 8px;--shadow-surface: 0 0 0 1px rgba(0, 0, 0, .055), 0 1px 2px -1px rgba(0, 0, 0, .06), 0 8px 24px -12px rgba(0, 0, 0, .12);--shadow-surface-hover: 0 0 0 1px rgba(0, 0, 0, .075), 0 2px 4px -2px rgba(0, 0, 0, .08), 0 12px 30px -14px rgba(0, 0, 0, .16)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-shell{min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-bottom:1px solid var(--line);padding-inline:28px}.brand{color:var(--brand-red);font-weight:700;font-size:18px;transition-property:opacity;transition-duration:.15s;transition-timing-function:ease-out}.brand:hover{color:var(--brand-red);opacity:.78}.brand:focus-visible{border-radius:2px;outline:2px solid rgba(42,78,135,.28);outline-offset:4px}.header-user{display:flex;gap:16px;align-items:center}.app-content{min-width:0;overflow-x:hidden;padding:24px 28px 40px}.app-sider{position:relative;z-index:1;background:var(--surface)!important;box-shadow:1px 0 #0000000f,8px 0 24px #00000009;transition-property:flex-basis,max-width,min-width,width;transition-duration:.2s;transition-timing-function:cubic-bezier(.2,0,0,1)}.app-sider .ant-layout-sider-children{background:var(--surface)}.app-sider-controls{align-items:center;display:flex;min-height:56px;padding:8px}.app-sider-toggle.ant-btn{align-items:center;border-radius:var(--control-radius);color:var(--ink-muted);display:flex;gap:10px;height:40px;justify-content:flex-start;overflow:hidden;padding-inline:12px;width:100%;transition-property:background-color,color,scale;transition-duration:.15s;transition-timing-function:ease-out}.app-sider-toggle.ant-btn:hover{color:var(--brand-blue);background:var(--brand-blue-soft-hover)}.app-sider-toggle.ant-btn:active{scale:.96}.app-sider-toggle-icons{display:inline-grid;flex:0 0 16px;height:16px;place-items:center;position:relative;width:16px}.app-sider-toggle-icons .anticon{grid-area:1 / 1;transition-property:opacity,scale,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(.2,0,0,1)}.app-sider-toggle-icons .is-active{filter:blur(0);opacity:1;scale:1}.app-sider-toggle-icons .is-inactive{filter:blur(4px);opacity:0;scale:.25}.app-sider-toggle-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sider.ant-layout-sider-collapsed .app-sider-toggle.ant-btn{justify-content:center;padding-inline:0}.app-sider.ant-layout-sider-collapsed .app-sider-toggle-label{display:none}.app-navigation.ant-menu-inline{padding-block:0 12px;background:transparent;border-inline-end:0}.app-navigation .ant-menu-sub.ant-menu-inline{background:transparent}.app-navigation .ant-menu-submenu-title,.app-navigation .ant-menu-item{width:calc(100% - 16px);margin-inline:8px;border-radius:8px;transition-property:background-color,color;transition-duration:.15s;transition-timing-function:ease-out}.app-sider.ant-layout-sider-collapsed .app-navigation .ant-menu-submenu-title{margin-inline:16px;padding-inline:0;width:40px}.app-sider .app-navigation.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:44px;margin-block:4px;line-height:44px}.app-navigation .ant-menu-submenu .ant-menu-item{height:40px;margin-block:2px;line-height:40px}.app-navigation .ant-menu-submenu-title .anticon{font-size:16px}.app-navigation .ant-menu-submenu-selected>.ant-menu-submenu-title,.app-navigation .ant-menu-item-selected{color:var(--brand-blue);background:var(--brand-blue-soft);font-weight:600}.app-navigation .ant-menu-submenu-title:hover,.app-navigation .ant-menu-item:not(.ant-menu-item-selected):hover{color:var(--brand-blue);background:var(--brand-blue-soft-hover)}.page-section{display:flex;flex-direction:column;gap:18px;max-width:1440px;margin:0 auto;min-width:0;width:100%}.page-section-wide{max-width:none;width:100%}.page-title-row{display:flex;align-items:flex-start;flex-wrap:wrap;justify-content:space-between;background:var(--surface);border-radius:var(--surface-radius);box-shadow:var(--shadow-surface);gap:20px 28px;margin:0;min-height:88px;padding:20px 22px}.page-title-row>div:first-child{min-width:240px}.page-title-row .ant-typography.ant-typography-secondary{color:var(--ink-muted)}.page-title-row .ant-typography-title{color:var(--ink);letter-spacing:-.02em;margin-bottom:4px}.page-title-row>.ant-typography-title:only-child,.page-title-row>.ant-typography-title:last-child{margin-bottom:0}.page-title-row .ant-typography{text-wrap:balance}.page-title-row .ant-typography-secondary,.ant-card .ant-typography,.ant-empty-description{text-wrap:pretty}.filter-select{width:180px}.filter-select-wide{width:260px}.filter-row{align-items:center;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-surface);min-height:64px;padding:12px 14px;width:100%}.page-title-row .ant-input,.page-title-row .ant-input-affix-wrapper,.page-title-row .ant-select-selector,.filter-row .ant-input,.filter-row .ant-input-affix-wrapper,.filter-row .ant-select-selector,.filter-row .ant-input-search-button,.page-title-row .ant-btn,.filter-row .ant-btn{min-height:40px}.app-content .ant-btn:not(.ant-btn-link):not(.ant-btn-text):not(:disabled){transition-property:background-color,border-color,color,box-shadow,scale;transition-duration:.15s;transition-timing-function:ease-out}.app-content .ant-btn:not(.ant-btn-link):not(.ant-btn-text):not(:disabled):active{scale:.96}.page-section>.ant-alert,.page-section>.form-alert{margin-block:0}.page-section>.ant-table-wrapper,.page-section>.ant-tabs{background:var(--surface);border-radius:var(--surface-radius);box-shadow:var(--shadow-surface);min-width:0}.page-section>.ant-table-wrapper{overflow:hidden;padding:4px 4px 0}.page-section>.ant-table-wrapper.top-gap{margin-top:0}.page-section>.ant-tabs{padding:4px 20px 20px}.page-section>.ant-tabs>.ant-tabs-nav{margin-bottom:18px}.page-section .ant-card{border:0;border-radius:14px;box-shadow:var(--shadow-surface);overflow:hidden}.page-section .ant-card .ant-card{border-radius:10px;box-shadow:0 0 0 1px #00000012}.page-section .ant-card-head{border-bottom-color:var(--line)}.page-section .ant-card-head-title,.page-section .ant-descriptions-title,.dashboard-section>.ant-typography-title{text-wrap:balance}.lead-row-overdue td{background:#fff1f0!important}.login-page,.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%)}.form-alert{margin-bottom:0}.top-gap{margin-top:16px}.detail-layout{display:flex;flex-direction:column;gap:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.follow-grid{align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.metric-row{display:flex;gap:24px;flex-wrap:wrap;font-variant-numeric:tabular-nums}.full-width{width:100%}.link-button{height:auto;padding:0}.admin-table-compact .ant-table{font-size:14px;max-width:100%;min-width:100%;width:100%}.admin-table-compact .ant-table-thead>tr>th{background:var(--surface-subtle);color:var(--ink);font-weight:700;line-height:1.25;padding:12px 16px;white-space:nowrap}.admin-table-compact .ant-table-tbody>tr>td,.admin-table-compact .ant-table-thead>tr>th{border-bottom-color:var(--line)}.admin-table-compact .ant-pagination{padding-inline:12px}.admin-table-compact .ant-table-tbody>tr>td{line-height:1.35;min-width:0;padding:12px 16px;vertical-align:middle}.admin-table-wrap{display:block;max-width:100%;min-width:0;white-space:normal}.admin-table-flow{align-items:center;display:flex;flex-wrap:wrap;gap:6px 8px;max-width:100%;min-width:0}.admin-table-flow>*{max-width:100%;min-width:0}.admin-table-tag{line-height:1.35;margin-inline-end:0;max-width:100%;white-space:normal}.admin-cell-nowrap{white-space:nowrap}.admin-row-actions{flex-wrap:wrap;max-width:100%;white-space:normal}.admin-row-actions .ant-space-item{max-width:100%}.admin-school-name-link{display:block;max-width:100%;text-align:left;white-space:normal;width:100%}.admin-school-name-link>span{white-space:normal}.admin-school-logo-preview{align-items:center;background:#fff;border:1px solid var(--line);border-radius:4px;display:inline-flex;height:40px;justify-content:center;overflow:hidden;width:40px}.admin-school-logo-image{object-fit:contain;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.consultant-settings-panel{background:var(--surface);border:0;border-radius:var(--surface-radius);box-shadow:var(--shadow-surface);padding:22px}.consultant-settings-panel .ant-typography{margin-bottom:0}.consultant-qrcode-preview{align-items:center;background:#fff;border:1px solid var(--line);border-radius:6px;display:inline-flex;height:180px;justify-content:center;overflow:hidden;width:180px}.consultant-qrcode-preview img{outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.dashboard-stat-card{height:100%}.dashboard-toolbar{align-items:center}.dashboard-page-title.ant-typography{margin-bottom:0}.dashboard-layout{display:flex;flex-direction:column;gap:20px}.dashboard-section{display:flex;flex-direction:column;gap:14px}.dashboard-section>.ant-typography-title{margin:4px 0 0}.dashboard-subcard{height:100%}.dashboard-subcard .ant-card-head{min-height:46px}.dashboard-subcard .ant-card-head-title{font-weight:700}.dashboard-stat-card .ant-card-body{min-height:116px;display:flex;align-items:center}.dashboard-stat-card .ant-statistic{width:100%}.dashboard-stat-card .ant-statistic-content,.dashboard-layout .admin-table-compact .ant-table-tbody>tr>td:not(:first-child){font-variant-numeric:tabular-nums}.dashboard-stat-card .ant-statistic-content{color:var(--brand-blue);font-weight:650;letter-spacing:-.03em}.dashboard-stat-card .ant-statistic-title{color:var(--ink-muted);font-weight:600}.status-switch-success.ant-switch-checked{background:#2f8f3a}.status-switch-success.ant-switch-checked:hover:not(.ant-switch-disabled){background:#267a31}.status-switch-danger:not(.ant-switch-checked){background:#c92a2a}.status-switch-danger:not(.ant-switch-checked):hover:not(.ant-switch-disabled){background:#ad2222}.hidden-file-input{display:none}.json-block{max-height:260px;overflow:auto;padding:12px;background:var(--surface-subtle);border:0;border-radius:10px;box-shadow:inset 0 0 0 1px var(--line)}.school-detail-toolbar{margin-bottom:0}.school-detail-section-grid,.school-detail-field-grid,.school-detail-config-grid,.school-detail-option-row{display:grid;gap:12px;align-items:start}.school-detail-section-grid{grid-template-columns:minmax(180px,1fr) minmax(220px,2fr) minmax(120px,auto)}.school-detail-field-grid{grid-template-columns:repeat(5,minmax(140px,1fr))}.school-detail-config-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}.school-detail-config-grid.two,.school-detail-option-row{grid-template-columns:repeat(2,minmax(160px,1fr))}.school-detail-option-row{grid-template-columns:minmax(140px,1fr) minmax(180px,1fr) 40px}.school-detail-field-type-select{min-width:180px}.school-detail-preview-paragraph{white-space:pre-wrap;margin-bottom:0!important}.city-sort-list{display:flex;flex-direction:column;gap:8px;max-width:520px}.city-sort-row{display:grid;grid-template-columns:64px 48px minmax(120px,1fr);align-items:center;min-height:48px;padding:8px 12px;background:var(--surface);border:0;border-radius:10px;box-shadow:var(--shadow-surface);cursor:grab;transition-property:background-color,box-shadow,scale;transition-duration:.15s;transition-timing-function:ease-out}.city-sort-row:active{cursor:grabbing;scale:.99}.city-sort-row-dragging{background:var(--brand-blue-soft);box-shadow:var(--shadow-surface-hover)}.page-section img{outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.city-drag-handle,.city-sort-index{color:var(--ink-muted);font-size:13px}@media(max-width:860px){.app-header,.page-title-row{flex-direction:column;align-items:stretch}.detail-grid,.form-grid,.school-detail-section-grid,.school-detail-field-grid,.school-detail-config-grid,.school-detail-config-grid.two,.school-detail-option-row{grid-template-columns:1fr}.app-content{padding:16px}.app-sider{display:none}}
