@import url('election.css');
.place-reading { max-width: 1180px; margin: auto; }
.election-statistics { margin: 26px 0 32px; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: #fafcf9; }
.election-stat-highlights { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; margin: 20px 0; }
.election-stat-highlights span, .election-stat-highlights small { display: block; color: var(--muted); font-size: .73rem; }
.election-stat-highlights strong { display: block; margin: 7px 0; color: var(--green-dark); font-size: 1.8rem; font-variant-numeric: tabular-nums; }
.election-stat-note, .election-stat-sources { font-size: .75rem; color: var(--muted); line-height: 1.8; }
.election-stat-details { margin-top: 18px; font-size: .8rem; }
.election-stat-details summary { color: var(--green); cursor: pointer; padding: 8px 0; }
.election-stat-details dl > div { display: grid; grid-template-columns: minmax(120px,1fr) minmax(0,3fr); gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }
.election-stat-details dt { color: var(--muted); }
.election-stat-details dd { margin: 0; }
.election-stat-details dd p { color: var(--muted); font-size: .7rem; line-height: 1.7; margin-top: 3px; }
.election-stat-details .stat-unavailable strong { color: var(--muted); font-weight: 400; }
.election-stat-sources { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 12px; }
.election-stat-sources > a { display: inline-block; margin: 6px 18px 6px 0; color: var(--green); }
@media(max-width:600px) {
 .election-statistics { padding: 16px; }
 .election-stat-highlights { gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); }
 .election-stat-highlights strong { font-size: 1.25rem; }
 .election-stat-highlights span, .election-stat-highlights small { font-size: .62rem; }
 .election-stat-details dl > div { grid-template-columns: minmax(86px,1fr) minmax(0,2fr); }
}
.place-reading-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 24px; }
.place-kicker { color: var(--muted); font-size: .68rem; letter-spacing: 1px; }
.place-reading-heading h1 { font-size: 2rem; letter-spacing: -.6px; margin-top: 5px; }
.place-reading-heading nav { display: flex; gap: 16px; font-size: .8rem; color: var(--green); padding-bottom: 5px; }
.place-return-city { color: var(--green); font-size: .8rem; }
.place-election-heading-meta { display: flex; align-items: center; gap: 22px; }
.place-election-heading-meta time { display: flex; align-items: baseline; gap: 8px; color: var(--green-dark); }
.place-election-heading-meta time span { color: var(--muted); font-size: .72rem; }
.place-election-heading-meta time strong { font-size: 1.03rem; font-weight: 600; }
.place-reading-layout { display: grid; grid-template-columns: minmax(0, 1fr) 232px; grid-template-areas: 'election side' 'topics side' 'updates side'; gap: 30px 26px; align-items: start; }
.place-reading-layout > * { min-width: 0; }
.place-reading-layout.has-organizations { grid-template-areas: 'election side' 'organizations side' 'topics side' 'updates side'; }
.place-organization-section { grid-area: organizations; scroll-margin-top: 20px; }
.place-organization-links { display: flex; flex-wrap: wrap; gap: 8px; }
.place-organization-links a { max-width: 100%; overflow-wrap: anywhere; }
.city-election-brief { grid-area: election; border: 1px solid #e2e8df; border-radius: 12px; background: #f6f8f4; padding: 20px; }
.city-election-brief header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }
.city-election-brief h2 { font-size: 1.35rem; margin-top: 4px; }
.city-election-brief h2 span { color: var(--green); font-size: .85rem; }
.city-election-brief time { color: var(--green-dark); text-align: right; font-size: 1.1rem; }
.city-election-brief time span { display: block; color: var(--muted); font-size: .69rem; }
.city-election-brief > nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.city-election-brief > nav a { font-size: .82rem; padding: 4px 16px; border-right: 1px solid #dfe6dc; }
.city-election-brief > nav a:first-child { padding-left: 0; }
.city-election-brief > nav a:last-child { border: 0; padding-right: 0; }
.city-election-brief > nav strong { display: block; font-size: 1rem; margin-top: 6px; }
.city-election-brief > nav strong span { color: var(--green); font-size: .8rem; margin-left: 6px; }
.city-election-brief > nav small { display: block; font-size: .65rem; color: var(--muted); margin-top: 5px; }
.city-election-brief footer { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 18px; padding-top: 12px; border-top: 1px solid #dfe6dc; font-size: .72rem; color: var(--muted); }
.city-election-brief footer a { color: var(--green); }
.place-topic-section { grid-area: topics; scroll-margin-top: 20px; }
.place-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; }
.place-section-heading h2 { font-size: 1.15rem; }
.place-section-heading > span, .place-section-heading > a { color: var(--muted); font-size: .73rem; }
.place-section-heading > a { color: var(--green); }
.place-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.place-topic-card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 10px; padding: 13px; }
.place-topic-card h3 { font-size: .94rem; line-height: 1.55; }
.place-topic-card h3 a { display: block; position: relative; padding-right: 16px; }
.place-topic-card h3 span { color: var(--green); position: absolute; right: 0; top: 0; }
.place-topic-card p { font-size: .67rem; color: var(--muted); margin-top: 7px; }
.place-topic-card nav { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.place-topic-card nav a { color: var(--green); background: #edf5f0; border-radius: 5px; padding: 3px 6px; font-size: .65rem; }
.place-topic-card nav a:hover { background: #dceee3; }
.place-reading-side { grid-area: side; position: sticky; top: 24px; }
.place-person-search { border: 1px solid var(--line); border-radius: 11px; padding: 17px; background: #fafbf9; }
.place-person-search form { display: grid; gap: 8px; }
.place-person-search label { font-size: .72rem; color: var(--muted); }
.place-person-search input { width: 100%; min-width: 0; min-height: 39px; border: 1px solid #d8e0d5; border-radius: 6px; padding: 8px; font: inherit; font-size: .76rem; }
.place-person-search input:focus { outline: 2px solid #91b6a9; outline-offset: 1px; }
.place-person-search button { display: flex; justify-content: space-between; align-items: center; min-height: 40px; border: 0; border-radius: 6px; padding: 8px 12px; background: var(--green); color: #fff; font-size: .8rem; font-weight: 600; }
.place-all-people { display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--line); margin-top: 16px; padding-top: 12px; font-size: .76rem; }
.place-all-people span { color: var(--muted); font-size: .7rem; }
.place-side-links { display: grid; margin-top: 14px; }
.place-side-links a { padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--green); font-size: .76rem; }
.place-update-section { grid-area: updates; }
.place-updates article { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; border-top: 1px solid var(--line); padding: 17px 0; }
.place-update-photo img, .place-update-photo > span { display: block; width: 38px; height: 46px; object-fit: cover; object-position: center 25%; border-radius: 7px; }
.place-update-photo > span { display: grid; place-items: center; color: var(--green); background: var(--wash); font-size: .75rem; }
.place-update-meta { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 12px; font-size: .73rem; margin-bottom: 4px; color: var(--muted); }
.place-update-meta a { color: var(--green); font-weight: 600; }
.place-update-meta time { margin-left: auto; font-size: .69rem; font-variant-numeric: tabular-nums; }
.place-updates h3 { font-size: 1rem; line-height: 1.5; }
.place-updates p { font-size: .82rem; line-height: 1.8; color: #52645b; margin-top: 5px; }
.place-updates small { display: block; font-size: .68rem; color: var(--muted); line-height: 1.6; margin-top: 7px; }
.place-empty { color: var(--muted); font-size: .8rem; }
.election-reading-layout { grid-template-areas: 'offices side' 'timing side' 'topics side' 'context side'; }
.election-reading-layout.has-organizations { grid-template-areas: 'offices side' 'timing side' 'organizations side' 'topics side' 'context side'; }
.place-election-offices { grid-area: offices; scroll-margin-top: 20px; }
.place-office-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.place-office-card { border: 1px solid #e2e8df; background: #f6f8f4; border-radius: 11px; padding: 17px; }
.place-office-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.place-office-card h3 { font-size: 1.1rem; }
.place-office-card header > span { font-size: .75rem; color: var(--muted); white-space: nowrap; }
.place-office-roster { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 20px 0 12px; }
.place-office-roster strong { white-space: nowrap; font-size: .88rem; }
.place-office-roster strong span { color: var(--green); }
.place-roster-portraits { display: flex; padding-left: 5px; }
.place-roster-portraits img, .place-roster-portraits > span { width: 34px; height: 42px; object-fit: cover; object-position: center 25%; border-radius: 7px; border: 2px solid #f6f8f4; margin-left: -5px; }
.place-roster-portraits > span { display: grid; place-items: center; color: var(--green); background: #e0ece4; font-size: .55rem; }
.place-office-card > small { display: block; font-size: .65rem; color: var(--muted); line-height: 1.5; }
.place-election-timing { grid-area: timing; scroll-margin-top: 20px; }
.place-timing-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; padding: 0; }
.place-timing-list li { position: relative; padding-top: 18px; padding-right: 16px; border-top: 2px solid #dce7df; }
.place-timing-dot { position: absolute; left: 0; top: -5px; width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.place-timing-list h3 { font-size: .85rem; }
.place-timing-list p { font-size: .95rem; color: var(--green-dark); margin-top: 7px; }
.place-time-state { display: block; color: var(--muted); font-size: .68rem; margin-top: 7px; }
.place-section-nav { padding-left: 17px; border-left: 1px solid var(--line); display: grid; gap: 16px; }
.place-section-nav a { color: var(--green); font-size: .82rem; }
.place-election-context { grid-area: context; scroll-margin-top: 20px; border-top: 1px solid var(--line); padding-top: 22px; }
.place-election-context > p { font-size: .82rem; line-height: 1.8; color: #52645b; }
.place-source-line { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 12px; }
.place-source-line a { color: var(--green); font-size: .73rem; }
.place-area-note, .place-office-area { font-size: .68rem; color: var(--muted); line-height: 1.6; margin-top: 12px; }
.place-office-area { border-top: 1px solid #dfe6dc; padding-top: 9px; }
.bc-reading-layout { grid-template-areas: 'elections side' 'topics side' 'updates side'; }
.bc-election-section { grid-area: elections; }
.bc-province-brief { display: flex; justify-content: space-between; align-items: center; gap: 14px; background: #edf4ef; border: 1px solid #dce7df; border-radius: 11px; padding: 20px; margin-bottom: 25px; }
.bc-province-brief h2 { font-size: 1.35rem; margin-top: 3px; }
.bc-province-brief h2 span { font-size: .85rem; color: var(--green); }
.bc-province-brief p:not(.place-kicker) { font-size: .78rem; color: var(--muted); margin-top: 7px; }
.bc-province-brief time { font-size: 1.1rem; color: var(--green-dark); text-align: right; white-space: nowrap; }
.bc-province-brief time span { display: block; font-size: .68rem; color: var(--muted); }
.bc-city-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.bc-city-card { border: 1px solid var(--line); border-radius: 11px; padding: 18px; }
.bc-city-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 14px; }
.bc-city-card h3 { font-size: 1.2rem; }
.bc-city-card h3 span { color: var(--green); font-size: .8rem; }
.bc-city-card header > span { font-size: .65rem; color: var(--muted); }
.bc-city-card nav { display: grid; }
.bc-city-card nav > a { display: flex; justify-content: space-between; gap: 10px; padding: 11px 0; border-top: 1px solid var(--line); font-size: .8rem; }
.bc-city-card nav small { color: var(--muted); font-size: .68rem; margin-left: 7px; }
.bc-city-card nav strong { color: var(--green); font-weight: 500; font-size: .76rem; white-space: nowrap; }
.bc-city-card footer { display: flex; justify-content: space-between; gap: 10px; margin-top: 15px; color: var(--green); font-size: .72rem; }
.province-reading-layout { grid-template-areas: 'structure side' 'timing side' 'polling side' 'districts side' 'context side'; }
.province-polling { grid-area: polling; scroll-margin-top: 20px; }
.province-polling-chart { padding: 4px 0 12px; }
.polling-chart-row { display: grid; grid-template-columns: 54px minmax(0, 1fr) 58px; align-items: center; gap: 12px; margin: 14px 0; font-size: .85rem; }
.polling-chart-row strong { text-align: right; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.polling-chart-row meter { width: 100%; height: 15px; border: 0; border-radius: 4px; background: #edf1ef; }
.polling-chart-row meter::-webkit-meter-bar { border: 0; background: #edf1ef; border-radius: 4px; }
.polling-chart-row meter::-webkit-meter-optimum-value { border-radius: 4px; }
.polling-ndp meter::-webkit-meter-optimum-value { background: #dd7435; }
.polling-conservative meter::-webkit-meter-optimum-value { background: #4179ad; }
.polling-green meter::-webkit-meter-optimum-value { background: #4a8964; }
.polling-ndp meter::-moz-meter-bar { background: #dd7435; }
.polling-conservative meter::-moz-meter-bar { background: #4179ad; }
.polling-green meter::-moz-meter-bar { background: #4a8964; }
.province-polling-chart-note, .province-polling-details > summary { font-size: .72rem; line-height: 1.75; color: var(--muted); }
.province-polling-chart-note a { color: var(--green); }
.province-polling-details > summary { cursor: pointer; padding: 9px 0; }
.province-polling-intro, .province-polling-item > p { font-size: .82rem; line-height: 1.85; overflow-wrap: anywhere; }
.province-polling-intro { color: var(--muted); margin-bottom: 16px; }
.province-polling-item { border-top: 1px solid var(--line); padding: 17px 0; }
.province-polling-item h3 { font-size: 1rem; line-height: 1.6; margin: 5px 0 7px; }
.province-polling-item .province-polling-meta { color: var(--green); font-size: .72rem; }
.province-polling-item .province-polling-boundary { color: var(--muted); font-size: .76rem; margin-top: 8px; }
.province-election-brief { grid-area: structure; padding: 18px 20px; background: #edf4ef; border: 1px solid #dce7df; border-radius: 11px; }
.province-election-brief h2 { font-size: 1.3rem; }
.province-election-brief h2 span { color: #52665b; font-size: .9rem; font-weight: 500; }
.province-election-brief p { color: var(--muted); font-size: .8rem; margin-top: 7px; }
.province-election-brief > a { display: inline-block; color: var(--green); font-size: .75rem; margin-top: 10px; }
.province-district-section { grid-area: districts; scroll-margin-top: 20px; }
.province-roster-scope { font-size: .78rem; color: var(--muted); line-height: 1.7; margin-bottom: 16px; }
.province-district-filter { margin-bottom: 18px; }
.province-district-filter input { font: inherit; font-size: .8rem; }
.province-district-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.province-district-grid > a { border: 1px solid var(--line); padding: 12px; border-radius: 8px; min-width: 0; }
.province-district-grid strong { display: block; font-size: .82rem; line-height: 1.55; overflow-wrap: anywhere; }
.province-district-grid strong span { color: var(--green); }
.province-district-grid small { display: block; color: var(--muted); font-size: .67rem; margin-top: 7px; line-height: 1.6; }
.province-district-grid > a:hover, .place-topic-card:hover { border-color: #a5bcae; }
@media (max-width: 1190px) {
  .place-reading-layout { grid-template-columns: minmax(0, 1fr) 212px; gap: 26px 20px; }
  .place-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .place-office-card { padding: 13px; }
  .place-office-roster { flex-direction: column; align-items: start; gap: 10px; margin-top: 14px; }
}
@media (max-width: 1000px) {
  .place-reading-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'election' 'topics' 'side' 'updates'; }
  .election-reading-layout { grid-template-areas: 'offices' 'timing' 'topics' 'context' 'side'; }
  .place-reading-layout.has-organizations { grid-template-areas: 'election' 'organizations' 'topics' 'side' 'updates'; }
  .election-reading-layout.has-organizations { grid-template-areas: 'offices' 'timing' 'organizations' 'topics' 'context' 'side'; }
  .place-reading-side { position: static; }
  .place-reading-layout:not(.election-reading-layout) .place-reading-side { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
  .place-topic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .place-office-roster { flex-direction: row; align-items: center; }
  .place-section-nav { display: none; }
  .bc-reading-layout { grid-template-areas: 'elections' 'topics' 'side' 'updates'; }
  .province-reading-layout { grid-template-areas: 'structure' 'timing' 'polling' 'districts' 'context' 'side'; }
}
@media (max-width: 600px) {
  .place-reading-heading { align-items: start; flex-direction: column; gap: 8px; margin-bottom: 20px; }
  .place-reading-heading h1 { font-size: 1.7rem; }
  .place-reading-heading nav { font-size: .73rem; gap: 12px; }
  .place-election-heading-meta { justify-content: space-between; width: 100%; }
  .city-election-brief { padding: 16px; }
  .city-election-brief h2 { font-size: 1.12rem; }
  .city-election-brief time { font-size: .95rem; }
  .city-election-brief > nav a { padding: 4px 10px; font-size: .76rem; }
  .city-election-brief > nav strong { font-size: .9rem; }
  .place-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .place-topic-card { padding: 12px; }
  .place-topic-card h3 { font-size: .9rem; }
  .place-topic-card nav a { font-size: .68rem; padding: 4px 7px; }
  .place-reading-layout:not(.election-reading-layout) .place-reading-side { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .place-person-search input { font-size: .875rem; min-height: 42px; }
  .place-update-meta time { margin-left: 0; }
  .place-office-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .place-office-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; padding: 13px 15px; }
  .place-office-card header { grid-column: 1; flex-direction: column; gap: 3px; }
  .place-office-roster { grid-column: 2; grid-row: 1 / span 2; flex-direction: row; gap: 10px; margin: 0; }
  .place-office-card > small { grid-column: 1; margin-top: 5px; }
  .place-office-area { grid-column: 1 / -1; }
  .bc-city-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .bc-province-brief { padding: 16px; }
  .province-election-brief { padding: 16px; }
  .province-election-brief h2 span { display: block; margin-top: 3px; }
  .province-district-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .province-district-grid > a { padding: 11px; }
  .place-timing-list { grid-template-columns: minmax(0, 1fr); }
  .place-timing-list li { border-top: 0; border-left: 2px solid #dce7df; padding: 0 0 22px 19px; }
  .place-timing-dot { left: -5px; top: 6px; }
  .place-timing-list li:last-child { padding-bottom: 0; }
  .place-timing-list li > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; }
  .place-timing-list h3 { grid-column: 1; }
  .place-timing-list p { grid-column: 1; margin-top: 2px; font-size: .9rem; }
  .place-time-state { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin: 0; }
}

.city-election-brief > nav.place-cycle-links { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--line); margin-top: 16px; padding-top: 12px; }
.city-election-brief > nav.place-cycle-links a { padding: 6px 0; border: 0; font-size: .75rem; color: var(--green); }

/* The city remains a public-affairs entry after its election ends. */
.city-home-intro { color: var(--muted); font-size: .84rem; margin-top: 7px; }
.city-home-layout { grid-template-areas: 'election election' 'affairs side' 'updates side' 'elected side' 'topics side'; }
.city-result-brief { grid-area: election; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; background: #f6f8f4; border: 1px solid #e2e8df; border-radius: 12px; }
.city-result-brief h2 { font-size: 1.12rem; margin: 5px 0; }
.city-result-brief h2 span, .city-result-archive { color: var(--green); }
.city-result-brief p:not(.place-kicker) { color: var(--muted); font-size: .75rem; }
.city-result-stat strong, .city-result-stat span { display: block; }
.city-result-stat strong { color: var(--green-dark); font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.city-result-stat span { color: var(--muted); font-size: .7rem; margin-top: 4px; }
.city-result-archive { font-size: .8rem; }
.city-affairs-section { grid-area: affairs; }
.city-affairs-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.city-affairs-links > a { display: block; border: 1px solid var(--line); border-radius: 10px; padding: 18px; }
.city-affairs-links h3 { font-size: 1rem; }
.city-affairs-links h3 span { color: var(--green); }
.city-affairs-links p { font-size: .75rem; color: var(--muted); line-height: 1.8; margin-top: 8px; }
.city-home-note { font-size: .73rem; line-height: 1.8; color: var(--muted); margin: 6px 0 14px; }
.city-home-updates article { border-top: 1px solid var(--line); padding: 17px 0; }
.city-home-updates h3 { font-size: 1rem; line-height: 1.6; }
.city-home-updates p { font-size: .82rem; line-height: 1.8; color: #52645b; margin-top: 6px; }
.city-home-updates small { display: block; font-size: .68rem; line-height: 1.7; color: var(--muted); margin-top: 6px; }
.city-elected-section { grid-area: elected; }
.city-elected-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.city-elected-grid article { border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.city-elected-grid header { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.city-elected-grid h3 { font-size: 1rem; margin-bottom: 6px; }
.city-elected-grid header a { color: var(--green); font-size: .72rem; }
.city-elected-grid ul { list-style: none; margin: 0; padding: 0; }
.city-elected-grid li { display: grid; gap: 3px; margin-top: 14px; font-size: .8rem; overflow-wrap: anywhere; }
.city-elected-grid .city-result-evidence { font-size: .65rem; color: var(--muted); }
.city-roster-link { display: block; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--green); font-size: .7rem; }
@media (max-width:900px) {
 .city-home-layout { grid-template-areas: 'election' 'affairs' 'updates' 'elected' 'topics' 'side'; }
}
@media (max-width:600px) {
 .city-result-brief { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 16px; gap: 14px 10px; }
 .city-result-brief > div { grid-column: 1 / -1; }
 .city-result-stat strong { font-size: 1.3rem; }
 .city-result-archive { font-size: .75rem; }
 .city-affairs-links { gap: 10px; }
 .city-affairs-links > a { padding: 13px; }
 .city-affairs-links h3 { font-size: .92rem; }
 .city-elected-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
 .city-elected-grid ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 14px; }
 .city-home-layout .place-section-heading { flex-wrap: wrap; }
}
.polling-input-scroll { overflow-x: auto; }
.polling-input-table { border-collapse: collapse; width: 100%; font-size: .8rem; }
.polling-input-table caption { text-align: left; font-weight: 600; margin: .75rem 0; }
.polling-input-table th, .polling-input-table td { padding: .55rem .35rem; border-bottom: 1px solid var(--line, #ddd); text-align: right; white-space: nowrap; }
.polling-input-table th:first-child { text-align: left; white-space: normal; min-width: 120px; }
.polling-input-table small { display: block; font-weight: 400; color: var(--muted, #666); }
