/* ScanEvent Browser — page de démarrage façon Chrome, résultats façon moteur de recherche, charte ScanEvent. */
:root {
  --bleu: #3B82F6; --bleu-f: #2563EB; --bleu-ff: #1D4ED8; --bleu-c: #DBEAFE; --bleu-cc: #EFF6FF;
  --indigo: #4F46E5; --vert: #10B981; --vert-c: #D1FAE5; --orange: #F59E0B; --orange-c: #FEF3C7; --rouge: #EF4444;
  --texte: #1F2937; --texte2: #4B5563; --gris: #6B7280; --gris-c: #9CA3AF;
  --bord: #E5E7EB; --bord-f: #D1D5DB; --fond: #FFFFFF; --fond2: #F9FAFB; --fond3: #F3F4F6; --carte: #FFFFFF;
  --ombre-barre: 0 1px 6px rgba(31, 41, 55, .20); --ombre-carte: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);
  --ombre-pop: 0 10px 38px rgba(15, 23, 42, .18), 0 2px 8px rgba(15, 23, 42, .08);
  --lien: #1D4ED8; --lien-vu: #6D28D9;
  --r: 14px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --texte: #E5E7EB; --texte2: #CBD5E1; --gris: #94A3B8; --gris-c: #64748B;
    --bord: #2A3344; --bord-f: #3A4558; --fond: #111827; --fond2: #0F1623; --fond3: #1F2937; --carte: #18212F;
    --bleu-c: #1E3A5F; --bleu-cc: #172B47; --vert-c: #064E3B; --orange-c: #4A3712;
    --ombre-barre: 0 1px 6px rgba(0, 0, 0, .55); --ombre-carte: 0 1px 2px rgba(0, 0, 0, .4); --ombre-pop: 0 12px 40px rgba(0, 0, 0, .6);
    --lien: #93C5FD; --lien-vu: #C4B5FD;
    color-scheme: dark;
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; background: var(--fond); color: var(--texte);
  font-size: 14px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
input, textarea, select { font: inherit; color: inherit; }
svg.i { width: 20px; height: 20px; fill: currentColor; flex-shrink: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.logo-clair { display: none; }
@media (prefers-color-scheme: dark) { .logo-sombre { display: none; } .logo-clair { display: inline; } }

/* ───── Barre du haut (liens, damier, compte) ───── */
.haut { display: flex; align-items: center; justify-content: flex-end; gap: 4px; padding: 6px 12px 0; height: 60px; }
.haut .lien { padding: 6px 10px; border-radius: 8px; font-size: 13.5px; color: var(--texte); display: inline-flex; align-items: center; gap: 6px; }
.haut .lien:hover { text-decoration: underline; }
.ico-btn { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--texte2); position: relative; }
.ico-btn:hover, .ico-btn[aria-expanded="true"] { background: var(--fond3); }
.ico-btn:focus-visible, .btn:focus-visible, .tuile:focus-visible { outline: 2px solid var(--bleu); outline-offset: 2px; }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--bleu); color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px; overflow: hidden; object-fit: cover; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 38px; padding: 0 18px; border-radius: 999px; font-weight: 600;
  font-size: 14px; transition: background .15s, box-shadow .15s, border-color .15s; white-space: nowrap; }
.btn-bleu { background: var(--bleu); color: #fff; }
.btn-bleu:hover { background: var(--bleu-f); box-shadow: 0 1px 3px rgba(37, 99, 235, .35); }
.btn-bleu:disabled { opacity: .6; cursor: default; }
.btn-contour { border: 1px solid var(--bord-f); background: var(--carte); color: var(--bleu-f); }
.btn-contour:hover { background: var(--bleu-cc); border-color: var(--bleu-c); }
.btn-gris { background: var(--fond3); color: var(--texte); }
.btn-gris:hover { filter: brightness(.97); }
.btn-petit { height: 32px; padding: 0 12px; font-size: 13px; }
@media (prefers-color-scheme: dark) { .btn-contour { color: #93C5FD; } }

/* ───── Accueil (nouvel onglet) ───── */
.accueil { min-height: 100vh; display: flex; flex-direction: column; }
.accueil main { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 6vh 16px 40px; }
.marque { display: flex; flex-direction: column; align-items: center; margin-bottom: 26px; user-select: none; }
.marque img { width: min(330px, 78vw); height: auto; }
.marque .sous { margin-top: 6px; font-size: 15px; font-weight: 700; letter-spacing: .32em; text-transform: uppercase; color: var(--bleu); padding-left: .32em; }
.recherche { position: relative; width: min(584px, 100%); }
.barre { display: flex; align-items: center; height: 48px; border: 1px solid var(--bord); border-radius: 24px; background: var(--carte); padding: 0 6px 0 16px; gap: 10px;
  transition: box-shadow .15s, border-color .15s; }
.barre:hover, .recherche.ouverte .barre, .barre:focus-within { box-shadow: var(--ombre-barre); border-color: transparent; }
.recherche.ouverte .barre { border-radius: 24px 24px 0 0; border-bottom-color: transparent; }
.barre > svg { color: var(--gris); }
.barre input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; font-size: 16px; }
.barre input::-webkit-search-cancel-button { display: none; }
.barre .ico-btn { width: 36px; height: 36px; color: var(--bleu); }
.barre .ico-btn.efface { color: var(--gris); }
.barre .sep { width: 1px; height: 24px; background: var(--bord); }
.barre .ico-btn.ecoute { color: #fff; background: var(--rouge); animation: pouls 1.2s infinite; }
@keyframes pouls { 50% { box-shadow: 0 0 0 8px rgba(239, 68, 68, .15); } }
.sugg { position: absolute; left: 0; right: 0; top: 47px; background: var(--carte); border-radius: 0 0 24px 24px; box-shadow: var(--ombre-barre); z-index: 30;
  padding: 0 0 12px; display: none; clip-path: inset(0 -10px -10px -10px); }
.recherche.ouverte .sugg { display: block; }
.sugg .trait { height: 1px; background: var(--bord); margin: 0 18px 6px; }
.sugg a { display: flex; align-items: center; gap: 12px; padding: 6px 18px; min-height: 40px; }
.sugg a.actif, .sugg a:hover { background: var(--fond3); }
.sugg .vign { width: 32px; height: 32px; border-radius: 8px; object-fit: cover; background: var(--fond3); flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: var(--gris); }
.sugg .vign.rond { border-radius: 50%; }
.sugg b { font-weight: 600; }
.sugg .t { flex: 1; min-width: 0; }
.sugg .t span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sugg .t small { color: var(--gris); font-size: 12px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sugg .type { font-size: 11px; color: var(--gris); }

.raccourcis { display: grid; grid-template-columns: repeat(4, 112px); gap: 4px 8px; margin-top: 30px; justify-content: center; }
@media (max-width: 520px) { .raccourcis { grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; } }
.tuile { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 6px 10px; border-radius: 12px; text-align: center; }
.tuile:hover { background: var(--fond3); }
.tuile .rond { width: 48px; height: 48px; border-radius: 50%; background: var(--fond3); display: flex; align-items: center; justify-content: center; color: var(--bleu); }
.tuile:hover .rond { background: var(--carte); box-shadow: var(--ombre-carte); }
.tuile .rond svg { width: 24px; height: 24px; }
.tuile span { font-size: 12.5px; color: var(--texte); line-height: 1.25; max-width: 104px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.chiffres { margin-top: 26px; color: var(--gris); font-size: 13px; text-align: center; }
.chiffres b { color: var(--texte2); font-weight: 600; }
.bas-accueil { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; gap: 12px; flex-wrap: wrap; }
.bas-accueil .liens { display: flex; gap: 18px; font-size: 13px; color: var(--gris); flex-wrap: wrap; }
.bas-accueil .liens a:hover { color: var(--texte); }
.btn-ajouter { box-shadow: 0 1px 3px rgba(15, 23, 42, .15); background: var(--carte); color: var(--bleu-f); border: 1px solid var(--bord); }
.btn-ajouter:hover { background: var(--bleu-cc); }
@media (prefers-color-scheme: dark) { .btn-ajouter { color: #93C5FD; } }

/* ───── Damier des solutions ───── */
.pop { position: absolute; z-index: 60; background: var(--carte); border-radius: 22px; box-shadow: var(--ombre-pop); }
.damier { width: 328px; padding: 18px 14px 14px; }
.damier .grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; background: var(--fond2); border-radius: 16px; padding: 10px 6px; }
.damier a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 4px 10px; border-radius: 12px; text-align: center; }
.damier a:hover { background: var(--bleu-cc); }
.damier .app-ico { width: 46px; height: 46px; border-radius: 13px; display: flex; align-items: center; justify-content: center; color: #fff; }
.damier .app-ico svg { width: 24px; height: 24px; }
.damier span { font-size: 12.5px; font-weight: 500; }
.damier .titre-pop { font-size: 13px; color: var(--gris); padding: 0 8px 10px; }
.menu-compte { width: 300px; padding: 18px; text-align: center; }
.menu-compte .avatar { width: 64px; height: 64px; font-size: 24px; margin: 4px auto 10px; display: flex; }
.menu-compte .nom { font-weight: 700; font-size: 16px; }
.menu-compte .mail { color: var(--gris); font-size: 13px; margin-bottom: 14px; word-break: break-all; }
.menu-compte .lst { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; text-align: left; }
.menu-compte .lst a, .menu-compte .lst button { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 10px; width: 100%; }
.menu-compte .lst a:hover, .menu-compte .lst button:hover { background: var(--fond3); }

/* ───── Page de résultats ───── */
.entete { position: sticky; top: 0; z-index: 20; background: var(--fond); border-bottom: 1px solid var(--bord); }
.entete .l1 { display: flex; align-items: center; gap: 22px; padding: 16px 16px 6px 24px; }
.entete .logo-mini { flex-shrink: 0; display: flex; align-items: center; }
.entete .logo-mini img { height: 26px; width: auto; }
.entete .recherche { width: min(690px, 100%); flex: 0 1 690px; }
.entete .barre { height: 46px; box-shadow: var(--ombre-barre); border-color: transparent; }
.entete .droite { margin-left: auto; display: flex; align-items: center; gap: 2px; }
.onglets { display: flex; gap: 2px; padding: 0 16px 0 calc(24px + 138px); overflow-x: auto; scrollbar-width: none; }
.onglets::-webkit-scrollbar { display: none; }
.onglets a { display: inline-flex; align-items: center; gap: 6px; padding: 12px 12px 10px; color: var(--texte2); font-size: 14px; border-bottom: 3px solid transparent; white-space: nowrap; }
.onglets a svg { width: 16px; height: 16px; }
.onglets a.actif { color: var(--bleu-f); border-bottom-color: var(--bleu); font-weight: 600; }
.onglets a:hover { color: var(--texte); }
.onglets .outils-btn { margin-left: 10px; }
@media (prefers-color-scheme: dark) { .onglets a.actif { color: #93C5FD; } }
.outils { display: flex; gap: 8px; padding: 10px 16px 12px calc(24px + 138px); flex-wrap: wrap; border-top: 1px solid var(--bord); }
.chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--bord-f); background: var(--carte);
  font-size: 13px; color: var(--texte2); white-space: nowrap; position: relative; }
.chip:hover { background: var(--fond3); }
.chip.actif { background: var(--bleu-cc); border-color: var(--bleu-c); color: var(--bleu-ff); font-weight: 600; }
@media (prefers-color-scheme: dark) { .chip.actif { color: #BFDBFE; } }
.chip svg { width: 16px; height: 16px; }
.chip select { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.page { display: flex; gap: 72px; padding: 14px 16px 60px calc(24px + 138px); align-items: flex-start; }
.colonne { width: 100%; max-width: 652px; min-width: 0; }
.panneau { width: 372px; flex-shrink: 0; position: sticky; top: 150px; }
@media (max-width: 1180px) { .panneau { display: none; } .page { gap: 0; } }
@media (max-width: 900px) {
  .entete .l1 { padding: 10px 12px 4px; gap: 10px; flex-wrap: wrap; }
  .entete .logo-mini img { height: 22px; }
  .entete .recherche { order: 3; flex-basis: 100%; }
  .onglets, .outils, .page { padding-left: 12px; }
}
.compte-res { color: var(--gris); font-size: 13px; margin: 2px 0 18px; }
.approx { background: var(--orange-c); color: var(--texte); border-radius: 10px; padding: 10px 14px; margin-bottom: 18px; font-size: 13.5px; }
.bloc-titre { font-size: 20px; font-weight: 600; margin: 30px 0 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bloc-titre:first-child { margin-top: 4px; }
.bloc-titre a { font-size: 13.5px; font-weight: 600; color: var(--lien); }
.res { display: flex; gap: 16px; padding: 4px 0 26px; }
.res .corps { flex: 1; min-width: 0; }
.res .source { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.res .favi { width: 28px; height: 28px; border-radius: 50%; background: var(--fond3); border: 1px solid var(--bord); display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
.res .favi img { width: 18px; height: 18px; object-fit: contain; }
.res .favi svg { width: 16px; height: 16px; color: var(--bleu); }
.res .source b { display: block; font-size: 14px; font-weight: 500; line-height: 1.25; }
.res .source small { display: block; font-size: 12px; color: var(--gris); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 470px; }
.res h3 { margin: 0 0 4px; font-size: 20px; font-weight: 500; line-height: 1.3; }
.res h3 a { color: var(--lien); }
.res h3 a:hover { text-decoration: underline; }
.res h3 a:visited { color: var(--lien-vu); }
.res .meta { font-size: 13.5px; color: var(--texte2); margin-bottom: 4px; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.res .meta span { display: inline-flex; align-items: center; gap: 5px; }
.res .meta svg { width: 15px; height: 15px; color: var(--gris); }
.res .extrait { color: var(--texte2); font-size: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
mark { background: none; color: inherit; font-weight: 700; }
.res h3 mark { font-weight: 600; }
.res .actions { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.res .vign { width: 128px; height: 92px; border-radius: 10px; object-fit: cover; flex-shrink: 0; background: var(--fond3); margin-top: 30px; }
@media (max-width: 560px) { .res .vign { width: 92px; height: 72px; } .res h3 { font-size: 18px; } }
.etiq { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--fond3); color: var(--texte2); }
.etiq.bleu { background: var(--bleu-cc); color: var(--bleu-ff); }
.etiq.vert { background: var(--vert-c); color: #047857; }
.etiq.orange { background: var(--orange-c); color: #B45309; }
@media (prefers-color-scheme: dark) { .etiq.bleu { color: #BFDBFE; } .etiq.vert { color: #6EE7B7; } .etiq.orange { color: #FCD34D; } }

/* Fiches entreprise (résultats) */
.entreprises { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 640px) { .entreprises { grid-template-columns: 1fr; } }
.co { background: var(--carte); border: 1px solid var(--bord); border-radius: 18px; padding: 16px; display: flex; flex-direction: column; gap: 10px; box-shadow: var(--ombre-carte);
  transition: box-shadow .15s, transform .15s; min-width: 0; }
.co:hover { box-shadow: 0 6px 22px rgba(15, 23, 42, .09); }
.co .tete { display: flex; gap: 12px; align-items: center; min-width: 0; }
.logo-co { width: 54px; height: 54px; border-radius: 14px; flex-shrink: 0; border: 1px solid var(--bord); background: #fff; display: flex; align-items: center; justify-content: center;
  overflow: hidden; font-weight: 800; font-size: 20px; color: #fff; }
.logo-co img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.co .nom { font-size: 19px; font-weight: 700; line-height: 1.2; word-break: break-word; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.co .nom a:hover { text-decoration: underline; }
.co .sous { font-size: 12.5px; color: var(--gris); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 2px; }
.badge-ok { display: inline-flex; align-items: center; gap: 3px; color: var(--bleu-f); font-weight: 600; }
.badge-ok svg { width: 15px; height: 15px; }
.co .desc { font-size: 13.5px; color: var(--texte2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.secteurs { display: flex; flex-wrap: wrap; gap: 6px; }
.lieu { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--texte2); }
.lieu svg { width: 16px; height: 16px; color: var(--gris); }
.contacts { display: flex; flex-wrap: wrap; gap: 6px; }
.contact { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 999px; background: var(--fond3); font-size: 13px; font-weight: 500; max-width: 100%; }
.contact span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.contact:hover { background: var(--bleu-cc); color: var(--bleu-ff); }
.contact svg { width: 16px; height: 16px; }
.contact.wa { background: #DCFCE7; color: #15803D; }
.contact.wa:hover { background: #BBF7D0; }
@media (prefers-color-scheme: dark) { .contact.wa { background: #064E3B; color: #86EFAC; } .contact:hover { color: #BFDBFE; } }
.co .pied { display: flex; gap: 6px; align-items: center; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--bord); flex-wrap: wrap; }
.co .pied .esp { flex: 1; }
.lien-discret { font-size: 12.5px; color: var(--lien); font-weight: 500; }
.lien-discret:hover { text-decoration: underline; }

/* Images */
.bandeau-img { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; margin-bottom: 8px; }
.bandeau-img a { flex-shrink: 0; width: 168px; }
.bandeau-img img { width: 168px; height: 112px; object-fit: cover; border-radius: 12px; background: var(--fond3); display: block; }
.bandeau-img span { display: block; font-size: 12px; color: var(--texte2); margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.galerie { columns: 4 220px; column-gap: 12px; padding: 14px 16px 60px calc(24px + 138px); }
@media (max-width: 900px) { .galerie { padding-left: 12px; columns: 2 150px; } }
.galerie a { break-inside: avoid; display: block; margin-bottom: 14px; }
.galerie img { width: 100%; border-radius: 12px; display: block; background: var(--fond3); min-height: 80px; }
.galerie a:hover img { box-shadow: var(--ombre-pop); }
.galerie b { display: block; font-size: 13px; font-weight: 500; margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.galerie small { color: var(--gris); font-size: 12px; }

/* Panneau de connaissance (colonne de droite) */
.connaissance { border: 1px solid var(--bord); border-radius: 18px; overflow: hidden; background: var(--carte); }
.connaissance .couv { height: 190px; background: var(--fond3) center/cover no-repeat; }
.connaissance .contenu { padding: 18px; }
.connaissance h2 { margin: 0; font-size: 26px; line-height: 1.2; font-weight: 600; }
.connaissance .type { color: var(--gris); margin: 4px 0 12px; }
.connaissance .desc { font-size: 14px; color: var(--texte2); }
.faits { margin: 14px 0 0; border-top: 1px solid var(--bord); padding-top: 12px; display: grid; gap: 8px; font-size: 14px; }
.faits div { display: flex; gap: 6px; }
.faits b { font-weight: 600; white-space: nowrap; }

/* Fin de liste */
.plus { display: flex; justify-content: center; margin: 10px 0 30px; }
.plus .btn { width: 100%; max-width: 420px; height: 44px; }
.vide { padding: 30px 0; }
.vide h2 { font-weight: 500; font-size: 18px; margin: 0 0 12px; }
.vide ul { color: var(--texte2); padding-left: 20px; }
.attente { display: flex; flex-direction: column; gap: 22px; padding-top: 10px; }
.squelette { height: 14px; border-radius: 8px; background: linear-gradient(90deg, var(--fond3), var(--bord), var(--fond3)); background-size: 200% 100%; animation: chargement 1.2s infinite; }
@keyframes chargement { to { background-position: -200% 0; } }

/* ───── Fiche détaillée (/e/…, /c/…) ───── */
.fiche { max-width: 1080px; margin: 0 auto; padding: 22px 16px 70px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
@media (max-width: 900px) { .fiche { grid-template-columns: 1fr; } }
.fiche .retour { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 6px; color: var(--lien); font-weight: 500; width: max-content; }
.fiche .hero { border-radius: 22px; overflow: hidden; background: var(--fond3); aspect-ratio: 16 / 7; position: relative; }
.fiche .hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fiche .hero .note { position: absolute; left: 12px; bottom: 10px; background: rgba(15, 23, 42, .62); color: #fff; font-size: 11.5px; padding: 3px 9px; border-radius: 999px; }
.couv-gen { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, .92); }
.couv-gen svg { width: 64px; height: 64px; }
.fiche h1 { font-size: clamp(26px, 4vw, 36px); line-height: 1.15; margin: 20px 0 8px; font-weight: 700; letter-spacing: -.01em; }
.fiche .ligne { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--texte2); font-size: 15px; margin-bottom: 14px; }
.fiche .ligne span { display: inline-flex; align-items: center; gap: 6px; }
.fiche .ligne svg { width: 18px; height: 18px; color: var(--gris); }
.fiche .texte { font-size: 15.5px; line-height: 1.65; color: var(--texte); white-space: pre-line; }
.fiche .boutons { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.carte-osm { border: 0; width: 100%; height: 260px; border-radius: 16px; margin-top: 18px; background: var(--fond3); }
.fiche aside { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 16px; }
.encart { border: 1px solid var(--bord); border-radius: 18px; padding: 18px; background: var(--carte); }
.encart h4 { margin: 0 0 10px; font-size: 15px; }
.encart p { margin: 0; color: var(--texte2); font-size: 13.5px; }
.qr-boite { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; }
.qr { background: #fff; padding: 10px; border-radius: 14px; border: 1px solid var(--bord); position: relative; line-height: 0; }
.qr svg { width: 196px; height: 196px; display: block; }
.qr .centre { position: absolute; left: 50%; top: 50%; width: 42px; height: 42px; transform: translate(-50%, -50%); border-radius: 10px; background: #fff; padding: 3px; }
.qr .centre img { width: 100%; height: 100%; border-radius: 8px; }
.fiche-co-tete { display: flex; gap: 18px; align-items: center; margin-top: 18px; }
.fiche-co-tete .logo-co { width: 92px; height: 92px; border-radius: 22px; font-size: 34px; }
.fiche-co-tete h1 { margin: 0; }
.bandeau-co { height: 160px; border-radius: 22px; background: linear-gradient(135deg, var(--bleu), var(--indigo)) center/cover no-repeat; }
.liste-contacts { display: grid; gap: 8px; }
.liste-contacts a { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; background: var(--fond2); border: 1px solid var(--bord); word-break: break-all; }
.liste-contacts a:hover { border-color: var(--bleu-c); background: var(--bleu-cc); }
.liste-contacts svg { width: 20px; height: 20px; color: var(--bleu); flex-shrink: 0; }
.liste-contacts small { display: block; color: var(--gris); font-size: 11.5px; }

/* ───── Fenêtres (connexion, ajout d'entreprise, QR) ───── */
#couche { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; background: rgba(15, 23, 42, .45); padding: 16px; }
#couche.ouverte { display: flex; }
.modale { background: var(--carte); border-radius: 26px; box-shadow: var(--ombre-pop); width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto; position: relative; }
.modale.large { width: min(720px, 100%); }
.modale .mtete { padding: 24px 26px 6px; display: flex; gap: 14px; align-items: flex-start; }
.modale .mtete h2 { margin: 0; font-size: 21px; line-height: 1.25; }
.modale .mtete p { margin: 4px 0 0; color: var(--texte2); font-size: 14px; }
.modale .fermer { position: absolute; top: 14px; right: 14px; }
.modale .mcorps { padding: 14px 26px 6px; }
.modale .mpied { padding: 14px 26px 24px; display: flex; gap: 10px; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
.modale .mpied .esp { flex: 1; }
.etapes { display: flex; gap: 6px; padding: 0 26px; margin-top: 10px; }
.etapes span { flex: 1; height: 4px; border-radius: 4px; background: var(--fond3); }
.etapes span.fait { background: var(--bleu); }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.champs .plein { grid-column: 1 / -1; }
@media (max-width: 560px) { .champs { grid-template-columns: 1fr; } }
.champ label { display: block; font-size: 12.5px; font-weight: 600; color: var(--texte2); margin-bottom: 5px; }
.champ input, .champ textarea, .champ select { width: 100%; border: 1px solid var(--bord-f); border-radius: 12px; padding: 10px 12px; background: var(--fond); outline: 0; transition: border-color .15s, box-shadow .15s; }
.champ input:focus, .champ textarea:focus, .champ select:focus { border-color: var(--bleu); box-shadow: 0 0 0 3px rgba(59, 130, 246, .18); }
.champ textarea { min-height: 84px; resize: vertical; }
.champ .aide { font-size: 12px; color: var(--gris); margin-top: 4px; }
.champ.erreur input, .champ.erreur textarea { border-color: var(--rouge); }
.msg { border-radius: 12px; padding: 10px 14px; font-size: 13.5px; margin-bottom: 12px; display: flex; gap: 8px; align-items: flex-start; }
.msg svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; }
.msg.err { background: #FEE2E2; color: #991B1B; }
.msg.info { background: var(--bleu-cc); color: var(--bleu-ff); }
.msg.ok { background: var(--vert-c); color: #065F46; }
@media (prefers-color-scheme: dark) { .msg.err { background: #4C1D1D; color: #FCA5A5; } .msg.info { color: #BFDBFE; } .msg.ok { color: #A7F3D0; } }
.choix-onglets { display: flex; background: var(--fond3); border-radius: 999px; padding: 4px; margin-bottom: 16px; }
.choix-onglets button { flex: 1; height: 36px; border-radius: 999px; font-weight: 600; color: var(--texte2); }
.choix-onglets button.actif { background: var(--carte); color: var(--texte); box-shadow: var(--ombre-carte); }
.code-saisie { letter-spacing: .5em; text-align: center; font-size: 22px !important; font-weight: 700; }
.deja { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.deja button { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--bord); text-align: left; background: var(--fond2); }
.deja button:hover { border-color: var(--bleu); }
.deja .logo-co { width: 34px; height: 34px; border-radius: 9px; font-size: 13px; }
.logo-choix { display: flex; align-items: center; gap: 12px; }
.logo-choix .logo-co { width: 64px; height: 64px; }
.succes { text-align: center; padding: 30px 26px 10px; }
.succes .rond-ok { width: 72px; height: 72px; border-radius: 50%; background: var(--vert-c); color: var(--vert); display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.succes .rond-ok svg { width: 38px; height: 38px; }
.succes h2 { margin: 0 0 8px; }
.succes p { color: var(--texte2); margin: 0 auto; max-width: 420px; }
.toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); background: #1F2937; color: #fff; padding: 12px 18px; border-radius: 12px; z-index: 200;
  font-size: 14px; box-shadow: var(--ombre-pop); animation: monte .2s ease-out; max-width: calc(100vw - 32px); }
@keyframes monte { from { transform: translate(-50%, 12px); opacity: 0; } }
