:root{--brand:#2457f5;--brand-600:#1b45d1;--brand-50:#eef3ff;--brand-100:#dde7ff;--ink:#101828;--ink-2:#475467;--ink-3:#667085;--ink-4:#98a2b3;--line:#e4e7ec;--line-2:#eef0f4;--bg:#f5f7fb;--surface:#fff;--success:#12b76a;--warning:#f79009;--danger:#f04438;--radius:14px;--shadow-sm:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);--shadow-md:0 4px 8px -2px rgba(16,24,40,.06),0 12px 24px -6px rgba(16,24,40,.08);--brand-gradient:linear-gradient(135deg,#2457f5,#4f7bff 55%,#7aa0ff)}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}a{color:var(--brand)}@media (max-width:991px){.ant-input,.ant-picker-input>input,input,select,textarea{font-size:16px!important}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:20px}.page-head>div:first-child{flex:1 1;min-width:0}.page-head>.ant-btn,.page-head>a{flex:none}@media (max-width:480px){.page-head{align-items:center}.page-head .ant-btn-lg{height:40px;padding:0 14px;font-size:15px}.page-head .page-sub{display:none}}.page-title{margin:0;font-size:24px;line-height:32px;font-weight:700;letter-spacing:-.01em}.page-sub{margin:4px 0 0;color:var(--ink-3);font-size:14px}.panel{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel-pad{padding:20px}.panel-title{margin:0 0 16px;font-size:16px;font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}@media (min-width:992px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}.stat{padding:16px 18px}.stat-label{color:var(--ink-3);font-size:13px}.stat-value{margin-top:6px;font-size:28px;line-height:34px;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-value.is-warn{color:var(--warning)}.stat-value.is-danger{color:var(--danger)}.panel .ant-table-wrapper .ant-table{background:transparent}.panel .ant-table-wrapper .ant-table-container,.panel .ant-table-wrapper .ant-table-thead>tr:first-child>:first-child{border-start-start-radius:var(--radius)}.panel .ant-table-wrapper .ant-table-thead>tr:first-child>:last-child{border-start-end-radius:var(--radius)}