.dash{--dv-accent:#5b9bff;--dv-ok:#34d399;--dv-warn:#fdb43c;--dv-bad:#f87171;--dv-idle:#7b7f94;--dv-grid:hsla(0,0%,100%,.09);--dv-up:#34d399;--dv-down:#f87171;display:flex;flex-direction:column;gap:20px}[data-theme=light] .dash{--dv-accent:#1d5fd8;--dv-ok:#0f7a55;--dv-warn:#a86a00;--dv-bad:#b42318;--dv-idle:#6b7280;--dv-grid:rgba(0,0,0,.09);--dv-up:#0f7a55;--dv-down:#b42318}.dash-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.dash-head h1{margin:0}.dash-head p{margin:4px 0 0;color:var(--text-muted);font-size:14px}.dash-range{display:inline-flex;padding:3px;border:1px solid var(--border-strong);border-radius:12px;background:var(--bg-panel)}.dash-range button{min-width:56px;min-height:44px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--text-muted);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.dash-range button[aria-pressed=true]{background:var(--dv-accent);color:#fff}.dash-range button:focus-visible{outline:2px solid var(--dv-accent);outline-offset:2px}.dash-grid-kpi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media (min-width:900px){.dash-grid-kpi{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}.dash-card{min-width:0;padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--bg-panel)}.dash-card h2{margin:0;font-size:15px;font-weight:650;color:var(--text)}.dash-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.dash-card-sub{margin:2px 0 0;font-size:13px;color:var(--text-muted)}.dash-card-figure{text-align:right;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}.dash-grid-2,.dash-grid-3{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:16px}@media (min-width:900px){.dash-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dash-kpi{display:flex;flex-direction:column;gap:4px;min-height:148px;padding:16px}.dash-kpi-label{font-size:13px;font-weight:600;color:var(--text-muted)}.dash-kpi-value{font-size:26px;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);overflow-wrap:anywhere}.dash-kpi-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px}.dash-delta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}.dash-delta svg{width:14px;height:14px}.dash-delta-up{color:var(--dv-up)}.dash-delta-down{color:var(--dv-down)}.dash-delta-flat,.dash-kpi-note{color:var(--text-muted);font-size:12px}.dash-spark{display:block;width:100%;height:36px}.dash-spark-empty{border-bottom:1px dashed var(--dv-grid)}.dash-line{fill:none;stroke:var(--dv-accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.dash-plot{grid-template-rows:minmax(0,1fr);display:grid;grid-template-columns:auto minmax(0,1fr);-moz-column-gap:8px;column-gap:8px;padding-bottom:22px}.dash-yaxis{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:11px;line-height:1;color:var(--text-muted);font-variant-numeric:tabular-nums}.dash-canvas{position:relative;min-width:0;touch-action:pan-y}.dash-canvas>svg{display:block;width:100%;height:100%;overflow:visible}.dash-grid{stroke:var(--dv-grid);stroke-width:1;vector-effect:non-scaling-stroke}.dash-xaxis{position:absolute;left:0;right:0;bottom:-22px;display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.dash-cursor{top:0;bottom:0;width:1px;background:var(--text-muted)}.dash-cursor,.dash-tip{position:absolute;pointer-events:none}.dash-tip{top:4px;z-index:2;min-width:132px;max-width:220px;padding:8px 10px;transform:translateX(10px);border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-panel-soft);color:var(--text);font-size:12px;box-shadow:0 6px 20px rgba(0,0,0,.25)}.dash-tip-left{transform:translateX(calc(-100% - 10px))}.dash-tip-title{margin-bottom:4px;color:var(--text-muted);font-weight:600}.dash-tip-row{display:flex;align-items:center;gap:6px}.dash-tip-row strong{margin-left:auto;font-variant-numeric:tabular-nums}.dash-swatch{flex:none;width:8px;height:8px;border-radius:2px}.dash-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:12px;font-size:12px;color:var(--text-muted)}.dash-legend span{display:inline-flex;align-items:center;gap:6px}.dash-ranked{display:flex;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none}.dash-ranked-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:13px}.dash-ranked-label{min-width:0;overflow-wrap:anywhere;color:var(--text)}.dash-ranked-value{flex:none;font-weight:650;font-variant-numeric:tabular-nums;color:var(--text)}.dash-ranked-track{height:8px;border-radius:4px;background:var(--dv-grid)}.dash-ranked-fill{height:100%;border-radius:4px;background:var(--dv-accent)}.dash-ranked-hint{margin-top:4px;font-size:12px;color:var(--text-muted)}.dash-segbar{display:flex;height:12px;gap:2px;overflow:hidden;border-radius:6px;background:var(--dv-grid)}.dash-seglist{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none;font-size:13px}.dash-seglist li{display:flex;align-items:center;gap:8px;color:var(--text)}.dash-seglabel{color:var(--text-muted)}.dash-seglist strong{margin-left:auto;font-variant-numeric:tabular-nums}.dash-skeleton{border-radius:10px;background:linear-gradient(90deg,var(--dv-grid),transparent,var(--dv-grid));background-size:200% 100%;animation:dash-shimmer 1.4s linear infinite}@keyframes dash-shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.dash-skeleton{animation:none}}.dash-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 8px;text-align:center;font-size:13px;color:var(--text-muted)}.dash-state svg{width:22px;height:22px}.dash-state button{min-height:44px;padding:0 16px;border:1px solid var(--border-strong);border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer}.dash-table-card{padding:0;overflow:hidden}.dash-table-card .dash-card-head{margin:0;padding:20px 20px 12px}.dash-kpi-value-na{font-size:15px;font-weight:600;color:var(--text-muted)}