@import url('/ifx/ifx-foundation.css') layer(foundation);
/* Community-inspired shell, local tabs and task summaries; shared IFX owns the base controls.
   The hue/saturation pair is configurable. Semantic statuses keep their own color meaning. */
body[data-ifx-application-layout]{
 --theme-hue:210;--theme-saturation:18%;--ifx-control-height:44px;--ifx-focus-ring:3px solid var(--ifx-color-focus);
 --ifx-color-canvas:hsl(var(--theme-hue) var(--theme-saturation) 96%);
 --ifx-color-surface:#fff;--ifx-color-surface-muted:hsl(var(--theme-hue) var(--theme-saturation) 94%);
 --ifx-color-surface-selected:hsl(var(--theme-hue) var(--theme-saturation) 91%);
 --ifx-color-text:hsl(var(--theme-hue) 18% 20%);--ifx-color-text-muted:hsl(var(--theme-hue) 10% 39%);
 --ifx-color-action:hsl(var(--theme-hue) var(--theme-saturation) 32%);--ifx-color-action-hover:hsl(var(--theme-hue) var(--theme-saturation) 25%);
 --ifx-color-border:hsl(var(--theme-hue) 16% 84%);--ifx-color-control-border:hsl(var(--theme-hue) 14% 70%);
 --ifx-color-focus:hsl(var(--theme-hue) 35% 38%);--ifx-color-danger:#a23438;--ifx-color-success:#30634f;--ifx-color-warning:#805a24;
 --ifx-radius-control:8px;--ifx-radius-panel:14px;
 margin:0;min-height:100dvh;background:var(--ifx-color-canvas);color:var(--ifx-color-text);
 font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;font-size:16px;line-height:1.65;
}
*{box-sizing:border-box}a{color:var(--ifx-color-action);text-underline-offset:4px}a:hover{text-decoration:underline}
h1,h2,p{overflow-wrap:anywhere}h1{font-size:clamp(26px,3vw,34px);line-height:1.3;letter-spacing:-.6px;margin:4px 0 12px;font-weight:650}h2{font-size:20px;line-height:1.4;margin:0 0 8px;font-weight:650}p{margin:8px 0 16px}
button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}
:is(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--ifx-color-focus);outline-offset:3px}
button,.button{min-height:44px;border-radius:var(--ifx-radius-control);border:1px solid transparent;padding:9px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.5;transition:background .15s}
.button:hover{text-decoration:none}button.primary,.button.primary{background:var(--ifx-color-action);color:#fff;border-color:var(--ifx-color-action)}button.primary:hover,.button.primary:hover{background:var(--ifx-color-action-hover)}button.secondary,.button.secondary{background:var(--ifx-color-surface);color:var(--ifx-color-action);border-color:var(--ifx-color-border)}button.secondary:hover,.button.secondary:hover{background:var(--ifx-color-surface-muted)}.full{width:100%;margin-top:12px}
label{display:block;font-size:15px;font-weight:600;margin:18px 0 6px}input:not([type=checkbox]),textarea,select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--ifx-color-control-border);border-radius:8px;background:var(--ifx-color-surface);color:var(--ifx-color-text);font-size:16px}input::placeholder,textarea::placeholder{color:#727e88;opacity:1}textarea{resize:vertical;line-height:1.6}input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:var(--ifx-color-action)}.check-row{display:flex;gap:12px;align-items:flex-start;font-weight:400;min-height:44px;padding:8px 0;margin-block:14px}.check-row input{margin-top:3px}
.site-header{background:var(--ifx-color-surface);border-bottom:1px solid var(--ifx-color-border)}.header-inner{max-width:1160px;margin:auto;min-height:86px;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:12px;align-items:center;font-size:19px;line-height:1.4;font-weight:650;color:var(--ifx-color-text);text-decoration:none;min-width:0}.brand>span:last-child{overflow-wrap:anywhere}.brand:hover{text-decoration:none}.brand small{display:block;font-size:12px;font-weight:400;color:var(--ifx-color-text-muted);margin-top:3px;letter-spacing:.8px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;background:var(--ifx-color-surface-selected);border-radius:12px;flex:none}.quiet-link{font-size:13px;flex:none;padding:10px 0}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex:none}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.member-workspace{max-width:560px;margin:38px auto 32px;padding:0 20px}.workspace{max-width:1160px;margin:32px auto;padding:0 28px}.login-workspace{max-width:480px;margin:60px auto}.eyebrow{font-size:12px;font-weight:650;letter-spacing:1.8px;color:var(--ifx-color-text-muted);margin-bottom:8px}.lead{color:var(--ifx-color-text-muted);margin:0 0 24px}.muted,.field-hint{color:var(--ifx-color-text-muted)}.field-hint{font-size:13px;line-height:1.65;margin:6px 0 12px}.event-meta{display:flex;gap:10px;font-size:14px;color:var(--ifx-color-text-muted);padding-bottom:12px}.panel{background:var(--ifx-color-surface);border:1px solid var(--ifx-color-border);border-radius:var(--ifx-radius-panel);padding:26px;margin-bottom:20px;box-shadow:0 3px 14px #283a4c04}.panel>.muted{font-size:14px;margin-top:0}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}.identity-card h2{font-size:26px;margin-bottom:6px}.identity-card .business{font-size:18px;margin:0}.identity-card .muted{margin-top:4px}.serial{font-family:Consolas,monospace;letter-spacing:1px;font-size:16px;font-weight:500;white-space:nowrap}.badge{display:inline-block;padding:4px 10px;font-size:13px;border-radius:6px;background:var(--ifx-color-surface-selected);color:var(--ifx-color-action);font-weight:600}.badge.success,.notice.success{background:#edf6f1;color:#30634f}.steps{display:flex;list-style:none;padding:0;margin:20px 0 26px;justify-content:space-between;gap:10px;font-size:13px;color:var(--ifx-color-text-muted)}.steps li{display:flex;gap:7px;align-items:center}.steps b{width:24px;height:24px;border-radius:50%;border:1px solid var(--ifx-color-border);display:grid;place-items:center;font-size:12px}.steps .current{color:var(--ifx-color-action);font-weight:600}.steps .current b{background:var(--ifx-color-action);color:white;border-color:var(--ifx-color-action)}
.privacy-note{font-size:13px;color:var(--ifx-color-text-muted);border-top:1px solid var(--ifx-color-border);padding-top:16px;margin:20px 0 4px}.after-panel{font-size:14px;text-align:center;color:var(--ifx-color-text-muted)}.notice{background:var(--ifx-color-surface-muted);border-radius:8px;padding:14px 16px;font-size:14px;margin:16px 0;overflow-wrap:anywhere}.notice p:last-child{margin-bottom:0}.notice strong{font-weight:650}.validation{color:var(--ifx-color-danger);font-size:14px;background:#fff3f3;border-radius:8px;padding:10px 14px;margin-bottom:14px}.validation.validation-summary-valid{display:none}.validation ul{margin:0;padding-left:18px}.input-validation-error{border-color:var(--ifx-color-danger)!important}.recovery-code{display:block;overflow-wrap:anywhere;background:var(--ifx-color-surface-muted);padding:16px;border:1px dashed var(--ifx-color-control-border);border-radius:8px;font-size:17px;font-weight:600;line-height:1.9;letter-spacing:1px;user-select:all}.submit-status:empty{display:none}.submit-status{font-size:13px;color:var(--ifx-color-text-muted);margin-bottom:0}form[aria-busy=true] button{opacity:.65;cursor:wait}
.channel-strip,.local-tabs{display:flex;gap:4px;align-items:center;overflow-x:auto}.channel-strip{max-width:1160px;margin:auto;padding:0 28px}.channel-strip>a,.local-tabs>a{padding:12px 18px;min-height:48px;white-space:nowrap;text-decoration:none;border-bottom:3px solid transparent;color:var(--ifx-color-text-muted);font-size:15px}.channel-strip>a[aria-current=page],.local-tabs>a[aria-current=page]{color:var(--ifx-color-action);border-color:var(--ifx-color-action);font-weight:650}.channel-strip form{margin-left:auto}.link-button{border:0;background:transparent;padding-inline:10px;font-size:13px;font-weight:400;color:var(--ifx-color-text-muted)}.local-tabs{margin-bottom:20px;border-bottom:1px solid var(--ifx-color-border)}.local-tabs>a{flex:1;text-align:center;padding-inline:8px}.site-footer{text-align:center;font-size:12px;letter-spacing:.5px;color:var(--ifx-color-text-muted);padding:20px 20px 28px}
.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.workspace-heading h1{margin-bottom:0}.summary-strip{display:flex;gap:28px;flex-wrap:wrap;margin:22px 0;font-size:14px;color:var(--ifx-color-text-muted)}.summary-strip b{font-size:26px;font-weight:600;margin-right:8px;color:var(--ifx-color-text)}.list-panel{padding:0;overflow:hidden}.toolbar{padding:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input{flex:1;min-width:200px}.toolbar select{width:auto;min-width:140px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{background:var(--ifx-color-surface-muted);font-weight:600;color:var(--ifx-color-text-muted);white-space:nowrap;font-size:13px}td,th{padding:13px 18px;border-top:1px solid var(--ifx-color-border);vertical-align:middle}td:nth-child(2){min-width:180px;max-width:360px;overflow-wrap:anywhere}td:last-child{white-space:nowrap}.cell-detail{display:block;font-size:13px;color:var(--ifx-color-text-muted);margin-top:3px;overflow-wrap:anywhere}.phone{white-space:nowrap;font-variant-numeric:tabular-nums}.warning-text{color:var(--ifx-color-warning)}.pagination{padding:16px 18px;border-top:1px solid var(--ifx-color-border);display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ifx-color-text-muted)}.pagination a{display:inline-flex;align-items:center;min-height:44px;margin-left:20px}.empty-state{text-align:center;padding:46px 20px;color:var(--ifx-color-text-muted)}.empty-state .icon{width:36px;height:36px;margin-bottom:16px}.empty-state h2{font-size:18px}.empty-state p{font-size:14px;margin-bottom:0}.review-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.back-link{display:inline-flex;align-items:center;min-height:44px;margin-bottom:14px;font-size:14px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.actions>*{flex:1}.form-pair{display:flex;gap:16px}.form-pair>div{flex:1;min-width:0}.theme-settings,.audit{border-top:1px solid var(--ifx-color-border);padding-top:10px;margin:20px 0}.theme-settings summary,.audit summary{cursor:pointer;min-height:44px;padding:8px 0;font-size:14px}.audit ul{font-size:13px;padding-left:18px}.audit li{margin-bottom:10px}.qr-panel img{display:block;max-width:100%;height:auto;margin:16px auto}.url-text{font-size:13px;overflow-wrap:anywhere;text-align:center}.qr-panel .notice{margin-bottom:0}
/* Staff exceptions retain their semantic contrast independently of the event theme. */
body[data-ifx-application-layout]{--election-danger-surface:#fff1f1;--election-danger-border:#d9a0a3}
.badge.danger{color:var(--ifx-color-danger);background:var(--election-danger-surface);border:1px solid var(--election-danger-border)}
.issue-panel{display:flex;gap:12px;align-items:flex-start;background:var(--election-danger-surface);border:1px solid var(--election-danger-border);border-left:4px solid var(--ifx-color-danger);border-radius:10px;padding:14px 18px;margin:0 0 20px;color:var(--ifx-color-danger)}
.issue-panel .icon{margin-top:2px}.issue-panel h2{font-size:18px;margin:0 0 4px}.issue-panel p{font-size:14px;margin:0}
.summary-strip{gap:12px 24px;align-items:center}.summary-strip>a{display:inline-flex;gap:7px;align-items:center;min-height:44px;color:var(--ifx-color-text-muted);text-decoration:none;border-bottom:2px solid transparent}.summary-strip>a:hover,.summary-strip>a[aria-current=page]{border-bottom-color:currentColor}.summary-strip b{margin:0}.summary-strip .issue-summary{padding:3px 12px;background:var(--election-danger-surface);border:1px solid var(--election-danger-border);border-radius:8px;color:var(--ifx-color-danger)}.summary-strip .issue-summary b{color:inherit}.issue-summary[aria-current=page]{outline:2px solid var(--ifx-color-danger);outline-offset:2px}
.has-issue>td:first-child{box-shadow:inset 3px 0 var(--ifx-color-danger)}.review-state{min-width:210px}.review-state .badge{white-space:nowrap}.button.issue-link,button.danger-action{color:var(--ifx-color-danger);border-color:var(--election-danger-border)}button.danger-action:hover,.button.issue-link:hover{background:var(--election-danger-surface)}
.review-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.review-panel{padding:20px 24px}.section-heading{padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--ifx-color-border);font-size:18px}.identity-section h3{font-size:14px;margin:0 0 10px;display:flex;gap:10px;justify-content:space-between;align-items:baseline}.identity-section .serial{font-size:14px}.identity-facts{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:12px;row-gap:5px;margin:0;font-size:15px}.identity-facts dt{color:var(--ifx-color-text-muted)}.identity-facts dd{margin:0;overflow-wrap:anywhere}.identity-facts .phone{white-space:normal}.identity-section .field-hint{margin:10px 0 0}.matched-identity{margin-top:16px;padding:14px 16px;background:var(--ifx-color-surface-muted);border:1px solid var(--ifx-color-border);border-radius:8px}.handling-guidance{font-size:14px;margin:0 0 14px}.handling-guidance>strong{display:block;margin-bottom:3px}.field-optional{font-weight:400;font-size:12px;color:var(--ifx-color-text-muted);margin-left:6px}.review-panel form>label:first-of-type{margin-top:0}.review-panel .check-row{font-size:14px;line-height:1.65;margin-bottom:8px}.review-panel .actions{margin-top:10px}.review-panel .audit{margin-bottom:0;margin-top:16px}.recovery-impact{margin-top:0}.result-label{font-size:14px;margin:18px 0 5px}.record-note{white-space:pre-wrap;margin-top:0}.validation{border:1px solid var(--election-danger-border)}.validation-title{display:block;margin-bottom:5px;font-size:15px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;left:12px;top:-100px;z-index:1000;background:var(--ifx-color-surface);padding:12px}.skip-link:focus{top:12px}
@media(max-width:760px){.header-inner{min-height:72px;padding:14px 18px;gap:12px}.brand{font-size:16px}.brand-mark{width:36px;height:36px;border-radius:10px}.brand small{font-size:11px}.quiet-link{font-size:12px}.member-workspace{margin-top:28px;padding-inline:18px}.panel{padding:22px}.workspace{margin:24px auto;padding:0 18px}.channel-strip{padding:0 8px}.channel-strip>a{padding-inline:12px}.channel-strip form{flex:none}.review-layout,.settings-layout{grid-template-columns:1fr;gap:0}.list-panel{padding:0}.workspace-heading{align-items:flex-start}.workspace-heading .button{font-size:13px;padding-inline:10px}.summary-strip{gap:16px}.summary-strip b{font-size:22px}.login-workspace{margin:32px auto}.qr-panel{max-width:none}.toolbar{padding:14px}.toolbar input{min-width:100%;flex-basis:100%}th,td{padding:12px 14px}.form-pair{flex-direction:column;gap:0}}
@media(max-width:370px){.header-inner{gap:8px}.quiet-link{max-width:60px;text-align:right}.panel{padding:18px}.steps{gap:6px;font-size:12px}.steps li{gap:5px}.workspace-heading{flex-direction:column}.summary-strip{gap:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.site-header,.site-footer,.skip-link,button,.back-link{display:none}.workspace,.member-workspace{margin:0;padding:0;max-width:none}.panel{box-shadow:none}.recovery-card{display:none}}
.workspace:has(.review-heading){margin-top:20px}.review-title{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.review-title .back-link{margin:0;white-space:nowrap}.review-heading h1{font-size:28px;margin:0}.review-panel .section-heading{padding-bottom:10px;margin-bottom:12px}
@media screen and (max-width:760px){.review-title{gap:4px;display:block}.review-heading h1{font-size:26px}.review-heading>.badge{margin-top:9px}.review-panel .actions{flex-direction:column}.review-panel{padding:20px}.review-title .back-link{display:flex}.issue-panel{padding:14px}.summary-strip{gap:8px 16px}}
/* Reusable confirmation surface; object facts and command policy are supplied by the caller. */
.confirmation-dialog{width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;border:1px solid var(--ifx-color-border);border-radius:14px;background:var(--ifx-color-surface);color:var(--ifx-color-text);box-shadow:0 20px 64px #18283840}.confirmation-dialog::backdrop{background:#18283870}.confirmation-dialog h2{font-size:22px;margin-bottom:16px}.confirmation-object{padding:12px 14px;background:var(--ifx-color-surface-muted);border:1px solid var(--ifx-color-border);border-radius:8px;overflow-wrap:anywhere}.confirmation-object p{font-size:14px;margin:4px 0 0}.confirmation-dialog>p{font-size:15px;margin:16px 0}.confirmation-note{padding:12px 14px;border-left:3px solid var(--ifx-color-border);font-size:14px}.confirmation-note p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.confirmation-dialog .actions{margin-top:20px}.confirmation-dialog button{flex:1}button.danger-primary{background:var(--ifx-color-danger);border-color:var(--ifx-color-danger);color:white}button.danger-primary:hover{background:#85282c;border-color:#85282c}.confirmation-fallback{border:1px solid var(--ifx-color-border);padding:16px;border-radius:8px}.confirmation-fallback h3{margin:0;font-size:18px}.short-code{text-align:center;font-size:30px;letter-spacing:8px;padding:12px}.review-panel textarea[aria-invalid=true]{border-color:var(--ifx-color-danger)}
@media screen and (max-width:370px){.confirmation-dialog{padding:20px}.confirmation-dialog .actions{flex-direction:column}}
@media print{.confirmation-dialog{display:none}}
.confirmation-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.confirmation-heading h2{flex:1;margin:4px 0 0}.confirmation-dialog .confirmation-close{flex:0 0 44px;width:44px;height:44px;padding:10px;margin:-6px -8px 0 0;background:transparent;color:var(--ifx-color-text-muted)}.confirmation-close:hover{background:var(--ifx-color-surface-muted)}
/* Election workspaces group the current list and its next action; history/settings stay local. */
.election-current{display:flex;justify-content:space-between;gap:20px;align-items:center;background:var(--ifx-color-surface-selected);border:1px solid var(--ifx-color-border);border-radius:12px;padding:18px 22px;margin-bottom:22px}.election-current .eyebrow{display:block;margin-bottom:3px}.election-current h2{margin:0}.election-current p{margin:5px 0 0;font-size:14px}.election-current .badge{margin-left:12px;background:var(--ifx-color-surface)}.current-position{background:hsl(var(--theme-hue) var(--theme-saturation) 98%)}
.position-heading{margin-bottom:12px}.position-heading .back-link{margin:0;min-height:36px}.position-heading h1{font-size:28px}.position-summary{display:flex;gap:12px 22px;flex-wrap:wrap;font-size:14px;margin-bottom:16px;color:var(--ifx-color-text-muted)}.position-summary b{color:var(--ifx-color-text);font-weight:650}.position-workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.position-workspace>.panel{min-width:0}.table-heading{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.table-heading h2{font-size:18px;margin:0}.table-heading>a{font-size:14px}.task-table{max-height:480px;overscroll-behavior:contain}.task-table th{position:sticky;top:0;z-index:1}.task-table td:first-child{min-width:210px;max-width:440px;overflow-wrap:anywhere}.task-table td:nth-child(2){min-width:70px}.task-table .serial{font-size:13px}.task-table .vote-total{font-size:20px;font-variant-numeric:tabular-nums}.stage-panel{padding:20px}.stage-panel h2{font-size:18px;margin-bottom:14px}.stage-panel .actions{flex-direction:column;gap:10px}.stage-panel p{font-size:14px}.stage-panel .progress-number{font-size:15px;margin:8px 0}.progress-number b{font-size:36px;font-weight:650;margin-right:6px}.quiet-refresh{display:inline-flex;min-height:44px;align-items:center;margin-top:8px;font-size:14px}.compact-issue{padding:12px;margin:0}.compact-issue h2{font-size:16px;margin-bottom:5px}.compact-issue p{font-size:14px}.result-counts{display:flex;gap:18px;flex-wrap:wrap;font-size:14px}.result-counts b{font-size:24px;font-weight:650}.excluded-candidate{color:var(--ifx-color-text-muted)}.winner-choice{display:flex;gap:10px;align-items:center;min-height:44px;margin:0;font-size:14px;white-space:nowrap}.winner-choice input{width:20px;height:20px;accent-color:var(--ifx-color-action)}.position-settings{max-width:720px}.rule-fields{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:16px}.selection-summary{font-weight:600;font-size:15px;margin:14px 0}.danger-text{color:var(--ifx-color-danger)}.notice.danger{color:var(--ifx-color-danger);background:var(--election-danger-surface);border:1px solid var(--election-danger-border)}
.voter-line{display:flex;justify-content:space-between;gap:16px;color:var(--ifx-color-text-muted);font-size:14px;margin-bottom:8px}.candidate-options{border:0;padding:0;margin:0;min-width:0}.candidate-options legend{font-weight:650;font-size:18px;margin-bottom:14px}.candidate-option{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--ifx-color-border);border-radius:10px;padding:14px;margin:0 0 12px;cursor:pointer;min-height:64px}.candidate-option>input{margin-top:4px;flex:0 0 20px}.candidate-option>span{flex:1;min-width:0;overflow-wrap:anywhere}.candidate-option strong{font-size:17px}.candidate-option .cell-detail{font-weight:400;font-size:14px}.candidate-option.is-selected{border-color:var(--ifx-color-action);background:var(--ifx-color-surface-selected)}.candidate-option:has(input:focus-visible){outline:3px solid var(--ifx-color-focus);outline-offset:3px}.candidate-option:has(input:disabled){opacity:.55}.candidate-number{display:block;font-size:12px;font-weight:400;color:var(--ifx-color-text-muted);margin-top:3px}.abstain-choice{display:flex;align-items:center;gap:12px;min-height:48px;border-top:1px solid var(--ifx-color-border);padding-top:12px;margin:16px 0}.ballot-action{border-top:1px solid var(--ifx-color-border);padding-top:4px;margin-top:12px}.ballot-action .full{margin:0}.ballot-receipt h2{margin-top:18px}.receipt-choices{padding:0;list-style:none;margin:14px 0}.receipt-choices li{padding:10px 0;border-bottom:1px solid var(--ifx-color-border)}.vote-history{border-top:1px solid var(--ifx-color-border);margin:24px 0 0;padding-top:10px}.vote-history summary{cursor:pointer;padding:10px 0;min-height:44px}.vote-history ul{list-style:none;padding:0}.vote-history a{display:flex;justify-content:space-between;gap:16px;padding:12px 0}a[hidden],p[hidden],div[hidden]{display:none!important}
@media screen and (max-width:900px){.position-workspace{grid-template-columns:minmax(0,1fr) 270px;gap:16px}.stage-panel{padding:16px}}
@media screen and (max-width:760px){.position-workspace{display:flex;flex-direction:column;gap:0}.position-workspace>.panel{width:100%}.position-workspace>.stage-panel{order:-1}.position-workspace[data-winner-form]>.stage-panel{order:0}.election-current{align-items:flex-start;flex-direction:column;padding:18px}.election-current .badge{margin-left:0}.election-current h2{display:flex;flex-wrap:wrap;gap:8px}.position-summary{gap:6px 16px}.table-heading{padding:14px}.table-heading h2{font-size:17px}.stage-panel{padding:20px}.rule-fields{grid-template-columns:1fr 1fr}.rule-fields>div:last-child{grid-column:1/-1}.task-table{max-height:520px}.channel-strip{overflow-x:auto;flex-wrap:nowrap}.channel-strip>a{flex:none;padding-inline:12px}.ballot-form{padding:18px}.position-heading .back-link{font-size:13px}.position-heading h1{font-size:26px}.task-table td:first-child{min-width:175px}.task-table th,.task-table td{padding:12px}.task-table td:last-child{white-space:normal;min-width:110px}}

.workspace:has(.position-heading){margin-top:20px}.position-heading>div{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.position-feedback{color:#30634f;font-size:14px;margin:0 0 12px}.position-issue>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px}.position-issue h2{margin:0}.workspace:has(.position-heading)>.local-tabs{margin-bottom:14px}
@media(max-width:760px){.position-heading>div{display:block}.position-heading .back-link{min-height:44px}.position-issue>div{display:block}.position-issue h2{margin-bottom:4px}}
/* Result review and secretary handoff share task structure and semantic states. */
.position-picker{padding:12px 0;max-width:720px;margin:0 0 16px}.position-picker label{margin:0;white-space:nowrap}.position-picker select{flex:1;min-width:0}.publication-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:18px 20px;background:var(--ifx-color-surface);border:1px solid var(--ifx-color-border);border-radius:12px;margin-bottom:18px}.publication-strip h2{margin:0 0 10px}.publication-strip .actions{margin:0}.publication-strip p{margin:0}.publication-strip .badge+.badge{margin-left:6px}.result-summary{display:flex;flex-wrap:wrap;gap:12px 26px;padding:18px 20px}.result-summary b{font-size:23px}.result-body .result-tabs{margin:0;padding:0 6px;border-top:1px solid var(--ifx-color-border);border-bottom:1px solid var(--ifx-color-border)}.result-body .toolbar{padding:14px 18px}.vote-total{font-size:23px;font-weight:650;font-variant-numeric:tabular-nums}.supporter-group>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;background:var(--ifx-color-surface-selected);border-block:1px solid var(--ifx-color-border)}.supporter-group h2{font-size:18px;margin:0;overflow-wrap:anywhere}.supporter-group table{table-layout:fixed;min-width:420px}.supporter-group td{overflow-wrap:anywhere}.supporter-group th:nth-child(2){width:115px}.result-body .table-scroll{max-height:430px}.result-body th{position:sticky;top:0;z-index:1;background:var(--ifx-color-surface-selected)}.output-settings{max-width:760px}.output-settings .panel-top{margin-bottom:14px}.setup-status{border-top:1px solid var(--ifx-color-border);margin-top:22px;padding-top:18px}.setup-status p{margin-bottom:0}.snapshot-note{padding:12px 20px;margin:0;border-top:1px solid var(--ifx-color-border);font-size:14px;color:var(--ifx-color-text-muted)}.sheets-status{display:flex;justify-content:space-between;align-items:center;gap:20px}.sheets-status>div{flex:1;min-width:0}.sheets-status h2{font-size:20px;margin-bottom:12px}.sheets-status .issue-panel{margin:12px 0}.sheets-status form{flex-shrink:0}.sheets-status p{font-size:14px}.setup-guide{max-width:850px}.setup-guide li{padding:0 0 20px 8px;line-height:1.8}.setup-guide code{overflow-wrap:anywhere}.badge.danger{background:var(--election-danger-surface);color:var(--ifx-color-danger)}.badge.warning{background:#fff3da;color:#77540c}
@media(max-width:760px){.publication-strip,.sheets-status{align-items:stretch;flex-direction:column}.publication-strip .badge+.badge{margin-left:0;margin-top:4px}.result-summary{gap:10px 18px;padding:14px}.result-summary b{font-size:21px}.result-body .toolbar{padding:12px}.position-picker{flex-wrap:wrap}.position-picker label{width:100%}.snapshot-panel .table-heading{align-items:flex-start;flex-direction:column}.sheets-status form .primary{width:100%}.setup-guide{padding:18px}.setup-guide ol{padding-left:20px}.result-body .table-scroll{max-height:none}.result-body th{position:static}}
.workspace:has(.output-heading){margin-top:20px}.output-heading{margin-bottom:12px}.output-heading h1{font-size:28px;margin:0}.output-nav{margin-bottom:16px}.output-nav>a{flex:0 0 auto;min-width:140px}.result-context{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--ifx-color-border);border-radius:12px;background:var(--ifx-color-surface);margin-bottom:16px}.result-context>div{flex:1;min-width:0}.result-context .position-picker{padding:0;margin:0 0 10px;max-width:680px}.result-context .actions{margin:0}.publication-labels{display:flex;gap:6px;flex-wrap:wrap}.result-mode{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--ifx-color-border)}.result-mode .result-tabs{border:0;margin-right:14px;flex:none}.result-mode .result-tabs>a{padding:14px 18px}.result-mode .result-summary{padding-block:12px}.result-body .toolbar{padding-block:12px}
@media(max-width:760px){.output-heading{align-items:flex-start;gap:12px}.output-heading h1{font-size:25px}.output-heading .button,.output-heading .primary{font-size:14px;padding-inline:12px}.output-nav>a{min-width:0;flex:1}.result-context{align-items:stretch;flex-direction:column;padding:14px}.result-context .position-picker label{width:auto}.result-context .position-picker select{min-width:120px}.result-context .actions .primary{width:100%}.result-mode{display:block}.result-mode .result-tabs{margin-right:0;border-top:1px solid var(--ifx-color-border)}.result-mode .result-summary{padding:12px 14px}}
.exports-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.exports-workspace .sheets-status{flex-direction:column;align-items:stretch;padding:20px}.exports-workspace .sheets-status form{width:100%}.exports-workspace .sheets-status .primary{width:100%}.exports-workspace .sheets-status h2{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.sheet-target,.confirmation-object p{overflow-wrap:anywhere}.exports-workspace .snapshot-panel table{min-width:360px}.exports-workspace .snapshot-panel .table-heading{gap:12px;flex-wrap:wrap}.exports-workspace .snapshot-panel .table-heading h2{font-size:20px}
@media(max-width:820px){.exports-workspace{display:block}.exports-workspace .sheets-status h2{flex-direction:row;flex-wrap:wrap}}

/* Member tasks share two top-level destinations; identity owns registration and recovery. */
.member-navigation{position:sticky;top:0;z-index:10;background:var(--ifx-color-surface);border-bottom:1px solid var(--ifx-color-border)}
html:has(.member-navigation){scroll-padding-top:64px}
.member-tabs{display:flex;max-width:560px;margin:0 auto;padding:0 20px;gap:8px}
.member-tabs>a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:10px 16px;border-bottom:3px solid transparent;border-radius:8px 8px 0 0;text-decoration:none;color:var(--ifx-color-text-muted);font-weight:600}
.member-tabs>a:hover{background:var(--ifx-color-surface-muted)}
.member-tabs>a[aria-current=page]{background:var(--ifx-color-surface-selected);color:var(--ifx-color-action);border-bottom-color:var(--ifx-color-action)}
.identity-alternative{margin:-8px 0 20px;color:var(--ifx-color-text-muted);font-size:14px}
.identity-alternative>a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.header-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}.entry-recovery{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:10px}.projection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:-8px 0 22px}.projection-actions>span{color:var(--ifx-color-text-muted);margin-right:4px}.projection-actions .button{font-size:14px}
@media(max-width:760px){.header-actions{flex-direction:column;align-items:flex-end;gap:2px}.header-actions .button{font-size:12px;min-height:40px;padding:6px 10px}.projection-actions{gap:8px}.projection-actions>span{width:100%}}
@media(max-width:760px){.member-tabs{padding-inline:18px}}
@media print{.member-navigation{display:none}}
