/* ============================================================================
 * Djooni — Wax 2 CLIENT (portail client, nouveau shell)
 * Feuille de style extraite des designs Claude Design « Compte - Profil »
 * et « Client - Accueil (Hub) ». Réutilise les tokens Wax.
 *
 * SCOPE STRICT : toutes les règles (y compris variables, reset *, sélecteurs
 * d'éléments) sont préfixées par `body.wax2c`. Aucune fuite possible vers les
 * pages encore sur l'ancien _app_shell.php (<body class="app">), ni collision
 * avec djooni-wax2.css marchand (qui partage .side / .panel / .btn / .icon-btn).
 * Incluse par partials/_shell_wax2_client.php. Le CSS spécifique à une page
 * reste inline dans la page.
 * ========================================================================== */

body.wax2c {
  --display: 'Bricolage Grotesque', system-ui, sans-serif;
  --sans: 'DM Sans', system-ui, sans-serif;
  --mono: 'JetBrains Mono', monospace;
  --calico: #F4EADA; --calico-2: #EADCC2; --calico-3: #F8F0E2;
  --ink: #2A1810; --line: rgba(74,36,24,.12); --line-2: rgba(74,36,24,.06); --muted: rgba(42,24,16,.56);
  --burgundy: #4A2418; --burgundy-2: #2E140C;
  --orange: #E25A2E; --orange-2: #C24A22; --orange-soft: #FBE3D6;
  --gold: #E8B547; --gold-soft: #FAEAC6;
  --forest: #2D5A3D; --forest-soft: #D9E6DC;
  --indigo: #1B3A5C; --danger: #B23A2E; --danger-soft: #F2DAD6;
  --card: #FFFDF8;
  --shadow-sm: 0 1px 2px rgba(74,36,24,.05),0 3px 10px rgba(74,36,24,.045);
  --shadow-md: 0 4px 16px rgba(74,36,24,.07),0 14px 34px rgba(74,36,24,.06);
  --r-card: 22px; --r-mid: 14px;

  background: var(--calico); color: var(--ink);
  font-family: var(--sans); font-size: 14px; line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  /* sticky footer : pousse footer.site en bas même si le contenu est court */
  min-height: 100vh; display: flex; flex-direction: column;
}
body.wax2c * { box-sizing: border-box; margin: 0; padding: 0; }
body.wax2c a { color: inherit; text-decoration: none; }
body.wax2c ul { list-style: none; }
body.wax2c button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
body.wax2c img { display: block; max-width: 100%; }
body.wax2c .mono { font-family: var(--mono); }
body.wax2c .wrap { max-width: 1480px; margin: 0 auto; padding: 0 30px; }

/* ============ HEADER (topbar) ============ */
body.wax2c header.site {
  position: sticky; top: 0; z-index: 60;
  background: rgba(244,234,218,.9); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
body.wax2c .site .wrap { display: flex; align-items: center; gap: 26px; height: 78px; }
body.wax2c .logo { font-family: var(--display); font-weight: 800; font-size: 30px; letter-spacing: -.03em; color: var(--burgundy); flex: 0 0 auto; }
body.wax2c .logo-img { height: 46px; width: auto; display: block; }
body.wax2c nav.main { min-width: 0; display: flex; align-items: center; gap: 4px; }
body.wax2c nav.main a { font-weight: 600; font-size: 14.5px; color: rgba(42,24,16,.62); padding: 8px 13px; border-radius: 10px; position: relative; transition: color .15s, background .15s; }
body.wax2c nav.main a:hover { color: var(--ink); background: rgba(74,36,24,.05); }
body.wax2c nav.main a.active { color: var(--burgundy); }
body.wax2c nav.main a.active::after { content: ""; position: absolute; left: 13px; right: 13px; bottom: -1px; height: 3px; background: var(--orange); border-radius: 3px 3px 0 0; }
body.wax2c nav.main a.is-soon { opacity: .55; cursor: default; }
body.wax2c .head-right { margin-left: auto; display: flex; align-items: center; gap: 12px; }
body.wax2c .icon-btn { width: 48px; height: 48px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink); position: relative; }
body.wax2c .icon-btn i { font-size: 21px; }
body.wax2c .icon-btn .badge { position: absolute; top: -2px; right: -2px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--orange); color: #fff; font-size: 10.5px; font-weight: 700; display: grid; place-items: center; font-family: var(--mono); border: 2px solid var(--calico); }
body.wax2c .user-chip { display: flex; align-items: center; gap: 9px; height: 48px; padding: 4px 12px 4px 4px; background: var(--card); border: 1px solid var(--line); border-radius: 999px; }
body.wax2c .user-chip .av { width: 40px; height: 40px; border-radius: 999px; background: var(--burgundy); color: var(--gold); display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 16px; overflow: hidden; background-size: cover; background-position: center; }
body.wax2c .user-chip .un { font-weight: 700; font-size: 13.5px; }
body.wax2c .user-chip > i { color: var(--muted); font-size: 16px; }
/* menu déroulant du chip user (Profil + Déconnexion) — CSS pur :hover/:focus-within */
body.wax2c .user-menu { position: relative; }
body.wax2c .user-menu .user-chip { cursor: pointer; }
body.wax2c .user-menu .user-dd { position: absolute; right: 0; top: calc(100% + 8px); min-width: 196px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-md); padding: 6px; z-index: 70; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .14s, transform .14s, visibility .14s; }
body.wax2c .user-menu:hover .user-dd, body.wax2c .user-menu:focus-within .user-dd { opacity: 1; visibility: visible; transform: translateY(0); }
body.wax2c .user-menu .user-dd a { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 10px; font-weight: 600; font-size: 13.5px; color: var(--ink); }
body.wax2c .user-menu .user-dd a:hover { background: var(--calico-3); }
body.wax2c .user-menu .user-dd a i { font-size: 18px; color: var(--burgundy); }
body.wax2c .user-menu .user-dd a.logout { color: var(--danger); }
body.wax2c .user-menu .user-dd a.logout i { color: var(--danger); }
body.wax2c .user-menu .user-chip:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }

/* ============ ACCOUNT LAYOUT (sidebar + content) ============ */
body.wax2c main { padding: 26px 0 50px; flex: 1 0 auto; }
body.wax2c .acct { display: grid; grid-template-columns: 248px minmax(0,1fr); gap: 26px; align-items: start; }
body.wax2c .side { position: sticky; top: 96px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); overflow: hidden; }
body.wax2c .side .scard { display: flex; align-items: center; gap: 11px; padding: 18px; border-bottom: 1px solid var(--line-2); }
body.wax2c .side .scard .av { width: 46px; height: 46px; border-radius: 13px; background: var(--burgundy); color: var(--gold); display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 19px; flex: 0 0 auto; overflow: hidden; background-size: cover; background-position: center; }
body.wax2c .side .scard .sn { font-family: var(--display); font-weight: 700; font-size: 15px; line-height: 1.15; }
body.wax2c .side .scard .sl { font-size: 12px; color: var(--muted); }
body.wax2c .side nav { padding: 10px; }
body.wax2c .side .grp { font-family: var(--mono); font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); padding: 14px 12px 6px; }
body.wax2c .side a { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 11px; font-weight: 600; font-size: 13.5px; color: var(--ink); }
body.wax2c .side a i { font-size: 19px; color: var(--burgundy); opacity: .8; }
body.wax2c .side a:hover { background: var(--calico-3); }
body.wax2c .side a.active { background: var(--orange); color: #fff; box-shadow: 0 2px 0 var(--orange-2); }
body.wax2c .side a.active i { color: #fff; opacity: 1; }
body.wax2c .side a.is-soon { opacity: .5; cursor: default; }
body.wax2c .side a .soon-tag { margin-left: auto; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

body.wax2c .content { min-width: 0; }
body.wax2c .phead { margin-bottom: 18px; }
body.wax2c .phead h1 { font-family: var(--display); font-weight: 800; font-size: 30px; letter-spacing: -.02em; color: var(--burgundy); }
body.wax2c .phead .sub { color: var(--muted); font-size: 14px; margin-top: 3px; }

body.wax2c .player { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 18px; align-items: start; }

/* ============ PANELS / FORM ============ */
body.wax2c .panel { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 22px; }
body.wax2c .panel + .panel { margin-top: 18px; }
body.wax2c .panel h2 { font-family: var(--display); font-weight: 800; font-size: 17px; margin-bottom: 4px; display: flex; align-items: center; gap: 10px; }
body.wax2c .panel h2 i { color: var(--burgundy); font-size: 20px; }
body.wax2c .panel .ph2 { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
body.wax2c .panel .ph2 .hint { color: var(--muted); font-size: 12.5px; }

body.wax2c .avatar-row { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line-2); }
body.wax2c .avatar-row .big { width: 88px; height: 88px; border-radius: 24px; background: var(--burgundy); color: var(--gold); display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 36px; flex: 0 0 auto; position: relative; overflow: visible; }
body.wax2c .avatar-row .big .pic { position: absolute; inset: 0; border-radius: 24px; background-size: cover; background-position: center; }
body.wax2c .avatar-row .big .cam { position: absolute; right: -6px; bottom: -6px; width: 34px; height: 34px; border-radius: 50%; background: var(--orange); color: #fff; display: grid; place-items: center; font-size: 17px; border: 3px solid var(--card); z-index: 1; }
body.wax2c .avatar-row .ai .an { font-family: var(--display); font-weight: 800; font-size: 20px; }
body.wax2c .avatar-row .ai .ae { color: var(--muted); font-size: 13.5px; }
body.wax2c .avatar-row .ai .badges { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
body.wax2c .vbadge { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 4px 9px; border-radius: 999px; }
body.wax2c .vbadge.verif { background: var(--forest-soft); color: var(--forest); }
body.wax2c .vbadge.muted { background: var(--calico-2); color: var(--muted); }

body.wax2c .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
body.wax2c .field { display: flex; flex-direction: column; }
body.wax2c .field.full { grid-column: 1/-1; }
body.wax2c .field label { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 7px; }
body.wax2c .field .inp { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: var(--r-mid); background: var(--calico-3); padding: 0 14px; height: 48px; }
body.wax2c .field .inp:focus-within { outline: 3px solid var(--orange); outline-offset: 1px; }
body.wax2c .field .inp i { color: var(--muted); font-size: 18px; flex: 0 0 auto; }
body.wax2c .field .inp input, body.wax2c .field .inp select { border: 0; background: none; outline: none; font: inherit; font-size: 14px; width: 100%; color: var(--ink); }
body.wax2c .field .inp select { cursor: pointer; height: 46px; }
body.wax2c .field .inp.lock { background: var(--calico-2); }
body.wax2c .field .inp.lock .verif { margin-left: auto; color: var(--forest); font-size: 18px; }
body.wax2c .field .inp input:disabled, body.wax2c .field .inp.is-disabled { color: var(--muted); cursor: not-allowed; }
body.wax2c .field .inp.is-disabled { background: var(--calico-2); opacity: .8; }
body.wax2c .field .hint-sm { font-family: var(--mono); font-size: 9.5px; letter-spacing: .04em; color: var(--muted); margin-top: 6px; }

body.wax2c .form-actions { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
body.wax2c .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; padding: 0 20px; border-radius: 12px; font-weight: 700; font-size: 14px; }
body.wax2c .btn i { font-size: 18px; }
body.wax2c .btn.primary { background: var(--orange); color: #fff; box-shadow: 0 2px 0 var(--orange-2); }
body.wax2c .btn.primary:hover { background: var(--orange-2); }
body.wax2c .btn.ghost { background: var(--card); border: 1px solid var(--line); }
body.wax2c .btn.ghost:hover { background: var(--calico-3); }

/* ============ RIGHT COLUMN CARDS ============ */
body.wax2c .rc { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 20px; }
body.wax2c .rc + .rc { margin-top: 18px; }
body.wax2c .rc h3 { font-family: var(--display); font-weight: 800; font-size: 15px; margin-bottom: 14px; }
body.wax2c .stat-line { display: flex; align-items: center; gap: 11px; padding: 9px 0; }
body.wax2c .stat-line .li { width: 38px; height: 38px; border-radius: 11px; background: var(--calico-3); display: grid; place-items: center; color: var(--burgundy); font-size: 19px; flex: 0 0 auto; }
body.wax2c .stat-line .lv { font-weight: 700; font-size: 14px; }
body.wax2c .stat-line .ll { color: var(--muted); font-size: 12px; }
body.wax2c .stat-line .lv .ok { color: var(--forest); }
body.wax2c .stat-line .lv .no { color: var(--danger); }
body.wax2c .referral { background: var(--gold-soft); }
body.wax2c .referral .code { display: flex; align-items: center; gap: 10px; background: var(--card); border: 1px dashed var(--burgundy); border-radius: 12px; padding: 13px 15px; margin-top: 6px; }
body.wax2c .referral .code .cv { font-family: var(--mono); font-weight: 700; font-size: 18px; letter-spacing: .08em; color: var(--burgundy); flex: 1; cursor: pointer; word-break: break-all; }
body.wax2c .referral .code .cc { width: 36px; height: 36px; border-radius: 10px; background: var(--burgundy); color: #F8EFE2; display: grid; place-items: center; font-size: 18px; flex: 0 0 auto; }
body.wax2c .referral p { color: var(--ink); opacity: .7; font-size: 12.5px; margin-top: 10px; }
body.wax2c .referral .share { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
body.wax2c .referral .share a { display: inline-flex; align-items: center; gap: 6px; background: var(--burgundy); color: var(--calico); font-family: var(--display); font-weight: 700; font-size: 12.5px; padding: 8px 13px; border-radius: 999px; }
body.wax2c .referral .share a:hover { background: var(--burgundy-2); }

/* ============ PASSWORD & DANGER ============ */
body.wax2c .danger { border-color: var(--danger-soft); }
body.wax2c .danger h2 i { color: var(--danger); }
body.wax2c .danger-row { display: flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--danger-soft); background: var(--danger-soft); border-radius: var(--r-mid); margin-top: 6px; }
body.wax2c .danger-row .di { width: 42px; height: 42px; border-radius: 12px; background: var(--card); color: var(--danger); display: grid; place-items: center; font-size: 21px; flex: 0 0 auto; }
body.wax2c .danger-row .dn { font-weight: 700; font-size: 14px; color: var(--danger); }
body.wax2c .danger-row .ds { color: var(--muted); font-size: 12.5px; }
body.wax2c .danger-row .btn-del { margin-left: auto; height: 42px; padding: 0 16px; border-radius: 11px; background: var(--card); border: 1px solid var(--danger); color: var(--danger); font-weight: 700; font-size: 13px; }
body.wax2c .danger-row .btn-del:hover { background: var(--danger); color: #fff; }

/* ============ FEEDBACK MSG ============ */
body.wax2c .pf-msg { padding: 12px 14px; border-radius: 10px; font-size: 14px; margin-bottom: 16px; display: none; }
body.wax2c .pf-msg.ok { background: var(--forest-soft); color: var(--forest); border: 1px solid rgba(45,90,61,.25); }
body.wax2c .pf-msg.err { background: var(--danger-soft); color: var(--danger); border: 1px solid rgba(178,58,46,.30); }

/* ============ PHOTO MODAL ============ */
body.wax2c .pf-modal { display: none; position: fixed; inset: 0; background: rgba(42,24,16,.55); z-index: 200; align-items: center; justify-content: center; padding: 20px; }
body.wax2c .pf-modal.open { display: flex; }
body.wax2c .pf-modal form { background: var(--card); border-radius: 14px; padding: 28px; width: 100%; max-width: 420px; box-shadow: var(--shadow-md); }
body.wax2c .pf-modal h3 { font-family: var(--display); font-weight: 700; font-size: 18px; margin-bottom: 14px; }
body.wax2c .pf-modal input[type=file] { border: 1px solid var(--line); padding: 10px; width: 100%; border-radius: 8px; margin-bottom: 14px; background: var(--calico-3); }
body.wax2c .pf-modal .row { display: flex; gap: 8px; justify-content: flex-end; }

/* ============ FOOTER ============ */
body.wax2c footer.site { background: var(--burgundy-2); color: rgba(248,239,226,.66); margin-top: 10px; flex-shrink: 0; }
body.wax2c footer .wrap { display: flex; align-items: center; gap: 24px; height: 72px; }
body.wax2c footer .cpy { font-size: 13px; }
body.wax2c footer .fnav { margin-left: auto; display: flex; align-items: center; gap: 24px; }
body.wax2c footer .fnav a { font-size: 13px; }
body.wax2c footer .fnav a:hover { color: #F8EFE2; }
body.wax2c footer .lang { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; color: #F8EFE2; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1180px) { body.wax2c nav.main { display: none; } }
@media (max-width: 1080px) {
  body.wax2c .acct { grid-template-columns: 1fr; }
  body.wax2c .side { position: relative; top: 0; }
  body.wax2c .side nav { display: flex; flex-wrap: wrap; gap: 4px; }
  body.wax2c .side .grp { width: 100%; }
  body.wax2c .player { grid-template-columns: 1fr; }
}
@media (max-width: 920px) { body.wax2c .form-grid { grid-template-columns: 1fr; } }

/* ============================================================================
 * COMPOSANTS LISTE PARTAGÉS (Mes commandes, Portefeuille, Favoris…)
 * Extraits des designs « Compte - * ». Scopés body.wax2c. Réutilisables.
 * ========================================================================== */

/* phead variante avec actions à droite */
body.wax2c .phead.row { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; }

/* stats cards */
body.wax2c .stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-bottom: 20px; }
body.wax2c .stat { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 18px; display: flex; align-items: center; gap: 14px; }
body.wax2c .stat .si { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; font-size: 23px; flex: 0 0 auto; }
body.wax2c .stat .si.a { background: var(--orange-soft); color: var(--orange-2); }
body.wax2c .stat .si.b { background: var(--forest-soft); color: var(--forest); }
body.wax2c .stat .si.c { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .stat .si.d { background: var(--indigo-soft, #DCE5EE); color: var(--indigo); }
body.wax2c .stat .sv { font-family: var(--display); font-weight: 800; font-size: 24px; line-height: 1; color: var(--burgundy); }
body.wax2c .stat .sl { font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-top: 5px; }

/* toolbar : tabs (liens) + chips filtre (formulaire) */
body.wax2c .toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
body.wax2c .tabs { display: flex; gap: 6px; background: var(--card); border: 1px solid var(--line); border-radius: 999px; padding: 5px; }
body.wax2c .tabs a, body.wax2c .tabs button { padding: 8px 16px; border-radius: 999px; font-weight: 600; font-size: 13px; color: var(--muted); display: inline-flex; align-items: center; }
body.wax2c .tabs a.active, body.wax2c .tabs button.active { background: var(--burgundy); color: #F8EFE2; }
body.wax2c .tabs .n { font-family: var(--mono); font-size: 11px; opacity: .7; margin-left: 4px; }
body.wax2c .toolbar .right { margin-left: auto; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
body.wax2c .ffield { display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 13px; border-radius: 11px; background: var(--card); border: 1px solid var(--line); font-weight: 600; font-size: 13px; }
body.wax2c .ffield i { font-size: 17px; color: var(--muted); }
body.wax2c .ffield select, body.wax2c .ffield input { border: 0; background: none; outline: none; font: inherit; font-size: 13px; color: var(--ink); cursor: pointer; }
body.wax2c .ffield input[type=date] { cursor: text; }
body.wax2c .btn-go { height: 42px; padding: 0 18px; border-radius: 11px; background: var(--orange); color: #fff; font-weight: 700; font-size: 13px; box-shadow: 0 2px 0 var(--orange-2); }
body.wax2c .btn-go:hover { background: var(--orange-2); }
body.wax2c .btn-reset { height: 42px; padding: 0 14px; border-radius: 11px; background: var(--card); border: 1px solid var(--line); font-weight: 700; font-size: 12.5px; display: inline-flex; align-items: center; color: var(--ink); }
body.wax2c .btn-reset:hover { background: var(--calico-3); }

/* pills statut (mappées sur le helper dj_order_pill : is-active / is-success / is-danger / is-warning / is-info) */
body.wax2c .pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; font-family: var(--mono); font-size: 10.5px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
body.wax2c .pill::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: currentColor; }
body.wax2c .pill.is-active  { background: var(--forest-soft); color: var(--forest); }
body.wax2c .pill.is-success { background: var(--indigo-soft, #DCE5EE); color: var(--indigo); }
body.wax2c .pill.is-danger  { background: var(--danger-soft); color: var(--danger); }
body.wax2c .pill.is-warning { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .pill.is-info    { background: var(--calico-2); color: var(--burgundy); }

/* liste de cartes (commandes / transactions / favoris) */
body.wax2c .olist { display: flex; flex-direction: column; gap: 14px; }
body.wax2c .ocard { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 18px; display: flex; align-items: center; gap: 16px; transition: box-shadow .15s, transform .15s; }
body.wax2c .ocard:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
body.wax2c .ocard .ologo { width: 58px; height: 58px; border-radius: 15px; display: grid; place-items: center; font-size: 27px; flex: 0 0 auto; }
body.wax2c .ocard .ologo.ol-1 { background: var(--orange-soft); color: var(--orange-2); }
body.wax2c .ocard .ologo.ol-2 { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .ocard .ologo.ol-3 { background: var(--forest-soft); color: var(--forest); }
body.wax2c .ocard .ologo.ol-4 { background: var(--calico-2); color: var(--burgundy); }
body.wax2c .ocard .omain { flex: 1; min-width: 0; }
body.wax2c .ocard .otop { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.wax2c .ocard .on { font-family: var(--display); font-weight: 700; font-size: 16.5px; }
body.wax2c .ocard .onum { font-family: var(--mono); font-size: 11px; color: var(--muted); }
body.wax2c .ocard .oitems { color: var(--muted); font-size: 13px; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.wax2c .ocard .ometa { display: flex; align-items: center; gap: 14px; margin-top: 7px; font-size: 12px; color: var(--muted); flex-wrap: wrap; }
body.wax2c .ocard .ometa .mi { display: inline-flex; align-items: center; gap: 5px; }
body.wax2c .ocard .ometa i { font-size: 14px; }
body.wax2c .ocard .oright { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex: 0 0 auto; }
body.wax2c .ocard .oprice { font-family: var(--display); font-weight: 800; font-size: 19px; color: var(--burgundy); }
body.wax2c .ocard .oprice.muted { color: var(--muted); }
body.wax2c .ocard .oprice.pos { color: var(--forest); }
body.wax2c .ocard .oprice.neg { color: var(--orange-2); }
body.wax2c .ocard .oacts { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

/* boutons compacts */
body.wax2c .btn-sm { height: 38px; padding: 0 14px; border-radius: 10px; font-weight: 700; font-size: 12.5px; display: inline-flex; align-items: center; gap: 6px; }
body.wax2c .btn-sm i { font-size: 15px; }
body.wax2c .btn-sm.primary { background: var(--orange); color: #fff; box-shadow: 0 2px 0 var(--orange-2); }
body.wax2c .btn-sm.primary:hover { background: var(--orange-2); }
body.wax2c .btn-sm.ghost { background: var(--card); border: 1px solid var(--line); }
body.wax2c .btn-sm.ghost:hover { background: var(--calico-3); }
body.wax2c .btn-sm.is-disabled { opacity: .5; cursor: not-allowed; background: var(--calico-2); border: 1px solid var(--line); color: var(--muted); box-shadow: none; }

/* état vide */
body.wax2c .empty-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 48px 24px; text-align: center; }
body.wax2c .empty-card .emoji { font-size: 44px; }
body.wax2c .empty-card h3 { font-family: var(--display); font-weight: 800; font-size: 20px; margin: 12px 0 6px; color: var(--burgundy); }
body.wax2c .empty-card p { color: var(--muted); font-size: 14px; margin-bottom: 16px; }
body.wax2c .empty-card .cta { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 20px; border-radius: 12px; background: var(--orange); color: #fff; font-weight: 700; box-shadow: 0 2px 0 var(--orange-2); }

@media (max-width: 920px) {
  body.wax2c .stats { grid-template-columns: 1fr; }
  body.wax2c .ocard { flex-wrap: wrap; }
  body.wax2c .ocard .oright { width: 100%; flex-direction: row; justify-content: space-between; align-items: center; }
}

/* ============================================================================
 * PORTEFEUILLE (Compte - Portefeuille). Scopé body.wax2c.
 * ========================================================================== */
body.wax2c .balance-card { background: linear-gradient(140deg,#4A2418,#2E140C); color: #F8EFE2; border-radius: var(--r-card); padding: 24px 26px; position: relative; overflow: hidden; box-shadow: var(--shadow-md); margin-bottom: 18px; }
body.wax2c .balance-card::after { content: ""; position: absolute; right: -40px; top: -40px; width: 180px; height: 180px; border-radius: 50%; background: rgba(232,181,71,.12); }
body.wax2c .balance-card .bl { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: rgba(248,239,226,.6); }
body.wax2c .balance-card .bv { font-family: var(--display); font-weight: 800; font-size: 44px; line-height: 1; letter-spacing: -.02em; margin-top: 10px; }
body.wax2c .balance-card .bsub { display: flex; gap: 28px; margin-top: 20px; flex-wrap: wrap; position: relative; z-index: 1; }
body.wax2c .balance-card .bs .bsl { font-family: var(--mono); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: rgba(248,239,226,.55); }
body.wax2c .balance-card .bs .bsv { font-weight: 700; font-size: 16px; margin-top: 3px; }
body.wax2c .balance-card .bs .bsv.pos { color: #9FD8AE; }
body.wax2c .balance-card .bs .bsv.neg { color: #F2B79E; }
body.wax2c .balance-card .bacts { display: flex; gap: 10px; margin-top: 22px; flex-wrap: wrap; position: relative; z-index: 1; }
body.wax2c .balance-card .ba { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 18px; border-radius: 12px; font-family: var(--display); font-weight: 700; font-size: 14px; }
body.wax2c .balance-card .ba i { font-size: 18px; }
body.wax2c .balance-card .ba.recharge { background: var(--orange); color: #fff; box-shadow: 0 2px 0 var(--orange-2); }
body.wax2c .balance-card .ba.recharge:hover { background: var(--orange-2); }
body.wax2c .balance-card .ba.retrait { background: rgba(248,239,226,.12); color: #F8EFE2; border: 1px solid rgba(248,239,226,.2); }
body.wax2c .balance-card .ba.retrait:hover { background: rgba(248,239,226,.18); }

body.wax2c .panel-h { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
body.wax2c .panel-h h2 { font-family: var(--display); font-weight: 800; font-size: 18px; }

body.wax2c .tx { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line-2); }
body.wax2c .tx:last-child { border-bottom: 0; }
body.wax2c .tx .ti2 { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; font-size: 22px; flex: 0 0 auto; }
body.wax2c .tx .ti2.in { background: var(--forest-soft); color: var(--forest); }
body.wax2c .tx .ti2.out { background: var(--orange-soft); color: var(--orange-2); }
body.wax2c .tx .ti2.refund { background: var(--indigo-soft, #DCE5EE); color: var(--indigo); }
body.wax2c .tx .ti2.parrain { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .tx .tm { flex: 1; min-width: 0; }
body.wax2c .tx .tn { font-weight: 700; font-size: 14px; }
body.wax2c .tx .tcat { display: inline-block; font-family: var(--mono); font-size: 9.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); background: var(--calico-3); border: 1px solid var(--line); padding: 2px 7px; border-radius: 999px; margin-left: 7px; vertical-align: middle; }
body.wax2c .tx .ts { color: var(--muted); font-size: 12.5px; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.wax2c .tx .tr { text-align: right; flex: 0 0 auto; }
body.wax2c .tx .tamt { font-family: var(--mono); font-weight: 700; font-size: 15px; }
body.wax2c .tx .tamt.pos { color: var(--forest); }
body.wax2c .tx .tamt.neg { color: var(--ink); }
body.wax2c .tx .tst { font-size: 11px; color: var(--muted); font-family: var(--mono); margin-top: 2px; }

/* ============================================================================
 * FAVORIS (Compte - Favoris). Scopé body.wax2c. Grille namespacée .fav-grid
 * pour ne pas heurter le .grid du Hub (PAGE 5).
 * ========================================================================== */
body.wax2c .ftabs { display: flex; gap: 8px; margin-bottom: 20px; flex-wrap: wrap; }
body.wax2c .ftabs a { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); font-weight: 600; font-size: 13.5px; color: var(--ink); }
body.wax2c .ftabs a i { font-size: 18px; }
body.wax2c .ftabs a.active { background: var(--burgundy); color: #F8EFE2; border-color: var(--burgundy); }
body.wax2c .ftabs a.active i { color: var(--gold); }
body.wax2c .ftabs a .n { font-family: var(--mono); font-size: 11px; opacity: .7; }

body.wax2c .fav-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px,1fr)); gap: 18px; }
body.wax2c .fav { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; box-shadow: var(--shadow-sm); transition: box-shadow .15s, transform .15s; }
body.wax2c .fav:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
body.wax2c .fav .banner { height: 92px; position: relative; background: linear-gradient(135deg, var(--calico-2), var(--calico-3)); }
body.wax2c .fav .heart { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; border-radius: 999px; background: var(--card); box-shadow: var(--shadow-sm); display: grid; place-items: center; color: var(--orange); }
body.wax2c .fav .heart i { font-size: 18px; }
body.wax2c .fav .heart.is-soon { color: var(--muted); cursor: pointer; }
body.wax2c .fav .logo-chip { position: absolute; left: 14px; bottom: -18px; width: 48px; height: 48px; border-radius: 13px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-sm); display: grid; place-items: center; color: var(--burgundy); font-size: 23px; }
body.wax2c .fav .b { padding: 24px 16px 16px; }
body.wax2c .fav .n { font-family: var(--display); font-weight: 700; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.wax2c .fav .c { color: var(--muted); font-size: 12.5px; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.wax2c .fav .meta { display: flex; align-items: center; gap: 13px; margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line-2); font-size: 12px; color: var(--muted); flex-wrap: wrap; }
body.wax2c .fav .meta .mi { display: inline-flex; align-items: center; gap: 5px; }
body.wax2c .fav .meta i { font-size: 14px; }
body.wax2c .fav .meta .star i { color: var(--gold); }
body.wax2c .fav .order { width: 100%; height: 42px; border-radius: 11px; background: var(--orange); color: #fff; font-weight: 700; font-size: 13.5px; box-shadow: 0 2px 0 var(--orange-2); margin-top: 13px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
body.wax2c .fav .order:hover { background: var(--orange-2); }

body.wax2c .places { display: flex; flex-direction: column; gap: 12px; }
body.wax2c .place { display: flex; align-items: center; gap: 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 16px 18px; }
body.wax2c .place:hover { box-shadow: var(--shadow-md); }
body.wax2c .place .pi { width: 48px; height: 48px; border-radius: 13px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); font-size: 22px; flex: 0 0 auto; }
body.wax2c .place .pm { flex: 1; min-width: 0; }
body.wax2c .place .pn { font-family: var(--display); font-weight: 700; font-size: 15px; }
body.wax2c .place .pa { color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.wax2c .place .pacts { margin-left: auto; display: flex; gap: 8px; flex: 0 0 auto; }
body.wax2c .place .pacts a, body.wax2c .place .pacts button { height: 42px; padding: 0 14px; border-radius: 11px; background: var(--calico-3); border: 1px solid var(--line); display: inline-flex; align-items: center; gap: 6px; color: var(--burgundy); font-weight: 700; font-size: 12.5px; }
body.wax2c .place .pacts a:hover { background: var(--calico-2); }
body.wax2c .place .pacts .heart.is-soon { color: var(--muted); }

@media (max-width: 920px) { body.wax2c .fav-grid { grid-template-columns: 1fr; } }

/* ============================================================================
 * PARRAINAGE (Compte - Parrainage). Scopé body.wax2c.
 * ========================================================================== */
body.wax2c .ref-hero { background: radial-gradient(circle at 82% 0%, rgba(232,181,71,.28) 0, transparent 52%), linear-gradient(135deg, var(--burgundy), var(--burgundy-2)); color: var(--calico); border-radius: var(--r-card); padding: 32px 30px; margin-bottom: 18px; position: relative; overflow: hidden; }
body.wax2c .ref-hero .badge2 { display: inline-flex; align-items: center; gap: 6px; background: var(--gold); color: var(--burgundy-2); font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; }
body.wax2c .ref-hero h1 { font-family: var(--display); font-weight: 800; font-size: clamp(26px,4vw,36px); letter-spacing: -.01em; margin: 14px 0 6px; line-height: 1.1; }
body.wax2c .ref-hero h1 em { color: var(--gold); font-style: normal; }
body.wax2c .ref-hero p { font-size: 14.5px; opacity: .85; max-width: 560px; }
body.wax2c .ref-code { display: flex; align-items: center; gap: 12px; background: rgba(244,234,218,.08); border: 2px dashed var(--gold); border-radius: 14px; padding: 14px 18px; margin-top: 18px; max-width: 420px; }
body.wax2c .ref-code .cv { font-family: var(--mono); font-weight: 700; font-size: 22px; letter-spacing: .18em; color: var(--gold); flex: 1; user-select: all; word-break: break-all; }
body.wax2c .ref-code .cc { width: 40px; height: 40px; border-radius: 11px; background: var(--gold); color: var(--burgundy-2); display: grid; place-items: center; font-size: 19px; flex: 0 0 auto; }
body.wax2c .ref-share { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
body.wax2c .ref-share a { display: inline-flex; align-items: center; gap: 8px; background: var(--gold); color: var(--burgundy-2); font-family: var(--display); font-weight: 700; font-size: 14px; padding: 11px 18px; border-radius: 999px; }
body.wax2c .ref-share a:hover { background: var(--calico); }
body.wax2c .ref-share a.sec { background: transparent; color: var(--calico); border: 1px solid rgba(244,234,218,.4); }
body.wax2c .ref-share a.sec:hover { background: rgba(244,234,218,.08); }

body.wax2c .ref-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
body.wax2c .ref-step { text-align: left; }
body.wax2c .ref-step .si { width: 46px; height: 46px; border-radius: 13px; background: var(--orange-soft); color: var(--orange-2); display: grid; place-items: center; font-size: 22px; position: relative; margin-bottom: 10px; }
body.wax2c .ref-step .si .num { position: absolute; top: -6px; right: -6px; width: 22px; height: 22px; border-radius: 999px; background: var(--burgundy); color: var(--gold); font-family: var(--mono); font-size: 11px; font-weight: 700; display: grid; place-items: center; border: 2px solid var(--card); }
body.wax2c .ref-step .st { font-family: var(--display); font-weight: 700; font-size: 15px; margin-bottom: 3px; }
body.wax2c .ref-step .ss { font-size: 13px; color: var(--muted); }
body.wax2c .panel h2 + .ref-steps { margin-top: 14px; }

body.wax2c .ref-foot { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 20px 22px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 18px; }
body.wax2c .ref-foot .ft { font-family: var(--display); font-weight: 700; font-size: 16px; }
body.wax2c .ref-foot .fs { font-size: 13px; color: var(--muted); margin-top: 3px; }
body.wax2c .ref-foot a { display: inline-flex; align-items: center; gap: 8px; background: var(--burgundy); color: var(--calico); font-family: var(--display); font-weight: 700; font-size: 14px; padding: 11px 18px; border-radius: 999px; }
body.wax2c .ref-foot a:hover { background: var(--burgundy-2); }

@media (max-width: 920px) { body.wax2c .ref-steps { grid-template-columns: 1fr; } }

/* ============================================================================
 * HUB / ACCUEIL (Client - Accueil). Scopé body.wax2c. Layout pleine largeur
 * (pas de sidebar compte). Réutilise .panel / .ocard / .empty-card / .pill.
 * ========================================================================== */
body.wax2c .hub-greet { margin: 4px 0 22px; }
body.wax2c .hub-greet h1 { font-family: var(--display); font-weight: 800; font-size: clamp(28px,4vw,38px); letter-spacing: -.02em; color: var(--burgundy); line-height: 1.05; }
body.wax2c .hub-greet p { color: var(--muted); font-size: 16px; margin-top: 6px; }

body.wax2c .hub-section-title { font-family: var(--display); font-weight: 800; font-size: 18px; color: var(--burgundy); margin: 24px 0 14px; }

body.wax2c .svc-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
body.wax2c .svc { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); padding: 16px 14px 14px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 12px; transition: transform .16s, box-shadow .16s; color: var(--ink); }
body.wax2c .svc:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
body.wax2c .svc .ill { height: 70px; border-radius: var(--r-mid); display: grid; place-items: center; }
body.wax2c .svc .ill i { font-size: 34px; }
body.wax2c .svc-ride  .ill { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .svc-food  .ill { background: var(--orange-soft); color: var(--orange-2); }
body.wax2c .svc-parcel .ill { background: var(--calico-2); color: var(--burgundy); }
body.wax2c .svc-pharma .ill { background: var(--forest-soft); color: var(--forest); }
body.wax2c .svc-carpool .ill { background: var(--indigo-soft, #DCE5EE); color: var(--indigo); }
body.wax2c .svc-store .ill { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .svc .row { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; }
body.wax2c .svc .nm { font-family: var(--display); font-weight: 700; font-size: 15px; line-height: 1.1; }
body.wax2c .svc .sub { color: var(--muted); font-size: 11.5px; margin-top: 2px; }
body.wax2c .svc .go { width: 26px; height: 26px; border-radius: 999px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); flex: 0 0 auto; }
body.wax2c .svc .go i { font-size: 15px; }
body.wax2c .svc:hover .go { background: var(--orange); color: #fff; border-color: var(--orange); }

body.wax2c .hub-quick { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
body.wax2c .qcard { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 16px; display: flex; flex-direction: column; gap: 4px; color: var(--ink); transition: transform .15s, box-shadow .15s; }
body.wax2c .qcard:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
body.wax2c .qcard .qi { width: 40px; height: 40px; border-radius: 11px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); font-size: 20px; margin-bottom: 6px; }
body.wax2c .qcard .qn { font-family: var(--display); font-weight: 800; font-size: 22px; color: var(--burgundy); line-height: 1; }
body.wax2c .qcard .qn.sm { font-size: 16px; }
body.wax2c .qcard .qt { font-weight: 700; font-size: 13.5px; }
body.wax2c .qcard .qs { color: var(--muted); font-size: 11.5px; }

body.wax2c .hub-recent { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
body.wax2c .hub-recent .panel h3 { font-family: var(--display); font-weight: 800; font-size: 15.5px; margin-bottom: 12px; }
body.wax2c .hubrow { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line-2); }
body.wax2c .hubrow:first-of-type { border-top: 0; }
body.wax2c .hubrow .hm { flex: 1; min-width: 0; }
body.wax2c .hubrow .h1l { font-weight: 700; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.wax2c .hubrow .h2l { color: var(--muted); font-size: 12px; font-family: var(--mono); }
body.wax2c .hubrow .hp { font-family: var(--display); font-weight: 700; font-size: 14px; color: var(--burgundy); flex: 0 0 auto; }
body.wax2c .hubrow .redo { font-size: 12px; font-weight: 700; color: var(--orange-2); flex: 0 0 auto; }
body.wax2c .hub-recent .empty { color: var(--muted); font-size: 13px; padding: 8px 0; }

body.wax2c .hub-promos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: 14px; }
body.wax2c .hub-promo { background: linear-gradient(135deg, var(--burgundy), var(--burgundy-2)); color: #F8EFE2; border-radius: var(--r-card); padding: 18px 20px; }
body.wax2c .hub-promo h4 { font-family: var(--display); font-weight: 800; font-size: 16px; }
body.wax2c .hub-promo p { font-size: 12.5px; opacity: .8; margin-top: 6px; }
body.wax2c .hub-promo .code { display: inline-block; margin-top: 12px; font-family: var(--mono); font-weight: 700; font-size: 13px; letter-spacing: .08em; color: var(--burgundy-2); background: var(--gold); padding: 5px 12px; border-radius: 999px; }

@media (max-width: 1180px) { body.wax2c .svc-grid, body.wax2c .hub-quick { grid-template-columns: repeat(3,1fr); } body.wax2c .hub-recent { grid-template-columns: 1fr; } }
@media (max-width: 620px) { body.wax2c .svc-grid, body.wax2c .hub-quick { grid-template-columns: repeat(2,1fr); } }

/* ============================================================================
 * TUNNEL — DÉCOUVERTE / LISTING (cx-restaurant_listing.php). Scopé body.wax2c.
 * Re-skin « CSS compat » : on conserve le markup legacy (ul.rest-listing > li…)
 * pour que le scroll infini (fragments AJAX au même markup) reste cohérent, et
 * on le restyle en cartes Wax. `!important` ponctuel pour primer la feuille de
 * style legacy ProKX (chargée avant) sur les props visuelles clés. Aucune fuite
 * possible hors body.wax2c.
 * ========================================================================== */

/* — Conteneurs legacy neutralisés + centrés comme .wrap — */
body.wax2c #main-uber-page { background: var(--calico); }
body.wax2c .page-contant,
body.wax2c .page-contant-inner { width: auto !important; max-width: 1480px !important; margin: 0 auto !important; float: none !important; background: transparent !important; box-shadow: none !important; border: 0 !important; }
body.wax2c .page-contant-inner { padding: 26px 30px 50px !important; }
body.wax2c .listing-main { width: auto !important; float: none !important; margin: 0 !important; }

/* — Bandeau (breadcrumb + pagehead) — */
body.wax2c .disc-wrap { margin-bottom: 18px; }
body.wax2c .breadcrumb { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--muted); margin-bottom: 12px; }
body.wax2c .breadcrumb a { color: var(--muted); }
body.wax2c .breadcrumb a:hover { color: var(--ink); }
body.wax2c .breadcrumb i { font-size: 14px; }
body.wax2c .pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; flex-wrap: wrap; }
body.wax2c .pagehead h1 { font-family: var(--display); font-weight: 800; font-size: 32px; letter-spacing: -.02em; color: var(--burgundy); line-height: 1.1; }
body.wax2c .pagehead .sub { color: var(--muted); font-size: 15px; margin-top: 4px; }
body.wax2c .pagehead .sub b { color: var(--ink); font-weight: 700; }

/* — Barre filtres / recherche / tri legacy (.filter-navbar-section …) en bar Wax — */
body.wax2c .filter-navbar-section,
body.wax2c .filter-navbar { display: flex !important; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 18px !important; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; position: static !important; width: auto !important; float: none !important; }
body.wax2c .store-search-box,
body.wax2c .search-box-main { position: relative; flex: 1 1 320px; max-width: 420px; }
body.wax2c #search_restaurant { width: 100% !important; height: 50px !important; border: 1px solid var(--line) !important; background: var(--card) !important; border-radius: 999px !important; padding: 0 18px 0 44px !important; font: inherit !important; font-size: 14.5px !important; color: var(--ink) !important; box-shadow: var(--shadow-sm) !important; }
body.wax2c .store-search-box::before { content: "\ea9b"; font-family: "tabler-icons" !important; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 19px; pointer-events: none; z-index: 2; }
body.wax2c .navbar-filter-options { display: flex !important; align-items: center; gap: 10px; flex-wrap: wrap; float: none !important; }
body.wax2c .navbar-filter-opt,
body.wax2c .filter-main { display: inline-flex !important; align-items: center; gap: 8px; height: 44px !important; padding: 0 16px !important; border-radius: 11px !important; background: var(--card) !important; border: 1px solid var(--line) !important; font-weight: 600; font-size: 13px; color: var(--ink) !important; cursor: pointer; box-shadow: var(--shadow-sm); margin: 0 !important; }
body.wax2c .navbar-filter-opt:hover,
body.wax2c .filter-main:hover { background: var(--calico-3) !important; }
body.wax2c .navbar-filter-opt.active,
body.wax2c .navbar-filter-opt.selected { background: var(--burgundy) !important; color: #F8EFE2 !important; border-color: var(--burgundy) !important; }
body.wax2c .filter-main i, body.wax2c .navbar-filter-opt i { font-size: 17px; color: var(--muted); }
/* compteur « N STORES » : legacy = vert 22px bold (ProKX) -> label Wax discret */
body.wax2c .navbar-restaurant-count { color: var(--muted) !important; font-size: 13px !important; font-weight: 600 !important; letter-spacing: .02em; margin-right: auto; }

/* — Rail de catégories legacy (.leftbar-filter) transformé en chips horizontaux — */
body.wax2c .rest-menu-main { display: block !important; }
body.wax2c .rest-menu-left { width: 100% !important; float: none !important; }
body.wax2c .leftbar-filter { position: static !important; left: auto !important; top: auto !important; width: 100% !important; float: none !important; margin: 0 0 16px !important; }
body.wax2c .filter-data { position: static !important; left: auto !important; top: auto !important; width: 100% !important; background: transparent !important; box-shadow: none !important; border: 0 !important; }
body.wax2c .filter-data nav ul { display: flex !important; gap: 10px; overflow-x: auto; padding-bottom: 4px; margin: 0; list-style: none; }
body.wax2c .filter-data nav ul::-webkit-scrollbar { height: 0; }
body.wax2c .filter-data nav li { flex: 0 0 auto; margin: 0 !important; }
body.wax2c .filter-data nav li a { display: inline-flex !important; align-items: center; gap: 8px; height: 44px; padding: 0 18px !important; border-radius: 999px !important; background: var(--card) !important; border: 1px solid var(--line) !important; font-weight: 600; font-size: 13.5px; color: var(--ink) !important; white-space: nowrap; cursor: pointer; }
body.wax2c .filter-data nav li a:hover { background: var(--calico-3) !important; }
body.wax2c .filter-data nav li a.active { background: var(--burgundy) !important; color: #F8EFE2 !important; border-color: var(--burgundy) !important; }
body.wax2c .product-list-right { width: 100% !important; float: none !important; }

/* — Titre de section catégorie — */
body.wax2c .rest-menu-cat { margin-bottom: 26px; }
body.wax2c .hold-cat-title { display: flex; align-items: baseline; gap: 12px; margin: 0 0 14px; }
body.wax2c .hold-cat-title h3 { font-family: var(--display); font-weight: 800; font-size: 20px; color: var(--burgundy); margin: 0; }
body.wax2c .hold-cat-title span { font-family: var(--mono); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }

/* — GRILLE DE CARTES (markup legacy ul.rest-listing > li) — */
body.wax2c ul.rest-listing { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 20px !important; list-style: none !important; margin: 0 !important; padding: 0 !important; width: auto !important; }
body.wax2c ul.rest-listing > li { position: relative !important; background: var(--card) !important; border: 1px solid var(--line) !important; border-radius: var(--r-card) !important; box-shadow: var(--shadow-sm) !important; overflow: hidden !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; list-style: none !important; transition: transform .16s, box-shadow .16s; display: flex !important; flex-direction: column; }
body.wax2c ul.rest-listing > li:hover { transform: translateY(-4px); box-shadow: var(--shadow-md) !important; }
body.wax2c ul.rest-listing > li::before { content: none !important; }

/* lien + image bannière */
body.wax2c .rest-listing .outeranchor { display: flex !important; flex-direction: column; height: 100%; }
body.wax2c .rest-listing .outeranchor > a:first-child { display: block; }
body.wax2c .rest-listing .rest-pro { height: 150px !important; width: 100% !important; background-color: var(--calico-2) !important; background-size: cover !important; background-position: center !important; border-radius: 0 !important; margin: 0 !important; }
body.wax2c .rest-listing .procapt { padding: 14px 16px 16px !important; display: flex; flex-direction: column; flex: 1; }
body.wax2c .rest-listing .procapt > a { display: block; color: var(--ink); }
body.wax2c .rest-listing .procapt strong { display: block; font-weight: 400; }

/* nom + note */
body.wax2c .rest-listing .item-list-name { display: block; font-family: var(--display); font-weight: 700; font-size: 17px; line-height: 1.2; color: var(--ink); }
body.wax2c .rest-listing .rating { display: inline-flex !important; align-items: center; gap: 4px; font-weight: 700; font-size: 13px; color: var(--ink); margin-top: 4px; }
body.wax2c .rest-listing .rating img { width: 15px !important; height: 15px; margin: 0 !important; }
body.wax2c .rest-listing .food-detail { color: var(--muted); font-size: 12.5px; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ligne meta (temps / commande mini / prix) */
body.wax2c .rest-listing .span-row { display: flex !important; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-2); font-size: 12px; color: var(--muted); }
body.wax2c .rest-listing .span-row span { display: inline-flex; align-items: center; gap: 4px; }
body.wax2c .rest-listing .span-row .timing img { width: 15px; height: auto; }
body.wax2c .rest-listing .span-row div { display: inline; color: var(--muted); font-weight: 500; }
body.wax2c .rest-listing .discount-txt { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 12px; color: var(--forest); font-weight: 600; }
body.wax2c .rest-listing .discount-txt img { width: 14px; height: 14px; }
body.wax2c .rest-listing .who-txt { margin: 10px 0 0 !important; padding: 10px 0 0 !important; min-height: 0 !important; border-top: 1px solid var(--line-2) !important; color: var(--burgundy) !important; font-size: 12.5px; font-weight: 600; }
body.wax2c .rest-listing .who-txt img { width: 18px !important; }
body.wax2c .rest-listing .who-txt[style*="border:none"], body.wax2c .rest-listing span.who-txt { border-top: 0 !important; }

/* carte fermée */
body.wax2c .rest-listing li.rest-closed .rest-pro { filter: grayscale(.6) brightness(.97); }
body.wax2c .rest-listing li.rest-closed .item-list-name { color: var(--muted); }
body.wax2c .rest-listing li.rest-closed .outeranchor::after { content: "Fermé"; position: absolute; top: 12px; left: 12px; z-index: 3; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: var(--card); color: var(--danger); box-shadow: var(--shadow-sm); }

/* cœur favori (input.favouriteManualStore restylé) */
body.wax2c .rest-listing .add-favorate { position: absolute !important; top: 10px; right: 10px; z-index: 4; margin: 0 !important; }
body.wax2c .rest-listing .fav-check { position: relative; display: block; width: 34px; height: 34px; }
body.wax2c .rest-listing .favouriteManualStore { position: absolute; inset: 0; width: 34px !important; height: 34px !important; margin: 0 !important; opacity: 0; cursor: pointer; z-index: 2; }
body.wax2c .rest-listing .custom-check { position: absolute; inset: 0; width: 34px; height: 34px; border-radius: 999px; background: var(--card); box-shadow: var(--shadow-sm); display: grid; place-items: center; }
body.wax2c .rest-listing .custom-check::before { content: "\2665"; font-size: 17px; line-height: 1; color: var(--muted); }
body.wax2c .rest-listing .favouriteManualStore:checked + .custom-check::before { color: var(--orange); }

/* — Bandeau legacy « ALL STORES / RESTAURANTS » (.restaurant-section-title#catall) : MASQUÉ.
   Ce titre de section ProKX (32px blanc uppercase + flèche down.svg) est rendu HORS du
   conteneur centré (.page-contant-inner ferme avant lui, cx-restaurant_listing.php:883-884)
   => il débordait au bord gauche du viewport. Le pagehead « Restaurants & Magasins » sert
   déjà de titre. Markup/JS conservés (le JS peut toujours cibler .restaurant-section-title,
   simplement masqué ; la flèche down.svg part avec). NB libellé anglais => passe francisation. */
body.wax2c .restaurant-section-title { display: none !important; }

/* — Section « tous les magasins » (filtres + grille) : elle aussi rendue hors de
   .page-contant-inner => on la recentre au MÊME gabarit (max-width + margin auto + padding)
   pour aligner cartes et compteur « N STORES » avec l'en-tête. — */
body.wax2c .restaurant-section { background: transparent !important; float: none !important; width: auto !important; max-width: 1480px !important; margin: 0 auto !important; padding: 0 30px !important; }

/* — Carte fermée : neutralise l'overlay legacy plein (.rest-closed .outeranchor:before,
   rgba(0,0,0,.6) + « CLOSED » couvrant toute la carte, ProKX rest_listing.css) qui
   donnait le rendu « gris terne legacy » et bloquait le clic. On garde uniquement le
   badge Wax « Fermé » (::after ci-dessus) + le grayscale de la vignette. Vaut pour le
   haut (store-category-listing) et le bas (ALL) : même selecteur ul.rest-listing. */
body.wax2c ul.rest-listing li.rest-closed .outeranchor::before { content: none !important; background: transparent !important; }

/* loader + message vide */
body.wax2c .restaurant-section-content, body.wax2c .restaurant-listing { width: auto !important; float: none !important; background: transparent !important; padding: 0 !important; }
body.wax2c .loader { text-align: center; padding: 20px 0; }
body.wax2c .show-msg-restaurant-listing { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); }
body.wax2c .show-msg-restaurant-listing strong { font-family: var(--display); color: var(--burgundy); }
body.wax2c .show-msg-restaurant-listing .btn { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 20px; margin-top: 14px; border-radius: 12px; background: var(--orange); color: #fff !important; font-family: var(--display); font-weight: 700; box-shadow: 0 2px 0 var(--orange-2); border: 0; }

@media (max-width: 1280px) { body.wax2c ul.rest-listing { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 920px)  { body.wax2c ul.rest-listing { grid-template-columns: repeat(2, 1fr) !important; } body.wax2c .page-contant-inner { padding: 20px 16px 40px !important; } body.wax2c .restaurant-section { padding: 0 16px !important; } }
@media (max-width: 560px)  { body.wax2c ul.rest-listing { grid-template-columns: 1fr !important; } }

/* ============================================================================
 * TUNNEL — DÉTAIL MARCHAND / MENU (restaurant_menu.php). Scopé body.wax2c .tunnel-menu
 * (sauf #myModal / #time-info-model, hors <main>). Restyle le markup legacy ProKX
 * (.restaurent-detail-banner, .rest-menu-main, .menu-item-block, #cart-data, modale)
 * en look Wax. Le sous-arbre .tunnel-menu prime sur les règles listing partagées.
 * ========================================================================== */
body.wax2c .tunnel-menu .page-contant { padding: 0 !important; background: transparent !important; }
body.wax2c .tunnel-menu .loader-default { background-color: transparent; }

/* ---- HERO marchand (.restaurent-detail-banner) ---- */
body.wax2c .tunnel-menu .restaurent-detail-banner { display: flex !important; gap: 22px; align-items: stretch; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 18px; margin-bottom: 22px; flex-wrap: wrap; }
body.wax2c .tunnel-menu .restaurent-detail-left { display: flex; gap: 18px; flex: 1 1 520px; min-width: 0; align-items: flex-start; }
body.wax2c .tunnel-menu .proImg-block { flex: 0 0 auto; }
body.wax2c .tunnel-menu .proImage { width: 168px; height: 132px; border-radius: var(--r-mid); background-size: cover !important; background-position: center !important; position: relative; overflow: hidden; }
body.wax2c .tunnel-menu .proImage .opening-time { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(46,20,12,.82); color: #F8EFE2; font-family: var(--mono); font-size: 10px; letter-spacing: .03em; text-transform: uppercase; padding: 6px 8px; text-align: center; }
body.wax2c .tunnel-menu .rest-caption { min-width: 0; flex: 1; }
body.wax2c .tunnel-menu .rest-name { display: flex; align-items: center; gap: 12px; }
body.wax2c .tunnel-menu .rest-name h3 { font-family: var(--display); font-weight: 800; font-size: 26px; letter-spacing: -.02em; color: var(--burgundy); line-height: 1.1; float: none !important; }
body.wax2c .tunnel-menu .add-favorate { margin-left: auto; float: none !important; }
body.wax2c .tunnel-menu .add-favorate .fav-check { position: relative; display: inline-flex; }
body.wax2c .tunnel-menu .add-favorate input.favouriteManualStore { width: 38px; height: 38px; opacity: 0; position: absolute; inset: 0; cursor: pointer; z-index: 2; margin: 0; }
body.wax2c .tunnel-menu .add-favorate .custom-check { width: 38px; height: 38px; border-radius: 999px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); }
body.wax2c .tunnel-menu .add-favorate .custom-check::before { content: "\ea98"; font-family: "tabler-icons"; font-size: 19px; }
body.wax2c .tunnel-menu .add-favorate input.favouriteManualStore:checked + .custom-check { background: var(--orange-soft); border-color: rgba(226,90,46,.4); color: var(--orange-2); }
body.wax2c .tunnel-menu .add-favorate input.favouriteManualStore:checked + .custom-check::before { content: "\eac7"; }
body.wax2c .tunnel-menu .who-txt-details { color: var(--burgundy) !important; border-top: 0 !important; margin: 8px 0 0 !important; font-weight: 600; font-size: 12.5px; }
body.wax2c .tunnel-menu .who-txt-details img { filter: none !important; }
body.wax2c .tunnel-menu .rest-location { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 13px; margin-top: 6px; }
body.wax2c .tunnel-menu .rest-location .time_info { width: 16px; cursor: pointer; }
body.wax2c .tunnel-menu .food-type { color: var(--muted); font-size: 13px; margin-top: 4px; }
body.wax2c .tunnel-menu .regard-rest { display: flex; gap: 26px; flex-wrap: wrap; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line-2); }
body.wax2c .tunnel-menu .regard-rest > div { line-height: 1.2; }
body.wax2c .tunnel-menu .regard-rest .rating { display: inline-flex; align-items: center; gap: 5px; font-family: var(--display); font-weight: 800; font-size: 17px; color: var(--ink); }
body.wax2c .tunnel-menu .regard-rest .rating img { width: 16px; }
body.wax2c .tunnel-menu .regard-rest .del-duration, body.wax2c .tunnel-menu .regard-rest .couple-amt { font-family: var(--display); font-weight: 800; font-size: 17px; color: var(--ink); display: block; }
body.wax2c .tunnel-menu .regard-rest label { font-family: var(--mono); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); display: block; margin-top: 2px; }
body.wax2c .tunnel-menu .restaurent-detail-right { flex: 0 0 auto; display: flex; flex-direction: column; gap: 12px; justify-content: center; }
body.wax2c .tunnel-menu .restaurent-detail-right fieldset { border: 0; }
body.wax2c .tunnel-menu .restaurent-detail-right label { font-family: var(--mono); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
body.wax2c .tunnel-menu .discount-promos { background: var(--orange-soft); border: 1px solid rgba(226,90,46,.3); border-radius: var(--r-mid); padding: 10px 13px; color: var(--orange-2); font-weight: 700; font-size: 13px; margin-top: 4px; }
body.wax2c .tunnel-menu .discount-capt img { display: inline; width: 16px; vertical-align: middle; margin-right: 6px; }
body.wax2c .tunnel-menu .food-cat-row { display: flex; gap: 16px; }
body.wax2c .tunnel-menu .food-cat-type { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; }
body.wax2c .tunnel-menu .food-cat-type .checkbox-holding { position: relative; display: inline-flex; }
body.wax2c .tunnel-menu .food-cat-type input { width: 18px; height: 18px; cursor: pointer; accent-color: var(--forest); }
body.wax2c .tunnel-menu .closetxt { color: var(--danger); }

/* ---- Layout 2 colonnes : menu + panier ---- */
body.wax2c .tunnel-menu .rest-menu-main { display: grid !important; grid-template-columns: minmax(0,1fr) 360px; gap: 24px; align-items: start; float: none !important; }
body.wax2c .tunnel-menu .rest-menu-left { min-width: 0; float: none !important; width: auto !important; }
body.wax2c .tunnel-menu .rest-menu-right { float: none !important; width: auto !important; position: sticky; top: 96px; }

/* recherche menu */
body.wax2c .tunnel-menu .search-main { margin-bottom: 16px; }
body.wax2c .tunnel-menu .search-holder { display: flex; align-items: center; gap: 10px; height: 50px; background: var(--card); border: 1px solid var(--line); border-radius: 999px; padding: 0 18px; box-shadow: var(--shadow-sm); }
body.wax2c .tunnel-menu .search-holder input { border: 0 !important; background: none !important; outline: none; font: inherit; font-size: 14.5px; width: 100%; padding: 0 !important; }
body.wax2c .tunnel-menu .search-holder .close_ico { width: 16px; cursor: pointer; opacity: .6; }

/* rail catégories -> barre d'onglets horizontale sticky */
body.wax2c .tunnel-menu .leftbar-filter { position: sticky; top: 92px; z-index: 5; margin-bottom: 18px; left: auto !important; }
body.wax2c .tunnel-menu .leftbar-filter .filter-data { left: auto !important; }
body.wax2c .tunnel-menu .leftbar-filter nav > ul { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; list-style: none; margin: 0; }
body.wax2c .tunnel-menu .leftbar-filter nav > ul::-webkit-scrollbar { height: 0; }
body.wax2c .tunnel-menu .leftbar-filter nav li { flex: 0 0 auto; }
body.wax2c .tunnel-menu .leftbar-filter nav li a { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); font-weight: 600; font-size: 13.5px; color: var(--ink); white-space: nowrap; cursor: pointer; }
body.wax2c .tunnel-menu .leftbar-filter nav li a:hover { background: var(--calico-3); }
body.wax2c .tunnel-menu .leftbar-filter nav li a.active { background: var(--burgundy); color: #F8EFE2; border-color: var(--burgundy); }
body.wax2c .tunnel-menu .leftbar-filter .more-menu { display: none; }

/* sections + cartes articles */
body.wax2c .tunnel-menu .product-list-right { width: auto !important; float: none !important; }
body.wax2c .tunnel-menu .rest-menu-cat { margin-bottom: 26px; }
body.wax2c .tunnel-menu .hold-cat-title { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; }
body.wax2c .tunnel-menu .hold-cat-title h3 { font-family: var(--display); font-weight: 800; font-size: 20px; color: var(--burgundy); }
body.wax2c .tunnel-menu .hold-cat-title span { font-family: var(--mono); font-size: 11px; color: var(--muted); }
body.wax2c .tunnel-menu .rest-menu-cat .flex-row { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 14px; }
body.wax2c .tunnel-menu .menu-item-block { background: var(--card) !important; border: 1px solid var(--line) !important; border-radius: var(--r-card) !important; box-shadow: var(--shadow-sm); overflow: hidden; cursor: pointer; transition: transform .15s, box-shadow .15s; display: flex; flex-direction: column; position: relative; width: auto !important; margin: 0 !important; }
body.wax2c .tunnel-menu .menu-item-block:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
body.wax2c .tunnel-menu .menu-item-image, body.wax2c .tunnel-menu .menu-item-block .main-silder { height: 140px; background-size: cover !important; background-position: center !important; position: relative; }
body.wax2c .tunnel-menu .menu-item-block .food-type-sym { position: absolute; top: 10px; left: 10px; width: 20px; height: 20px; border-radius: 5px; z-index: 2; }
body.wax2c .tunnel-menu .menu-item-caption { padding: 13px 14px 14px; display: flex; flex-direction: column; gap: 3px; flex: 1; }
body.wax2c .tunnel-menu .menu-item-caption strong { font-family: var(--display); font-weight: 700; font-size: 15.5px; color: var(--ink); }
body.wax2c .tunnel-menu .menu-item-desc { color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
body.wax2c .tunnel-menu .price-with-add { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 10px; }
body.wax2c .tunnel-menu .menu-item-price { font-family: var(--display); font-weight: 800; font-size: 16px; color: var(--burgundy); }
body.wax2c .tunnel-menu .menu-item-block .add_cart { height: 38px; padding: 0 16px; border-radius: 11px; background: var(--orange); color: #fff; font-weight: 700; font-size: 13px; box-shadow: 0 2px 0 var(--orange-2); display: inline-flex; align-items: center; gap: 6px; }
body.wax2c .tunnel-menu .menu-item-block .add_cart:hover { background: var(--orange-2); }
body.wax2c .tunnel-menu .menu-item-block .add_cart::before { content: "\eb0b"; font-family: "tabler-icons"; font-size: 16px; }
body.wax2c .tunnel-menu #ribbon-container a, body.wax2c .tunnel-menu .mi-work a { display: inline-block; background: var(--gold-soft); color: var(--burgundy); font-family: var(--mono); font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; font-weight: 700; padding: 3px 9px; border-radius: 999px; position: absolute; top: 10px; right: 10px; z-index: 3; }

/* ---- Panier latéral (#cart-data, rempli par ajax_view_cart_to_restaurant) ---- */
body.wax2c .tunnel-menu .checkout-block { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); overflow: hidden; }
body.wax2c .tunnel-menu #cart-data:empty::before { content: "Votre panier est vide"; display: block; padding: 40px 20px; text-align: center; color: var(--muted); font-size: 13.5px; }
body.wax2c .tunnel-menu #cart-data { padding: 4px; }
body.wax2c .tunnel-menu #cart-data .total-row, body.wax2c .tunnel-menu #cart-data #total-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; font-family: var(--display); font-weight: 800; color: var(--burgundy); border-top: 1px solid var(--line-2); }
body.wax2c .tunnel-menu #cart-data .btnstatus button, body.wax2c .tunnel-menu #cart-data #checkout-block, body.wax2c .tunnel-menu #cart-data button[type="submit"] { width: 100%; height: 48px; border-radius: 12px; background: var(--orange); color: #fff; font-family: var(--display); font-weight: 700; font-size: 15px; box-shadow: 0 2px 0 var(--orange-2); margin-top: 6px; }
body.wax2c .tunnel-menu #cart-data .btnstatus button:hover { background: var(--orange-2); }
body.wax2c .tunnel-menu #cart-data .msgmaxquty, body.wax2c .tunnel-menu #cart-data .msgminimumtotal { color: var(--danger); font-size: 12px; padding: 4px 14px; display: none; }
body.wax2c .tunnel-menu #cart-data .msgmaxquty.show, body.wax2c .tunnel-menu #cart-data .msgminimumtotal.show { display: block; }
body.wax2c #usershoppingcart a { color: var(--orange-2) !important; }

/* ---- Modale options/addons (#myModal) — hors <main>, scope direct ---- */
body.wax2c .product-model-overlay { position: fixed; inset: 0; background: rgba(46,20,12,.55); z-index: 200; display: none; align-items: center; justify-content: center; padding: 20px; }
body.wax2c .product-model-overlay.active { display: flex; }
body.wax2c .product-model { background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow-md); max-width: 560px; width: 100%; max-height: 88vh; overflow: hidden; position: relative; display: flex; flex-direction: column; }
body.wax2c .product-model .close-icon { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border-radius: 999px; background: rgba(46,20,12,.5); display: grid; place-items: center; cursor: pointer; z-index: 3; }
body.wax2c .product-model-left:empty { display: none; }
body.wax2c .product-model-right { padding: 22px; overflow-y: auto; }
body.wax2c .product-model #menuitename { font-family: var(--display); font-weight: 800; font-size: 21px; color: var(--burgundy); }
body.wax2c .product-model .stock-cost { display: block; color: var(--muted); font-size: 13px; margin-top: 4px; }
body.wax2c .product-model .what-extra { list-style: none; margin: 10px 0; padding: 0; }
body.wax2c .product-model .increment-cart { display: flex; align-items: center; gap: 12px; padding: 18px 22px; border-top: 1px solid var(--line-2); flex-wrap: wrap; }
body.wax2c .product-model .count-block { display: inline-flex; align-items: center; gap: 14px; border: 1px solid var(--line); border-radius: 999px; padding: 4px 6px; }
body.wax2c .product-model .count-block button { width: 32px; height: 32px; border-radius: 999px; background: var(--calico-3); color: var(--burgundy); font-size: 18px; font-weight: 700; display: grid; place-items: center; }
body.wax2c .product-model .addCart-button { flex: 1; min-width: 160px; height: 48px; border-radius: 12px; background: var(--orange); color: #fff; font-family: var(--display); font-weight: 700; font-size: 15px; box-shadow: 0 2px 0 var(--orange-2); }
body.wax2c .product-model .addCart-button:hover { background: var(--orange-2); }
body.wax2c .product-model #optionserror, body.wax2c .product-model #addonerror { color: var(--danger); font-size: 12px; }

@media (max-width: 1080px) { body.wax2c .tunnel-menu .rest-menu-main { grid-template-columns: 1fr !important; } body.wax2c .tunnel-menu .rest-menu-right { position: static; } }
@media (max-width: 620px) { body.wax2c .tunnel-menu .rest-menu-cat .flex-row { grid-template-columns: 1fr; } body.wax2c .tunnel-menu .restaurent-detail-left { flex: 1 1 100%; } }

/* ============================================================================
 * TUNNEL — PANIER (fragment ajax_view_cart_to_restaurant.php injecté dans
 * #cart-data de la Page 2 menu). Scopé body.wax2c #cart-data. Restyle le markup
 * legacy en place (initial = rechargé par loadingtime()) → corrige la couture
 * Page 2. Hooks JS préservés (number_update/.plus/.minus/.numbercart_update/
 * #total-row/#subtotalamount/.btnstatus/#checkout-form). FCFA = backend, no ratio.
 * ========================================================================== */
body.wax2c #cart-data { font-family: var(--sans); color: var(--ink); }
body.wax2c #cart-data .cart-data { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); overflow: hidden; }
body.wax2c #cart-data .cart-header { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-bottom: 1px solid var(--line-2); background: var(--calico-3); }
body.wax2c #cart-data .cart-header .wx-cart-ic { width: 34px; height: 34px; border-radius: 10px; background: var(--orange-soft); color: var(--orange-2); display: grid; place-items: center; font-size: 19px; flex: 0 0 auto; }
body.wax2c #cart-data .cart-header h5 { font-family: var(--display); font-weight: 800; font-size: 16px; margin: 0; color: var(--burgundy); }

/* lignes article */
body.wax2c #cart-data .cart-data-row { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--line-2); }
body.wax2c #cart-data .cart-data-row:last-of-type { border-bottom: 0; }
body.wax2c #cart-data .open-modal { flex: 1; min-width: 0; display: flex; align-items: flex-start; gap: 10px; }
body.wax2c #cart-data .wx-line-vt img { width: 16px; height: 16px; margin-top: 3px; }
body.wax2c #cart-data .wx-line-txt { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
body.wax2c #cart-data .cart-item-name { font-family: var(--display); font-weight: 700; font-size: 14.5px; line-height: 1.2; cursor: pointer; }
body.wax2c #cart-data .cart-item { color: var(--muted); font-size: 12.5px; }
body.wax2c #cart-data .wx-line-acts { display: flex; gap: 12px; margin-top: 5px; }
body.wax2c #cart-data .edit_ele, body.wax2c #cart-data .remove_ele { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; font-weight: 600; cursor: pointer; color: var(--muted); }
body.wax2c #cart-data .edit_ele i, body.wax2c #cart-data .remove_ele i { font-size: 14px; }
body.wax2c #cart-data .edit_ele:hover { color: var(--burgundy); }
body.wax2c #cart-data .remove_ele:hover { color: var(--danger); }

/* stepper quantité — .plus = décrément (−), .minus = incrément (+) */
body.wax2c #cart-data .count-block { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; flex: 0 0 auto; background: var(--card); }
body.wax2c #cart-data .count-block button { width: 32px; height: 36px; display: grid; place-items: center; color: var(--burgundy); background: none; border: 0; cursor: pointer; font-size: 0; }
body.wax2c #cart-data .count-block button:hover { background: var(--calico-3); }
body.wax2c #cart-data .count-block button.plus::before { content: "\2212"; font-size: 16px; font-weight: 700; }
body.wax2c #cart-data .count-block button.minus::before { content: "+"; font-size: 17px; font-weight: 700; }
body.wax2c #cart-data .count-block .numbercart_update { width: 34px; min-width: 34px; text-align: center; font-weight: 700; font-size: 14px; border: 0; background: none; color: var(--ink); padding: 0; pointer-events: none; }
body.wax2c #cart-data .count-block input[type="hidden"] { display: none; }

body.wax2c #cart-data [id^="show_price_update"] { flex: 0 0 auto; min-width: 78px; text-align: right; }
body.wax2c #cart-data .cart-item-cost { font-family: var(--display); font-weight: 700; font-size: 14.5px; color: var(--burgundy); }

/* récap (sous-total / livraison / total) — #total-row.wx-recap */
body.wax2c #cart-data .wx-recap { padding: 14px 18px; background: var(--calico-3); border-top: 1px solid var(--line); }
body.wax2c #cart-data .wx-recap-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 13.5px; color: var(--muted); padding: 4px 0; }
body.wax2c #cart-data .wx-recap-row #subtotalamount { color: var(--muted); }
body.wax2c #cart-data .wx-recap-val { font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
body.wax2c #cart-data .wx-recap .wx-disc .wx-recap-val { color: var(--forest); }
body.wax2c #cart-data .wx-recap-total { border-top: 1px dashed var(--line); margin-top: 6px; padding-top: 11px; }
body.wax2c #cart-data .wx-recap-total > div:first-child { font-family: var(--display); font-weight: 700; font-size: 16px; color: var(--ink); }
body.wax2c #cart-data .wx-recap-total .wx-recap-val { font-family: var(--display); font-weight: 800; font-size: 20px; color: var(--burgundy); }

/* notes */
body.wax2c #cart-data .msgmaxquty, body.wax2c #cart-data .msgminimumtotal { font-size: 12px; padding: 6px 18px; }
body.wax2c #cart-data .taxMessage { font-size: 11.5px !important; color: var(--muted) !important; padding: 0 18px 8px !important; }
body.wax2c #cart-data .hide { display: none; }
body.wax2c #cart-data .show { display: block; }

/* bouton commande */
body.wax2c #cart-data .btn-hold { padding: 14px 18px; }
body.wax2c #cart-data .btn-hold button, body.wax2c #cart-data #checkout-block { width: 100%; height: 50px; border-radius: 13px; background: var(--orange); color: #fff; font-family: var(--display); font-weight: 700; font-size: 15px; border: 0; cursor: pointer; box-shadow: 0 2px 0 var(--orange-2); display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
body.wax2c #cart-data .btn-hold button:hover, body.wax2c #cart-data #checkout-block:hover { background: var(--orange-2); }
body.wax2c #cart-data .btn-hold.cart-disable button[disabled], body.wax2c #cart-data .btn-hold button[disabled] { background: var(--calico-2); color: var(--muted); box-shadow: none; cursor: not-allowed; }
body.wax2c #cart-data #checkout-form { margin: 0; }

/* état vide */
body.wax2c #cart-data .wx-cart-empty { text-align: center; padding: 36px 20px 10px; }
body.wax2c #cart-data .wx-cart-empty .wx-empty-ic { width: 64px; height: 64px; border-radius: 18px; background: var(--calico-3); display: grid; place-items: center; margin: 0 auto 12px; font-size: 30px; color: var(--burgundy); }
body.wax2c #cart-data .wx-cart-empty .note_ { color: var(--muted); font-size: 13.5px; }

/* ============================================================================
 * TUNNEL — CONFIRMATION (thanks.php). Scopé body.wax2c. Réutilise .panel.
 * ========================================================================== */
body.wax2c .conf { max-width: 680px; margin: 0 auto; }
body.wax2c .hero-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-md); text-align: center; padding: 42px 36px 32px; position: relative; overflow: hidden; }
body.wax2c .hero-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: linear-gradient(90deg, var(--orange), var(--gold), var(--forest)); }
body.wax2c .hero-card .check { width: 96px; height: 96px; border-radius: 50%; background: var(--forest-soft); display: grid; place-items: center; margin: 0 auto 22px; }
body.wax2c .hero-card .check i { font-size: 52px; color: var(--forest); }
body.wax2c .hero-card h1 { font-family: var(--display); font-weight: 800; font-size: 30px; letter-spacing: -.02em; color: var(--burgundy); }
body.wax2c .hero-card .sub { color: var(--muted); font-size: 15px; margin-top: 8px; }
body.wax2c .hero-card .sub b { color: var(--ink); font-weight: 700; }
body.wax2c .hero-card .ordnum { display: inline-flex; align-items: center; gap: 9px; margin-top: 18px; background: var(--calico-3); border: 1px solid var(--line); border-radius: 999px; padding: 9px 18px; font-family: var(--mono); font-weight: 700; font-size: 14px; letter-spacing: .04em; }
body.wax2c .hero-card .ordnum i { color: var(--orange); font-size: 17px; }
body.wax2c .conf .panel { margin-top: 18px; }
body.wax2c .conf .srow { display: flex; justify-content: space-between; font-size: 14px; padding: 8px 0; color: var(--muted); }
body.wax2c .conf .srow .v { color: var(--ink); font-weight: 600; }
body.wax2c .conf .srow.total { border-top: 1px dashed var(--line); margin-top: 8px; padding-top: 14px; }
body.wax2c .conf .srow.total .lbl { font-family: var(--display); font-weight: 700; font-size: 17px; color: var(--ink); }
body.wax2c .conf .srow.total .v { font-family: var(--display); font-weight: 800; font-size: 21px; color: var(--burgundy); }
body.wax2c .conf .actions { display: flex; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
body.wax2c .conf .actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 50px; padding: 0 22px; border-radius: 13px; font-family: var(--display); font-weight: 700; font-size: 14.5px; flex: 1; }
body.wax2c .conf .actions .btn-ghost { background: var(--card); border: 1px solid var(--line); color: var(--ink); }
body.wax2c .conf .actions .btn-ghost:hover { background: var(--calico-3); }
body.wax2c .conf .actions .btn-burg { background: var(--burgundy); color: #F8EFE2; }
body.wax2c .conf .actions .btn-burg:hover { background: var(--burgundy-2); }
body.wax2c .conf .help-note { text-align: center; color: var(--muted); font-size: 13px; margin-top: 22px; }

/* ============================================================================
 * TUNNEL — DÉTAIL / SUIVI COMMANDE (order-detail.php). Scopé body.wax2c.
 * Migré de _app_shell.php : tokens remappés (--shell-card→--card, etc.).
 * ========================================================================== */
body.wax2c .od-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; }
@media (max-width: 960px) { body.wax2c .od-grid { grid-template-columns: 1fr; } }
body.wax2c .od-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 22px 24px; margin-bottom: 18px; }
body.wax2c .od-card h3 { font-family: var(--display); font-weight: 700; font-size: 16px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; color: var(--ink); }
body.wax2c .od-head { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 16px; }
body.wax2c .od-head .num { font-family: var(--display); font-weight: 800; font-size: 28px; color: var(--burgundy); letter-spacing: -.01em; }
body.wax2c .od-head .meta { font-family: var(--mono); font-size: 12px; opacity: .65; letter-spacing: .04em; }
body.wax2c .od-item { display: grid; grid-template-columns: 36px 1fr auto auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px dashed var(--line); }
body.wax2c .od-item:last-child { border-bottom: 0; }
body.wax2c .od-item .qty { background: var(--burgundy); color: var(--calico); font-family: var(--display); font-weight: 700; font-size: 13px; width: 32px; height: 32px; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
body.wax2c .od-item .name { font-size: 14.5px; font-weight: 600; color: var(--ink); }
body.wax2c .od-item .opts { font-family: var(--mono); font-size: 11px; opacity: .6; margin-top: 2px; }
body.wax2c .od-item .unit { font-family: var(--mono); font-size: 12px; opacity: .55; text-align: right; }
body.wax2c .od-item .total { font-family: var(--display); font-weight: 700; font-size: 14px; color: var(--burgundy); text-align: right; white-space: nowrap; }
body.wax2c .od-summary .row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 14px; }
body.wax2c .od-summary .row.total { border-top: 1px solid var(--ink); margin-top: 8px; padding-top: 14px; font-family: var(--display); font-weight: 800; font-size: 18px; color: var(--burgundy); }
body.wax2c .od-summary .row .lbl { opacity: .7; }
body.wax2c .od-summary .row.discount .val { color: var(--orange-2); }
body.wax2c .od-actor { display: flex; align-items: center; gap: 12px; padding: 6px 0; }
body.wax2c .od-actor .avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--gold); color: var(--burgundy-2); display: flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 800; font-size: 16px; }
body.wax2c .od-actor .name { font-weight: 600; font-size: 14.5px; }
body.wax2c .od-actor .sub { font-family: var(--mono); font-size: 11.5px; opacity: .6; }
/* Timeline de statut (+ items live legacy injectés par ajax_getOrderstatus.php) */
body.wax2c .od-timeline, body.wax2c .od-live { list-style: none; margin: 4px 0 0; padding: 0 0 0 22px; position: relative; }
body.wax2c .od-timeline::before, body.wax2c .od-live::before { content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 2px; background: var(--line); }
body.wax2c .od-timeline li, body.wax2c .od-live li { position: relative; padding: 8px 0 8px 14px; }
body.wax2c .od-timeline li::before, body.wax2c .od-live li::before { content: ""; position: absolute; left: -19px; top: 12px; width: 11px; height: 11px; border-radius: 50%; background: var(--card); border: 2px solid var(--line); }
body.wax2c .od-timeline li.done::before, body.wax2c .od-live li.work-invoice::before { background: var(--forest); border-color: var(--forest); }
body.wax2c .od-timeline li.current::before, body.wax2c .od-live li.work-invoice-new::before { background: var(--orange); border-color: var(--orange); box-shadow: 0 0 0 4px var(--orange-soft); }
body.wax2c .od-timeline li.cancel::before, body.wax2c .od-live li.cancel::before { background: var(--danger); border-color: var(--danger); }
body.wax2c .od-timeline li strong, body.wax2c .od-live li strong { display: block; font-size: 14px; font-weight: 700; color: var(--ink); }
body.wax2c .od-timeline li .t { font-family: var(--mono); font-size: 11px; color: var(--muted); }
body.wax2c .od-live li p { font-size: 12.5px; color: var(--muted); margin: 2px 0 0; }
body.wax2c .od-live b { display: none; }
body.wax2c .od-live-note { margin-top: 12px; font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }

/* ============================================================================
 * SERVICE PHARMACIE — bandeau « Déposer une ordonnance » (restaurant_menu.php,
 * affiché si iServiceId=5). Upload réel -> prescription_images. Scopé body.wax2c.
 * ========================================================================== */
body.wax2c .ordo { display: flex; align-items: center; gap: 18px; background: var(--gold-soft); border: 1px solid var(--line); border-radius: var(--r-card, 18px); padding: 18px 22px; margin: 0 0 22px; }
body.wax2c .ordo .oi { width: 54px; height: 54px; border-radius: 15px; background: var(--card); border: 1px solid var(--line); color: var(--burgundy); display: grid; place-items: center; font-size: 27px; flex: 0 0 auto; }
body.wax2c .ordo .ordo-txt { flex: 1 1 auto; min-width: 0; }
body.wax2c .ordo .on { font-family: var(--display); font-weight: 800; font-size: 17px; color: var(--burgundy); }
body.wax2c .ordo .os { color: var(--ink); opacity: .72; font-size: 13px; margin-top: 2px; }
body.wax2c .ordo .btn { margin-left: auto; height: 48px; padding: 0 22px; border: 0; cursor: pointer; border-radius: 12px; background: var(--burgundy); color: #F8EFE2; font-family: var(--display); font-weight: 700; font-size: 14px; display: inline-flex; align-items: center; gap: 9px; }
body.wax2c .ordo .btn:hover { background: var(--burgundy-2); }
body.wax2c .ordo .btn:disabled { opacity: .6; cursor: default; }
body.wax2c .ordo-files { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; }
body.wax2c .ordo-chip { font-size: 13px; color: #1f7a3d; display: inline-flex; align-items: center; gap: 6px; background: rgba(31,122,61,.08); border-radius: 8px; padding: 4px 10px; }
@media (max-width: 980px) { body.wax2c .ordo { flex-wrap: wrap; } body.wax2c .ordo .btn { width: 100%; margin-left: 0; } }

/* ============================================================================
 * SERVICE TAXI / VTC — écran ESTIMATION (fareestimate.php, route /fare-estimate).
 * Re-skin du widget legacy : form #from/#to + #setEstimate_figure (cartes véhicule
 * via ajax_find_estimate.php) + carte Google #map-canvas. Scopé body.wax2c.
 * ========================================================================== */
body.wax2c main.taxi-estimate { padding: 18px 0 8px; }
body.wax2c .taxi-estimate .breadcrumb { display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--muted); margin-bottom: 14px; }
body.wax2c .taxi-estimate .breadcrumb a { color: var(--muted); }
body.wax2c .taxi-estimate .breadcrumb a:hover { color: var(--burgundy); }
body.wax2c .te-grid { display: grid; grid-template-columns: minmax(0,1fr) 432px; gap: 22px; align-items: stretch; min-height: 600px; }

/* carte (Google map legacy #map-canvas reskinnée en map-card) */
body.wax2c .te-grid .map-card { position: relative; order: -1; border-radius: var(--r-card); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow-md); min-height: 440px; background: var(--calico-2); }
body.wax2c .te-grid .map-card #map-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
body.wax2c .map-badge { position: absolute; left: 16px; bottom: 16px; z-index: 500; background: var(--card); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 12px 16px; display: flex; align-items: center; gap: 12px; }
body.wax2c .map-badge .mi { width: 42px; height: 42px; border-radius: 12px; background: var(--forest-soft); color: var(--forest); display: grid; place-items: center; font-size: 21px; }
body.wax2c .map-badge .ml { font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
body.wax2c .map-badge .mv { font-family: var(--display); font-weight: 800; font-size: 16px; color: var(--burgundy); line-height: 1.15; }

/* panneau réservation */
body.wax2c .te-grid .book { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-md); display: flex; flex-direction: column; overflow: hidden; }
body.wax2c .te-grid .book-scroll { overflow-y: auto; padding: 22px 22px 8px; flex: 1; }
body.wax2c .te-grid .book h1 { font-family: var(--display); font-weight: 800; font-size: 23px; letter-spacing: -.02em; color: var(--burgundy); }
body.wax2c .te-grid .book .bsub { color: var(--muted); font-size: 13.5px; margin: 2px 0 16px; }
body.wax2c .te-grid .fields { background: var(--calico-3); border: 1px solid var(--line); border-radius: var(--r-mid); padding: 4px 14px; position: relative; }
body.wax2c .te-grid .fields .fconnector { position: absolute; left: 19px; top: 30px; bottom: 30px; width: 2px; background: repeating-linear-gradient(var(--line) 0 3px, transparent 3px 7px); }
body.wax2c .te-grid .ff { display: flex; align-items: center; gap: 13px; padding: 11px 0; }
body.wax2c .te-grid .ff + .ff { border-top: 1px solid var(--line-2); }
body.wax2c .te-grid .ff .dot { width: 12px; height: 12px; border-radius: 50%; flex: 0 0 auto; }
body.wax2c .te-grid .ff .dot.dep { background: var(--forest); }
body.wax2c .te-grid .ff .dot.arr { background: var(--orange); }
body.wax2c .te-grid .ff .ftxt { flex: 1; min-width: 0; }
body.wax2c .te-grid .ff .fl { font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
body.wax2c .te-grid .ff input[type=text] { width: 100%; border: 0; background: transparent; font-family: var(--sans); font-weight: 600; font-size: 14.5px; color: var(--ink); padding: 2px 0; outline: none; }
body.wax2c .te-grid .ff input::placeholder { color: var(--muted); font-weight: 500; }
body.wax2c .te-grid .ff .fa { color: var(--muted); font-size: 18px; }
body.wax2c .te-grid .sec-l { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 18px 0 11px; }
body.wax2c .te-hint { color: var(--muted); font-size: 13px; padding: 2px 2px 4px; }

/* cartes véhicule = markup legacy #setEstimate_figure > ul > li > label > (texte) + img(?) + b(prix) */
body.wax2c #setEstimate_figure ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; }
body.wax2c #setEstimate_figure ul li { list-style: none; border: 1.5px solid var(--line); border-radius: var(--r-mid); transition: border-color .14s, background .14s; }
body.wax2c #setEstimate_figure ul li:hover { background: var(--calico-3); border-color: var(--orange); }
body.wax2c #setEstimate_figure ul li label { display: flex; align-items: center; gap: 12px; margin: 0; padding: 14px 16px; cursor: default; font-family: var(--display); font-weight: 700; font-size: 15px; color: var(--ink); }
body.wax2c #setEstimate_figure ul li label::before { content: "\ebbb"; font-family: "tabler-icons" !important; font-weight: 400; -webkit-font-smoothing: antialiased; width: 46px; height: 40px; border-radius: 11px; background: var(--calico-2); color: var(--burgundy); display: grid; place-items: center; font-size: 22px; flex: 0 0 auto; }
body.wax2c #setEstimate_figure ul li label img { width: 17px; height: 17px; opacity: .45; cursor: pointer; }
body.wax2c #setEstimate_figure ul li label b { margin-left: auto; font-family: var(--display); font-weight: 800; font-size: 17px; color: var(--burgundy); white-space: nowrap; }
body.wax2c #setEstimate_figure h4 { color: var(--muted); font-size: 13.5px; font-weight: 600; padding: 6px 2px; }

/* paiement (placeholder honnête : choix réel à la réservation) */
body.wax2c .te-grid .pay-sel { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--r-mid); background: var(--calico-3); }
body.wax2c .te-grid .pay-sel .pi { width: 40px; height: 32px; border-radius: 8px; background: var(--gold-soft); color: var(--burgundy); display: grid; place-items: center; font-size: 18px; flex: 0 0 auto; }
body.wax2c .te-grid .pay-sel .pn { font-weight: 700; font-size: 13.5px; }
body.wax2c .te-grid .pay-sel .ps { color: var(--muted); font-size: 12px; }
body.wax2c .te-grid .book-foot { padding: 16px 22px; border-top: 1px solid var(--line-2); flex: 0 0 auto; }
body.wax2c .te-grid .btn-book { width: 100%; height: 54px; border-radius: 14px; background: var(--orange); color: #fff; font-family: var(--display); font-weight: 700; font-size: 16.5px; box-shadow: 0 2px 0 var(--orange-2); display: flex; align-items: center; justify-content: center; gap: 10px; }
body.wax2c .te-grid .btn-book:hover { background: var(--orange-2); color: #fff; }
body.wax2c .te-grid .book-foot-note { font-size: 11.5px; color: var(--muted); text-align: center; margin-top: 9px; }
body.wax2c #imageIcons { padding: 10px; text-align: center; }
@media (max-width: 1080px) { body.wax2c .te-grid { grid-template-columns: 1fr; min-height: 0; } body.wax2c .te-grid .map-card { min-height: 320px; } }

/* ============================================================================
 * HUB CLIENT (user-home.php) — reconstruction FIDÈLE du design « Client - Accueil (Hub) ».
 * TOUT est scopé body.wax2c .hubx (anti-collision : .panel/.svc/.pill/.btn existent ailleurs).
 * Header/footer = shell. Tokens déjà définis sur body.wax2c. Composants portés du <style> du design.
 * ========================================================================== */
body.wax2c .hubx { position: relative; }
body.wax2c .hubx .empty { color: var(--muted); font-size: 13px; padding: 10px 2px; }

/* HERO */
body.wax2c .hubx .hero { position: relative; display: grid; grid-template-columns: minmax(0,1.18fr) minmax(0,1fr); gap: 26px; align-items: start; margin-bottom: 22px; }
/* Conteneur déco BORNÉ (taille fixe) : ne peut jamais remplir l'écran. */
body.wax2c .hubx .hero-deco { position: absolute; right: 28%; top: 0; width: 200px; height: 260px; max-width: 200px; max-height: 260px; overflow: hidden; pointer-events: none; z-index: 0; opacity: .5; }
/* SVG borné EXPLICITEMENT (width+height) : ne pas dépendre de width:auto (cassé sur WebKit/Safari
   pour un <svg viewBox> sans attributs width/height -> rendu pleine largeur = forme géante). */
body.wax2c .hubx .hero-deco svg { display: block; width: 200px; height: 260px; color: var(--calico-2); }
body.wax2c .hubx .greet { position: relative; z-index: 1; }
body.wax2c .hubx .greet h1 { font-family: var(--display); font-weight: 800; font-size: 38px; letter-spacing: -.02em; color: var(--burgundy); line-height: 1.05; }
body.wax2c .hubx .greet p { color: var(--muted); font-size: 16px; margin-top: 6px; }

body.wax2c .hubx .services { position: relative; z-index: 1; margin-top: 22px; display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
body.wax2c .hubx .svc { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); padding: 16px 14px 14px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 12px; transition: transform .16s, box-shadow .16s; color: var(--ink); }
body.wax2c .hubx .svc:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
body.wax2c .hubx .svc .ill { height: 70px; border-radius: var(--r-mid); display: grid; place-items: center; }
body.wax2c .hubx .svc .ill i { font-size: 38px; }
body.wax2c .hubx .svc-ride .ill { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .hubx .svc-food .ill { background: var(--orange-soft); color: var(--orange-2); }
body.wax2c .hubx .svc-parcel .ill { background: var(--calico-2); color: var(--burgundy); }
body.wax2c .hubx .svc-pharma .ill { background: var(--forest-soft); color: var(--forest); }
body.wax2c .hubx .svc-carpool .ill { background: var(--indigo-soft); color: var(--indigo); }
body.wax2c .hubx .svc-store .ill { background: var(--gold-soft); color: var(--burgundy); }
body.wax2c .hubx .svc .row { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; }
body.wax2c .hubx .svc .nm { font-family: var(--display); font-weight: 700; font-size: 16px; line-height: 1.1; }
body.wax2c .hubx .svc .sub { color: var(--muted); font-size: 12px; }
body.wax2c .hubx .svc .go { width: 26px; height: 26px; border-radius: 999px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); flex: 0 0 auto; }
body.wax2c .hubx .svc .go i { font-size: 15px; }
body.wax2c .hubx .svc:hover .go { background: var(--orange); color: #fff; border-color: var(--orange); }

/* TRIP PLANNER */
body.wax2c .hubx .trip { position: relative; z-index: 1; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-md); padding: 20px; }
body.wax2c .hubx .trip .th { display: flex; align-items: center; gap: 9px; font-family: var(--display); font-weight: 700; font-size: 17px; margin-bottom: 14px; }
body.wax2c .hubx .trip .th i { color: var(--orange); font-size: 20px; }
body.wax2c .hubx .trip-body { display: flex; gap: 12px; align-items: stretch; }
body.wax2c .hubx .trip-fields { flex: 1; background: var(--calico-3); border: 1px solid var(--line); border-radius: var(--r-mid); padding: 4px 14px; position: relative; }
body.wax2c .hubx .tf { display: flex; align-items: center; gap: 12px; padding: 11px 0; }
body.wax2c .hubx .tf + .tf { border-top: 1px solid var(--line-2); }
body.wax2c .hubx .tf .dot { width: 12px; height: 12px; border-radius: 999px; flex: 0 0 auto; }
body.wax2c .hubx .tf .dot.dep { background: var(--forest); }
body.wax2c .hubx .tf .dot.arr { background: var(--orange); }
body.wax2c .hubx .tf-txt .l { font-family: var(--mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
body.wax2c .hubx .tf-txt .v { font-weight: 600; font-size: 14.5px; }
body.wax2c .hubx .tf-txt .v.ph { color: var(--muted); font-weight: 500; }
body.wax2c .hubx .trip-connector { position: absolute; left: 19px; top: 30px; bottom: 30px; width: 2px; background: repeating-linear-gradient(var(--line) 0 3px, transparent 3px 7px); }
body.wax2c .hubx .swap { width: 44px; align-self: center; height: 44px; border-radius: 12px; background: var(--card); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); flex: 0 0 auto; box-shadow: var(--shadow-sm); }
body.wax2c .hubx .swap i { font-size: 20px; }
body.wax2c .hubx .trip-quick { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
body.wax2c .hubx .qchip { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px; background: var(--calico-3); border: 1px solid var(--line); font-weight: 600; font-size: 13px; color: var(--ink); }
body.wax2c .hubx .qchip i { font-size: 16px; color: var(--burgundy); }
body.wax2c .hubx .qchip:hover { background: var(--calico-2); }
body.wax2c .hubx .btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 48px; padding: 0 22px; border-radius: 12px; font-weight: 700; font-size: 14.5px; transition: transform .12s, box-shadow .16s, background .16s; }
body.wax2c .hubx .btn:active { transform: translateY(1px); }
body.wax2c .hubx .btn-primary { background: var(--orange); color: #fff; box-shadow: 0 2px 0 var(--orange-2); }
body.wax2c .hubx .btn-primary:hover { background: var(--orange-2); }
body.wax2c .hubx .btn-ghost { background: var(--card); border: 1px solid var(--line); color: var(--ink); }
body.wax2c .hubx .btn-ghost:hover { background: var(--calico-3); }
body.wax2c .hubx .trip-cta { margin-top: 14px; display: flex; }
body.wax2c .hubx .trip-cta .btn { flex: 1; }

/* GRID ROWS */
body.wax2c .hubx .grid { display: grid; gap: 20px; margin-bottom: 20px; }
body.wax2c .hubx .r2 { grid-template-columns: 1.32fr 1fr 1fr 1.22fr; }
body.wax2c .hubx .r3 { grid-template-columns: 1fr 1.42fr 1fr; }
body.wax2c .hubx .r4 { grid-template-columns: 1.5fr 1.05fr 1.02fr; }
body.wax2c .hubx .panel { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 18px; display: flex; flex-direction: column; }
body.wax2c .hubx .panel-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
body.wax2c .hubx .panel-h h3 { font-family: var(--display); font-weight: 700; font-size: 16.5px; }
body.wax2c .hubx .panel-h .link { color: var(--orange-2); font-weight: 700; font-size: 13px; display: inline-flex; align-items: center; gap: 4px; }
body.wax2c .hubx .panel-h .link:hover { text-decoration: underline; }
body.wax2c .hubx .pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; font-family: var(--mono); font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
body.wax2c .hubx .pill.route { background: var(--forest-soft); color: var(--forest); }
body.wax2c .hubx .pill.delivered { background: var(--forest-soft); color: var(--forest); }
body.wax2c .hubx .pill.done { background: var(--calico-2); color: var(--burgundy); }
body.wax2c .hubx .pill.dot::before { content:""; width: 6px; height: 6px; border-radius: 999px; background: currentColor; }

/* TRAJET EN COURS */
body.wax2c .hubx .trajet-top { display: flex; gap: 14px; }
body.wax2c .hubx #map { width: 184px; height: 132px; border-radius: var(--r-mid); flex: 0 0 184px; overflow: hidden; border: 1px solid var(--line); }
body.wax2c .hubx .map-ph { width: 184px; height: 132px; flex: 0 0 184px; border-radius: var(--r-mid); border: 1px solid var(--line); background: var(--calico-2); display: grid; place-items: center; color: var(--burgundy); font-size: 34px; }
body.wax2c .hubx .leaflet-control-attribution, body.wax2c .hubx .leaflet-control-zoom { display: none !important; }
body.wax2c .hubx .trajet-info { flex: 1; min-width: 0; }
body.wax2c .hubx .trajet-info .eta-l { font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
body.wax2c .hubx .trajet-info .eta { font-family: var(--display); font-weight: 800; font-size: 30px; line-height: 1; color: var(--burgundy); }
body.wax2c .hubx .trajet-info .eta.sm { font-size: 22px; }
body.wax2c .hubx .trajet-info .veh { font-size: 13px; color: var(--muted); margin-top: 7px; }
body.wax2c .hubx .trajet-info .veh b { color: var(--ink); font-weight: 600; }
body.wax2c .hubx .trajet-info .drv { display: flex; align-items: center; gap: 6px; font-weight: 600; font-size: 13.5px; margin-top: 3px; }
body.wax2c .hubx .trajet-info .drv .star { color: var(--gold); display: inline-flex; align-items: center; gap: 2px; font-weight: 700; }
body.wax2c .hubx .stepper { display: flex; margin-top: 16px; }
body.wax2c .hubx .step { flex: 1; position: relative; text-align: center; }
body.wax2c .hubx .step .sd { width: 13px; height: 13px; border-radius: 999px; background: var(--calico-2); border: 2px solid var(--card); margin: 0 auto; position: relative; z-index: 1; outline: 1px solid var(--line); }
body.wax2c .hubx .step.done .sd { background: var(--forest); outline-color: var(--forest); }
body.wax2c .hubx .step.cur .sd { background: var(--orange); outline-color: var(--orange); box-shadow: 0 0 0 4px var(--orange-soft); }
body.wax2c .hubx .step::before { content:""; position: absolute; top: 6px; left: -50%; width: 100%; height: 2px; background: var(--calico-2); z-index: 0; }
body.wax2c .hubx .step:first-child::before { display: none; }
body.wax2c .hubx .step.done::before, body.wax2c .hubx .step.cur::before { background: var(--forest); }
body.wax2c .hubx .step .sl { font-size: 11px; font-weight: 600; margin-top: 7px; }
body.wax2c .hubx .foot-btn { width: 100%; margin-top: 14px; height: 42px; border-radius: 11px; background: var(--calico-3); border: 1px solid var(--line); font-weight: 700; font-size: 13.5px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; color: var(--ink); }
body.wax2c .hubx .foot-btn:hover { background: var(--calico-2); }
body.wax2c .hubx .hub-empty { text-align: center; padding: 22px 10px; color: var(--muted); display: flex; flex-direction: column; align-items: center; flex: 1; justify-content: center; }
body.wax2c .hubx .hub-empty .hep-ic { width: 54px; height: 54px; border-radius: 15px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); font-size: 26px; margin-bottom: 12px; }
body.wax2c .hubx .hub-empty .hep-t { font-family: var(--display); font-weight: 700; font-size: 16px; color: var(--ink); }
body.wax2c .hubx .hub-empty .hep-s { font-size: 13px; margin-top: 4px; }

/* WALLET */
body.wax2c .hubx .wallet-balance { font-family: var(--display); font-weight: 800; font-size: 34px; color: var(--burgundy); line-height: 1; letter-spacing: -.02em; }
body.wax2c .hubx .wallet-balance .cur { font-size: 16px; font-weight: 700; color: var(--muted); margin-left: 6px; }
body.wax2c .hubx .wallet-actions { display: flex; gap: 10px; margin-top: 16px; }
body.wax2c .hubx .wallet-actions .btn { flex: 1; height: 44px; padding: 0 14px; font-size: 13.5px; }

/* ADRESSES */
body.wax2c .hubx .addr-list { display: flex; flex-direction: column; }
body.wax2c .hubx .addr { display: flex; align-items: center; gap: 12px; padding: 11px 0; color: var(--ink); }
body.wax2c .hubx .addr + .addr { border-top: 1px solid var(--line-2); }
body.wax2c .hubx .addr .ai { width: 38px; height: 38px; border-radius: 11px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); flex: 0 0 auto; font-size: 19px; }
body.wax2c .hubx .addr .at { flex: 1; min-width: 0; }
body.wax2c .hubx .addr .an { font-weight: 700; font-size: 13.5px; }
body.wax2c .hubx .addr .aa { color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.wax2c .hubx .addr-add { margin-top: 10px; color: var(--orange-2); font-weight: 700; font-size: 13px; display: inline-flex; align-items: center; gap: 7px; }

/* OFFRE */
body.wax2c .hubx .offre { background: linear-gradient(135deg, #4A2418, #2E140C); color: #F8EFE2; position: relative; overflow: hidden; border: 0; }
body.wax2c .hubx .offre .badge2 { display: inline-flex; align-items: center; gap: 6px; background: var(--gold); color: var(--burgundy-2); font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; }
body.wax2c .hubx .offre h3 { font-family: var(--display); font-weight: 800; font-size: 22px; line-height: 1.1; margin-top: 14px; }
body.wax2c .hubx .offre p { color: rgba(248,239,226,.72); font-size: 13px; margin-top: 8px; }

/* COMMANDES RÉCENTES */
body.wax2c .hubx .ord { display: flex; align-items: center; gap: 12px; padding: 11px 0; }
body.wax2c .hubx .ord + .ord { border-top: 1px solid var(--line-2); }
body.wax2c .hubx .ord .oi { width: 42px; height: 42px; border-radius: 11px; flex: 0 0 auto; background: var(--calico-2); display: grid; place-items: center; color: var(--burgundy); font-size: 21px; }
body.wax2c .hubx .ord .ot { flex: 1; min-width: 0; }
body.wax2c .hubx .ord .on { font-weight: 700; font-size: 13.5px; }
body.wax2c .hubx .ord .on .time { color: var(--muted); font-weight: 500; font-size: 12px; }
body.wax2c .hubx .ord .oright { text-align: right; flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
body.wax2c .hubx .ord .op { font-weight: 700; font-size: 13.5px; }

/* RESTAURANTS RECO */
body.wax2c .hubx .reco-wrap { position: relative; }
body.wax2c .hubx .reco-scroll { display: flex; gap: 14px; overflow: hidden; }
body.wax2c .hubx .reco { flex: 0 0 calc(33.333% - 10px); background: var(--card); border: 1px solid var(--line); border-radius: var(--r-mid); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform .16s; color: var(--ink); }
body.wax2c .hubx .reco:hover { transform: translateY(-3px); }
body.wax2c .hubx .reco .ph { height: 92px; background: var(--calico-2); display: grid; place-items: center; color: var(--burgundy); }
body.wax2c .hubx .reco .ph i { font-size: 30px; }
body.wax2c .hubx .reco .rb { padding: 11px 12px 13px; }
body.wax2c .hubx .reco .rname { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
body.wax2c .hubx .reco .rn { font-family: var(--display); font-weight: 700; font-size: 14.5px; }
body.wax2c .hubx .reco .rr { display: inline-flex; align-items: center; gap: 3px; font-weight: 700; font-size: 12.5px; }
body.wax2c .hubx .reco .rr i { color: var(--gold); font-size: 14px; }
body.wax2c .hubx .reco .rmeta { color: var(--muted); font-size: 11.5px; margin-top: 5px; }

/* AIDE */
body.wax2c .hubx .help-row { display: flex; align-items: center; gap: 13px; padding: 13px 0; color: var(--ink); }
body.wax2c .hubx .help-row + .help-row { border-top: 1px solid var(--line-2); }
body.wax2c .hubx .help-row .hi { width: 38px; height: 38px; border-radius: 11px; background: var(--calico-3); border: 1px solid var(--line); display: grid; place-items: center; color: var(--burgundy); flex: 0 0 auto; font-size: 19px; }
body.wax2c .hubx .help-row .ht { flex: 1; }
body.wax2c .hubx .help-row .hn { font-weight: 700; font-size: 13.5px; }
body.wax2c .hubx .help-row .hs { color: var(--muted); font-size: 12.5px; }
body.wax2c .hubx .help-row .chev { color: var(--muted); font-size: 18px; }

/* MOYENS DE PAIEMENT */
body.wax2c .hubx .pay-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
body.wax2c .hubx .pay { background: var(--calico-3); border: 1px solid var(--line); border-radius: var(--r-mid); padding: 14px; min-height: 96px; display: flex; flex-direction: column; justify-content: space-between; color: var(--ink); }
body.wax2c .hubx .pay .plogo { height: 26px; display: flex; align-items: center; }
body.wax2c .hubx .pay .pn { font-weight: 700; font-size: 13px; }
body.wax2c .hubx .pay .pd { color: var(--muted); font-size: 11.5px; font-family: var(--mono); }
body.wax2c .hubx .pay-om .plogo .ologo { width: 30px; height: 26px; border-radius: 6px; background: var(--orange); color: #fff; display: grid; place-items: center; font-size: 17px; }
body.wax2c .hubx .pay-cash .plogo { color: var(--forest); font-size: 24px; }
body.wax2c .hubx .pay-add { align-items: center; justify-content: center; text-align: center; color: var(--orange-2); border-style: dashed; gap: 7px; }
body.wax2c .hubx .pay-add:hover { background: var(--orange-soft); }
body.wax2c .hubx .pay-add i { font-size: 24px; }
body.wax2c .hubx .pay-add .pn { color: var(--orange-2); }
body.wax2c .hubx .pay-note { color: var(--muted); font-size: 11.5px; margin-top: 10px; }

/* ACTIVITÉ */
body.wax2c .hubx .act { display: flex; align-items: center; gap: 12px; padding: 12px 0; }
body.wax2c .hubx .act + .act { border-top: 1px solid var(--line-2); }
body.wax2c .hubx .act .aci { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; flex: 0 0 auto; font-size: 19px; }
body.wax2c .hubx .act .aci.in { background: var(--forest-soft); color: var(--forest); }
body.wax2c .hubx .act .aci.out { background: var(--orange-soft); color: var(--orange-2); }
body.wax2c .hubx .act .at { flex: 1; min-width: 0; }
body.wax2c .hubx .act .an { font-weight: 700; font-size: 13.5px; }
body.wax2c .hubx .act .as { color: var(--muted); font-size: 12px; }
body.wax2c .hubx .act .amt { font-weight: 700; font-size: 14px; font-family: var(--mono); }
body.wax2c .hubx .act .amt.pos { color: var(--forest); }
body.wax2c .hubx .act .amt.neg { color: var(--orange-2); }

/* PARRAINAGE */
body.wax2c .hubx .ref { background: var(--gold-soft); border-color: rgba(74,36,24,.14); position: relative; overflow: hidden; }
body.wax2c .hubx .ref h3 { font-family: var(--display); font-weight: 800; font-size: 22px; color: var(--burgundy); line-height: 1.1; }
body.wax2c .hubx .ref p { color: var(--ink); opacity: .72; font-size: 13px; margin-top: 8px; }
body.wax2c .hubx .ref .btn { margin-top: 16px; background: var(--burgundy); color: #F8EFE2; height: 44px; box-shadow: 0 2px 0 var(--burgundy-2); align-self: flex-start; }
body.wax2c .hubx .ref .btn:hover { background: var(--burgundy-2); }

/* RESPONSIVE HUB */
@media (max-width: 1180px) {
  body.wax2c .hubx .hero { grid-template-columns: 1fr; }
  body.wax2c .hubx .r2, body.wax2c .hubx .r3, body.wax2c .hubx .r4 { grid-template-columns: 1fr 1fr; }
  body.wax2c .hubx .reco { flex-basis: calc(50% - 7px); }
}
@media (max-width: 920px) {
  body.wax2c .hubx .services { grid-template-columns: repeat(2,1fr); }
  body.wax2c .hubx .r2, body.wax2c .hubx .r3, body.wax2c .hubx .r4 { grid-template-columns: 1fr; }
}

/* ============================================================================
 * PORTEFEUILLE — bloc 2 colonnes (solde + mini-cartes) porté du design « Compte - Portefeuille ».
 * Mini-cartes = données RÉELLES (crédits/débits cumulés), PAS les Bonus/Points du mockup (pas de
 * source backend). Scopé body.wax2c.
 * ========================================================================== */
body.wax2c .wallet-top { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; align-items: stretch; margin-bottom: 18px; }
body.wax2c .wallet-top .balance-card { margin-bottom: 0; }
body.wax2c .side-cards { display: flex; flex-direction: column; gap: 18px; }
body.wax2c .side-cards .mini { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); padding: 18px; display: flex; align-items: center; gap: 14px; flex: 1; }
body.wax2c .side-cards .mini .mi { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; font-size: 24px; flex: 0 0 auto; }
body.wax2c .side-cards .mini .mi.credit { background: var(--forest-soft); color: var(--forest); }
body.wax2c .side-cards .mini .mi.debit { background: var(--orange-soft); color: var(--orange-2); }
body.wax2c .side-cards .mini .mv { font-family: var(--display); font-weight: 800; font-size: 20px; color: var(--burgundy); line-height: 1.05; }
body.wax2c .side-cards .mini .ml { font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-top: 5px; }
@media (max-width: 1080px) { body.wax2c .wallet-top { grid-template-columns: 1fr; } }

/* ============================================================================
   TUNNEL — ENTREE ADRESSE (order-items = user_info.php ; user-order-information
   = customer_info.php). Re-skin compat du markup legacy ProKX, scope body.wax2c.
   ============================================================================ */
body.wax2c #order-pages.wax2c, body.wax2c.order-pages { background:var(--calico-3); }
body.wax2c .mainof-searchpage { background:var(--calico-3); padding:0; }
body.wax2c .mainof-searchpage .search-banner { background:transparent; }
body.wax2c .mainof-searchpage .page-contant-inner { max-width:1080px; margin:0 auto; padding:26px 22px 60px; display:flex; gap:34px; align-items:center; flex-wrap:wrap; }
body.wax2c .mainof-searchpage .search-page-wrap { flex:1 1 460px; min-width:300px; }
body.wax2c .uinfo-head { margin-bottom:16px; }
body.wax2c .mainof-searchpage .search-head { font-family:var(--display); font-weight:800; font-size:30px; letter-spacing:-.02em; color:var(--burgundy); line-height:1.1; margin-bottom:8px; }
body.wax2c .mainof-searchpage .search-page-wrap > div > p { color:var(--muted); font-size:15px; margin-bottom:22px; max-width:44ch; }

/* carte formulaire */
body.wax2c .search-main-form { background:var(--card); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-sm); padding:22px; }
body.wax2c .search-main-form #serviceid { width:100%; height:52px; border:1px solid var(--line); border-radius:var(--r-mid); background:var(--calico-3); padding:0 14px; font:inherit; font-size:15px; color:var(--ink); margin-bottom:14px; outline:none; -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23A9564B' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat:no-repeat; background-position:right 14px center; }
body.wax2c .search-main-form #serviceid:focus { border-color:var(--orange); }
body.wax2c #DeliveryAddress { position:relative; margin-bottom:16px; }
body.wax2c #DeliveryAddress .user_info_input { position:relative; }
body.wax2c #DeliveryAddress .delivery-input { width:100%; height:56px; border:1px solid var(--line); border-radius:var(--r-mid); background:var(--calico-3); padding:0 52px 0 46px; font:inherit; font-size:15px; color:var(--ink); outline:none; box-sizing:border-box; }
body.wax2c #DeliveryAddress .delivery-input:focus { border-color:var(--orange); background:var(--card); }
body.wax2c #DeliveryAddress .user_info_input::before { content:"\ea44"; font-family:"tabler-icons"; position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--orange); font-size:20px; pointer-events:none; z-index:1; }
body.wax2c #DeliveryAddress .detect-loc { position:absolute; right:12px; top:50%; transform:translateY(-50%); width:30px; height:30px; padding:5px; border-radius:9px; cursor:pointer; background:var(--calico-2); }
body.wax2c #DeliveryAddress .detect-loc:hover { background:var(--orange-soft); }
/* suggestions autocomplete (jquery-ui / #suggestions) */
body.wax2c #suggestions { list-style:none; margin:6px 0 0; padding:0; }
body.wax2c .ui-autocomplete { background:var(--card); border:1px solid var(--line); border-radius:var(--r-mid); box-shadow:var(--shadow-md); z-index:10000; overflow:hidden; }
body.wax2c .ui-autocomplete .ui-menu-item { padding:0; }
body.wax2c .ui-autocomplete .ui-menu-item-wrapper { padding:11px 14px; font-size:14px; color:var(--ink); }
body.wax2c .ui-autocomplete .ui-menu-item-wrapper.ui-state-active { background:var(--orange-soft); color:var(--orange-2); border:0; margin:0; }
/* bouton submit */
body.wax2c #submitbtn { width:100%; height:54px; border:0; border-radius:14px; background:var(--orange); color:#fff; font-family:var(--display); font-weight:700; font-size:16px; box-shadow:0 2px 0 var(--orange-2); cursor:pointer; display:flex; align-items:center; justify-content:center; gap:9px; }
body.wax2c #submitbtn:hover { background:var(--orange-2); }
/* alerte erreur */
body.wax2c .mainof-searchpage .alert-danger { background:#FCEBE8; border:1px solid #F2DAD6; color:#B23A2E; border-radius:var(--r-mid); padding:12px 16px; margin-bottom:16px; font-size:14px; position:relative; }
body.wax2c .mainof-searchpage .alert-danger .close { background:transparent; border:0; float:right; font-size:18px; cursor:pointer; color:#B23A2E; }
/* validation inline */
body.wax2c .search-main-form .help-block.error, body.wax2c .search-main-form span.error { color:#B23A2E; font-size:12.5px; display:block; margin-top:6px; }
body.wax2c #DeliveryAddress.has-error .delivery-input { border-color:#B23A2E; }
/* image illustrative a droite */
body.wax2c .mainof-searchpage .order-image-holder { flex:1 1 360px; min-width:260px; text-align:center; }
body.wax2c .mainof-searchpage .order-image-holder img { max-width:100%; height:auto; }
@media (max-width:860px){
  body.wax2c .mainof-searchpage .page-contant-inner { flex-direction:column; align-items:stretch; }
  body.wax2c .mainof-searchpage .order-image-holder { display:none; }
  body.wax2c .mainof-searchpage .search-head { font-size:25px; }
}

/* ---- customer_info.php (user-order-information) : form manual-order, scope body.wax2c ---- */
body.wax2c .profile-section { background:var(--calico-3); padding:26px 22px 60px; }
body.wax2c .profile-section-inner { max-width:920px; margin:0 auto; }
body.wax2c .profile-caption .page-heading h1,
body.wax2c .profile-caption h1 { font-family:var(--display); font-weight:800; font-size:28px; letter-spacing:-.02em; color:var(--burgundy); margin-bottom:16px; }
body.wax2c .static-page-new { background:var(--card); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-sm); padding:24px; position:relative; }
body.wax2c .general-form-new { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
body.wax2c .general-form-new .form-column,
body.wax2c .general-form-new .form-column-full,
body.wax2c .general-form-new .map-page,
body.wax2c .general-form-new .form-button-block,
body.wax2c .general-form-new > .row,
body.wax2c .general-form-new > div[style*="clear"] { grid-column:1 / -1; }
body.wax2c .general-form-new .form-column.half { grid-column:span 1; }
@media (max-width:680px){ body.wax2c .general-form-new { grid-template-columns:1fr; } body.wax2c .general-form-new .form-column.half { grid-column:1 / -1; } }
body.wax2c .general-form-new label { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); display:block; margin-bottom:7px; }
body.wax2c .general-form-new label span { color:var(--orange-2); }
body.wax2c .general-form-new input[type=text],
body.wax2c .general-form-new input[type=email],
body.wax2c .general-form-new select { width:100%; height:50px; border:1px solid var(--line); border-radius:var(--r-mid); background:var(--calico-3); padding:0 14px; font:inherit; font-size:14.5px; color:var(--ink); outline:none; box-sizing:border-box; }
body.wax2c .general-form-new input:focus,
body.wax2c .general-form-new select:focus { border-color:var(--orange); background:var(--card); }
body.wax2c .general-form-new input[readonly] { background:var(--calico-2); color:var(--muted); }
body.wax2c .general-form-new .country-code { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; }
body.wax2c .general-form-new .country-code label { width:100%; }
body.wax2c .general-form-new .country-code #customer_info_vPhoneCode { width:84px; flex:0 0 84px; }
body.wax2c .general-form-new .country-code #customer_info_vPhone { flex:1; }
body.wax2c .general-form-new #map-canvas { border-radius:var(--r-mid); border:1px solid var(--line); overflow:hidden; height:360px !important; }
body.wax2c .general-form-new .form-button-block { display:flex; gap:12px; margin-top:6px; }
body.wax2c .general-form-new .form-button-block button[type=submit] { height:52px; padding:0 26px; border:0; border-radius:13px; background:var(--orange); color:#fff; font-family:var(--display); font-weight:700; font-size:15px; box-shadow:0 2px 0 var(--orange-2); cursor:pointer; }
body.wax2c .general-form-new .form-button-block button[type=submit]:hover { background:var(--orange-2); }
body.wax2c .general-form-new .cancel-btn { height:52px; padding:0 22px; border:1px solid var(--line) !important; border-radius:13px; background:var(--calico-2) !important; color:var(--ink) !important; font-family:var(--display); font-weight:700; font-size:14px; cursor:pointer; }
body.wax2c .general-form-new .btn-submit { height:44px; padding:0 16px; border:1px solid var(--line); border-radius:10px; background:var(--calico-3); color:var(--ink); font-weight:700; font-size:13px; cursor:pointer; }
body.wax2c .static-page-new .alert-danger { background:#FCEBE8; border:1px solid #F2DAD6; color:#B23A2E; border-radius:var(--r-mid); padding:12px 16px; margin-bottom:16px; font-size:14px; }
body.wax2c .static-page-new .alert-danger .close { background:transparent; border:0; float:right; font-size:18px; cursor:pointer; color:#B23A2E; }
