:root{color:#253047;font-synthesis:none;--accent:#315bcc;--muted:#7a7d8f;--line:#e5e9f0;--lavender:#eaf0ff;--lime:#fff;background:#f6f7f9;font-family:Segoe UI Variable,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-underline-offset:3px}button:disabled{cursor:default;opacity:.45}h1,h2,h3,p{margin:0}h1{letter-spacing:-.04em;font-size:24px;font-weight:700;line-height:1.3}h2{letter-spacing:-.02em;font-size:16px;line-height:1.4}h3{font-size:15px}p{line-height:1.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #315bcc}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.stack{flex-direction:column;gap:18px;display:flex}.row,.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.panel{border:1px solid var(--line);background:#fff;border-radius:20px;padding:20px}.button{background:var(--accent);color:#fff;text-align:center;border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:11px 18px;font-size:12px;font-weight:650;line-height:1.4;text-decoration:none;display:inline-flex}.button.secondary{color:#655079;background:#eef3fc;border-color:#dde6f6}.button.secondary:hover:not(:disabled){background:#e5edfc}.text-button{color:var(--accent);background:0 0;border:0;min-height:44px;padding:8px;font-size:12px;font-weight:600}.icon-button{width:40px;height:40px;color:var(--accent);background:#f0f3f7;border:0;border-radius:14px;flex-shrink:0;font-size:24px}.app-shell{--voting-sticky-top:64px;min-height:100dvh}.app-header{z-index:15;background:#253047;justify-content:space-between;align-items:center;gap:12px;height:64px;padding:0 max(20px,50vw - 460px);display:flex;position:sticky;top:0}.brand{letter-spacing:-.04em;color:#fff;align-items:center;gap:9px;font-size:18px;font-weight:700;text-decoration:none;display:inline-flex}.brand-symbol{background:var(--lavender);width:32px;height:32px;color:var(--accent);border-radius:11px;place-items:center;display:grid}.account-menu{color:#fff;font-size:12px;position:relative}.account-menu summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;list-style:none;display:flex}.account-menu summary::-webkit-details-marker{display:none}.account-avatar{color:#ded2f4;background:#ffffff18;border:1px solid #ffffff20;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;display:grid}.account-menu .account-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:11px;overflow:hidden}.account-menu>div{z-index:20;color:var(--accent);border:1px solid var(--line);background:#fff;border-radius:18px;width:260px;padding:18px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 36px #30204720}.account-menu label{flex-direction:column;gap:8px;display:flex}.account-menu a.text-button{align-items:center;display:flex}.account-menu .account-organization{color:var(--muted);margin-bottom:12px;font-size:11px}.main{outline:none;width:100%;max-width:960px;margin:0 auto;padding:24px 20px 40px}.main>.notice{margin-bottom:16px}.back-link{min-height:36px;color:var(--muted);align-items:center;gap:6px;padding:6px 0;font-size:12px;text-decoration:none;display:inline-flex}.election-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.election-card{flex-direction:column;gap:14px;padding:0;display:flex;overflow:hidden}.election-card-top{background:#eef3fc;justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.election-card-top.theme-1,.election-card-top.theme-2{background:#f3f5f8}.election-emblem{color:#675583;background:#fffb;border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.election-card-body{flex-direction:column;gap:8px;padding:0 20px;display:flex}.election-card-body h2{font-size:18px}.election-card-body p{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.card-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding:4px 20px 20px;display:flex}.status{color:#746485;white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:5px;padding:6px 9px;font-size:10px;font-weight:650;display:inline-flex}.status.live{color:#40542a;background:#eef3fc}.status-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.verified{color:#5c6b44;align-items:center;gap:4px;font-size:11px;display:inline-flex}.page-context{color:#8e899e;margin-bottom:5px;font-size:11px}.election-filters{scrollbar-width:none;gap:8px;padding:2px 0;display:flex;overflow-x:auto}.election-filters button{border:1px solid var(--line);min-height:40px;color:var(--muted);background:#fff;border-radius:12px;flex-shrink:0;padding:9px 14px;font-size:12px}.election-filters button.active{background:var(--lavender);border-color:var(--lavender);color:var(--accent);font-weight:650}.election-filters button span{background:#fffa;border-radius:5px;margin-left:5px;padding:1px 5px;font-size:10px}.section-heading .text-button{color:#86739e;align-items:center;gap:5px;display:inline-flex}.rounds-overview{background:#eef3fc;border:1px solid #e3e8f0;border-radius:15px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.rounds-overview span{color:#6c5c82;font-size:12px}.rounds-overview .verified{color:#5c6b44}.notice{color:#655379;background:#eef3fc;border:1px solid #dde6f6;border-radius:14px;padding:13px 14px;font-size:12px;line-height:1.6}.notice.error{color:#8b3828;background:#fff0eb;border-color:#ebc9bd}.empty{text-align:center;padding:40px 20px}.empty p{margin:10px auto 0;font-size:12px}.empty-symbol{color:#b19aca;margin-bottom:12px;font-size:30px;display:block}.loading{min-height:120px;color:var(--muted);justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex}.spinner{border:2px solid var(--line);border-top-color:#315bcc;border-radius:50%;width:19px;height:19px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.install{max-width:260px}.install .small{margin:6px 0}select{width:100%;min-height:44px;color:var(--accent);background:#fff;border:1px solid #dfd9e9;border-radius:12px;min-width:0;padding:10px 12px}.dialog{width:calc(100% - 32px);max-width:480px;max-height:calc(100dvh - 40px);color:var(--accent);background:#fff;border:0;border-radius:24px;padding:24px;box-shadow:0 20px 80px #193e4926}.dialog::backdrop{background:#152c3a80}.dialog-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.dialog-heading h2{font-size:19px}.attendance-methods{gap:10px;display:flex}.attendance-methods .button{flex:1}.attendance-qr{box-sizing:content-box;border:10px solid #f5f7fa;border-radius:18px;align-self:center;width:220px;max-width:100%;height:auto}.voter-id{overflow-wrap:anywhere;color:#756487;background:#f5f7fa;border-radius:12px;padding:12px;font-size:11px;display:block}.auth-redirect{place-items:center;min-height:100dvh;padding:24px;display:grid}.sr-only,.skip-link:not(:focus){clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link:focus{z-index:100;background:#fff;padding:14px;position:fixed;top:12px;left:16px}@media (width<=600px){.main{padding:20px 16px 32px}.app-header{padding:0 16px}.account-menu .account-name{display:none}.election-grid{grid-template-columns:1fr;gap:14px}.panel{padding:18px}.election-card{padding:0}.dialog{width:100%;max-width:none;padding:24px 20px calc(20px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;max-height:90dvh;margin:0;position:fixed;inset:auto 0 0}h1{font-size:22px}.attendance-qr{max-width:calc(100% - 20px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.app-header{border-bottom:1px solid var(--line);background:#fff}.brand{color:#315bcc}.brand-symbol{color:#315bcc;background:#eaf0ff}.account-menu{color:#253047}.account-avatar{color:#52658e;background:#edf2fb;border-color:#e5e9f0}.ballot-shell{--voting-sticky-top:0px}.ballot-shell .main{padding-top:0}.election-card-top,.election-card-top.theme-1,.election-card-top.theme-2{background:#f3f6fb}.election-emblem{color:#315bcc;background:#fff}.card-actions .button:not(.secondary){color:#fff}.election-filters button.active{color:#315bcc}.button:hover:not(:disabled){background:#294eae}.button.secondary{color:#52658e}.section-heading .text-button,.rounds-overview span{color:#64748b}.notice{color:#52658e}.signed-out-card{text-align:center;width:100%;max-width:400px}.signed-out-card form .button{width:100%}
