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)}@-ms-viewport{width:device-width}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}mark{padding:.2em;background-color:#feffe6}:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--text);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--canvas)}button,input{font:inherit}.ant-card{box-shadow:var(--shadow-sm)}.ant-table-cell,.metric-card strong{font-variant-numeric:tabular-nums}.app-shell{min-height:100vh}.sidebar{position:sticky!important;top:0;height:100vh;box-shadow:var(--shadow-sm);z-index:20}.sidebar .ant-layout-sider-trigger{border-top:1px solid var(--border);background:var(--surface);color:var(--muted)}.brand{height:var(--header-height);display:flex;align-items:center;gap:10px;padding:0 var(--sp-5);white-space:nowrap;color:var(--text)}.brand-mark{flex:0 0 32px;width:32px;height:32px;border-radius:var(--radius);color:var(--surface);background:var(--primary);display:grid;place-items:center;font-weight:700}.sidebar .ant-menu-item{position:relative;margin-inline:10px;width:calc(100% - 20px)}.sidebar .ant-menu-item-selected:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--primary)}.topbar{position:sticky;top:0;z-index:30;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);height:var(--header-height);padding:0 var(--sp-6);display:flex;align-items:center;justify-content:space-between;background:var(--header-bg);border-bottom:1px solid var(--border)}.topbar-left{display:flex;align-items:center;gap:var(--sp-3)}.account{cursor:pointer;padding:6px var(--sp-2);border-radius:var(--radius-sm)}.account:hover{background:var(--gray-100)}.content{background:radial-gradient(ellipse at 15% 0%,var(--canvas-glow),transparent 60%),var(--canvas);min-width:0}.page{width:100%;max-width:1440px;margin:0 auto;padding:var(--sp-8)}.page-header{min-height:48px;margin-bottom:var(--sp-5);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4)}.page-header h1{margin:0;color:var(--text);font-size:20px;line-height:28px;font-weight:650}.page-header p{margin:var(--sp-1) 0 0;color:var(--muted);font-size:13px}.page-actions{flex:none}.app-loading{height:100vh;display:grid;place-items:center}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-5);margin-bottom:var(--sp-5)}.metric-card{--metric-color: var(--primary-600);--metric-soft: var(--primary-50);position:relative;overflow:hidden;border-radius:var(--radius-lg);transition:transform .18s ease,box-shadow .18s ease}.metric-card.tone-info{--metric-color: var(--info);--metric-soft: var(--info-soft)}.metric-card.tone-success{--metric-color: var(--success-text);--metric-soft: var(--success-soft)}.metric-card.tone-warning{--metric-color: var(--warning);--metric-soft: var(--warning-soft)}.metric-card .ant-card-body{padding:var(--sp-5)}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:36px}.metric-label{color:var(--muted);font-size:13px}.metric-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:var(--radius);background:var(--metric-soft);color:var(--metric-color);font-size:18px}.metric-card strong{display:block;margin-top:var(--sp-3);font-size:clamp(24px,2.4vw,32px);line-height:40px;font-weight:650;letter-spacing:-.03em;overflow-wrap:anywhere}.metric-card small,.stat-item small{font-size:14px;margin-left:var(--sp-1);font-weight:500}.metric-bottom{display:flex;align-items:end;justify-content:space-between;gap:var(--sp-2);min-height:42px;margin-top:var(--sp-2)}.metric-caption{color:var(--muted);font-size:12px}.metric-spark{width:104px;max-width:48%;height:38px;flex:none;color:var(--metric-color)}.metric-value-skeleton{margin-top:var(--sp-3);height:40px}.metric-value-skeleton .ant-skeleton-input{height:40px;width:110px;min-width:0}.metric-delta{display:inline-flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}.metric-delta.up{color:var(--success-text)}.metric-delta.down{color:var(--danger-text)}.metric-delta.flat{color:var(--muted)}.metric-delta em{color:var(--muted);font-style:normal}.dashboard-card{margin-bottom:var(--sp-5)}.trend-chart{height:300px}.distribution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}.distribution-row{margin-bottom:15px}.distribution-row:last-child{margin-bottom:0}.distribution-row>div:first-child{display:flex;justify-content:space-between;gap:var(--sp-2);margin-bottom:6px;font-size:12px}.distribution-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-600)}.distribution-row b{font-weight:500;color:var(--muted)}.bar{height:6px;overflow:hidden;border-radius:99px;background:var(--gray-200)}.bar i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.table-card .ant-card-body{padding:0}.table-tools{display:flex;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border)}.table-tools .ant-input-affix-wrapper{width:min(360px,60vw)}.table-tools .ant-select{width:150px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--sp-4)}.full{grid-column:1/-1}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.muted{color:var(--muted)}.qr-preview{display:grid;place-items:center;padding:var(--sp-4)}.health-item{padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-subtle)}.health-item>span{display:block;margin-bottom:var(--sp-3);color:var(--muted);font-size:13px}.status{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:600}.status i{width:8px;height:8px;border-radius:50%;background:var(--gray-300)}.status i.ok{background:var(--success)}.status i.error{background:var(--danger)}.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--surface)}.login-art{position:relative;overflow:hidden;padding:clamp(40px,7vw,96px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,var(--surface-subtle),var(--primary-50))}.login-grid{position:absolute;inset:0;opacity:.45;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:linear-gradient(to bottom right,var(--text),transparent 70%);mask-image:linear-gradient(to bottom right,var(--text),transparent 70%)}.login-art>*:not(.login-grid){position:relative;z-index:1}.login-brand{display:flex;align-items:center;gap:10px}.login-art h1{max-width:600px;margin:0 0 var(--sp-5);color:var(--text);font-size:clamp(38px,5vw,64px);line-height:1.14;letter-spacing:-.045em}.login-art p{max-width:570px;margin:0;color:var(--muted);font-size:16px;line-height:1.8}.login-panel{display:grid;place-items:center;padding:var(--sp-8)}.login-card{width:min(400px,100%);border:0}.login-card .ant-card-body{padding:var(--sp-8)}.login-card h2{margin:0 0 var(--sp-2);font-size:24px}.login-card>.ant-card-body>.muted{margin:0 0 var(--sp-7)}.mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:var(--sp-8);font-weight:650}@media(max-width:960px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.distribution-grid,.login{grid-template-columns:1fr}.login-art{display:none}.mobile-brand{display:flex}}@media(max-width:640px){.topbar{padding:0 var(--sp-3)}.topbar .account>.ant-space-item:last-child,.topbar .ant-breadcrumb li:first-child,.topbar .ant-breadcrumb li.ant-breadcrumb-separator{display:none}.page{padding:var(--sp-4)}.page-header{flex-direction:column}.page-actions{width:100%}.metric-grid{grid-template-columns:1fr}.table-tools{flex-direction:column}.table-tools .ant-input-affix-wrapper,.table-tools .ant-select{width:100%}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.login-panel,.login-card .ant-card-body{padding:var(--sp-4)}}.sidebar .ant-menu{border-inline-end:0!important}.app-shell>.ant-layout{min-width:0}.dashboard-alert,.stat-strip{margin-bottom:var(--sp-5)}.stat-strip .ant-card-body{padding:var(--sp-5) 0}.stat-strip-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.stat-item{min-width:0;padding:0 var(--sp-5);border-inline-start:1px solid var(--border)}.stat-item:first-child{border-inline-start:0}.stat-label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);color:var(--gray-600);font-size:12px;margin-bottom:var(--sp-2)}.stat-label>span{font-size:11px;color:var(--muted);background:var(--gray-100);padding:1px var(--sp-1);border-radius:var(--radius-sm)}.stat-item strong{font-size:22px;line-height:32px;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-error{display:block;color:var(--danger-text);font-size:12px}.chart-period{color:var(--muted);font-size:12px}.chart-tooltip{padding:var(--sp-3) var(--sp-4);min-width:150px;background:var(--tooltip-bg);color:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-variant-numeric:tabular-nums}.chart-tooltip>div{color:var(--gray-300);font-size:12px}.chart-tooltip p{display:flex;justify-content:space-between;gap:var(--sp-6);margin:var(--sp-2) 0 0}.chart-tooltip strong{font-size:16px}.trend-chart>.empty-state{height:100%}.chart-skeleton{height:100%;display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-2)}.chart-skeleton-area{flex:1;min-height:0;width:100%}.distribution,.distribution-skeleton{min-height:220px}.distribution-skeleton>div{padding:var(--sp-2) 0 var(--sp-3)}.distribution-skeleton .ant-skeleton-input{min-width:0}.distribution-row em{color:var(--muted);font-style:normal;font-size:11px}.distribution-row b{flex:none;font-variant-numeric:tabular-nums}.distribution .empty-state{min-height:220px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-6) var(--sp-4);text-align:center}.empty-state strong{display:block;color:var(--gray-700);font-size:14px;font-weight:500;margin-top:var(--sp-2)}.empty-state p{color:var(--muted);font-size:12px;margin:var(--sp-2) 0 var(--sp-4);max-width:320px}.table-skeleton{min-height:240px;padding:var(--sp-4)}.table-link.ant-btn{height:auto;padding:0;max-width:100%;font-weight:600;white-space:normal;text-align:left}.login-card{box-shadow:none}@media(hover:hover)and (prefers-reduced-motion:no-preference){.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}}@media(max-width:1200px){.stat-strip-grid{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:var(--sp-5)}.stat-item{grid-column:span 2}.stat-item:nth-child(4){border-inline-start:0}.stat-item:nth-child(n+4){grid-column:span 3;border-top:1px solid var(--border);padding-top:var(--sp-4)}}@media(max-width:640px){.stat-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-item,.stat-item:nth-child(n+4){grid-column:span 1;border-top:0;padding:0 var(--sp-3)}.stat-item:nth-child(odd){border-inline-start:0}.stat-item:nth-child(2n){border-inline-start:1px solid var(--border)}.stat-item:last-child{grid-column:1 / -1;border-top:1px solid var(--border);padding-top:var(--sp-4)}.chart-period{display:none}.metric-card strong{font-size:30px}.distribution-grid .dashboard-card{margin-bottom:0}.distribution-grid{margin-bottom:var(--sp-5)}.dashboard-card .ant-card-body{padding:var(--sp-4)}.topbar-left,.topbar .ant-breadcrumb{min-width:0}.page-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}}@media(prefers-reduced-motion:reduce){.metric-card{transition:none}.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-input{animation:none}}
