.btn{display:inline-flex;align-items:center;gap:.75rem;border:.5px solid rgba(0,0,0,.63);background:var(--jd-white);color:var(--jd-dark);border-radius:var(--radius-pill);padding:.35rem .4rem .35rem 1.25rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;font-weight:500}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-soft)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn__label{white-space:nowrap}.btn__orb{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--jd-lime);display:grid;place-items:center;flex-shrink:0}.btn__orb svg{width:1.1rem;height:1.1rem}.btn--primary{background:var(--jd-dark);color:var(--jd-white);border-color:var(--jd-dark)}.btn--primary .btn__orb{background:var(--jd-lime);color:var(--jd-dark)}.btn--ghost{background:transparent;border-color:var(--color-border);padding:.65rem 1.25rem}.btn--ghost .btn__orb{display:none}.btn--danger{border-color:var(--color-danger);color:var(--color-danger)}.toast-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f182773;display:grid;place-items:center;padding:1.5rem;animation:toast-fade .18s ease}.toast-modal{width:min(440px,100%);background:var(--jd-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:2rem 1.75rem 1.5rem;text-align:center;border:1px solid var(--color-border);animation:toast-pop .22s ease}.toast-modal__icon{width:3.5rem;height:3.5rem;border-radius:50%;display:grid;place-items:center;margin:0 auto 1rem;font-size:1.5rem;font-weight:700}.toast-modal--success .toast-modal__icon{background:var(--jd-lime-wash);color:var(--color-success)}.toast-modal--error .toast-modal__icon{background:#ffe8e5;color:var(--color-danger)}.toast-modal--info .toast-modal__icon{background:var(--jd-blue-light);color:var(--jd-dark)}.toast-modal h2{margin-bottom:.5rem;font-size:1.45rem}.toast-modal p{margin-bottom:1.25rem;white-space:pre-wrap;word-break:break-word}.toast-modal__close{border:none;border-radius:var(--radius-pill);background:var(--jd-dark);color:var(--jd-white);padding:.75rem 1.75rem;font-weight:600;cursor:pointer;min-width:7rem}.toast-modal--success .toast-modal__close{background:var(--jd-dark)}.toast-modal--error .toast-modal__close{background:var(--color-danger)}.confirm-modal{text-align:left}.confirm-modal .toast-modal__icon{margin-left:0}.confirm-modal--danger .toast-modal__icon{background:#ffe8e5;color:var(--color-danger)}.confirm-modal__label{display:block;font-size:.9rem;margin-bottom:.5rem;color:var(--color-muted, #5b6573)}.confirm-modal__input{width:100%;margin-bottom:1.25rem;padding:.7rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-md, 10px);font-size:1rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.confirm-modal__input:focus{outline:2px solid var(--jd-dark);outline-offset:1px}.confirm-modal__actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end}@keyframes toast-fade{0%{opacity:0}to{opacity:1}}@keyframes toast-pop{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}:root{--jd-purple: #d7b4fd;--jd-purple-light: #e9d4ff;--jd-blue: #8cc3fb;--jd-blue-light: #bbdcff;--jd-mint: #5ee7b3;--jd-mint-light: #a5f4d0;--jd-gray: #8d8c8c;--jd-gray-muted: #999999;--jd-lime: #9be700;--jd-lime-wash: #ecfdcc;--jd-dark: #0f1827;--jd-white: #ffffff;--jd-surface: #f9fbfc;--color-bg: var(--jd-surface);--color-surface: var(--jd-white);--color-text: var(--jd-dark);--color-muted: var(--jd-gray);--color-primary: #6b3fa0;--color-primary-soft: var(--jd-purple-light);--color-accent: var(--jd-lime);--color-accent-wash: var(--jd-lime-wash);--color-border: rgba(15, 24, 39, .12);--color-success: #1a7f4b;--color-danger: #b42318;--font-display: "Fraunces", "AmstelvarAlpha", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 999px;--shadow-soft: 0 12px 40px rgba(15, 24, 39, .08);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--color-text);background:radial-gradient(ellipse 80% 50% at 10% -10%,var(--jd-purple-light),transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,var(--jd-blue-light),transparent 50%),radial-gradient(ellipse 50% 30% at 50% 100%,var(--jd-lime-wash),transparent 45%),var(--color-bg);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0 0 var(--space-3)}p{margin:0 0 var(--space-3);color:var(--color-muted)}a{color:var(--color-primary);text-decoration:none}button,input,select,textarea{font:inherit}img{max-width:100%;display:block}.shell{min-height:100vh;display:flex;flex-direction:column}.shell__nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:#ffffffb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:20}.shell__brand{font-family:var(--font-display);font-size:1.35rem;color:var(--jd-dark);letter-spacing:-.03em}.shell__links{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}.shell__links a{color:var(--jd-dark);font-size:.95rem;font-weight:500}.shell__main{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 4rem;flex:1}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1.5rem;border:1px solid var(--color-border)}.card--tint-purple{background:linear-gradient(180deg,var(--jd-purple-light),var(--jd-white))}.card--tint-green{background:linear-gradient(180deg,var(--jd-lime-wash),var(--jd-white))}.card--tint-blue{background:linear-gradient(180deg,var(--jd-blue-light),var(--jd-white))}.grid-2{display:grid;gap:1.5rem}@media(min-width:860px){.grid-2{grid-template-columns:1.1fr .9fr;align-items:center}}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.85rem;font-weight:600;color:var(--jd-dark)}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem .9rem;background:var(--jd-white);color:var(--jd-dark);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--jd-purple);box-shadow:0 0 0 3px #d7b4fd73}.field textarea{min-height:90px;resize:vertical}.select,select.select,.field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--jd-white);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230F1827' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:1rem;padding-right:2.5rem;min-width:12rem;cursor:pointer}.breadcrumbs{margin-bottom:.85rem}.breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0;font-size:.9rem}.breadcrumbs__item{display:inline-flex;align-items:center;gap:.35rem}.breadcrumbs__sep{color:#9aa3af;margin-right:.15rem}.breadcrumbs__link{color:#4b5568;text-decoration:none}.breadcrumbs__link:hover{color:var(--jd-dark);text-decoration:underline}.breadcrumbs__current{color:var(--jd-dark);font-weight:600}.page-header{display:flex;flex-wrap:wrap;gap:1.25rem;justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem}.page-header__copy h1{margin-bottom:.35rem}.page-header__copy p{margin:0;max-width:36rem}.election-picker{min-width:min(100%,320px);background:var(--jd-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.9rem 1rem;box-shadow:var(--shadow-soft)}.election-picker__label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.45rem}.election-picker__row{display:flex;align-items:center;gap:.65rem}.election-picker .select{flex:1;min-width:0;width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.7rem 2.5rem .7rem .85rem;font-weight:500}.election-picker .select:focus{border-color:var(--jd-purple);box-shadow:0 0 0 3px #d7b4fd73;outline:none}.tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.5rem;padding:.35rem;background:#ffffffa6;border:1px solid var(--color-border);border-radius:var(--radius-pill);width:fit-content;max-width:100%}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:var(--radius-pill);font-size:.75rem;font-weight:600;background:var(--jd-purple-light);color:var(--jd-dark)}.badge--live{background:var(--jd-mint-light)}.badge--closed{background:#eee}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--color-border);font-size:.92rem}.table th{color:var(--color-muted);font-weight:600}.stat{padding:1.25rem;border-radius:var(--radius-md);background:var(--jd-white);border:1px solid var(--color-border)}.stat__value{font-family:var(--font-display);font-size:2rem;color:var(--jd-dark)}.stat__label{color:var(--color-muted);font-size:.85rem}.alert{padding:.85rem 1rem;border-radius:var(--radius-md);background:#fff4f2;color:var(--color-danger);border:1px solid #f5c2c0}.alert--ok{background:var(--jd-lime-wash);color:var(--color-success);border-color:var(--jd-mint)}.candidate-card{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--jd-white)}.candidate-card.is-selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--jd-purple);background:var(--jd-purple-light)}.candidate-card__photo{width:64px;height:64px;border-radius:16px;object-fit:cover;background:var(--jd-blue-light)}.muted{color:var(--color-muted)}.hero-illu{width:min(420px,100%);margin:0 auto}
