/* ═══════════════════════════════════════════════════════════
   DTISoft — Recherche globale (gs-) : overlay haut de page
   z-index 11500 : au-dessus des fiches (8000-9000) et du picker (11000),
   sous le verrouillage session (.sl-overlay). Cf. carte des z-index (contrats 2026-07-22).
   ═══════════════════════════════════════════════════════════ */

.gs-overlay {
    position: fixed; inset: 0; z-index: 11500;
    background: rgba(15, 23, 42, .45);
    display: flex; justify-content: center; align-items: flex-start;
    padding: 7vh 16px 16px;
}

.gs-panel {
    background: var(--white);
    width: min(780px, 96vw);
    max-height: 82vh;
    border-radius: 10px;
    box-shadow: 0 18px 60px rgba(0, 0, 0, .35);
    display: flex; flex-direction: column;
    overflow: hidden;
}

/* ── Ligne de saisie ── */
.gs-inputrow {
    display: flex; align-items: center; gap: 10px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--gray-200);
    flex: 0 0 auto;
}
.gs-inputrow__icon { color: var(--blue-mid); font-size: 15px; }
.gs-input {
    flex: 1; min-width: 0;
    border: none; outline: none;
    font-size: 15px; color: var(--gray-900);
    background: transparent;
}
.gs-input::placeholder { color: var(--gray-400); }
.gs-esc {
    flex: 0 0 auto;
    font-size: 11px; color: var(--gray-400);
    border: 1px solid var(--gray-300); border-radius: 4px;
    padding: 1px 6px;
}

/* ── Résultats ── */
.gs-results { overflow-y: auto; padding: 4px 0 10px; transition: opacity var(--transition); }
.gs-results.gs-loading { opacity: .55; }

.gs-hint { padding: 14px 18px; color: var(--gray-500); font-size: 12.5px; }
.gs-hint__title { font-weight: 600; margin-bottom: 6px; color: var(--gray-400); }
.gs-hint__line { padding: 2px 0; }
.gs-empty { padding: 18px; color: var(--gray-500); font-size: 13px; }

/* ── Cartes-réponses ── */
.gs-card {
    margin: 10px 16px 2px;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-left: 3px solid var(--blue-mid);
    border-radius: 6px;
    padding: 10px 14px;
}
.gs-card__title { font-size: 13px; font-weight: 700; color: var(--blue-dark); }
.gs-card__sub   { font-size: 12px; color: var(--gray-500); margin-top: 1px; }
.gs-card__line  { font-size: 12.5px; color: var(--gray-700); margin-top: 4px; }

/* ── Groupes ── */
.gs-group__head {
    padding: 12px 18px 4px;
    font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .5px;
    color: var(--gray-500);
}

.gs-item {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 6px 18px;
    cursor: pointer;
}
.gs-item:hover, .gs-item.gs-active { background: var(--blue-pale); }
.gs-item__icon { color: var(--gray-400); width: 16px; text-align: center; font-size: 12px; margin-top: 3px; }
.gs-item__body { flex: 1; min-width: 0; }
.gs-item__line1 { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.gs-item__main {
    flex: 1 1 auto; min-width: 0;
    font-size: 13px; color: var(--gray-900);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gs-item__main strong { color: var(--blue-dark); }
.gs-item__sub {
    font-size: 11.5px; color: var(--gray-500);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gs-badge {
    flex: 0 0 auto;
    display: inline-block;
    font-size: 10.5px; line-height: 16px;
    background: var(--blue-pale); color: var(--blue-dark);
    border-radius: 9px; padding: 0 8px;
    white-space: nowrap;
}

.gs-more {
    display: block;
    margin: 4px 18px 2px; padding: 3px 0;
    background: none; border: none;
    color: var(--blue-mid); font-size: 12px;
    cursor: pointer; text-align: left;
}
.gs-more:hover { text-decoration: underline; }

/* Mobile / petites fenêtres */
@media (max-width: 640px) {
    .gs-overlay { padding: 3vh 8px 8px; }
    .gs-panel { max-height: 90vh; }
    .gs-item__main, .gs-item__sub { white-space: normal; }
}
