.councilor-page{--bg:#0d0d0d;--panel:#18130f;--panel2:#241d17;--line:#c9c0b3;--text:#171310;--muted:#71695f;--red:#E4022B;--yellow:#d7b24a;background:#0d0d0d}
.councilor-page .local-layout{grid-template-columns:minmax(0,1fr) minmax(500px,1fr);background:#e9e2d6}
body.councilor-page .local-result{min-width:0;background:#eee9df;color:#171310}
.councilor-page .local-map-panel{align-self:start;background:#e9e2d6;border-color:#c9c0b3}.councilor-page .local-map-title small{color:#c6002e}.councilor-page .local-map-title strong{color:#171310}.councilor-page .local-map-status{color:#665f56}.councilor-page .local-map-status b{color:#26211c}
.councilor-page .local-county{stroke:#f7f1e8;stroke-width:1.2}.councilor-page .local-county:hover,.councilor-page .local-county.selected{stroke:#E4022B;filter:brightness(1.04)}
.councilor-page .local-result-head{border-color:#c9c0b3}.councilor-page .local-result-head h2,.councilor-page .local-head-stat strong{color:#171310}.councilor-page .local-result-head .term{color:#c6002e}.councilor-page .local-head-stat span,.councilor-page .local-section-label{color:#71695f}
.councilor-page .local-state-path .local-chip.type:before{background:#E4022B}
.councilor-page .local-seat-card{border-color:#c8beaf;background:#ded6ca;color:#171310}.councilor-page .local-seat-card small{color:#6d655b}.councilor-page .local-overview-note{border-color:#c3b7a6;background:#e2d9cb;color:#5e564d}
.councilor-page .local-empty{border-color:#bcb1a2;background:#e6dfd4;color:#655d53}.councilor-page .local-empty strong{color:#211c18}
.councilor-page .local-source{border-color:#c9c0b3;color:#71695f}.councilor-page .local-source a{color:#312b25}
.councilor-result-disclosure{margin-top:24px;border-top:1px solid #c9c0b3;border-bottom:1px solid #c9c0b3}
.councilor-result-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;cursor:pointer;list-style:none}.councilor-result-disclosure>summary::-webkit-details-marker{display:none}
.councilor-result-disclosure>summary .local-section-label{margin:0}.councilor-disclosure-action{display:inline-flex;align-items:center;gap:7px;color:#71695f;font-size:10px;font-weight:900}.councilor-disclosure-action:before{content:'收起概覽'}.councilor-disclosure-action:after{content:'−';display:grid;place-items:center;width:25px;height:25px;border:1px solid #a99e90;border-radius:50%;color:#312b25;font:900 15px Archivo,sans-serif}.councilor-result-disclosure:not([open]) .councilor-disclosure-action:before{content:'展開概覽'}.councilor-result-disclosure:not([open]) .councilor-disclosure-action:after{content:'＋'}
.councilor-overview-content{padding:0 0 18px}.councilor-area-section{margin-top:24px}.councilor-area-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:12px}.councilor-area-toolbar>.local-section-label{margin:0}
.councilor-area-picker{display:grid;grid-template-columns:auto minmax(150px,210px);align-items:center;gap:9px}.councilor-area-picker>span{color:#71695f;font-size:9px;font-weight:900;letter-spacing:.08em}.councilor-area-picker select{height:40px;appearance:none;border:1px solid #b5aa9b;border-radius:9px;background:#e3dbcf url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171310' stroke-width='2.4'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e") no-repeat right 10px center/14px;padding:0 34px 0 11px;color:#171310;font-size:12px;font-weight:900;cursor:pointer}.councilor-area-picker select:focus-visible{outline:2px solid #E4022B;outline-offset:2px}
.councilor-area-results{display:grid;gap:18px}
.councilor-area{display:grid;gap:10px}
.councilor-area>header{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:14px 0 10px;border-bottom:1px solid #c9c0b3}
.councilor-area>header small{color:#9e1730;font:800 10px Archivo,sans-serif;letter-spacing:.14em}
.councilor-area>header h3{margin:5px 0 0;font-size:21px}
.councilor-area>header>div:last-child{text-align:right}.councilor-area>header>div:last-child strong{display:block;color:#171310;font:900 26px Archivo,sans-serif}.councilor-area>header>div:last-child span{color:#71695f;font-size:10px}
.councilor-district{overflow:hidden;border:1px solid #4a4037;border-radius:13px;background:#1b1612;color:#f4f1ea;box-shadow:0 8px 24px rgba(80,58,39,.08)}
.councilor-district>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;padding:11px 14px;cursor:pointer;list-style:none}.councilor-district>summary::-webkit-details-marker{display:none}
.councilor-district>summary:after{content:'＋';color:#8e877e;font:900 16px Archivo;order:4}.councilor-district[open]>summary:after{content:'−'}
.councilor-district>summary span{display:grid;gap:4px}.councilor-district>summary span:nth-child(2){margin-left:auto;text-align:right}.councilor-district>summary b{font-size:15px}.councilor-district>summary small{color:#a69d94;font-size:10px}.councilor-district>summary:hover{background:#282019}
.councilor-district>summary em{color:#c5b9ad;font-size:10px;font-style:normal;font-weight:900;white-space:nowrap}.councilor-district[open]>summary em{display:none}
.councilor-candidate-head,.councilor-candidate{display:grid;grid-template-columns:minmax(145px,1.25fr) minmax(120px,1fr) 90px 62px;align-items:center;gap:8px}
.councilor-candidate-head{padding:8px 14px;border-top:1px solid #302b27;border-bottom:1px solid #302b27;color:#716a62;font-size:8px;font-weight:900}.councilor-candidate-head span:nth-child(3),.councilor-candidate-head span:nth-child(4){text-align:right}
.councilor-candidate{position:relative;min-height:78px;padding:16px 18px;border-bottom:1px solid #40362e;font-size:12px}.councilor-candidate:last-child{border-bottom:0}.councilor-candidate.elected{background:#f4f1ea;color:#171411}
.councilor-identity{display:flex;align-items:center;min-width:0}.councilor-number{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;margin-right:11px;border:1px solid #6b6056;border-radius:50%;font:900 12px Archivo,sans-serif;vertical-align:middle}.councilor-candidate.elected .councilor-number{border-color:#aaa096}
.councilor-name{font-size:18px;font-weight:900;white-space:nowrap}.councilor-name small{margin-left:7px;padding:3px 5px;border:1px solid currentColor;border-radius:4px;color:#aaa097;font-size:9px}.councilor-candidate.elected .councilor-name small{color:#655e56}
.councilor-party{display:flex;align-items:center;gap:9px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.councilor-party .party-badge{border-radius:5px}.councilor-page .party-badge img{display:block;width:100%;height:100%;object-fit:contain;padding:14%;box-sizing:border-box}
.councilor-candidate>strong{text-align:right;font:900 17px Archivo,sans-serif}.councilor-candidate>strong small{display:block;margin-top:3px;color:#9d9389;font-size:10px}.councilor-candidate.elected>strong small{color:#655e56}
.councilor-status{display:grid;place-items:center;min-height:56px;text-align:right;color:#E4022B;font-size:9px;font-weight:900}.councilor-status .local-elected-stamp{position:static;width:56px;height:56px;transform:rotate(-10deg);filter:drop-shadow(0 3px 6px rgba(228,2,43,.2));pointer-events:none}
.councilor-compare-maps{display:none;position:absolute;inset:76px 24px 84px;grid-template-columns:1fr 1fr;gap:18px}.councilor-page.compare-map-active #local-map{display:none}.councilor-page.compare-map-active .councilor-compare-maps{display:grid}.councilor-compare-maps>section{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid #c8beaf;background:#f3ede3}.councilor-compare-maps>section+section{box-shadow:-10px 0 24px rgba(92,70,48,.06)}.councilor-compare-maps header{display:flex;align-items:end;justify-content:space-between;padding:13px 15px 8px;border-bottom:1px solid #d4cbbb}.councilor-compare-maps header span{padding:4px 8px;background:#dac678;color:#171310;font:900 clamp(20px,2.4vw,34px)/1 Archivo,sans-serif}.councilor-compare-maps header small{color:#766e63;font-size:9px;font-weight:900;letter-spacing:.12em}.councilor-compare-maps svg{display:block;width:100%;height:100%;min-height:0}.councilor-compare-maps .local-county{stroke:#f7f1e8;stroke-width:1.3}
.councilor-compare-chart{display:grid;gap:12px;margin-top:14px;padding:16px;border:1px solid #c4b9aa;background:#e2d9cc;color:#171310}.councilor-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.councilor-chart-head strong{font-size:13px}.councilor-chart-key{display:flex;gap:10px;color:#6f665c;font-size:9px;font-weight:800}.councilor-chart-key span{display:flex;align-items:center;gap:5px}.councilor-chart-key i{width:9px;height:9px}.councilor-chart-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:center}.councilor-chart-row>span{font-size:10px;font-weight:900}.councilor-chart-bars{display:grid;gap:5px}.councilor-chart-bar{display:grid;grid-template-columns:36px minmax(0,1fr) 58px;gap:7px;align-items:center;color:#71685e;font:800 9px Archivo,sans-serif}.councilor-chart-bar em{font-style:normal}.councilor-chart-track{height:8px;background:#c9bfb0;overflow:hidden}.councilor-chart-track i{display:block;height:100%;min-width:2px}.councilor-chart-bar b{text-align:right;color:#28221d;font-size:10px}.local-flips-label{flex-basis:100%;color:#71695f;font-size:9px;font-weight:900;letter-spacing:.08em}.councilor-page .local-compare-stat{border-color:#c3b8a8;background:#ddd4c7;color:#171310}.councilor-page .local-compare-stat span{color:#71695f}.councilor-page .local-legend span{color:#5f574e}.councilor-page .local-flip-chip{border-color:#aa9d8b;background:#e3dbcf;color:#3d352e}.councilor-page .local-compare-detail{border-color:#c3b8a8;background:#ded5c8;color:#5c544b}.councilor-page .local-compare-detail h3,.councilor-page .local-compare-detail strong{color:#171310}.councilor-page .councilor-compare-grid>div{border-color:#c2b7a7;background:#e9e2d7}.councilor-page .councilor-compare-grid span,.councilor-page .councilor-compare-grid small{color:#71695f}.councilor-page .local-compare-detail p{color:#5c544b}
.councilor-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.councilor-compare-grid>div{display:grid;gap:5px;padding:12px;border:1px solid #39332e;border-radius:10px;background:#171411}.councilor-compare-grid span,.councilor-compare-grid small{color:#817a72;font-size:9px}.councilor-compare-grid b{font-size:13px}.councilor-page .local-compare-detail p{margin:12px 0 0;color:#aaa299;font-size:10px;line-height:1.7}
@media(max-width:980px){.councilor-page .local-layout{display:block}body.councilor-page .local-result{min-height:0}}
@media(max-width:660px){
  .councilor-result-disclosure{border-color:#cbc5ba}.councilor-disclosure-action,.councilor-area-picker>span{color:#6f685f}.councilor-disclosure-action:after{border-color:#aaa297;color:#403a34}.councilor-area-toolbar{display:grid;gap:10px}.councilor-area-picker{grid-template-columns:auto minmax(0,1fr)}.councilor-area-picker select{height:42px;border-color:#bdb5a8;background-color:#e6e1d7;color:#171310}.councilor-candidate-head{display:none}.councilor-candidate{grid-template-columns:minmax(0,1fr) 78px 58px;padding:12px}.councilor-name{font-size:16px}.councilor-identity{grid-column:1;grid-row:1}.councilor-party{grid-column:1;grid-row:2;padding-left:32px;color:#817a72;font-size:10px}.councilor-candidate>strong{grid-column:2;grid-row:1/3;font-size:15px}.councilor-status{grid-column:3;grid-row:1/3}.councilor-status .local-elected-stamp{width:54px;height:54px}.councilor-district>summary{padding:10px 11px}.councilor-district>summary span:nth-child(2){display:none}.councilor-district>summary em{margin-left:auto}.councilor-area>header h3{font-size:16px}.councilor-page.compare-map-active .local-map-panel{min-height:520px}.councilor-compare-maps{inset:68px 8px 70px;gap:7px}.councilor-compare-maps header{padding:8px}.councilor-compare-maps header span{font-size:17px}.councilor-compare-maps header small{font-size:7px}.councilor-page.compare-map-active .local-mobile-insets{display:none}.councilor-compare-grid{grid-template-columns:1fr}.councilor-chart-row{grid-template-columns:72px minmax(0,1fr)}.councilor-chart-bar{grid-template-columns:30px minmax(0,1fr) 52px}
}
