:root{color-scheme:light;--bg: #f5f7fa;--surface: #ffffff;--surface-2: #eef2f7;--line: #d8e0ea;--ink: #17202f;--muted: #687386;--good: #147a46;--good-bg: #e7f6ed;--risk: #b33a2e;--risk-bg: #fdeceb;--accent: #2454d6;--accent-bg: #e8eefc;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button{border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);height:36px;padding:0 12px;font:inherit}button:disabled{cursor:not-allowed;opacity:.58}.mode-badge{display:inline-flex;align-items:center;height:36px;border:1px solid #b8e2c9;border-radius:999px;padding:0 12px;background:var(--good-bg);color:var(--good);font-size:13px;font-weight:700}.shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{border-right:1px solid var(--line);background:#111827;color:#f8fafc;padding:20px 14px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 22px}.brand span{display:grid;place-items:center;width:36px;height:36px;border-radius:6px;background:#2f6fed;font-weight:700}.brand strong{font-size:16px}.sidebar nav{display:grid;gap:6px}.sidebar nav button{display:flex;align-items:center;justify-content:space-between;width:100%;height:auto;min-height:40px;border:0;border-radius:6px;background:transparent;color:#cbd5e1;padding:10px 12px;text-align:left;cursor:pointer}.sidebar nav button.active,.sidebar nav button:not(:disabled):hover{background:#ffffff1a;color:#fff}.sidebar nav button:disabled{cursor:not-allowed;opacity:.62}.sidebar nav small{color:#94a3b8;font-size:11px}.content{padding:22px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.topbar p{margin:0 0 6px;color:var(--muted)}h1,h2{margin:0;letter-spacing:0}h1{font-size:26px;line-height:1.2}h2{font-size:16px}.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filter-select{display:inline-flex;align-items:center;gap:8px;height:36px;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:var(--surface);color:var(--ink)}.filter-select span{color:var(--muted);font-size:13px;font-weight:700}.filter-select select{min-width:104px;border:0;background:transparent;color:var(--ink);font:inherit;outline:none}.mobile-nav{display:none;gap:8px;overflow-x:auto;margin-bottom:12px;padding-bottom:4px}.mobile-nav button{flex:0 0 auto;white-space:nowrap}.mobile-nav button.active{border-color:var(--accent);background:var(--accent-bg);color:#1f469f;font-weight:700}.notice{display:flex;align-items:center;gap:12px;min-height:42px;margin-bottom:12px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--surface);font-size:13px}.notice.error{border-color:#f4b8b3;background:var(--risk-bg);color:var(--risk)}.notice.info{border-color:#c7d4f8;background:var(--accent-bg);color:#1f469f}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin-bottom:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px;min-height:86px;display:flex;flex-direction:column;justify-content:space-between}.kpi span{color:var(--muted);font-size:13px}.kpi strong{font-size:24px;overflow-wrap:anywhere}.kpi.loading strong{position:relative;overflow:hidden;width:70%;height:29px;border-radius:6px;background:var(--surface-2)}.kpi.loading strong:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:shimmer 1.2s ease-in-out infinite}.kpi.good{background:var(--good-bg);border-color:#b8e2c9}.kpi.risk{background:var(--risk-bg);border-color:#f4b8b3}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}.bigscreen-overview{position:relative;overflow:hidden;display:grid;gap:14px;border:1px solid rgba(14,253,255,.28);border-radius:8px;padding:18px;background:linear-gradient(180deg,#041230fa,#030a1ffa),repeating-linear-gradient(90deg,rgba(14,253,255,.05) 0,rgba(14,253,255,.05) 1px,transparent 1px,transparent 96px);color:#e8feff;box-shadow:inset 0 0 42px #0efdff1a,0 16px 40px #02081838}.bigscreen-title{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);align-items:center;gap:18px;min-height:48px;color:#7ffcff}.bigscreen-title:before,.bigscreen-title:after{content:"";height:1px;background:linear-gradient(90deg,transparent,rgba(14,253,255,.78))}.bigscreen-title:after{background:linear-gradient(90deg,rgba(14,253,255,.78),transparent)}.bigscreen-title h2{color:#bffcff;font-size:26px;text-shadow:0 0 14px rgba(14,253,255,.74);white-space:nowrap}.bigscreen-title span{color:#e8feffc2;font-size:13px;font-weight:700}.bigscreen-title span:first-child{justify-self:start}.bigscreen-title span:last-child{justify-self:end}.bigscreen-overview .panel,.bigscreen-overview .kpi{position:relative;border-color:#0efdff6b;background:#031539ad;color:#e8feff;box-shadow:inset 0 0 22px #0efdff14,0 0 18px #0efdff14}.bigscreen-overview .panel:before,.bigscreen-overview .kpi:before,.bigscreen-overview .panel:after,.bigscreen-overview .kpi:after{position:absolute;width:20px;height:20px;content:"";pointer-events:none}.bigscreen-overview .panel:before,.bigscreen-overview .kpi:before{left:-1px;top:-1px;border-left:2px solid #0efdff;border-top:2px solid #0efdff}.bigscreen-overview .panel:after,.bigscreen-overview .kpi:after{right:-1px;bottom:-1px;border-right:2px solid #0efdff;border-bottom:2px solid #0efdff}.bigscreen-overview .panel-head h2,.bigscreen-overview .kpi span{color:#d9fbff}.bigscreen-overview .panel-head span,.bigscreen-overview .panel-note{color:#e8feffb3}.bigscreen-overview .kpi strong{color:#0efdff;text-shadow:0 0 14px rgba(14,253,255,.55)}.bigscreen-overview .kpi.good strong{color:#74ffc7}.bigscreen-overview .kpi.risk strong{color:#ff9fba}.bigscreen-overview .kpi.good,.bigscreen-overview .kpi.risk{background:#031539b8}.bigscreen-overview .split-bar{background:#e8feff14;box-shadow:inset 0 0 12px #0efdff1f}.bigscreen-overview .outbound{background:linear-gradient(90deg,#188df0,#0efdff);color:#021126}.bigscreen-overview .inbound{background:linear-gradient(90deg,#147a46,#74ffc7);color:#021126}.bigscreen-overview .rank-track{background:#e8feff24}.bigscreen-overview .rank-bar{background:linear-gradient(90deg,#188df0,#0efdff)}.bigscreen-overview .rank-label strong,.bigscreen-overview .amount,.bigscreen-overview td{color:#e8feff}.bigscreen-overview .rank-label span,.bigscreen-overview th{color:#e8feffad}.bigscreen-overview th,.bigscreen-overview td{border-bottom-color:#0efdff2e}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}.panel.wide{grid-column:1 / -1}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.panel-head span,.panel-note{color:var(--muted);font-size:13px}.import-view,.franchise-view{display:grid;gap:12px}.chart-rank-15{min-height:560px}.franchise-detail-table{min-width:1080px;table-layout:fixed}.franchise-detail-table th:first-child,.franchise-detail-table td:first-child{width:30%}.franchise-detail-table th:nth-child(2),.franchise-detail-table td:nth-child(2){width:110px}.franchise-detail-table th:nth-child(n+3),.franchise-detail-table td:nth-child(n+3){width:15%}.site-view,.flow-view,.deduction-view,.analysis-view{display:grid;gap:12px}.analysis-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:18px;align-items:start}.analysis-hero h2{font-size:22px;margin-bottom:8px}.analysis-hero p{max-width:76ch;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.analysis-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.analysis-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}.analysis-section{display:grid;gap:12px}.analysis-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.analysis-row-action{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:start;width:100%;height:auto;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 12px;text-align:left;cursor:pointer}.analysis-row-action:last-child{border-bottom:0;padding-bottom:0}.analysis-row-action:hover,.analysis-row-action:focus-visible,.analysis-row-action.active{color:var(--ink);outline:none}.analysis-row-action.active strong{color:#1f469f}.analysis-row-action.active span{color:#314a7f}.analysis-list strong,.analysis-option strong,.dispatch-factor-grid strong{font-size:14px}.analysis-list span,.analysis-option span,.dispatch-factor-grid span{color:var(--muted);font-size:13px;line-height:1.65}.analysis-summary-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;border-radius:8px;padding:12px;background:var(--accent-bg);color:#1f469f}.analysis-summary-row span{font-size:13px;font-weight:700}.analysis-summary-row strong{font-size:22px}.analysis-cards,.dispatch-factor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.analysis-option,.dispatch-factor-grid div{display:grid;align-content:start;gap:8px;min-height:112px;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--surface-2)}.analysis-option{width:100%;height:auto;text-align:left;cursor:pointer}.analysis-option:hover,.analysis-option:focus-visible,.analysis-option.active{border-color:var(--accent);background:var(--accent-bg);outline:none}.analysis-option.active strong{color:#1f469f}.analysis-mode-panel{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfe}.analysis-mode-panel.compact-panel{margin-top:12px}.panel-head.compact{margin-bottom:0}.action-table tbody tr{cursor:pointer}.action-table tbody tr:hover,.action-table tbody tr.active{background:var(--accent-bg)}.action-table tbody tr.active td:first-child{color:#1f469f;font-weight:700}.analysis-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.analysis-toolbar label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.analysis-toolbar select{min-width:min(520px,78vw);height:36px;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:var(--surface);color:var(--ink);font:inherit}.compact-kpis{margin-bottom:0}.import-summary{display:grid;grid-template-columns:1.2fr .8fr;gap:12px}.upload-panel{display:grid;gap:12px}.upload-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-picker{position:relative;display:inline-flex;align-items:center;min-width:min(100%,360px);max-width:100%;min-height:38px;border:1px dashed var(--line);border-radius:8px;padding:8px 12px;background:var(--surface-2);color:var(--ink);cursor:pointer}.file-picker input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-picker span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.primary-action{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.primary-action:disabled{border-color:var(--line);background:var(--surface-2);color:var(--muted)}.success-note{color:var(--good)}.error-note{color:var(--risk);overflow-wrap:anywhere}.status-pill,.result-pass,.result-fail{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:700}.status-pill.completed,.result-pass{background:var(--good-bg);color:var(--good)}.status-pill.failed,.result-fail{background:var(--risk-bg);color:var(--risk)}.status-pill.pending,.status-pill.running{background:var(--accent-bg);color:#1f469f}.job-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;color:var(--muted);font-size:13px}.job-meta strong{color:var(--ink)}.progress-track{height:10px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.progress-bar{height:100%;background:var(--accent)}.validation-score{display:grid;gap:4px;margin:8px 0 16px}.validation-score strong{font-size:36px;line-height:1}.validation-score span{color:var(--muted);font-size:13px}.validation-counts{display:flex;gap:8px;flex-wrap:wrap}.validation-counts span{border-radius:999px;padding:5px 9px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:700}.validation-counts .pass{background:var(--good-bg);color:var(--good)}.validation-counts .fail{background:var(--risk-bg);color:var(--risk)}.insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.comparison-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.comparison-grid .kpi{min-height:78px}.comparison-grid .kpi strong{font-size:20px}.insight-grid div{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--surface-2)}.insight-grid strong{font-size:24px}.insight-grid span{color:var(--muted);font-size:13px;line-height:1.5}.split-bar{display:flex;height:46px;border-radius:6px;overflow:hidden;background:var(--surface-2);color:#fff;font-size:13px;font-weight:600}.split-bar div{display:flex;align-items:center;padding:0 14px;min-width:fit-content}.outbound{background:var(--accent)}.inbound{background:var(--good)}.rank-list{display:grid;gap:12px}.compact-list{margin-top:12px}.chart{width:100%;min-width:0}.chart-rank{height:260px}.chart-heatmap{height:360px}.chart-trend{height:260px}.empty-panel,.empty-cell{color:var(--muted);font-size:13px}.empty-panel{display:grid;place-items:center;min-height:96px;border:1px dashed var(--line);border-radius:8px;background:var(--surface-2)}.empty-cell{text-align:center}.rank-row{display:grid;grid-template-columns:minmax(180px,1.1fr) 1fr 100px;gap:12px;align-items:center}.rank-label{display:grid;gap:3px}.rank-label strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-label span{color:var(--muted);font-size:12px}.rank-track{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden}.rank-bar{height:100%;background:var(--accent)}.rank-bar.negative{background:var(--risk)}.amount{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.negative-text{color:var(--risk)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}th{color:var(--muted);font-weight:600}.snapshot-view,.dashboard-page{display:grid;gap:12px}.dashboard-page .screen-title,.dashboard-page .screen-hero-metric{display:none}.dashboard-page .screen-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin-bottom:0}.dashboard-page .screen-top-grid,.dashboard-page .screen-bottom-grid,.dashboard-page .structure-top-grid,.dashboard-page .structure-bottom-grid,.dashboard-page .supplier-bottom-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}.dashboard-page .screen-top-grid>.panel:first-child,.dashboard-page .screen-bottom-grid>.panel:nth-child(2),.dashboard-page .flow-heatmap-panel,.dashboard-page .map-frame-panel{grid-column:1 / -1}.dashboard-page .panel-head{min-height:auto}.dashboard-page .screen-chart{height:260px}.dashboard-page.structure-flow-view .structure-top-grid,.dashboard-page.structure-flow-view .structure-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-page.structure-flow-view .screen-kpi-row{grid-template-columns:repeat(2,minmax(220px,1fr))}.dashboard-page.structure-flow-view .structure-top-grid>.panel:first-child,.dashboard-page.structure-flow-view .structure-top-grid>.panel:nth-child(2),.dashboard-page.structure-flow-view .structure-bottom-grid>.panel:nth-child(2){grid-column:auto}.dashboard-page.structure-flow-view .flow-share-panel{grid-column:1 / -1}.dashboard-page.structure-flow-view .flow-share-table{min-width:100%}.dashboard-page.map-screen{min-height:auto}.snapshot-screen{position:relative;overflow:hidden;border:1px solid rgba(14,253,255,.18);border-radius:8px;padding:18px;background:radial-gradient(circle at 50% 0%,rgba(14,253,255,.16),transparent 30%),linear-gradient(180deg,#041230fa,#02081afa);color:#e8feff;box-shadow:inset 0 0 60px #0efdff14,0 18px 42px #0208183d}.screen-title{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);align-items:center;gap:18px;min-height:52px;color:#7ffcff}.screen-title:before,.screen-title:after{content:"";height:1px;background:linear-gradient(90deg,transparent,rgba(14,253,255,.78))}.screen-title:after{background:linear-gradient(90deg,rgba(14,253,255,.78),transparent)}.screen-title h2{color:#dffcff;border:1px solid rgba(14,253,255,.46);border-radius:4px;padding:10px 82px;background:#041436d1;box-shadow:inset 0 0 18px #0efdff2e,0 0 18px #0efdff33;font-size:30px;white-space:nowrap;text-shadow:0 0 14px rgba(14,253,255,.74)}.screen-title span{color:#e8feffc2;font-size:13px;font-weight:700}.screen-title span:last-child{justify-self:end}.screen-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.screen-hero-metric{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);align-items:center;gap:26px;min-height:92px;color:#16f7ff}.screen-hero-metric span{justify-self:end;font-size:25px;font-weight:800;text-shadow:0 0 12px rgba(22,247,255,.58)}.screen-hero-metric strong{display:inline-grid;place-items:center;min-width:112px;min-height:72px;border:1px solid rgba(14,253,255,.48);color:#16f7ff;font-size:44px;font-variant-numeric:tabular-nums;text-shadow:0 0 14px rgba(22,247,255,.7);box-shadow:inset 0 0 18px #0efdff29}.screen-hero-metric i{color:#e8feffb3;font-style:normal;font-weight:700}.screen-top-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px}.screen-bottom-grid{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:12px}.supplier-bottom-grid{grid-template-columns:.9fr 2fr}.structure-top-grid{grid-template-columns:1fr 1fr .8fr}.structure-bottom-grid{grid-template-columns:.95fr .95fr 1.35fr .85fr .85fr}.structure-top-grid .wide,.flow-heatmap-panel{min-width:0}.structure-weight-chart{height:300px}.structure-weight-table{min-width:560px}.compact-insights{grid-template-columns:1fr}.snapshot-screen .kpi,.screen-panel{position:relative;border-color:#0efdff61;background:#031539b8;color:#e8feff;box-shadow:inset 0 0 22px #0efdff14,0 0 18px #0efdff14}.screen-panel .panel-head{min-height:32px;border-bottom:1px solid rgba(14,253,255,.18);padding-bottom:8px}.snapshot-screen .kpi:before,.snapshot-screen .kpi:after,.screen-panel:before,.screen-panel:after{position:absolute;width:20px;height:20px;content:"";pointer-events:none}.snapshot-screen .kpi:before,.screen-panel:before{left:-1px;top:-1px;border-left:2px solid #0efdff;border-top:2px solid #0efdff}.snapshot-screen .kpi:after,.screen-panel:after{right:-1px;bottom:-1px;border-right:2px solid #0efdff;border-bottom:2px solid #0efdff}.snapshot-screen .kpi span,.snapshot-screen .panel-head h2{color:#d9fbff}.snapshot-screen .panel-head span,.snapshot-screen .panel-note,.snapshot-screen th{color:#e8feffad}.snapshot-screen .kpi strong{color:#0efdff;text-shadow:0 0 14px rgba(14,253,255,.55)}.snapshot-screen .kpi.good,.snapshot-screen .kpi.risk{background:#031539b8}.snapshot-screen .kpi.good strong{color:#74ffc7}.snapshot-screen .kpi.risk strong,.snapshot-screen .negative-text{color:#ff9fba}.snapshot-screen .positive-text{color:#74ffc7}.snapshot-screen td{color:#e8feff}.snapshot-screen th,.snapshot-screen td{border-bottom-color:#0efdff2e}.snapshot-screen .filter-select,.snapshot-screen select,.snapshot-screen button{border-color:#0efdff47;background:#020c22c2;color:#e8feff}.snapshot-screen .metric-track{background:#e8feff1f}.snapshot-screen .empty-panel{color:#e8feffa3}.screen-chart{height:250px}.supplier-detail-panel{min-width:0}.map-screen{min-height:calc(100vh - 120px)}.map-frame-panel{overflow:hidden;padding:8px;min-height:720px}.map-frame{display:block;width:100%;height:min(760px,calc(100vh - 210px));min-height:640px;border:0;border-radius:6px;background:#020a1c}.snapshot-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.table-scroll{width:100%;overflow-x:auto}.dense-table{min-width:760px;table-layout:fixed}.dense-table th,.dense-table td{vertical-align:middle;white-space:nowrap}.dense-table td{overflow:hidden;text-overflow:ellipsis}.dense-table .number,th.number,td.number{text-align:right;font-variant-numeric:tabular-nums}.rank-table th:nth-child(1),.rank-table td:nth-child(1){width:72px}.rank-table th:nth-child(2),.rank-table td:nth-child(2){width:300px}.rank-table th:nth-child(3),.rank-table td:nth-child(3){width:120px}.rank-table th:nth-child(4),.rank-table td:nth-child(4){width:150px}.flow-result-table th:nth-child(1),.flow-result-table td:nth-child(1),.supplier-result-table th:nth-child(2),.supplier-result-table td:nth-child(2){width:160px}.flow-result-table th:nth-child(2),.flow-result-table td:nth-child(2),.supplier-result-table th:nth-child(3),.supplier-result-table td:nth-child(3){width:140px}.supplier-result-table th:nth-child(1),.supplier-result-table td:nth-child(1){width:300px}.snapshot-toolbar{align-items:end;margin-bottom:12px}.snapshot-toolbar label{min-width:220px}.snapshot-toolbar select{width:100%}.supplier-filter-panel{padding-bottom:12px}.supplier-filter-panel .panel-head{margin-bottom:8px}.supplier-filter-panel .snapshot-toolbar{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;margin-bottom:0}.supplier-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-bars{display:grid;gap:10px}.metric-bar-row{display:grid;grid-template-columns:minmax(120px,180px) minmax(140px,1fr) 92px;align-items:center;gap:10px;min-height:30px}.metric-bar-row span{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.metric-bar-row strong{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.metric-track{height:10px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.metric-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2454d6,#0ea5e9)}.as-bars .metric-track i{background:linear-gradient(90deg,#147a46,#22c55e)}.selected-row{background:var(--accent-bg)}.table-link{height:auto;border:0;border-radius:4px;padding:2px 4px;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}.table-link:hover,.table-link:focus-visible{background:var(--surface);outline:1px solid var(--accent)}@keyframes shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.kpi.loading strong:after{animation:none}}@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-nav{display:flex}.topbar{flex-direction:column}.filters{justify-content:flex-start}.kpi-grid,.dashboard-grid,.import-summary,.insight-grid,.comparison-grid,.analysis-hero,.analysis-grid,.analysis-stats,.analysis-cards,.dispatch-factor-grid,.snapshot-grid,.supplier-visual-grid,.screen-top-grid,.screen-bottom-grid,.structure-top-grid,.structure-bottom-grid,.supplier-filter-panel .snapshot-toolbar,.screen-kpi-row{grid-template-columns:1fr}.screen-title{grid-template-columns:1fr;gap:6px;text-align:center}.screen-title:before,.screen-title:after{display:none}.screen-title span:last-child{justify-self:center}.screen-hero-metric{grid-template-columns:1fr;gap:8px;text-align:center}.screen-hero-metric span,.screen-hero-metric i{justify-self:center}.bigscreen-title{grid-template-columns:1fr;gap:6px;text-align:center}.bigscreen-title:before,.bigscreen-title:after{display:none}.bigscreen-title span:first-child,.bigscreen-title span:last-child{justify-self:center}}@media(max-width:680px){.content{padding:14px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bigscreen-overview{padding:12px}.bigscreen-title h2{font-size:20px;white-space:normal}.snapshot-screen{padding:12px}.screen-title h2{font-size:20px;padding:8px 14px;white-space:normal}.map-frame-panel{min-height:560px}.map-frame{min-height:520px}.rank-row,.analysis-row-action{grid-template-columns:1fr;gap:6px}.amount{text-align:left}.chart-rank{height:300px}.chart-heatmap{height:420px}}
