/* Odprawa na telefonie (propozycje/odprawa-telefon, koncepcja B): sala z monitorem misji i Pawłem, pulpit poczekalni (kod, kamery kabin, interkom, przełączniki)
   i pulpit trwającej odprawy (ekran misji, interkom, plan misji, załoga). Sala z boku: scena-tel.js odprawaNakladka, elementy w px sali (.tsk, skalowane transformem). */

/* ---------- sala: monitor misji, Paweł, otwarta winda, tabliczki ---------- */
.tmon{position:absolute;overflow:hidden;background:#05070f}
.tsk .tmon{z-index:1}
.tmon>*{position:absolute}
.tmon img{max-width:none;image-rendering:pixelated}
.tmon .emk{display:block}
.tmon .emd{overflow:hidden}
.tmon .emd img{position:absolute;top:0;height:100%;width:50%}
.tmon .emd .l{left:0}.tmon .emd .p{right:0}
.tmon .emsl{inset:0}
.tmon .emsl>img{position:absolute;inset:0;width:100%;height:100%}
.tmon .emfala{position:absolute;left:36.25%;top:28.15%;width:27.71%;height:25.93%}
.tmon .emfala img{position:absolute;inset:0;width:100%;height:100%}
.tmon .emfala .f1,.tmon .emfala .f2,.tmon .emfala .f3,.tmon .emfala .f4,.tmon .mowi .emfala .f0{opacity:0}
.tmon .mowi .emfala .f1,.tmon .mowi .emfala .f2,.tmon .mowi .emfala .f3,.tmon .mowi .emfala .f4{animation:emFala .6s steps(1) infinite}
.tmon .mowi .emfala .f2{animation-delay:-.45s}.tmon .mowi .emfala .f3{animation-delay:-.3s}.tmon .mowi .emfala .f4{animation-delay:-.15s}
@keyframes emFala{0%{opacity:1}25%,100%{opacity:0}}
.tmon .emszum{inset:0;background:url(img/orbita/brief/szum.webp) 0 0/120px 70px;image-rendering:pixelated;animation:emSzum .3s steps(3) infinite}
@keyframes emSzum{to{background-position:-60px -35px}}
/* linie obrazu i odcień kamery tylko w obrębie monitora (przycięte) */
.tmon .emsz{inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(5,7,15,.10) 0 1px,transparent 1px 3px),linear-gradient(rgba(90,216,255,.05),rgba(90,216,255,.05))}
.tmon .emrec{z-index:4;left:4%;top:5%;display:flex;align-items:center;gap:.35em;font-family:var(--display);letter-spacing:.06em;color:#fff;background:rgba(5,7,15,.75);padding:.25em .4em .15em;line-height:1;white-space:nowrap}
.tmon .emrec i{width:.6em;height:.6em;background:#ff3b3b;animation:emRec 1s steps(2) infinite}
@keyframes emRec{50%{opacity:0}}
.tmon .emwys{z-index:4;right:3.5%;top:5%;font-family:var(--display);color:#ffb02e;background:rgba(5,7,15,.75);padding:.25em .4em .15em;line-height:1}
.tsk .twn{z-index:2;image-rendering:pixelated;max-width:none}
/* Paweł (PW2): unos 4 klatki, mowi 4 klatki, lot 2 klatki; z włazu do miejsca przy monitorze, na końcu do windy; patrzy na załogę (odbity) */
/* w spoczynku lekko lewituje jak na telewizorze (kbLew w wieza169.css); wlot i dowindy podmieniają animacje */
.tsk .tkb{z-index:300;background:url(img/orbita/hd/sprity/pawel-unos.webp) 0 0/400% 100% no-repeat;image-rendering:pixelated;animation:tkbK 1s steps(4) infinite,tkbLew 2.6s ease-in-out infinite;transform:scaleX(-1)}
@keyframes tkbLew{0%,100%{translate:0 0}50%{translate:0 -3px}}
@keyframes tkbK{to{background-position:133.33% 0}}
.tsk .tkb.mowi{background-image:url(img/orbita/hd/sprity/pawel-mowi.webp);animation-duration:.64s,2.6s}
/* z włazu i do windy leci od załogi: tyłem, obiektyw na nią (odbity), klatki unoszenia odchylone w tył; przy hamowaniu się prostuje, przy rozpędzaniu odchyla */
/* wylot z windy jak na telewizorze: do chwili WSTEP.pawel (--wd) w kabinie niewidoczny, potem leci przodem do załogi; winda otwarta od WSTEP.drzwi do WSTEP.zamknij */
.tsk .tkb.wlot{animation:tkbK .6s steps(4) infinite,tkbWlot .9s ease-in-out var(--wd,0s) both}
/* panel pięter nad windą jak .wp-pan w wieza169.css */
.tsk .tpan{position:absolute;z-index:3;display:flex;align-items:center;justify-content:space-evenly;padding:0 2px;box-sizing:border-box;background:#34304e;box-shadow:inset 0 0 0 1px #221f36,inset 0 2px 0 1px #2a2640;overflow:hidden;font-family:var(--display);line-height:1}
.tsk .tpan span{color:#6a4636;white-space:nowrap}.tsk .tpan span.on{color:#ffd47a;text-shadow:0 0 3px #ffb347,0 0 6px #ff8a2a}
/* drzwi windy jak na telewizorze (.wp-ds w wieza169.css): skrzydła rozsuwają się w 0,8 s; wstęp 3,2 s: rozsuwanie od WSTEP.drzwi (0,6 s), zasuwanie od WSTEP.zamknij (2,4 s) */
.tsk .twd{position:absolute;overflow:hidden;z-index:2}
.tsk .twd>img{position:absolute;top:0;height:100%;image-rendering:pixelated;max-width:none}
.tsk .twd .twn{left:0;width:100%}
/* skrzydła nad kabiną: .tsk .twn ma z-index 2 i bez tego zasłaniała je w ramce drzwi (na telefonie drzwi windy "znikały" zamiast się rozsuwać) */
.tsk .twd .l,.tsk .twd .p{z-index:3}
.tsk .twd .l{left:0;width:49.6%}.tsk .twd .p{right:0;width:50.4%}
/* winda na wyjście: rozsuwają się od razu, zasuwają od --wz (scena-tel.js: po wejściu ostatniego z załogi i Pawła); zasuwanie bez wypełnienia wstecz, żeby do --wz rządziło rozsuwanie */
.tsk .twd.otw .l{animation:twdL .8s cubic-bezier(.5,0,.3,1) both,twdZL .8s cubic-bezier(.5,0,.3,1) var(--wz,99s) forwards}.tsk .twd.otw .p{animation:twdP .8s cubic-bezier(.5,0,.3,1) both,twdZP .8s cubic-bezier(.5,0,.3,1) var(--wz,99s) forwards}
@keyframes twdZL{from{transform:translateX(-100%)}to{transform:none}}@keyframes twdZP{from{transform:translateX(100%)}to{transform:none}}
.tsk .twd.wst .l{animation:twdWL 3.2s linear var(--wd0) both}.tsk .twd.wst .p{animation:twdWP 3.2s linear var(--wd0) both}
@keyframes twdL{to{transform:translateX(-100%)}}@keyframes twdP{to{transform:translateX(100%)}}
@keyframes twdWL{0%,18.75%{transform:none;animation-timing-function:cubic-bezier(.5,0,.3,1)}43.75%,75%{transform:translateX(-100%);animation-timing-function:cubic-bezier(.5,0,.3,1)}100%{transform:none}}
@keyframes twdWP{0%,18.75%{transform:none;animation-timing-function:cubic-bezier(.5,0,.3,1)}43.75%,75%{transform:translateX(100%);animation-timing-function:cubic-bezier(.5,0,.3,1)}100%{transform:none}}
.tsk .tkb.dowindy{animation:tkbK .6s steps(4) infinite,tkbWin 2s ease-in .3s both}
@keyframes tkbWlot{from{transform:translate(var(--lx),var(--ly)) scaleX(-1) rotate(7deg);opacity:0}12%{opacity:1}to{transform:translate(0,0) scaleX(-1) rotate(0deg)}}
@keyframes tkbWin{from{transform:translate(0,0) scaleX(-1) rotate(0deg);opacity:1}85%{opacity:1}to{transform:translate(var(--lx),var(--ly)) scaleX(-1) rotate(-7deg);opacity:0}}
.tspr .tpl{position:absolute;left:50%;bottom:100%;margin-bottom:-9px;transform:translateX(-50%);font-family:var(--display);font-size:5px;line-height:6px;letter-spacing:.04em;padding:.5px 1.5px 0;white-space:nowrap;background:var(--c);color:var(--t);border:.6px solid #0b0f1f}
.tspr .tpl.up{margin-bottom:-3px}

/* ---------- telefon: układ ekranu Odprawy ---------- */
body:not(.tv):not(.desk) #app[data-ekran=lobby],body:not(.tv):not(.desk) #app[data-ekran=plan]{padding-left:12px;padding-right:12px;gap:8px}
/* sala Odprawy w telewizorze z Odprawy (app.js wTv, jak sala pytania): wysokość z mapa.css .tvp, zawsze pełna szerokość */
.tsc-pokoj.odpr{border-bottom:0;background:none}
.tvp .tvin{position:absolute;inset:0}

/* ---------- pulpit ---------- */
.kons{flex:none;display:flex;flex-direction:column;gap:9px;background:#1a2040;border:3px solid #0b0f1f;box-shadow:inset 0 3px 0 #3a4780,inset 0 -4px 0 #0f1430,4px 4px 0 var(--edge);padding:10px;position:relative}
.kons::before,.kons::after{content:'';position:absolute;top:5px;width:5px;height:5px;background:#56619a;box-shadow:0 0 0 1px #0b0f1f}
.kons::before{left:5px}.kons::after{right:5px}
.kons .kgr{display:block;height:0;border-top:2px solid #0b0f1f;border-bottom:1px solid #2f3866;margin:0 -10px}
.klb{font-family:var(--display);font-size:9px;letter-spacing:.08em;color:var(--dim)}
.kons>.klb,.khh .klb{color:#cfd6ff}
.kgora{display:flex;gap:9px;align-items:center}
.kgora .qr.qsk{width:66px;height:66px;flex:none;--r:5px}
.klcd{flex:1;min-width:0;background:#0a0c08;border:3px solid #0b0f1f;box-shadow:inset 0 0 0 2px #2a2410;padding:5px 7px 6px}
/* same litery kodu, bez etykiety KOD GRY, wyśrodkowane w okienku */
.klcd{display:flex;flex-direction:column;justify-content:center}.klcd .kzn{margin-top:0}
.kzn{display:flex;gap:5px;margin-top:3px}
.kzn span{flex:1;height:38px;display:grid;place-items:center;font-family:var(--display);font-size:26px;color:#ffb02e;background:#17140a;text-shadow:0 0 6px rgba(255,176,46,.55);position:relative}
.kzn span::after{content:'';position:absolute;left:0;right:0;top:50%;border-top:1px solid #0a0c08}
.kklaw{display:flex;flex-direction:column;gap:7px;flex:none}
.kbt{font-family:var(--display);font-size:9px;letter-spacing:.06em;width:62px;height:28px;color:#fff;background:#3a4470;border:2px solid #0b0f1f;box-shadow:inset 0 -4px 0 #232a50,inset 0 2px 0 #5a66a0,2px 2px 0 var(--edge);-webkit-tap-highlight-color:transparent}
.kbt.y{color:#1a1430;background:var(--yellow);box-shadow:inset 0 -4px 0 #c99a1a,inset 0 2px 0 #fff3a0,2px 2px 0 var(--edge)}
.kbt:active,.kkam:active,.kpoz button:active,.kdzw:active,.kkart:active{transform:translate(1px,1px)}
.khh{display:flex;align-items:baseline;gap:8px}
.khh .kli{font-family:var(--display);font-size:11px;color:var(--mint)}
.khh small{margin-left:auto;font-size:11px;font-weight:700;color:var(--dim)}
.kkamy{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.kkam{display:block;height:clamp(52px,8.3vh,70px);position:relative;padding:0;background:#0b0f1f;border:3px solid #3a4470;box-shadow:inset 0 0 0 1px #0b0f1f,2px 2px 0 var(--edge);overflow:hidden;min-width:0;-webkit-tap-highlight-color:transparent;font:inherit;color:inherit;text-align:center}
.kkam .kekr{position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 55%,#0b0f1f),color-mix(in srgb,var(--c) 25%,#0b0f1f))}
.kkam .kekr img{position:absolute;left:50%;bottom:9px;height:calc(100% - 12px);width:auto;max-width:none;transform:translateX(-50%);image-rendering:pixelated;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.kkam .kekr::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(5,7,15,.10) 0 1px,transparent 1px 3px),linear-gradient(rgba(90,216,255,.05),rgba(90,216,255,.05))}
.kkam .knr{position:absolute;left:2px;top:1px;font-family:var(--display);font-size:6px;color:rgba(255,255,255,.75);z-index:2}
.kkam .knk{position:absolute;left:0;right:0;bottom:0;z-index:2;font-size:9px;font-weight:800;text-align:center;background:rgba(5,7,15,.82);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px;line-height:11px}
.kkam .ktg{position:absolute;right:2px;top:2px;z-index:2;font-family:var(--display);font-size:6px;padding:1px 2px;background:#0b0f1f;color:#cfd6ff;line-height:1}
.kkam .ktg.g{background:var(--yellow);color:#1a1430}
.kkam.me{transform:translateY(-3px);box-shadow:0 3px 0 var(--edge)} /* wybrany bez kolorowej ramki: podniesienie i jaśniejsze tło */
.kkam.off .kekr{opacity:.45}
.kkam.pusty{background:repeating-linear-gradient(90deg,#1c2142 0 2px,#262c55 2px 3px,#161a36 3px 5px),#1c2142}
.kkam.pusty::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(5,7,15,.45) 0 1px,transparent 1px 2px)}
.kkam .kbs{position:absolute;inset:0;z-index:2;display:grid;place-items:center;align-content:center;gap:2px;font-family:var(--display);font-size:6px;letter-spacing:.06em;color:#7b86c0}
.kkam .kbs b{font-weight:400;font-size:15px;color:#9aa4d8;line-height:1}
.kkam.pusty.nast{background:#2b3566}.kkam.nast .kbs,.kkam.nast .kbs b{color:var(--yellow)}
.kikm{display:flex;gap:9px;align-items:center}
.kgl{width:34px;height:34px;flex:none;background:repeating-linear-gradient(0deg,#0b0f1f 0 2px,#56619a 2px 4px);border:2px solid #0b0f1f;box-shadow:inset 0 0 0 2px #3a4470}
.kikm p{font-family:var(--tk,'Orbita Tekst'),monospace;font-size:12px;line-height:1.35;color:#fff;margin:0}
.kikm p b{display:block;font-family:var(--display);font-weight:400;font-size:8px;color:var(--mint);letter-spacing:.08em;margin-bottom:2px}
.kprz{display:grid;grid-template-columns:1.5fr 1fr 1.1fr;gap:8px}
.kprz.cztery{grid-template-columns:1.45fr .9fr 1fr .9fr;gap:6px}
.kprz>div{display:flex;flex-direction:column;gap:5px;align-items:flex-start;min-width:0}
.kprz.gosc>div>:not(.klb){opacity:.55}
.kpoz{display:flex;gap:3px}
.kpoz button{font-family:var(--display);font-size:7px;letter-spacing:.03em;padding:6px 4px 5px;background:#0b0f1f;color:#56619a;border:2px solid #2f3866;-webkit-tap-highlight-color:transparent}
.kpoz button.on{background:var(--yellow);color:#1a1430;border-color:#1a1430;box-shadow:0 0 0 1px var(--yellow)}
.kdzw{display:flex;align-items:center;gap:6px;padding:0;background:none;border:0;-webkit-tap-highlight-color:transparent}
.kdzw .tor{width:44px;height:22px;background:#0b0f1f;border:2px solid #2f3866;position:relative;flex:none}
.kdzw .tor i{position:absolute;top:1px;left:1px;width:16px;height:16px;background:#8a93b8;box-shadow:inset -2px -2px 0 #56619a}
.kdzw.on .tor i{left:23px;background:#cfd6ff;box-shadow:inset -2px -2px 0 #8a93b8}
.kdzw .led{width:8px;height:8px;background:#3d4677;flex:none}
.kdzw.on .led{background:var(--mint);box-shadow:0 0 6px var(--mint)}
.kdzw small{font-family:var(--display);font-size:8px;color:#56619a}
.kdzw.on small{color:var(--mint)}
.kprz.cztery .kdzw .tor{width:36px}.kprz.cztery .kdzw.on .tor i{left:15px}.kprz.cztery .kdzw small{display:none}
.kkart{max-width:100%;height:36px;padding:0 8px;font-family:var(--display);font-size:10px;letter-spacing:.04em;color:#1a1430;background:#ff8c2b;border:2px solid #0b0f1f;box-shadow:inset 0 3px 0 #ffb070,0 -4px 0 -1px #0b0f1f;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-tap-highlight-color:transparent}
button:disabled.kkart,.kpoz button:disabled,.kdzw:disabled{cursor:default}
.khaz{flex:none;padding:5px;background:repeating-linear-gradient(-45deg,var(--yellow) 0 9px,#1a1430 9px 18px);border:2px solid #0b0f1f;box-shadow:4px 4px 0 var(--edge)}
.khaz .btn{width:100%;border-width:2px;box-shadow:inset -4px -4px 0 #c99a1a,inset 4px 4px 0 #fff3a0}
.kczek{flex:none;height:50px;display:grid;place-items:center;font-family:var(--display);font-size:12px;letter-spacing:.05em;color:var(--muted);background:#141a36;border:2px dashed #3a4780}
.khaz .kczek{border:0}

/* QR stuknięty: powiększony w oknie (jak w Państwach Miastach) */
.kqr{padding:0;background:none;border:0;flex:none;cursor:zoom-in;-webkit-tap-highlight-color:transparent}
.kqr .qr.qsk{display:block}
.modal.qrm{align-items:center}
.modal.qrm .pan.qrduzy{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(88vw,420px);padding:16px}
.qrduzy .qr.qsk{width:min(72vw,340px);height:min(72vw,340px);--r:6%}
.qrduzy .kzn{width:min(72vw,340px);gap:6px}
.qrduzy .kzn span{height:52px;font-size:34px}
.qrduzy p{margin:0;font-family:var(--display);font-size:11px;letter-spacing:.08em;color:var(--muted)}

/* ---------- pulpit trwającej odprawy ---------- */
.kek{position:relative;width:100%;aspect-ratio:2/1;border:3px solid #0b0f1f;box-shadow:inset 0 0 0 2px #3a4470,2px 2px 0 var(--edge);background:#05070f}
.kek .tmon{inset:3px}
/* duży interkom (propozycje/odprawa-pulpit, A): twarz mówiącego, napisy jak w filmie, pasek kwestii; wolne miejsce pulpitu idzie tutaj */
.kikmA{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:12px}
.kmow{display:flex;gap:12px;align-items:center}
.kava{width:76px;height:76px;flex:none;background:#0b0f1f;border:3px solid #3a4470;box-shadow:inset 0 0 0 2px #0b0f1f;display:grid;place-items:center;overflow:hidden;position:relative}
.kava::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(5,7,15,.10) 0 1px,transparent 1px 3px),linear-gradient(rgba(90,216,255,.05),rgba(90,216,255,.05))}
.kava img{width:60px;max-width:none;image-rendering:pixelated}
.kava .pw{width:64px;height:64px;background:url(img/orbita/hd/sprity/pawel-przod.webp) 100% 0/200% 100% no-repeat;image-rendering:pixelated}
.kmow b{display:block;font-family:var(--display);font-weight:400;font-size:12px;letter-spacing:.08em;color:var(--mint)}
.kmow b.gs{color:var(--yellow)}
.kmow small{display:block;font-family:var(--display);font-size:8px;letter-spacing:.06em;color:var(--dim);margin-top:5px}
.ktxt{font-family:var(--tk,'Orbita Tekst'),monospace;font-size:19px;line-height:1.42;color:#fff;margin:0}
.kikmA .kur{display:none;width:8px;height:14px;background:var(--mint);vertical-align:-1px;margin-left:4px;animation:emRec 1s steps(2) infinite}
.kikmA.mowi .kur{display:inline-block}
.kikmA .kpost{margin-top:auto}
/* kwestia z kartami startowymi: ekran kart w miejscu twarzy, napis mniejszy */
.kbrf.karty .kmow{display:none}.kbrf.karty .ktxt{font-size:15px}
.kplh i{font-style:normal;float:right;color:#ffb02e}
.kpost{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}
.kpost i{height:5px;background:#0b0f1f;border:1px solid #2f3866}
.kpost i.ok{background:var(--mint);border-color:#0b2a17}
.kpost i.teraz{background:var(--yellow);border-color:#7a5a00}
.kplan{display:flex;gap:4px}
.kplan div{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px}
.kplan em{font-style:normal;width:100%;height:34px;display:grid;place-items:center;font-family:var(--display);font-size:15px;color:#3d4677;background:#0b0f1f;border:2px solid #2f3866;box-shadow:inset 0 -3px 0 #141a36}
.kplan small{font-family:var(--display);font-size:6px;letter-spacing:.04em;color:var(--dim);white-space:nowrap}
.kplan .sp em{color:#5a4a1a}
.kplan .tu em{color:#1a1430;background:#ffb02e;border-color:#7a4d00;box-shadow:0 0 0 1px #ffb02e}
.kplan .tu small{color:#ffb02e}
.kplan .swi em{color:var(--sky);border-color:#2a6a8a}
.kplan .min em{color:#56619a;background:#141a36}
.kplan .nast em{color:#ffb02e;border-color:#ffb02e;animation:kNast 1s steps(2) infinite}
@keyframes kNast{50%{color:#3d4677;border-color:#2f3866}}
/* plan misji jak panel windy, załoga jako kamery kabin (jak w poczekalni), przy więcej niż 4 osobach 6 w rzędzie */
.kbrf .kplan{background:#10142c;border:2px solid #0b0f1f;box-shadow:inset 0 0 0 2px #262d58;padding:8px 7px 7px;gap:5px}
.kbrf .kplan div{gap:4px}
.kbrf .kplan em{height:clamp(38px,5.4vh,50px);font-size:17px}
.kbkam .kkam{height:clamp(62px,8.8vh,84px)}
.kbkam .kkam .kekr img{max-height:none;height:calc(100% - 18px);bottom:12px}
.kbkam .kkam .knk{line-height:13px}
.kbkam:has(.kkam:nth-child(5)){grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.kbkam:has(.kkam:nth-child(5)) .kkam{height:clamp(50px,6.4vh,64px)}
.btn.kpom{width:100%;height:50px;font-size:13px}

/* pulpit wypełnia ekran do przycisku: w poczekalni rosną kamery, w odprawie odstępy */
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kons~.grow,body:not(.tv):not(.desk) #app[data-ekran=plan] .kons~.grow{display:none}
/* ustawienia pokoju na telefonie: poziom w osobnym rzędzie na całą szerokość, przełączniki pod nim; cele dotyku 36 px i napisy 10 px
   (wcześniej cztery grupy w jednym rzędzie: przyciski 32x24 px z napisem 7 px). Kabiny wyżej oddają to miejsce same (rząd 1fr) */
body:not(.tv):not(.desk) .kprz{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
body:not(.tv):not(.desk) .kprz.cztery{grid-template-columns:repeat(3,minmax(0,1fr))}
body:not(.tv):not(.desk) .kprz>div:first-child{grid-column:1/-1}
body:not(.tv):not(.desk) .kprz>div{align-items:stretch}
body:not(.tv):not(.desk) .kpoz{gap:4px}
body:not(.tv):not(.desk) .kpoz button{flex:1;height:36px;padding:0 4px;font-size:10px}
body:not(.tv):not(.desk) .kdzw{min-height:36px}
body:not(.tv):not(.desk) .kkart{margin-top:0;width:100%}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kons{flex:1 1 auto;min-height:0}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkamy{flex:1 1 auto;min-height:0;grid-auto-rows:minmax(46px,1fr);max-height:300px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam{height:auto}
.kkam .kekr img{max-height:64px}
body:not(.tv):not(.desk) #app[data-ekran=plan] .kons.kbrf{flex:1 1 auto;min-height:0}
.kplan em{height:clamp(34px,4.4vh,44px)}

/* niskie telefony (SE, mini): bez interkomu w poczekalni i bez rzędu załogi w odprawie, mniejsze kamery i ekran */
@media (max-height:760px){
  .kons .kik{display:none}
  .kkam{height:clamp(46px,7.4vh,60px)}
  .kzal{display:none!important}
  .kek{width:86%;align-self:center}
  .kava{width:56px;height:56px}.kava img{width:44px}.kava .pw{width:48px;height:48px}
  .ktxt{font-size:16px}
  .kons{gap:6px;padding:8px}
  .kons .kgr{margin:0 -8px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkamy{grid-auto-rows:minmax(42px,1fr)}
}
@media (max-height:620px){
  .kgora .qr.qsk{width:54px;height:54px}
  .kzn span{height:28px;font-size:20px}
  .kbt{height:24px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkamy{grid-auto-rows:minmax(36px,1fr);gap:4px}
  .kkam .kekr img{bottom:8px}
  .kkam .knk{font-size:8px;line-height:9px}
  .kkam .kbs{font-size:5px}.kkam .kbs b{font-size:12px}
  .khaz{padding:4px}
  .khaz .btn,.btn.kpom{height:44px}
  .kczek{height:44px}
  .kek{width:72%}
  .kmow{display:none}
  .ktxt{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .tmon .emrec i,.tmon .emszum,.tmon .mowi .emfala img,.kplan .nast em,.kikmA .kur,.tsk .tkb{animation:none!important}
}
/* karty startowe na pulpitowym Ekranie Misji (app.js ekranKart, propozycje/karty-start B): dwie kolumny, grafika z lewej, pełny opis bez ucinania */
.tmon .emkarty{inset:0;display:flex;flex-direction:column;padding:.7em .8em .6em;background:#0a1030;font-family:var(--tk, 'Orbita Tekst', monospace);color:#e9ecff}
.emkarty>b{font:400 1em var(--display, 'Orbita Pixel', monospace);color:#f2c14e;letter-spacing:.06em;text-align:center;margin-bottom:.6em}
.emkarty>div{flex:1;min-height:0;display:flex;gap:.8em}
.emk1{flex:1 1 0;min-width:0;display:flex;gap:.55em;align-items:flex-start}
.emk1>.emim{position:relative;width:42%;flex:none;display:block;container-type:inline-size}.emim>img{display:block;width:100%}
.emk1>span{min-width:0;display:flex;flex-direction:column;gap:.3em}
.emk1 small{align-self:flex-start;font:400 .7em var(--display, 'Orbita Pixel', monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--wk, #5fe3a8);background:#05060f;padding:.2em .4em}
.emk1 i{font-style:normal;font-size:1.05em;line-height:1.28}

/* poczekalnia na telefonie (propozycje/odprawa-lobby, koncepcja B, 2026-11-11): niższy pasek, interkom jako napisy na telewizorze,
   kod w jednym pasku (KOPIUJ = stuknięcie w kod), kamery kwadratowe 6 x 2 we wnęce, ustawienia jako moduły z ikonami.
   Komputer ma własny układ (desk.css): blok kamer .kmon nie tworzy tam pudełka. */
.kmon{display:contents}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kmon{display:flex;flex-direction:column;gap:6px}
body.desk .tvnap{display:none}
body:not(.tv):not(.desk) #app[data-ekran=lobby]{gap:7px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .hd{min-height:40px;grid-template-columns:40px 1fr 40px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .hd .cap{font-size:10px}

/* interkom jako napisy u góry sali, pod paskiem NA ŻYWO: załoga na podłodze zostaje widoczna */
.tvp .tvnap{position:absolute;z-index:4;left:3%;right:22%;top:18%;display:flex;gap:.6em;align-items:center;font-size:3.1cqw;background:rgba(5,7,15,.82);border-left:.35em solid var(--mint);padding:.45em .7em .4em;pointer-events:none}
.tvp .tvnap b{font-family:var(--display);font-weight:400;font-size:.8em;color:var(--mint);letter-spacing:.08em;flex:none}
.tvp .tvnap span{font-family:var(--tk,'Orbita Tekst'),monospace;color:#fff;line-height:1.25}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kons .kik{display:none}

body:not(.tv):not(.desk) #app[data-ekran=lobby] .kons{gap:9px;padding:10px;background:#181e3e}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .klb{font-size:8px;letter-spacing:.1em;color:#cfd6ff}

/* zaproszenie: QR, kod i jeden przycisk w jednym pasku (KOPIUJ = stuknięcie w kod) */
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kgora{gap:7px;background:#0f1430;border:2px solid #0b0f1f;box-shadow:inset 0 0 0 1px #2f3866;padding:6px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kgora .qr.qsk{width:46px;height:46px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .klcd{padding:3px 5px;border-width:2px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kzn span{height:32px;font-size:23px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kklaw{gap:0}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kklaw .kbt:not(.y){display:none}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kbt.y{height:46px;width:70px;font-size:10px}

/* ściana monitorów: wnęka z kamerami 6 x 2, kwadratowe */
body:not(.tv):not(.desk) #app[data-ekran=lobby] .khh{align-items:center}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .khh small{display:none}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .khh .kli{margin-left:auto;font-size:10px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkamy{flex:none;max-height:none;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:auto;gap:4px;background:#0b0f1f;padding:5px;box-shadow:inset 0 3px 0 #05070f,0 1px 0 #343e72;margin-top:-3px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam{height:auto;aspect-ratio:1/1;border:0;box-shadow:inset 0 0 0 2px #3a4470}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam .kekr{inset:2px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam .kekr img{max-height:none;height:80%;bottom:10px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam .knk{font-size:8px;line-height:10px;bottom:2px;left:2px;right:2px;background:rgba(5,7,15,.86)}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam .knr{left:4px;top:3px;font-size:5px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam .ktg{top:3px;right:3px;font-size:5px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam.me{transform:none;box-shadow:inset 0 0 0 2px #8a96d8}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam.me .kekr{filter:none;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 75%,#0b0f1f),color-mix(in srgb,var(--c) 40%,#0b0f1f))}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam.pusty{box-shadow:inset 0 0 0 2px #232a50}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam .kbs{font-size:0;gap:0}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam .kbs b{font-size:22px;color:#4a5590}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam.pusty.nast{background:#232c5a;box-shadow:inset 0 0 0 2px #5b66a0}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkam.pusty.nast .kbs b{color:var(--yellow)}

/* ustawienia: trzy moduły (poziom stuknięciem przełącza się dalej, karty wł./wył., pytania otwierają okno pakietów) */
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kprz{display:grid;grid-template-columns:1.1fr .8fr 1.1fr;gap:7px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kprz.cztery{grid-template-columns:1.1fr .8fr 1.1fr .8fr;gap:5px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kprz.gosc .kmod>:not(.klb){opacity:.55}
.kmod{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px 7px;min-height:96px;border-radius:0;background:#222a52;border:2px solid #0b0f1f;box-shadow:inset 0 2px 0 #3d4880,inset 0 -4px 0 #151b3a,2px 2px 0 var(--edge);color:#fff;font:inherit;-webkit-tap-highlight-color:transparent}
.kmod:active{transform:translate(1px,1px)}
.kmod .klb{font-size:7px;color:var(--dim)}
.kmod b{font-family:var(--display);font-weight:400;font-size:10px;letter-spacing:.05em;line-height:1}
.kmod small{font-size:9px;font-weight:700;color:var(--dim);line-height:1}
.kmod img{height:46px;width:auto;image-rendering:auto} /* ikony OM1 zmniejszone gładko do 138 px wysokości (3x) */
.kmod .led{position:absolute;right:6px;top:7px;width:7px;height:7px;background:#3d4677}
.kmod.on .led{background:var(--mint);box-shadow:0 0 6px var(--mint)}
.kmod.on b{color:var(--mint)}
.kmod.pk{background:#3a2a1a;box-shadow:inset 0 2px 0 #7a5530,inset 0 -4px 0 #24180c,2px 2px 0 var(--edge)}
.kmod.pk b{color:#ffb070}

body:not(.tv):not(.desk) #app[data-ekran=lobby] .khaz{padding:4px}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .khaz .btn{height:54px}

/* nagłówek i kamery razem w jednym bloku (.kmon), wolne miejsce rozkłada się między bloki */
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kons{justify-content:space-between}
body:not(.tv):not(.desk) #app[data-ekran=lobby] .kprz .kmod{min-height:112px}

/* niskie telefony (SE): moduły jako niskie kafle z ikoną z lewej */
@media (max-height:760px){
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kons{gap:6px;padding:7px 8px 8px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kons .kgr{margin:0 -8px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kgora{padding:4px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kgora .qr.qsk{width:38px;height:38px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kzn span{height:28px;font-size:20px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kbt.y{height:38px;width:62px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kkamy{gap:3px;padding:4px}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .kprz .kmod{min-height:0;height:48px;flex-direction:row;justify-content:flex-start;gap:5px;padding:4px 5px}
  .kmod .klb{position:absolute;left:5px;top:3px;font-size:6px}
  .kmod img{height:26px;flex:none;margin-top:10px}
  .kmod b{font-size:8px;margin-top:6px}
  .kmod small{display:none}
  body:not(.tv):not(.desk) #app[data-ekran=lobby] .khaz .btn{height:46px}
}
