/* Lot 48 : modernisation visuelle (couche de style unique, chargée en dernier). Aucune règle métier, aucun texte, aucune route modifiés.
   Identité Blewu : orange du logo (#F26B1D) + teal existant (#1B2A4A). Fond clair, cartes blanches à coins 12 px, ombres discrètes. */
:root{--o48-surface:#fff;--o48-fond:#F6F7F9;--o48-ligne:#E6E8EC;--o48-encre:#17202A;--o48-encre2:#475467;--o48-muet:#6B7280;--o48-o:#F26B1D;--o48-o6:#D9550C;--o48-o1:#FFF3EA;--o48-t:#1B2A4A;--o48-t6:#13203A;--o48-t1:#EEF1F7;--o48-r:12px;--o48-ombre:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);--o48-ombre2:0 4px 16px rgba(16,24,40,.08);--o48-police:Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
html body .o42,html body .o43,html body .o45l{--bg:var(--o48-fond);--line:var(--o48-ligne);--ink:var(--o48-encre);--ink2:var(--o48-encre2);--mut:var(--o48-muet);--sh:var(--o48-ombre);font-family:var(--o48-police);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html body:has(.bv-app),html body:has(.o45l){background:var(--o48-fond)!important}
html body .bv-app{background:var(--o48-fond)!important}

/* ---------- Barre latérale (bureau) : sombre, teinte propre à chaque espace (référence du propriétaire), élément actif orange Blewu ---------- */
html body .bv-app{--o48-side:#0F2742;--o48-side2:#16365A}
html body .bv-app.bv-pharma{--o48-side:#0A3B36;--o48-side2:#0F4C46}
html body .bv-app.bv-patient{--o48-side:#102A54;--o48-side2:#173A70}
html body .o45l{--o48-side:#25215A;--o48-side2:#322C74}
html body .bv-app.bv-app .bv-side{background:var(--o48-side)!important;border-right:0!important;box-shadow:none!important;color:#E6EAF2!important}
html body .bv-app.bv-app .bv-marque{padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px}
html body .bv-app.bv-app .bv-marque strong{letter-spacing:.02em}
html body .bv-app.bv-app .bv-marque small{color:rgba(255,255,255,.62)!important;letter-spacing:.06em;font-weight:600}
html body .bv-app.bv-app .bv-nav button{color:rgba(255,255,255,.78)!important;font-weight:500!important;font-size:14.5px!important;min-height:42px;border-radius:10px!important;transition:background .15s,color .15s;position:relative}
html body .bv-app.bv-app .bv-nav button svg{stroke:currentColor!important;opacity:.95}
html body .bv-app.bv-app .bv-nav button:hover{background:var(--o48-side2)!important;color:#fff!important}
html body .bv-app.bv-app .bv-nav button.on{background:var(--o48-o)!important;color:#fff!important;font-weight:600!important;box-shadow:0 4px 12px rgba(242,107,29,.28)}
html body .bv-app.bv-app .bv-nav button.on i,html body .bv-app.bv-app .bv-nav button.on .bv-n{background:#fff!important;color:var(--o48-o6)!important}
html body .bv-app.bv-app .bv-side .bv-qui,html body .bv-app.bv-app .bv-side .bv-qui *{color:rgba(255,255,255,.85)!important}
html body .bv-app.bv-app .bv-side .bv-qui strong{color:#fff!important}
html body .bv-app.bv-app .bv-side .bv-qui a{text-decoration:underline;text-underline-offset:2px}
html body .bv-app.bv-app .bv-side .bv-qui b{background:rgba(255,255,255,.14)!important;color:#fff!important}
html body .bv-app.bv-app .bv-side #o46-btn{background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.18)!important;color:#fff!important;margin-top:10px!important}
html body .bv-app.bv-app .bv-side #o46-btn:hover{background:rgba(255,255,255,.16)!important}
.o48-slogan{display:none}
html body .bv-app.bv-app .bv-side .o48-slogan{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding:14px;border-radius:12px;background:var(--o48-side2);color:rgba(255,255,255,.86);font:500 13px/1.4 var(--o48-police)}
html body .bv-app.bv-app .bv-side .o48-slogan svg{width:26px;height:26px;fill:none;stroke:#5EEAD4;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (max-height:760px){html body .bv-app.bv-app .bv-side .o48-slogan{display:none}}
html body .bv-app.bv-app .bv-nav button:focus-visible,html body .o45l-tabs>button:focus-visible,html body .o48-bar button:focus-visible{outline:2px solid #5EEAD4;outline-offset:2px}

/* ---------- Barre supérieure (bureau) : titre de page, notifications, profil ---------- */
.o48-bar{display:none}
@media (min-width:901px){
  html body .bv-main>.o42-top{display:none!important} /* doublon du logo : remplacé par la barre supérieure */
  html body .o48-bar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:40;min-height:64px;margin:0 0 18px;padding:10px 0;background:rgba(246,247,249,.92);-webkit-backdrop-filter:saturate(1.4) blur(6px);backdrop-filter:saturate(1.4) blur(6px);border-bottom:1px solid var(--o48-ligne)}
  .o48-bar h1{flex:1 1 auto;min-width:0;margin:0!important;font:600 20px/1.25 var(--o48-police)!important;color:var(--o48-encre);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .o48-bar h1 small{display:block;font:500 12.5px/1.3 var(--o48-police);color:var(--o48-muet);letter-spacing:0}
  .o48-cloche,.o48-profil{flex:none;display:inline-flex;align-items:center;gap:8px;height:40px;border:1px solid var(--o48-ligne);background:#fff;border-radius:999px;padding:0 12px;color:var(--o48-encre2);font:500 14px var(--o48-police);cursor:pointer;box-shadow:var(--o48-ombre);position:relative}
  .o48-cloche{width:40px;padding:0;justify-content:center}
  .o48-cloche:hover,.o48-profil:hover{border-color:#D0D5DD;color:var(--o48-encre)}
  .o48-cloche svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .o48-cloche i{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;border-radius:999px;background:var(--o48-o);color:#fff;font:700 11px/18px var(--o48-police);font-style:normal;text-align:center;padding:0 4px;box-sizing:border-box;border:2px solid #fff}
  .o48-cloche i:empty{display:none}
  .o48-profil b{display:grid;place-items:center;width:28px;height:28px;margin-left:-6px;border-radius:999px;background:var(--o48-t1);color:var(--o48-t6);font:700 12px var(--o48-police)}
  .o48-profil span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* ---------- Cartes, sections, statistiques ---------- */
html body .o42 .card,html body .o43 .card,html body .o45l .o45l-carte,html body .bv-app .panel,html body .o45l .panel,html body .bv-app section.dash,html body .o45l section.dash,html body .o42-card,html body .o43-card,html body .bv-app details.ordo-pli,html body .o45l details.ordo-pli{border-radius:var(--o48-r)!important;border:1px solid var(--o48-ligne)!important;box-shadow:var(--o48-ombre)!important;background:#fff}
html body .bv-app .bv-stats>*,html body .bv-app .o43-kpis>*,html body .o43-kpi,html body .bv-stats article{border-radius:var(--o48-r)!important;border:1px solid var(--o48-ligne)!important;box-shadow:var(--o48-ombre)!important;background:#fff!important}
html body .bv-stats{gap:12px!important;align-items:stretch}
html body .bv-app h2,html body .o45l h2{letter-spacing:-.01em;color:var(--o48-encre)}

/* ---------- Boutons ---------- */
html body .bv-app .btn,html body .o45l .btn,html body .bv-app button.primaire{border-radius:10px!important;font-weight:600!important;transition:background .15s,box-shadow .15s,border-color .15s}
html body .bv-app .btn:focus-visible,html body .o45l .btn:focus-visible{outline:2px solid var(--o48-t);outline-offset:2px}

/* ---------- Badges de statut (couleurs existantes, forme harmonisée) ---------- */
html body .bv-app .badge,html body .o45l .badge,html body .o45l-dispo{border-radius:999px!important;font-weight:600!important;font-size:12.5px!important;line-height:1.3;padding:3px 10px!important;letter-spacing:0}

/* ---------- Tableaux ---------- */
html body .bv-app table,html body .o45l table{border-collapse:separate;border-spacing:0;width:100%;background:#fff;border:1px solid var(--o48-ligne);border-radius:var(--o48-r);overflow:hidden}
html body .bv-app table th,html body .o45l table th{background:#F9FAFB;color:var(--o48-encre2);font-weight:600;font-size:13px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--o48-ligne)}
html body .bv-app table td,html body .o45l table td{padding:10px 12px;border-bottom:1px solid #F0F1F3;font-size:14px}
html body .bv-app table tr:last-child td,html body .o45l table tr:last-child td{border-bottom:0}

/* ---------- Champs de recherche et formulaires ---------- */
html body .bv-app input:not([type=checkbox]):not([type=radio]):not([type=file]),html body .bv-app select,html body .bv-app textarea,html body .o45l input:not([type=checkbox]):not([type=radio]):not([type=file]),html body .o45l select,html body .o45l textarea{border-radius:10px;border-color:#D0D5DD}
html body .bv-app input:focus,html body .bv-app select:focus,html body .bv-app textarea:focus,html body .o45l input:focus,html body .o45l select:focus,html body .o45l textarea:focus{outline:none;border-color:var(--o48-t)!important;box-shadow:0 0 0 3px rgba(13,122,115,.15)!important}

/* ---------- États vides / chargement ---------- */
html body .bv-vide,html body .o45l-encours-vide{color:var(--o48-muet)!important;background:#fff;border:1px dashed #D0D5DD!important;border-radius:var(--o48-r)!important;padding:18px 16px!important;box-shadow:none!important}
html body .bv-vide:before,html body .o45l-encours-vide:before{content:"";flex:none;width:22px;height:22px;margin-right:10px;border-radius:999px;background:var(--o48-t1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d7a73' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E") center/14px no-repeat}
.o48-charge{display:inline-flex;align-items:center;gap:8px;color:var(--o48-muet)}
.o48-charge:before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid #D0D5DD;border-top-color:var(--o48-t);animation:o48tourne .8s linear infinite}
@keyframes o48tourne{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.o48-charge:before{animation:none}}

/* ---------- Espace livreur : même structure que patient / pharmacie ---------- */
html body #app:has(.o45l)>header.top{display:none!important} /* le menu du site public n’a pas sa place dans l’espace de travail */
@media (min-width:901px){
  html body #app:has(.o45l)>main.wrap{max-width:none!important;width:auto!important;padding:0!important;margin:0!important}
  html body .o45l{max-width:none!important;margin:0!important;grid-template-columns:252px minmax(0,1fr)!important;background:var(--o48-fond)}
  html body .o45l>.o45l-top{grid-column:1/3!important;height:64px;padding:0 24px!important;border-bottom:1px solid var(--o48-ligne)}
  html body .o45l>.o45l-tabs{grid-column:1!important;grid-row:2!important;align-items:stretch!important;gap:2px!important;padding:16px 14px!important;background:var(--o48-side)!important;border-right:0!important;top:64px!important;min-height:calc(100vh - 64px)!important}
  html body .o45l>.o45l-tabs>button{justify-content:flex-start!important;gap:10px!important;padding:0 12px!important;min-height:42px!important;border-radius:10px!important;color:rgba(255,255,255,.8)!important;font-weight:500!important;font-size:14.5px!important;width:100%!important;text-align:left}
  html body .o45l>.o45l-tabs>button:hover{background:var(--o48-side2)!important;color:#fff!important}
  html body .o45l>.o45l-tabs>button.on{background:var(--o48-o)!important;color:#fff!important;font-weight:600!important}
  html body .o45l>.o45l-tabs>button.on i{background:#fff!important;color:var(--o48-o6)!important}
  html body .o45l>.o45l-top{background:#fff!important}
  html body .o45l>.o45l-tabs>button i{position:static!important;margin-left:auto}
  html body .o45l>.o45l-corps{grid-column:2!important;grid-row:2!important;width:auto!important;max-width:1000px;padding:24px 32px 40px!important;box-sizing:border-box}
  html body .o45l>.o45l-corps>div{width:auto!important}
  html body .o45l .o45l-qui strong{font-size:16px}
}

/* ---------- Mobile / tablette : barre du bas sur une ligne (règle du propriétaire conservée), en-tête net ---------- */
@media (max-width:900px){
  html body .o42-top,html body .o43-top,html body .o45l-top{background:#fff!important;border-bottom:1px solid var(--o48-ligne)!important;box-shadow:0 1px 0 rgba(16,24,40,.02)}
  html body .o42-tabs,html body .o43-tabs,html body .o45l-tabs{background:rgba(255,255,255,.98)!important;border-top:1px solid var(--o48-ligne)!important;box-shadow:0 -2px 10px rgba(16,24,40,.05)}
  html body .o42-tabs>button,html body .o43-tabs>button,html body .o45l-tabs>button{color:var(--o48-muet)!important;font-weight:500!important}
  html body .o42-tabs>button.on,html body .o43-tabs>button.on,html body .o45l-tabs>button.on{color:var(--o48-o6)!important;font-weight:600!important}
  html body .o42-tabs>button svg,html body .o43-tabs>button svg,html body .o45l-tabs>button svg{stroke-width:1.9!important}
  html body .bv-app .card,html body .o45l .o45l-carte{border-radius:12px!important}
}
@media (min-width:601px) and (max-width:900px){html body .bv-main{padding:16px 24px!important}}

/* ---------- Cartes statistiques pastel avec icône (valeurs réelles déjà affichées par l’application) ---------- */
html body .bv-app .bv-stats>*,html body .bv-app .o43-kpis>*{position:relative;padding-left:64px!important;min-height:76px;box-sizing:border-box}
html body .bv-app .bv-stats>*:before,html body .bv-app .o43-kpis>*:before{content:"";position:absolute;left:14px;top:16px;width:38px;height:38px;border-radius:10px;background:#fff center/20px no-repeat}
html body .bv-app .bv-stats>*:nth-child(4n+1),html body .bv-app .o43-kpis>*:nth-child(4n+1){background:#EEF4FF!important;border-color:#DCE6FB!important}
html body .bv-app .bv-stats>*:nth-child(4n+2),html body .bv-app .o43-kpis>*:nth-child(4n+2){background:#ECFDF3!important;border-color:#D3F3E1!important}
html body .bv-app .bv-stats>*:nth-child(4n+3),html body .bv-app .o43-kpis>*:nth-child(4n+3){background:#F4F0FF!important;border-color:#E4DCFB!important}
html body .bv-app .bv-stats>*:nth-child(4n+4),html body .bv-app .o43-kpis>*:nth-child(4n+4){background:#FFF3EA!important;border-color:#FBE0CC!important}
html body .bv-app .bv-stats>*:nth-child(4n+1):before,html body .bv-app .o43-kpis>*:nth-child(4n+1):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563C9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E")}
html body .bv-app .bv-stats>*:nth-child(4n+2):before,html body .bv-app .o43-kpis>*:nth-child(4n+2):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23067647' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
html body .bv-app .bv-stats>*:nth-child(4n+3):before,html body .bv-app .o43-kpis>*:nth-child(4n+3):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B4FD8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h11v10H3zM14 10h4l3 3v4h-7'/%3E%3Ccircle cx='7' cy='18' r='1.6'/%3E%3Ccircle cx='17' cy='18' r='1.6'/%3E%3C/svg%3E")}
html body .bv-app .bv-stats>*:nth-child(4n+4):before,html body .bv-app .o43-kpis>*:nth-child(4n+4):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D9550C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='13' rx='2'/%3E%3Cpath d='M3 10h18M7 15h3'/%3E%3C/svg%3E")}
@media (max-width:600px){html body .bv-app .bv-stats>*,html body .bv-app .o43-kpis>*{padding-left:12px!important}html body .bv-app .bv-stats>*:before,html body .bv-app .o43-kpis>*:before{display:none}}

/* ---------- Carte « Activité » : graphiques SVG légers, calculés sur les demandes réellement reçues par l’API ---------- */
.o48-activite{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;margin:0 0 18px}
.o48-activite>section{background:#fff;border:1px solid var(--o48-ligne);border-radius:var(--o48-r);box-shadow:var(--o48-ombre);padding:16px 18px;min-width:0}
.o48-activite h3{margin:0 0 2px;font:600 15px/1.3 var(--o48-police);color:var(--o48-encre)}
.o48-activite h3+p{margin:0 0 10px;font:400 12.5px/1.3 var(--o48-police);color:var(--o48-muet)}
.o48-activite svg{display:block;width:100%;height:auto}
.o48-activite svg text{font:500 11px var(--o48-police);fill:#6B7280}
.o48-donut{display:flex;align-items:center;gap:16px}
.o48-donut svg{width:120px;flex:none}
.o48-donut ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font:500 13px var(--o48-police);color:var(--o48-encre2);min-width:0}
.o48-donut li{display:flex;align-items:center;gap:8px}
.o48-donut li i{width:10px;height:10px;border-radius:3px;flex:none}
.o48-donut li b{margin-left:auto;color:var(--o48-encre);font-weight:600;padding-left:8px}
@media (max-width:900px){.o48-activite{grid-template-columns:1fr}}
@media (min-width:901px){.o48-profil{height:44px!important}.o48-profil span{display:flex;flex-direction:column;line-height:1.15;text-align:left}.o48-profil span small{font:500 11.5px var(--o48-police);color:var(--o48-muet)}}
html body .bv-app label small,html body .o45l label small{font-size:12px!important}
/* barre latérale sombre : textes et icônes lisibles (priorité sur les règles des lots 42/43) */
html body .bv-app.bv-app .bv-nav button span,html body .bv-app.bv-app .bv-nav button svg{color:inherit!important;stroke:currentColor}
html body .bv-app.bv-app .bv-marque strong{color:#FF8A3D!important}
html body .bv-app.bv-app .bv-side small,html body .bv-app.bv-app .bv-side span{color:inherit}
/* ---------- Lot 48b ---------- */
/* titre en double (bureau) : le titre est dans la barre supérieure */
@media (min-width:901px){html body .o48-doublon{display:none!important}}
/* recherche dans la barre supérieure (bureau) ; le champ d’origine reste la seule logique de recherche */
.o48-recherche{display:none}
@media (min-width:901px){
  html body .o48-bar .o48-recherche{display:flex;align-items:center;gap:8px;flex:0 1 360px;min-width:180px;height:40px;padding:0 14px;background:#fff;border:1px solid var(--o48-ligne);border-radius:999px;box-shadow:var(--o48-ombre)}
  html body .o48-bar .o48-recherche:focus-within{border-color:var(--o48-t);box-shadow:0 0 0 3px rgba(13,122,115,.15)}
  html body .o48-bar .o48-recherche svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--o48-muet);stroke-width:2;stroke-linecap:round}
  html body .o48-bar .o48-recherche input{flex:1;min-width:0;border:0!important;outline:0;box-shadow:none!important;background:transparent;font:400 14px var(--o48-police);color:var(--o48-encre);padding:0!important;min-height:0}
  html.o48-recherche-haut body .bv-main .bv-cherche-barre>.cherche-boite,html.o48-recherche-haut body .bv-main form.bv-cherche-patient{display:none!important}
}
/* accueil livreur */
.o48l{display:grid;gap:14px;margin:0 0 16px}
.o48l-salut{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-flow:row wrap}
.o48l-salut strong{display:block;font:650 21px/1.25 var(--o48-police);color:var(--o48-encre)}
.o48l-salut span{display:block;font:400 13.5px var(--o48-police);color:var(--o48-muet)}
.o48l-salut time{font:600 13px var(--o48-police);color:var(--o48-t6);background:var(--o48-t1);border-radius:999px;padding:6px 12px}
html body .o45l .o48l-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px!important;margin:0!important}
html body .o45l .o48l-stats>article{position:relative;padding:14px 14px 14px 64px!important;min-height:76px;border-radius:12px;border:1px solid var(--o48-ligne);box-sizing:border-box}
html body .o45l .o48l-stats>article:before{content:"";position:absolute;left:14px;top:16px;width:38px;height:38px;border-radius:10px;background:#fff center/20px no-repeat}
html body .o45l .o48l-stats>article:nth-child(1){background:#F4F0FF!important}html body .o45l .o48l-stats>article:nth-child(2){background:#ECFDF3!important}html body .o45l .o48l-stats>article:nth-child(3){background:#EEF4FF!important}html body .o45l .o48l-stats>article:nth-child(4){background:#FFF3EA!important}
html body .o45l .o48l-stats>article:nth-child(1):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B4FD8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8zM14 3v5h5'/%3E%3C/svg%3E")}
html body .o45l .o48l-stats>article:nth-child(2):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23067647' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h11v10H3zM14 10h4l3 3v4h-7'/%3E%3C/svg%3E")}
html body .o45l .o48l-stats>article:nth-child(3):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563C9' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E")}
html body .o45l .o48l-stats>article:nth-child(4):before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D9550C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V9M10 19V5M16 19v-7M22 19H2'/%3E%3C/svg%3E")}
html body .o45l .o48l-stats b{display:block;font:700 22px/1.1 var(--o48-police);color:var(--o48-encre)}
html body .o45l .o48l-stats span{display:block;font:600 13px/1.3 var(--o48-police);color:var(--o48-encre2);margin-top:2px}
html body .o45l .o48l-stats small{display:block;font:400 12px/1.3 var(--o48-police);color:var(--o48-muet)}
.o48l-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:14px}
.o48l-grille>section{background:#fff;border:1px solid var(--o48-ligne);border-radius:12px;box-shadow:var(--o48-ombre);padding:16px;min-width:0}
.o48l-grille h3{margin:0 0 10px;font:600 15px var(--o48-police);color:var(--o48-encre)}
.o48l-pro p{margin:0 0 6px;font:400 14px/1.4 var(--o48-police);color:var(--o48-encre2)}
.o48l-pro .o48l-code{font-weight:700;color:var(--o48-encre);display:flex;gap:8px;align-items:center;flex-flow:row wrap}
html body .o45l .o48l-voir{margin-top:8px!important;width:auto!important;background:var(--o48-o)!important;color:#fff!important;border:0!important;padding:0 16px!important}
.o48-defile{overflow-x:auto;-webkit-overflow-scrolling:touch}
.o48-badge{display:inline-block;border-radius:999px;padding:2px 10px;font:600 12.5px/1.5 var(--o48-police);background:#FFFAEB;color:#B54708;white-space:nowrap}
.o48-badge.ok{background:#ECFDF3;color:#067647}.o48-badge.neutre{background:#F2F4F7;color:#475467}.o48-badge.att{background:#FFFAEB;color:#B54708}
@media (max-width:900px){html body .o45l .o48l-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.o48l-grille{grid-template-columns:1fr}}
@media (max-width:420px){html body .o45l .o48l-stats>article{padding-left:14px!important}html body .o45l .o48l-stats>article:before{display:none}}
/* actions rapides pharmacie */
.o48-actions{background:#fff;border:1px solid var(--o48-ligne);border-radius:12px;box-shadow:var(--o48-ombre);padding:16px 18px;margin:0 0 18px}
.o48-actions h3{margin:0 0 12px;font:600 15px var(--o48-police);color:var(--o48-encre)}
.o48-actions>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.o48-actions button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px;border:1px solid var(--o48-ligne);border-radius:12px;background:#FAFBFC;cursor:pointer;font-family:var(--o48-police);min-height:44px}
.o48-actions button:hover{border-color:var(--o48-t);background:var(--o48-t1)}
.o48-actions button:focus-visible{outline:2px solid var(--o48-t);outline-offset:2px}
.o48-actions svg{width:22px;height:22px;fill:none;stroke:var(--o48-t);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.o48-actions b{font-size:14px;color:var(--o48-encre)}.o48-actions small{font-size:12.5px;color:var(--o48-muet)}
@media (max-width:600px){.o48-actions>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---------- Lot 48c : la page ne s’élargit jamais ; tableaux larges défilant dans leur propre cadre ; barre du bas toujours fixée ---------- */
html body:has(.bv-app),html body:has(.o45l){overflow-x:clip}
html body .bv-app,html body .o45l{max-width:100vw}
html body .bv-main,html body .o45l-corps,html body .bv-board,html body .bv-main section,html body .bv-main .card,html body .o45l-corps section{min-width:0}
@media (max-width:900px){
  html body .bv-main,html body .o45l-corps{overflow-x:clip;max-width:100vw;box-sizing:border-box}
  html body .bv-app table,html body .o45l table{display:block!important;width:auto!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  html body .bv-app table td,html body .o45l table td{white-space:normal}
  html body .bv-app table td [class*="badge"],html body .bv-app table td .o40-pec,html body .bv-app table td small{white-space:normal!important;overflow-wrap:anywhere}
  html body .o42-tabs,html body .o43-tabs,html body .o45l-tabs{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;max-width:100vw!important;transform:none!important;z-index:9990!important;visibility:visible!important;opacity:1!important}
  html body .bv-app,html body .bv-main,html body .o45l,html body #app,html body main.wrap{transform:none!important;filter:none!important;contain:none!important;will-change:auto!important;perspective:none!important}
}
/* ---------- Lot 48c : aide localisation, carte « Activez votre localisation » ---------- */
.o48c-astuce{font-size:13px!important;color:#5B6470!important;margin:6px 0 0!important;line-height:1.45}
.o48c-geo-aide{margin:10px 0;padding:12px 14px;border:1px solid #F6C9A8;background:#FFF7F1;border-radius:14px;color:#1F2937;font-size:14px;line-height:1.5}
.o48c-geo-aide ol{margin:6px 0 6px 18px;padding:0}.o48c-geo-aide li{margin:3px 0}.o48c-geo-note{color:#5B6470;font-size:13px}
.o48c-pos-requise{color:#9A3412;background:#FFF1E8;border-radius:10px;padding:8px 10px;font-weight:600}
html body .o48c-gate{margin:16px 0;padding:24px 20px;border-radius:20px;background:#fff;border:1px solid #E7E9EC;box-shadow:0 1px 3px rgba(16,24,40,.08);text-align:center;max-width:640px}
.o48c-gate h2{margin:6px 0 8px;font-size:20px}.o48c-gate p{margin:6px auto;max-width:520px;color:#4A525C}.o48c-gate-ico{font-size:34px}
html body .bv-app.bv-app .o48c-gate .o48c-gate-btn{background:#F26B1D!important;color:#fff!important;border:0!important;border-radius:12px!important;padding:12px 22px!important;font-weight:700;font-size:16px}
html.o48c-sans-pos body .bv-pharma .bv-main .bv-liste,html.o48c-sans-pos body .bv-pharma .bv-main details.ordo-pli{display:none!important}
/* Lot 48c : une seule invitation — l’ancienne fenêtre et l’ancienne tuile « position inconnue » sont masquées quand la carte lot 48c est affichée */
html body .ordo28-ph-pos{display:none!important}
html.o48c-sans-pos body #bv-ph-sans-pos{display:none!important}
.o48c-profil{margin:0 0 14px}.o48c-profil form label{display:block;margin:0 0 10px}.o48c-profil-msg.o48c-ok{color:#067647;font-weight:700}.o48c-profil-msg.o48c-err{color:#9A3412;font-weight:700}
.o48c-profil fieldset{border:1px solid #E7E9EC;border-radius:12px;padding:10px 12px;margin:0 0 10px}
