:root{font-family:system-ui,sans-serif;color:#eff5f1;background:#0e1718;color-scheme:dark}*{box-sizing:border-box}body{margin:0}main{max-width:880px;margin:auto;padding:40px 20px}.eyebrow{color:#a4f473;letter-spacing:.15em;font-weight:800}h1{font-size:clamp(2rem,6vw,3.5rem);line-height:1.05}section{background:#192729;border:1px solid #3d5655;border-radius:20px;padding:24px;margin:24px 0}label{display:block;margin:14px 0}input,select,button{font:inherit;border-radius:10px;padding:12px;border:1px solid #66817a}input{display:block;width:100%;margin-top:6px;background:#101c1d}button{background:#a4f473;color:#102014;font-weight:750;cursor:pointer;margin:4px}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #fff;outline-offset:3px}#buzz{width:100%;min-height:150px;font-size:3rem;margin:24px 0 8px;background:#fa805d;color:#21100a}li{padding:12px 0;border-bottom:1px solid #3d5655}header{display:flex;align-items:center;justify-content:space-between;gap:10px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem;max-height:380px;overflow:auto}#error{color:#ffbba6}details{margin-top:24px}p{line-height:1.5}select{margin:4px;background:#101c1d}#connection{color:#a4f473}[hidden]{display:none!important}
aside{border-left:4px solid #f2b45c;padding:1rem;background:#29251c;color:#ffe2b5}textarea{display:block;width:100%;box-sizing:border-box;background:#111827;color:#edf2ff;border:1px solid #536077;border-radius:.5rem;padding:.75rem;font:14px monospace}#settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}#settings input[type=checkbox]{width:auto;display:inline-block;margin-left:1rem}.question-card{padding:1rem;border:1px solid #475569;border-radius:1rem;margin:1rem 0}#solution{white-space:pre-wrap}#controls,#answer-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}pre{overflow:auto;max-height:30rem}button{min-height:44px}input,select,textarea{max-width:100%}li{overflow-wrap:anywhere}

/* Explicit control contrasts, independent of browser defaults. */
input,select,textarea{color:#eff5f1!important;-webkit-text-fill-color:#eff5f1;background:#101c1d!important;caret-color:#fff}input:hover,input:focus,input:active,select:focus,textarea:focus{color:#eff5f1!important;background:#101c1d!important}input::placeholder,textarea::placeholder{color:#b9cdc7;opacity:1}option{color:#eff5f1;background:#101c1d}input:-webkit-autofill{-webkit-text-fill-color:#eff5f1!important;box-shadow:0 0 0 1000px #101c1d inset!important}button:hover,button:focus{background:#b9ff90;color:#102014}button:active{background:#8bd95c;color:#102014}button:disabled{opacity:1;background:#344945;color:#d3e1dc;border-color:#718b83}#buzz:hover,#buzz:focus{background:#ffa283;color:#21100a}#buzz:disabled{background:#49352e;color:#f0d1c3}a{color:#b9ff90}main{max-width:1100px}h1{margin:.75rem 0 1.5rem}section{box-shadow:0 12px 30px #0002}label{color:#eff5f1}input[type=checkbox]{accent-color:#a4f473}@media(max-width:560px){main{padding:20px 12px}section{padding:16px;border-radius:14px}header{flex-wrap:wrap}#settings{grid-template-columns:minmax(0,1fr)}#controls button,#answer-controls button{flex:1 1 130px}}

#players{list-style:none;padding:0}.score-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem;border:1px solid #52706a;border-radius:10px;margin:.5rem 0;background:#101c1d}.score-row strong{flex:1;min-width:100px}.score-value{color:#b9ff90;font-size:1.2rem;font-weight:800}.score-row small{color:#c2d4ce}
