/* RPi Kvíz – hráč (mobil)  © Ondřej Kopp */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:#46178f;color:#fff;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.hidden{display:none!important}
header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#0003;font-weight:700}
header #b-nick{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header #b-score{background:#fff;color:#46178f;border-radius:999px;padding:3px 12px}
.conn{width:10px;height:10px;border-radius:50%;background:#7bd88f;flex:none}
.conn.off{background:#ffb020;animation:blink 1s infinite}
@keyframes blink{50%{opacity:.3}}
main{flex:1;display:flex;flex-direction:column}
.screen{flex:1;display:flex;flex-direction:column;padding:14px}
.center{align-items:center;justify-content:center;text-align:center}
.brand{font-size:2.1rem;margin:0 0 18px;letter-spacing:.5px}
.card{background:#fff;color:#1d2939;border-radius:16px;padding:20px;width:min(380px,100%);display:grid;gap:8px;text-align:left;box-shadow:0 10px 30px #0004}
.card label{font-weight:650;font-size:.95rem;color:#475467}
.card input{font-size:1.4rem;padding:12px;border:2px solid #d0d5dd;border-radius:10px;width:100%;text-align:center;font-weight:700}
.card input:focus{outline:none;border-color:#46178f}
button.big{font-size:1.3rem;font-weight:800;padding:14px;border:0;border-radius:10px;background:#1d2939;color:#fff;margin-top:6px;cursor:pointer}
button.big:disabled{opacity:.6}
.err{color:#d92d20;min-height:1.2em;margin:4px 0 0;font-weight:600}
.muted{opacity:.8}.small{font-size:.9rem}
.card .muted{color:#667085;opacity:1;min-height:1.1em;text-align:center}
#msg{max-width:520px}
#msg h2{font-size:2rem;margin:.2em 0}
#msg .big{font-size:3.2rem;font-weight:900;margin:.15em 0}
#msg p{font-size:1.15rem;line-height:1.4;margin:.4em 0}
#msg .pill{display:inline-block;background:#fff;color:#46178f;border-radius:999px;padding:6px 16px;font-weight:800;margin-top:10px}
.spinner{width:48px;height:48px;border:5px solid #fff4;border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin:16px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.qhead{display:flex;justify-content:space-between;font-weight:700;opacity:.9;margin-bottom:6px}
.qtime{background:#fff;color:#46178f;border-radius:999px;padding:2px 12px;min-width:48px;text-align:center}
.qtext{font-size:1.1rem;font-weight:650;margin:2px 0 10px;line-height:1.3}
.opts{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:55vh}
.opts.two{grid-template-columns:1fr}
.opt{border:0;border-radius:14px;color:#fff;font-size:1.15rem;font-weight:750;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;box-shadow:0 5px 0 #0003;cursor:pointer;min-height:90px;overflow:hidden;word-break:break-word}
.opt:active{transform:translateY(3px);box-shadow:0 2px 0 #0003}
.opt .sym{font-size:2.4rem;line-height:1}
.opt img{max-width:100%;max-height:22vh;border-radius:8px;background:#fff}
.opt.red{background:#e21b3c}.opt.blue{background:#1368ce}.opt.yellow{background:#d89e00}.opt.green{background:#26890c}
.opt.dim{opacity:.35}
.opt.chosen{outline:5px solid #fff}
body.ok{background:#26890c}body.bad{background:#c41230}body.neutral{background:#46178f}body.win{background:linear-gradient(160deg,#d89e00,#e21b3c)}
.podium{display:flex;align-items:flex-end;justify-content:center;gap:8px;margin:18px 0}
.podium div{background:#fff2;border-radius:10px 10px 0 0;padding:8px;width:31%;font-weight:700;word-break:break-word}
.podium .p1{height:150px;background:#d89e00}.podium .p2{height:115px;background:#8e9aaf}.podium .p3{height:90px;background:#a0522d}
footer.sig{text-align:center;font-size:.75rem;opacity:.7;padding:8px}
footer.sig a{color:#fff}
@media (min-width:700px){.opts{min-height:50vh}.opt{font-size:1.4rem}}

/* ---- 1.1.0: dotazník ---- */
#msg .sv-form{text-align:left;width:min(560px,100%);margin:0 auto}
.sv-form h2{text-align:center}
.sv-q{background:#fff;color:#1d2939;border-radius:14px;padding:14px;margin:0 0 12px;box-shadow:0 4px 14px #0003}
.sv-qt{font-weight:750;font-size:1.05rem;margin-bottom:8px}
.sv-q textarea{width:100%;font:inherit;font-size:1rem;padding:10px;border:2px solid #d0d5dd;border-radius:10px;resize:vertical}
.sv-q textarea:focus{outline:none;border-color:#46178f}
.sv-cnt{text-align:right;font-size:.8rem;color:#667085}
.sv-stars{display:flex;justify-content:space-between;gap:4px}
.sv-stars button{flex:1;font-size:2.3rem;line-height:1;background:none;border:0;color:#d0d5dd;cursor:pointer;padding:4px 0}
.sv-stars button.on{color:#f5b301}
.sv-choice{display:grid;gap:8px}
.sv-choice .opt{min-height:52px;flex-direction:row;justify-content:flex-start;font-size:1.05rem;box-shadow:none}
.sv-choice .opt .sym{font-size:1.3rem}
.sv-choice .opt.chosen{outline:4px solid #1d2939}
.sv-ok{color:#7bd88f;font-weight:800;text-align:center;min-height:1.2em}
#msg .sv-form .err{color:#ffb4b4;text-align:center}
#msg .sv-form small{opacity:.85}
