:root{--ds-font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;--ds-color-bg-canvas:#f8fafc;--ds-color-bg-surface:#fff;--ds-color-bg-subtle:#f3f4f6;--ds-color-bg-muted:#eef2f7;--ds-color-text-primary:#111827;--ds-color-text-secondary:#374151;--ds-color-text-muted:#6b7280;--ds-color-text-subtle:#9ca3af;--ds-color-border:#e5e7eb;--ds-color-border-strong:#d1d5db;--ds-color-brand:#4f46e5;--ds-color-brand-soft:#eef2ff;--ds-color-success:#10b981;--ds-color-success-soft:#ecfdf5;--ds-color-warning:#f59e0b;--ds-color-warning-soft:#fffbeb;--ds-color-danger:#ef4444;--ds-color-danger-soft:#fef2f2;--ds-color-chart-blue:#2563eb;--ds-color-chart-green:#10b981;--ds-color-chart-orange:#f59e0b;--ds-color-chart-purple:#4f46e5;--ds-space-1:4px;--ds-space-2:8px;--ds-space-3:12px;--ds-space-4:16px;--ds-space-6:24px;--ds-space-8:32px;--ds-font-size-xs:11px;--ds-font-size-sm:12px;--ds-font-size-md:13px;--ds-font-size-lg:16px;--ds-font-size-xl:20px;--ds-font-size-2xl:24px;--ds-font-weight-medium:650;--ds-font-weight-semibold:720;--ds-font-weight-bold:780;--ds-line-height-tight:1.15;--ds-line-height-normal:1.45;--ds-line-height-relaxed:1.55;--ds-radius-sm:8px;--ds-radius-md:10px;--ds-radius-lg:12px;--ds-radius-pill:999px;--ds-shadow-panel:0 1px 2px #1118270a;--ds-shadow-ring:0 0 0 3px #4f46e51f;--ds-motion-fast:.12s;--ds-motion-normal:.18s;--ds-motion-slow:.26s;--ds-ease-standard:cubic-bezier(.2, 0, 0, 1)}.dark{--ds-color-bg-canvas:#09090b;--ds-color-bg-surface:#111318;--ds-color-bg-subtle:#181b22;--ds-color-bg-muted:#20242c;--ds-color-text-primary:#f9fafb;--ds-color-text-secondary:#d1d5db;--ds-color-text-muted:#9ca3af;--ds-color-text-subtle:#6b7280;--ds-color-border:#272b33;--ds-color-border-strong:#3f4654;--ds-color-brand:#818cf8;--ds-color-brand-soft:#818cf824;--ds-color-success:#34d399;--ds-color-success-soft:#10b9811f;--ds-color-warning:#fbbf24;--ds-color-warning-soft:#f59e0b1f;--ds-color-danger:#f87171;--ds-color-danger-soft:#ef44441f;--ds-shadow-panel:0 1px 2px #00000047}.ds-card{border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);background:var(--ds-color-bg-surface);box-shadow:var(--ds-shadow-panel)}.ds-kpi-card{min-height:112px;padding:var(--ds-space-3)}.ds-dashboard-card{min-width:0;padding:var(--ds-space-3)}.ds-insight-card{gap:var(--ds-space-2);padding:var(--ds-space-3);display:grid}.ds-filter-bar{gap:var(--ds-space-2);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);background:var(--ds-color-bg-surface);box-shadow:var(--ds-shadow-panel);display:grid}.ds-segmented-control{align-items:center;gap:var(--ds-space-1);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-pill);background:var(--ds-color-bg-surface);padding:3px;display:inline-flex}body{background:var(--ds-color-background,#f8fafc);color:var(--ds-color-text,#111827);margin:0;font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button{font:inherit}.app-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.app-card,.auth-message{text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;gap:12px;width:min(420px,100%);padding:24px;display:grid;box-shadow:0 1px 2px #0f172a14}.app-card span{color:#4f46e5;font-size:13px;font-weight:800}.app-card h1,.auth-message strong{color:#111827;margin:0;font-size:24px;font-weight:800;line-height:1.3}.app-card p,.auth-message p{color:#64748b;margin:0;font-size:14px;line-height:1.6}.auth-page{background:#f8fafc;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-message{border-color:#ef444447}.auth-message strong{color:#dc2626}.auth-message.subtle{border-color:#e5e7eb}.auth-message.subtle strong{color:#111827}.topbar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-bottom:1px solid #e5e7eb;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:58px;padding:0 24px;display:grid;position:sticky;top:0}.brand,.topnav,.topnav a,.top-actions,.scope-chip,.icon-button{align-items:center;display:inline-flex}.brand{color:#111827;grid-column:1;justify-self:start;gap:10px;font-size:14px;font-weight:800}.brand-mark{color:#4f46e5;background:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-content:center;width:30px;height:30px}.topnav{background:#fff;border:1px solid #e5e7eb;border-radius:999px;grid-column:2;justify-self:center;gap:4px;padding:4px;box-shadow:0 1px 2px #0f172a0d}.topnav a{color:#64748b;white-space:nowrap;border-radius:999px;gap:6px;height:30px;padding:0 12px;font-size:13px;font-weight:800}.topnav a.router-link-active{color:#fff;background:#111827;box-shadow:0 1px 2px #0f172a2e}.top-actions{grid-column:3;justify-self:end;gap:8px}.scope-chip,.icon-button{color:#475569;background:#fff;border:1px solid #e5e7eb;border-radius:999px;justify-content:center;min-height:32px;box-shadow:0 1px 2px #0f172a0d}.scope-chip{padding:0 12px;font-size:13px;font-weight:800}.icon-button{cursor:pointer;width:32px}.dashboard-shell{width:min(1440px,100vw - 48px);margin:18px auto 32px}.placeholder-page{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-content:center;gap:8px;min-height:360px;padding:32px;display:grid;box-shadow:0 1px 2px #0f172a0d}.placeholder-page span{color:#4f46e5;font-size:13px;font-weight:800}.placeholder-page h1{color:#111827;margin:0;font-size:24px;font-weight:800;line-height:1.3}.placeholder-page p{color:#64748b;max-width:560px;margin:0;font-size:14px;line-height:1.7}.control-bar{background:#fff;border:1px solid #e5e7eb;border-radius:12px;grid-template-columns:minmax(280px,1.4fr) minmax(220px,1fr) minmax(220px,1fr) auto;align-items:end;gap:12px;padding:10px;display:grid;box-shadow:0 1px 2px #0f172a0d}.quick-range{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.quick-range>span,.control-bar label>span{color:#475569;align-items:center;gap:6px;width:100%;font-size:12px;font-weight:800;display:flex}.quick-range button,.primary-action{color:#334155;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;height:34px;padding:0 12px;font-size:13px;font-weight:800}.quick-range button.active{color:#4f46e5;background:#eef2ff;border-color:#c7d2fe}.control-bar label{gap:6px;display:grid}.control-bar input{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;height:34px;padding:0 12px;font-size:13px}.primary-action{color:#fff;white-space:nowrap;background:#111827;border-color:#111827;justify-content:center;align-items:center;gap:8px;display:inline-flex}.primary-action:disabled{cursor:not-allowed;opacity:.65}.inline-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:13px;font-weight:700}.overview-layout{grid-template-columns:minmax(0,1fr) 312px;align-items:start;gap:12px;margin-top:12px;display:grid}.overview-main{min-width:0;display:contents}.dense-metric-grid{grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:max-content;align-items:start;gap:10px;display:grid}.metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-content:start;min-width:0;min-height:98px;padding:12px;display:grid;box-shadow:0 1px 2px #0f172a0d}.metric-card.primary{border-left:3px solid #4f46e5}.metric-main{gap:7px;min-width:0;display:grid}.metric-label-row{color:#475569;justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;font-size:13px;font-weight:800;display:flex}.metric-label-row>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.metric-main strong{color:#020617;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:clamp(19px,1.35vw,24px);font-weight:900;line-height:1.16;overflow:hidden}.metric-subvalue{color:#ea580c;min-height:15px;font-size:12px;font-weight:700;line-height:1.2}.metric-delta{border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:48px;height:20px;padding:0 7px;font-size:12px;font-weight:900;display:inline-flex}.metric-delta.increase{color:#ea580c;background:#fff7ed}.metric-delta.decrease{color:#16a34a;background:#ecfdf5}.metric-delta.neutral{color:#64748b;background:#f1f5f9}.dashboard-grid{grid-column:1;align-content:start;gap:10px;display:grid}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 2px #0f172a0d}.main-panel{min-width:0;padding:16px 14px}.panel-heading{justify-content:space-between;align-items:start;gap:12px;margin-bottom:8px;display:flex}.panel-heading span,.rail-heading span{color:#64748b;font-size:12px;font-weight:800;display:block}.panel-heading h2,.rail-heading h2{color:#020617;margin:2px 0 0;font-size:17px;font-weight:900;line-height:1.35}.chart{width:100%;min-height:320px}.chart-large{height:360px}.analysis-aside{grid-area:2/2/span 20;align-self:start;min-width:0}.insight-rail{gap:12px;padding:12px;display:grid}.diagnosis-hero{background:linear-gradient(#fff 0%,#f8fafc 100%);border:1px solid #e5e7eb;border-radius:12px;gap:8px;padding:14px;display:grid}.diagnosis-hero.risk-high{background:#fef2f2;border-color:#fecaca}.diagnosis-hero.risk-medium{background:#fff7ed;border-color:#fed7aa}.diagnosis-hero.risk-low{background:#f0fdf4;border-color:#bbf7d0}.diagnosis-kicker{color:#4f46e5;font-size:12px;font-weight:900}.diagnosis-status{color:#020617;align-items:center;gap:8px;font-size:18px;font-weight:900;display:inline-flex}.diagnosis-hero h2,.diagnosis-section h3{color:#020617;margin:0;font-size:15px;font-weight:900;line-height:1.45}.diagnosis-hero p,.diagnosis-section p,.diagnosis-issue p{color:#475569;margin:0;font-size:13px;line-height:1.65}.diagnosis-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.diagnosis-metric{background:#fff;border:1px solid #e5e7eb;border-radius:10px;gap:4px;min-width:0;padding:10px;display:grid}.diagnosis-metric span{color:#64748b;font-size:12px;font-weight:800}.diagnosis-metric strong{color:#020617;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(15px,1.05vw,18px);font-weight:900;line-height:1.25;overflow:hidden}.diagnosis-metric.strong{background:#fff7ed;border-color:#fed7aa}.diagnosis-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;gap:8px;padding:12px;display:grid}.diagnosis-section.action{background:#f8fafc;border-left:3px solid #4f46e5}.diagnosis-section-title{color:#64748b;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:900;display:flex}.diagnosis-section-title span{color:#4f46e5;background:#eef2ff;border-radius:999px;justify-content:center;align-items:center;width:26px;height:20px;display:inline-flex}.diagnosis-issue-list{gap:8px;display:grid}.diagnosis-issue{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;gap:5px;padding:10px;display:grid}.diagnosis-issue.risk-high{background:#fef2f2;border-color:#fecaca}.diagnosis-issue.risk-medium{background:#fff7ed;border-color:#fed7aa}.diagnosis-issue.risk-low{background:#f0fdf4;border-color:#bbf7d0}.diagnosis-issue span{color:#64748b;font-size:12px;font-weight:800}.diagnosis-issue strong{color:#020617;font-size:14px;font-weight:900;line-height:1.4}.diagnosis-path{grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:8px;margin-top:2px;display:grid}.diagnosis-path span{color:#3730a3;white-space:nowrap;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900}.diagnosis-path b{background:#cbd5e1;height:1px}.diagnosis-scope{border-top:1px dashed #cbd5e1;gap:5px;padding:2px 2px 0;display:grid}.diagnosis-scope strong{color:#020617;font-size:14px;font-weight:900;line-height:1.4}.diagnosis-scope span{color:#64748b;font-size:12px;line-height:1.55}.rail-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;gap:8px;padding:12px;display:grid}.rail-card.primary{background:#eef2ff;border-color:#c7d2fe}.rail-card.recommendation{background:#f8fafc;border-left:3px solid #4f46e5}.rail-card.risk-high{background:#fef2f2;border-color:#fecaca}.rail-card.risk-medium{background:#fff7ed;border-color:#fed7aa}.rail-card.risk-low{background:#f0fdf4;border-color:#bbf7d0}.rail-card span{color:#64748b;font-size:12px;font-weight:800}.rail-card strong{color:#020617;align-items:center;gap:8px;font-size:15px;font-weight:900;line-height:1.45;display:flex}.rail-card p{color:#475569;margin:0;font-size:13px;line-height:1.6}.risk-dot{border-radius:999px;flex:none;width:10px;height:10px}.risk-dot.risk-high{background:#ef4444}.risk-dot.risk-medium{background:#f59e0b}.risk-dot.risk-low{background:#22c55e}.table-panel{grid-column:1;padding:16px 14px}.table-wrap{width:100%;overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}.table-wrap th,.table-wrap td{color:#334155;text-align:left;white-space:nowrap;border-bottom:1px solid #e5e7eb;padding:12px 10px}.table-wrap th{color:#64748b;background:#f8fafc;font-size:12px;font-weight:900}.table-wrap td:first-child{color:#020617;font-weight:800}@media (width<=1120px){.control-bar{grid-template-columns:minmax(280px,1fr) minmax(220px,1fr)}.primary-action{min-height:34px}}@media (width<=900px){.topbar{grid-template-columns:1fr;height:auto;padding:12px}.brand,.topnav,.top-actions{grid-column:auto;justify-self:stretch}.topnav{overflow-x:auto}.top-actions{justify-content:space-between}.dashboard-shell{width:calc(100vw - 24px);margin-top:12px}.control-bar{grid-template-columns:1fr}.metric-main strong{font-size:clamp(21px,4.8vw,24px)}}@media (width<=760px){.overview-layout{grid-template-columns:1fr}.dashboard-grid,.table-panel,.analysis-aside{grid-column:1}.analysis-aside{grid-row:auto;width:100%}}
