.public-page{min-height:100vh;background-color:#f9f8f8;color:#1a1a1a;display:flex;flex-direction:column}.public-nav{position:sticky;top:0;z-index:100;background:#fffffff5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #E8E4E4;height:82px;display:flex;align-items:center}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}.public-brand{display:flex;align-items:center;gap:14px}.brand-logo-img{width:58px;height:58px;object-fit:contain;border-radius:50%}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font-size:17px;font-weight:800;color:#1a1a1a;line-height:1.2}.brand-copy small{font-size:13px;color:#666;font-weight:600}.public-nav-links{display:none;align-items:center;gap:4px}@media(min-width:768px){.public-nav-links{display:flex}}.nav-btn{padding:8px 14px;border-radius:8px;font-size:14px;font-weight:600;color:#555;transition:all .15s ease}.nav-btn:hover{background-color:#fff5f5;color:#c00}.btn-login-panitia{display:inline-flex;align-items:center;gap:8px;background-color:#c00;color:#fff;font-weight:700;font-size:13px;padding:10px 18px;border-radius:10px;box-shadow:0 4px 12px #cc000038;transition:all .15s ease}.btn-login-panitia:hover{background-color:#b00000;transform:translateY(-1px);box-shadow:0 6px 16px #cc00004d}.public-hero{padding-top:56px;padding-bottom:72px;background:radial-gradient(circle at top left,rgba(255,235,235,.5) 0%,transparent 55%)}.hero-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}@media(min-width:992px){.hero-grid{grid-template-columns:1.15fr .85fr}}.hero-copy{display:flex;flex-direction:column}.hero-kicker-tag{display:inline-block;align-self:flex-start;font-size:11px;font-weight:800;letter-spacing:.08em;color:#c00;background-color:#cc000014;padding:6px 14px;border-radius:9999px;margin-bottom:20px;border:1px solid rgba(204,0,0,.18)}.hero-title{font-size:34px;font-weight:800;color:#1a1a1a;line-height:1.18;letter-spacing:-.02em;margin-bottom:16px}@media(min-width:768px){.hero-title{font-size:46px}}.hero-title em{font-style:normal;color:#c00;font-weight:800}.hero-desc{font-size:16px;color:#555;line-height:1.65;margin-bottom:28px;max-width:540px}.hero-cta-group{display:flex;align-items:center;gap:12px;margin-bottom:32px;flex-wrap:wrap}.btn-hero-primary{display:inline-flex;align-items:center;gap:8px;background-color:#c00;color:#fff;font-weight:700;font-size:15px;padding:14px 24px;border-radius:12px;box-shadow:0 4px 14px #cc000040;transition:all .15s ease}.btn-hero-primary:hover{background-color:#b00000;transform:translateY(-2px);box-shadow:0 8px 20px #cc000052}.btn-hero-secondary{background-color:#fff;color:#1a1a1a;font-weight:600;font-size:15px;padding:14px 22px;border-radius:12px;border:1.5px solid #D4CCCC;transition:all .15s ease}.btn-hero-secondary:hover{background-color:#fff5f5;border-color:#c00;color:#c00}.hero-trust-list{display:flex;align-items:center;gap:20px;font-size:13px;font-weight:600;color:#555;flex-wrap:wrap}.hero-live-card{background:#fff;border:1px solid #E8E4E4;border-radius:20px;padding:28px;box-shadow:0 10px 30px #0000000f;display:flex;flex-direction:column;gap:20px}.live-card-head{display:flex;align-items:flex-start;justify-content:space-between}.live-head-kicker{font-size:11px;font-weight:700;letter-spacing:.05em;color:#888;text-transform:uppercase}.live-head-title{font-size:20px;font-weight:800;color:#1a1a1a;margin-top:2px}.live-pill-verified{font-size:10px;font-weight:800;letter-spacing:.06em;color:#c00;background-color:#ffe4e4;padding:4px 10px;border-radius:9999px}.live-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.live-stat-box{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}.live-stat-box small{font-size:11px;font-weight:700;color:#888;letter-spacing:.04em}.live-stat-box strong{font-size:22px;font-weight:800;color:#1a1a1a;font-variant-numeric:tabular-nums}.live-progress-track{width:100%;height:8px;background-color:#ffe4e4;border-radius:9999px;overflow:hidden}.live-progress-fill{height:100%;background:linear-gradient(90deg,#c00,#e53935);border-radius:9999px;transition:width .8s ease}.live-pill-pending{font-size:11px;font-weight:800;color:#1565c0;background-color:#e8f0fe;padding:4px 10px;border-radius:9999px;letter-spacing:.04em}.live-candidates-list{display:flex;flex-direction:column;gap:10px}.live-candidate-item{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;background-color:#f9f8f8;padding:10px 14px;border-radius:10px;border:1px solid #EAEAEA}.candidate-badge-initial{width:28px;height:28px;border-radius:50%;color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.candidate-name-col{display:flex;flex-direction:column;gap:1px;flex:1}.candidate-name-text{font-weight:700;color:#1a1a1a;font-size:14px}.candidate-sub-status{font-size:11px;color:#777}.badge-nomor-pending{font-size:11px;font-weight:700;color:#2e7d32;background-color:#ecfdf5;padding:3px 8px;border-radius:6px;border:1px solid #A7F3D0;white-space:nowrap}.live-public-note{font-size:11px;color:#666;line-height:1.5;background-color:#f9f8f8;padding:8px 12px;border-radius:8px}.section-cek-nik{padding-top:72px;padding-bottom:72px;background-color:#fff;border-top:1px solid #E8E4E4;border-bottom:1px solid #E8E4E4}.cek-nik-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:flex-start}@media(min-width:992px){.cek-nik-grid{grid-template-columns:1fr 1.15fr}}.section-eyebrow{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#c00;text-transform:uppercase;margin-bottom:10px}.section-heading-lg{font-size:32px;font-weight:800;color:#1a1a1a;line-height:1.22;margin-bottom:14px}.section-heading-lg em{font-style:italic;color:#c00}.section-p{font-size:15px;color:#555;line-height:1.6;margin-bottom:24px}.security-note-box{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:14px;margin-bottom:32px}.shield-icon{color:#10b981;flex-shrink:0}.security-note-box strong{display:block;font-size:14px;color:#1a1a1a}.security-note-box small{display:block;font-size:12px;color:#555;margin-top:2px}.steps-list{display:flex;flex-direction:column;gap:16px}.step-item{display:flex;align-items:center;gap:14px}.step-num{width:32px;height:32px;border-radius:50%;background-color:#ffe4e4;color:#c00;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.step-item strong{display:block;font-size:14px;color:#1a1a1a}.step-item small{font-size:12px;color:#555}.cek-nik-card{background-color:#fff;border:1px solid #D4CCCC;border-radius:20px;padding:32px;box-shadow:0 10px 25px #0000000d}.card-top-title{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #E8E4E4}.search-icon-circle{width:46px;height:46px;border-radius:12px;background-color:#ffe4e4;color:#c00;display:flex;align-items:center;justify-content:center}.card-top-title h3{font-size:18px;font-weight:700;color:#1a1a1a}.card-top-title p{font-size:13px;color:#555}.cek-nik-form{display:flex;flex-direction:column;gap:16px}.form-input-lg{width:100%;padding:12px 16px;font-size:15px;border-radius:10px;border:1.5px solid #D4CCCC;background-color:#fff;color:#1a1a1a;outline:none;transition:border-color .15s ease}.form-input-lg:focus{border-color:#c00;box-shadow:0 0 0 3px #cc00001f}.form-helper-bar{display:flex;justify-content:space-between;font-size:12px;color:#888;margin-top:4px}.alert-error-box{background-color:#fff5f5;border:1px solid #FFCCCC;border-radius:10px;padding:10px 14px;font-size:13px;color:#c00;display:flex;align-items:center;gap:8px}.btn-submit-cek{display:flex;align-items:center;justify-content:center;gap:8px;background-color:#c00;color:#fff;font-size:15px;font-weight:700;padding:14px 20px;border-radius:10px;margin-top:8px;transition:all .15s ease;box-shadow:0 4px 12px #c003}.btn-submit-cek:hover:not(:disabled){background-color:#b00000}.btn-submit-cek:disabled{opacity:.55;cursor:not-allowed}.result-box{margin-top:24px;border-radius:14px;padding:20px;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.result-box.is-found{background-color:#ecfdf5;border:1px solid #A7F3D0}.result-box.is-not-found{background-color:#fff5f5;border:1px solid #FFCCCC}.result-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.result-icon-success{color:#10b981;margin-top:2px}.result-icon-error{color:#c00;margin-top:2px}.result-header strong{font-size:16px;color:#1a1a1a;display:block}.result-header p{font-size:13px;color:#555;margin-top:2px;line-height:1.4}.voter-details-grid{display:grid;grid-template-columns:1fr;gap:10px;background-color:#fff;border:1px solid #A7F3D0;border-radius:10px;padding:14px}@media(min-width:540px){.voter-details-grid{grid-template-columns:1fr 1fr}}.voter-detail-row{display:flex;align-items:flex-start;gap:10px;font-size:13px}.voter-detail-row.highlight-tps{grid-column:1 / -1;background-color:#fff5f5;border:1px solid #FFE4E4;border-radius:8px;padding:10px 12px}.detail-icon{color:#555;margin-top:2px}.detail-icon-tps{color:#c00;margin-top:2px}.voter-detail-row small{font-size:11px;font-weight:600;color:#888;text-transform:uppercase}.voter-detail-row strong{font-size:14px;color:#1a1a1a;display:block}.tps-strong{font-size:16px!important;color:#c00!important;font-weight:800!important}.tps-loc-text{display:block;font-size:13px;color:#555;margin-top:2px}.tps-dusun-tag{display:inline-block;margin-top:6px;background-color:#e8f0fe;color:#1565c0;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:600}.tps-dusun-tag strong{display:inline;color:#1565c0}.office-note{font-size:12px;color:#888;margin-top:20px;text-align:center}.section-tahapan{padding-top:72px;padding-bottom:72px}.section-head-center{text-align:center;max-width:640px;margin:0 auto 48px}.tahapan-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:640px){.tahapan-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:992px){.tahapan-grid{grid-template-columns:repeat(5,1fr)}}.tahapan-card{background-color:#fff;border:1px solid #E8E4E4;border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:8px;transition:transform .15s ease,box-shadow .15s ease}.tahapan-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000012;border-color:#fcc}.tahapan-num{font-size:24px;font-weight:800;color:#c00;font-variant-numeric:tabular-nums}.tahapan-title{font-size:16px;font-weight:700;color:#1a1a1a}.tahapan-desc{font-size:13px;color:#555;line-height:1.5}.section-informasi{padding-top:72px;padding-bottom:84px;background-color:#fff;border-top:1px solid #E8E4E4}.info-faq-grid{display:grid;grid-template-columns:1fr;gap:48px}@media(min-width:992px){.info-faq-grid{grid-template-columns:1fr 1.2fr}}.info-cards-col{display:flex;flex-direction:column;gap:20px}.info-date-card{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:14px}.info-card-title{font-size:18px;font-weight:800;color:#1a1a1a}.info-row{display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-top:10px;border-top:1px solid #E8E4E4}.info-row span{color:#555}.info-row strong{color:#1a1a1a}.info-safety-card{background-color:#fff;border:1px solid #E8E4E4;border-radius:16px;padding:20px;display:flex;align-items:flex-start;gap:14px}.safety-icon-box{width:32px;height:32px;border-radius:50%;background-color:#ecfdf5;color:#10b981;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.info-safety-card h4{font-size:15px;font-weight:700;color:#1a1a1a;margin-top:4px}.info-safety-card p{font-size:13px;color:#555;line-height:1.5;margin-top:4px}.faq-col{display:flex;flex-direction:column;gap:16px}.faq-title{font-size:22px;font-weight:800;color:#1a1a1a;margin-top:4px}.faq-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.faq-item{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:12px;overflow:hidden}.faq-question-btn{width:100%;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:#1a1a1a;text-align:left;transition:background-color .15s ease}.faq-question-btn:hover{background-color:#fff5f5;color:#c00}.faq-answer-body{padding:0 20px 16px;font-size:13px;color:#555;line-height:1.6}.public-footer{background-color:#fff;border-top:2px solid #CC0000;padding:32px 0;margin-top:auto}.footer-inner{display:flex;flex-direction:column;gap:24px}@media(min-width:768px){.footer-inner{flex-direction:row;align-items:center;justify-content:space-between}}.footer-brand-side{display:flex;align-items:center;gap:16px}.footer-logo-img{width:60px;height:60px;object-fit:contain;border-radius:50%}.footer-brand-side strong{display:block;font-size:15px;font-weight:800;color:#1a1a1a}.footer-brand-side small{display:block;font-size:13px;color:#666;margin-top:2px}.footer-nav-side{display:flex;align-items:center;gap:16px}.footer-nav-side button{font-size:13px;font-weight:600;color:#555}.footer-nav-side button:hover{color:#c00}.footer-copy-text{font-size:12px;color:#888}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.admin-shell{display:flex;min-height:100vh;background-color:#f8f9fa;color:#1a1a1a;position:relative;overflow-x:hidden}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:998;animation:fadeIn .2s ease}.admin-sidebar{width:260px;background-color:#fff;border-right:1px solid #E8E4E4;display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;z-index:999}.sidebar-brand{height:72px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:2.5px solid #CC0000}.sidebar-brand-left{display:flex;align-items:center;gap:12px}.sidebar-logo-img{width:44px;height:44px;object-fit:contain;border-radius:50%}.sidebar-brand-text{display:flex;flex-direction:column}.sidebar-brand-text strong{font-size:15px;font-weight:800;color:#1a1a1a;line-height:1.2}.sidebar-brand-text small{font-size:11.5px;color:#666;font-weight:600}.btn-close-drawer{display:none;background:#f3f4f6;border:1px solid #E5E7EB;border-radius:8px;width:32px;height:32px;align-items:center;justify-content:center;color:#4b5563;cursor:pointer;transition:all .15s ease}.btn-close-drawer:hover{background:#e5e7eb;color:#111827}.sidebar-category-label{padding:16px 20px 6px;font-size:10.5px;font-weight:800;color:#888;letter-spacing:.06em;text-transform:uppercase}.sidebar-menu{padding:6px 12px;display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto}.menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;border-radius:10px;font-size:13px;font-weight:600;color:#4b5563;transition:all .15s ease;text-align:left;border:none;background:transparent;cursor:pointer}.menu-item-left{display:flex;align-items:center;gap:12px}.menu-chevron{color:#9ca3af;opacity:0;transition:all .15s ease}.menu-item:hover{background-color:#f9fafb;color:#111827}.menu-item.is-active{background-color:#fff5f5;color:#c00;font-weight:800}.menu-item.is-active svg{color:#c00}.menu-item.is-active .menu-chevron{opacity:1;color:#c00}.sidebar-footer{padding:14px 16px;border-top:1px solid #E8E4E4;display:flex;flex-direction:column;gap:10px;background-color:#fafafa}.btn-back-public{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:9px 12px;border-radius:8px;font-size:12.5px;font-weight:700;color:#555;background-color:#fff;border:1px solid #D1D5DB;transition:all .15s ease;cursor:pointer}.btn-back-public:hover{background-color:#fff5f5;color:#c00;border-color:#fcc}.sidebar-watermark-text{font-size:10.5px;color:#9ca3af;text-align:center;line-height:1.3}.admin-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow-x:hidden}.btn-mobile-hamburger{display:none;background:#fff;border:1.5px solid #E5E7EB;border-radius:8px;width:38px;height:38px;align-items:center;justify-content:center;color:#1f2937;cursor:pointer;box-shadow:0 1px 3px #0000000d;flex-shrink:0}.btn-mobile-hamburger:hover{background-color:#f3f4f6;border-color:#d1d5db}.topbar-title-group{display:flex;flex-direction:column;gap:2px}.topbar-subtitle{font-size:12px;color:#6b7280;font-weight:500}.admin-topbar{height:72px;background-color:#fff;border-bottom:1px solid #E8E4E4;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-left{display:flex;align-items:center;gap:16px}.topbar-title{font-size:18px;font-weight:800;color:#1a1a1a}.topbar-right{display:flex;align-items:center;gap:12px}.admin-user-pill{display:flex;align-items:center;gap:8px;background-color:#f9f8f8;border:1px solid #E8E4E4;padding:6px 12px;border-radius:9999px;font-size:13px;font-weight:600;color:#1a1a1a}.user-avatar-circle{width:24px;height:24px;border-radius:50%;background-color:#c00;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}.btn-logout{padding:8px;border-radius:8px;color:#888;background-color:#f9f8f8;border:1px solid #E8E4E4;transition:all .15s ease}.btn-logout:hover{color:#c00;background-color:#fff5f5;border-color:#fcc}.admin-body{padding:32px;flex:1}.metrics-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:28px}.metric-box{background-color:#fff;border:1px solid #E8E4E4;border-radius:16px;padding:22px;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000000a;border-top:3px solid #CC0000}.box-label{font-size:11px;font-weight:700;color:#888;letter-spacing:.05em;text-transform:uppercase}.box-val{font-size:28px;font-weight:800;color:#1a1a1a;margin-top:4px;font-variant-numeric:tabular-nums}.box-caption{font-size:12px;color:#555;margin-top:4px}.box-blue{border-top-color:#1565c0}.box-teal{border-top-color:#10b981}.box-purple{border-top-color:#c00}.box-green{border-top-color:#2e7d32}.card-panel{background-color:#fff;border:1px solid #E8E4E4;border-radius:16px;padding:28px;margin-bottom:28px;box-shadow:0 2px 8px #0000000a}.panel-header-with-badge{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-title{font-size:18px;font-weight:800;color:#1a1a1a;margin-bottom:6px}.panel-desc{font-size:13px;color:#555;line-height:1.5}.candidate-standings-list{display:flex;flex-direction:column;gap:14px;margin-top:16px}.standing-row{display:flex;align-items:center;gap:16px}.standing-num{width:36px;height:36px;border-radius:8px;color:#fff;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.standing-main{flex:1;display:flex;flex-direction:column;gap:6px}.standing-info{display:flex;align-items:center;justify-content:space-between;font-size:14px}.standing-info strong{color:#1a1a1a}.standing-info span{color:#555;font-variant-numeric:tabular-nums}.progress-bg{height:8px;background-color:#f9f8f8;border-radius:9999px;overflow:hidden;border:1px solid #E8E4E4}.progress-bar{height:100%;border-radius:9999px;transition:width .6s ease}.standing-pct{font-size:16px;font-weight:800;width:65px;text-align:right;font-variant-numeric:tabular-nums}.tps-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:16px}.tps-tile{border:1px solid #E8E4E4;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px;background-color:#f9f8f8;transition:all .15s ease}.tps-tile.is-clickable{cursor:pointer}.tps-tile.is-clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f;border-color:#c00}.tps-tile-header{display:flex;align-items:center;justify-content:space-between}.tps-tile-header strong{font-size:13px;color:#1a1a1a}.tile-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background-color:#fff;border:1px solid #D4CCCC;color:#888}.tps-tile.status-verified{border-color:#a7f3d0;background-color:#ecfdf5}.tps-tile.status-verified .tile-badge{background-color:#10b981;color:#fff;border:none}.tps-tile.status-locked{border-color:#fcc;background-color:#fff5f5}.tps-tile.status-locked .tile-badge{background-color:#c00;color:#fff;border:none}.tps-tile.status-submitted{border-color:#bbdefb;background-color:#e8f0fe}.tps-tile.status-submitted .tile-badge{background-color:#1565c0;color:#fff;border:none}.tps-tile.status-rejected{border-color:#fecaca;background-color:#fff5f5}.tps-tile-loc{font-size:11px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tps-tile-dpt{font-size:11px;font-weight:600;color:#888}.view-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:8px;background-color:#fff;border:1.5px solid #D4CCCC;border-radius:10px;padding:10px 14px;min-width:280px;flex:1;transition:border-color .15s ease}.search-box:focus-within{border-color:#c00}.search-box input{border:none;background:none;outline:none;font-size:14px;width:100%;color:#1a1a1a}.filter-select{padding:10px 14px;border-radius:10px;border:1.5px solid #D4CCCC;background-color:#fff;font-size:13px;font-weight:600;outline:none;color:#1a1a1a}.btn-add-voter{display:flex;align-items:center;gap:6px;background-color:#c00;color:#fff;font-size:13px;font-weight:700;padding:10px 16px;border-radius:10px;box-shadow:0 4px 10px #cc00002e;transition:background-color .15s ease}.btn-add-voter:hover{background-color:#b00000}.table-card{background-color:#fff;border:1px solid #E8E4E4;border-radius:14px;overflow-x:auto}.clean-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.clean-table th{background-color:#f9f8f8;color:#555;font-weight:700;padding:12px 16px;border-bottom:1px solid #E8E4E4;white-space:nowrap;font-size:12px;letter-spacing:.03em;text-transform:uppercase}.clean-table td{padding:14px 16px;border-bottom:1px solid #E8E4E4;color:#1a1a1a}.clean-table tbody tr:last-child td{border-bottom:none}.clean-table tbody tr:hover td{background-color:#fff5f5}.table-pagination-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background-color:#fafafa;border-top:1px solid #E8E4E4;font-size:13px;flex-wrap:wrap;gap:12px}.pagination-info{color:#555}.pagination-info strong{color:#1a1a1a}.pagination-btns{display:flex;align-items:center;gap:8px}.btn-page-nav{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;color:#1a1a1a;background-color:#fff;border:1px solid #D4CCCC;transition:all .15s ease}.btn-page-nav:hover:not(:disabled){background-color:#fff5f5;border-color:#c00;color:#c00}.btn-page-nav:disabled{opacity:.45;cursor:not-allowed}.page-current-indicator{font-size:12px;font-weight:700;color:#555;padding:0 6px}.tps-tag{background-color:#ffe4e4;color:#c00;font-weight:700;font-size:11px;padding:3px 8px;border-radius:6px}.badge-dpt{background-color:#ecfdf5;color:#10b981;font-weight:700;font-size:11px;padding:3px 8px;border-radius:6px}.badge-aktif{background-color:#f9f8f8;color:#555;font-size:11px;padding:3px 8px;border-radius:6px;border:1px solid #E8E4E4}.td-empty{text-align:center;padding:32px;color:#888}.input-split-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:flex-start}.input-form-card{background-color:#fff;border:1px solid #E8E4E4;border-radius:16px;padding:28px;box-shadow:0 2px 8px #0000000a}.form-card-head h3{font-size:17px;font-weight:800;color:#1a1a1a}.form-card-head p{font-size:13px;color:#555;margin-top:2px;margin-bottom:24px;line-height:1.5}.tps-form{display:flex;flex-direction:column;gap:16px}.form-label{font-size:12px;font-weight:700;color:#555;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.04em}.form-input{padding:11px 14px;border-radius:10px;border:1.5px solid #D4CCCC;font-size:14px;font-weight:500;color:#1a1a1a;background-color:#fff;outline:none;transition:border-color .15s ease}.form-select-lg{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid #D4CCCC;font-size:14px;font-weight:600;outline:none;background-color:#fff;color:#1a1a1a}.two-inputs-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.candidate-inputs-box{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;margin-bottom:8px}.candidate-vote-input-row{display:flex;align-items:center;gap:12px}.candidate-input-badge{width:28px;height:28px;border-radius:6px;color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.candidate-input-name{font-size:14px;font-weight:600;color:#1a1a1a;flex:1}.vote-number-input{width:100px;text-align:right;font-size:15px;font-weight:700}.file-upload-box{border:2px dashed #D4CCCC;border-radius:10px;padding:16px;display:flex;align-items:center;gap:10px;color:#555;font-size:13px;cursor:pointer;position:relative;background-color:#f9f8f8;transition:border-color .15s ease}.file-upload-box:hover{border-color:#c00;background-color:#fff5f5}.file-upload-box input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.upload-icon{color:#c00}.feedback-alert{padding:12px 14px;border-radius:10px;font-size:13px;display:flex;align-items:center;gap:10px;margin-top:14px;line-height:1.4}.feedback-alert.is-success{background-color:#ecfdf5;color:#059669;border:1px solid #A7F3D0}.feedback-alert.is-error{background-color:#fff5f5;color:#c00;border:1px solid #FFCCCC}.btn-submit-tps{width:100%;background-color:#c00;color:#fff;font-weight:700;font-size:14px;padding:14px;border-radius:10px;margin-top:8px;box-shadow:0 4px 12px #c003;transition:background-color .15s ease}.btn-submit-tps:hover:not(:disabled){background-color:#b00000}.btn-submit-tps:disabled{opacity:.55;cursor:not-allowed}.input-side-summary{position:sticky;top:24px}.summary-card{background-color:#fff;border:1px solid #E8E4E4;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000a}.summary-card h4{font-size:15px;font-weight:700;color:#1a1a1a;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #E8E4E4}.summary-rows-list{display:flex;flex-direction:column;gap:10px;font-size:13px;padding-bottom:16px;border-bottom:1px solid #E8E4E4}.summary-row{display:flex;align-items:center;justify-content:space-between;color:#555}.summary-row strong{color:#1a1a1a}.summary-row.highlight-sum{font-size:14px;font-weight:700;padding-top:6px;border-top:1px dashed #E8E4E4}.text-green{color:#10b981}.text-red{color:#c00}.math-rules-box{display:flex;flex-direction:column;gap:8px;margin-top:16px}.rule-item{display:flex;align-items:flex-start;gap:8px;font-size:12px;padding:9px 10px;border-radius:8px;line-height:1.4}.rule-item.ok{background-color:#ecfdf5;color:#059669}.rule-item.err{background-color:#fff5f5;color:#c00}.status-pill{font-size:11px;font-weight:700;padding:3px 8px;border-radius:9999px;text-transform:uppercase}.pill-belum_masuk{background-color:#f9f8f8;color:#888;border:1px solid #E8E4E4}.pill-draft{background-color:#f9f8f8;color:#555;border:1px solid #E8E4E4}.pill-submitted{background-color:#e8f0fe;color:#1565c0}.pill-verified{background-color:#ecfdf5;color:#10b981}.pill-rejected{background-color:#fff5f5;color:#c00}.pill-locked{background-color:#ffe4e4;color:#c00;border:1px solid #FFCCCC}.action-btns-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.btn-action-verify{background-color:#10b981;color:#fff;font-size:11px;font-weight:700;padding:5px 10px;border-radius:6px;transition:background-color .15s ease}.btn-action-verify:hover{background-color:#059669}.btn-action-reject{background-color:#fff5f5;color:#c00;font-size:11px;font-weight:700;padding:5px 10px;border-radius:6px;border:1px solid #FFCCCC;transition:all .15s ease}.btn-action-reject:hover{background-color:#c00;color:#fff}.btn-action-lock{display:inline-flex;align-items:center;gap:4px;background-color:#c00;color:#fff;font-size:11px;font-weight:700;padding:5px 10px;border-radius:6px;transition:background-color .15s ease}.btn-action-lock:hover{background-color:#b00000}.locked-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#c00;font-weight:700}.muted-dash{color:#888}.file-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;background-color:#f9f8f8;border:1px solid #D4CCCC;padding:2px 6px;border-radius:4px;color:#555}.no-file{color:#888;font-size:12px}.note-text{color:#555;font-size:12px;line-height:1.4}.tps-full-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:16px}.tps-info-card{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:8px;transition:all .18s ease;position:relative}.tps-info-card.is-interactive{cursor:pointer}.tps-info-card.is-interactive:hover{transform:translateY(-3px);border-color:#c00;background-color:#fff;box-shadow:0 8px 24px #cc000014}.tps-info-top{display:flex;align-items:center;justify-content:space-between}.tps-badge-num{font-size:12px;font-weight:800;color:#c00;background-color:#ffe4e4;padding:3px 9px;border-radius:6px}.tps-dusun-tag-pill{font-size:11px;font-weight:700;color:#1565c0;background-color:#e8f0fe;padding:4px 8px;border-radius:6px;display:inline-block;line-height:1.3}.tps-rt-badge-row{display:flex;align-items:center;gap:6px}.rt-coverage-text{font-size:11px;color:#555;background-color:#f1f1f1;padding:2px 6px;border-radius:4px;border:1px solid #E0E0E0}.rt-coverage-text strong{color:#1a1a1a}.tps-dusun-filter-wrap{min-width:280px}.tps-dusun-select{width:100%;font-weight:700;color:#1a1a1a;border-color:#c00}.tps-modal-dusun-tag{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.tps-modal-dusun-tag span:first-child{font-size:12px;font-weight:800;color:#1565c0;background-color:#e8f0fe;padding:2px 8px;border-radius:6px}.tps-modal-rt-pill{font-size:12px;font-weight:700;color:#2e7d32;background-color:#ecfdf5;padding:2px 8px;border-radius:6px;border:1px solid #A7F3D0}.tps-loc-name{font-size:14px;font-weight:800;color:#1a1a1a;line-height:1.3}.tps-addr{font-size:12px;color:#777;line-height:1.4}.tps-card-footer-cta{margin-top:8px;padding-top:10px;border-top:1px dashed #E8E4E4}.tps-click-cta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#c00}.candidates-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:16px}.candidate-admin-card{background-color:#fff;border:1px solid #E8E4E4;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s ease}.candidate-admin-card:hover{box-shadow:0 6px 20px #00000014}.candidate-header-bar{height:90px;display:flex;align-items:center;justify-content:center}.candidate-big-num{font-size:40px;font-weight:900;color:#fff}.candidate-admin-body{padding:20px;display:flex;flex-direction:column;gap:6px}.candidate-admin-body h4{font-size:16px;font-weight:800;color:#1a1a1a}.candidate-role-tag{font-size:12px;color:#888}.candidate-vote-counter{margin-top:12px;padding-top:12px;border-top:1px solid #E8E4E4;display:flex;flex-direction:column;gap:2px}.candidate-vote-counter small{font-size:11px;color:#888}.candidate-vote-counter strong{font-size:20px;font-weight:800}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease}.admin-modal-panel{background-color:#fff;border-radius:16px;width:100%;max-width:540px;box-shadow:0 16px 40px #0000001f;overflow:hidden}.modal-head{padding:20px 24px;border-bottom:1px solid #E8E4E4;display:flex;align-items:center;justify-content:space-between}.modal-head h3{font-size:17px;font-weight:800;color:#1a1a1a}.modal-head button{font-size:22px;color:#888;transition:color .15s ease}.modal-head button:hover{color:#c00}.admin-modal-form{padding:24px;display:flex;flex-direction:column;gap:14px}.modal-actions-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}.btn-cancel{padding:10px 18px;border-radius:8px;font-weight:600;font-size:13px;background-color:#f9f8f8;color:#555;border:1px solid #E8E4E4;transition:all .15s ease}.btn-cancel:hover{background-color:#e8e4e4;color:#1a1a1a}.btn-submit{padding:10px 18px;border-radius:8px;font-weight:700;font-size:13px;background-color:#c00;color:#fff;transition:background-color .15s ease}.btn-submit:hover{background-color:#b00000}.tps-detail-modal-panel{max-width:820px;max-height:88vh;display:flex;flex-direction:column}.tps-detail-head{padding:20px 24px;border-bottom:2px solid #CC0000;background-color:#fff}.tps-modal-title-group{display:flex;align-items:center;gap:14px}.tps-head-badge{font-size:15px;font-weight:900;color:#fff;background-color:#c00;padding:6px 12px;border-radius:8px}.tps-modal-title-group h3{font-size:18px;font-weight:800;color:#1a1a1a}.tps-modal-title-group p{font-size:13px;color:#666;margin-top:2px}.tps-detail-tabs{display:flex;align-items:center;border-bottom:1px solid #E8E4E4;background-color:#f9f8f8;padding:0 16px;gap:4px}.detail-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 16px;font-size:13px;font-weight:700;color:#555;border-bottom:2px solid transparent;transition:all .15s ease}.detail-tab-btn:hover{color:#c00}.detail-tab-btn.active{color:#c00;border-bottom-color:#c00;background-color:#fff}.tps-detail-content-body{padding:24px;overflow-y:auto;flex:1}.kpps-chairman-card{background-color:#fff5f5;border:1.5px solid #FFCCCC;border-radius:14px;padding:20px;margin-bottom:24px}.chairman-badge-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.06em;color:#c00;margin-bottom:12px}.chairman-card-body{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.chairman-avatar{width:48px;height:48px;border-radius:12px;background-color:#c00;color:#fff;font-size:20px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chairman-meta{flex:1;min-width:220px}.chairman-meta h4{font-size:16px;font-weight:800;color:#1a1a1a}.chairman-meta .role-text{font-size:13px;font-weight:700;color:#c00;margin-top:2px}.chairman-meta .duty-text{font-size:12px;color:#555;margin-top:2px}.chairman-contact{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#1565c0;background-color:#fff;border:1px solid #BBDEFB;padding:6px 12px;border-radius:8px}.sub-section-title{font-size:14px;font-weight:800;color:#1a1a1a;margin-bottom:12px;text-transform:uppercase;letter-spacing:.04em}.kpps-grid-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.kpps-officer-card{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px}.kpps-officer-card.is-linmas{border-color:#a7f3d0;background-color:#ecfdf5}.kpps-officer-card.is-supervisor{border-color:#bbdefb;background-color:#e8f0fe}.officer-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.officer-role-tag{font-size:11px;font-weight:800;color:#c00}.linmas-tag{color:#059669}.ptps-tag{color:#1565c0}.officer-phone{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#666}.officer-name{font-size:13px;font-weight:700;color:#1a1a1a}.officer-duty{font-size:11px;color:#666;line-height:1.4}.detail-voters-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.detail-voters-count-badge{font-size:13px;color:#555;background-color:#f9f8f8;padding:6px 12px;border-radius:8px;border:1px solid #E8E4E4}.tps-results-summary-card{display:flex;flex-direction:column;gap:20px}.status-overview-bar{display:flex;align-items:center;justify-content:space-between;background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:12px;padding:16px 20px}.summary-lbl{font-size:11px;font-weight:700;color:#888;letter-spacing:.04em;display:block}.status-text-lg{font-size:18px;font-weight:800;margin-top:2px}.dpt-quick-stat{display:flex;flex-direction:column;align-items:flex-end}.dpt-quick-stat span{font-size:12px;color:#777}.dpt-quick-stat strong{font-size:16px;font-weight:800;color:#1a1a1a}.detail-candidates-votes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.detail-vote-box{background-color:#fff;border:1px solid #E8E4E4;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}.vote-box-top{display:flex;align-items:center;gap:8px}.cand-name{font-size:13px;font-weight:700;color:#1a1a1a}.vote-box-bottom{display:flex;align-items:center;justify-content:space-between}.cand-votes-num{font-size:16px;font-weight:800}.c1-evidence-preview-box{background-color:#f9f8f8;border:1px solid #E8E4E4;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.security-view{display:flex;flex-direction:column;gap:20px}.security-shields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.shield-card{background-color:#fff;border:1px solid #E8E4E4;border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 8px #0000000a;transition:transform .15s ease,box-shadow .15s ease}.shield-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000014}.shield-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.shield-icon-badge{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center}.bg-green{background-color:#ecfdf5;color:#059669}.bg-blue{background-color:#eff6ff;color:#2563eb}.bg-red{background-color:#fef2f2;color:#dc2626}.bg-amber{background-color:#fffbeb;color:#d97706}.shield-status-pill{font-size:10px;font-weight:800;color:#059669;background-color:#ecfdf5;padding:3px 8px;border-radius:9999px;letter-spacing:.04em}.shield-card h4{font-size:15px;font-weight:800;color:#1a1a1a;margin:0}.shield-card p{font-size:12.5px;color:#555;line-height:1.4;margin:0}.shield-detail-meta{font-size:11px;color:#888;font-family:monospace;margin-top:4px}.btn-refresh-log{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background-color:#fff5f5;color:#c00;border:1px solid #FFCCCC;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease}.btn-refresh-log:hover{background-color:#c00;color:#fff}.log-badge-type{font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:6px;display:inline-block;letter-spacing:.03em}.log-login_success{background-color:#ecfdf5;color:#059669}.log-failed_login_attempt{background-color:#fef2f2;color:#dc2626}.log-blocked_attack{background-color:#fef2f2;color:#991b1b;font-weight:900}.log-data_update{background-color:#eff6ff;color:#2563eb}.log-session_expired{background-color:#fffbeb;color:#d97706}.log-logout{background-color:#f3f4f6;color:#4b5563}.log-severity-pill{font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px}.severity-low{background-color:#f3f4f6;color:#4b5563}.severity-medium{background-color:#fffbeb;color:#d97706}.severity-high{background-color:#fef2f2;color:#dc2626;font-weight:900}.severity-critical{background-color:#7f1d1d;color:#fff;font-weight:900}.c1-file-info{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#10b981}.c1-no-file-info{display:flex;align-items:center;gap:8px;font-size:13px;color:#888}.tps-modal-footer{padding:16px 24px;border-top:1px solid #E8E4E4;background-color:#fafafa;margin-top:0}@media(max-width:960px){.btn-mobile-hamburger{display:flex}.admin-topbar{height:62px;padding:0 14px}.topbar-left{gap:10px;min-width:0}.topbar-title{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-subtitle,.user-name-text{display:none}.admin-user-pill{padding:4px 6px;gap:0}.btn-close-drawer{display:flex}.admin-sidebar{position:fixed;top:0;left:0;bottom:0;width:285px;max-width:85vw;height:100vh;transform:translate(-100%);transition:transform .26s cubic-bezier(.16,1,.3,1);box-shadow:0 0 35px #00000047;z-index:1001}.admin-sidebar.is-open{transform:translate(0)}.sidebar-brand{height:64px;padding:0 14px}.sidebar-logo-img{width:38px;height:38px}.sidebar-brand-text strong{font-size:14px}.menu-item{padding:12px 14px;font-size:13.5px}.menu-chevron{opacity:.6}.admin-body{padding:14px 12px}.metrics-row{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.metric-box{padding:12px;border-radius:12px}.box-label{font-size:10px}.box-val{font-size:20px}.box-caption{font-size:10.5px}.card-panel{padding:14px 12px;border-radius:12px}.panel-title{font-size:15px}.panel-desc{font-size:12px}.tps-grid{grid-template-columns:1fr;gap:12px}.candidates-detail-grid,.security-shields-grid{grid-template-columns:1fr}.admin-modal-panel{max-width:95vw;max-height:90vh;border-radius:14px}.tps-detail-modal-panel{width:95vw}.tps-detail-head,.tps-detail-body{padding:14px 16px}.kpps-officers-grid{grid-template-columns:1fr}}@media(max-width:480px){.metrics-row{grid-template-columns:1fr}.topbar-title{font-size:14px}}.login-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.login-modal-box{background-color:#fff;border-radius:18px;border:1px solid #E8E4E4;box-shadow:0 20px 40px #0000001f;width:100%;max-width:440px;overflow:hidden}.login-modal-top{padding:24px 24px 18px;border-bottom:3px solid #CC0000;display:flex;align-items:flex-start;gap:14px;position:relative}.login-modal-logo{width:56px;height:56px;object-fit:contain;flex-shrink:0;border-radius:50%}.login-modal-top h3{font-size:17px;font-weight:800;color:#1a1a1a}.login-modal-top p{font-size:12px;color:#888;margin-top:3px;line-height:1.4}.btn-modal-close{position:absolute;top:16px;right:16px;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#888;background-color:#f9f8f8;border:1px solid #E8E4E4;transition:all .15s ease}.btn-modal-close:hover{background-color:#fff5f5;color:#c00;border-color:#fcc}.login-modal-form{padding:24px;display:flex;flex-direction:column;gap:14px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:700;color:#555;display:flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.04em}.form-input{padding:11px 14px;border-radius:10px;border:1.5px solid #D4CCCC;font-size:14px;color:#1a1a1a;outline:none;transition:border-color .15s ease}.form-input:focus{border-color:#c00;box-shadow:0 0 0 3px #cc00001a}.login-error-text{font-size:13px;color:#c00;background-color:#fff5f5;padding:8px 12px;border-radius:8px;border:1px solid #FFCCCC}.login-form-actions{margin-top:8px}.btn-modal-login{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background-color:#c00;color:#fff;font-size:14px;font-weight:700;padding:13px;border-radius:10px;box-shadow:0 4px 12px #cc000038;transition:all .15s ease}.btn-modal-login:hover{background-color:#b00000;transform:translateY(-1px)}.panitia-login-page{min-height:100vh;width:100%;background:radial-gradient(circle at 50% 20%,#2d0808,#151515 70%,#0d0d0d);display:flex;align-items:center;justify-content:center;padding:16px;position:relative}.panitia-login-container{width:100%;max-width:380px;position:relative;z-index:2;animation:slideUp .2s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.panitia-login-card{background-color:#fff;border-radius:16px;border:1px solid #E8E4E4;box-shadow:0 16px 36px #00000059;overflow:hidden}.panitia-login-header{padding:22px 20px 16px;text-align:center;background:linear-gradient(180deg,#fff8f8,#fff);border-bottom:2.5px solid #CC0000;display:flex;flex-direction:column;align-items:center;gap:6px}.panitia-portal-logo{width:52px;height:52px;object-fit:contain;border-radius:50%;margin-bottom:2px;box-shadow:0 3px 10px #cc000026}.panitia-secure-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;color:#c00;background-color:#ffeaea;padding:3px 8px;border-radius:9999px;letter-spacing:.04em}.panitia-login-header h2{font-size:17px;font-weight:800;color:#1a1a1a;margin:0;line-height:1.25}.panitia-login-header p{font-size:11.5px;color:#666;line-height:1.35;margin:0}.panitia-portal-form{padding:18px 20px 16px;display:flex;flex-direction:column;gap:12px}.panitia-portal-form .form-group{display:flex;flex-direction:column;gap:5px}.panitia-portal-form .form-label{font-size:11px;font-weight:700;color:#444;display:flex;align-items:center;gap:4px;text-transform:uppercase;letter-spacing:.03em}.panitia-portal-form .form-input{padding:9px 12px;border-radius:8px;border:1.5px solid #D4CCCC;font-size:13px;color:#1a1a1a;outline:none;transition:all .15s ease}.panitia-portal-form .form-input:focus{border-color:#c00;box-shadow:0 0 0 2.5px #cc00001f}.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap .form-input{width:100%;padding-right:36px}.btn-toggle-pwd{position:absolute;right:8px;background:none;border:none;color:#777;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.btn-toggle-pwd:hover{color:#1a1a1a}.lockout-alert-box{padding:10px 12px;background-color:#fef2f2;border:1px solid #FCA5A5;border-radius:8px;color:#991b1b;font-size:11.5px;line-height:1.4;display:flex;align-items:flex-start;gap:8px}.lockout-timer-pill{font-weight:800;color:#c00;background-color:#fee2e2;padding:2px 6px;border-radius:4px;display:inline-block;margin-top:4px}.btn-panitia-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;background-color:#c00;color:#fff;font-size:13.5px;font-weight:700;padding:11px 14px;border-radius:8px;box-shadow:0 3px 10px #cc000038;margin-top:4px;transition:all .15s ease}.btn-panitia-submit:hover:not(:disabled){background-color:#b00000;transform:translateY(-1px)}.btn-panitia-submit:disabled{opacity:.55;cursor:not-allowed}.panitia-login-footer{padding:12px 20px 16px;background-color:#fafafa;border-top:1px solid #EAEAEA;display:flex;flex-direction:column;align-items:center;gap:8px}.btn-back-to-public{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#666;background:none;border:none;cursor:pointer;transition:color .15s ease}.btn-back-to-public:hover{color:#c00}.panitia-security-note{font-size:10.5px;color:#888}:root{--bg-base: #F9F8F8;--bg-surface: #FFFFFF;--bg-subtle: #FFF5F5;--bg-input: #FFFFFF;--border-subtle: #E8E4E4;--border-medium: #D4CCCC;--border-focus: #CC0000;--text-primary: #1A1A1A;--text-secondary: #555555;--text-muted: #888888;--text-inverse: #FFFFFF;--primary-50: #FFF5F5;--primary-100: #FFE4E4;--primary-200: #FFCCCC;--primary-500: #E53935;--primary-600: #CC0000;--primary-700: #B00000;--primary-800: #8B0000;--success: #10B981;--success-light: #ECFDF5;--success-border: #A7F3D0;--warning: #F59E0B;--warning-light: #FFFBEB;--warning-border: #FDE68A;--danger: #CC0000;--danger-light: #FFF5F5;--danger-border: #FFCCCC;--info: #1565C0;--info-light: #E8F0FE;--info-border: #BBDEFB;--candidate-1: #CC0000;--candidate-2: #1565C0;--candidate-3: #2E7D32;--candidate-4: #6A1E8A;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-sm: 0 2px 8px 0 rgba(0, 0, 0, .05);--shadow-md: 0 6px 20px 0 rgba(0, 0, 0, .07);--shadow-lg: 0 12px 32px -4px rgba(0, 0, 0, .1);--font-sans: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);color:var(--text-primary);background-color:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:15px;line-height:1.5}body{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-base);color:var(--text-primary);overflow-x:hidden}#root{display:flex;flex-direction:column;min-height:100vh}.tabular-nums,strong.metric-val,.table-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:none;background:none}img,svg{display:block;max-width:100%}.container{width:100%;max-width:1240px;margin-left:auto;margin-right:auto;padding-left:var(--space-4);padding-right:var(--space-4)}@media(min-width:768px){.container{padding-left:var(--space-6);padding-right:var(--space-6)}}@keyframes pulse-ring{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-smooth) ease-out forwards}.animate-slide-up{animation:slideUp var(--transition-smooth) ease-out forwards}.spin{animation:spin 1s linear infinite}.form-group{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.form-label{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-1)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background-color:var(--bg-input);color:var(--text-primary);font-size:14px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #3b82f626}.form-input::placeholder{color:var(--text-muted)}.form-helper{font-size:12px;color:var(--text-muted);display:flex;justify-content:space-between;margin-top:4px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-subtle)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
