.parties-hero{position:relative;overflow:hidden}
.parties-hero:after{content:"";position:absolute;width:340px;height:340px;right:max(20px,calc((100vw - 1160px)/2));top:-155px;border:1px solid rgba(104,221,214,.22);border-radius:50%;box-shadow:0 0 0 55px rgba(104,221,214,.035),0 0 0 110px rgba(244,196,48,.025);pointer-events:none}
.party-control{position:relative;margin-top:-38px;padding:25px 28px 23px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 48px rgba(7,42,64,.1)}
.party-control-heading,.party-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.party-control-heading h2,.party-section-heading h2{margin:0;font-size:clamp(24px,3vw,32px)}
.party-control-heading>p,.party-section-heading>div>p:not(.eyebrow){max-width:470px;margin:0;color:var(--muted)}
.party-control .filters{margin-top:20px;padding:0;border:0}
.party-control .secondary{background:#edf2f3;color:var(--navy);border:1px solid #d6e0e1}
.party-control .secondary:disabled{opacity:.48;cursor:not-allowed}
.party-context-status{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.party-profile{display:grid;gap:18px;margin-top:30px;margin-bottom:0}
.party-overview{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 12px 36px rgba(7,42,64,.06)}
.party-overview-main{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding:28px}
.party-brand-mark{width:82px;height:82px;display:grid;place-items:center;border:1px solid #dce5e6;border-radius:20px;background:#fff;overflow:hidden;color:var(--navy);font:800 20px Manrope}
.party-brand-mark img{width:72%;height:72%;object-fit:contain}
.party-overview-title h2{margin:5px 0 4px;font-size:clamp(27px,4vw,40px);line-height:1.12}
.party-overview-title p{margin:0;color:var(--muted)}
.party-official-link{align-self:start;padding:10px 13px;border:1px solid #cbd9da;border-radius:10px;text-decoration:none;color:var(--blue);font-size:13px;font-weight:800}
.party-official-link:hover{border-color:var(--blue);background:#f2f7ff}
.party-members{padding:0 28px 24px}
.party-members>span{display:block;margin-bottom:9px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.party-members .member-pills span{background:#e8f1ff}
.party-overview .metric-grid{margin:0;padding:22px 28px;background:#f6f8f8;border-top:1px solid var(--line)}
.party-overview .metric-grid div{background:#fff;border:1px solid #e1e8e9}
.party-list-section,.party-analysis{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px}
.party-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:19px}
.party-list-heading h3,.party-analysis-heading h3{margin:3px 0 0;font-size:25px}
.party-list-heading p{margin:0;max-width:500px;color:var(--muted)}
.party-candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.party-candidate-grid .candidate-card{display:flex;min-height:142px;flex-direction:column;align-items:stretch}
.party-candidate-grid .candidate-card-profile{display:flex;flex:1;flex-direction:column;align-items:stretch;gap:.45rem}
.party-candidate-grid .candidate-card[hidden]{display:none}
.party-candidate-grid .candidate-card .avatar{width:46px;height:46px;flex-basis:46px}
.party-list-actions{text-align:center;margin-top:18px}
.party-list-actions button{padding:11px 16px;border:1px solid #bdd0d3;border-radius:10px;background:#fff;color:var(--blue);font-weight:800;cursor:pointer}
.party-list-prompt{display:grid;grid-template-columns:auto 1fr;gap:15px;align-items:center;padding:23px;background:#edf6f5;border:1px solid #cfe5e2;border-radius:16px}
.party-list-prompt b{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--navy);color:#fff}
.party-list-prompt strong,.party-list-prompt span{display:block}.party-list-prompt span{margin-top:3px;color:var(--muted);font-size:13px}
.party-analysis-heading{margin-bottom:16px}
.party-analysis .party-history{margin-top:0}
.party-analysis .profile-chart-grid{margin-top:18px}
.party-analysis .callout{margin:20px 0 0}
.party-compare-section{margin-top:36px;padding-top:36px}
.party-context-badge{flex:0 0 auto;padding:7px 11px;border-radius:999px;background:#eef2f3;color:var(--muted);font-size:12px;font-weight:800}
.party-context-badge.is-ready{background:#dff5ee;color:#12623f}
.party-comparison-context{padding:14px 16px;border-left:4px solid var(--yellow);background:#fff9e8;border-radius:0 10px 10px 0}
.party-compare-section .comparison-panel{margin-top:18px;border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}
.party-compare-section .comparison-panel>summary{padding:17px 20px;cursor:pointer;color:var(--blue);font-weight:800}
.party-compare-section .comparison-panel[open]>summary{border-bottom:1px solid var(--line)}
.party-compare-section .filters{margin:0;border:0;border-radius:0;background:#f7f9f9}
.party-compare-section .filters button:disabled{opacity:.48;cursor:not-allowed}
.party-compare-result-context{margin:20px 0 0;padding:0 20px;color:var(--muted);font-size:13px}
.party-same-group-note{margin:16px 20px 0;padding:14px;background:#fff3d2;border-radius:10px;color:#6b520a}
.party-compare-section .compare-grid{padding:0 20px 22px}
.party-compare-section .party-summary{padding:20px}
.party-compare-section .party-summary h3{line-height:1.2}
.party-compare-section .party-summary .metric-grid strong{font-size:19px}

@media(max-width:900px){
  .party-candidate-grid{grid-template-columns:1fr 1fr}
  .party-overview-main{grid-template-columns:auto 1fr}.party-official-link{grid-column:2;justify-self:start}
}
@media(max-width:600px){
  .parties-hero:after{right:-180px}
  .party-control{width:calc(100% - 20px);margin-top:-24px;padding:20px 16px}
  .party-control-heading,.party-section-heading,.party-list-heading{display:block}
  .party-control-heading>p,.party-list-heading p{margin-top:8px}
  .party-overview-main{grid-template-columns:58px 1fr;gap:14px;padding:20px 17px}
  .party-brand-mark{width:58px;height:58px;border-radius:15px}
  .party-overview-title h2{font-size:26px}
  .party-official-link{grid-column:1/-1}
  .party-members{padding:0 17px 19px}.party-overview .metric-grid{padding:17px}
  .party-list-section,.party-analysis{padding:20px 16px}
  .party-candidate-grid{grid-template-columns:1fr}
  .party-candidate-grid .candidate-card{min-height:0}
  .party-context-badge{display:inline-flex;margin-top:12px}
  .party-compare-section .compare-grid{padding-inline:12px}
  .party-compare-result-context,.party-same-group-note{margin-inline:12px}
}
