/* Civic Atlas presentation system. The released base (2026-11-06b, PR 283) comes first and is unchanged: the tokens and the
   quiet route link. Every addition below it is a named, page-scoped block (the owner's Nov 6 decision on scoping): each
   block lands with the decision that needs it, reaches only the pages its selectors name, and is covered by the existing
   identity guards (Home, the graph, orientation.css, home-editions.css) and the two pixel checks. orientation.css is
   untouched. No second sheet, no second system. */

/* == released base (06b): tokens and the route link == */
:root{
  --ca-ink:#092c46;--ca-body:#33434f;--ca-muted:#53636a;--ca-paper:#f8f8f2;--ca-white:#fff;
  --ca-rule:#d5dcd9;--ca-line:#cbd0cb;--ca-accent:#c70043;--ca-link:#0759b5;--ca-soft:#eef2f6;
  --ca-s1:8px;--ca-s2:16px;--ca-s3:24px;--ca-s4:40px;
}
.ca-route,.ca-routes a{font-size:15px;font-weight:600;color:var(--ca-ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.ca-routes{display:flex;flex-wrap:wrap;gap:6px 22px;margin:var(--ca-s2) 0 0;padding:0;list-style:none;align-items:center}
.ca-routes li{display:inline-flex;align-items:center;min-height:44px}
.ca-routes .ca-secondary{font-weight:400;color:var(--ca-muted)}

/* == warm-editorial: tokens, ground, type, surfaces, controls, focus (the Warm Editorial direction, design preview, Nov 6) ==
   In the owner's words: "warm ivory background, confident navy typography, restrained brand-red accents, and purposeful
   sage, ochre, or terracotta where they help distinguish information. Avoid stacking gray backgrounds, gray borders, gray
   labels, and muted controls until everything feels inactive." The tokens retune the base; the older sheets follow
   through their own variables (orientation.css c-quiet; funding.css paper, slate, line, hover, soft, white, body).
   Ground (owner's correction, Nov 6, late): the page ground is the specified #F9F8F4, cards are white, rules and the hover
   fill are neutral; the ivory tokens of the first candidate (#fbf7ee ground, #fffdf8 panels, #f3ebd8 hover, #e6dcc6/#d6c9ac
   rules) are withdrawn. "Warm Editorial" does not authorize a yellow tint. */
:root{
  --ca-ink:#092c46;--ca-body:#1f3a54;--ca-muted:#3d5469;--ca-paper:#f9f8f4;--ca-white:#fff;
  --ca-rule:#dfe2dd;--ca-line:#cbd0cb;--ca-accent:#c70043;--ca-link:#0759b5;--ca-soft:#f1f1ec;
  --ca-w:1240px;--ca-gutter:clamp(16px,5vw,64px);
  --ca-h1:32px;--ca-h2:22px;--ca-h3:17px;--ca-body-size:16px;--ca-small:14px;--ca-label:12px;--ca-radius:12px;
  --c-quiet:var(--ca-muted);
  --paper:var(--ca-paper);--slate:var(--ca-muted);--line:var(--ca-line);--hover:var(--ca-soft);--soft:var(--ca-soft);--white:var(--ca-white);--body:var(--ca-body);
}
@media (max-width:520px){:root{--ca-h1:28px;--ca-h2:20px}}
body,body.home-view,body.ff-page,body.links-page,body.districts-page,#home{background:var(--ca-paper)!important}
body .atlas-header,body.map-page .atlas-header,footer.civic-site-footer,footer.site-foot{background:var(--ca-paper)}
.ca-route:hover,.ca-routes a:hover{text-decoration-color:var(--ca-accent);text-decoration-thickness:2px}
.ca-secondary{font-weight:400;color:var(--ca-muted)}

/* == warm-editorial: widths and type (content pages) == */
.links-page #links-main,body.ff-page main.ff:not(.bm),main.districts-main,.districts-page main{max-width:var(--ca-w);margin-left:auto;margin-right:auto;padding-left:var(--ca-gutter);padding-right:var(--ca-gutter);box-sizing:border-box}
.links-page #links-main h1,body.ff-page main.ff h1{font-size:var(--ca-h1);line-height:1.2;letter-spacing:-.02em;margin:0 0 var(--ca-s1);color:var(--ca-ink)}
.links-page #links-main h2,body.ff-page main.ff h2.ff-h2,.dir-section>h2{font-size:var(--ca-h2);line-height:1.3;font-weight:600;color:var(--ca-ink);margin:0 0 var(--ca-s1)}
.links-page #links-main h3,body.ff-page main.ff h3{font-size:var(--ca-h3);line-height:1.4;font-weight:600;color:var(--ca-ink)}
.ca-label,.dir-entry .dir-scope,.dir-group-head .dir-scope{font-size:var(--ca-label);letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ca-muted)}
.ca-num,.ff-num,.bm-total-amt,.dir-call{font-variant-numeric:tabular-nums}

/* == warm-editorial: surfaces, controls, disclosures, focus == */
.ca-panel,.bm-panel,#home .contact-card .cc-location,#home .contact-card .cc-row,#home .cc-contact-card{background:var(--ca-white);border-color:var(--ca-line)}
.ca-rule{border:0;border-top:1px solid var(--ca-rule);margin:var(--ca-s3) 0}
.ca-btn,.cc-act,.sf-tap,.dir-save-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--ca-ink);background:var(--ca-white);color:var(--ca-ink);font:inherit;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer}
.ca-btn.primary,.cc-act.primary,.dir-save-button{background:var(--ca-ink);color:var(--ca-white)}
.ca-btn:hover,.cc-act:hover,.sf-tap:hover{background:var(--ca-soft);color:var(--ca-ink);border-color:var(--ca-accent)}
.ca-btn.primary:hover,.cc-act.primary:hover{background:var(--ca-accent);border-color:var(--ca-accent);color:#fff}
.ca-disclosure>summary,.contact-card .cc-details>summary,.bm-table>summary,.bm-keys>summary,.bm-acct>summary,.dir-section>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;font-size:15px;color:var(--ca-ink);font-weight:500;list-style:none}
.ca-disclosure>summary::-webkit-details-marker,.contact-card .cc-details>summary::-webkit-details-marker,.bm-table>summary::-webkit-details-marker,.bm-keys>summary::-webkit-details-marker,.bm-acct>summary::-webkit-details-marker{display:none}
.ca-disclosure>summary::before,.contact-card .cc-details>summary::before,.bm-table>summary::before,.bm-keys>summary::before,.bm-acct>summary::before{content:"▸";font-size:12px;color:var(--ca-accent);transition:transform .12s ease}
.ca-disclosure[open]>summary::before,.contact-card .cc-details[open]>summary::before,.bm-table[open]>summary::before,.bm-keys[open]>summary::before,.bm-acct[open]>summary::before{transform:rotate(90deg)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ca-accent);outline-offset:3px}
.ca-stack>*+*{margin-top:var(--ca-s1)}

/* == header navigation (decision C as the owner restated it on Nov 6, evening): "Explore government" is the fifth name in the
   main navigation on every page, with the same type, spacing, hover, underline and current mark as the others (orientation.css
   styles them all). Desktop keeps the visible row. The Home entry under the purposes is gone.
   Narrow screens (owner's correction, Nov 6, late): a standard Menu control instead of rows of links or a tall header. The
   button sits beside the seal with the current section named next to it; open, the five names are 44px rows under the
   header. orientation.js adds the control (class ca-has-menu on the wrapper), so without scripts the row shows as released. == */
.ca-menu,.ca-menu-here{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:650px){
  body .atlas-header,body:not(.home-view) .atlas-header,body.home-view .atlas-header{height:auto!important;min-height:0!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;padding:10px 6%!important;gap:12px!important;row-gap:0!important}
  body .atlas-header .atlas-navigation.ca-has-menu{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex:1 1 auto!important;width:auto!important;min-width:0!important;margin-left:auto!important;position:static}
  body .atlas-header .ca-has-menu nav[aria-label="Main navigation"]{display:none!important}
  .ca-menu-here{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--ca-ink)}
  .ca-menu{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:44px;min-width:44px;padding:0 14px 0 12px;border:1px solid var(--ca-ink);border-radius:999px;background:var(--ca-white);color:var(--ca-ink);font-family:"Atkinson Hyperlegible Next","Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:600;line-height:1;cursor:pointer}
  .ca-menu:hover{border-color:var(--ca-accent)}
  .ca-menu[aria-expanded="true"]{background:var(--ca-ink);color:#fff}
  body .atlas-header.ca-menu-open .ca-has-menu nav[aria-label="Main navigation"]{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;position:absolute;left:0;right:0;top:100%;z-index:30;margin:0;padding:6px 6% 10px;background:var(--ca-white);border-bottom:1px solid var(--ca-line);box-shadow:0 10px 24px rgba(9,44,70,.08)}
  body .atlas-header.ca-menu-open nav[aria-label="Main navigation"] a{display:flex!important;align-items:center;justify-content:flex-start!important;text-align:left;min-height:44px!important;height:auto;padding:0 6px!important;font-size:14px!important;letter-spacing:.04em;border-top:1px solid var(--ca-rule);width:100%;box-sizing:border-box}
  body .atlas-header.ca-menu-open nav[aria-label="Main navigation"] a:first-child{border-top:0}
  body .atlas-header.ca-menu-open nav[aria-label="Main navigation"] a[aria-current="page"]{font-weight:700;box-shadow:inset 3px 0 0 var(--ca-accent);padding-left:12px!important}
}

/* == Home entry (owner's correction, Nov 6, late): two clearly labeled inputs in one form, the issue and where it is
   happening, submitted together; "Use my current location" beside the place field; one action. The released pill form's
   rules (home-scene.css) are overridden here for the two-field form only. == */
body.home-view #home.scene-home .home-tools form.your-la.your-la-two{display:grid!important;grid-template-columns:1fr;gap:12px;min-height:0!important;padding:16px 18px 18px!important;border:2px solid var(--ca-ink)!important;border-radius:18px!important;background:var(--ca-white)!important;box-shadow:0 2px 0 rgba(9,44,70,.06),0 10px 28px rgba(9,44,70,.10)!important;text-align:left}
#home .your-la-two .your-la-field{display:flex;flex-direction:column;gap:6px;min-width:0}
#home .your-la-two .your-la-field label{font-size:15px;font-weight:600;color:var(--ca-ink);line-height:1.3}
#home .your-la-two .your-la-opt{font-weight:400;color:var(--ca-muted)}
#home .your-la-two .your-la-loc{display:flex;flex-direction:column;gap:6px;min-width:0}
#home .your-la-two .your-la-loc [hidden]{display:none!important}
#home .your-la-two .your-la-addloc{display:inline-flex!important;align-self:flex-start;margin:0!important;align-items:center;flex-wrap:wrap;gap:4px 8px;width:auto!important;height:auto!important;min-height:44px;padding:0 6px!important;border:0;background:none;color:var(--ca-ink);font:inherit;font-size:15px;font-weight:600;cursor:pointer;text-align:left;justify-self:start;border-radius:8px}
#home .your-la-two .your-la-addloc .your-la-plus{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1.5px solid var(--ca-ink);border-radius:50%;font-size:16px;line-height:1}
#home .your-la-two .your-la-addloc small{font-size:13px!important;font-weight:400;color:var(--ca-muted)}
#home .your-la-two .your-la-addloc .your-la-addloc-text{font-size:15px!important}
#home .your-la-two .your-la-addloc:hover,#home .your-la-two .your-la-addloc:focus-visible,#home .your-la-two .your-la-loc-summary .link-button:hover{background:none!important;color:var(--ca-ink)}
#home .your-la-two .your-la-addloc:hover .your-la-addloc-text{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ca-accent)}
#home .your-la-two .your-la-loc-summary .link-button:hover{color:var(--ca-accent)!important}
#home .your-la-two .your-la-where-panel{display:flex;flex-direction:column;gap:6px}
#home .your-la-two .your-la-where-panel label{font-size:15px;font-weight:600;color:var(--ca-ink)}
#home .your-la-two .your-la-loc-summary{margin:0;min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:15px;color:var(--ca-body)}
#home .your-la-two .your-la-loc-summary b{color:var(--ca-ink);font-weight:600}
#home .your-la-two .your-la-loc-summary .link-button{width:auto!important;height:auto!important;min-height:44px;padding:0 4px!important;border:0;background:none;color:var(--ca-link);font:inherit;font-size:15px!important;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
#home .your-la-two .your-la-dot{color:var(--ca-muted)}
body.home-view #home.scene-home .home-tools #your-la.your-la-two input{height:46px!important;min-height:46px;padding:0 14px!important;font-size:16px!important;color:var(--ca-ink);background:#fff;border:1px solid var(--ca-line)!important;border-radius:10px!important;box-shadow:none!important;width:100%;box-sizing:border-box}
body.home-view #home.scene-home .home-tools #your-la.your-la-two input:focus{border-color:var(--ca-ink)!important;outline:3px solid var(--ca-accent);outline-offset:2px}
#home .your-la-two .your-la-where-row{display:flex;gap:8px;align-items:center;min-width:0}
#home .your-la-two .your-la-where-row input{flex:1 1 160px;min-width:0}
body.home-view #home .your-la.your-la-two button.ca-near{height:44px!important;min-height:44px;margin:0!important;padding:0 12px!important;border:1px solid var(--ca-ink)!important;border-radius:999px;background:#fff!important;color:var(--ca-ink);font-size:13px;font-weight:600;white-space:nowrap}
body.home-view #home .your-la.your-la-two button.ca-near:hover{border-color:var(--ca-accent)!important}
body.home-view #home.scene-home .home-tools .your-la.your-la-two button[type=submit].ca-go{width:auto!important;height:46px!important;justify-self:start;display:inline-flex!important;grid-template-columns:none;align-items:center;gap:8px;padding:0 20px!important;border-radius:999px!important;font-size:15px;font-weight:600;background:var(--ca-ink)!important;color:#fff!important}
body.home-view #home.scene-home .home-tools .your-la.your-la-two button[type=submit].ca-go .ca-arrow{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
body.home-view #home.scene-home .home-tools .your-la.your-la-two button[type=submit].ca-go span{display:inline!important;font-size:15px!important;line-height:1;color:#fff}
#home .start-box .your-la-help{text-align:left}
@media(max-width:520px){
  body.home-view #home.scene-home .home-tools form.your-la.your-la-two{padding:14px 14px 16px!important}
  body.home-view #home .your-la.your-la-two button.ca-near{width:44px!important;padding:0!important;justify-content:center}
  body.home-view #home .your-la.your-la-two button.ca-near span{display:none}
  body.home-view #home.scene-home .home-tools #your-la.your-la-two input{height:48px!important;font-size:16px!important}
  body.home-view #home.scene-home .home-tools .your-la.your-la-two button[type=submit].ca-go{width:100%!important;height:48px!important;justify-content:center}
}

/* == practical answer (#home .contact-card): one surface level, the tabs and pills as controls == */
#home .contact-card .cc-w>div,#home .contact-card .cc-w>div+div{border-color:var(--ca-rule)}
body #home .cc-tabs{background:transparent;border:1px solid var(--ca-line);padding:3px}
body #home .cc-tab.on{background:var(--ca-ink);color:var(--ca-white)!important;box-shadow:none}
#home .contact-card .cc-location{background:transparent!important;border:0!important;border-top:1px solid var(--ca-rule)!important;border-bottom:1px solid var(--ca-rule)!important;border-radius:0!important;padding:10px 0!important}
#home .cc-list li.cc-row{border-top-color:var(--ca-rule)}
body #home .cc-act:not(.primary){border-color:var(--ca-ink)}
body #home .cc-act:not(.primary):hover{border-color:var(--ca-accent);color:var(--ca-accent)!important;filter:none}

/* The address result's issue form (Nov 6, evening): one labeled field and one primary action, first in the result. */
#home .your-issue{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--ca-rule)}
#home .your-issue label{display:block;font-size:17px;font-weight:600;color:var(--ca-ink);margin:0 0 8px}
#home .your-issue-row{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
#home .start-box .your-la-help{display:block;margin:10px 0 0;font-size:14px;line-height:1.45;color:var(--ca-muted);text-align:center}
#home .your-issue-row input{flex:1 1 220px;min-height:44px;padding:0 14px;font:inherit;font-size:16px;color:var(--ca-ink);background:var(--ca-white);border:1px solid var(--ca-ink);border-radius:999px}
#home .your-issue-row input:focus-visible{outline:3px solid var(--ca-accent);outline-offset:2px}
#home .your-issue-hint{margin:8px 0 0;font-size:13px;color:var(--ca-muted)}

/* == directory (.links-page): four clean columns, no rules, everything open (owner, Nov 6, late) == */
.links-page #links-main .dir-group,.links-page #links-main .dir-entry,.links-page #links-main .dir-list .dir-entry,.links-page #links-main .dir-section{border:0!important}
.links-page #links-main .dir-group{margin:0 0 36px;padding:0}
.links-page #links-main .dir-agency{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(90px,.8fr) minmax(130px,1fr) minmax(160px,1.3fr);column-gap:24px;align-items:start}
.links-page #links-main .dir-agency-header{margin:4px 0 12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ca-muted)}
.links-page #links-main .dir-group-head.dir-agency{display:grid;flex-wrap:nowrap;gap:0 24px;margin:0 0 10px}
.links-page #links-main .dir-agency-name{display:flex;align-items:flex-start;gap:14px;min-width:0}
.links-page #links-main .dir-agency-name h2{font-size:19px;line-height:1.35;margin:0;color:var(--ca-ink)}
.links-page #links-main .dir-agency-name .dir-scope{margin:2px 0 0;font-size:13px;color:var(--ca-muted)}
.links-page #links-main .dir-agency-name .ca-office-role{margin:4px 0 0;font-size:14px;line-height:1.5;color:var(--ca-body)}
.links-page #links-main .dir-agency-name .ca-office-mark{width:56px;height:56px;padding:7px;flex:none;border-radius:50%!important;background:#fff;border:1px solid var(--ca-line);box-shadow:0 1px 0 rgba(9,44,70,.04);overflow:hidden}
.links-page #links-main .dir-agency-name .ca-office-mark.wide{width:56px;padding:6px}
.links-page #links-main .dir-agency-name .ca-office-mark img{width:100%;height:100%;object-fit:contain;display:block}
.links-page #links-main .dir-agency-name .ca-office-mark.text{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ca-ink);text-align:center;line-height:1.1;display:flex;align-items:center;justify-content:center}
.links-page #links-main .dir-agency-cell{margin:0;font-size:16px;line-height:1.5;color:var(--ca-ink);min-width:0;overflow-wrap:anywhere;padding-top:2px}
.links-page #links-main .dir-agency-cell .dir-col-label{display:none}
.links-page #links-main .dir-agency-cell a{display:inline-flex;align-items:center;min-height:44px;margin-top:-10px;color:var(--ca-ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;font-variant-numeric:tabular-nums;font-family:var(--ca-num-face,inherit)}
.links-page #links-main .dir-agency-cell a:hover{text-decoration-color:var(--ca-accent);text-decoration-thickness:2px}
.links-page #links-main .dir-agency-cell .dir-none{color:var(--ca-muted)}
.links-page #links-main .dir-entry .dir-contact a.dir-call{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:var(--ca-ink);text-decoration:underline;text-underline-offset:4px;font-variant-numeric:tabular-nums}
.links-page #links-main .dir-entry .dir-contact a.dir-call:hover{text-decoration-color:var(--ca-accent);text-decoration-thickness:2px}
.links-page #links-main .dir-group-head.dir-topic .dir-agency-name{grid-column:1/-1}
.links-page #links-main .dir-entry:has(.dir-contact a.dir-call){display:grid;grid-template-columns:minmax(0,2.2fr) minmax(90px,.8fr) minmax(130px,1fr) minmax(160px,1.3fr);grid-template-areas:"title title call ." "ask ask call ." "scope scope call .";column-gap:24px;row-gap:0;align-items:start}
.links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>h3{grid-area:title;margin:0 0 2px}
.links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>.dir-ask{grid-area:ask;margin:0 0 6px}
.links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>.dir-scope{grid-area:scope;margin:0}
.links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>.dir-contact{grid-area:call;margin:0;justify-content:flex-start;align-self:start;padding-top:2px}
.links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>.dir-contact a.dir-call{margin-top:-10px}
.links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>:not(h3):not(.dir-ask):not(.dir-scope):not(.dir-contact){grid-column:1/-1}
.links-page #links-main .dir-section>summary{list-style:none;pointer-events:none;cursor:default;font-size:19px;font-weight:600;color:var(--ca-ink)}
.links-page #links-main .dir-section>summary::-webkit-details-marker,.links-page #links-main .dir-section>summary::before{display:none;content:none}
.links-page #links-main .ca-marks-note{margin:12px 0 20px}
@media (max-width:760px){
  .links-page #links-main .dir-agency-header{display:none}
  .links-page #links-main .dir-group-head.dir-agency{grid-template-columns:minmax(0,1fr);gap:4px 0}
  .links-page #links-main .dir-agency-cell{display:flex;gap:10px;align-items:baseline;font-size:15px}
  .links-page #links-main .dir-agency-cell .dir-col-label{display:inline-block;min-width:68px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ca-muted)}
  .links-page #links-main .dir-agency-cell a{margin-top:0}
  .links-page #links-main .dir-entry:has(.dir-contact a.dir-call){grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "ask" "scope" "call"}
  .links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>.dir-contact{justify-content:flex-start;margin-top:0;padding-top:0}
  .links-page #links-main .dir-entry:has(.dir-contact a.dir-call)>.dir-contact a.dir-call{margin-top:0;min-height:44px}
  .links-page #links-main .dir-list .dir-entry{padding:10px 0}
}
@media (max-width:520px){.atlas-header nav{flex-wrap:wrap;justify-content:flex-end;gap:4px 22px}}

/* == budget and Measure A (body.ff-page): the panel takes the warm surface; the category families stay in budget.css == */
.bm-panel{background:var(--ca-white);border-color:var(--ca-line)}
/* The in-focus outline (owner, Nov 6, late: it read pink): the cell is drawn last, above its neighbours, so the whole stroke shows in the brand red at 2.5px; selected, 3.25px. */
.bm-cell.bm-infocus path{stroke:#c70043;stroke-width:2.5}
.bm-cell.bm-infocus[aria-pressed="true"] path{stroke-width:3.25}
/* The chart's own hover label (owner, Nov 6, after 06f): the cell's name, amount and share near the pointer, or under a focused cell. */
.bm-hover-label{position:absolute;z-index:5;pointer-events:none;max-width:280px;padding:7px 11px;border-radius:8px;background:var(--ca-ink);color:#fff;font-size:13px;line-height:1.4;box-shadow:0 4px 14px rgba(9,44,70,.18);font-variant-numeric:tabular-nums}
.bm-hover-label[hidden]{display:none}
.bm-scale{display:inline-flex;gap:0;margin:2px 0 6px;border:1px solid var(--ca-line);border-radius:999px;padding:2px;background:#fff;vertical-align:middle}
.bm-scale button{font:inherit;font-size:12px;font-weight:600;min-height:26px;padding:0 10px;border:0;border-radius:999px;background:none;color:var(--ca-ink);cursor:pointer}
.bm-scale button[aria-pressed="true"]{background:var(--ca-ink);color:#fff}
/* The panel opens with the largest line (Nov 6), so it is bounded beside the chart and scrolls inside; the sections below keep their place. */
@media (min-width:851px){.bm-panel{max-height:800px;overflow:auto}}
/* The ring (owner, Nov 6, the "Big Tech" blueprint), the one composition since 2026-11-06h: arcs are the cells; names outside with leaders; the centre; the grouping bar. */
.bm-cell.bm-arc path{stroke:#fff;stroke-width:2}
.bm-callout{fill:var(--ca-ink);font-weight:600;letter-spacing:.01em;pointer-events:none}
.bm-callout .bm-callout-share{font-weight:400;fill:var(--ca-body);font-family:var(--ca-num-face,inherit)}
.bm-callout-lead{fill:none;stroke:var(--ca-ink);stroke-opacity:.3;stroke-width:1;pointer-events:none}
.bm-centre text{pointer-events:none}
.bm-centre-gov{fill:var(--ca-ink);font-family:Georgia,"Times New Roman",serif}
.bm-centre-total{fill:var(--ca-ink);font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.01em}
.bm-centre-note{fill:var(--ca-muted)}
.bm-centre-focus{fill:#c70043;font-weight:600}
.bm-bar-title{fill:var(--ca-muted)!important;font-size:11px}
.bm-band.bm-bar-seg{stroke:#fff;stroke-width:1.5;cursor:pointer}
.bm-bar-label{font-size:10.5px;letter-spacing:.03em}

/* == office marks (.ca-office): one treatment for identifying an office (decision E) == */
/* Office mark (design preview, Nov 6, 2026): one treatment for identifying an office by its own mark, aligned with Warm
   Editorial. An equal-area box on the panel ivory with a warm line; the mark is fitted by its own proportions, never
   recolored or cropped; a wide wordmark gets a wider box so seals and wordmarks carry similar visual weight. The text-only
   variant (a missing mark, or one awaiting a usable version or review) is the same box with the office's short name in
   the serif. The mark pairs with the office name, its jurisdiction, a one-line role and one action. Marks identify the
   office; they imply no endorsement or verified outcome. Data: site/office-marks.json. */
.ca-office{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;margin:0 0 var(--ca-s2)}
.ca-office-mark{width:72px;height:72px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:8px;background:var(--ca-white);border:1px solid var(--ca-line);border-radius:10px;overflow:hidden}
.ca-office-mark.wide{width:128px}
.ca-office-mark img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.ca-office-mark.text{font:400 15px/1.15 Georgia,"Times New Roman",serif;color:var(--ca-ink);text-align:center;letter-spacing:.02em;padding:6px}
.ca-office-mark.text.wide{font-size:17px}
.ca-office-text{min-width:0}
.ca-office-text .ca-office-name{margin:0;font-size:var(--ca-h3);font-weight:600;color:var(--ca-ink);line-height:1.3}
.ca-office-text .ca-office-juris{margin:2px 0 0;font-size:var(--ca-label);letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ca-muted)}
.ca-office-text .ca-office-role{margin:4px 0 0;font-size:15px;color:var(--ca-body);line-height:1.45}
.ca-office-text .ca-office-act{margin:8px 0 0}
.ca-marks-note{margin:var(--ca-s2) 0 0;font-size:13px;color:var(--ca-muted);max-width:70ch;line-height:1.45}
.links-page #links-main .ca-marks-note{margin:0 0 var(--ca-s2)}
.dm-main .ca-marks-note{margin:var(--ca-s3) auto 0;padding:0 var(--ca-gutter)}
@media(max-width:520px){.ca-office-mark{width:56px;height:56px;padding:6px}.ca-office-mark.wide{width:100px}.ca-office-mark.text{font-size:13px}.ca-office-mark.text.wide{font-size:14px}}
/* In the Directory the group head is the office: the mark box leads, the heading and jurisdiction sit beside it. */
.dir-group-head.ca-office h2{margin:0}
/* In the Find your rep result the council office's text-only mark leads the block, beside the portrait. */
.rep .ca-office-mark{flex:none;margin-right:0}

/* The district text treatment, every council seat: the seat then the member in the serif box; no lockup. */
.ca-office-mark.text.district{flex-direction:column;gap:2px;font-size:11.5px;line-height:1.2;letter-spacing:.02em}
.ca-office-mark.text.district b{font-weight:400;font-size:13px}
.ca-office-mark.text.district small{font:400 10.5px/1.2 "Atkinson Hyperlegible Next","Helvetica Neue",Arial,sans-serif;color:var(--ca-muted)}
.ca-office-mark.text.district b{white-space:nowrap}
@media(max-width:520px){.ca-office-mark.text.district{font-size:10px;width:112px}.ca-office-mark.text.district b{font-size:10.5px}.ca-office-mark.text.district small{font-size:9px}}
/* The shared explanation, once near each collection: the Directory's heads, the budget's responsible-office panel, the rep result's foot. */
.rep{flex-wrap:wrap}
.rep .ca-marks-note{flex-basis:100%;margin:8px 0 0}

/* == numerals: a plain zero wherever figures are set in the sans (the owner's evening request, Nov 6) ==
   Atkinson Hyperlegible Next draws a slashed zero by design and offers no plain alternate (every OpenType feature
   tested, zero/ss01-ss05/salt/onum/lnum/tnum/pnum/cv01-cv10, renders the same glyph), so figure-bearing elements take
   Helvetica Neue / Arial, the face the released district chips use (2026-11-06e). Serif amounts are untouched. The budget's
   heading row takes the face on its figure spans only, so the row keeps its width before and after the figures load. */
:root{--ca-num-face:"Helvetica Neue",Arial,sans-serif}
.ff-num,[data-fy],.bm-band-label,.bm-band-amt,.bm-cell-amt,.bm-cell-share,.bm-mark,.bm-caption,.bm-keys,.bm-crumbs,.bm-panel .pg,.bm-panel .bm-amount,.bm-panel .bm-share,.bm-panel-figures,.bm-bars .bm-amt,.dir-call,.dir-group-contact a.dir-call,.rep-seat,.rep .member,.cc-row b,.cc-act,.cc-tel,.cc-location,.dm-district-label span,.ca-office-mark.text.district small,.ff-lead-status,.ff-summary,.ff-meta-line{font-family:var(--ca-num-face)}
