:root{color:#182230;font-synthesis:none;text-rendering:optimizelegibility;background:#f3f6fa}html,body,#root{background:#f3f6fa;width:100%;min-height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}*{box-sizing:border-box}.login-page{background:radial-gradient(circle at 12% 8%,#3b82f62e 0,#0000 34%),radial-gradient(circle at 90% 88%,#8b5cf61f 0,#0000 28%),linear-gradient(145deg,#eef6ff,#fff 54%,#f8f7ff);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border:1px solid #94a3b82e;border-radius:22px;width:min(470px,100%);overflow:hidden;box-shadow:0 24px 80px #0f172a1f}.login-card .ant-card-body{padding:34px}.login-brand{color:#1677ff;letter-spacing:.2px;align-items:center;gap:9px;margin-bottom:14px;font-size:17px;font-weight:750;display:flex}.server-check{margin-bottom:18px}.app{background:#f3f6fa;min-height:100vh}.ant-layout-sider{box-shadow:10px 0 36px #0f172a14;background:#0f172a!important}.logo{color:#fff;letter-spacing:.2px;justify-content:center;align-items:center;gap:10px;height:72px;font-size:17px;font-weight:750;display:flex}.logo-mark{background:linear-gradient(145deg,#3b82f6,#2563eb);border-radius:10px;place-items:center;width:32px;height:32px;display:grid;box-shadow:0 8px 20px #2563eb57}.ant-menu-dark{padding:8px 10px;background:#0f172a!important}.ant-menu-dark .ant-menu-item{border-radius:10px;height:46px;margin-block:5px;line-height:46px}.ant-menu-dark .ant-menu-item-selected{box-shadow:0 8px 20px #2563eb38;background:linear-gradient(90deg,#2563eb,#3b82f6)!important}.ant-layout-header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:2;background:#fffffff0;border-bottom:1px solid #e8edf4;justify-content:space-between;align-items:center;gap:12px;height:64px;padding:0 26px;display:flex}.header-title{align-items:baseline;gap:12px;min-width:0;display:flex}.header-title .ant-typography{white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.ant-layout-content{width:100%;min-width:0;max-width:1720px;margin:0 auto;padding:28px}.page-loading{justify-content:center;align-items:center;min-height:480px;display:flex}.page-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:2px;display:flex}.page-heading .ant-typography{margin-top:0;margin-bottom:5px}.page-heading .ant-typography-h2{letter-spacing:-.5px;font-size:28px;line-height:1.25}.eyebrow{letter-spacing:1.2px;text-transform:uppercase;font-size:12px;font-weight:750;display:block;color:#2563eb!important;margin-bottom:7px!important}.filter-card .ant-card-body{padding:16px}.filter-card input[type=datetime-local]{min-width:210px}.ant-card{border-color:#e6ebf2;border-radius:16px;box-shadow:0 7px 24px #0f172a09}.ant-card .ant-card-head{border-bottom-color:#eef2f7}.ant-card .ant-card-head-title{font-weight:700}.ant-table-wrapper{width:100%}.metric-card{border:0;height:100%;position:relative;overflow:hidden;box-shadow:0 10px 32px #0f172a0f}.metric-card:after{content:"";opacity:.08;background:currentColor;border-radius:50%;width:100px;height:100px;position:absolute;top:-32px;right:-30px}.metric-card .ant-card-body{padding:20px 21px}.metric-card-top{z-index:1;align-items:center;gap:10px;margin-bottom:16px;display:flex;position:relative}.metric-icon{background:currentColor;border-radius:11px;place-items:center;width:36px;height:36px;font-size:18px;display:grid;box-shadow:inset 0 0 0 999px #ffffffd6}.metric-value{letter-spacing:-.7px;color:#172033;z-index:1;margin-bottom:7px;font-size:27px;font-weight:780;line-height:1.2;position:relative}.metric-hint{z-index:1;font-size:12px;position:relative}.metric-blue{color:#2563eb;background:linear-gradient(145deg,#fff,#f2f7ff)}.metric-red{color:#ef4444;background:linear-gradient(145deg,#fff,#fff4f5)}.metric-orange{color:#f97316;background:linear-gradient(145deg,#fff,#fff8ef)}.metric-purple{color:#8b5cf6;background:linear-gradient(145deg,#fff,#f8f5ff)}.dashboard-card{height:100%}.dashboard-card .ant-card-body{min-height:170px}.dashboard-card .ant-card-head-title .anticon{color:#2563eb;margin-right:7px}.trend-select{min-width:142px}.chart-summary{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.chart-summary .ant-typography{margin:0}.trend-chart{color:#2563eb;width:100%;overflow:hidden}.trend-chart svg{width:100%;height:auto;min-height:230px;display:block}.chart-grid{stroke:#e7edf4;stroke-width:1px;stroke-dasharray:4 6}.chart-line{stroke:currentColor;stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round}.chart-area{color:#2563eb}.chart-dot{fill:#fff;stroke:currentColor;stroke-width:3px}.chart-label,.chart-axis-value{fill:#8b96a8;font-size:12px}.group-list{flex-direction:column;gap:13px;display:flex}.group-row-head{color:#4a5568;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:13px;display:flex}.group-row-head span:first-child{color:#253044;font-weight:650}.group-row .ant-progress{line-height:1}.group-row .ant-progress-bg{background:linear-gradient(90deg,#60a5fa,#2563eb)!important}.recent-list{flex-direction:column;display:flex}.recent-row{border-bottom:1px solid #eef2f7;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.recent-row:first-child{padding-top:2px}.recent-row:last-child{border-bottom:0;padding-bottom:2px}.recent-icon{color:#2563eb;background:#eef5ff;border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.recent-main{flex-direction:column;gap:2px;min-width:0;display:flex}.recent-main .ant-typography{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-main .ant-typography-secondary{font-size:12px}.recent-value{color:#172033;text-align:right;white-space:nowrap;font-weight:700}.sync-overview{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;display:grid}.sync-overview .ant-statistic{text-align:center;background:#f7f9fc;border-radius:12px;padding:12px}.sync-overview .ant-statistic-title{font-size:12px}.sync-overview .ant-statistic-content{font-size:24px;font-weight:750}.sync-alert{margin-top:4px}.metric-name-cell{flex-direction:column;gap:5px;min-width:0;display:flex}.metric-name-cell .ant-typography-code{text-overflow:ellipsis;white-space:nowrap;color:#657084;background:#f4f6f9;border:0;max-width:100%;font-size:11px;display:block;overflow:hidden}.json-view{color:#dbeafe;background:#0f172a;border-radius:11px;max-height:420px;margin:8px 0 0;padding:16px;font-size:12px;line-height:1.6;overflow:auto}.ant-table-thead>tr>th{color:#465267;font-weight:700;background:#f7f9fc!important}.ant-table-tbody>tr:hover>td{background:#f8fbff!important}@media (width<=1199px){.ant-layout-content{padding:22px}.sync-overview{grid-template-columns:repeat(3,1fr)}}@media (width<=991px){.ant-layout-header{height:56px;padding:0 12px}.header-title{flex:1;justify-content:center}.header-title .ant-typography:first-child{font-size:17px}.header-title .ant-typography:last-child{display:none}.ant-layout-content{padding:16px}.page-heading{align-items:center}.page-heading .ant-typography.ant-typography-h2{font-size:24px}.ant-card-head,.ant-card-body{padding-left:16px;padding-right:16px}.trend-chart svg{min-height:200px}}@media (width<=575px){.login-page{padding:12px}.login-card .ant-card-body{padding:24px 20px}.page-heading{flex-direction:column;align-items:stretch}.page-heading>.ant-btn{align-self:flex-end}.dashboard-heading>.ant-btn{align-self:flex-start}.filter-card .ant-space,.filter-card .ant-select,.filter-card input[type=datetime-local]{min-width:0;width:100%!important}.filter-card .ant-space-item,.filter-card .ant-btn{width:100%}.ant-table{font-size:13px}.metric-card .ant-card-body{padding:17px}.metric-value{font-size:25px}.chart-summary{align-items:flex-start}.trend-select{min-width:124px;max-width:150px}.trend-chart{width:calc(100% + 20px);margin:0 -10px}.trend-chart svg{min-height:180px}.chart-label,.chart-axis-value{font-size:11px}.recent-row{grid-template-columns:34px minmax(0,1fr)}.recent-icon{width:32px;height:32px}.recent-value{text-align:left;grid-column:2;margin-top:-5px;font-size:13px}.sync-overview{gap:6px}.sync-overview .ant-statistic{padding:10px 4px}.sync-overview .ant-statistic-content{font-size:21px}.sync-overview .ant-statistic-title{font-size:11px}}
