.wsd-dashboard,.wsd-card{--wsd-blue:var(--hse-accent,#1a3f6f);--wsd-gold:var(--hse-accent-2,#c9a84c);--wsd-ink:var(--hse-ink,#0a0a0c);--wsd-warm:var(--hse-warm,#f2ede6);--wsd-muted:var(--hse-warm-3,#7a7268);font-family:var(--hse-font-body,'DM Sans',system-ui,sans-serif);color:var(--wsd-ink);box-sizing:border-box}.wsd-dashboard{max-width:var(--hse-max-w,1160px);margin:0 auto}.wsd-dashboard__intro{max-width:var(--hse-text-w,680px);margin:0 0 3rem}.wsd-dashboard__kicker,.wsd-card__eyebrow{margin:0 0 .7rem;text-transform:uppercase;letter-spacing:.09em;font-size:.76rem;font-weight:750;color:var(--wsd-blue)}.wsd-dashboard__intro h2{font-size:clamp(2rem,5vw,4.2rem);line-height:.98;letter-spacing:-.045em;margin:0 0 1.2rem}.wsd-dashboard__intro p:last-child{font-size:1.1rem;line-height:1.55}.wsd-dashboard__cards{display:grid;gap:1.5rem}.wsd-card{background:var(--wsd-warm);border-top:5px solid var(--wsd-blue);padding:clamp(1.25rem,4vw,2.5rem);display:grid;grid-template-columns:minmax(0,.9fr) minmax(280px,1.1fr);gap:clamp(1.5rem,5vw,4rem);align-items:end}.wsd-card__headline{font-size:clamp(1.8rem,4vw,3.5rem);line-height:1;letter-spacing:-.04em;margin:0 0 1.1rem;max-width:13ch}.wsd-card__value{font-size:clamp(3.3rem,9vw,7rem);font-weight:750;line-height:.85;letter-spacing:-.065em;margin:0;color:var(--wsd-blue)}.wsd-card__context{font-size:1.05rem;line-height:1.45;margin:1.25rem 0 0;max-width:35rem}.wsd-card__visual{min-width:0}.wsd-sparkline{display:block;width:100%;height:auto;overflow:visible}.wsd-card__range,.wsd-card__footer{display:flex;justify-content:space-between;gap:1rem;color:var(--wsd-muted);font-size:.78rem}.wsd-card__range{margin-top:.35rem}.wsd-card__footer{grid-column:1/-1;border-top:1px solid rgba(10,10,12,.15);padding-top:1rem;align-items:center;flex-wrap:wrap}.wsd-card__footer a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}.wsd-error{padding:1rem;border-left:4px solid #b32d2e;background:#fff}@media(max-width:720px){.wsd-card{grid-template-columns:1fr}.wsd-card__headline{max-width:16ch}.wsd-card__footer{grid-column:auto}}@media(prefers-reduced-motion:no-preference){.wsd-card{transition:border-color .2s ease}} 

/* v1.0.1 — discreet Wansteadium editorial signature */
.wsd-card__provenance{display:flex;align-items:center;gap:1rem;margin-left:auto}
.wsd-card__signature{display:block;width:auto;height:34px;object-fit:contain;flex:0 0 auto}
@media(max-width:520px){.wsd-card__provenance{width:100%;justify-content:space-between;margin-left:0}.wsd-card__signature{height:30px}}

/* v1.1.3 — responsive three-column data index. Standalone cards remain feature cards. */
.wsd-dashboard__group{margin:0 0 3rem}
.wsd-dashboard__group-title{margin:0 0 1rem;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.1;letter-spacing:-.025em}
.wsd-dashboard__cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:stretch}
.wsd-card--compact{grid-template-columns:1fr;gap:1rem;align-content:start;padding:clamp(1.1rem,2vw,1.6rem);min-width:0}
.wsd-card--compact.wsd-card--span-medium{grid-column:span 2}
.wsd-card--compact.wsd-card--span-wide{grid-column:1/-1}
.wsd-card--compact .wsd-card__eyebrow{font-size:.7rem;margin-bottom:.55rem}
.wsd-card--compact .wsd-card__headline{font-size:clamp(1.45rem,2.1vw,2rem);line-height:1.02;margin-bottom:.65rem;max-width:15ch}
.wsd-card--compact .wsd-card__value{font-size:clamp(2rem,3.5vw,3.4rem);line-height:.9}
.wsd-card--compact .wsd-card__context{font-size:.9rem;line-height:1.4;margin-top:.75rem;max-width:30rem}
.wsd-card--compact .wsd-card__visual{margin-top:auto}
.wsd-card--compact .wsd-sparkline{max-height:110px}
.wsd-card--compact .wsd-card__range,.wsd-card--compact .wsd-card__footer{font-size:.67rem}
.wsd-card--compact .wsd-card__footer{padding-top:.7rem;gap:.65rem}
.wsd-card--compact .wsd-card__signature{height:25px}
.wsd-card--compact .wsd-card__provenance{gap:.65rem}
@media(max-width:980px){.wsd-dashboard__cards{grid-template-columns:repeat(2,minmax(0,1fr))}.wsd-card--compact.wsd-card--span-wide{grid-column:1/-1}}
@media(max-width:640px){.wsd-dashboard__cards{grid-template-columns:1fr}.wsd-card--compact.wsd-card--span-medium,.wsd-card--compact.wsd-card--span-wide{grid-column:auto}.wsd-card--compact{padding:1.15rem}.wsd-card--compact .wsd-sparkline{max-height:125px}}
.wsd-card__visual--note{align-self:end;color:var(--wsd-muted);font-size:.78rem;border-top:1px solid rgba(10,10,12,.12);padding-top:.7rem}.wsd-card__visual--note p{margin:0}.wsd-card--compact.wsd-card--air .wsd-card__value{font-size:clamp(2rem,3vw,3rem);letter-spacing:-.04em}
/* v1.3.0 — Homes */
.wsd-card--homes .wsd-card__value{font-variant-numeric:tabular-nums}

.wsd-card--schools .wsd-card__value{font-size:clamp(2rem,3.5vw,3.5rem);letter-spacing:-.045em;line-height:1.05}

.wsd-card__chart-note{font-size:11px;line-height:1.5;color:#666;margin:9px 0 0;}

/* v1.6.2: quiet editorial subject colours; apply to feature and grid cards alike. */
.wsd-dashboard,.wsd-card {
  --wsd-theme-environment:#E5E9DF;
  --wsd-theme-homes:#EDE7DE;
  --wsd-theme-people:#EAE5EB;
  --wsd-theme-schools:#F0E7D7;
  --wsd-theme-transport:#E3E9EC;
  --wsd-theme-community:#F0E5E2;
}
.wsd-card--roding,.wsd-card--rain,.wsd-card--air{background:var(--wsd-theme-environment)}
.wsd-card--homes,.wsd-card--council-tax{background:var(--wsd-theme-homes)}
.wsd-card--demography,.wsd-card--households{background:var(--wsd-theme-people)}
.wsd-card--schools{background:var(--wsd-theme-schools)}
.wsd-card--traffic,.wsd-card--transport{background:var(--wsd-theme-transport)}
.wsd-card--community,.wsd-card--wellbeing{background:var(--wsd-theme-community)}

/* v1.7.2: font isolation. Do not override the site's global typography. */
.wsd-dashboard,.wsd-card,.wsd-dashboard__intro h2,.wsd-dashboard__group-title,
.wsd-card__headline,.wsd-card__value {
  font-family: 'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif !important;
  font-style:normal;
  text-transform:none;
}
.wsd-card__headline,.wsd-dashboard__group-title,.wsd-dashboard__intro h2 {font-weight:750;}
.wsd-card--reservoirs{background:var(--wsd-theme-environment)}

/* v1.7.4 — Homes: compact, accessible distribution histogram. */
.wsd-card--home-distribution{background:var(--wsd-theme-homes)}
.wsd-card--home-distribution .wsd-card__value{font-size:clamp(2rem,3vw,3rem)}
.wsd-card--home-distribution .wsd-card__headline{font-size:clamp(1.35rem,2vw,1.8rem)}
.wsd-distribution{display:grid;gap:.3rem;align-self:end}
.wsd-distribution__row{display:grid;grid-template-columns:72px minmax(0,1fr) 22px;align-items:center;gap:.45rem;font-size:.72rem;font-variant-numeric:tabular-nums}
.wsd-distribution__label{white-space:nowrap;color:#4c4843}
.wsd-distribution__track{height:12px;background:rgba(26,63,111,.1);border-radius:2px;overflow:hidden}
.wsd-distribution__bar{display:block;height:100%;background:#1a3f6f;border-radius:2px}
.wsd-distribution__count{text-align:right;color:#1a3f6f;font-weight:700}
.wsd-card--home-distribution .wsd-card__context{font-size:.8rem}

/* v1.7.5: Monthly registered sales, with a seasonal benchmark where available. */
.wsd-card--home-activity{background:var(--wsd-theme-homes)}
.wsd-activity__bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(4px,1vw,13px);height:110px;align-items:end;border-bottom:1px solid rgba(26,63,111,.22)}
.wsd-activity__column{height:100%;position:relative;display:flex;align-items:flex-end}
.wsd-activity__bar{display:block;width:100%;background:#1a3f6f;min-height:1px;border-radius:2px 2px 0 0}
.wsd-activity__normal{position:absolute;left:-2px;right:-2px;border-top:2px dashed #b18c46;pointer-events:none}

.wsd-area-card{background:#ede7de;border-top:4px solid #1a3f6f;padding:clamp(22px,4vw,42px);margin:24px 0 32px;color:#171717}.wsd-area-kicker{font-size:11px!important;font-weight:750!important;letter-spacing:.12em;color:#1a3f6f!important;margin:0 0 12px!important}.wsd-area-card h3{font-size:clamp(27px,3vw,43px);line-height:1.1;letter-spacing:-.035em;margin:0 0 12px;color:#141414}.wsd-area-deck{font-size:clamp(15px,1.4vw,19px);max-width:780px;line-height:1.5;margin:0 0 20px}.wsd-area-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(210px,1fr);gap:24px;align-items:center}.wsd-area-visual svg{display:block;width:100%;height:auto;max-height:470px}.wsd-area-legend{font-size:14px;line-height:1.55;color:#344052}.wsd-area-key{display:flex;gap:12px;align-items:center;margin-bottom:16px}.wsd-area-key strong{display:block;color:#1a3f6f}.wsd-area-key small{display:block;color:#555}.wsd-area-dot{width:22px;height:22px;border:1px solid #7e9cb2;border-radius:50%;flex:none}.wsd-area-dot.village{background:#dce6ee}.wsd-area-dot.park{background:#dde7d9;border-color:#9fb69b}.wsd-area-legend hr{border:0;border-top:1px solid #c8c0b6;margin:16px 0}.wsd-area-legend p{margin:0 0 12px}.wsd-area-source{font-size:11px!important;color:#69655e!important;border-top:1px solid #cec7be;padding-top:12px;margin:12px 0 0!important}@media(max-width:720px){.wsd-area-layout{grid-template-columns:1fr;gap:8px}.wsd-area-card{padding:22px}.wsd-area-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.wsd-area-legend hr{grid-column:1/-1;margin:3px 0}.wsd-area-legend>p:last-child{grid-column:1/-1}}

/* 1.7.9: wider, still bounded editorial canvas */
.wsd-dashboard{max-width:1400px!important;width:100%;margin-inline:auto}
.wsd-area-card{padding:clamp(20px,3vw,36px);margin-block:20px 28px}
.wsd-area-visual svg{max-height:395px}
.wsd-area-layout{grid-template-columns:minmax(0,2fr) minmax(225px,1fr)}
.wsd-activity__controls{display:flex;gap:5px;margin-bottom:14px;justify-content:flex-end}
.wsd-activity__toggle{border:1px solid #9ca9b2;background:transparent;color:#1a3f6f;font:inherit;font-size:12px;font-weight:700;padding:5px 11px;cursor:pointer;border-radius:3px}
.wsd-activity__toggle[aria-pressed=true]{background:#1a3f6f;color:white}
.wsd-activity__column{cursor:pointer;outline-offset:3px}
.wsd-activity__column:focus-visible{outline:2px solid #1a3f6f}
.wsd-activity__column:is(:focus,:hover) .wsd-activity__bar{background:#35648f}
.wsd-activity__detail{min-height:2.5em;font-size:13px;color:#1a3f6f;font-weight:650;margin:9px 0 0}
.wsd-activity__bars--annual{grid-template-columns:repeat(var(--wsd-bars,10),minmax(0,1fr))}
@media(max-width:720px){.wsd-area-layout{grid-template-columns:1fr}.wsd-area-visual svg{max-height:none}}

.wsd-activity [hidden]{display:none!important}

/* v1.8.0: Our Story, a pair of restrained editorial cards */
.wsd-story-card{background:#e3e9ec;border-top:5px solid #1a3f6f;padding:clamp(20px,3vw,36px);min-width:0;display:flex;flex-direction:column;gap:0}
.wsd-story .wsd-dashboard__cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.wsd-story-card h4{font-size:clamp(23px,2.6vw,36px);font-weight:750;letter-spacing:-.035em;line-height:1.1;margin:0 0 14px;color:#141414}
.wsd-story-number{font-size:clamp(32px,4vw,55px);font-weight:750;color:#1a3f6f;line-height:1;margin:0 0 12px}
.wsd-story-number span{font-size:.36em;letter-spacing:0}
.wsd-story-description{font-size:14px;line-height:1.5;min-height:60px;max-width:38em;margin:0 0 20px}
.wsd-story-chart{display:flex;align-items:end;gap:clamp(2px,.35vw,6px);height:145px;border-bottom:1px solid #a5b3be;margin-top:auto}
.wsd-story-column{flex:1;min-width:2px;height:100%;display:flex;align-items:end;cursor:help;outline-offset:2px}
.wsd-story-column span{display:block;width:100%;min-height:1px;background:#1a3f6f}
.wsd-story-column:is(:hover,:focus) span{background:#c9a84c}
.wsd-story-column:focus-visible{outline:2px solid #1a3f6f}
.wsd-story-range{display:flex;justify-content:space-between;font-size:12px;color:#5d656a;margin:8px 0 12px}
.wsd-story-card footer{border-top:1px solid #b6c2c8;margin-top:auto;padding-top:14px;font-size:11px;color:#5d656a}
.wsd-story-pending{font-size:21px;color:#1a3f6f;font-weight:700}
.wsd-story-footnote,.wsd-story-empty{font-size:12px;color:#5d656a}
@media(max-width:760px){.wsd-story .wsd-dashboard__cards{grid-template-columns:1fr}}

/* v1.8.6 — council tax bands: compact, mobile-first two-ward comparison. */
.wsd-dashboard__tax-bands{grid-column:1/-1;min-width:0}
.wsd-tax-bands-public{box-sizing:border-box;max-width:100%;padding:clamp(18px,3vw,32px);background:#ede7de;border-top:4px solid #1a3f6f;color:#1d252e;font:400 15px/1.45 'DM Sans',system-ui,sans-serif;overflow-wrap:normal}
.wsd-tax-bands-public *{box-sizing:border-box}
.wsd-tax-bands-public .wsd-tax-bands-kicker{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:750;color:#1a3f6f;margin:0 0 7px}
.wsd-tax-bands-public h3{font:750 clamp(22px,3vw,32px)/1.12 'DM Sans',system-ui,sans-serif!important;letter-spacing:-.03em;margin:0 0 9px;color:#1d252e}
.wsd-tax-bands-public .wsd-tax-bands-deck{font-size:14px;line-height:1.45;margin:0 0 18px}
.wsd-tax-bands-legend{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 14px;font-size:12px}
.wsd-tax-bands-legend span{display:inline-flex;align-items:center;gap:7px}
.wsd-tax-dot{display:inline-block;width:11px;height:11px;border-radius:2px}
.wsd-tax-dot--village,.wsd-tax-band-fill--village{background:#1a3f6f}
.wsd-tax-dot--park,.wsd-tax-band-fill--park{background:#b76e33}
.wsd-tax-bands-chart{display:grid;gap:9px}
.wsd-tax-band-row{display:grid;grid-template-columns:18px minmax(0,1fr) 104px;align-items:center;gap:10px;font-variant-numeric:tabular-nums}
.wsd-tax-band-label{font-size:13px}
.wsd-tax-band-bars{display:grid;gap:3px;min-width:0}
.wsd-tax-band-track{height:9px;background:rgba(26,63,111,.09);border-radius:2px;overflow:hidden}
.wsd-tax-band-fill{display:block;height:100%;border-radius:2px}
.wsd-tax-band-pcts{text-align:right;white-space:nowrap;font-size:11px;color:#46505b}
.wsd-tax-band-totals{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;border-top:1px solid #cfc5b9;margin-top:18px;padding-top:13px;font-size:12px}
.wsd-tax-band-totals strong{display:block;font-size:16px}
.wsd-tax-bands-public .wsd-tax-band-summary{font-size:11px;color:#555;line-height:1.45;margin:13px 0 0}
.wsd-tax-band-details{border-top:1px solid #d4cbc0;margin-top:12px;padding-top:10px;font-size:12px}
.wsd-tax-band-details summary{cursor:pointer;font-size:13px;font-weight:700;color:#1a3f6f}
.wsd-tax-band-details p{font-size:12px;line-height:1.6;margin:12px 0 0}
.wsd-tax-band-table-wrap{overflow-x:auto;max-width:100%;margin-top:12px}
.wsd-tax-bands-public table.wsd-tax-band-table{width:100%;min-width:570px;table-layout:auto;border-collapse:collapse;font:400 12px/1.35 'DM Sans',system-ui,sans-serif!important}
.wsd-tax-bands-public .wsd-tax-band-table th,.wsd-tax-bands-public .wsd-tax-band-table td{padding:9px 7px;white-space:nowrap;word-break:normal;overflow-wrap:normal;border-bottom:1px solid #d4cbc0;text-align:right}
.wsd-tax-bands-public .wsd-tax-band-table th:first-child{text-align:left;min-width:110px}
.wsd-tax-bands-public .wsd-tax-band-table .wsd-tax-band-note{font-size:11px;line-height:1.5}
@media(max-width:460px){.wsd-tax-bands-public{padding:17px}.wsd-tax-band-row{grid-template-columns:16px minmax(0,1fr) 88px;gap:6px}.wsd-tax-band-pcts{font-size:10px}}

/* v1.9.1 compact, expandable historical cards */
.wsd-tax-trends{margin:16px 0 22px;background:#ede7de;border-top:3px solid #1a3f6f;padding:clamp(15px,2.2vw,25px);color:#1d252e;font:400 14px/1.45 'DM Sans',system-ui,sans-serif;min-width:0}
.wsd-tax-trends *{box-sizing:border-box}.wsd-trends-kicker,.wsd-trends-label{font-size:10px!important;letter-spacing:.09em;color:#1a3f6f;font-weight:800;margin:0 0 5px}.wsd-trends-intro h3{font-size:23px!important;line-height:1.15;margin:0 0 7px!important;color:#1d252e}.wsd-trends-intro>p:last-child{font-size:13px;margin:0 0 15px}
.wsd-trends-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wsd-trends-tile{font-family:inherit;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;background:#f9f7f3;border:1px solid #d2c8ba;border-radius:5px;padding:15px 13px;min-width:0;min-height:190px;cursor:pointer;color:#1d252e;box-shadow:none}.wsd-trends-tile:hover,.wsd-trends-tile:focus-visible{border-color:#1a3f6f;outline:2px solid transparent;background:#f0f2f3}.wsd-trends-tile[aria-expanded=true]{background:#e2e9f0;border-color:#1a3f6f}.wsd-trends-tile strong{font-size:16px;line-height:1.2;letter-spacing:-.02em}.wsd-trends-number{font-size:clamp(20px,2.4vw,29px);font-weight:800;letter-spacing:-.035em;line-height:1.1;color:#1a3f6f}.wsd-trends-caption{font-size:12px;line-height:1.35}.wsd-trends-action{font-size:12px;font-weight:750;color:#1a3f6f;margin-top:auto;padding-top:7px}
.wsd-trends-panel{margin-top:12px;background:#f9f7f3;border:1px solid #d2c8ba;border-radius:5px;padding:clamp(15px,2.5vw,25px);min-width:0}.wsd-trends-panel[hidden]{display:none!important}.wsd-trends-panel h4{font-size:21px!important;margin:0 0 9px!important;line-height:1.2}.wsd-trends-panel p{font-size:13px;line-height:1.6;margin:0 0 12px}.wsd-trend-chart{display:block;width:100%;height:auto;max-height:240px}.wsd-trends-axis{display:flex;justify-content:space-between;font-size:11px;color:#58616a;margin-bottom:15px}.wsd-trends-legend{display:flex;gap:18px;font-size:12px;flex-wrap:wrap}.wsd-trends-key{display:inline-block;width:11px;height:11px;margin-right:5px;background:#1a3f6f}.wsd-trends-key--orange{background:#b76e33}.wsd-trends-panel details{border-top:1px solid #d2c8ba;padding:10px 0;margin-top:5px}.wsd-trends-panel summary{cursor:pointer;color:#1a3f6f;font-size:13px;font-weight:750}.wsd-tax-trends__scroll{overflow:auto;max-height:300px;margin:10px 0}.wsd-tax-trends__scroll table{border-collapse:collapse;width:100%;font-size:12px;min-width:330px}.wsd-tax-trends__scroll th,.wsd-tax-trends__scroll td{border-bottom:1px solid #ddd4c8;padding:7px;text-align:left;white-space:nowrap}.wsd-tax-trends__scroll th{position:sticky;top:0;background:#f0eae2}
@media(max-width:680px){.wsd-trends-grid{grid-template-columns:1fr}.wsd-trends-tile{min-height:0;gap:5px;padding:12px}.wsd-trends-tile strong{font-size:15px}.wsd-trends-number{font-size:24px}.wsd-trends-caption{font-size:12px}.wsd-trends-action{padding-top:3px}}

/* v1.9.2: Northeast London council tax sculpture */
.wsd-tax-landscape{font-family:'DM Sans',system-ui,sans-serif;margin-top:8px;max-width:100%;min-width:0}.wsd-tax-landscape__head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 14px;color:#1a3f6f}.wsd-tax-landscape__head strong{font-size:17px}.wsd-tax-landscape__head span{font-size:11px;color:#58616b}.wsd-tax-landscape__svg{width:100%;height:auto;display:block;overflow:visible;margin:0 auto}.wsd-tax-landscape__borough{outline:none}.wsd-tax-landscape__borough:focus-visible ellipse:first-of-type{stroke:#1a3f6f;stroke-width:3}.wsd-tax-landscape__borough:hover{filter:brightness(1.07)}.wsd-tax-landscape__note{font-size:11px!important;line-height:1.5!important;color:#5d6267;margin:0 0 10px!important}.wsd-tax-landscape__details{border-top:1px solid #cfc6bc;padding-top:10px;font-size:12px}.wsd-tax-landscape__details summary{color:#1a3f6f;font-weight:750;cursor:pointer}.wsd-tax-landscape__tablewrap{overflow:auto}.wsd-tax-landscape__details table{border-collapse:collapse;width:100%;font-size:12px;margin:12px 0}.wsd-tax-landscape__details th,.wsd-tax-landscape__details td{text-align:left;padding:7px;border-bottom:1px solid #d8cfc5}.wsd-tax-landscape__details p{font-size:12px!important;line-height:1.5!important}
@media(max-width:600px){.wsd-tax-landscape__svg{min-width:0}.wsd-tax-landscape__head strong{font-size:15px}}

/* v1.9.3: compact sculpture and small London context */
.wsd-tax-landscape__visuals{display:grid;grid-template-columns:minmax(0,1fr) minmax(215px,29%);gap:14px;align-items:center;margin-top:5px}
.wsd-tax-landscape__sculpture{min-width:0}.wsd-tax-landscape__sculpture svg{width:100%;height:auto;overflow:hidden}
.wsd-tax-landscape__london{min-width:0;padding:10px 11px;border-left:1px solid #cec5bb;color:#343b43}
.wsd-tax-landscape__london>strong{color:#1a3f6f;font-size:13px}.wsd-tax-landscape__london>p{font-size:11px!important;line-height:1.4!important;margin:5px 0!important}
.wsd-tax-landscape__london svg{display:block;width:100%;height:auto;max-height:145px}.wsd-tax-landscape__extremes{display:flex;justify-content:space-between;gap:8px;font-size:10px;line-height:1.4;color:#4e555e}
.wsd-tax-landscape__extremes span:last-child{text-align:right}.wsd-tax-landscape__aggregate{margin-top:12px!important}.wsd-tax-landscape__london details{margin-top:8px;font-size:11px}.wsd-tax-landscape__london summary{cursor:pointer;color:#1a3f6f;font-weight:700}.wsd-tax-landscape__ranklist{max-height:230px;overflow:auto}.wsd-tax-landscape__ranklist table{width:100%;border-collapse:collapse;font-size:10px}.wsd-tax-landscape__ranklist td,.wsd-tax-landscape__ranklist th{padding:4px;border-bottom:1px solid #d9d0c7;text-align:left}.wsd-tax-landscape__ranklist td:last-child{text-align:right}
@media(max-width:700px){.wsd-tax-landscape__visuals{grid-template-columns:1fr;gap:3px}.wsd-tax-landscape__london{border-left:0;border-top:1px solid #cec5bb;padding:9px 0}.wsd-tax-landscape__london svg{max-width:350px;margin:0 auto}.wsd-tax-landscape__extremes{max-width:350px;margin:0 auto}}

/* Rainfall: honest rolling seven-day comparison */
.wsd-rain-compare{display:flex;flex-direction:column;justify-content:center;gap:13px;min-width:0}
.wsd-rain-compare__title{font-weight:700;margin:0 0 5px}
.wsd-rain-compare__row{display:grid;grid-template-columns:105px minmax(0,1fr) 65px;gap:9px;align-items:center;font-size:13px}
.wsd-rain-compare__row strong{text-align:right;font-variant-numeric:tabular-nums}
.wsd-rain-compare__track{height:15px;background:#e9eef3;border-radius:3px;overflow:hidden}
.wsd-rain-compare__bar{display:block;height:100%;background:#276a9a;border-radius:3px;min-width:0}
.wsd-rain-compare__bar--previous{background:#9eacb9}

/* v1.9.5: compact daily temperature anomaly bars */
.wsd-temperature__legend{display:flex;justify-content:space-between;font-size:.73rem;opacity:.75;margin-bottom:.5rem}
.wsd-temperature__day{display:grid;grid-template-columns:3.5rem minmax(0,1fr) 3rem 3rem;align-items:center;gap:.4rem;font-size:.78rem;margin:.3rem 0}
.wsd-temperature__day time{font-size:.75rem}.wsd-temperature__day strong,.wsd-temperature__day small{text-align:right;font-variant-numeric:tabular-nums}
.wsd-temperature__track{height:8px;border-radius:4px;background:#e9e8e3;position:relative;overflow:hidden}
.wsd-temperature__zero{position:absolute;left:50%;height:100%;border-left:2px solid #555;z-index:2}
.wsd-temperature__difference{position:absolute;top:0;height:100%;background:#bd7852}
.wsd-temperature__difference--cool{background:#5e91b6}

/* v1.9.8: twelve-month temperature context */
.wsd-temperature__annual{border-top:1px solid #d3d1ca;margin-top:18px;padding-top:14px}
.wsd-temperature__annual svg{display:block;width:100%;height:auto;max-height:185px}
.wsd-temperature__annual-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:.72rem;margin:8px 0 4px}
.wsd-temperature__annual-legend span{display:inline-flex;align-items:center;gap:5px}
.wsd-temperature__key{width:16px;height:0;border-top:3px solid #274b7d;display:inline-block}
.wsd-temperature__key--normal{border-top:2px dashed #999a99}
.wsd-temperature__month-labels{display:flex;justify-content:space-between;font-size:.72rem;opacity:.75}

/* v1.9.10: environment dashboard layout only; embedded individual cards unaffected.
   A wide temperature card gets its own row rather than stretching adjacent tiles. */
.wsd-dashboard__group--environment > .wsd-dashboard__cards {
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
}
.wsd-dashboard__group--environment > .wsd-dashboard__cards > .wsd-card {
  grid-column:auto;
  align-self:start;
  height:auto;
}
.wsd-dashboard__group--environment > .wsd-dashboard__cards > .wsd-card--temperature {
  grid-column:1/-1;
}
.wsd-dashboard__group--environment > .wsd-dashboard__cards > .wsd-card--temperature .wsd-card__headline {max-width:30ch}
@media(max-width:640px) {
 .wsd-dashboard__group--environment > .wsd-dashboard__cards {grid-template-columns:minmax(0,1fr)}
 .wsd-dashboard__group--environment > .wsd-dashboard__cards > .wsd-card--temperature {grid-column:auto}
}

/* v1.9.11: dashboard-only breakout from narrow WordPress article columns.
   Standalone card shortcodes are deliberately not targeted. */
@media (min-width: 900px) {
  .wsd-dashboard {
    width: min(1400px, calc(100vw - 64px)) !important;
    max-width: none !important;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (min-width: 640px) and (max-width: 899px) {
  .wsd-dashboard {
    width: min(100%, calc(100vw - 32px)) !important;
    max-width: none !important;
  }
}
/* Keep the temperature tile wide without allowing its charts to overflow. */
.wsd-dashboard__group--environment .wsd-card--temperature,
.wsd-dashboard__group--environment .wsd-card--temperature .wsd-card__visual { min-width: 0; }

/* v1.9.12: keep annual plot and month ticks on the same coordinate system. */
.wsd-temperature__annual svg { width:100%; max-height:none; aspect-ratio:320/145; }
.wsd-temperature__month-labels { display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0;align-items:start; }
.wsd-temperature__month-labels span { white-space:nowrap;text-align:center;font-size:clamp(.58rem,.8vw,.72rem); }
.wsd-temperature__month-labels span:first-child {text-align:left;}
.wsd-temperature__month-labels span:last-child {text-align:right;}

/* v1.9.13: stretch annual SVG horizontally without making it excessively tall. */
.wsd-temperature__annual svg { width:100%; height:180px; max-height:180px; aspect-ratio:auto; }
@media(max-width:600px){.wsd-temperature__annual svg{height:145px;max-height:145px}}

/* v1.9.16: independently embeddable crime card */
.wsd-crime__bars{height:125px;display:flex;align-items:end;gap:3px;padding:8px 0;border-bottom:1px solid #bbb}
.wsd-crime__bars span{flex:1;min-width:2px;background:#527496;border-radius:2px 2px 0 0}
.wsd-crime__category{display:flex;justify-content:space-between;gap:1rem;padding:5px 0;border-bottom:1px solid #ddd;font-size:.85rem}
.wsd-crime__category strong{font-variant-numeric:tabular-nums}

.wsd-crime-feature{background:var(--wsd-warm,#f2ede6);border-top:5px solid #1a3f6f;padding:clamp(1rem,3vw,2rem);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.wsd-crime-feature header,.wsd-crime-feature footer,.wsd-crime-feature section:first-of-type{grid-column:1/-1}
.wsd-crime-feature h4{font-size:clamp(1.6rem,3vw,2.6rem);margin:0}.wsd-crime-feature h5{font-size:1.12rem;margin:0 0 .5rem}
.wsd-crime-feature__key strong{font-size:2.5rem;color:#1a3f6f}
.wsd-crime-feature__bars{height:170px;display:flex;align-items:end;gap:4px;border-bottom:1px solid #aaa}
.wsd-crime-feature__bars span{flex:1;min-width:2px;background:#527496;border-radius:2px 2px 0 0}
.wsd-crime-feature__bars span:focus{outline:2px solid #111}
.wsd-crime-feature__row{display:flex;gap:1rem;justify-content:space-between;border-bottom:1px solid #d8d1c8;padding:.55rem 0;font-size:.86rem}
.wsd-crime-feature__note{font-size:.8rem;color:#625d55;line-height:1.5}
.wsd-crime-feature footer{border-top:1px solid #ccc;padding-top:1rem;font-size:.8rem}
@media(max-width:750px){.wsd-crime-feature{grid-template-columns:1fr}.wsd-crime-feature__bars{height:120px}}

/* v1.9.19 category-led explorer */
.wsd-crime-explorer{display:block}.wsd-crime-explorer>section{margin:1.4rem 0;padding:1rem 0;border-top:1px solid #d5cec4}
.wsd-crime-explorer__signal{padding:.85rem 0;border-bottom:1px solid #ddd5cc}.wsd-crime-explorer__signal strong{font-size:1.05rem}.wsd-crime-explorer__signal p{margin:.3rem 0;line-height:1.5}
.wsd-crime-explorer__select{display:block;width:100%;max-width:450px;padding:.55rem;margin:.6rem 0 1rem;background:white;color:#222;border:1px solid #999}
.wsd-crime-explorer__bars{display:flex;align-items:end;gap:4px;height:210px;border-bottom:1px solid #999}.wsd-crime-explorer__bars span{flex:1;min-width:2px;background:#315e85;border-radius:2px 2px 0 0}.wsd-crime-explorer__bars span:focus{outline:2px solid #111}
.wsd-crime-explorer__range{display:flex;justify-content:space-between;font-size:.75rem;color:#555;margin:.35rem 0}.wsd-crime-explorer__detail{font-weight:600;font-size:.9rem}

/* v1.9.21: accessible zero-based, shared-axis five-series line chart */
.wsd-crime-feature--lines{display:block}.wsd-crime-feature--lines>section{margin:1.5rem 0}
.wsd-crime-lines__scroller{width:100%;overflow-x:auto}.wsd-crime-lines__scroller svg{display:block;width:100%;height:auto;min-width:540px}
.wsd-crime-lines__legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-top:12px}
.wsd-crime-lines__legenditem{display:grid;grid-template-columns:12px 1fr auto;column-gap:8px;align-items:center;border-top:1px solid #d5d0c9;padding:10px 0;font-size:.86rem}
.wsd-crime-lines__swatch{height:5px;border-radius:2px}.wsd-crime-lines__legenditem strong{font-size:1.2rem;font-variant-numeric:tabular-nums}
.wsd-crime-lines__legenditem small{grid-column:3;font-size:.65rem;color:#555;text-align:right}.wsd-crime-lines__annual{grid-column:2/-1;font-size:.75rem;color:#555}

.wsd-crime-lines__interactive{position:relative}.wsd-crime-lines__hit{cursor:crosshair;touch-action:manipulation}
.wsd-crime-lines__hit:focus{stroke:#222;stroke-width:2}
.wsd-crime-lines__tooltip{position:absolute;z-index:3;pointer-events:none;max-width:230px;padding:9px 12px;border-radius:5px;background:#fff;color:#17283a;box-shadow:0 3px 14px #0003;border:1px solid #c4c4c4;font-size:13px;line-height:1.4}
.wsd-crime-lines__tooltip[hidden]{display:none}.wsd-crime-lines__tooltip strong{display:block;font-size:14px}
.wsd-crime-tooltip__dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}

/* v1.9.23: clear category definitions and total-chart tooltips */
.wsd-crime-total__interactive{position:relative}.wsd-crime-total__interactive span[data-month]{cursor:pointer;touch-action:manipulation}.wsd-crime-total__interactive span[data-month]:focus-visible{outline:2px solid #17283a;outline-offset:2px}
.wsd-crime-lines__label{position:relative;min-width:0}.wsd-crime-lines__help{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;margin-left:5px;border:1px solid #8d8a85;border-radius:50%;font-size:12px;background:transparent;color:#343434;cursor:pointer;vertical-align:middle;padding:0}
.wsd-crime-lines__help:focus-visible{outline:2px solid #24638b;outline-offset:2px}
.wsd-crime-lines__explanation{position:absolute;z-index:5;top:100%;left:0;width:min(250px,80vw);padding:10px 12px;border:1px solid #b6aea5;border-radius:5px;background:#fff;box-shadow:0 3px 14px #0002;font-size:12px;line-height:1.45;color:#222}
.wsd-crime-lines__explanation[hidden]{display:none}
