/* Source: style.css */
/* PIXIVOIRE ROOMS — feuille de style commune (client, gérant, admin)
   Design épuré : fond clair, une seule couleur d'accent, typographie Inter. */
:root{
  --bg:#F5F6F8;--surface:#FFFFFF;--surface-2:#F0F2F5;--line:#E3E6EB;--line-strong:#CBD0D8;
  --green:#B7F34A; /* vert officiel partagé : validation et accents Client/PRO */
  --ink:#151A22;--ink-2:#3C4450;--mute:#6B7280;
  --accent:#0E8C74;--accent-ink:#0B6E5B;--accent-soft:#E7F4F0;
  --warn:#9A5B00;--warn-soft:#FFF4E0;
  --danger:#B42318;--danger-soft:#FDECEA;
  --brand:var(--accent);--lamp:#C77700; /* alias utilisés dans les pages, non définis auparavant */
  --radius:12px;--radius-s:8px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
html{height:100%}
body{min-height:100%;background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
button:active,[role="button"]:active{filter:brightness(.96)}
button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
a{color:inherit}
[hidden]{display:none!important}

/* Compact help: a generous touch target around a small, contrasting i. */
button.help-info{display:inline-flex!important;align-items:center;justify-content:center;vertical-align:middle;flex:0 0 44px;width:44px!important;min-width:44px!important;max-width:44px;height:44px!important;min-height:44px;padding:0!important;margin:0!important;border:0!important;background:transparent!important;color:inherit!important;box-shadow:none!important;font:700 16px/1 system-ui,sans-serif;cursor:pointer}
button.help-info>span{display:grid;place-items:center;width:25px;height:25px;border:1.5px solid currentColor;border-radius:50%;font-style:normal}
.help-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.help-popup,.help-popup .popbox{animation:none!important}
.help-popup{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0}
.help-popup::backdrop{background:transparent}
.help-popup .popbox{width:min(100%,380px)!important;max-width:380px!important;max-height:calc(100dvh - 32px)!important;max-height:calc(100svh - 32px)!important;padding:18px!important;text-align:left}
.help-popup .popbox h2{font-size:18px;line-height:1.3}
.help-popup .popbox p{font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.help-popup .popok{margin-top:14px}
.reliability-card{margin:6px 0;padding:8px 12px;border:1px solid #a6d936;border-radius:16px;background:#e2f5b4;color:#16230a}
.reliability-card .help-heading{align-items:flex-start}
.reliability-card b{display:block;font-size:14px;line-height:1.3;padding-top:2px}
.reliability-card p{margin:4px 0 0;font-size:14px;line-height:1.4}
.reliability-card small{display:block;margin-top:3px;font-size:12px;line-height:1.4}
::placeholder{color:#9AA1AB}

/* ---- Conteneur responsive ---- */
.app{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--surface);display:flex;flex-direction:column;position:relative}
@media(min-width:760px){
  .app{max-width:860px;min-height:calc(100dvh - 40px);margin:20px auto;border-radius:16px;border:1px solid var(--line);box-shadow:var(--shadow)}
  .cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cards .card{margin-bottom:0}
  .narrow{max-width:560px;margin-left:auto;margin-right:auto}
  .body{padding-left:28px;padding-right:28px}
  .top,.tabs{padding-left:28px;padding-right:28px}
}
@media(min-width:1100px){.app{max-width:1120px}.cards{grid-template-columns:1fr 1fr 1fr}}

/* ---- En-tête ---- */
.top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(env(safe-area-inset-top) + 16px) 20px 12px;border-bottom:1px solid var(--line)}
.logo{font-weight:700;font-size:16px;letter-spacing:-.01em;white-space:nowrap}.logo span{color:var(--accent)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line-strong);font-size:13px;font-weight:500;white-space:nowrap;text-decoration:none;color:var(--ink-2)}
.pill.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.pill.ok{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.pill.off{color:var(--mute)}
.body{flex:1;padding:12px 20px calc(env(safe-area-inset-bottom) + 32px);overflow-y:auto}
.sec{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin:20px 0 8px}
h1{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.25;margin-top:8px}
h1 em{font-style:normal;color:var(--accent)}
.sub{color:var(--mute);font-size:14px;margin-top:4px}

/* ---- Recherche et modes ---- */
.search{display:flex;align-items:center;gap:10px;padding:0 14px;height:46px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-strong);margin-top:16px;color:var(--mute)}
.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search input{background:none;border:0;padding:0;font-size:15px;color:var(--ink);height:100%}
.search input:focus{outline:none}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.mode{padding:14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);text-align:left;transition:border-color .15s}
.mode:hover{border-color:var(--line-strong)}
.mode.on{border-color:var(--accent);background:var(--accent-soft)}
.mode b{display:block;font-weight:600;font-size:14px;color:var(--ink)}.mode small{color:var(--mute);font-size:12px;line-height:1.4;display:block;margin-top:4px}

/* ---- Cartes ---- */
.card{display:block;width:100%;text-align:left;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin-bottom:10px;transition:border-color .15s,box-shadow .15s}
button.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}
.card.hl{background:var(--warn-soft);border-color:#F1D9A8}
.card.ok{background:var(--accent-soft);border-color:#BFE3D8}
.card.dashed{border-style:dashed;background:var(--surface-2);color:var(--ink-2);font-size:14px}
.hrow{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start}
.thumb{aspect-ratio:1;border-radius:var(--radius-s);display:grid;place-items:center;font-weight:600;font-size:16px;color:var(--accent-ink);background:var(--accent-soft)!important}
.card h3{font-size:15px;font-weight:600;line-height:1.3}
.meta{display:flex;flex-wrap:wrap;gap:2px 10px;color:var(--mute);font-size:13px;margin-top:2px}
.status{display:inline-flex;align-items:center;gap:6px;font-weight:500;font-size:13px;margin-top:6px;color:var(--ink-2)}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.status.on{color:var(--accent-ink)}
/* En ligne : le point est désormais la pastille rouge scintillante (.livedot) insérée dans le
   texte. On supprime donc le point vert que le CSS ajoutait automatiquement avant le libellé,
   qui faisait doublon. Les autres états (ok, wait, off) conservent le leur. */
.status.on::before{display:none}
.status.ok{color:var(--accent-ink)}
.status.wait{color:var(--warn)}
.status.off{color:var(--mute)}
.price{margin-top:8px}.price b{font-weight:600;font-size:15px}.price small{color:var(--mute);font-size:12px;margin-left:4px}

/* ---- Sélecteurs ---- */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:9px 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);font-size:13px;font-weight:500;text-align:center;color:var(--ink-2)}
.chip.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.slot{padding:10px 4px;border-radius:var(--radius-s);border:1px solid var(--line-strong);background:var(--surface);text-align:center;color:var(--ink-2)}
.slot b{display:block;font-weight:600;font-size:14px;color:var(--ink)}.slot small{color:var(--mute);font-size:11px}
.slot.sel{border-color:var(--accent);background:var(--accent-soft)}.slot.sel b{color:var(--accent-ink)}
.slot:disabled{opacity:.35}
select,input,textarea{width:100%;height:46px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:15px}
/* Les listes déroulantes héritaient d'une couleur de texte incohérente selon le navigateur
   (texte clair sur fond clair dans l'espace PRO). On force la même encre partout, options comprises. */
select{color:var(--ink)}
select option{color:#111;background:#fff}
/* Cartes de mode compactes : titre + petite icône, sans paragraphe. */
.mode.compact{display:flex;align-items:center;gap:10px;padding:14px;text-align:left}
.mode.compact b{font-size:14px;line-height:1.2}
.mode.compact .mi{flex:0 0 auto;width:20px;height:20px;color:var(--accent-ink,var(--brand))}
.mode.compact .mi svg{width:100%;height:100%;display:block}
.pwwrap{position:relative;display:block}
.pwwrap input{padding-right:44px}
.pwtoggle{position:absolute;right:2px;top:0;width:44px;height:46px;border:0;background:none;font-size:16px;line-height:1;cursor:pointer;color:var(--ink-2);display:flex;align-items:center;justify-content:center;padding:0}
.pwtoggle:hover{color:var(--ink)}
.linklike{background:none;border:none;padding:0;font:inherit;font-size:inherit;color:var(--accent-ink,var(--brand));text-decoration:underline;cursor:pointer}
.phonegroup{display:flex;gap:6px}
.phonegroup input{flex:1;min-width:0}
.ccfixed{flex:0 0 auto;display:flex;align-items:center;gap:6px;height:46px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink-2);font-size:14px;font-weight:600}
.ccflag{width:22px;height:16px;border-radius:3px;overflow:hidden;flex:0 0 auto;display:block;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.ccflag svg{width:100%;height:100%;display:block}
textarea{height:auto;padding:12px 14px}
select:focus,input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B7280' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
label.lbl{display:block;font-size:13px;color:var(--ink-2);margin:12px 0 6px;font-weight:500}
.row{display:flex;gap:8px}
/* min-width:0 est indispensable : sans lui, un élément flex refuse de rétrécir en dessous de sa
   largeur naturelle et déborde de l'écran sur les téléphones étroits (360 px et moins), ce qui
   décale toute la mise en page. */
.row>*{flex:1;min-width:0}
.row select,.row input{max-width:100%}
.admin-console .new-trades-inbox{min-width:0}
.admin-console .new-trades-inbox .card{min-width:0;overflow-wrap:anywhere}
.admin-console .new-trades-inbox .row{align-items:center;flex-wrap:wrap}
.admin-console .new-trades-inbox .row>div{flex:1 1 220px}
.admin-console .new-trades-inbox .row>input{flex:2 1 220px}
.admin-console .new-trades-inbox .row>select{flex:1 1 150px}
.admin-console .new-trades-inbox .row>.chip,.admin-console .new-trades-inbox .row>.btn,.admin-console .new-trades-inbox .row>.tag{flex:1 1 140px;white-space:normal;max-width:100%}
.admin-console .new-trades-inbox small{display:block;margin-top:5px;line-height:1.4}
.admin-console .new-trades-inbox .verification-review-list{display:block}

/* ---- Boutons ---- */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;padding:0 16px;border-radius:var(--radius);font-weight:600;font-size:15px;text-decoration:none;margin-top:10px;transition:background .15s,border-color .15s}
.btn.lamp,.btn.brand{background:var(--accent);color:#fff}
.btn.lamp:hover,.btn.brand:hover{background:var(--accent-ink)}
.btn.ok{background:var(--accent);color:#fff}
.btn.ok:hover{background:var(--accent-ink)}
.btn.danger{background:var(--surface);color:var(--danger);border:1px solid #F0B7B1}
.btn.danger:hover{background:var(--danger-soft)}
.btn.ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong);font-weight:500}
.btn.ghost:hover{background:var(--surface-2)}
.btn:disabled{opacity:.45;pointer-events:none}
.back{color:var(--mute);font-weight:500;font-size:14px;padding:8px 0}
.back:hover{color:var(--ink)}
.note{font-size:13px;color:var(--mute);margin-top:12px;text-align:center;line-height:1.5}
.err{background:var(--danger-soft);border:1px solid #F0B7B1;color:var(--danger);padding:10px 12px;border-radius:var(--radius-s);font-size:13px;margin-top:10px}

/* ---- Écrans d'attente et de résultat ---- */
.wait{text-align:center;padding:24px 8px}
.ring{width:96px;height:96px;margin:0 auto 20px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin 1.1s linear infinite;display:grid;place-items:center}
.ring b{font-weight:600;font-size:22px;color:var(--ink);animation:unspin 1.1s linear infinite;font-variant-numeric:tabular-nums}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes unspin{to{transform:rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){.ring,.ring b{animation:none}}
.code{font-weight:700;font-size:30px;letter-spacing:.08em;color:var(--ink);margin:10px 0;font-variant-numeric:tabular-nums}
.code small{display:block;margin-bottom:3px;font-size:10px;letter-spacing:.1em;color:var(--mute)}
.arrival-qr{width:min(88vw,340px);margin:0 auto;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;line-height:0}.arrival-qr svg{display:block;width:100%;height:auto;shape-rendering:crispEdges}
.accepted-secondary-actions{display:grid;gap:10px;margin-top:18px;padding-top:2px}
.route-chooser{margin-top:10px}.route-chooser>.btn{margin-top:0}.route-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.route-options[hidden]{display:none!important}.route-option{min-width:0;min-height:68px;padding:10px 11px;border:1px solid transparent;border-radius:var(--radius);color:#fff;font:inherit;text-align:left;cursor:pointer;box-shadow:0 3px 10px rgba(8,16,20,.12);transition:filter .15s,transform .15s,box-shadow .15s}.route-option:hover{filter:brightness(1.06);box-shadow:0 5px 15px rgba(8,16,20,.18)}.route-option:active{transform:translateY(1px)}.route-option:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 42%,#fff);outline-offset:2px}.route-option b,.route-option small{display:block;overflow-wrap:anywhere}.route-option b{font-size:14px;line-height:1.2}.route-option small{margin-top:4px;color:rgba(255,255,255,.9);font-size:11px;line-height:1.3}.route-option.yango{background:#e53935;border-color:#c62828}.route-option.google{background:#1a73e8;border-color:#1558b0}@media(max-width:350px){.route-options{grid-template-columns:1fr}}
.arrival-scan-video{display:block;width:100%;max-height:min(54dvh,420px);margin:14px 0 0;border-radius:14px;background:#0b0f14;object-fit:cover;aspect-ratio:4/3;border:1px solid var(--line-strong)}
.verify-steps{display:grid;gap:10px;margin-top:16px}.verify-steps .card{width:100%;text-align:left;padding:16px}.verify-steps .card b{display:flex;align-items:center;gap:9px}.verify-steps .card small{display:block;margin:6px 0 0;color:var(--mute);line-height:1.4}.verify-dot{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;background:#e9edf0;color:#68727a;font-weight:800}.verify-dot.ok{background:var(--lamp);color:#101408}.verify-dot.ko{background:#ffdbdb;color:#ba2626}.verify-dot.wait{background:#ffe6a8;color:#8a5a00}.avatar-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.avatar-choice button{height:54px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:25px}.avatar-choice button.sel{border-color:var(--lamp);box-shadow:0 0 0 3px var(--accent-soft)}
.verify-state{font-weight:700}.verify-state.ok{color:var(--accent-ink)}.verify-state.wait{color:var(--warn)}.verify-state.ko{color:var(--danger)}.verify-state.mute{color:var(--mute)}.verification-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.verification-heading .sec{margin-bottom:10px}.account-pending-sticker{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.1;text-transform:uppercase;white-space:nowrap;background:var(--warn-soft);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 38%,var(--line))}.verified-account-line{display:flex;align-items:center;gap:8px;margin:12px 0 16px;color:var(--ink);font-size:15px}.account-verified-badge{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--accent);color:#07120d;font-size:14px;font-weight:900;line-height:1;box-shadow:0 1px 5px color-mix(in srgb,var(--accent) 48%,transparent)}.verification-summary{display:grid;grid-template-columns:1fr;gap:8px}.verification-summary>div{min-width:0;display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.verification-summary .verify-dot{flex:0 0 auto;width:19px;height:19px;font-size:11px}.verification-summary b,.verification-summary small{display:block;font-size:12px;line-height:1.3;overflow-wrap:anywhere}.verification-summary small{margin-top:3px}.verification-missing{display:grid;gap:6px;margin-top:9px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink-2);font-size:12px;line-height:1.35}.verification-missing b{color:var(--ink);font-size:12px}.verification-missing span{display:block;overflow-wrap:anywhere}@media(max-width:350px){.verification-heading{align-items:flex-start;flex-direction:column}.account-pending-sticker{white-space:normal;text-align:center}}
.provisional-notice{box-shadow:0 18px 48px rgba(0,0,0,.18)}.provisional-countdown{display:grid;gap:5px;margin:14px 0;padding:13px 14px;border:1px solid color-mix(in srgb,var(--accent) 58%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.provisional-countdown small{margin:0;color:var(--ink-2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.provisional-countdown strong{color:var(--ink);font-size:20px;line-height:1.2}.provisional-progress{display:block;height:7px;margin-top:3px;border-radius:999px;background:var(--line);overflow:hidden}.provisional-progress i{display:block;height:100%;min-width:3px;border-radius:inherit;background:var(--accent)}.provisional-actions{display:grid;gap:7px;margin:12px 0}.provisional-actions button,.identity-item-details button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--ink);font:inherit}.provisional-actions button b,.identity-item-details button i{color:var(--accent-ink);font-size:22px;font-style:normal;line-height:1}.identity-item-details button small{width:100%}.identity-item-details>span{padding:8px 2px}.identity-item-details button:active,.provisional-actions button:active{transform:scale(.99)}
.verify-step-locked{position:relative;cursor:default;background:var(--accent-soft);border-color:var(--accent)!important}.verify-step-locked .verify-lock{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:24px;height:24px;border:1px solid color-mix(in srgb,var(--accent) 62%,transparent);border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.verify-step-locked .verify-lock svg{display:block;width:14px;height:14px}.verify-step-locked small{padding-right:36px}
.ok-ring{width:72px;height:72px;margin:0 auto 16px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;font-size:32px;color:var(--accent-ink)}
.ko-ring{width:72px;height:72px;margin:0 auto 16px;border-radius:50%;background:var(--danger-soft);display:grid;place-items:center;font-size:28px;color:var(--danger)}

/* ---- Tableau de bord gérant / admin ---- */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media(min-width:760px){.kpis{grid-template-columns:repeat(4,1fr)}}
.kpi{padding:14px;border-radius:var(--radius);background:var(--surface-2)}
.kpi b{display:block;font-weight:600;font-size:22px;letter-spacing:-.02em}.kpi small{color:var(--mute);font-size:12px}
.incoming{border:1px solid var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.incoming.bc{border-color:var(--accent)}
.timer{font-weight:600;font-size:32px;color:var(--ink);text-align:center;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fact{padding:10px 12px;border-radius:var(--radius-s);background:var(--surface-2)}
.fact small{display:block;color:var(--mute);font-size:12px}.fact b{font-size:14px;font-weight:600}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;font-weight:600;font-size:14px;color:var(--accent-ink);flex-shrink:0}
.switch{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin-bottom:8px}
.switch b{font-weight:600;font-size:14px}
.tog{width:44px;height:26px;border-radius:13px;background:var(--line-strong);position:relative;transition:background .2s;flex-shrink:0;cursor:pointer}
.tog::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .2s}
.tog.on{background:var(--accent)}.tog.on::after{transform:translateX(18px)}
.app-sound-setting{width:100%;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin:8px 0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-align:left}
.app-sound-setting>span{min-width:0;display:grid;gap:3px}.app-sound-setting b{font-size:13px;letter-spacing:.02em}.app-sound-setting small{color:var(--mute);font-size:12px;line-height:1.35;overflow-wrap:anywhere}.app-sound-setting:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app-sound-setting .tog{pointer-events:none}
.pro-audio-level{display:grid;gap:6px;margin:-4px 0 12px;color:var(--mute);font-size:12px;font-weight:700;letter-spacing:.04em}.pro-audio-level select{min-height:46px}
.pro-audio-level>small{font-size:11px;line-height:1.35;font-weight:500;letter-spacing:0;color:var(--mute)}
.stepper{display:flex;align-items:center;gap:8px}
.stepper button{width:36px;height:36px;border-radius:var(--radius-s);background:var(--surface-2);border:1px solid var(--line);font-weight:600;font-size:18px;color:var(--ink-2)}
.stepper b{font-weight:600;font-size:18px;min-width:28px;text-align:center;font-variant-numeric:tabular-nums}
.list-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.list-item:last-child{border:0}
.tag{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
.tag.ok{background:var(--accent-soft);color:var(--accent-ink)}.tag.wait{background:var(--warn-soft);color:var(--warn)}
.tag.ko{background:var(--danger-soft);color:var(--danger)}.tag.mute{background:var(--surface-2);color:var(--mute)}
.mic{flex:0 0 auto;width:46px;height:46px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;display:grid;place-items:center;padding:0}
.mic svg{width:22px;height:22px;display:block}
.mic:hover{background:var(--surface-2)}
.mic.rec{background:var(--danger-soft);border-color:var(--danger);color:var(--danger);animation:micPulse 1s ease-in-out infinite}
@keyframes micPulse{0%,100%{opacity:1}50%{opacity:.55}}
/* Lecteur vocal compact : le média natif reste présent pour son moteur de lecture, mais ses
   contrôles ne sont jamais affichés. La même surface sert dans les bulles et en préécoute. */
.voice-player{display:grid;grid-template-columns:36px auto minmax(0,1fr);align-items:center;gap:8px;width:min(100%,240px);min-width:0;color:var(--ink)}
.voice-player audio{display:none}.voice-toggle{width:36px;height:36px;min-width:36px;padding:0;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--ink);font:700 13px/1 system-ui;cursor:pointer;display:grid;place-items:center}
.voice-toggle:active{transform:scale(.94)}.voice-time{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink-2)}
.voice-progress{width:100%;min-width:0;accent-color:var(--accent,var(--brand));cursor:pointer}.voice-progress:disabled{opacity:.55;cursor:default}
.voice-loading{grid-column:2/-1;font-size:11px;color:var(--mute)}.voice-error{grid-column:1/-1;font-size:12px;line-height:1.35;color:var(--danger)}
.voice-error button{border:0;background:transparent;color:inherit;text-decoration:underline;font:inherit;font-weight:700;cursor:pointer;padding:2px}.msg.me .voice-toggle{border-color:var(--accent,var(--brand))}.msg.me .voice-player{color:var(--ink)}
/* Barre de relecture d'un vocal enregistré, avant envoi. */
.vprev{display:block;margin-top:8px;padding:10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface-2);min-width:0}
.vprev .voice-player{width:100%}.voice-preview-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:9px}.voice-preview-actions button{min-height:38px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;padding:7px 12px;border-radius:8px;color:var(--ink-2);font:inherit;font-size:13px;font-weight:600}
.voice-preview-actions .send{background:var(--accent,var(--brand));border-color:var(--accent,var(--brand));color:#fff}
/* Transition d'écran : fondu + léger glissement, aux couleurs du site. Discret (180 ms) pour
   rester rapide, et désactivé si la personne a demandé moins d'animations. */
@keyframes viewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* L'animation ne joue qu'au CHANGEMENT d'écran, jamais lors d'un simple redessin. Auparavant elle
   rejouait à chaque appui sur un bouton : tout l'écran refaisait son fondu, ce qui donnait cette
   impression de lenteur alors que le traitement était instantané. */
#view.enter>*{animation:viewIn .10s ease-out}
/* Supprime le délai d'attente de double-appui appliqué par défaut sur mobile (environ 300 ms) :
   c'est la principale cause de boutons qui « mettent du temps » à réagir au doigt. */
button,select,input,textarea,a,.chip,.tile,.fam,.card,.mode,.slot,.pill,[role="button"],[role="tab"],label[for]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
/* Retour visuel immédiat à l'appui, avant même que l'écran ne se redessine. */
button:active,.chip:active,.tile:active,.fam:active{transform:scale(.985)}
@media (prefers-reduced-motion:reduce){button:active,.chip:active,.tile:active,.fam:active{transform:none}}
/* Bouton en cours de traitement : le libellé s'efface et un anneau tourne à la place. */
.btn.loading,button.loading{position:relative;color:transparent!important;pointer-events:none}
.btn.loading::after,button.loading::after{content:"";position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;color:var(--accent-ink,var(--brand));animation:btnSpin .6s linear infinite}
@keyframes btnSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#view>*{animation:none}.btn.loading::after,button.loading::after{animation:none}}
/* Icône stylo : édition dépliable, pour ne pas occuper l'écran en permanence. */
.editrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.iconbtn{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;display:grid;place-items:center;padding:0}
.iconbtn svg{width:17px;height:17px;display:block}
.iconbtn:hover{background:var(--surface-2)}
/* Bouton d'installation : la flèche de téléchargement prend la couleur d'accent du site et
   accompagne le libellé, plutôt qu'un simple texte. */
.dlbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.dlbtn .dlic{flex:0 0 auto;width:19px;height:19px;color:var(--accent-ink,var(--brand))}
.dlbtn .dlic svg{width:100%;height:100%;display:block}
.install-offer{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:12px;padding:12px;text-align:left;color:var(--ink);cursor:pointer;border-color:var(--accent)}.install-offer-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--accent);color:#07120d}.install-offer-icon svg{width:21px;height:21px}.install-offer b,.install-offer small{display:block}.install-offer b{font-size:14px}.install-offer small{margin-top:2px;color:var(--mute);font-size:12px;line-height:1.3}.install-offer strong{padding:8px 10px;border-radius:10px;background:var(--accent);color:#07120d;font-size:12px;white-space:nowrap}.install-offer:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.install-reminder-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 12px;border-radius:18px;background:var(--accent);color:#07120d}.install-reminder-icon svg{width:29px;height:29px}.install-reminder-actions{display:grid;gap:8px;margin-top:18px}.install-reminder-actions .btn,.install-reminder-actions .popok{width:100%;min-height:48px;margin:0}
@media(max-width:350px){.install-offer{grid-template-columns:38px minmax(0,1fr)}.install-offer-icon{width:38px;height:38px}.install-offer strong{grid-column:1/-1;width:100%;box-sizing:border-box;text-align:center}}
/* Pastille « 18+ » : remplace la mention textuelle sur les écrans de connexion et d'inscription.
   Le texte complet reste porté par l'attribut title et par aria-label, pour rester accessible
   aux lecteurs d'écran et consultable au survol. */
.agegate{display:flex;justify-content:center;margin-top:14px}
.badge18{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:2px solid var(--line-strong);color:var(--mute);font-size:12px;font-weight:700;letter-spacing:-.02em;line-height:1;user-select:none}
/* Galerie de photos : bande défilante horizontalement, pour ne pas allonger la fiche. */
.gal{display:flex;gap:8px;overflow-x:auto;padding:2px 0;-webkit-overflow-scrolling:touch}
.gal img{flex:0 0 auto;width:132px;height:99px;object-fit:cover;border-radius:var(--radius-s);background:var(--surface-2)}
.gal.view{margin-top:12px}
.galitem{position:relative;flex:0 0 auto}
.galitem img{display:block}
.galdel{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(0,0,0,.62);color:#fff;font-size:13px;line-height:1;cursor:pointer;display:grid;place-items:center}
.about{margin:10px 0 0;white-space:pre-wrap;color:var(--ink-2);font-size:14px;line-height:1.55}
/* Petit point « en ligne » dans les listes et les fiches. */
.livedot.sm{width:7px;height:7px;margin:0 5px 0 0;vertical-align:baseline}
/* Case à cocher des demandes (mode sélection multiple) et croix de suppression rapide. */
.pick{flex:0 0 auto;width:20px;height:20px;margin-right:10px;border-radius:6px;border:2px solid var(--line-strong);display:grid;place-items:center;font-size:12px;font-weight:700;color:transparent}
.pick.on{background:var(--accent);border-color:var(--accent);color:#fff}
.odel{flex:0 0 auto;margin-left:8px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:var(--mute);font-size:13px}
.odel:hover{background:var(--danger-soft);color:var(--danger)}
/* Visionneuse plein écran des photos d'un établissement. */
.lb{position:fixed;inset:0;z-index:60;background:rgba(8,10,9,.94);display:grid;place-items:center;padding:16px;animation:lbIn .15s ease-out}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lb img{max-width:100%;max-height:82vh;border-radius:10px;object-fit:contain}
.lbclose{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:18px;cursor:pointer}
.lbnav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1;cursor:pointer}
.lbnav.prev{left:10px}.lbnav.next{right:10px}
.lbcount{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#fff;font-size:13px;opacity:.85}
@media (prefers-reduced-motion:reduce){.lb{animation:none}}
/* Cartes hébergement — composant unique pour « Autour de moi » et « Choisir le lieu ».
   Trois choix : une grille fixe de trois colonnes dès 320 px. Une future quatrième famille
   bascule explicitement en 2 × 2, sans jamais réduire quatre cartes à des vignettes illisibles. */
.famsel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(6px,2vw,10px);width:100%;margin-top:16px;padding:2px 0 10px;background:transparent}
.famsel.has-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.fam{position:relative;isolation:isolate;display:flex;width:100%;min-width:0;height:clamp(110px,32vw,135px);
  flex-direction:column;align-items:stretch;justify-content:stretch;padding:0;overflow:hidden;
  border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);color:var(--ink);cursor:pointer;
  box-shadow:0 4px 14px rgba(16,24,40,.08);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.fam:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--line-strong));box-shadow:0 7px 18px rgba(16,24,40,.11)}
.fam:active{transform:scale(.98)}.fam:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.famic{position:relative;display:block;width:100%;height:clamp(75px,23vw,95px);min-height:0;flex:1 1 auto;overflow:hidden;border-radius:0;background:var(--surface-2)}
.famic picture{display:block;width:100%;height:100%}.famic img{display:block;width:100%;height:100%;object-fit:cover}
.famlb{display:grid;place-items:center;min-height:clamp(32px,9vw,38px);padding:0 3px;background:var(--accent);color:#07120d;
  font-size:clamp(11px,3vw,14px);font-weight:700;letter-spacing:.015em;line-height:1.1;text-align:center;text-transform:uppercase;white-space:normal;overflow-wrap:anywhere}
.famcheck{position:absolute;top:7px;right:7px;z-index:1;display:grid;place-items:center;width:42px;height:29px;padding:3px 5px;border:2px solid var(--okchap-green,var(--accent));border-radius:9px;
  background:#050706;box-shadow:0 3px 10px rgba(0,0,0,.34);opacity:0;transform:scale(.72);transition:opacity .16s ease,transform .16s ease}
.famcheck img{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
/* La sélection n'altère jamais la photographie : contour, élévation et coche suffisent. */
.fam.sel{border:3px solid var(--okchap-green,var(--accent));background:var(--accent-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--okchap-green,var(--accent)) 42%,transparent),0 8px 20px rgba(14,140,116,.22)}
.fam.sel .famlb{background:var(--accent);color:#07120d}.fam.sel .famcheck{opacity:1;transform:scale(1)}
@media (min-width:600px){.famsel{max-width:520px}.fam{height:135px}.famic{height:95px}}

/* Panneau de la famille choisie, affiché sur la même page. */
.nearpanel{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.nearttl{font-size:18px;font-weight:600;margin:0}
.nearsub{margin:3px 0 0;font-size:13px;color:var(--mute)}
/* Fenêtre modale : fond assombri, carte blanche, bouton aux deux couleurs du thème. */
/* Contrat de couches : carte (10) < panneau carte (100) < modales (220) < messages système
   (300). .mapscreen est isolé afin que les z-index internes de Leaflet ne puissent pas dépasser
   une modale ajoutée à body. */
.popwrap{position:fixed;inset:0;z-index:220;background:rgba(10,14,11,.55);display:grid;place-items:center;padding:22px;animation:popIn .15s ease-out}
@keyframes popIn{from{opacity:0}to{opacity:1}}
.popbox{background:var(--surface);border-radius:18px;padding:22px;max-width:340px;width:100%;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.22);animation:popUp .2s cubic-bezier(.2,.8,.3,1)}
/* Retour d'état explicite pendant l'envoi des inscriptions, commun au Client et au PRO. */
.registration-progress{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:rgba(5,7,6,.76);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.registration-progress-box{width:min(100%,380px);padding:24px 20px;border:2px solid var(--green,#B7F34A);border-radius:22px;background:var(--surface,#fff);color:var(--ink,#111);text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.38)}
.registration-progress-box h2{margin:12px 0 5px;font-size:19px}.registration-progress-percent{display:block;margin:2px 0 4px;color:var(--accent-ink,#6fa80e);font-size:27px;font-variant-numeric:tabular-nums}.registration-progress-box p{min-height:44px;margin:0;color:var(--ink-2,#3c4450);font-size:13px;line-height:1.45}
.registration-spinner{display:grid;place-items:center;width:52px;height:52px;margin:auto;border:5px solid rgba(183,243,74,.25);border-top-color:var(--green,#B7F34A);border-radius:50%;color:#111;font-size:25px;font-weight:900;animation:registrationSpin .8s linear infinite}
@keyframes registrationSpin{to{transform:rotate(360deg)}}
.registration-progress-track{height:9px;margin:15px 0 10px;overflow:hidden;border-radius:999px;background:var(--line,#e3e6eb)}.registration-progress-track i{display:block;width:var(--registration-progress,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green,#B7F34A),#d7ff88);transition:width .2s ease}
.registration-progress-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.registration-progress-steps span{font-size:10px;font-weight:700;color:var(--mute,#6b7280)}.registration-progress-steps span.on{color:var(--ink,#111)}
.registration-progress.success .registration-spinner,.registration-progress.failed .registration-spinner{animation:none;border-color:var(--green,#B7F34A);background:var(--green,#B7F34A)}.registration-progress.failed .registration-progress-box{border-color:var(--danger,#b42318)}.registration-progress.failed .registration-spinner{border-color:var(--danger,#b42318);background:var(--danger,#b42318);color:#fff}.registration-progress [data-registration-close]{margin-top:16px}
@media(prefers-reduced-motion:reduce){.registration-spinner{animation:none;border-color:var(--green,#B7F34A)}}
@keyframes popUp{from{transform:translateY(10px) scale(.97)}to{transform:none}}
.popbox h2{font-size:18px;font-weight:600;margin:0;color:var(--ink)}
.popbox p{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ink-2);white-space:pre-line}
/* Deux choix de contact côte à côte, à parts égales. */
.contactopts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.contactopt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  padding:16px 8px;border:1px solid var(--line-strong);border-radius:var(--radius);
  background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:600;
  text-decoration:none;cursor:pointer}
.contactopt:hover{background:var(--surface-2)}
.contactopt .ci{width:26px;height:26px;display:grid;place-items:center;color:var(--accent-ink,var(--brand))}
.contactopt .ci svg{width:100%;height:100%;display:block}
.popok{margin-top:18px;width:100%;height:46px;border:none;border-radius:var(--radius);background:var(--okg,#B7F34A);color:#111;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.popok:hover{filter:brightness(.96)}
.popactions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px}.popactions .popok{margin:0}.popcancel{min-width:0;height:46px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--ink);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.popcancel.danger{background:var(--danger);border-color:var(--danger);color:#fff}.popok.danger{background:var(--danger);color:#fff}.popconfirm p{max-width:42ch;margin-left:auto;margin-right:auto}
@media (prefers-reduced-motion:reduce){.popwrap,.popbox{animation:none}}
/* Carte de l'offre : hauteur fixe pour ne pas pousser le reste de la page, coins arrondis
   cohérents avec les cartes du site. */
.mapwrap{position:relative;height:260px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line-strong);
  /* trame discrète sous les tuiles : une zone pas encore chargée n'est jamais un rectangle vide */
  background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(0,0,0,.035) 31px 32px),repeating-linear-gradient(90deg,transparent 0 31px,rgba(0,0,0,.035) 31px 32px) var(--surface-2);
  contain:layout paint}
/* ---- Écran carte plein cadre + volet (Autour de moi / Choisir le lieu, deux univers) ----
   Le cadre annule les marges du corps de page et prend toute la hauteur restante (fixée en px par
   le script, 100dvh - en-tête en repli). La carte y est absolue sur 100 % ; le volet recouvre le
   bas et se réduit d'un appui sur sa poignée. */
.mapscreen{position:relative;z-index:10;isolation:isolate;height:calc(100dvh - 78px);margin:-12px -20px calc(-1 * (env(safe-area-inset-bottom) + 32px));overflow:hidden;background:var(--surface-2)}
/* « Choisir le lieu » : le vert officiel structure les grandes zones sans recolorer les fonds,
   la carte, les photos ni les contenus. La classe est limitée au parcours logement choisi. */
body.okchap-choose-place .top{border-bottom:1px solid var(--okchap-green)}
.mapscreen.choose-place{box-sizing:border-box;border:1px solid var(--okchap-green);border-top:0;border-radius:0 0 22px 22px;background:var(--surface-2)}
.mapscreen.choose-place .msheet{border:1px solid var(--okchap-green);border-bottom:0}
.mapscreen.choose-place .famsel{padding-bottom:13px;border-bottom:1px solid var(--okchap-green)}
.mapscreen.choose-place .nearpanel{border-top-color:var(--okchap-green)}
.mapscreen .mapwrap{position:absolute;inset:0;height:auto;border:0;border-radius:0}
.mapscreen .mapbtns{bottom:calc(62% + 12px);transition:bottom .2s}
.mapback{position:absolute;top:12px;left:12px;z-index:110;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.18);cursor:pointer}
.mapback svg{width:22px;height:22px}
.msheet{position:absolute;left:0;right:0;bottom:0;z-index:100;max-height:62%;display:flex;flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.14);transition:max-height .2s}
.mhandle{flex:0 0 auto;height:26px;display:grid;place-items:center;width:100%;background:transparent;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mhandle span{display:block;width:44px;height:5px;border-radius:999px;background:var(--line-strong)}
.mhead{flex:0 0 auto;padding:0 18px 4px}
.mhead h1{font-size:20px;margin:0}
.mhead .sub{margin:4px 0 0;font-size:13px}
.mbody{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 18px calc(env(safe-area-inset-bottom) + 16px)}
.mbody .famsel{margin-top:10px}
.mbody .blocgeo{margin-top:12px;padding:16px}
/* Recherche « Commune ou quartier » : le menu reste SOUS son champ, dans le même DOM. Le volet
   s'ouvre sur la hauteur visible pendant la saisie ; ainsi son propre scroll ne coupe plus la
   liste et la carte reste derrière, sans créer de portal ou de couche blanche concurrente. */
/* La liste s'affiche au-dessus de la carte, sans déployer le volet sur tout l'écran :
   aucun voile blanc ni cadre vert géant n'est créé pendant la recherche. */
.mapscreen.geo-open .msheet,.mapscreen.query-open .msheet{max-height:calc(100% - 2px)}
.mapscreen.geo-open .mbody,.mapscreen.query-open .mbody{overflow:visible;scroll-padding-top:12px;scroll-padding-bottom:12px}
.mapscreen.geo-open .mhead,.mapscreen.geo-open .mhandle{display:none}
.mapscreen.geo-open .geobox{position:relative;z-index:30;isolation:isolate}
.mapscreen.min .msheet{max-height:none}
.mapscreen.min .mbody{display:none}
.mapscreen.min .mhead .sub{display:none}
@media (min-width:720px){.msheet{left:auto;right:16px;bottom:16px;width:400px;max-height:calc(100% - 32px);border-radius:22px}.mapscreen.choose-place{border-radius:22px}.mapscreen.choose-place .msheet{border-bottom:1px solid var(--okchap-green)}.mapscreen.min .msheet{max-height:none}.mapscreen .mapbtns{bottom:16px!important;right:432px}}
#map{position:absolute;inset:0;z-index:0;width:100%;height:100%}
.leaflet-container{font:inherit;background:transparent}
.mapcredits{position:absolute;left:8px;bottom:8px;z-index:400;width:25px;height:25px;padding:0;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(15,23,42,.16);color:#25322f;font:800 13px/1 Georgia,serif;cursor:pointer}
.mapbtns{position:absolute;right:10px;bottom:10px;z-index:400;display:flex;flex-direction:column;gap:8px}
.maploc{position:relative;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.maploc[hidden]{display:none}
.maploc svg{width:20px;height:20px}
.mapstate{position:absolute;inset:0;z-index:20;display:grid;place-items:center;text-align:center;
  padding:18px;background:rgba(245,246,243,.92);color:var(--mute);font-size:13.5px;line-height:1.5}
.mapstate[hidden]{display:none}
/* Repère de la personne : point vert cerclé de noir, halo animé. */
.moi{display:block;width:22px;height:22px;border-radius:50%;background:var(--okg,#B7F34A);border:3px solid #111;box-shadow:0 0 0 4px rgba(183,243,74,.35);position:relative}
.moi::after{content:"";position:absolute;inset:-12px;border-radius:50%;border:2px solid rgba(17,17,17,.35);animation:moipulse 2s ease-out infinite}
@keyframes moipulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.moi::after{animation:none;display:none}}
/* Repères des fiches : pictogramme par entité okchap (hôtel, résidence, habitation, professionnel).
   Vert = disponible/ouvert, gris = indisponible/fermé. */
.pin{display:grid;place-items:center;width:34px;height:34px;border-radius:12px 12px 12px 3px;transform:rotate(0);
  background:var(--surface);border:2px solid var(--mute);color:var(--mute);box-shadow:0 3px 8px rgba(0,0,0,.25)}
.pin svg{width:18px;height:18px}
.pin.on{background:#111;border-color:var(--okg,#B7F34A);color:var(--okg,#B7F34A)}
.pin.artisan.on{background:var(--okg,#B7F34A);border-color:#111;color:#111}
.zonepin{display:inline-block;padding:5px 10px;border-radius:999px;background:#111;color:#fff;font-size:12px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.25);transform:translateX(-50%)}
/* Fenêtre d'un repère : nom, type/métier, zone, disponibilité, distance ou temps estimé. */
.okpop .leaflet-popup-content-wrapper{border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.22);font:inherit}
.okpop .leaflet-popup-content{margin:12px 26px 12px 14px;font-size:13px;line-height:1.4}
.mpop b{display:block;font-size:14px;color:var(--ink)}
.mpop small{display:block;color:var(--mute);font-size:12px;margin-top:2px}
.mpop .mpl{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--mute);font-size:11.5px;font-weight:600}
.mpop .mpl.on{background:var(--okg,#B7F34A);color:#111}
.mpop .mpeta{margin-top:6px;color:var(--ink-2);font-size:12.5px}
.mpop .mpeta i{color:var(--mute);font-style:normal;font-size:11.5px}
/* Repères : vert plein pour un établissement en ligne, contour gris sinon ; pastille chiffrée
   lorsque plusieurs se superposent. */
.mkr{display:block;width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--mute);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.mkr.on{background:var(--okg,#B7F34A);border-color:#111}
.mkr.grp{width:30px;height:30px;border-radius:50%;background:#111;color:#fff;border:2px solid var(--okg,#B7F34A);
  display:grid;place-items:center;font-size:12px;font-weight:700}
/* Écran de blocage lorsque la localisation est indispensable et absente. */
.blocgeo{margin-top:20px;padding:24px 18px;text-align:center;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface)}
.blocic{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-ink)}
.blocic svg{width:26px;height:26px}
.blocgeo b{display:block;font-size:16px;color:var(--ink)}
.blocgeo p{margin:8px 0 16px;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.empty{text-align:center;color:var(--mute);padding:32px 12px;font-size:14px}
/* Bulles de conversation — définition de base (client/pro affinent le style dans brand.css/pro.css). */
.msgs{display:flex;flex-direction:column;gap:8px;min-height:200px;max-height:55vh;overflow:auto;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.msg{max-width:82%;align-self:flex-start;background:var(--surface-2);border-radius:14px 14px 14px 4px;padding:8px 12px;font-size:14px}
.msg.me{align-self:flex-end;background:var(--accent-soft,var(--surface-2));border-radius:14px 14px 4px 14px}
.msg small{display:block;font-size:10px;color:var(--mute);margin-top:2px;text-align:right}
.empty b{display:block;color:var(--ink);font-weight:600;font-size:15px;margin-bottom:4px}
.tabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--line);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{padding:12px 12px;font-weight:500;font-size:14px;color:var(--mute);border-bottom:2px solid transparent;position:relative;margin-bottom:-1px;flex:0 0 auto;white-space:nowrap}
.verification-tabs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%;margin:12px 0}.verification-tab{min-width:0;min-height:44px;padding:8px 6px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--mute);font:600 clamp(11px,3.4vw,14px)/1.2 Inter,system-ui,sans-serif;white-space:normal;overflow-wrap:anywhere;text-align:center}.verification-tab.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.verification-matrix{margin:16px 0 20px}.verification-matrix-head{align-items:flex-start;justify-content:space-between}.verification-matrix-head>div{flex:1}.verification-matrix-head h2{margin:0 0 5px}.verification-matrix-head .btn{width:auto;min-width:210px;margin:0}.verification-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.verification-family-card{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.verification-family-card legend{padding:0 7px;color:var(--accent-ink);font-weight:800}.verification-matrix-choice{display:flex;align-items:flex-start;gap:9px;padding:9px 7px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.3;cursor:pointer}.verification-matrix-choice:last-child{border-bottom:0}.verification-matrix-choice input{flex:0 0 auto;width:19px;height:19px;margin:0;accent-color:var(--accent)}.verification-matrix-choice span{min-width:0;overflow-wrap:anywhere}@media(max-width:760px){.verification-matrix-head{display:block}.verification-matrix-head .btn{width:100%;margin-top:10px}.verification-family-grid{grid-template-columns:1fr}}
.sortable-admin-card{position:relative;transition:opacity .15s ease,transform .15s ease}.sortable-admin-card.dragging{opacity:.55;transform:scale(.99)}.sort-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sort-head small{flex:1}.sort-handle,.sort-actions button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;font:inherit;cursor:grab}.sort-actions{display:flex;gap:6px;margin-left:auto}.sort-actions button{cursor:pointer;font-weight:800}
.admin-photo-viewer{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:rgba(5,7,6,.86)}.admin-photo-viewer>div{width:min(92vw,620px);max-height:90dvh;padding:12px;border-radius:16px;background:#111;color:#fff;box-shadow:0 18px 60px #0008;overflow:auto}.admin-photo-viewer img{display:block;width:100%;max-height:72dvh;object-fit:contain;border-radius:10px;background:#050706}.admin-photo-viewer header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.admin-photo-viewer button{min-width:44px;min-height:44px;border-radius:50%;background:#292929;color:#fff;font-size:20px}
.admin-document-viewer{align-items:stretch;justify-content:flex-start;padding:0;background:rgba(5,7,6,.72)}.admin-document-viewer>div{width:min(52vw,720px);height:100dvh;max-height:none;padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom));border-radius:0 18px 18px 0}.admin-document-viewer img,.admin-document-viewer iframe{display:block;width:100%;height:calc(100dvh - 76px);max-height:none;border:0;border-radius:10px;background:#050706;object-fit:contain}.admin-doc-link{display:inline-flex;align-items:center;min-height:38px;padding:5px 10px;border:1px solid color-mix(in srgb,var(--accent) 72%,var(--line));border-radius:999px;background:transparent;color:var(--accent-ink);font:700 12px/1.2 Inter,system-ui,sans-serif;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.admin-doc-link:disabled{opacity:.55}
@media(max-width:719px){.admin-document-viewer>div{width:100vw;border-radius:0}.admin-document-viewer img,.admin-document-viewer iframe{height:calc(100dvh - 72px)}}
.tab.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}
.tab .dot{position:absolute;top:8px;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center}
/* Back-office : les dix rubriques ne doivent jamais créer une rangée horizontale coupée.
   Sur téléphone elles se répartissent en grille tactile ; sur bureau, elles deviennent une
   navigation latérale groupée et le contenu garde toute la largeur disponible. */
.admin-console .admin-top small{display:block;margin-top:3px;color:var(--mute);font-size:12px}.admin-console .admin-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);overflow:visible}.admin-console .admin-nav-group{display:contents}.admin-console .admin-nav-label{display:none}.admin-console .tab{min-width:0;min-height:46px;margin:0;padding:10px 28px 10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);white-space:normal;text-align:left;line-height:1.2}.admin-console .tab.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.admin-console .tab .dot{top:7px;right:7px}@media(min-width:760px){.admin-console .app{max-width:1440px;display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow:hidden}.admin-console .top{grid-column:1/-1}.admin-console .admin-tabs{grid-column:1;grid-row:2;display:block;align-self:stretch;padding:18px 14px;border-bottom:0;border-right:1px solid var(--line);overflow-y:auto}.admin-console .admin-nav-group{display:block;margin:0 0 20px}.admin-console .admin-nav-label{display:block;margin:0 8px 8px;color:var(--mute);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.admin-console .tab{display:block;width:100%;margin:3px 0;min-height:42px;padding:10px 30px 10px 12px}.admin-console .body{grid-column:2;grid-row:2;min-width:0;overflow-y:auto;padding:22px 28px max(36px,env(safe-area-inset-bottom))}}@media(min-width:1100px){.admin-console .cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:350px){.admin-console .admin-tabs{grid-template-columns:1fr}.admin-console .tab{min-height:44px}}

/* Navigation du back-office : menus principaux lisibles et sous-menus clairement indentés. */
.admin-console .admin-nav-tree{display:block;grid-column:1/-1;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.admin-console .admin-nav-tree .admin-nav-label{display:block;margin:0 4px 7px;color:var(--ink);font-size:13px;font-weight:800;letter-spacing:0;text-transform:none}
.admin-console .admin-nav-submenu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-left:8px;border-left:3px solid var(--accent)}
.admin-console .admin-nav-submenu .tab{background:var(--surface);font-size:13px}
.admin-console .admin-nav-branch{grid-column:1/-1;margin-top:2px;padding:7px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.admin-console .admin-nav-branch-label{display:block;margin:0 4px 6px;color:var(--ink);font-size:12px;font-weight:800}
.admin-console .admin-nav-level-three{display:grid;grid-template-columns:1fr;gap:5px;padding-left:8px;border-left:2px solid color-mix(in srgb,var(--accent) 60%,var(--line))}
.admin-console .admin-nav-level-three .tab{min-height:40px;padding:9px 24px 9px 11px;font-size:12px}
.admin-console .admin-section-switcher{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.admin-console .admin-section-switcher .chip{flex:1 1 180px;min-height:42px;margin:0}.admin-console .admin-section-switcher .chip.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.admin-console .admin-identity-status-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}.admin-console .admin-identity-status-tabs .chip{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;margin:0;padding:10px 12px;text-align:left}.admin-console .admin-identity-status-tabs .chip b{display:grid;place-items:center;min-width:25px;height:25px;padding:0 6px;border-radius:999px;background:var(--surface);color:var(--ink);font-size:11px}.admin-console .admin-identity-status-tabs .chip.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}
.admin-console .admin-identity-search{margin-bottom:12px}.admin-console .admin-identity-search .sub{margin:8px 0 0}.admin-console .admin-identity-results{margin-bottom:18px}
.admin-console details.admin-identity-disclosure{grid-column:1/-1;padding:0;overflow:hidden}.admin-console .admin-identity-disclosure>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:14px;font-weight:700;color:var(--ink);cursor:pointer;user-select:none}.admin-console .admin-identity-disclosure>summary::-webkit-details-marker{display:none}.admin-console .admin-identity-disclosure>summary::marker{content:""}.admin-console .admin-identity-arrow{flex:0 0 auto;width:9px;height:9px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg);transition:transform .16s ease;margin-right:4px}.admin-console .admin-identity-disclosure[open]>.admin-identity-disclosure-body{border-top:1px solid var(--line)}.admin-console .admin-identity-disclosure[open]>summary .admin-identity-arrow{transform:rotate(225deg);margin-top:6px}.admin-console .admin-identity-disclosure-body{padding:14px;background:var(--surface-2)}.admin-console .admin-identity-disclosure-body>.card{background:var(--surface)}
.admin-console .bonus-reward-admin{margin-top:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:11px;background:var(--accent-soft);color:var(--accent-ink)}
.admin-console .professional-rule-list .professional-rule-editor{grid-column:1/-1}.admin-console .professional-rule-editor{padding:18px}.admin-console .professional-rule-editor-head h3{margin:8px 0 3px;font-size:20px}.admin-console .professional-rule-editor-head .sub{margin:0}.admin-console .professional-rule-steps{display:grid;gap:12px;margin-top:16px}.admin-console .program-form-step{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.admin-console .program-step-heading{display:flex;align-items:center;gap:10px;margin-bottom:12px}.admin-console .program-step-heading>span{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#132006;font-size:13px;font-weight:800}.admin-console .program-step-heading b,.admin-console .program-step-heading small{display:block}.admin-console .program-step-heading small{margin-top:2px;color:var(--mute);font-size:12px;line-height:1.35}.admin-console .program-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-console .program-form-step .lbl{margin-top:9px}.admin-console .program-form-grid .lbl{margin-top:0}.admin-console .field-help{margin-top:5px;color:var(--mute);font-size:11px;line-height:1.4}.admin-console .program-publication-row{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(240px,1fr);gap:12px;align-items:end}.admin-console .program-active-choice{display:flex;align-items:center;gap:10px;min-height:46px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer}.admin-console .program-active-choice input{flex:0 0 auto;width:auto;height:auto}.admin-console .program-active-choice span,.admin-console .program-active-choice b,.admin-console .program-active-choice small{display:block}.admin-console .program-active-choice small{margin-top:2px;color:var(--mute)}.admin-console .program-form-actions{margin-top:14px}.admin-console .program-rule-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.admin-console .program-rule-facts>div{padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.admin-console .program-rule-facts small,.admin-console .program-rule-facts b{display:block}.admin-console .program-rule-facts small,.admin-console .program-rule-response small{color:var(--mute);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.admin-console .program-rule-facts b{margin-top:3px;font-size:12px;line-height:1.3}.admin-console .program-rule-response{margin-top:8px;padding:10px 11px;border-left:3px solid var(--accent);border-radius:0 9px 9px 0;background:var(--accent-soft)}.admin-console .program-rule-response p{margin:4px 0 0;font-size:12px;line-height:1.45}
@media(min-width:760px){.admin-console .admin-nav-tree{margin-bottom:14px;padding:9px}.admin-console .admin-nav-submenu{display:block}.admin-console .admin-nav-submenu>.tab{padding-left:18px}.admin-console .admin-nav-branch{margin:5px 0 0 8px}.admin-console .admin-nav-level-three .tab{padding-left:14px}}
@media(max-width:759px){.admin-console .admin-identity-status-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-console .admin-identity-status-tabs .chip{font-size:12px}}
@media(max-width:620px){.admin-console .program-form-grid,.admin-console .program-publication-row{grid-template-columns:1fr}.admin-console .program-rule-facts{grid-template-columns:1fr}.admin-console .professional-rule-editor{padding:13px}}

/* Carte de félicitations affichée après une attribution de bonus confirmée par le serveur. */
.bonus-celebration{background:radial-gradient(circle at 50% 25%,rgba(183,243,74,.22),rgba(5,7,6,.82) 46%,rgba(5,7,6,.94))}.bonus-card{position:relative;overflow:hidden;max-width:430px!important;padding:30px 22px 22px!important;border:1px solid rgba(183,243,74,.55)!important;background:linear-gradient(155deg,#10170d,#050706 68%)!important;color:#fff!important;box-shadow:0 28px 90px rgba(0,0,0,.6),0 0 0 1px rgba(183,243,74,.1) inset!important}.bonus-gift{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 14px;border-radius:22px;background:linear-gradient(145deg,#d5ff83,#92d523);color:#142006;font-size:34px;box-shadow:0 12px 32px rgba(183,243,74,.28)}.bonus-kicker{margin:0 0 7px!important;color:#b7f34a!important;font-size:11px!important;font-weight:800!important;letter-spacing:.12em}.bonus-card h2{margin:0!important;color:#fff!important;font-size:30px!important}.bonus-card h3{margin:8px 0 6px;color:#fff;font-size:17px}.bonus-card>p:not(.bonus-kicker){margin:0 auto 14px!important;color:#d9dfd6!important}.bonus-reward{margin:14px 0;padding:13px;border:1px solid rgba(183,243,74,.45);border-radius:14px;background:rgba(183,243,74,.1);color:#d8ff91;font-size:16px;font-weight:800}.bonus-card>small{display:block;margin:0 auto 17px;color:#aeb7aa;line-height:1.45}.bonus-card .popok{background:#b7f34a!important;color:#101607!important}.bonus-sparkles i{position:absolute;width:6px;height:6px;border-radius:50%;background:#b7f34a;box-shadow:0 0 12px #b7f34a}.bonus-sparkles i:nth-child(1){top:22px;left:13%;animation:bonusSpark 1.8s infinite}.bonus-sparkles i:nth-child(2){top:52px;right:14%;animation:bonusSpark 2.1s .35s infinite}.bonus-sparkles i:nth-child(3){top:118px;left:8%;animation:bonusSpark 2.4s .7s infinite}.bonus-sparkles i:nth-child(4){top:135px;right:9%;animation:bonusSpark 1.9s 1s infinite}.bonus-sparkles i:nth-child(5){top:16px;right:35%;animation:bonusSpark 2.2s .2s infinite}@keyframes bonusSpark{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.55)}}
.file{display:flex;align-items:center;justify-content:center;gap:6px;height:46px;border-radius:var(--radius);border:1px dashed var(--line-strong);background:var(--surface-2);font-size:14px;font-weight:500;color:var(--ink-2);cursor:pointer}
.file.done{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.file input{display:none}
img.doc{width:100%;border-radius:var(--radius-s);border:1px solid var(--line);background:#fff;max-height:320px;object-fit:contain}

/* ---- Notifications ---- */
.notif{position:fixed;top:12px;left:50%;transform:translate(-50%,-140%);width:min(420px,calc(100% - 24px));z-index:300;background:var(--ink);color:#fff;border-radius:var(--radius);padding:12px 16px;box-shadow:0 12px 32px rgba(16,24,40,.25);transition:transform .3s cubic-bezier(.2,.8,.2,1);cursor:pointer}
.notif.show{transform:translate(-50%,0)}
.notif b{display:block;font-size:14px;font-weight:600}.notif small{color:rgba(255,255,255,.75);font-size:13px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-weight:500;font-size:13px;z-index:300;opacity:0;transition:opacity .2s;pointer-events:none;max-width:calc(100% - 24px);text-align:center}
.toast.show{opacity:1}
.offline{position:fixed;left:0;right:0;top:0;background:var(--danger);color:#fff;text-align:center;font-size:12px;font-weight:600;padding:6px;z-index:300}

/* Publication Admin : verrou visuel volontaire. Il couvre Client et PRO, sans fermer la
   session ni recharger automatiquement un formulaire ; le redémarrage résulte du seul appui. */
.okchap-update-gate{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:rgba(5,7,6,.94);color:#fff;text-align:center;isolation:isolate}
.okchap-update-card{width:min(100%,480px);min-height:min(560px,calc(100dvh - 36px));display:flex;flex-direction:column;justify-content:center;align-items:center;padding:clamp(28px,8vw,50px) clamp(22px,7vw,42px);border:1px solid rgba(183,243,74,.72);border-radius:28px;background:linear-gradient(145deg,#121813,#050706);box-shadow:0 24px 80px rgba(0,0,0,.55)}
.okchap-update-mark{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:var(--okchap-green,var(--okg,#B7F34A));color:#07100a;font-size:38px;font-weight:800;box-shadow:0 0 0 12px rgba(183,243,74,.12)}
.okchap-update-kicker{margin:28px 0 8px;color:var(--okchap-green,var(--okg,#B7F34A));font-size:12px;font-weight:800;letter-spacing:.12em}.okchap-update-card h1{margin:0;color:#fff;font-size:clamp(27px,7vw,38px);line-height:1.08}.okchap-update-card>p:not(.okchap-update-kicker){margin:18px 0 0;color:rgba(255,255,255,.77);font-size:15px;line-height:1.55}.okchap-update-button{width:100%;min-height:54px;margin-top:32px;border-radius:14px;background:var(--okchap-green,var(--okg,#B7F34A));color:#07100a;font-size:14px;font-weight:800;letter-spacing:.035em}.okchap-update-button:disabled{opacity:.7;cursor:wait}.okchap-update-card small{display:block;margin-top:14px;color:rgba(255,255,255,.48);font-size:12px;line-height:1.45}.okchap-update-button:focus-visible{outline:3px solid #fff;outline-offset:3px}@media (prefers-reduced-motion:reduce){.okchap-update-gate,.okchap-update-card{animation:none!important}}

/* ---- Splash officiel Client : • → ○ → ondes → réponse → ○✓ → okchap ----
   SVG/CSS local, sans vidéo, sans appel métier. L'overlay se retire dès que boot() est prêt. */
.oksplash{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;min-height:100svh;z-index:2147483647;display:grid;place-items:center;box-sizing:border-box;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#050706;color:#fff;font-family:Poppins,system-ui,sans-serif;overflow:hidden;transition:opacity .2s ease,visibility .2s ease}
.oksplash.out{opacity:0;visibility:hidden;pointer-events:none}.splashscene{position:relative;width:min(72vw,440px);max-width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 32px);aspect-ratio:1;display:grid;place-items:center;text-align:center}.splashmark{position:absolute;width:clamp(180px,48vw,300px);height:auto;overflow:visible}.splashcopy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.splashdot{fill:var(--okg,#B7F34A);opacity:0;animation:sDot 2.2s both}.splashring,.splashwave{fill:none;stroke:var(--okg,#B7F34A);stroke-width:6;stroke-linecap:round}.splashring{stroke-dasharray:239;stroke-dashoffset:239;animation:sRing 2.2s both}.splashwave{opacity:0;stroke-width:1.5}.w1{animation:sWave 2.2s .42s both}.w2{animation:sWave 2.2s .56s both}.w3{animation:sWave 2.2s .70s both}.splashpeer{fill:#d9ff9e;opacity:0}.p1{animation:sPeer 2.2s .66s both}.p2{animation:sPeer 2.2s .76s both}.p3{animation:sPeer 2.2s .86s both}.splashreply{fill:none;stroke:#d9ff9e;stroke-width:2;stroke-linecap:round;stroke-dasharray:52;stroke-dashoffset:52;opacity:0;animation:sReply 2.2s .78s both}.splashcheck{fill:none;stroke:#fff;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:54;stroke-dashoffset:54;opacity:0;animation:sCheck 2.2s 1.02s both}.splashlogo{opacity:0;margin:0;font-size:clamp(40px,9vw,64px);font-weight:700;letter-spacing:clamp(-3px,-.4vw,-1.5px);line-height:1;animation:sText 2.2s 1.3s both}.splashlogo span{color:var(--okg,#B7F34A)}.splashscene p{opacity:0;margin:clamp(6px,1.5vw,12px) 0 0;font-size:clamp(14px,3.2vw,18px);color:#f8faf7;animation:sText 2.2s 1.72s both}.oksplash.reduced .splashmark{display:none}.oksplash.reduced .splashlogo,.oksplash.reduced .splashscene p{opacity:1;animation:none}.oksplash.reduced .splashlogo{margin-top:0}@keyframes sDot{0%,4%{opacity:0;transform:scale(.2)}9%{opacity:1;transform:scale(1)}18%,100%{opacity:0;transform:scale(.1)}}@keyframes sRing{5%{stroke-dashoffset:239;opacity:0}22%{stroke-dashoffset:0;opacity:1}62%,100%{stroke-dashoffset:0;opacity:0}}@keyframes sWave{0%{opacity:0;r:40}8%{opacity:.65}27%,100%{opacity:0;r:72}}@keyframes sPeer{0%,5%{opacity:0;transform:scale(.4)}15%,35%{opacity:.75;transform:scale(1)}48%,100%{opacity:0;transform:scale(.3)}}@keyframes sReply{0%,8%{opacity:0;stroke-dashoffset:52}12%,42%{opacity:.9;stroke-dashoffset:0}52%,100%{opacity:0}}@keyframes sCheck{0%,8%{opacity:0;stroke-dashoffset:54}32%,56%{opacity:1;stroke-dashoffset:0}66%,100%{opacity:0;stroke-dashoffset:0}}@keyframes sText{0%,8%{opacity:0;transform:translateY(5px)}20%,100%{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.oksplash *{animation:none!important;transition:none!important}}

/* Taille finale renforcée : surcharge volontaire après la séquence afin de conserver ses timings. */
.splashlogo{font-size:clamp(52px,12vw,82px);letter-spacing:clamp(-4px,-.5vw,-2px)}
.splashscene p{margin-top:clamp(8px,1.8vw,14px);font-size:clamp(16px,4vw,22px);font-weight:500}.splashscene p b{color:var(--okg,#B7F34A)}
.splash-wordmark{display:block;width:clamp(203px,59.4vw,513px);max-width:calc(100vw - 20px);height:auto}
.splash-brand-pro{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,3vw,20px)}.splash-brand-pro>span{padding:.25em .55em;border:2px solid var(--okg,#B7F34A);border-radius:.38em;color:var(--okg,#B7F34A);font-size:clamp(20px,5vw,32px);font-weight:800;letter-spacing:.06em;line-height:1}
.splashlogo-pro{display:flex;align-items:center;justify-content:center;gap:clamp(5px,1.2vw,9px);width:min(94vw,560px);max-width:calc(100vw - 20px);box-sizing:border-box;font-size:clamp(22px,6.5vw,38px);letter-spacing:0;text-transform:none;white-space:nowrap;overflow:visible}
.splashlogo-pro .splash-pro-ok{display:block;width:clamp(112px,30vw,174px);height:auto;object-fit:contain;flex:0 0 auto;background:transparent}.splashlogo-pro strong{display:block;color:#fff;font:800 clamp(48px,13vw,78px)/.9 Poppins,system-ui,sans-serif;letter-spacing:clamp(-4px,-.7vw,-2px)}
.splashlogo-pro span{flex:0 0 auto;padding:.28em .42em;border:1.5px solid var(--okg,#B7F34A);border-radius:.38em;color:#fff;font-size:.72em;line-height:1;font-weight:800;letter-spacing:.04em}
/* Splash PRO uniquement : le logo est construit avec le symbole OK officiel et du texte natif,
   afin qu'aucun ancien bitmap en cache ne puisse couper « chap » ou le slogan. */
.splashcopy>.splashlogo-pro+p{width:calc(100vw - 32px);max-width:560px;white-space:nowrap}.splashcopy>.splashlogo-pro+p b{color:var(--okg,#B7F34A)}
@media(max-width:340px){.splashlogo-pro{gap:4px;max-width:calc(100vw - 12px)}.splashlogo-pro .splash-pro-ok{width:104px}.splashlogo-pro strong{font-size:45px}.splashlogo-pro span{font-size:.62em;padding:.25em .3em}.splashcopy>.splashlogo-pro+p{font-size:15px}}

/* Photos jointes à une demande */
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.thumb-img{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--line-strong);background:var(--surface)}
.thumb-img img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-img button{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:11px;line-height:20px;padding:0;cursor:pointer}
/* Notation */
.rate-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);text-align:left}
.rate-stars button{background:none;border:0;font-size:26px;line-height:1;color:var(--line-strong);padding:0 2px;cursor:pointer}
.rate-stars button.on{color:var(--lamp)}
.stars{color:var(--lamp);letter-spacing:1px}

.thumb{overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.matching-photo-pair{position:relative;display:block;width:100%;height:100%}.matching-photo-pair>img:first-child{width:100%;height:100%;object-fit:cover}.matching-photo-pair>img:last-child{position:absolute;right:2px;bottom:2px;width:42%;height:42%;border-radius:50%;border:2px solid var(--okg);object-fit:cover;background:#111}

/* ---- Filet de sécurité Leaflet ----
   Si la feuille de style de Leaflet (CDN) n'arrive pas (4G lente, réseau capricieux), les tuiles
   s'empilaient en un grand rectangle vide. Ces règles reprennent les règles de mise en page
   indispensables de leaflet.css 1.9 ; identiques à l'original, elles sont sans effet quand il est
   chargé. */
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}
.leaflet-container{overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:none;touch-action:pinch-zoom}
.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.leaflet-tile{filter:inherit;visibility:hidden}
.leaflet-tile-loaded{visibility:inherit}
.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}
.leaflet-marker-icon,.leaflet-marker-shadow{display:block}
.leaflet-container .leaflet-marker-pane img{width:auto}
.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}
.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}
.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto;float:left;clear:both}
.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}
.leaflet-right .leaflet-control{float:right;margin-right:10px}
.leaflet-bottom .leaflet-control{margin-bottom:10px}
.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}
.leaflet-zoom-animated{transform-origin:0 0}
svg.leaflet-zoom-animated{will-change:transform}
.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}
.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}
.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}
.leaflet-interactive{cursor:pointer}
.leaflet-grab{cursor:-webkit-grab;cursor:grab}
.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:grabbing}
.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}
.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}
.leaflet-container .leaflet-control-attribution{background:rgba(255,255,255,.8);margin:0;font-size:11px;line-height:1.4;padding:0 5px;color:#333}
.leaflet-container .leaflet-control-attribution a{color:#0078a8;text-decoration:none}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}
.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px;background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}
.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;min-height:1px}
.leaflet-popup-content p{margin:1.3em 0}
.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}
.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg);background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}
.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}
.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}
.leaflet-div-icon{background:#fff;border:1px solid #666}

/* ---- Champ « Commune ou quartier » (référentiel géographique) ---- */
.geobox{position:relative;display:grid;gap:6px;min-width:0}
.geobox>input{width:100%;min-width:0}
/* La liste n'occupe pas le flux du formulaire : elle reste sous le champ, mais au-dessus des
   éléments qui le suivent. Ainsi le fond blanc du volet ne devient jamais un faux masque sur
   les résultats lorsque le viewport mobile ou le clavier se recalcule. */
.geodrop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:2;box-sizing:border-box;width:100%;max-height:min(430px,65dvh);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 10px 28px rgba(0,0,0,.16);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.geodrop[hidden]{display:none!important}
.geoit{display:block;width:100%;min-height:52px;text-align:left;padding:9px 14px;background:transparent;border:0;border-bottom:1px solid var(--line);cursor:pointer}
.geoit:last-child{border-bottom:0}
.geoit b{display:block;font-size:14.5px;color:var(--ink)}
.geoit small{display:block;margin-top:1px;color:var(--mute);font-size:12px}
.geoit.hi,.geoit:active{background:var(--surface-2)}
.mapscreen.geo-open .geoit{min-height:42px;padding:5px 12px}
.geost{padding:12px 14px;color:var(--mute);font-size:13px;line-height:1.45}
.geost.err{color:var(--danger,#c0392b)}
.geosel{display:flex;align-items:center;gap:10px;justify-content:space-between;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:10px 12px}
.geoselt small{display:block;color:var(--mute);font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.geoselt b{display:block;font-size:14.5px;color:var(--ink);margin-top:1px}
.geoclr{flex:0 0 auto;border:1px solid var(--line-strong);background:var(--surface-2);border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer}

/* Suggestions locales (métier). Aucun <datalist> natif : certains navigateurs Android
   affichaient son grand panneau blanc au-dessus du formulaire et le laissaient visible après
   le choix. La liste Okchap occupe uniquement l'espace réel entre le champ et le clavier/pied. */
.querybox{position:relative;z-index:32;min-width:0}.querybox>input{width:100%;min-width:0}
.exact-place-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.exact-place-search>.chip{min-height:48px;padding-inline:15px}.problem-photo-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.problem-photo-actions .file{min-width:0;height:auto;min-height:48px;padding:8px;text-align:center}.query-attribution a{color:inherit;text-decoration:underline}
.zone-availability{display:grid;gap:3px;margin:9px 0 2px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.zone-availability b{font-size:13px;line-height:1.35}.zone-availability span{color:var(--mute);font-size:11px;line-height:1.45}.zone-availability.ok{border-color:color-mix(in srgb,var(--okg) 55%,var(--line));background:color-mix(in srgb,var(--okg) 9%,var(--surface))}.zone-availability.ok b{color:var(--okg)}.zone-availability.empty b{color:var(--text)}.zone-availability.loading{opacity:.78}
@media(max-width:420px){.exact-place-search{grid-template-columns:1fr}.exact-place-search>.chip{width:100%}.problem-photo-actions{grid-template-columns:1fr}}
.querydrop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:120;box-sizing:border-box;width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 10px 28px rgba(0,0,0,.16);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.querydrop[hidden]{display:none!important}.querydrop .geoit{min-height:48px}
.trade-suggestion-lead{display:grid;gap:2px;background:var(--surface-2);border-bottom:1px solid var(--line)}.trade-suggestion-lead b{color:var(--ink);font-size:12px}.trade-suggestion-lead span{font-size:11px;line-height:1.35}
.sec-with-info{display:flex;align-items:center;gap:7px}.field-info{display:inline-grid;place-items:center;flex:0 0 19px;width:19px;height:19px;min-width:19px;padding:0;border:1.5px solid var(--green);border-radius:50%;background:transparent;color:var(--green);font:700 12px/1 Poppins,system-ui,sans-serif;text-transform:none;letter-spacing:0;cursor:pointer}.field-info:active{background:var(--green);color:#071006}
.query-attribution{padding:7px 12px;text-align:right;border-top:1px solid var(--line);background:var(--surface);color:var(--mute);font-size:10px;font-weight:600}.geoselt span{display:block;margin-top:2px;color:var(--mute);font-size:11px;line-height:1.3}
.client-search-active{overflow:hidden!important}
.client-search-surface{position:fixed;z-index:10010;box-sizing:border-box;overflow:hidden;overscroll-behavior:none;background:var(--surface);color:var(--ink);touch-action:pan-y}
.client-search-top{position:relative;z-index:2;display:grid;gap:10px;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));background:var(--surface)}
.client-search-heading{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-height:44px;text-align:center}.client-search-heading>b{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.client-search-back{grid-column:1;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}.client-search-back svg{width:25px;height:25px}
.client-search-field{min-width:0;padding-bottom:6px}.client-search-field>.querybox,.client-search-field>.geobox{position:relative;z-index:auto;width:100%;isolation:auto}.client-search-field input{width:100%;min-height:54px;padding:12px 44px 12px 16px;border:1.5px solid var(--green);border-radius:18px;background:var(--surface-2);color:var(--ink);font-size:17px;box-sizing:border-box}
.client-search-surface .querydrop,.client-search-surface .geodrop{position:fixed!important;top:var(--okchap-search-results-top)!important;left:0!important;right:0!important;width:100%!important;height:var(--okchap-search-results-height)!important;max-height:var(--okchap-search-results-height)!important;margin:0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:var(--surface);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.client-search-surface .geoit{min-height:64px;padding:10px max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left));display:grid;align-content:center;gap:2px}.client-search-surface .geoit b{font-size:16px;line-height:1.25}.client-search-surface .geoit small{font-size:12px;line-height:1.35}.client-search-surface .geost{padding:16px max(18px,env(safe-area-inset-right)) 16px max(18px,env(safe-area-inset-left));font-size:13px}.client-search-surface .trade-suggestion-lead{min-height:auto}.client-search-surface .query-attribution{padding-right:max(18px,env(safe-area-inset-right))}
@media(min-width:720px){.client-search-surface{display:none!important}}
.trade-selected-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.trade-selected-tools>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.trade-favorite{flex:0 0 auto;padding:5px 9px;border:1px solid var(--green);border-radius:999px;background:transparent;color:var(--green);font:700 11px/1.2 Poppins,system-ui,sans-serif}.trade-favorite.on{background:var(--green);color:#071006}.saved-zone-row{display:flex;gap:6px;margin-top:7px;overflow-x:auto;scrollbar-width:none}.saved-zone-row::-webkit-scrollbar{display:none}.saved-zone{flex:0 0 auto;min-height:34px;padding:6px 10px;font-size:11px}.mobility-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mobility-choices .chip{min-height:46px;height:auto;white-space:normal;line-height:1.25}.photo-not-needed{margin-top:10px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--green) 55%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--green) 9%,var(--surface));color:var(--green);font-size:12px;font-weight:700}.photo-not-needed[hidden],#pPhotoRequired[hidden],#aPhotoRequired[hidden]{display:none!important}
@media(max-width:390px){.mobility-choices{grid-template-columns:1fr}}

/* =====================================================================
   RESPONSIVE OKCHAP — contrat commun Client / PRO / Admin
   1. 320–359 : téléphone compact ; 2. 360–599 : téléphone courant ;
   3. 600–899 : tablette/large paysage ; 4. ≥900 : bureau.
   Les composants restent fluides par défaut ; les seuils ne changent que la
   densité ou la disposition. Aucun écran métier ne dépend d'une largeur fixe.
   ===================================================================== */
html,body{max-width:100%;overflow-x:hidden}
.legal-links{display:grid;gap:8px}.legal-link{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;text-align:left;cursor:pointer}.legal-link b{color:var(--green);font-size:23px;line-height:1}.legal-consent{display:flex;align-items:flex-start;gap:9px;margin:14px 0;font-size:12px;line-height:1.45;color:var(--mute);text-align:left}.legal-consent input{width:20px;height:20px;min-width:20px;margin:0;accent-color:var(--green)}.legal-language{display:flex;gap:8px;justify-content:flex-end;margin:4px 0 12px}.legal-document{overflow-wrap:anywhere;padding-bottom:max(28px,env(safe-area-inset-bottom))}.legal-document h1{font-size:clamp(22px,6vw,30px);line-height:1.12;margin:12px 0 18px}.legal-document h2{font-size:clamp(16px,4.5vw,20px);margin:24px 0 8px}.legal-document p{line-height:1.6;margin:0 0 12px}.legal-document .legal-bullet{padding-left:4px}.legal-meta{padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--mute)}
body{min-height:100dvh;min-height:100svh}
.app{width:min(100%,480px);min-width:0;overflow:visible}
.body{min-width:0;overflow-x:clip;overflow-y:visible;overscroll-behavior-y:contain;padding-bottom:max(calc(env(safe-area-inset-bottom) + 32px),32px)}
.settings-page{padding-bottom:max(96px,calc(env(safe-area-inset-bottom) + 64px))}
img,svg,video,canvas{max-width:100%}
input,select,textarea,button{max-width:100%}
/* Sur téléphone, l'application est un plein écran. Le plafond de 480 px reste réservé aux
   mises en page de type bureau/tablette prévues par les seuils ci-dessous. */
@media (max-width:599px){.app{width:100%;max-width:none;margin:0}}
input[type="date"],input[type="time"]{min-width:0;font-size:clamp(13px,4vw,15px)}
h1{font-size:clamp(21px,5.8vw,28px)}
.sub{font-size:clamp(13px,3.8vw,14px)}
.chip,.back,.geoclr{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.chip{padding:7px 14px;line-height:1.2;white-space:normal}
.top{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.row{align-items:stretch}
.row>*,.phonegroup>*{min-width:0}
.card,.list-item,.thread,.oc,.slotrow,.pro,.client,.profhead,.prow{min-width:0}
.list-item>*,.thread>*,.oc>*,.slotrow>*,.pro>*,.client>*,.profhead>*,.prow>*{min-width:0;overflow-wrap:anywhere}
.popwrap,.sheet,.confirm{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.popbox,.sheet>div,.confirm>div{width:min(100%,560px);max-height:calc(100dvh - 24px);max-height:calc(100svh - 24px);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.popbox{padding:clamp(16px,5vw,22px)}
.contactopts{min-width:0}.contactopt{min-width:0;overflow-wrap:anywhere;min-height:88px}
.mapwrap{width:100%;max-width:100%}
/* Le cadre carte sort déjà du padding horizontal de .body via ses marges négatives.
   Une largeur explicite de 100 % le raccourcirait d'autant à droite : largeur automatique
   = plein bord réel, sans bande blanche ni débordement horizontal. */
.mapscreen{width:auto;max-width:none;height:var(--okchap-vv-height,calc(100dvh - 78px));height:var(--okchap-vv-height,calc(100svh - 78px))}
.msheet{max-height:min(72%,calc(100% - 12px));padding-bottom:env(safe-area-inset-bottom)}
.mhead,.mbody{min-width:0}.mbody{overscroll-behavior:contain}
.mapstate{padding:16px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}
.msgs{max-height:min(55dvh,520px);overscroll-behavior:contain}
.tabs,.filters,.gal{overscroll-behavior-x:contain}

/* Téléphone compact : on préserve les champs date/heure et les actions métier en les empilant
   seulement lorsqu'une ligne n'a pas assez d'espace. */
@media (max-width:359px){
  .body{padding-left:14px;padding-right:14px}.top{padding-bottom:10px}.logo{font-size:18px}
  .row.stack-xs{flex-direction:column}.row.stack-xs>*{width:100%}
  .contactopts{grid-template-columns:1fr}.slots{gap:5px}.slot{padding:8px 2px}.slot b{font-size:13px}.slot small{font-size:10px}
  .msheet{max-height:78%}.mhead{padding-left:14px;padding-right:14px}.mbody{padding-left:14px;padding-right:14px}
  .pinkeys{gap:8px}.pinkeys button{width:60px;height:60px}.geosel{gap:6px;padding:9px 10px}.geoselt{min-width:0}.geoselt b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Tablette et bureau : les surfaces restent lisibles, sans étirer les formulaires à l'infini. */
@media (min-width:600px){
  .app{width:min(calc(100% - 32px),860px)}.body{padding-bottom:36px}.popbox{max-width:420px}
  .msheet{width:min(440px,calc(100% - 32px));left:auto;right:16px;bottom:16px;max-height:calc(100% - 32px);border-radius:22px}
  .mapscreen .mapbtns{right:min(468px,calc(100% - 64px));bottom:16px!important}
}
@media (min-width:900px){
  .app{width:min(calc(100% - 48px),1120px)}.body{padding-left:clamp(28px,4vw,48px);padding-right:clamp(28px,4vw,48px)}
  .top,.tabs{padding-left:clamp(28px,4vw,48px);padding-right:clamp(28px,4vw,48px)}
  .narrow{max-width:640px}.popbox{max-width:460px}
}

/* Paysage et clavier virtuel : le volet devient presque plein écran et défile en interne ; la
   carte garde son conteneur, les boutons ne sortent jamais derrière le clavier. */
@media (orientation:landscape) and (max-height:560px){
  .top{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:8px}.mapscreen{margin-top:-8px}
  .msheet{max-height:calc(100% - 8px)}.mhead .sub{display:none}.mbody{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .mapback{top:8px;left:8px}.mapbtns{gap:6px}.maploc{width:42px;height:42px}.popbox,.sheet>div,.confirm>div{max-height:calc(100dvh - 16px)}
}

/* ---- Back-office : densité maîtrisée, sans actions qui débordent ----
   Les comptes, les demandes et la géographie partagent ces composants : une action garde
   toujours sa propre surface tactile et un libellé lisible, y compris à 320 px. */
.admin-console .admin-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
.admin-console .admin-action-grid>*{width:100%;min-width:0;min-height:44px;margin:0!important;padding:8px 10px;white-space:normal;overflow-wrap:anywhere;text-align:center;justify-content:center}
.admin-console .admin-entity-row{align-items:flex-start}.admin-console .admin-list-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;flex:0 0 min(100%,230px);width:100%}.admin-console .admin-list-actions .chip{min-width:0;min-height:42px;padding:7px 10px;white-space:normal;text-align:center;justify-content:center}
.admin-console .admin-order-filters{align-items:stretch}.admin-console .admin-order-filters input{min-width:0}.admin-console .admin-order-filters select{flex:0 1 180px}.admin-console .admin-order-dates{align-items:end}.admin-console .admin-order-row{align-items:flex-start;gap:10px;padding:14px 0}.admin-console .admin-order-main{flex:1 1 240px;min-width:0}.admin-console .admin-order-title{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;overflow-wrap:anywhere}.admin-console .admin-order-title b{font-size:15px}.admin-console .admin-order-meta{margin:5px 0 0!important;line-height:1.5;overflow-wrap:anywhere}.admin-console .admin-order-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 1 250px;flex-wrap:wrap}.admin-console .admin-order-actions .chip{min-height:40px;padding:7px 10px;white-space:normal;text-align:center}
.admin-console .admin-convo-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.55fr);gap:8px;align-items:end}.admin-console .admin-convo-filters input{width:100%;min-width:0}.admin-console .admin-convo-filters .lbl{margin:0 0 5px}.admin-console .admin-convo-row{cursor:pointer}.admin-console .geo-overview{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.admin-console .geo-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important}.admin-console .geo-kpis>div{min-width:0;padding:9px 10px;border-radius:10px;background:var(--surface-2)}.admin-console .geo-kpis b{display:block;margin-top:3px;color:var(--accent-ink)}.admin-console .geo-section{padding:12px 0 8px;margin-bottom:0;border-bottom:1px solid var(--line);font-size:15px}.admin-console .geo-audit-row,.admin-console .geo-request-row{align-items:flex-start;padding:13px 0}.admin-console .geo-audit-row .chip,.admin-console .geo-request-row .chip{min-height:40px;margin-top:6px!important;white-space:normal;text-align:left}.admin-console .geo-form-card{border-color:var(--line-strong)}.admin-console .geo-search{align-items:stretch}.admin-console .geo-search .chip{flex:0 0 auto;min-width:108px}
.admin-console .verification-review-list{display:grid;gap:9px;margin:10px 0 12px}.admin-console .verification-review-item{overflow:hidden;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);transition:border-color .18s,box-shadow .18s}.admin-console .verification-review-item[open]{border-color:color-mix(in srgb,var(--accent) 64%,var(--line));box-shadow:0 7px 20px rgba(0,0,0,.07)}.admin-console .verification-review-item.is-approved{border-color:var(--accent)}
.admin-console .verification-review-item>summary{display:grid;grid-template-columns:24px minmax(0,1fr) auto 13px;align-items:center;gap:10px;min-height:58px;padding:10px 12px;cursor:pointer;list-style:none}.admin-console .verification-review-item>summary::-webkit-details-marker{display:none}.admin-console .verification-review-item [data-vselect]{width:22px;height:22px;margin:0;accent-color:var(--accent);cursor:pointer}.admin-console .verification-review-label{display:grid;gap:2px;min-width:0}.admin-console .verification-review-label b{font-size:14px;overflow-wrap:anywhere}.admin-console .verification-review-label small{color:var(--mute);font-size:11px;line-height:1.25}.admin-console .verification-review-arrow{width:9px;height:9px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg);transition:transform .18s}.admin-console .verification-review-item[open] .verification-review-arrow{transform:rotate(225deg)}
.admin-console .verification-review-detail{display:grid;gap:9px;padding:12px;border-top:1px solid var(--line);background:var(--surface-2)}.admin-console .verification-current-value{font-size:13px;line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}.admin-console .verification-inline-document{min-height:0}.admin-console .verification-inline-document .doc{width:100%;max-height:360px}.admin-console .verification-reason{display:grid;gap:5px}.admin-console .verification-reason span{font-size:12px;font-weight:800;color:var(--danger)}.admin-console .verification-reason textarea{width:100%;min-height:68px;resize:vertical}.admin-console .verification-review-item.is-approved [data-vreason-wrap]{display:none}
.admin-console .admin-professional-dossier{margin-top:14px;padding:0;overflow:hidden;border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.admin-console .admin-professional-dossier>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 14px;cursor:pointer;list-style:none;background:var(--surface-2)}.admin-console .admin-professional-dossier>summary::-webkit-details-marker{display:none}.admin-console .admin-professional-dossier>summary>span:first-child{display:grid;gap:3px}.admin-console .admin-professional-dossier>summary small{color:var(--mute);font-size:11px}.admin-console .admin-professional-dossier-body{padding:12px}.admin-console .admin-professional-dossier-body>.sec:first-child{margin-top:0}.admin-console .admin-professional-dossier .prow>div{min-width:0}.admin-console .admin-professional-dossier .prow>b{max-width:58%;overflow-wrap:anywhere;text-align:right}
.admin-console .verification-selection-summary{margin:12px 0 8px;padding:10px 12px;border-radius:11px;background:var(--surface-2);color:var(--ink-2);font-size:12px;line-height:1.4}.admin-console .verification-selection-summary b{color:var(--ink)}.admin-console .verification-batch-actions{display:grid;grid-template-columns:minmax(110px,.45fr) minmax(180px,1fr);gap:8px}.admin-console .verification-batch-actions>*{width:100%;min-height:46px;margin:0}.admin-console .verification-batch-note{text-align:left;margin:7px 0 12px!important}
.admin-console .admin-account-photo{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;margin:0;padding:0;overflow:hidden;border:2px solid var(--accent);border-radius:15px;background:var(--surface-2);color:var(--accent-ink);font-family:inherit;font-size:18px;font-weight:800;line-height:1;cursor:pointer}.admin-console .admin-account-photo img{display:block;width:100%;height:100%;object-fit:cover}.admin-console .admin-account-photo-empty{cursor:default}
@media (min-width:600px){.admin-console .admin-action-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.admin-console .geo-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:520px){.admin-console .admin-entity-row{display:block}.admin-console .admin-list-actions{margin-top:10px;max-width:none}.admin-console .admin-order-filters,.admin-console .admin-order-dates{display:grid;grid-template-columns:1fr}.admin-console .admin-order-filters select{width:100%;max-width:none}.admin-console .admin-order-actions{justify-content:flex-start;max-width:100%;width:100%}.admin-console .admin-order-actions .tag{margin-right:auto}.admin-console .admin-convo-filters{grid-template-columns:1fr}.admin-console .geo-search{display:grid;grid-template-columns:minmax(0,1fr) auto}.admin-console .geo-kpis{gap:7px!important}.admin-console .geo-kpis>div{padding:8px}.admin-console .geo-kpis .lbl{font-size:10px}.admin-console .verification-review-item>summary{grid-template-columns:24px minmax(0,1fr) 12px}.admin-console .verification-review-item>summary>.tag{grid-column:2;margin-top:2px;justify-self:start}.admin-console .verification-review-arrow{grid-column:3;grid-row:1}.admin-console .verification-batch-actions{grid-template-columns:1fr}.admin-console .admin-professional-dossier>summary{grid-template-columns:1fr}.admin-console .admin-professional-dossier>summary>.tag{justify-self:start}.admin-console .admin-professional-dossier .prow{display:grid;grid-template-columns:1fr}.admin-console .admin-professional-dossier .prow>b{max-width:none;text-align:left}}
@media (max-width:350px){.admin-console .admin-action-grid{grid-template-columns:1fr}.admin-console .admin-list-actions{grid-template-columns:1fr}.admin-console .geo-search{grid-template-columns:1fr}.admin-console .geo-search .chip{width:100%}}

/* Sélecteur d'heure Okchap : le dialogue natif Android est volontairement évité, car ses
   actions ne sont pas pilotables par la PWA. Les trois actions restent à parts égales. */
.timepick-trigger{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.timepick-trigger b{font-variant-numeric:tabular-nums;white-space:nowrap}
.timepick-modal{position:fixed;z-index:1300;inset:0;display:grid;place-items:end center;background:rgba(0,0,0,.58);padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overscroll-behavior:contain}
.timepick-card{width:min(100%,440px);max-height:calc(100dvh - 24px);max-height:calc(100svh - 24px);overflow:auto;-webkit-overflow-scrolling:touch;background:var(--surface);border-radius:22px;padding:clamp(16px,5vw,24px);box-sizing:border-box;box-shadow:0 18px 50px rgba(0,0,0,.34)}
.timepick-card h2{margin:0 0 4px;font-size:clamp(19px,5vw,23px)}
.timepick-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;margin:20px 0}
.timepick-fields label{display:grid;gap:6px;min-width:0;font-size:13px;font-weight:700;color:var(--ink-2)}
.timepick-fields select{width:100%;min-width:0;min-height:48px;padding:8px;font:inherit;font-variant-numeric:tabular-nums}
.timepick-separator{padding-bottom:12px;font-size:25px;font-weight:700}
.timepick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;padding:0 max(2px,env(safe-area-inset-right)) 0 max(2px,env(safe-area-inset-left));box-sizing:border-box}
.timepick-actions button{min-width:0;min-height:48px;padding:7px 6px;overflow-wrap:anywhere;white-space:normal;font-size:clamp(12px,3.6vw,14px);line-height:1.15}
@media (max-width:359px){.timepick-modal{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.timepick-card{padding:16px}.timepick-actions{gap:5px}.timepick-actions button{padding-left:2px;padding-right:2px;font-size:12px}}

/* Cadeaux : le bouton rouge est réellement placé sous la photo Client. Il reste discret dans
   l'en-tête, tandis que la page dédiée conserve chaque récompense déjà acquittée. */
.user-gift-badge{margin:0;padding:0;border-radius:50%;background:var(--surface);box-shadow:0 4px 12px rgba(0,0,0,.2);cursor:pointer;transition:transform .15s,box-shadow .15s}
.user-gift-badge[hidden]{display:none!important}.user-gift-badge:active{transform:scale(.93)}.user-gift-badge svg{width:22px;height:22px;overflow:visible}.gift-bag{fill:#ef233c}.gift-ribbon,.gift-bow{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.user-gift-badge.has-new{animation:okchap-gift-pulse 1.25s ease-in-out infinite}.gift-new-dot{background:var(--green)!important;color:#050706!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 24%,transparent)}@keyframes okchap-gift-pulse{0%,100%{box-shadow:0 4px 12px rgba(0,0,0,.2),0 0 0 0 color-mix(in srgb,var(--green) 34%,transparent)}50%{box-shadow:0 4px 12px rgba(0,0,0,.2),0 0 0 7px transparent}}
.gift-page{padding-bottom:max(32px,env(safe-area-inset-bottom))}.gift-hero{position:relative;overflow:hidden;margin-top:8px;padding:24px 18px;border:1px solid color-mix(in srgb,var(--green) 72%,var(--line));border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--green) 15%,var(--surface)),var(--surface));text-align:center;box-shadow:0 14px 35px rgba(0,0,0,.14)}
.gift-hero-icon{display:grid;place-items:center;width:82px;height:82px;margin:0 auto 12px;border:2px solid var(--green);border-radius:50%;background:#111814;box-shadow:0 0 0 7px color-mix(in srgb,var(--green) 12%,transparent)}.gift-hero-icon svg{width:56px;height:56px}.gift-kicker{margin:0 0 4px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.12em}.gift-hero h1{margin:4px 0 8px}.gift-hero>p:last-child{margin:0;color:var(--ink-2);font-size:13px;line-height:1.55}
.gift-award-list{display:grid;gap:10px;margin-top:14px}.gift-award-card{padding:16px;border:1px solid var(--line-strong);border-radius:17px;background:var(--surface);box-shadow:0 8px 22px rgba(0,0,0,.08)}.gift-award-card.latest{border-color:var(--green);background:color-mix(in srgb,var(--green) 7%,var(--surface))}.gift-award-card small{color:var(--green);font-size:10px;font-weight:800;letter-spacing:.1em}.gift-award-card h2{margin:5px 0 3px;font-size:17px}.gift-award-card strong{display:block;color:var(--ink);font-size:14px}.gift-award-card p{margin:8px 0 0;color:var(--ink-2);font-size:12px;line-height:1.5}.gift-award-card time{display:block;margin-top:9px;color:var(--mute);font-size:11px}.gift-empty{margin-top:14px;text-align:center}.gift-empty p{margin:6px 0 0;color:var(--ink-2);font-size:13px}

/* L'avis en attente devient le seul écran utilisable jusqu'à son enregistrement. */
.mandatory-rating-active .top{display:none!important}.mandatory-rating-page{box-sizing:border-box;min-height:calc(100dvh - 42px);min-height:calc(100svh - 42px);display:flex;flex-direction:column;justify-content:center;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}.mandatory-rating-kicker{margin:2px 0 6px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.13em}.mandatory-rating-copy{margin:0 auto 14px;max-width:390px;color:var(--ink-2);font-size:13px;font-weight:600;line-height:1.55}.mandatory-rating-card{border-color:var(--green);box-shadow:0 12px 34px rgba(0,0,0,.14)}
@media(max-width:359px){.gift-hero{padding:20px 14px}}
@media(max-width:339px){body:not(.admin-console):not(.pro-app) .top{padding-bottom:30px}body:not(.admin-console):not(.pro-app) .top #hdr{position:relative}body:not(.admin-console):not(.pro-app) .top #hGift{position:absolute;z-index:4;top:41px;right:5px;width:29px;height:29px}body:not(.admin-console):not(.pro-app) .top #hGift svg{width:17px;height:17px}}
@media(prefers-reduced-motion:reduce){.user-gift-badge.has-new{animation:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 35%,transparent)}}
/* Badge officiel OK fourni pour les comptes vérifiés et la confirmation de mise à jour. */
.verified-ok-popup{display:block;width:68px;aspect-ratio:1;height:auto;margin:0 auto 12px;border-radius:18px;background:#050706 url("okchap-verified-badge-transparent.png") center/82% auto no-repeat;box-shadow:0 5px 16px rgba(5,7,6,.2)}
.account-verified-badge{width:26px!important;aspect-ratio:1;height:auto!important;border-radius:7px!important;background:#050706 url("okchap-verified-badge-transparent.png") center/82% auto no-repeat!important;color:transparent!important;font-size:0!important;box-shadow:0 2px 7px rgba(5,7,6,.22)!important}
.toast.ok-toast-success{display:flex;align-items:center;justify-content:center;gap:10px}.toast.ok-toast-success:before{content:"";flex:0 0 30px;width:30px;height:30px;border-radius:8px;background:#050706 url("okchap-verified-badge-transparent.png") center/82% auto no-repeat}
.brand-adaptive{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:5px 7px;background:#050706;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.16)}.official-header-logo{display:block;width:clamp(144px,40vw,190px);height:auto;max-height:58px;object-fit:contain;object-position:left center;border-radius:0}.official-logo{display:block;width:clamp(220px,56vw,420px)!important;height:auto;object-fit:contain}@media(max-width:359px){.brand-adaptive{padding:4px 5px}.official-header-logo{width:136px}}
.accepted-stay-row{border-radius:16px;margin-bottom:10px}.accepted-stay-row .oc{margin-bottom:0}.accepted-stay-actions{display:grid;grid-template-columns:1fr;gap:8px;padding:0 10px 10px}.accepted-stay-actions .btn{margin:0;min-height:46px}.stay-countdown{display:block;margin-top:8px;color:var(--okg)}.accepted-stay-row.expired{outline:2px solid var(--danger);animation:stay-expired-pulse 1s infinite}@keyframes stay-expired-pulse{50%{box-shadow:0 0 0 6px rgba(220,38,38,.22)}}
.stay-client-countdown{display:grid;gap:4px;text-align:center;margin-top:12px}.stay-client-countdown small{color:var(--mute);letter-spacing:.07em}.stay-client-countdown strong{font-size:clamp(28px,9vw,44px);color:var(--accent-ink);font-variant-numeric:tabular-nums}.stay-client-countdown span{font-size:13px;color:var(--ink-2)}
.verified{display:inline-flex!important;align-items:center;gap:6px;font-size:12px!important}.verified:before{content:"";display:inline-block;width:26px;aspect-ratio:1;border-radius:7px;background:#050706 url("okchap-verified-badge-transparent.png") center/82% auto no-repeat;box-shadow:0 2px 7px rgba(5,7,6,.22)}
/* v1.130 : identité lisible sur fond blanc et confirmations réellement centrales. */
.brand-adaptive{background:transparent;box-shadow:none}.official-header-logo{filter:drop-shadow(1px 0 #050706) drop-shadow(-1px 0 #050706) drop-shadow(0 1px #050706) drop-shadow(0 -1px #050706)}
.toast{top:50%;bottom:auto;transform:translate(-50%,-50%) scale(.94);background:#050706;color:#fff;padding:16px 22px;border:2px solid var(--green);border-radius:18px;font-weight:800;font-size:14px;z-index:10020;max-width:min(88vw,420px);box-shadow:0 18px 55px rgba(0,0,0,.35),0 0 0 5px rgba(177,255,51,.12)}.toast.show{transform:translate(-50%,-50%) scale(1)}
.settings-page-compact .sec{font-size:12px}.settings-page-compact .legal-links{gap:6px}.settings-page-compact .legal-link{min-height:44px;padding:9px 12px;border-radius:12px;font-size:12px}.settings-page-compact .legal-link b{font-size:18px}.settings-logout{font-size:12px!important;background:#c92a2a!important;border-color:#c92a2a!important;color:#fff!important}.settings-delete{font-size:12px!important}
.pin-switch{width:52px;height:30px;border:1px solid var(--line-strong);border-radius:999px;background:#fff!important;position:relative;flex:0 0 auto;transition:background .2s,border-color .2s}.pin-switch:after{content:"";position:absolute;width:24px;height:24px;left:2px;top:2px;border-radius:50%;background:#fff!important;box-shadow:0 1px 4px #0005;transition:transform .2s}.pin-switch.on{background:var(--accent)!important;border-color:var(--accent)!important}.pin-switch.on:after{transform:translateX(22px)}
/* Logo User : mot-logo et slogan séparés pour que leur taille puisse évoluer indépendamment. */
.official-user-lockup{display:flex;flex:0 0 182px;width:182px;height:68px;max-width:182px;flex-direction:column;align-items:center;justify-content:center;overflow:visible;background:transparent}
.official-user-wordmark{display:block;width:72%;max-width:72%;height:auto;object-fit:contain;object-position:center;background:transparent}
.logo .official-user-tagline{display:block;width:100%;margin-top:1px;color:#FFFFFF;font-size:9px;font-weight:500;line-height:1;letter-spacing:-.01em;text-align:center;white-space:nowrap}
.logo .official-user-tagline b{color:#B7F34A;font-weight:700}
.compact-settings-links{gap:5px!important}.compact-settings-links .legal-link{min-height:42px!important;padding:8px 11px!important;border-radius:11px!important;font-size:12px!important;font-weight:700!important}.chat-image{display:block;width:min(240px,100%);max-height:320px;object-fit:cover;border-radius:10px;margin-bottom:5px}
@media(max-width:600px){body:not(.admin-console):not(.pro-app) .top:has(#hdr){flex-wrap:nowrap;justify-content:space-between}body:not(.admin-console):not(.pro-app) .top #homeLogo{flex:0 0 173px;width:173px;max-width:173px!important;justify-content:flex-start;overflow:hidden}body:not(.admin-console):not(.pro-app) .top #homeLogo .official-user-lockup{flex:0 0 173px;width:173px;height:65px;max-width:173px}body:not(.admin-console):not(.pro-app) .top #hdr{width:auto;justify-content:flex-end}}
@media(max-width:399px){body:not(.admin-console):not(.pro-app) .top:has(#hdr){padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:3px}body:not(.admin-console):not(.pro-app) .top #hdr{gap:2px!important}}
@media(max-width:339px){body:not(.admin-console):not(.pro-app) .top #hdr .gear,body:not(.admin-console):not(.pro-app) .top #hdr .uavatar{width:38px;height:38px}}
/* v1.159 — états explicites du bouton de code d'ouverture. */
.pin-switch-explicit::after{display:none!important;content:none!important}
/* Commande Restaurant rapide : une seule carte compacte, adaptée au pouce sur mobile. */
.restaurant-fast{margin-top:8px;padding:14px;border:1px solid color-mix(in srgb,var(--lamp) 48%,var(--line));border-radius:22px;background:color-mix(in srgb,var(--card) 94%,var(--lamp) 6%)}
.restaurant-mode,.restaurant-budget-choice,.restaurant-pref-chips{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.restaurant-mode::-webkit-scrollbar,.restaurant-budget-choice::-webkit-scrollbar,.restaurant-pref-chips::-webkit-scrollbar{display:none}
.restaurant-mode .chip,.restaurant-budget-choice .chip,.restaurant-pref-chips .chip{flex:0 0 auto;min-height:40px;padding:8px 12px;font-size:12px;white-space:nowrap}
.restaurant-label{display:block;margin:14px 0 7px;color:var(--text);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.restaurant-label span{color:var(--mute);font-weight:500;text-transform:none}
.restaurant-items{display:grid;gap:8px}.restaurant-item{display:grid;grid-template-columns:minmax(0,1fr) 82px 34px;gap:7px;align-items:center}.restaurant-item>label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px;color:var(--mute);font-size:11px}.restaurant-item input{min-width:0;margin:0}.restaurant-item>button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--danger);font-size:20px}
.restaurant-add{margin-top:7px;padding:6px 0;border:0;background:transparent;color:var(--lamp);font-weight:700}.restaurant-budget{margin-top:8px}
.restaurant-summary{display:grid;gap:10px}.restaurant-summary>div{display:grid;gap:3px}.restaurant-summary small{color:var(--mute);font-size:10px;font-weight:700;letter-spacing:.08em}.restaurant-summary b,.restaurant-summary strong{color:var(--lamp)}.restaurant-summary-items{display:grid!important;gap:6px!important}.restaurant-summary-items span{padding:7px 9px;border-radius:11px;background:color-mix(in srgb,var(--card) 88%,var(--lamp) 12%)}
@media(max-width:430px){.restaurant-fast{padding:12px}.restaurant-item{grid-template-columns:minmax(0,1fr) 74px 32px}.restaurant-mode .chip,.restaurant-budget-choice .chip{font-size:11px}}

/* v1.230 — accueil multiservice et catalogue Supermarché */
.home-location-line{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:13px}
.home-location-line span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#0c120e;color:var(--okg);font-size:18px}
.home-location-line b{font-weight:700}
.hero>h1{max-width:100%;margin:4px 0 0;font-size:clamp(20px,6.2vw,30px);line-height:1.08;letter-spacing:-.035em;white-space:nowrap;text-align:left}
.home-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.home-service{position:relative;min-width:0;border:1px solid rgba(5,7,6,.1);border-radius:18px;background:rgba(255,255,255,.88);color:#050706;padding:7px;display:grid;grid-template-columns:44px minmax(0,1fr) 14px;align-items:center;gap:6px;font:inherit;text-align:left;cursor:pointer;box-shadow:0 5px 16px rgba(5,7,6,.06);overflow:hidden}
.home-service.selected{background:#050706;color:#fff;border-color:#050706;box-shadow:0 0 0 2px var(--okg)}
.home-service-icon{width:44px;height:44px;border:1px solid rgba(5,7,6,.12);border-radius:12px;display:grid;place-items:center;overflow:hidden;background:#f4f6f2;color:#111713}
.home-service-icon img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.home-service.selected .home-service-icon{border-color:var(--okg);box-shadow:0 0 0 1px rgba(183,243,74,.35)}
.home-service b{min-width:0;font-size:clamp(10.5px,3vw,12px);line-height:1;letter-spacing:-.025em;white-space:nowrap}.home-service>i{font-style:normal;font-size:20px;color:var(--okg)}
.home-category-instruction{width:100%;min-height:56px;border:1px solid rgba(5,7,6,.16);border-radius:17px;background:#050706;color:#fff;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;padding:10px 13px;text-align:left}
.home-category-instruction span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--okg);color:#050706;font-size:13px;font-weight:800}.home-category-instruction b{font-size:clamp(12px,3.5vw,15px);line-height:1.3}
.home-path-choice{margin-top:9px;padding:12px;border-radius:18px;background:rgba(255,255,255,.58);border:1px solid rgba(5,7,6,.1)}
.home-path-choice p{font-size:13px;margin:9px 0 8px}.home-path-selected{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-path-selected small{font-size:10px;letter-spacing:.08em}.home-path-selected b{font-size:14px}
.home-launcher-hint{font-size:13px;margin:11px 0 0;text-align:center}
.home-trust-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0;color:var(--muted);text-align:center}
.home-trust-badge{position:relative;min-width:0;min-height:78px;padding:9px 5px 10px;border:1px solid color-mix(in srgb,var(--okg) 38%,var(--line));border-radius:15px;background:linear-gradient(155deg,color-mix(in srgb,var(--card) 94%,var(--okg) 6%),var(--card));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;box-shadow:0 7px 20px rgba(0,0,0,.08)}
.home-trust-badge i{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--okg);color:#071006;box-shadow:0 0 0 4px color-mix(in srgb,var(--okg) 14%,transparent)}
.home-trust-badge svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.home-trust-badge:first-child svg{fill:currentColor;stroke:none}
.home-trust-badge b{min-width:0;font-size:clamp(9px,2.75vw,11px);line-height:1.15;font-weight:750;color:var(--text);text-wrap:balance}
@media(max-width:350px){.home-trust-row{gap:5px}.home-trust-badge{min-height:72px;padding-inline:3px}.home-trust-badge i{width:27px;height:27px}.home-trust-badge svg{width:16px;height:16px}.home-trust-badge b{font-size:8.7px}}
.mobile-home-map{margin:13px 0 20px;border:1px solid color-mix(in srgb,var(--okg) 44%,var(--line));border-radius:20px;background:var(--card);overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.12)}
.mobile-home-map-head{min-height:48px;padding:9px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--card) 92%,var(--okg) 8%),var(--card))}.mobile-home-map-head>span{display:flex;align-items:center;gap:7px}.mobile-home-map-head i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--okg);color:#071006;font-size:18px;font-style:normal}.mobile-home-map-head small{color:var(--text);font-size:10px;font-weight:800;letter-spacing:.08em}.mobile-home-map-head b{min-width:0;color:var(--muted);font-size:11px;text-align:right}
.mobile-home-map .mapwrap{height:clamp(270px,48vh,390px);border:0;border-radius:0}.mobile-home-map .mapcredits{left:9px;bottom:9px}.mobile-home-map .mapbtns{right:10px;bottom:10px}
@media(min-width:980px){.mobile-home-map{display:none}}

.supermarket-store-meta{display:grid;gap:2px;margin:9px 0;padding:11px 13px;border:1px solid var(--line);border-radius:15px;background:rgba(164,255,0,.07)}
.supermarket-store-meta b{font-size:16px}.supermarket-store-meta span,.supermarket-store-meta small{color:var(--muted);font-size:12px}
.supermarket-catalog-state{min-height:110px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted)}
.supermarket-category-strip{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 8px;scrollbar-width:none}.supermarket-category-strip::-webkit-scrollbar{display:none}
.supermarket-category-strip .chip{white-space:nowrap;margin:0}
.supermarket-product-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:15px;padding:0 11px;margin-bottom:10px;background:var(--card)}
.supermarket-product-search span{font-size:23px}.supermarket-product-search input{border:0!important;background:transparent!important;margin:0!important;padding-left:0!important;box-shadow:none!important}
.supermarket-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.supermarket-product{position:relative;min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--card);padding:9px;display:flex;flex-direction:column;gap:8px}
.supermarket-product img,.supermarket-product-placeholder{width:100%;aspect-ratio:1.35;border-radius:12px;object-fit:cover;background:rgba(164,255,0,.09)}
.supermarket-product-placeholder{display:grid;place-items:center;font-size:30px;color:var(--okg)}
.supermarket-product>div:not(.supermarket-product-placeholder):not(.supermarket-qty){display:grid;gap:3px}
.supermarket-product small{font-size:10px;text-transform:uppercase;color:var(--muted)}.supermarket-product b{font-size:13px;line-height:1.2}.supermarket-product span{font-size:11px;color:var(--muted);line-height:1.25}.supermarket-product strong{font-size:14px}.supermarket-product del{font-size:10px;color:var(--muted)}
.supermarket-product.unavailable{opacity:.55}.supermarket-product em{font-size:11px;color:var(--danger);font-style:normal}
.supermarket-add{border:0;border-radius:11px;background:var(--okg);color:#071006;min-height:34px;font-weight:800}
.supermarket-qty{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;text-align:center;border:1px solid var(--okg);border-radius:11px;overflow:hidden}
.supermarket-qty button{height:34px;border:0;background:rgba(164,255,0,.12);color:inherit;font-size:20px}.supermarket-qty b{font-size:14px}
.supermarket-cart-summary{position:sticky;bottom:8px;z-index:2;margin-top:11px;padding:11px 13px;border-radius:15px;background:#050706;color:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 25px rgba(0,0,0,.25)}
.supermarket-cart-summary span{display:grid}.supermarket-cart-summary small{color:#bec5c0;font-size:10px}.supermarket-cart-summary strong{color:var(--okg);font-size:18px}
.supermarket-extra{margin:11px 0}.supermarket-extra summary{font-weight:750;cursor:pointer}.supermarket-extra textarea{margin-top:8px}

@media (min-width:720px){
  .home-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .supermarket-products{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* v1.231 — parcours Restaurant en huit écrans, lisible au pouce. */
.restaurant-journey{padding-bottom:calc(env(safe-area-inset-bottom) + 24px)}
.restaurant-journey h1{font-size:clamp(25px,7vw,34px);line-height:1.08;margin:10px 0 6px}.restaurant-journey h1 em{color:var(--okg);font-style:normal}
.restaurant-progress{height:5px;border-radius:99px;background:var(--line);overflow:hidden;margin:12px 0 9px}.restaurant-progress span{display:block;height:100%;border-radius:inherit;background:var(--okg);transition:width .2s ease}
.restaurant-step-label{display:block;color:var(--okg);font-size:10px;font-weight:800;letter-spacing:.12em}
.restaurant-step-body{margin-top:18px}.restaurant-step-body>.btn{margin-top:16px}
.restaurant-location-ready{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--okg);border-radius:18px;background:color-mix(in srgb,var(--surface) 91%,var(--okg) 9%)}
.restaurant-location-ready>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--okg);color:#071006;font-weight:900}.restaurant-location-ready>div{display:grid;gap:2px}.restaurant-location-ready small{color:var(--mute)}
.restaurant-choice-stack{display:grid;gap:10px;margin-top:13px}.restaurant-choice{width:100%;min-height:68px;padding:13px 15px;border:1px solid var(--line-strong);border-radius:18px;background:var(--surface);color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;font:inherit}.restaurant-choice span{font-size:16px;font-weight:800}.restaurant-choice small{grid-column:1;color:var(--mute)}.restaurant-choice i{grid-column:2;grid-row:1/3;font-style:normal;font-size:25px;color:var(--okg)}.restaurant-choice.selected{border-color:var(--okg);box-shadow:0 0 0 1px var(--okg);background:color-mix(in srgb,var(--surface) 92%,var(--okg) 8%)}.restaurant-choice:disabled{opacity:.48}
.restaurant-mode-large{display:grid;grid-template-columns:1fr;overflow:visible}.restaurant-mode-large .chip{display:grid;justify-items:start;text-align:left;min-height:66px;white-space:normal}.restaurant-mode-large .chip b{font-size:14px}.restaurant-mode-large .chip small{font-size:11px;color:var(--mute);font-weight:500}.restaurant-mode-large .chip.sel small{color:inherit;opacity:.75}
.restaurant-date-row{margin-top:12px}.restaurant-recap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.restaurant-recap>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.restaurant-recap small{color:var(--mute);font-size:9px;font-weight:800;letter-spacing:.08em}.restaurant-recap b{font-size:13px}.restaurant-recap-wide{grid-column:1/-1}.restaurant-recap p{margin:0;white-space:pre-wrap;font-size:13px;line-height:1.5}
.mapscreen .restaurant-step-label{margin-bottom:4px}.mapscreen .restaurant-location-choice .sec{margin-top:8px}
@media(max-width:380px){.home-service{grid-template-columns:40px minmax(0,1fr);padding:6px;gap:6px}.home-service-icon{width:40px;height:40px}.home-service-icon img{width:100%;height:100%}.home-service>i{display:none}}
@media(max-width:365px){.home-service b{font-size:10.5px}.restaurant-recap{grid-template-columns:1fr}.restaurant-recap-wide{grid-column:auto}}
@media(min-width:720px){.restaurant-mode-large{grid-template-columns:1fr 1fr}.restaurant-journey{max-width:620px}.restaurant-recap{grid-template-columns:repeat(3,minmax(0,1fr))}.restaurant-recap-wide{grid-column:1/-1}}


/* 1.232.6 — sélecteurs de date tactiles dans User et dans les validations Admin. */
.birth-date-controls select,input[type="date"]{min-height:48px;touch-action:manipulation}.birth-date-controls select{cursor:pointer}input[type="date"]::-webkit-calendar-picker-indicator{display:block;opacity:1;pointer-events:auto;cursor:pointer}.admin-birth-review{width:100%}.admin-birth-review .row{align-items:center}.admin-birth-review small{display:block;margin-top:5px;color:var(--mute)}
/* v1.234.1 — choix clair de la catégorie pendant l'inscription PRO */
.pro-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 16px}.pro-category{min-width:0;min-height:76px;padding:13px 14px;border:1px solid #344137;border-radius:18px;background:#121914;color:var(--white);text-align:left;display:flex;flex-direction:column;justify-content:center;gap:4px;cursor:pointer}.pro-category b{font-size:15px;line-height:1.1}.pro-category span{font-size:11px;line-height:1.25;color:var(--mute)}.pro-category.sel{border-color:var(--lamp);background:linear-gradient(135deg,var(--lamp),#93d829);color:#081006;box-shadow:0 8px 24px rgba(184,255,63,.14)}.pro-category.sel span{color:#26310d}.selected-pro-category{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0b110d;border:1px solid #344137;border-radius:15px;padding:11px 13px;margin:2px 0 13px}.selected-pro-category small{font-size:10px;letter-spacing:.08em;color:var(--mute)}.selected-pro-category b{color:var(--lamp)}.pro-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:4px}.pro-family-grid .chip{width:100%;min-width:0;min-height:44px;margin:0;white-space:normal;text-align:center;line-height:1.15}.secondary-category-row{display:flex;gap:7px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:thin}.secondary-category-row .chip{flex:0 0 auto}@media(max-width:370px){.pro-category-grid{grid-template-columns:1fr}.pro-category{min-height:62px}.pro-family-grid{grid-template-columns:1fr}}@media(min-width:720px){.pro-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pro-family-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.delivery-journey{padding-bottom:28px}.delivery-progress{height:6px;border-radius:99px;background:color-mix(in srgb,var(--line) 75%,transparent);overflow:hidden;margin:10px 0 12px}.delivery-progress span{display:block;height:100%;border-radius:inherit;background:var(--lamp)}.delivery-step-label{display:block;color:var(--lamp);font-weight:800;letter-spacing:.08em;margin-bottom:7px}.delivery-step-body{margin-top:18px}.delivery-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.delivery-mode{min-width:0;padding:14px 8px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);text-align:center}.delivery-mode svg{width:42px;height:42px;color:var(--lamp);display:block;margin:0 auto 7px}.delivery-mode b,.delivery-mode span{display:block}.delivery-mode span{font-size:11px;color:var(--muted);margin-top:3px}.delivery-mode.selected{border:2px solid var(--lamp);background:color-mix(in srgb,var(--lamp) 12%,var(--card))}.delivery-place-actions,.delivery-contact-row{display:flex;gap:8px;margin-top:8px}.delivery-place-actions .chip,.delivery-contact-row .chip{flex:0 0 auto}.delivery-contact-row input{min-width:0;flex:1}.delivery-manual-place{display:block;width:100%;border:0;border-top:1px solid var(--line);padding:13px;text-align:left;background:color-mix(in srgb,var(--lamp) 10%,var(--card));color:var(--text);font-weight:750}.delivery-landmark-note{border:1px dashed var(--line);border-radius:14px;padding:12px;margin:14px 0;color:var(--muted);font-size:13px}.delivery-phone-label{display:block;font-size:13px;font-weight:800;margin:15px 0 7px}.delivery-parcel-grid{display:flex;gap:7px;flex-wrap:wrap}.delivery-price-suggestion{border:1px solid var(--lamp);border-radius:18px;padding:18px;background:color-mix(in srgb,var(--lamp) 10%,var(--card));margin-bottom:12px}.delivery-price-suggestion small,.delivery-price-suggestion b,.delivery-price-suggestion span{display:block}.delivery-price-suggestion b{font-size:24px;margin:5px 0}.delivery-price-suggestion span{color:var(--muted);font-size:12px}.delivery-price-inputs{gap:8px}.delivery-price-inputs input{min-width:0}.delivery-summary{display:grid;gap:8px;margin-bottom:14px}.delivery-summary>div{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card)}.delivery-summary small,.delivery-summary b{display:block}.delivery-summary small{color:var(--muted);font-size:10px;letter-spacing:.08em;margin-bottom:4px}.delivery-summary b{overflow-wrap:anywhere}
.delivery-price-suggestion.loading{opacity:.86}.delivery-price-suggestion.error{border-color:#ff9a92;background:color-mix(in srgb,#ff6961 8%,var(--card))}.delivery-price-suggestion.error .chip{margin-top:12px}.delivery-price-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:13px}.delivery-price-breakdown i{padding:7px 8px;border:1px solid color-mix(in srgb,var(--lamp) 32%,var(--line));border-radius:10px;color:var(--text);font-size:10px;font-style:normal;font-weight:750;text-align:center}.delivery-price-suggestion p{margin:11px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.delivery-price-floor-note{margin:0 0 9px;color:var(--muted);font-size:12px}.delivery-price-inputs label{display:grid;min-width:0;flex:1;gap:6px;color:var(--text);font-size:12px;font-weight:750}.delivery-budget-error{min-height:20px;margin:6px 0 0;color:#ff8f88;font-size:12px;font-weight:700}
.delivery-gps-zone{display:flex;align-items:center;gap:11px;margin-bottom:17px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--lamp) 52%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--lamp) 9%,var(--card))}.delivery-gps-zone>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:var(--lamp);color:#091006;font-size:23px;font-weight:900}.delivery-gps-zone b,.delivery-gps-zone small{display:block}.delivery-gps-zone b{font-size:13px;line-height:1.25}.delivery-gps-zone small{margin-top:2px;color:var(--muted);font-size:11px}.delivery-current-position{display:flex;align-items:center;gap:11px;width:100%;min-height:66px;padding:10px 12px;border:2px solid var(--lamp);border-radius:17px;background:color-mix(in srgb,var(--lamp) 12%,var(--card));color:var(--text);text-align:left;cursor:pointer}.delivery-current-position:active{transform:scale(.99)}.delivery-current-position.loading{opacity:.72}.delivery-current-pin{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:var(--lamp);color:#091006;font-size:24px;font-weight:900}.delivery-current-position b,.delivery-current-position small{display:block}.delivery-current-position b{font-size:14px}.delivery-current-position small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.3}.delivery-place-separator{display:flex;align-items:center;gap:9px;margin:11px 0;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.delivery-place-separator:before,.delivery-place-separator:after{content:"";height:1px;flex:1;background:var(--line)}
.home-path-choice>.delivery-home-start{display:grid;width:100%;grid-template-columns:24px minmax(0,1fr) 20px;align-items:center;text-align:left}.home-path-choice>.delivery-home-start span{justify-self:start}.home-path-choice>.delivery-home-start .home-click-cue{justify-self:end}
@media(max-width:390px){.delivery-mode-grid{grid-template-columns:1fr}.delivery-mode{display:grid;grid-template-columns:44px 1fr;column-gap:10px;text-align:left;align-items:center}.delivery-mode svg{grid-row:1/3;margin:0}.delivery-mode span{margin:0}.delivery-price-inputs{display:grid;grid-template-columns:1fr}}
/* v1.234.8 — sélecteur Livraison compact : quatre véhicules restent visibles sur une ligne. */
.delivery-mode-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}.delivery-mode{display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-width:0!important;min-height:108px;padding:8px 3px!important;border:1px solid color-mix(in srgb,var(--line) 84%,transparent)!important;border-radius:14px!important;background:color-mix(in srgb,var(--card) 96%,#000)!important;color:var(--text)!important;text-align:center!important;box-shadow:0 6px 16px rgba(0,0,0,.13);overflow:hidden}.delivery-mode:hover{border-color:color-mix(in srgb,var(--lamp) 55%,var(--line))!important}.delivery-mode.selected{border-color:var(--lamp)!important;background:var(--lamp)!important;color:#0a1006!important;box-shadow:0 8px 22px rgba(183,243,74,.24)}.delivery-mode .delivery-vehicle-art{display:block!important;flex:0 0 auto;width:min(100%,72px)!important;height:48px!important;margin:0 auto 5px!important;overflow:visible}.delivery-vehicle-art .vehicle-shadow{fill:rgba(0,0,0,.2)}.delivery-vehicle-art .vehicle-wheel{fill:#0a0d0b;stroke:currentColor;stroke-width:3}.delivery-vehicle-art .vehicle-body{fill:var(--lamp);stroke:currentColor;stroke-width:2;stroke-linejoin:round}.delivery-vehicle-art .vehicle-window{fill:#e9efea;stroke:currentColor;stroke-width:1.5}.delivery-vehicle-art .vehicle-line{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.delivery-vehicle-art .vehicle-mark{fill:none;stroke:#071006;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.delivery-mode.selected .vehicle-body{fill:#12190e}.delivery-mode.selected .vehicle-wheel{fill:#f7ffe9}.delivery-mode.selected .vehicle-window{fill:#dfff9f}.delivery-mode.selected .vehicle-mark{stroke:var(--lamp)}.delivery-mode b{display:block!important;width:100%;font-size:clamp(9px,2.6vw,12px)!important;line-height:1.05!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delivery-mode span{display:block!important;width:100%;margin-top:3px!important;color:var(--muted)!important;font-size:clamp(7px,2vw,9px)!important;line-height:1.05!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delivery-mode.selected span{color:#253116!important}@media(max-width:350px){.delivery-mode-grid{gap:4px!important}.delivery-mode{min-height:94px;padding:6px 2px!important;border-radius:12px!important}.delivery-mode .delivery-vehicle-art{height:40px!important;margin-bottom:3px!important}.delivery-mode span{display:none!important}}
.delivery-mode .delivery-vehicle-image{display:block;flex:0 0 auto;width:min(100%,76px);height:50px;margin:0 auto 5px;object-fit:contain;object-position:center;filter:drop-shadow(0 5px 7px rgba(0,0,0,.22))}.delivery-mode.selected .delivery-vehicle-image{filter:drop-shadow(0 5px 7px rgba(0,0,0,.2))}.delivery-car-option .delivery-vehicle-image{display:block;width:72px;height:52px;object-fit:contain;object-position:center;filter:drop-shadow(0 5px 7px rgba(0,0,0,.22))}@media(max-width:350px){.delivery-mode .delivery-vehicle-image{height:41px;margin-bottom:3px}}
.delivery-car-choices{margin:12px 0 4px;padding:13px;border:1px solid color-mix(in srgb,var(--lamp) 55%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--lamp) 6%,var(--card))}.delivery-car-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-end;margin-bottom:10px}.delivery-car-title b,.delivery-car-title span{display:block}.delivery-car-title b{font-size:14px}.delivery-car-title span{max-width:48%;color:var(--muted);font-size:11px;text-align:right}.delivery-car-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.delivery-car-option{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;min-width:0;min-height:78px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);text-align:left}.delivery-car-option .delivery-vehicle-art{width:72px;height:50px;margin:0}.delivery-car-option span,.delivery-car-option b,.delivery-car-option small{display:block;min-width:0}.delivery-car-option b{font-size:12px;line-height:1.15}.delivery-car-option small{margin-top:4px;color:var(--muted);font-size:10px}.delivery-car-option.selected{border:2px solid var(--lamp);background:var(--lamp);color:#081006;box-shadow:0 8px 20px rgba(183,243,74,.2)}.delivery-car-option.selected .vehicle-body{fill:#11180d}.delivery-car-option.selected .vehicle-window{fill:#e5ffaf}.delivery-car-option.selected small{color:#263516}@media(max-width:390px){.delivery-car-choices{padding:10px}.delivery-car-grid{grid-template-columns:1fr}.delivery-car-option{grid-template-columns:82px minmax(0,1fr)}.delivery-car-option .delivery-vehicle-art{width:82px}.delivery-car-title{display:block}.delivery-car-title span{max-width:none;text-align:left;margin-top:3px}}
@media(max-width:390px){.delivery-car-option .delivery-vehicle-image{width:82px;height:56px}}

/* v1.235.14 — inscription User : selfie direct et confirmation du mot de passe. */

/* v1.235.15 — position de disponibilité PRO, directement sous EN LIGNE. */
.availability-position-card{margin:10px 0 2px;padding:14px;border:1px solid color-mix(in srgb,var(--lamp) 58%,var(--line));border-radius:20px;background:color-mix(in srgb,var(--lamp) 6%,var(--card));box-shadow:0 10px 28px rgba(0,0,0,.12)}
.availability-position-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.availability-position-head>div{min-width:0}.availability-position-head small,.availability-position-head b{display:block}.availability-position-head small{font-size:9px;letter-spacing:.1em;color:var(--muted);font-weight:800}.availability-position-head b{margin-top:3px;font-size:15px;color:var(--text)}
.availability-refresh{flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid var(--lamp);border-radius:14px;background:#0b100c;color:var(--lamp);font-size:23px;line-height:1;box-shadow:none}
.availability-position-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.availability-position-choice{min-width:0;min-height:88px;padding:11px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-content:center}.availability-position-choice>span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--surface-2);color:var(--lamp);font-size:18px}.availability-position-choice b{font-size:12px;line-height:1.25}.availability-position-choice small{min-width:0;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.35;overflow-wrap:anywhere}.availability-position-choice.sel{border-color:var(--lamp);background:var(--lamp);color:#081006;box-shadow:0 7px 18px rgba(184,255,63,.13)}.availability-position-choice.sel>span{background:#10180b;color:var(--lamp)}.availability-position-choice.sel small{color:#273313}
.availability-delivery-note{margin-top:10px;padding:11px 12px;border-radius:14px;background:#0b100c;border:1px solid color-mix(in srgb,var(--lamp) 38%,var(--line))}.availability-delivery-note b,.availability-delivery-note small{display:block}.availability-delivery-note b{color:var(--lamp);font-size:12px}.availability-delivery-note small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}.availability-position-card>p{margin:10px 2px 0;color:var(--muted);font-size:10px;line-height:1.4}
@media(max-width:350px){.availability-position-choices{grid-template-columns:1fr}.availability-position-choice{min-height:70px}}
.registration-selfie-capture{min-height:58px;border:2px solid var(--okg);background:color-mix(in srgb,var(--surface) 91%,var(--okg) 9%);font-weight:800;text-align:center;cursor:pointer}.registration-selfie-capture.done{background:color-mix(in srgb,var(--okg) 18%,var(--surface));box-shadow:0 0 0 1px var(--okg)}.register-password-help.ok{color:var(--okg);font-weight:750}.register-password-help.ko{color:#ff8179;font-weight:750}#aGo:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}

/* v1.234.9 — grille Admin des minimums Livraison par région et grande ville. */
.delivery-pricing-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.delivery-pricing-input-grid label{display:grid;gap:6px;min-width:0;font-size:12px;font-weight:800}.delivery-pricing-input-grid small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.35}.delivery-pricing-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.delivery-pricing-rules>.card{margin:0}.delivery-pricing-inactive{opacity:.62}.delivery-pricing-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}.delivery-pricing-summary span{min-width:0;padding:8px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}.delivery-pricing-summary small,.delivery-pricing-summary b{display:block}.delivery-pricing-summary small{font-size:8px;color:var(--muted);letter-spacing:.06em}.delivery-pricing-summary b{font-size:12px;margin-top:3px;overflow-wrap:anywhere}@media(max-width:760px){.delivery-pricing-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.delivery-pricing-rules{grid-template-columns:1fr}}@media(max-width:390px){.delivery-pricing-input-grid{grid-template-columns:1fr}.delivery-pricing-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Districts et villes: administration compacte sur téléphone et ordinateur. */
.launch-district-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.launch-district-grid .card{margin:0;min-width:0}.launch-city-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.launch-city-choice{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--line,#374151);border-radius:14px;cursor:pointer;min-width:0}.launch-city-choice:has(input:checked){border-color:#aaf234;background:rgba(170,242,52,.12)}.launch-city-choice input,.launch-kpis input{width:auto;flex-shrink:0}.launch-city-choice span{min-width:0;overflow-wrap:anywhere}.launch-city-choice small{display:block;opacity:.65;font-size:12px}.launch-kpis{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.launch-kpis span{border:1px solid var(--line,#374151);border-radius:12px;padding:12px}.launch-kpis b{font-size:22px;margin-right:6px}#pricingDistrictFilter{min-width:180px;flex:1}#launchDistrictEditor .row{flex-wrap:wrap}
#launchDistrictEditor{background:var(--surface);border-color:var(--line-strong)}#launchDistrictEditor>.row{display:flex;align-items:center;gap:12px}#launchDistrictEditor>.row h2{flex:1;min-width:0;font-size:22px;line-height:1.3}#launchCloseEditor{flex:0 0 auto;width:auto;min-height:40px;padding:9px 14px}.launch-city-choice input{width:18px;height:18px;accent-color:var(--green)}#launchDistrictAll,#launchDistrictOther,#launchEnabled{accent-color:var(--green)}#launchDistrictSave,#launchSettingsSave{background:var(--green);color:var(--ink)}
@media(max-width:720px){.launch-district-grid{grid-template-columns:1fr}.launch-city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-city-choice{padding:10px;font-size:13px}.launch-district-grid .row{flex-wrap:wrap}.launch-kpis{gap:8px}.launch-kpis span{padding:9px;font-size:12px}}

/* Cartographies des zones : outils indépendants des boutons d'activation. */
.admin-console .launch-geography{margin-top:20px;min-width:0}
.admin-console .launch-geography h2,.admin-console .launch-geography h3{text-align:left}
.admin-console .launch-geo-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;align-items:center}
.admin-console .launch-geo-toolbar input{flex:1 1 220px;min-width:0}
.admin-console .launch-geo-toolbar button{flex:0 1 auto;width:auto;white-space:normal}
.admin-console .launch-geo-map{height:340px;border:1px solid var(--line-strong);border-radius:16px;overflow:hidden;display:grid;place-items:center;background:var(--surface-2);position:relative;z-index:0}
.admin-console .launch-geo-list{max-height:360px;overflow:auto;overscroll-behavior:contain}
.admin-console .launch-geo-list article{display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0}
.admin-console .launch-geo-list article>div{flex:1;min-width:0;overflow-wrap:anywhere}
.admin-console .launch-geo-list small{display:block;color:var(--muted)}
.admin-console .launch-geo-list a{flex:0 0 auto;width:auto;text-decoration:none}
.admin-console .launch-geo-warning{border-color:#b78012;background:rgba(183,128,18,.08);text-align:left}
.admin-console #launchGeoFileName{display:block;overflow-wrap:anywhere}
@media(max-width:480px){.admin-console .launch-geo-map{height:280px}.admin-console .launch-geo-toolbar{align-items:stretch}.admin-console .launch-geo-toolbar input{flex-basis:100%}.admin-console .launch-geo-list article{gap:6px}.admin-console .launch-geo-list a{padding:6px;font-size:12px}}
/* Restaurant : menu partagé inscription / profil, sans impact sur les autres activités. */
.restaurant-menu-editor{min-width:0}.restaurant-menu-dish{padding:16px;margin:12px 0;background:var(--surface);border:1px solid var(--line);border-radius:16px}.restaurant-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.restaurant-menu-dish .lbl{display:block}.restaurant-menu-dish input:not([type=checkbox]){display:block;width:100%;min-width:0;font-size:16px}.restaurant-menu-availability{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:14px;line-height:1.4}.restaurant-menu-availability input,.restaurant-menu-checks input{width:20px;height:20px;flex:0 0 20px;accent-color:var(--okg)}.restaurant-menu-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.restaurant-menu-checks label{display:flex;align-items:center;gap:8px;font-size:14px;min-width:0}.restaurant-menu-empty{padding:16px;border:1px dashed var(--line);border-radius:14px;margin-bottom:12px;color:var(--mute)}.restaurant-menu-exclusions{margin:18px 0}.restaurant-menu-exclusions summary{cursor:pointer;font-weight:600}.restaurant-menu-error{padding:12px;background:rgba(230,70,70,.13);border:1px solid rgba(230,70,70,.45);border-radius:12px;color:var(--ink);margin:12px 0}.restaurant-menu-editor .btn{white-space:normal;line-height:1.35}.restaurant-menu-editor .chip{white-space:normal}.restaurant-menu-availability:has(input:checked){color:var(--okg)}
.restaurant-entry-options{display:grid;grid-template-columns:1fr;gap:10px;margin:10px 0 16px}.restaurant-entry-options .restaurant-choice{display:flex;flex-direction:column;align-items:flex-start;white-space:normal;text-align:left;gap:5px;padding:15px}.restaurant-entry-options .restaurant-choice span{font-size:16px;line-height:1.3}.restaurant-entry-options .restaurant-choice small{font-size:13px;line-height:1.4}.restaurant-dish-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.restaurant-dish-suggestions button{max-width:100%;white-space:normal;text-align:left}.restaurant-dish-suggestions button small{display:block;font-size:12px}.restaurant-payment-panel{margin:14px 0;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);min-width:0;overflow-wrap:anywhere}.restaurant-payment-panel p{font-size:14px;line-height:1.55;margin:10px 0}.restaurant-payment-panel input:not([type=checkbox]),.restaurant-payment-panel select{font-size:16px;box-sizing:border-box;width:100%;min-width:0}.restaurant-payment-panel .btn{max-width:100%;white-space:normal;line-height:1.35;margin-top:12px}.restaurant-payment-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.restaurant-payment-heading span{font-size:12px;font-weight:800;letter-spacing:.04em}.restaurant-payment-heading strong{font-size:20px}.restaurant-invoice-lines{margin:12px 0}.restaurant-invoice-lines>div{display:flex;justify-content:space-between;gap:12px;margin:8px 0;align-items:flex-start;font-size:13px}.restaurant-invoice-lines>div span{flex:1;min-width:0}.restaurant-invoice-lines strong{flex-shrink:0}.restaurant-delivery-separate{font-size:13px;line-height:1.5;border-top:1px solid var(--line);padding-top:12px;margin-top:15px}.restaurant-preparation-shortcuts{display:flex;gap:8px;flex-wrap:wrap}.restaurant-payment-panel [data-meal-error]{margin-top:10px}.restaurant-menu-adaptations{padding:10px 0}.restaurant-menu-adaptations summary{font-size:14px;font-weight:600}@media(min-width:700px){.restaurant-entry-options{grid-template-columns:1fr 1fr}}

/* Minimum restaurant : deux montants distincts, lisibles sur téléphone. */
.restaurant-minimum-card{margin:16px 0;padding:16px;border:1px solid #90b43f;border-radius:18px;background:var(--surface);color:var(--ink);text-align:left;overflow-wrap:break-word}
.restaurant-minimum-card> b{display:block;font-size:clamp(15px,3.8vw,19px)}
.restaurant-minimum-card dl{margin:12px 0}.restaurant-minimum-card dl>div{display:flex;justify-content:space-between;gap:12px;margin:8px 0;flex-wrap:wrap}
.restaurant-minimum-card dt{flex:1;min-width:130px}.restaurant-minimum-card dd{margin:0;font-weight:700;white-space:nowrap}.restaurant-minimum-card p{font-size:13px;line-height:1.5;margin:8px 0 0}

/* Restaurant : étapes groupées et limite de livraison lisible sur petits écrans. */
.restaurant-location-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.restaurant-location-tabs .chip{flex:1;min-width:120px;text-align:center}
.restaurant-optional-name{margin:16px 0}.restaurant-optional-name summary{font-weight:700;cursor:pointer}.restaurant-optional-name summary span{font-weight:400}
.restaurant-delivery-limit,.restaurant-delivery-policy{padding:14px;margin:12px 0;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);color:var(--ink);overflow-wrap:break-word}
.restaurant-delivery-totals>div{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:7px 0}.restaurant-delivery-totals b{white-space:nowrap}
.restaurant-limit-consent{display:flex;align-items:flex-start;gap:10px;line-height:1.5;margin:12px 0}.restaurant-limit-consent input{width:20px!important;height:20px;flex:0 0 20px;margin-top:2px}
.restaurant-resolution-actions{display:grid;gap:8px}.restaurant-flow-step{max-width:640px;margin:12px auto;padding:0 16px;text-align:center}
.restaurant-delivery-limit input[type=number]{width:100%;min-width:0}.restaurant-delivery-policy .btn{white-space:normal;overflow-wrap:normal;line-height:1.4}
@media(min-width:900px){.restaurant-step-order,.restaurant-fast[data-restaurant-fast="restaurantJourneyPrefs"]{max-width:640px}.restaurant-delivery-totals>div{flex-wrap:nowrap}}

.delivery-courier-art{display:block;width:64px;height:48px;max-width:100%;object-fit:contain;margin:0 auto 5px;border-radius:10px}.shopping-errand-buy{display:flex;gap:10px;align-items:center;margin:16px 0}.shopping-errand-buy input{width:20px;height:20px;flex:0 0 20px}.shopping-errand-review{white-space:pre-wrap;overflow-wrap:anywhere}

/* Gestion des activités ouverte à tous les comptes PRO. */
.pro-manage-trades{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 10px;text-align:left;white-space:normal;font-size:clamp(15px,4vw,18px);line-height:1.35;padding:16px 18px;min-height:56px}.pro-manage-trades>span:first-child{min-width:0;overflow-wrap:normal;word-break:normal}.pro-manage-trades>span:last-child{font-size:26px;flex-shrink:0}

/* Two equally visible location choices, including narrow phones. */
.location-mode-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.location-mode-choices.location-mode-single{grid-template-columns:minmax(0,1fr)}.location-mode-choices .chip{width:100%;min-width:0;min-height:48px;white-space:normal;padding:10px 8px;line-height:1.35}.location-mode-choices .chip.sel{background:#b7f34a;color:#122008;border-color:#b7f34a}.location-naming{display:block;margin:6px 0;font-size:12px;opacity:.8}

/* Compact selection tools in Admin > Demandes. */
.admin-console .admin-order-bulk{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;margin:12px 0}
.admin-console .admin-order-bulk-toolbar,.admin-console .admin-order-bulk-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.admin-console .admin-order-bulk-toolbar>strong{font-size:13px}.admin-console .admin-order-bulk-actions{margin-left:auto}
.admin-console .admin-order-check{display:inline-flex;align-items:center;gap:9px;min-height:44px;cursor:pointer;margin:0;padding:4px 6px;border-radius:8px;max-width:100%}
.admin-console .admin-order-check input{width:21px;height:21px;min-width:21px;margin:0;accent-color:var(--accent)}
.admin-console .admin-order-check small{display:block;color:var(--mute);font-size:11px}.admin-console .admin-order-check:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.admin-console .admin-order-row.is-selected{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent);padding-left:10px;padding-right:10px;border-radius:10px}
.admin-console .admin-order-bulk-actions .chip,.admin-console .admin-order-bulk-actions .btn{min-height:44px;width:auto;margin:0;white-space:normal}
.admin-console #oDeleteSelected{background:#a32330;color:#fff;border:1px solid #a32330;font-weight:700}
.admin-console #oDeleteSelected:disabled{opacity:.5;cursor:not-allowed}.admin-console #oBulkProgress{margin:10px 0 0;font-size:13px}
.admin-console .admin-order-bulk-result{margin-top:10px;padding:10px;border-radius:10px;background:var(--accent-soft);overflow-wrap:anywhere}
.admin-console .admin-order-bulk-result p{margin:0}.admin-console .admin-order-bulk-result.has-errors{background:#fff2e5;color:#653900}.admin-console .admin-order-bulk-result details{margin-top:8px}.admin-console .admin-order-bulk-result ul{padding-left:20px}
@media(max-width:600px){.admin-console .admin-order-bulk-actions{width:100%;margin-left:0;display:grid;grid-template-columns:1fr 1fr}.admin-console .admin-order-bulk-actions>*{min-width:0}.admin-console .admin-order-title{align-items:center}.admin-console .admin-order-row{flex-wrap:wrap}.admin-console .admin-order-main{flex-basis:100%}.admin-console .admin-order-actions{flex:1 1 100%;justify-content:flex-start}}

/* Direct status groups in Admin > Demandes. */
.lodging-offer-details{margin:12px 0;border:1px solid var(--line);border-radius:12px;background:rgba(166,204,99,.08);text-align:left}
.lodging-offer-details summary{padding:12px 14px;min-height:44px;cursor:pointer;font-weight:600}
.lodging-offer-details ul{padding:0 18px 14px 34px;margin:0;line-height:1.65;overflow-wrap:anywhere}
.admin-console .reliability-config summary{cursor:pointer;min-height:48px;padding:8px 0}.admin-console .reliability-config summary small{display:block;color:var(--mute);margin:6px 0}
.admin-console .reliability-check{display:flex;align-items:center;gap:10px;margin:15px 0}.admin-console .reliability-check input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--accent)}
.admin-console .reliability-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-console .reliability-fields label{display:flex;flex-direction:column;gap:6px}.admin-console .reliability-fields input{min-width:0}
.admin-console .reliability-search-actions{display:flex;gap:8px;margin-top:12px}.admin-console .reliability-search-actions>*{flex:1;min-width:0;margin:0}
.admin-console .reliability-account{overflow-wrap:anywhere}.admin-console .reliability-account h3{margin:0}.admin-console .reliability-account summary{cursor:pointer;padding:12px 0;min-height:44px}.admin-console .reliability-account textarea{width:100%;margin-top:8px;min-height:100px}.admin-console .reliability-account [data-rel-reset]{border-top:1px solid var(--line)}
.admin-console .reliability-event{padding:12px 0;border-top:1px solid var(--line)}.admin-console .reliability-event p{margin:6px 0}.admin-console .reliability-account [role=status],.admin-console [data-rel-policy-result]{white-space:pre-wrap}
@media(max-width:600px){.admin-console .reliability-fields{grid-template-columns:1fr}}
.admin-console .admin-order-status-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.admin-console .admin-order-status-tabs .chip{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;min-width:0;padding:10px 12px;border-radius:12px;white-space:normal;text-align:left}
.admin-console .admin-order-status-tabs .chip b{flex:0 0 auto;min-width:24px;padding:2px 6px;border-radius:20px;background:rgba(0,0,0,.07);font-size:12px;text-align:center}
.admin-console .admin-order-status-tabs .chip.sel{background:#ddedc4;color:#20330f;border-color:#668c39;box-shadow:inset 0 0 0 1px #668c39;font-weight:700}
.admin-console .admin-order-status-tabs .chip:focus-visible{outline:2px solid #406419;outline-offset:2px}
.admin-console .admin-order-status-tabs .chip:disabled{opacity:.55;cursor:wait}
@media(max-width:600px){.admin-console .admin-order-status-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Request forms occupy their own screen; the map is an explicit secondary view. */
.fast-request-screen:not(.min){background:var(--surface)}
.fast-request-screen:not(.min)>.mapwrap{visibility:hidden;pointer-events:none}
.fast-request-screen:not(.min) .msheet{inset:52px 0 0;width:100%;height:calc(100% - 52px);max-height:calc(100% - 52px);border:0;border-radius:0;box-shadow:none;transition:none}
.fast-request-screen:not(.min) .mhead,.fast-request-screen:not(.min) .mbody{width:100%;max-width:760px;box-sizing:border-box;margin:0 auto}
.fast-request-screen .mhandle{min-height:34px;height:34px;font:inherit;font-size:13px;color:var(--okchap-green,#b7f34a)}
.fast-request-screen:not(.min) .mapbtns,.fast-request-screen:not(.min) .mapcredits{display:none}
.fast-request-screen.choose-place{border:0;border-radius:0}
.category-entry{padding-top:8px}.category-entry .home-path-selected{display:none}
.category-entry .home-path-choice{margin-top:16px}.category-entry #requestBonusHost{margin-top:16px}
/* Choix du lieu : même panneau vert lisible pour Logements et Supermarchés. */
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice{background:#e4f5b8;border:1px solid #a0c65b;color:#16230a}
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice .tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice .tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:104px;padding:12px 8px;border:1px solid #91ad58;border-radius:12px;background:#edf8d2;color:#16230a;font-size:15px;font-weight:600;line-height:1.3;text-align:center;white-space:normal}
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice .tile.on{background:#b7f34a;border-color:#62842c}
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice .tile svg{width:32px;height:32px;flex:none;color:inherit}
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice .home-click-cue{display:none}
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice .tile:focus-visible{outline:3px solid #16230a;outline-offset:2px}
body:not(.admin-console):not(.pro-app) .category-entry .home-path-choice .tile:active{background:#c9ee87}
.push-reminder{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 36px 10px 12px;margin:6px auto 14px;border:1px solid var(--line);border-radius:12px;font-size:13px;background:var(--surface-2)}
.push-reminder[hidden]{display:none}.push-reminder .linklike{font-size:13px;margin:0}.push-reminder-close{position:absolute;right:2px;top:2px;min-width:32px;min-height:32px;border:0;background:transparent;color:inherit;font-size:22px}
.push-sound-setting{display:block;margin:14px 0}.push-sound-setting select{margin-top:6px}

.delivery-description-hint{display:block;color:var(--text);font-size:12px;line-height:1.5;margin:0 0 8px}.delivery-journey #deliveryFormError{margin:8px 0 12px}.delivery-journey [aria-invalid="true"]{outline:2px solid var(--danger);outline-offset:2px}

/* Restaurant establishment choices: compact, explicit and legible in either theme. */
.restaurant-type-picker{min-width:0;border:0;padding:0;margin:20px 0}.restaurant-type-picker legend{display:block;max-width:100%;padding:0;font-weight:700;font-size:clamp(12px,3.8vw,17px);line-height:1.4;margin-bottom:12px;text-align:left;white-space:nowrap;text-wrap:nowrap}.restaurant-question-tail{white-space:nowrap}.home-service[data-home-service="restaurant"] b{white-space:normal;line-height:1.2}.restos-label-tail{white-space:nowrap}.restaurant-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.restaurant-type-grid .chip{width:100%;min-width:0;min-height:48px;white-space:normal;padding:12px 10px;font-size:15px;line-height:1.3}.restaurant-type-grid .chip.sel{background:#c2f63a;color:#12210e;border-color:#84ab24}.restaurant-type-grid .chip:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.restaurant-description-examples{font-size:14px;line-height:1.55;margin:8px 0 18px}.restaurant-description-examples summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.restaurant-description-examples p{margin:10px 0;color:var(--ink)}.restaurant-description-examples small{display:block;color:var(--mute)}#restaurantRequestFields[hidden]{display:none!important}

.restaurant-drinks{margin:18px 0;padding:0;border:0;min-width:0}.restaurant-drinks legend{margin-bottom:10px;font-weight:700}.restaurant-outing small{font-weight:400}.restaurant-outing input,.restaurant-outing select,.restaurant-outing textarea{max-width:100%;box-sizing:border-box}

.restaurant-drinks .restaurant-pref-chips{display:flex;flex-wrap:wrap;overflow:visible;gap:8px}.restaurant-drinks .chip{white-space:normal}

.restaurant-mode.restaurant-guided-only{display:grid;grid-template-columns:minmax(0,1fr);width:100%;overflow:visible}.restaurant-guided-only .chip{width:100%;box-sizing:border-box;cursor:default}.restaurant-guided-only .chip:active{transform:none}

/* Compact fields grow with the text; quantities never squeeze dish names. */
.restaurant-fast .restaurant-textarea{display:block;width:100%;min-width:0;max-width:100%;min-height:52px;box-sizing:border-box;margin:0;padding:12px 14px;font-size:16px;line-height:1.5;resize:vertical;field-sizing:content;overflow-wrap:anywhere;color:var(--ink);background:var(--surface)}
.restaurant-fast .restaurant-item{grid-template-columns:minmax(0,1fr) 44px;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}
.restaurant-item>.restaurant-textarea{grid-column:1/-1}
.restaurant-item>label{justify-self:start;grid-template-columns:auto 72px;font-size:14px;gap:8px}
.restaurant-item>button{justify-self:end;width:44px;height:44px}
.restaurant-item input{font-size:16px}
.restaurant-outing .restaurant-label small,.restaurant-fast .restaurant-label small{font-weight:400;text-transform:none}

/* Source: pro.css */
/* ============================================================
   OKCHAP PRO — thème sombre (chargé après style.css, uniquement par /rooms/gerant/)
   Fond noir bleuté profond · vert okchap réservé aux actions et statuts positifs
   · blanc pour le texte · gris doux pour le secondaire · coins très arrondis.
   ============================================================ */
:root{
  /* Surface system PRO : toute surface interactive part de ces tokens, jamais d'une image. */
  --pro-bg:#0B0F14;--pro-surface:#141A21;--pro-surface-elevated:#1C232C;--pro-border:#2F3944;
  --pro-text:#FFFFFF;--pro-text-muted:#8A94A0;--okchap-green:#B7F34A;
  --okg:var(--okchap-green);--okg-hover:#A9E83A;--okg-soft:rgba(183,243,74,.12);--okg-line:rgba(183,243,74,.45);
  --bg:var(--pro-bg);--surface:var(--pro-surface);--surface-2:var(--pro-surface-elevated);--line:#232B35;--line-strong:var(--pro-border);
  --ink:var(--pro-text);--ink-2:#C9D0D8;--mute:var(--pro-text-muted);
  --accent:var(--okg);--accent-ink:var(--okg);--accent-soft:var(--okg-soft);
  --brand:var(--okg);--lamp:var(--okg);
  --warn:#F2C14E;--warn-soft:rgba(242,193,78,.14);
  --danger:#FF6B6B;--danger-soft:rgba(255,107,107,.14);
  --radius:18px;--radius-s:12px;--shadow:0 6px 24px rgba(0,0,0,.35);
}
html,body,button,input,select,textarea{font-family:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif}
html,body{background:var(--bg);color:var(--ink)}
.app{background:var(--bg)}
.body{padding-bottom:calc(env(safe-area-inset-bottom) + 84px)}
h1{font-weight:700;font-size:24px;letter-spacing:-.02em}
h1 em{color:var(--okg)}
.sub{color:var(--mute)}
.sec{color:var(--mute);letter-spacing:.08em}
/* Le style commun dessine une flèche SVG dans tous les <select>. Cette image était le motif
   clair vu dans PRO. Ici, chaque champ revient à une surface sombre unie et le navigateur garde
   seulement ses indicateurs natifs accessibles (date, heure, liste), adaptés au thème sombre. */
select,input,textarea{background:var(--pro-surface)!important;background-image:none!important;border:1px solid var(--pro-border);border-radius:var(--radius-s);color:var(--pro-text);box-shadow:none;color-scheme:dark}
select{appearance:auto;-webkit-appearance:menulist;padding-right:14px}
input[type="date"],input[type="time"]{color-scheme:dark;background-image:none!important}
select option{background:var(--pro-surface-elevated);color:var(--pro-text)}
select:focus,input:focus,textarea:focus{border-color:var(--okchap-green);box-shadow:0 0 0 3px var(--okg-soft);outline:none}
input:disabled,select:disabled,textarea:disabled{background:var(--pro-surface-elevated)!important;color:var(--pro-text-muted);opacity:.62}
input::file-selector-button{background:var(--pro-surface-elevated);border:1px solid var(--pro-border);border-radius:8px;color:var(--pro-text);font:inherit;padding:7px 10px;margin-right:10px}
::placeholder{color:var(--mute)}
label.lbl{color:var(--mute)}
.card{background:var(--surface);border-color:var(--line);border-radius:var(--radius)}
.card.hl,.card.ok{background:var(--okg-soft);border-color:var(--okg-line)}
.card.dashed{background:transparent;border-color:var(--line-strong);color:var(--ink-2)}
.chip{background:var(--surface);border-color:var(--line-strong);color:var(--ink-2)}
.chip.sel{background:var(--okg);border-color:var(--okg);color:#111}
.pill{background:var(--surface);border-color:var(--line-strong);color:var(--ink-2)}
.pill.on{background:var(--okg);border-color:var(--okg);color:#111}
.pill.off{background:var(--surface-2);color:var(--mute)}
.btn{height:52px;border-radius:16px;font-weight:600}
.btn.lamp,.btn.brand,.btn.ok{background:var(--okg);color:#111}
.btn.lamp:hover,.btn.brand:hover,.btn.ok:hover{background:var(--okg-hover)}
.btn.ghost{background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink)}
.btn.danger{background:var(--danger-soft);color:var(--danger)}
.btn.neutral{background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink-2)}
.btn:disabled{opacity:.45}
.back{color:var(--mute)}
.note{color:var(--mute)}
.err{background:var(--danger-soft);color:var(--danger)}
.empty{color:var(--mute);border-color:var(--line-strong)}.empty b{color:var(--ink)}
.status.on,.status.ok{color:var(--okg)}.status.on::before,.status.ok::before{background:var(--okg)}
.status.off{color:var(--mute)}
.fact{background:var(--surface-2);border-radius:var(--radius-s)}.fact small{color:var(--mute)}
.avatar{background:var(--surface-2);color:var(--okg)}
.list-item{border-color:var(--line)}
.tag{background:var(--surface-2);color:var(--ink-2)}.tag.ok{background:var(--okg-soft);color:var(--okg)}.tag.ko{background:var(--danger-soft);color:var(--danger)}.tag.wait{background:var(--warn-soft);color:var(--warn)}
.toast{background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong)}
.notif{background:var(--surface);border:1px solid var(--okg-line);color:var(--ink)}
.stars,.rate-stars button.on{color:var(--okg)}
.thumb-img{border-color:var(--line-strong)}
.top{border-bottom:0;padding-bottom:4px}

/* ---------- Notation PRO → Client ---------- */
.pro-rate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pro-rate-control{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0;min-height:64px;padding:9px 30px 9px 10px;background:var(--pro-surface);border:1px solid var(--pro-border);border-radius:var(--radius-s);color:var(--pro-text);transition:border-color .15s,background .15s}
.pro-rate-control > span{font-size:12px;font-weight:700;line-height:1.15;color:var(--pro-text);overflow-wrap:anywhere}
.pro-rate-control select{height:28px;min-height:28px;padding:0;border:0;border-radius:0;background:transparent!important;color:var(--pro-text-muted);font-size:12px;box-shadow:none!important}
.pro-rate-control.is-set{background:var(--pro-surface-elevated);border-color:var(--okchap-green)}
.pro-rate-control.is-set > span,.pro-rate-control.is-set select{color:var(--pro-text)}
.pro-rate-control.is-set::after{content:"✓";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--okchap-green);color:#111;font-size:12px;font-weight:800}
.pro-rate-control:focus-within{border-color:var(--okchap-green);box-shadow:0 0 0 3px var(--okg-soft)}

/* ---------- Header PRO ---------- */
.top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;position:relative;z-index:2}
.logo{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:700;letter-spacing:-.03em;color:#fff}
.logo.brand-adaptive{background:var(--pro-bg);box-shadow:none}
.logo.brand-adaptive#homeLogo{cursor:pointer;display:flex;align-items:center;max-width:173px;min-width:0;background:transparent;border:0;box-shadow:none}
.pro-brand-word{display:flex;align-items:center;width:173px;height:65px;max-width:173px;overflow:visible;background:transparent;line-height:1}
.pro-brand-word>img{display:block;flex:0 0 63px;width:63px;height:63px;max-width:63px;object-fit:contain;background:transparent}
.pro-brand-copy{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-start;margin-left:-2.5px;background:transparent}
.pro-brand-copy>strong{font:800 31px/.82 Poppins,system-ui,sans-serif;letter-spacing:-1.5px;white-space:nowrap;color:#fff}
.pro-brand-copy>strong .pro-brand-chap{color:#fff}.pro-brand-copy>strong em{font:800 9.4px/1 Poppins,system-ui,sans-serif;letter-spacing:.04em;font-style:normal;color:var(--okchap-green)}
.pro-brand-tagline{margin-top:7px;font:700 8.1px/1 Poppins,system-ui,sans-serif;letter-spacing:-.085px;white-space:nowrap;color:#fff}
.pro-brand-tagline span{color:#fff}.pro-brand-tagline b{color:var(--okchap-green);font:inherit}
@media(max-width:600px){.top{flex-wrap:nowrap;justify-content:space-between}.logo.brand-adaptive#homeLogo{flex:0 0 auto;justify-content:flex-start}.top-actions{width:auto;justify-content:flex-end;gap:5px}.pro-brand-word{width:173px;max-width:173px}}
@media(max-width:600px){.bell,.pro-gift-badge{width:44px;height:44px;min-width:44px}}
@media(max-width:359px){.top{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:3px}.logo.brand-adaptive#homeLogo{width:115px;max-width:115px;overflow:hidden}.pro-brand-word{flex:0 0 173px;transform:scale(.665);transform-origin:left center}.top-actions{gap:2px}}
.logo .mark{width:26px;height:26px}
.logo .ok{color:var(--okg)}
.logo .pro{font-size:11px;font-weight:700;letter-spacing:.12em;color:#111;background:var(--okg);border-radius:6px;padding:2px 6px;margin-left:2px}
.bell{position:relative;width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2)}
.bell svg{width:20px;height:20px}
.bell .dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:var(--okg);display:none}
.bell.ring{animation:bell .8s ease-in-out infinite}.bell.ring .dot{display:block}
.top-actions #bell{order:1;margin-inline-start:-3px}.pro-gift-badge{order:2;position:relative;flex:0 0 40px;width:40px;height:40px;min-width:40px;padding:0;border-radius:50%;border:1px solid var(--okchap-green);background:var(--pro-surface);display:grid;place-items:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 12px rgba(0,0,0,.22);transition:transform .15s,box-shadow .15s}.pro-gift-badge[hidden]{display:none!important}.pro-gift-badge:active{transform:scale(.93)}.pro-gift-badge:focus-visible{outline:2px solid #fff;outline-offset:2px}.pro-gift-badge svg{width:22px;height:22px;overflow:visible}.pro-gift-badge .gift-bag{fill:#ef233c}.pro-gift-badge .gift-ribbon,.pro-gift-badge .gift-bow{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pro-gift-badge.has-new{animation:pro-gift-pulse 1.25s ease-in-out infinite}.pro-gift-dot{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:9px;background:var(--okchap-green);color:#050706;font-size:11px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 3px var(--pro-bg)}.pro-gift-dot[hidden]{display:none!important}.pro-profile-trigger{order:3}@keyframes pro-gift-pulse{0%,100%{box-shadow:0 4px 12px rgba(0,0,0,.22),0 0 0 0 rgba(183,243,74,.38)}50%{box-shadow:0 4px 12px rgba(0,0,0,.22),0 0 0 7px rgba(183,243,74,0)}}
.pro-profile-trigger{width:44px;height:44px;min-width:44px;padding:0;border-radius:50%;background:var(--okchap-green);border:2px solid transparent;color:#111;font-weight:800;font-size:14px;display:grid;place-items:center;position:relative;z-index:2;pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.pro-profile-trigger::after{content:"";position:absolute;right:1px;bottom:1px;width:9px;height:9px;border-radius:50%;background:#1fce72;border:2px solid var(--pro-bg);pointer-events:none}.pro-profile-trigger:active{transform:scale(.96)}.pro-profile-trigger:focus-visible{outline:2px solid #fff;outline-offset:2px}
@keyframes bell{0%,100%{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}

/* ---------- Accueil ---------- */
.hello{font-size:22px;font-weight:700;letter-spacing:-.02em;margin-top:8px}
.ready{color:var(--mute);font-size:13.5px;margin-top:2px}
.online{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-top:14px}
.online-toggle{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;appearance:none;-webkit-appearance:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.online-toggle:active{transform:scale(.992);border-color:var(--okg)}
.online-toggle:focus-visible{outline:2px solid var(--okg);outline-offset:2px}
.online-toggle:disabled{cursor:wait;opacity:.72}
.online b{display:flex;align-items:center;gap:8px;font-size:15px}
.online b::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--mute)}
.online.on b::before{background:var(--okg);box-shadow:0 0 0 4px var(--okg-soft)}
.online small{display:block;color:var(--mute);font-size:12px;margin-top:2px}
/* Carte « alertes en arrière-plan » (push) : même gabarit que le statut, pastille orange tant que
   les alertes ne sont pas actives, verte ensuite. */
.pushcard b::before{background:#F5A623}
.pushcard.on b::before{background:var(--okg);box-shadow:0 0 0 4px var(--okg-soft)}
.pushcard .acts{flex:0 0 auto}
.pushcard .acts .btn{width:auto;min-width:88px}
.tog{background:var(--line-strong)}.tog.on{background:var(--okg)}.tog::after{background:#fff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 6px;text-align:center}
.stat b{display:block;font-size:18px;font-weight:700}.stat small{font-size:10.5px;color:var(--mute);letter-spacing:.02em}
.stat.on b{color:var(--okg)}
.offline{background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:22px 16px;text-align:center;margin-top:14px}
.offline b{display:block;font-size:16px}.offline p{color:var(--mute);font-size:13px;margin:6px 0 12px}

/* ---------- Nouvelle commande ---------- */
.order{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:18px 16px 16px;margin-top:12px;position:relative;transition:transform .25s,opacity .25s}
.order.new{border-color:var(--okg-line);animation:cardin .3s ease-out,pulse 1.6s ease-in-out .3s infinite}
.order.out{transform:translateX(110%);opacity:0}
.order .kicker{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--okg)}
.order .kicker .cd{font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface-2);border-radius:999px;padding:4px 10px;letter-spacing:0;font-size:12px}
.order .cat{font-size:13px;font-weight:500;color:var(--mute);margin-top:10px}
.order h2{font-size:19px;font-weight:700;letter-spacing:-.01em;margin:2px 0 8px;line-height:1.25}
.order .line{display:flex;gap:8px;align-items:flex-start;color:var(--ink-2);font-size:13.5px;margin-top:6px}
.order .line span:first-child{width:18px;flex:0 0 auto;text-align:center}
.order .kv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.order .kv div{background:var(--surface-2);border-radius:12px;padding:8px 10px}
.order .kv small{display:block;font-size:10.5px;color:var(--mute);letter-spacing:.04em;text-transform:uppercase}
.order .kv b{font-size:14px}
.order .desc{margin-top:12px;color:var(--ink-2);font-size:13.5px;line-height:1.45;border-left:2px solid var(--okg);padding-left:10px}
.order .actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin-top:16px}
.order .actions .btn{margin:0;height:54px;font-size:15px}
.order .actions .btn.lamp{font-weight:700}
@keyframes cardin{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(183,243,74,.0)}50%{box-shadow:0 0 0 6px rgba(183,243,74,.14)}}
.accepted-overlay{position:fixed;inset:0;background:rgba(11,15,20,.9);display:grid;place-items:center;z-index:80;text-align:center;animation:fade .2s}
.accepted-overlay .big{width:120px;height:120px;margin:0 auto 14px}
.accepted-overlay .big path{fill:none;stroke:var(--okg);stroke-width:14;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:120;stroke-dashoffset:120;animation:draw .5s .1s ease-out forwards}
.accepted-overlay .big circle{fill:none;stroke:#fff;stroke-width:12}
.accepted-overlay b{font-size:20px;display:block}.accepted-overlay small{color:var(--mute);font-size:13px}
@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{from{opacity:0}}

/* ---------- Commande en cours ---------- */
.stagebar{display:flex;gap:6px;margin:12px 0}
.stagebar span{flex:1;height:5px;border-radius:99px;background:var(--line-strong)}
.stagebar span.done{background:var(--okg)}
.stagelabel{display:flex;justify-content:space-between;font-size:11px;font-weight:600;color:var(--mute);letter-spacing:.04em}
.stagelabel .on{color:var(--okg)}
.client{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-top:12px}
.client .avatar{width:44px;height:44px;font-size:16px}
.guest-identity{position:relative;overflow:hidden;isolation:isolate;margin-top:12px;padding:15px;border:1px solid color-mix(in srgb,var(--okg) 66%,var(--line));border-radius:var(--radius);background:var(--surface);min-height:128px}
.guest-watermarks{position:absolute;inset:-28%;z-index:0;display:grid;grid-template-columns:repeat(2,minmax(270px,1fr));gap:18px 28px;transform:rotate(-22deg);opacity:.27;pointer-events:none;user-select:none;overflow:hidden}
.guest-watermarks span{color:var(--okg);font-size:10px;font-weight:900;white-space:nowrap;letter-spacing:.045em;text-shadow:0 1px 1px color-mix(in srgb,#000 58%,transparent)}
.guest-content{position:relative;z-index:1}.secure-title{color:var(--okg);font-size:11px;font-weight:800;letter-spacing:.07em;margin-bottom:8px}
.guest-watermark-banner{margin:0 0 10px;padding:7px 9px;border:1px dashed var(--okg);border-radius:9px;background:color-mix(in srgb,var(--surface) 84%,var(--okg));color:var(--ink);font-size:9px;font-weight:900;letter-spacing:.075em;text-align:center}
.guest-profile{display:flex;align-items:center;gap:11px;margin:0 0 10px;padding:9px;border:1px solid color-mix(in srgb,var(--okg) 48%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--surface-2) 91%,transparent)}
.guest-profile-media{position:relative;width:72px;height:72px;flex:0 0 72px;overflow:hidden;border:2px solid var(--okg);border-radius:16px;background:var(--surface-2)}.guest-profile-media>img,.guest-profile-media>.guest-avatar-fallback{display:grid;place-items:center;width:100%;height:100%;object-fit:cover;color:var(--okg);font-size:24px;font-weight:800}.guest-photo-mark{position:absolute;left:5px;right:5px;bottom:3px;padding:1px 3px;border-radius:4px;background:rgba(0,0,0,.62);color:var(--okg);font-size:5.5px;font-weight:900;line-height:1.2;letter-spacing:.02em;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.guest-profile-info{display:grid;gap:3px;min-width:0}.guest-profile b{overflow-wrap:anywhere}.guest-profile small{color:var(--ink);font-weight:750}.guest-profile em{color:var(--mute);font-size:10px;font-style:normal}
.guest-register-locked,.guest-register-unlocked{display:flex;align-items:flex-start;gap:9px;margin:0 0 10px;padding:10px;border-radius:11px;border:1px dashed color-mix(in srgb,var(--okg) 58%,var(--line));background:color-mix(in srgb,var(--surface-2) 93%,transparent)}.guest-register-locked>span{font-size:18px}.guest-register-locked b{display:block;font-size:12px}.guest-register-locked small{display:block;margin-top:2px;color:var(--mute);font-size:11px;line-height:1.4}.guest-register-unlocked{display:block;border-style:solid;background:color-mix(in srgb,var(--okg) 13%,var(--surface));color:var(--ink);font-size:11px;font-weight:850;text-align:center}
.guest-identity dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 9px}.guest-identity dl div{min-width:0;padding:8px;border:1px solid color-mix(in srgb,var(--okg) 16%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--surface-2) 94%,transparent)}
.guest-identity dt{color:var(--mute);font-size:10px;text-transform:uppercase}.guest-identity dd{margin:3px 0 0;font-size:13px;font-weight:750;overflow-wrap:anywhere}.guest-identity>small,.guest-content>small{color:var(--mute);display:block}
.guest-missing{color:var(--warn);font-weight:700}.guest-register-warning{margin:0 0 9px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--warn) 16%,var(--surface));color:var(--ink);font-size:12px;line-height:1.4}
.guest-identity-error{display:grid;gap:8px}.guest-identity-error .btn{margin:2px 0 0;min-height:44px}
.guest-identity-waiting{display:grid;align-content:center;gap:7px;min-height:112px;border-style:dashed}.guest-identity-waiting b{font-size:15px}.guest-identity-waiting small{line-height:1.45}
@media(max-width:359px){.guest-identity dl{grid-template-columns:1fr}.guest-identity{padding:12px}}
.client b{display:block;font-size:16px}.client small{color:var(--mute);font-size:12px}
.client .acts{display:flex;gap:8px;margin-left:auto}
.client .acts a,.client .acts button{width:42px;height:42px;border-radius:50%;background:var(--okg);color:#111;display:grid;place-items:center;text-decoration:none;position:relative}
.client .acts button{background:var(--surface-2);color:var(--ink)}
.client .acts .badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;border-radius:9px;background:var(--okg);color:#111;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.confirm{position:fixed;inset:0;background:rgba(11,15,20,.75);display:flex;align-items:flex-end;justify-content:center;z-index:70}
.confirm > div{background:var(--surface);border-radius:24px 24px 0 0;padding:22px 20px calc(env(safe-area-inset-bottom) + 20px);width:100%;max-width:560px}
.confirm b{font-size:17px;display:block}.confirm p{color:var(--mute);font-size:13.5px;margin:6px 0 14px}
.arrival-scan-video{display:block;width:100%;max-height:46dvh;object-fit:cover;border-radius:16px;background:#050706;border:1px solid var(--pro-border)}
.arrival-scan-diagnostic{display:flex;align-items:flex-start;gap:11px;margin:12px 0 15px;padding:12px;border:1px solid var(--pro-border);border-radius:14px;background:var(--pro-surface-elevated,var(--surface-2));color:var(--pro-text,var(--ink));text-align:left}.arrival-scan-diagnostic-icon{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(183,243,74,.14);color:var(--okchap-green);font-size:18px;font-weight:900}.arrival-scan-diagnostic b{font-size:13px;line-height:1.25}.arrival-scan-diagnostic small{display:block;margin-top:3px;color:var(--pro-text-muted,var(--mute));font-size:12px;line-height:1.4}.arrival-scan-diagnostic[data-state="checking"]{border-color:rgba(183,243,74,.75)}.arrival-scan-diagnostic[data-state="checking"] .arrival-scan-diagnostic-icon{animation:scanPulse .75s ease-in-out infinite}.arrival-scan-diagnostic[data-state="issue"]{border-color:rgba(255,190,82,.75);background:rgba(255,190,82,.08)}.arrival-scan-diagnostic[data-state="issue"] .arrival-scan-diagnostic-icon{background:rgba(255,190,82,.17);color:#ffbe52}.arrival-scan-diagnostic[data-state="error"]{border-color:rgba(238,103,99,.8);background:rgba(238,103,99,.09)}.arrival-scan-diagnostic[data-state="error"] .arrival-scan-diagnostic-icon{background:rgba(238,103,99,.17);color:#ff8985}.arrival-scan-diagnostic[data-state="success"]{border-color:rgba(183,243,74,.85);background:rgba(183,243,74,.1)}.arrival-scan-diagnostic[data-state="success"] .arrival-scan-diagnostic-icon{background:var(--okchap-green);color:#111}@keyframes scanPulse{50%{transform:scale(1.12);opacity:.72}}@media(prefers-reduced-motion:reduce){.arrival-scan-diagnostic[data-state="checking"] .arrival-scan-diagnostic-icon{animation:none}}

/* État final d'une commande : une signature visuelle Okchap, lisible comme statut et non comme
   un faux bouton. Le vert officiel reste un accent sur la surface sombre du PRO. */
.completion-card{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;gap:12px;margin-top:14px;padding:15px 16px;border:1px solid var(--okg-line);border-radius:18px;background:linear-gradient(112deg,rgba(183,243,74,.18),rgba(183,243,74,.07));text-align:left;color:var(--pro-text);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 10px 24px rgba(0,0,0,.16)}
.completion-card::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--okchap-green)}
.completion-card > :not(.completion-glow){position:relative;z-index:1}.completion-check{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--okchap-green);color:#101408;font-size:19px;font-weight:900;box-shadow:0 0 0 5px rgba(183,243,74,.12)}
.completion-card b{display:block;letter-spacing:.035em;font-size:14px;color:var(--pro-text)}.completion-card b+div{margin-top:2px;color:var(--pro-text-muted);font-size:12.5px;line-height:1.35}.completion-glow{position:absolute;z-index:0;right:-28px;top:-48px;width:130px;height:130px;border-radius:50%;background:rgba(183,243,74,.10);filter:blur(10px);pointer-events:none}

/* ---------- Listes ---------- */
.filters{display:flex;gap:8px;overflow:auto;padding-bottom:4px;margin-top:8px}
.filters .chip{flex:0 0 auto}
.pro-orders-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:8px 0 12px}.pro-orders-head h1{margin:0}.pro-orders-head p{margin:3px 0 0;color:var(--mute);font-size:12px}.pro-orders-head>strong{display:grid;place-items:center;min-width:42px;height:42px;border-radius:13px;background:var(--okg);color:#111;font-size:18px}.pro-order-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.pro-order-filters .chip{display:flex;justify-content:space-between;gap:6px;min-width:0}.pro-order-filters .chip b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:var(--surface-2);font-size:10px}.pro-order-filters .chip.sel b{background:#111;color:var(--okg)}
.oc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-top:10px;display:block;width:100%;text-align:left}
.oc .top-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--mute)}
.oc h3{font-size:15px;font-weight:600;margin:4px 0 2px}
.oc .where{font-size:12.5px;color:var(--ink-2)}
.oc .st{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--mute)}
.oc .st.on{color:var(--okg)}.oc .st.ko{color:var(--danger)}.oc .st.wait{color:var(--warn)}
.day{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--mute);margin:16px 0 4px}
.slotrow{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);width:100%;text-align:left}
.slotrow .t{font-weight:700;font-size:15px;width:52px;flex:0 0 auto;color:var(--okg)}
.slotrow b{display:block;font-size:14px}.slotrow small{color:var(--mute);font-size:12px}
.thread{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);width:100%;text-align:left}
.thread b{display:block;font-size:14.5px}.thread small{color:var(--mute);font-size:12px}
.msgs{display:flex;flex-direction:column;gap:8px;min-height:200px;max-height:55vh;overflow:auto;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.msg{max-width:82%;align-self:flex-start;background:var(--surface-2);border-radius:14px 14px 14px 4px;padding:8px 12px;font-size:14px}
.msg.me{align-self:flex-end;background:var(--okg);color:#111;border-radius:14px 14px 4px 14px}
.msg small{display:block;font-size:10px;opacity:.7;margin-top:2px;text-align:right}

/* ---------- Profil ---------- */
.profhead{display:flex;align-items:center;gap:14px;margin-top:8px}
.profhead .avatar{width:64px;height:64px;font-size:22px;background:var(--okg);color:#111}
.profhead b{display:block;font-size:18px}.profhead small{color:var(--mute)}
.verified{display:inline-flex;align-items:center;gap:6px;background:var(--okg-soft);color:var(--okg);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;margin-top:6px}
.pro-profile-section{overflow:hidden;margin-top:12px;border:1px solid var(--pro-border);border-radius:16px;background:var(--pro-surface);box-shadow:0 6px 18px rgba(0,0,0,.12)}
/* Supermarket tools: everyday actions first, advanced settings collapsed. */
.pro-store-catalog{display:grid;gap:12px;min-width:0}
.pro-catalog-intro{padding:12px;border-radius:14px;background:#dfedc4;color:#1a2710}
.pro-catalog-intro p{margin:6px 0 0;font-size:14px;line-height:1.45}
.pro-catalog-block{margin:0;min-width:0;border:1px solid var(--pro-border);border-radius:14px;background:var(--pro-surface-elevated);overflow:hidden}
section.pro-catalog-block{padding:12px}
.pro-catalog-block h3{margin:0 0 8px;font-size:16px}
.pro-catalog-block>summary,.pro-catalog-content details>summary{padding:14px;min-height:48px;font-weight:700;font-size:14px;line-height:1.4;cursor:pointer}
.pro-catalog-block[open]>summary{border-bottom:1px solid var(--pro-border);background:rgba(173,216,123,.09)}
.pro-catalog-content{display:grid;gap:10px;padding:12px;min-width:0}
.pro-catalog-content .card{margin:0;padding:0;background:transparent;border:0;box-shadow:none;min-width:0}
.pro-store-catalog .btn{min-height:46px;margin:0;padding:12px 14px;white-space:normal;line-height:1.35;font-size:14px;letter-spacing:0;text-transform:none}
.pro-catalog-grid,.pro-catalog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pro-store-catalog label{display:block;font-size:14px;line-height:1.4;min-width:0}
.pro-store-catalog input,.pro-store-catalog select{width:100%;min-width:0;max-width:100%;margin:6px 0 0;background:var(--pro-surface);color:var(--pro-text);-webkit-text-fill-color:var(--pro-text)}
.pro-store-catalog input[type=file]{font-size:12px;padding:10px}
.pro-store-catalog input[type=checkbox]{width:22px;height:22px;min-width:22px;margin:0;accent-color:var(--okchap-green)}
.pro-catalog-reception{display:grid;gap:8px}
.pro-catalog-reception>label{display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid var(--pro-border);border-radius:12px;padding:10px}
.pro-catalog-products{max-height:440px;overflow:auto;overscroll-behavior:contain}
.pro-catalog-product{display:grid;gap:12px;padding:12px 0;border-bottom:1px solid var(--pro-border);min-width:0}
.pro-catalog-product:last-child{border-bottom:0}
.pro-catalog-product b,.pro-catalog-product small,.pro-catalog-product strong{display:block;overflow-wrap:anywhere}
.pro-catalog-product small{margin:4px 0;color:var(--pro-text-muted)}
.pro-catalog-product strong{font-size:18px;margin:5px 0}
.pro-catalog-stock,.pro-catalog-pending{font-size:13px;color:var(--okchap-green)}
.pro-store-catalog .row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
@media(max-width:360px){.pro-catalog-grid,.pro-catalog-actions{grid-template-columns:minmax(0,1fr)}}
.pro-profile-section>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:9px;min-height:58px;padding:11px 13px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.pro-profile-section>summary::-webkit-details-marker{display:none}.pro-profile-section>summary>span{font-size:14px;font-weight:800;line-height:1.25;color:var(--pro-text);overflow-wrap:anywhere}.pro-profile-section>summary>small{font-size:10px;font-weight:700;color:var(--pro-text-muted);text-align:right}.pro-profile-section>summary>i{width:9px;height:9px;border-right:2px solid var(--okchap-green);border-bottom:2px solid var(--okchap-green);transform:rotate(45deg);transition:transform .16s ease}.pro-profile-section[open]>summary>i{transform:rotate(225deg)}
.pro-profile-section[open]>summary{border-bottom:1px solid var(--pro-border);background:var(--pro-surface-elevated)}.pro-profile-section-body{padding:11px 12px 13px}.pro-profile-section-body>.verification-review-list:first-child{margin-top:-3px}.pro-profile-inner-card{margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.verified-profile-docs{display:grid;gap:9px}.verified-profile-docs>.pro-profile-section{margin-top:0;box-shadow:none}.verified-profile-docs>.pro-profile-section>summary{min-height:54px}.verified-profile-docs>.pro-profile-section:last-child{margin-bottom:0}
.pro-tariff-note{margin:0 0 10px!important;text-align:left!important}.lodging-levels{display:grid;gap:9px}.lodging-offer-section{overflow:hidden;min-width:0;border:1px solid var(--pro-border);border-radius:13px;background:var(--pro-surface-elevated)}.lodging-offer-section>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 11px;align-items:center;gap:8px;min-height:50px;padding:9px 11px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}.lodging-offer-section>summary::-webkit-details-marker{display:none}.lodging-offer-section>summary span{font-weight:800}.lodging-offer-section>summary small{color:var(--pro-text-muted);font-size:10px;font-weight:700}.lodging-offer-section>summary i{width:8px;height:8px;border-right:2px solid var(--okchap-green);border-bottom:2px solid var(--okchap-green);transform:rotate(45deg);transition:transform .16s ease}.lodging-offer-section[open]>summary{border-bottom:1px solid var(--pro-border)}.lodging-offer-section[open]>summary i{transform:rotate(225deg)}.lodging-offer-section-body{min-width:0;padding:10px}.lodging-unit+.lodging-unit{margin-top:13px;padding-top:13px;border-top:1px solid var(--pro-border)}.lodging-unit>.sec:first-child{margin-top:0}.lodging-offer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lodging-offer-fields>.lodging-field:first-child{grid-column:1/-1}.lodging-field{display:grid;min-width:0;gap:4px}.lodging-field>span{color:var(--pro-text-muted);font-size:10px;font-weight:700;line-height:1.25}.lodging-field input{width:100%;min-width:0}.lodging-field-wide{margin-top:8px}.lodging-criteria{margin-top:8px}.pro-offer-save{margin-top:9px}
@media(max-width:420px){.pro-profile-section>summary{grid-template-columns:minmax(0,1fr) 12px}.pro-profile-section>summary>small{grid-column:1;grid-row:2;text-align:left}.pro-profile-section>summary>i{grid-column:2;grid-row:1}}
.prow{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.prow small{color:var(--mute);display:block;font-size:12px}
.prow b{text-align:right;font-weight:500;color:var(--ink-2)}

/* ---------- Navigation inférieure ---------- */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(11,15,20,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 6px calc(env(safe-area-inset-bottom) + 8px)}
.nav button{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:500;color:var(--mute);position:relative}
.nav button svg{width:22px;height:22px}
.nav button.on{color:var(--okg)}
.nav .badge{position:absolute;top:-2px;right:calc(50% - 20px);min-width:16px;height:16px;border-radius:8px;background:var(--okg);color:#111;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}
@media(min-width:760px){.nav{max-width:560px;margin:0 auto;border-radius:20px 20px 0 0;left:50%;transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.order.new,.bell.ring,.pro-gift-badge.has-new{animation:none}}

/* PRO : aucune décision de commande ne doit disparaître sous le clavier ou la navigation. */
@media (max-width:599px){
  .nav button{min-height:44px}.nav{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}
  .client{align-items:flex-start}.client .acts a,.client .acts button{width:44px;height:44px}
  .confirm>div{padding:16px 16px calc(env(safe-area-inset-bottom) + 16px)}.profhead{align-items:flex-start}.prow{align-items:flex-start}
}
@media (max-width:359px){.nav button{font-size:9.5px}.client{gap:8px;padding:10px}.client .avatar{width:40px;height:40px}.profhead .avatar{width:56px;height:56px}.slotrow{gap:8px}.pro-rate-grid{gap:6px}.pro-rate-control{padding-left:8px;padding-right:26px}.pro-rate-control > span{font-size:11px}.pro-profile-section>summary{grid-template-columns:minmax(0,1fr) 12px}.pro-profile-section>summary>small{grid-column:1;grid-row:2;text-align:left}.pro-profile-section>summary>i{grid-column:2;grid-row:1}}

/* 1.233.1 — accès provisoire lisible et dossier limité aux éléments à fournir. */
.provisional-notice-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:12px;align-items:stretch}
.provisional-notice-actions .btn{width:100%;min-width:0;min-height:60px;height:auto;margin:0;padding:11px 9px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.16;font-size:clamp(12px,3.45vw,15px)}
.verification-only-page{padding-bottom:34px}.verification-only-head{margin:8px 0 16px}.verification-only-head h1{margin:10px 0 5px;font-size:clamp(25px,7vw,34px);line-height:1.05}.verification-only-head p{margin:0;color:var(--mute);line-height:1.5}
.verification-missing-link{position:relative;display:block;width:100%;padding:11px 34px 11px 11px!important;margin:7px 0!important;text-align:left;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.verification-missing-link>i{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--okg);font-size:25px;font-weight:900;font-style:normal}.verification-missing-link:active{transform:scale(.99)}
.verification-inputs{scroll-margin-top:18px}.verification-focus{outline:3px solid rgba(164,255,0,.55)!important;box-shadow:0 0 0 6px rgba(164,255,0,.12)!important;transition:outline-color .18s ease,box-shadow .18s ease}
.verification-submitted{display:flex;align-items:flex-start;gap:12px;border-color:var(--okg);background:rgba(164,255,0,.08)}.verification-submitted>span{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:var(--okg);color:#071006;font-size:23px;font-weight:900}.verification-submitted p{margin:5px 0 0;color:var(--mute);line-height:1.45}
@media(max-width:330px){.provisional-notice-actions{grid-template-columns:1fr}.provisional-notice-actions .btn{min-height:50px;font-size:13px}}
/* Lecture immédiate d'une commande Restaurant structurée. */
.restaurant-order-details{margin-top:10px;text-align:left;border-color:color-mix(in srgb,var(--okg) 58%,var(--line))}.restaurant-order-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.restaurant-order-head span,.restaurant-order-prefs small{color:var(--mute);font-size:10px;font-weight:700;letter-spacing:.08em}.restaurant-order-head b{color:var(--okg)}.restaurant-order-list{display:grid;gap:7px;margin-top:10px}.restaurant-order-list>div{display:grid;grid-template-columns:34px 1fr;gap:7px;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,var(--okg) 12%)}.restaurant-order-list strong{color:var(--okg)}.restaurant-order-prefs{display:grid;gap:4px;margin-top:10px}.restaurant-order-prefs span{font-size:13px}
/* 1.232.6 — date de naissance du titulaire utilisable sur écran tactile. */
input[type="date"]{min-height:48px;touch-action:manipulation}input[type="date"]::-webkit-calendar-picker-indicator{display:block;opacity:1;pointer-events:auto;cursor:pointer}

/* Local Mobile Money saves, with readable feedback inside each provider. */
.pro-mm-provider{margin-top:10px;border:1px solid var(--line,#46513b);border-radius:14px;padding:12px;min-width:0}
.pro-mm-provider>summary{font-weight:600;cursor:pointer}
.pro-mm-card .pro-mm-save{width:100%;margin-top:14px;min-height:48px;white-space:normal;overflow-wrap:normal;font-size:clamp(13px,3.6vw,16px);line-height:1.35;height:auto;padding:12px}
.pro-mm-result{font-size:13px;line-height:1.5;margin:8px 0 0;overflow-wrap:anywhere}
.pro-mm-result:empty{display:none}

.pro-history-trade{display:block;margin:16px 0}.pro-history-trade select{width:100%;margin-top:8px}.pro-order-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.pro-order-filters .chip{min-width:0;padding:9px 5px;gap:3px;justify-content:center;font-size:clamp(11px,2.9vw,15px);white-space:nowrap}.pro-order-filters .chip b{min-width:18px;padding:0 2px}

/* Incoming and active orders replace the welcome dashboard below the logo. */
.pro-app.pro-order-priority #view{min-height:calc(100dvh - 160px);padding-top:8px}.pro-app.pro-order-priority #view>.order{margin-top:8px;min-height:calc(100dvh - 220px)}.pro-app.pro-order-priority #view>.narrow{max-width:none;margin-top:0}.pro-app.pro-order-priority #proGift{display:none!important}.pro-priority-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 10px;color:var(--okg,#b7f34a)}.pro-priority-heading>strong{font-size:18px}.pro-priority-heading>span{font-size:12px}.pro-priority-tabs{display:flex;gap:8px;width:100%;overflow:auto;padding:4px 0 8px}.pro-priority-tabs .chip{flex:0 0 auto;white-space:nowrap}.pro-priority-tabs .chip.sel{background:#b7f34a;color:#111;border-color:#b7f34a}.pro-app.pro-order-priority .shopping-page>h1{font-size:20px;margin:8px 0}.pro-app.pro-order-priority .shopping-page>.shopping-flow{margin-top:8px}

.pro-profile-trigger>span{display:block;width:100%;height:100%;border-radius:50%;overflow:hidden}.pro-profile-trigger>span>img{display:block}

/* In-place supermarket product editing keeps the 116 profile layout. */
.pro-catalog-product.is-editing{display:block}.pro-catalog-editor{width:100%;min-width:0}.pro-catalog-editor label{display:block}.pro-catalog-editor .pro-catalog-actions{margin-top:12px}

/* Numeric quotes remain readable when a pale shopping/action card surrounds them. */
body.pro-app input[type="number"]{background:var(--pro-surface)!important;color:var(--pro-text)!important;-webkit-text-fill-color:var(--pro-text)!important;caret-color:var(--pro-text);color-scheme:dark}
body.pro-app input[type="number"]::placeholder{color:#aeb9c4!important;-webkit-text-fill-color:#aeb9c4!important;opacity:1}
body.pro-app input[type="number"]:disabled{color:#aeb9c4!important;-webkit-text-fill-color:#aeb9c4!important}

/* Source: responsive.css */
/* ============================================================
   OKCHAP 1.228.0 - mise en page ordinateur
   Cette feuille est chargée en dernier et ne modifie aucun rendu
   inférieur à 760 px. Le mobile reste la référence tactile.
   ============================================================ */

@media (min-width:760px){
  body:not(.admin-console):not(.pro-app) .app{
    width:calc(100% - 32px);
    max-width:1240px;
    min-height:calc(100dvh - 32px);
    margin:16px auto;
    overflow:clip;
    border-radius:22px;
  }
  body:not(.admin-console):not(.pro-app) .top{
    position:sticky;
    top:16px;
    z-index:180;
    min-height:84px;
    padding:10px 34px;
    background:color-mix(in srgb,var(--surface) 94%,transparent);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
  }
  body:not(.admin-console):not(.pro-app) .body{
    padding:24px 34px 44px;
  }
  body:not(.admin-console):not(.pro-app) .narrow{
    width:100%;
    max-width:720px;
  }
  body:not(.admin-console):not(.pro-app) .cards{
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:16px;
  }
  body:not(.admin-console):not(.pro-app) .mapwrap:not(.mapscreen .mapwrap){
    height:clamp(360px,48dvh,520px);
    border-radius:18px;
  }
  body:not(.admin-console):not(.pro-app) .sheet{
    align-items:center;
    padding:32px;
  }
  body:not(.admin-console):not(.pro-app) .sheet>div{
    max-width:680px;
    max-height:calc(100dvh - 64px);
    overflow:auto;
    border-radius:24px;
    padding:26px;
  }
  body:not(.admin-console):not(.pro-app) .popbox{
    max-width:600px;
  }
}

/* Accueil User : choix rapide à gauche, carte et état local à droite. */
@media (min-width:980px){
  body:not(.admin-console):not(.pro-app) .body:has(>.hero){
    display:grid;
    grid-template-columns:minmax(340px,.8fr) minmax(480px,1.35fr);
    grid-auto-flow:row;
    align-content:start;
    column-gap:26px;
    row-gap:12px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.hero{
    grid-column:1;
    grid-row:1 / span 6;
    position:sticky;
    top:124px;
    align-self:start;
    min-height:390px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:34px 30px 28px;
    border-radius:28px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.hero h1{
    max-width:12ch;
    font-size:clamp(34px,3vw,44px);
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.hero .tiles{
    grid-template-columns:1fr;
    gap:10px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.hero .tile{
    min-height:54px;
    padding:12px 14px;
    font-size:14px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>:not(.hero):not(.sheet){
    grid-column:2;
    min-width:0;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.sec{
    margin-top:0;
    align-self:end;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.mapwrap{
    height:clamp(400px,50dvh,520px);
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.home-map-guidance{
    padding:12px 14px;
    font-size:13px;
  }
}

/* Espace PRO : la navigation mobile devient une barre latérale lisible. */
@media (min-width:1050px){
  body.pro-app .app{
    width:calc(100% - 32px);
    max-width:1320px;
    min-height:calc(100dvh - 32px);
    margin:16px auto;
    overflow:clip;
    border-radius:22px;
    border:1px solid var(--line);
    box-shadow:0 18px 60px rgba(0,0,0,.28);
  }
  body.pro-app .top{
    position:sticky;
    top:16px;
    z-index:160;
    min-height:82px;
    padding:8px 28px;
    background:color-mix(in srgb,var(--pro-bg) 94%,transparent);
    border-bottom:1px solid var(--line);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
  }
  body.pro-app .body{
    width:auto;
    margin-left:224px;
    padding:26px 30px 52px;
  }
  body.pro-app .nav{
    position:fixed;
    top:112px;
    bottom:32px;
    left:max(16px,calc((100vw - 1320px) / 2));
    right:auto;
    width:208px;
    max-width:none;
    margin:0;
    padding:14px 12px;
    display:grid;
    grid-template-columns:1fr;
    grid-auto-rows:min-content;
    align-content:start;
    gap:5px;
    transform:none;
    overflow-y:auto;
    border:0;
    border-right:1px solid var(--line);
    border-radius:0;
    background:transparent;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  body.pro-app .nav button{
    min-height:50px;
    flex-direction:row;
    justify-content:flex-start;
    gap:12px;
    padding:10px 13px;
    border-radius:13px;
    font-size:13px;
    text-align:left;
  }
  body.pro-app .nav button:hover{
    background:var(--surface-2);
    color:var(--ink);
  }
  body.pro-app .nav button.on{
    background:var(--okg-soft);
    color:var(--okg);
  }
  body.pro-app .nav .badge{
    top:6px;
    right:7px;
  }
  body.pro-app .cards{
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:14px;
  }
  body.pro-app .order,
  body.pro-app .mandatory-rating-card{
    max-width:880px;
    margin-right:auto;
    margin-left:auto;
  }
  body.pro-app .confirm{
    align-items:center;
    padding:32px;
  }
  body.pro-app .confirm>div{
    max-width:680px;
    max-height:calc(100dvh - 64px);
    overflow:auto;
    border-radius:24px;
    padding:26px;
  }
}

/* Back-office : largeur utile, hiérarchie de navigation et cartes équilibrées. */
@media (min-width:760px){
  body.admin-console{
    min-height:100dvh;
    padding:16px;
    background:linear-gradient(145deg,#EEF2EC 0%,#F7F8FA 58%,#E7F0E5 100%);
  }
  body.admin-console .app{
    width:100%;
    max-width:1600px;
    height:calc(100dvh - 32px);
    min-height:680px;
    margin:0 auto;
    grid-template-columns:clamp(230px,20vw,280px) minmax(0,1fr);
    grid-template-rows:82px minmax(0,1fr);
    overflow:hidden;
    border-radius:22px;
    border:1px solid var(--line);
    box-shadow:0 20px 70px rgba(34,52,39,.14);
  }
  body.admin-console .top{
    padding:16px 28px;
    background:var(--surface);
    border-bottom:1px solid var(--line);
  }
  body.admin-console .admin-top .logo{
    font-size:20px;
  }
  body.admin-console .admin-tabs{
    padding:20px 14px 28px;
    background:#F3F6F1;
    scrollbar-gutter:stable;
  }
  body.admin-console .admin-nav-group{
    margin-bottom:22px;
  }
  body.admin-console .admin-nav-tree{
    margin-bottom:22px;
    padding:0;
    border:0;
    background:transparent;
  }
  body.admin-console .admin-nav-tree .admin-nav-label,
  body.admin-console .admin-nav-label{
    margin:0 10px 8px;
    color:var(--mute);
    font-size:10.5px;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
  }
  body.admin-console .admin-nav-submenu{
    padding-left:8px;
    border-left:2px solid color-mix(in srgb,var(--accent) 58%,var(--line));
  }
  body.admin-console .admin-nav-branch{
    margin:7px 0 0 6px;
    padding:7px;
    border-color:var(--line);
    background:rgba(255,255,255,.62);
  }
  body.admin-console .tab{
    min-height:44px;
    margin:3px 0;
    border-color:transparent;
    background:transparent;
    transition:background .15s,border-color .15s,transform .15s;
  }
  body.admin-console .tab:hover{
    background:var(--surface);
    border-color:var(--line);
  }
  body.admin-console .tab.on{
    background:var(--accent-soft);
    border-color:color-mix(in srgb,var(--accent) 55%,var(--line));
    box-shadow:inset 3px 0 0 var(--accent);
  }
  body.admin-console .body{
    padding:28px clamp(26px,3.2vw,48px) 48px;
    background:#FBFCFA;
    scrollbar-gutter:stable;
  }
  body.admin-console #view{
    width:100%;
    max-width:1260px;
    margin:0 auto;
  }
  body.admin-console #view>h1,
  body.admin-console #view>h2{
    max-width:850px;
    font-size:clamp(24px,2.2vw,32px);
    line-height:1.18;
  }
  body.admin-console #view>.sub{
    max-width:820px;
    margin-bottom:20px;
  }
  body.admin-console .cards{
    grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
    gap:14px;
  }
  body.admin-console .card{
    padding:17px;
  }
  body.admin-console .admin-identity-status-tabs{
    gap:10px;
  }
  body.admin-console .admin-identity-status-tabs .chip{
    min-height:54px;
  }
  body.admin-console .professional-rule-editor,
  body.admin-console .geo-form-card{
    max-width:1000px;
  }
  body.admin-console .program-form-grid{
    gap:14px;
  }
}

@media (min-width:1400px){
  body.admin-console .admin-kpi-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
  }
  body.admin-console .employment-observer-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (prefers-reduced-motion:reduce){
  .admin-console .tab{transition:none}
}

/* ============================================================
   OKCHAP 1.231.5 - continuité responsive de l'espace User
   Les règles restent limitées à l'application cliente.
   ============================================================ */
body:not(.admin-console):not(.pro-app) .app,
body:not(.admin-console):not(.pro-app) .body,
body:not(.admin-console):not(.pro-app) #view,
body:not(.admin-console):not(.pro-app) .hero,
body:not(.admin-console):not(.pro-app) .card{
  min-width:0;
  box-sizing:border-box;
}
body:not(.admin-console):not(.pro-app) img,
body:not(.admin-console):not(.pro-app) svg{
  max-width:100%;
}

/* Mobiles : deux colonnes régulières, images strictement fixes et texte jamais tronqué. */
@media (max-width:479px){
  body:not(.admin-console):not(.pro-app) .top{
    flex-wrap:nowrap;
    gap:4px;
    padding-right:clamp(10px,3.5vw,16px);
    padding-left:clamp(10px,3.5vw,16px);
  }
  body:not(.admin-console):not(.pro-app) .top #homeLogo{
    flex:1 1 auto!important;
    width:auto;
    max-width:clamp(112px,36vw,152px)!important;
  }
  body:not(.admin-console):not(.pro-app) .top #hdr{
    flex:0 0 auto!important;
    flex-wrap:nowrap!important;
    gap:3px!important;
  }
  body:not(.admin-console):not(.pro-app) .top #hdr .gear,
  body:not(.admin-console):not(.pro-app) .top #hdr .uavatar{
    flex:0 0 40px;
    width:40px;
    height:40px;
  }
  body:not(.admin-console):not(.pro-app) .body{
    padding-right:clamp(12px,4vw,18px);
    padding-left:clamp(12px,4vw,18px);
  }
  body:not(.admin-console):not(.pro-app) .hero{
    width:100%;
    padding-right:clamp(11px,4vw,16px);
    padding-left:clamp(11px,4vw,16px);
  }
  body:not(.admin-console):not(.pro-app) .home-service-grid{
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  body:not(.admin-console):not(.pro-app) .home-service{
    width:100%;
    grid-template-columns:40px minmax(0,1fr);
    gap:6px;
    padding:6px;
  }
  body:not(.admin-console):not(.pro-app) .home-service-icon{
    width:40px;
    height:40px;
  }
  body:not(.admin-console):not(.pro-app) .home-service>b{
    width:100%;
    overflow:visible;
    font-size:clamp(10px,2.82vw,11.5px);
    letter-spacing:-.04em;
    white-space:nowrap;
  }
  body:not(.admin-console):not(.pro-app) .home-service>i{
    display:none;
  }
  body:not(.admin-console):not(.pro-app) .home-category-instruction{
    min-height:52px;
    padding:9px 11px;
  }
  body:not(.admin-console):not(.pro-app) .home-path-choice{
    padding:10px;
  }
  body:not(.admin-console):not(.pro-app) .home-path-choice .tiles{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body:not(.admin-console):not(.pro-app) .home-path-choice .tile{
    min-width:0;
    padding:8px;
    font-size:clamp(10.5px,3.1vw,12px);
  }
  body:not(.admin-console):not(.pro-app) .home-path-choice .home-click-cue{
    display:none;
  }
  body:not(.admin-console):not(.pro-app) .restaurant-recap,
  body:not(.admin-console):not(.pro-app) .grid2{
    grid-template-columns:minmax(0,1fr);
  }
  body:not(.admin-console):not(.pro-app) .route-options{
    grid-template-columns:minmax(0,1fr);
  }
}

@media (max-width:339px){
  body:not(.admin-console):not(.pro-app) .top{
    padding-bottom:8px;
  }
  body:not(.admin-console):not(.pro-app) .top #hdr .gear,
  body:not(.admin-console):not(.pro-app) .top #hdr .uavatar{
    flex-basis:38px;
    width:38px;
    height:38px;
  }
  body:not(.admin-console):not(.pro-app) .top #hGift{
    position:static!important;
    inset:auto!important;
    width:38px!important;
    height:38px!important;
  }
  body:not(.admin-console):not(.pro-app) .home-service{
    grid-template-columns:36px minmax(0,1fr);
    gap:5px;
    padding:5px;
  }
  body:not(.admin-console):not(.pro-app) .home-service-icon{
    width:36px;
    height:36px;
    border-radius:10px;
  }
  body:not(.admin-console):not(.pro-app) .home-service>b{
    font-size:9.7px;
  }
  body:not(.admin-console):not(.pro-app) .hero h1{
    font-size:19px;
  }
}

/* Tablettes : la largeur supplémentaire sert aux contenus, sans étirer les formulaires. */
@media (min-width:600px) and (max-width:979px){
  body:not(.admin-console):not(.pro-app) .hero,
  body:not(.admin-console):not(.pro-app) .home-map-guidance,
  body:not(.admin-console):not(.pro-app) .body>.mapwrap{
    width:100%;
  }
  body:not(.admin-console):not(.pro-app) .home-service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  body:not(.admin-console):not(.pro-app) .home-service{
    min-height:62px;
    grid-template-columns:46px minmax(0,1fr) 18px;
    padding:8px 10px;
  }
  body:not(.admin-console):not(.pro-app) .home-service-icon{
    width:46px;
    height:46px;
  }
  body:not(.admin-console):not(.pro-app) .home-service>b{
    font-size:13px;
  }
}

/* Ordinateurs : la colonne d'action utilise une ligne par catégorie pour rester lisible. */
@media (min-width:980px){
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.hero{
    justify-content:flex-start;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero)>.hero h1{
    width:100%;
    max-width:none;
    font-size:clamp(26px,2.6vw,34px);
    white-space:nowrap;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service-grid{
    grid-template-columns:minmax(0,1fr);
    gap:8px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service{
    min-height:56px;
    grid-template-columns:44px minmax(0,1fr) 18px;
    padding:6px 9px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service>b{
    font-size:13px;
    letter-spacing:-.01em;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-path-choice .tiles{
    grid-template-columns:minmax(0,1fr);
  }
  body:not(.admin-console):not(.pro-app) .desktop-home-map{
    grid-column:2;
    grid-row:1;
    min-width:0;
    min-height:clamp(560px,68dvh,720px);
    display:flex;
    flex-direction:column;
    padding:14px;
    overflow:hidden;
    border:1px solid var(--line-strong);
    border-radius:28px;
    background:var(--surface);
    box-shadow:0 18px 42px rgba(0,0,0,.18);
  }
  body:not(.admin-console):not(.pro-app) .desktop-home-map-head{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:3px 4px 13px;
  }
  body:not(.admin-console):not(.pro-app) .desktop-home-map-head small{
    display:block;
    margin-bottom:3px;
    color:var(--lime-text);
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
  }
  body:not(.admin-console):not(.pro-app) .desktop-home-map-head h2{
    margin:0;
    font-size:clamp(20px,2vw,27px);
    line-height:1.08;
  }
  body:not(.admin-console):not(.pro-app) .desktop-home-map-head>span{
    flex:0 0 auto;
    padding:8px 11px;
    border:1px solid var(--line-strong);
    border-radius:999px;
    color:var(--text);
    background:var(--surface-2);
    font-size:12px;
    font-weight:800;
  }
  body:not(.admin-console):not(.pro-app) .desktop-home-map>.mapwrap{
    flex:1 1 auto;
    width:100%;
    height:auto!important;
    min-height:490px;
    border-radius:20px;
  }
}
/* Accueil User : intitulés complets, dimensionnés selon la place disponible. */
body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service-grid{
  container-type:inline-size;
}
body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service{
  grid-template-columns:clamp(28px,8vw,40px) minmax(0,1fr);
  min-height:60px;
  padding:5px;
  gap:5px;
}
body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service-icon{
  width:clamp(28px,8vw,40px);
  height:clamp(28px,8vw,40px);
}
body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service>b{
  width:100%;
  min-width:0;
  font-size:clamp(12px,3.5vw,17px);
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.025em;
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
  hyphens:none;
}
body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service>i{
  display:none;
}
@supports (font-size:1cqw){
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service>b{
    font-size:clamp(12px,4.5cqw,17px);
  }
}
/* Sur les écrans les plus étroits, une colonne garde les libellés lisibles. */
@media(max-width:359px){
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service-grid{
    grid-template-columns:minmax(0,1fr);
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service{
    grid-template-columns:40px minmax(0,1fr);
    gap:10px;
    padding:7px 10px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service-icon{
    width:40px;
    height:40px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service>b{
    font-size:16px;
  }
}
@media(min-width:980px){
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service{
    grid-template-columns:44px minmax(0,1fr);
    padding:7px 10px;
    gap:10px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service-icon{
    width:44px;
    height:44px;
  }
  body:not(.admin-console):not(.pro-app) .body:has(>.hero) .home-service>b{
    font-size:18px;
  }
}

/* Marché reste une entrée distincte et lisible après les six services historiques. */
body:not(.admin-console):not(.pro-app) .home-service[data-home-service="market"]{grid-column:1 / -1;}

/* Accès à la proposition de trajet, réservé aux profils User vérifiés. */
.profile-carpool-entry{display:flex;align-items:center;gap:10px;margin:8px 0 16px;padding:10px 12px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.profile-carpool-link{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-decoration:none;color:inherit;min-height:48px;border-radius:10px}
.profile-carpool-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:var(--green,#bdf44b);color:#091008}
.profile-carpool-icon svg{display:block;width:24px;height:24px}
.profile-carpool-copy{display:grid;gap:3px;min-width:0}
.profile-carpool-copy b{font-size:clamp(15px,4vw,18px);white-space:nowrap}
.profile-carpool-copy small{font-size:12px;color:var(--mute)}
.profile-carpool-arrow{margin-left:auto;font-size:28px;color:var(--mute)}
.profile-carpool-entry>.field-info{flex:0 0 36px;width:36px;height:36px;margin:0}
.profile-carpool-link:focus-visible{outline:2px solid var(--green,#bdf44b);outline-offset:3px}

/* Pro de confiance : actions lisibles sur mobile et ordinateur. */
.trusted-pro-card{width:100%;max-width:640px;box-sizing:border-box;margin:14px auto;text-align:left}
.trusted-pro-card h2{font-size:clamp(17px,4vw,21px);line-height:1.35;margin:0 0 8px;overflow-wrap:break-word}
.trusted-pro-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.trusted-pro-actions .btn{flex:1 1 180px;min-width:0;height:auto;min-height:44px;padding:12px;font-size:clamp(13px,3.5vw,16px);line-height:1.4;white-space:normal}
.trusted-pro-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #9bd72d;border-radius:999px;background:#b7f34a;color:#101507;font-size:13px;font-weight:700;padding:6px 10px;margin-bottom:8px}

/* Forfaits et codes Bonus : cartes sobres, prix visibles et contrôles accessibles. */
.bonus-code-card{min-width:0;overflow-wrap:anywhere}.bonus-code-card h2{font-size:clamp(19px,2.8vw,25px);line-height:1.2}.bonus-code-card h3{margin:24px 0 12px}.bonus-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.bonus-plan{border:1px solid var(--line,#53602b);border-radius:18px;padding:16px;display:grid;gap:10px;min-width:0}.bonus-plan strong{font-size:clamp(19px,2vw,25px);color:var(--okg,#b5f344)}.bonus-plan .btn,.bonus-code-card .btn,#proBonusHomeHost .btn{white-space:normal;overflow-wrap:normal;line-height:1.3;font-size:clamp(13px,2.6vw,16px);min-height:44px;height:auto;padding:12px 16px}.bonus-code{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.bonus-code>span{font-size:clamp(22px,5vw,30px);font-weight:800;letter-spacing:.1em;user-select:all}.bonus-validity,.bonus-pending{padding:16px;border:1px solid var(--okg,#b5f344);border-radius:16px;margin:12px 0;min-width:0}.bonus-validity{display:grid;gap:7px}.bonus-validity [role=timer]{font-weight:700;font-variant-numeric:tabular-nums}.bonus-code-card label{display:block;margin:10px 0}.bonus-code-card label>input:not([type=checkbox]),.bonus-code-card textarea{display:block;width:100%;max-width:100%;margin-top:6px;box-sizing:border-box}.bonus-code-card input[type=checkbox]{width:18px;height:18px;display:inline-block;vertical-align:middle;margin:0 6px 0 0}.bonus-code-card details{margin-top:14px}.bonus-code-card summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:700}.bonus-payment-info{white-space:pre-wrap}.bonus-code-card [hidden]{display:none!important}#proBonusHomeHost{margin:12px 0}

.request-bonus-card{background:#0c1012;color:#fff;border:1px solid #94bd39;border-radius:20px;margin:16px 0;padding:16px;min-width:0}.request-bonus-card h2{font-size:clamp(16px,3vw,21px);line-height:1.3;margin:0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.request-bonus-card h2 small{font-size:12px;font-weight:500;color:#c2da9a}.request-bonus-card p{font-size:14px;line-height:1.4;margin:10px 0}.request-bonus-label{flex:0 0 100%;font-size:14px;line-height:1.4}.request-bonus-input{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.request-bonus-input input{flex:1;width:0;min-width:0;box-sizing:border-box}.request-bonus-input .btn{margin:0;flex:0 0 auto;width:auto;min-height:44px;font-size:14px;padding:10px 14px;line-height:1.3}.request-bonus-card .back{color:#c1ff50;min-height:44px;white-space:normal}.request-bonus-card .bonus-validity{margin-bottom:0}.request-bonus-card select{display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:8px}.request-bonus-card [role=status]{overflow-wrap:anywhere}.request-bonus-card input{font-size:16px}
.request-bonus-input .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.okchap-admin-notice{position:fixed;inset:0;z-index:2147483000;background:#070a08;color:#fff;overflow:auto;overscroll-behavior:contain;display:flex;align-items:flex-start;justify-content:center;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box}.okchap-admin-notice article{width:100%;max-width:720px;min-width:0;padding:20px 0;box-sizing:border-box}.okchap-admin-notice h1{font-size:clamp(24px,5vw,36px);line-height:1.3;overflow-wrap:anywhere;margin:20px 0;color:#fff}.okchap-admin-notice small{color:#bcf74b;font-weight:700;letter-spacing:.08em}.admin-notice-body{font-size:clamp(17px,3vw,20px);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.okchap-admin-notice .btn{width:100%;min-height:52px;height:auto;white-space:normal;font-size:18px;margin-top:28px;color:#111;background:#bdf44b;padding:16px;border:0;border-radius:16px}.admin-notices label{display:block;margin:18px 0}.admin-notices label input,.admin-notices label textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px}.admin-notices p{white-space:pre-wrap;overflow-wrap:anywhere}.admin-notices .btn{min-height:44px;height:auto;white-space:normal;font-size:16px;padding:12px}

.request-files{padding:16px;margin:12px 0;border:1px solid var(--line,#53602b);border-radius:18px;min-width:0}.request-files h3{font-size:18px;margin:0 0 10px}.request-files h3 small{font-size:12px;font-weight:500}.request-files p{font-size:13px;line-height:1.5}.request-files ul{padding:0;margin:10px 0;list-style:none}.request-files li{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line,#53602b);min-width:0}.request-files li span{min-width:0;overflow-wrap:anywhere}.request-files small{display:block;font-size:12px;color:var(--mute,#aab3b9)}.request-files li button{width:auto;flex:0 0 auto;min-height:44px;font-size:13px;padding:8px 12px}.request-files input{width:100%}.request-files [role=status]{color:var(--lamp,#c1ff50)}.bonus-network-retry h1{font-size:clamp(24px,5vw,32px)}.bonus-network-retry h2{font-size:21px}.bonus-network-retry .btn{white-space:normal;font-size:clamp(14px,3vw,17px);height:auto;line-height:1.4;min-height:48px}.bonus-network-retry .tile{white-space:normal;min-width:0;font-size:16px}.bonus-network-retry .tiles{gap:10px}.bonus-history-list{display:grid;gap:8px;margin:10px 0}.bonus-history-choice{display:grid;gap:5px;text-align:left;padding:12px;border:1px solid #94bd39;border-radius:14px;background:#181f15;color:white;min-height:48px;min-width:0;overflow-wrap:anywhere}.bonus-history-choice small{font-size:13px}.bonus-history-choice span{font-weight:800;color:#c1ff50}.service-bonus-codes .bonus-code{border-bottom:1px solid var(--line,#53602b);padding:10px 0}.service-bonus-codes .bonus-code>span{font-size:16px;letter-spacing:normal}.service-bonus-codes small{display:block;font-size:12px;font-weight:400}

[data-code-history][hidden]{display:none!important}[data-code-history] .bonus-history-list{max-height:min(220px,25dvh);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}[data-code-history] p{margin:12px 0 6px}

.service-bonus-codes .bonus-code>span{flex:1 0 100%;max-width:100%;overflow-wrap:anywhere}.service-bonus-codes .bonus-code>b{font-size:17px;white-space:nowrap}

/* Fidélisation du pro : accès distinct des cadeaux OKchap. */
#proBonusHomeHost .pro-loyalty-open{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:#b5f344;color:#101508;border:1px solid #b5f344;cursor:pointer;text-align:left;font-weight:750;box-sizing:border-box;border-radius:16px}
#proBonusHomeHost .pro-loyalty-open span{min-width:0;overflow-wrap:normal}
#proBonusHomeHost .pro-loyalty-open svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#proBonusHomeHost .pro-loyalty-open:hover{background:#c5ff63}
#proBonusHomeHost .pro-loyalty-open:focus-visible{outline:3px solid currentColor;outline-offset:3px}

.bonus-plan-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;box-sizing:border-box;border:0;border-radius:0;padding:0;background:#0c1012;color:#fff;overflow:hidden}
.bonus-plan-dialog[open]{display:flex;flex-direction:column}.bonus-plan-dialog::backdrop{background:#0c1012}
.bonus-plan-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(20px + env(safe-area-inset-top)) 24px 16px;border-bottom:1px solid #39412d;font-size:13px;letter-spacing:.06em;color:#b5f344}
.bonus-plan-dialog-head button{width:44px;height:44px;flex:0 0 44px;background:#1c242b;color:white;border:1px solid #53602b;border-radius:50%;font-size:28px;cursor:pointer}
.bonus-plan-dialog-body{flex:1;overflow:auto;min-height:0;width:100%;max-width:640px;box-sizing:border-box;margin:auto;padding:clamp(24px,5vh,56px) 24px}
.bonus-plan-dialog-body h2{font-size:clamp(23px,5vw,34px);line-height:1.2}.bonus-plan-dialog-body h3{font-size:22px;margin-top:28px}.bonus-plan-dialog-price{display:block;font-size:clamp(30px,8vw,46px);color:#b5f344}.bonus-plan-dialog-body p{font-size:16px;line-height:1.6}
.bonus-plan-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:640px;margin:0 auto;box-sizing:border-box;padding:16px 24px calc(20px + env(safe-area-inset-bottom));background:#0c1012}
.bonus-plan-dialog-actions .btn{width:100%;min-width:0;min-height:54px;white-space:normal;line-height:1.3;font-size:clamp(13px,3.8vw,16px);padding:12px;height:auto;box-sizing:border-box}.bonus-plan-dialog-actions .lamp{background:#b5f344;color:#101508}.bonus-plan-dialog-actions .ghost{background:#1c242b;color:#fff;border:1px solid #53602b}
.bonus-plan-dialog button:focus-visible{outline:3px solid #b5f344;outline-offset:3px}

.request-bonus-card h2 .request-bonus-question{min-width:0;max-width:100%;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
.request-bonus-card h2 small{flex:0 0 auto;border:1px solid #53602b;border-radius:999px;padding:3px 8px;line-height:1.3}

.thumbs .thumb-img:has([data-order-photo-download]){height:auto;overflow:visible}.thumb-img [data-order-photo-download]{width:100%;height:auto;min-height:36px;font-size:11px;line-height:1.2;padding:8px 4px;margin-top:4px}

.private-settings-button{display:block;width:100%;padding:12px 16px;margin:0 0 16px;border:1px solid #88aa36;border-radius:16px;background:transparent;color:inherit;text-align:left;font-family:inherit;font-weight:600;font-size:14px;line-height:1.4;cursor:pointer;white-space:normal}
.private-exchange-dialog{padding:0;border:1px solid #718b38;border-radius:22px;background:#141b22;color:#fff;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}.private-exchange-dialog::backdrop{background:rgba(0,0,0,.78)}.private-exchange-dialog section{padding:24px}.private-exchange-dialog header{display:flex;gap:12px;align-items:center;justify-content:space-between}.private-exchange-dialog h2{font-size:clamp(20px,5vw,28px);margin:0;overflow-wrap:normal}.private-exchange-dialog header button{width:42px;height:42px;flex:none;background:transparent;color:white;border:1px solid #64713f;border-radius:50%;font-size:28px}.private-exchange-dialog p{font-size:15px;line-height:1.6}.private-exchange-dialog textarea{box-sizing:border-box;width:100%;font-size:16px;line-height:1.5;overflow-wrap:anywhere}.private-actions{display:flex;flex-wrap:wrap;gap:12px}.private-actions .btn{flex:1 1 180px;white-space:normal;line-height:1.3}.private-exchange-dialog [role=status]{color:#c5f763;overflow-wrap:anywhere}.private-image-pending{font-size:11px;min-height:52px}

.admin-console .admin-support-thread{max-width:1100px;width:100%;margin:0 auto;min-width:0}.admin-console .admin-support-thread .msgs{max-height:42vh;min-height:180px}.admin-support-reply{display:grid;gap:12px;margin:18px 0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0}.admin-support-reply label{font-weight:700}.admin-console .admin-support-reply textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:220px;resize:vertical;font-size:16px;line-height:1.6}.admin-support-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-support-toolbar .btn{width:auto;min-width:200px;white-space:normal}.admin-support-reply [role=status]{margin:0;overflow-wrap:anywhere}@media(max-width:600px){.admin-support-reply{padding:14px}.admin-support-toolbar .btn{width:100%}.admin-console .admin-support-thread .msgs{max-height:35vh}}
.request-photo-list{align-items:flex-start;gap:12px;flex-wrap:wrap}
.thumbs .thumb-img.request-photo{position:relative;width:min(180px,100%);height:auto;padding:8px;border-radius:14px;overflow:hidden;background:#1a2622;border-color:#59734d}
.thumbs .request-photo img{width:100%;height:140px;object-fit:contain;border-radius:8px;background:#101815;color:#e4efdf;font-size:12px}
.thumbs .request-photo button{position:static;width:100%;height:auto;min-height:40px;margin-top:7px;padding:8px;border-radius:10px;font-size:13px;line-height:1.3;background:#263a2d;color:#f4f8f0;border:1px solid #607557;white-space:normal}
.request-photo [data-photo-status]{font-size:12px;line-height:1.4;color:#e0eada;margin:7px 0 0;overflow-wrap:anywhere}
.request-photo [data-photo-status]:empty{display:none}
.request-photo-preview{width:min(760px,calc(100vw - 24px))}
.request-photo-preview [data-photo-content] img{display:block;width:100%;max-height:70dvh;object-fit:contain;border-radius:12px}
.request-photo-preview [role=status]{overflow-wrap:anywhere}
.request-photo-preview [role=status] .btn{display:block;margin-top:14px;white-space:normal}

/* Source: privacy-notice.css */
.privacy-note{margin:12px 0;padding:12px;border:1px solid currentColor;border-radius:12px;font-size:14px;line-height:1.55;color:inherit;text-align:left}
.privacy-note summary{cursor:pointer;min-height:32px;display:list-item;font-weight:600}
.privacy-note p{font-size:14px;line-height:1.55;color:inherit;margin:8px 0}
.privacy-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;line-height:1.6}
.privacy-links a,.privacy-note a{color:inherit;text-decoration:underline;text-underline-offset:3px;min-height:32px;display:inline-flex;align-items:center}
.privacy-links a:focus-visible,.privacy-note summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}

