:root{color-scheme:light;--surface-1: #ffffff;--surface-2: #fafaf8;--page: #f7f7f5;--ink-1: #0b0b0b;--ink-2: #52514e;--ink-3: #898781;--grid: #e1e0d9;--axis: #c3c2b7;--hairline: rgba(11, 11, 11, .1);--hairline-soft: rgba(11, 11, 11, .06);--series-revenue: #2a78d6;--series-cost: #eb6834;--series-profit: #1baf7a;--series-function: #eda100;--status-good: #0ca30c;--status-warning: #b25e00;--status-critical: #d03b3b;--good-ink: #006300;--bad-ink: #b42323;--radius-lg: 12px;--radius-md: 8px;--shadow-card: 0 1px 2px rgba(11, 11, 11, .03);--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--ink-1);font-family:var(--font-sans);font-size:13px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}::selection{background:#2a78d62e}.login-page{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh;background:var(--page)}.login-brand-panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:40px 48px;background:radial-gradient(1000px 480px at -10% -20%,rgba(42,120,214,.28),transparent 60%),radial-gradient(760px 420px at 110% 120%,rgba(27,175,122,.14),transparent 55%),#0e1726;color:#f0efec}.login-brand-panel:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 85%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 85%);pointer-events:none}.login-brand-content,.login-brand-footer{position:relative;z-index:1}.login-brand-mark{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;letter-spacing:.01em}.login-brand-logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--series-revenue);color:#fff;font-size:16px;font-weight:700}.login-eyebrow{margin:72px 0 14px;color:#7ea9dd;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.login-brand-title{margin:0;font-size:clamp(28px,3.4vw,42px);font-weight:650;line-height:1.2;letter-spacing:-.02em}.login-brand-desc{max-width:420px;margin:16px 0 0;color:#f0efeca8;font-size:14px;line-height:1.7}.login-brand-list{display:grid;gap:14px;margin:40px 0 0;padding:0;list-style:none}.login-brand-list li{display:flex;align-items:flex-start;gap:12px;color:#f0efecd1;font-size:13px}.login-brand-list li:before{content:"";flex:0 0 auto;width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--series-revenue);box-shadow:0 0 0 4px #2a78d629}.login-brand-footer{display:flex;align-items:center;gap:10px;color:#f0efec73;font-size:12px}.login-brand-footer .dot{width:4px;height:4px;border-radius:50%;background:currentColor}.login-form-panel{display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-card{width:100%;max-width:400px;padding:36px 32px 28px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface-1);box-shadow:0 18px 48px #0b0b0b0f}.login-card-mobile-brand{display:none}.login-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em}.login-sub{margin:8px 0 0;color:var(--ink-2);font-size:13px}.login-form{margin-top:26px}.login-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.login-code-row .ant-btn{min-width:112px}.login-submit{width:100%;height:42px;margin-top:4px;font-size:14px}.login-hint{margin:18px 0 0;color:var(--ink-3);font-size:12px;text-align:center}.login-expired{margin-bottom:18px}.admin-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;background:linear-gradient(to right,var(--surface-1) 0 231px,var(--hairline-soft) 231px 232px,var(--page) 232px)}.admin-sider{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:18px 10px 14px;border-right:1px solid var(--hairline-soft);background:var(--surface-1)}.admin-brand{display:flex;align-items:center;gap:10px;padding:0 10px 16px}.admin-brand-logo{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;background:var(--series-revenue);color:#fff;font-size:14px;font-weight:700}.admin-brand-name{font-size:14px;font-weight:600;letter-spacing:.01em}.admin-brand-tag{margin-left:auto;padding:1px 7px;border:1px solid var(--hairline);border-radius:999px;color:var(--ink-3);font-size:10px;font-weight:500;letter-spacing:.06em}.admin-nav{display:grid;gap:2px}.admin-nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-md);color:var(--ink-2);font-size:13px;transition:background .15s ease,color .15s ease}.admin-nav-item:hover{background:#0b0b0b0a;color:var(--ink-1)}.admin-nav-item.is-active{background:#e8f1fb;color:#1c5cab;font-weight:500}.admin-nav-icon{display:inline-flex;font-size:15px}.admin-sider-footer{margin-top:auto;padding:12px 6px 0;border-top:1px solid var(--hairline-soft)}.admin-user{display:flex;align-items:center;gap:9px;padding:8px 6px}.admin-user-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 auto;border-radius:50%;background:#e8f1fb;color:#1c5cab;font-size:12px;font-weight:600}.admin-user-meta{min-width:0;flex:1}.admin-user-phone{overflow:hidden;color:var(--ink-1);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.admin-user-role{color:var(--ink-3);font-size:11px}.admin-logout{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:4px;padding:7px;border:1px solid var(--hairline-soft);border-radius:var(--radius-md);background:transparent;color:var(--ink-2);font-family:inherit;font-size:12px;cursor:pointer}.admin-logout:hover{background:#0b0b0b0a;color:var(--ink-1)}.admin-main{min-width:0}.admin-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;height:56px;padding:0 28px;border-bottom:1px solid var(--hairline-soft);background:#ffffffe0;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}.admin-header-title{font-size:13px;font-weight:600}.admin-header-sep{width:1px;height:14px;background:var(--hairline)}.admin-header-meta{color:var(--ink-3);font-size:12px}.admin-header-right{display:flex;align-items:center;gap:12px;margin-left:auto;color:var(--ink-3);font-size:12px}.admin-header-live{display:inline-flex;align-items:center;gap:6px}.admin-locale-switch{display:inline-flex;overflow:hidden;border:1px solid var(--hairline);border-radius:6px}.admin-locale-switch button{padding:2px 8px;border:0;background:transparent;color:var(--ink-3);font-size:11px;line-height:16px;white-space:nowrap;cursor:pointer}.admin-locale-switch button[aria-pressed=true]{background:var(--series-revenue);color:#fff}.admin-header-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--status-good);box-shadow:0 0 0 3px #0ca30c1f}.admin-content{width:100%;max-width:1440px;margin:0 auto;padding:24px 28px 56px}.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.dash-title{margin:0;font-size:22px;font-weight:650;letter-spacing:-.02em}.dash-sub{margin:4px 0 0;color:var(--ink-2);font-size:12px}.dash-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.dash-controls-right{display:flex;align-items:center;gap:10px;margin-left:auto;color:var(--ink-3);font-size:11px}.today-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-bottom:16px;padding:10px 14px;border:1px solid var(--hairline-soft);border-radius:var(--radius-md);background:var(--surface-1);color:var(--ink-2);font-size:12px}.today-live{display:inline-flex;align-items:center;gap:6px;color:var(--ink-1);font-weight:600}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--status-good)}.today-date{color:var(--ink-3);font-size:11px}.today-metric strong{margin-left:2px;color:var(--ink-1);font-weight:600;font-variant-numeric:tabular-nums}.today-note{margin-left:auto;color:var(--ink-3);font-size:11px}.dash-section{margin-top:20px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-tile{position:relative;padding:16px 18px;border:1px solid var(--hairline-soft);border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:var(--shadow-card)}.stat-label{display:flex;align-items:center;gap:5px;color:var(--ink-2);font-size:12px}.stat-label svg{color:var(--ink-3)}.stat-value{margin-top:8px;color:var(--ink-1);font-size:26px;font-weight:650;line-height:1.15;letter-spacing:-.02em}.stat-value.is-muted{color:var(--ink-3)}.stat-hint{margin-top:6px;color:var(--ink-3);font-size:11px;line-height:1.5}.stat-hint .up{color:var(--good-ink)}.stat-hint .down{color:var(--bad-ink)}.panel-grid{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(0,1fr);gap:12px}.panel-grid>.panel{min-width:0}.panel{padding:20px;border:1px solid var(--hairline-soft);border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:var(--shadow-card)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}.panel-title{margin:0;color:var(--ink-1);font-size:15px;font-weight:600;letter-spacing:-.01em}.panel-sub{margin:2px 0 0;color:var(--ink-3);font-size:11px}.panel-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.panel-body{margin-top:14px}.refreshing{opacity:.55;transition:opacity .15s ease;pointer-events:none}.coverage-note{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;border:1px solid rgba(178,94,0,.22);border-radius:var(--radius-md);background:#fdf6ec;color:#6b4200;font-size:12px;line-height:1.6}.coverage-note svg{flex:0 0 auto;margin-top:2px;color:var(--status-warning);font-size:15px}.coverage-note strong{font-weight:600}.chart-card{min-width:0}.chart-body{position:relative;margin-top:10px}.chart-svg{display:block;width:100%;overflow:visible;touch-action:pan-y}.chart-svg text{font-family:var(--font-sans)}.chart-axis-label{fill:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}.chart-grid{stroke:var(--grid);stroke-width:1;shape-rendering:crispEdges}.chart-zero{stroke:var(--axis);stroke-width:1;shape-rendering:crispEdges}.chart-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-crosshair{stroke:var(--axis);stroke-width:1;shape-rendering:crispEdges}.chart-dot{stroke:var(--surface-1);stroke-width:2}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px;padding-left:4px}.legend-item{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);font-size:12px}.legend-key{width:16px;height:2px;border-radius:1px;background:var(--legend-color, var(--ink-3))}.legend-item.is-empty{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--hairline)}.legend-note{color:var(--ink-3);font-size:11px}.chart-tooltip{position:absolute;z-index:5;min-width:184px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:0 8px 24px #0b0b0b1a;pointer-events:none}.tt-date{margin-bottom:6px;color:var(--ink-3);font-size:11px}.tt-row{display:flex;align-items:center;gap:8px;padding:2px 0}.tt-key{flex:0 0 auto;width:12px;height:2px;border-radius:1px;background:var(--tt-color, var(--ink-3))}.tt-name{flex:1;color:var(--ink-2);font-size:12px}.tt-value{color:var(--ink-1);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.tt-value.is-null{color:var(--ink-3);font-weight:400}.chart-empty{display:flex;align-items:center;justify-content:center;min-height:260px;color:var(--ink-3);font-size:12px}.chart-table-wrap{margin-top:12px;max-height:360px;overflow:auto;border:1px solid var(--hairline-soft);border-radius:var(--radius-md)}.chart-table-wrap .ant-table{font-size:12px}.cost-total{margin-top:2px;color:var(--ink-1);font-size:24px;font-weight:650;letter-spacing:-.02em}.cost-total-cap{color:var(--ink-3);font-size:11px}.cost-bar{display:flex;gap:2px;height:12px;margin:16px 0 8px;border-radius:4px}.cost-seg{min-width:2px;height:100%}.cost-seg:first-child{border-radius:4px 0 0 4px}.cost-seg:last-child{border-radius:0 4px 4px 0}.cost-seg:only-child{border-radius:4px}.cost-legend{margin-top:10px}.cost-legend-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--hairline-soft);font-size:12px}.cost-legend-row:last-child{border-bottom:0}.cost-swatch{flex:0 0 auto;width:10px;height:10px;border-radius:2px}.cost-legend-name{flex:1;color:var(--ink-2)}.cost-legend-value{color:var(--ink-1);font-weight:500;font-variant-numeric:tabular-nums}.cost-legend-share{width:44px;color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:right}.cost-empty{padding:24px 0;color:var(--ink-3);font-size:12px;text-align:center}.cost-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline-soft);color:var(--ink-3);font-size:11px;line-height:1.6}.table-panel .ant-table{font-size:12px}.table-panel .ant-table-thead>tr>th{font-size:11px;font-weight:500;letter-spacing:.02em}.num-cell{font-variant-numeric:tabular-nums}.muted-cell{color:var(--ink-3)}.user-cell{display:flex;flex-direction:column;gap:1px}.user-cell-name{color:var(--ink-1);font-weight:500}.user-cell-phone{color:var(--ink-3);font-size:11px}.recon-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.recon-metric{padding:10px 12px;border:1px solid var(--hairline-soft);border-radius:var(--radius-md);background:var(--surface-2)}.recon-metric-label{color:var(--ink-3);font-size:11px}.recon-metric-value{margin-top:2px;color:var(--ink-1);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.recon-detail{margin:0;padding:4px 0;list-style:none;color:var(--ink-2);font-size:12px}.recon-detail li{padding:3px 0}.recon-detail code{padding:1px 5px;border-radius:4px;background:#0b0b0b0d;color:var(--ink-1);font-size:11px}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:500;white-space:nowrap}.status-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status-pill.is-ok{background:#eaf6ea;color:#176b17}.status-pill.is-discrepancy{background:#fdeeee;color:#a32020}.status-pill.is-skipped{background:#f1f1ee;color:var(--ink-2)}@media(max-width:1200px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.login-page{grid-template-columns:minmax(0,1fr)}.login-brand-panel{display:none}.login-card-mobile-brand{display:inline-flex;align-items:center;gap:9px;margin-bottom:22px;font-size:13px;font-weight:600}.admin-shell{grid-template-columns:minmax(0,1fr);background:var(--page)}.admin-sider{position:static;flex-direction:row;align-items:center;gap:12px;height:auto;padding:10px 16px;border-right:0;border-bottom:1px solid var(--hairline-soft)}.admin-brand{padding:0}.admin-brand-tag{display:none}.admin-nav{display:flex;gap:4px}.admin-nav-item{padding:6px 10px}.admin-sider-footer{display:flex;align-items:center;gap:8px;margin:0 0 0 auto;padding:0;border-top:0}.admin-user{padding:0}.admin-logout{width:auto;margin-top:0;padding:5px 9px}.admin-header{padding:0 18px}.admin-content{padding:20px 18px 48px}}@media(max-width:560px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-brand-name,.admin-user{display:none}.admin-nav-item,.admin-logout{white-space:nowrap}.admin-sider{gap:8px;padding:10px 12px}.admin-sider-footer{gap:0}.panel-head{flex-direction:column;align-items:stretch}.panel-actions{flex-wrap:wrap}.login-card{padding:28px 22px 24px;border:0;box-shadow:none;background:transparent}.login-form-panel{align-items:flex-start;padding-top:48px}.admin-header-meta,.admin-header-sep,.admin-user-meta{display:none}.dash-head{align-items:flex-start;flex-direction:column;gap:8px}.dash-controls-right,.today-note{margin-left:0}.recon-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:380px){.stat-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--page)}.panel-grid.is-tables{grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr)}.dash-foot{margin:22px 0 0;color:var(--ink-3);font-size:11px;line-height:1.7}@media(max-width:1200px){.panel-grid.is-tables{grid-template-columns:minmax(0,1fr)}}
