:root { --g4search-ink: #182235; --g4search-paper: #ffffff; --g4search-brand: #002fa7; --g4search-line: #dce1eb; --g4search-hover: #eef3fb; --g4search-shadow: 0 8px 28px #18223526; }
.g4search-toggle { color: var(--g4search-brand); background: var(--g4search-paper); border: 0; width: 44px; height: 44px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; cursor: pointer; margin-left: auto; }
.header-actions .g4search-toggle { margin-left: 0; }
/* Espacement loupe / burger sur les en-têtes internes (référence : /carte) */
.expositor-header .g4search-toggle { margin-right: 18px; }
/* En-tête Marathon (bandeau noir) : le burger y est positionné en absolu,
   la loupe doit l'être aussi pour ne pas pousser le logo centré ni recouvrir
   le burger. Icône blanche sans capsule pour rester discrète sur fond noir. */
.home-screen .top-header .g4search-toggle { position: absolute; right: 70px; top: 50%; transform: translateY(-50%); margin: 0; background: transparent; color: #ffffff; }
@media (max-width: 767px) { .home-screen .top-header .g4search-toggle { right: 78px; } }
.g4search-toggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; }
.g4search-toggle:focus-visible,.g4search-panel a:focus-visible { outline: 2px solid var(--g4search-brand); outline-offset: 2px; }
.g4search-panel { position: fixed; z-index: 1600; right: 20px; width: min(440px, calc(100% - 32px)); background: var(--g4search-paper); color: var(--g4search-ink); border: 1px solid var(--g4search-line); border-radius: 8px; box-shadow: var(--g4search-shadow); padding: 12px; font-family: inherit; }
.g4search-panel[hidden] { display: none; }
.g4search-panel input { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid var(--g4search-line); border-radius: 4px; background: var(--g4search-paper); color: var(--g4search-ink); }
.g4search-panel input:focus { outline: 2px solid var(--g4search-brand); }
.g4search-results { max-height: min(440px, 55dvh); overflow-y: auto; overscroll-behavior: contain; }
.g4search-results a { display: flex; flex-direction: column; gap: 3px; padding: 10px; color: var(--g4search-ink); text-decoration: none; border-bottom: 1px solid var(--g4search-line); overflow-wrap: anywhere; }
.g4search-results a:hover,.g4search-results a:focus { background: var(--g4search-hover); }
.g4search-results small { font-size: 12px; color: var(--g4search-brand); }
.g4search-results mark { background: var(--g4search-hover); color: var(--g4search-brand); font-weight: 700; }
.g4search-status { font-size: 14px; margin: 10px 4px 0; }
.g4search-status:empty { display: none; }
@media(max-width:699px) { .g4search-panel { right: 16px; } .expositor-header:has(.g4search-toggle) .header-logo-link { min-width: 0; } .expositor-header:has(.g4search-toggle) .panel-logo { max-width: min(210px, 52vw); } }