:root{--forest:#111C35;--green:#2454D6;--ivory:#F4F6FA;--paper:#FFFFFF;--ink:#111C35;--muted:#53617A;--line:#DCE3EE;--accent:#2454D6;--accent-soft:#EAF0FF;font-family:'Segoe UI',Arial,sans-serif;font-size:16px;line-height:1.55;color:var(--ink);background:var(--ivory);font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-width:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button,a,input,summary{touch-action:manipulation}
button:disabled{opacity:.44;cursor:default}
img,svg{display:block;max-width:100%}
img{object-fit:cover}
h1,h2,h3,p,dl{margin:0}
h1{font-size:clamp(1.9rem,3.4vw,3rem);font-weight:600;line-height:1.17;letter-spacing:-.045em;text-wrap:balance}
h2{font-size:1.4rem;font-weight:600;line-height:1.3;letter-spacing:-.025em}
h3{font-size:1rem;line-height:1.4}
p{color:var(--muted);line-height:1.65}
h1+p,h2+p{margin-top:12px}
small{font-size:14px}
a,button{transition:background-color .15s,border-color .15s,color .15s}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
h1:focus{outline:0}
[hidden]{display:none!important}
.sr-only,.icon-definitions{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-100px;left:16px;z-index:100;padding:12px 18px;border-radius:8px;background:var(--forest);color:white}
.skip-link:focus{top:12px}
.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 5vw;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:13px;align-items:center;min-width:0}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:12px;background:var(--forest);color:#efe5d0;font-weight:600;letter-spacing:-.03em;object-fit:contain}
.brand-text{min-width:0}
.brand-text strong{display:block;font-size:17px;font-weight:600;line-height:1.4}
.brand-text>span{display:block;font-size:14px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.site-footer{padding:27px 24px;border-top:1px solid var(--line);text-align:center;font-size:14px;color:var(--muted);background:var(--ivory)}
.voter-main{max-width:1240px;margin:auto;padding:56px 40px 64px;min-height:calc(100svh - 164px)}
.section-label{font-size:14px;font-weight:600;color:var(--muted);margin-bottom:12px}
.subtitle{font-size:20px;margin-top:14px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:13px 23px;border:1px solid var(--forest);border-radius:10px;background:var(--forest);color:white;font-size:16px;font-weight:600;line-height:1.4;text-align:center}
.button:hover:enabled,.button[href]:hover{background:var(--green);border-color:var(--green)}
.button.secondary{background:transparent;color:var(--forest);border-color:#bccbc0}
.button.secondary:hover:enabled,.button.secondary[href]:hover{background:#eaf0e5}
.button.light{background:var(--ivory);border-color:var(--ivory);color:var(--forest)}
.full{width:100%}
.text-button{display:inline-flex;align-items:center;min-height:44px;padding:10px 0;border:0;background:transparent;color:var(--green);font-size:15px;font-weight:600}
.text-link{display:inline-block;font-size:15px;font-weight:600;color:var(--green);text-decoration:underline;text-underline-offset:4px}
.danger{color:#AF293D}
label{display:block;font-size:15px;font-weight:600;margin:21px 0 8px}
input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;min-height:52px;padding:13px 14px;border:1px solid #bdc9bf;background:var(--paper);border-radius:8px;color:var(--ink);font-size:16px;font-weight:400}
label input{margin-top:8px}
input::placeholder{color:#68768C;opacity:1}
input[type=file]{font-size:15px!important;padding:11px!important}
input#pin{letter-spacing:.2em;font-variant-numeric:tabular-nums}
input#code{text-transform:uppercase;letter-spacing:.04em}
form>.button{margin-top:24px}
form>p{margin-top:18px}
.helptext,.field-note{display:block;font-size:14px;line-height:1.6;color:var(--muted);margin-top:10px}
.error,.notice{padding:16px 20px;border:1px solid #d4dfc7;border-radius:10px;background:#edf1e3;color:var(--forest);font-size:15px;margin:20px 0}
.error{background:#fbede8;border-color:#e9c9c0;color:#AF293D}
.errorlist{color:#AF293D;padding-left:20px;font-size:15px}
.panel,.access-card{padding:30px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.panel{margin-bottom:24px}
.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:26px}
.panel-heading h2{font-size:19px}
.panel-heading>span{font-size:14px;color:var(--muted)}
.access-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start;max-width:1040px;margin:12px auto 0}
.access-intro{padding:30px 0}
.access-intro h1{font-size:clamp(2.1rem,4vw,3.4rem)}
.access-intro>.button{margin-top:30px}
.access-card h2{font-size:26px}
.access-card>p{margin-top:12px}
.election-details{display:flex;flex-direction:column;gap:22px;margin-top:32px}
.election-details>div{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:18px}
.election-details dt{font-size:15px;color:var(--muted)}
.election-details dd{margin:0;font-size:15px;font-weight:500}
.status-pill{display:inline-flex;gap:9px;align-items:center;border:1px solid #cad6c9;border-radius:30px;padding:8px 13px;background:#edf2e8;color:var(--forest);font-size:14px;font-weight:500;white-space:nowrap;line-height:1.4}
.status-pill i{width:7px;height:7px;border-radius:50%;background:#7a8f7d;flex-shrink:0}
.status-pill.open i,.status-pill.published i{background:#3f775c}
.status-pill.closed,.status-pill.preview{background:var(--accent-soft);border-color:#dfcfad}
.status-pill.closed i,.status-pill.preview i{background:var(--accent)}
.privacy-card{padding:18px 20px;border:1px solid #d2ddcc;border-radius:11px;background:#f0f3e9;margin:24px 0}
.privacy-card strong{font-size:15px;font-weight:600}
.privacy-card p{font-size:15px;color:#506247;margin-top:7px}
.recorded-disclosure{background:#f3eee3;border-color:#dfd3b9}
.recorded-disclosure p{color:#645b46}
.admin-link{display:block;width:fit-content;margin:34px auto 0;color:var(--muted);font-size:14px;text-decoration:underline;text-underline-offset:4px}
.login-card{max-width:480px;margin:20px auto 40px}
.login-card h1{font-size:2rem}
.notice-page{max-width:570px;margin:50px auto 70px;text-align:center}
.notice-page>.button{margin-top:25px}
.ballot-wrap{max-width:980px;margin:auto}
.flow-steps{display:flex;gap:24px;list-style:none;padding:0;margin:0 0 36px;border-bottom:1px solid var(--line);font-size:14px}
.flow-steps li{padding:0 0 16px;border-bottom:2px solid transparent;color:var(--muted);white-space:nowrap}
.flow-steps .active{color:var(--forest);border-color:var(--forest);font-weight:600}
.flow-steps .complete{color:var(--green)}
.page-intro{margin-bottom:24px}
.page-intro>p{font-size:17px}
.candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:28px 0}
.candidate-card{position:relative;display:flex;flex-direction:column;min-width:0;margin:0;border:2px solid #d7dfd3;border-radius:14px;overflow:hidden;background:var(--paper);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.candidate-card:hover{border-color:#9bad9c}
.candidate-card:has(input:checked){border-color:var(--forest);box-shadow:0 0 0 3px #dbe5d5}
.candidate-card:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:4px}
.candidate-card input{position:absolute;right:16px;top:16px;width:28px;height:28px;opacity:0;z-index:2;margin:0}
.portrait{width:100%;height:240px;object-position:center 32%;background:#e6eadd}
.candidate-body{padding:22px;display:flex;flex-direction:column;flex:1;min-width:0;font-weight:400}
.candidate-body>strong{font-size:19px;font-weight:600;line-height:1.4;letter-spacing:-.02em}
.candidate-body>span{display:block;font-size:15px;color:var(--muted);margin-top:9px;flex:1}
.select-label{display:block;font-size:14px;font-weight:500;color:var(--green);margin-top:22px}
.candidate-card:has(input:checked) .select-label:after{content:'ed'}
.selection-mark{position:absolute;right:14px;top:14px;width:30px;height:30px;border:1px solid #abbba9;border-radius:50%;background:#fffffff0;display:grid;place-items:center;color:transparent;pointer-events:none}
.selection-mark svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5}
.candidate-card:has(input:checked) .selection-mark{background:var(--forest);border-color:var(--forest);color:white}
.ballot-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.selection-summary{font-size:15px;max-width:400px}
.ballot-actions .button{min-width:210px}
.review-stage{max-width:620px;margin:auto}
.review-choice{display:flex;align-items:center;gap:25px;padding:25px;border:1px solid var(--line);border-radius:14px;background:var(--paper);margin:26px 0}
.review-choice img{width:100px;height:110px;border-radius:9px;object-position:center 32%}
.review-choice h2{font-size:26px}
.review-choice .section-label{font-size:14px;margin-bottom:8px}
.acknowledgement{display:flex;align-items:flex-start;gap:14px;font-size:16px;font-weight:400;padding:18px 0;margin:20px 0}
.acknowledgement input{width:24px;height:24px;accent-color:var(--forest);flex-shrink:0;margin:1px 0}
.processing{min-height:26px;font-size:15px;margin-top:22px;text-align:center}
.confirmation{max-width:560px;margin:45px auto 70px;text-align:center}
.success-icon{width:96px;height:96px;margin:0 auto 30px;background:#e7eedf;border-radius:50%;padding:8px}
.success-icon svg{width:80px;height:80px;fill:none;stroke:var(--green);stroke-width:2}
.success-icon path{stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:0}
.animate-check path{animation:check-draw .45s ease-out both}
.confirmation h1{font-size:clamp(2rem,3vw,2.7rem)}
.confirmation>p{font-size:18px;margin-top:18px}
.confirmation form{max-width:340px;margin:8px auto 0}
.confirmation p.confirmation-note{font-size:14px;margin-top:24px}

.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}
.page-heading h1{font-size:clamp(1.9rem,3vw,2.6rem)}
.page-heading .section-label{margin-bottom:10px}
.page-heading p:not(.section-label){margin-top:10px}
.menu-toggle{display:none}
.admin-shell{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:calc(100svh - 164px);max-width:1800px;margin:auto}
.sidebar{padding:32px 18px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--ivory)}
.sidebar nav{display:flex;flex-direction:column;gap:6px}
.sidebar nav a{display:flex;gap:12px;align-items:center;min-height:48px;border-radius:9px;padding:12px;font-size:15px;line-height:1.4}
.sidebar nav a:hover{background:#e8eee2}
.sidebar nav a[aria-current=page]{background:var(--forest);color:white;font-weight:600}
.nav-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;flex-shrink:0}
.sidebar-bottom{margin-top:auto;padding:36px 12px 0}
.signed-in{display:block;font-size:14px;color:var(--muted);margin-bottom:22px;overflow-wrap:anywhere}
.signed-in strong{display:block;color:var(--ink);font-weight:600;margin-top:3px}
.sidebar-bottom>.button{width:100%;font-size:14px}
.sidebar-bottom form{text-align:center;margin-top:8px}
.drawer-heading,.nav-backdrop{display:none}
.admin-main{padding:40px clamp(24px,3.5vw,58px) 58px;min-width:0;max-width:1400px;width:100%}
.status-panel{display:grid;grid-template-columns:1fr 300px;gap:35px;align-items:center;padding:32px;background:var(--forest);color:white;border-radius:16px;margin-bottom:24px}
.status-panel p{color:#e0e9de;font-size:15px}
.status-panel .section-label{color:#c9d8c7;font-weight:500;margin-bottom:10px}
.status-panel h2{font-size:28px}
.next-action p{margin-bottom:15px}
.next-action form>.button{margin:0;width:100%}
.next-action>.button{width:100%}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:25px}
.metrics article{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:13px;min-width:0}
.metrics article>span{font-size:15px;color:var(--muted);display:block}
.metrics article>strong{font-size:38px;font-weight:600;letter-spacing:-.045em;line-height:1.2;display:block;margin-top:13px;font-variant-numeric:tabular-nums}
.metrics strong>span{font-size:24px;margin-left:2px}
.dashboard-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}
.turnout-chart{display:flex;align-items:center;gap:35px;justify-content:center;padding:8px 0 10px}
.donut{width:176px;height:176px;border-radius:50%;background:conic-gradient(var(--green) var(--turnout),#E4EAF4 0);padding:19px;flex-shrink:0}
.donut>div{width:100%;height:100%;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column}
.donut strong{font-size:28px;font-weight:600;letter-spacing:-.04em}
.donut span{font-size:14px;color:var(--muted);margin-top:6px}
.legend{min-width:140px;flex:1;max-width:240px}
.legend>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid #ebeee5}
.legend>div:last-child{border:0}
.legend dt{display:flex;align-items:center;gap:9px;font-size:15px}
.legend dd{margin:0;font-weight:600;font-size:19px}
.legend-dot{width:9px;height:9px;border-radius:3px;background:var(--green);flex-shrink:0}
.legend-dot.pale{background:#dce4d2}
.election-information .button{margin-top:24px}
.election-information .text-link{display:block;width:fit-content;margin-top:20px}
.form-panel{max-width:780px}
.form-panel form>p{margin:0 0 20px}
.form-panel p>label{margin-top:0}
.manage-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.candidate-editor{padding:22px;min-width:0}
.mini-portrait{width:100%;height:220px;object-position:center 32%;border-radius:9px;margin-bottom:20px}
.candidate-editor h2{font-size:22px}
.candidate-editor .text-button{margin-left:14px}
.tag{display:inline-flex;padding:6px 11px;border-radius:6px;background:#EDF1F7;color:#53617A;font-size:14px;line-height:1.5}
.tag.voted{background:#EAF7F0;color:var(--green)}
.table-panel{padding:0;overflow:hidden}
.responsive-table{width:100%;border-collapse:collapse;text-align:left;font-size:15px}
.responsive-table th{font-size:14px;font-weight:600;color:var(--muted);padding:18px 22px;background:#EEF2F8;border-bottom:1px solid var(--line)}
.responsive-table td{padding:21px 22px;border-bottom:1px solid #DCE3EE;overflow-wrap:anywhere}
.responsive-table tr:last-child td{border-bottom:0}
.responsive-table .button{font-size:14px;min-height:44px;padding:10px 14px;margin:0}
.issued-code{padding:26px;background:#EAF0FF;border:1px solid #B7C9F1;border-radius:13px;margin-bottom:24px}
.issued-code>strong{font-size:27px;letter-spacing:.12em;display:block;margin:20px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.issued-code p{font-size:15px}
.import-panel summary{font-size:17px;font-weight:600;cursor:pointer;min-height:32px}
.import-panel form{margin-top:22px}
.election-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.election-list h2{margin-top:20px}
.election-list .text-link{margin:20px}
.live-grid{display:grid;grid-template-columns:250px minmax(0,1fr);align-items:center;gap:40px;padding:8px 0 24px}
.live-donut{width:240px;height:240px;border-radius:50%;background:#E4EAF4;padding:27px}
.live-donut>div{height:100%;width:100%;border-radius:50%;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center}
.live-donut strong{font-size:45px;line-height:1.2;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.live-donut span{font-size:14px;color:var(--muted);margin-top:8px}
.lead-banner{border:1px solid #BED0F4;border-radius:9px;background:#EAF0FF;padding:16px 19px;margin:0 0 28px;font-size:16px;font-weight:600;min-height:58px}
.lead-banner.tied{background:var(--accent-soft);border-color:#CFC1E3}
.live-candidates{display:flex;flex-direction:column;gap:12px}
.live-candidate{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:11px;padding:16px;background:var(--paper);min-height:96px}
.live-candidate.leading{border-color:#A8BEEE;background:#EAF0FF}
.live-marker{width:5px;height:35px;border-radius:4px;flex-shrink:0}
.live-candidate img{width:55px;height:62px;border-radius:8px;object-position:center 32%;flex-shrink:0}
.live-candidate strong{display:block;font-size:16px;line-height:1.4;font-weight:600}
.live-candidate small{display:block;color:var(--muted);font-size:14px;margin-top:5px}
.live-candidate.leading small{color:var(--green)}
.live-numbers{margin-left:auto;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.live-updated{min-width:160px;text-align:right;min-height:24px;font-size:14px}
.action-group{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.publication-panel{max-width:850px}
.publication-panel .button{margin-top:24px}
.copy-link{display:flex;align-items:center;gap:12px}
.copy-link .button{margin:0;flex-shrink:0}
.copy-link input{min-width:0}
.copy-status{display:block;min-height:28px;font-size:14px;margin-top:10px;color:var(--green)}
.public-results{max-width:940px;margin:auto}
.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border:1px solid #E8D6AC;border-radius:11px;background:var(--accent-soft);margin-bottom:32px;font-size:15px}
.preview-toolbar .button{font-size:14px;flex-shrink:0;min-height:44px}
.results-heading{position:relative;padding-right:135px;margin-bottom:32px}
.results-heading .status-pill{position:absolute;right:0;top:0}
.results-heading h1{font-size:clamp(2rem,4vw,3rem)}
.result-outcome{border-left:4px solid var(--accent);padding:8px 0 8px 24px;margin:30px 0}
.result-outcome .section-label{margin-bottom:8px}
.result-outcome h2{font-size:clamp(1.5rem,2.5vw,2rem)}
.result-outcome>p:last-child:not(.section-label){margin-top:10px}
.results-metrics{margin-top:30px}
.result-bars{margin:16px 0 28px}
.result-row{display:flex;align-items:center;gap:18px;padding:24px 0;border-bottom:1px solid #DCE3EE;break-inside:avoid}
.result-row:last-child{border-bottom:0}
.result-rank{font-size:18px;color:var(--muted);width:20px;flex-shrink:0;text-align:center}
.result-row>img{width:62px;height:70px;border-radius:8px;object-position:center 32%;flex-shrink:0}
.result-candidate{flex:1;min-width:0}
.result-row-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}
.result-row-heading h3{font-size:18px}
.result-row-heading>p{display:flex;align-items:center;gap:18px;white-space:nowrap;font-variant-numeric:tabular-nums}
.result-row-heading strong{color:var(--ink);font-size:16px;font-weight:600}
.result-row-heading p>span{min-width:48px;text-align:right;font-size:15px}
.bar-track{height:12px;border-radius:4px;background:#E2E8F3;overflow:hidden}
.bar-track>div{height:100%;background:#8AA5E6;border-radius:4px;transform-origin:left}
.result-row.leading .bar-track>div{background:var(--green)}
.leader-label{display:block;font-size:14px;color:var(--green);margin-top:8px;min-height:21px}
.result-row:not(.leading) .result-candidate:after{content:'';display:block;height:21px;margin-top:8px}
.result-lead{font-size:20px;color:var(--forest);font-weight:500}
.publication-time{font-size:15px;margin:22px 0}
.reveal-bars .bar-track>div{animation:bar-reveal .4s ease-out both}
.report-main{max-width:1100px;margin:auto;padding:35px 40px 55px;min-height:calc(100svh - 164px)}
.report-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}
.election-report{padding:45px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.report-heading{display:flex;justify-content:space-between;gap:24px;padding-bottom:28px;border-bottom:2px solid var(--forest)}
.report-heading h1{font-size:35px}
.report-heading .subtitle{font-size:21px}
.report-heading .subtitle+p{margin-top:5px}
.report-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}
.report-facts dt{font-size:15px;color:var(--muted)}
.report-facts dd{margin:10px 0 0;font-size:28px;font-weight:600}
.report-outcome{padding:28px 0}
.report-outcome h2{font-size:23px}
.report-table{width:100%;border-collapse:collapse;text-align:left;font-size:16px}
.report-table th{font-size:14px;font-weight:600;color:var(--muted);background:#EEF2F8}
.report-table td,.report-table th{padding:16px;border-bottom:1px solid var(--line)}
.report-table th:first-child,.report-table td:first-child{width:70px}
.report-table td:nth-child(n+3),.report-table th:nth-child(n+3){text-align:right;font-variant-numeric:tabular-nums}
.report-notes{padding-top:28px;font-size:14px}
.report-notes p+p{margin-top:8px}
@keyframes check-draw{from{stroke-dashoffset:60}
to{stroke-dashoffset:0}
}
@keyframes bar-reveal{from{transform:scaleX(0)}
to{transform:scaleX(1)}
}

@media(min-width:640px) and (max-width:1099px){.site-header{padding:0 28px;height:80px}
.admin-shell{grid-template-columns:100px minmax(0,1fr)}
.sidebar{padding:22px 8px}
.sidebar nav a{flex-direction:column;gap:6px;justify-content:center;min-height:72px;padding:10px 4px;font-size:13px;text-align:center}
.sidebar-bottom{padding:25px 4px 0}
.signed-in{display:none}
.sidebar-bottom>.button{padding:10px 5px;font-size:13px}
.sidebar-bottom .text-button{font-size:13px}
.admin-main{padding:30px 24px 40px}
.status-panel{grid-template-columns:1fr;padding:26px;gap:20px}
.next-action{display:flex;align-items:center;justify-content:space-between;gap:25px}
.next-action p{margin:0;max-width:300px}
.next-action .button{width:auto;min-width:150px}
.metrics{gap:12px}
.metrics article{padding:20px 17px}
.metrics article>span{font-size:14px}
.metrics article>strong{font-size:34px}
.dashboard-grid{grid-template-columns:1fr;gap:0}
.turnout-chart{gap:40px;justify-content:flex-start}
.election-information .button,.election-information .text-link{display:inline-flex;margin:22px 15px 0 0}
.manage-candidates{grid-template-columns:1fr 1fr}
.live-grid{grid-template-columns:1fr;gap:30px}
.live-donut{margin:auto}
.election-list{grid-template-columns:1fr}
.responsive-table th,.responsive-table td{padding:16px 14px;font-size:14px}
.responsive-table .button{padding:10px;font-size:14px}
.voter-main{padding:42px 32px 50px}
.access-layout{gap:35px;grid-template-columns:1fr 1.1fr}
.access-card{padding:25px}
.election-details>div{grid-template-columns:1fr;gap:8px}
.candidate-grid{gap:15px}
.portrait{height:210px}
.candidate-body{padding:18px 15px}
.candidate-body>strong{font-size:18px}
.live-results .panel-heading{flex-wrap:wrap}
.election-report{padding:32px}
.report-toolbar .button{font-size:14px;padding:12px 15px}
}

@media(max-width:639px){.site-header{height:76px;padding:0 20px}
.brand{gap:10px}
.brand-mark{width:38px;height:38px;border-radius:10px;font-size:14px}
.brand-text strong{font-size:16px}
.brand-text>span{font-size:13px}
.site-footer{font-size:13px;padding:24px 18px}
.voter-main{padding:28px 20px 34px;min-height:calc(100svh - 145px)}
h1{font-size:29px}
h2{font-size:23px}
.subtitle{font-size:18px}
.section-label{font-size:14px;margin-bottom:10px}
.access-layout{display:block;margin:0}
.access-intro{padding:0;margin-bottom:25px}
.access-intro h1{font-size:30px}
.access-intro>.section-label{display:none}
.election-details{gap:15px;margin-top:22px}
.election-details>div{grid-template-columns:90px minmax(0,1fr);gap:12px}
.election-details dd,.election-details dt{font-size:14px}
.status-pill{font-size:14px;padding:7px 11px}
.access-card{padding:24px 20px}
.access-card h2{font-size:25px}
.privacy-card{padding:16px;margin:21px 0}
.privacy-card strong,.privacy-card p{font-size:15px}
.admin-link{margin-top:28px}
.button{min-height:52px;font-size:16px;padding:13px 18px}
.login-card{margin:8px auto 30px}
.login-card h1{font-size:27px}
.flow-steps{gap:25px;margin-bottom:25px;font-size:14px}
.flow-steps li{padding-bottom:12px}
.page-intro{margin-bottom:18px}
.page-intro>p{font-size:16px}
.ballot-wrap .privacy-card{margin:20px 0}
.candidate-grid{grid-template-columns:1fr;gap:14px;margin:24px 0}
.candidate-card{display:grid;grid-template-columns:92px minmax(0,1fr);min-height:128px;align-items:stretch;border-radius:12px}
.portrait{width:92px;height:100%;min-height:128px;object-position:center 32%}
.candidate-body{padding:17px 35px 17px 15px}
.candidate-body>strong{font-size:18px;line-height:1.35}
.candidate-body>span{font-size:14px;line-height:1.5;margin-top:7px}
.select-label{font-size:14px;margin-top:11px}
.selection-mark{top:13px;right:10px;width:23px;height:23px}
.selection-mark svg{width:16px;height:16px}
.candidate-card input{right:10px;top:13px;width:24px;height:24px}
.ballot-actions{flex-direction:column;align-items:stretch;gap:15px;margin-top:24px;padding-top:20px}
.ballot-actions .button{width:100%;min-height:54px}
.selection-summary{font-size:14px;text-align:center;max-width:100%}
.review-stage .ballot-actions{flex-direction:column}
.review-choice{padding:20px;gap:18px}
.review-choice img{width:82px;height:100px}
.review-choice h2{font-size:23px}
.acknowledgement{font-size:16px;padding:12px 0}
.processing{font-size:14px;margin-top:18px}
.confirmation{margin:45px auto 50px}
.confirmation h1{font-size:31px}
.confirmation>p{font-size:17px}
.confirmation p.confirmation-note{font-size:14px}
.admin-shell{display:block}
.admin-main{padding:28px 20px 40px}
.menu-toggle{display:inline-flex;gap:8px;min-height:44px;padding:10px 13px;font-size:14px;flex-shrink:0}
.menu-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(320px,calc(100vw - 38px));z-index:60;overflow-y:auto;padding:20px 16px;transform:translateX(-105%);transition:transform .18s ease-out;border-right:1px solid var(--line);visibility:hidden}
.nav-open{overflow:hidden}
.nav-open .sidebar{transform:translateX(0);visibility:visible}
.drawer-heading{display:flex;align-items:center;justify-content:space-between;padding:0 8px 22px;gap:20px}
.drawer-heading .button{min-height:44px;padding:9px 13px;font-size:14px}
.sidebar nav a{font-size:16px;min-height:49px}
.sidebar-bottom{margin-top:20px;padding-top:25px}
.nav-backdrop:not([hidden]){display:block;position:fixed;inset:0;border:0;background:#102d26a3;z-index:50}
.page-heading{gap:15px;margin-bottom:24px}
.page-heading h1{font-size:28px}
.page-heading>.status-pill{margin-top:3px}
.page-heading .button{font-size:14px;padding:12px;min-height:46px}
.status-panel{grid-template-columns:1fr;padding:25px 22px;gap:24px;margin-bottom:18px}
.status-panel h2{font-size:26px}
.status-panel p{font-size:15px}
.next-action .button{width:100%}
.metrics{gap:8px;margin-bottom:20px}
.metrics article{padding:18px 11px;border-radius:10px}
.metrics article>span{font-size:14px;line-height:1.4;min-height:40px}
.metrics article>strong{font-size:30px;line-height:1.3;margin-top:7px;letter-spacing:-.05em}
.metrics strong>span{font-size:19px;margin-left:0}
.dashboard-grid{grid-template-columns:1fr;gap:0}
.panel{padding:22px 20px;margin-bottom:20px}
.panel-heading{gap:14px;margin-bottom:22px;align-items:flex-start}
.panel-heading h2{font-size:19px}
.panel-heading .text-link{font-size:14px;text-align:right}
.turnout-chart{gap:22px;padding:5px 0;justify-content:space-between}
.donut{width:138px;height:138px;padding:16px}
.donut strong{font-size:24px}
.legend{min-width:0}
.legend>div{gap:10px}
.legend dt{font-size:14px;gap:7px}
.legend dd{font-size:18px}
.legend-dot{width:8px;height:8px}
.election-information h2{font-size:22px}
.manage-candidates{grid-template-columns:1fr;gap:0}
.candidate-editor{padding:22px}
.mini-portrait{height:250px}
.table-panel{padding:0;border:0;background:transparent;border-radius:0;overflow:visible}
.responsive-table,.responsive-table tbody{display:block}
.responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.responsive-table tr{display:block;background:var(--paper);padding:18px 20px;border:1px solid var(--line);border-radius:12px;margin-bottom:15px}
.responsive-table td{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:10px 0;border:0!important;font-size:15px;text-align:right;min-width:0}
.responsive-table td:before{content:attr(data-label);display:block;font-size:14px;font-weight:400;color:var(--muted);text-align:left;flex-shrink:0;max-width:44%}
.responsive-table td:first-child{padding-top:0;justify-content:flex-start;text-align:left}
.responsive-table td:first-child strong{font-size:18px;font-weight:600}
.responsive-table td:first-child:before{display:none}
.responsive-table td:last-child{padding-bottom:0}
.responsive-table td[colspan]{text-align:left}
.responsive-table td[colspan]:before{display:none}
.responsive-table .button{font-size:14px;min-height:44px}
.issued-code{padding:22px}
.issued-code strong{font-size:25px}
.election-list{grid-template-columns:1fr;gap:0}
.election-list .button{width:100%}
.election-list .text-link{margin:20px 0 0}
.live-grid{grid-template-columns:1fr;gap:28px;padding-bottom:18px}
.live-donut{margin:auto;width:210px;height:210px;padding:24px}
.live-donut strong{font-size:40px}
.live-candidate{padding:14px 11px;gap:10px;min-height:94px}
.live-candidate img{width:42px;height:56px}
.live-candidate strong{font-size:15px}
.live-candidate small{font-size:14px}
.live-marker{width:4px;flex-shrink:0}
.live-numbers strong{font-size:15px}
.lead-banner{padding:16px;margin-bottom:25px;font-size:16px;min-height:82px;display:flex;align-items:center}
.live-updated{min-width:0;font-size:14px;max-width:130px;text-align:right}
.action-group{gap:12px}
.action-group>.button{flex:1;min-width:160px}
.copy-link{flex-direction:column;align-items:stretch}
.copy-link .button{width:100%}
.publication-panel h2{font-size:23px}
.preview-toolbar{flex-direction:column;align-items:stretch;gap:16px;padding:20px;font-size:15px}
.results-heading{padding-right:0;margin-bottom:25px}
.results-heading .status-pill{position:static;margin-bottom:18px}
.results-heading>.section-label{margin-bottom:12px}
.results-heading h1{font-size:31px}
.result-outcome{margin:25px 0;padding-left:18px}
.result-outcome h2{font-size:25px}
.results-metrics{gap:8px;margin-top:25px}
.results-metrics article{padding:17px 10px}
.results-metrics article>strong{font-size:30px}
.result-row{gap:10px;padding:22px 0;align-items:flex-start}
.result-row>img{width:48px;height:60px}
.result-rank{width:16px;font-size:16px;padding-top:3px}
.result-row-heading{display:block;margin-bottom:11px}
.result-row-heading h3{font-size:17px}
.result-row-heading>p{justify-content:space-between;gap:10px;margin-top:8px;line-height:1.4}
.result-row-heading strong{font-size:15px}
.result-row-heading p>span{font-size:14px;min-width:0}
.bar-track{height:10px}
.publication-time{font-size:14px}
.report-main{padding:25px 20px 35px}
.report-toolbar{align-items:stretch;flex-direction:column;gap:12px}
.report-toolbar .action-group{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.report-toolbar .button{font-size:14px;padding:12px 14px;min-width:0}
.election-report{padding:25px 20px;border-radius:11px}
.report-heading{display:block;padding-bottom:22px}
.report-heading .status-pill{margin-top:20px}
.report-heading h1{font-size:28px}
.report-heading .subtitle{font-size:20px}
.report-facts{gap:15px;padding:23px 0}
.report-facts dt{font-size:14px;min-height:40px}
.report-facts dd{font-size:26px;margin-top:9px}
.report-outcome h2{font-size:22px}
.report-outcome p{font-size:15px}
.report-table{font-size:14px}
.report-table th,.report-table td{padding:13px 6px}
.report-table th:first-child,.report-table td:first-child{width:32px}
.report-table th:nth-child(2){width:47%}
.report-table th{font-size:14px}
.report-notes{font-size:14px}
.notice-page{margin:35px auto}
}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

@page{size:A4;margin:16mm}
@media print{html,body{background:white!important;color:#111C35!important;font-size:11pt}
.site-header,.report-toolbar,.sidebar,.menu-toggle,.nav-backdrop,.skip-link,.preview-toolbar,.copy-link{display:none!important}
.report-main{padding:0;max-width:none;min-height:0}
.election-report{border:0;border-radius:0;padding:0;background:white}
.report-heading{padding-bottom:18px;break-inside:avoid}
.report-heading h1{font-size:25pt}
.report-heading .subtitle{font-size:15pt}
.report-facts{padding:20px 0;break-inside:avoid}
.report-facts dd{font-size:22pt}
.report-facts dt{font-size:10pt}
.report-outcome{padding:20px 0;break-inside:avoid}
.report-outcome h2{font-size:17pt}
.report-table{font-size:11pt}
.report-table th,.report-table td{padding:12px 10px}
.report-table th{font-size:10pt;background:#EEF2F8!important}
.report-table tr{break-inside:avoid}
.report-notes{font-size:10pt;padding-top:20px}
.site-footer{display:block!important;background:white!important;font-size:9pt;margin-top:26px;padding:16px 0 0;border-top:1px solid #BEC9DB}
.status-pill{font-size:10pt;color:#111C35!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
*{animation:none!important;box-shadow:none!important}
.layout-voter .voter-main{padding:0;min-height:0}
.button{display:none!important}
.metrics,.result-row,.result-outcome{break-inside:avoid}
}


.candidate-grid{grid-auto-rows:1fr}
.live-updated{height:44px;display:flex;align-items:center;justify-content:flex-end}
.lead-banner{min-height:82px}


.report-heading{align-items:flex-start}
.admin-main>p{margin-bottom:26px}
.admin-main>h1{margin-bottom:12px}
.manage-candidates{margin-top:26px}



/* Cobalt identity: page composition and shared interaction tokens. */
@font-face{font-family:Inter;src:url("fonts/InterVariable.2bf3d951bf9d.woff2") format('woff2');font-weight:100 900;font-display:swap}
:root{--navy:#111C35;--cobalt:#2454D6;--blue-soft:#EAF0FF;--background:#F4F6FA;--surface:#FFFFFF;--slate:#53617A;--border:#DCE3EE;--success:#16704A;--error:#AF293D;--forest:var(--navy);--green:var(--cobalt);--ivory:var(--background);--paper:var(--surface);--ink:var(--navy);--muted:var(--slate);--line:var(--border);--accent:var(--cobalt);--accent-soft:var(--blue-soft);font-family:Inter,'Segoe UI',sans-serif}
h1,h2{font-weight:650}h1{letter-spacing:-.045em}h3{font-weight:600}
.site-header{background:white}.brand-mark{border-radius:8px;color:white}.brand-text strong{font-weight:650}
.button{border-radius:8px;background:var(--cobalt);border-color:var(--cobalt);font-size:15px}
.button:hover:enabled,.button[href]:hover{background:#193FA8;border-color:#193FA8}
.button.secondary{background:white;color:var(--navy);border-color:#C5CFDF}
.button.secondary:hover:enabled,.button.secondary[href]:hover{background:var(--blue-soft);border-color:#AEC0EA}
.button.light{background:white}.danger{color:var(--error)!important}.button.danger{border-color:#DEB4BC;background:white}.button.danger:hover{background:#FFF0F2}
.text-link,.text-button{color:var(--cobalt)}.text-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
label{font-size:14px}input:not([type=radio]):not([type=checkbox]),select,textarea{border-color:#BEC9DB;background:white;border-radius:8px;min-width:0}input::placeholder{color:#68768C}
input[type=file]::file-selector-button{border:0;border-radius:4px;padding:6px 10px;background:var(--blue-soft);color:var(--cobalt);margin-right:10px;font:inherit}
.panel{border-radius:10px}.panel-heading p{font-size:14px;margin-top:5px}.status-pill{border-radius:6px;font-size:13px;font-weight:550;background:#EDF1F7;color:var(--slate);border-color:var(--border)}.status-pill i{background:currentColor;width:6px;height:6px}.status-pill.open,.status-pill.published{color:var(--success);background:#EAF7F0;border-color:#C4E6D5}.status-pill.open i,.status-pill.published i{background:currentColor}.status-pill.closed,.status-pill.preview{background:#FFF5DF;border-color:#E8D6AC;color:#805300}.status-pill.closed i,.status-pill.preview i{background:currentColor}
.error{color:var(--error);background:#FFF0F2;border-color:#E7B6C0}.notice{background:var(--blue-soft);border-color:#BFCFF5}.errorlist{color:var(--error)}.site-footer{font-size:13px}
.password-field{position:relative}.password-field input{padding-right:76px!important}.password-toggle{position:absolute;right:5px;top:4px;min-height:44px;min-width:58px;padding:8px;border:0;border-radius:5px;background:transparent;color:var(--cobalt);font-size:14px;font-weight:600}.password-toggle:hover{background:var(--blue-soft)}
.access-layout{grid-template-columns:1fr 1fr;gap:0;max-width:1040px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:white;min-height:580px;align-items:stretch}
.access-intro{padding:48px 44px;background:var(--navy);color:white;display:flex;flex-direction:column;align-items:flex-start}
.access-intro h1{margin-top:28px;max-width:430px}.access-intro .subtitle{color:#D0D9EE;font-size:18px}
.access-intro .status-pill{border-color:#53627C;background:#26334E;color:#E3EAFA}.access-intro .status-pill i{background:#89CDB0}
.election-details{margin-top:auto;padding-top:48px;display:block}.election-details>div{display:block}.election-details dt{font-size:14px;color:#B7C4DD;margin-bottom:8px}.election-details dd{color:white;font-size:18px;line-height:1.6}.election-details strong{font-weight:550}
.access-mode{font-size:14px;color:#B7C4DD;margin-top:32px}.access-card{padding:44px;border:0;border-radius:0}.access-card h2{font-size:28px}
.privacy-card{padding:14px 0 14px 16px;border:0;border-left:3px solid #8BA9F2;border-radius:0;background:transparent;margin:26px 0}.privacy-card strong{font-size:14px;color:var(--navy)}.privacy-card p{font-size:14px;color:var(--slate);margin-top:6px}.recorded-disclosure{border-color:#BA872B}.recorded-disclosure strong{color:#805300}.admin-link{min-height:44px;padding:10px 0;margin-top:26px}
.auth-layout{display:grid;grid-template-columns:1.05fr 1fr;max-width:1050px;margin:12px auto 0;background:white;min-height:580px;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.auth-identity{padding:44px;background:var(--navy);color:white;display:flex;flex-direction:column;justify-content:space-between;gap:42px}.auth-identity .section-label,.auth-context{color:#BECBE3}.auth-identity h2{font-size:42px;letter-spacing:-.045em;line-height:1.12}.auth-identity h2+p{color:#C7D2E8;max-width:340px;margin-top:22px}.identity-symbol{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:650}.identity-symbol>span{width:24px;height:24px;border:6px solid #7296F7;border-radius:50%}.auth-context{font-size:14px}.login-card{padding:60px 44px;align-self:center;margin:0;max-width:none}.login-card h1{font-size:34px}.return-link{margin-top:22px}
.candidate-card{border-color:var(--border);border-radius:10px;transition:border-color .15s,background-color .15s}
.candidate-card:hover{border-color:#8AA5DE}.candidate-card:has(input:checked){border-color:var(--cobalt);background:var(--blue-soft);box-shadow:none}.candidate-body>strong{font-weight:650;overflow-wrap:anywhere}.selection-mark{width:26px;height:26px;border-color:#8F9CB2;background:white}.candidate-card:has(input:checked) .selection-mark{background:var(--cobalt);border-color:var(--cobalt)}
.flow-steps .active{color:var(--cobalt);border-color:var(--cobalt)}.review-choice{background:var(--blue-soft);border-color:#B3C7F5;border-radius:10px}.review-choice h2{overflow-wrap:anywhere}.acknowledgement{border-top:1px solid var(--border);font-size:15px}
.confirmation{padding:48px 38px;background:white;border-top:4px solid var(--cobalt)}.confirmation h1{font-size:36px}.success-icon{background:#EAF7F0}.success-icon svg{stroke:var(--success)}
.admin-shell{grid-template-columns:232px minmax(0,1fr)}.sidebar{background:var(--navy);color:#D1DBEE;border:0}.sidebar nav a{font-size:14px;border-radius:7px}.sidebar nav a:hover{background:#26334E;color:white}.sidebar nav a[aria-current=page]{background:var(--cobalt)}.signed-in{color:#ACBDD9;font-size:13px}.signed-in strong{color:white}.sidebar-bottom>.button{background:transparent;border-color:#62738E;color:white}.sidebar-bottom .text-button{color:#C4D1EA}.drawer-heading{color:white}.drawer-heading .button{background:#26334E;color:white;border-color:#62738E}
.status-panel{grid-template-columns:1fr 270px;padding:28px 30px;background:white;color:var(--navy);border:1px solid var(--border);border-left:4px solid var(--cobalt);border-radius:0 10px 10px 0;margin-bottom:28px}.status-panel h2{font-size:27px;margin-top:16px}.status-panel p{color:var(--slate);font-size:14px}.next-action .button{width:100%}
.metrics{gap:0;margin:0 0 30px;padding:4px 0 28px;border-bottom:1px solid var(--border)}.metrics article{padding:0 28px;border:0;border-right:1px solid var(--border);background:transparent;border-radius:0}.metrics article:first-child{padding-left:0}.metrics article:last-child{border:0}.metrics article>span{font-size:14px}.metrics article>strong{font-size:44px;font-weight:600;letter-spacing:-.055em;margin-top:10px}
.dashboard-grid{grid-template-columns:1fr 1fr}.donut{background:conic-gradient(var(--cobalt) var(--turnout),#E4EAF4 0);width:156px;height:156px;padding:17px}.donut strong{font-size:25px;font-variant-numeric:tabular-nums}.legend-dot{background:var(--cobalt)}.legend-dot.pale{background:#C4D0E5}.legend>div{border-color:var(--border)}.turnout-chart{gap:24px}.recent-activity ol{list-style:none;padding:0;margin:0}.recent-activity li{padding:14px 0;border-bottom:1px solid var(--border)}.recent-activity li:first-child{padding-top:0}.recent-activity li:last-child{border:0;padding-bottom:0}.recent-activity li strong{display:block;font-size:14px;font-weight:550}.recent-activity li span{display:block;font-size:13px;color:var(--slate);margin-top:5px}
.tag{background:#EDF1F7;color:var(--slate);border-radius:5px;font-size:13px}.tag.voted{background:#EAF7F0;color:var(--success)}.responsive-table th{background:#EEF2F8;font-size:13px}.responsive-table td{border-color:var(--border);font-size:14px}.responsive-table tbody tr:hover{background:#FAFBFE}.issued-code{background:var(--blue-soft);border-color:#B7C9F1}.mini-portrait{border-radius:6px}.candidate-editor h2{font-size:21px}
.live-grid{grid-template-columns:240px minmax(0,1fr);gap:40px}.live-donut{width:228px;height:228px;padding:25px;background:#E4EAF4}.live-donut strong{font-size:48px}.lead-banner{border:0;border-left:3px solid var(--cobalt);border-radius:0;background:var(--blue-soft);padding:15px 18px;min-height:76px;display:flex;align-items:center}.lead-banner.tied{background:#F1ECFA;border-color:#8153AE}.live-candidates{gap:0;min-width:0}.live-candidate{border:0;border-bottom:1px solid var(--border);border-radius:0;padding:15px 0;min-height:91px}.live-candidate.leading{background:white;border-color:var(--border)}.live-candidate img{width:48px;height:56px;border-radius:5px}.live-candidate strong{font-size:15px;overflow-wrap:anywhere}.live-candidate small{font-size:13px}.live-candidate.leading small{color:var(--cobalt)}.live-numbers{flex-shrink:0}.live-caption{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--border);padding-top:16px}.live-caption .helptext{margin:0;font-size:13px}.live-updated{width:170px;min-width:0;flex-shrink:0;font-size:13px}.chart-skeleton{height:80px;margin:5px 0;border-radius:6px;background:#EDF1F7}.chart-skeleton:after{content:'';display:block;height:14px;width:60%;margin:30px 18px;background:#DFE6F2;border-radius:3px}.copy-status{color:var(--success)}
.results-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:0 0 30px;border-bottom:1px solid var(--border);margin:0}.results-heading h1{font-size:28px;letter-spacing:-.03em}.results-heading p:last-child{font-size:16px;margin-top:10px}.results-heading .status-pill{position:static}.result-outcome{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:40px 0;margin:0;border:0;border-bottom:1px solid var(--border)}.result-outcome h2{font-size:clamp(2rem,4.2vw,3.75rem);line-height:1.08;letter-spacing:-.05em;max-width:640px}.result-outcome .section-label{color:var(--cobalt);margin-bottom:16px}.outcome-copy>p:last-child:not(.section-label){margin-top:18px;max-width:450px}.outcome-portraits{display:flex;gap:8px;max-width:40%;flex-shrink:0}.outcome-portraits img{width:160px;height:184px;border-radius:8px;object-position:center 32%;min-width:0}.outcome-portraits:has(img:nth-child(2)) img{width:95px;height:125px}.results-metrics{padding:28px 0;margin:0}.results-metrics article>strong{font-size:40px}.final-ranking{border:0;border-radius:0;background:transparent;padding:30px 0 0;margin:0}.result-row{border-color:var(--border)}.result-row>img{border-radius:5px}.bar-track{height:9px;background:#E2E8F3;border-radius:3px}.bar-track>div,.result-row.leading .bar-track>div{background:var(--series-color,var(--cobalt));border-radius:3px}.leader-label{color:var(--cobalt);font-size:13px}.results-end{border-top:1px solid var(--border);padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.publication-time{margin:0;font-size:14px}
.election-report{border-radius:0;padding:48px}.report-heading{border-bottom:3px solid var(--navy)}.report-heading h1{font-size:36px}.report-facts dd{font-size:32px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.report-table th{background:#EEF2F8}.report-outcome h2{font-size:26px}
@media(min-width:640px) and (max-width:1099px){
 .admin-shell{grid-template-columns:90px minmax(0,1fr)}.sidebar{padding:20px 7px}.sidebar nav a{font-size:12px;min-height:73px;padding:10px 3px}.sidebar-bottom>.button{font-size:12px}
 .status-panel{grid-template-columns:1fr;padding:24px}.next-action .button{width:auto}.metrics article{padding:0 20px}.metrics article>strong{font-size:38px}.dashboard-grid{grid-template-columns:1fr}
 .access-intro,.access-card{padding:32px}.access-intro h1{font-size:38px}.access-layout{gap:0}.auth-identity,.login-card{padding:36px 30px}.auth-identity h2{font-size:36px}.election-report{padding:32px}
}
@media(min-width:640px) and (max-width:979px){
 .live-grid{grid-template-columns:180px minmax(0,1fr);gap:22px}.live-donut{width:180px;height:180px;padding:20px}.live-candidate{gap:9px}.live-candidate img{width:38px;height:48px}.live-candidate strong{font-size:14px}.live-numbers strong{font-size:14px}
 .manage-candidates{grid-template-columns:1fr}.candidate-editor{display:grid;grid-template-columns:180px minmax(0,1fr);gap:0 24px}.mini-portrait{grid-row:1 / 4;height:230px}.candidate-editor h2{align-self:end}.candidate-editor form{grid-column:2}.candidate-editor label:first-of-type{margin-top:12px}
}
@media(max-width:639px){
 .site-header{padding:0 18px;gap:12px}.brand-mark{width:36px;height:36px;border-radius:7px}.brand-text strong{font-size:14px}.brand-text>span{font-size:12px}.site-footer{font-size:12px;padding:24px 16px}.voter-main{padding:26px 18px 32px}.button{font-size:15px}
 .access-layout{display:block;border:0;border-radius:0;background:transparent;min-height:0;overflow:visible}.access-intro{padding:0 0 24px;background:transparent;color:var(--navy);display:block;border-bottom:1px solid var(--border);margin:0}.access-intro h1{font-size:32px;margin-top:20px;max-width:none}.access-intro .subtitle{color:var(--slate);font-size:16px;margin-top:10px}.access-intro .status-pill{color:var(--success);background:#EAF7F0;border-color:#C4E6D5}.access-intro .status-pill.draft{color:var(--slate);background:#E9EEF6;border-color:var(--border)}.access-intro .status-pill.closed{background:#FFF5DF;color:#805300;border-color:#E8D6AC}
 .election-details{margin:20px 0 0;padding:0}.election-details>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px}.election-details dt{font-size:14px;color:var(--slate);margin:0}.election-details dd{font-size:14px;color:var(--navy);text-align:right}.election-details dd br{display:none}.election-details strong{display:block}.access-mode{display:none}.access-card{padding:26px 0 0;background:transparent}.access-card h2{font-size:25px}.access-card>p{font-size:15px;margin-top:10px}.access-card .privacy-card{margin-bottom:0}.privacy-card{padding:12px 0 12px 14px;margin:20px 0}.privacy-card strong,.privacy-card p{font-size:14px}
 .auth-layout{display:block;margin:0;border:0;border-radius:0;background:transparent;min-height:0}.auth-identity{display:none}.login-card{padding:12px 0 32px;margin:0}.login-card h1{font-size:34px}.login-card .section-label{margin-bottom:16px}
 .flow-steps{gap:24px;font-size:13px}.page-intro h1{font-size:29px}.candidate-grid{gap:12px;margin:22px 0}.candidate-card{grid-template-columns:82px minmax(0,1fr);min-height:114px;border-radius:9px}.portrait{width:82px;min-height:114px}.candidate-body{padding:17px 39px 17px 15px;justify-content:center}.candidate-body>strong{font-size:17px;line-height:1.35}.candidate-body>span{font-size:14px;line-height:1.45}.selection-mark{top:17px;right:11px;width:23px;height:23px}.candidate-card input{right:11px;top:17px}
 .ballot-actions{position:sticky;bottom:0;z-index:5;gap:10px;padding:15px 0 calc(15px + env(safe-area-inset-bottom));background:var(--background)}.selection-summary{font-size:13px;overflow-wrap:anywhere}.review-stage .ballot-actions{position:static;gap:12px}.review-choice{padding:20px;gap:18px}.review-choice h2{font-size:24px}.acknowledgement{font-size:15px}.confirmation{margin:26px auto 40px;padding:34px 22px 30px}.confirmation h1{font-size:30px}
 .admin-main{padding:26px 18px 36px}.admin-shell{display:block}.sidebar{box-shadow:8px 0 40px #111C3530}.sidebar nav a{font-size:15px}.nav-backdrop:not([hidden]){background:#111C3580}.page-heading{flex-wrap:wrap;gap:14px}.page-heading>.text-link{min-height:32px}.status-panel{grid-template-columns:1fr;padding:22px 20px;gap:24px;margin-bottom:24px}.status-panel h2{font-size:25px;margin-top:14px}.next-action .button{width:100%}
 .metrics{padding:0 0 24px;margin-bottom:26px;gap:0}.metrics article{padding:0 12px;border-radius:0}.metrics article>span{font-size:13px;min-height:36px}.metrics article>strong{font-size:32px;margin-top:8px}.metrics strong>span{font-size:18px}.dashboard-grid{grid-template-columns:1fr}.panel{padding:22px 18px}.panel-heading h2{font-size:18px}.panel-heading .text-link{min-height:28px;font-size:13px}.donut{width:132px;height:132px;padding:15px}.donut strong{font-size:24px}.legend dt{font-size:13px}.responsive-table td{font-size:14px}.responsive-table tr{border-radius:8px;padding:18px}.table-panel{padding:0}
 .live-grid{grid-template-columns:1fr;gap:20px}.live-donut{width:200px;height:200px;padding:22px}.live-donut strong{font-size:42px}.live-candidate{padding:14px 0;gap:10px}.live-candidate img{width:42px;height:52px}.live-candidate strong{font-size:14px}.live-candidate small{font-size:13px}.live-numbers strong{font-size:14px}.lead-banner{font-size:15px;min-height:76px}.live-caption{align-items:flex-start;gap:12px}.live-updated{width:112px;min-width:0;font-size:12px;max-width:none}
 .results-heading{display:block;padding-bottom:24px}.results-heading .status-pill{margin:20px 0 0}.results-heading h1{font-size:26px}.result-outcome{padding:28px 0;gap:20px;align-items:flex-start}.result-outcome h2{font-size:34px}.result-outcome .section-label{font-size:14px;margin-bottom:12px}.outcome-copy>p:last-child{font-size:14px;margin-top:14px}.outcome-portraits{max-width:29%;padding-top:30px}.outcome-portraits img{width:84px;height:112px;border-radius:6px}.outcome-portraits:has(img:nth-child(2)){flex-direction:column;padding-top:0}.outcome-portraits:has(img:nth-child(2)) img{width:54px;height:60px}.results-metrics{padding:24px 0;margin-bottom:0}.results-metrics article>strong{font-size:32px}.final-ranking{padding:26px 0 0}.result-row-heading h3{font-size:16px}.result-row-heading strong{font-size:14px}.result-row-heading p>span{font-size:13px}.results-end{display:block;padding-top:20px}.publication-time{font-size:13px}.results-end .text-link{margin-top:12px}
 .election-report{padding:24px 16px}.report-facts{gap:12px}.report-facts dt{font-size:13px}.report-facts dd{font-size:25px}.report-outcome h2{font-size:23px}.report-table{font-size:13px}.report-table th{font-size:12px}
}
@media(max-width:359px){
 .voter-main,.admin-main{padding-left:14px;padding-right:14px}.site-header{padding-left:14px;padding-right:14px}.layout-admin .brand-text>span,.layout-admin .brand-mark{display:none}.metrics article{padding:0 9px}.metrics article>strong{font-size:28px}.metrics strong>span{font-size:16px}.turnout-chart{gap:15px}.donut{width:112px;height:112px;padding:13px}.donut strong{font-size:21px}.live-candidate{gap:8px}.live-candidate img{width:34px;height:46px}.live-numbers strong{font-size:13px}.candidate-card{grid-template-columns:72px minmax(0,1fr)}.portrait{width:72px}.candidate-body{padding-left:12px}.candidate-body>strong{font-size:16px}.candidate-body>span{font-size:13px}.result-outcome h2{font-size:30px}.report-table{font-size:12px}
}
@media print{
 html,body{color:#111C35!important}.election-report{padding:0}.report-heading h1{font-size:25pt}.report-table th{background:#EEF2F8!important}.report-facts dd{font-size:22pt}.site-footer{border-color:#BEC9DB}.status-pill{color:#111C35!important}
}

.collection-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 22px}.collection-toolbar>div{width:min(100%,390px)}.collection-toolbar label{margin:0 0 8px}.collection-toolbar [role=status]{font-size:14px;color:var(--slate);padding-bottom:14px;white-space:nowrap}.button[aria-disabled=true]{cursor:wait;opacity:.7}form[aria-busy=true] .button{pointer-events:none}@media(max-width:639px){.collection-toolbar{align-items:flex-start;flex-direction:column;gap:8px}.collection-toolbar [role=status]{padding:0}.collection-toolbar>div{width:100%}}

.metrics strong>[data-turnout]{font:inherit;letter-spacing:inherit;margin:0}

.setup-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(180px,260px);gap:36px;align-items:start}.form-section-heading{display:flex;align-items:flex-start;gap:16px;margin-bottom:28px}.form-section-heading h2{font-size:20px}.form-section-heading p{font-size:14px;margin-top:6px}.form-number{color:var(--cobalt);font-size:14px;font-variant-numeric:tabular-nums;padding-top:4px}.form-field{margin-top:22px}.form-field label{margin:0 0 8px}.election-form>.button{margin-top:0}.setup-note{padding-top:20px;border-top:2px solid var(--border)}.setup-note h2{font-size:18px}.setup-note p,.setup-note li{font-size:14px;color:var(--slate);line-height:1.6}.setup-note p{margin-top:18px}.setup-note ol{padding-left:20px}.setup-note li+li{margin-top:14px}.frozen-settings{max-width:760px}.frozen-settings dl{margin-top:24px}.frozen-settings dl>div{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--border)}.frozen-settings dt{font-size:14px;color:var(--slate)}.frozen-settings dd{margin:0;font-size:15px}@media(max-width:1099px){.setup-layout{grid-template-columns:1fr}.setup-note{max-width:650px;padding-top:24px}}@media(max-width:639px){.frozen-settings dl>div{grid-template-columns:1fr;gap:8px}}

@media(max-width:639px){.candidate-card{scroll-margin-bottom:170px;scroll-margin-top:20px}.candidate-grid{padding-bottom:8px}}

@media(max-width:639px){.candidate-card{grid-template-columns:68px minmax(0,1fr);padding:12px;gap:14px;align-items:center;min-height:116px}.portrait{width:68px;height:88px;min-height:88px;border-radius:5px}.candidate-body{padding:0 31px 0 0}.selection-mark{top:50%;right:12px;transform:translateY(-50%)}.candidate-card input{top:50%;right:12px;transform:translateY(-50%)}.candidate-body>strong{font-size:17px}.page-intro h1{font-size:30px}.ballot-wrap .privacy-card{margin:22px 0}.candidate-grid{margin-bottom:22px}}

.identity-symbol{font-size:17px;font-weight:600;gap:14px;letter-spacing:-.02em}.auth-logo{width:44px;height:44px;object-fit:contain;background:white;border-radius:6px;padding:4px}

@media(min-width:640px){.sidebar{position:sticky;top:0;height:calc(100svh - 88px);align-self:start;overflow-y:auto}.admin-shell{background:linear-gradient(to right,var(--navy) 232px,transparent 232px)}.admin-main{background:var(--background)}}@media(min-width:640px) and (max-width:1099px){.sidebar{height:calc(100svh - 80px)}.admin-shell{background:linear-gradient(to right,var(--navy) 90px,transparent 90px)}}

/* Keep the disclosure and action in document flow; nothing can hide beneath it. */
@media(max-width:639px){.ballot-actions{position:static;z-index:auto}.candidate-card{scroll-margin-bottom:24px}}
.acknowledgement input{accent-color:var(--cobalt)}
.skip-link:not(:focus-visible){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0;top:0;left:0}.skip-link:focus-visible{clip-path:none;width:auto;height:auto;overflow:visible;top:12px;left:16px;padding:12px 18px}

/* Election controls and compact access surfaces. */
.compact-auth{max-width:460px;margin:0;align-self:start;padding:30px!important;background:white!important;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #111c3509}
.compact-auth h1{font-size:30px}
.access-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:48px;border:0;border-radius:0;background:transparent;overflow:visible;min-height:0;align-items:start;max-width:1020px;margin:0}
.access-intro{padding:6px 0 20px;background:transparent;color:var(--navy);display:block}
.access-intro h1{font-size:36px;margin-top:22px}.access-intro .subtitle{color:var(--slate);font-size:17px}
.access-intro .status-pill{background:#EDF1F7;color:var(--slate);border-color:var(--border)}.access-intro .status-pill.open{background:#EAF7F0;color:var(--success);border-color:#C4E6D5}.access-intro .status-pill i{background:currentColor}
.access-card{padding:30px;background:white;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #111c3509}.access-card h2{font-size:25px}
.election-details{padding-top:24px;margin:0}.election-details dt{color:var(--slate)}.election-details dd{color:var(--navy);font-size:16px}.access-mode{color:var(--slate);margin-top:24px}
.election-context{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 20px;margin-bottom:28px;border-bottom:1px solid var(--border)}.election-context>span:first-child{min-width:0}.election-context strong{display:block;font-size:15px;overflow-wrap:anywhere}.election-context>span>span{display:block;font-size:13px;color:var(--slate);margin-top:3px}
.election-controls{border-top:3px solid var(--cobalt)}.election-controls h3{font-size:20px;margin-bottom:10px}.election-controls .action-group{margin-top:22px}.election-controls .action-group form>.button{margin:0}.election-controls .copy-link .button{margin:0}
.turnout-panel{display:grid;grid-template-columns:1fr 1fr;gap:36px;padding:24px 28px;margin:0 0 28px;border:1px solid var(--border);background:white;border-radius:10px}
.ballots-figure>span,.turnout-figure>div>span{font-size:15px;font-weight:550}.ballots-figure>strong{display:block;font-size:42px;line-height:1.2;font-weight:650;letter-spacing:-.05em;font-variant-numeric:tabular-nums;margin:8px 0}.turnout-panel p{font-size:14px}.turnout-figure{border-left:1px solid var(--border);padding-left:36px;align-self:center}.turnout-figure>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.turnout-figure strong{font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.turnout-progress{height:8px;border-radius:4px;background:#E2E8F3;margin:14px 0;overflow:hidden}.turnout-progress>span{display:block;height:100%;background:var(--cobalt);transition:width .2s}
.position-progress{font-size:14px;font-weight:550;color:var(--cobalt);margin-bottom:12px}.position-title{margin-top:32px;border-top:2px solid var(--border);padding-top:24px;font-size:25px}.position-result .result-outcome h2{font-size:clamp(1.8rem,3.8vw,3.3rem)}
.position-editor form{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:18px;align-items:end}.position-editor label{margin:20px 0 0}.position-editor .button{margin:0}
.review-choice{break-inside:avoid}.record-choice{display:block;margin:5px 0;font-size:14px}.record-choice small{display:block;color:var(--slate);font-size:13px}
.sidebar{overflow:hidden}.sidebar nav{min-height:0;overflow-y:auto;flex:1;flex-shrink:1}.sidebar-bottom{flex-shrink:0}
@media(min-width:640px){.site-header{position:relative}.sidebar{height:100svh;top:0}}
@media(max-width:639px){
 .voter-main{padding-top:20px}.compact-auth{padding:24px!important;width:100%;max-width:none}.compact-auth h1{font-size:29px}
 .access-layout{display:block;margin:0}.access-intro{padding:0 0 20px;border:0}.access-intro h1{font-size:26px;margin-top:14px}.access-intro .subtitle{font-size:15px;margin-top:8px}.election-details{padding-top:16px}.election-details>div{gap:12px}.election-details dt,.election-details dd{font-size:13px}.election-details strong{display:inline}.election-details dd br{display:none}
 .access-card{padding:24px 20px}.access-card h2{font-size:24px}.access-card .privacy-card{margin-top:24px}
 .election-context{margin-bottom:24px;padding-bottom:18px}.election-controls .action-group{flex-direction:column;align-items:stretch}.election-controls .action-group .button,.election-controls .action-group form{width:100%}
 .turnout-panel{grid-template-columns:1fr;gap:20px;padding:22px}.turnout-figure{border-left:0;border-top:1px solid var(--border);padding:18px 0 0}.ballots-figure>strong{font-size:40px}.turnout-figure strong{font-size:26px}
 .position-editor form{grid-template-columns:1fr 90px}.position-editor form>.button{grid-column:1/-1}.ballot-actions>.action-group{width:100%;flex-direction:column;align-items:stretch}.ballot-actions>.action-group>.button{width:100%;min-width:0}.position-title{font-size:24px}
 .sidebar{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));transition:transform .16s ease,visibility 0s linear .16s}.nav-open .sidebar{transition:transform .16s ease,visibility 0s;visibility:visible}.sidebar-bottom{margin-top:12px;padding-top:16px}.sidebar-bottom form{margin:0}.signed-in{margin-bottom:10px}.sidebar nav a{min-height:46px}.drawer-heading{padding-bottom:16px}
}
@media print{.position-title,.report-outcome{break-after:avoid}.position-result{break-inside:avoid}.position-result+.position-result{break-before:auto}}

.election-context{position:sticky;top:0;z-index:15;background:var(--background);padding-top:12px}

@media(min-width:1100px){.sidebar{height:calc(100svh - 88px)}}@media(min-width:640px) and (max-width:1099px){.sidebar{height:calc(100svh - 80px)}}

.sidebar-election{padding:0 12px 20px;flex-shrink:0}.sidebar-election strong{display:block;font-size:14px;font-weight:550;color:white;line-height:1.4;overflow-wrap:anywhere}.sidebar-election>span{display:block;font-size:13px;color:#BDCBE3;margin-top:8px}.sidebar-election>span>span{display:block;color:#D8E4FC;font-weight:550;margin-top:4px}@media(min-width:640px) and (max-width:1099px){.sidebar-election{padding:0 2px 16px;text-align:center}.sidebar-election strong{display:none}.sidebar-election>span{font-size:12px;margin:0}}

/* Compact admin shell. Voter and public layouts retain their own header. */
.admin-app-bar{height:60px;position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:16px;padding:0 24px;background:white;border-bottom:1px solid var(--border)}
.sidebar-toggle,.account-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;width:44px;height:44px;border:0;background:transparent;border-radius:8px;color:var(--navy);padding:10px;flex-shrink:0}
.sidebar-toggle:hover{background:var(--blue-soft)}.sidebar-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.app-bar-title{font-size:17px;font-weight:600;letter-spacing:-.02em}.account{margin-left:auto;position:relative}.account-toggle{border-radius:50%;background:var(--blue-soft);color:var(--cobalt);font-size:14px;font-weight:650;padding:0}.account-toggle:hover,.account-toggle[aria-expanded=true]{background:#D8E4FF}
.account-menu{position:absolute;right:0;top:calc(100% + 10px);width:232px;padding:8px;background:white;border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 38px #111C351A;z-index:45}
.account-identity{padding:12px 12px 15px;border-bottom:1px solid var(--border);margin-bottom:6px;overflow-wrap:anywhere}.account-identity>span{display:block;font-size:13px;color:var(--slate)}.account-identity strong{display:block;font-size:14px;margin-top:4px;font-weight:600}
.account-menu a,.account-menu form button{display:flex;gap:12px;align-items:center;width:100%;min-height:46px;padding:12px;border:0;border-radius:6px;background:transparent;color:var(--navy);font-size:15px;text-align:left;font-weight:500}.account-menu a:hover,.account-menu form button:hover{background:var(--blue-soft)}.account-menu form{margin:0}
.layout-admin .admin-shell{min-height:calc(100svh - 60px);grid-template-columns:224px minmax(0,1fr);background:linear-gradient(to right,var(--navy) 224px,transparent 224px)}
.layout-admin .sidebar{top:60px;height:calc(100svh - 60px)}
.layout-admin .admin-main{padding:30px 32px 40px}
.layout-admin .election-context:not(.overview-heading){top:60px}
.overview-heading.election-context{position:static;padding:0;margin:0 0 24px;border:0;display:flex;align-items:flex-end;gap:24px;background:transparent}
.overview-heading>div{min-width:0}.overview-heading h1{font-size:30px;line-height:1.22;letter-spacing:-.035em;margin:0 0 12px;max-width:680px;overflow-wrap:anywhere}
.overview-heading .controls-link{min-height:44px;padding:11px 16px;font-size:14px;white-space:nowrap;flex-shrink:0}
.overview-heading>div>.status-pill{display:inline-flex;margin:0}.overview-heading .status-pill i{display:block}
.overview-charts{max-width:1100px}.turnout-overview{padding:24px 28px}.turnout-overview .panel-heading{margin-bottom:22px}.turnout-overview .panel-heading h2{font-size:19px}
.turnout-content{display:flex;align-items:center;gap:34px}.turnout-donut{width:168px;height:168px;padding:19px;background:conic-gradient(var(--cobalt) var(--turnout),#E4EAF4 0);margin:0}
.turnout-donut strong{font-size:35px;line-height:1.2}.turnout-donut span{font-size:13px}.turnout-details>p{font-size:14px}.turnout-count{display:block;font-size:32px;line-height:1.25;font-weight:650;letter-spacing:-.035em;margin:6px 0 12px;font-variant-numeric:tabular-nums}.turnout-count .eligible-count{font-size:21px;font-weight:450;color:var(--slate);letter-spacing:-.02em}
.turnout-percent{margin:0 0 7px}.turnout-percent strong{color:var(--navy);font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}.turnout-note{font-size:14px;padding-top:18px;margin-top:20px;border-top:1px solid var(--border);min-height:41px}
.anonymous-totals-note{font-size:14px;padding:0 2px 24px;max-width:650px}.prepared-results h3{font-size:20px}.controls-page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.controls-page-heading h1{font-size:28px}
.sidebar-compact .admin-shell{grid-template-columns:84px minmax(0,1fr);background:linear-gradient(to right,var(--navy) 84px,transparent 84px)}
.sidebar-compact .sidebar{padding:20px 7px}.sidebar-compact .sidebar nav a{flex-direction:column;justify-content:center;text-align:center;padding:10px 3px;font-size:12px;gap:7px;min-height:70px}.sidebar-compact .signed-in{display:none}.sidebar-compact .sidebar-bottom{padding:22px 2px 0}.sidebar-compact .sidebar-bottom>.button,.sidebar-compact .sidebar-bottom .text-button{font-size:12px;padding:10px 4px}
@media(min-width:640px) and (max-width:1099px){
 .layout-admin .admin-shell{grid-template-columns:84px minmax(0,1fr);background:linear-gradient(to right,var(--navy) 84px,transparent 84px)}.layout-admin .admin-main{padding:26px 24px 36px}
 .overview-heading.election-context{align-items:flex-start;gap:18px}.overview-heading h1{font-size:26px}.overview-heading .controls-link{max-width:144px;white-space:normal}
 .sidebar-expanded .admin-shell{grid-template-columns:224px minmax(0,1fr);background:linear-gradient(to right,var(--navy) 224px,transparent 224px)}
 .sidebar-expanded .sidebar{padding:24px 16px}.sidebar-expanded .sidebar nav a{flex-direction:row;text-align:left;justify-content:flex-start;font-size:14px;min-height:48px;padding:12px;gap:12px}.sidebar-expanded .signed-in{display:block}.sidebar-expanded .sidebar-bottom{padding:24px 6px 0}
 .sidebar-expanded .overview-heading{display:block}.sidebar-expanded .controls-link{margin-top:16px}.sidebar-expanded .turnout-content{gap:20px;flex-wrap:wrap}
}
@media(max-width:639px){
 .admin-app-bar{height:56px;padding:0 16px;gap:12px}.app-bar-title{font-size:16px}.account-toggle{width:38px;height:38px;min-width:38px}.sidebar-toggle{margin-left:-6px}
 .layout-admin .admin-shell{display:block;min-height:calc(100svh - 56px);background:var(--background)}.layout-admin .admin-main{padding:22px 18px 32px}.layout-admin .sidebar{top:0;height:100svh}
 .overview-heading.election-context{display:block;margin-bottom:20px}.overview-heading h1{font-size:25px;line-height:1.23;margin-bottom:12px}.overview-heading>div{display:block}.overview-heading .controls-link{margin-top:16px;font-size:14px;min-height:42px;padding:10px 14px}
 .turnout-overview{padding:21px 20px}.turnout-overview .panel-heading{margin-bottom:20px}.turnout-overview .panel-heading h2{font-size:18px}.turnout-overview .panel-heading>span{font-size:13px}
 .turnout-content{gap:22px;justify-content:flex-start}.turnout-donut{width:130px;height:130px;padding:15px}.turnout-donut strong{font-size:29px}.turnout-donut span{font-size:12px}.turnout-count{font-size:29px;margin-top:6px}.turnout-count .eligible-count{font-size:19px}.turnout-percent strong{font-size:18px}.turnout-details>p{font-size:13px}
 .turnout-note{font-size:13px;margin-top:19px;padding-top:15px;min-height:37px}.overview-charts .live-donut{width:160px;height:160px;padding:18px}.overview-charts .live-donut strong{font-size:35px}.overview-charts .live-grid{gap:20px}
 .controls-page-heading{display:block}.controls-page-heading h1{font-size:27px}.controls-page-heading>.text-link{margin-top:10px}
}
@media(max-width:359px){.turnout-content{gap:16px}.turnout-donut{width:108px;height:108px;padding:13px}.turnout-count{font-size:27px}.turnout-count .eligible-count{font-size:18px}.turnout-overview{padding:20px 16px}.overview-heading h1{font-size:24px}}
@media print{.admin-app-bar{display:none!important}}

/* Navigation width and dashboard rows share the same content boundaries. */
.layout-admin{--sidebar-width:256px}
.layout-admin .admin-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr);background:linear-gradient(to right,var(--navy) var(--sidebar-width),transparent var(--sidebar-width))}
.layout-admin .sidebar{width:100%;min-width:0;overflow:hidden}
.sidebar nav{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.sidebar nav a{flex:0 0 auto;min-width:0;white-space:nowrap}
.sidebar nav a>span{min-width:0}
.sidebar .drawer-heading{flex-shrink:0}
.sidebar .sidebar-bottom{margin-top:auto;padding:16px 0 0;flex-shrink:0}
.sidebar .sidebar-voter-link{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;white-space:nowrap}
.sidebar-compact{--sidebar-width:84px}
.sidebar-compact .sidebar nav a,.sidebar-compact .sidebar-voter-link{min-height:50px;padding:13px;gap:0}
.sidebar-compact .sidebar nav a>span,.sidebar-compact .sidebar-voter-link>span{display:none}
.overview-charts{width:100%;max-width:none}
.overview-results{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin-bottom:24px}
.overview-results>.panel{min-width:0;width:100%;margin:0}
@media(min-width:1280px){
 .overview-results:has(>section:nth-of-type(2)){grid-template-columns:repeat(2,minmax(0,1fr))}
 .overview-results:has(>section:nth-of-type(2)) .live-grid{grid-template-columns:minmax(0,1fr)}
 .overview-results:has(>section:nth-of-type(2)) .live-donut{margin:auto}
 .overview-results>section:last-of-type:nth-of-type(odd){grid-column:1/-1}
}
@media(min-width:640px) and (max-width:1099px){
 .layout-admin{--sidebar-width:84px}
 .layout-admin .sidebar nav a,.layout-admin .sidebar-voter-link{min-height:50px;padding:13px;gap:0}
 .layout-admin .sidebar nav a>span,.layout-admin .sidebar-voter-link>span{display:none}
 .layout-admin.sidebar-expanded{--sidebar-width:256px}
 .sidebar-expanded .sidebar nav a,.sidebar-expanded .sidebar-voter-link{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px;min-height:48px}
 .sidebar-expanded .sidebar nav a>span,.sidebar-expanded .sidebar-voter-link>span{display:inline}
}
@media(max-width:639px){
 .layout-admin .admin-shell{background:var(--background)}
 .layout-admin .sidebar{width:min(320px,calc(100vw - 38px))}
 .layout-admin .election-context:not(.overview-heading){top:56px}
}

/* A shared, content-sized floating surface for all access screens. */
.layout-access{min-height:100svh;display:flex;flex-direction:column}
.layout-access .site-header{height:auto;min-height:80px;flex-shrink:0;padding:16px max(16px,4vw)}
.layout-access .brand-text{max-width:65ch}
.layout-access .site-footer{flex-shrink:0}
.layout-access .voter-main{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;width:100%;max-width:none;min-height:0;margin:0;padding:40px 16px}
.access-surface,.access-layout.access-surface{width:100%;max-width:472px;min-width:0;min-height:0;margin:0;border:1px solid var(--border);border-radius:14px;background:white;box-shadow:0 12px 40px #111C350B,0 2px 6px #111C3505}
.access-layout.access-surface{display:block;overflow:visible}
.login-card.access-surface{padding:32px}
.access-surface h1,.access-surface h2{font-size:27px;line-height:1.23;letter-spacing:-.025em;overflow-wrap:anywhere}
.access-surface .section-label{font-size:13px;margin:0 0 12px}
.access-election-name{overflow-wrap:anywhere;font-size:15px;line-height:1.55}
.access-context-status{white-space:nowrap;color:var(--slate)}
.access-surface .access-intro{display:block;background:transparent;color:var(--navy);border:0;border-bottom:1px solid var(--border);padding:26px 32px 20px;margin:0}
.access-surface .access-intro h1{font-size:21px;max-width:none;line-height:1.3;margin:12px 0 0}
.access-surface .access-intro .subtitle{font-size:14px;line-height:1.5;color:var(--slate);margin:6px 0 0}
.access-surface .access-intro .status-pill{background:#EDF1F7;border-color:var(--border);color:var(--slate);font-size:12px;padding:5px 9px}
.access-surface .access-intro .status-pill.open{background:#EAF7F0;border-color:#C4E6D5;color:var(--success)}
.access-surface .access-intro .status-pill i{background:currentColor}
.access-surface .election-details{padding:0;margin:12px 0 0;display:block}
.access-surface .election-details>div{display:flex;flex-wrap:wrap;gap:4px 8px}
.access-surface .election-details dt,.access-surface .election-details dd{font-size:13px;line-height:1.5;color:var(--slate);margin:0}
.access-surface .election-details dd br{display:none}
.access-surface .election-details dd strong{display:inline;font-weight:500;margin-left:.35em}
.access-surface .access-mode{font-size:12px;margin:9px 0 0;color:var(--slate)}
.access-surface>.access-card{padding:24px 32px 30px;border:0;border-radius:0 0 14px 14px;box-shadow:none;background:transparent}
.access-surface .access-card>p{font-size:14px;line-height:1.5;margin-top:8px}
.access-surface label{font-size:15px;line-height:1.4;margin:18px 0 8px}
.access-surface input:not([type=checkbox]):not([type=radio]){min-height:52px;line-height:24px;font-size:16px}
.access-surface .password-toggle{top:4px;right:4px;height:44px;min-height:44px;margin:0;display:flex;align-items:center;justify-content:center}
.access-surface input:autofill{border-color:#9FB2D5}
.access-surface .helptext{font-size:13px;line-height:1.5}
.access-surface form>.button{margin-top:22px;min-height:52px}
.access-surface .return-link{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;font-size:14px}
.access-surface .error{padding:13px 14px;margin:18px 0;overflow-wrap:anywhere}
.access-surface .errorlist{list-style:none;padding:0;margin:0}
.layout-access .admin-link{margin:12px 0 0;font-size:13px}
.access-surface .access-intro>.button{margin-top:16px}
@media(max-width:639px){
 .layout-access .site-header{min-height:72px;padding:12px 16px}
 .layout-access .voter-main{padding:20px 16px 28px;justify-content:flex-start}
 .login-card.access-surface{padding:26px 24px}
 .access-surface .access-intro{padding:22px 24px 18px}
 .access-surface>.access-card{padding:22px 24px 26px}
 .access-surface h1,.access-surface h2{font-size:25px}
 .access-surface .access-intro h1{font-size:20px}
}
@media(max-height:650px){.layout-access .voter-main{justify-content:flex-start;padding-top:20px;padding-bottom:24px}}
/* Supplied placeholder presentation preserves the full, uniformly scaled silhouette. */
img[data-candidate-photo]{background:#DBDBDB}
img.supplied-placeholder,img[data-candidate-photo][src*="/images/placeholders/"]{object-fit:contain!important;object-position:center!important;background:#DBDBDB}
.report-candidate{display:flex;align-items:center;gap:10px}
.report-candidate img{width:34px;height:42px;flex-shrink:0;border-radius:3px}
@media print{.report-candidate img{width:24px;height:29px}.report-candidate{gap:7px}}

/* VIFEX Elections: full navy navigation and a composed database-driven overview. */
:root{--navy:#121D34;--cobalt:#3159CE;--blue-soft:#EDF2FF;--background:#F5F7FB;--border:#E2E7F0;--slate:#67758E}
.layout-admin{--sidebar-width:252px;background:var(--background)}
.layout-admin .admin-app-bar{height:68px;margin-left:var(--sidebar-width);padding:0 32px;z-index:40}
.layout-admin .admin-shell{display:block;margin:0 0 0 var(--sidebar-width);max-width:none;min-height:calc(100svh - 145px);background:var(--background)}
.layout-admin .admin-main{width:100%;max-width:1600px;margin:0 auto;padding:30px 32px 40px}
.layout-admin .sidebar{position:fixed;top:0;bottom:0;left:0;width:var(--sidebar-width);height:100svh;padding:0 16px 20px;background:var(--navy);z-index:50;border:0;border-radius:0}
.layout-admin .site-footer{margin-left:var(--sidebar-width);font-size:12px;padding:23px 16px}
.sidebar-brand{height:86px;min-height:86px;display:flex;align-items:center;gap:11px;padding:0 8px;color:white;font-size:19px;font-weight:650;letter-spacing:-.035em;white-space:nowrap}
.vifex-mark{display:grid;place-items:center;width:35px;height:35px;flex-shrink:0;border-radius:9px;background:#416CE0;color:white;font-size:23px;font-weight:750;letter-spacing:-.08em;line-height:1}
.sidebar-brand>.vifex-mark{background:#355DCF;box-shadow:inset 0 0 0 1px #FFFFFF12}
.layout-admin .sidebar nav{gap:7px;padding:6px 0;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto}
.layout-admin .sidebar nav a{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:13px;min-height:48px;padding:12px 14px;font-size:14px;text-align:left;white-space:nowrap;flex-shrink:0;border-radius:7px;color:#BDCAE1}
.layout-admin .sidebar nav a[aria-current=page]{background:#2E54BE;color:white;font-weight:600}
.layout-admin .sidebar nav a:hover{background:#22324E;color:white}
.layout-admin .sidebar nav a[aria-current=page]:hover{background:#355ECF}
.layout-admin .sidebar nav a>span{display:inline;min-width:0}
.layout-admin .sidebar .sidebar-bottom{padding:20px 0 0;margin-top:auto}
.layout-admin .sidebar-voter-link{font-size:13px;min-height:44px;border-color:#4A5B78;background:transparent;color:#D4DFF2}
.layout-admin .sidebar-voter-link>span{display:inline}
.layout-admin .sidebar-voter-link:hover{background:#22324E}
.layout-admin .election-context:not(.overview-heading){top:68px}
.layout-admin .overview-heading{margin-bottom:24px;align-items:center}
.overview-heading h1{font-size:27px;letter-spacing:-.04em;line-height:1.25;margin-bottom:10px}
.overview-heading .controls-link{font-size:13px;min-height:42px;background:white;padding:10px 14px;gap:9px}
.overview-heading .controls-link .nav-icon{width:17px;height:17px}
.status-pill{font-size:12px;border-radius:5px;padding:5px 10px}
.status-pill.draft{color:#9A6A20;background:#FFF5DF;border-color:#F0DDAE}
.status-pill.draft i{background:#C6953E}
.overview-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}
.summary-card{min-width:0;display:flex;justify-content:space-between;gap:10px;padding:22px 20px;background:white;border:1px solid var(--border);border-radius:10px;box-shadow:0 2px 3px #17233D02}
.summary-card>div{min-width:0}
.summary-card>div>span{display:block;font-size:13px;font-weight:500;color:var(--slate)}
.summary-card strong{display:block;margin:10px 0 6px;font-size:32px;font-weight:650;letter-spacing:-.045em;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--navy)}
.summary-card .metric-unit{font-size:23px;font-weight:550;margin-left:1px}
.summary-card small{font-size:11px;line-height:1.5;color:#7A879C}
.summary-icon{width:37px;height:37px;padding:8px;flex-shrink:0;fill:none;stroke:#7587AE;stroke-width:1.6;border-radius:8px;background:#F2F5FA;align-self:flex-start}
.summary-card.primary{background:var(--navy);border-color:var(--navy)}
.summary-card.primary>div>span{color:#CDD7EA}.summary-card.primary strong{color:white}.summary-card.primary small{color:#9EAFCB}
.summary-card.primary .summary-icon{color:#BDCEF3;stroke:currentColor;background:#25344F}
.overview-primary-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-bottom:28px;align-items:stretch}
.overview-primary-row>.panel{margin:0;min-width:0;padding:24px;border:1px solid var(--border);border-radius:10px;background:white;box-shadow:0 2px 3px #17233D02}
.overview-primary-row .panel-heading{margin-bottom:22px;gap:12px}
.overview-primary-row .panel-heading h2{font-size:17px;font-weight:600;letter-spacing:-.025em}
.overview-primary-row .panel-heading>span{font-size:12px;white-space:nowrap}
.turnout-overview{display:flex;flex-direction:column}
.turnout-overview .turnout-content{gap:26px;flex:1;justify-content:center}
.turnout-overview .turnout-donut{width:158px;height:158px;padding:18px}
.turnout-overview .turnout-donut strong{font-size:29px;line-height:1.2}
.turnout-donut .ring-percent{font-size:21px!important;color:var(--navy);margin:0}
.turnout-overview .turnout-donut>div>span:not(.sr-only){font-size:12px}
.turnout-legend{flex:1;max-width:230px;min-width:0}
.turnout-legend>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font-size:13px}
.turnout-legend dt{display:flex;align-items:center;gap:9px;color:var(--slate);font-size:13px}
.turnout-legend dd{margin:0;color:var(--navy);font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.turnout-legend .legend-dot{width:8px;height:8px;flex-shrink:0}
.turnout-legend .legend-total{border-top:1px solid var(--border);margin-top:5px}
.overview-primary-row .turnout-note{margin-top:20px;padding-top:15px;font-size:12px;min-height:0}
.setup-progress{display:flex;flex-direction:column}
.setup-meter{height:5px;background:#E9EEF6;border-radius:4px;overflow:hidden;margin-bottom:15px}
.setup-meter>span{display:block;height:100%;background:#648E78}
.setup-progress ul{list-style:none;margin:0 0 19px;padding:0}
.setup-progress li a{display:flex;align-items:center;gap:10px;min-height:39px;font-size:13px;padding:7px 0}
.setup-progress li a:hover{color:var(--cobalt)}
.setup-check{width:19px;height:19px;display:grid;place-items:center;flex-shrink:0;border:1px solid #CED7E6;border-radius:50%;font-size:12px;color:#8290A6}
.setup-progress .done .setup-check{color:#4B8065;background:#EBF4EF;border-color:#D9E9DE}
.setup-progress li small{margin-left:auto;font-size:11px;color:#8791A1}
.setup-progress .done small{color:#56836A}
.setup-progress .preview-ballot-link{width:100%;min-height:41px;margin-top:auto;font-size:13px;gap:9px}
.setup-progress .preview-ballot-link .nav-icon{width:17px;height:17px}
.election-next{display:flex;flex-direction:column}
.election-next>p{font-size:14px;color:var(--slate)}
.election-next dl{margin:20px 0}.election-next dt{font-size:12px;color:var(--slate)}.election-next dd{font-size:14px;margin:5px 0}
.election-next>.button{align-self:flex-start;margin-top:auto;font-size:13px;min-height:42px}
.overview-position-section{margin-bottom:28px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}
.section-heading h2{font-size:19px;letter-spacing:-.025em}.section-heading .text-link{font-size:12px}
.position-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.position-panel{margin:0;padding:21px 20px;min-width:0;border:1px solid var(--border);border-radius:10px}
.position-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid #EDF0F6}
.position-panel-heading h3{font-size:17px;font-weight:600;letter-spacing:-.025em;overflow-wrap:anywhere}
.position-panel-heading p{font-size:12px;line-height:1.4;color:var(--slate);margin-top:4px}
.position-edit{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border-radius:6px;color:#7B8BA7}
.position-edit:hover{background:var(--blue-soft);color:var(--cobalt)}
.position-edit .nav-icon{width:17px;height:17px}
.position-candidates{display:grid;gap:14px}
.position-candidate{display:flex;align-items:center;gap:12px;min-width:0}
.position-candidate img{width:48px;height:57px;flex-shrink:0;border-radius:5px;border:1px solid #D5DAE2}
.position-candidate strong{font-size:13px;font-weight:550;line-height:1.45;overflow-wrap:anywhere;min-width:0}
.recent-activity .panel-heading h2{font-size:17px}.recent-activity .panel-heading .text-link{font-size:12px}
.recent-activity li{padding:12px 0}.recent-activity li strong{font-size:13px}.recent-activity li span{font-size:12px}
.client-brand{margin-left:auto}.client-logo{display:block;width:48px;height:48px;object-fit:contain}
.report-pending{max-width:850px}.report-pending>svg{color:var(--cobalt);width:28px;height:28px;margin-bottom:20px}.report-pending p{margin:15px 0 25px}
@media(min-width:1100px){
 .layout-admin.sidebar-compact{--sidebar-width:84px}
 .sidebar-compact .sidebar-brand{justify-content:center;padding:0}.sidebar-compact .sidebar-brand>span:last-child{display:none}
 .layout-admin.sidebar-compact .sidebar{padding-left:10px;padding-right:10px}
 .layout-admin.sidebar-compact .sidebar nav a{justify-content:center;min-height:50px;padding:13px;gap:0}
 .layout-admin.sidebar-compact .sidebar nav a>span,.layout-admin.sidebar-compact .sidebar-voter-link>span{display:none}
}
@media(min-width:640px) and (max-width:1099px){
 .layout-admin{--sidebar-width:84px}
 .layout-admin .sidebar{padding-left:10px;padding-right:10px}
 .sidebar-brand{justify-content:center;padding:0}.sidebar-brand>span:last-child{display:none}
 .layout-admin .sidebar nav a{justify-content:center;min-height:50px;padding:13px;gap:0}
 .layout-admin .sidebar nav a>span,.layout-admin .sidebar-voter-link>span{display:none}
 .layout-admin .admin-app-bar{padding:0 24px}
 .layout-admin .admin-main{padding:26px 24px 36px}
 .overview-summary{gap:12px}.summary-card{padding:18px 15px}.summary-icon{width:30px;height:30px;padding:6px}.summary-card strong{font-size:29px}
 .turnout-overview .turnout-content{gap:16px}.turnout-overview .turnout-donut{width:132px;height:132px;padding:15px}
 .overview-primary-row{gap:18px}.overview-primary-row>.panel{padding:21px}
 .layout-admin.sidebar-expanded{--sidebar-width:252px}
 .sidebar-expanded .sidebar-brand{justify-content:flex-start;padding:0 8px}.sidebar-expanded .sidebar-brand>span:last-child{display:inline}
 .layout-admin.sidebar-expanded .sidebar nav a{justify-content:flex-start;gap:13px}
 .layout-admin.sidebar-expanded .sidebar nav a>span,.layout-admin.sidebar-expanded .sidebar-voter-link>span{display:inline}
}
@media(min-width:640px) and (max-width:899px){
 .overview-primary-row{grid-template-columns:minmax(0,1fr)}
 .position-panels{grid-template-columns:repeat(2,minmax(0,1fr))}
 .position-panel:last-child:nth-child(odd){grid-column:1/-1}
 .summary-icon{display:none}.summary-card>div>span{font-size:12px}.summary-card small{font-size:10px}
}
@media(max-width:639px){
 .layout-admin{--sidebar-width:0px}
 .layout-admin .admin-app-bar{height:58px;margin-left:0;padding:0 16px}
 .layout-admin .admin-shell,.layout-admin .site-footer{margin-left:0}
 .layout-admin .admin-main{padding:22px 16px 30px}
 .layout-admin .sidebar{width:min(310px,calc(100vw - 36px));top:0;height:100svh;padding:0 14px 18px;z-index:60}
 .sidebar-brand{height:77px;min-height:77px;justify-content:flex-start;padding:0 8px;font-size:20px}
 .sidebar-brand>span:last-child{display:inline}
 .sidebar .drawer-heading{display:flex;position:absolute;top:23px;right:17px;padding:0;margin:0}
 .drawer-heading>span{display:none}
 .drawer-heading .close-menu{display:grid;place-items:center;width:34px;height:34px;padding:7px;background:transparent;color:#D3DEF0;border:0;border-radius:6px;min-height:34px}
 .sidebar-brand .vifex-mark{width:29px;height:29px;font-size:20px}
 .sidebar-brand{font-size:18px;gap:9px}.sidebar-brand>span:last-child{max-width:180px}
 .layout-admin .sidebar nav a{font-size:14px;min-height:48px;padding:12px 14px}
 .layout-admin .election-context:not(.overview-heading){top:58px}
 .layout-admin .overview-heading{margin-bottom:20px;display:block}
 .overview-heading h1{font-size:24px;line-height:1.25;margin-bottom:10px}
 .overview-heading .controls-link{margin-top:14px;font-size:13px;min-height:40px}
 .overview-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}
 .summary-card{padding:17px 16px;gap:6px;border-radius:9px}
 .summary-card>div>span{font-size:12px}.summary-card strong{font-size:29px;margin:9px 0 5px}.summary-card small{font-size:10px}.summary-card .metric-unit{font-size:20px}
 .summary-icon{width:29px;height:29px;padding:6px}
 .overview-primary-row{grid-template-columns:minmax(0,1fr);gap:20px;margin-bottom:24px}
 .overview-primary-row>.panel{padding:22px 20px}
 .overview-primary-row .panel-heading h2{font-size:17px}.overview-primary-row .panel-heading>span{font-size:11px}
 .turnout-overview .turnout-donut{width:132px;height:132px;padding:16px}
 .turnout-overview .turnout-donut strong{font-size:27px}.turnout-overview .turnout-content{gap:24px}
 .turnout-legend dt{font-size:12px}.turnout-legend dd{font-size:16px}.turnout-legend>div{gap:10px;padding:10px 0}
 .setup-progress li a{min-height:44px;font-size:13px}.setup-progress li small{font-size:11px}
 .setup-progress .preview-ballot-link{min-height:44px}
 .position-panels{grid-template-columns:minmax(0,1fr);gap:16px}.position-panel:last-child:nth-child(odd){grid-column:auto}
 .section-heading h2{font-size:18px}.section-heading .text-link{font-size:12px}
 .position-panel{padding:21px}.position-panel-heading h3{font-size:18px}
 .position-candidate img{width:52px;height:62px}.position-candidate strong{font-size:14px}
 .position-edit{width:40px;height:40px}
 .layout-admin .site-footer{padding:22px 16px;font-size:11px}
}
@media(max-width:374px){.summary-icon{display:none}.turnout-overview .turnout-content{gap:16px}.turnout-overview .turnout-donut{width:118px;height:118px;padding:14px}.turnout-legend dt{font-size:11px}}
@media print{.layout-admin .admin-shell,.layout-admin .site-footer{margin-left:0}.layout-admin .sidebar{display:none!important}}

/* Continue the full navy column beyond the viewport on long overview pages. */
.layout-admin{background:linear-gradient(to right,var(--navy) var(--sidebar-width),var(--background) var(--sidebar-width))}
.turnout-donut strong [data-turnout]{font:inherit;letter-spacing:inherit;color:inherit;margin:0}
.summary-card small{font-size:12px}
@media(max-width:1099px){.summary-card small{font-size:11px}}

.position-editor{scroll-margin-top:150px}
@media(max-width:639px){.sidebar .drawer-heading{top:17px;right:13px}.drawer-heading .close-menu{width:44px;height:44px;min-height:44px}}


/* Member portal B: a single compact identity and form, shared by all access pages. */
.layout-access{background:radial-gradient(ellipse at 50% 0,#E4EAF6 0,#F2F5FA 65%);min-height:100svh;display:flex;flex-direction:column}
.layout-access .voter-main{width:100%;max-width:none;flex:1;display:flex;flex-direction:column;justify-content:center;padding:36px 20px 18px;margin:0;min-height:0}
.portal-shell{width:100%;max-width:472px;margin:0 auto;min-width:0}
.portal-identity{isolation:isolate;position:relative;overflow:hidden;min-height:218px;padding:27px 28px 42px;background:#0E1930;border-radius:16px 16px 0 0;color:white}
.portal-brand{position:relative;z-index:1;display:flex;align-items:center;gap:9px;color:white;font-size:16px;font-weight:550;width:fit-content;min-height:32px}
.portal-brand .vifex-mark{width:28px;height:28px;font-size:18px}
.portal-election{position:relative;z-index:1;max-width:74%;margin-top:17px}
.portal-election h1{font-size:24px;line-height:1.25;letter-spacing:-.035em;color:white;overflow-wrap:anywhere;margin:0 0 13px}
.portal-election .status-pill{font-size:12px;border:0;border-radius:30px;line-height:1.4;max-width:100%}
.ballot-art{position:absolute;z-index:0;right:-34px;bottom:-25px;width:218px;height:218px;object-fit:contain;pointer-events:none;mix-blend-mode:lighten}
.portal-client-logo{position:absolute;right:22px;top:22px;width:36px;height:36px;object-fit:contain;background:white;border-radius:7px;padding:3px}
.layout-access .portal-form{position:relative;z-index:2;width:calc(100% - 24px);max-width:none;margin:-18px auto 0;padding:28px;background:white;border:1px solid #DFE5EF;border-radius:13px;box-shadow:0 16px 36px #111C3517;align-self:auto}
.layout-access .portal-form h2{font-size:25px;line-height:1.2;letter-spacing:-.035em;margin:0 0 10px;color:var(--navy)}
.portal-form>p{font-size:14px;line-height:1.6;color:var(--slate);margin:0 0 20px}
.portal-form form{margin:18px 0 0}.portal-form .form-field{margin:0 0 17px}
.portal-form label{font-size:14px;display:block;margin:17px 0 7px;font-weight:600}
.portal-form input:not([type=hidden]),.portal-form select{min-height:52px;width:100%;font-size:16px;margin:0;border-radius:7px;background-color:#FCFDFF}
.portal-form .password-field{margin:0}.portal-form .password-toggle{top:4px;right:4px;height:44px;line-height:1.3}
.portal-form .button.full{min-height:50px;width:100%;margin-top:22px;font-size:15px}
.portal-form .helptext{font-size:12px;line-height:1.5;margin-top:8px}
.portal-form .error,.portal-form .errorlist{font-size:14px;overflow-wrap:anywhere}
.portal-form .errorlist{list-style:none;padding:0;margin:7px 0;color:var(--error)}
.portal-form .return-link{display:flex;justify-content:center;margin:16px 0 0;min-height:44px}
.portal-form .registration-link{display:flex;justify-content:center;align-items:center;min-height:44px;margin-top:12px;font-size:14px;color:var(--cobalt);text-decoration:underline}
.portal-form .registration-status{font-size:13px;text-align:center;margin:14px 0;color:var(--slate)}
.portal-form .access-closing{font-size:12px;margin:19px 0 0;padding-top:16px;border-top:1px solid var(--border)}
.portal-form .privacy-card{margin:20px 0 0;padding:10px 0 10px 12px}.portal-form .privacy-card p{font-size:13px;line-height:1.6}.portal-form .privacy-card strong{font-size:13px}
.portal-shell>.admin-link{display:flex;justify-content:center;align-items:center;font-size:13px;margin:17px 0 0;color:var(--slate)}
.layout-access .site-footer{margin:0;padding:18px 16px 26px;font-size:12px;color:#63718B;text-align:center}
.confirmation-symbol{display:grid;place-items:center;margin:0 0 22px;width:56px;height:56px;border-radius:50%;background:#E9F6EF;color:#16704A;font-size:28px}
.registration-controls{display:flex;align-items:center;flex-wrap:wrap;gap:20px}.registration-controls>div{flex:1;min-width:200px}.registration-controls h2{font-size:20px}.registration-controls p{margin-top:9px;font-size:14px}.registration-controls>.text-link{width:100%}
.registration-filters{display:flex;align-items:end;gap:18px}.registration-filters>div:first-child{flex:1}.registration-filters input,.registration-filters select{margin:0}.registration-filters label{margin-top:0}
.registration-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.application-card{min-width:0;margin:0}.application-card h2{font-size:20px;overflow-wrap:anywhere}.application-card .panel-heading p{font-size:12px;margin-top:6px}.application-card .panel-heading{align-items:flex-start}
.application-details{display:grid;gap:12px;margin:20px 0}.application-details dt{font-size:12px;color:var(--slate)}.application-details dd{font-size:14px;margin:3px 0 0;overflow-wrap:anywhere}
.duplicate-notice{padding:16px;background:#FFF7E7;border:1px solid #EEDCB3;border-radius:8px;font-size:13px;line-height:1.6;margin:20px 0}.duplicate-notice ul{padding-left:18px;margin:8px 0}.duplicate-notice p{margin:8px 0 0}
.application-card form{border-top:1px solid var(--border);padding-top:12px}.application-card .action-group{margin-top:18px}.application-card select{font-size:14px}.credential-state{display:block;font-size:12px;color:var(--slate);margin:8px 0}.manual-distribution p{font-size:14px;line-height:1.65;margin-top:10px}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:100;max-width:calc(100vw - 32px);width:max-content;background:var(--navy);color:white;padding:13px 20px;border-radius:10px;box-shadow:0 8px 30px #111C3526;font-size:14px;pointer-events:none}
.review-choice .review-edit{margin-left:auto;min-width:68px;min-height:44px;font-size:13px;padding:8px}
@media(max-width:767px){.registration-list{grid-template-columns:minmax(0,1fr)}.registration-filters{flex-wrap:wrap}.registration-filters>div{width:100%}.registration-filters button{width:100%}}
@media(max-width:639px){
 .layout-access .voter-main{justify-content:flex-start;padding:20px 16px 0}
 .portal-identity{min-height:190px;padding:20px 20px 36px;border-radius:12px 12px 0 0}
 .portal-brand{font-size:14px}.portal-brand .vifex-mark{width:25px;height:25px;font-size:17px}
 .portal-election{margin-top:13px;max-width:76%}.portal-election h1{font-size:21px;margin-bottom:11px}
 .ballot-art{width:178px;height:178px;right:-29px;bottom:-25px}
 .layout-access .portal-form{width:calc(100% - 12px);padding:24px 20px;margin-top:-15px;border-radius:11px}
 .layout-access .portal-form h2{font-size:24px}.portal-form>p{font-size:14px}
 .layout-access .site-footer{font-size:11px;padding-top:17px}.portal-client-logo{width:28px;height:28px;right:15px;top:19px}
 .review-choice{flex-wrap:wrap}.review-choice .review-edit{margin-left:auto}
}
@media(max-height:600px) and (min-width:640px){.layout-access .voter-main{justify-content:flex-start;padding-top:20px}.portal-identity{min-height:175px;padding-top:20px;padding-bottom:32px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.portal-shell>.admin-link{width:100%;text-align:center;max-width:none}

.portal-identity.recovery-identity{min-height:108px;padding-bottom:38px}

@media(max-width:639px){.portal-election{max-width:calc(100% - 88px)}}

/* Review actions stay aligned even when candidate names wrap. */
.review-choice{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:18px;align-items:center}
.review-choice>img{width:80px;height:96px}.review-choice>div{min-width:0}.review-choice h2{font-size:24px;line-height:1.25}.review-choice .review-edit{margin:0;justify-self:end}
@media(max-width:639px){
 .review-choice{grid-template-columns:64px minmax(0,1fr);gap:12px 16px;padding:20px}
 .review-choice>img{width:64px;height:80px;grid-row:1/3;align-self:start}
 .review-choice>div{grid-column:2}.review-choice h2{font-size:22px}.review-choice .section-label{font-size:12px;margin-bottom:7px}
 .review-choice .review-edit{grid-column:2;grid-row:2;justify-self:start;min-height:44px}
}

.overview-heading .controls-link{white-space:nowrap;flex-shrink:0}


/* Continuous portal panel: one outline, one radius, one shadow. */
.layout-access{display:block}
.layout-access .voter-main{display:block;flex:none;padding:clamp(32px,6vh,72px) 20px 0;min-height:0}
.portal-panel{overflow:hidden;width:100%;background:white;border:1px solid #DCE3EF;border-radius:16px;box-shadow:0 14px 42px #14243D12,0 2px 5px #14243D04}
.portal-panel .portal-identity{width:100%;border-radius:0;min-height:208px;padding:26px 28px 28px}
.portal-panel .portal-election{max-width:none;padding-right:112px;margin-top:18px}
.portal-panel .ballot-art{right:-24px;bottom:-12px;width:204px;height:204px}
.layout-access .portal-panel .portal-form{width:100%;margin:0;padding:28px;border:0;border-radius:0;box-shadow:none}
.portal-panel .portal-form .error{border-radius:8px}
.portal-panel .portal-identity.recovery-identity{min-height:100px}
.portal-panel .confirmation{margin:0;border:0;text-align:center}
.portal-panel .confirmation h1{font-size:28px}.portal-panel .confirmation .success-icon{margin-bottom:22px}
.layout-access .site-footer{margin:0 auto;padding:25px 16px 30px;background:transparent;border:0;max-width:600px}
.portal-form #pin::placeholder{letter-spacing:normal}
.access-closing span{display:inline-block;margin-top:5px}
.closing-detail{margin:20px 0;font-size:14px}

/* Shared outline icon family and tactile controls. */
.nav-icon,.summary-icon,.sidebar-toggle svg{fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.summary-icon{width:38px;height:38px;padding:9px;border:1px solid #DCE5F7;box-shadow:inset 0 1px 0 #FFFFFFE0,0 2px 3px #17233D07;background:#EEF3FE;color:#5276C5;stroke:currentColor}
.summary-card.primary .summary-icon{border-color:#435675;box-shadow:inset 0 1px 0 #FFFFFF18,0 2px 4px #00000010;background:#293D5E;color:#D2E1FF}
.summary-card:nth-child(3) .summary-icon{background:#ECF5F5;border-color:#D5E9E8;color:#4C8583}
.summary-card:nth-child(4) .summary-icon{background:#F2EFF9;border-color:#E4DEF2;color:#8573AC}
.button,.icon-button,.position-edit,.sidebar-toggle,.account-toggle,.close-menu{transition:background-color .16s,border-color .16s,box-shadow .16s,transform .12s}
.button:not(.secondary){background:var(--cobalt);border-color:var(--cobalt);box-shadow:inset 0 1px 0 #FFFFFF20,0 2px 3px #1F48AB12}
.button:not(.secondary):hover:enabled,.button:not(.secondary)[href]:hover{background:#244BB7;border-color:#244BB7}
.button:not(.secondary):active:enabled,.button:not(.secondary)[href]:active{background:#1C3D97;border-color:#1C3D97;transform:translateY(1px)}
.button.secondary{border:1px solid #C9D3E4;padding:11px 17px;gap:8px;box-shadow:inset 0 1px 0 #FFFFFF,0 1px 2px #14243D04}
.button.secondary:hover:enabled,.button.secondary[href]:hover{background:#EEF3FF;border-color:#A7B9E1;color:#244BAA}
.button.secondary:active:enabled,.button.secondary[href]:active{background:#DFE8FC;transform:translateY(1px)}
.button:disabled,.button[aria-disabled=true]{opacity:1;background:#DCE4F4;border-color:#DCE4F4;color:#526582;box-shadow:none;cursor:default}
form[aria-busy=true] button[aria-disabled=true]{background:#E8EEFB;border-color:#C6D4F1;color:#3159A5;cursor:wait}
form[aria-busy=true] button[aria-disabled=true]::before{content:'';width:14px;height:14px;flex-shrink:0;border:2px solid #A6B8DE;border-top-color:#3159CE;border-radius:50%;animation:control-pending .7s linear infinite}
@keyframes control-pending{to{transform:rotate(360deg)}}
.button:focus-visible,.icon-button:focus-visible,.position-edit:focus-visible,.sidebar-toggle:focus-visible,.account-toggle:focus-visible{outline:3px solid #426CE2;outline-offset:3px;box-shadow:0 0 0 1px white}
.icon-button,.position-edit,.sidebar-toggle{width:44px;height:44px;min-width:44px;min-height:44px;display:inline-flex;justify-content:center;align-items:center;border:1px solid #DCE3EF;background:white;border-radius:9px;padding:11px;color:#5C7097;gap:0}
.icon-button:hover:enabled,.position-edit:hover,.sidebar-toggle:hover{color:#244BB7;background:#EDF2FD;border-color:#B9C9E8}
.icon-button:active:enabled,.position-edit:active,.sidebar-toggle:active{background:#DFE8FA;transform:translateY(1px)}
.icon-button:disabled{background:#F6F8FC;border-color:#E9EDF5;color:#A0ADC3;cursor:default}
.sidebar-toggle[aria-expanded=true]{background:#EDF2FD;color:#3159CE}
.account-toggle{width:44px;height:44px;border:1px solid #D4DEF1;background:#EDF2FF;color:#3159CE;box-shadow:inset 0 1px 0 #FFFFFF,0 1px 3px #14243D08;font-weight:650}
.account-toggle:hover,.account-toggle[aria-expanded=true]{background:#DFE8FF;border-color:#A4B9E7}
.account-toggle:active{transform:scale(.97)}
.account-menu{border:1px solid #DBE3F1;border-radius:12px;box-shadow:0 12px 30px #12243D1C,0 2px 5px #12243D08;padding:7px;min-width:224px}
.account-menu [role=menuitem]{display:flex;align-items:center;gap:11px;border-radius:7px;min-height:46px;padding:11px 12px}
.account-menu [role=menuitem]:hover,.account-menu [role=menuitem]:focus-visible{background:#EDF2FD;color:#244BB7}
.account-identity{padding:12px;border-bottom:1px solid #E6EBF4;margin-bottom:5px}
.account-menu .nav-icon{width:19px;height:19px}
.sidebar .button.secondary{background:transparent;color:#D4DFF2;border-color:#4A5B78;box-shadow:inset 0 1px 0 #FFFFFF08}
.sidebar .button.secondary:hover{background:#263954;border-color:#7487A7;color:white}
.sidebar .close-menu{border:1px solid #4A5B78;background:#22324E;color:#DFE8F9;box-shadow:inset 0 1px 0 #FFFFFF08}
.sidebar .close-menu:hover{background:#314766;color:white}
.sidebar{transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.position-strip-toolbar,.position-portrait-row{display:none}
.position-details-link{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;font-size:13px;font-weight:600;color:#3159CE;border-top:1px solid var(--border);margin-top:16px;padding-top:10px}
.position-details-link:hover{color:#173EAB}.position-details-link .nav-icon{width:17px;height:17px;flex-shrink:0}

/* Position details share the overview's records and canonical aggregate totals. */
.position-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}
.position-detail-heading h1{font-size:30px;overflow-wrap:anywhere}.position-detail-heading p{font-size:14px;margin-top:9px}
.position-detail-heading .section-label{font-size:12px;margin:0 0 8px}.position-detail-heading .action-group{margin:0;flex-shrink:0;justify-content:flex-end;flex-wrap:wrap}
.position-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}
.detail-candidate{margin:0;padding:20px;display:flex;flex-direction:column;gap:17px;min-width:0}
.detail-candidate img{width:110px;height:136px;border:1px solid #D8DEE8;border-radius:8px;flex-shrink:0}
.detail-candidate h2{font-size:18px;line-height:1.4;overflow-wrap:anywhere}.detail-candidate p{font-size:13px;margin-top:8px}
.position-totals{margin-bottom:24px}.position-totals .panel-heading p{font-size:13px;margin-top:6px}
.detail-results-grid{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:30px;margin:24px 0 0}
.detail-chart{display:flex;align-items:center;flex-direction:column;gap:16px}.detail-chart .live-donut{width:200px;height:200px;padding:22px}.detail-chart .live-donut strong{font-size:36px}.detail-chart .live-donut span{font-size:12px}.detail-chart>p{font-size:12px;text-align:center}
.detail-ranking{min-width:0}.ranked-table{width:100%}.ranked-table th,.ranked-table td{font-size:13px;padding:13px 10px}
.ranked-name{display:flex;align-items:center;gap:9px;overflow-wrap:anywhere}.ranked-name i{width:8px;height:8px;flex-shrink:0;border-radius:50%}
.ranked-table td[data-leader]{font-size:12px;color:#3159CE;font-weight:550}.ranked-table td[data-votes],.ranked-table td[data-share]{font-variant-numeric:tabular-nums}
.position-totals .live-updated{width:auto;margin-top:18px;height:auto;font-size:12px;justify-content:flex-start}
.position-participation{padding-bottom:20px}.position-participation .panel-heading p,.privacy-detail{font-size:13px;margin-top:7px}
.participation-filters{display:flex;align-items:end;gap:16px;margin:22px 0}.participation-filters>div:first-child{flex:1}.participation-filters input,.participation-filters select{margin:0}.participation-filters label{font-size:13px;margin-top:0}
.participation-table{width:100%}.participation-table th,.participation-table td{font-size:13px;overflow-wrap:anywhere}.participation-table time{font-size:12px;font-variant-numeric:tabular-nums}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;margin-top:12px;border-top:1px solid var(--border)}.pagination span{font-size:12px;color:var(--slate)}.pagination .button{font-size:13px;min-height:44px}
.detail-report-actions h2{font-size:19px}.detail-report-actions p{font-size:14px;margin:12px 0}.detail-report-actions .action-group{flex-wrap:wrap}
@media(min-width:640px) and (max-width:1099px){.detail-results-grid{grid-template-columns:1fr}.position-detail-heading{display:block}.position-detail-heading .action-group{margin-top:18px;justify-content:flex-start}.detail-chart .live-donut{width:176px;height:176px}}
@media(max-width:639px){
 .layout-access .voter-main{padding:32px 16px 0}
 .portal-panel{border-radius:14px}
 .portal-panel .portal-identity{min-height:190px;padding:24px 20px}
 .portal-panel .portal-election{padding-right:88px;margin-top:16px}
 .portal-panel .ballot-art{width:178px;height:178px;right:-22px;bottom:-9px}
 .layout-access .portal-panel .portal-form{padding:25px 22px 27px}
 .layout-access .site-footer{padding:23px 20px 28px}
 .summary-icon{width:32px;height:32px;padding:7px}
 .position-strip-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 13px}
 .position-strip-toolbar p{font-size:12px;max-width:190px;line-height:1.5}.position-strip-toolbar>div{display:flex;gap:7px;flex-shrink:0}
 .position-panels{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px)/2.12);gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-left:0;padding:3px 0 12px;scrollbar-width:thin;scrollbar-color:#A9BAD9 #E8EDF6;overscroll-behavior-x:contain}
 .position-panel,.position-panel:last-child:nth-child(odd){grid-column:auto;padding:15px 12px;margin:0;scroll-snap-align:start;border-radius:10px;display:flex;flex-direction:column;min-width:0}
 .position-panel-heading{margin:0 0 15px;padding:0;border:0;min-height:64px}.position-panel-heading h3{font-size:16px;line-height:1.35}.position-panel-heading p{font-size:12px;margin-top:6px}
 .position-panel .position-edit,.position-panel .position-candidates{display:none}
 .position-portrait-row{display:flex;gap:4px;align-items:center;margin-top:auto}
 .position-portrait-row img{width:clamp(26px,8vw,34px);height:42px;border-radius:4px;border:1px solid #D6DDE8;min-width:0}
 .position-details-link{font-size:13px;line-height:1.35;padding-top:8px;margin-top:15px;min-height:50px}
 .position-details-link .nav-icon{width:14px;height:14px}
 .position-detail-heading{display:block;margin-bottom:22px}.position-detail-heading h1{font-size:27px}.position-detail-heading .action-group{justify-content:flex-start;margin-top:16px}
 .position-gallery{grid-template-columns:1fr;gap:12px}.detail-candidate{flex-direction:row;align-items:center;gap:18px;padding:19px}.detail-candidate img{width:76px;height:96px}.detail-candidate h2{font-size:18px}
 .detail-results-grid{grid-template-columns:1fr;gap:24px}.detail-chart .live-donut{width:180px;height:180px}
 .position-totals .panel-heading{align-items:flex-start;gap:10px}.position-totals .panel-heading h2{font-size:20px}.position-totals .status-pill{flex-shrink:0;font-size:11px}
 .ranked-table td[data-label=Candidate]{display:flex;align-items:center;gap:12px}.ranked-table td[data-label=Candidate] .ranked-name{flex:1;justify-content:flex-end}
 .participation-filters{flex-direction:column;align-items:stretch;gap:14px}.participation-filters>div{width:100%}.participation-filters .button{width:100%}
 .position-participation .panel-heading{display:block}.position-participation .panel-heading .text-link{margin-top:7px}
 .pagination{flex-wrap:wrap;gap:10px}.pagination span{flex:1;min-width:100px}.pagination .button{padding:10px 13px}
}
@media(max-width:359px){.position-details-link{font-size:13px}.position-details-link .nav-icon{display:none}.position-panel{padding-left:11px;padding-right:11px}.portal-panel .portal-election{padding-right:76px}}
@media(max-height:550px){.layout-access .voter-main{padding-top:24px}}
@media(prefers-reduced-motion:reduce){.sidebar,.button,.icon-button,.account-toggle{transition:none}form[aria-busy=true] button[aria-disabled=true]::before{animation:none}}

.position-panels:focus-visible{outline:3px solid #426CE2;outline-offset:4px;border-radius:10px}

form[aria-busy=true] .button[aria-disabled=true]:hover,form[aria-busy=true] .button[aria-disabled=true]:active{background:#E8EEFB;border-color:#C6D4F1;color:#3159A5;transform:none}

.ranked-table td[data-leader]{color:var(--slate);font-weight:500}.ranked-table tr.leading{background:#F4F7FF}.ranked-table tr.leading td[data-leader]{color:#3159CE;font-weight:650}
/* Dashboard heading and compact, native-scrolling overview summaries. */
.layout-admin .overview-heading.election-context{display:block;margin-bottom:24px}
.overview-heading h1{max-width:none;margin:0 0 16px;overflow-wrap:anywhere}
.overview-heading .overview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.overview-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.overview-toolbar .status-pill{margin:0;position:static}
.overview-heading .overview-toolbar .controls-link{margin:0;min-height:44px;max-width:none;padding:10px 14px;white-space:nowrap}
.manage-label-short{display:none}
.carousel-controls{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:0 0 12px}
.carousel-controls[hidden]{display:none!important}
.carousel-controls>div{display:flex;gap:6px}
.carousel-indicator{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
[data-carousel-strip]{scrollbar-width:none;-ms-overflow-style:none}
[data-carousel-strip]::-webkit-scrollbar{display:none;width:0;height:0}
[data-carousel-strip]:focus-visible{outline:3px solid var(--cobalt);outline-offset:4px;border-radius:10px}
.result-summary-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.result-summary-card{min-width:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;padding:18px}
.result-summary-card>h3{font-size:18px;line-height:1.4;overflow-wrap:anywhere}
.result-summary-status{font-size:13px;line-height:1.5;margin:7px 0 4px;color:var(--muted);overflow-wrap:anywhere}
.result-summary-status.tied{color:var(--cobalt);font-weight:600}
.result-summary-card .result-row{gap:8px;padding:14px 0;align-items:flex-start}
.result-summary-card .result-rank{width:14px;font-size:13px;padding-top:3px}
.result-summary-card .result-row>img{width:36px;height:44px;object-fit:contain;background:#f1f3f6;border-radius:5px}
.result-summary-card .result-candidate{min-width:0;flex:1}
.result-summary-card .result-row-heading{display:block;margin-bottom:7px}
.result-summary-card .result-row-heading h3{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.result-summary-card .result-row-heading>p{display:flex;justify-content:space-between;gap:8px;margin-top:5px;white-space:normal;line-height:1.4}
.result-summary-card .result-row-heading strong,.result-summary-card .result-row-heading p>span{font-size:12px;min-width:0}
.result-summary-card .result-candidate:after{display:none!important}
.result-summary-card .leader-label{font-size:11px;margin-top:5px}
.result-summary-card .bar-track{height:5px}
.result-summary-card .position-details-link{margin-top:auto;padding-top:12px;min-height:44px;font-size:13px}
.all-results-link{display:inline-flex;align-items:center;min-height:44px;margin-top:12px}
[data-rank-column][hidden]{display:none!important}
@media(min-width:640px) and (max-width:1099px){
 .result-summary-panels{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 20px)/2);overflow-x:auto;scroll-snap-type:x mandatory;gap:20px}
 .result-summary-card{scroll-snap-align:start}
}
@media(max-width:639px){
 .overview-heading h1{margin-bottom:14px}
 .manage-label-wide{display:none}.manage-label-short{display:inline}
 .overview-heading .overview-toolbar .controls-link{padding:10px 12px;font-size:13px;gap:8px}
 .overview-toolbar{gap:12px}
 .position-panels,.result-summary-panels{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:88%;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding:0;overscroll-behavior-x:contain;padding:3px 0 5px;scrollbar-width:none}
 .position-panel,.position-panel:last-child:nth-child(odd){padding:18px;scroll-snap-align:start;min-width:0}
 .position-panel-heading{min-height:0;margin:0 0 14px}
 .position-panel-heading h3{font-size:18px;line-height:1.4}
 .position-panel-heading p{font-size:13px;margin-top:4px}
 .position-portrait-row{margin-top:0;gap:7px;flex-wrap:wrap}
 .position-portrait-row img{width:40px;height:48px;object-fit:contain}
 .position-panel .position-details-link{min-height:44px;margin-top:12px;padding-top:10px;font-size:14px}
 .result-summary-card{padding:16px;scroll-snap-align:start}
 .prepared-results{padding:20px 16px}
}

.result-summary-card .result-bars{margin:8px 0 12px}
/* Purpose-built management workspaces. */
.workspace-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 26px}
.workspace-heading h1{font-size:29px;letter-spacing:-.035em;line-height:1.25;overflow-wrap:anywhere}
.workspace-heading p{font-size:15px;line-height:1.65;max-width:640px;margin-top:9px;color:var(--muted)}
.workspace-heading>.button{flex-shrink:0}.workspace-heading .section-label{margin:0 0 7px;color:var(--cobalt)}
.workspace-position-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.workspace-position-card{padding:24px;min-width:0;margin:0;display:flex;flex-direction:column}
.workspace-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;margin-bottom:19px}
.order-marker{font-weight:600;color:var(--cobalt);background:#EEF3FF;border:1px solid #E2E9FC;border-radius:6px;padding:5px 8px;white-space:nowrap}
.workspace-position-card h2{font-size:21px;line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere}
.workspace-portraits{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:24px 0}
.workspace-portraits img{width:52px;height:64px;object-fit:contain;background:#F0F2F5;border:1px solid #E5E9EF;border-radius:7px}
.position-view{justify-content:space-between;margin-top:auto;width:100%}.draft-position-actions{margin-top:18px;display:flex;flex-direction:column;gap:6px}
.draft-position-actions details{border-top:1px solid var(--border);margin-top:8px;padding-top:7px}
.draft-position-actions summary,.profile-edit summary,.add-position-panel summary{min-height:44px;cursor:pointer;align-content:center;font-size:14px;font-weight:600;color:var(--cobalt)}
.draft-position-actions input{margin-bottom:14px}.draft-position-actions label{font-size:14px}.add-position-panel{margin-top:22px}
.position-add-form{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:16px;align-items:end;margin-top:18px}
.delivery-summary{display:flex;gap:13px;padding:16px 18px;margin-bottom:22px;border:1px solid #DAE4F7;background:#EEF3FC;border-radius:9px}
.delivery-summary svg{flex-shrink:0;color:var(--cobalt);margin-top:2px}.delivery-summary p{font-size:14px;line-height:1.6;margin:0;max-width:800px}
.action-count{background:#E5EDFF;color:var(--cobalt);padding:2px 7px;border-radius:5px;font-size:13px}
.workspace-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px) auto;align-items:end;gap:18px;padding:20px;margin-bottom:18px}
.workspace-filters label{font-size:14px}.workspace-filters input,.workspace-filters select{min-height:46px;margin:0}
.workspace-list-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:18px 0 12px;font-size:14px;color:var(--muted)}
.workspace-list-summary p{margin:0}.workspace-list-summary>span{font-size:13px}
.member-table-panel{padding:0;overflow:visible}
.member-workspace-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}
.member-workspace-table th{background:#F8FAFE;color:var(--muted);font-size:13px;font-weight:600;padding:17px 20px;border-bottom:1px solid var(--border)}
.member-workspace-table th:first-child{border-radius:10px 0 0 0}.member-workspace-table th:last-child{border-radius:0 10px 0 0}
.member-workspace-table td{padding:20px;border-bottom:1px solid #E9EDF5;vertical-align:middle;overflow-wrap:anywhere}
.member-workspace-table tr:last-child td{border-bottom:0}.member-workspace-table td:first-child{max-width:270px}.member-workspace-table strong{font-size:15px;line-height:1.55}
.member-workspace-table td:last-child,.member-workspace-table th:last-child{text-align:right}
.member-workspace-table .button{min-height:44px;font-size:13px;padding:10px 12px;white-space:nowrap}
.member-id{font-variant-numeric:tabular-nums;color:#56647B}.tag.revoked{background:#FBECEF;color:#963B4C}.tag.delivered,.tag.voted{background:#EAF6F0;color:#216A50}.tag.issued{background:#EDF2FF;color:#365BB5}.tag.neutral{background:#F0F2F7;color:#5C687C}
.participation-dot{display:inline-flex;align-items:center;gap:7px;line-height:1.45}.participation-dot:before{content:'';width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#A7B4CA}.participation-dot.submitted:before{background:#23896B}
.member-empty td{padding:40px!important;text-align:center!important}.member-empty h2{font-size:20px}.member-empty p{margin-top:9px}
.member-profile-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;align-items:start}
.member-profile-grid>.panel{margin:0;min-width:0}.profile-information{grid-row:span 2}.profile-credentials{grid-column:2}
.member-profile-grid h2{font-size:20px}.profile-facts{margin-top:18px}.profile-facts>div{padding:13px 0;border-bottom:1px solid #E9EDF5;display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1fr);gap:18px}
.profile-facts dt{font-size:13px;color:var(--muted);line-height:1.6}.profile-facts dd{font-size:14px;line-height:1.6;margin:0;overflow-wrap:anywhere}
.profile-edit{border-top:1px solid var(--border);padding-top:8px;margin-top:20px}.profile-edit form{margin-top:12px}.profile-edit input{margin-top:7px}.profile-edit .errorlist{font-size:14px}
.participation-value{display:block;font-size:22px;margin:18px 0 8px;letter-spacing:-.02em}.profile-participation p{font-size:14px}.profile-credentials .credential-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.credential-actions .button{font-size:14px}
.action-dialog{width:min(460px,calc(100% - 32px));padding:28px;border:1px solid #D9E1EF;border-radius:14px;color:var(--ink);background:#fff;box-shadow:0 24px 90px #0C193B40}
.action-dialog::backdrop{background:#0D193A80;backdrop-filter:blur(3px)}.action-dialog h2{font-size:23px}.action-dialog p{margin:16px 0 24px;font-size:15px;line-height:1.65}.action-dialog .action-group{justify-content:flex-end}
.election-lifecycle{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;padding:20px 24px;margin:0 0 24px;background:white;border:1px solid var(--border);border-radius:10px}
.election-lifecycle li{display:flex;align-items:center;gap:9px;font-size:14px;color:#77849C;position:relative}.election-lifecycle li>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#F0F3F9;font-size:12px;flex-shrink:0}
.election-lifecycle .complete{color:#455C84}.election-lifecycle .complete>span{background:#EDF3FF;color:#3C61BA}.election-lifecycle .current{color:var(--cobalt);font-weight:600}.election-lifecycle .current>span{background:var(--cobalt);color:white;box-shadow:0 0 0 4px #EEF2FF}
.current-state-panel{padding:30px}.control-state-label{display:flex;align-items:center;gap:13px;margin-bottom:22px}.control-state-label>.status-pill{margin:0;position:static}.control-state-label>span:last-child{font-size:13px;color:var(--muted)}
.current-state-panel>h2{font-size:27px;letter-spacing:-.03em;line-height:1.3}.current-state-panel>p{font-size:15px;line-height:1.7;max-width:780px;margin:12px 0 0}
.current-state-action,.state-secondary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0}.current-state-action form{margin:0}.state-secondary-actions{border-top:1px solid var(--border);padding-top:22px}
.current-state-panel>label{margin-top:25px}.current-state-panel>.copy-link{max-width:800px}.state-consequence{padding:14px 16px;background:#F3F6FC;border-radius:7px;color:#51617D}
.control-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--border);padding-top:22px;margin-top:28px}.control-times dt{font-size:13px;color:var(--muted);margin-bottom:7px}.control-times dd{font-size:14px;line-height:1.6;margin:0}
.controls-results-summary{margin-top:24px}.controls-result-list article{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px 0;border-top:1px solid var(--border)}.controls-result-list h3{font-size:17px;overflow-wrap:anywhere}.controls-result-list p{font-size:14px;margin-top:7px}.controls-result-list .button{flex-shrink:0;font-size:13px}
.result-position-selector{display:flex;flex-wrap:wrap;gap:8px;padding:20px 0;border-block:1px solid var(--border);margin:0 0 24px}
.result-position-selector a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #D9E2F3;border-radius:8px;background:white;font-size:14px;font-weight:600;line-height:1.5;overflow-wrap:anywhere;transition:background .15s,border-color .15s}
.result-position-selector a:hover{background:#F0F4FE;border-color:#A8BAEB}.result-position-selector a[aria-current]{background:#2454D6;border-color:#2454D6;color:white}
.public-results .results-heading{padding-bottom:24px}.results-metrics{gap:18px}.position-result .position-title{font-size:23px;margin:0 0 18px;letter-spacing:-.025em}.result-outcome{padding:24px 0;gap:24px}.result-outcome h2{font-size:30px;line-height:1.25;letter-spacing:-.035em;overflow-wrap:anywhere;max-width:740px}.result-outcome .section-label{font-size:13px;margin-bottom:10px}.result-outcome.empty-result-outcome h2{font-size:22px}.result-outcome.empty-result-outcome{padding:16px 0 22px}.result-outcome.empty-result-outcome .outcome-copy>p:last-child{margin-top:10px;font-size:14px}
.outcome-portraits,.outcome-portraits:has(img:nth-child(2)){display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;max-width:180px;padding:0}.outcome-portraits img{width:86px;height:104px;object-fit:contain;background:#F0F2F5}.outcome-portraits:has(img:nth-child(2)) img{width:56px;height:68px}
.final-ranking{padding-top:24px}.final-ranking .result-row{padding:20px 0}.results-end{margin-top:26px}.tied-leaders{overflow-wrap:anywhere}
.report-main .report-heading{padding-bottom:24px}.report-main .report-outcome h2{font-size:27px;line-height:1.35;overflow-wrap:anywhere}.report-main .empty-result-outcome h2{font-size:21px}.report-main .report-outcome{padding:22px 0}.report-table{width:100%;table-layout:fixed}.report-table th,.report-table td{overflow-wrap:anywhere}.report-table th:last-child,.report-table td:last-child{width:72px}.report-table th:nth-last-child(2),.report-table td:nth-last-child(2){width:62px}.report-table th:first-child:not(:nth-last-child(3)),.report-table td:first-child:not(:nth-last-child(3)){width:44px}
.report-candidate{min-width:0;line-height:1.5}.report-candidate img{object-fit:contain;background:#F0F2F5;flex-shrink:0}.staff-context-return{display:flex;width:fit-content;margin:18px auto 0}.registration-back{order:3}.registration-controls .button,.registration-controls .text-link{min-height:44px;display:inline-flex;align-items:center}
@media(min-width:640px) and (max-width:1099px){.workspace-position-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-workspace-table td,.member-workspace-table th{padding:15px 12px}.member-workspace-table .tag{font-size:12px}.member-profile-grid{grid-template-columns:minmax(0,1fr)}.profile-information{grid-row:auto}.profile-credentials{grid-column:auto}.workspace-filters{grid-template-columns:minmax(0,1fr) 180px}.workspace-filters>.button{grid-column:1/-1;justify-self:end}.election-lifecycle li{flex-direction:column;gap:8px;text-align:center}.control-times{gap:12px}}
@media(max-width:639px){
 .workspace-heading{display:block;margin-bottom:22px}.workspace-heading h1{font-size:26px}.workspace-heading p{font-size:14px}.workspace-heading>.button{margin-top:16px;min-height:44px}.workspace-position-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:88%;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:3px 0 5px}.workspace-position-card{padding:20px;scroll-snap-align:start}.workspace-card-top{font-size:12px;gap:8px}.workspace-position-card h2{font-size:22px}.workspace-portraits img{width:47px;height:58px}.workspace-portraits{gap:7px;margin:22px 0}.position-add-form{grid-template-columns:1fr}.draft-position-actions .text-link{min-height:44px;display:flex;align-items:center}
 .workspace-filters{grid-template-columns:minmax(0,1fr);padding:18px;gap:15px}.workspace-filters>.button{width:100%}.delivery-summary{padding:15px}.workspace-list-summary{display:block;font-size:14px}.workspace-list-summary>span{display:block;margin-top:7px;line-height:1.5}
 .member-table-panel{border:0;background:transparent;box-shadow:none}.member-workspace-table,.member-workspace-table tbody{display:block;width:100%}.member-workspace-table thead{display:none}.member-workspace-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 14px;background:white;border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:14px;box-shadow:0 2px 5px #142D5510}.member-workspace-table td{display:block;min-width:0;max-width:none!important;padding:0;border:0!important;text-align:left!important;font-size:14px}.member-workspace-table td:before{content:attr(data-label);display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.member-workspace-table td:first-child{grid-column:1/-1}.member-workspace-table td:first-child:before,.member-workspace-table td:last-child:before{display:none}.member-workspace-table strong{font-size:18px;line-height:1.45}.member-workspace-table td:last-child{grid-column:1/-1}.member-workspace-table .member-profile-link{width:100%;justify-content:space-between;font-size:14px}.member-workspace-table .tag{font-size:12px;white-space:normal;line-height:1.5}.member-empty{display:block!important}.member-empty td{padding:10px!important}
 .member-profile-grid{display:block}.member-profile-grid>.panel{margin-bottom:18px;padding:20px}.member-profile-grid .panel-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}.profile-credentials{grid-column:auto}.profile-information{grid-row:auto}.profile-facts>div{grid-template-columns:1fr;gap:4px;padding:12px 0}.profile-facts dd{font-size:15px}.profile-edit .button,.credential-actions,.credential-actions form,.credential-actions .button{width:100%}.profile-credentials .credential-actions{display:grid;gap:12px}
 .election-lifecycle{padding:18px 10px;gap:4px}.election-lifecycle li{flex-direction:column;text-align:center;font-size:12px;gap:9px}.election-lifecycle li>span{width:25px;height:25px}.current-state-panel{padding:22px 20px}.current-state-panel>h2{font-size:24px}.current-state-panel>p{font-size:14px}.current-state-action,.state-secondary-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:11px;margin:22px 0}.current-state-action>.button,.current-state-action form,.current-state-action button,.state-secondary-actions>.button{width:100%}.control-times{grid-template-columns:1fr;gap:18px}.controls-results-summary{padding:20px}.controls-results-summary .panel-heading{display:block}.controls-results-summary .panel-heading>.button{margin-top:14px}.controls-result-list article{align-items:flex-start;flex-direction:column;gap:13px}.controls-result-list .button{min-height:44px}
 .result-position-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:18px 0}.result-position-selector a{font-size:14px;padding:10px;min-width:0;text-align:center}.result-outcome{display:block}.result-outcome h2{font-size:26px}.position-result .position-title{font-size:22px}.outcome-portraits,.outcome-portraits:has(img:nth-child(2)){margin-top:18px;max-width:100%;padding:0}.result-outcome.empty-result-outcome h2{font-size:21px}.public-results .results-heading h1{font-size:25px;line-height:1.3}.final-ranking .result-row>img{width:44px;height:56px;object-fit:contain}.final-ranking .result-row-heading h3{font-size:16px;line-height:1.5}.final-ranking .result-row{gap:9px}.report-toolbar{gap:12px}.report-toolbar,.report-toolbar>.action-group{display:flex;flex-wrap:wrap}.report-toolbar .button{font-size:13px}.report-main .report-heading{display:block}.report-main .report-heading .status-pill{position:static;margin-top:16px}.report-main .report-heading h1{font-size:27px}.report-main .report-outcome h2{font-size:23px}.report-main .report-table th,.report-main .report-table td{font-size:13px;padding:13px 5px}.report-table th:last-child,.report-table td:last-child{width:50px}.report-table th:nth-last-child(2),.report-table td:nth-last-child(2){width:43px}.report-table th:first-child:not(:nth-last-child(3)),.report-table td:first-child:not(:nth-last-child(3)){width:29px}.report-candidate{display:flex;gap:8px;align-items:flex-start}.report-candidate img{width:29px;height:38px}.report-facts{gap:12px}.registration-back{margin-bottom:14px}
}
@media print{[data-position-result][hidden]{display:block!important}.result-position-selector,.report-toolbar,.staff-context-return{display:none!important}.report-position{break-before:auto}.report-outcome{break-after:avoid}.report-table{break-inside:auto}.report-table tr{break-inside:avoid}.report-main .report-heading{display:flex}.report-main .report-outcome h2{font-size:19px}.report-table th,.report-table td{font-size:11px!important;padding:9px!important}.report-position .result-row{break-inside:avoid}}
@media(prefers-reduced-motion:reduce){.result-position-selector a{transition:none}}

.result-position-selector+[data-position-results]>.position-result{border-top:0;margin-top:0;padding-top:0}
@media(max-width:639px){.report-main .report-table th:first-child:not(:nth-last-child(3)),.report-main .report-table td:first-child:not(:nth-last-child(3)){width:37px}.report-main .report-table th:first-child{white-space:nowrap}}

.profile-credentials .credential-actions form{margin:0}

.position-result .position-title{border-top:0;padding-top:0}

/* Client preview: discreet context and archive-specific actions. */
.demo-notice{font-size:.8rem;line-height:1.5;color:#52617a;margin:0 0 18px;padding:10px 14px;border:1px solid #dfe6ef;border-radius:10px;background:#f5f8fc}
.portal-identity .demo-notice{position:relative;z-index:1;color:#e1eaff;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);margin:18px 0 0;max-width:100%;font-size:.75rem}
.election-list-card{overflow:visible;min-width:0}.election-list-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.election-list-top .tag{white-space:normal}.election-actions{position:relative;flex-shrink:0}.election-actions summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px;border:1px solid #dce3ee;border-radius:9px;cursor:pointer;font-size:.8rem}.election-actions summary::-webkit-details-marker{display:none}.election-actions summary .nav-icon{width:20px;height:20px}.election-actions-menu{position:absolute;z-index:15;right:0;top:calc(100% + 6px);width:220px;padding:6px;background:white;border:1px solid #dae2ed;border-radius:12px;box-shadow:0 12px 30px #152b4b22}.election-actions-menu a,.disabled-action{display:flex;align-items:center;min-height:44px;padding:10px 12px;border-radius:7px;font-size:.9rem}.election-actions-menu a:hover{background:#f1f5fb}.danger-menu-action{border-top:1px solid #e5e9ef;margin-top:5px;padding-top:5px}.danger-link{color:#a32232!important}.disabled-action{color:#818997}.danger-menu-action small{display:block;padding:0 12px 10px;color:#687387}.danger-zone{border-color:#e7bfc5;margin-top:24px}.danger-button{background:#ad273a;border-color:#ad273a;color:white}.danger-button:hover{background:#8d1f2f}.danger-button:active{background:#701a27}.danger-button:disabled{opacity:.5;cursor:not-allowed}.deletion-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}.deletion-counts div{padding:14px;background:#f4f7fb;border:1px solid #e2e8f0;border-radius:10px}.deletion-counts dt{font-size:.8rem;color:#52617a}.deletion-counts dd{font-size:1.5rem;font-weight:700;margin:4px 0 0}.archive-report-actions,.delete-dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.deletion-history{margin-top:28px}.deletion-history li{margin:12px 0;overflow-wrap:anywhere}.election-delete-dialog{width:min(600px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #d8dfeb;border-radius:18px;color:var(--ink,#14223c);box-shadow:0 24px 80px #0a172b55;overflow:auto}.election-delete-dialog::backdrop{background:#0c183c88}.election-delete-dialog .delete-confirmation{border:0;box-shadow:none;margin:0;padding:28px}.delete-confirmation h1{font-size:1.6rem}.delete-confirmation p,.delete-confirmation .helptext{overflow-wrap:anywhere}.delete-dialog-actions{justify-content:flex-end;margin-bottom:0}.delete-confirmation input{width:100%}
@media(max-width:600px){.election-actions summary span{display:none}.election-actions-menu{width:205px}.deletion-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.election-delete-dialog .delete-confirmation{padding:20px}.delete-dialog-actions>*{flex:1;min-width:0}.delete-dialog-actions .button{font-size:.82rem;padding:12px}.portal-identity .demo-notice{margin-top:16px}}

.portal-demo{padding:18px 28px 0;background:#fff}.portal-demo .demo-notice{padding:0;margin:0;border:0;background:none;font-size:.75rem;line-height:1.5}.layout-admin .demo-notice{border:0;background:none;padding:0;font-size:.75rem;margin-bottom:16px}
@media(max-width:639px){.portal-demo{padding:18px 20px 0}}

/* Prepared and uploaded portraits keep their full composition in every shared frame. */
img[data-candidate-photo]{object-fit:contain;object-position:center;background:#edf0f4}

/* Candidate summaries share one wrapping grid; the outer position strip owns horizontal scrolling. */
.position-panel .candidate-summary-grid,.workspace-position-card .candidate-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;align-items:start;margin:18px 0 12px;padding:0;width:100%}
.candidate-summary-grid.count-1{grid-template-columns:minmax(0,130px)!important;justify-content:center}.candidate-summary-grid.count-2{grid-template-columns:repeat(2,minmax(0,130px))!important;justify-content:center}
.candidate-summary-grid .candidate-summary-tile{display:flex;flex-direction:column;align-items:stretch;gap:9px;margin:0;min-width:0;padding:0;border:0}
.candidate-summary-grid .candidate-summary-tile img{display:block;width:100%;height:auto;aspect-ratio:4/5;max-width:150px;align-self:center;object-fit:contain;object-position:center;border:1px solid #dce3ec;border-radius:7px;background:#edf0f4}
.candidate-summary-tile figcaption{font-size:13px;font-weight:550;line-height:1.45;text-align:center;overflow-wrap:anywhere;color:var(--ink,#14223c)}
.candidate-overflow{display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px;font-size:13px;margin:8px 0 14px}.candidate-overflow a{min-height:44px;display:inline-flex;align-items:center}
.position-panel .position-details-link{margin-top:auto}.workspace-position-card .position-view{margin-top:auto}.workspace-position-card{display:flex;flex-direction:column}.draft-position-actions{margin-top:16px;flex-wrap:wrap}
.privacy-card.anonymous-reassurance{border:0;background:none;padding:0;margin:22px 0;color:var(--slate,#52617a)}.anonymous-reassurance p{font-size:14px;line-height:1.6;margin:0}.portal-form .anonymous-reassurance{padding-top:18px;border-top:1px solid #e2e8f0}
.candidate-page-heading{align-items:center}.candidate-page-heading>div{min-width:0}.candidate-page-heading>.button{flex-shrink:0;min-height:44px}.candidate-back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:8px}
.candidate-create-panel{max-width:760px;padding:28px}.candidate-create-form textarea,.candidate-editor textarea{width:100%;resize:vertical;min-height:100px}.candidate-editor input,.candidate-editor select,.candidate-editor textarea{min-width:0}.candidate-upload-preview{margin:16px 0 0}.candidate-upload-preview img{display:block;width:160px;height:200px;object-fit:contain;background:#edf0f4;border:1px solid #dce3ec;border-radius:8px}.candidate-upload-preview figcaption,.portrait-preview-status{font-size:12px;line-height:1.5;color:#52617a;margin:9px 0}.candidate-form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px}.candidate-editor .candidate-form-actions .text-button{margin-left:0}.candidate-error-summary h2{font-size:19px;margin:0 0 10px}.candidate-error-summary ul{padding-left:20px}.candidate-error-summary a{text-decoration:underline}.candidate-editor[id]{scroll-margin-top:90px}
@media(max-width:639px){.candidate-page-heading{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.candidate-page-heading h1{font-size:27px}.candidate-page-heading p{font-size:14px;margin-top:8px}.candidate-page-heading>div{flex:1;min-width:130px}.candidate-page-heading>.button{padding:11px 13px;font-size:13px}.candidate-create-panel{padding:20px}.position-panel .candidate-summary-grid,.workspace-position-card .candidate-summary-grid{gap:13px 9px;margin-top:12px}.candidate-summary-tile figcaption{font-size:12px;line-height:1.45}.position-panel .position-panel-heading{min-height:0;margin-bottom:2px}.candidate-summary-grid .candidate-summary-tile img{border-radius:6px}.candidate-create-form .candidate-form-actions>*{flex:1}}

.candidate-summary-grid.count-1{grid-template-columns:minmax(0,180px)!important}.candidate-summary-grid.count-1 img{max-width:180px}
@media(max-width:639px){.position-panels,.workspace-position-grid{align-items:start}.candidate-summary-tile figcaption{font-size:13px}}

.candidate-page-heading{display:block}.candidate-heading-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 16px}.candidate-heading-row h1{margin:0}.candidate-heading-row>.button{min-height:44px;margin:0}.candidate-page-heading>p{margin-top:12px}
@media(max-width:639px){.candidate-heading-row>.button{font-size:13px;padding:11px 13px}.candidate-page-heading{display:block}.candidate-page-heading>div{min-width:0}}

/* Context and setup controls share the existing button language. */
.context-back,.candidate-back{margin-bottom:18px}
.draft-position-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;margin-top:14px}
.draft-position-actions>a{flex:1 1 auto}
.draft-position-actions details{width:100%;min-width:0}
.draft-position-actions summary,.add-position-panel summary{display:flex;align-items:center;min-height:44px;cursor:pointer;width:fit-content;max-width:100%;white-space:normal}
.draft-position-actions form{margin-top:14px}
.admin-main .button{min-height:44px;white-space:normal;text-align:center}
.admin-main .button:active{transform:translateY(1px)}
.admin-main .button:focus-visible,.admin-main summary:focus-visible{outline:3px solid #3766e9;outline-offset:3px}
.registration-controls{gap:16px}
.current-state-action form>.button,.credential-actions form>.button,.registration-controls form>.button{margin-top:0}

/* Final position action grouping and supplied product branding. */
.position-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:12px 0 0}
.position-title-row h2{margin:0;min-width:0;flex:1}
.position-edit-toggle{flex:none;padding:9px!important;gap:6px!important;font-size:13px!important;min-width:44px}
.position-action-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.position-action-pair>a{width:100%;min-width:0;min-height:48px!important;padding:9px 7px!important;font-size:13px!important;line-height:1.4;align-self:stretch}
.position-action-pair .manage-candidates-short{display:none}
.position-inline-editor{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.position-inline-editor h3{font-size:17px;margin:0 0 14px}.position-inline-editor .action-group{margin-top:16px}
.workspace-position-card .position-view{width:100%;margin-top:auto}
.workspace-position-card .candidate-summary-grid{margin-bottom:16px}



.layout-admin .sidebar{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}
.layout-admin .sidebar::-webkit-scrollbar,.sidebar nav::-webkit-scrollbar{display:none;width:0;height:0}
.sidebar nav{flex:1 1 auto;min-height:48px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}

.sidebar .sidebar-bottom{margin-top:0;border-top:1px solid #ffffff26;padding-top:12px;flex:none}
.sidebar-bottom .button{margin:0}



@media(max-width:639px){.position-edit-toggle span{display:none}.position-action-pair .manage-candidates-long{display:none}.position-action-pair .manage-candidates-short{display:inline}.position-action-pair>a{font-size:13px!important}}


@media(max-height:420px){.sidebar .drawer-heading{min-height:44px;padding:6px 0}.sidebar .sidebar-bottom{padding-top:8px}.sidebar nav{min-height:48px}}



.position-inline-editor{scroll-margin-top:88px}

/* One product lockup: a transparent symbol and a single HTML name. */
.product-logo{display:block;width:46px;height:46px;aspect-ratio:auto;flex:0 0 46px;overflow:visible;background:none;border:0;border-radius:0;box-shadow:none}
.product-logo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:none;background:none;border:0;box-shadow:none}
.product-label{display:block;white-space:nowrap;font-size:18px;font-weight:700;line-height:1.2;letter-spacing:-.025em}
.layout-admin .sidebar-brand{height:76px;min-height:76px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;padding:0 8px}
.layout-admin .sidebar-brand .product-logo{display:block;width:46px;height:46px;flex-basis:46px}
.layout-admin .sidebar-brand .product-label{display:block;padding:0;color:#fff;font-size:18px;white-space:nowrap}
.portal-brand{display:flex;flex-direction:row;align-items:center;gap:8px;width:fit-content;max-width:100%;min-height:46px}
.portal-brand .product-logo{width:46px;height:46px}.portal-brand .product-label{font-size:17px;color:white}
.site-header .brand{display:flex;flex-direction:row;align-items:center;gap:8px}.site-header .product-logo{width:46px;height:46px}.site-header .product-label{color:var(--navy);font-size:18px}
@media(min-width:640px) and (max-width:1099px){.layout-admin:not(.sidebar-expanded) .sidebar-brand{justify-content:center;padding:0;height:76px;min-height:76px}.layout-admin:not(.sidebar-expanded) .sidebar-brand .product-logo{width:46px;height:46px}.layout-admin:not(.sidebar-expanded) .sidebar-brand .product-label{display:none}}
@media(min-width:1100px){.layout-admin.sidebar-compact .sidebar-brand{justify-content:center;padding:0}.layout-admin.sidebar-compact .sidebar-brand .product-label{display:none}}
@media(max-width:639px){.layout-admin .sidebar-brand{height:76px;min-height:76px;flex-direction:row;align-items:center;gap:6px}.layout-admin .sidebar-brand .product-label{font-size:17px}.portal-brand .product-label{font-size:16px}}
@media(max-height:420px){.layout-admin .sidebar-brand{height:66px;min-height:66px}}
