@import url("https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Mono:wght@400;500&family=Inter:wght@300;400;500;600&display=swap");:root{--bg:#0a0907;--bg-2:#110f0b;--bg-3:#1a1712;--bg-card:#131109;--border:rgba(251,191,36,.12);--border-2:rgba(251,191,36,.28);--cyan:#f59e0b;--cyan-dim:rgba(251,191,36,.14);--cyan-glow:0 0 20px rgba(251,191,36,.35);--green:#4ade80;--green-dim:rgba(74,222,128,.14);--red:#f87171;--red-dim:hsla(0,91%,71%,.14);--amber:#fb923c;--amber-dim:rgba(251,146,60,.14);--purple:#c084fc;--text:#f5f0e8;--text-2:#a89880;--text-3:#6b5c48;--font-display:"Syne",sans-serif;--font-body:"Inter",sans-serif;--font-mono:"DM Mono",monospace;--radius:10px;--radius-lg:16px;--max-w:1100px;--nav-h:64px;--ease:cubic-bezier(0.4,0,0.2,1);--dur:200ms}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(251,191,36,.03) 1px,transparent 0),linear-gradient(90deg,rgba(251,191,36,.03) 1px,transparent 0);background-size:48px 48px;pointer-events:none;z-index:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.2;letter-spacing:-.02em}h1{font-size:clamp(2rem,5vw,3.25rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:1.2rem}h4{font-size:1rem;font-weight:600}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}.mono,code{font-family:var(--font-mono);font-size:.85em;background:var(--bg-3);padding:2px 6px;border-radius:4px;color:var(--cyan);border:1px solid var(--border)}.page-wrapper{position:relative;z-index:1;min-height:100vh;padding-top:var(--nav-h)}.container{padding:0 24px}.container,.page-content{max-width:var(--max-w);margin:0 auto}.page-content{padding:40px 24px 80px}.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);background:rgba(7,11,20,.85);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:100}.nav,.nav-inner{display:flex;align-items:center}.nav-inner{max-width:var(--max-w);width:100%;margin:0 auto;padding:0 24px;gap:32px}.nav-logo{font-family:var(--font-display);font-size:1.2rem;font-weight:800;color:var(--text);gap:10px;text-decoration:none}.nav-logo,.nav-logo-icon{display:flex;align-items:center}.nav-logo-icon{width:32px;height:32px;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:8px;justify-content:center;font-size:.85rem;box-shadow:0 0 12px rgba(245,158,11,.3)}.nav-links{display:flex;align-items:center;gap:4px;flex:1 1}.nav-link{padding:6px 14px;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--text-2);text-decoration:none;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-link:hover{color:var(--text);background:var(--bg-3)}.nav-link.active{color:var(--cyan);background:var(--cyan-dim)}.nav-end{margin-left:auto;display:flex;align-items:center;gap:12px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;position:relative;overflow:hidden;transition:border-color var(--dur) var(--ease)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,240,255,.3),transparent)}.card:hover{border-color:var(--border-2)}.card-header{justify-content:space-between;margin-bottom:20px;gap:12px}.card-header,.card-title{display:flex;align-items:center}.card-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text);gap:8px}.card-icon{width:28px;height:28px;background:var(--cyan-dim);border:1px solid var(--border-2);border-radius:6px;display:flex;font-size:.75rem;flex-shrink:0}.btn,.card-icon{align-items:center;justify-content:center}.btn{display:inline-flex;gap:8px;padding:10px 20px;border-radius:var(--radius);font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease);border:none;text-decoration:none;white-space:nowrap;position:relative;overflow:hidden}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#f59e0b,#d97706);color:#000;box-shadow:0 0 0 rgba(0,240,255,0)}.btn-primary:hover:not(:disabled){box-shadow:0 0 20px rgba(245,158,11,.35);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-outline{background:transparent;color:var(--cyan);border:1px solid var(--border-2)}.btn-outline:hover:not(:disabled){background:var(--cyan-dim);border-color:var(--cyan)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid rgba(255,59,92,.3)}.btn-danger:hover:not(:disabled){background:rgba(255,59,92,.25)}.btn-success{background:var(--green-dim);color:var(--green);border:1px solid rgba(0,232,122,.3)}.btn-success:hover:not(:disabled){background:rgba(0,232,122,.25)}.btn-ghost{background:transparent;color:var(--text-2);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-3);color:var(--text)}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-full{width:100%}.btn-loading:after{content:"";width:14px;height:14px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite;margin-left:6px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.8rem;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em}.form-input,.form-select,.form-textarea{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;color:var(--text);font-family:var(--font-body);font-size:.875rem;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);width:100%;outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,240,255,.1)}.form-textarea{resize:vertical;min-height:100px;line-height:1.5}.form-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%237fa8c0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}.form-hint{font-size:.775rem;color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-open{background:var(--green-dim);color:var(--green)}.badge-closed{background:var(--red-dim);color:var(--red)}.badge-pending{background:var(--amber-dim);color:var(--amber)}.badge-inactive{background:var(--bg-3);color:var(--text-3);border:1px solid var(--border)}.badge-open:before{box-shadow:0 0 6px var(--green);animation:pulse-dot 1.5s infinite}.alert{padding:12px 16px;border-radius:var(--radius);font-size:.875rem;display:flex;align-items:flex-start;gap:10px;line-height:1.5}.alert-icon{flex-shrink:0;font-size:1rem;margin-top:1px}.alert-info{background:var(--cyan-dim);border:1px solid rgba(0,240,255,.25);color:var(--cyan)}.alert-success{background:var(--green-dim);border:1px solid rgba(0,232,122,.25);color:var(--green)}.alert-error{background:var(--red-dim);border:1px solid rgba(255,59,92,.25);color:var(--red)}.alert-warn{background:var(--amber-dim);border:1px solid rgba(251,191,36,.25);color:var(--amber)}.progress-bar{height:8px;background:var(--bg-3);overflow:hidden}.progress-bar,.progress-fill{border-radius:4px;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#f59e0b,#d97706);transition:width .6s var(--ease)}.progress-fill:after{content:"";position:absolute;top:0;right:0;width:8px;height:100%;background:hsla(0,0%,100%,.3);filter:blur(4px)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}@media (max-width:600px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:20px 12px;text-align:center;transition:border-color var(--dur) var(--ease);overflow:hidden;min-width:0}.stat-card:hover{border-color:var(--border-2)}.stat-value{font-family:var(--font-display);font-size:clamp(.95rem,2.5vw,1.75rem);font-weight:800;color:var(--cyan);line-height:1.2;margin-bottom:4px;word-break:break-all;overflow-wrap:break-word}.stat-label{font-size:.7rem;color:var(--text-3);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.candidates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}.candidate-card{background:var(--bg-3);border:2px solid var(--border);border-radius:var(--radius-lg);padding:24px;cursor:pointer;transition:all var(--dur) var(--ease);position:relative;overflow:hidden}.candidate-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0,rgba(245,158,11,.06),transparent 60%);opacity:0;transition:opacity var(--dur) var(--ease)}.candidate-card:hover:before{opacity:1}.candidate-card:hover{border-color:var(--cyan);transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.4),0 0 0 1px rgba(0,240,255,.1)}.candidate-card.selected{border-color:var(--cyan);background:linear-gradient(135deg,rgba(0,240,255,.08),rgba(0,102,255,.05));box-shadow:0 0 20px rgba(245,158,11,.35)}.candidate-card.disabled{cursor:default;opacity:.6}.candidate-card.disabled:hover{transform:none;border-color:var(--border)}.candidate-avatar{width:48px;height:48px;background:linear-gradient(135deg,var(--cyan-dim),rgba(0,102,255,.2));border:1px solid var(--border-2);border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.2rem;font-weight:800;color:var(--cyan);margin-bottom:14px;flex-shrink:0}.candidate-name{font-family:var(--font-display);font-size:1.1rem;font-weight:700;margin-bottom:4px}.candidate-id{font-size:.775rem;color:var(--text-3);font-family:var(--font-mono)}.result-item{padding:18px 0;border-bottom:1px solid var(--border)}.result-item:last-child{border-bottom:none}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:12px}.result-name{font-weight:600;font-size:.95rem}.result-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.result-count{font-family:var(--font-mono);font-size:.85rem;color:var(--text-2)}.result-pct{font-family:var(--font-display);font-size:1.1rem;font-weight:700;min-width:48px;text-align:right}.result-pct,.result-winner .result-name{color:var(--cyan)}.election-list{display:flex;flex-direction:column;gap:12px}.election-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;display:flex;align-items:center;gap:16px;transition:all var(--dur) var(--ease);text-decoration:none;color:inherit;cursor:pointer}.election-item:hover{border-color:var(--border-2);background:var(--bg-3);text-decoration:none}.election-item-body{flex:1 1;min-width:0}.election-item-title{font-weight:700;margin-bottom:4px;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.election-item-meta{font-size:.8rem;color:var(--text-3);display:flex;gap:16px;flex-wrap:wrap}.election-item-end{flex-shrink:0;display:flex;align-items:center;gap:12px}.voter-tag{display:inline-flex;align-items:center;gap:6px;background:var(--bg-3);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-family:var(--font-mono);font-size:.75rem;color:var(--text-2);transition:all var(--dur) var(--ease)}.voter-tag .remove-btn{background:none;border:none;cursor:pointer;color:var(--text-3);padding:0;line-height:1;transition:color var(--dur);font-size:.85rem}.voter-tag .remove-btn:hover{color:var(--red)}.voter-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.steps{flex-direction:column;gap:0}.step,.steps{display:flex;position:relative}.step{gap:16px;padding:0 0 28px}.step:last-child{padding-bottom:0}.step-dot{width:32px;height:32px;border-radius:50%;background:var(--bg-3);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--text-3);flex-shrink:0;position:relative;z-index:1;transition:all .3s}.step.active .step-dot{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim);box-shadow:0 0 12px rgba(0,240,255,.3)}.step.done .step-dot{border-color:var(--green);background:var(--green-dim);color:var(--green)}.step-line{position:absolute;left:15px;top:32px;width:2px;height:calc(100% - 32px);background:var(--border)}.step.done .step-line{background:var(--green);opacity:.4}.step-content{padding-top:4px;flex:1 1}.step-title{font-weight:600;font-size:.9rem;margin-bottom:2px}.step-desc{font-size:.8rem;color:var(--text-3)}.countdown{display:flex;gap:12px}.countdown-unit{text-align:center;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;min-width:60px}.countdown-value{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--cyan);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.countdown-label{font-size:.65rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.1em;margin-top:2px}.copy-box{display:flex;align-items:center;gap:0;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.copy-text{flex:1 1;font-family:var(--font-mono);color:var(--text-2);overflow:hidden;text-overflow:ellipsis}.copy-btn,.copy-text{padding:10px 14px;font-size:.8rem;white-space:nowrap}.copy-btn{background:var(--bg-2);border:none;border-left:1px solid var(--border);cursor:pointer;color:var(--text-3);font-weight:600;transition:all var(--dur)}.copy-btn:hover{background:var(--cyan-dim);color:var(--cyan)}.divider{height:1px;background:var(--border);margin:24px 0}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}.skeleton{background:linear-gradient(90deg,var(--bg-3) 0,var(--bg-2) 50%,var(--bg-3) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}.hero{padding:80px 0 60px;position:relative;text-align:center}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--cyan);background:var(--cyan-dim);border:1px solid rgba(0,240,255,.25);border-radius:20px;padding:4px 14px;margin-bottom:20px;text-transform:uppercase;letter-spacing:.08em}.hero-title{margin-bottom:16px}.hero-title .highlight{background:linear-gradient(135deg,#f59e0b,#d97706);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.1rem;color:var(--text-2);max-width:560px;margin:0 auto 32px;line-height:1.7}.wallet-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-3);border:1px solid var(--border);border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--dur);color:var(--text-2);font-family:var(--font-body)}.wallet-btn:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}.wallet-btn-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:pulse-dot 1.5s infinite}.wallet-btn-addr{font-family:var(--font-mono)}.grid-2{grid-template-columns:repeat(2,1fr);grid-gap:20px}.grid-2,.grid-3{display:grid;gap:20px}.grid-3{grid-template-columns:repeat(3,1fr);grid-gap:20px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:20px;gap:20px}@media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}.countdown{gap:8px}.countdown-unit{min-width:52px;padding:8px 10px}.candidates-grid{grid-template-columns:1fr}.nav-links{display:none}}.page-enter{animation:fadeUp .35s var(--ease) forwards}.modal-overlay{position:fixed;inset:0;background:rgba(7,11,20,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s var(--ease)}.modal{background:var(--bg-card);border:1px solid var(--border-2);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:480px;position:relative;animation:slideUp .25s var(--ease)}.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-3);cursor:pointer;font-size:1.2rem;padding:4px;transition:color var(--dur)}.modal-close:hover{color:var(--text)}.tx-success{text-align:center;padding:40px 24px}.tx-icon{width:64px;height:64px;background:var(--green-dim);border:2px solid var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin:0 auto 20px;box-shadow:0 0 24px rgba(0,232,122,.3)}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px rgba(0,240,255,.2)}50%{box-shadow:0 0 20px rgba(0,240,255,.5)}}.text-cyan{color:var(--cyan)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-amber{color:var(--amber)}.text-muted{color:var(--text-2)}.text-faint{color:var(--text-3)}.text-mono{font-family:var(--font-mono)}.text-center{text-align:center}.text-sm{font-size:.85rem}.text-xs{font-size:.775rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.p-4{padding:16px}.w-full{width:100%}.hidden{display:none}