/* Wave 7A widgets: rule filter, road-works and border calculators. Reads shell tokens only. No network. */
.w7-bar { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); align-items: end; margin: 0 0 16px; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg, 14px); }
.w7-bar .field { margin: 0; min-width: 0; }
.w7-bar select, .w7-bar input[type="search"] { width: 100%; max-width: 100%; }
.w7-check { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; font-size: .9375rem; }
.w7-count { margin: 0 0 8px; font-size: .875rem; color: var(--text-2); }
.w7-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 0; padding: 0; list-style: none; }
.w7-tag { display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .03em; padding: 1px 7px; border: 1px solid var(--line-2); border-radius: 999px; color: var(--text-2); background: var(--surface-2); white-space: nowrap; }
.w7-tag--money { color: var(--warn-text, var(--warn)); border-color: var(--warn); }
.w7-tag--relief { color: var(--good-text, var(--good)); border-color: var(--good); }
.w7-tag--tight { color: var(--bad-text, var(--bad)); border-color: var(--bad); }
.w7-plain { margin: 0 0 4px; }
.w7-off { margin: 4px 0 0; font-size: .8125rem; color: var(--text-2); }
.w7-days { font-weight: 700; font-variant-numeric: tabular-nums; }
.w7-days--soon { color: var(--bad-text, var(--bad)); }
.w7-cards { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); margin: 0; padding: 0; list-style: none; }
.w7-card { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius, 10px); padding: 16px; min-width: 0; }
.w7-card h3 { margin: 0 0 6px; font-size: 1.0625rem; }
.w7-card p { margin: 0 0 8px; font-size: .9375rem; }
.w7-card .w7-src { font-size: .8125rem; color: var(--text-2); margin: 0; }
.w7-kpis { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); margin: 0; padding: 0; list-style: none; }
.w7-kpi { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius, 10px); padding: 14px 16px; }
.w7-kpi b { display: block; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); line-height: 1.1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.w7-kpi span { display: block; margin-top: 4px; font-size: .8125rem; color: var(--text-2); }
.w7-spark { display: block; width: 100%; height: auto; }
.w7-spark .ln { fill: none; stroke: var(--c1); stroke-width: 2.4; }
.w7-spark .ar { fill: var(--accent-soft); stroke: none; }
.w7-spark .pk { fill: var(--warn); }
.w7-spark text { fill: var(--text-2); font: 11px var(--font); }
.w7-months { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.w7-months li { background: var(--surface-2); border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; font-size: .8125rem; min-width: 0; }
.w7-months b { display: block; font-variant-numeric: tabular-nums; }
.w7-months .hi { border-color: var(--warn); }
.w7-months .lo { border-color: var(--accent); }
@media (max-width: 560px) { .w7-months { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.w7-verdict { margin: 12px 0 0; padding: 10px 12px; border-left: 3px solid var(--accent); background: var(--surface-2); border-radius: 0 6px 6px 0; font-size: .9375rem; }
.w7-ex { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--warn-text, var(--warn)); border: 1px solid var(--warn); border-radius: 4px; padding: 0 6px; margin-left: 6px; vertical-align: middle; }
.w7-fig-bar rect.bar-a { fill: var(--c1); } .w7-fig-bar rect.bar-b { fill: var(--c5); } .w7-fig-bar rect.bar-c { fill: var(--c2); }

.data th .w7-plain, .data th .w7-off, .data th .w7-tags, .data th .w7-tag { font-weight: 400; }
.data th .w7-plain strong, .data th .w7-off strong { font-weight: 650; }
.data th .w7-tag { font-weight: 700; }
.data th .w7-plain, .data th .w7-off { text-transform: none; letter-spacing: normal; }
