/* CivicBallot: self-contained responsive, keyboard-accessible frontend styles. */
.cbv { --cbv-blue:#155d9b;--cbv-dark:#17324d;--cbv-border:#d9e2ec;--cbv-muted:#5b6672;color:#23364a;font:inherit;line-height:1.5;max-width:1200px;margin:1.2rem auto;box-sizing:border-box }
.cbv * { box-sizing:border-box }
.cbv h2,.cbv h3,.cbv h4 { color:var(--cbv-dark);line-height:1.3;margin:1.3rem 0 .7rem }
.cbv a { color:var(--cbv-blue);text-decoration:underline;text-underline-offset:2px }
.cbv a:focus-visible,.cbv button:focus-visible,.cbv input:focus-visible,.cbv select:focus-visible,.cbv textarea:focus-visible { outline:3px solid #ed9c32;outline-offset:3px }
.cbv-panel { border:1px solid var(--cbv-border);background:#fff;border-radius:15px;padding:1.3rem;margin:1rem 0;box-shadow:0 2px 7px rgba(18,34,52,.035) }
.cbv-narrow { max-width:550px;margin:1rem auto }
.cbv form { display:flex;flex-direction:column;gap:1rem }
.cbv label { display:flex;flex-direction:column;gap:.3rem;font-size:.96rem;font-weight:600 }
.cbv input:not([type=checkbox]):not([type=radio]),.cbv select,.cbv textarea { min-width:0;width:100%;font:inherit;color:#243748;background:#fff;border:1px solid #8b98a8;border-radius:8px;padding:.65rem .7rem }
.cbv textarea { resize:vertical }
.cbv button,.cbv-btn { appearance:none;border:1px solid var(--cbv-blue);border-radius:8px;background:var(--cbv-blue);color:white!important;padding:.7rem 1.1rem;cursor:pointer;font:inherit;font-weight:700;min-height:42px;text-align:center;text-decoration:none!important;display:inline-block;align-self:flex-start }
.cbv button:hover,.cbv-btn:hover { background:#0e4676 }
.cbv button.cbv-secondary { background:#fff;color:var(--cbv-blue)!important;border-color:#7594ab }
.cbv button.cbv-secondary:hover { background:#edf5fb }
.cbv .cbv-linkbtn { padding:.45rem .8rem }
.cbv .cbv-check { display:flex;flex-direction:row;align-items:flex-start;gap:.65rem;font-weight:500 }
.cbv .cbv-check input { margin:.35rem 0 0;flex-shrink:0 }
.cbv-nav,.cbv-tabs {display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.1rem;border-bottom:1px solid var(--cbv-border);padding:.8rem 0;margin-bottom:1.5rem}
.cbv-tabs a { display:inline-block;padding:.4rem .7rem;border-radius:7px;text-decoration:none }
.cbv-tabs a[aria-current=page] { background:#e8f4ff;font-weight:700 }
.cbv-grid,.cbv-grid-two,.cbv-option-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem }
.cbv-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:1rem 0 }
.cbv-metric { background:#f0f6fc;border:1px solid #dae7f3;border-radius:10px;padding:1rem;min-width:0 }
.cbv-metric strong { font-size:1.75rem;display:block;line-height:1.2;color:var(--cbv-dark);overflow-wrap:anywhere }
.cbv-metric span { display:block;font-size:.9rem;color:#495767;margin-top:.4rem }
.cbv-muted { color:var(--cbv-muted);font-size:.9rem }
.cbv-pill { display:inline-flex;align-items:center;background:#ecf4fb;color:#173d59;border:1px solid #c8ddeb;border-radius:20px;font-size:.8rem;font-weight:700;padding:.2rem .6rem }
.cbv-alert { padding:.8rem 1rem;border-radius:7px;background:#fff6e3;border:1px solid #e7c671;margin:1rem 0 }
.cbv-alert.cbv-success { background:#edf9f1;border-color:#9bd0a4 }
.cbv-alert.cbv-error { background:#fff0f0;border-color:#d9a1a1 }
.cbv-listitem {display:flex;justify-content:space-between;align-items:center;gap:1.2rem;background:#fff;border:1px solid var(--cbv-border);padding:1rem 1.2rem;margin:.55rem 0;border-radius:10px}
.cbv fieldset {border:1px solid var(--cbv-border);border-radius:9px;padding:1rem;margin:0}
.cbv legend {font-weight:700;padding:0 .4rem}
.cbv-choice {display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;background:#fff;border:1px solid #aab8c6;border-radius:12px;padding:1rem;cursor:pointer;min-width:0}
.cbv-choice:has(input:checked) { background:#eef7ff;border:2px solid var(--cbv-blue);padding:calc(1rem - 1px) }
.cbv-choice input[type=radio],.cbv-choice input[type=checkbox] {height:18px;width:18px;accent-color:var(--cbv-blue)}
.cbv-choice-img {display:block;width:100%;height:auto;max-height:230px;object-fit:cover;border-radius:8px}
.cbv-choice small {color:#495a6a;font-weight:400}
.cbv-bar-row { margin:1.2rem 0 }
.cbv-bar-label { display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.4rem }
.cbv-bar { height:16px;background:#e6edf4;border-radius:15px;overflow:hidden }
.cbv-bar span {height:100%;background:#1b75b9;border-radius:15px;display:block}
.cbv-tablewrap {overflow:auto;width:100%;border:1px solid var(--cbv-border);border-radius:10px;margin:1rem 0 }
.cbv table {width:100%;border-collapse:collapse;background:white;min-width:540px;margin:0}
.cbv th,.cbv td {text-align:left;padding:.75rem;vertical-align:top;border-bottom:1px solid var(--cbv-border);font-size:.9rem}
.cbv th {background:#f2f6fa;color:#17324d;font-weight:700}
.cbv .cbv-actions {display:flex;flex-wrap:wrap;gap:.5rem}
.cbv .cbv-option-editor {border:1px solid #c6d3df;background:#fafbfd;border-radius:10px;padding:1rem;margin:1rem 0;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.cbv .cbv-option-editor button { grid-column:1/-1 }
.cbv .cbv-checkbox-list {display:flex;flex-wrap:wrap;gap:.6rem 1rem}
.cbv-rank-list {padding:0 0 0 1.5rem;max-width:650px}
.cbv-rank-list li {padding:.6rem .2rem;border-bottom:1px solid var(--cbv-border);display:list-item}
.cbv-rank-buttons {float:right;display:flex;gap:.25rem}
.cbv-rank-buttons button {padding:.15rem .45rem;min-height:30px;border-radius:5px}
.cbv .cbv-description {max-width:850px;overflow-wrap:anywhere}
@media(max-width:720px) {.cbv-grid,.cbv-grid-two,.cbv-option-grid,.cbv .cbv-option-editor{grid-template-columns:1fr}.cbv-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.cbv-listitem{align-items:flex-start;flex-direction:column}.cbv {padding:0 .35rem}}
@media(prefers-reduced-motion:reduce) { .cbv * { animation:none!important;scroll-behavior:auto!important } }
/* CivicBallot 0.11: independent, branded product experience. All selectors are scoped. */
.cbv {--cbv-blue:#3d5be9;--cbv-dark:#182342;--cbv-border:#e3e8f3;--cbv-muted:#68758d;color:#273452;font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;line-height:1.6;max-width:1240px;padding:0 18px;margin:24px auto 70px}
.cbv h2,.cbv h3,.cbv h4{color:#182342;letter-spacing:-.035em;line-height:1.22}
.cbv h2{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:800}.cbv h3{font-size:1.25rem;font-weight:750}
.cbv p{color:#64718b}.cbv a{color:#384ed2}.cbv button,.cbv-btn{background:#415be3;border:1px solid #415be3;border-radius:11px;padding:.78rem 1.25rem;box-shadow:0 4px 12px rgba(65,91,227,.12);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.cbv button:hover,.cbv-btn:hover{background:#2d44c2;box-shadow:0 7px 18px rgba(65,91,227,.22);transform:translateY(-1px)}
.cbv button:disabled{opacity:.5;cursor:not-allowed;transform:none}.cbv button.cbv-secondary{box-shadow:none;background:#f7f8ff;color:#3c50ad!important;border:1px solid #dbe1ff}
.cbv-panel{border:1px solid #e4eaf3;border-radius:20px;background:#fff;box-shadow:0 12px 36px rgba(19,35,73,.045);padding:1.7rem;margin:1.2rem 0}
.cbv-wordmark{display:inline-flex;align-items:center;gap:.6rem;font-size:1.15rem;font-weight:850;letter-spacing:-.055em;color:#1c2a4c}.cbv-brand-accent{color:#405ce3}.cbv-mark{display:grid;place-items:center;background:linear-gradient(135deg,#5570fc,#334bc7);border-radius:11px;width:36px;height:36px;color:white;font-size:1.15rem;box-shadow:0 7px 17px rgba(65,91,227,.2)}
.cbv-nav{border:1px solid #e6eaf3;background:white;box-shadow:0 8px 24px rgba(23,37,69,.04);border-radius:17px;padding:.75rem 1rem;margin:0 0 1.75rem;gap:1.5rem;justify-content:space-between}.cbv-nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem}.cbv-nav a{text-decoration:none;color:#596783;font-size:.89rem;font-weight:650;padding:.63rem .8rem;border-radius:9px}.cbv-nav a:hover,.cbv-nav a:focus{background:#eff2ff;color:#334ac8}.cbv-nav a.cbv-signout{color:#b2444c}
.cbv-hero{background:radial-gradient(circle at 95% 15%,rgba(145,164,255,.23),transparent 35%),linear-gradient(120deg,#162d61,#233c88 58%,#3a4ea3);color:white;border-radius:24px;padding:2.5rem 2.6rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;box-shadow:0 20px 38px rgba(19,43,99,.13);margin:0 0 1.4rem}.cbv-hero h2,.cbv-admin-hero h2{color:white;margin:.5rem 0;font-weight:800}.cbv-hero p{color:#d3dcff;margin:.3rem 0}.cbv-eyebrow{font-size:.71rem;font-weight:850;letter-spacing:.17em;color:#6577dd;text-transform:uppercase}.cbv-hero .cbv-eyebrow{color:#acbcff}.cbv-member-badge{border:1px solid rgba(255,255,255,.24);border-radius:16px;padding:1.1rem 1.3rem;background:rgba(255,255,255,.09);min-width:200px;backdrop-filter:blur(5px)}.cbv-member-badge>*{display:block}.cbv-member-badge span,.cbv-member-badge small{color:#d1dbff;font-size:.82rem}.cbv-member-badge strong{color:white;font-size:1.2rem;overflow-wrap:anywhere;margin:.15rem 0}.cbv-admin-seal{font-size:3.5rem;color:#a9c0ff;opacity:.65}
.cbv-metrics{gap:1rem;margin:1.1rem 0 2rem}.cbv-metric{background:white;border:1px solid #e4eaf3;border-radius:17px;padding:1.3rem 1.4rem;position:relative;box-shadow:0 8px 25px rgba(19,35,73,.04)}.cbv-metric:before{content:'';display:block;width:34px;height:5px;background:linear-gradient(90deg,#4965e8,#84a3ff);border-radius:3px;margin-bottom:1rem}.cbv-metric strong{color:#1f315e;font-size:2.05rem;letter-spacing:-.05em}.cbv-metric span{font-size:.83rem;font-weight:650;color:#79849b}
.cbv-section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin:1.7rem 0 .5rem}.cbv-section-title h3{margin:.25rem 0}.cbv-section-title>a{font-size:.86rem;font-weight:700;text-decoration:none}.cbv-ballot-card{margin:0;display:flex;flex-direction:column;min-height:245px;padding:1.45rem}.cbv-ballot-card h3{font-size:1.23rem;margin:1.1rem 0 .3rem}.cbv-ballot-card p{margin:.4rem 0}.cbv-ballot-card .cbv-btn{margin-top:auto;align-self:flex-start}.cbv-card-top{display:flex;justify-content:space-between}.cbv-card-icon{width:38px;height:38px;border-radius:12px;background:#eef1ff;color:#425fe8;display:grid;place-items:center;font-weight:900}.cbv-pill{border-radius:50px;border:1px solid #dfe6ff;background:#eef2ff;color:#3a53c0;padding:.28rem .7rem}.cbv-pill-open{background:#e8f9ed;border-color:#d0edd9;color:#17834c}
.cbv-empty{grid-column:1/-1;border:1px dashed #cdd7ec;border-radius:19px;background:#fafbff;text-align:center;padding:2.5rem;color:#68758d}.cbv-empty>span{font-size:2.8rem;color:#697bd7}.cbv-empty h4{margin:.5rem 0}.cbv-empty p{margin:0}
.cbv-pageheader{background:#f1f4ff;border:1px solid #e2e8ff;padding:2rem;border-radius:21px;margin:0 0 1.5rem}.cbv-pageheader h2{margin:.5rem 0}.cbv-pageheader p{margin:0}.cbv-listitem{border-radius:16px;padding:1.25rem 1.35rem;box-shadow:0 5px 14px rgba(24,37,71,.025)}.cbv-list-icon{height:42px;width:42px;display:grid;place-items:center;border-radius:12px;color:#4d64da;background:#eef2ff;font-weight:bold;font-size:1.2rem;flex-shrink:0}.cbv-list-main{flex:1}.cbv-list-main>strong{font-size:1rem;color:#1e2b4b}.cbv-listitem .cbv-btn{flex-shrink:0}.cbv-state{font-weight:750}.cbv-state-open{color:#157b45}.cbv-state-closed,.cbv-state-certified{color:#5464a9}
.cbv-auth-layout{display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;max-width:970px;margin:4rem auto;border-radius:26px;box-shadow:0 26px 80px rgba(29,48,96,.14);background:white;border:1px solid #e6eaf5;min-height:520px}.cbv-auth-story{background:radial-gradient(circle at 80% 13%,rgba(173,184,255,.24),transparent 35%),linear-gradient(140deg,#142b65,#2d4391);padding:3.5rem 3rem;display:flex;flex-direction:column;justify-content:center}.cbv-auth-story .cbv-eyebrow{color:#abbfff}.cbv-auth-story h2{font-size:clamp(2.45rem,4.6vw,4rem);line-height:1.08;color:white;letter-spacing:-.07em;margin:1.5rem 0}.cbv-auth-story h2 em{font-style:normal;color:#94b4ff}.cbv-auth-story p{color:#cdd8fb;font-size:1.05rem;max-width:350px}.cbv-trustline{color:#d2dcff;font-size:.76rem;font-weight:600;margin-top:2rem}.cbv-auth-card{border:0;box-shadow:none;max-width:none;margin:0;padding:3rem;align-self:center;width:100%}.cbv-auth-card h2{font-size:2rem;margin:.45rem 0}.cbv-auth-card form{margin-top:1.7rem}.cbv-auth-card button{width:100%;margin-top:.3rem}
.cbv form label{color:#33425f;font-size:.88rem}.cbv input:not([type=checkbox]):not([type=radio]),.cbv select,.cbv textarea{border-radius:11px;border:1px solid #cfd8ea;min-height:45px;background:#fcfdff;padding:.75rem}.cbv input:focus,.cbv textarea:focus,.cbv select:focus{border-color:#4965e8;background:white}.cbv fieldset{border:1px solid #e2e9f4;border-radius:15px;padding:1.1rem}.cbv-choice{border:1.5px solid #dde4f0;border-radius:16px;padding:1.2rem;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.cbv-choice:hover{border-color:#9ba9e9;box-shadow:0 8px 20px rgba(40,65,120,.07)}.cbv-choice:has(input:checked){background:#f1f4ff;border:2px solid #4864e7;box-shadow:0 0 0 3px rgba(72,100,231,.08)}.cbv-choice-img{border-radius:12px;aspect-ratio:16/10;object-fit:cover}.cbv-ballot-detail{max-width:900px;margin:1rem auto;padding:2.2rem}.cbv-ballot-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.cbv-ballot-detail>form>button{margin-top:1rem;min-width:180px}.cbv-results-panel{max-width:920px;padding:2.2rem;margin:1rem auto}.cbv-bar{height:12px;background:#edf1fa}.cbv-bar span{background:linear-gradient(90deg,#546dec,#889bf9)}.cbv-bar-label span{font-weight:680}.cbv-tabs{background:#f4f6ff;padding:.55rem;border:1px solid #e4e8f6;border-radius:13px;gap:.3rem;overflow-x:auto}.cbv-tabs a{text-decoration:none;white-space:nowrap;padding:.65rem 1rem;font-size:.86rem;color:#69758d;font-weight:650}.cbv-tabs a[aria-current=page]{background:white;box-shadow:0 2px 7px rgba(24,36,73,.08);color:#344cc3}.cbv-tablewrap{border-radius:15px;border-color:#e3e9f2;box-shadow:0 4px 20px rgba(24,37,71,.03)}.cbv th{background:#f4f6fc}.cbv td,.cbv th{padding:.95rem}
@media(max-width:900px){.cbv-auth-layout{grid-template-columns:1fr;max-width:560px;margin:2rem auto}.cbv-auth-story{padding:2rem}.cbv-auth-story h2{font-size:2.4rem;margin:.7rem 0}.cbv-trustline{margin-top:.6rem}.cbv-auth-card{padding:2rem}.cbv-nav{align-items:flex-start;flex-direction:column;gap:.6rem}.cbv-nav-links{width:100%}.cbv-nav a{padding:.5rem .6rem}}
@media(max-width:640px){.cbv{padding:0 10px}.cbv-hero{padding:1.6rem;flex-direction:column;align-items:flex-start}.cbv-member-badge{width:100%}.cbv-panel,.cbv-results-panel,.cbv-ballot-detail{padding:1.3rem}.cbv-pageheader{padding:1.4rem}.cbv-metric{padding:1rem}.cbv-section-title{align-items:flex-start;flex-direction:column}.cbv-listitem{align-items:flex-start}.cbv-listitem .cbv-btn{width:100%}.cbv-auth-story{padding:1.6rem}.cbv-auth-card{padding:1.6rem}}
@media(prefers-reduced-motion:reduce){.cbv button,.cbv-btn,.cbv-choice{transition:none!important}}

/* Organization branding: preserve legibility of uploaded square or wide logos. */
.cbv .cbv-brand-logo{width:40px;height:40px;object-fit:contain;border-radius:8px;flex-shrink:0}
