:root{--bg:#f6f7fb;--card:#fff;--ink:#14213d;--muted:#5b6475;--pri:#0b6e4f;--pri2:#0a5a41;--warn:#b45309;--bad:#b91c1c;--line:#dfe3ec;--blue:#1d4ed8}
*{box-sizing:border-box}html{font-size:17px}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,sans-serif;background:var(--bg);color:var(--ink);line-height:1.45}
.pilot{background:#fde68a;color:#78350f;text-align:center;padding:.45rem .8rem;font-weight:700;font-size:.85rem;border-bottom:2px solid #f59e0b}
header.top{background:var(--ink);color:#fff;padding:.7rem 1rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
header.top a{color:#fff;text-decoration:none;font-weight:600}header.top .brand{font-size:1.1rem;margin-right:auto}
header.top nav{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.92rem}
.lang{display:flex;gap:.25rem}.lang button{background:transparent;border:1px solid #94a3b8;color:#fff;border-radius:6px;padding:.15rem .5rem;cursor:pointer;font-size:.8rem}
.lang button[aria-pressed=true]{background:#fff;color:var(--ink)}
main{max-width:980px;margin:0 auto;padding:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.1rem;margin:0 0 1rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
h1{font-size:1.5rem;margin:.2rem 0 .8rem}h2{font-size:1.2rem;margin:.1rem 0 .7rem}h3{font-size:1.02rem;margin:.6rem 0 .4rem}
label{display:block;font-weight:600;margin:.6rem 0 .25rem}
input,select,textarea{width:100%;font:inherit;padding:.7rem;border:1px solid #b8c0d0;border-radius:10px;background:#fff}
textarea{min-height:6rem}
button,.btn{font:inherit;font-weight:700;border:0;border-radius:10px;padding:.8rem 1.1rem;background:var(--pri);color:#fff;cursor:pointer;min-height:48px;display:inline-block;text-decoration:none}
button:hover,.btn:hover{background:var(--pri2)}button.sec,.btn.sec{background:#e8ecf4;color:var(--ink)}button.warn{background:var(--warn)}button.bad{background:var(--bad)}
button:disabled{opacity:.55;cursor:wait}
:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}
.row{display:flex;gap:.7rem;flex-wrap:wrap}.row>*{flex:1 1 220px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem}
.stat{background:#f1f5f9;border-radius:12px;padding:.7rem}.stat b{display:block;font-size:1.5rem}.stat span{color:var(--muted);font-size:.85rem}
.cand{display:flex;align-items:center;gap:.8rem;border:2px solid var(--line);border-radius:12px;padding:.9rem;margin:.5rem 0;cursor:pointer;font-weight:600}
.cand input{width:1.6rem;height:1.6rem;flex:0 0 auto}.cand small{display:block;color:var(--muted);font-weight:400}
.cand:has(input:checked){border-color:var(--pri);background:#ecfdf5}
.code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05rem;word-break:break-all;background:#0f172a;color:#a7f3d0;padding:.8rem;border-radius:10px;letter-spacing:.04em}
.big{font-size:2.2rem;letter-spacing:.2em;text-align:center}
.muted{color:var(--muted)}.small{font-size:.85rem}.ok{color:var(--pri)}.err{color:var(--bad);font-weight:600}
.msg{padding:.7rem;border-radius:10px;margin:.6rem 0}.msg.err{background:#fee2e2}.msg.ok{background:#dcfce7;color:#14532d}.msg.info{background:#e0f2fe;color:#0c4a6e}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.45rem;border-bottom:1px solid var(--line);vertical-align:top}
.bar{height:1.1rem;background:#e2e8f0;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--pri)}
.pill{display:inline-block;padding:.1rem .55rem;border-radius:99px;font-size:.78rem;font-weight:700;background:#e2e8f0}
.pill.open{background:#dcfce7;color:#166534}.pill.closed{background:#fee2e2;color:#991b1b}.pill.tallied{background:#dbeafe;color:#1e40af}.pill.up{background:#dcfce7}.pill.down{background:#fee2e2}
.steps{display:flex;gap:.3rem;margin-bottom:.8rem}.steps i{flex:1;height:6px;border-radius:3px;background:#e2e8f0}.steps i.on{background:var(--pri)}
.hidden{display:none!important}
footer{text-align:center;color:var(--muted);font-size:.8rem;padding:1.5rem 1rem}
pre{white-space:pre-wrap;word-break:break-all;background:#0f172a;color:#e2e8f0;padding:.8rem;border-radius:10px;font-size:.82rem}
@media (max-width:600px){html{font-size:16px}main{padding:.6rem}.card{padding:.85rem}}
