/* ══════════════════════════════════════════════════════════════════════════════════════════════════════
   SCOPÉ SOUS `.play-engine` (2026-09-09, décision Dan, COMMIT 2 refonte /play) — SEULS les sélecteurs
   GÉNÉRIQUES (`:root`/`*`/`body`/`button`/`header`/`main`/`h1` + `body.ingame …`) sont scopés : eux seuls
   perçaient GsiChrome (`<header>`/`<main>`/`<h1>`/`*`/`body`). Les sélecteurs de CLASSE du jeu (`.hero`,
   `.cta`, `.brand`…) ne collisionnent PAS avec `.gsi-*` (mesuré : 0 collision) et restent globaux — ils ne
   matchent que le DOM du jeu, tout entier dans `.play-engine`. ⛔ engine.js et le DOM restent BIT-IDENTIQUES :
   `document.body.classList` ne porte QUE `ingame` (mesuré), d'où `body.ingame .play-engine …`. Le jeu rend
   exactement comme avant ; le chrome n'est plus percé.
   ══════════════════════════════════════════════════════════════════════════════════════════════════════ */
.play-engine{
  --bordeaux:#1f4fa3;--bordeaux-d:#0f2d66;--felt:#173f8f;--felt-d:#0b2154;
  --ink:#08132b;--ivory:#ffffff;--sand:#b9c7e6;--gold:#d6a84b;--gold-d:#a17e38;
  --line:rgba(255,255,255,.16);
  font-family:"Avenir Next","Segoe UI",system-ui,sans-serif;
  /* FOND DE PAGE = celui de la landing/#playstyle : #050A10 (décision Dan). ⛔ PAS via --ink (qui reste #08132b,
     le texte sombre sur les boutons dorés) ; ⛔ PAS le feutre #table (radial du moteur, intouché). */
  background:#050A10;color:var(--ivory);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;
}
.play-engine,.play-engine *{box-sizing:border-box;margin:0;padding:0}
.play-engine button{font:inherit;cursor:pointer;border:0;border-radius:8px}
.play-engine button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.play-engine button:disabled{opacity:.4;cursor:default}
.play-engine header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(180deg,var(--bordeaux),var(--bordeaux-d));border-bottom:1px solid var(--line)}
.brand{font-size:16px;font-weight:700;letter-spacing:-.02em}
.brand small{display:block;font-size:11px;font-weight:400;color:var(--sand);letter-spacing:0}
.credits{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.35);padding:6px 12px;border-radius:999px;border:1px solid var(--gold-d)}
.credits b{color:var(--gold);font-size:18px}
.credits span{font-size:12px;color:var(--sand)}
/* ACCUEIL (lobby) : colonne large alignée sur /playstyle (.lm-doc = max-width 960px, gouttières latérales
   ~1.2rem). ⚠ EN JEU on REVIENT à 560px (body.ingame ci-dessous) : la table est calibrée sur cette largeur
   (fit fenêtre + « gsipoker.com » vertical), on ne la touche pas — point 4. */
.play-engine main{max-width:var(--maxw);margin:0 auto;padding:16px var(--pad-inline) 72px}
body.ingame .play-engine main{max-width:560px;padding:8px 12px 10px 26px}
body.ingame .play-engine header{padding:8px 14px}
body.ingame .brand small{display:none}
body.ingame .brand{font-size:17px}
body.ingame .credits b{font-size:15px}
.credits{padding:6px 10px;gap:6px}
.credits span{font-size:11px}
body.ingame #mute{width:28px;height:28px;font-size:13px}
.view{display:none}.view.on{display:block}
.play-engine h1{font-size:18px;font-weight:700;line-height:1.15;letter-spacing:-.02em;margin-bottom:8px}
.lead{color:var(--sand);font-size:15px;line-height:1.5;margin-bottom:22px}
.lead a{color:var(--gold)}
.hero{margin:-6px -6px 18px;padding:16px 16px 14px;border-radius:14px;background:radial-gradient(120% 90% at 20% 0%,#1f4fa3,#0f2d66 55%,#08132b);border:1px solid var(--line)}
.kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.hero h1{font-size:17px;line-height:1.12;margin-bottom:12px}
@media (min-width:480px){.hero h1{font-size:21px}}
.hero .lead{margin-bottom:16px}
.showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.sc{background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:10px;padding:10px 8px;text-align:center;min-height:74px;display:flex;flex-direction:column;justify-content:center}
/* Carte récompense de tête : MÊME fond que les autres .sc de la rangée (rgba(0,0,0,.35), hérité de .sc — jamais recopié), liseré or var(--gold)=#d6a84b. C'est une récompense, pas une alerte (décision Dan 2026-09-11). */
.sc.big{grid-column:1/-1;border-color:var(--gold)}
.sc-lab{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--sand)}
.sc b{display:block;font-size:16px;color:#fff;margin:3px 0 2px;letter-spacing:-.02em}
.sc.big b{font-size:22px;color:#fff}
.sc small{font-size:10.5px;color:var(--sand)}
.cta{display:block;text-align:center;background:var(--gold);color:var(--ink);padding:13px 16px;border-radius:10px;font-weight:800;font-size:15px;text-decoration:none;box-shadow:0 0 22px rgba(214,168,75,.35)}
.cta.ghost{background:transparent;color:var(--gold);border:1px solid var(--gold-d);box-shadow:none;margin-top:8px;font-size:14px;padding:10px}
/* Inactif = LE MÊME doré (var(--gold) = #d6a84b), atténué par l'OPACITÉ seule — jamais une autre teinte.
   ⛔ Pas de filter:saturate() : il désaturait le doré en olive terne (une teinte à part).
   Opacité .72 (et non .65) : avec le doré unifié #d6a84b sur le fond #050A10, .65 tombait à 4,10:1 ;
   .72 rend 4,80:1 (>= 4,5 AA). curseur:not-allowed + [disabled] disent l'inactivité.
   Le doré reste reconnaissable ; cursor:not-allowed + [disabled] disent l'inactivité. */
.cta.off{opacity:.72;cursor:not-allowed;box-shadow:none}
.h2{font-size:16px;font-weight:700;margin:4px 0 8px}
.why{margin:12px 0 6px;padding-top:6px}
.why-row{display:grid;grid-template-columns:118px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.45}
.why-row b{color:var(--ivory)}.why-row span{color:var(--sand)}
.proof{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin:6px 0 6px}
.proof span{font-size:11px;color:#fff;border:1px solid var(--gold-d);border-radius:999px;padding:4px 9px;background:rgba(0,0,0,.3)}
.proof span.hot{border-color:#ff6b6b;color:#ffb3b3}
.cta{border:0;width:100%;font-family:inherit;cursor:pointer}
.profiles{display:grid;gap:10px;margin-bottom:22px}
.prof{text-align:left;background:linear-gradient(135deg,#0f2150,#0a1738);border:1px solid var(--line);border-left:4px solid var(--bordeaux);border-radius:10px;padding:14px;color:var(--ivory);font-family:inherit}
.prof b{display:block;font-size:16px;margin-bottom:4px}.prof span{display:block;font-size:13px;color:var(--sand);line-height:1.45}.prof em{display:block;font-style:normal;font-size:11px;color:var(--gold);margin-top:8px;letter-spacing:.04em}
.prof.sel{border-color:var(--gold);border-left-color:var(--gold);box-shadow:0 0 14px rgba(214,168,75,.25)}
.steps{display:grid;gap:10px;margin-bottom:12px}
.step{display:grid;grid-template-columns:34px 1fr;gap:4px 12px;align-items:start}
.step i{grid-row:1/3;width:34px;height:34px;border-radius:50%;background:var(--bordeaux);border:1px solid var(--gold);display:grid;place-items:center;font-style:normal;font-weight:800;color:#fff}
.step b{font-size:15px}.step span{font-size:13px;color:var(--sand);line-height:1.45}
.faq{border-top:1px solid var(--line);padding:10px 0}.faq summary{cursor:pointer;font-weight:600;font-size:14px;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';float:right;color:var(--gold)}.faq[open] summary::after{content:'–'}.faq p{font-size:13px;color:var(--sand);margin-top:8px;line-height:1.45}
.final{margin:14px 0 8px;padding:18px;border-radius:14px;background:linear-gradient(135deg,#0f2d66,#08132b);border:1px solid var(--line)}
.sticky{position:sticky;bottom:10px;margin-top:10px;z-index:5}
.sticky button{width:100%;padding:14px;border-radius:12px;background:var(--gold);color:var(--ink);font-weight:800;font-size:16px;border:0;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.showcase{margin-bottom:12px}
.grp{font-size:13px;color:var(--sand);margin:0 0 8px}
.seg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
/* TUILES DE VARIANTE — refonte (décision Dan 2026-09-10) : plus d'aspect-ratio fixe (elles gonflaient à vide) ;
   la tuile prend la HAUTEUR DE SON CONTENU (grid align-items:stretch ⇒ même hauteur par rangée). Colonnes
   responsives : 2 en mobile, 3 en intermédiaire, 6 sur UNE rangée en desktop (≥1200). min-height 44px = cible
   tactile. ⛔ setVariant/sélection inchangés. */
#variants{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media (min-width:720px){.play-engine #variants{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1200px){.play-engine #variants{grid-template-columns:repeat(6,1fr)}}
#variants .vbtn{display:flex;flex-direction:column;justify-content:center;min-height:44px}
/* TAILLE DE TABLE — 3 tuiles sur UNE rangée, hauteur au contenu (grid ⇒ égales), cible tactile 44px. */
#formats{display:grid;grid-template-columns:repeat(3,1fr)}
#formats .vbtn{display:flex;flex-direction:column;justify-content:center;min-height:44px}
.vbtn{flex:1;padding:12px 6px;font-size:15px;font-weight:700;background:linear-gradient(135deg,#0f2150,#0a1738);color:var(--ivory);border:1px solid var(--line);border-left:4px solid var(--bordeaux);border-radius:8px;line-height:1.2;text-align:left;transition:border-color .15s,background .15s}
.vbtn small{display:block;font-size:11px;font-weight:400;color:var(--sand);margin-top:3px}
.vbtn.sel{border-color:var(--gold);border-left-color:var(--gold);background:linear-gradient(135deg,#17306e,#0f2150);box-shadow:0 0 0 1px var(--gold-d),0 0 14px rgba(214,168,75,.25)}
.vbtn.sel small{color:var(--gold)}
.vbtn:active{transform:scale(.98)}
.hint{font-size:12px;color:var(--sand);margin:0 0 18px;line-height:1.45}
.play{display:block;width:100%;padding:16px;font-size:16px;font-weight:700;background:var(--bordeaux);color:#fff;border:1px solid var(--gold);border-radius:8px;margin:6px 0 16px;box-shadow:0 0 18px rgba(214,168,75,.2)}
.play:disabled{opacity:.45;box-shadow:none}
.rules{margin-top:14px;border-top:1px solid var(--line);padding-top:16px;font-size:13px;color:var(--sand);line-height:1.6}
.rules dt{color:var(--ivory);font-weight:600;margin-top:8px}
/* spin */
.spin{text-align:center;padding:30px 0}
.wheelbox{position:relative;width:260px;height:260px;margin:14px auto}
.wheelbox svg{width:100%;height:100%;display:block}
.pointer{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:24px solid #D6A84B;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;background:radial-gradient(circle,#09131D,#050A10);border:3px solid #D6A84B;display:grid;place-items:center;font-size:30px;font-weight:800;color:#fff;letter-spacing:-.04em}
.hub.win{color:var(--gold)}
.hub.win.small{font-size:22px}
@keyframes secglow{from{filter:drop-shadow(0 0 2px #fff)}to{filter:drop-shadow(0 0 9px #fff)}}
.wheelbox path.special{animation:secglow .9s ease-in-out infinite alternate}
.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:6px 0 4px}
.legend span{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:#0d1c42;white-space:nowrap}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px}
@media (prefers-reduced-motion:reduce){.wheelbox path.special{animation:none}}
.prize{font-size:15px;color:var(--sand)}
.prize b{color:var(--ivory)}
/* table */
.table-wrap{position:relative;margin:0 0 6px;display:flex;justify-content:center}
.table{position:relative;height:calc(100dvh - 300px);max-height:600px;min-height:300px;width:auto;max-width:100%;aspect-ratio:1/1.25;border-radius:50%/42%;background:radial-gradient(ellipse at 50% 40%,#2a63c7,var(--felt) 55%,var(--felt-d));border:10px solid #d6a84b;outline:3px solid #fff;outline-offset:-13px;box-shadow:inset 0 0 40px rgba(0,0,0,.6),0 8px 30px rgba(0,0,0,.6)}
.seat{position:absolute;width:92px;text-align:center}
.seat.s1 .card,.seat.s2 .card,.seat.s9 .card{width:28px;height:38px;font-size:12px;padding:2px 3px}
.seat.s9 .card .s{font-size:12px}
.card.pick{cursor:pointer;outline:2px solid var(--gold);animation:glow 1s ease-in-out infinite alternate}
.card.pick:active{transform:translateY(-6px)}
.six .seat{width:80px}
.six .board .card,.six .fc{width:30px;height:42px;font-size:13px}
.six .board .cards{gap:4px}
.six .board .card .s{font-size:13px}
.six .pot{font-size:13px}
.six.four .seat.s9 .card{width:22px;height:31px}
.six.four .seat.s9 .card+.card{margin-left:-12px}
.six.stud .seat.s9{width:80px}
.six.stud .seat.s9 .card{width:22px;height:31px}
.six.stud .seat.s9 .card+.card{margin-left:-14px}
.six .nameplate{font-size:10px;padding:2px 4px}
.six .nameplate .stack{font-size:12px}
.six .seat.s9 .card{width:24px;height:33px;font-size:11px}
.four .seat.s1 .card+.card,.four .seat.s2 .card+.card,.four .seat.s9 .card+.card{margin-left:-11px}
.four .seat.s0 .card+.card{margin-left:-5px}
.four.six .seat.s9 .card{width:22px;height:31px}
.four.six .seat.s9 .card+.card{margin-left:-12px}
.stud .seat.s9 .card+.card{margin-left:-15px}
.stud .seat.s9{width:130px}
.nameplate{background:rgba(0,0,0,.6);border:1px solid var(--line);border-radius:8px;padding:3px 6px;font-size:11px;line-height:1.25;white-space:nowrap}
.nameplate.acting{border-color:var(--gold);box-shadow:0 0 0 2px rgba(226,181,82,.35)}
.nameplate.out{opacity:.4}
.nameplate .stack{color:var(--gold);font-weight:700;font-size:13px}
.nameplate .act{color:var(--sand);font-size:10px;min-height:12px}
.dealer{position:absolute;width:18px;height:18px;border-radius:50%;background:var(--ivory);color:var(--ink);font-size:10px;font-weight:800;display:grid;place-items:center;top:-6px;right:-4px}
.hole{display:flex;justify-content:center;gap:3px;margin:3px 0}
.four .seat.s0 .card{width:32px;height:45px;font-size:13px}
.stud .hole .card+.card{margin-left:-9px}
.stud .seat.s0 .card{width:32px;height:45px;font-size:13px}
.stud .seat.s1 .card+.card,.stud .seat.s2 .card+.card{margin-left:-14px}
.stud .seat.s1,.stud .seat.s2{width:150px}
.stud .seat.two.s1{width:170px}
.stud .seat.two.s1 .card+.card{margin-left:-8px}
.stud .seat.s0 .card.down{box-shadow:inset 0 -3px 0 var(--gold),0 1px 3px rgba(0,0,0,.5)}
.stud .board{top:52%}
.seat.s1 .card,.seat.s2 .card{width:28px;height:38px;font-size:12px;padding:2px 3px}
.seat.s1 .card .s,.seat.s2 .card .s{font-size:12px}
.card{width:36px;height:50px;border-radius:5px;background:#fbf8f1;color:#1a1a1a;display:grid;grid-template-rows:1fr auto;padding:3px 4px;font-weight:700;font-size:15px;line-height:1;text-align:left;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.card .s{text-align:right;font-size:16px}
.card.red{color:#c8232c}
.card.back{background:repeating-linear-gradient(45deg,#2a63c7 0 4px,#173f8f 4px 8px);border:2px solid #fff}
.bet{display:none}
.cstack{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px;pointer-events:none;z-index:1}
.cstack .pile{display:flex;flex-direction:column-reverse;align-items:center}
.chip{width:22px;height:9px;border-radius:50%;margin-top:-5px;border:2px solid;box-sizing:border-box;box-shadow:0 1px 0 rgba(0,0,0,.5);background-image:repeating-conic-gradient(from 0deg,rgba(255,255,255,.85) 0 18deg,transparent 18deg 60deg)}
.chip:first-child{margin-top:0}
.chip.c1{background-color:#f2f2f2;border-color:#bfbfbf;background-image:repeating-conic-gradient(from 0deg,#2a63c7 0 18deg,transparent 18deg 60deg)}
.chip.c5{background-color:#d92b2b;border-color:#8f1010}
.chip.c25{background-color:#1f9d55;border-color:#0f5e30}
.chip.c100{background-color:#1a1a1a;border-color:#000}
.chip.c10{background-color:#1f5fd6;border-color:#0f357f}
.chip.c500{background-color:#7d3cc7;border-color:#4b1f80}
.chip.c1000{background-color:#f2c11e;border-color:#a37f0a}
.cstack .amt{font-size:12px;font-weight:800;color:#fff;background:rgba(0,0,0,.65);padding:1px 6px;border-radius:999px;border:1px solid var(--gold);white-space:nowrap}
.board{z-index:2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;width:100%}
.board .cards{display:flex;justify-content:center;gap:5px;min-height:56px}
.board .card{width:40px;height:56px}
.fc{width:40px;height:56px;perspective:320px}
.fc .in{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:flip 1.9s cubic-bezier(.35,.6,.25,1) forwards}
.fc .fa,.fc .bk{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.fc .fa{transform:rotateY(180deg)}
.fc .card{width:100%;height:100%}
@keyframes flip{0%{transform:rotateY(0) translateY(0)}30%{transform:rotateY(40deg) translateY(-10px) scale(1.06)}55%{transform:rotateY(90deg) translateY(-16px) scale(1.14)}100%{transform:rotateY(180deg) translateY(0) scale(1)}}
@media (prefers-reduced-motion:reduce){.fc .in{animation-duration:.2s}}
.pot{margin-top:6px;font-size:14px;color:var(--ivory);min-height:18px}
.pot b{color:var(--gold)}
.blinds{display:none}
.msg{min-height:20px;text-align:center;font-size:13px;color:var(--sand);margin:2px 0}
.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.actions button{padding:11px 4px;font-weight:600;font-size:14px;background:#12285c;color:var(--ivory);border:1px solid var(--line);transition:box-shadow .2s,transform .2s}
.actions .fold{background:#1a2440}
.actions button.glow{border-color:var(--gold);box-shadow:0 0 12px rgba(214,168,75,.55);animation:glow 1.1s ease-in-out infinite alternate}
.actions button.glow.main{background:var(--gold);color:var(--ink);box-shadow:0 0 22px rgba(214,168,75,.9);transform:scale(1.04)}
@keyframes glow{from{box-shadow:0 0 8px rgba(214,168,75,.35)}to{box-shadow:0 0 22px rgba(214,168,75,.95)}}
.actions .raise{background:var(--bordeaux);color:#fff}
.sizing{display:flex;gap:8px;margin-top:6px}
.sizing button{flex:1;padding:7px;font-size:13px;background:#0d1c42;color:var(--sand);border:1px solid var(--line)}
.sizing button.sel{color:var(--gold);border-color:var(--gold-d)}
.result{text-align:center;padding:28px 0}
.result h1{font-size:30px}
.result .big{font-size:56px;font-weight:800;color:var(--gold);letter-spacing:-.04em;line-height:1;margin:14px 0}
.btn{display:inline-block;background:var(--gold);color:var(--ink);padding:12px 22px;border-radius:8px;font-weight:700;margin-top:14px}
.btn.ghost{background:transparent;color:var(--sand);border:1px solid var(--line);margin-left:6px}
.leave{margin-top:6px;text-align:center}
.leave button{background:none;color:rgba(245,239,228,.5);font-size:12px;text-decoration:underline}
@media (prefers-reduced-motion:reduce){.wheel.spinning,.actions button.glow{animation:none}}
/* left:12px — le texte vertical (≈19px de large, centré sur `left` par translate(-50%)) doit rester ENTIER :
   à left:2px son bord gauche tombait à -7,5px du bord de .table-wrap (overflow-x:auto), qui le coupait à
   TOUTES les largeurs (mesuré 1440/1280/1512/390 : 7,5px rognés). À 12px, bord gauche ≈ +2,5px dans .table-wrap. */
.brand-side{position:absolute;left:12px;top:50%;transform:translate(-50%,-50%) rotate(-90deg);transform-origin:center;line-height:1;pointer-events:none;z-index:2}
.felt-brand{display:inline-block;font-size:19px;font-weight:800;letter-spacing:.16em;white-space:nowrap;pointer-events:none;
  background:linear-gradient(100deg,#2f8bff 0%,#2f8bff 35%,#8fd0ff 48%,#ffffff 52%,#2f8bff 65%,#2f8bff 100%);background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 6px rgba(47,139,255,.9)) drop-shadow(0 0 18px rgba(47,139,255,.55));animation:shine 4.5s ease-in-out infinite}
@keyframes shine{0%{background-position:120% 0}55%{background-position:-30% 0}100%{background-position:-30% 0}}
@media (prefers-reduced-motion:reduce){.felt-brand{animation:none;background-position:50% 0}}

.gate{position:fixed;inset:0;background:rgba(3,8,20,.82);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:12px}
.gate[hidden]{display:none}
.gate-box{position:relative;width:100%;max-width:520px;background:linear-gradient(160deg,#0f2d66,#08132b);border:1px solid var(--gold-d);border-radius:16px;padding:20px 18px 18px;box-shadow:0 20px 60px rgba(0,0,0,.7)}
.gate-x{position:absolute;top:8px;right:10px;background:none;color:var(--sand);font-size:17px;line-height:1;padding:4px 8px}
.glab{display:block;font-size:12px;color:var(--sand);margin:12px 0 8px}
.glab input{display:block;width:100%;margin-top:6px;padding:13px 12px;border-radius:10px;border:1px solid var(--line);background:#08132b;color:#fff;font-size:16px}
.glab input:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.gchk{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--sand);line-height:1.4;margin-bottom:6px}
.gchk input{margin-top:3px;accent-color:var(--gold)}
.gchk a{color:var(--gold)}
.gerr{min-height:16px;font-size:12px;color:#ff8080;margin:2px 0 8px}
.member{font-size:11px;color:var(--sand);margin-top:2px}
#langSel{background:rgba(0,0,0,.35);border:1px solid var(--line);color:#fff;border-radius:999px;padding:6px 8px;font-weight:700;font-size:12px;-webkit-appearance:none;appearance:none}
body.ingame #langSel{padding:4px 6px;font-size:11px}
.langbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;background:#050A10;border-bottom:1px solid var(--line)}
.langlab{font-size:12px;color:var(--sand);white-space:nowrap}
.flags{display:flex;gap:6px}
.flags button{background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:8px;padding:4px 6px;font-size:18px;line-height:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--sand)}
.flags button small{font-size:9px;font-weight:700}
.flags button.sel{border-color:var(--gold);background:rgba(214,168,75,.15);color:#fff}
body.ingame .langbar{display:none}
