:root{
    --primary:#143f73;--primary-dark:#0b294c;--accent:#b91c1c;--accent-dark:#8f1515;
    --success:#166534;--warning:#9a6700;--danger:#a61b1b;--bg:#f4f7fb;--surface:#fff;
    --text:#172033;--muted:#667085;--border:#d9e2ec;--shadow:0 12px 35px rgba(18,52,86,.09);
    --radius:16px;--sidebar:260px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.55}img{max-width:100%;display:block}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}.container{width:min(1160px,calc(100% - 32px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);backdrop-filter:blur(12px)}.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;color:var(--text)}.brand:hover{text-decoration:none}.brand span{display:grid}.brand strong{font-size:1rem}.brand small{color:var(--muted)}.main-nav{display:flex;gap:8px;align-items:center}.main-nav a{padding:10px 12px;border-radius:9px;color:var(--text);font-weight:650}.main-nav a.active,.main-nav a:hover{background:#edf3fa;text-decoration:none}.nav-toggle{display:none;background:none;border:0;font-size:1.5rem}
.hero{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;padding:64px 0 52px}.hero-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:40px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800;opacity:.78}.hero h1{font-size:clamp(2rem,5vw,3.8rem);line-height:1.08;margin:.4rem 0 1rem}.hero p{font-size:1.1rem;max-width:760px;color:#e4edf7}.status-panel{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.24);padding:24px;border-radius:var(--radius)}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;font-weight:800}.status-pill.open{background:#dcfce7;color:#166534}.status-pill.closed{background:#fee2e2;color:#991b1b}.status-dot{width:9px;height:9px;border-radius:50%;background:currentColor}.hero-stat{font-size:2rem;font-weight:800;margin-top:16px}.hero-stat small{display:block;font-size:.85rem;font-weight:500;color:#dce8f5}
.section{padding:48px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h2{margin:0;font-size:1.8rem}.section-heading p{margin:.3rem 0 0;color:var(--muted)}.constituency-block{margin-bottom:44px}.constituency-title{display:flex;gap:12px;align-items:center;border-bottom:2px solid var(--border);padding-bottom:12px;margin-bottom:20px}.constituency-code{background:var(--primary);color:#fff;padding:6px 10px;border-radius:8px;font-weight:800;font-size:.8rem}.candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.candidate-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.candidate-photo{aspect-ratio:4/4.7;object-fit:cover;width:100%;background:#e6edf5}.candidate-body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}.candidate-body h3{margin:0;font-size:1.35rem}.meta{color:var(--muted);font-size:.95rem}.candidate-actions{display:flex;gap:10px;margin-top:auto;padding-top:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;padding:10px 15px;font-weight:750;cursor:pointer;text-decoration:none}.btn:hover{text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-dark)}.btn-outline{border-color:var(--border);background:#fff;color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-small{padding:7px 10px;font-size:.88rem}.btn-block{width:100%}.btn[disabled],button[disabled]{opacity:.55;cursor:not-allowed}.empty-state{background:#fff;border:1px dashed #b7c3d1;border-radius:var(--radius);padding:36px;text-align:center;color:var(--muted)}
.content-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.content-card h1,.content-card h2{margin-top:0}.profile-grid{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:34px}.profile-photo{width:100%;border-radius:14px;aspect-ratio:4/5;object-fit:cover;background:#e8eef6}.prose{white-space:pre-line}.tag{display:inline-flex;border-radius:999px;padding:5px 10px;background:#eef4fb;color:var(--primary);font-weight:700;font-size:.82rem}.notice-box{padding:16px 18px;border-left:5px solid var(--primary);background:#eef5ff;border-radius:8px}.warning-box{padding:16px 18px;border-left:5px solid var(--warning);background:#fff8e8;border-radius:8px}.privacy-list li{margin-bottom:10px}
.form-card{max-width:760px;margin:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-group{display:grid;gap:7px}.form-group.full{grid-column:1/-1}.form-group label{font-weight:750}.form-control{width:100%;padding:11px 12px;border:1px solid #b9c5d2;border-radius:9px;background:#fff;color:var(--text)}.form-control:focus{outline:3px solid rgba(20,63,115,.12);border-color:var(--primary)}textarea.form-control{min-height:130px;resize:vertical}.help{font-size:.86rem;color:var(--muted)}.checkbox-row{display:flex;align-items:flex-start;gap:10px}.checkbox-row input{margin-top:5px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.password-wrap{display:flex}.password-wrap input{border-radius:9px 0 0 9px}.password-wrap button{border:1px solid #b9c5d2;border-left:0;border-radius:0 9px 9px 0;background:#f5f7fa;padding:0 12px}.required{color:var(--danger)}
.alert{margin:18px 0;padding:14px 16px;border-radius:10px;border:1px solid}.alert.success{background:#ecfdf3;border-color:#a7e3bd;color:#166534}.alert.error{background:#fff1f1;border-color:#f3b4b4;color:#8d1515}.alert.info{background:#eef5ff;border-color:#bfd5ef;color:#163d68}
.receipt-card{text-align:center;max-width:720px;margin:auto}.receipt-code{font-family:Consolas,monospace;font-size:clamp(1.15rem,3vw,1.8rem);letter-spacing:.05em;background:#f2f5f9;border:1px dashed #9aaabd;border-radius:10px;padding:16px;margin:20px 0}.result-group{margin-bottom:34px}.result-row{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px}.result-head{display:flex;justify-content:space-between;gap:12px;font-weight:700}.progress{height:12px;background:#e9eef4;border-radius:999px;overflow:hidden;margin-top:10px}.progress span{display:block;height:100%;background:var(--primary);border-radius:inherit}
.site-footer{background:#0c2747;color:#dce7f2;padding:34px 0;margin-top:40px}.footer-grid{display:flex;justify-content:space-between;gap:28px}.footer-grid p{max-width:760px;margin:.5rem 0 0;color:#b9c9d9}.footer-links{display:flex;gap:16px;align-items:start}.footer-links a{color:#fff}
.admin-body{background:#eef2f7}.admin-layout{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#0d2b4e;color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:30}.sidebar-brand{display:flex;align-items:center;gap:11px;color:#fff;font-weight:800;padding:7px 8px 18px}.sidebar-brand:hover{text-decoration:none}.sidebar nav{display:grid;gap:4px}.sidebar nav a,.sidebar-bottom a,.link-button{display:block;color:#dbe7f3;padding:10px 12px;border-radius:8px;border:0;background:transparent;text-align:left;width:100%;cursor:pointer}.sidebar nav a:hover,.sidebar nav a.active,.sidebar-bottom a:hover,.link-button:hover{background:rgba(255,255,255,.11);text-decoration:none;color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding-top:12px}.admin-main{min-width:0}.admin-topbar{height:72px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:10}.admin-topbar div{display:grid}.admin-topbar small{color:var(--muted)}.sidebar-toggle{display:none;border:0;background:#eef3f8;border-radius:8px;padding:8px 10px}.admin-content{padding:26px;max-width:1480px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.page-head h1{font-size:1.75rem;margin:0}.page-head p{margin:.2rem 0 0;color:var(--muted)}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:19px;box-shadow:0 7px 20px rgba(18,52,86,.05)}.stat-card .label{color:var(--muted);font-size:.9rem}.stat-card .value{font-size:1.9rem;font-weight:850;margin-top:4px}.stat-card .sub{font-size:.82rem;color:var(--muted)}.panel{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 7px 20px rgba(18,52,86,.05);margin-bottom:20px}.panel-head{padding:17px 19px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h2{font-size:1.1rem;margin:0}.panel-body{padding:19px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 13px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafc;white-space:nowrap}.table tr:last-child td{border-bottom:0}.table-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:800}.badge-green{background:#dcfce7;color:#166534}.badge-red{background:#fee2e2;color:#991b1b}.badge-blue{background:#dbeafe;color:#1d4ed8}.badge-gray{background:#eef1f5;color:#475467}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filter-bar .form-group{min-width:180px}.pagination{display:flex;gap:7px;justify-content:center;margin-top:18px}.pagination a,.pagination span{padding:7px 11px;border:1px solid var(--border);background:#fff;border-radius:7px}.pagination .current{background:var(--primary);color:#fff;border-color:var(--primary)}.mini-photo{width:52px;height:60px;border-radius:8px;object-fit:cover;background:#e8eef6}.audit-detail{font-family:Consolas,monospace;font-size:.82rem;white-space:pre-wrap;word-break:break-word}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#0c2848,#164f89)}.login-card{width:min(460px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 25px 60px rgba(0,0,0,.22)}.login-logo{width:72px;margin:0 auto 15px}.login-card h1{text-align:center;margin:0}.login-card .subtitle{text-align:center;color:var(--muted);margin:.4rem 0 1.5rem}.login-card .form-group{margin-bottom:14px}.login-footer{text-align:center;color:var(--muted);margin-top:18px;font-size:.88rem}
.integrity-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.integrity-item{padding:16px;border:1px solid var(--border);border-radius:12px}.integrity-item strong{display:block;font-size:1.5rem}.severity-high{color:#991b1b}.severity-medium{color:#9a6700}.severity-low{color:#166534}
@media(max-width:1100px){.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid,.integrity-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.hero-grid,.profile-grid{grid-template-columns:1fr}.admin-layout{display:block}.sidebar{position:fixed;left:-280px;width:260px;transition:left .2s ease}.sidebar.open{left:0}.sidebar-toggle{display:inline-block}.admin-content{padding:18px}.main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:12px 16px;border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.nav-toggle{display:block}.footer-grid{display:grid}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}}
@media(max-width:620px){.candidate-grid,.stat-grid,.integrity-summary{grid-template-columns:1fr}.hero{padding:46px 0 38px}.candidate-actions,.form-actions,.page-head,.section-heading{flex-direction:column;align-items:stretch}.table th,.table td{padding:10px}.brand small{display:none}.admin-content{padding:12px}.content-card,.form-card{padding:20px}.footer-links{flex-wrap:wrap}}
