:root{--bg:#f4f6f8;--surface:#fff;--surface-subtle:#f8fafb;--surface-selected:#eef7f2;--text:#111827;--muted:#64707d;--faint:#8a95a1;--border:#d7dde3;--border-strong:#b8c2cc;--accent:#145f3d;--accent-dark:#0d432b;--accent-soft:#e8f3ed;--danger:#b42318;--warning:#a15c07;--success:#067647;--info:#3153a3;--shadow:0 18px 42px #15223014;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.page-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:18px 0 48px}.page-shell.compact{max-width:740px}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-height:64px;margin-bottom:18px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:inline-flex}.brand-mark{background:var(--accent);color:#fff;border-radius:6px;place-items:center;width:36px;height:36px;font-size:15px;font-weight:800;display:grid}.brand strong,.brand small{display:block}.brand strong{font-size:14px;line-height:1.15}.brand small{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.2}.app-header nav{border:1px solid var(--border);background:var(--surface);border-radius:7px;align-items:center;gap:2px;padding:3px;display:inline-flex}.app-header nav a{min-height:34px;color:var(--muted);border-radius:5px;padding:8px 12px;font-size:13px;font-weight:750}.app-header nav a.active,.app-header nav a:hover{background:var(--accent-soft);color:var(--accent-dark)}.intro-strip,.admin-topbar{justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px;display:flex}.intro-strip h1,.admin-topbar h1{letter-spacing:0;max-width:760px;margin:0;font-size:clamp(28px,3.2vw,38px);line-height:1.08}.intro-strip p,.admin-topbar p{max-width:620px;color:var(--muted);margin:8px 0 0;font-size:15px;line-height:1.55}.deadline-box{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--surface);border-radius:6px;min-width:206px;padding:12px 14px}.deadline-box span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:850;display:block}.deadline-box strong{margin-top:4px;font-size:16px;display:block}.portal-layout{grid-template-columns:246px minmax(0,1fr);align-items:start;gap:16px;display:grid}.side-panel{position:sticky;top:16px}.step-progress{gap:6px;margin:0;padding:0;list-style:none;display:grid}.step-progress li{min-height:34px;color:var(--muted);align-items:center;gap:9px;font-size:13px;font-weight:750;display:flex}.step-progress li span{border:1px solid var(--border-strong);background:var(--surface);width:24px;height:24px;color:var(--muted);border-radius:999px;place-items:center;font-size:12px;display:grid}.step-progress li.current,.step-progress li.complete{color:var(--text)}.step-progress li.current span,.step-progress li.complete span{border-color:var(--accent);background:var(--accent);color:#fff}.notes-panel{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:6px;gap:10px;margin-top:16px;padding:13px;display:flex}.notes-panel svg{color:var(--accent);flex:none}.notes-panel p{margin:0;font-size:13px;line-height:1.45}.form-panel,.success-panel,.admin-detail,.admin-list,.auth-panel,.candidate-card,.document-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:6px}.form-panel{min-height:580px;padding:24px}.document-shell{max-width:960px}.document-card{padding:34px}.role-shell{max-width:760px}.role-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:6px;margin-top:30px;padding:30px}.role-heading h1{margin:0;font-size:28px;line-height:1.15}.role-heading p{color:var(--muted);margin:7px 0 0;font-size:15px;line-height:1.5}.role-options{gap:10px;margin-top:24px;display:grid}.role-option{border:1px solid var(--border-strong);width:100%;min-height:82px;color:var(--text);cursor:pointer;text-align:left;background:#fff;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;transition:background .14s,border-color .14s,color .14s;display:grid}.role-option:hover,.role-option:focus-visible{border-color:var(--accent);background:var(--surface-selected);color:var(--accent-dark);outline:none}.role-option-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:6px;place-items:center;display:grid}.role-option-copy{min-width:0}.role-option-copy strong,.role-option-copy small{display:block}.role-option-copy strong{font-size:16px;line-height:1.3}.role-option-copy small{color:var(--muted);margin-top:4px;font-size:13px;line-height:1.4}.form-role-bar{border-left:3px solid var(--accent);background:var(--surface-subtle);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:9px 11px;display:flex}.form-role-bar>span{color:var(--text);font-size:13px;font-weight:850}.text-button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:5px 2px;font-size:13px;font-weight:850}.text-button:hover,.text-button:focus-visible{color:var(--accent-dark);text-underline-offset:3px;text-decoration:underline}.section-guidance{color:var(--muted);margin:-4px 0 14px;font-size:13px;line-height:1.5}.proposer-next-step{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #b9d8c8;border-radius:6px;align-items:flex-start;gap:11px;margin-top:24px;padding:14px;display:flex}.proposer-next-step>svg{flex:none}.proposer-next-step strong{font-size:14px;display:block}.proposer-next-step p{margin:4px 0 0;font-size:13px;line-height:1.5}.profile-handoff-link{color:var(--accent);cursor:pointer;text-align:left;text-underline-offset:3px;background:0 0;border:0;margin-top:8px;padding:4px 0;font-size:13px;font-weight:800;text-decoration:underline}.profile-handoff-link:hover,.profile-handoff-link:focus-visible{color:var(--accent-dark)}.handoff-confirmation{background:var(--accent-soft);border:1px solid #b9d8c8;border-radius:6px;margin-top:12px;padding:14px}.handoff-confirmation-copy{color:var(--accent-dark);align-items:flex-start;gap:10px;display:flex}.handoff-confirmation-copy>svg{flex:none}.handoff-confirmation-copy strong{font-size:14px;display:block}.handoff-confirmation-copy p{margin:5px 0 0;font-size:13px;line-height:1.5}.handoff-confirmation-actions{border-top:1px solid #c9dfd3;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;display:flex}.handoff-notice{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #b9d8c8;border-radius:6px;align-items:flex-start;gap:10px;padding:13px;display:flex}.handoff-notice svg{flex:none}.handoff-notice p{margin:0;font-size:13px;font-weight:700;line-height:1.5}.document-title{text-align:center;margin-bottom:22px}.document-title h1,.document-title h2,.document-title p{margin:0}.document-title h1{letter-spacing:0;font-size:clamp(22px,3vw,31px);font-weight:900;line-height:1.15}.document-title h2{letter-spacing:0;margin-top:8px;font-size:clamp(18px,2.4vw,24px);font-weight:900;line-height:1.2}.document-title p{color:var(--text);margin-top:10px;font-size:15px;font-weight:750}.paper-section,.paper-notes{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.paper-section h2,.paper-notes h2{letter-spacing:0;margin:0 0 14px;font-size:16px;font-weight:900;line-height:1.25}.paper-grid,.official-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.paper-field{color:var(--text);gap:6px;font-size:13px;font-weight:850;display:grid}.paper-field.full{grid-column:1/-1}.paper-field input,.paper-field textarea,.paper-field select{border:1px solid var(--border-strong);width:100%;color:var(--text);background:#fff;border-radius:6px;outline:none;font-size:14px;font-weight:600}.paper-field input,.paper-field select{min-height:42px;padding:0 11px}.paper-field textarea{resize:vertical;min-height:118px;padding:11px}.paper-field input:focus,.paper-field textarea:focus,.paper-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #145f3d1f}.paper-field input[aria-invalid=true],.paper-field textarea[aria-invalid=true],.paper-field select[aria-invalid=true]{border-color:var(--danger)}.input-helper{color:var(--muted);margin:0;font-size:12px;font-weight:650;line-height:1.4}.paper-field input[readonly]{background:var(--surface-subtle);color:var(--muted)}.paper-static-field{color:var(--text);grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px;font-size:14px;display:grid}.paper-static-field span{font-weight:850}.paper-static-field strong{border:1px solid var(--border-strong);background:var(--surface-subtle);border-radius:6px;min-height:42px;padding:10px 11px;font-weight:750;line-height:1.35}.paper-fieldset{border:0;border-top:1px solid var(--border);margin:22px 0 0;padding:20px 0 0}.paper-fieldset legend{float:left;width:100%;color:var(--text);margin-bottom:12px;font-size:15px;font-weight:900}.paper-options{clear:both;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;display:grid}.paper-options label{min-height:30px;color:var(--text);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.paper-options input,.readonly-checks input{accent-color:var(--accent)}.paper-copy{color:var(--text);margin:0 0 12px;font-size:14px;line-height:1.55}.document-check-list{margin-bottom:14px}.return-notice{border:1px solid var(--border);background:var(--surface-subtle);border-radius:6px;padding:14px}.return-notice .paper-copy{margin-bottom:12px}.return-info-grid{gap:8px;display:grid}.return-info-line{border-top:1px solid var(--border);color:var(--text);grid-template-columns:minmax(160px,.45fr) minmax(0,1fr);gap:12px;padding-top:8px;font-size:14px;display:grid}.return-info-line span{color:var(--muted);font-weight:850}.return-info-line strong{font-weight:800;line-height:1.4}.paper-notes p{color:var(--text);margin:7px 0;font-size:14px;line-height:1.5}.document-actions{justify-content:flex-end}.section-heading{margin-bottom:18px}.section-heading h2,.success-panel h1,.admin-detail h2,.auth-panel h1{letter-spacing:0;margin:0;font-size:24px;line-height:1.14}.section-heading p,.success-panel p,.auth-panel p{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.55}.position-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.choice-card{border:1px solid var(--border);background:var(--surface);min-height:50px;color:var(--text);cursor:pointer;text-align:left;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:750;display:flex}.choice-card:hover,.choice-card.selected{border-color:var(--accent);background:var(--surface-selected);color:var(--accent-dark)}.field-grid,.review-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field{color:var(--text);gap:6px;font-size:13px;font-weight:800;display:grid}.field strong{color:var(--danger)}.field input,.field textarea,.field select,.search-box input,.list-toolbar select{border:1px solid var(--border-strong);width:100%;color:var(--text);background:#fff;border-radius:6px;outline:none;font-size:14px;font-weight:600}.field input,.field select,.search-box input,.list-toolbar select{min-height:42px;padding:0 11px}.field textarea{resize:vertical;min-height:108px;padding:11px}.field input:focus,.field textarea:focus,.field select:focus,.search-box:focus-within,.list-toolbar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #145f3d1f}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);margin:0;font-size:12px;font-weight:800}.field-helper{color:var(--muted);margin:0 0 0 auto;font-size:12px;font-weight:750}.field-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.check-list{gap:10px;margin-bottom:18px;display:grid}.check-row{border:1px solid var(--border);background:var(--surface-subtle);color:var(--text);border-radius:6px;align-items:flex-start;gap:10px;padding:12px;line-height:1.45;display:flex}.check-row input{width:17px;height:17px;accent-color:var(--accent);margin-top:2px}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.review-block{border:1px solid var(--border);border-radius:6px;padding:14px}.review-block h3{margin:0 0 10px;font-size:15px}.review-block div,.detail-row{border-top:1px solid var(--border);justify-content:space-between;gap:14px;padding:9px 0;display:flex}.review-block span,.detail-row span{color:var(--muted);font-size:12px;font-weight:750}.review-block strong,.detail-row strong{text-align:right;font-size:13px}.profile-preview{border:1px solid var(--border);background:var(--surface-subtle);border-radius:6px;margin-top:14px;padding:14px}.profile-preview strong{margin-bottom:7px;display:block}.profile-preview p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.turnstile-box{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.turnstile-box p{color:var(--muted);margin:8px 0 0;font-size:12px;font-weight:750}.form-alert{color:var(--danger);background:#fff5f3;border:1px solid #b4231847;border-radius:6px;margin-top:16px;padding:11px 12px;font-size:13px;font-weight:800}.form-actions,.admin-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:16px;display:flex}.primary-button,.secondary-button,.ghost-button,.icon-button,.primary-link{cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:13px;font-weight:850;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.primary-button,.primary-link{border:1px solid var(--accent);background:var(--accent);color:#fff}.primary-button:hover,.primary-link:hover{background:var(--accent-dark)}.secondary-button,.ghost-button,.icon-button{border:1px solid var(--border);color:var(--text);background:#fff}.secondary-button:hover,.ghost-button:hover,.icon-button:hover{border-color:var(--accent);color:var(--accent-dark)}.primary-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.55}.full-button{width:100%}.success-panel{justify-items:start;margin:32px auto 0;padding:30px;display:grid}.success-icon,.auth-icon{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:999px;place-items:center;margin-bottom:16px;display:grid}.success-panel dl{gap:8px;width:100%;margin:18px 0 22px;display:grid}.success-panel dl div{border-top:1px solid var(--border);justify-content:space-between;gap:16px;padding-top:10px;display:flex}.success-panel dt{color:var(--muted);font-weight:750}.success-panel dd{margin:0;font-weight:900}.share-link-panel{border-top:1px solid var(--border);width:100%;margin-bottom:20px;padding-top:16px}.share-link-panel>label{margin-bottom:7px;font-size:13px;font-weight:850;display:block}.share-link-panel>div{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:10px;display:grid}.share-link-panel input{border:1px solid var(--border-strong);background:var(--surface-subtle);min-width:0;min-height:42px;color:var(--text);border-radius:6px;padding:0 11px;font-size:13px}.share-link-panel>p{margin-top:9px;font-size:12px}.candidate-shell{max-width:840px}.candidate-card{padding:28px}.candidate-heading{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:16px}.candidate-heading span{color:var(--accent);font-size:12px;font-weight:900}.candidate-heading h1{margin:7px 0 0;font-size:28px;line-height:1.15}.candidate-heading p{color:var(--muted);margin:5px 0 0;font-size:14px;font-weight:750}.candidate-summary{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:4px;display:grid}.candidate-summary>div{gap:4px;min-width:0;padding:12px;display:grid}.candidate-summary>div+div{border-left:1px solid var(--border)}.candidate-summary span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:850}.candidate-summary strong{overflow-wrap:anywhere;font-size:13px;line-height:1.4}.candidate-actions{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.candidate-error{justify-items:start;display:grid}.candidate-error h1{margin:0;font-size:24px}.candidate-error p{color:var(--muted);margin:7px 0 20px;line-height:1.5}.auth-shell{max-width:520px}.auth-panel{margin-top:52px;padding:28px}.auth-panel form{gap:14px;margin-top:22px;display:grid}.auth-alert{margin-top:0}.auth-note{border-top:1px solid var(--border);padding-top:14px;margin-top:20px!important;font-size:12px!important}.loading-panel{color:var(--muted);padding:28px;font-weight:800}.admin-shell{width:min(1580px,100% - 28px);padding-bottom:18px}.admin-topbar{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-bottom:14px;display:grid}.admin-topbar h1{font-size:clamp(26px,2.8vw,34px)}.admin-settings-card{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin-bottom:14px;padding:14px}.admin-settings-heading{justify-content:space-between;gap:16px;margin-bottom:12px;display:flex}.admin-settings-heading h2{margin:0;font-size:17px}.admin-settings-heading p{color:var(--muted);margin:3px 0 0;font-size:13px}.admin-settings-heading span{color:var(--muted);flex:none;padding-top:2px;font-size:12px;font-weight:750}.admin-settings-heading-actions{align-items:flex-start;gap:8px;display:flex}.settings-toggle-button{width:auto;min-height:34px;padding:0 10px}.admin-settings-heading .settings-toggle-button span{color:inherit;padding:0;font-size:12px}.settings-toggle-button svg{transition:transform .14s}.admin-settings-card[data-open=true] .settings-toggle-button svg{transform:rotate(180deg)}.settings-controls{grid-template-columns:minmax(180px,.8fr) minmax(240px,1fr) auto;align-items:end;gap:10px;display:grid}.settings-controls .method-field{grid-column:1/3}.admin-settings-card .paper-field textarea{resize:vertical;min-height:44px;padding:10px 11px}.settings-save-button{min-width:128px}.settings-message{color:var(--success);margin:10px 0 0;font-size:12px;font-weight:850}.settings-alert{margin-top:10px}.metrics-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.metric{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:13px 14px}.metric span{color:var(--muted);font-size:12px;font-weight:850;display:block}.metric strong{margin-top:6px;font-size:25px;line-height:1;display:block}.admin-workspace{grid-template-columns:minmax(480px,.92fr) minmax(560px,1.08fr);align-items:start;gap:14px;min-height:0;display:grid}.admin-list,.admin-detail{padding:14px}.admin-list{min-height:0;max-height:calc(100vh - 182px);overflow:auto}.admin-detail{min-height:0;padding:0;overflow:hidden}.admin-detail-scroll{max-height:calc(100vh - 182px);padding:14px;scroll-padding-top:16px;overflow-y:auto}.list-toolbar{grid-template-columns:minmax(250px,1fr) auto;gap:8px;margin-bottom:12px;display:grid}.search-box{border:1px solid var(--border-strong);background:#fff;border-radius:6px;align-items:center;gap:8px;padding:0 10px;display:flex}.search-box input{box-shadow:none;border:0;padding-left:0}.search-box input:focus{box-shadow:none}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:11px 9px}th{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:900}td{color:var(--text);font-size:13px;font-weight:700}td span{color:var(--muted);margin-top:3px;font-size:12px;font-weight:650;display:block}tbody tr{cursor:pointer}tbody tr:hover,.selected-row{background:var(--surface-selected)}.status-pill{white-space:nowrap;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:11px;font-weight:900;display:inline-flex}.status-submitted{color:var(--info);background:#edf2ff}.status-awaiting-candidate-profile{color:#495565;background:#f1f3f5}.status-awaiting-nominee{color:#7a4606;background:#fff7e8}.status-under-review{color:var(--warning);background:#fff7e8}.status-accepted{color:var(--success);background:#e8f6ef}.status-rejected{color:var(--danger);background:#fff0ed}.official-pending{color:var(--info);background:#edf2ff}.official-yes{color:var(--success);background:#e8f6ef}.official-no{color:var(--danger);background:#fff0ed}.detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:14px;display:flex}.review-header{padding-bottom:10px}.detail-header span{color:var(--muted);font-size:12px;font-weight:900}.detail-header h2{margin-top:3px;font-size:23px}.detail-header p{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:750}.detail-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:14px;display:grid}.admin-document-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.review-summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.review-summary-strip .detail-row{border:1px solid var(--border);background:var(--surface-subtle);border-radius:6px;gap:3px;padding:10px;display:grid}.review-summary-strip .detail-row strong{text-align:left}.document-detail-grid{gap:10px 14px;margin-top:0}.detail-sections h3{margin:0 0 8px;font-size:14px}.admin-profile{background:var(--surface-subtle)}.official-review-card{border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;margin-top:12px;padding:10px;box-shadow:0 12px 24px #15223017}.official-review-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.official-review-heading h3{letter-spacing:0;margin:0;font-size:18px;font-weight:900}.official-review-heading p{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.4}.official-heading-actions{flex:none;align-items:center;gap:8px;display:inline-flex}.official-heading-actions .primary-button{min-height:34px;padding:0 12px}.official-save-message{color:var(--success);margin:-4px 0 9px;font-size:12px;font-weight:850}.official-review-card .paper-field{gap:5px;font-size:12px}.official-review-card .paper-field input,.official-review-card .paper-field select{min-height:35px}.official-review-card .paper-field textarea{min-height:50px}.official-review-card .official-controls{gap:8px 12px}.official-review-card fieldset.official-controls{border:0;min-width:0;margin:0;padding:0}.official-review-card fieldset:disabled{opacity:.58}.admin-handoff-notice{margin-bottom:10px}.review-controls{margin-top:0}.review-controls .full{grid-column:1/-1}.admin-actions p{color:var(--success);margin:0;font-size:13px;font-weight:850}.official-actions{margin-top:14px;padding-top:12px}.official-actions span{color:var(--muted);font-size:12px;font-weight:750}.admin-section-stack{gap:8px;margin-top:12px;display:grid}.admin-review-section{border:1px solid var(--border);background:var(--surface);border-radius:6px}.admin-review-section-toggle{cursor:pointer;width:100%;min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;padding:0 13px;font-size:13px;font-weight:900;display:flex}.admin-review-section-toggle svg{color:var(--muted);transition:transform .14s}.admin-review-section[data-open=true] .admin-review-section-toggle svg{transform:rotate(180deg)}.admin-review-section-body{border-top:1px solid var(--border);padding:12px 13px 13px}.compact-check-list{gap:7px;margin-bottom:12px}.compact-check-list .check-row{padding:9px 10px}.empty-state{min-height:300px;color:var(--muted);text-align:center;align-content:center;place-items:center;display:grid}.empty-state h2{color:var(--text);margin:10px 0 5px}.empty-state p{max-width:300px;margin:0}.compact-state{border:1px dashed var(--border-strong);border-radius:6px;min-height:132px;font-weight:800}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.admin-tabs{border:1px solid var(--border);background:var(--surface);border-radius:7px;align-items:center;gap:2px;width:fit-content;margin:-5px 0 15px;padding:3px;display:flex}.admin-tabs button{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:800;display:inline-flex}.admin-tabs button:hover,.admin-tabs button:focus-visible{color:var(--text);outline-offset:-2px;outline:2px solid #145f3d2e}.admin-tabs button.active{background:var(--accent-soft);color:var(--accent-dark)}.admin-election-workspace{gap:14px;display:grid}.admin-election-loading{border:1px solid var(--border);background:var(--surface);min-height:220px;color:var(--muted);border-radius:6px;place-items:center;font-size:14px;font-weight:800;display:grid}.election-selector{justify-content:space-between;align-items:end;gap:12px;display:flex}.election-selector label{min-width:min(480px,70vw);color:var(--muted);gap:5px;font-size:12px;font-weight:850;display:grid}.election-selector select{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:42px;color:var(--text);border-radius:6px;padding:0 11px;font-weight:750}.election-alert{margin-top:0}.form-notice{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #b9d8c8;border-radius:6px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:800;display:flex}.election-setup,.ballot-manager,.voter-links-manager,.results-manager{border:1px solid var(--border);background:var(--surface);border-radius:6px}.election-setup{padding:18px}.election-section-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:15px;display:flex}.election-section-heading h2{color:var(--text);letter-spacing:0;margin:0;font-size:17px}.election-section-heading p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.45}.election-settings-grid{grid-template-columns:minmax(260px,1.4fr) repeat(3,minmax(170px,.7fr));gap:11px;display:grid}.election-form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:14px;padding-top:13px;display:flex}.election-status-strip{border:1px solid var(--border);background:var(--surface);border-radius:6px;grid-template-columns:minmax(130px,.45fr) minmax(170px,.6fr) minmax(320px,1.35fr) auto;align-items:center;min-height:86px;padding:13px 16px;display:grid}.election-status-strip>div{gap:5px;min-width:0;padding:0 16px;display:grid}.election-status-strip>div:first-child{padding-left:0}.election-status-strip>div+div{border-left:1px solid var(--border)}.election-status-strip span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:850}.election-status-strip strong{overflow-wrap:anywhere;font-size:13px;line-height:1.4}.election-status{align-items:center;gap:7px;width:fit-content;display:inline-flex}.election-status:before{background:var(--faint);content:"";border-radius:999px;width:8px;height:8px}.election-status.status-draft:before{background:#e3a008}.election-status.status-open:before{background:var(--success)}.election-status.status-closed:before{background:var(--info)}.election-lifecycle-action{justify-content:flex-end;align-items:center;gap:6px!important;min-width:180px!important;display:flex!important}.election-lifecycle-action .text-button{align-items:center;gap:5px;display:inline-flex}.accent-button{border-color:var(--accent);color:var(--accent-dark)}.danger-outline{color:var(--danger);border-color:#b4231859}.danger-outline:hover{border-color:var(--danger);color:#7a1a14}.closed-label{align-items:center;gap:6px;display:inline-flex;color:var(--success)!important;font-size:12px!important}.ballot-manager,.voter-links-manager,.results-manager{overflow:hidden}.ballot-heading,.voter-list-heading{margin:0;padding:16px 17px}.ballot-empty-guidance{color:#6f430d;background:#fff9ed;border-top:1px solid #ecd5a8;border-bottom:1px solid #ecd5a8;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 17px;display:grid}.ballot-empty-guidance>svg{color:var(--warning);flex:none}.ballot-empty-guidance strong{font-size:13px;display:block}.ballot-empty-guidance p{margin:3px 0 0;font-size:12px;line-height:1.45}.ballot-empty-guidance .secondary-button{background:#fff}.ballot-table-header,.ballot-position-row{grid-template-columns:minmax(220px,.8fr) minmax(320px,1.5fr) 80px;align-items:center;gap:16px;display:grid}.ballot-table-header{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-subtle);color:var(--muted);letter-spacing:.03em;text-transform:uppercase;padding:10px 17px;font-size:11px;font-weight:900}.ballot-position-row{border-bottom:1px solid var(--border);min-height:70px;padding:11px 17px}.ballot-position-name strong,.ballot-position-name span{display:block}.ballot-position-name strong{font-size:14px}.ballot-position-name span{color:var(--muted);margin-top:3px;font-size:11px;font-weight:700}.ballot-candidates{gap:6px;display:grid}.ballot-candidate{border:1px solid var(--border);background:var(--surface-subtle);border-radius:5px;justify-content:space-between;align-items:center;gap:12px;min-height:34px;padding:6px 9px;font-size:13px;font-weight:750;display:flex}.ballot-candidate input{width:17px;height:17px;accent-color:var(--accent);flex:none}.ballot-empty{border:1px dashed var(--border-strong);width:fit-content;color:var(--muted);border-radius:5px;padding:7px 9px;font-size:12px;font-weight:750}.ballot-count{color:var(--muted);text-align:center;font-size:14px;font-weight:900}.ballot-source-note{background:var(--surface-subtle);color:var(--muted);margin:0;padding:12px 17px;font-size:12px;line-height:1.5}.ballot-source-note strong{color:var(--accent-dark)}.turnout-metrics{border-bottom:1px solid var(--border);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.turnout-metrics>div{min-width:0;padding:14px 16px}.turnout-metrics>div+div{border-left:1px solid var(--border)}.turnout-metrics span,.turnout-metrics strong{display:block}.turnout-metrics span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:850}.turnout-metrics strong{margin-top:5px;font-size:23px}.voter-generator{border-bottom:1px solid var(--border);background:var(--surface-subtle);grid-template-columns:minmax(230px,.75fr) minmax(340px,1.5fr) auto;align-items:end;gap:14px;padding:16px 17px;display:grid}.voter-generator h2{margin:0;font-size:17px}.voter-generator>div>p{color:var(--muted);margin:5px 0 0;font-size:12px;line-height:1.45}.voter-generator textarea{min-height:118px}.inline-warning{color:var(--warning);grid-column:2/4;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:800;display:flex}.voter-list-heading{align-items:center}.voter-links-table{padding:0 9px 10px}.voter-links-table tbody tr{cursor:default}.link-status,.risk-label,.quiet-label,.completed-link{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;width:fit-content;min-height:25px;padding:0 9px;font-size:11px;font-weight:850;display:inline-flex}.link-generated,.link-copied{color:var(--info);background:#edf2ff}.link-opened{color:var(--warning);background:#fff7e8}.link-voted{color:var(--success);background:#e8f6ef}.link-revoked{color:var(--danger);background:#fff0ed}.risk-label{background:#fff7e8;color:var(--warning)!important}.quiet-label{padding-left:0;color:var(--muted)!important}.row-actions{justify-content:flex-end;align-items:center;gap:5px;display:flex}.icon-only-button{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:5px;flex:none;place-items:center;display:inline-grid}.icon-only-button:hover,.icon-only-button:focus-visible{border-color:var(--accent);color:var(--accent-dark);outline:none}.icon-only-button:disabled{cursor:not-allowed;opacity:.45}.danger-icon{color:var(--danger)}.completed-link{color:var(--success)!important}.results-manager{min-height:300px}.sealed-results{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:140px;padding:22px;display:grid}.sealed-results>svg{color:var(--accent)}.sealed-results h2{margin:0;font-size:20px}.sealed-results p{max-width:620px;color:var(--muted);margin:5px 0 0;font-size:13px;line-height:1.5}.result-position-list{display:grid}.result-position{border-bottom:1px solid var(--border);padding:17px}.result-position-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.result-position-heading h2{margin:0;font-size:17px}.result-position-heading span{color:var(--muted);font-size:12px;font-weight:750}.candidate-results{gap:8px;display:grid}.candidate-result{grid-template-columns:minmax(190px,.7fr) minmax(260px,1.6fr) 46px;align-items:center;gap:14px;min-height:38px;display:grid}.candidate-result>div:first-child strong,.candidate-result>div:first-child span{display:block}.candidate-result>div:first-child strong{font-size:13px}.candidate-result>div:first-child span{color:var(--success);text-transform:uppercase;margin-top:2px;font-size:10px;font-weight:850}.result-bar-track{background:#e9edf1;border-radius:3px;width:100%;height:10px;overflow:hidden}.result-bar{background:var(--accent);border-radius:3px;min-width:2px;height:100%;display:block}.candidate-result>strong{text-align:right;font-size:14px}.audit-note{color:#74420a;background:#fff7e8;align-items:flex-start;gap:9px;padding:13px 17px;display:flex}.audit-note svg{flex:none}.audit-note p{margin:0;font-size:12px;line-height:1.5}.vote-page{width:min(680px,100% - 24px);margin:0 auto;padding:14px 0 38px}.vote-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:62px;display:flex}.private-ballot-label{color:var(--accent-dark);align-items:center;gap:5px;font-size:12px;font-weight:850;display:inline-flex}.vote-election-heading{text-align:center;padding:20px 0 15px}.vote-election-heading>span{color:var(--accent);text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:900;display:inline-flex}.vote-election-heading h1{letter-spacing:0;margin:8px 0 0;font-size:25px;line-height:1.18}.vote-election-heading p{color:var(--muted);margin:6px 0 0;font-size:13px;font-weight:750}.vote-progress{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:12px 14px}.vote-progress>div{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:12px;font-weight:800;display:flex}.vote-progress>div strong{color:var(--text)}.vote-progress-track{background:#e5e9ed;border-radius:3px;width:100%;height:7px;display:block;overflow:hidden}.vote-progress-track>span{background:var(--accent);border-radius:3px;height:100%;transition:width .16s;display:block}.vote-position,.vote-review,.vote-state{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:6px;margin-top:14px}.vote-position{padding:20px}.vote-position header>span{color:var(--accent);text-transform:uppercase;font-size:11px;font-weight:900}.vote-position header h2{letter-spacing:0;margin:6px 0 0;font-size:25px}.vote-position header p{color:var(--muted);margin:6px 0 0;font-size:14px}.vote-options{border:0;gap:9px;margin:18px 0 0;padding:0;display:grid}.vote-option{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:6px;grid-template-columns:auto minmax(0,1fr) 22px;align-items:center;gap:13px;min-height:74px;padding:13px 14px;display:grid}.vote-option:hover,.vote-option:focus-within{border-color:var(--accent)}.vote-option.selected{border-color:var(--accent);background:var(--surface-selected);box-shadow:0 0 0 2px #145f3d1a}.vote-option input{width:21px;height:21px;accent-color:var(--accent);margin:0}.vote-option strong,.vote-option small{display:block}.vote-option strong{font-size:15px;line-height:1.3}.vote-option small{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.4}.vote-option>svg{color:var(--accent)}.skip-option{background:var(--surface-subtle)}.vote-actions{grid-template-columns:minmax(120px,.7fr) minmax(170px,1.3fr);gap:10px;margin-top:12px;display:grid}.vote-actions button{min-height:48px;font-size:14px}.vote-alert{margin-top:10px}.vote-review{overflow:hidden}.vote-review>header{border-bottom:1px solid var(--border);align-items:flex-start;gap:11px;padding:18px;display:flex}.vote-review>header svg{color:var(--accent);flex:none}.vote-review>header h2{margin:0;font-size:21px}.vote-review>header p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.45}.vote-review-list{padding:0 18px;display:grid}.vote-review-list>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:65px;display:grid}.vote-review-list strong,.vote-review-list small{display:block}.vote-review-list strong{font-size:13px}.vote-review-list small{color:var(--muted);margin-top:3px;font-size:13px}.vote-turnstile{padding:16px 18px 0}.vote-turnstile p{color:var(--muted);margin:7px 0 0;font-size:11px;font-weight:750}.vote-submit-warning{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #b9d8c8;border-radius:6px;align-items:flex-start;gap:9px;margin:14px 18px 0;padding:11px;display:flex}.vote-submit-warning svg{flex:none}.vote-submit-warning p{margin:0;font-size:12px;line-height:1.5}.vote-review .vote-actions,.vote-review .vote-alert{margin-left:18px;margin-right:18px}.vote-review .vote-actions{margin-bottom:18px}.vote-privacy{color:var(--muted);align-items:flex-start;gap:8px;margin-top:13px;padding:0 4px;display:flex}.vote-privacy svg{color:var(--accent);flex:none}.vote-privacy p{margin:0;font-size:11px;line-height:1.45}.vote-state{justify-items:start;margin-top:42px;padding:28px;display:grid}.vote-state>span{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:999px;place-items:center;display:grid}.vote-state h1{margin:17px 0 0;font-size:25px}.vote-state>p{color:var(--muted);margin:7px 0 0;font-size:14px;line-height:1.55}.vote-success dl{gap:9px;width:100%;margin:20px 0 0;display:grid}.vote-success dl div{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:14px;padding-top:10px;display:flex}.vote-success dt{color:var(--muted);font-size:12px;font-weight:800}.vote-success dd{text-align:right;margin:0;font-size:13px;font-weight:900}.receipt-note{border-left:3px solid var(--accent);background:var(--surface-subtle);padding:9px 11px;margin-top:15px!important;font-size:12px!important}@media (width<=1020px){.portal-layout,.admin-workspace{grid-template-columns:1fr}.admin-list,.admin-detail-scroll{max-height:none;overflow:visible}.side-panel{position:static}.step-progress{grid-template-columns:repeat(4,minmax(0,1fr))}.step-progress li{flex-direction:column;align-items:flex-start;gap:5px}.notes-panel{margin-top:14px}.metrics-row,.settings-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-controls .method-field,.settings-save-button{grid-column:1/-1}.election-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.election-title-field{grid-column:1/-1}.election-status-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.election-status-strip>div{border-bottom:1px solid var(--border);min-height:58px;padding:10px 12px}.election-status-strip>div:nth-child(odd){border-left:0}.election-status-strip>div:nth-last-child(-n+2){border-bottom:0}.election-lifecycle-action{justify-content:flex-start}.voter-generator{grid-template-columns:.8fr 1.2fr}.voter-generator>button{grid-column:2;width:fit-content}.turnout-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.turnout-metrics>div:nth-child(4){border-left:0;border-top:1px solid var(--border)}.turnout-metrics>div:nth-child(5){border-top:1px solid var(--border)}}@media (width<=720px){.page-shell,.admin-shell{width:min(100% - 20px,100%);padding-top:10px}.app-header,.intro-strip,.admin-topbar,.form-actions{flex-direction:column;align-items:stretch;display:flex}.app-header{padding-bottom:12px}.brand strong{font-size:13px}.app-header nav{width:100%}.app-header nav a{text-align:center;flex:1}.intro-strip h1,.admin-topbar h1{font-size:28px}.deadline-box{min-width:0}.paper-field input,.paper-field textarea,.paper-field select,.field input,.field textarea,.field select,.search-box input,.list-toolbar select,.paper-static-field strong{font-size:16px}.paper-field input,.paper-field select,.field input,.field select,.search-box input,.list-toolbar select,.primary-button,.secondary-button,.ghost-button,.icon-button,.primary-link{min-height:44px}.form-panel,.success-panel,.admin-list,.admin-detail,.auth-panel{padding:16px}.position-grid,.paper-grid,.paper-static-field,.paper-options,.admin-document-meta,.review-summary-strip,.field-grid,.review-grid,.review-controls,.official-controls,.detail-sections,.list-toolbar,.settings-controls,.candidate-summary{grid-template-columns:1fr}.candidate-summary>div+div{border-top:1px solid var(--border);border-left:0}.admin-settings-heading{align-items:center}.admin-settings-heading-actions>span{display:none}.settings-save-button{width:100%}.document-card{padding:16px}.role-panel{margin-top:18px;padding:18px}.role-heading h1{font-size:24px}.role-option{gap:11px;min-height:88px;padding:13px}.role-option-icon{width:38px;height:38px}.candidate-card{padding:18px}.document-actions .primary-button{width:100%}.share-link-panel>div{grid-template-columns:1fr}.share-link-panel .icon-button{width:100%}.admin-list th:first-child,.admin-list td:first-child,.admin-list th:nth-child(2),.admin-list td:nth-child(2){display:none}.paper-options label{min-height:42px}.check-row{padding:13px 12px}.step-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics-row{grid-template-columns:1fr}.review-block div,.detail-row,.return-info-line,.success-panel dl div{flex-direction:column;align-items:flex-start;gap:4px}.return-info-line{display:flex}.review-block strong,.detail-row strong{text-align:left}.admin-tabs{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;display:grid}.admin-tabs button{flex-direction:column;gap:3px;min-width:0;min-height:50px;padding:5px 3px;font-size:11px}.election-selector{flex-direction:column;align-items:stretch}.election-selector label{min-width:0}.election-settings-grid,.election-status-strip,.ballot-table-header,.ballot-position-row,.voter-generator,.sealed-results,.candidate-result{grid-template-columns:1fr}.election-section-heading{flex-direction:column;align-items:stretch}.ballot-empty-guidance{grid-template-columns:auto minmax(0,1fr)}.ballot-empty-guidance .secondary-button{grid-column:1/-1;width:100%}.election-section-heading .secondary-button{width:100%}.election-form-actions{grid-template-columns:1fr;display:grid}.election-status-strip{padding:0}.election-status-strip>div{min-height:0;padding:12px 14px;border-bottom:1px solid var(--border)!important;border-left:0!important}.election-status-strip>div:last-child{border-bottom:0!important}.election-lifecycle-action{flex-direction:column;align-items:stretch;min-width:0!important}.election-lifecycle-action button{width:100%}.ballot-table-header{display:none}.ballot-position-row{gap:11px;padding:14px}.ballot-position-name span,.ballot-count{display:none}.ballot-candidate{background:var(--surface);min-height:48px}.turnout-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.turnout-metrics>div{border-top:1px solid var(--border);border-left:0!important}.turnout-metrics>div:nth-child(odd){border-right:1px solid var(--border)}.turnout-metrics>div:first-child,.turnout-metrics>div:nth-child(2){border-top:0}.voter-generator>button,.inline-warning{grid-column:auto;width:100%}.voter-links-table{padding:0 5px 8px}.voter-links-table th:nth-child(3),.voter-links-table td:nth-child(3){display:none}.voter-links-table th,.voter-links-table td{padding:10px 6px}.row-actions{flex-wrap:wrap}.sealed-results{justify-items:start;padding:18px}.sealed-results .secondary-button{width:100%}.candidate-result{border-bottom:1px solid var(--border);gap:7px;padding-bottom:10px}.candidate-result:last-child{border-bottom:0;padding-bottom:0}.candidate-result>strong{text-align:left}.vote-page{width:min(100% - 16px,100%);padding-top:8px}.vote-header{min-height:58px}.vote-header .brand strong{max-width:220px;font-size:12px}.vote-header .brand small{font-size:10px}.vote-election-heading{padding:16px 4px 13px}.vote-election-heading h1{font-size:21px}.vote-position{padding:16px}.vote-position header h2{font-size:22px}.vote-option{min-height:76px;padding:13px 12px}.vote-actions{grid-template-columns:minmax(100px,.72fr) minmax(150px,1.28fr)}.vote-review-list{padding:0 14px}.vote-review .vote-actions,.vote-review .vote-alert{margin-left:14px;margin-right:14px}.vote-review .vote-actions{margin-bottom:14px}.vote-submit-warning{margin-left:14px;margin-right:14px}.vote-state{margin-top:26px;padding:22px}.vote-success dl div{display:grid}.vote-success dd{text-align:left;overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
