/* ═══════════════════════════════════════════════════════════════════════════
   Liens vers les fiches produit des fournisseurs (17/09/2026)
   Bouton 🔗 de la liste Articles, son menu, et le champ de la fiche article.
   Couleurs : variables du thème uniquement (clair / sombre suivent seuls).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Bouton de la ligne ── */
.inv-liens-btn {
  position: relative; width: 30px; height: 30px; margin-right: 4px; vertical-align: middle;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border); border-radius: 8px; background: var(--white);
  font-size: 14px; line-height: 1; cursor: pointer;
}
.inv-liens-btn:hover, .inv-liens-btn:focus-visible,
.inv-liens-btn[aria-expanded="true"] { background: var(--accent-soft); border-color: var(--accent); outline: none; }
.inv-liens-btn-vide { filter: grayscale(1); opacity: .45; }
.inv-liens-btn-vide:hover, .inv-liens-btn-vide:focus-visible { opacity: .85; }
.inv-liens-nb {
  position: absolute; top: -6px; right: -6px; min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 8px; background: var(--accent); color: var(--white);
  font-size: 10px; font-weight: 700; line-height: 16px; text-align: center; box-sizing: border-box;
}

/* ── Menu ── */
.inv-liens-menu {
  position: fixed; z-index: 1200; width: 300px; max-width: calc(100vw - 16px);
  max-height: min(420px, calc(100vh - 16px)); overflow-y: auto;
  background: var(--white); border: 1px solid var(--border); border-radius: 12px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, .18); padding: 6px;
  animation: inv-liens-entree .14s ease-out;
}
@keyframes inv-liens-entree { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .inv-liens-menu { animation: none; } }

.inv-liens-titre {
  padding: 6px 10px 8px; font-size: 12px; font-weight: 600; color: var(--text-muted);
  border-bottom: 1px solid var(--border); margin-bottom: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.inv-liens-charge, .inv-liens-vide { padding: 12px 10px; font-size: 13px; color: var(--text-muted); }

.inv-liens-item {
  display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box;
  padding: 8px 10px; border: 0; border-radius: 8px; background: transparent;
  font: inherit; color: var(--text); text-align: left; cursor: pointer;
}
button.inv-liens-item:hover, button.inv-liens-item:focus-visible { background: var(--accent-soft); outline: none; }
.inv-liens-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.inv-liens-nom { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inv-liens-ref { font-size: 12px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inv-liens-go { flex-shrink: 0; font-size: 12px; font-weight: 600; color: var(--accent); }
.inv-liens-sans { cursor: default; opacity: .55; }
.inv-liens-sans .inv-liens-go { color: var(--text-muted); font-weight: 400; font-style: italic; }

.inv-liens-pied {
  display: block; width: 100%; margin-top: 4px; padding: 8px 10px; box-sizing: border-box;
  border: 0; border-top: 1px solid var(--border); border-radius: 0 0 8px 8px;
  background: transparent; font: inherit; font-size: 12px; color: var(--accent);
  text-align: left; cursor: pointer;
}
.inv-liens-pied:hover, .inv-liens-pied:focus-visible { background: var(--accent-soft); outline: none; }

/* ── Fiche article ── */
.inv-fl-lien {
  border: 0; background: transparent; padding: 0; font: inherit; font-size: 12px;
  color: var(--accent); cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
}
.inv-fl-lien:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
.inv-f-url-zone[hidden] { display: none; }
.inv-fl-lien-ajout { color: var(--text-muted); }
.inv-fl-lien-ajout:hover { color: var(--accent); }
.inv-f-url-zone { flex: 1 1 100%; display: flex; flex-direction: column; gap: 4px; }
.inv-f-url-lbl { font-size: 12px; font-weight: 600; color: var(--text); }
.inv-f-url-ligne { display: flex; gap: 8px; align-items: center; }
.inv-f-url-ligne input { flex: 1 1 auto; min-width: 0; }
.inv-f-url-etat { font-size: 12px; color: var(--text-muted); min-height: 16px; }
.inv-f-url-ok { color: var(--green, #2E7D4F); font-weight: 600; }
.inv-f-url-err { color: var(--red, #C0392B); font-weight: 600; }
.inv-f-url-attente { color: var(--orange, #B26A00); }

/* ── Import Cabinet Vision : ligne du lien sous chaque fournisseur ── */
.inv-fourn-row .ff-url-ligne { grid-column: 1 / -1; display: flex; gap: 6px; align-items: center; margin: -2px 0 6px; }
.inv-fourn-row .ff-url-ligne .ff-url { flex: 1 1 auto; font-size: 12px; }

/* ── Panier d'achat : le bouton 🔗 à côté du fournisseur (17/09/2026) ── */
.inv-panier-fourn { display: flex; align-items: center; gap: 6px; }
.inv-panier-fourn > select, .inv-panier-fourn > span { flex: 1 1 auto; min-width: 0; }
.inv-panier-fourn .inv-liens-btn { flex: 0 0 auto; margin-right: 0; }

/* ── Détail du « Réservé » (reservations_detail.js, 17/09/2026) ── */
.inv-resv-btn {
  border: 0; background: transparent; padding: 2px 6px; border-radius: 6px;
  font: inherit; font-weight: 700; color: var(--orange); cursor: pointer;
  text-decoration: underline dotted; text-underline-offset: 3px;
}
.inv-resv-btn:hover, .inv-resv-btn:focus-visible,
.inv-resv-btn[aria-expanded="true"] { background: var(--accent-soft); outline: none; }
.inv-resv-total { padding: 6px 10px 4px; font-size: 13px; font-weight: 600; color: var(--text); }
.inv-resv-liste { list-style: none; margin: 0; padding: 2px 4px 4px; }
.inv-resv-ligne {
  display: flex; align-items: baseline; gap: 10px; padding: 6px 6px;
  border-radius: 8px; font-size: 13px; color: var(--text);
}
.inv-resv-ligne + .inv-resv-ligne { border-top: 1px dashed var(--border); }
.inv-resv-cmd { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.inv-resv-qte { flex-shrink: 0; font-weight: 700; color: var(--orange); white-space: nowrap; }
.inv-resv-orpheline .inv-resv-cmd { color: var(--text-muted); font-style: italic; }
.inv-resv-note { padding: 6px 10px 4px; border-top: 1px solid var(--border); font-size: 11px; color: var(--text-muted); }

@media (max-width: 640px) {
  .inv-liens-menu { width: calc(100vw - 16px); }
  .inv-f-url-ligne { flex-wrap: wrap; }
}

/* Prix dans le menu 🔗 (23/09/2026, R-LIENS-PRIX) */
.inv-liens-prix { color: var(--text, #2B2620); font-weight: 700; }
.inv-liens-prix-manque { color: var(--orange-text); font-weight: 600; }
.inv-liens-moins { display: inline-block; padding: 0 6px; border-radius: 999px; background: #DDF1E4; color: var(--green); font-size: 11px; font-weight: 700; }
.inv-liens-tarif { font-size: 12px; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inv-liens-sans .inv-liens-tarif { opacity: 1; }
