/* Wave 7B tools and data freshness. Reads shell tokens only. */
.w7-badges { margin: 0 0 var(--s2, 8px); display: flex; flex-wrap: wrap; gap: 6px; }
.w7-hook { display: grid; gap: 4px; }
.w7-hook__n { font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3rem); font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; color: var(--warn-text); overflow-wrap: anywhere; }
.w7-hook p { margin: 0; }
.w7-fig { margin: var(--s4, 16px) 0 0; }
.w7-cap { font-weight: 650; font-size: .9375rem; margin-bottom: var(--s2, 8px); }
.w7-svg { display: block; width: 100%; height: auto; max-width: 100%; }
.w7-t { fill: var(--text-2); font-size: 12px; font-family: var(--font); }
.w7-tb { fill: var(--text); font-weight: 650; }
.w7-tv { fill: var(--text); font-weight: 650; font-variant-numeric: tabular-nums; }
.w7-grid { stroke: var(--line); stroke-width: 1; }
.w7-axis { stroke: var(--line-2); stroke-width: 1; }
.w7-mark { stroke: var(--text-2); stroke-width: 1.5; stroke-dasharray: 4 3; }
.w7-link { stroke: var(--line-2); stroke-width: 1; stroke-dasharray: 2 3; }
.w7-ln { fill: none; stroke-width: 2.75; stroke-linejoin: round; stroke-linecap: round; }
.w7-ln--a { stroke: var(--c1); }
.w7-ln--b { stroke: var(--c2); stroke-dasharray: 8 5; }
.w7-ln--c { stroke: var(--c3); stroke-dasharray: 2 5; }
.w7-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; padding: 0; margin: var(--s2, 8px) 0 0; font-size: .875rem; color: var(--text-2); }
.w7-legend li { display: inline-flex; align-items: center; gap: 6px; }
.w7-sw { width: 22px; height: 0; border-top: 3px solid var(--c1); display: inline-block; }
.w7-sw--a { border-color: var(--c1); }
.w7-sw--b { border-top-style: dashed; border-color: var(--c2); }
.w7-sw--c { border-top-style: dotted; border-color: var(--c3); }
.w7-sw--fuel, .w7-sw--driver, .w7-sw--maint, .w7-sw--fixed, .w7-sw--toll { width: 14px; height: 14px; border: 1px solid var(--line-2); border-radius: 3px; }
.w7-sw--fuel { background: var(--c1); } .w7-sw--driver { background: var(--c2); } .w7-sw--maint { background: var(--c3); } .w7-sw--fixed { background: var(--c4); } .w7-sw--toll { background: var(--c5); }
.w7-seg--fuel { fill: var(--c1); } .w7-seg--driver { fill: var(--c2); } .w7-seg--maint { fill: var(--c3); } .w7-seg--fixed { fill: var(--c4); } .w7-seg--toll { fill: var(--c5); }
.w7-seg { stroke: var(--surface); stroke-width: 1; }
.w7-bar--total { fill: var(--c4); }
.w7-bar--good { fill: var(--good); }
.w7-bar--bad { fill: var(--bad); }
.w7-bad { color: var(--bad-text); }
.w7-ctx { margin-top: var(--s4, 16px); border: 1px solid var(--line); border-left: 3px solid var(--info, var(--accent)); background: var(--surface-2); border-radius: var(--radius, 10px); padding: var(--s3, 12px) var(--s4, 16px); font-size: .9rem; }
.w7-ctx__t { font-weight: 700; margin: 0 0 6px; }
.w7-ctx ul { margin: 0; }
.w7-steps { counter-reset: w7s; list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s3, 12px); }
.w7-steps > li { counter-increment: w7s; position: relative; padding: var(--s3, 12px) var(--s4, 16px) var(--s3, 12px) 52px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius, 10px); }
.w7-steps > li::before { content: counter(w7s); position: absolute; left: 14px; top: 12px; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent-text); font-weight: 700; }
.w7-steps h3 { font-size: 1rem; margin: 0 0 4px; }
.w7-steps p { margin: 0; color: var(--text-2); }
.w7-stats { display: grid; gap: var(--s4, 16px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); margin: 0; padding: 0; list-style: none; }
.w7-stats li { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--warn); border-radius: var(--radius-lg, 14px); padding: var(--s4, 16px); }
.w7-stats b { display: block; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); line-height: 1.15; font-variant-numeric: tabular-nums; color: var(--warn-text); overflow-wrap: anywhere; }
.w7-stats span { color: var(--text-2); font-size: .9rem; display: block; margin-top: 4px; }
.w7-stats small { display: block; margin-top: 6px; color: var(--text-3); font-size: .78rem; }
.w7-opt[hidden] { display: none !important; }

/* map */
.w7-mapbox { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg, 14px); padding: 12px; min-width: 0; }
.w7-map { display: block; width: 100%; height: auto; }
.w7-map .st { fill: var(--surface-3); stroke: var(--bg); stroke-width: .8; }
.w7-map .st.is-o { fill: var(--c1); stroke: var(--text); stroke-width: 1.6; }
.w7-map .st.is-d { fill: var(--c2); stroke: var(--text); stroke-width: 1.6; }
.w7-corr { stroke: var(--text); stroke-width: 2.5; stroke-dasharray: 7 5; }
.w7-pin { stroke: var(--bg); stroke-width: 2; }
.w7-pin--o { fill: var(--c1); } .w7-pin--d { fill: var(--c2); }
.w7-maplab { fill: var(--text); font-size: 15px; font-weight: 700; paint-order: stroke; stroke: var(--bg); stroke-width: 4px; font-family: var(--font); }
.w7-mapcap { margin: 8px 0 0; font-size: .875rem; color: var(--text-2); min-height: 2.8em; }
.w7-swap { align-self: end; }

/* freshness chips */
.w7-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; border: 1px solid var(--line-2); font-size: .8125rem; font-weight: 650; white-space: nowrap; background: var(--surface-2); color: var(--text); }
.w7-chip::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--text-3); flex: none; }
.w7-chip--fresh { background: var(--good-soft); color: var(--good-text); border-color: var(--good); } .w7-chip--fresh::before { background: var(--good); }
.w7-chip--snap { background: var(--info-soft, var(--accent-soft)); color: var(--info-text, var(--accent-text)); border-color: var(--info, var(--accent)); } .w7-chip--snap::before { background: var(--info, var(--accent)); }
.w7-chip--aging { background: var(--warn-soft); color: var(--warn-text); border-color: var(--warn); } .w7-chip--aging::before { background: var(--warn); }
.w7-chip--stale { background: var(--bad-soft); color: var(--bad-text); border-color: var(--bad); } .w7-chip--stale::before { background: var(--bad); border-radius: 2px; }
.w7-chip--hist { background: var(--pot-soft); color: var(--pot-text); border-color: var(--pot); } .w7-chip--hist::before { background: var(--pot); border-radius: 2px; }
.w7-chip--probe { background: transparent; color: var(--text-2); border-style: dashed; } .w7-chip--probe::before { background: transparent; border: 2px solid var(--text-3); box-sizing: border-box; }
.w7-fresh-sum { display: flex; flex-wrap: wrap; gap: 8px 10px; list-style: none; padding: 0; margin: 0; }
.w7-src { overflow-wrap: anywhere; }
.w7-note { font-size: .875rem; color: var(--text-2); }
@media (prefers-reduced-motion: reduce) { .w7-svg * { transition: none !important; animation: none !important; } }
@media print { .w7-map .st { stroke: #888; } }
