@font-face {
  font-family: 'Black Ops One';
  font-style: normal;
  font-weight: 400;
  src: local('Black Ops One'),
       url('https://db.onlinewebfonts.com/t/0b6a186e96bc5c68353cfaf84dc45c68.woff2') format('woff2'),
       url('https://db.onlinewebfonts.com/t/0b6a186e96bc5c68353cfaf84dc45c68.woff') format('woff');
}
:root {
  --ff:      'Black Ops One', cursive;

  --bg:      #ffffff;
  --white:   #ffffff;
  --orange:  #f47920;
  --green-ci:#009a44;
  --red:     #cc0000;
  --dark:    #1a1a1a;
  --ink:     #1a1a1a;
  --ink2:    #1a1a1a;
  --muted:   #1a1a1a;
  --border:  #e0e0e0;

  --teal:    #009a44;
  --teal2:   #009a44;
  --teal3:   #009a44;
  --teal-dark: #1a1a1a;
  --gold:    #f47920;
  --gold2:   #f47920;
  --gold3:   rgba(244,121,32,0.15);
  --navy:    #1a1a1a;
  --navy2:   #2a2a2a;
  --navy3:   #333333;
  --surface: #f5f5f5;
  --surface2:#eeeeee;
  --cyan:    #009a44;
  --cyan2:   #00c857;
  --rose:    #cc0000;
  --violet:  #1a1a1a;
  --green:   #009a44;
  --green2:  #00c857;

  /* Typographie adaptative */
  --fs-xs:  clamp(9px,  1.4vh, 11px);
  --fs-sm:  clamp(10px, 1.6vh, 13px);
  --fs-md:  clamp(12px, 1.9vh, 15px);
  --fs-lg:  clamp(14px, 2.2vh, 18px);
  --fs-xl:  clamp(17px, 2.8vh, 24px);
  --fs-xxl: clamp(22px, 4vh,   36px);

  /* Espacement adaptatif */
  --sp-xs: clamp(4px,  0.8vh, 8px);
  --sp-sm: clamp(6px,  1.2vh, 12px);
  --sp-md: clamp(8px,  1.8vh, 16px);
  --sp-lg: clamp(12px, 2.5vh, 22px);

  /* Taille boutons */
  --btn-h: clamp(44px, 7vh, 64px);
}

* { margin:0; padding:0; box-sizing:border-box; text-transform:uppercase; }
input[type="password"] { text-transform:none; letter-spacing:3px; }
#id-nom, #id-prenom, #view-nom, #view-prenom { text-transform:none; }
#screen-connexion input[type="password"],
#screen-connexion input[type="tel"] { text-transform:none; }
#screen-identite input[type="text"]:not(#id-pseudo):not(#view-pseudo) { text-transform:none; }
#retrait-pwd, #id-pwd1, #id-pwd2, #conn-pwd, #view-pwd1, #view-pwd2, #id-tel, #view-tel, #conn-tel, #login-tel { text-transform:none; }

body {
  background: #F0FFFF;
  min-height:100vh; min-height:100dvh;
  display:flex; justify-content:center; align-items:center;
  font-family: 'Black Ops One', cursive;
  overflow:hidden;
  position: relative;
}

#starfield { display:none; }

.card {
  width:100vw; height:100dvh;
  background: #F0FFFF;
  position:absolute; top:0; left:0;
  z-index:10;
  overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column;
  border: none;
}
.card::after { display:none; }

.topbar {
  display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: var(--sp-sm) var(--sp-md);
  background: #ffffff;
  border-bottom: 3px solid #1a1a1a;
  position: relative;
  flex-shrink: 0;
}
.topbar::after { display:none; }
.topbar-left  { display:flex; align-items:center; }
.topbar-brand {
  font-family:'Black Ops One', cursive; font-size:clamp(20px, 3.5vh, 28px); letter-spacing:4px;
  color: #0033cc;
  text-align:center;
  text-transform: uppercase;
}
.topbar-right { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.tb-solde {
  font-family:'Black Ops One', cursive; font-size:clamp(13px, 2vh, 18px);
  color: #1a1a1a;
}
.tb-gear {
  width:clamp(30px, 5vh, 38px); height:clamp(30px, 5vh, 38px); cursor:pointer; opacity:0.85;
  transition:opacity 0.2s, transform 0.5s; flex-shrink:0;
  font-size:clamp(16px, 3vh, 22px); display:flex; align-items:center; justify-content:center;
  color:#1a1a1a;
}
.tb-gear:hover { opacity:1; }
.tb-gear svg { width:100%; height:100%; }

.bonus-banner {
  background: linear-gradient(90deg, rgba(200,168,75,0.1), rgba(200,168,75,0.05));
  border-bottom:1px solid rgba(200,168,75,0.2);
  padding:8px 20px;
  display:flex; align-items:center; justify-content:center; gap:12px;
  animation:slideDown 0.4s ease;
}
@keyframes slideDown { from{transform:translateY(-100%);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes spinRing { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.bonus-txt { font-size:var(--fs-md); letter-spacing:3px; color:#f47920; text-transform:uppercase; }
.bonus-btn {
  font-size:var(--fs-sm); letter-spacing:2px; padding:var(--sp-xs) var(--sp-sm); border-radius:6px;
  background:rgba(200,168,75,0.15); border:1px solid rgba(200,168,75,0.5);
  color:#f47920; cursor:pointer; transition:all 0.18s;
}
.bonus-btn:hover { background:rgba(200,168,75,0.28); }

.home-body { padding:var(--sp-md) var(--sp-md) var(--sp-lg); flex:1; display:flex; flex-direction:column; gap:var(--sp-sm); }
.home-sub {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-lg); letter-spacing:5px;
  color:#f47920; text-align:center; text-transform:uppercase;
}

.mode-btn {
  display:flex; align-items:center; justify-content:space-between;
  flex:1; min-height:clamp(80px, 12vh, 110px); padding:0 clamp(14px, 4vw, 22px);
  border-radius:14px;
  background: linear-gradient(135deg, var(--surface2), var(--surface));
  border:1.5px solid var(--border);
  cursor:pointer; position:relative; overflow:hidden;
  transition:border-color 0.2s, transform 0.1s, box-shadow 0.2s;
  box-shadow: 0 2px 16px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.04);
}
.mode-btn::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(200,168,75,0.4), transparent);
}
.mode-btn:hover  { border-color:#1a1a1a; box-shadow:0 4px 24px rgba(200,168,75,0.12), inset 0 1px 0 rgba(255,255,255,0.04); }
.mode-btn:active { transform:scale(0.97); }
.mode-btn.disabled { opacity:0.28; pointer-events:none; }
.mode-label { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:clamp(15px, 2.5vh, 22px); letter-spacing:2px; color:#1a1a1a; }
.mode-sub   { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:clamp(13px, 2vh, 18px); letter-spacing:2px; color:#1a1a1a; margin-top:4px; }
.mode-info  { display:flex; flex-direction:column; }
.mode-arrow { color:#1a1a1a; font-size:var(--fs-xxl); }
.mode-lock  { font-size:22px; color:var(--rose); }
.mode-badge {
  font-size:var(--fs-md); letter-spacing:2px; padding:var(--sp-xs) var(--sp-sm); border-radius:20px;
  background:rgba(200,168,75,0.1); border:1px solid rgba(200,168,75,0.3);
  color:#f47920; margin-right:8px;
}

#screen-home { background: #F0FFFF; }

#screen-home .topbar.home-topbar {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  align-items: stretch; padding: var(--sp-xs);
  background: #F0FFFF; border-bottom: 3px solid #1a1a1a; gap: 8px;
}

.home-tb-box {
  font-family: 'Black Ops One', cursive; font-size: var(--fs-xl); letter-spacing: 1px;
  color: #1a1a1a; background: #F0FFFF; border: 3px solid #1a1a1a;
  border-radius: 8px; padding: var(--sp-xs) 0; text-align: center; cursor: pointer; white-space: nowrap;
}
.home-tb-box--left  { justify-self: stretch; }
.home-tb-box--right { justify-self: stretch; }

#screen-home .home-body { padding: var(--sp-xs) var(--sp-sm); gap: var(--sp-xs); }

#screen-home .mode-btn {
  flex: 1; min-height: 0; padding: var(--sp-xs) var(--sp-sm) var(--sp-xs);
  border-radius: 16px; border-width: 4px;
  flex-direction: column; align-items: flex-start; justify-content: flex-end;
  background: #ffffff; overflow: hidden; gap: 4px;
  box-shadow: 4px 4px 0 rgba(0,0,0,0.15);
  transform: none;
  transition: transform 0.08s, box-shadow 0.08s;
}
#screen-home .mode-btn:active { transform: scale(0.97); box-shadow: 2px 2px 0 rgba(0,0,0,0.15); }
#screen-home .mode-btn::after { display: none; }
#screen-home .mode-info { width: 100%; gap: 2px; }
#screen-home .mode-btn > div:last-child { align-self: flex-end; }
#screen-home .mode-label { font-size: var(--fs-xl); letter-spacing: 2px; line-height: 1.2; display: block; }
#screen-home .mode-sub   { font-size: var(--fs-lg); letter-spacing: 1px; line-height: 1.2; margin-top: 2px; display: block; }
#screen-home .mode-arrow { font-size: var(--fs-xl); }
#screen-home .mode-badge { font-size: var(--fs-sm); letter-spacing: 2px; padding: var(--sp-xs) var(--sp-sm); border-radius: 50px; border-width: 2px; }

#screen-home .mode-btn.training { border-color: #009a44; background: #ffffff; box-shadow: 4px 4px 0 rgba(0,154,68,0.2); }
#screen-home .mode-btn.training .mode-label { color: #009a44; }
#screen-home .mode-btn.training .mode-sub   { color: #009a44; }
#screen-home .mode-btn.training .mode-badge { background: #009a44; border: 2px solid #009a44; color: #ffffff; }
#screen-home .mode-btn.training .mode-arrow { color: #009a44; }

#screen-home .mode-btn.proxi { border-color: #f47920; background: #ffffff; box-shadow: 4px 4px 0 rgba(244,121,32,0.2); }
#screen-home .mode-btn.proxi .mode-label { color: #f47920; }
#screen-home .mode-btn.proxi .mode-sub   { color: #f47920; }
#screen-home .mode-btn.proxi .mode-badge { background: #f47920; border: 2px solid #f47920; color: #ffffff; }
#screen-home .mode-btn.proxi .mode-arrow { color: #f47920; }

#screen-home .mode-btn.battle { border-color: #cc0000; background: #ffffff; box-shadow: 4px 4px 0 rgba(204,0,0,0.2); }
#screen-home .mode-btn.battle .mode-label { color: #cc0000; }
#screen-home .mode-btn.battle .mode-sub   { color: #cc0000; }
#screen-home .mode-btn.battle .mode-badge { background: #cc0000; border: 2px solid #cc0000; color: #ffffff; }
#screen-home .mode-btn.battle .mode-arrow { color: #cc0000; }
#screen-home .mode-btn.battle.disabled    { opacity: 0.5; }
#screen-home .mode-btn.proxi.disabled     { opacity: 0.5; }

#screen-home .bonus-banner { background: rgba(0,154,68,0.08); border-bottom: 2px solid #009a44; }
#screen-home .bonus-txt { color: #009a44; }
#screen-home .bonus-btn { background: #009a44; border-color: #009a44; color: #1a1a1a; }

#screen-params { background: #F0FFFF; }
#screen-params .topbar { background: #ffffff; border-bottom: 3px solid #1a1a1a; }

#screen-params .tb-gear svg path { stroke: #1a1a1a; }

.params-btn {
  display: flex; align-items: center; gap: 18px;
  padding: 0 22px; min-height: 72px; border-radius: 18px;
  background: linear-gradient(135deg, #ffffff, #f0f0f0);
  border: 4px solid #1a1a1a;
  cursor: pointer; overflow: hidden;
  box-shadow: 0 5px 0 #1a1a1a;
  transform: translateY(0);
  transition: transform 0.08s, box-shadow 0.08s;
  position: relative;
}
.params-btn::after {
  content:''; position:absolute; top:0; left:0; right:0; height:45%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.5), transparent);
  border-radius: 14px 14px 0 0; pointer-events:none;
}
.params-btn:active { transform: translateY(4px); box-shadow: 0 1px 0 #1a1a1a; }
.params-icon  { font-size: var(--fs-xxl); flex-shrink: 0; }
.params-label { flex: 1; font-family: 'Black Ops One', cursive; font-size: var(--fs-xl); letter-spacing: 3px; color: #1a1a1a; }
.params-arrow { font-size: var(--fs-xxl); color: #1a1a1a; flex-shrink: 0; }
.params-btn--locked { opacity: 0.8; }
.params-btn--danger {
  background: linear-gradient(135deg, #ff6666, #cc0000);
  border-color: #1a1a1a; box-shadow: 0 5px 0 #7a0000;
}
.params-btn--danger:active { box-shadow: 0 1px 0 #7a0000; }
.params-btn--danger .params-label { color: #ffffff; text-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.params-btn--danger .params-arrow { color: #ffffff; }
.params-btn--success {
  background: linear-gradient(135deg, #44dd77, #009a44);
  border-color: #1a1a1a; box-shadow: 0 5px 0 #005c29;
}
.params-btn--success:active { box-shadow: 0 1px 0 #005c29; }
.params-btn--success .params-label { color: #ffffff; text-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.hist-body   { padding:var(--sp-md); flex:1; min-height:0; display:flex; flex-direction:column; gap:var(--sp-xs); overflow-y:auto; -webkit-overflow-scrolling:touch; }
.hist-empty  { font-family:'Black Ops One', cursive; font-size:var(--fs-md); letter-spacing:3px; color:#1a1a1a; text-align:center; margin:auto; text-transform:uppercase; }
.hist-item   { display:flex; align-items:center; justify-content:space-between; padding:var(--sp-sm) var(--sp-md); border-radius:14px; background:#ffffff; border:3px solid #1a1a1a; }
.hist-left   { display:flex; flex-direction:column; gap:4px; }
.hist-mode   { font-family:'Black Ops One',cursive; font-size:var(--fs-md); letter-spacing:3px; color:#1a1a1a; text-transform:uppercase; }
.hist-rule   { font-family:'Black Ops One',cursive; font-size:var(--fs-md); letter-spacing:3px; color:#1a1a1a; text-transform:uppercase; }
.hist-amount { font-family:'Black Ops One', cursive; font-size:var(--fs-md); }
.hist-amount.gain  { color:#009a44; }
.hist-amount.perte { color:#cc0000; }

#screen-solde { background: #F0FFFF; }
#screen-solde .topbar { background: #ffffff; border-bottom: 3px solid #1a1a1a; }

#screen-solde .tb-gear svg path { stroke:#1a1a1a; }

.solde-main {
  flex:1; display:flex; flex-direction:column;
  padding:var(--sp-md) var(--sp-sm) var(--sp-lg); gap:var(--sp-sm);
}
.solde-balance-card {
  background: #ffffff;
  border:3px solid #1a1a1a;
  border-radius:16px; padding:var(--sp-lg) var(--sp-md);
  text-align:center;
  box-shadow:4px 4px 0 rgba(0,0,0,0.15);
}
.solde-balance-lbl {
  font-size:var(--fs-xs); letter-spacing:4px;
  color:#1a1a1a; margin-bottom:var(--sp-xs);
}
.solde-balance-val {
  font-family:'Black Ops One', cursive;
  font-size:clamp(28px,6vh,42px); letter-spacing:2px;
  color:#1a1a1a;
}
.solde-btns-row {
  display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-sm);
}
.solde-btn {
  display:flex; align-items:center; justify-content:center; gap:10px;
  padding:var(--sp-md) var(--sp-sm);
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-lg); letter-spacing:3px;
  border-radius:14px; cursor:pointer;
  border:3px solid; transition:all 0.18s;
  box-shadow:3px 3px 0 rgba(0,0,0,0.15);
}
.solde-btn:active { transform:scale(0.96); }
.solde-btn--green { color:#009a44; border-color:#009a44; background:#f0fff5; }
.solde-btn--green:hover { background:#e0f5ea; }
.solde-btn--red { color:#cc0000; border-color:#cc0000; background:#fff0f0; }
.solde-btn--red:hover { background:#ffe0e0; }
.solde-btn--orange { color:#f47920; border-color:#1a1a1a; background:#ffffff; }
.solde-btn--orange:hover { background:#fff5ee; }

.solde-hist-title {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:4px;
  color:#1a1a1a; margin-top:var(--sp-xs);
}
.solde-hist-list { max-height:220px; display:flex; flex-direction:column; gap:8px; overflow-y:auto; }
.solde-hist-empty {
  font-size:var(--fs-sm); letter-spacing:3px;
  color:#1a1a1a; text-align:center; margin-top:var(--sp-lg);
}
.solde-hist-item {
  display:flex; justify-content:space-between; align-items:center;
  padding:var(--sp-sm) var(--sp-md); border-radius:12px;
  background:#ffffff; border:2px solid #e0e0e0;
}
.solde-hist-item-lbl { font-size:var(--fs-sm); letter-spacing:2px; color:#1a1a1a; }
.solde-hist-item-date { font-size:var(--fs-xs); letter-spacing:1px; color:#1a1a1a; margin-top:3px; }
.solde-hist-item-amt {
  font-family:'Black Ops One', cursive; font-size:var(--fs-lg); letter-spacing:1px;
}
.solde-hist-item-amt.pos { color:#009a44; }
.solde-hist-item-amt.neg { color:#cc0000; }
.solde-hist-item-amt.type-depot      { color:#009a44; }
.solde-hist-item-amt.type-retrait    { color:#cc0000; }
.solde-hist-item-amt.type-gain       { color:#0033cc; }
.solde-hist-item-amt.type-perte      { color:#cc0000; }
.solde-hist-item-amt.type-commission { color:#f47920; }

.solde-sub {
  flex:1; display:flex; flex-direction:column;
  padding:var(--sp-lg) var(--sp-md); gap:var(--sp-md);
  justify-content:center;
}
.solde-sub-amount {
  font-family:'Black Ops One', cursive;
  font-size:clamp(26px,5.5vh,38px); letter-spacing:2px;
  color:#1a1a1a; text-align:center;
}
.solde-sub-lbl {
  font-size:var(--fs-xs); letter-spacing:4px;
  color:#f47920; text-align:center; text-transform:uppercase;
}
.solde-input-wrap { position:relative; }
.solde-input {
  width:100%; padding:var(--sp-md) 60px var(--sp-md) var(--sp-md);
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-xl); letter-spacing:2px; color:#1a1a1a;
  background:#ffffff; border:3px solid #1a1a1a;
  border-radius:14px; outline:none;
  transition:border-color 0.2s;
  -moz-appearance:textfield;
}
.solde-input::-webkit-outer-spin-button,
.solde-input::-webkit-inner-spin-button { -webkit-appearance:none; }
.solde-input::placeholder { color:#1a1a1a; font-size:var(--fs-lg); }
.solde-input:focus { border-color:#f47920; }
.solde-input-unit {
  position:absolute; right:18px; top:50%; transform:translateY(-50%);
  font-family:'Black Ops One', cursive; font-size:var(--fs-md); letter-spacing:2px;
  color:#1a1a1a;
}
.solde-presets { display:flex; gap:10px; flex-wrap:wrap; }
.solde-preset {
  flex:1; min-width:52px;
  padding:var(--sp-sm) var(--sp-xs); text-align:center;
  font-family:'Black Ops One', cursive; font-size:var(--fs-md); letter-spacing:1px;
  color:#1a1a1a; background:#ffffff; border:3px solid #1a1a1a;
  border-radius:12px; cursor:pointer; transition:all 0.15s;
  box-shadow:3px 3px 0 #1a1a1a;
}
.solde-preset:hover  { background:#f0f0f0; }
.solde-preset:active { transform:scale(0.95); }

.solde-pwd-lbl {
  font-size:var(--fs-xs); letter-spacing:3px;
  color:#f47920; text-transform:uppercase;
}
.solde-feedback {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:3px;
  text-align:center; min-height:18px;
  color:#f47920; text-transform:uppercase;
}
.solde-action-submit {
  width:100%; padding:var(--sp-md);
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-lg); letter-spacing:4px;
  border-radius:14px; cursor:pointer;
  border:3px solid; transition:all 0.18s;
  box-shadow:3px 3px 0 rgba(0,0,0,0.15);
}
.solde-action-submit:active { transform:scale(0.97); }
.solde-action-submit--gold {
  color:#1a1a1a; border-color:#1a1a1a; background:#ffffff;
}
.solde-action-submit--gold:hover { background:#f0f0f0; }
.solde-action-submit--red {
  color:#cc0000; border-color:#cc0000; background:#fff0f0;
}
.solde-action-submit--red:hover { background:#ffe0e0; }
.solde-action-back {
  width:100%; padding:var(--sp-md);
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing:3px;
  color:#1a1a1a; background:#f5f5f5; border:2px solid #e0e0e0;
  border-radius:14px; cursor:pointer;
  transition:all 0.18s;
}
.solde-action-back:hover { color:#1a1a1a; border-color:#1a1a1a; }

.modal-ov { position:fixed; inset:0; z-index:200; background:rgba(0,0,0,0.75); display:flex; align-items:center; justify-content:center; padding:var(--sp-md); }
.modal-ov.hidden { display:none; }
.modal-card { width:100%; max-width:360px; background:#ffffff; border-radius:20px; padding:var(--sp-lg) var(--sp-md); border:1.5px solid rgba(200,168,75,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.8); animation:pop 0.28s cubic-bezier(.22,1.5,.5,1) both; display:flex; flex-direction:column; gap:16px; max-height:85vh; overflow-y:auto; }
.modal-title { font-family:'Black Ops One',cursive; font-size:var(--fs-lg); letter-spacing:4px; color:#f47920; text-align:center; text-transform:uppercase; }
.modal-rule { display:flex; flex-direction:column; gap:8px; }
.modal-rule-h { font-family:'Black Ops One',cursive; font-size:14px; letter-spacing:3px; color:var(--cyan); text-transform:uppercase; }
.modal-rule-t { font-family:'Black Ops One',cursive; font-size:var(--fs-xs); letter-spacing:1px; color:#1a1a1a; line-height:1.6; }
.tips-tbl { width:100%; border-collapse:collapse; }
.tips-tbl td { font-family:'Black Ops One',cursive; font-size:var(--fs-xs); letter-spacing:1px; padding:var(--sp-xs); color:#1a1a1a; }
.tips-tbl td:first-child { color:#1a1a1a; white-space:nowrap; }
.modal-close { width:100%; padding:var(--sp-sm); font-family:'Black Ops One',cursive; font-size:var(--fs-md); letter-spacing:4px; border-radius:12px; cursor:pointer; background:rgba(200,168,75,0.1); border:1.5px solid rgba(200,168,75,0.4); color:#f47920; transition:all 0.18s; }
.modal-close:hover { background:rgba(200,168,75,0.2); }

.modal-solde-card { width:320px; background:linear-gradient(160deg, var(--navy3), var(--navy2)); border-radius:20px; padding:var(--sp-lg) var(--sp-md); border:1.5px solid rgba(200,168,75,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.8); animation:pop 0.28s cubic-bezier(.22,1.5,.5,1) both; display:flex; flex-direction:column; gap:14px; }
.modal-solde-title { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-lg); letter-spacing:4px; color:#f47920; text-align:center; text-shadow:0 0 12px rgba(200,168,75,0.4); }
.modal-input-wrap { position:relative; }
.modal-input { width:100%; padding:14px 52px 14px 16px; font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:18px; background:rgba(255,255,255,0.04); border:1.5px solid var(--border); border-radius:12px; color:#1a1a1a; outline:none; text-align:center; letter-spacing:2px; transition:border-color 0.18s; }
.modal-input:focus { border-color:#1a1a1a; box-shadow:0 0 0 3px rgba(200,168,75,0.06); }
.modal-input::placeholder { color:#1a1a1a; font-size:var(--fs-md); }
.modal-input-unit { position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:var(--fs-md); letter-spacing:2px; color:#1a1a1a; }
.modal-presets { display:flex; gap:8px; }
.preset-btn { flex:1; padding:9px 0; text-align:center; font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:1px; border-radius:8px; cursor:pointer; background:rgba(200,168,75,0.07); border:1.5px solid rgba(200,168,75,0.22); color:#f47920; transition:all 0.15s; }
.preset-btn:hover { background:rgba(200,168,75,0.15); border-color:#1a1a1a; }
.modal-feedback { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:2px; text-align:center; text-transform:uppercase; min-height:16px; }
.modal-confirm-btn { width:100%; padding:var(--sp-sm); font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-lg); letter-spacing:3px; border-radius:12px; cursor:pointer; text-align:center; background:linear-gradient(135deg,rgba(200,168,75,0.18),rgba(200,168,75,0.06)); border:1.5px solid rgba(200,168,75,0.55); color:#f47920; transition:all 0.18s; box-shadow:0 4px 18px rgba(200,168,75,0.1); }
.modal-confirm-btn:hover { box-shadow:0 6px 28px rgba(200,168,75,0.2); }
.modal-confirm-btn.danger { background:linear-gradient(135deg,rgba(238,51,68,0.18),rgba(238,51,68,0.06)); border-color:rgba(238,51,68,0.5); color:var(--red); }
.modal-cancel-btn { width:100%; padding:11px; font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:14px; letter-spacing:4px; border-radius:10px; cursor:pointer; text-align:center; border:1.5px solid var(--border); background:transparent; color:#1a1a1a; transition:all 0.18s; }
.modal-cancel-btn:hover { border-color:#1a1a1a; color:#f47920; }

.training-banner { background:rgba(68,212,255,0.07); border-bottom:1px solid rgba(68,212,255,0.15); padding:6px 14px; font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-sm); letter-spacing:3px; color:rgba(68,212,255,0.5); text-align:center; text-transform:uppercase; }

#tuto-overlay {
  position:absolute; top:0; left:0; right:0;
  background:#ffffff;
  border:2px solid #f47920; border-radius:8px;
  z-index:60;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:12px 14px;
}
#tuto-overlay.hidden { display:none; }
#tuto-overlay-msg {
  font-family:'Black Ops One',cursive;
  font-size:var(--fs-xs); letter-spacing:1.5px; line-height:1.6;
  color:#1a1a1a; text-align:center;
}
#tuto-overlay-btn {
  font-family:'Black Ops One',cursive;
  font-size:var(--fs-xs); letter-spacing:2px;
  background:#ffffff; color:#f47920;
  border:2px solid #f47920; border-radius:4px;
  padding:8px 24px; cursor:pointer;
}

.proxi-choice-body {
  flex:1; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:var(--sp-md); padding:var(--sp-lg) var(--sp-sm);
}
.proxi-choice-btn {
  width:100%; flex:1; max-height:200px; min-height:130px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  border-radius:16px; border:4px solid #1a1a1a;
  background:#ffffff; cursor:pointer;
  transition:opacity 0.18s, transform 0.1s;
  box-shadow:5px 5px 0 #1a1a1a;
}
.proxi-choice-btn:hover  { background:#fff5ee; }
.proxi-choice-btn:active { transform:scale(0.97); }
.proxi-choice-label {
  font-family:'Black Ops One', cursive; font-size:var(--fs-xxl); letter-spacing:3px; color:#f47920;
}

/* ── RADAR LOBBY ── */
@keyframes radar-ping {
  0%   { transform: scale(0.1); opacity: 0.8; }
  100% { transform: scale(1);   opacity: 0; }
}
@keyframes radar-dot-pulse {
  0%,100% { transform: scale(1); box-shadow: 0 0 6px #f47920; }
  50%     { transform: scale(1.3); box-shadow: 0 0 16px #f47920; }
}
@keyframes detection-pulse {
  0%   { transform: translate(-50%,-50%) scale(0.5); opacity:1; }
  100% { transform: translate(-50%,-50%) scale(2.5); opacity:0; }
}
.radar-wrap {
  position: absolute;
  top: -4px; left: -4px; right: -4px; bottom: -4px;
  overflow: hidden;
  border-radius: 0;
}
.radar-canvas {
  width: 100%; height: 100%;
}
.radar-center-dot {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 12px; height: 12px;
  border-radius: 50%;
  background: #f47920;
  animation: radar-dot-pulse 1s ease-in-out infinite;
  z-index: 2;
}
.radar-detection {
  position: absolute;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: #cc0000;
  pointer-events: none;
  z-index: 3;
  animation: detection-pulse 0.8s ease-out forwards;
}

.proxi-lobby-body {
  flex:1; min-height:0; display:flex; flex-direction:column; gap:14px; padding:var(--sp-md) var(--sp-sm); overflow-y:auto; -webkit-overflow-scrolling:touch;
  position: relative;
}
.proxi-share-lbl {
  font-size:var(--fs-lg); letter-spacing:4px; color:#f47920; text-align:center; text-transform:uppercase;
}
.proxi-code-display {
  font-family:'Black Ops One', cursive; font-size:clamp(32px,7vh,48px); letter-spacing:10px;
  color:#f47920; text-align:center;
}

.proxi-join-body {
  flex:1; display:flex; flex-direction:column; gap:20px;
  padding:var(--sp-lg) var(--sp-md); justify-content:center;
}
.proxi-join-input {
  width:100%; padding:var(--sp-md); text-align:center;
  font-family:'Black Ops One', cursive; font-size:var(--fs-xxl); letter-spacing:6px;
  color:#f47920; background:#ffffff;
  border:3px solid #1a1a1a; border-radius:14px; outline:none;
  text-transform:uppercase; transition:border-color 0.2s;
}
.proxi-join-input:focus { border-color:#f47920; }
.proxi-join-input::placeholder { color:#1a1a1a; font-size:var(--fs-xl); letter-spacing:3px; }
.proxi-join-feedback {
  font-family:'Black Ops One', cursive; font-size:var(--fs-sm); letter-spacing:3px;
  text-align:center; min-height:18px; text-transform:uppercase; color:#1a1a1a;
}
.proxi-join-btn {
  width:100%; padding:var(--sp-md); font-family:'Black Ops One', cursive;
  font-size:var(--fs-lg); letter-spacing:4px; border-radius:14px; cursor:pointer;
  border:3px solid #1a1a1a; background:#ffffff;
  color:#f47920; transition:all 0.18s;
  box-shadow:3px 3px 0 rgba(0,0,0,0.15);
}
.proxi-join-btn:hover { background:#fff5ee; }

.proxi-player-row {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border-radius:8px;
  background:#ffffff; border:3px solid #1a1a1a;
  animation:slideUp 0.35s cubic-bezier(.22,1.5,.5,1) both;
}
@keyframes slideUp { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.proxi-player-row.me    { border-color:#1a1a1a; }
.proxi-player-row.ready { border-color:#1a1a1a; }
.pp-left   { display:flex; align-items:center; gap:12px; }
.pp-avatar { width:clamp(34px,5vh,42px); height:clamp(34px,5vh,42px); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:var(--fs-xl); background:#f5f5f5; border:2px solid #e0e0e0; flex-shrink:0; }
.pp-name   { font-family:'Black Ops One', cursive; font-size:var(--fs-lg); letter-spacing:1px; color:#1a1a1a; }
.pp-status { font-family:'Black Ops One', cursive; font-size:var(--fs-sm); letter-spacing:2px; color:#1a1a1a; text-transform:uppercase; }
.pp-status.waiting { color:#1a1a1a; }

.proxi-progress-bar  { width:100%; height:4px; border-radius:3px; background:rgba(255,255,255,0.08); overflow:hidden; }
.proxi-progress-fill { height:100%; background:#1a1a1a; transition:width 0.5s ease; }
.proxi-count {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-sm); letter-spacing:3px;
  color:#1a1a1a; text-align:center; text-transform:uppercase;
}
.proxi-count span { color:#1a1a1a; }

.proxi-scan-zone { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; flex:1; }
.proxi-radar { position:relative; width:180px; height:180px; display:flex; align-items:center; justify-content:center; }
.radar-ring { position:absolute; border-radius:50%; border:1.5px solid rgba(200,168,75,0.2); animation:radarPulse 2.4s ease-out infinite; }
.radar-ring:nth-child(1){ width:60px;  height:60px;  animation-delay:0s; }
.radar-ring:nth-child(2){ width:110px; height:110px; animation-delay:0.6s; }
.radar-ring:nth-child(3){ width:160px; height:160px; animation-delay:1.2s; }
@keyframes radarPulse { 0%{opacity:0.8;border-color:#1a1a1a} 100%{opacity:0;border-color:rgba(26,26,26,0)} }
.radar-sweep { position:absolute; width:100%; height:100%; border-radius:50%; background:conic-gradient(from 0deg, transparent 70%, rgba(26,26,26,0.15) 100%); animation:sweep 2s linear infinite; }
@keyframes sweep { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.radar-center { width:46px; height:46px; border-radius:50%; z-index:2; background:radial-gradient(circle at 35% 30%, rgba(200,168,75,0.5), rgba(200,168,75,0.12)); border:2px solid rgba(200,168,75,0.5); display:flex; align-items:center; justify-content:center; font-size:var(--fs-xl); box-shadow:0 0 20px rgba(200,168,75,0.3); }
.radar-dot { position:absolute; width:13px; height:13px; border-radius:50%; background:#1a1a1a; border:2px solid rgba(255,255,255,0.4); box-shadow:none; animation:dotAppear 0.4s cubic-bezier(.22,1.5,.5,1) both; z-index:3; }
@keyframes dotAppear { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }
.proxi-scan-lbl    { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:4px; color:#1a1a1a; text-transform:uppercase; text-align:center; }
.proxi-scan-sublbl { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:2px; color:#f47920; text-transform:uppercase; text-align:center; }
.proxi-players { display:flex; flex-direction:column; gap:10px; }
.proxi-player-row { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-radius:14px; background:var(--surface2); border:1.5px solid var(--border); animation:slideUp 0.35s cubic-bezier(.22,1.5,.5,1) both; }
@keyframes slideUp { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.proxi-player-row.me    { border-color:#1a1a1a; }
.proxi-player-row.ready { border-color:#1a1a1a; }
.pp-left   { display:flex; align-items:center; gap:12px; }
.pp-avatar { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; background:var(--surface); border:1.5px solid var(--border); }
.pp-name   { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:1px; color:#1a1a1a; }
.pp-tag    { font-size:var(--fs-sm); letter-spacing:2px; color:#1a1a1a; text-transform:uppercase; margin-top:2px; }
.pp-status { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:2px; color:#1a1a1a; text-transform:uppercase; }
.pp-status.waiting  { color:#1a1a1a; }
.pp-status.scanning { color:#f47920; animation:blink2 1.2s ease-in-out infinite; }
@keyframes blink2 { 0%,100%{opacity:1} 50%{opacity:0.25} }
.proxi-progress-bar  { width:100%; height:5px; border-radius:3px; background:rgba(255,255,255,0.05); border:1px solid var(--border); overflow:hidden; }
.proxi-progress-fill { height:100%; width:33%; background:linear-gradient(90deg, var(--gold), var(--cyan)); box-shadow:0 0 10px rgba(200,168,75,0.5); transition:width 0.5s ease; }
.proxi-count { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:3px; color:#1a1a1a; text-align:center; text-transform:uppercase; }
.proxi-count span { color:#f47920; }
.p-stat { background:rgba(255,255,255,0.04);border-radius:12px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;border:1.5px solid var(--border); }
.p-stat-lbl { font-size:var(--fs-md);letter-spacing:2px;color:#1a1a1a; }
.p-stat-val { font-size:var(--fs-xl); }
.p-score-wrap { background:linear-gradient(135deg,var(--surface2),var(--surface));border:1.5px solid rgba(200,168,75,0.4);border-radius:16px;padding:22px;text-align:center; }
.p-score-lbl { font-size:var(--fs-sm);letter-spacing:4px;color:#1a1a1a;margin-bottom:6px; }
.p-score-val { font-size:clamp(40px,9vh,64px);color:#f47920;text-shadow:0 0 24px rgba(200,168,75,0.6),0 0 50px rgba(200,168,75,0.2);line-height:1; }
.p-score-formula { font-size:var(--fs-xs);letter-spacing:3px;color:#1a1a1a;margin-top:8px; }
.code-box {
  width:58px; height:68px; border-radius:12px;
  background:rgba(255,255,255,0.05); border:2px solid var(--border);
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xxl);
  color:#f47920; text-align:center; outline:none;
  text-transform:uppercase; caret-color:#f47920;
  transition:border-color 0.2s, box-shadow 0.2s;
}
.code-box:focus {
  border-color:#1a1a1a;
  box-shadow:0 0 14px rgba(200,168,75,0.2);
}

#screen-profil {
  background: #ffffff;
  border-color: rgba(200,168,75,0.2);
}
#screen-profil .topbar {
  background: #ffffff;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

#screen-profil .tb-gear svg path { stroke: rgba(200,168,75,0.85); }

.profil-scroll {
  flex: 1; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: var(--sp-md) var(--sp-sm) var(--sp-lg);
  display: flex; flex-direction: column; gap: var(--sp-sm);
}

.profil-hero {
  background: #ffffff;
  border: 3px solid #1a1a1a;
  border-radius: 16px;
  padding: var(--sp-lg) var(--sp-md);
  display: flex;
  align-items: center;
  gap: var(--sp-md);
  box-shadow: 4px 4px 0 #1a1a1a;
}
.profil-avatar {
  width: clamp(64px, 11vh, 88px);
  height: clamp(64px, 11vh, 88px);
  border-radius: 50%;
  border: 3px solid #1a1a1a;
  background: #f0f4f8;
  display: flex; align-items: center; justify-content: center;
  font-size: clamp(32px, 6.5vh, 46px); flex-shrink: 0;
}
.profil-hero-info { display: flex; flex-direction: column; gap: var(--sp-xs); }
.profil-pseudo {
  font-family: 'Black Ops One', cursive;
  font-size: var(--fs-xl); letter-spacing: 2px;
  color: #1a1a1a;
}
.profil-statut-line {
  font-family: 'Black Ops One', cursive;
  font-size: var(--fs-sm); letter-spacing: 2px;
  color: #1a1a1a;
  display: flex; align-items: center; gap: 8px;
}
.profil-statut-val {
  letter-spacing: 2px;
}
.profil-score-line {
  font-family: 'Black Ops One', cursive;
  font-size: var(--fs-sm); letter-spacing: 2px;
  color: #1a1a1a;
  display: flex; align-items: center; gap: 8px;
}
.profil-score-val {
  color: #f47920;
  font-size: var(--fs-lg);
}

.profil-stats-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: var(--sp-xs);
}
.profil-stat-cell {
  background: #ffffff;
  border: 3px solid #1a1a1a;
  border-radius: 10px;
  padding: var(--sp-sm) var(--sp-md);
  display: flex; flex-direction: column; gap: var(--sp-xs);
  box-shadow: 3px 3px 0 #1a1a1a;
}
.profil-stat-cell-lbl {
  font-size: var(--fs-xs); letter-spacing: 3px;
  color: #1a1a1a; text-transform: uppercase;
}
.profil-stat-cell-val {
  font-family: 'Black Ops One', cursive;
  font-size: var(--fs-xl); letter-spacing: 1px;
  line-height: 1;
}

.profil-section {
  background: #ffffff;
  border: 1.5px solid rgba(200,168,75,0.2);
  border-radius: 18px;
  overflow: hidden;
}
.profil-section-hdr {
  padding: 18px 16px 16px;
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-lg); letter-spacing: 4px;
  color: var(--gold2);
  border-bottom: 1px solid rgba(200,168,75,0.12);
  text-transform: uppercase;
}

.quete-section {
  background: #ffffff;
  border: 1.5px solid rgba(255,255,255,0.2);
  border-radius: 18px; overflow: hidden;
  cursor: pointer;
}
.quete-section-hdr {
  padding: 18px 16px 16px;
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-lg); letter-spacing: 4px;
  color: #1a1a1a;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  text-transform: uppercase;
}
.quete-item {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.quete-item:last-child { border-bottom: none; }
.quete-check {
  font-size:var(--fs-lg); flex-shrink: 0;
}
.quete-info { flex: 1; display: flex; flex-direction: column; gap: 5px; }
.quete-label {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-xs); letter-spacing: 2px;
  color: #1a1a1a;
}
.quete-bar-wrap {
  height: 5px; border-radius: 3px;
  background: rgba(255,255,255,0.08);
  overflow: hidden;
}
.quete-bar-fill {
  height: 100%; border-radius: 3px;
  background: linear-gradient(90deg, #f47920, #009a44);
  transition: width 0.4s ease;
}
.quete-prog {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-xs); letter-spacing: 2px;
  color: #1a1a1a;
}
.profil-rank-row {
  display: flex; align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  gap: 12px;
  transition: background 0.15s;
}
.profil-rank-row:last-child { border-bottom: none; }
.profil-rank-row.me {
  background: rgba(200,168,75,0.1);
  border-left: 3px solid #c8a84b;
}
.profil-rank-num {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-md); min-width: 32px;
  color: var(--muted);
}
.profil-rank-medal { font-size:var(--fs-xl); min-width: 24px; text-align: center; }
.profil-rank-name {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-lg); letter-spacing: 1px;
  color: var(--ink); flex: 1;
}
.profil-rank-row.me .profil-rank-name { color: var(--gold2); }
.profil-rank-score {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-md); color: #1a1a1a;
}
.profil-rank-row.me .profil-rank-score { color: var(--gold2); }
.profil-rank-sep {
  text-align: center; padding: 6px;
  font-size: 13px; letter-spacing: 2px; color: var(--muted);
}

.profil-statut-block {
  border-radius: 18px;
  padding: var(--sp-md) var(--sp-sm);
  display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 4px 24px rgba(0,0,0,0.4);
}
.profil-statut-block-name {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-xxl); letter-spacing: 3px; line-height: 1;
}
.profil-statut-block-rank {
  font-size:var(--fs-xs); letter-spacing: 3px;
  color: var(--muted); margin-top: 6px;
}
.profil-statut-icon { font-size:clamp(36px,8vh,56px); line-height: 1; }

.profil-palmares-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.profil-palmares-row:last-child { border-bottom: none; }
.profil-palmares-lbl {
  font-size: 12px; letter-spacing: 3px; color: var(--muted); text-transform: uppercase;
}
.profil-palmares-val {
  font-family: 'Black Ops One', cursive;
  font-size: 14px; letter-spacing: 2px; color: var(--gold2);
}

#screen-cgu {
  background: #ffffff;
  border-color: rgba(0,154,68,0.25);
}
#screen-cgu .topbar {
  background: #ffffff;
  border-bottom: 1px solid #e0e0e0;
  position: relative;
  z-index: 2;
}
#screen-cgu .topbar::after {
  background: linear-gradient(90deg, transparent, rgba(0,154,68,0.4), transparent);
}

#screen-cgu .tb-gear svg path { stroke: rgba(255,255,255,0.75); }

.cgu-scroll {
  flex: 1; min-height: 0; overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: var(--sp-md) var(--sp-sm) var(--sp-lg);
  display: block;
}
.cgu-header {
  text-align: center;
  padding: 10px 0 6px;
  border-bottom: 1px solid rgba(200,168,75,0.2);
  margin-bottom: 4px;
}
.cgu-title {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing: 3px;
  color: #f0d060;
  text-shadow: 0 0 12px rgba(240,208,80,0.4);
  line-height: 1.4;
}
.cgu-version {
  font-size:var(--fs-xs); letter-spacing: 3px;
  color: var(--muted); margin-top: 6px;
}
.cgu-section {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 16px 16px 14px;
}
.cgu-section-title {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing: 3px;
  color: #f0d060;
  margin-bottom: 10px;
}
.cgu-text {
  font-family: 'Barlow Condensed', sans-serif;
  font-size:var(--fs-md); font-weight: 400;
  letter-spacing: 0.5px; line-height: 1.7;
  color: #1a1a1a;
}
.cgu-footer {
  text-align: center;
  font-size:var(--fs-xs); letter-spacing: 3px;
  color: var(--muted);
  padding: 10px 0 4px;
}

#screen-identite {
  background: #ffffff;
  border-color: rgba(200,168,75,0.2);
}
#screen-identite .topbar {
  background: #ffffff;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

#screen-identite .tb-gear svg path { stroke:rgba(200,168,75,0.85); }

.identite-scroll {
  flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:var(--sp-md) var(--sp-md) var(--sp-lg);
  display:flex; flex-direction:column; gap:var(--sp-sm);
}
.id-body {
  flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:var(--sp-lg) var(--sp-md) var(--sp-lg);
  display:flex; flex-direction:column; gap:var(--sp-md);
}

.id-field { display:flex; flex-direction:column; gap:var(--sp-xs); }
.id-label {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:3px;
  color:#1a1a1a; text-transform:uppercase;
}
.id-optional { font-size:var(--fs-sm); letter-spacing:2px; color:#1a1a1a; }

.id-input {
  width:100%; padding:var(--sp-sm) var(--sp-md);
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing:2px;
  color:#1a1a1a; background:#ffffff;
  border:3px solid #1a1a1a;
  border-radius:10px; outline:none;
  transition:border-color 0.2s;
  -moz-appearance:textfield;
}
.id-input::-webkit-outer-spin-button,
.id-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.id-input::placeholder { color:#1a1a1a; }
.id-input:focus { border-color:#f47920; }

.id-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.id-row-3 { display:grid; grid-template-columns:1fr 1fr 1.4fr; gap:10px; }
.id-input--sm  { text-align:center; }
.id-input--md  { text-align:center; }

.id-row-tel { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:end; }
.id-field--pays { width:auto; }
.id-field--tel  { flex:1; }

.id-select-wrap { position:relative; display:inline-flex; align-items:center; }
.id-select {
  appearance:none; -webkit-appearance:none;
  padding:14px 32px 14px 14px;
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing:1px;
  color:#1a1a1a; background:#ffffff;
  border:3px solid #1a1a1a;
  border-radius:10px; outline:none; cursor:pointer;
  transition:border-color 0.2s;
}
.id-select:focus { border-color:#f47920; }
.id-select option { background:#ffffff; color:#1a1a1a; }
.id-select-wrap::after {
  content:'▾'; position:absolute; right:10px;
  color:#1a1a1a; font-size:var(--fs-sm); pointer-events:none;
}

.id-pwd-wrap { position:relative; }
.id-input--pwd { padding-right:50px; }
.id-eye {
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  font-size:var(--fs-lg); cursor:pointer; opacity:0.5;
  transition:opacity 0.2s; user-select:none;
}
.id-eye:hover { opacity:0.9; }

.pwd-strength { display:flex; flex-direction:column; gap:4px; margin-top:8px; }
.pwd-rule { display:flex; align-items:center; gap:8px; font-family:'Black Ops One', cursive; font-size:var(--fs-xs); letter-spacing:1px; color:#1a1a1a; transition:color 0.2s; }
.pwd-rule.ok { color:#009a44; }
.pwd-rule-dot { width:7px; height:7px; border-radius:50%; background:#e0e0e0; flex-shrink:0; transition:background 0.2s; }
.pwd-rule.ok .pwd-rule-dot { background:#009a44; }

.id-feedback { font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:2px;
  text-align:center; min-height:18px; text-transform:uppercase;
}

.id-submit {
  width:100%; padding:var(--sp-md);
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing:4px;
  color:#f47920; background:#ffffff;
  border:3px solid #1a1a1a;
  border-radius:10px; cursor:pointer;
  transition:all 0.2s;
  box-shadow:3px 3px 0 #1a1a1a;
  margin-top:var(--sp-xs);
}
.id-submit:hover { background:#fff5ee; }
.id-submit:active { transform:translate(2px,2px); box-shadow:1px 1px 0 #1a1a1a; }

#screen-game-hist {
  background: #ffffff;
}
#screen-game-hist .topbar {
  background: #ffffff;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

#screen-game-hist .tb-gear svg path { stroke:rgba(200,168,75,0.85); }
#screen-game-hist > div:last-of-type { padding:16px; flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:14px; }

.palma-fill {
  flex:1; min-height:0; overflow:hidden;
  display:flex; flex-direction:column;
  padding: var(--sp-sm) var(--sp-md);
  gap:0;
}
.palma-section { padding:0; overflow:hidden; }
.palma-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 16px; cursor:pointer;
}
.palma-title { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:3px; color:#f0d060; }
.palma-chevron { font-size:var(--fs-md); color:#1a1a1a; transition:transform 0.25s; }
.palma-body { display:flex; flex-direction:column; flex:1; min-height:0; }
.palma-body.collapsed { display:none; }
.palma-row {
  flex:1; min-height:0;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--sp-xs);
  border-bottom:1px solid #e0e0e0;
}
  display:flex; justify-content:space-between; align-items:center;
  padding:8px 0; border-bottom:1px solid rgba(255,255,255,0.06);
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:2px;
}
.palma-row:last-child { border-bottom:none; }
.palma-name { font-size:var(--fs-xl); letter-spacing:3px; }
.palma-count { color:#1a1a1a; font-size:var(--fs-lg); }
.palma-top3-lbl {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-lg); letter-spacing:3px;
  color:#1a1a1a; padding:10px 0 4px; border-top:1px solid rgba(255,255,255,0.08);
  margin-top:4px;
}

.profil-hist-item {
  display:flex; align-items:flex-start; justify-content:space-between;
  padding:14px 16px; border-radius:14px;
  background:rgba(255,255,255,0.07); border:1.5px solid rgba(255,255,255,0.1);
  cursor:pointer; transition:background 0.15s; gap:12px;
}
.profil-hist-item:hover { background:rgba(255,255,255,0.12); }
.profil-hist-left { display:flex; flex-direction:column; gap:4px; flex:1; }
.profil-hist-mode { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xs); letter-spacing:3px; color:#1a1a1a; }
.profil-hist-rule { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); color:#1a1a1a; }
.profil-hist-date { font-size:var(--fs-xs); letter-spacing:1px; color:#1a1a1a; margin-top:2px; }
.profil-hist-right { display:flex; flex-direction:column; align-items:flex-end; gap:4px; flex-shrink:0; }
.profil-hist-amt { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-lg); }
.profil-hist-amt.gain  { color:var(--green); }
.profil-hist-amt.perte { color:var(--red); }
.profil-hist-detail { font-size:var(--fs-xs); letter-spacing:2px; color:#1a1a1a; }

/* ── ANIMATIONS RÉSULTAT ── */
@keyframes victoire-pop {
  0%   { transform: scale(0.5); opacity:0; }
  60%  { transform: scale(1.15); opacity:1; }
  80%  { transform: scale(0.95); }
  100% { transform: scale(1); }
}
@keyframes contre-shake {
  0%,100% { transform: translateX(0); }
  15%     { transform: translateX(-8px) rotate(-2deg); }
  30%     { transform: translateX(8px) rotate(2deg); }
  45%     { transform: translateX(-6px); }
  60%     { transform: translateX(6px); }
  75%     { transform: translateX(-3px); }
}
@keyframes egalite-pulse {
  0%,100% { transform: scale(1); }
  50%     { transform: scale(1.03); }
}
@keyframes glow-pulse {
  0%,100% { box-shadow: 4px 4px 0 #1a1a1a, 0 0 20px rgba(0,154,68,0.2); }
  50%     { box-shadow: 4px 4px 0 #1a1a1a, 0 0 40px rgba(0,154,68,0.6); }
}
.gh-result-victoire {
  animation: victoire-pop 0.6s cubic-bezier(0.36,0.07,0.19,0.97) forwards, glow-pulse 1.5s ease-in-out 0.6s infinite;
  background: linear-gradient(135deg, #f0fff4, #ffffff) !important;
  border-color: #009a44 !important;
}
.gh-result-contre {
  animation: contre-shake 0.6s cubic-bezier(0.36,0.07,0.19,0.97) forwards;
  background: linear-gradient(135deg, #fff0f0, #ffffff) !important;
  border-color: #cc0000 !important;
}
.gh-result-egalite {
  animation: egalite-pulse 1.5s ease-in-out infinite;
  background: linear-gradient(135deg, #fff8f0, #ffffff) !important;
  border-color: #f47920 !important;
}
.gh-result-label {
  font-family: 'Black Ops One', cursive;
  font-size: clamp(28px, 6vh, 48px);
  letter-spacing: 4px;
  line-height: 1;
  display: block;
  text-align: center;
  margin-bottom: var(--sp-xs);
}
.gh-result-emoji {
  font-size: clamp(36px, 7vh, 56px);
  display: block;
  text-align: center;
  margin-bottom: var(--sp-xs);
}
#confetti-canvas {
  position: fixed; top:0; left:0; width:100%; height:100%;
  pointer-events: none; z-index: 9999;
}

/* ── ANIMATIONS PHASES DE JEU ── */
@keyframes chrono-pulse {
  0%,100% { transform: scale(1); }
  50%     { transform: scale(1.08); }
}
@keyframes circle-shake {
  0%,100% { transform: scale(1); }
  25%     { transform: scale(1.06) rotate(-1deg); }
  75%     { transform: scale(1.06) rotate(1deg); }
}
@keyframes f2v-flash {
  0%,100% { background: transparent; }
  50%     { background: rgba(244,121,32,0.06); }
}
@keyframes timer-danger {
  0%,100% { color: #cc0000; text-shadow: 0 0 8px rgba(204,0,0,0.3); }
  50%     { color: #ff0000; text-shadow: 0 0 20px rgba(255,0,0,0.6); }
}

@keyframes timer-urgent {
  0%,100% { color: #f47920; text-shadow: 0 0 8px rgba(244,121,32,0.4); }
  50%     { color: #ff6600; text-shadow: 0 0 20px rgba(255,102,0,0.7); }
}

.phase-f2v .chrono-label {
  animation: chrono-pulse 0.5s ease-in-out infinite, timer-urgent 0.5s ease-in-out infinite;
}
.phase-f2v .count-circle {
  animation: circle-shake 0.4s ease-in-out;
}
.phase-f2v .game-body {
  animation: f2v-flash 0.8s ease-in-out infinite;
}
.phase-f1r .chrono-label {
  animation: chrono-pulse 1s ease-in-out infinite;
}

.gh-card {
  border-radius:12px; padding:clamp(8px, 1.5vh, 14px) clamp(10px, 2vw, 14px);
  border:3px solid #1a1a1a;
  background:#ffffff;
  box-shadow:3px 3px 0 rgba(0,0,0,0.1);
}
.gh-card--result { border-color:#1a1a1a; }
.gh-card--table { background:#ffffff; border-color:#1a1a1a; flex:1; display:flex; flex-direction:column; overflow:hidden; }

.gh-header {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:4px;
}
.gh-header-mode {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing:3px; color:#f47920;
}
.gh-header-result {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-lg); letter-spacing:3px;
}
.gh-header-amount {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing:2px;
}
.gh-rule {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-xs); letter-spacing:2px;
  color:#1a1a1a; margin-bottom:2px;
}
.gh-ts {
  font-size:var(--fs-xs); letter-spacing:1px;
  color:#1a1a1a; margin-bottom:0;
}

.gh-cases { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gh-case {
  background:#f5f5f5; border:2px solid #e0e0e0;
  border-radius:12px; padding:14px 10px;
  display:flex; flex-direction:column; align-items:center; gap:8px;
}
.gh-case--active { border-color:#1a1a1a; background:#ffffff; }
.gh-case-lbl { font-size:var(--fs-xs); letter-spacing:2px; color:#1a1a1a; }

.gh-circle {
  width:48px; height:48px; border-radius:6px;
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-xl); line-height:48px; text-align:center; flex-shrink:0;
}
.gh-circle--win { background:#f47920; border:2px solid #f47920; color:#1a1a1a; }
.gh-circle--out { background:transparent; border:2.5px solid #1a1a1a; color:#1a1a1a; }
.gh-circle[data-opt="A"] { border-color:#f47920; color:#f47920; }
.gh-circle[data-opt="B"] { border-color:#009a44; color:#009a44; }

.gh-gj-title {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:3px; color:#f47920;
  margin-bottom:12px;
}
.gh-gj-formula {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:1px;
  color:#1a1a1a; margin-bottom:10px;
}
.gh-gj-line {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:1px;
  color:#1a1a1a; margin-bottom:4px;
}
.gh-gj-expl {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:2px;
  color:#1a1a1a; margin-bottom:10px;
}
.gh-gj-result {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:2px; margin-top:8px;
}
.gh-gj-result--win  { color:#009a44; }
.gh-gj-result--lose { color:#cc0000; }

.gh-table-title {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-xs); letter-spacing:3px; color:#f47920;
  margin-bottom:8px;
}
.gh-table { width:100%; border-collapse:collapse; }
.gh-th {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-xs); letter-spacing:2px; color:#1a1a1a;
  padding:0 8px 8px; text-align:center; white-space:nowrap;
  border-bottom:2px solid #1a1a1a;
}
.gh-th--name { text-align:left; color:#1a1a1a; }
.gh-row { border-bottom:1px solid #1a1a1a; }
.gh-row:last-child { border-bottom:none; }
.gh-td { padding:8px 8px; text-align:center; vertical-align:middle; }
.gh-td--name { text-align:left; padding-left:0; }
.gh-name {
  font-family:'Black Ops One', cursive;
  font-size:var(--fs-sm); letter-spacing:2px;
}
.gh-name--me  { color:#f47920; }
.gh-name--bot { color:#1a1a1a; }
.gh-result { font-size:var(--fs-lg); font-weight:900; color:#1a1a1a; }

.game-topbar {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  align-items: stretch; padding: var(--sp-xs);
  background: #ffffff; border-bottom: 3px solid #1a1a1a;
  gap: 8px;
}
.game-center-btn {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-xl); letter-spacing: 2px;
  color: #f47920; background: #ffffff;
  border: 3px solid #f47920; border-radius: 8px;
  padding: 8px 0; width: 100%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all 0.18s;
}
.game-center-btn:hover { background: #fff5ee; }
.game-info-box {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-xl); letter-spacing: 1px;
  color: #1a1a1a; background: #ffffff;
  border: 3px solid #1a1a1a; border-radius: 8px;
  padding: 8px 0; text-align: center; white-space: nowrap;
  cursor: default; user-select: none;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 1px;
  width: 100%;
}
.game-stat-val { font-size:var(--fs-xl); line-height: 1; color: #1a1a1a; }
.game-stat-lbl { font-size: var(--fs-xs); letter-spacing: 2px; color: #1a1a1a; }

.result-overlay {
  position:absolute; inset:0; z-index:100;
  background: #ffffff;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:0; padding:var(--sp-lg) var(--sp-md);
}
.result-overlay.hidden { display:none; }
.result-card {
  width:100%; display:flex; flex-direction:column; align-items:center;
  gap:18px; animation:pop 0.38s cubic-bezier(.22,1.5,.5,1) both;
}
@keyframes pop { from{transform:scale(0.65);opacity:0} to{transform:scale(1);opacity:1} }
.r-icon   { font-size:clamp(56px,12vh,90px); line-height:1; }
.r-title  {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:clamp(36px,8vh,58px); letter-spacing:4px;
  text-align:center; line-height:1;
}
.r-amount {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:clamp(28px,6vh,42px); letter-spacing:2px;
}
.r-amount.gain  { color:#009a44; }
.r-amount.perte { color:#cc0000; }
.r-msg {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:4px;
  color:#1a1a1a; text-align:center; text-transform:uppercase;
}
.r-div { width:70%; height:1px; background:linear-gradient(90deg,transparent,rgba(200,168,75,0.4),transparent); margin:6px 0; }
.r-btn {
  width:100%; padding:var(--sp-md); font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif;
  font-size:var(--fs-lg); letter-spacing:3px; border-radius:14px; cursor:pointer;
  text-align:center; border:2px solid #f47920;
  background:#ffffff; color:#f47920;
  transition:all 0.18s;
}
.r-btn:hover  { background:#fff5ee; }
.r-btn:active { transform:scale(0.97); }
.r-btn.prim   {
  background:#ffffff; border-color:#f47920; color:#f47920;
}
.r-btn.prim:hover { background:#fff5ee; }

.game-body {
  padding: clamp(6px, 1.5vh, 16px) 12px clamp(6px, 1.5vh, 16px); flex:1;
  display:flex; flex-direction:column; gap:clamp(6px, 1.5vh, 12px);
}

/* ── RECTANGLE CHRONO ── */
.game-chrono-rect {
  position: relative;
  background: transparent;
  border: 3px solid #1a1a1a;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(6px, 1.5vh, 10px);
  min-height: clamp(44px, 8vh, 70px);
}
.chrono-label {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif;
  font-size: clamp(22px, 5vh, 36px); letter-spacing: 2px; line-height: 1;
  color: #1a1a1a; z-index: 3; position: relative;
  transition: color 0.5s;
}
.chrono-label.vert  { color: #1bc255; text-shadow: 0 0 16px rgba(27,194,85,0.8); }
.chrono-label.rouge { color: #ee3344; text-shadow: 0 0 16px rgba(238,51,68,0.8); }
/* ÉGALITÉ */
.chrono-egalite {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif;
  font-size: var(--fs-xxl); letter-spacing: 4px; color: #f47920;
  position: absolute; z-index: 4;
  text-shadow: 0 0 14px rgba(244,121,32,0.5);
}
.chrono-egalite.hidden { display: none; }

.timer { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xxl); letter-spacing:-1px; line-height:1; flex-shrink:0; }
.timer.vert  { color:#1bc255; text-shadow:0 0 16px rgba(27,194,85,0.8); }
.timer.rouge { color:#ee3344; text-shadow:0 0 16px rgba(238,51,68,0.8); }
  stroke-dasharray:175.9; stroke-dashoffset:0;
}
.gem {
  width:32px; height:32px; border-radius:50%; position:absolute;
  transition:all 0.3s ease;
}
.gem.vert {
  background:radial-gradient(circle at 32% 25%, #ccffdd 0%, #44ee88 20%, #1bc255 45%, #0a7a33 75%, #033a18 100%);
  box-shadow:0 0 16px rgba(27,194,85,0.9), 0 0 35px rgba(27,194,85,0.35);
}
.gem.rouge {
  background:radial-gradient(circle at 32% 25%, #ffddcc 0%, #ff8866 15%, #ee3344 40%, #990011 72%, #440008 100%);
  box-shadow:0 0 18px rgba(238,51,68,0.95), 0 0 40px rgba(238,51,68,0.4);
}

.options { display:flex; flex-direction:column; gap:clamp(6px, 1.5vh, 10px); flex:1; }
.opt {
  display:flex; align-items:center; flex:1; min-height:0;
  padding:0 clamp(8px, 2vw, 16px); border-radius:14px;
  background: #ffffff;
  border:3px solid #e0e0e0;
  cursor:pointer; position:relative; overflow:hidden;
  transition:border-color 0.18s, transform 0.1s, background 0.18s;
}
.opt::after { display:none; }
.opt:active { transform:scale(0.98); }

#opt-A.sel { border-color:#1a1a1a; background:#ffffff; }
#opt-B.sel { border-color:#1a1a1a; background:#ffffff; }

.opt-letter {
  font-family:'Black Ops One', cursive;
  min-width:var(--circle-size, 110px); flex-shrink:0; display:flex; align-items:center; justify-content:center;
}
#opt-A .opt-letter { color:#1a1a1a; }
#opt-B .opt-letter { color:#1a1a1a; }

.count-circle {
  display:flex; align-items:center; justify-content:center;
  width:var(--circle-size, 110px); height:var(--circle-size, 110px); border-radius:50%;
  border:3.5px solid #1a1a1a;
  font-family:'Black Ops One', cursive; font-size:var(--circle-font, 56px);
  background:transparent; flex-shrink:0;
}
.opt-unique .count-circle { border-color:#2266ee; color:#2266ee; box-shadow:0 0 14px rgba(60,150,255,0.5); }
.chk-emoji { font-size:var(--chk-size, 70px); line-height:1; display:flex; align-items:center; justify-content:center; }

.opt-div {
  width:1.5px; height:40px;
  background:linear-gradient(180deg,transparent,#e0e0e0,transparent);
  margin:0 14px; flex-shrink:0;
}
.opt-right { display:flex; align-items:center; gap:10px; margin-left:auto; }
.coming-soon { opacity:0.5; cursor:default; pointer-events:auto !important; }
.gh-actions { display:flex; flex-direction:column; gap:var(--sp-sm); padding:var(--sp-md); border-top:1px solid #f0f0f0; }

.game-footer { display:none; }

.training-banner {
  background:rgba(68,212,255,0.07); border-bottom:1px solid rgba(68,212,255,0.15);
  padding:5px 14px; font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xs);
  letter-spacing:3px; color:rgba(68,212,255,0.5); text-align:center;
}

.notif-tout-lu {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xs); letter-spacing:2px;
  color:#44d4ff; cursor:pointer; padding:4px 8px;
  border:1px solid rgba(68,212,255,0.4); border-radius:8px;
}
.notif-body { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:14px 14px 24px; display:flex; flex-direction:column; gap:10px; }
.notif-empty { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-sm); letter-spacing:3px; color:#1a1a1a; text-align:center; margin:auto; }
.notif-item {
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 14px; border-radius:14px;
  background:rgba(255,255,255,0.07); border:1.5px solid rgba(255,255,255,0.1);
  position:relative; cursor:pointer; transition:background 0.15s;
}
.notif-item.unread { border-color:rgba(68,212,255,0.3); background:rgba(68,212,255,0.06); }
.notif-item:hover { background:rgba(255,255,255,0.11); }
.notif-dot {
  position:absolute; top:12px; right:12px;
  width:9px; height:9px; border-radius:50%;
  background:#ee3344; flex-shrink:0;
}
.notif-icon { font-size:var(--fs-xxl); flex-shrink:0; margin-top:2px; }
.notif-content { flex:1; }
.notif-title { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:2px; color:#f0d060; margin-bottom:4px; }
.notif-text  { font-size:var(--fs-sm); letter-spacing:1px; color:#1a1a1a; line-height:1.5; margin-bottom:6px; }
.notif-date  { font-size:var(--fs-xs); letter-spacing:1px; color:#1a1a1a; }

.affil-scroll { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:18px 14px 28px; display:flex; flex-direction:column; gap:16px; }
.affil-card {
  border-radius:16px; padding:18px 16px;
  background:rgba(255,255,255,0.07); border:1.5px solid rgba(255,255,255,0.12);
  display:flex; flex-direction:column; gap:14px;
}
.affil-card-title {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-sm); letter-spacing:3px;
  color:#44d4ff; text-transform:uppercase;
}
.affil-code-display {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xxl); letter-spacing:6px;
  color:#f0d060; text-align:center;
  text-shadow:0 0 20px rgba(240,208,80,0.4);
  background:#f5f5f5; border-radius:10px; padding:14px;
}
.affil-timer-lbl {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xs); letter-spacing:3px;
  color:#1a1a1a; text-align:center;
}
.affil-bar-wrap { width:100%; height:5px; border-radius:3px; background:rgba(255,255,255,0.1); overflow:hidden; }
.affil-bar-fill { height:100%; border-radius:3px; background:linear-gradient(90deg,#22dd55,#44d4ff); transition:width 0.5s; }
.affil-stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.affil-stat { background:#f5f5f5; border-radius:10px; padding:12px; text-align:center; }
.affil-stat-val { font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xxl); color:#44d4ff; }
.affil-stat-lbl { font-size:var(--fs-xs); letter-spacing:3px; color:#1a1a1a; margin-top:4px; }
.affil-btns { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.affil-btn {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-sm); letter-spacing:2px;
  padding:14px; border-radius:10px; cursor:pointer; text-align:center;
  border:1.5px solid rgba(200,168,75,0.5); background:rgba(200,168,75,0.1); color:#f0d060;
  transition:all 0.15s;
}
.affil-btn:hover { background:rgba(200,168,75,0.2); }
.affil-btn--disabled { opacity:0.3; cursor:default; pointer-events:none; }
.affil-btn--secondary { border-color:#1a1a1a; background:rgba(255,255,255,0.04); color:#1a1a1a; }
.affil-parrain-code {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xxl); letter-spacing:5px;
  color:#44d4ff; text-align:center; padding:12px;
  background:#f5f5f5; border-radius:10px;
}
.affil-parrain-status { font-size:var(--fs-xs); letter-spacing:3px; color:#22dd55; text-align:center; }

.otp-box {
  width:46px; height:56px; text-align:center;
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xl); letter-spacing:0;
  color:#f0d060; background:#f5f5f5;
  border:1.5px solid rgba(200,168,75,0.45); border-radius:10px; outline:none;
  transition:border-color 0.18s;
}
.otp-box:focus { border-color:#f0d060; }

.login-body {
  flex:1; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:var(--sp-md); padding:var(--sp-lg) var(--sp-md);
}
.login-brand {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:clamp(24px,5.5vh,38px); letter-spacing:8px;
  color:#0033cc; text-shadow:none;
  margin-bottom:4px;
}
.login-icon { font-size:clamp(36px,8vh,52px); }
.login-title {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xl); letter-spacing:5px;
  color:#1a1a1a; margin-bottom:8px;
}
.login-register {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xs); letter-spacing:2px;
  color:#f47920; margin-top:8px; cursor:pointer; text-align:center;
}

.screen-body {
  flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:var(--sp-md); display:flex; flex-direction:column; gap:var(--sp-sm);
}
.screen-body--center {
  flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:var(--sp-md); display:flex; flex-direction:column; gap:var(--sp-sm);
  align-items:center; justify-content:center;
}
.load-body {
  flex:1; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:var(--sp-md); padding:var(--sp-lg) var(--sp-md);
}
.load-title {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-lg); letter-spacing:4px;
  color:#1a1a1a; text-align:center;
}
.load-bar {
  width:80%; height:5px; background:rgba(255,255,255,0.1); border-radius:4px; overflow:hidden;
}
.load-fill {
  height:100%; width:0%; border-radius:4px;
  background:#1a1a1a;
  transition:width 0.1s linear;
}
.load-tip {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-sm); letter-spacing:2px;
  color:#1a1a1a; text-align:center; padding:var(--sp-md) var(--sp-lg);
  border-top:1px solid rgba(255,255,255,0.07); line-height:1.6;
}

.modal-wave {
  position:fixed; inset:0; z-index:200;
  background:rgba(0,0,0,0.7); backdrop-filter:blur(4px);
  display:flex; align-items:flex-end; justify-content:center;
}
.modal-wave.hidden { display:none; }
.modal-wave-card {
  width:100%; max-width:480px;
  background:#ffffff;
  border:1.5px solid rgba(68,212,255,0.3);
  border-radius:24px 24px 0 0; padding:36px 24px 40px;
  display:flex; flex-direction:column; align-items:center; gap:16px;
  animation:slideUpPanel 0.3s ease both;
}
@keyframes slideUpPanel { from{transform:translateY(100%)} to{transform:translateY(0)} }
.modal-wave-icon { font-size:clamp(36px,8vh,56px); }
.modal-wave-brand {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-xxl); letter-spacing:6px;
  color:#44d4ff; text-shadow:0 0 16px rgba(68,212,255,0.5);
}
.modal-wave-msg {
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:2px;
  color:#1a1a1a; text-align:center; line-height:1.6;
}
.modal-wave-pay {
  width:100%; padding:var(--sp-md); margin-top:var(--sp-xs);
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-lg); letter-spacing:3px;
  color:#0d5a64; background:#44d4ff;
  border:none; border-radius:14px; cursor:pointer;
  box-shadow:0 0 24px rgba(68,212,255,0.4); transition:all 0.18s;
}
.modal-wave-pay:hover { background:#66e0ff; }
.modal-wave-back {
  width:100%; padding:var(--sp-md);
  font-family:'Black Ops One', 'Impact', 'Arial Black', sans-serif; font-size:var(--fs-md); letter-spacing:3px;
  color:#1a1a1a; background:transparent;
  border:1.5px solid rgba(255,255,255,0.15); border-radius:14px; cursor:pointer;
}

.hidden { display:none; }

body {
  position: relative;
}
.card {
  position: absolute;
  top: 0; left: 0;
  width: 100vw; height: 100dvh;
}

.card { background: #F0FFFF; }
#screen-profil, #screen-game-hist, #screen-hist-profil,
#screen-classement, #screen-palma, #screen-quetes,
#screen-affiliation, #screen-notif, #screen-cgu, #screen-cgu-accept,
#screen-identite, #screen-identite-lock, #screen-identite-view,
#screen-otp, #screen-load, #screen-battle,
#screen-proxi, #screen-proxi-join, #screen-proxi-choice, #screen-proxi-wait,
#screen-solde, #screen-params { background: #F0FFFF !important; }

.card .topbar { background: #ffffff !important; border-bottom: 3px solid #1a1a1a !important; }
.topbar-brand { color: #0033cc !important; text-shadow: none !important; text-transform: uppercase !important; font-size: clamp(20px,4vh,28px) !important; }
.tb-gear { color: #1a1a1a !important; }
.tb-gear svg path { stroke: #1a1a1a !important; }

.result-overlay { background: #ffffff !important; }
.r-title { font-size: clamp(32px,7vh,52px) !important; }
.r-amount { font-size: clamp(22px,5vh,36px) !important; }
.r-btn {
  background: #ffffff !important; border: 2px solid #f47920 !important;
  color: #f47920 !important; border-radius: 14px !important;
  box-shadow: 3px 3px 0 rgba(0,0,0,0.15) !important;
}
.r-btn.prim { background: #ffffff !important; color: #f47920 !important; border: 2px solid #f47920 !important; }

.profil-scroll { background: #ffffff; }
.profil-hero { background: #ffffff !important; border: 3px solid #1a1a1a !important; box-shadow: 4px 4px 0 rgba(0,0,0,0.1) !important; }
.profil-pseudo { color: #1a1a1a !important; text-shadow: none !important; }
.profil-score-line, .profil-statut-line { color: #1a1a1a !important; }
.profil-score-val { color: #f47920 !important; text-shadow: none !important; }
.profil-section { background: #ffffff !important; border: 3px solid #1a1a1a !important; box-shadow: 3px 3px 0 rgba(0,0,0,0.1) !important; }
.profil-section-hdr { color: #1a1a1a !important; border-bottom: 2px solid #e0e0e0 !important; }
.profil-stat-cell { background: #ffffff !important; border: 2px solid #e0e0e0 !important; }
.profil-stat-cell-lbl { color: #1a1a1a !important; }
.profil-rank-row { border-bottom: 1px solid #e0e0e0 !important; }
.profil-rank-row.me { background: #fff5ee !important; }
.profil-rank-name { color: #1a1a1a !important; }
.profil-rank-score { color: #f47920 !important; }

.id-input {
  background: #ffffff !important; border: 3px solid #1a1a1a !important;
  color: #1a1a1a !important;
}
.id-input:focus { border-color: #f47920 !important; }
.id-input::placeholder { color: #1a1a1a !important; }
.id-label { color: #1a1a1a !important; }
.id-submit {
  background: #ffffff !important; color: #f47920 !important;
  border: 3px solid #1a1a1a !important;
  box-shadow: 3px 3px 0 rgba(0,0,0,0.15) !important;
}
.id-feedback { color: #cc0000 !important; }
.id-select { background: #ffffff !important; color: #1a1a1a !important; border: 3px solid #1a1a1a !important; }

#screen-game { background: #ffffff !important; }
.game-area { background: #ffffff !important; }
.opt { background: #ffffff !important; border: 3px solid #e0e0e0 !important; }
#opt-A.sel { border-color: #1a1a1a !important; background: #ffffff !important; }
#opt-B.sel { border-color: #1a1a1a !important; background: #ffffff !important; }
.proxi-player-row { border-color: #1a1a1a; }
.game-topbar-box { background: #ffffff !important; border: 3px solid #1a1a1a !important; color: #1a1a1a !important; }
.game-center-btn { background: #ffffff !important; border: 3px solid #0033cc !important; color: #0033cc !important; }
#game-center-btn { color: #0033cc !important; }
.game-info-box { background: #ffffff !important; color: #1a1a1a !important; }
.game-stat-val { color: #1a1a1a !important; }
.game-stat-lbl { color: #1a1a1a !important; }
.phase-lbl { text-shadow: none !important; }
.timer.vert  { color:#1bc255 !important; text-shadow:0 0 16px rgba(27,194,85,0.8) !important; }
.timer.rouge { color:#cc0000 !important; text-shadow:0 0 16px rgba(204,0,0,0.8) !important; }

.notif-item { background: #ffffff !important; border: 2px solid #e0e0e0 !important; }
.notif-item.unread { border-color: #f47920 !important; }
.notif-title { color: #1a1a1a !important; }
.notif-text { color: #1a1a1a !important; }
.notif-date { color: #1a1a1a !important; }

.cgu-scroll { background: #ffffff !important; }
.cgu-title { color: #1a1a1a !important; text-shadow: none !important; }
.cgu-section { background: transparent !important; border: none !important; border-radius: 0 !important; border-bottom: 1px solid #e0e0e0 !important; padding-bottom: var(--sp-md) !important; margin-bottom: var(--sp-md); }
.cgu-section-title { color: #f47920 !important; }
.cgu-text { color: #1a1a1a !important; }

.affil-card { background: #ffffff !important; border: 3px solid #1a1a1a !important; box-shadow: 3px 3px 0 rgba(0,0,0,0.1) !important; }
.affil-card-title { color: #f47920 !important; }
.affil-code-display { color: #1a1a1a !important; text-shadow: none !important; background: #ffffff !important; border: 2px solid #e0e0e0 !important; }
.affil-btn { background: #ffffff !important; color: #f47920 !important; border: 3px solid #1a1a1a !important; }
.affil-btn--secondary { background: #ffffff !important; color: #f47920 !important; border: 3px solid #1a1a1a !important; }
.affil-btn--disabled { opacity: 0.4 !important; }
.affil-stat-val { color: #f47920 !important; }
.affil-stat-lbl { color: #1a1a1a !important; }
.affil-parrain-code { color: #1a1a1a !important; background: #ffffff !important; border: 2px solid #e0e0e0 !important; }
.affil-parrain-status { color: #009a44 !important; }

.proxi-player-row { background: #ffffff !important; border: 3px solid #e0e0e0 !important; }
.proxi-player-row.me { border-color: #1a1a1a !important; }
.proxi-player-row.ready { border-color: #1a1a1a !important; }
.pp-name { color: #1a1a1a !important; }
.pp-tag { color: #1a1a1a !important; }
.pp-status { color: #1a1a1a !important; }
.pp-status.waiting { color: #1a1a1a !important; }

.modal-card { background: #ffffff !important; border: 3px solid #1a1a1a !important; }
.modal-title { color: #1a1a1a !important; text-shadow: none !important; }
.modal-rule-h { color: #f47920 !important; }
.modal-rule-t { color: #1a1a1a !important; }
.modal-close { background: #ffffff !important; color: #1a1a1a !important; border: 3px solid #1a1a1a !important; }
.modal-solde-card { background: #ffffff !important; border: 3px solid #1a1a1a !important; }

.palma-row { border-bottom: 1px solid #e0e0e0 !important; }
.palma-name { color: #1a1a1a !important; }
.palma-count { color: #1a1a1a !important; }
.palma-top3-lbl { color: #1a1a1a !important; border-top: 2px solid #e0e0e0 !important; }

.quete-section { background: #ffffff !important; border: 3px solid #1a1a1a !important; }
.quete-section-hdr { color: #1a1a1a !important; border-bottom: 2px solid #e0e0e0 !important; }
.quete-item { border-bottom: 1px solid #e0e0e0 !important; }
.quete-label { color: #1a1a1a !important; }
.quete-prog { color: #1a1a1a !important; }
.quete-bar-wrap { background: #e0e0e0 !important; }
.quete-bar-fill { background: linear-gradient(90deg, #f47920, #009a44) !important; }

.login-body { background: #F0FFFF; border-radius: 0 !important; }
#screen-login { background: #F0FFFF !important; }
.login-brand { color: #0033cc !important; text-shadow: none !important; }
.login-title { color: #1a1a1a !important; }
.login-register { color: #1a1a1a !important; }

.load-title { color: #1a1a1a !important; }
.load-bar { background: #e0e0e0 !important; border: 2px solid #1a1a1a !important; }
.load-fill { background: #1a1a1a !important; }
.load-tip { color: #1a1a1a !important; }

.training-banner { background: rgba(0,154,68,0.08) !important; border-bottom: 2px solid #009a44 !important; color: #009a44 !important; }

.otp-box { background: #ffffff !important; border: 3px solid #1a1a1a !important; color: #1a1a1a !important; }
.otp-box:focus { border-color: #f47920 !important; }

.pwd-rule { color: #1a1a1a !important; }
.pwd-rule.ok { color: #009a44 !important; }
.pwd-rule-dot { background: #1a1a1a !important; }
.pwd-rule.ok .pwd-rule-dot { background: #009a44 !important; }
/* ── MODAL VISITEUR ── */
.modal-visiteur {
  position: fixed; inset: 0; z-index: 999;
  background: rgba(0,0,0,0.6);
  display: flex; align-items: center; justify-content: center;
  padding: var(--sp-lg);
}
.modal-visiteur.hidden { display: none; }
.modal-visiteur-card {
  background: #ffffff;
  border: 3px solid #1a1a1a;
  border-radius: 14px;
  box-shadow: 4px 4px 0 #1a1a1a;
  padding: var(--sp-lg) var(--sp-md);
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  max-width: 300px; width: 100%;
}
.modal-visiteur-text {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing: 2px;
  color: #1a1a1a; text-align: center;
}
.modal-visiteur-btn {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-md); letter-spacing: 2px;
  width: 100%; padding: 12px;
  background: #ffffff; color: #f47920;
  border: 2px solid #f47920; border-radius: 8px;
  cursor: pointer; transition: all 0.18s;
}
.modal-visiteur-btn--sec {
  background: #ffffff; color: #f47920;
}
.modal-visiteur-btn:hover { background: #fff5ee; }

/* ── CLASSEMENT SESSION PROXI ── */
#proxi-session-scores {
  width: 100%;
}
.pss-title {
  font-family: 'Black Ops One', cursive;
  font-size:var(--fs-xs); letter-spacing: 3px; color: #1a1a1a;
  text-align: center; margin-bottom: 8px;
  border-bottom: 2px solid #1a1a1a; padding-bottom: 6px;
}
.pss-row {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 4px;
  border-bottom: 1px solid rgba(26,26,26,0.1);
  font-family: 'Black Ops One', cursive; font-size:var(--fs-xs); letter-spacing: 1px;
}
.pss-medal { font-size:var(--fs-lg); flex-shrink: 0; width: 22px; text-align: center; }
.pss-pseudo { flex: 1; color: #1a1a1a; font-size:var(--fs-xs); letter-spacing: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pss-score { font-size:var(--fs-sm); letter-spacing: 1px; flex-shrink: 0; }
.pss-score.gain  { color: #009a44; }
.pss-score.perte { color: #cc0000; }
.pss-vd { font-size:var(--fs-xs); letter-spacing: 1px; color: #1a1a1a; opacity: 0.6; flex-shrink: 0; }
