.fe-politics {
  --politics-text: var(--site-text-strong, #f2f2f2);
  --politics-muted: var(--econ-muted, #a8adb7);
  --politics-border: var(--econ-border, #48505a);
  color: var(--politics-text);
  margin-bottom: 24px;
  padding: clamp(16px, 3vw, 28px);
}
.fe-politics [hidden] { display: none !important; }
.fe-politics * { box-sizing: border-box; }
.fe-politics p { line-height: 1.65; }
.fe-politics a { color: var(--site-link, var(--politics-text)); text-underline-offset: 3px; }
.fe-politics-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.fe-politics-heading > a { font-size: .85rem; }
.fe-politics-heading h2 { margin-bottom: 6px; }
.fe-politics-current, .fe-politics-status { color: var(--politics-muted); font-size: .85rem; }
.fe-politics-current:empty { display: none; }
.fe-politics-layout { display: grid; grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr); gap: clamp(20px, 3vw, 42px); margin-top: 18px; }
.fe-politics-chart-column { min-width: 0; align-self: start; position: static; }
.fe-politics-chart { display: block; width: 100%; height: auto; max-width: 520px; margin: auto; overflow: visible; }
.fe-politics-chart text { fill: var(--politics-text); font-family: inherit; }
.fe-politics-coordinates { display: flex; justify-content: space-between; gap: 10px; font-size: .88rem; border-top: 1px solid var(--politics-border); padding-top: 13px; margin-bottom: 16px; }
.fe-politics-coordinates strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fe-politics-legend { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 7px; color: var(--politics-muted); font-size: .69rem; }
.fe-politics-legend span { display: flex; align-items: center; gap: 6px; }
.fe-politics-legend i { display: block; width: 9px; height: 9px; flex: 0 0 9px; border-radius: 2px; }
.fe-politics-analysis { min-width: 0; }
.fe-politics-progress-label { display: flex; justify-content: space-between; gap: 12px; font-size: .78rem; color: var(--politics-muted); margin-bottom: 9px; flex-wrap: wrap; }
.fe-politics-progress-label strong { color: var(--politics-text); }
.fe-politics-progress { height: 8px; background: var(--econ-panel-strong, #303741); border-radius: 8px; overflow: hidden; }
.fe-politics-progress span { display: block; height: 100%; }
.fe-politics-date { margin: 26px 0 4px !important; color: var(--politics-muted); font-size: .78rem; }
.fe-politics h3.fe-politics-ideology { font-size: clamp(1.3rem, 2vw, 1.8rem); margin: 0 0 14px; line-height: 1.25; }
.fe-politics-description { font-size: .85rem; color: var(--politics-muted); }
.fe-politics-description p { margin-bottom: 16px; }
.fe-politics-description p:last-child { margin-bottom: 0; }
.fe-politics-timeline { border-top: 1px solid var(--politics-border); margin-top: 28px; padding-top: 20px; }
.fe-politics-timeline h3 { margin: 0 0 8px; font-size: 1rem; }
.fe-politics-timeline p { color: var(--politics-muted); font-size: .82rem; }
.fe-politics-band { display: flex; width: 100%; height: 14px; gap: 2px; border-radius: 4px; overflow: hidden; margin-top: 20px; }
.fe-politics-band button { display: block; min-width: 0; border: 0; border-radius: 0; padding: 0; cursor: pointer; opacity: .85; }
.fe-politics-band button:hover, .fe-politics-band button:focus-visible { opacity: 1; box-shadow: inset 0 0 0 2px white; }
.fe-politics-range { display: block; margin: 0; width: 100%; height: 38px; accent-color: var(--politics-text); cursor: pointer; }
.fe-politics-range:focus-visible { outline: 2px solid var(--politics-text); outline-offset: 2px; border-radius: 4px; }
.fe-politics-timeline-labels { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: .78rem; color: var(--politics-muted); }
.fe-politics-timeline-labels strong { color: var(--politics-text); text-align: center; }
.fe-politics-controls { display: flex; justify-content: center; gap: 10px; margin: 16px 0; }
.fe-politics-button { border: 1px solid var(--politics-border); background: var(--econ-panel-strong, #303741); color: var(--politics-text); border-radius: 7px; padding: 9px 13px; font: inherit; font-size: .8rem; cursor: pointer; min-height: 40px; }
.fe-politics-button:hover { filter: brightness(1.12); }
.fe-politics-button:disabled { opacity: .4; cursor: default; }
.fe-politics-button:focus-visible, .fe-politics summary:focus-visible { outline: 2px solid var(--politics-text); outline-offset: 3px; }
.fe-politics p.fe-politics-history-note { font-size: .74rem; margin: 18px 0 0; }
.fe-politics-method { border-top: 1px solid var(--politics-border); margin-top: 24px; padding-top: 16px; font-size: .82rem; color: var(--politics-muted); }
.fe-politics-method > summary { color: var(--politics-text); cursor: pointer; font-weight: 600; }
.fe-politics-method[open] > summary { margin-bottom: 14px; }
.fe-politics-reference { margin: 16px 0; }
.fe-politics-reference > summary { cursor: pointer; }
.fe-politics-table-wrap { overflow-x: auto; margin-top: 12px; }
.fe-politics table { border-collapse: collapse; width: 100%; min-width: 1000px; font-size: .73rem; }
.fe-politics th, .fe-politics td { padding: 10px; border-bottom: 1px solid var(--politics-border); text-align: left; vertical-align: top; }
.fe-politics th { color: var(--politics-text); }
.fe-politics td:nth-child(3) { white-space: nowrap; }
.fe-politics code { overflow-wrap: anywhere; white-space: normal; }
@media (max-width: 820px) {
  .fe-politics-layout { grid-template-columns: minmax(0, 1fr); }
  .fe-politics-chart-column { position: static; }
  .fe-politics-chart { max-width: 440px; }
  .fe-politics-legend { max-width: 440px; margin: 0 auto; }
  .fe-politics-current { overflow-wrap: anywhere; }
}
@media (max-width: 400px) {
  .fe-politics { padding: 14px; }
  .fe-politics-coordinates { font-size: .77rem; }
  .fe-politics-legend { font-size: .62rem; gap: 9px 5px; }
  .fe-politics-timeline-labels { font-size: .68rem; gap: 6px; }
}
