@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";@import "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css";:root{--font-heading:"Outfit", sans-serif;--font-body:"Plus Jakarta Sans", sans-serif;--bg-base:#121214;--bg-surface:#1a1a1df5;--bg-surface-solid:#1a1a1c;--border-color:#3f3f46b3;--color-primary:#60a5fa;--color-primary-rgb:96, 165, 250;--color-primary-hover:#3b82f6;--color-success:#34d399;--color-success-rgb:52, 211, 153;--color-success-hover:#10b981;--color-warning:#fbbf24;--color-danger:#f87171;--text-main:#f4f4f5;--text-muted:#a1a1aa;--text-inverse:#121214;--card-shadow:0 20px 40px -15px #0009, 0 8px 16px -8px #0006;--glow-shadow:0 0 30px rgba(var(--color-primary-rgb), .3);--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--transition-fast:.2s ease;--transition-smooth:.4s cubic-bezier(.16, 1, .3, 1)}[data-theme=light]{--bg-base:#f1f5f9;--bg-surface:#fffffff2;--bg-surface-solid:#fff;--border-color:#cbd5e1e6;--color-primary:#3b82f6;--color-primary-rgb:59, 130, 246;--color-primary-hover:#2563eb;--color-success:#10b981;--color-success-rgb:16, 185, 129;--color-success-hover:#059669;--color-warning:#f59e0b;--color-danger:#ef4444;--text-main:#0f172a;--text-muted:#475569;--text-inverse:#fff;--card-shadow:0 20px 40px -15px #0f172a14, 0 8px 16px -8px #0f172a0d;--glow-shadow:0 0 25px rgba(var(--color-primary-rgb), .2)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-base);color:var(--text-main);min-height:100vh;transition:background-color var(--transition-smooth), color var(--transition-smooth);line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:700}.bg-pattern{z-index:-2;pointer-events:none;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.bg-pattern:before{content:"";background:radial-gradient(circle, rgba(var(--color-primary-rgb), .12) 0%, #fff0 70%);filter:blur(80px);border-radius:50%;width:600px;height:600px;position:absolute;top:-200px;right:-200px}.bg-pattern:after{content:"";background:radial-gradient(circle, rgba(var(--color-success-rgb), .08) 0%, #fff0 70%);filter:blur(80px);border-radius:50%;width:500px;height:500px;position:absolute;bottom:-100px;left:-100px}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}main.container{flex:1;padding-top:40px;padding-bottom:60px}.glass-card{background:var(--bg-surface);-webkit-backdrop-filter:blur(24px);border:2px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-shadow);transition:transform var(--transition-smooth), box-shadow var(--transition-smooth), border-color var(--transition-smooth);padding:30px}.glass-card:hover{border-color:var(--color-primary);box-shadow:var(--card-shadow), var(--glow-shadow);transform:translateY(-2px)}header.site-header{background:var(--bg-base);-webkit-backdrop-filter:none;box-shadow:none;z-index:100;border-bottom:none;padding:15px 0;position:sticky;top:0}header.site-header .container{max-width:100%;padding:0 40px}@media (width<=768px){header.site-header .container{padding:0 16px}}header.site-header .header-wrapper{justify-content:space-between;align-items:center;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-logo{background:linear-gradient(135deg, var(--color-primary), var(--color-success));color:#fff;width:40px;height:40px;box-shadow:0 4px 15px rgba(var(--color-primary-rgb), .3);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;font-weight:800;display:flex}.brand-text{flex-direction:column;display:flex}.brand-title{color:var(--text-main);font-size:1.2rem;line-height:1.2}.brand-subtitle{color:var(--text-muted);font-size:.75rem}nav.main-nav{align-items:center;gap:20px;display:flex}nav.main-nav button.nav-link,nav.main-nav a.nav-link{cursor:pointer;color:var(--text-muted);font-family:var(--font-body);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:.95rem;font-weight:600;display:flex}nav.main-nav button.nav-link:hover,nav.main-nav button.nav-link.active,nav.main-nav a.nav-link:hover,nav.main-nav a.nav-link.active{color:var(--color-primary);background:rgba(var(--color-primary-rgb), .08)}.theme-toggle-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--text-main);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.theme-toggle-btn:hover{background:rgba(var(--color-primary-rgb), .08);border-color:var(--color-primary)}.form-group{margin-bottom:20px}.form-group label{color:var(--text-main);margin-bottom:8px;font-size:.9rem;font-weight:600;display:block}.form-control{width:100%;font-family:var(--font-body);background:var(--bg-surface-solid);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:12px 16px;font-size:.95rem}.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .15);outline:none}textarea.form-control{resize:vertical;min-height:120px}.btn{font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 4px 14px rgba(var(--color-primary-rgb), .3)}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:0 6px 20px rgba(var(--color-primary-rgb), .4);transform:translateY(-2px)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:var(--color-success-hover);transform:translateY(-2px)}.btn-secondary{border:1px solid var(--border-color);color:var(--text-main);background:0 0}.btn-secondary:hover{background:rgba(var(--color-primary-rgb), .05);border-color:var(--color-primary)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{border-radius:6px;padding:6px 12px;font-size:.85rem}.btn:active{transform:translateY(0)}.login-wrapper{justify-content:center;align-items:center;min-height:calc(100vh - 220px);display:flex}.login-card{border-radius:var(--radius-lg);width:100%;max-width:440px;padding:24px 30px}.login-title{text-align:center;background:linear-gradient(135deg, var(--color-primary), var(--color-success));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:1.75rem}.login-desc{text-align:center;color:var(--text-muted);margin-bottom:15px;font-size:.9rem}.election-header{text-align:center;margin-bottom:40px}.election-header h2{margin-bottom:10px;font-size:2rem}.election-info-banner{background:rgba(var(--color-primary-rgb), .1);color:var(--color-primary);border-radius:50px;align-items:center;gap:8px;padding:6px 16px;font-size:.85rem;font-weight:600;display:inline-flex}.candidates-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:40px;display:grid}.candidate-card{border-radius:var(--radius-lg);flex-direction:column;display:flex;position:relative;overflow:hidden}.candidate-card:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-success));width:100%;height:6px;position:absolute;top:0;left:0}.candidate-number{background:linear-gradient(135deg, var(--color-primary), var(--color-success));color:#fff;width:50px;height:50px;font-family:var(--font-heading);z-index:10;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:800;display:flex;position:absolute;top:20px;left:20px;box-shadow:0 4px 10px #00000026}.candidate-photo-wrapper{background:var(--bg-base);border-bottom:1px solid var(--border-color);justify-content:center;align-items:center;width:100%;height:380px;display:flex;position:relative;overflow:hidden}.candidate-photo{object-fit:contain;width:100%;height:100%;transition:transform var(--transition-smooth)}.candidate-card:hover .candidate-photo{transform:scale(1.02)}.candidate-body{flex-direction:column;flex:1;padding:24px;display:flex}.candidate-name{text-align:center;margin-bottom:15px;font-size:1.35rem}.candidate-tabs{border-bottom:1px solid var(--border-color);margin-bottom:15px;display:flex}.candidate-tab-btn{cursor:pointer;font-family:var(--font-body);color:var(--text-muted);text-align:center;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:.85rem;font-weight:600}.candidate-tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.candidate-tab-content{color:var(--text-muted);white-space:pre-line;flex:1;max-height:120px;margin-bottom:20px;font-size:.9rem;overflow-y:auto}.stats-summary{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:40px;display:grid}.stat-box{align-items:center;gap:20px;display:flex}.stat-icon{border-radius:var(--radius-md);background:rgba(var(--color-primary-rgb), .1);width:60px;height:60px;color:var(--color-primary);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.stat-box.success .stat-icon{color:var(--color-success);background:#10b9811a}.stat-box.warning .stat-icon{color:var(--color-warning);background:#f59e0b1a}.stat-info{flex-direction:column;display:flex}.stat-value{font-size:1.75rem;font-weight:800;font-family:var(--font-heading);line-height:1.2}.stat-label{color:var(--text-muted);font-size:.85rem}.results-grid{grid-template-columns:3fr 2fr;gap:30px;display:grid}@media (width<=992px){.results-grid{grid-template-columns:1fr}}.chart-card{flex-direction:column;justify-content:center;min-height:350px;display:flex}.svg-chart-container{border-bottom:2px solid var(--border-color);align-items:flex-end;gap:24px;width:100%;height:250px;margin-bottom:15px;padding:20px 10px 40px;display:flex}.svg-chart-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.chart-bar{background:linear-gradient(to top, rgba(var(--color-primary-rgb), .7), var(--color-primary));width:100%;max-width:60px;box-shadow:0 4px 15px rgba(var(--color-primary-rgb), .15);border-radius:8px 8px 0 0;transition:height .6s cubic-bezier(.16,1,.3,1);position:relative}.svg-chart-column:nth-child(2n) .chart-bar{background:linear-gradient(to top, rgba(var(--color-success-rgb), .7), var(--color-success));box-shadow:0 4px 15px rgba(var(--color-success-rgb), .15)}.bar-val{font-weight:700;font-family:var(--font-heading);font-size:1rem;position:absolute;top:-30px;left:50%;transform:translate(-50%)}.bar-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:.8rem;font-weight:600;position:absolute;bottom:-35px;overflow:hidden}.admin-layout{grid-template-columns:240px 1fr;gap:30px;display:grid}.admin-dashboard-grid{grid-template-columns:1fr 1fr;gap:30px;display:grid}@media (width<=768px){.admin-layout,.admin-dashboard-grid{grid-template-columns:1fr;gap:20px}.admin-sidebar{padding:15px}.sidebar-nav{flex-flow:wrap;gap:6px}.sidebar-nav-link{flex:1;justify-content:center;width:auto;min-width:130px;padding:10px;font-size:.85rem}header.site-header{padding:12px 0}header.site-header .header-wrapper{text-align:center;flex-direction:column;gap:12px}.brand{justify-content:center}nav.main-nav{flex-wrap:wrap;justify-content:center;gap:6px;width:100%}nav.main-nav button.nav-link,nav.main-nav a.nav-link{padding:6px 10px;font-size:.85rem}}.admin-sidebar{height:fit-content}.sidebar-nav{flex-direction:column;gap:8px;display:flex}.sidebar-nav-link{text-align:left;cursor:pointer;border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-body);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:12px 16px;font-size:.95rem;font-weight:500;display:flex}.sidebar-nav-link:hover,.sidebar-nav-link.active{background:rgba(var(--color-primary-rgb), .08);color:var(--color-primary)}.admin-control-box{border:1px solid var(--border-color);margin-bottom:25px}.admin-badge-status{border-radius:50px;padding:4px 12px;font-size:.8rem;font-weight:600;display:inline-block}.status-siap{color:var(--color-primary);background:#3b82f61a}.status-dimulai{color:var(--color-success);background:#10b9811a}.status-selesai{color:var(--color-danger);background:#ef44441a}.table-responsive{border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;margin-top:20px;overflow-x:auto}.custom-table{border-collapse:collapse;text-align:left;background:var(--bg-surface-solid);width:100%}.custom-table th{background:var(--bg-base);color:var(--text-muted);border-bottom:1px solid var(--border-color);padding:14px 20px;font-size:.9rem;font-weight:600}.custom-table td{border-bottom:1px solid var(--border-color);padding:14px 20px;font-size:.95rem}.custom-table tr:last-child td{border-bottom:none}.custom-table tr:hover td{background:rgba(var(--color-primary-rgb), .02)}.alert{border-radius:var(--radius-sm);align-items:center;gap:12px;margin-bottom:24px;padding:15px 20px;font-weight:500;display:flex}.alert-success{color:var(--color-success);background:#10b9811a;border:1px solid #10b98133}.alert-error{color:var(--color-danger);background:#ef44441a;border:1px solid #ef444433}.alert-warning{color:var(--color-warning);background:#f59e0b1a;border:1px solid #f59e0b33}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;width:100vw;height:100vh;transition:opacity var(--transition-fast);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--bg-surface-solid);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:500px;transition:transform var(--transition-fast);box-shadow:0 20px 40px #0003}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{font-size:1.25rem}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.25rem}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}footer.site-footer{background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);margin-top:auto;padding:20px 0;font-size:.85rem}.text-center{text-align:center}.mb-4{margin-bottom:1.5rem}.mt-4{margin-top:1.5rem}.font-bold{font-weight:700}.d-none{display:none}.d-flex{display:flex}.gap-2{gap:8px}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.align-center{align-items:center}@media (width<=576px){.glass-card{padding:15px}.login-card{padding:20px 15px}.login-wrapper{min-height:calc(100vh - 240px);padding:15px 0}.stats-summary{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:25px}.stat-box{gap:10px;padding:12px 16px!important}.stat-icon{width:44px;height:44px;font-size:1.2rem}.stat-value{font-size:1.35rem}.stat-label{font-size:.75rem}.candidate-photo-wrapper{height:280px}.svg-chart-container{gap:12px;height:200px;padding-bottom:30px}.bar-val{font-size:.8rem;top:-22px}.bar-label{font-size:.65rem;bottom:-28px}.custom-table th,.custom-table td{padding:10px 8px;font-size:.8rem}main.container{padding:15px 15px 30px}}@keyframes kiosk-pulse{0%,to{transform:scale(1);box-shadow:0 0 #ef444466}50%{transform:scale(1.05);box-shadow:0 0 0 20px #ef444400}}@keyframes kiosk-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.kiosk-badge{animation:.5s forwards kiosk-fade-in}
