/* A single canvas. Controls and context appear on request. */
:root { --ink:#25233d; --muted:#646175; --bg:#f8f9ff; --line:#dfdce6; --green:#5140a0; }
[hidden] { display:none !important; }
.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; }
body { background:var(--bg); color:var(--ink); }
header { height:76px; padding:16px 26px; display:flex; flex-wrap:nowrap; border:0; background:transparent; position:relative; z-index:20; gap:16px; }
.brand { font-size:18px; gap:10px; }
.brandmark,.brandmark span { color:#ee595c; }
.brand-sub { font-size:10px; letter-spacing:1.8px; color:#676177; }
.header-actions { display:flex; align-items:center; gap:10px; margin-left:auto; }
.header-actions button,.government-picker select { font:inherit; font-size:14px; color:var(--ink); border:1px solid #d4d0df; background:#fff; border-radius:24px; min-height:42px; padding:8px 16px; }
.header-actions button:hover { background:#e9e5ff; border-color:#6451bf; }
.government-picker select { max-width:170px; }
#site-menu { position:absolute; right:26px; top:68px; background:#fff; border:1px solid var(--line); border-radius:16px; width:250px; padding:12px; box-shadow:0 12px 40px #25233d18; }
#site-menu nav { display:grid; width:100%; height:auto; gap:2px; overflow:visible; }
#site-menu .nav { text-align:left; padding:12px; border:0; border-radius:8px; height:auto; font-size:15px; }
#site-menu .nav.active { background:#eeeaff; }
main { padding:0; max-width:none; }
.map-page { height:100dvh; overflow:hidden; }
.map-page main { height:calc(100dvh - 76px); }
#explore { height:100%; }
.workspace { display:block; position:relative; height:100%; min-height:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:hidden; }
.graph-area { position:absolute; inset:0; height:100%; min-height:0; background:transparent; display:block; }
#canvas { position:absolute; inset:0 0 76px; height:auto; min-height:0; overflow:hidden; background:none; }
#graph { position:absolute; inset:0; width:100%; height:100%; min-width:0; min-height:0; aspect-ratio:auto; }
.graph-toolbar { position:absolute; bottom:20px; left:26px; z-index:3; height:auto; padding:0; border:0; background:transparent; }
.graph-toolbar > div:first-child { display:none; }
.view-switch { border:1px solid #d4d0df; border-radius:24px; padding:4px; background:white; }
.view-switch button { border-radius:20px; font-size:14px; padding:8px 14px; }
.view-switch button.selected { background:#e5edf5; box-shadow:none; color:#423575; }
.legend { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); background:none; border:0; padding:0; gap:20px; font-size:13px; color:#504961; white-space:nowrap; }
.legend .line-legend { display:none; }
.legend i.elected { background:#ff817a; }
.legend i.department { background:#9ea6ff; }
.legend i.commission { background:#ffc857; }
.graph-caption { position:absolute; bottom:0; left:50%; transform:translateX(-50%); max-width:none; width:max-content; font-size:14px; color:#6d657c; background:var(--bg); padding:6px 14px; border-radius:20px; }
.zoom { position:fixed; bottom:20px; right:26px; border:1px solid #d4d0df; border-radius:24px; box-shadow:none; z-index:4; padding:4px; }
.zoom button { min-width:34px; min-height:36px; font-size:16px; border-radius:20px; }
.zoom button:hover { background:#eeeaff; }
.orbit { stroke-width:1.3; opacity:.5; stroke-dasharray:3 6; }
.orbit-label { font-size:12px; letter-spacing:2px; fill:#6e617d; stroke:var(--bg); stroke-width:8px; }
.edge.quiet { opacity:0; }
.edge.selected { stroke:#655092; stroke-width:2; opacity:.8; }
.node circle:not(.halo) { stroke-width:2; }
.node .halo { fill:transparent; stroke:transparent; }
.node.selected .halo { fill:#eee7ff; stroke:#655092; stroke-width:1; }
.node:hover circle:not(.halo),.node:focus-visible circle:not(.halo) { stroke-width:4; }
.node .initials { font-size:12px; fill:#29213c; font-weight:700; }
.node .node-label { font-size:15px; fill:#34283f; stroke:var(--bg); stroke-width:6px; font-weight:500; }
.node.dim { opacity:.16; }
.people circle { fill:#ff8fc7; stroke:#383044; stroke-width:2.5; filter:drop-shadow(0px 5px 0px #383044); }
.people:hover circle,.people:focus-visible circle { fill:#ff72b8; stroke-width:4; }
.people text { fill:#30263c; font-size:18px; font-weight:700; }
.people .people-small { font-size:9px; letter-spacing:1.5px; }
.filters,.detail { position:absolute; top:12px; bottom:84px; z-index:8; width:330px; max-height:none; min-height:0; padding:24px; background:#fff; border:1px solid #d8d3e3; border-radius:18px; box-shadow:0 12px 40px #25233d13; overflow:auto; }
.filters { left:24px; }
.detail { right:24px; width:350px; }
.panel-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; font-size:20px; }
.panel-heading button,.close-detail { font-size:25px; width:36px; height:36px; border-radius:50%; background:#f1eef8; }
.close-detail { float:right; position:sticky; top:0; z-index:2; margin:-8px -8px 8px 8px; }
.detail-type { display:block; padding-right:30px; font-size:12px; }
.detail h2 { margin-top:18px; font-size:27px; line-height:1.2; }
.detail .description,.detail p,.profile-facts { font-size:16px; line-height:1.65; }
.detail .detail-note { font-size:13px; }
.detail .detail-icon { background:#ebe6ff; color:#514096; }
.profile-action { background:#e5edf5; color:#483778; border-color:#cfc3ec; padding:12px; display:block; width:100%; text-align:left; border-radius:9px; }
#topics { display:block; overflow:visible; }
.topic { width:100%; white-space:normal; font-size:15px; padding:12px 8px; }
.topic.active { background:#eee8ff; }
.topic small { margin-left:auto; }
.filter-heading { display:block; }
.coverage,.sidebar-note { display:none; }
.search { max-width:none; margin:0 0 20px; }
#map-tooltip { position:absolute; top:8px; left:50%; transform:translateX(-50%); max-width:calc(100% - 32px); width:max-content; padding:10px 18px; background:#30283f; color:white; border-radius:24px; font-size:14px; z-index:5; pointer-events:none; box-shadow:0 5px 16px #30283f18; }
#directory { position:absolute; inset:16px 20% 90px; max-height:none; overflow:auto; border:1px solid var(--line); border-radius:16px; background:#fff; padding:12px; }
.directory-row { padding:16px; }
.map-credit { display:none; }
.map-page .map-credit { display:block; position:fixed; top:80px; left:26px; z-index:2; font-size:12px; color:#796d84; }
.map-credit span { display:block; font-size:11px; margin-top:3px; }
.map-page footer { display:none; }
.reading-page { padding:24px; }
footer { margin-top:30px; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #6b4fd2; outline-offset:3px; }
@media(max-width:800px) {
 header { padding:12px 14px; height:70px; gap:8px; }
 .brand-sub { display:none; }
 .brand { font-size:15px; gap:6px; }
 .brandmark,.brandmark span { font-size:26px; }
 .header-actions { gap:5px; }
 .header-actions button,.government-picker select { padding:7px 10px; font-size:13px; min-height:40px; }
 #find-toggle span { display:none; }
 .map-page main { height:calc(100dvh - 70px); }
 .map-page .map-credit { top:74px; left:16px; }
 .map-credit span { display:none; }
 #canvas { inset:10px 0 100px; }
 .graph-caption { font-size:12px; max-width:95%; text-align:center; }
 .legend { bottom:72px; gap:12px; font-size:11px; }
 .legend span { display:flex; align-items:center; gap:4px; }
 .zoom { bottom:18px; right:12px; }
 .zoom button { min-width:29px; font-size:14px; }
 .graph-toolbar { bottom:18px; left:12px; }
 .view-switch button { padding:8px; font-size:12px; }
 .view-switch span { display:inline; }
 .filters { left:12px; top:34px; width:min(330px,calc(100% - 24px)); bottom:80px; }
 .detail { top:auto; bottom:82px; left:12px; right:12px; width:auto; max-height:43%; padding:20px; border-radius:16px; }
 #map-tooltip { top:32px; font-size:12px; text-align:center; }
 #directory { inset:40px 12px 105px; }
 .node .node-label { font-size:18px !important; }
 .orbit-label { font-size:13px; }
 #site-menu { right:14px; top:62px; }
}
@media(max-width:400px) { .brand > span:last-child { font-size:13px; } .header-actions button,.government-picker select { padding:7px 8px; } .legend { gap:7px; font-size:10px; } }
@media(max-width:800px) {
 .legend { display:flex; flex-wrap:nowrap; width:max-content; max-width:100%; bottom:70px; }
 .legend span { white-space:nowrap; }
 .graph-caption { bottom:24px; }
}
/* Quiet geometry first; names and evidence appear on interaction. */
.node .initials,.node .node-label { opacity:0; pointer-events:none; }
.node.anchor-node .node-label,.node:hover .node-label,.node:focus-visible .node-label,.node.selected .node-label { opacity:1; }
.node.anchor-node .initials { opacity:1; font-size:12px; }
.node .node-shape { stroke-width:1.7; }
.node:hover .node-shape,.node:focus-visible .node-shape,.node.selected .node-shape { stroke-width:3; fill:#eee6ff; }
.node .node-label { font-size:13px; font-weight:600; }
.node:hover,.node:focus-visible { outline:none; }
.orbit-label { font-size:10px; letter-spacing:1.5px; }
.council-seat { cursor:pointer; }
.council-seat circle { fill:#fff8fb; stroke:#ef6889; stroke-width:1.7; }
.council-seat text { fill:#a93055; font:600 13px "Atkinson Hyperlegible Next","Helvetica Neue",Arial,sans-serif; pointer-events:none; }
.council-seat:hover circle,.council-seat:focus-visible circle,.council-seat.selected circle { fill:#ffadd2; stroke:#a93055; stroke-width:3; }
.council-seat:focus-visible { outline:none; }
.council-seat.dim { opacity:.2; }
.membership { stroke:#ef6889 !important; stroke-width:1.3 !important; opacity:.65 !important; }
.legend i.commission { background:#6b819b; }
.legend i.elected { background:#b74760; }
.legend i.department { background:#3978a4; }
.people circle { filter:none; stroke:#bd3c80; stroke-width:1.8; fill:#ffb6da; }
.people:hover circle,.people:focus-visible circle { fill:#ff9dce; stroke-width:3; }
@media(max-width:800px) { .node .node-label { font-size:17px !important; } .orbit-label { font-size:12px; } }

/* Keep all elected offices legible, including Controller and City Attorney. */
.node.elected-node .initials { opacity:1; font-size:14px; font-weight:700; }
.orbit-label { font-size:15px; font-weight:600; letter-spacing:.6px; fill:#514361; stroke:var(--bg); stroke-width:6px; paint-order:stroke; }
@media(max-width:800px) { .orbit-label { font-size:19px; letter-spacing:.2px; } .node.elected-node .initials { font-size:17px; } }
/* Reserve room below the SVG so captions never cover the outer ring. */
#graph { height:calc(100% - 44px); }
@media(max-width:800px) { .graph-caption { bottom:0; } }
/* A separate reading surface for one sourced Council decision. */
.votes-wrap { max-width:1100px; margin:0 auto; padding:12px 0 40px; }
.votes-back { padding:8px 0; color:#5140a0; margin-bottom:24px; font-size:15px; }
.votes-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.votes-heading h1 { font-size:clamp(28px,4vw,42px); line-height:1.15; margin:8px 0 12px; letter-spacing:-1px; }
.sample-label { display:inline-block; white-space:nowrap; border:1px solid #b24b7e; color:#822850; background:#f3e4e9; border-radius:24px; padding:9px 15px; font-size:14px; }
.votes-intro { max-width:750px; font-size:18px; line-height:1.6; }
.sample-note { font-size:14px; line-height:1.6; color:#615969; max-width:850px; margin:14px 0 24px; }
.motion-card,.votes-panel { background:white; border:1px solid #ddd6e5; border-radius:18px; padding:28px; }
.motion-card { border-top:4px solid #d95697; }
.motion-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:14px; color:#625a70; }
#votes a { color:#563b9a; text-decoration:underline; text-underline-offset:3px; }
#votes h2 { font-size:24px; line-height:1.3; margin:20px 0 12px; }
#votes h3 { font-size:18px; letter-spacing:0; margin:0 0 12px; }
#votes p { line-height:1.65; }
.motion-place { color:#675d73; font-size:15px; }
.vote-totals { display:flex; gap:30px; align-items:center; padding:24px 0; margin:16px 0 24px; border-block:1px solid #e6e0eb; }
.vote-totals div { min-width:60px; }
.vote-totals strong { font-size:42px; line-height:1.1; display:block; color:#5140a0; }
.vote-totals span { font-size:15px; }
.vote-totals p { margin:0 0 0 auto; max-width:310px; font-size:14px; }
.vote-totals b { font-size:18px; }
.motion-explanation { display:grid; grid-template-columns:1fr 1fr; gap:36px; font-size:16px; }
.votes-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px; align-items:start; }
.votes-panel { margin-bottom:24px; }
.votes-panel h2:first-child { margin-top:0 !important; }
.member-votes { padding:0; list-style:none; margin:18px 0; }
.member-votes li { border-top:1px solid #eee9f1; }
.member-votes button { display:flex; gap:12px; align-items:center; width:100%; padding:13px 0; text-align:left; font-size:15px; }
.member-votes button:hover { background:#f5f1fb; }
.vote-district { color:#696073; width:44px; flex-shrink:0; font-size:13px; }
.vote-status { margin-left:auto; font-size:13px; border-radius:20px; padding:4px 9px; }
.vote-status.yes { background:#ece5fb; color:#503482; }
.vote-status.absent { background:#f0edf1; color:#62566a; }
.motion-timeline { list-style:none; padding:0; margin:24px 0; }
.motion-timeline li { border-left:2px solid #dbc7eb; padding:0 0 24px 18px; font-size:16px; line-height:1.5; }
.motion-timeline time { display:block; font-weight:650; color:#613e8e; margin-bottom:6px; }
.vote-footnote,.votes-provenance { font-size:14px; color:#615969; }
.participate-next blockquote { margin:18px 0; padding:16px; background:#faf1f6; border-left:3px solid #d95697; font-size:16px; line-height:1.6; }
.participate-next button { display:block; margin-top:18px; color:#563b9a; font-size:16px; }
@media(max-width:700px) { .votes-heading { display:block; } .sample-label { margin:6px 0 12px; } .motion-card,.votes-panel { padding:20px; } .motion-explanation,.votes-columns { grid-template-columns:1fr; gap:20px; } .vote-totals { flex-wrap:wrap; gap:20px; } .vote-totals p { max-width:none; flex-basis:100%; margin:0; } .reading-page#votes { padding:16px; } }
/* Progressive guidance; the opening graph remains quiet. */
#government-help { padding:8px; width:36px; min-width:36px; min-height:36px; }
#government-explainer { position:absolute; z-index:30; right:24px; top:68px; width:min(360px,calc(100vw - 28px)); padding:22px; background:#fff; border:1px solid #d8d3e3; border-radius:16px; box-shadow:0 12px 35px #30283f20; font-size:16px; line-height:1.55; }
#government-explainer a { color:#563b9a; text-decoration:underline; }
#connection-caption { position:absolute; z-index:6; top:12px; left:24px; width:min(360px,calc(100% - 48px)); padding:12px 16px; background:#fff; border:1px solid #d6c7e5; border-left:4px solid #8b54bb; border-radius:10px; font-size:15px; line-height:1.5; pointer-events:none; }
.edge.focused-edge { stroke:#9b3585; stroke-width:4; opacity:1; }
.node .touch-target,.council-seat .touch-target,.council-seat:hover .touch-target,.council-seat:focus-visible .touch-target,.council-seat.selected .touch-target { fill:transparent; stroke:none; pointer-events:all; }
.node .halo,.node .initials,.node .node-label { pointer-events:none; }
.trace-connection { font-size:14px; padding:10px 12px; border:1px solid #d8cbe8; border-radius:8px; color:#563b9a; margin:12px 0 3px; min-height:44px; }
.trace-connection[aria-pressed=true] { background:#eee5f7; border-color:#9766b6; }
.profile-next { margin:20px 0 14px; }
.profile-next h3 { margin-bottom:8px; font-size:14px; letter-spacing:.3px; }
.research-status { border-left:3px solid #b599cb; padding:10px 12px; background:#f8f5fb; font-size:14px !important; line-height:1.55 !important; }
.profile-sources { margin-top:24px; padding-top:16px; border-top:1px solid #ded7e6; }
.profile-sources summary { cursor:pointer; font-size:15px; min-height:44px; }
.handoff-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:22px 0; counter-reset:handoff; }
.handoff-steps span { border-top:2px solid #dd75aa; padding:14px 0; font-size:16px; }
.handoff-steps span::before { counter-increment:handoff; content:counter(handoff) '. '; color:#8f3371; font-weight:700; }
.pilot-proposal { margin-top:24px; }
#hurdles h2 { font-size:25px; line-height:1.3; margin-bottom:14px; }
#hurdles p,#hurdles li { font-size:16px; line-height:1.65; }
#hurdles ul { padding-left:20px; }
@media(max-width:800px) {
 .brandmark { display:none; }
 .header-actions { gap:4px; }
 #government-help { width:28px; min-width:28px; padding:4px; }
 #connection-caption { top:34px; left:12px; width:calc(100% - 24px); font-size:14px; padding:10px 12px; }
 .detail { max-height:48%; }
 .detail h2 { font-size:25px; }
 .handoff-steps { grid-template-columns:1fr 1fr; }
 #government-explainer { right:12px; }
 .directory-row { min-height:48px; }
}
/* A gentle invitation to move from the map to participation. */
.action-bubble { position:absolute; z-index:5; left:26px; bottom:112px; display:flex; flex-direction:column; align-items:flex-start; gap:5px; min-height:76px; padding:18px 24px; border:1px solid #c898d0; border-radius:38px 38px 38px 12px; color:#472358; background:radial-gradient(ellipse at 25% 0%,#fffffffa 0%,#fff8fcbb 28%,transparent 62%),linear-gradient(130deg,#f8d2ec,#ddd4ff 68%,#f4daee); box-shadow:inset 0 2px 2px #fff, inset 0 -3px 6px #be8ac42b,0 9px 25px #78478320; cursor:pointer; animation:bubble-drift 6s ease-in-out infinite; transition:box-shadow .25s,border-color .25s; }
.bubble-kicker { font-size:12px; font-weight:500; color:#705077; }
.bubble-title { font-size:18px; font-weight:650; letter-spacing:-.3px; }
.bubble-title > span { margin-left:8px; }
.action-bubble:hover,.action-bubble:focus-visible { animation-play-state:paused; border-color:#9b55b0; box-shadow:inset 0 2px 3px #fff,0 10px 30px #9655b13d; }
@keyframes bubble-drift { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-6px) rotate(1deg); } }
.workspace:has(.detail:not([hidden])) .action-bubble,.workspace:has(.filters:not([hidden])) .action-bubble { visibility:hidden; }
@media(max-width:800px) { .action-bubble { left:14px; top:48px; bottom:auto; min-height:54px; padding:12px 18px; border-radius:30px 30px 30px 10px; gap:2px; } .bubble-kicker { font-size:11px; } .bubble-title { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .action-bubble { animation:none; transition:none; } }
/* Quiet entry points, with the graph retained behind each panel. */
.explore-actions { position:absolute; top:42px; left:24px; z-index:22; }
#action-toggle { border:1px solid #d8cce4; background:#fff; color:#432650; border-radius:24px; padding:12px 18px; min-height:46px; box-shadow:0 4px 16px #49255d0d; font-size:15px; }
#action-toggle span { margin-left:18px; }
#action-options { display:flex; flex-direction:column; align-items:stretch; gap:2px; height:auto; max-height:calc(100dvh - 230px); overflow-y:auto; max-width:calc(100vw - 48px); margin-top:8px; width:260px; padding:8px; background:#fff; border:1px solid #ddcfe9; border-radius:18px; box-shadow:0 14px 40px #39234622; }
#action-options button { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:48px; padding:12px; text-align:left; border-radius:10px; color:#432650; font-size:15px; }
#action-options button:hover,#action-options button:focus-visible { background:#f5e9f7; }
#action-options small { color:#75697e; font-size:11px; }
#action-panel { position:absolute; z-index:20; top:100px; bottom:82px; left:24px; width:min(470px,calc(100% - 48px)); border:1px solid #d8cce4; border-radius:22px; background:#fff; box-shadow:0 18px 55px #34214026; overflow:hidden; }
.action-panel-heading { display:flex; justify-content:space-between; align-items:center; padding:12px 18px; border-bottom:1px solid #eee5f2; height:64px; }
.action-panel-heading h2 { font-size:17px; margin:0; color:#432650; }
#action-close { width:44px; height:44px; font-size:28px; border-radius:50%; flex-shrink:0; }
#action-close:hover { background:#f5e9f7; }
#action-content { height:calc(100% - 64px); overflow:auto; overscroll-behavior:contain; }
#action-content .reading-page { padding:22px !important; max-width:none; margin:0; }
#action-content h1 { font-size:26px; line-height:1.2; }
#action-content h2 { font-size:21px; }
#action-content .lead { font-size:17px; }
#action-content .start-grid,#action-content .start-form,#action-content .people-grid,#action-content .motion-explanation,#action-content .votes-columns,#action-content .participation-grid { display:grid; grid-template-columns:1fr; gap:18px; }
#action-content .vote-totals { flex-wrap:wrap; gap:18px; }
#action-content .vote-totals p { flex-basis:100%; margin:0; }
#action-content .votes-heading { display:block; }
#action-content .motion-card,#action-content .votes-panel { padding:16px; }
.action-open .workspace > .action-bubble,.action-open .detail,.action-open #find-panel,.action-open #connection-caption { visibility:hidden; }
#connection-caption { top:100px; }
@media(max-width:800px) {
 .explore-actions { left:12px; top:34px; }
 #action-toggle { font-size:14px; padding:10px 14px; }
 #action-panel { top:auto; bottom:0; left:0; width:100%; height:65%; border-radius:22px 22px 0 0; }
 .action-bubble { top:auto; bottom:116px; }
 #connection-caption { top:92px; }
 #action-content .reading-page { padding:18px !important; }
}

/* A quiet wash draws attention to the selected, sourced relationships. */
.workspace::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse at 48% 46%,#f0e8fc 0%,#f6eff9 34%,transparent 73%); opacity:0; transition:opacity 450ms ease; }
.workspace.mapping-focus::before { opacity:.8; }
.mapping-focus #graph .context-muted { opacity:.26; }
.mapping-focus #graph .context-muted:hover,.mapping-focus #graph .context-muted:focus-visible { opacity:1; }
.mapping-focus #graph .orbit { opacity:.14; }
.mapping-focus #graph .orbit-label { opacity:.55; }
.mapping-focus #graph .node.selected .node-shape { filter:drop-shadow(0 0 7px #b48ac350); }
@media(prefers-reduced-motion:reduce) { .workspace::before { transition:none; } }

/* Category color carries meaning; surfaces stay bright and neutral. */
:root { --lime:#ece8ff; }
.jurisdiction-note,.prepare-card,.scope-note { background:#f0efff; color:var(--ink); border-color:#ddd8f0; }
.search,.path-icon { background:#f5f4ff; }
.topic.active,.topic:hover,.directory-row:hover,.pathway-grid > button:hover { background:#edf3f8; }
.person-card,.route-card { background:#fff; border-color:#dfdce6; }
.budget-intro { background:#302b59; }
.budget-intro p { color:#e5e2ff; }
.workspace::before { background:radial-gradient(ellipse at 48% 46%,#edefff 0%,#f4f3ff 34%,transparent 73%); }
#graph .node:hover .node-shape,#graph .node:focus-visible .node-shape,#graph .node.selected .node-shape { fill:var(--category); stroke:var(--category); }
#graph .node.selected .halo { fill:none; stroke:var(--category); opacity:.45; }
#graph .node:hover .initials,#graph .node:focus-visible .initials,#graph .node.selected .initials { fill:#241632; }
#graph .edge.selected { stroke:var(--edge-color); opacity:.85; }
#graph .edge.focused-edge { stroke:var(--edge-color); opacity:1; stroke-width:4; }
#graph .council-seat:hover circle:not(.touch-target),#graph .council-seat:focus-visible circle:not(.touch-target),#graph .council-seat.selected circle:not(.touch-target) { fill:#b74760; stroke:#b74760; }
#graph .council-seat.selected text { fill:#241632; }
#map-tooltip { background:#fff; color:#25233d; border:2px solid #6b819b; box-shadow:0 5px 18px #35235b14; }
.mapping-focus #graph .node.selected .node-shape { filter:none; }
/* Address-to-action stays in the graph's existing sheet. */
#location p { font-size:16px; line-height:1.6; }
#location-form { display:grid; gap:10px; margin-top:22px; }
#location-form label { font-size:15px; font-weight:650; }
#location-form label span { font-weight:400; color:#655e76; }
#location-form input { width:100%; min-height:48px; padding:12px; border:1px solid #b8accb; border-radius:10px; background:white; color:#25233d; font:inherit; font-size:16px; }
#location .location-note { font-size:14px; line-height:1.55; color:#635970; }
.location-primary,.location-secondary,.location-issues button { min-height:46px; padding:12px 16px; border-radius:12px; font-size:15px; line-height:1.4; text-align:left; }
.location-primary { background:#554098; color:white; display:block; margin:10px 0; }
.location-primary:hover { background:#402d7d; }
.location-primary:disabled { opacity:.55; cursor:wait; }
.location-secondary { border:1px solid #d3c9e2; margin:10px 0; display:block; color:#503981; }
#location-status { border-left:3px solid #6b819b; padding-left:12px; }
#location-status:empty { display:none; }
#location-map { display:block; width:100%; height:210px; border:1px solid #ddd6e8; border-radius:12px; margin:15px 0; background:#f3f1fa; }
#location-result { border-top:1px solid #e3ddeb; margin-top:20px; padding-top:12px; }
#location-matched-address { font-weight:650; }
.location-issues { display:grid; gap:8px; }
.location-issues button { border:1px solid #d5c7eb; color:#493078; background:#f4efff; }
.location-issues button:hover { background:#e9dfff; }
.location-sources { margin:24px 0; }
.location-sources summary { min-height:44px; font-size:15px; cursor:pointer; }
#location a { text-decoration:underline; text-underline-offset:3px; }
#location :focus-visible { outline:3px solid #8751c5; outline-offset:3px; }

/* Optional official resources, revealed inside the action panel. */
.local-resource { padding:14px 0; border-bottom:1px solid #e8e1ef; }
.local-resource h3 { font-size:17px; line-height:1.4; margin:0 0 8px; }
.local-resource p { font-size:15px; line-height:1.6; margin:8px 0; }
#resources h2 { font-size:18px; margin:24px 0 0; }
#resources a { color:#6533a0; text-underline-offset:3px; }
#resources a:focus-visible { outline:3px solid #6533a0; outline-offset:4px; }

#action-options[hidden] { display:none; }
#action-options button { flex:0 0 auto; min-width:0; }
#action-options small { flex-shrink:0; }

/* Quiet, optional orientation and meeting disclosure. */
#explore-cue { position:absolute; bottom:40px; left:50%; transform:translateX(-50%); max-width:90%; width:max-content; text-align:center; font-size:13px; color:#625873; pointer-events:none; transition:opacity .4s ease; }
#explore-cue.explored { opacity:0; }
.profile-meetings { margin:16px 0; padding:12px 14px; border:1px solid #ded7ef; border-radius:14px; background:#faf9ff; }
.profile-meetings summary { cursor:pointer; font-weight:600; }
.meeting-content { font-size:14px; line-height:1.5; }
.meeting-content h4 { margin-bottom:8px; }
.meeting-content a { display:block; margin:12px 0; color:#573ab4; }
.meeting-calendar { padding:10px 12px; border:1px solid #c9bce9; border-radius:10px; text-decoration:none; font-weight:600; }
.profile-meetings[open] .meeting-content { animation:meeting-reveal .18s ease-out; }
@keyframes meeting-reveal { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { #explore-cue { transition:none; } .profile-meetings[open] .meeting-content { animation:none; } }

/* Civic Atlas identity, September 26. Keep the graph as the primary focus. */
.brand {color:#003563;gap:12px;}
.civic-logo {display:block;width:68px;height:68px;flex-shrink:0;}
.brand .brand-sub {color:#003563;font-size:9px;margin-top:4px;}
@media(max-width:800px){.brand {gap:0;}.brand .brand-name {display:none;}.civic-logo{width:48px;height:48px;}}

/* Clear entry paths; the existing category colors remain meaningful. */
:root {--ink:#123553;--muted:#536477;--bg:#fcfdff;}
header {background:#fcfdff;}
.primary-paths {position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:15;display:flex;gap:6px;height:auto;max-width:calc(100% - 32px);padding:5px;border:1px solid #dce3eb;border-radius:30px;background:#fff;box-shadow:0 4px 18px #00356308;}
.primary-paths a,.primary-paths #action-toggle {display:flex;align-items:center;justify-content:center;min-height:44px;padding:12px 20px;font-size:14px;line-height:1.3;white-space:nowrap;text-decoration:none;border:0;border-radius:24px;box-shadow:none;color:#123553;}
.primary-paths #action-toggle {background:#edf1f7;}
.primary-paths a:hover {background:#fff0f5;color:#990033;}
#canvas {top:76px;}
#action-panel {top:76px;}
#explore-cue {bottom:38px;color:#44566b;}
.graph-caption {color:#536477;}
a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible {outline:3px solid #003563;outline-offset:4px;}
.skip-link {position:fixed;top:-100px;left:16px;z-index:100;background:#fff;padding:14px;color:#003563;}
.skip-link:focus {top:10px;}
#site-menu .nav {min-height:44px;}
@media(max-width:800px){.primary-paths {top:8px;width:calc(100% - 24px);max-width:520px;gap:2px;border-radius:18px;}.primary-paths a,.primary-paths #action-toggle {flex:1;min-width:0;font-size:12px;white-space:normal;padding:10px 8px;text-align:center;border-radius:14px;}#canvas {top:78px;}#action-panel {top:auto;}header {gap:6px;padding-left:12px;padding-right:12px;}.header-actions button,.government-picker select {min-height:44px;}#explore-cue {font-size:12px;max-width:88%;}.graph-caption {font-size:11px;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important;}}

/* 20260926-6: one introduction, balanced offices and local hover feedback. */
.explorer-intro {position:absolute;top:12px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);text-align:center;z-index:6;pointer-events:none;}
.explorer-intro h2 {font-size:22px;line-height:1.25;margin:0 0 6px;color:#123553;letter-spacing:-.4px;}
.explorer-intro p {font-size:14px;color:#536477;margin:0 0 10px;}
.explorer-intro .primary-paths {position:static;transform:none;display:inline-flex;max-width:100%;border:0;background:transparent;box-shadow:none;padding:0;pointer-events:auto;}
.primary-paths a,.primary-paths #action-toggle {font-size:12px;min-height:36px;padding:8px 14px;}
#canvas {top:118px;bottom:65px;}
#explore-cue,.graph-caption {display:none!important;}
#map-tooltip {position:fixed;transform:none;z-index:40;max-width:min(320px,calc(100vw - 24px));width:max-content;border-width:1px;border-radius:10px;padding:9px 13px;font-size:13px;line-height:1.4;}
.council-heading {cursor:pointer;}
.council-heading rect {fill:var(--bg);stroke:#b74760;stroke-width:1;}
.council-heading text {font-size:15px;font-weight:600;fill:#74354d;}
.council-heading:hover rect,.council-heading:focus rect {fill:#ffe4ef;stroke-width:2;}
.node.elected-node .initials {font-size:14px;fill:#493447;opacity:1;}
.node.elected-node .node-label {display:block;opacity:1;font-size:13px;}
.legend {font-size:12px;gap:18px;}
#connection-caption {top:124px;}
@media(max-width:800px){.explorer-intro{top:12px;}.explorer-intro h2{font-size:18px;}.explorer-intro p{font-size:12px;max-width:310px;margin:0 auto 8px;}.explorer-intro .primary-paths{width:auto;}.primary-paths a,.primary-paths #action-toggle{font-size:11px;min-height:36px;padding:7px 10px;}#canvas{top:126px;bottom:92px;}.government-picker select{font-size:11px;max-width:155px;padding:6px;}.legend{white-space:normal;width:95%;justify-content:center;gap:10px;font-size:10px;bottom:65px;}#connection-caption{top:135px;}}
@media(min-width:801px){.government-picker select{width:210px;max-width:none;}}

/* Address-first orientation and unobstructed graph, 20260926-7. */
.explorer-intro{top:52px;left:28px;transform:none;width:230px;text-align:left;z-index:4;pointer-events:auto;}
.explorer-intro h2{font-size:25px;margin-bottom:12px;}
.explorer-intro p{line-height:1.55;font-size:14px;margin:0 0 16px;}
.explorer-intro button,.entry-help{display:block;font:inherit;font-size:14px;min-height:44px;text-align:left;margin:4px 0;}
.entry-address{background:#003563;color:#fff;padding:12px 16px;border-radius:10px;}
.explorer-intro #action-toggle{background:transparent;border:0;padding:8px 0;box-shadow:none;color:#345571;}
.explorer-intro .explore-instruction{font-size:12px;color:#66788a;margin:16px 0;}
.entry-help{padding:10px 0;text-decoration:none;color:#003563;}
.jurisdiction-note{font-size:12px;line-height:1.5;margin-top:10px;color:#526779;}
.jurisdiction-note p{font-size:12px;margin-top:8px;}
#canvas{top:0;left:265px;bottom:68px;}
.legend{display:none;}
.ring-title{font-size:13px;letter-spacing:.5px;font-weight:500;paint-order:stroke;stroke:#fcfdff;stroke-width:5px;stroke-linejoin:round;}
.ring-title[role="button"]{cursor:pointer;}
#map-tooltip{display:none!important;}
#connection-caption{top:auto;bottom:90px;left:28px;width:225px;font-size:12px;}
.workspace.mapping-focus::before{background:radial-gradient(ellipse at 55% 45%,#e8eff8 0%,transparent 70%);}
.people circle{fill:#f3dfe4!important;stroke:#b74760!important;}
.people text{fill:#003563!important;}
.office-bridge{padding:14px;margin:16px 0;background:#edf3f8;border-radius:10px;color:#123553;}
.office-bridge p{font-size:14px;margin:8px 0;line-height:1.5;}
.office-bridge button{font:inherit;font-size:14px;color:#003563;text-align:left;text-decoration:underline;min-height:44px;}
.detail-icon,.profile-action,.location-primary{background:#e5edf5;color:#003563;border-color:#c7d6e4;}
.detail-type{display:flex;justify-content:space-between;gap:12px;}
@media(max-width:1050px){.explorer-intro{width:195px;left:16px;}#canvas{left:215px;}}
@media(max-width:800px){.explorer-intro{top:8px;left:18px;width:calc(100% - 36px);}.explorer-intro h2{font-size:20px;margin-bottom:4px;}.explorer-intro p{font-size:12px;margin-bottom:8px;}.explorer-intro button{display:inline-block;font-size:12px;}.explorer-intro #action-toggle{margin-left:12px;}.explorer-intro .explore-instruction{margin:5px 0;font-size:11px;}.entry-help{font-size:12px;min-height:32px;display:inline-block;padding:5px 0;}.jurisdiction-note{display:inline-block;margin:0 0 0 14px;vertical-align:top;max-width:160px;}.jurisdiction-note[open]{background:white;position:relative;z-index:10;padding:8px;border:1px solid #dce3eb;}#canvas{left:0;top:180px;bottom:64px;}#connection-caption{display:none;} .ring-title{font-size:14px;} }
.ring-title{font-size:18px;letter-spacing:0;}
.jurisdiction-note{background:transparent;padding:0;border:0;}
@media(min-width:1100px){.mapping-focus #canvas{right:355px;left:260px;}}
@media(max-width:800px){.ring-title{font-size:20px;}}

/* v8: education beside the diagram; complete, evenly spaced rings. */
.explorer-intro{top:20px;bottom:82px;width:275px;overflow:auto;padding-right:12px;scrollbar-width:thin;}
.explorer-intro h2{font-size:26px;}
.explorer-intro p{font-size:13px;line-height:1.55;margin-bottom:12px;max-width:none;}
.explorer-intro .entry-address{font-size:14px;width:100%;}
.explorer-intro #action-toggle{font-size:14px;font-weight:600;margin-top:16px;border-bottom:1px solid #dce5ed;width:100%;border-radius:0;}
.government-basics h3{font-size:12px;text-transform:uppercase;letter-spacing:1px;margin:14px 0;color:#506779;}
.government-basics strong{color:#123553;}
.explorer-intro .council-explainer{font-size:12px;padding:0;background:none;border:0;color:#9c354e;}
.map-key{font-size:12px;line-height:1.5;background:none;border:0;padding:0;margin-top:12px;}
.map-key summary{cursor:pointer;min-height:36px;}
.map-key ol{padding-left:18px;}.map-key li{margin:8px 0;}.map-key a{color:#003563;}
#canvas{left:310px;top:0;bottom:68px;}
#canvas::before{content:"";position:absolute;inset:2% 8%;background:url('/site/la-city-outline.svg') center/contain no-repeat;opacity:.12;pointer-events:none;}
.workspace[data-government="county"] #canvas::before{background-image:url('/site/la-county-outline.svg');}
#graph{position:relative;}
.node.elected-node .node-label{font-size:13px;fill:#123553;}
.mapping-focus #graph .context-muted{opacity:.48;}
#connection-caption{left:330px;bottom:70px;width:280px;background:#fff;}
@media(min-width:1100px){.mapping-focus #canvas{left:310px;right:355px;}}
@media(max-width:800px){
 #explore{overflow:auto;}.workspace{height:auto;min-height:100%;overflow:visible;display:flex;flex-direction:column;}
 .explorer-intro{position:relative;inset:auto;width:auto;margin:16px 22px 0;padding:0;overflow:visible;order:0;}
 .explorer-intro h2{font-size:23px;}.explorer-intro button{display:block;}.explorer-intro #action-toggle{margin:12px 0 0;}
 .government-basics{display:block;}.government-basics[hidden]{display:none;}
 #canvas{position:relative;inset:auto;width:100%;height:430px;min-height:430px;order:1;margin-bottom:85px;}
 .explorer-intro .entry-help{display:block;font-size:14px;}.explorer-intro .explore-instruction{font-size:12px;margin-top:12px;}
 #directory{position:relative;inset:auto;order:1;margin:20px 16px 90px;max-height:none;}
}
@media(max-width:800px){.graph-area{position:relative;inset:auto;height:auto;min-height:430px;order:1;flex:none;}#canvas{height:430px;} .workspace{padding-bottom:60px;}}

.office-roles{font-size:13px;background:none;border:0;padding:0;margin:0 0 12px;}.office-roles summary{cursor:pointer;min-height:30px;color:#345571;}.office-roles p{margin-top:8px;}
@media(max-width:800px){#canvas{overflow:visible;}.zoom{position:absolute;bottom:-60px;right:12px;}.graph-toolbar{bottom:20px;left:12px;}}

/* v9: geography has its own map; opening a profile never moves the desktop graph. */
#canvas::before{display:none;}
.district-map-link{display:block;font-size:12px;color:#003563;line-height:1.5;padding:10px 0;text-decoration:none;}
@media(min-width:1100px){
 #canvas,.mapping-focus #canvas{left:310px;right:374px;top:0;bottom:68px;transition:none;}
 .detail{width:330px;right:24px;}
}
@media(min-width:801px) and (max-width:1099px){
 .explorer-intro{width:200px;left:16px;}
 #canvas,.mapping-focus #canvas{left:226px;right:280px;top:0;bottom:68px;transition:none;}
 .detail{width:260px;right:10px;padding:18px;}
}

/* Selection moves one ring; the center and labels remain steady. */
#graph .edge.selected{animation:connection-appear 260ms ease-out both;}
@keyframes connection-appear{from{opacity:0;}to{opacity:1;}}
@media(prefers-reduced-motion:reduce){#graph .edge.selected{animation:none;}#graph *{transition:none!important;}}

/* Calm, logo-led arrival. No automatic movement or timed dismissal. */
body.landing-page{height:auto;min-height:100dvh;overflow:auto;background:#fafcfd;}
.landing-page>header,.landing-page>footer{display:none;}
.landing-page>main{height:auto;min-height:100dvh;overflow:visible;}
.calm-entry{min-height:100dvh;padding:48px 24px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:radial-gradient(ellipse at 18% 25%,#e9f0f4 0%,transparent 50%),radial-gradient(ellipse at 85% 75%,#f4eee8 0%,transparent 55%),#fafcfd;color:#123553;}
.calm-entry[hidden]{display:none;}
.entry-content{width:100%;max-width:720px;margin:auto;}
.entry-logo{display:block;margin:0 auto 25px;width:150px;height:150px;}
.entry-city{font-size:11px;font-weight:600;letter-spacing:2px;margin:0 0 18px;color:#506779;}
.calm-entry h1{font-size:clamp(32px,4.5vw,52px);line-height:1.12;letter-spacing:-1.5px;margin:0 0 20px;}
.entry-summary{font-size:17px;line-height:1.6;color:#506779;margin:0 auto 30px;max-width:460px;}
.entry-choices{display:flex;background:#fff;border:1px solid #ccd8e1;border-radius:48px;box-shadow:0 6px 28px #12355308;padding:7px;gap:5px;}
.entry-choices a{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 23px;color:#123553;border-radius:36px;font-size:16px;text-decoration:none;line-height:1.4;}
.entry-choices a:first-child{background:#eaf0f5;}.entry-choices a:hover{background:#e0eaf1;}
.entry-address-link{display:inline-block;margin-top:22px;padding:10px;color:#425f76;font-size:14px;text-underline-offset:4px;}
.entry-footnote{font-size:12px;color:#596d7c;margin:35px 0 0;line-height:1.5;}
.calm-entry a:focus-visible{outline:3px solid #3978a4;outline-offset:4px;}
@media(max-width:600px){.calm-entry{padding:28px 20px 20px;}.entry-logo{width:120px;height:120px;margin-bottom:20px;}.entry-summary{font-size:15px;}.entry-choices{flex-direction:column;border-radius:26px;max-width:380px;margin:auto;}.entry-choices a{border-radius:20px;padding:17px 19px;font-size:15px;}.entry-footnote{font-size:11px;}}
.entry-choices{height:auto;min-height:0;flex-wrap:nowrap;align-items:stretch;width:100%;overflow:visible;}
.entry-choices a{min-width:0;white-space:normal;}

/* v12: logo, location, and the next step. */
.calm-entry{background:#fcfdff;}
.calm-entry h1.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;}
.calm-entry .entry-content{max-width:620px;}
.calm-entry .entry-logo{width:132px;height:132px;margin-bottom:22px;}
.calm-entry .entry-city{margin-bottom:32px;}
.calm-entry .entry-choices{box-shadow:none;}
.calm-entry .entry-choices a{font-size:15px;padding:17px 20px;}
.calm-entry .entry-address-link{font-size:13px;margin-top:16px;}
@media(max-width:600px){.calm-entry .entry-logo{width:112px;height:112px;}.calm-entry .entry-city{margin-bottom:25px;}}
/* One clear search entry, with quiet task prompts beneath it. */
.calm-entry .entry-content{max-width:790px;}
.entry-search{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px 9px 24px;background:white;border:1px solid #ccd8e1;border-radius:40px;box-shadow:0 5px 20px #12355305;}
.entry-search input{flex:1;min-width:0;background:transparent;border:0;box-shadow:none;font:inherit;font-size:18px;color:#123553;padding:12px 0;outline:none;}
.entry-search input::placeholder{color:#627587;opacity:1;}
.entry-search:focus-within{outline:2px solid #3978a4;outline-offset:3px;}
.entry-search button{display:grid;place-items:center;border:0;border-radius:50%;width:46px;height:46px;flex-shrink:0;background:#eaf0f5;color:#123553;font-size:23px;cursor:pointer;}
.entry-prompts{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:auto;width:100%;gap:4px 20px;margin-top:17px;}
.entry-prompts a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;line-height:1.4;color:#425f76;text-decoration:none;}
.entry-prompts a:hover{text-decoration:underline;text-underline-offset:4px;}
.entry-results{text-align:left;margin:24px auto 0;max-width:680px;padding:0 12px;}
.entry-results>p{font-size:13px;color:#506779;}
.entry-results ul{list-style:none;padding:0;margin:0;}.entry-results li{padding:12px 0;border-bottom:1px solid #e3e9ef;}
.entry-results a,.entry-results button{background:none;border:0;color:#123553;text-decoration:none;text-align:left;font:inherit;font-size:15px;cursor:pointer;padding:5px 0;}
.entry-results small{display:block;color:#596d7c;font-size:12px;margin-top:3px;}
@media(max-width:600px){.entry-search{padding-left:18px;}.entry-search input{font-size:16px;}.entry-prompts{gap:0 16px;}.entry-prompts a{font-size:12px;}}

.calm-entry .entry-city{font-size:13px;letter-spacing:.35px;font-weight:500;margin-bottom:2px;}
.request-edition{display:inline-flex;align-items:center;min-height:44px;margin:0 0 22px;color:#627587;font-size:12px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#c5d0da;}
.request-edition:hover{color:#123553;}

/* Quiet geographic context on the welcome page only. */
.calm-entry{position:relative;isolation:isolate;background:#fcfdff;}
.calm-entry::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:url("/site/usa-watercolor-clean.webp") center center / min(1120px, 96vw) auto no-repeat;opacity:.52;}
.calm-entry::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#fcfdfff0 0%,#fcfdffb8 29%,#fcfdff00 65%);}
.calm-entry .entry-results:not([hidden]){background:#fcfdfff5;border-radius:18px;padding:16px 22px;}
@media(max-width:600px){.calm-entry::before{background-size:740px auto;background-position:center 43%;opacity:.35;}.calm-entry::after{background:radial-gradient(ellipse at center,#fcfdfff0 0%,#fcfdffb8 38%,#fcfdff40 100%);}}

/* Everyday questions offer a human starting point without another search control. */
.everyday-prompts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0 16px;margin:13px auto 0;max-width:730px;color:#627587;font-size:12px;}
.everyday-prompts button{font:inherit;line-height:1.5;color:#425f76;background:transparent;border:0;padding:10px 0;min-height:44px;cursor:pointer;text-decoration:underline;text-decoration-color:#b7c5cf;text-underline-offset:4px;}
.everyday-prompts button:hover{color:#123553;text-decoration-color:currentColor;}
.entry-menu{position:fixed;left:22px;bottom:22px;z-index:1200;color:#425f76;font-size:13px;}
body:not(.landing-page)>.entry-menu{display:none;}
.entry-menu summary{list-style:none;cursor:pointer;padding:12px 16px;min-height:44px;background:#fcfdfff2;border:1px solid #dbe3e8;border-radius:24px;}
.entry-menu summary::-webkit-details-marker{display:none;}.entry-menu summary span{margin-left:18px;}
.entry-menu[open] summary span{display:inline-block;transform:rotate(45deg);}
.entry-menu nav{position:absolute;left:0;bottom:54px;display:flex;flex-direction:column;width:240px;height:auto;gap:0;padding:10px;background:#fcfdff;border:1px solid #dbe3e8;border-radius:16px;box-shadow:0 8px 30px #1235530c;}
.entry-menu nav a{display:block;padding:12px;color:#123553;text-decoration:none;border-radius:8px;line-height:1.4;}
.entry-menu nav a:hover{background:#eaf0f5;}.entry-menu :focus-visible,.everyday-prompts button:focus-visible{outline:2px solid #3978a4;outline-offset:3px;}
.calm-entry{padding-bottom:100px;}
@media(max-width:600px){.everyday-prompts{gap:0 12px;}.everyday-prompts>span{flex-basis:100%;}.entry-menu{left:16px;bottom:27px;}.calm-entry{padding-bottom:115px;}}

/* Graph-first workspace: three reserved columns; search stays below the graph. */
body.map-page{background:#fcfdff;}
.map-page .workspace{--rail:clamp(240px,23vw,340px);--gutter:22px;}
.map-page .explorer-intro{left:var(--gutter);top:24px;width:calc(var(--rail) - 32px);bottom:50px;overflow:auto;}
.map-page .explorer-intro h2{font-size:24px;}
.map-page .explorer-intro .entry-address,.map-page .explorer-intro .entry-help,.map-page #action-toggle,.map-page .explore-instruction{display:none;}
.map-page #canvas,.map-page.mapping-focus #canvas{left:var(--rail);right:var(--rail);top:0;bottom:240px;transition:none;}
.map-page .graph-search-dock{position:absolute;left:calc(var(--rail) + 12px);right:calc(var(--rail) + 12px);bottom:68px;}
.graph-search-cue{text-align:center;color:#627587;font-size:13px;margin:0 0 12px;}
.graph-search-dock .entry-search{padding:5px 8px 5px 18px;box-shadow:none;}
.graph-search-dock .entry-search input{font-size:15px;}
.graph-search-dock .everyday-prompts{gap:0 14px;margin-top:8px;}
.graph-search-dock .everyday-prompts button{font-size:11px;min-height:34px;padding:5px 0;}
.map-page .detail{left:auto;right:16px;top:20px;bottom:50px;width:calc(var(--rail) - 32px);padding:20px;box-shadow:none;}
.map-page #action-panel,.map-page #find-panel,.map-page .guidance-panel{position:absolute;left:16px;right:auto;top:20px;bottom:50px;width:calc(var(--rail) - 32px);height:auto;max-width:none;margin:0;padding:18px;background:#fcfdff;border:1px solid #dbe3e8;border-radius:16px;z-index:12;box-shadow:none;overflow:auto;}
.map-page #action-panel{padding:0;}.map-page #action-content{height:calc(100% - 64px);}
.map-page .guidance-panel>p{font-size:20px;font-weight:600;line-height:1.35;color:#123553;padding-right:26px;}
#close-guidance{float:right;border:0;background:none;font-size:24px;color:#123553;cursor:pointer;min-height:36px;min-width:36px;}
#entry-guide p{font-size:14px;line-height:1.6;color:#506779;}
#entry-guide details{padding:12px 0;border-top:1px solid #dbe3e8;}#entry-guide summary{font-size:14px;line-height:1.5;cursor:pointer;color:#123553;}
#entry-guide a{font-size:13px;color:#123553;display:block;line-height:1.5;padding:8px 0;}
.map-page #connection-caption{left:22px;top:auto;bottom:54px;width:calc(var(--rail) - 44px);font-size:12px;}
body:has(.guidance-panel:not([hidden])) .explorer-intro,body:has(.guidance-panel:not([hidden])) #connection-caption{visibility:hidden;}
.map-page .graph-toolbar{left:var(--rail);bottom:24px;}
.map-page .zoom{position:fixed;right:calc(clamp(240px,23vw,340px) + 12px);bottom:36px;font-size:12px;}
.map-page .legend{display:none;}
.map-page #site-menu{right:16px;width:calc(clamp(240px,23vw,340px) - 32px);max-height:calc(100dvh - 120px);overflow:auto;}
@media(max-width:1100px){
 .map-page{height:auto;overflow:auto;}.map-page main{height:auto;}.map-page #explore{height:auto;}
 .map-page .workspace{display:flex;flex-direction:column;height:auto;overflow:visible;padding-bottom:60px;}
 .map-page .graph-area{position:relative;inset:auto;order:0;height:auto;min-height:0;}
 .map-page #canvas,.map-page.mapping-focus #canvas{position:relative;inset:auto;height:min(65vw,530px);min-height:300px;margin:0;}
 .map-page .graph-search-dock{position:relative;inset:auto;max-width:700px;margin:12px auto;padding:0 20px;}
 .map-page .graph-toolbar{position:relative;inset:auto;margin:8px 20px;}
 .map-page .zoom{position:absolute;bottom:12px;right:20px;}
 .map-page .explorer-intro,.map-page .detail,.map-page #action-panel,.map-page #find-panel,.map-page .guidance-panel{position:relative;inset:auto;order:2;width:calc(100% - 40px);margin:16px 20px;max-height:none;overflow:visible;}
 .map-page .explorer-intro{order:3;}.map-page #action-content{height:auto;overflow:visible;}
 body:has(.guidance-panel:not([hidden])) .explorer-intro{display:none;}
 .map-page #connection-caption{display:none!important;}.map-page #site-menu{width:260px;}
 .map-page .graph-caption{display:none;}
}
.graph-search-dock .everyday-prompts{height:auto;min-height:0;width:100%;overflow:visible;white-space:normal;}
@media(max-width:1100px){.map-page .graph-toolbar{margin-bottom:0;}.map-page .guidance-panel{margin-top:24px;}}

/* Spacious default: larger connected graph, quiet compact search, contextual rails. */
.map-page .explorer-intro{display:none;}
.map-page .workspace{--rail:clamp(230px,20vw,290px);}
.map-page #canvas,.map-page.mapping-focus #canvas{bottom:170px;}
.map-page .graph-search-dock{left:50%;right:auto;transform:translateX(-50%);width:min(510px,calc(100% - 2 * var(--rail) - 24px));bottom:52px;}
.graph-search-dock .entry-search{padding:2px 6px 2px 16px;}
.graph-search-dock .entry-search input{font-size:14px;padding:8px 0;}
.graph-search-dock .entry-search button{width:36px;height:36px;font-size:19px;}
.graph-search-cue{font-size:12px;margin-bottom:9px;}
.graph-search-dock .everyday-prompts{gap:0 12px;margin-top:6px;}
.graph-search-dock .everyday-prompts button{font-size:10px;min-height:27px;padding:3px 0;}
.map-page .detail,.map-page #action-panel,.map-page #find-panel,.map-page .guidance-panel{border:0;border-radius:0;background:#fcfdff;}
.map-page .detail{bottom:180px;font-size:14px;}
.map-page .detail h2{font-size:25px;}
.map-page .graph-toolbar{left:20px;bottom:28px;}
.map-page .zoom{right:20px;bottom:40px;}
#graph .edge{pointer-events:stroke;cursor:pointer;stroke-width:2;}
#graph .edge.quiet{opacity:.25;stroke:#527a98;}
.mapping-focus #graph .edge.quiet{opacity:.04;}
#graph .edge.selected{opacity:.95;stroke-width:2.7;}
#graph .edge:hover,#graph .edge:focus-visible{opacity:1;stroke:#214f75;stroke-width:5;outline:none;}
.mapping-focus #graph .context-muted{opacity:.65;}
.workspace.mapping-focus::before{display:none;}
.map-page #connection-caption{visibility:visible!important;left:auto;right:20px;top:auto;bottom:105px;width:calc(var(--rail) - 40px);padding:10px;border:0;border-left:2px solid #90a9bb;border-radius:0;background:#fcfdff;box-shadow:none;font-size:12px;line-height:1.5;z-index:14;}
@media(max-width:1100px){
 .map-page #canvas,.map-page.mapping-focus #canvas{height:min(90vw,660px);min-height:340px;bottom:auto;}
 .map-page .graph-search-dock{position:relative;inset:auto;transform:none;width:min(510px,100%);padding:0 20px;margin:12px auto 18px;}
 .map-page .graph-toolbar{position:relative;inset:auto;}.map-page .zoom{position:absolute;right:20px;bottom:12px;}
 .map-page .detail{bottom:auto;}.map-page #connection-caption:not([hidden]){display:block!important;position:relative;inset:auto;width:calc(100% - 40px);margin:16px 20px;order:1;}
 .graph-search-dock .everyday-prompts button{font-size:11px;min-height:36px;}
}

.council-anchor{cursor:pointer;}.council-anchor text{font-size:15px;fill:#963d54;paint-order:stroke;stroke:#fcfdff;stroke-width:4px;pointer-events:none;}.council-anchor .touch-target{fill:transparent;stroke:none;}.council-anchor:focus-visible{outline:none;}.council-anchor:focus-visible>circle:nth-child(2){stroke:#123553;stroke-width:3;}

#graph .relationship-endpoint .node-label{opacity:1;}
.map-page #connection-caption{max-height:90px;overflow:auto;}
.map-page .detail{bottom:200px;}
@media(max-width:1100px){.map-page .detail{bottom:auto;}}

.graph-search-dock .example-invitation{text-align:center;font-size:12px;line-height:1.4;color:#627587;margin:7px 0 0;}
.graph-search-dock .example-invitation + .everyday-prompts{margin-top:2px;}
