@font-face{font-family:Kanit;font-style:normal;font-weight:300;src:url('/fonts/kanit-v17-latin-300.woff2') format('woff2');font-display:swap}
@font-face{font-family:Kanit;font-style:normal;font-weight:400;src:url('/fonts/kanit-v17-latin-regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:Kanit;font-style:normal;font-weight:600;src:url('/fonts/kanit-v17-latin-600.woff2') format('woff2');font-display:swap}
:root{font-family:Kanit,sans-serif;color:#fff;background:#13263c;font-weight:300;font-synthesis:none;--yellow:#ffe200;--blue:#00385b}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{width:100%;min-height:48px;padding:.7rem 1rem;background:var(--yellow);color:#13263c;font-weight:600;border:2px solid transparent;border-radius:4px;cursor:pointer}button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;border-color:currentColor;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #178dc3;outline-offset:3px}button[hidden],[hidden]{display:none!important}header{max-width:1050px;margin:auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}header img{display:block;width:100px;height:auto}header span{font-weight:600}main{padding:1rem 1rem 4rem}h1{font-size:clamp(1.5rem,5vw,2.2rem);line-height:1.18;font-weight:600;margin:.5rem 0 1.25rem;overflow-wrap:anywhere}h2{font-weight:600;font-size:1.25rem}p{line-height:1.5}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;font-weight:600;margin:0;color:inherit}.login-panel{background:#fff;color:#13263c;padding:clamp(1.25rem,5vw,2rem);max-width:440px;margin:1rem auto;border-top:6px solid var(--yellow);border-radius:4px}.login-panel label{display:block;font-weight:600;margin-bottom:.4rem}.login-panel input[type=text]{width:100%;min-height:50px;font-size:1.15rem;border:1px solid #65717d;border-radius:4px;padding:.65rem;text-transform:uppercase}.hint{font-size:.9rem;opacity:.85;margin:.5rem 0 1rem}.divider{display:flex;align-items:center;gap:1rem;color:#5b6672}.divider:before,.divider:after{content:'';height:1px;background:#d2d7dd;flex:1}.message:empty{display:none}.message{padding:.9rem;border-radius:4px;background:#e9f3f8;color:#13263c;overflow-wrap:anywhere}.message.error{background:#ffe7e5;color:#8b2019;border-left:4px solid #b32d23}.message.success{background:#dcf3e5;color:#16512c}#scanner{margin-top:1rem}#scan-video{width:100%;max-height:320px;object-fit:cover;background:#13263c;border-radius:4px}.intro{max-width:650px;text-align:center;margin:15vh auto}.ballot-panel{max-width:620px;margin:1rem auto}.ballot-panel>.eyebrow{color:var(--yellow)}.candidates,.ranked{padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.candidate{background:#fff;color:#13263c;border-radius:4px;padding:.75rem;overflow:hidden;position:relative}.candidate img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px}.candidate h3{font-size:1.15rem;font-weight:600;margin:.65rem 0;overflow-wrap:anywhere}.candidate a{color:inherit}.candidates .remove-button,.candidates .rank-label,.ranked .select-button{display:none}.ranked{counter-reset:rank;grid-template-columns:1fr}.ranked .candidate{counter-increment:rank;display:grid;grid-template-columns:90px 1fr;gap:.5rem 1rem;align-items:center;padding:1rem}.ranked .candidate img{grid-row:1/4;grid-column:1}.ranked .rank-label,.ranked .candidate h3{grid-column:2}.ranked .rank-label:before{content:counter(rank) '. Platz';font-weight:600}.ranked .candidate h3{margin:0}.ranked .candidate .remove-button{grid-column:2;min-height:42px;padding:.4rem}#logout-form{margin-top:2rem}#selection-status{min-height:1.4em}#submit-vote{margin-top:.5rem}@media(max-width:370px){header{padding:1rem}header span{font-size:.85rem}.candidates{gap:.6rem}.candidate{padding:.5rem}.ranked .candidate{grid-template-columns:70px 1fr}.candidate button{padding:.6rem .35rem}}@media(prefers-reduced-motion:no-preference){button{transition:filter .15s ease}}
