.needs-intro { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:30px; align-items:center; }
.needs-intro h1 em { display:block; }
.needs-total { display:grid; gap:8px; border-left:1px solid var(--rule); padding-left:32px; color:var(--blue); }
.needs-total strong { font:clamp(2.8rem,5vw,5rem) Georgia,serif; letter-spacing:-.06em; }
.needs-total span { color:var(--muted); font-size:.875rem; }
.needs-state { display:flex; justify-content:space-between; gap:15px; align-items:center; padding:12px 0; border-block:1px solid var(--rule); font-size:.8rem; color:var(--muted); }
.needs-state button { flex-shrink:0; min-height:40px; padding:5px 10px; background:transparent; border:1px solid var(--rule); cursor:pointer; font-size:.85rem; }
.needs-views { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0; }
.needs-views button { min-height:44px; border:1px solid var(--rule); border-radius:3px; padding:10px 17px; background:transparent; font-size:.9rem; cursor:pointer; }
.needs-views button[aria-pressed=true] { background:var(--blue); color:white; border-color:var(--blue); }
.needs-explorer { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(290px,.65fr); gap:34px; align-items:start; padding-bottom:26px; }
.needs-visual { min-width:0; }
.needs-chart-head { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.needs-chart-head h2 { margin:0; font-size:1.65rem; letter-spacing:-.03em; }
.needs-chart-head p { margin:8px 0 0; font-size:.875rem; color:var(--muted); line-height:1.5; }
.needs-scale { color:var(--muted); font-size:.75rem; white-space:nowrap; }
.needs-columns { display:grid; grid-template-columns:repeat(var(--columns,6),minmax(0,1fr)); gap:12px; margin-top:24px; }
.needs-column { display:flex; flex-direction:column; justify-content:end; align-items:center; gap:10px; min-width:0; border:0; background:transparent; padding:0 3px 8px; cursor:pointer; color:var(--ink); }
.needs-column .column-track { position:relative; display:flex; align-items:end; width:100%; height:220px; background:repeating-linear-gradient(to top, transparent 0, transparent calc(25% - 1px), var(--rule) calc(25% - 1px), var(--rule) 25%); border-bottom:1px solid #708576; }
.needs-column .column-fill { display:block; width:100%; height:var(--height); background:#6a9b82; border-radius:3px 3px 0 0; transition:height .3s,background .2s; }
.needs-column[aria-pressed=true] .column-fill { background:#c76854; }
.needs-column:hover .column-fill { background:#173f36; }
.needs-column strong { font-size:.95rem; font-variant-numeric:tabular-nums; }
.needs-column .column-label { min-height:48px; width:100%; font-size:.875rem; line-height:1.4; font-weight:650; overflow-wrap:anywhere; }
.needs-chart-hint { font-size:.8rem; line-height:1.55; color:var(--muted); margin:12px 0 0; }
.needs-detail { background:#173f36; color:#fff; padding:27px; border-top:4px solid #c76854; }
.needs-detail .kicker { color:#efb49b; }
.needs-detail h3 { font-size:1.85rem; line-height:1.15; margin:15px 0 20px; }
.needs-detail .needs-selected-count { display:block; font:3.8rem Georgia,serif; letter-spacing:-.055em; }
.needs-detail p { color:#d4e2d8; font-size:.9rem; line-height:1.55; }
.needs-detail .needs-job-link { display:flex; justify-content:space-between; align-items:center; min-height:48px; background:#f4f1e8; color:#173f36; font-weight:750; padding:12px 15px; text-decoration:none; margin:22px 0; }
.needs-detail .needs-definition { padding-top:16px; border-top:1px solid #496a5a; font-size:.8rem; }
.needs-all { border-top:1px solid var(--rule); padding:18px 0; }
.needs-all summary { cursor:pointer; font-size:.95rem; font-weight:700; }
.needs-all button { width:100%; display:grid; grid-template-columns:1fr auto; gap:18px; padding:15px 10px; background:transparent; border:0; border-bottom:1px solid var(--rule); text-align:left; cursor:pointer; font-size:.95rem; }
.needs-all button[aria-pressed=true] { background:#d9e9df; }
.needs-method { border-top:1px solid var(--rule); padding:20px 0 10px; }
.needs-method h2 { font-size:1.35rem; }
.needs-method p { font-size:.9rem; max-width:950px; line-height:1.65; color:var(--muted); }
.needs-empty { padding:40px 20px; font-size:1rem; color:var(--muted); background:var(--white); }
@media(max-width:950px){.needs-explorer{grid-template-columns:minmax(0,1fr);gap:24px}.needs-detail{display:block}.needs-columns{gap:10px}.needs-column .column-track{height:190px}}
@media(max-width:600px){.needs-intro{grid-template-columns:1fr;gap:14px}.needs-total{border-left:0;padding-left:0;display:flex;gap:12px;align-items:baseline}.needs-total strong{font-size:2.4rem}.needs-state{align-items:start;line-height:1.5}.needs-views{gap:6px;margin:18px 0}.needs-views button{padding:10px 12px;font-size:.85rem}.needs-chart-head{display:block}.needs-scale{display:block;margin-top:8px}.needs-columns{gap:9px}.needs-column .column-track{height:160px}.needs-column .column-label{font-size:.875rem;min-height:60px}.needs-column strong{font-size:.85rem}.needs-detail{padding:22px}.needs-detail .needs-selected-count{font-size:3.2rem}}
@media(prefers-reduced-motion:reduce){.needs-column .column-fill{transition:none}}

.needs-mobile-view { display:none; }
.needs-coverage:not([hidden]) { display:flex; flex-wrap:wrap; gap:10px 26px; padding:14px 18px; margin:0 0 24px; background:#e9ece5; border-left:3px solid #789481; color:#485c50; font-size:.875rem; line-height:1.6; }
.needs-coverage button { padding:0; border:0; background:transparent; color:#173f36; font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
@media(max-width:600px){
 .needs-views{display:none}.needs-mobile-view{display:grid;gap:7px;font-size:.875rem;font-weight:650;margin:18px 0}.needs-mobile-view select{font-size:1rem}.needs-route .story-intro{padding:22px 0 18px}.needs-route .story-intro h1{font-size:2rem}.needs-route .story-intro p{font-size:.9rem;margin-bottom:0}.needs-intro{gap:9px}.needs-total strong{font-size:2rem}.needs-state{font-size:.75rem;padding:8px 0}.needs-chart-head h2{font-size:1.5rem}
}
