/* Jalsa's shared design owns colors, fonts, panels, fields and controls.
   The original utility sheet remains for puzzle layout and wire/switch colors. */
.g-almukharrib{--game:var(--red)}
.g-almukharrib svg{width:150px;height:auto}
body[data-mukharrib-view]{background:var(--bg);color:var(--fg);font-family:var(--body)}
body[data-mukharrib-view="menu"] #app{padding-top:28px}
body[data-mukharrib-view="menu"] .rules ol{list-style:decimal}
body[data-mukharrib-view="menu"] .btn{font-size:15px;text-decoration:none}
body[data-mukharrib-view="menu"] .main>.panel .chip{background:var(--sunk);color:var(--muted)}
.jalsa-return{font-family:var(--body);background:var(--land);border:0;box-shadow:none;color:var(--fg);top:max(24px,env(safe-area-inset-top))}
.btn-ghost{background:var(--land);color:var(--resolve);min-height:48px;border-radius:10px;font-size:15px;padding:12px 18px}
.field{font-family:var(--body);border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--resolve);padding:10px 12px}
.field:focus-visible{outline:2px solid var(--auth);outline-offset:2px}
.label{font-size:13px;color:var(--muted)}
.night{--fg:var(--clarity);--muted:var(--muted-dk);--accent:var(--gold);color:var(--clarity)}
.night h1,.night h2,.night h3{color:var(--gold)}
.chip.bg-resolve{background:var(--resolve);color:var(--clarity)}
.chip.bg-red{background:var(--red);color:var(--clarity)}
.chip.bg-sage{background:var(--sage);color:var(--resolve)}
.chip.bg-gold{background:var(--gold);color:var(--resolve)}
body[data-mukharrib-view="phone"] #app{width:100%;max-width:560px;padding:76px max(16px,env(safe-area-inset-left)) 40px;gap:16px;min-height:100dvh}
.mk-phone-hero{padding:0;margin-bottom:8px;gap:8px}
.mk-phone-hero h1{font-family:var(--kufi);font-size:44px;line-height:1.3;color:var(--auth)}
.mk-phone-hero .sadu{width:min(320px,80%)}
.mk-phone-hero p{font-size:14px;color:var(--muted)}
.mk-player-top{background:var(--surface);border-radius:14px;padding:16px}
body[data-mukharrib-view="phone"] .panel h2{font-size:20px}
body[data-mukharrib-view="phone"] .btn{font-size:15px}
body[data-mukharrib-view="phone"] .night{border-radius:14px}
body[data-mukharrib-view="tv"]{overflow:auto}
body[data-mukharrib-view="tv"] #app{display:block;width:100%;max-width:1760px;min-height:100dvh;margin:auto;padding:76px 24px 24px}
.mk-tv-shell{display:flex;flex-direction:column;gap:24px;max-width:100%;margin:auto;padding:0;min-height:0}
.mk-tv-head h1{font-family:var(--kufi);font-size:60px;line-height:1.3;color:var(--auth)}
.mk-tv-head p{font-size:16px;max-width:44ch;color:var(--muted)}
.mk-tv-head .sadu{width:min(320px,80%)}
.mk-lobby-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.9fr) minmax(0,1fr);gap:20px;align-items:start}
.mk-team{border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.mk-team h2{color:inherit;font-size:24px}
.mk-team .bg-surface{border-radius:12px;padding:16px;min-width:0}
.mk-team .font-display{font-size:20px;overflow-wrap:anywhere}
.mk-team .text-land{color:var(--muted)}
.mk-tv-lobby .joinQr .qr{width:min(220px,28vh,100%)}
.mk-room-code{font-size:clamp(40px,4vw,64px);letter-spacing:6px;width:100%;padding:8px 12px}
.mk-lobby-grid>.panel{align-items:center;gap:14px;padding:24px 20px;text-align:center;min-width:0}
.mk-lobby-grid>.panel .btn{font-size:18px;width:100%}
.mk-tv-game{min-height:calc(100dvh - 100px)}
.mk-tv-game>header h1{font-size:32px}
.mk-tv-game h2.text-current{color:inherit}
@media(min-width:1000px){
 body[data-mukharrib-view="menu"] #app{padding-top:56px}
}
@media(max-width:900px){
 .mk-lobby-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .mk-lobby-grid>.panel{grid-column:1/-1;grid-row:1}
 body[data-mukharrib-view="tv"] #app{padding:76px 16px 24px}
 .mk-tv-head h1{font-size:44px}
 .mk-tv-game>header{display:flex;flex-wrap:wrap;gap:12px}
 .mk-tv-game>header>*{flex:1 1 140px}
 .mk-tv-game>.grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:480px){
 .mk-lobby-grid{grid-template-columns:minmax(0,1fr)}
 .mk-lobby-grid>.panel{grid-column:auto}
 .mk-team{padding:16px}
}
