:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#192d3e;background:#f3f6f8;color-scheme:light;--accent:#147b6d;--line:#dbe5ec}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:13px;background:#edf3f6;color:inherit;padding:11px 17px;min-height:44px;font-weight:650;touch-action:manipulation}.primary{background:var(--accent);border-color:var(--accent);color:white}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #78cabc;outline-offset:3px}p{line-height:1.5}h1,h2,p{margin:0 0 16px}h1{font-size:1.9rem;letter-spacing:-.04em}h2{font-size:1.4rem}.muted{color:#607689}.shell{max-width:540px;margin:auto;padding:0 12px 24px}.topbar{height:48px;display:flex;align-items:center;gap:5px;position:relative;z-index:3}.identity{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:650}.topbar>button{background:transparent;border:0;padding:8px;font-size:.83rem}.topbar select{border:0;background:transparent;width:48px;padding:5px;color:inherit}.topbar summary{list-style:none;cursor:pointer;width:40px;height:40px;display:grid;place-items:center;font-size:1.4rem}.topbar summary::-webkit-details-marker{display:none}.menu{position:absolute;right:0;top:44px;padding:6px;min-width:205px;background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px #192d3e20;z-index:4}.menu button,.menu a{display:block;text-align:left;width:100%;border:0;background:white;color:inherit;text-decoration:none;padding:12px;border-radius:10px;font-size:.92rem}.menu :is(button,a):hover{background:#edf3f6}.card{background:white;border:1px solid var(--line);border-radius:22px;padding:24px;margin-top:8px}.eyebrow{font-size:.8rem;color:#607689}.intro-title{font-size:2.2rem;line-height:1.12}.stack{display:grid;gap:14px}label{display:grid;gap:7px;font-size:.9rem;font-weight:600}input{min-width:0;width:100%;border:1px solid var(--line);border-radius:12px;padding:13px;background:white}.mode{display:flex;gap:8px;margin-bottom:18px}.mode button{flex:1}.mode [aria-pressed=true]{background:var(--accent);color:white}.pin{position:relative;height:55px}.pin input{position:absolute;inset:0;opacity:0;font-size:20px;cursor:text}.pin-cells{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;height:100%;pointer-events:none}.pin-cells span{display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:#f4f8fa;font:700 1.5rem ui-monospace,monospace}.pin:focus-within .pin-cells span.active{border-color:var(--accent);box-shadow:0 0 0 2px #78cabc}.code{font:700 2rem ui-monospace,monospace;letter-spacing:.14em;text-align:center;padding:20px 0;user-select:all}.roster{list-style:none;padding:0;display:grid;gap:8px}.roster li{background:#edf3f6;border-radius:12px;padding:12px}.puzzle-title{font-size:1.2rem;margin:2px 6px 6px}.board{border:1px solid var(--line);border-radius:20px;background:white;overflow:hidden}.board iframe{display:block;width:100%;border:0;height:540px;min-height:300px}.status{color:#607689;font-size:.85rem;margin:8px 6px;min-height:0}.status:empty{display:none}.banner{background:#fff0ed;border-radius:12px;padding:12px;margin:8px 0;font-size:.9rem}.actions{display:flex;gap:10px;margin-top:18px}.actions>*{flex:1}dialog{border:1px solid var(--line);border-radius:24px;padding:24px;max-width:calc(100vw - 24px);width:440px;color:inherit;box-shadow:0 16px 60px #192d3e30}dialog::backdrop{background:#192d3e60}dialog ul{list-style:none;padding:0;display:grid;gap:10px}dialog h3{text-transform:uppercase;font-size:.75rem;letter-spacing:.07em;color:#607689;margin:18px 0 10px}.rule-row{display:flex;align-items:center;gap:12px;padding:8px;background:#f4f8fa;border-radius:12px}.rule-row span:first-child{font-size:1.4rem}.text-link{color:var(--accent);font-weight:600}.test-grid{display:grid;grid-template-columns:repeat(4,minmax(280px,1fr));gap:8px}.test-grid>iframe{width:100%;height:calc(100dvh - 110px);border:1px solid var(--line);border-radius:16px;background:#f3f6f8}.test-parent{max-width:none}.test-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:8px}.test-toolbar button{font-size:.8rem;min-height:34px;padding:6px 10px}.test-toolbar [aria-pressed=true]{background:var(--accent);color:white}.progress{height:3px;background:#e2ebe9;border-radius:4px;margin-bottom:6px}.progress span{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .2s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@media(max-width:360px){.shell{padding:0 8px 20px}.card{padding:20px}.topbar>button{padding:6px}.pin-cells{gap:4px}}

.small-help{border:0;background:transparent;color:var(--accent);font-size:.75rem;padding:0 6px;min-height:22px;margin-bottom:3px}

.join-steps{padding-left:22px;margin:0 0 20px;font-size:.9rem;line-height:1.5;color:#607689}.join-steps li+li{margin-top:8px}

.welcome-steps{padding-left:24px;margin:22px 0;line-height:1.5}.welcome-steps li{padding-left:4px}.welcome-steps li+li{margin-top:18px}.welcome-steps li::marker{color:var(--accent);font-weight:700}.welcome-steps h2{font-size:1rem;margin-bottom:5px}.welcome-steps p{font-size:.94rem;margin:0}#welcomeContinue{width:100%}
@media(prefers-color-scheme:dark){:root:has(#welcome:not([hidden])){color:#e5edf3;background:#101820;color-scheme:dark;--accent:#238f7f;--line:#344652}#welcome{background:#192630}#welcome .eyebrow{color:#a7bac8}.welcome-steps li::marker{color:#66c9b9}}

#welcome .eyebrow a{color:inherit;text-underline-offset:3px}#welcome .eyebrow a:hover{color:var(--accent)}
/* 19. 10. 2026: vymazanie kódu, oddelený reset, výrazné hlasovanie o resete */
.text-button{justify-self:start;background:transparent;border:0;padding:6px 2px;min-height:0;color:var(--accent);font-weight:600;font-size:.88rem}.menu-sep{border:0;border-top:1px solid var(--line);margin:8px 6px}.menu .danger{color:#b42318;font-weight:650}dialog.danger{border:2px solid #b42318}dialog.danger h2{color:#b42318}dialog.danger #voteYes{background:#b42318;border-color:#b42318}.danger-note{background:#fdecea;border-radius:12px;padding:12px;font-weight:600;color:#7a1a12}
/* 19. 10. 2026: medzihra, spoločný odpočet, pošťuchnutie */
.lobby{margin-top:8px}.lobby h2{margin-bottom:8px}.lobby h3{text-transform:uppercase;font-size:.75rem;letter-spacing:.07em;color:#607689;margin:18px 0 10px}.lobby ul{list-style:none;padding:0;display:grid;gap:8px;margin:0 0 16px}.lobby-team li{display:flex;align-items:center;gap:10px;justify-content:space-between;background:#f4f8fa;border-radius:12px;padding:10px 12px}.lobby-team .who{font-weight:650}.lobby-team .state{color:#607689;font-size:.9rem}.lobby-team .ready .state{color:var(--accent);font-weight:650}.lobby-team .away .state{color:#b42318;font-weight:650}.lobby-team button{min-height:36px;padding:6px 10px;font-size:.85rem}#lobbyReady{width:100%}.lobby .muted{margin:10px 0 0;font-size:.85rem}.board-wrap{position:relative}.countdown{position:absolute;inset:0;display:grid;place-items:center;background:#ffffffd9;border-radius:20px;font:800 4.5rem system-ui,sans-serif;color:var(--accent);z-index:2}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#192d3e;color:white;padding:12px 18px;border-radius:14px;font-weight:650;z-index:20;box-shadow:0 10px 30px #192d3e40;max-width:90vw;text-align:center}
.lobby-team button{white-space:nowrap;flex:none}.lobby-team .state{flex:1;text-align:right}
/* 19. 10. 2026: výhra ako lišta dole (nemodálne okno) – nezakrýva výsledok hádanky */
#successDialog[open]{position:fixed;inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px;margin:0 auto;max-width:516px;width:auto;z-index:10;display:grid;grid-template-columns:1fr;gap:6px;padding:14px 16px;border:2px solid var(--accent);background:#eaf6f3;box-shadow:0 -6px 30px #192d3e30;animation:liste-hore .35s ease-out}#successDialog h2{font-size:1.1rem;margin:0;color:var(--accent)}#successDialog p{margin:0;font-size:.88rem;color:#3d5566}#successDialog .actions{margin-top:6px}@keyframes liste-hore{from{transform:translateY(120%);opacity:0}to{transform:none;opacity:1}}body:has(#successDialog[open]) .shell{padding-bottom:170px}
/* 23. 10. 2026: Vytvoriť tím / Pripojiť sa sú rovnocenné – vybraná voľba je len orámovaná, plná zelená patrí jedinému tlačidlu akcie. Riadky medzihry majú pevnú výšku, tlačidlo Pošťuchnúť ich neroztiahne. */
.mode [aria-pressed=true]{background:#e7f3ef;color:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.lobby-team li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:10px;row-gap:2px;align-items:center;height:62px;padding:8px 12px}.lobby-team .who,.lobby-team .state{grid-column:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.lobby-team .state{font-size:.82rem}.lobby-team li button{grid-column:2;grid-row:1/3}
/* 26. 10. 2026: hláška (napr. pošťuchnutie) hore pod lištou – dole zakrývala tlačidlo Som pripravený */
.toast{top:56px;bottom:auto}
/* 26. 10. 2026: víťazná obrazovka – pohár a konfety */
#finish{text-align:center}#finishTitle::before{content:"🏆";display:block;font-size:4.5rem;line-height:1.1;margin-bottom:8px;animation:pohar .9s cubic-bezier(.2,1.6,.4,1) both}@keyframes pohar{from{transform:scale(.2) rotate(-25deg);opacity:0}to{transform:none;opacity:1}}
.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:30}.confetti i{position:absolute;top:-16px;width:9px;height:14px;border-radius:2px;animation:konfeta linear both}@keyframes konfeta{to{transform:translate(var(--drift),110vh) rotate(var(--spin))}}
