html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#17233b;background:#f3f6fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f3f6fb}button,input{font:inherit}.app-layout{min-height:100vh;background:#f3f6fb}.app-sider{position:relative;overflow:hidden;background:#101b2e!important;box-shadow:8px 0 28px #11213a0c}.brand{height:92px;display:flex;align-items:center;gap:13px;padding:0 23px;color:#fff}.brand-mark{display:grid;width:42px;height:42px;place-items:center;color:#fff;font-size:20px;border-radius:14px;background:linear-gradient(145deg,#4d7df5,#3155c8);box-shadow:0 7px 18px #234ac85c}.brand-copy{display:flex;flex-direction:column;gap:4px;line-height:1}.brand-copy strong{color:#f8fbff;font-size:17px;letter-spacing:.04em}.brand-copy small{color:#8291aa;font-size:9px;letter-spacing:.13em}.sider-caption{padding:10px 24px 9px;color:#74839c;font-size:11px;letter-spacing:.12em}.app-sider .ant-menu{padding:0 12px;border-inline-end:0!important;background:transparent!important}.app-sider .ant-menu-item{display:flex;align-items:center;height:46px;margin:4px 0;padding-inline:14px!important;color:#aab6ca;border-radius:11px;font-size:14px}.app-sider .ant-menu-item .ant-menu-item-icon{color:#8191aa;font-size:17px}.app-sider .ant-menu-item:hover{color:#fff!important;background:#1b2a42!important}.app-sider .ant-menu-item-selected{color:#fff!important;font-weight:600;background:linear-gradient(100deg,#2b56c6,#315cc9)!important;box-shadow:0 7px 16px #173f9b47}.app-sider .ant-menu-item-selected .ant-menu-item-icon{color:#fff!important}.sider-footer{position:absolute;right:18px;bottom:22px;left:22px;display:flex;align-items:center;gap:9px;padding:13px 12px;color:#9aa8bd;font-size:12px;border:1px solid #ffffff13;border-radius:11px;background:#ffffff08}.online-dot{width:8px;height:8px;border-radius:50%;background:#35c89a;box-shadow:0 0 0 4px #35c89a20}.app-header{position:sticky;z-index:5;top:0;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:#ffffffed!important;border-bottom:1px solid #e9eef5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-context{display:flex;flex-direction:column;gap:2px;line-height:1.2}.header-eyebrow{color:#8b98aa;font-size:11px;letter-spacing:.08em}.header-title{color:#17233b;font-size:17px}.header-actions{display:flex;align-items:center;gap:18px}.admin-chip{display:inline-flex;align-items:center;gap:9px;color:#526178;font-size:13px}.admin-avatar{display:grid;width:31px;height:31px;place-items:center;color:#3159c8;font-weight:700;border-radius:50%;background:#e9efff}.logout-button{height:36px;color:#5b6880;border-color:#e4e9f1;border-radius:9px;box-shadow:none}.logout-button:hover{color:#254fc1!important;border-color:#b8c8f8!important}.app-content{width:100%;max-width:1600px;margin:0 auto;padding:31px 36px 48px}.app-content>.ant-typography:first-child{margin:0 0 22px;color:#18243b;font-size:25px;font-weight:700;letter-spacing:-.025em}.app-content .ant-card{border:1px solid #e8edf4;border-radius:15px;box-shadow:0 5px 18px #1b31520a}.app-content .ant-card-head{min-height:54px;border-bottom-color:#edf1f6}.app-content .ant-card-head-title{color:#5a6880;font-size:13px;font-weight:600}.app-content .ant-table-wrapper{overflow:hidden;border:1px solid #e8edf4;border-radius:14px;background:#fff;box-shadow:0 5px 18px #1b315208}.app-content .ant-table{border-radius:14px}.app-content .ant-table-thead>tr>th{color:#68758a;font-size:12px;font-weight:600;background:#f7f9fc;border-bottom-color:#e9eef5}.app-content .ant-table-tbody>tr>td{color:#39465c;font-size:13px;border-bottom-color:#eff2f6}.app-content .ant-table-tbody>tr:hover>td{background:#f8faff!important}.app-content .ant-pagination{padding:12px 16px}.app-content .ant-alert{border-radius:12px}.app-content .ant-input,.app-content .ant-input-affix-wrapper,.app-content .ant-select-selector{border-radius:9px!important}.app-content .ant-btn{border-radius:9px;font-weight:500}.app-content .ant-tabs-nav{margin-bottom:14px}.app-content .ant-tabs-tab{padding:11px 4px;color:#6f7c91}.app-content .ant-tabs-tab-active .ant-tabs-tab-btn{color:#2459d3;font-weight:600}.app-content code{color:#3657a6;font-size:12px;border-radius:5px;background:#f0f4ff;padding:3px 6px}.overview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.overview-heading .ant-typography{margin:0}.overview-heading .ant-typography-secondary{display:block;margin-top:7px;color:#78869b;font-size:13px}.overview-stamp{padding:8px 12px;color:#63728a;font-size:12px;border:1px solid #e5eaf2;border-radius:9px;background:#fff}.metric-card{position:relative;min-height:147px;overflow:hidden}.metric-card:after{position:absolute;right:-25px;bottom:-45px;width:120px;height:120px;border-radius:50%;background:var(--metric-glow, #edf2ff);content:""}.metric-card .ant-card-body{position:relative;z-index:1;padding:21px 22px}.metric-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:#738097;font-size:13px}.metric-icon{display:grid;width:38px;height:38px;place-items:center;color:var(--metric-color, #315bd2);font-size:18px;border-radius:12px;background:var(--metric-glow, #edf2ff)}.metric-card .ant-statistic-content{color:#17233b;font-size:29px;font-weight:700;line-height:1.1}.metric-note{margin-top:8px;color:#94a0b2;font-size:11px}.status-card .ant-card-head-title{display:flex;align-items:center;gap:8px}.status-indicator{width:7px;height:7px;border-radius:50%;background:#2fb487}.login-page{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:24px;background:radial-gradient(ellipse at 16% 10%,#dce8ff 0,transparent 37%),radial-gradient(ellipse at 88% 92%,#e6f4f0 0,transparent 33%),#f5f7fb}.login-page:before,.login-page:after{position:absolute;width:320px;height:320px;content:"";border:1px solid #7190d41a;border-radius:50%}.login-page:before{top:-180px;right:8%;box-shadow:0 0 0 35px #7190d40a,0 0 0 70px #7190d407}.login-page:after{bottom:-220px;left:8%;width:420px;height:420px;box-shadow:0 0 0 45px #7190d40a}.login-card{z-index:1;width:min(100%,430px);padding:9px;border:1px solid #e7edf6!important;box-shadow:0 24px 70px #1d34551c!important}.login-card .ant-card-body{padding:34px 32px 30px}.login-card .ant-typography h3,.login-card h3.ant-typography{margin-bottom:8px;color:#17233b;font-size:25px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:27px}.login-brand .brand-mark{width:45px;height:45px}.login-brand-copy{display:flex;flex-direction:column;gap:4px}.login-brand-copy strong{color:#192743;font-size:15px}.login-brand-copy span{color:#8a96a9;font-size:10px;letter-spacing:.13em}.login-card .ant-form-item-label>label{color:#526178;font-size:12px;font-weight:600}.login-card .ant-input,.login-card .ant-input-affix-wrapper{min-height:43px;border-radius:9px}.login-card .ant-btn-primary{height:44px;margin-top:5px;border-radius:9px;box-shadow:0 8px 18px #315bd236}.login-footnote{margin-top:22px;color:#a0aaba;font-size:11px;text-align:center}.auth-loading{min-height:100vh;display:grid;place-items:center;background:#f3f6fb}@media(max-width:900px){.app-header{padding:0 22px}.app-content{padding:25px 22px 38px}}@media(max-width:640px){.app-header{height:66px;padding:0 15px}.header-eyebrow,.admin-chip{display:none}.header-title{font-size:15px}.header-actions{gap:8px}.logout-button{height:33px;padding-inline:10px;font-size:12px}.app-content{padding:22px 14px 30px}.app-content>.ant-typography:first-child{margin-bottom:17px;font-size:22px}.overview-heading{align-items:flex-start;flex-direction:column}.overview-stamp{display:none}.metric-card{min-height:130px}.login-card .ant-card-body{padding:27px 21px 23px}}
