body[data-page="parties"] { margin:0; min-height:100vh; display:flex; flex-direction:column; background:var(--pk-bg-dark); color:var(--pk-text-dark); font-family:Roboto,sans-serif; --party-surface:#1b1b1b; --party-border:#373737; --party-muted:#b7b7b7; }
html[data-theme="light"] body[data-page="parties"] { background:var(--pk-bg-light); color:var(--pk-text-light); --party-surface:#fff; --party-border:#d4d4d4; --party-muted:#626262; }
.party-page { flex:1; padding:26px 20px 40px; }
.party-page a { color:inherit; text-underline-offset:3px; }
.party-page button,.party-page select { font:inherit; color:inherit; background:var(--party-surface); border:1px solid var(--party-border); border-radius:5px; padding:8px 12px; }
.party-page button { cursor:pointer; }
.party-page :focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.party-hero { margin:16px 0 28px; }
.party-eyebrow { font-size:.73rem; text-transform:uppercase; letter-spacing:.12em; color:var(--party-muted); }
.party-hero h1 { margin:10px 0; font-size:clamp(2rem,5vw,3.6rem); line-height:1.1; letter-spacing:-.035em; }
body[data-party]:not([data-party=""]) .party-hero h1 { border-left:5px solid var(--party-color); padding-left:16px; }
.party-lead { font-size:1.1rem; line-height:1.5; margin:10px 0; }
.party-note { color:var(--party-muted); font-size:.83rem; line-height:1.6; }
.party-switcher { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:.8rem; }
.party-switcher a { padding:6px 0; text-decoration:none; }
.party-switcher a[aria-current="page"] { font-weight:800; border-bottom:2px solid var(--party-color); }
.party-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.party-card { display:flex; flex-direction:column; padding:20px; border:1px solid var(--party-border); border-top:3px solid var(--party-color,var(--party-border)); border-radius:8px; background:var(--party-surface); text-decoration:none; min-width:0; }
.party-card:hover { border-color:var(--party-color); }
.party-card-heading { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.party-card h2 { font-size:1.15rem; margin:0; }
.party-card p { color:var(--party-muted); font-size:.78rem; margin:7px 0 20px; }
.party-card-value { font-size:2rem; font-variant-numeric:tabular-nums; }
.party-card-detail { font-size:.78rem; color:var(--party-muted); margin-top:6px; }
.party-sparkline { width:100%; height:55px; margin-top:12px; }
.party-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--party-border); border-bottom:1px solid var(--party-border); margin:26px 0; }
.party-metrics>div { padding:20px 18px 16px; border-left:1px solid var(--party-border); }
.party-metrics>div:first-child { border-left:0; padding-left:0; }
.party-metrics h2 { font-size:.78rem; font-weight:500; color:var(--party-muted); margin:0 0 12px; }
.party-metrics strong { font-size:clamp(1.6rem,3vw,2.6rem); font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.party-metrics p { font-size:.78rem; line-height:1.5; margin:10px 0 0; color:var(--party-muted); }
.party-section { margin-top:22px; border-top:1px solid var(--party-border); padding-top:22px; }
.party-section h2 { margin:0 0 12px; font-size:1.2rem; }
.party-section p { line-height:1.6; }
.party-section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:start; gap:12px; }
.party-section-heading label { font-size:.8rem; }
.party-range { display:flex; gap:4px; }
.party-range button { font-size:.78rem; }
.party-range button[aria-pressed="true"] { background:var(--pk-text-dark); color:var(--pk-bg-dark); border-color:transparent; }
html[data-theme="light"] .party-range button[aria-pressed="true"] { background:#222; color:#fff; }
.party-chart-key { display:flex; flex-wrap:wrap; gap:20px; font-size:.75rem; color:var(--party-muted); }
.party-chart { display:block; width:100%; height:340px; overflow:visible; touch-action:pan-y; }
.party-chart text { font:12px Roboto,sans-serif; fill:var(--party-muted); }
.party-chart .domain { display:none; }
.party-chart .tick line { stroke:var(--party-border); }
.party-chart .poll-point { cursor:pointer; }
.party-inspector { display:flex; align-items:center; gap:12px; font-size:.8rem; margin-top:12px; }
.party-inspector input { flex:1; min-width:0; accent-color:var(--party-color); }
.party-readout { padding:12px 14px; background:var(--party-surface); border-radius:6px; min-height:64px; font-size:.83rem; }
.party-two-columns { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:40px; }
.party-election-results { padding:0; list-style:none; display:grid; gap:9px; }
.party-election-results li { display:grid; grid-template-columns:42px minmax(0,1fr) 52px 80px; gap:10px; align-items:center; font-size:.8rem; }
.party-election-bar { height:16px; display:block; background:color-mix(in srgb,var(--party-color) 12%,transparent); }
.party-election-bar i { display:block; height:100%; background:var(--party-color); }
.party-election-results small { color:var(--party-muted); }
.party-forecast-value { font-size:2.8rem; font-weight:700; margin:18px 0 0; font-variant-numeric:tabular-nums; }
.party-related { display:grid; gap:14px; font-size:.85rem; margin-top:24px; }
#positions-list p { max-width:90ch; font-size:.88rem; }
#positions-list a { white-space:normal; }
.party-method { font-size:.85rem; }
.party-method summary { cursor:pointer; font-weight:600; }
.party-method p { max-width:90ch; }
.party-events { list-style:none; padding:0; margin:0; max-width:90ch; }
.party-events li { display:grid; grid-template-columns:92px minmax(0,1fr); gap:16px; padding:12px 0; border-bottom:1px solid var(--party-border); font-size:.88rem; line-height:1.55; }
.party-events time { color:var(--party-muted); font-variant-numeric:tabular-nums; }
.party-events summary,.party-events-older>summary { cursor:pointer; }
.party-events details p { color:var(--party-muted); margin:8px 0 0; }
.party-events-older { margin-top:16px; font-size:.85rem; }
#party-status:empty { display:none; }
@media(max-width:900px) { .party-directory { grid-template-columns:repeat(2,minmax(0,1fr)); } .party-two-columns { grid-template-columns:1fr; gap:0; } }
@media(max-width:600px) { .party-page { padding:14px 14px 32px; } .party-hero { margin-bottom:20px; } .party-directory { gap:9px; } .party-card { padding:14px; } .party-card h2 { font-size:.95rem; overflow-wrap:anywhere; } .party-card p { min-height:34px; } .party-card-detail { line-height:1.4; } .party-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .party-metrics>div { padding:16px 12px; } .party-metrics>div:nth-child(3) { border-left:0; padding-left:0; } .party-metrics>div:nth-child(n+3) { border-top:1px solid var(--party-border); } .party-chart { height:290px; } .party-range { width:100%; } .party-range button { flex:1; } .party-election-results li { grid-template-columns:35px minmax(0,1fr) 48px 75px; gap:7px; } }
