.environment-strip{background:var(--palette-20);border-bottom:1px solid var(--palette-21);color:var(--palette-22);font-size:var(--fs-14);text-align:center;padding:8px 16px;font-weight:600}.topbar{background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:18px 28px;min-height:84px}.shell-logo{display:block;max-width:180px;max-height:60px;object-fit:contain}.topbar>a{flex-shrink:0}.election-switcher{flex:1;min-width:0;position:relative}.election-switcher summary{display:grid;gap:3px;max-width:650px;padding:0}.election-switcher summary>span:last-child{font-size:var(--fs-14);overflow-wrap:anywhere}.switcher-panel,.identity-panel{position:absolute;top:100%;margin-top:12px;z-index:40;background:var(--surface);border:1px solid var(--line);padding:20px;border-radius:12px;box-shadow:var(--shadow);width:min(560px,calc(100vw - 40px))}.switcher-panel{display:grid;gap:16px}.identity-menu{position:relative;flex-shrink:0;font-size:var(--fs-14)}.identity-panel{right:0;width:300px;overflow-wrap:anywhere}.identity-panel ul{padding-left:20px}.identity-panel li{margin-bottom:12px}.layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 116px)}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:28px 16px;display:flex;flex-direction:column;gap:20px}.sidebar-heading{font-weight:700;font-size:var(--fs-14);padding:0 12px}.nav-group{margin-bottom:24px}.nav-caption{font-size:var(--fs-14);letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted);margin:0 12px 8px}.nav-group a{display:flex;gap:12px;align-items:center;padding:11px 12px;min-height:44px;border-radius:8px;text-decoration:none;font-weight:550;font-size:var(--fs-14);color:var(--muted)}.nav-group a:hover{background:var(--soft)}.nav-group a[aria-current=page]{background:var(--palette-23);color:var(--palette-24);font-weight:700}.nav-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;flex-shrink:0}.sidebar-bottom{margin-top:auto;font-size:var(--fs-14);color:var(--muted);padding:12px}.workspace{min-width:0;display:flex;flex-direction:column}.workspace main{width:100%;max-width:1200px;padding:40px;align-self:center;flex:1}.heading{display:flex;gap:24px;justify-content:space-between;align-items:flex-start;margin-bottom:30px}.heading p{color:var(--muted);max-width:680px;margin:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:24px;box-shadow:0 2px 4px var(--palette-25);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:8px;min-width:0}.stat b{font-size:var(--fs-36);line-height:1.15;letter-spacing:-.04em;font-weight:650}.stat .label{font-size:var(--fs-14);font-weight:600}.stat small{color:var(--muted)}.badge,.env,.environment-label{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:5px;padding:3px 8px;font-size:var(--fs-14);font-weight:650;text-transform:none;white-space:normal;background:var(--soft);color:var(--palette-26)}.badge.live{background:var(--brand);color:var(--surface);border-color:var(--brand)}.badge.warning{background:var(--palette-20);color:var(--warn)}.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.full{grid-column:1/-1}.flex-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px}.definition{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.definition dt{font-size:var(--fs-14);color:var(--muted);margin-bottom:6px}.definition dd{margin:0;font-size:var(--fs-14);overflow-wrap:anywhere}.table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:var(--fs-14)}th{text-align:left;background:var(--soft);position:sticky;top:0;font-size:var(--fs-14);color:var(--muted)}th,td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted)}td button{font-size:var(--fs-14)}tbody tr:last-child td{border-bottom:0}.notice,.form-error{padding:16px 18px;border:1px solid var(--palette-27);background:var(--palette-28);border-radius:8px;margin:16px 0;font-size:var(--fs-14)}.notice.warning{background:var(--palette-29);border-color:var(--palette-30);color:var(--warn)}.form-error,.notice.error{background:var(--palette-31);border-color:var(--palette-32);color:var(--palette-33)}.empty{text-align:center;padding:44px 24px}.empty p{color:var(--muted);max-width:560px;margin-inline:auto}.empty-symbol{display:block;font-size:var(--fs-30);color:var(--muted);margin-bottom:16px}.flow,.election-stage-track{list-style:none;display:flex;flex-wrap:wrap;padding:0;gap:8px;margin:20px 0}.flow li,.election-stage-track li{font-size:var(--fs-14);padding:7px 10px;border:1px solid var(--line);border-radius:5px;background:var(--soft)}.flow .active,.flow .current,[aria-current=step]{border-color:var(--brand);font-weight:700;color:var(--brand)}progress{width:100%;height:8px;accent-color:var(--brand);border:0;border-radius:99px;overflow:hidden}progress::-webkit-progress-bar{background:var(--palette-34)}progress::-webkit-progress-value{background:var(--brand)}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:600px;width:calc(100% - 32px);max-height:90svh;overflow:auto;box-shadow:0 24px 80px var(--palette-35)}dialog::backdrop{background:var(--palette-36)}.close{float:right}.nav-drawer{margin:0;max-height:100svh;height:100svh;max-width:340px;border-radius:0;padding:20px}.drawer-close{margin-bottom:24px}#menu-toggle{display:none}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:min(600px,calc(100vw - 32px));background:var(--ink);color:var(--surface);padding:16px 22px;border-radius:10px;z-index:100;font-size:var(--fs-14);box-shadow:var(--shadow)}#toast.show{opacity:1;transform:translate(-50%,0)}.service-footer{border-top:1px solid var(--line);padding:24px 32px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;font-size:var(--fs-14);color:var(--muted);margin-top:auto}.service-identity{display:flex;gap:12px;align-items:center}.service-identity img{width:32px}.service-identity strong,.service-identity span{display:block}.service-footer address{font-style:normal}.service-contact,.legal-links{display:flex;gap:16px;flex-wrap:wrap}.service-contact a,.legal-links a{min-height:44px;display:inline-flex;align-items:center}.voter-shell .sidebar{display:none}.voter-shell .layout{display:block}.voter-shell main{max-width:720px}.voter-shell #menu-toggle{display:inline-flex}.initial{max-width:600px;padding:48px;margin:auto}.partner-logo{width:100%;max-width:450px}.legal-page{max-width:850px;margin:auto;padding:48px 24px}.legal-page h1,.legal-page h2{margin-top:28px}@media(max-width:959px){.layout{display:block}.sidebar{display:none}#menu-toggle{display:inline-flex}.topbar{flex-wrap:wrap;padding:16px;gap:16px}.shell-logo{max-width:150px;max-height:45px}.election-switcher{order:4;flex-basis:100%}.identity-menu{margin-left:auto}.workspace main{padding:28px 20px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.definition{grid-template-columns:repeat(2,minmax(0,1fr))}.service-footer{padding:24px 20px}.identity-panel{width:min(300px,calc(100vw - 32px))}}@media(max-width:599px){.form-grid,.form-grid.three{grid-template-columns:1fr}.full{grid-column:auto}.panel{padding:20px 16px}.stats{gap:10px}.stat{padding:18px 14px}.stat b{font-size:var(--fs-30)}.heading{display:block}.panel-head{align-items:flex-start}.identity-menu{max-width:100%;font-size:var(--fs-14)}.topbar>a{flex:1}.topbar .identity-menu{flex-basis:100%;margin:0}.identity-panel{left:0;right:auto}.definition{grid-template-columns:1fr}.flex-actions>button{flex:1}h1{overflow-wrap:anywhere}.service-footer{display:block}.service-identity{margin-bottom:16px}}@media print{.sidebar,.topbar,.environment-strip,.flex-actions,button{display:none!important}.layout{display:block}.workspace main{padding:0}.panel,.stat{break-inside:avoid;box-shadow:none}.service-footer{background:var(--surface)}}

.identity-menu summary{list-style:none;display:flex;align-items:center;gap:12px;border:1px solid var(--line-strong);border-radius:var(--r-md);padding:10px 14px}.identity-menu summary::-webkit-details-marker{display:none}.identity-menu summary::after{content:'⌄';margin-left:auto}.identity-menu[open] summary::after{transform:rotate(180deg)}.shell-logo{max-height:40px}.voter-shell main{max-width:640px}.voter-navigation{background:var(--surface);border-bottom:1px solid var(--line);padding:8px 24px}.voter-navigation nav,.voter-navigation .nav-group{display:flex;gap:12px;margin:0;flex-wrap:wrap}.voter-navigation .nav-caption{display:none}.voter-shell #menu-toggle{display:none}.badge.info{color:var(--info);background:var(--info-bg)}.badge.success{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}.badge.warning{color:var(--warn);background:var(--warn-bg)}.badge.danger{color:var(--danger);background:var(--danger-bg)}.stage-summary{font-weight:600;margin:20px 0 8px}.stage-progress{display:none}.election-stage-track{gap:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.election-stage-track li{border:0;border-top:3px solid var(--line-strong);border-radius:0;background:transparent;padding:12px 8px;color:var(--muted);font-size:var(--fs-14)}.election-stage-track .complete{border-color:var(--ok);color:var(--ok)}.election-stage-track .current{background:var(--brand);color:var(--surface);border-color:var(--brand);font-weight:700}.stage-stepper [aria-current=step]{color:var(--surface)}
@media(max-width:959px){.voter-navigation{display:none}.voter-shell #menu-toggle{display:inline-flex}}
@media(max-width:599px){.stage-stepper .election-stage-track{display:none}.stage-progress{display:block}}
@media(forced-colors:active){.election-stage-track .current{border:3px solid Highlight}.election-stage-track .complete{border-top:3px solid ButtonText}}

.election-switcher summary{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line-strong);border-radius:var(--r-md);padding:10px 14px}.election-summary-text{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.switcher-change{display:flex;gap:8px;align-items:center;flex-shrink:0;color:var(--brand)}.election-switcher summary::-webkit-details-marker{display:none}.election-switcher[open] .switcher-change>span{transform:rotate(180deg)}
.election-summary-text>span:last-child{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.environment-label-compact{display:none}.identity-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:599px){.environment-strip{padding:5px 8px}.environment-label-full{display:none}.environment-label-compact{display:inline}.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:8px 12px;min-height:0}.topbar>a{flex:auto;min-width:0}.shell-logo{max-width:105px;max-height:36px}.topbar .identity-menu{grid-column:3;grid-row:1;flex-basis:auto;min-width:0;max-width:96px;margin:0}.identity-menu summary{padding:8px;gap:4px;min-height:40px}.identity-menu summary::after{margin-left:0}.election-switcher{grid-column:1/-1;grid-row:2;order:0;min-width:0}.election-switcher summary{min-height:44px;padding:6px 10px;gap:8px}.election-summary-text .eyebrow{display:none}.switcher-change{gap:4px}.workspace main{padding:16px 12px}}
@media(max-width:599px){.topbar .identity-panel{right:0;left:auto;max-width:calc(100vw - 32px);overflow-wrap:anywhere}}
@media(min-width:1280px){.election-stage-track{grid-template-columns:repeat(10,minmax(0,1fr))}.election-stage-track li{padding:10px 4px;overflow-wrap:normal}}
