/* Shared app controls. Public evidence keeps its existing data and route colours. */
body:not([data-page=lab]) .header .nav a{gap:.45rem;padding:.55rem .6rem;border-radius:8px;border-bottom:0;min-height:48px}
.header .nav .civic-icon{width:19px;height:19px;flex-shrink:0}
.header .nav small{display:none}
body:not([data-page=lab]) .header .nav a:hover{background:var(--nyc-wash)}
body:not([data-page=lab]) .header .nav a[aria-current]{color:var(--nyc-pulse);background:var(--nyc-teal-wash);box-shadow:inset 0 -3px var(--nyc-pulse)}
body:not([data-page=lab]) .header{grid-template-columns:minmax(220px,.7fr) minmax(0,2fr)}
.header .menu{align-items:center;justify-content:center;gap:.5rem;min-height:44px}
.header .menu svg{width:20px;height:20px}
.civic-workspace{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--nyc-line);margin-bottom:1rem;font-size:.8rem}
.workspace-location{display:flex;align-items:center;gap:.6rem;color:var(--nyc-muted)}
.workspace-location>svg{color:var(--nyc-pulse)}
.workspace-location strong{color:var(--nyc-ink)}
.workspace-location span span{padding-inline:.5rem;color:var(--nyc-muted)}
.borough-launch{display:flex;align-items:center;gap:.45rem;min-height:44px;padding:.6rem .85rem;border:1px solid var(--nyc-line);border-radius:8px;background:var(--nyc-blue-wash);color:var(--nyc-ink);font-weight:700;text-align:left;cursor:pointer}
.borough-launch svg{width:20px;flex-shrink:0}
.borough-launch:hover{border-color:var(--nyc-pulse)}
.borough-dialog{color:var(--nyc-ink);background:var(--nyc-page);width:min(510px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:clamp(1rem,4vw,2rem);border:1px solid var(--nyc-line);border-radius:18px;overflow:auto;box-shadow:0 20px 80px #102b4e33}
.borough-dialog::backdrop{background:#102b4eb3}
.borough-dialog-head{display:flex;justify-content:space-between;align-items:center}
.dialog-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;color:var(--nyc-pulse);background:var(--nyc-teal-wash)}
.borough-dialog button{min-height:44px;min-width:44px;border:1px solid var(--nyc-line);border-radius:8px;background:var(--nyc-page);color:var(--nyc-ink);cursor:pointer}
.borough-dialog [data-close-borough]{display:grid;place-items:center}
.borough-dialog h2{font:700 clamp(1.7rem,5vw,2.2rem)/1.1 var(--nyc-display);margin:1.2rem 0 .8rem}
.borough-dialog>p{font-size:.95rem;line-height:1.5;color:var(--nyc-muted)}
.borough-choices{display:grid;gap:.5rem;margin:1.4rem 0}
.borough-choices a{display:flex;align-items:center;gap:.8rem;min-height:56px;padding:.7rem .9rem;border:1px solid var(--nyc-line);border-radius:10px;text-decoration:none;font-weight:700;color:var(--nyc-ink)}
.borough-choices a span{flex:1}.borough-choices svg{width:21px;flex-shrink:0}
.borough-choices a:hover,.borough-choices a.saved{background:var(--nyc-blue-wash);border-color:var(--nyc-blue)}
.remember-borough{display:flex;align-items:center;gap:.75rem;min-height:44px;font-size:.85rem;font-weight:600;cursor:pointer}
.remember-borough input{width:20px;height:20px;flex-shrink:0;accent-color:var(--nyc-pulse)}
.borough-dialog .borough-privacy{font-size:.75rem;margin:.35rem 0 .75rem}
.borough-dialog .borough-save-status:empty{display:none}
body:not([data-page=lab]) :is(button,a,input,select):focus-visible{outline:3px solid var(--nyc-blue);outline-offset:3px;box-shadow:none}
.civic-front .reading{border-radius:12px}
.civic-front .reading-foot a{display:grid;place-items:center;border-radius:8px;background:var(--nyc-blue-wash);color:var(--nyc-ink);min-width:44px;min-height:44px}
.civic-front .story-rail a{border-radius:8px}.civic-front .story-rail a:hover{background:#ffffff12}
.civic-front .meaning-flow article{position:relative;border-bottom:1px solid var(--nyc-line);padding-bottom:1.5rem}
.civic-front .meaning-flow article>i{background:var(--nyc-page);border:1px solid var(--nyc-line);border-radius:12px;display:grid;place-items:center;width:48px;height:48px;flex-shrink:0}
.civic-front .borough-tabs button{border-radius:8px}
@media(min-width:1101px){.header .nav{gap:.15rem}.header .nav a{font-size:.78rem}}
@media(max-width:1100px){body:not([data-page=lab]) .header{grid-template-columns:1fr auto}.header .menu{display:flex}.header .nav small{display:block;font-size:.8rem;font-weight:400;white-space:normal;color:var(--nyc-muted);margin-top:.2rem}.header .nav .civic-icon{width:24px;height:24px}.header .nav.open{gap:.55rem}body:not([data-page=lab]) .header .nav a{padding:.85rem;gap:1rem}}
@media(max-width:760px){.civic-workspace{font-size:.72rem;gap:.5rem;margin-bottom:.7rem}.workspace-location>svg{display:none}.workspace-location span span{padding-inline:.2rem}.borough-launch{font-size:.72rem;max-width:56%;padding:.45rem .6rem}.home-dock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.home-dock a{min-width:0;padding:.4rem .15rem;white-space:normal}.home-dock a[aria-current]{border-radius:10px;background:var(--nyc-teal-wash);text-decoration:none;box-shadow:inset 0 3px var(--nyc-pulse)}}
@media(prefers-reduced-motion:no-preference){.borough-choices a,.borough-launch,.header .nav a{transition:background-color .15s ease,border-color .15s ease}}
/* A distinct component avoids the legacy story-list flex-column rules. */
body[data-page=home] .civic-front .pulse-pathway{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
  margin:2rem 0 0;padding:0;background:var(--nyc-blue-wash);
  border-block:1px solid var(--nyc-line);width:100%;
}
body[data-page=home] .civic-front .pulse-pathway a{
  display:grid;grid-template-columns:48px minmax(0,1fr) 22px;align-items:center;
  gap:1rem;padding:1.4rem clamp(1rem,2vw,2rem);min-height:140px;
  color:var(--nyc-ink);text-decoration:none;border:0;border-right:1px solid var(--nyc-line);
}
body[data-page=home] .civic-front .pulse-pathway a:last-child{border-right:0}
.pulse-pathway .pathway-icon{display:grid;place-items:center;width:48px;height:48px;background:var(--nyc-page);border:1px solid var(--nyc-line);border-radius:12px;color:var(--nyc-pulse)}
.pulse-pathway .pathway-icon svg{width:28px;height:28px}
.pulse-pathway .pathway-copy{display:grid;gap:.35rem}
.pulse-pathway .pathway-step{font:800 .8rem/1 var(--nyc-ui);color:var(--nyc-pulse);letter-spacing:.08em}
.pulse-pathway .pathway-copy strong{font:750 clamp(1.1rem,1.5vw,1.35rem)/1.2 var(--nyc-ui)}
.pulse-pathway .pathway-description{font:400 .875rem/1.4 var(--nyc-ui);color:var(--nyc-muted)}
.pulse-pathway .pathway-arrow{font:700 1.4rem/1 var(--nyc-ui);color:var(--nyc-pulse)}
body[data-page=home] .civic-front .pulse-pathway a:hover{background:var(--nyc-page)}
body[data-page=home] .civic-front .pulse-pathway a:focus-visible{outline:3px solid var(--nyc-blue);outline-offset:-4px}
@media(max-width:1000px){
  body[data-page=home] .civic-front .pulse-pathway{grid-template-columns:1fr;margin-top:1.5rem}
  body[data-page=home] .civic-front .pulse-pathway a{grid-template-columns:44px minmax(0,1fr) 20px;padding:1rem;min-height:106px;border-right:0;border-bottom:1px solid var(--nyc-line);gap:.8rem}
  body[data-page=home] .civic-front .pulse-pathway a:last-child{border-bottom:0}
  .pulse-pathway .pathway-icon{width:44px;height:44px}.pulse-pathway .pathway-copy strong{font-size:1.125rem}
}
/* Supporting views bring the evidence and controls closer to the introduction. */
@media(max-width:760px){
  body:not([data-page=home]):not([data-page=lab]) .hero h1,
  .civic-front .support-hero h1{font-size:clamp(1.9rem,7.8vw,2.5rem);line-height:1.1}
  body:not([data-page=home]):not([data-page=lab]) .hero{padding-block:1.5rem}
  .civic-front .support-hero{padding-block:1.5rem}
}
