/* Shared political interface for the normal app and the Beta channel. */
body[data-graficos-beta="3"] .government-chamber-layout { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(300px,1.2fr); gap:28px; align-items:start; }
body[data-graficos-beta="3"] .government-chamber-scene { min-width:0; }
body[data-graficos-beta="3"] .government-chamber-scene .beta-hemicycle { max-width:350px; }
body[data-graficos-beta="3"] .government-chamber-scene .beta-majority-note { display:none; }
body[data-graficos-beta="3"] .government-chamber-panel { padding:22px 24px; }
body[data-graficos-beta="3"] .government-chamber-panel>.panel-head { margin-bottom:16px; }
body[data-graficos-beta="3"] .chamber-majority { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:14px; }
body[data-graficos-beta="3"] .chamber-majority>div { display:flex; flex-direction:column; gap:6px; border-top:1px solid var(--beta-border); padding-top:10px; }
body[data-graficos-beta="3"] .chamber-majority span { font-size:10px; color:var(--beta-muted); line-height:1.5; }
body[data-graficos-beta="3"] .chamber-majority strong { font-size:16px; line-height:1.2; color:var(--beta-ink); }
body[data-graficos-beta="3"] .government-chamber-parties { min-width:0; }
body[data-graficos-beta="3"] .chamber-list-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:9px; border-bottom:1px solid var(--beta-border); font-size:12px; }
body[data-graficos-beta="3"] .chamber-list-heading>span { color:var(--beta-muted); font-size:10px; }
body[data-graficos-beta="3"] .chamber-party { display:grid; grid-template-columns:minmax(0,1fr) 130px; gap:4px 12px; padding:6px 0; border-bottom:1px solid var(--beta-border); line-height:1.25; }
body[data-graficos-beta="3"] .chamber-party>div { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:14px; font-size:12px; }
body[data-graficos-beta="3"] .chamber-party>div strong { font-variant-numeric:tabular-nums; font-size:14px; }
body[data-graficos-beta="3"] .chamber-party small { text-align:right; font-size:10px; color:var(--beta-muted); line-height:1.25; white-space:nowrap; }
body[data-graficos-beta="3"] .chamber-party-track { height:5px; background:var(--beta-track); border-radius:4px; overflow:hidden; align-self:center; }
body[data-graficos-beta="3"] .chamber-party-track i { display:block; width:var(--seat-share); height:100%; background:var(--party-color); border-radius:4px; }
body[data-graficos-beta="3"] .politics-modern { --politics-gap:20px; }
body[data-graficos-beta="3"] .politics-modern .view-stack { gap:var(--politics-gap); }
body[data-graficos-beta="3"] .politics-modern .view-head { align-items:center; gap:18px; }
body[data-graficos-beta="3"] .politics-modern .view-head p { max-width:750px; line-height:1.65; }
body[data-graficos-beta="3"] .politics-modern :is(.view-kicker,.panel-kicker) { font-size:10px; font-weight:650; letter-spacing:.1em; color:var(--beta-accent); }
body[data-graficos-beta="3"] .politics-modern .metric-grid { gap:14px; }
body[data-graficos-beta="3"] .politics-modern .metric-card { border:1px solid var(--beta-border); border-radius:16px; padding:18px 20px; box-shadow:none; min-height:0; }
body[data-graficos-beta="3"] .politics-modern .metric-card strong { font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
body[data-graficos-beta="3"] .politics-modern .toolbar-card { border:1px solid var(--beta-border); background:var(--beta-surface); padding:16px 20px; box-shadow:none; }
body[data-graficos-beta="3"] .politics-modern .toolbar-fields { gap:16px; align-items:end; }
body[data-graficos-beta="3"] .politics-modern .field>span { font-size:11px; color:var(--beta-muted); margin-bottom:7px; }
body[data-graficos-beta="3"] .politics-modern .panel { padding:22px; border:1px solid var(--beta-border); }
body[data-graficos-beta="3"] .politics-modern .panel-head { gap:16px; margin-bottom:19px; align-items:start; }
body[data-graficos-beta="3"] .politics-modern .panel-head h3 { font-size:17px; }
body[data-graficos-beta="3"] .politics-modern :is(.data-table,.compact-list) { font-size:12px; font-variant-numeric:tabular-nums; }
body[data-graficos-beta="3"] .politics-modern .data-table th { color:var(--beta-muted); font-size:10px; font-weight:650; text-transform:none; background:transparent; border-bottom:1px solid var(--beta-border); padding:11px 10px; }
body[data-graficos-beta="3"] .politics-modern .data-table td { border-bottom:1px solid var(--beta-border); padding:12px 10px; }
body[data-graficos-beta="3"] .politics-modern .data-table tbody tr:hover { background:color-mix(in srgb,var(--beta-accent) 4%,var(--beta-surface)); }
body[data-graficos-beta="3"] .politics-modern .data-table tr[hidden] { display:none; }
.politics-table-tools { display:flex; align-items:center; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.politics-table-tools>label { display:flex; gap:8px; align-items:center; flex:1; min-width:160px; }
.politics-table-tools label>span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body[data-graficos-beta="3"] .politics-table-tools input { width:min(100%,260px); min-height:38px; padding:8px 12px; font-size:12px; }
.politics-table-tools output { font-size:11px; color:var(--beta-muted); font-variant-numeric:tabular-nums; }
.politics-table-tools>button { border:0; background:transparent; color:var(--beta-accent); padding:7px; font:inherit; font-size:11px; cursor:pointer; }
.politics-table-tools>button:disabled { opacity:.4; cursor:default; }
body[data-graficos-beta="3"] .politics-modern :is(.primary-record-grid,.age-card-grid,.ministry-grid) { gap:12px; }
body[data-graficos-beta="3"] .politics-modern :is(.primary-record-card,.age-card,.ministry-card) { border:1px solid var(--beta-border); background:var(--beta-surface); border-radius:14px; padding:16px; box-shadow:none; }
body[data-graficos-beta="3"] .politics-modern .ministry-card { min-height:110px; }
body[data-graficos-beta="3"] .politics-modern .ministry-card>i { width:24px; height:4px; border-radius:4px; background:var(--party-color); }
body[data-graficos-beta="3"] .politics-modern .ministry-card strong { font-size:16px; letter-spacing:-.025em; }
body[data-graficos-beta="3"] .politics-modern .party-profile-hero { padding:25px; border:1px solid var(--beta-border); border-radius:20px; background:var(--beta-surface); box-shadow:none; }
body[data-graficos-beta="3"] .politics-modern .party-profile-mark { border-radius:18px; box-shadow:none; }
body[data-graficos-beta="3"] .politics-modern .primary-bar { height:9px; border-radius:4px; overflow:hidden; background:var(--beta-track); }
body[data-graficos-beta="3"] .politics-modern .primary-results { gap:14px; }
body[data-graficos-beta="3"] .politics-modern .primary-candidate-copy strong { font-size:13px; }
body[data-graficos-beta="3"] .politics-modern :is(.government-hero,.archive-header-card) { padding:22px 25px; background:var(--beta-surface); border:1px solid var(--beta-border); border-radius:20px; }
body[data-graficos-beta="3"] .politics-modern .government-hero h3 { font-size:24px; letter-spacing:-.04em; }
body[data-graficos-beta="3"] .politics-modern :is(.management-tabs,.history-toolbar) { border-radius:14px; gap:8px; }
body[data-graficos-beta="3"] .politics-modern .management-tabs button { border-radius:9px; font-size:12px; }
body[data-graficos-beta="3"] .politics-modern :is(.summary-stat,.indicator-card) { background:var(--beta-surface); border:1px solid var(--beta-border); border-radius:14px; padding:16px; }
body[data-graficos-beta="3"] .politics-modern .archive-day { border-radius:18px; border:1px solid var(--beta-border); background:var(--beta-surface); padding:20px; }
body[data-graficos-beta="3"] .politics-modern .pactometer-party { border:1px solid var(--beta-border); border-radius:12px; padding:12px 14px; box-shadow:none; }
body[data-graficos-beta="3"] .politics-modern .pactometer-party.is-selected { border-color:var(--party-color,var(--beta-accent)); background:color-mix(in srgb,var(--beta-accent) 6%,var(--beta-surface)); }
.beta-block-groups { grid-template-columns:repeat(4,minmax(0,1fr)); }
.beta-block-totals { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:18px; }
.beta-block-totals>div { display:grid; grid-template-columns:8px 1fr auto; gap:7px; align-items:center; border-top:1px solid var(--beta-border); padding-top:12px; font-size:11px; }
.beta-block-totals i { width:8px; height:8px; border-radius:50%; background:var(--party); }
.beta-block-totals strong { font-size:15px; font-variant-numeric:tabular-nums; }
.politics-region-explorer { margin:20px 0; }
.beta-map-layout { grid-template-columns:minmax(290px,.8fr) minmax(250px,1fr); align-items:start; gap:24px; }
.beta-map-viewport { min-height:0; max-height:520px; border-radius:16px; background:var(--beta-surface); border:1px solid var(--beta-border); overflow:auto; }
.beta-map-canvas { margin:auto; max-width:none; }
.politics-region-svg { display:block; width:100%; overflow:visible; }
.politics-map-region { stroke:var(--beta-surface); stroke-width:2; stroke-linejoin:round; vector-effect:non-scaling-stroke; cursor:pointer; transition:filter .12s; }
.politics-map-region:hover,.politics-map-region:focus { filter:brightness(1.1); stroke:var(--beta-ink); outline:none; }
.politics-map-region.is-selected { stroke:var(--beta-ink); stroke-width:3; }
.politics-map-region.is-missing { stroke:var(--beta-muted); stroke-width:1; stroke-dasharray:3 3; }
.politics-map-region-label { font:650 24px system-ui,sans-serif; text-anchor:middle; fill:white; stroke:#17202d99; paint-order:stroke; stroke-width:2px; pointer-events:none; }
.politics-map-city { cursor:pointer; }
.politics-map-city circle { stroke:white; stroke-width:2; vector-effect:non-scaling-stroke; }
.politics-map-city:hover circle,.politics-map-city:focus circle,.politics-map-city.is-selected circle { stroke:var(--beta-ink); stroke-width:3; }
.politics-map-city text { font:600 19px system-ui,sans-serif; fill:var(--beta-ink); paint-order:stroke; stroke:var(--beta-surface); stroke-width:4px; pointer-events:none; }
.politics-map-city:focus { outline:none; }
.politics-map-scope { display:block; font-size:10px; color:var(--beta-muted); margin:0 0 12px; }
.politics-region-list { margin-top:18px; }
.politics-region-list button { display:flex; align-items:center; gap:8px; padding:10px 4px; border:0; border-bottom:1px solid var(--beta-border); background:transparent; color:var(--beta-ink); width:100%; text-align:left; font:inherit; font-size:11px; cursor:pointer; }
.politics-region-list button>i { background:var(--party); width:8px; height:8px; border-radius:50%; flex:none; }
.politics-region-list button>span:last-child { margin-left:auto; color:var(--beta-muted); text-align:right; font-size:10px; }
.politics-region-list button:hover,.politics-region-list button.is-selected { background:var(--beta-track); border-radius:7px; }
.politics-city-list { margin-top:16px; font-size:12px; }
.politics-city-list summary { cursor:pointer; color:var(--beta-muted); }
.politics-city-list .beta-map-city-list { margin-top:5px; }
.politics-map-legend { display:flex; gap:6px; align-items:center; margin-top:15px; font-size:10px; color:var(--beta-muted); }
.politics-map-legend i { display:inline-block; width:10px; height:10px; border:1px dashed var(--beta-muted); background:var(--beta-track); border-radius:2px; }
body[data-graficos-beta="3"] [hidden] { display:none!important; }
body[data-graficos-beta="3"][data-beta-density="compact"] .politics-modern :is(.panel,.metric-card,.toolbar-card) { padding:16px; }
@media(min-width:1200px) {
  body[data-graficos-beta="3"] .chamber-party { grid-template-columns:minmax(100px,1fr) minmax(55px,1.2fr) 30px 110px; align-items:center; gap:10px; padding:10px 0; }
  body[data-graficos-beta="3"] .chamber-party>div { display:contents; }
  body[data-graficos-beta="3"] .chamber-party>div>span { grid-column:1; grid-row:1; font-size:11px; }
  body[data-graficos-beta="3"] .chamber-party>div>strong { grid-column:3; grid-row:1; text-align:right; }
  body[data-graficos-beta="3"] .chamber-party-track { grid-column:2; grid-row:1; }
  body[data-graficos-beta="3"] .chamber-party small { grid-column:4; grid-row:1; }
}
@media(max-width:1150px) { .beta-block-groups { grid-template-columns:1fr 1fr; } }
@media(max-width:850px) {
  body[data-graficos-beta="3"] .government-chamber-layout { grid-template-columns:1fr; gap:20px; }
  body[data-graficos-beta="3"] .government-chamber-panel { padding:18px; }
  body[data-graficos-beta="3"] .government-chamber-scene .beta-hemicycle { max-width:320px; }
  .beta-map-layout { grid-template-columns:1fr; }
  .politics-region-svg { max-height:none; }
  .beta-block-totals { grid-template-columns:1fr 1fr; }
}
@media(max-width:520px) {
  body[data-graficos-beta="3"] .politics-modern :is(.panel,.metric-card,.toolbar-card,.party-profile-hero) { padding:16px; }
  body[data-graficos-beta="3"] .government-chamber-layout { gap:16px; }
  body[data-graficos-beta="3"] .chamber-majority { gap:8px; }
  .beta-block-groups { grid-template-columns:1fr; }
  .politics-table-tools { gap:8px; }
  .politics-table-tools>label { flex-basis:100%; }
}
/* Political controls belong to the management page, independently of account settings. */
body[data-graficos-beta="3"] .politics-management-editor { display:grid; gap:20px; min-width:0; }
body[data-graficos-beta="3"] .politics-management-editor > section { background:var(--beta-surface); border:1px solid var(--beta-border); border-radius:20px; padding:24px; min-width:0; }
body[data-graficos-beta="3"] .politics-management-editor > section > h3 { margin:0 0 12px; }
body[data-graficos-beta="3"] .politics-management-editor > section > p { color:var(--beta-muted); line-height:1.6; margin:0 0 20px; }
body[data-graficos-beta="3"] .politics-management-editor .beta-settings-parties { max-height:none; overflow:visible; }
body[data-graficos-beta="3"] .politics-management-editor .beta-setting-party { grid-template-columns:minmax(160px,1fr) minmax(140px,1fr) minmax(120px,.6fr); }
body[data-graficos-beta="3"] .politics-management-editor .field { margin-bottom:16px; }
body[data-graficos-beta="3"] .politics-management-editor .politics-editor-context { font-weight:700; color:var(--text); }
body[data-graficos-beta="3"] .politics-management-editor .feedback { margin:16px 0 0; }
body[data-graficos-beta="3"] .management-tabs { flex-wrap:wrap; overflow:visible; }
@media(max-width:700px) {
  body[data-graficos-beta="3"] .politics-management-editor > section { padding:18px; }
  body[data-graficos-beta="3"] .politics-management-editor .beta-setting-party { grid-template-columns:minmax(0,1fr) minmax(110px,1fr); }
  body[data-graficos-beta="3"] .politics-management-editor .beta-setting-party > b { grid-column:1 / -1; }
  body[data-graficos-beta="3"] .politics-management-editor .form-grid.cols-3 { grid-template-columns:minmax(0,1fr); }
  body[data-graficos-beta="3"] .politics-management-editor .button-row { flex-wrap:wrap; }
}
.regional-result-facts {display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;}
.regional-result-facts>div {background:var(--beta-track);padding:10px;border-radius:12px;display:grid;gap:5px;}
.regional-result-facts>div:first-child {grid-column:1/-1;}
.regional-result-facts span {color:var(--beta-muted);font-size:11px;}
.regional-result-facts strong {display:flex;align-items:center;gap:5px;font-size:13px;}
.regional-result-table {font-size:11px;}
.regional-result-table td,.regional-result-table th {padding:8px 4px;}
.beta-map-detail {min-width:0;}
.politics-region-svg .politics-map-region-label {fill:var(--beta-ink);text-shadow:none;stroke:var(--beta-surface);stroke-width:2px;paint-order:stroke;}
.politics-map-legend {flex-wrap:wrap;gap:12px;}
.politics-map-legend>span {display:flex;align-items:center;gap:5px;}
.regional-election-fields {margin:16px 0;}
.regional-map-scale {display:grid;grid-template-columns:auto minmax(80px,230px) auto;gap:10px;align-items:center;justify-content:center;margin:18px 0 10px;padding:14px;border:1px solid var(--beta-border);border-radius:14px;}
.regional-map-scale>div {display:grid;gap:4px;font-size:11px;}
.regional-map-scale>div:last-of-type {text-align:right;}
.regional-map-scale strong {font-size:13px;}
.regional-map-scale-ramp {height:12px;border-radius:99px;background:linear-gradient(to right,color-mix(in srgb,var(--scale-color) 18%,var(--beta-surface)),var(--scale-color));}
.regional-map-scale p {grid-column:1/-1;margin:0;text-align:center;color:var(--beta-muted);font-size:11px;line-height:1.5;}
.regional-map-extreme {font-size:9px;padding:2px 5px;border-radius:5px;background:var(--beta-track);margin-left:3px;}
.regional-vote-mixture {display:grid;gap:12px;margin:16px 0;padding:14px;border:1px solid var(--beta-border);border-radius:14px;}
.regional-mixture-heading {display:flex;align-items:center;gap:8px;font-size:12px;}
.regional-mixture-heading>i {width:24px;height:24px;border-radius:8px;border:1px solid var(--beta-border);flex:none;}
.regional-mixture-bar {display:flex;height:16px;border-radius:6px;overflow:hidden;border:1px solid var(--beta-border);}
.regional-mixture-bar>i {height:100%;flex:none;}
.regional-mixture-breakdown {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;font-size:11px;}
.regional-mixture-breakdown>span {display:flex;align-items:center;gap:5px;min-width:0;}
.regional-mixture-breakdown>span>span {overflow-wrap:anywhere;}
.regional-mixture-breakdown strong {margin-left:auto;white-space:nowrap;}
.regional-mixture-breakdown .beta-party-dot {box-shadow:0 0 0 1px var(--beta-border);}
.regional-mixture-explanation {margin:16px 0;color:var(--beta-muted);font-size:12px;line-height:1.6;}
@media(max-width:520px){.regional-mixture-breakdown{grid-template-columns:minmax(0,1fr);}}
@media(max-width:520px){.regional-map-scale{grid-template-columns:auto minmax(30px,1fr) auto;gap:8px;padding:10px;}.regional-map-scale strong{font-size:12px;}}
@media(max-width:850px){.beta-map-layout{grid-template-columns:minmax(0,1fr);}.beta-map-layout>*{min-width:0;}}
@media(max-width:650px){.regional-election-fields{grid-template-columns:1fr!important;}.regional-result-table{font-size:11px;min-width:0;width:100%;}.regional-result-table td:first-child{white-space:normal;}.regional-result-facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}.regional-result-facts strong{overflow-wrap:anywhere;}}
