:root { --seg-track:#33363e; --seg-active:#121317; --search-bg:#2b2e35; color-scheme:dark; --dem:#2f70b7; --tossup:#f1cf48; --rep:#c92f32; --neutral:#3a3b42; --bg:#202124; --card:#26282e; --fg:#e8e9ed; --muted:#a9abb3; --sidebar:#17191e; --border:#383a42; --link:#8ab4f8; --active:#92c7ec; --sidebar-width:64px; }
:root[data-theme="light"] { --seg-track:#e4e7ec; --seg-active:#fff; --search-bg:#f6f7f9; color-scheme:light; --bg:#f3f4f6; --card:#fff; --fg:#20242c; --muted:#565f6b; --sidebar:#e5e7eb; --border:#cbd1da; --link:#155e9b; --active:#175e8f; }
:root[data-text-size="large"] { font-size:18px; }
:root[data-text-size="extra-large"] { font-size:20px; }
* { box-sizing: border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:system-ui,sans-serif; }
button, input, select { font:inherit; }
button, a, input, select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:default; }
:focus-visible { outline:2px solid var(--active); outline-offset:3px; }
header { padding:1rem 1.5rem; }
header h1 { margin:0; }
header p { margin:.25rem 0 .75rem; color:var(--muted); }
a { color:var(--link); }
#workspace { flex:1; min-width:0; }
.map-column { flex:1; min-width:0; }
#map-column { padding:1.25rem 1.5rem; }
#map-column > #map-wrap { display:none; }
/* The hamburger and home search share a 36px centre line at every width. */
.home-search { height:3rem; margin-top:-.5rem; }
#home-search-results { max-width:1120px; margin:auto; }
#workspace:not([data-state-open="true"]) ~ .atmosphere-coverage,
#workspace:not([data-state-open="true"]) ~ .map-help-toggle { display:none; }
#map-wrap { min-width:0; width:100%; max-width:1100px; margin:2rem auto; padding:0 1.5rem; }
#map { width:100%; height:auto; }
#map-wrap { transition:opacity .25s; }
#workspace[data-state-open="true"] #map .state { opacity:.35; }
#workspace[data-state-open="true"] #map .state:has(.selected),
#workspace[data-state-open="true"] #map .state:hover,
#workspace[data-state-open="true"] #map .state:focus-visible { opacity:1; }
#workspace[data-state-open="true"] #map .hex.selected { stroke:#fff; stroke-dasharray:none; transform:none; }
#state-geography { min-width:0; margin:0; }
#state-geography-map { display:block; width:100%; height:auto; }
.state-outline { fill:var(--neutral); stroke:var(--muted); stroke-width:1; }
.district-boundary { fill:none; stroke:var(--muted); stroke-width:.8; pointer-events:none; }
.district-highlight { fill:var(--active); fill-opacity:.65; stroke:var(--fg); stroke-width:2; pointer-events:none; }
.state-city-labels circle { fill:var(--fg); stroke:var(--bg); stroke-width:1; }
.state-city-labels text { fill:var(--fg); font-size:16px; stroke:var(--bg); stroke-width:3px; paint-order:stroke; }
#state-geography-status { font-size:.8rem; color:var(--muted); }
#state-geography-status:empty { display:none; }
#map-page { display:flex; flex-direction:column; min-height:100dvh; padding-bottom:4rem; }
.atmosphere-coverage { width:calc(100% - 3rem); max-width:1080px; margin:1rem auto; padding:1rem 0; border-top:1px solid var(--border); text-align:center; }
.atmosphere-coverage progress { display:block; appearance:none; width:100%; max-width:48rem; height:.65rem; margin:0 auto 1rem; overflow:hidden; border:0; border-radius:1rem; background:var(--seg-track); accent-color:var(--active); }
.atmosphere-coverage progress::-webkit-progress-bar { background:var(--seg-track); border-radius:1rem; }
.atmosphere-coverage progress::-webkit-progress-value { background:var(--active); border-radius:1rem; }
.atmosphere-coverage progress::-moz-progress-bar { background:var(--active); border-radius:1rem; }
#atmosphere-summary { margin:.5rem 0; overflow-wrap:anywhere; }
#map-page:has(#workspace[data-state-open="true"]) { padding-bottom:calc(var(--coverage-banner-height, 64px) + 1rem); }
#map-page:has(#workspace[data-state-open="true"]) .atmosphere-coverage { position:fixed; z-index:25; left:var(--sidebar-width); right:0; bottom:0; width:auto; max-width:none; margin:0; padding:.45rem 1rem; background:var(--card); }
#map-page:has(#workspace[data-state-open="true"]) .atmosphere-coverage progress { height:.3rem; margin-bottom:.3rem; }
#map-page:has(#workspace[data-state-open="true"]) #atmosphere-summary { margin:.2rem 0 0; font-size:.75rem; line-height:1.35; }
#map-page:has(#workspace[data-state-open="true"]) .map-help-toggle { bottom:calc(var(--coverage-banner-height, 64px) + .75rem); }
#map-page:has(#workspace[data-state-open="true"]) #map-help-panel { bottom:calc(var(--coverage-banner-height, 64px) + 4.5rem); }
.map-help-toggle { position:fixed; right:max(1rem, env(safe-area-inset-right)); bottom:max(1rem, env(safe-area-inset-bottom)); z-index:20; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--border); border-radius:50%; background:var(--card); color:var(--muted); font-weight:600; box-shadow:0 2px 8px #0003; }
.map-help-toggle:hover { color:var(--fg); border-color:var(--muted); }
#map-help-panel { position:fixed; inset:auto 1rem 4.5rem auto; margin:0; width:min(28rem, calc(100vw - var(--sidebar-width) - 2rem)); max-height:65dvh; overflow-y:auto; padding:1.25rem; border:1px solid var(--border); border-radius:14px; background:var(--card); color:var(--muted); font-size:.85rem; box-shadow:0 6px 24px #0005; overflow-wrap:anywhere; }
#map-help-panel h2 { margin:0; color:var(--fg); font-size:1rem; }
#map-help-panel p:last-child { margin-bottom:0; }
.leader[data-boundary-kind]:hover { background:var(--seg-track); border-radius:6px; }
.hex { fill:var(--neutral); stroke:var(--bg); stroke-width:3; cursor:pointer; transition:transform .15s, fill .2s; transform-box:fill-box; transform-origin:center; }
.state { cursor:pointer; outline:none; }
.state:hover .hex, .state:focus-visible .hex { transform:scale(1.08); }
.hex.selected { stroke:#fff; stroke-width:4; transform:scale(1.1); }
.label { fill:#fff; font-weight:500; font-size:1rem; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
#map[data-view="square"] .label { font-size:1.15rem; }
#map[data-view="geo"] .hex { stroke-width:1; stroke-linejoin:round; transition:fill .2s, filter .15s; }
#map[data-view="geo"] .state:hover .hex, #map[data-view="geo"] .state:focus-visible .hex { transform:none; filter:brightness(1.18); }
#map[data-view="geo"] .hex.selected { stroke:#fff; stroke-width:2.5; transform:none; }
#map[data-view="geo"] .hex.callout { stroke-width:2; }
#map[data-view="geo"] .label { font-size:.8rem; }
.territory-divider line { stroke:var(--border); stroke-width:1.5; }
.territory-divider text { fill:var(--muted); stroke:var(--bg); stroke-width:14px; paint-order:stroke; letter-spacing:.12em; font-weight:600; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
.inset-frame { fill:transparent; stroke:var(--border); stroke-width:1; }
#map[data-view="geo"] .inset-shape { stroke:var(--neutral); stroke-width:3; }
#map[data-view="geo"] .inset-shape.selected { stroke:#fff; stroke-width:3; }
.inset-label { fill:var(--muted); font-size:13px; }
.state:hover .inset-frame, .state:focus-visible .inset-frame { stroke:var(--muted); }
.state:has(.hex.selected) .inset-frame { stroke:var(--fg); }
.leader-line { stroke:var(--muted, #9aa0a6); stroke-width:.75; pointer-events:none; }
#panel-shell { display:none; min-width:0; max-width:1120px; margin:auto; }
#workspace[data-state-open="true"] .map-column { display:none; }
#workspace[data-state-open="true"] #panel-shell { display:block; }
#panel { padding:1.25rem 2rem 2rem; overflow-wrap:anywhere; }
.state-page-toolbar { display:flex; align-items:center; gap:.75rem; margin-bottom:1.5rem; }
#close { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; margin:0; padding:.5rem; background:none; border:0; color:var(--fg); border-radius:8px; }
#close:hover { background:var(--seg-track); }
#close svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.state-hero { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:1.5rem; padding:0; margin-bottom:1.5rem; align-items:center; }
.state-overview { min-width:0; align-self:stretch; display:flex; flex-direction:column; justify-content:space-between; }
#panel #state-name { margin:0 0 1rem; font-size:clamp(2rem, 4.5vw, 4.5rem); font-weight:800; font-style:italic; letter-spacing:-.035em; line-height:1.1; }
#state-navigation { min-width:0; }
#state-navigation #map-wrap { margin:0; padding:0; }
.state-controls { margin:1rem 0 1.25rem; }
.state-tabs { display:grid; gap:.5rem; min-width:0; }
.state-tabs .segmented { margin:0; }
.search { flex:1; min-width:0; display:flex; align-items:center; gap:.75rem; padding:0 1rem; background:var(--search-bg); border:1px solid var(--border); border-radius:14px; color:var(--muted); }
.search:focus-within { border-color:var(--active); }
.search svg { width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.search input { flex:1; min-width:0; padding:.85rem 0; border:0; background:none; color:var(--fg); outline:none; }
.search input::placeholder { color:var(--muted); }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.segmented { display:flex; gap:4px; padding:4px; margin:0 0 .75rem; background:var(--seg-track); border-radius:14px; }
.segmented button { flex:1; min-width:0; padding:.7rem .5rem; border:0; border-radius:10px; background:none; color:var(--muted); font-weight:500; transition:background .15s, color .15s; }
.segmented button:hover { color:var(--fg); }
.segmented button[aria-selected="true"] { background:var(--seg-active); color:var(--fg); }
:root[data-theme="light"] .segmented button[aria-selected="true"] { box-shadow:0 1px 3px #0002; }
.segmented-sub { width:fit-content; max-width:100%; margin-bottom:1.25rem; border-radius:12px; }
.segmented-sub button { flex:0 1 auto; padding:.5rem 1rem; font-size:.85rem; border-radius:9px; }
.result-count { color:var(--muted); font-size:.85rem; margin:1rem 0 .25rem; }
.coming-soon { margin-top:1.5rem; padding:2.5rem 1rem; text-align:center; border:1px dashed var(--border); border-radius:14px; }
#panel .coming-soon h3 { border:0; margin:0 0 .25rem; padding:0; }
.coming-soon p { margin:0; color:var(--muted); }
#panel h3 { margin:1.2rem 0 .4rem; border-bottom:1px solid var(--border); padding-bottom:.25rem; }
.legislative-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin:1.2rem 0 .4rem; padding-bottom:.4rem; border-bottom:1px solid var(--border); }
.legislative-heading:has(.session-selector) { position:relative; flex-wrap:wrap; }
.legislative-title { display:flex; align-items:baseline; gap:.55rem; flex-wrap:wrap; min-width:0; }
.session-selector summary { display:flex; align-items:center; gap:.3rem; padding:.25rem 0; cursor:pointer; list-style:none; color:var(--muted); font-size:.85rem; white-space:nowrap; }
.session-selector summary::-webkit-details-marker { display:none; }
.session-selector summary svg { width:1rem; height:1rem; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .15s; }
.session-selector[open] summary svg { transform:rotate(180deg); }
.session-options { position:absolute; top:100%; left:0; right:0; max-height:18rem; overflow-y:auto; z-index:5; border:1px solid var(--border); border-radius:10px; padding:.25rem; background:var(--card); box-shadow:0 6px 20px #0005; }
.session-options button { display:block; width:100%; padding:.65rem; background:none; border:0; color:var(--fg); text-align:left; font-size:.8rem; overflow-wrap:anywhere; }
.session-options button:hover, .session-options button[aria-pressed="true"] { background:var(--seg-track); border-radius:7px; }
.historical-note, .session-unavailable { font-size:.8rem; }
.session-coverage-note { margin:.5rem; font-size:.75rem; }
.historical-official-name { color:var(--fg); overflow-wrap:anywhere; }
#panel .legislative-heading h3 { margin:0; padding:0; border:0; }
.seat-view-toggle { display:flex; flex-shrink:0; gap:2px; padding:3px; border-radius:9px; background:var(--seg-track); }
.seat-view-toggle button { padding:.3rem .6rem; border:0; border-radius:6px; background:none; color:var(--muted); font-size:.75rem; }
.seat-view-toggle button[aria-pressed="true"] { background:var(--seg-active); color:var(--fg); }
.seat-map-note { color:var(--muted); font-size:.8rem; }
.seat-map-scroll { width:100%; min-width:0; padding:4px; }
.seat-map { display:block; width:100%; height:auto; }
.seat-tile { fill:var(--neutral); cursor:pointer; outline:none; }
.seat-tile.dem { fill:var(--dem); } .seat-tile.rep { fill:var(--rep); }
.seat-tile.independent { fill:#71643a; } .seat-tile.green { fill:#28783e; } .seat-tile.libertarian { fill:#795b00; }
.seat-tile text { fill:#fff; font-weight:600; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
.seat-tile:hover > :is(rect, polygon), .seat-tile:focus-visible > :is(rect, polygon) { stroke:var(--fg); stroke-width:.04; }
.official-heading { align-items:flex-start; }
#panel .official-heading h3 { flex:1; min-width:0; align-self:center; overflow-wrap:anywhere; }
.official-back { display:grid; place-items:center; flex-shrink:0; width:2.25rem; height:2.25rem; padding:.35rem; background:none; color:var(--fg); border:0; border-radius:6px; }
.official-back:hover { background:var(--seg-track); }
.official-back svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.party-square { display:grid; place-items:center; flex-shrink:0; width:2.25rem; height:2.25rem; background:var(--neutral); color:#fff; font-size:1.1rem; font-weight:700; }
.party-square.dem { background:var(--dem); } .party-square.rep { background:var(--rep); }
.party-square.independent { background:#71643a; } .party-square.green { background:#28783e; } .party-square.libertarian { background:#795b00; }
.official-profile { padding:.25rem 0; }
#official-title { scroll-margin-block:1rem calc(var(--coverage-banner-height, 64px) + 1rem); }
.official-office { color:var(--muted); }
.official-check { display:inline-block; width:1em; height:1em; margin-left:.35em; vertical-align:-.1em; text-decoration:none; }
.official-check svg { display:block; width:100%; height:100%; }
#official-edit { flex-shrink:0; align-self:center; padding:.45rem .6rem; }
.atmosphere-account { margin:.6rem 0; overflow-wrap:anywhere; }
.atmosphere-bio { white-space:pre-wrap; }
.atmosphere-search { position:relative; margin:.75rem 0; min-width:0; }
.atmosphere-search input { width:100%; min-width:0; padding:.75rem; border:1px solid var(--border); border-radius:10px; background:var(--card); color:var(--fg); }
.account-results { position:absolute; inset:auto 0 auto; z-index:4; max-height:18rem; overflow-y:auto; background:var(--card); border:1px solid var(--border); border-radius:10px; box-shadow:0 6px 20px #0004; }
.account-option { display:grid; gap:.2rem; width:100%; padding:.7rem; border:0; border-radius:0; background:var(--card); color:var(--fg); text-align:left; overflow-wrap:anywhere; }
.account-option:hover, .account-option[aria-selected="true"] { background:var(--seg-track); }
.account-option small { color:var(--muted); }
.official-editor { padding:.5rem 0; }
.account-confirm { margin:.75rem 0; }
.collaborator-row { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between; padding:1rem 0; border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.official-name { padding:0; border:0; background:none; color:var(--link); text-align:left; text-decoration:underline; overflow-wrap:anywhere; }
.leader { display:flex; justify-content:space-between; gap:.5rem; padding:.35rem 0; font-size:.95rem; }
.leader > div { min-width:0; }
.search-result { display:grid; grid-template-columns:auto minmax(0, 1fr) auto; align-items:center; gap:.75rem; padding:.6rem 0; }
.location-tile { display:grid; place-items:center; width:3rem; min-height:3rem; padding:.3rem; background:var(--seg-track); border:1px solid var(--border); border-radius:5px; font-size:.75rem; font-weight:700; text-align:center; overflow-wrap:anywhere; }
.location-tile.district-tile { width:auto; min-width:3rem; max-width:7rem; }
.search-result > .badge { max-width:none; }
.search-section-title { color:var(--muted); font-size:.9rem; }
.leader small { color:var(--muted); display:block; }
.badge { align-self:center; max-width:45%; font-size:.75rem; padding:.1rem .5rem; border-radius:99px; color:#fff; overflow-wrap:anywhere; background:var(--neutral); }
.badge.dem { background:var(--dem); } .badge.rep { background:var(--rep); }
.badge.independent { background:#71643a; }
.badge.green { background:#28783e; } .badge.libertarian { background:#795b00; }
.empty { color:var(--muted); font-style:italic; }
.app-content { margin-left:var(--sidebar-width); min-width:0; transition:margin-left .3s; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:40; width:var(--sidebar-width); display:flex; flex-direction:column; padding:.75rem 0; background:var(--sidebar); border-right:1px solid var(--border); color:var(--fg); overflow-y:auto; transition:width .3s; }
.sidebar svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.icon-definitions { position:absolute; width:0; height:0; overflow:hidden; }
.icon-button { display:grid; place-items:center; background:none; color:var(--muted); border:0; width:40px; height:40px; margin:.25rem auto 1.25rem; border-radius:12px; flex-shrink:0; }
.icon-button:hover, .nav-item:hover { background:color-mix(in srgb, var(--fg) 8%, transparent); color:var(--fg); }
.sidebar-label { display:none; }
.account { display:flex; flex-direction:column; align-items:center; gap:.75rem; background:none; border:0; color:var(--fg); margin:0 8px 1.5rem; padding:0; }
.account-details { text-align:center; }
#account-name { display:block; overflow-wrap:anywhere; }
#account-role { display:block; margin-top:.25rem; font-size:.8rem; color:var(--muted); }
.avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#fff; color:#202124; overflow:hidden; flex-shrink:0; }
.avatar img { width:100%; height:100%; object-fit:cover; }
.nav-item { display:flex; align-items:center; justify-content:center; gap:.75rem; min-height:46px; width:calc(100% - 16px); margin:0 8px 5px; padding:.7rem 0; border:0; border-left:4px solid transparent; border-radius:12px; color:var(--muted); background:none; text-decoration:none; text-align:left; font-size:.9rem; }
.nav-item[aria-current], .nav-item[aria-expanded="true"] { border-left-color:var(--active); background:color-mix(in srgb, var(--active) 12%, transparent); color:var(--fg); }
.sidebar-bottom { margin-top:auto; padding-top:1.5rem; }
[data-sidebar-expanded="true"] .sidebar { width:280px; }
[data-sidebar-expanded="true"] .sidebar-label { display:inline; }
[data-sidebar-expanded="true"] .icon-button { margin-left:1.25rem; }
[data-sidebar-expanded="true"] .avatar { width:80px; height:80px; font-size:1.75rem; }
[data-sidebar-expanded="true"] .nav-item { justify-content:flex-start; padding-inline:1rem; width:calc(100% - 32px); margin-inline:16px; }
.sidebar-backdrop { position:fixed; inset:0; z-index:35; border:0; background:#0008; }
.status { padding:1rem 1.5rem; background:var(--card); border-bottom:1px solid var(--border); margin:0; }
.settings-page { max-width:700px; padding:2rem; margin:auto; }
.settings-page > p { color:var(--muted); }
.settings-card { display:grid; gap:.75rem; padding:1.5rem; background:var(--card); border:1px solid var(--border); border-radius:16px; margin:1.5rem 0; }
select, input { min-width:0; width:100%; padding:.65rem; background:var(--bg); color:var(--fg); border:1px solid var(--border); border-radius:8px; }
dialog { width:min(460px, calc(100vw - 32px)); padding:1.5rem; border:1px solid var(--border); border-radius:16px; background:var(--card); color:var(--fg); }
dialog::backdrop { background:#0009; }
dialog h2 { margin-top:0; padding-right:1rem; }
dialog label { display:block; margin-bottom:.5rem; }
dialog p { color:var(--muted); font-size:.9rem; }
.privacy-note { font-size:.8rem; }
.dialog-close { position:absolute; top:.5rem; right:.65rem; background:none; color:var(--fg); border:0; font-size:1.5rem; }
#login-submit { width:100%; border:0; border-radius:8px; background:var(--active); color:var(--bg); padding:.75rem; }
#login-submit:disabled { opacity:.6; }
#login-error { color:#f48c8c; }
[data-theme="light"] #login-error { color:#a01a1a; }
.doc-page { max-width:860px; padding:2rem; margin:auto; }
.doc-page h1 { margin-top:0; }
.doc-search { flex:none; margin-bottom:1rem; }
.doc-page .coming-soon h3 { margin:0 0 .25rem; }
.doc-contents { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:1rem; padding:1rem 1.25rem; margin:1rem 0 2rem; background:var(--card); border:1px solid var(--border); border-radius:14px; }
.doc-contents h3 { margin:0 0 .5rem; font-size:1rem; }
.doc-contents ul { display:flex; flex-wrap:wrap; gap:.35rem; margin:0; padding:0; list-style:none; }
.doc-contents button { padding:.35rem .65rem; border:1px solid var(--border); border-radius:999px; background:none; color:var(--link); font-size:.85rem; }
.doc-contents button:hover { background:var(--seg-track); }
.doc h2 { margin:2.5rem 0 .5rem; font-size:1.6rem; }
.doc-part { scroll-margin-top:1rem; padding-bottom:.5rem; outline:none; }
.doc-part h3 { margin:1.75rem 0 .5rem; padding-bottom:.25rem; border-bottom:1px solid var(--border); }
.doc-part h4 { margin:1.25rem 0 .35rem; color:var(--muted); font-size:.95rem; }
.doc-part p { line-height:1.65; scroll-margin-top:1rem; }
.doc-meta, .doc-source { color:var(--muted); font-size:.85rem; }
.doc-notes { margin-top:.75rem; padding:.25rem 1rem; border-left:3px solid var(--border); color:var(--muted); font-size:.85rem; }
.signers { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:.75rem 1.5rem; margin:1rem 0; }
.signers dt { font-weight:600; } .signers dd { margin:0; color:var(--muted); }
.jump-highlight { background:color-mix(in srgb, var(--tossup) 22%, transparent); border-radius:6px; box-shadow:0 0 0 4px color-mix(in srgb, var(--tossup) 22%, transparent); }
.search-results { margin:.5rem 0; padding:0; list-style:none; }
.search-results button { display:block; width:100%; margin:0 0 .5rem; padding:.85rem 1rem; text-align:left; background:var(--card); color:var(--fg); border:1px solid var(--border); border-radius:12px; }
.search-results button:hover, .search-results button:focus-visible { border-color:var(--active); }
.search-results strong { display:block; margin-bottom:.25rem; color:var(--link); font-size:.9rem; }
.search-results span { color:var(--muted); font-size:.9rem; line-height:1.5; }
mark { background:color-mix(in srgb, var(--tossup) 45%, transparent); color:var(--fg); border-radius:3px; padding:0 1px; }
.muted { color:var(--muted); }
.skip-link { position:fixed; top:-100px; left:80px; z-index:100; background:var(--card); padding:1rem; }
.skip-link:focus { top:8px; }
@media (min-width:1024px) {
  [data-sidebar-expanded="true"] { --sidebar-width:280px; }
}
@media (max-width:1023px) {
  [data-sidebar-overlay="true"] body { overflow:hidden; }
}
@media (max-width:767px) {
  :root { --sidebar-width:0px; }
  .app-content { padding-top:3.5rem; }
  .home-search { margin:-4rem 0 0 2.25rem; }
  :root:not([data-sidebar-expanded="true"]) .sidebar { padding:0; background:none; border-right:0; overflow:visible; pointer-events:none; }
  :root:not([data-sidebar-expanded="true"]) .sidebar > :not(#sidebar-toggle) { display:none; }
  #sidebar-toggle { position:fixed; top:16px; left:.5rem; z-index:41; margin:0; pointer-events:auto; background:var(--sidebar); border:1px solid var(--border); }
  [data-sidebar-expanded="true"] #sidebar-toggle { position:static; margin:.25rem 0 1.25rem 1.25rem; border:0; background:none; }
  #map-wrap { padding:0 1rem; margin:1rem auto; }
  header { padding:1rem; }
  #panel { padding:1rem; }
  .doc-page, .settings-page { padding:1rem; }
}
@media (max-width:539px) {
  .state-hero { grid-template-columns:minmax(0, 1fr); gap:1rem; }
  #state-navigation { max-width:26rem; width:100%; margin:auto; }
  #panel #state-name { font-size:2.25rem; }
  .state-tabs .segmented button { padding:.5rem .3rem; font-size:.8rem; }
  .search-result { grid-template-columns:auto minmax(0, 1fr); }
  .search-result > .badge { grid-column:2; justify-self:start; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { transition:none !important; animation:none !important; }
}

.composer-open { position:fixed; right:max(1.25rem, env(safe-area-inset-right)); bottom:max(1.25rem, env(safe-area-inset-bottom)); z-index:30; display:grid; place-items:center; width:56px; height:56px; padding:0; border:0; border-radius:50%; background:#3b78f6; color:#fff; box-shadow:0 4px 14px #0006; cursor:pointer; }
.composer-open[hidden] { display:none; }
.composer-open:hover { background:#2f68e0; }
.composer-open svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
body:has(#workspace[data-state-open="true"]) .composer-open { bottom:calc(var(--coverage-banner-height, 64px) + .75rem); }
[data-composer="true"] .map-help-toggle { right:calc(max(1.25rem, env(safe-area-inset-right)) + 68px); }
[data-composer="true"] #map-help-panel { right:max(1rem, env(safe-area-inset-right)); bottom:calc(max(1.25rem, env(safe-area-inset-bottom)) + 68px); }
.composer-dialog { width:min(600px, calc(100vw - 32px)); padding:0; }
.composer-bar { display:flex; align-items:center; gap:1rem; padding:.75rem 1rem; }
.composer-spacer { flex:1; }
.composer-link { background:none; border:0; padding:.4rem .25rem; color:#5b93ff; font:inherit; cursor:pointer; }
.composer-post { padding:.5rem 1.25rem; border:0; border-radius:999px; background:#3b78f6; color:#fff; font:inherit; font-weight:600; }
.composer-post:disabled { opacity:.45; cursor:not-allowed; }
.composer-body { display:flex; gap:.75rem; padding:.25rem 1rem 1rem; }
.composer-body .avatar { margin-top:.25rem; }
.composer-body textarea { flex:1; min-width:0; min-height:12rem; resize:none; border:0; outline:0; background:none; color:var(--fg); font:inherit; font-size:1.1rem; line-height:1.4; }
