/* Civic reference desk: one presentation layer for the research application. */
@media screen {
  :root {
    --ink:#172b3a;--muted:#566670;--blue:#174ea6;--blue-soft:#eaf1f8;
    --paper:#f5f7f8;--line:#d9e0e4;--mint:#eff4f3;--green:#355e55;
    --white:#fff;--radius:8px;--display:"Helvetica Neue",Helvetica,Arial,sans-serif;
  }
  html {scroll-padding-block:100px 100px}
  body {background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
  h1,h2,h3 {font-family:var(--display);font-weight:500;letter-spacing:-.025em;line-height:1.2;text-wrap:pretty}
  h1 {font-weight:400;letter-spacing:-.045em;text-wrap:balance}
  h2 {font-size:28px}h3 {font-size:22px}
  main {max-width:1240px;padding:46px 40px 80px;min-height:72vh}
  p {line-height:1.7}
  .eyebrow,.mini-label,.section-label {display:block;font-family:inherit;font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  .eyebrow {margin-bottom:16px}.mini-label {margin-bottom:10px}
  .small-note,.helper {font-size:13px;line-height:1.65}
  .section-top {align-items:center;gap:28px;margin-bottom:30px}
  .section-top h1 {font-size:clamp(36px,4vw,48px);line-height:1.15;margin-bottom:15px;font-weight:400}
  .section-top p {max-width:760px;font-size:16px}
  .button {min-height:46px;border-radius:5px;padding:11px 19px;gap:14px;font-size:14px;font-weight:600;box-shadow:none;transition:background-color .12s,border-color .12s}
  .button:hover {filter:none;background:#103b80;border-color:#103b80}
  .button.secondary {background:#fff;border-color:#c3cdd4;color:var(--ink)}
  .button.secondary:hover {background:var(--paper);border-color:#7b929f}
  .button.soft {background:var(--blue-soft);border-color:transparent;color:var(--blue)}
  .button.text {background:transparent;border-color:transparent;color:var(--blue)}
  .button.text:hover {background:transparent;color:#103b80;text-decoration:underline;text-underline-offset:5px}
  .button.small {min-height:44px;font-size:13px;padding:9px 14px}
  .button:disabled {filter:none;cursor:not-allowed}
  .inline-link {font-size:14px;min-height:44px;text-align:left;text-decoration:none;font-weight:500}
  .inline-link:hover {text-decoration:underline;text-underline-offset:4px}
  :is(button,a,input,select,textarea,summary):focus-visible {outline:3px solid var(--blue);outline-offset:4px}
  :is(input,select,textarea) {border:1px solid #a9b8c3;border-radius:5px;box-shadow:none;background:#fff;font-size:16px;line-height:1.5}
  input::placeholder,textarea::placeholder {color:#71808c;opacity:1}
  button,summary,a {scroll-margin-block:12px}
  .panel,.candidate-overview,.candidate-outlook-panel,.promise-card,.candidate-compare-card,.saved-candidate-list {border-radius:6px;box-shadow:none}
  .notice,.candidate-disclosure {background:var(--paper);border-left:2px solid #8197a7;border-radius:0;padding:14px 18px;font-size:13px;line-height:1.7}
  .tag,.source-type {border-radius:3px;font-size:12px;letter-spacing:0}
  .scope-strip {background:var(--paper);border:0;border-radius:0;padding:28px 30px;gap:30px}
  .scope-strip h2 {font-size:25px}.scope-strip p {color:var(--muted);font-size:14px}
  .scope-strip .button {flex-shrink:0}
  .prototype-bar {display:flex;justify-content:space-between;gap:20px;max-width:none;padding:7px max(40px,calc((100vw - 1160px)/2));background:var(--paper);color:var(--muted);border-bottom:1px solid var(--line);font-size:11px;line-height:1.5;letter-spacing:0}
  .prototype-bar strong {font-weight:500}.prototype-bar span {color:var(--muted)}
  .site-header {position:sticky;top:0;z-index:30;min-height:83px;align-items:center;flex-wrap:nowrap;padding:18px max(40px,calc((100vw - 1160px)/2));gap:24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:none}
  .header-identity {display:flex;align-items:center;gap:24px;min-width:0}
  .brand {gap:10px;flex-shrink:0;padding:0;text-align:left;background:transparent}
  .brand-icon {width:36px;height:40px;flex-shrink:0;background:none;color:var(--blue);border-radius:0}
  .brand-icon svg {width:100%;height:100%}
  .brand-copy strong {font-family:var(--display);font-size:23px;line-height:1.1;font-weight:600;letter-spacing:-.025em}
  .brand-copy small {font-size:10px;font-weight:500;letter-spacing:.015em;line-height:1.45;max-width:none}
  .header-place {display:flex;align-items:center;gap:6px;border:0;border-left:1px solid var(--line);border-radius:0;min-height:44px;padding:4px 0 4px 18px;max-width:160px;min-width:0;background:none;color:var(--muted);font-size:12px}
  .header-place[hidden] {display:none}.header-place svg {width:15px;height:15px;flex-shrink:0}
  .header-place span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-place:hover {color:var(--blue)}
  .site-header nav {display:flex;align-items:center;gap:25px;flex-wrap:nowrap;flex-shrink:0;width:auto}
  .site-header nav button {display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 0;font-size:13px;font-weight:500;white-space:nowrap;border-radius:0;border-bottom:2px solid transparent;color:var(--muted);background:none;text-decoration:none}
  .site-header nav svg {display:none;width:19px;height:19px;flex-shrink:0}
  .site-header nav button:hover {color:var(--blue)}
  .site-header nav button[aria-current=page] {color:var(--ink);border-bottom-color:var(--blue);font-weight:600;text-decoration:none}
  .nav-short {display:none}.election-date {display:none}
  .site-footer {max-width:1240px;margin-inline:auto;padding:28px 40px 35px;font-size:12px;line-height:1.6;align-items:center}
  .site-footer strong {font-weight:600}.site-footer button {font-size:12px;min-height:44px}

  /* The front page has one primary task: choose a community. */
  .election-edition {display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:17px;font-size:12px;line-height:1.6;color:var(--muted)}
  .election-edition>span:first-child {font-weight:600;text-transform:uppercase;letter-spacing:.06em}
  .election-edition strong {color:var(--ink);font-weight:600;margin-left:10px}
  .home-start {display:grid;grid-template-columns:1.12fr 1fr;gap:90px;align-items:center;padding:58px 0 62px}
  .home-introduction h1 {font-size:clamp(44px,4.65vw,62px);font-weight:400;line-height:1.08;letter-spacing:-.045em;margin-bottom:25px;text-wrap:initial}
  .home-introduction>p {font-size:18px;line-height:1.7;max-width:440px;margin-bottom:27px}
  .home-independence {display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}
  .home-independence>span {width:5px;height:5px;background:var(--blue);border-radius:50%;flex-shrink:0}
  .community-search {border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:0 0 6px 6px;background:var(--paper);padding:28px 30px 0}
  .community-search .section-label {font-size:11px;color:var(--blue);margin-bottom:9px}
  .community-search h2 {font-size:26px;letter-spacing:-.02em;margin:0 0 25px;font-weight:500}
  .community-search label {font-size:13px;font-weight:500;margin-bottom:8px}
  .community-search input {min-height:52px;font-size:16px;padding:12px 14px;max-width:100%}
  .community-search .helper {font-size:12px;margin:9px 0 0}
  .community-search .field {margin-bottom:20px}
  .community-search .button {min-height:49px;width:100%;justify-content:space-between}
  .community-search-footer {display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:17px;padding:10px 0 12px;border-top:1px solid var(--line)}
  .community-search-footer .inline-link {font-size:12px;min-height:36px}
  .home-section-title {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}
  .home-section-title h2 {font-size:24px;font-weight:500;margin:0;letter-spacing:-.025em}
  .home-section-title .inline-link {font-size:13px}
  .home-routes {border-top:1px solid var(--line);padding-top:28px}
  .research-routes {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
  .research-route {text-align:left;display:flex;flex-direction:column;align-items:flex-start;background:transparent;min-width:0;padding:9px 28px 6px 0;border-radius:0}
  .research-route+.research-route {border-left:1px solid var(--line);padding-left:28px}
  .route-kind {font-size:12px;color:var(--muted);margin-bottom:13px}
  .research-route>strong {font-size:20px;font-family:var(--display);font-weight:500;letter-spacing:-.02em;line-height:1.3;margin-bottom:12px}
  .route-description {font-size:14px;color:var(--muted);line-height:1.7;max-width:290px}
  .route-action {display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;color:var(--blue);font-size:13px;font-weight:500;padding-top:20px;margin-top:auto}
  .route-action>span {font-size:20px}.research-route:hover .route-action {text-decoration:underline;text-underline-offset:4px}
  .home-evidence-note {display:grid;grid-template-columns:1fr 2fr;gap:10px 40px;background:var(--paper);margin-top:40px;padding:24px 26px;border-radius:4px;font-size:13px}
  .home-evidence-note>strong {font-weight:600;max-width:230px}.home-evidence-note p {margin:0;font-size:13px;line-height:1.7}
  .home-evidence-note .inline-link {grid-column:2;font-size:12px;min-height:32px}

  /* Place directory and municipal election workspace. */
  .directory-panel {border:0;border-top:1px solid var(--line);border-radius:0;padding:28px 0;margin-top:24px}
  .directory-heading h2 {font-size:28px;font-weight:500}.directory-number {display:none}
  #directory-search {background:#fff;border-radius:5px;font-size:17px;max-width:760px}
  .municipality-result {padding:21px 12px 21px 0}.municipality-result strong {font-size:18px;font-weight:500}
  .municipality-result small {font-size:12px;line-height:1.65}.place-arrow {background:none;border-radius:0;color:var(--blue)}
  .directory-count {font-size:13px}.directory-source {padding-top:18px}
  .local-election-masthead {margin-bottom:26px;border-bottom:1px solid var(--line);padding-bottom:20px}
  .local-election-masthead .section-top {margin-bottom:24px}
  .local-election-summary {display:flex;gap:24px;margin:0 0 14px;padding:0;border:0;background:none;border-radius:0}
  .local-election-summary>div {display:flex;align-items:baseline;gap:7px;line-height:1.6}
  .local-election-summary strong {display:inline;font-size:17px;font-weight:600;font-family:inherit;letter-spacing:0}
  .local-election-summary span {font-size:13px;color:var(--muted)}
  .local-coverage-note {font-size:13px;line-height:1.7;max-width:900px;margin-bottom:7px}
  .local-coverage-note .inline-link {font-size:13px;min-height:30px}
  .local-election-about {border:0;margin:0;font-size:13px;max-width:900px}
  .local-election-about>summary {padding:9px 0;min-height:40px;font-size:13px;color:var(--muted)}
  .local-election-about .local-drawer-content {padding:9px 0 4px;font-size:14px;max-width:850px}
  .local-workspace-links {display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 22px}
  .local-jumps {gap:22px;flex-wrap:wrap;margin:0}
  .local-jumps .button {border:0;border-radius:0;padding:9px 0;min-height:44px;background:none;font-size:13px;color:var(--muted)}
  .local-jumps .button:first-child {border-bottom:2px solid var(--blue);color:var(--ink)}
  .local-jumps .button:hover {color:var(--blue)}
  .local-explore-entry {display:block;padding:0;margin:0;border:0;background:none;border-radius:0}
  .local-explore-entry>div:first-child {display:none}.local-explore-entry .actions {gap:12px}
  .local-explore-entry .button {font-size:12px;min-height:40px}
  .local-office-heading {display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:10px 0 14px}
  .local-office-heading h2 {font-size:21px;margin:0;font-weight:500}.local-office-heading>span {font-size:12px;color:var(--muted)}
  .local-office-categories {display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:0 18px;border-bottom:1px solid var(--line);margin-bottom:22px}
  .local-office-button {display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;min-height:58px;text-align:left;padding:14px 12px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;line-height:1.5}
  .local-office-button:hover {background:var(--paper);color:var(--ink)}
  .local-office-button[aria-pressed=true] {border-bottom-color:var(--blue);background:var(--blue-soft);color:var(--blue);font-weight:600}
  .local-office-count {font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;flex-shrink:0}
  .local-filters,.candidate-toolbar {background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:20px 22px;margin:0 0 20px;gap:24px}
  .local-filters label,.candidate-toolbar label {font-weight:500;font-size:13px;margin-bottom:8px}
  .local-filters input,.local-filters select {font-size:15px;min-height:48px}
  .local-filters {grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
  .local-filters>div {min-width:0}.local-filters select {max-width:100%;text-overflow:ellipsis}
  .local-filters:has(select):not(:has(.local-name-search)) {grid-template-columns:minmax(0,1fr)}
  .local-filters-single {grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
  #local-race-help {font-size:12px;margin:10px 0 0;line-height:1.7}
  #local-race-help .inline-link {font-size:12px;min-height:32px}
  .local-race-scope {font-size:13px;color:var(--muted);margin:0;line-height:1.7}
  .local-race-prompt {padding:26px 0 30px;border-bottom:1px solid var(--line)}
  .local-race-prompt h3 {font-size:22px;margin-bottom:12px}.local-race-prompt p {color:var(--muted);font-size:14px;margin:0}
  .local-office-coverage {font-size:12px;color:var(--muted);margin:25px 0 0}.local-office-coverage .inline-link {font-size:12px;min-height:32px}
  .local-candidates>.local-filters+div>p,.candidate-filter-count {font-size:13px}
  .local-race {margin-top:30px;margin-bottom:42px}
  .local-race>.race-head {border-bottom:1px solid var(--ink);padding-bottom:13px;margin-bottom:0}
  .local-race>.race-head h2 {font-size:24px;font-weight:500}.local-race>.race-head p {font-size:13px}
  .local-race .candidate-grid {display:block}
  .local-candidate-entry {display:grid;grid-template-columns:210px minmax(0,1fr) 150px;gap:30px;padding:28px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:none}
  .local-candidate-identity .mini-label {font-size:12px;line-height:1.6;margin-bottom:10px;color:var(--muted)}
  .local-candidate-identity .candidate-card-name {font-size:24px;line-height:1.2;letter-spacing:-.025em;margin-bottom:10px;font-weight:500}
  .local-candidate-identity .candidate-disclosure {border:0;background:none;padding:0;border-radius:0}
  .local-candidate-identity>p {font-size:12px;color:var(--muted);line-height:1.6;margin:0}
  .local-candidate-body>p {font-size:15px;line-height:1.75;margin-bottom:18px;max-width:660px}
  .local-candidate-body .mini-label {font-size:11px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:10px}
  .local-candidate-body>ul {font-size:14px;line-height:1.7;padding-left:18px;margin:0}
  .local-candidate-body>ul li {margin-bottom:8px}
  .local-candidate-actions {display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:0;margin:0;align-self:start}
  .local-candidate-actions .button {flex:none;justify-content:space-between;font-size:12px;padding:10px 12px;background:white;color:var(--ink);border-color:#c3cdd4;min-height:44px}
  .local-candidate-actions .button:first-child {color:var(--blue);border-color:#a9bfdd}
  .local-candidate-actions .button:hover {background:var(--paper)}
  .local-candidate-actions .button[aria-pressed=true] {background:var(--blue-soft);color:var(--blue);border-color:var(--blue)}
  #local-candidates,#local-voting,#local-sources {scroll-margin-top:12px}
  .local-voting,#local-sources {padding:30px 0;border:0;border-top:1px solid var(--line);border-radius:0;margin-top:35px}
  .local-voting>p,#local-sources>p {max-width:850px}

  /* A profile is a reading document, with identity and tools kept separate. */
  .local-profile-reading {max-width:1120px;margin-inline:auto}
  .explorer-return {max-width:1120px;margin:0 auto 0}
  .explorer-return .button {font-size:13px;min-height:44px;padding-block:6px}
  .explorer-return+.local-profile-reading .local-back {margin-bottom:20px}
  .local-profile-reading .local-back {font-size:13px;min-height:44px;margin-bottom:26px}
  .local-profile-layout {display:grid;grid-template-columns:290px minmax(0,1fr);gap:64px;align-items:start}
  .local-profile-heading {position:sticky;top:110px;margin:0;border-top:2px solid var(--blue);padding-top:23px}
  .local-profile-heading .eyebrow {font-size:11px;line-height:1.7;margin-bottom:15px}
  .local-profile-heading h1 {font-size:43px;font-weight:400;letter-spacing:-.04em;line-height:1.1;overflow-wrap:anywhere;margin-bottom:20px}
  .local-profile-status {font-size:12px;line-height:1.8;margin-bottom:23px}
  .record-date {white-space:nowrap}
  .local-profile-actions {display:flex;flex-direction:column;align-items:stretch;gap:10px}
  .local-profile-actions .button {font-size:13px;justify-content:center}
  .local-profile-content {min-width:0}
  .local-reading-card {border:0;box-shadow:none;border-radius:0;padding:0;background:none}
  .local-reading-section h2 {font-size:25px;font-weight:500;margin-bottom:17px}
  .local-reading-section .local-bio {font-size:17px;line-height:1.85;margin-bottom:14px;color:var(--ink)}
  .local-reading-section+.local-reading-section {padding-top:30px;margin-top:30px}
  .local-section-heading {gap:12px}.local-section-heading>span {font-size:12px}
  .local-policy-list>li {padding:22px 0;border-top:1px solid var(--line)}
  .local-policy-list>li:first-child {padding-top:3px}.local-policy-list>li::before {display:none}
  .local-policy-list>li>p {font-size:16px;line-height:1.8;color:var(--ink);margin-bottom:8px}
  .local-editorial-note {font-size:12px;line-height:1.7}
  .local-profile-extras {margin-top:32px;border-top:1px solid var(--line)}
  .local-drawer>summary {min-height:48px;font-size:14px;padding-block:18px;line-height:1.6}
  .local-drawer>summary>span {font-size:12px}
  .local-drawer-content a {overflow-wrap:anywhere}
  .local-source small,.source-kind,.source-type,.citation-content small {font-size:12px;line-height:1.6}
  .local-shortlist {background:var(--paper);border-radius:5px;padding:20px;border-color:var(--line)}

  /* Evidence is visible without giving every citation a competing box. */
  .local-citation>summary,.explorer-citation>summary {display:flex;align-items:center;gap:9px;list-style:none;min-height:44px;width:100%;padding:8px 0;border-bottom:1px solid var(--line);border-radius:0;background:none;font-size:13px;font-weight:500;color:var(--blue);line-height:1.55}
  .local-citation>summary::marker,.explorer-citation>summary::marker {content:""}
  .local-citation>summary::-webkit-details-marker,.explorer-citation>summary::-webkit-details-marker {display:none}
  .local-citation>summary::after,.explorer-citation>summary::after {content:"+";margin-left:auto;font-size:19px;font-weight:400;color:var(--muted)}
  .local-citation[open]>summary::after,.explorer-citation[open]>summary::after {content:"−"}
  .local-citation>summary:hover,.explorer-citation>summary:hover {background:var(--paper)}
  .local-citation[open]>summary,.explorer-citation[open]>summary {margin-bottom:12px}
  .local-citation>summary .citation-kind,.explorer-citation>summary span {font-size:12px;font-weight:400;color:var(--muted);margin-left:0;line-height:1.55}
  .citation-content,.explorer-citation>div {border-left:2px solid var(--line);padding:8px 15px}
  .explorer-citation p,.explorer-citation small {font-size:12px;line-height:1.75}

  /* Guided exploration shares the same restrained field and reading styles. */
  .explorer-shell {max-width:840px}.explorer-results-shell {max-width:900px}
  .explorer-shell h1,.explorer-results-shell h1,.deep-dive-shell h1 {font-size:44px;font-weight:400;line-height:1.16;letter-spacing:-.04em}
  .explorer-intro {font-size:17px;line-height:1.8;max-width:720px}
  .explorer-progress {gap:0;align-items:center;margin-bottom:28px}
  .explorer-progress li {font-size:12px;flex:1;white-space:nowrap;gap:8px}
  .explorer-progress li:not(:last-child)::after {content:"";height:1px;background:var(--line);flex:1;margin:0 15px}
  .explorer-progress li:last-child {flex:0}.explorer-progress li>span {width:27px;height:27px;font-size:12px}
  .explorer-back {min-height:44px;font-size:13px;margin-bottom:20px}
  .explorer-question {border-radius:5px;box-shadow:none;padding:27px 30px;border-color:var(--line)}
  .explorer-topic-grid {grid-template-columns:1fr 1fr;gap:10px}
  .explorer-topic-option {display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;column-gap:13px;row-gap:5px;min-height:109px;padding:17px;border-radius:5px;border-color:var(--line);align-content:center}
  .explorer-topic-option .explorer-choice-mark {grid-column:1;grid-row:1 / 3;align-self:start;margin-top:1px}
  .explorer-topic-option strong {grid-column:2;font-size:15px;line-height:1.45;font-weight:500}
  .explorer-topic-option small {grid-column:2;font-size:12px;line-height:1.6}
  .explorer-topic-option:hover:not(:disabled) {background:var(--paper);border-color:#8ba2b3}
  .explorer-topic-option[aria-pressed=true] {background:var(--blue-soft);border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
  .explorer-choice-mark {width:24px;height:24px;border-radius:4px;background:#fff;border-color:#9eafba}
  .explorer-topic-option:disabled {opacity:.6}
  .explorer-step-actions {border-top:1px solid var(--line);margin-top:24px;padding-top:23px}
  .explorer-step-actions .small-note,.explorer-footnote {font-size:13px}
  .explorer-place-option,.explorer-race-option {padding:18px 8px;border-radius:0}
  .explorer-place-option:hover,.explorer-race-option:hover {background:var(--paper)}
  .explorer-race-option[aria-pressed=true] {background:var(--blue-soft)}
  .explorer-place-option small,.explorer-race-option small {font-size:13px;line-height:1.6}
  .explorer-candidate {border:0;border-top:1px solid var(--line);border-radius:0;padding:29px 0;box-shadow:none}
  .explorer-candidate h2 {font-size:29px;font-weight:500}
  .explorer-candidate-status {font-size:12px}
  .explorer-statement-group h3 {font-family:inherit;font-size:13px;font-weight:600;letter-spacing:0;color:var(--muted)}
  .explorer-statement-group li>p,.explorer-all-statements li>p {font-size:16px;line-height:1.8}
  .explorer-gap {font-size:14px;line-height:1.75;background:var(--paper);border-left:2px solid var(--line);padding:13px 16px}
  .explorer-method>summary,.explorer-other>summary,.deep-dive-detail>summary {min-height:44px;font-size:14px;line-height:1.6;padding-block:10px}
  .explorer-missing-topics {font-size:13px}

  /* A real contents rail replaces the collection of deep-dive pills. */
  .deep-dive-shell {max-width:1120px;display:grid;grid-template-columns:230px minmax(0,1fr);gap:0 55px;align-items:start}
  .deep-dive-shell>.explorer-back,.deep-dive-heading,.deep-dive-scope {grid-column:1 / -1}
  .deep-dive-shell>.explorer-back {justify-self:start}
  .deep-dive-heading h1 {max-width:770px;font-size:48px;margin-bottom:20px}
  .deep-dive-heading .explorer-intro {max-width:850px}
  .deep-dive-scope {border-left:2px solid var(--line);font-size:13px;line-height:1.75;margin:4px 0 36px;max-width:880px;color:var(--muted)}
  .deep-dive-scope p {margin:5px 0 0;font-size:inherit;line-height:inherit}
  .deep-dive-coverage {font-weight:650;color:var(--ink);font-size:12px}
  .deep-dive-key-fact {margin:19px 0 13px;padding:15px 18px;border-left:2px solid var(--blue);background:var(--paper)}
  .deep-dive-key-fact .mini-label {display:block;margin-bottom:5px;font-weight:600}
  .deep-dive-key-fact p {font-size:15px;line-height:1.8;margin:0}
  .deep-dive-data {margin:25px 0 0}
  .service-snapshot-figures {margin:18px 0}
  .service-snapshot-figures>div {display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
  .service-snapshot-figures dt {font-size:14px;line-height:1.6}
  .service-snapshot-figures dd {font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}
  .deep-dive-jumps {display:flex;flex-direction:column;gap:0;position:sticky;top:112px;margin:0;grid-column:1;grid-row:4;align-items:stretch;border-top:2px solid var(--ink)}
  .section-index-title {font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:17px 0 10px}
  .deep-dive-jumps .button {display:block;min-height:48px;white-space:normal;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:13px 0;font-size:13px;line-height:1.6;background:none;color:var(--muted);font-weight:500}
  .deep-dive-jumps .button:hover {color:var(--blue);background:var(--paper)}
  .deep-dive-issues {grid-column:2;grid-row:4;border:0;border-radius:0;padding:0;background:none;box-shadow:none}
  .deep-dive-issue {grid-template-columns:minmax(0,1fr);gap:0;padding:30px 0;border-bottom:1px solid var(--line);scroll-margin-top:12px}
  .deep-dive-issue:first-child {padding-top:0}.deep-dive-issue:last-child {border-bottom:1px solid var(--line)}
  .deep-dive-issue:focus {outline:none}.deep-dive-issue:focus-visible {outline:2px solid var(--blue);outline-offset:8px}
  .deep-dive-issue .mini-label {font-size:12px;letter-spacing:0;text-transform:none;color:var(--blue);margin-bottom:9px}
  .deep-dive-issue h2 {font-size:29px;font-weight:500;margin:0 0 16px;line-height:1.2}
  .deep-dive-summary {font-size:17px;line-height:1.8}
  .deep-dive-detail {font-size:14px;line-height:1.75;margin-top:10px}
  .deep-dive-detail p,.deep-dive-detail li {font-size:15px;line-height:1.8}
  .deep-dive-shell>.explorer-footnote,.deep-dive-next {grid-column:2}
  .deep-dive-next {margin-top:24px}.deep-dive-gap {grid-column:1 / -1}
  .deep-dive-shell:has(.deep-dive-gap) .deep-dive-next {grid-column:1 / -1;max-width:850px}

  /* Legacy Toronto research, learning and notebook retain the same visual system. */
  .candidate-grid {gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .candidate-brief-card:not(.local-candidate-entry) {border-radius:5px;box-shadow:none;padding:25px}
  .candidate-card-name {font-size:27px;font-weight:500;letter-spacing:-.025em}
  .candidate-card-meta {font-size:12px}.candidate-card-actions .button {font-size:13px}
  .candidate-coverage {background:var(--paper);border:0;border-left:2px solid var(--line);border-radius:0;font-size:13px;line-height:1.7}
  .candidate-profile-head h1 {font-weight:400;letter-spacing:-.04em}
  .candidate-overview,.candidate-outlook-panel {border:0;border-top:1px solid var(--line);border-radius:0;padding:26px 0;box-shadow:none}
  .promise-card {border:0;border-top:1px solid var(--line);border-radius:0;padding:25px 0}
  .promise-card p {font-size:15px}.candidate-compare-card .promise-card {padding-top:20px}
  .candidate-shortlist {border-radius:6px;box-shadow:0 4px 14px #172b3a15}
  .concern-card {border-radius:5px;min-height:210px;padding:25px;box-shadow:none}
  .concern-icon {border:0;border-radius:0;background:none;width:auto;height:28px;font-size:24px;margin-bottom:22px}
  .concern-card strong {font-family:var(--display);font-size:23px;font-weight:500;line-height:1.3}
  .concern-card .mini-label {font-size:11px}.concern-link {font-size:13px}
  .primer-summary,.brief-tools,.municipality-hub {background:var(--paper);border-color:var(--line);border-radius:5px}
  .role-grid .panel,.official-card {border-radius:5px;box-shadow:none}
  .ask-box {border-radius:4px;background:var(--paper)}.ask-box p,.ask-box .mini-label {color:var(--ink)}
  .brief-tools {gap:32px}.brief-tools h2 {font-weight:500;font-size:28px}
  .brief-tools .button {font-size:13px}.restore-box {border-color:var(--line)}
  .note-field .small-note,.restore-box p {font-size:12px;line-height:1.7}
  .saved-candidate h3 {font-size:23px;font-weight:500}.saved-candidate p {font-size:13px}
  .app-status:not(:empty) {z-index:40;bottom:24px;max-width:560px;border-radius:5px;font-size:14px}
  dialog {border-radius:7px}dialog h2 {font-weight:500}
}
@media screen and (min-width:761px) and (max-width:1050px) {
  main {padding-inline:30px}.site-header {padding-inline:30px;gap:15px}.header-identity {gap:16px}
  .header-place {max-width:110px;padding-left:12px}.site-header nav {gap:18px}.site-header nav button {font-size:12px}
  .brand-copy small {font-size:9px}.brand-copy strong {font-size:21px}.brand-icon {width:30px;height:35px}
  .prototype-bar {padding-inline:30px}.home-start {gap:40px}.home-introduction h1 {font-size:49px}
  .community-search {padding:24px 23px 0}.community-search h2 {font-size:24px}
  .local-workspace-links {align-items:flex-start;flex-direction:column;gap:12px}
  .local-candidate-entry {grid-template-columns:180px minmax(0,1fr);gap:16px 28px}
  .local-candidate-actions {grid-column:2;flex-direction:row}.local-profile-layout {grid-template-columns:230px minmax(0,1fr);gap:38px}
  .local-profile-heading h1 {font-size:38px}.deep-dive-shell {grid-template-columns:195px minmax(0,1fr);column-gap:32px}
}
@media screen and (max-width:760px) {
  html {scroll-padding-block:82px 94px}body {padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  main {padding:26px 20px 45px}.prototype-bar {padding:6px 20px;font-size:10px;display:flex;justify-content:center}.prototype-bar span {display:none}
  .site-header {padding:12px 20px;min-height:70px;gap:12px}.header-identity {justify-content:space-between;width:100%;gap:18px}
  .brand {gap:8px}.brand-icon {width:29px;height:35px}.brand-copy strong {font-size:21px}.brand-copy small {font-size:9px;max-width:none}
  .header-place {font-size:11px;max-width:120px;padding-left:12px;min-height:44px}
  .site-header nav {position:fixed;bottom:0;left:0;right:0;z-index:35;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;padding:5px 10px calc(5px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line)}
  .site-header nav button {display:flex;flex-direction:column;gap:3px;min-height:58px;padding:5px 3px;border:0;border-top:2px solid transparent;border-radius:0;white-space:normal;font-size:11px;line-height:1.45}
  .site-header nav svg {display:block;width:19px;height:19px}.site-header nav button[aria-current=page] {border-top-color:var(--blue);color:var(--blue);background:none;border-bottom:0}
  .nav-long {display:none}.nav-short {display:inline}
  .section-top {gap:16px;align-items:flex-start}.section-top h1 {font-size:36px}.section-top p {font-size:15px;line-height:1.7}
  .eyebrow,.mini-label {font-size:11px}.eyebrow {letter-spacing:.035em}
  .election-edition {font-size:11px;padding-bottom:13px;gap:8px;align-items:flex-start;flex-direction:column}.election-edition>span:first-child {font-size:10px;letter-spacing:.035em}.election-edition strong {margin-left:6px}
  .home-start {display:flex;flex-direction:column;gap:23px;padding:28px 0 32px;align-items:stretch}
  .home-introduction h1 {font-size:41px;line-height:1.07;margin-bottom:15px;letter-spacing:-.045em}
  .home-introduction>p {font-size:15px;line-height:1.65;margin:0;max-width:none}.home-independence {display:none}
  .community-search {padding:20px 20px 0}.community-search h2 {font-size:23px;margin-bottom:19px}.community-search .section-label {display:none}
  .community-search label {font-size:12px}.community-search input {font-size:16px;min-height:49px;padding:11px 12px}.community-search .field {margin-bottom:17px}
  .community-search-footer {margin-top:14px;padding-bottom:10px;gap:4px 16px}.community-search-footer .inline-link {font-size:12px;min-height:36px}
  .home-routes {padding-top:23px}.home-section-title {align-items:flex-start;flex-direction:column;gap:7px;margin-bottom:11px}.home-section-title h2 {font-size:24px;max-width:310px}
  .home-section-title .inline-link {font-size:13px;min-height:36px}
  .research-routes {grid-template-columns:1fr}.research-route,.research-route+.research-route {border-left:0;border-bottom:1px solid var(--line);padding:21px 0;display:grid;grid-template-columns:1fr 26px;column-gap:12px}
  .route-kind,.research-route>strong,.route-description {grid-column:1}.route-kind {margin-bottom:8px}.research-route>strong {font-size:21px;margin-bottom:10px}.route-description {max-width:none;font-size:14px}
  .route-action {grid-column:1 / -1;padding-top:13px;font-size:13px}.route-action>span {font-size:20px}
  .home-evidence-note {grid-template-columns:1fr;padding:21px;margin-top:28px;gap:10px}.home-evidence-note>strong {max-width:none}.home-evidence-note .inline-link {grid-column:1}
  .directory-panel {padding:23px 0}.directory-heading h2 {font-size:27px}.directory-heading p {font-size:14px}.municipality-result {padding:18px 0}
  .municipality-result strong {font-size:18px}.municipality-result small {font-size:12px}
  .local-election-masthead {padding-bottom:17px;margin-bottom:19px}.local-election-masthead .section-top {margin-bottom:19px}
  .local-election-summary {flex-wrap:wrap;gap:5px 18px;margin-bottom:13px}.local-election-summary>div {gap:5px}.local-election-summary strong {font-size:15px}.local-election-summary span {font-size:12px}
  .local-election-about>summary {font-size:13px}.local-coverage-note {font-size:12px;line-height:1.75}
  .local-workspace-links {flex-direction:column;align-items:stretch;gap:14px;margin-bottom:20px}.local-jumps {gap:18px;justify-content:flex-start}.local-jumps .button {font-size:12px}
  .local-explore-entry .actions {gap:10px;flex-wrap:wrap}.local-explore-entry .button {font-size:12px}
  .local-office-heading {align-items:flex-start;flex-direction:column;gap:5px;margin-top:8px}.local-office-heading h2 {font-size:21px}.local-office-heading>span {font-size:11px}
  .local-office-categories {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;border:0;margin-bottom:20px}
  .local-office-button {min-height:54px;padding:12px 10px;font-size:13px;gap:8px;border-bottom-color:var(--line)}
  .local-filters,.candidate-toolbar {padding:17px;gap:17px;border-radius:4px}.local-filters label,.candidate-toolbar label {font-size:12px}
  .local-filters,.local-filters-single {grid-template-columns:minmax(0,1fr)}.local-filters input,.local-filters select {font-size:16px}
  .local-race-scope {display:none}.local-race-prompt {padding:20px 0 25px}.local-race-prompt h3 {font-size:21px}.local-race-prompt p {font-size:13px}
  .local-race {margin-top:25px}.local-race>.race-head {align-items:flex-start;flex-direction:column;gap:6px}.local-race>.race-head h2 {font-size:23px}.local-race>.race-head p {margin:0;font-size:12px}
  .local-candidate-entry {display:block;padding:25px 0;border-radius:0}.local-candidate-identity .mini-label {font-size:11px;margin-bottom:7px}
  .local-candidate-identity .candidate-card-name {font-size:27px;margin-bottom:8px}.local-candidate-identity {margin-bottom:17px}
  .local-candidate-body>p {font-size:15px;line-height:1.75}.local-candidate-body>ul {font-size:14px;line-height:1.75}
  .local-candidate-actions {display:flex;flex-direction:row;margin-top:21px;gap:10px}.local-candidate-actions .button {flex:1;min-height:44px;font-size:13px}
  .local-profile-layout {display:block}.local-profile-heading {position:static;margin:0 0 30px;padding-top:20px}.local-profile-heading h1 {font-size:43px;max-width:440px}
  .local-profile-status {font-size:12px}.local-profile-actions {flex-direction:row;flex-wrap:wrap}.local-profile-actions .button {flex:1;white-space:normal}
  .local-profile-reading .local-back {margin-bottom:18px}.local-reading-card {padding:0}.local-reading-section h2 {font-size:25px}.local-reading-section .local-bio {font-size:16px;line-height:1.85}
  .local-section-heading {display:flex;align-items:baseline}.local-section-heading>span {margin:0;font-size:11px}
  .local-policy-list>li {padding:20px 0}.local-policy-list>li>p {font-size:16px}
  .local-citation>summary,.explorer-citation>summary {flex-wrap:wrap;padding-block:9px;font-size:13px;gap:3px 8px}
  .local-citation>summary .citation-kind,.explorer-citation>summary span {font-size:11px;max-width:72%}
  .local-drawer>summary>span {font-size:12px}.local-voting,#local-sources {padding:25px 0}
  .explorer-shell h1,.explorer-results-shell h1,.deep-dive-shell h1 {font-size:36px;line-height:1.16}
  .explorer-intro {font-size:16px;line-height:1.75}.explorer-progress li {font-size:10px;gap:5px}.explorer-progress li>span {width:23px;height:23px;font-size:10px}
  .explorer-progress li:not(:last-child)::after {margin-inline:8px}.explorer-question {padding:22px 18px}
  .explorer-topic-grid {grid-template-columns:1fr;gap:9px}.explorer-topic-option {min-height:85px;padding:14px 13px}.explorer-topic-option strong {font-size:15px}.explorer-topic-option small {font-size:12px}
  .explorer-step-actions {padding-top:20px}.explorer-candidate {padding:25px 0}.explorer-candidate h2 {font-size:28px}.explorer-result-tools .button {font-size:13px}
  .deep-dive-shell {display:block}.deep-dive-heading h1 {font-size:37px}.deep-dive-scope {font-size:13px;margin-bottom:25px}
  .deep-dive-jumps {position:static;border-top:1px solid var(--ink);margin:0 0 30px}.section-index-title {padding-top:14px;font-size:11px}
  .deep-dive-jumps .button {font-size:13px;min-height:44px;padding:11px 0}.deep-dive-issues {padding:0}.deep-dive-issue {padding:27px 0}.deep-dive-issue h2 {font-size:27px}.deep-dive-summary {font-size:16px;line-height:1.8}
  .candidate-grid {grid-template-columns:minmax(0,1fr);gap:16px}.candidate-brief-card:not(.local-candidate-entry) {padding:22px}.candidate-card-name {font-size:27px}
  .local-candidate-entry {padding:25px 0}.candidate-profile-head h1 {font-size:39px}.promise-card {padding:23px 0}
  .concern-grid {grid-template-columns:1fr}.concern-card {min-height:170px;padding:22px}.concern-icon {margin-bottom:12px}.concern-card strong {font-size:23px}.concern-card .mini-label {font-size:11px}
  .brief-tools {padding:21px}.brief-tools h2 {font-size:27px}.scope-strip {padding:23px}.scope-strip .button {white-space:normal}
  .site-footer {margin:0 20px;padding:24px 0;align-items:flex-start;gap:10px;font-size:12px}
  #candidate-shortlist:has(.candidate-shortlist) {bottom:calc(80px + env(safe-area-inset-bottom,0px))}
  .app-status:not(:empty) {bottom:calc(82px + env(safe-area-inset-bottom,0px));width:calc(100vw - 32px);max-width:560px;font-size:13px}
}
@media screen and (max-width:359px) {
  main {padding-inline:16px}.site-header {padding-inline:16px}.brand-copy strong {font-size:19px}.brand-copy small {font-size:8px}.brand-icon {width:26px}
  .header-place {max-width:95px;font-size:10px;padding-left:9px}.home-introduction h1 {font-size:36px}
  .community-search {padding-inline:16px}.community-search input {font-size:16px}.community-search h2 {font-size:22px}
  .election-edition>span:first-child {font-size:9px}.local-jumps {gap:12px}.local-jumps .button {font-size:11px}
  .local-candidate-actions {flex-direction:row;align-items:stretch}.local-candidate-actions .button {width:auto;font-size:12px}
  .local-section-heading {display:block}.local-section-heading>span {display:block;margin:-7px 0 15px}
  .explorer-progress li {font-size:9px}.explorer-progress li:not(:last-child)::after {margin-inline:5px}
  .site-footer {margin-inline:16px}
}
@media screen and (prefers-reduced-motion:reduce) {
  *,*::before,*::after {scroll-behavior:auto!important;transition:none!important}
}
@media print {
  .header-identity,.deep-dive-jumps,.home-routes,.community-search {display:none!important}
  .local-election-about>*,.local-election-about .local-drawer-content {display:block!important}
  .local-profile-layout,.local-profile-content,.local-candidate-entry,.deep-dive-shell {display:block}
  .local-candidate-actions,.local-workspace-links {display:none!important}
  .deep-dive-issue {display:block}.local-profile-heading {position:static}
}

/* Export previews remain readable on small screens without replacing the guide. */
.download-preview {margin:20px 0}
.download-preview pre {white-space:pre-wrap;overflow-wrap:anywhere;max-height:35vh;overflow:auto;font:14px/1.6 ui-monospace,monospace;padding:16px;background:#f6f7f8;border:1px solid #dbe0e4;border-radius:4px}
#detail-dialog .actions {flex-wrap:wrap;gap:12px}
#detail-dialog .actions .button {white-space:normal;text-align:center}

.unavailable-source {text-align:left;white-space:normal;line-height:1.5}

/* Definition search is distinct from municipality and ward lookup. */
.glossary-search-row {display:flex;align-items:stretch;gap:10px;max-width:720px;margin:14px 0}
.glossary-search-row #glossary-search {flex:1;min-width:0;max-width:none;margin:0;font-size:16px}
.glossary-search-row .button {flex:none;white-space:nowrap}
.glossary-status {font-size:14px;color:var(--muted);margin:18px 0 8px}
.glossary-location-help {border-top:1px solid var(--line);margin-top:24px;padding-top:24px}
.glossary-location-help h3 {font-size:19px}.glossary-location-help p {font-size:15px}
@media screen and (max-width:480px) {.glossary-search-row {flex-direction:column}.glossary-search-row .button {width:100%}}

/* Candidate summaries come before research-method detail, especially on phones. */
.explorer-results-shell > .explorer-back { margin-bottom:8px; }
.explorer-results-heading h1 { margin-bottom:10px; }
.explorer-results-heading .explorer-intro { font-size:16px; line-height:1.55; margin-bottom:10px; }
.explorer-results-heading .explorer-result-tools { margin:12px 0; }
.explorer-results-shell > .explorer-result-count { margin:16px 0 4px; }
.explorer-results-list .explorer-candidate { padding-block:22px; }
.explorer-results-list .explorer-candidate-status { margin-bottom:14px; }
.explorer-results-list .explorer-statement-group { margin:16px 0; }
.explorer-results-list + .explorer-method { margin-top:24px; }
@media(max-width:760px) {
  .explorer-results-heading h1 { font-size:32px; }
  .explorer-results-list .explorer-candidate h2 { font-size:26px; }
}
