:root{--navy:#0a2c64;--navy2:#09234e;--red:#cb0d1b;--gold:#f2ba2b;--cream:#fff8e9;--ink:#17243c;--muted:#65748c;--line:#e3e9f2;--bg:#f5f7fb;--green:#17765d;--shadow:0 16px 44px rgba(14,35,74,.09);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);line-height:1.5}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.56}input,select{min-width:0}img{max-width:100%}.container{max-width:1170px;margin:auto;padding:0 24px}.top-strip{height:6px;background:linear-gradient(90deg,var(--red) 0 48%,var(--gold) 48% 78%,var(--navy) 78%)}.header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:88px}.identity{display:flex;align-items:center;gap:13px;text-decoration:none}.identity-logo{width:62px;height:62px;object-fit:contain}.identity-text{display:flex;flex-direction:column;line-height:1.22}.identity-text strong{font-size:15px;letter-spacing:.01em;color:var(--navy2)}.identity-text small{color:var(--muted);font-size:11px;letter-spacing:.06em;margin-top:5px;font-weight:800}.nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nav a{font-size:13px;font-weight:750;text-decoration:none;padding:11px 14px;border-radius:10px;color:#52617a}.nav a.active,.nav a:hover{background:#edf2fa;color:var(--navy)}.nav a.admin-link{border:1px solid var(--line)}.hero{position:relative;overflow:hidden;background:linear-gradient(112deg,#09244f 0%,#103e84 65%,#0a2c64 100%);color:white;padding:45px 0}.hero:after{content:"";position:absolute;right:-160px;top:-240px;width:600px;height:600px;border:100px solid rgba(255,255,255,.025);border-radius:50%;pointer-events:none}.hero-grid{display:grid;grid-template-columns:1.65fr 1fr;align-items:center;gap:45px;position:relative;z-index:1}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:900}.hero h1{font-size:clamp(27px,4vw,43px);line-height:1.1;letter-spacing:-.035em;margin:12px 0}.hero p{color:#dbe7fa;max-width:640px;font-size:15px}.hero-points{display:flex;gap:15px;flex-wrap:wrap;margin-top:25px}.hero-points span{display:inline-flex;gap:7px;align-items:center;font-size:12px;font-weight:750;color:white}.hero-points b{width:7px;height:7px;background:var(--gold);border-radius:50%}.hero-emblem{width:220px;height:220px;object-fit:contain;background:white;border-radius:50%;padding:10px;border:6px solid rgba(255,255,255,.23);display:block;margin:auto;box-shadow:0 18px 40px rgba(0,0,0,.2)}.section{padding:30px 0 64px}.panel{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:28px}.panel + .panel{margin-top:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.section-heading h2,.panel h2{font-size:21px;color:var(--navy2);margin:0 0 5px;letter-spacing:-.025em}.section-heading p,.panel .subtitle{color:var(--muted);font-size:13px;margin:0}.status{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;letter-spacing:.02em;border-radius:100px;padding:8px 12px;border:1px solid}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status-open{background:#e7f7ed;color:#166c3b;border-color:#c9e9d5}.status-draft{background:#fff6e4;color:#966207;border-color:#f3deaa}.status-closed{background:#edf2f8;color:#536781;border-color:#dce4ee}.stepper{display:flex;gap:10px;margin-bottom:20px}.step{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#91a0b6}.step i{font-style:normal;display:grid;place-items:center;width:27px;height:27px;background:#eaf0f8;color:#8492a8;border-radius:100px}.step.current{color:var(--navy)}.step.current i,.step.done i{background:var(--navy);color:white}.step.done{color:var(--green)}.flex-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.form-row{display:grid;grid-template-columns:1fr auto;gap:12px}.field{display:flex;flex-direction:column;gap:7px;margin-top:17px}.field label{font-size:12px;font-weight:850;color:#35445b}.input{width:100%;padding:13px 14px;border:1px solid #ced9e8;background:white;color:var(--ink);border-radius:10px;outline:none;font-weight:600}.input:focus{border-color:#5077bd;box-shadow:0 0 0 3px rgba(33,92,180,.12)}.hint{font-size:12px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;min-height:44px;border-radius:10px;background:var(--navy);border:1px solid var(--navy);color:#fff;text-decoration:none;font-size:13px;font-weight:850;transition:transform .1s,background .2s}.btn:hover:not(:disabled){background:#10438b;transform:translateY(-1px)}.btn-primary{background:var(--red);border-color:var(--red)}.btn-primary:hover:not(:disabled){background:#a90917}.btn-light{background:#fff;color:var(--navy);border-color:var(--line)}.btn-light:hover:not(:disabled){background:#eff4fa}.btn-outline{background:transparent;color:var(--navy);border-color:#cdd8e9}.btn-ghost{background:transparent;color:var(--muted);border-color:transparent}.btn-small{padding:8px 12px;min-height:35px;font-size:12px}.btn-danger{background:#fff0f0;color:#b51525;border-color:#f0c8cc}.full{width:100%}.note{border-radius:12px;padding:13px 15px;font-size:13px;background:#eef4fb;color:#25436b;border:1px solid #dbe6f5;margin:17px 0}.note-warning{background:#fff7e4;border-color:#f0dbac;color:#815807}.note-danger{background:#ffeff0;border-color:#f2ced2;color:#922a39}.note-success{background:#e9f9f0;border-color:#cdeedb;color:#17643f}.error{color:#b51b2e;font-size:12px;margin-top:8px;font-weight:700;min-height:14px}.candidates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.candidate{position:relative;border:2px solid var(--line);border-radius:15px;background:white;overflow:hidden;display:flex;flex-direction:column;text-align:left;padding:0;box-shadow:0 3px 10px rgba(10,37,74,.04);transition:all .15s}.candidate:hover{transform:translateY(-2px);box-shadow:0 11px 25px rgba(10,37,74,.10)}.candidate.selected{border-color:var(--red);box-shadow:0 0 0 3px rgba(203,13,27,.12)}.candidate .photo{position:relative;aspect-ratio:4/4;background:#e8edf5;overflow:hidden}.candidate .photo img{width:100%;height:100%;object-fit:cover}.candidate .number{position:absolute;top:11px;left:11px;background:white;color:var(--navy);border-radius:8px;padding:6px 10px;font-size:11px;font-weight:950;box-shadow:0 2px 10px #0b2b6340}.candidate .check{position:absolute;top:10px;right:10px;border:2px solid white;border-radius:100px;background:#fff;color:#ccd5e2;width:28px;height:28px;display:grid;place-items:center;font-weight:900;font-size:17px;box-shadow:0 2px 9px #0b2b6340}.candidate.selected .check{background:var(--red);color:#fff}.candidate-body{padding:14px 14px 17px;flex:1}.candidate-body b{font-size:14px;color:var(--navy2);display:block;line-height:1.3}.candidate-body small{font-size:11px;color:var(--muted);display:block;margin-top:5px}.vote-bottom{position:sticky;bottom:0;z-index:9;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -15px 35px #102c5c0c}.vote-bottom .container{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:16px}.counter{font-weight:900;color:var(--navy);font-size:17px}.counter strong{color:var(--red)}.counter small{display:block;font-weight:600;color:var(--muted);font-size:11px}.progress{height:7px;background:#e6ecf5;border-radius:100px;overflow:hidden;margin-top:7px;width:190px}.progress span{display:block;height:100%;background:var(--red);transition:width .2s}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-name{background:#f4f7fb;border:1px solid var(--line);padding:14px;border-radius:11px;font-size:13px;font-weight:800}.summary-name em{font-style:normal;display:block;color:var(--red);font-size:11px;margin-bottom:4px}.receipt{text-align:center;max-width:620px;margin:auto;padding:35px 0}.receipt-icon{font-size:45px;display:inline-grid;place-items:center;background:#e2f7ed;color:#087144;width:92px;height:92px;border-radius:50%;margin-bottom:18px}.receipt-code{display:inline-block;margin:15px auto;background:#f0f5fb;border:1px dashed #9bb1ce;border-radius:10px;padding:12px 20px;font-weight:950;font-size:19px;letter-spacing:.08em;color:var(--navy)}.muted{color:var(--muted)}.hidden{display:none!important}.footer{background:#081d42;color:#d9e5f5;padding:26px 0;font-size:12px}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px}.footer strong{color:white}.page-title{margin:30px 0 23px}.page-title h1{color:var(--navy2);font-size:30px;letter-spacing:-.03em;margin:0 0 8px}.page-title p{color:var(--muted);font-size:14px;margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:18px 0 23px}.stat{padding:21px;background:white;border:1px solid var(--line);border-radius:14px}.stat small{display:block;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.stat strong{display:block;margin:6px 0 0;font-size:29px;line-height:1.15;color:var(--navy2);letter-spacing:-.03em}.stat .accent{color:var(--red)}.leaderboard{display:flex;flex-direction:column;gap:12px}.result-row{display:grid;grid-template-columns:44px 44px minmax(145px,1fr) minmax(100px,1.3fr) 78px;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:12px}.result-row.winner{background:#fffbf0;border-color:#f0e0b8}.rank{display:grid;place-items:center;background:#ecf1f8;color:var(--navy);width:35px;height:35px;border-radius:10px;font-weight:950;font-size:13px}.result-row.winner .rank{background:#ffebaf;color:#85540b}.result-photo{width:44px;height:44px;object-fit:cover;border-radius:9px;background:#e8edf5}.result-name b{display:block;font-size:12px}.result-name small{display:block;color:var(--muted);font-size:11px}.bar{height:11px;background:#edf2f8;border-radius:100px;overflow:hidden}.bar span{display:block;height:100%;background:#3e72b7;border-radius:100px}.winner .bar span{background:linear-gradient(90deg,#d21f29,#f2ba2b)}.result-votes{text-align:right;font-weight:950;color:var(--navy2);font-size:17px}.result-votes small{display:block;color:var(--muted);font-size:10px;font-weight:600}.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;margin-bottom:55px}.admin-menu{align-self:start;position:sticky;top:16px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:9px}.admin-menu button{width:100%;text-align:left;border:0;background:none;font-size:13px;font-weight:800;padding:12px 13px;border-radius:9px;color:#65758d}.admin-menu button.active{background:#edf3fb;color:var(--navy)}.admin-menu button:hover{background:#f2f5fa}.admin-main .panel{box-shadow:none}.admin-panel{display:none}.admin-panel.active{display:block}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th{text-align:left;color:var(--muted);font-size:11px;padding:12px;border-bottom:1px solid var(--line)}.admin-table td{padding:11px 12px;border-bottom:1px solid #edf1f6;vertical-align:middle}.table-wrap{overflow:auto}.mini-photo{width:42px;height:45px;object-fit:cover;border-radius:7px;vertical-align:middle}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.actions{display:flex;gap:7px;flex-wrap:wrap}.login{max-width:480px;margin:55px auto}.empty{text-align:center;padding:35px 18px;background:#f7f9fd;color:var(--muted);border:1px dashed #cad6e8;border-radius:13px;font-size:13px}.loader{min-height:160px;display:grid;place-items:center;color:var(--muted);font-weight:650;font-size:13px}.pill{display:inline-block;background:#f1f4f9;border-radius:100px;padding:4px 9px;font-size:11px;font-weight:900;color:var(--navy)}.divider{height:1px;background:var(--line);margin:18px 0}.checkbox-control{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;margin:12px 0}.checkbox-control input{width:16px;height:16px;accent-color:var(--navy)}.toast{position:fixed;z-index:300;right:20px;bottom:20px;max-width:390px;border-radius:11px;background:#102e5a;color:white;padding:15px 17px;box-shadow:var(--shadow);font-size:13px;font-weight:700}.toast.error-toast{background:#b52132}.tabs-info{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:13px}.small{font-size:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}.modal-backdrop{position:fixed;z-index:99;inset:0;background:#071a3eb0;display:grid;place-items:center;padding:15px}.modal{max-width:630px;width:100%;max-height:90vh;overflow:auto;background:white;padding:28px;border-radius:17px;box-shadow:0 30px 80px #0004}.modal h2{margin-top:0;color:var(--navy)}.code-input{text-transform:uppercase;letter-spacing:.08em}.demo-banner{background:#fff0c1;border-bottom:2px solid #c9981c;padding:10px 20px;text-align:center;font-size:12px;font-weight:900;color:#754e04}@media(max-width:900px){.candidates{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-grid{grid-template-columns:1.2fr .8fr}.hero-emblem{height:180px;width:180px}.stats{grid-template-columns:repeat(2,1fr)}.admin-layout{grid-template-columns:1fr}.admin-menu{position:static;display:flex;overflow:auto}.admin-menu button{white-space:nowrap;width:auto}.result-row{grid-template-columns:33px 42px minmax(100px,1fr) 110px 64px;gap:8px}}@media(max-width:660px){.container{padding:0 16px}.header-inner{min-height:75px}.identity-logo{width:45px;height:45px}.identity-text strong{font-size:11px}.identity-text small{font-size:9px}.nav{gap:0}.nav a{padding:8px;font-size:11px}.nav .admin-link{display:none}.hero{padding:30px 0}.hero-grid{grid-template-columns:1fr}.hero-grid .hero-emblem{display:none}.hero h1{font-size:28px}.hero-points{margin-top:15px}.section{padding:18px 0 45px}.panel{padding:19px;border-radius:14px}.section-heading{flex-wrap:wrap}.candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.candidate-body{padding:11px}.candidate-body b{font-size:12px}.candidate-body small{font-size:10px}.form-row{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.vote-bottom .container{min-height:85px}.vote-bottom .btn{padding:11px}.progress{width:135px}.summary-grid{grid-template-columns:1fr 1fr}.page-title h1{font-size:26px}.stats{gap:9px}.stat{padding:15px}.stat strong{font-size:24px}.result-row{grid-template-columns:28px 39px 1fr 60px;gap:7px;padding:8px}.result-row .bar{display:none}.result-photo{width:37px;height:39px}.result-name b{font-size:11px}.result-votes{font-size:15px}.footer-inner{display:block}.modal{padding:18px}}
