.election-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,1fr);gap:18px;align-items:start}.map-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.map-controls label{font-size:14px;color:var(--mut)}.map-controls button{grid-column:1/-1;justify-self:start}#map{width:100%;height:auto;margin:12px 0;display:block}.province{stroke:#0a1120;stroke-width:1;cursor:pointer;transition:fill .12s}.province:hover,.province:focus{stroke:#fff;stroke-width:2}.province.selected{stroke:#efc965;stroke-width:3}.election-grid .stats{grid-template-columns:1fr 1fr}.stat{background:#0b1424;padding:12px;border-radius:8px}.stat strong{font-size:clamp(20px,2.4vw,26px);overflow-wrap:anywhere}.section,.candidates{margin-top:18px}.national-toggle{display:flex;gap:10px;align-items:start;font-size:14px;color:var(--mut)}.national-toggle input{width:auto;margin-top:5px}.announcement{padding:15px 0;border-top:1px solid var(--line)}.announcement h3{margin:4px 0}.announcement p{font-size:14px}.announcement .meta{color:var(--mut)}.candidate-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}#nextStages{color:var(--mut)}#results{color:var(--gold)}.senate-islands{font-size:14px;padding-left:20px}.map-controls select{margin-top:5px}#loadError{max-width:1000px}
@media(max-width:980px){.election-grid{grid-template-columns:1fr}.candidate-grid{grid-template-columns:1fr}.election-grid aside{order:2}}@media(max-width:500px){main{padding:16px 12px}.card{padding:14px}.map-controls{grid-template-columns:1fr}header{gap:12px}nav{flex-wrap:wrap}.stat strong{font-size:21px}.filters{grid-template-columns:1fr}.election-grid .stats{gap:8px}.table-scroll table{min-width:430px}}

.sim-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;flex-wrap:wrap}.sim-controls{display:grid;grid-template-columns:1fr 1.3fr 1fr auto;gap:12px;align-items:end}.sim-controls label,.sim-add label{font-size:14px;color:var(--mut)}.sim-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.sim-slider{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,2fr) 90px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.sim-slider input[type=range]{padding:0;width:100%;accent-color:#efc965;cursor:pointer}.sim-slider label small{display:block;color:var(--mut);font-size:12px}.sim-slider input[type=number]{padding:7px}.sim-slider label{overflow-wrap:anywhere}.sim-meta{grid-column:1/-1;color:var(--mut);font-size:13px;margin-top:-5px}.sim-list-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px}.sim-dot{display:inline-block;width:13px;height:13px;border-radius:3px;flex-shrink:0}.sim-budget-bar{display:flex;height:15px;overflow:hidden;border-radius:7px;background:#060d19}.sim-budget-bar span{height:100%;min-width:0}.sim-add{display:grid;grid-template-columns:1fr 90px auto;gap:12px;align-items:end;margin:20px 0}.sim-add input[type=color]{padding:3px;height:43px}.sim-law{margin-top:20px}.sim-law summary{cursor:pointer;font-weight:700}.sim-law p{font-size:14px;color:var(--mut)}.sim-winners{display:flex;gap:10px;flex-wrap:wrap}.sim-winners span{border:1px solid var(--line);padding:8px;border-radius:8px}.sim-person-name{max-width:380px;font-size:14px}.sim-danger{color:#ffc9bc!important}.sim-mini{font-size:13px!important;padding:5px 8px!important}
@media(max-width:900px){.sim-controls{grid-template-columns:1fr 1fr}.sim-slider{grid-template-columns:minmax(130px,1fr) minmax(130px,1.3fr) 82px}.sim-add{grid-template-columns:1fr 70px}.sim-add button{grid-column:1/-1}}@media(max-width:560px){.sim-controls{grid-template-columns:1fr}.sim-slider{grid-template-columns:1fr 90px}.sim-slider label{grid-column:1/-1}.sim-slider input[type=range]{grid-column:1}.sim-slider input[type=number]{grid-column:2}.sim-actions .button{flex:1 1 150px}.sim-person-name{width:100%}}

.sim-list-title label{display:inline-flex;align-items:center;gap:8px;font-size:13px}.sim-list-title input[type=checkbox]{width:auto}.sim-list-title strong{overflow-wrap:anywhere}.sim-list-title .muted{font-size:12px}

/* Candidaturas oficiales 29-N, revisión 5/11/2026. */
.candidate-confirmed{color:#a9e6c0;border-color:#416654}.candidate-territory{color:var(--gold);font-size:12px!important;margin:8px 0 4px}.candidate-names{margin:12px 0;font-size:14px}.candidate-names summary{cursor:pointer;color:var(--gold)}.candidate-names li{margin:6px 0;overflow-wrap:anywhere}.candidate-names h4{margin:12px 0 4px}.candidate-substitutes{color:var(--mut);font-size:12px}.candidate-links{display:flex;gap:16px;flex-wrap:wrap;font-size:13px}.candidates .filters{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr)) auto}.candidates .announcement h3{overflow-wrap:anywhere}.sim-base{margin-top:7px}.sim-base label{font-size:11px;color:var(--mut);display:flex;align-items:center;gap:10px}.sim-base select{font-size:12px;padding:4px;min-width:0;flex:1}.sim-official-roster{font-size:10px;line-height:1.35;color:var(--mut);margin:4px 0 7px}.sim-official-person{font-size:10px;line-height:1.3;margin:2px 0;color:var(--mut)}.sim-list-title .sim-official-person{margin-left:35px}.sim-roster-link{font-size:10px}.sim-missing-names{font-size:11px;color:#ffd1a8}.sim-candidate-note{display:block;color:var(--mut);font-size:10px}.sim-national .sim-winners{max-height:180px;overflow:auto}.sim-national .sim-winners span{overflow-wrap:anywhere}
@media(max-width:1100px){.candidates .filters{grid-template-columns:repeat(2,minmax(0,1fr))}.candidates .filters label:first-child{grid-column:1/-1}}
@media(max-width:560px){.candidates .filters{grid-template-columns:1fr}.sim-base label{display:block}.sim-base select{width:100%;margin-top:3px}.sim-official-person{display:none}}
