/* Voter guide components (.vg). Reusable for future election guides. Party colors are used identically for every party. */
.vg{--rep:#c0392b;--dem:#2563a8;--lpf:#b8860b;--npa:#6b7280;--np:#1a7a86;--wri:#8a6d3b}
.vg-nav{position:sticky;top:0;z-index:20;background:rgba(255,250,242,.97);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:14px;padding:.55rem .6rem;margin:1.2rem 0;box-shadow:var(--shadow)}
.vg-nav .vg-row{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:thin;padding-bottom:.15rem;-webkit-overflow-scrolling:touch}
.vg-nav .vg-row+.vg-row{margin-top:.4rem;border-top:1px dashed var(--line);padding-top:.45rem}
.vg-pill{flex:0 0 auto;display:inline-block;padding:.32rem .75rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--gulf);font-size:.86rem;font-weight:600;text-decoration:none;white-space:nowrap}
.vg-pill:hover,.vg-pill:focus{background:var(--gulf);color:#fff;border-color:var(--gulf)}
.vg-pill.lvl{background:var(--gulf);color:#fff;border-color:var(--gulf)}
.vg-pill.lvl:hover{background:var(--teal-dark)}
.vg-pill.sm{font-size:.78rem;font-weight:500;padding:.25rem .6rem}
.vg-level{scroll-margin-top:7.5rem;margin-top:2.2rem}
.vg-card{scroll-margin-top:7.5rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem;margin:1rem 0}
.vg-card h3{margin:0 0 .2rem;font-size:1.15rem}
.vg-meta{font-size:.85rem;color:var(--muted);margin:0 0 .6rem}
.vg-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.12rem .5rem;border-radius:6px;background:var(--sand-2);color:var(--ink);margin-right:.35rem}
.vg-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .7rem}
.vg-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem .3rem .4rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.88rem;font-weight:600;color:var(--ink)}
.vg-chip .p{display:inline-block;min-width:2.3rem;text-align:center;font-size:.7rem;font-weight:800;color:#fff;border-radius:999px;padding:.1rem .35rem}
.p.rep{background:var(--rep)}.p.dem{background:var(--dem)}.p.lpf{background:var(--lpf)}.p.npa{background:var(--npa)}.p.np{background:var(--np)}.p.wri{background:var(--wri)}
.vg-poll{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem;margin:.5rem 0 .7rem}
.vg-poll h4{margin:0 0 .45rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.vg-bar{display:grid;grid-template-columns:minmax(6.5rem,9rem) 1fr 3rem;align-items:center;gap:.5rem;margin:.3rem 0;font-size:.86rem}
.vg-bar .track{background:#f3ece0;border-radius:999px;height:.8rem;overflow:hidden}
.vg-bar .fill{display:block;height:100%;border-radius:999px}
.fill.rep{background:var(--rep)}.fill.dem{background:var(--dem)}.fill.lpf{background:var(--lpf)}.fill.npa{background:var(--npa)}
.vg-bar .pct{font-weight:700;text-align:right}
.vg-src{font-size:.78rem;color:var(--muted);margin:.45rem 0 0;line-height:1.4}
.vg-nopoll{font-size:.86rem;color:var(--muted);background:#faf6ee;border:1px dashed var(--line);border-radius:10px;padding:.5rem .7rem;margin:.4rem 0 .7rem}
.vg-card details{border-top:1px solid var(--line);padding:.35rem 0}
.vg-card details:last-of-type{border-bottom:1px solid var(--line)}
.vg-card summary{cursor:pointer;font-weight:600;color:var(--gulf);padding:.3rem 0;list-style-position:inside}
.vg-card details p{margin:.3rem 0 .5rem;font-size:.95rem}
.vg-mini{width:100%;border-collapse:collapse;font-size:.9rem}
.vg-top{position:fixed;right:1rem;bottom:1rem;z-index:30;background:var(--gulf);color:#fff;border-radius:999px;padding:.6rem .9rem;font-weight:700;font-size:.85rem;text-decoration:none;box-shadow:var(--shadow-hover)}
.vg-top:hover{background:var(--teal-dark);color:#fff}
@media (max-width:640px){
  .vg-nav{top:0;border-radius:0;margin-left:-1rem;margin-right:-1rem;padding:.45rem .5rem}
  .vg-card{padding:.85rem .8rem}
  .vg-bar{grid-template-columns:6rem 1fr 2.6rem;font-size:.8rem}
  .vg-level,.vg-card{scroll-margin-top:6.5rem}
}
@media (max-width:640px){.vg-top{bottom:5.2rem;right:.75rem}}
