:root{--blue: #17458f;--blue-dark: #0c2d62;--blue-tint: #eaf0fa;--gold: #f7a81b;--gold-tint: #fff4dc;--ink: #1a2233;--muted: #4a5568;--line: #c9d3e3;--bg: #f6f8fc;--white: #fff;--danger: #a4161a;--danger-tint: #fdecec;--ok: #0f6b3a;--ok-tint: #e6f5ec;--radius: 10px;--target: 48px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:18px;line-height:1.5;color:var(--ink)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);min-width:320px}h1,h2,h3{line-height:1.25;color:var(--blue-dark);margin:0 0 .5em}h1{font-size:1.7rem}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:0 0 1em}a{color:var(--blue)}.muted{color:var(--muted)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:.5rem;top:-4rem;background:var(--white);padding:.6rem 1rem;z-index:10;border-radius:6px}.skip-link:focus{top:.5rem}:focus-visible{outline:3px solid var(--blue-dark);outline-offset:3px;box-shadow:0 0 0 6px var(--gold)}h1:focus{outline:none}.site-header{background:var(--white);color:var(--blue-dark);border-bottom:5px solid var(--gold)}.site-header .inner{max-width:60rem;margin:0 auto;padding:.6rem 1rem;display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center;justify-content:space-between}.site-header .logo{height:56px;width:auto;display:block}.site-header .sub{font-size:1rem;font-weight:600;color:var(--blue-dark)}@media (max-width: 30rem){.site-header .logo{height:44px}.site-header .sub{font-size:.9rem}}main{max-width:44rem;margin:0 auto;padding:1.5rem 1rem 3rem}main.wide{max-width:64rem}.site-footer{max-width:44rem;margin:0 auto;padding:0 1rem 2rem;font-size:.9rem;color:var(--muted)}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem}.card.accent{border-left:6px solid var(--gold)}label,.label{display:block;font-weight:600;margin-bottom:.35rem}.hint{color:var(--muted);font-size:.95rem;margin:0 0 .5rem}input[type=text],input[type=password]{width:100%;min-height:var(--target);padding:.5rem .75rem;font:inherit;border:2px solid #5b6b86;border-radius:8px;background:var(--white);color:var(--ink)}input.code-input{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:2rem;letter-spacing:.35em;text-transform:uppercase;text-align:center;max-width:15rem}input[aria-invalid=true]{border-color:var(--danger);background:var(--danger-tint)}.field-error{color:var(--danger);font-weight:600;margin:.4rem 0 0}.field-error:before{content:"Error: "}button,.button{min-height:var(--target);min-width:var(--target);padding:.6rem 1.1rem;font:inherit;font-weight:600;border-radius:8px;cursor:pointer;border:2px solid var(--blue);background:var(--white);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;text-decoration:none}button:hover{background:var(--blue-tint)}button.primary{background:var(--blue);color:var(--white)}button.primary:hover{background:var(--blue-dark)}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:hover{background:var(--danger-tint)}button.link{border:0;background:none;text-decoration:underline;min-height:var(--target);padding:.25rem .5rem}button:disabled,button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.actions .spacer{flex:1}.alert{border:2px solid;border-radius:var(--radius);padding:1rem;margin-bottom:1.25rem}.alert h2{font-size:1.1rem;margin-bottom:.25rem}.alert p:last-child{margin-bottom:0}.alert.error{border-color:var(--danger);background:var(--danger-tint)}.alert.warn{border-color:#8a5a00;background:var(--gold-tint)}.alert.info{border-color:var(--blue);background:var(--blue-tint)}.alert.ok{border-color:var(--ok);background:var(--ok-tint)}.alert.error ul{margin:.25rem 0 0;padding-left:1.2rem}.votes-banner{background:var(--blue-tint);border-left:6px solid var(--blue);border-radius:var(--radius);padding:1rem;margin-bottom:1.25rem}.votes-banner strong.n{font-size:1.25em}.ranking{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.rank-item,.candidate{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;background:var(--white);border:2px solid var(--line);border-radius:var(--radius);padding:.6rem .75rem}.rank-item{border-color:var(--blue)}.rank-num{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--blue);color:var(--white);font-weight:700;display:grid;place-items:center}.rank-name,.cand-name{flex:1 1 8rem;font-weight:600;min-width:0;overflow-wrap:anywhere}.rank-pos{display:block;font-size:.85rem;font-weight:400;color:var(--muted)}.rank-controls{display:flex;gap:.4rem;flex-wrap:wrap}.stop-line{border:2px dashed var(--line);border-radius:var(--radius);padding:.6rem .75rem;color:var(--muted);font-weight:600;margin-top:.6rem}.two-col{display:grid;gap:1.25rem}@media (min-width: 52rem){.two-col{grid-template-columns:1fr 1fr;align-items:start}}dl.summary{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem}dl.summary dt{font-weight:600}dl.summary dd{margin:0}.conf-code{font-family:ui-monospace,Consolas,monospace;font-size:1.6rem;font-weight:700;letter-spacing:.06em;color:var(--blue-dark);overflow-wrap:anywhere}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem}.stat .v{font-size:1.7rem;font-weight:700;color:var(--blue-dark)}.stat .l{color:var(--muted);font-size:.9rem}table{border-collapse:collapse;width:100%;background:var(--white)}th,td{border:1px solid var(--line);padding:.45rem .6rem;text-align:left;vertical-align:top}th{background:var(--blue-tint)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto;margin-bottom:1rem}.bar{background:var(--blue-tint);border-radius:4px;height:.7rem;min-width:4rem}.bar>span{display:block;height:100%;background:var(--blue);border-radius:4px}.tag{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.85rem;font-weight:700;border:2px solid var(--blue);color:var(--blue-dark)}.tag.gold{border-color:#8a5a00;background:var(--gold-tint);color:#5c3b00}.round{border-top:4px solid var(--gold)}@media (max-width: 30rem){:root{font-size:17px}main{padding-top:1rem}.actions button{flex:1 1 100%}.rank-controls{width:100%}.rank-controls button{flex:1}dl.summary{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.site-header,.no-print,.skip-link,.site-footer{display:none!important}body{background:#fff}.card{border:1px solid #000}}
