/* ============================================================
   ATLAS INVENTORY · styles du module Admin (#ac-stock)
   S'appuie sur les tokens admin (--line, --txt, --mid, --panel…)
   et réutilise .card / .tbl / .chip / .kpi / .bar / .lcard.
   Thèmes sombre (défaut) + clair (body.theme-light).
   ============================================================ */

/* palette icône ronde (réutilisée par mini-cartes, fiches, catalogue) */
.im-ic, .inv-art-ic, .fiche-ic, .iv-ic {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.im-ic svg, .inv-art-ic svg, .iv-ic svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2; }
.fiche-ic svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 2; }
.c-blue   { background: rgba(37,99,235,.16);  color: var(--blue-l); }
.c-violet { background: rgba(168,130,255,.16); color: var(--violet); }
.c-green  { background: rgba(34,197,94,.16);   color: #4ade80; }
.c-orange { background: rgba(245,158,11,.16);  color: var(--gold); }
.c-red    { background: rgba(248,113,113,.16); color: var(--red); }
.c-cyan   { background: rgba(34,211,238,.16);  color: #22d3ee; }
.c-gold   { background: rgba(251,191,36,.16);  color: var(--gold); }
.c-gray   { background: rgba(150,170,210,.14); color: var(--mid); }

/* ---------- filtres du catalogue ---------- */
.inv-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 16px; }
.inv-search { flex: 1 1 280px; min-width: 220px; display: flex; align-items: center; gap: 9px; background: var(--glass); border: 1px solid var(--line); border-radius: 11px; padding: 0 12px; }
.inv-search svg { width: 16px; height: 16px; stroke: var(--dim); fill: none; stroke-width: 2; flex-shrink: 0; }
.inv-search input { flex: 1; background: none; border: 0; outline: none; color: var(--txt); font: inherit; font-size: .86rem; padding: 10px 0; }
.inv-search input::placeholder { color: var(--dim); }
.inv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.inv-chip { font: inherit; font-size: .78rem; font-weight: 600; color: var(--mid); background: var(--glass); border: 1px solid var(--line); border-radius: 9px; padding: 8px 12px; cursor: pointer; transition: all .15s; }
.inv-chip:hover { border-color: var(--line2); color: var(--txt); }
.inv-chip.on { background: rgba(37,99,235,.16); border-color: var(--blue-l); color: var(--blue-l); }
.inv-select { font: inherit; font-size: .82rem; color: var(--txt); background: var(--glass); border: 1px solid var(--line); border-radius: 11px; padding: 10px 12px; cursor: pointer; }
.inv-select option { background: var(--panel); color: var(--txt); }
.inv-count { font-size: .78rem; color: var(--dim); margin: 12px 2px 0; }

/* ---------- table catalogue ---------- */
.inv-art { display: flex; align-items: center; gap: 11px; }
.inv-art-ic { width: 38px; height: 38px; border-radius: 10px; }
.inv-stock .bar { height: 6px; border-radius: 4px; background: rgba(150,170,210,.16); overflow: hidden; }
.inv-arrow { color: var(--dim); }
.inv-tbl td { vertical-align: middle; }

/* ---------- mini-listes (dashboard / validations) ---------- */
.inv-mini-list { display: flex; flex-direction: column; gap: 8px; }
.inv-mini { display: flex; align-items: center; gap: 11px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 12px; background: var(--glass); }
.inv-mini[data-inv-fiche] { cursor: pointer; transition: border-color .15s, transform .1s; }
.inv-mini[data-inv-fiche]:hover { border-color: var(--line2); transform: translateY(-1px); }
.im-ic { width: 34px; height: 34px; border-radius: 9px; }
.im-b { flex: 1; min-width: 0; }
.im-b h5 { margin: 0; font-size: .84rem; font-weight: 600; color: var(--txt); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.im-b p { margin: 2px 0 0; font-size: .74rem; color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inv-empty { font-size: .84rem; color: var(--dim); text-align: center; padding: 22px 10px; margin: 0; }
.mini-link { font: inherit; font-size: .78rem; font-weight: 600; color: var(--blue-l); background: none; border: 0; cursor: pointer; margin-left: auto; }
.mini-link:hover { text-decoration: underline; }

/* ---------- bandeau info / recommandation ---------- */
.inv-note-band { font-size: .82rem; color: var(--mid); background: rgba(37,99,235,.08); border: 1px solid var(--line); border-left: 3px solid var(--blue-l); border-radius: 10px; padding: 11px 14px; margin-bottom: 16px; }
.inv-note-band b { color: var(--txt); }

/* ---------- validations ---------- */
.inv-val-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.inv-val { border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: var(--glass); }
.iv-head { display: flex; align-items: center; gap: 11px; }
.iv-ic { width: 38px; height: 38px; border-radius: 10px; }
.iv-t { flex: 1; min-width: 0; }
.iv-t h4 { margin: 0; font-size: .9rem; font-weight: 650; color: var(--txt); }
.iv-t p { margin: 2px 0 0; font-size: .74rem; color: var(--dim); }
.iv-note { font-size: .82rem; color: var(--mid); font-style: italic; margin: 11px 0 0; padding: 9px 11px; background: rgba(150,170,210,.07); border-radius: 9px; }
.iv-photo { margin: 11px 0 0; }
.iv-photo img { max-width: 160px; max-height: 130px; border-radius: 10px; border: 1px solid var(--line); cursor: zoom-in; display: block; object-fit: cover; }
.inv-zoom { position: fixed; inset: 0; z-index: 9999; background: rgba(4,8,24,.82); display: flex; align-items: center; justify-content: center; padding: 24px; cursor: zoom-out; backdrop-filter: blur(3px); }
.inv-zoom img { max-width: 92vw; max-height: 92vh; border-radius: 14px; box-shadow: 0 24px 70px -20px rgba(0,0,0,.8); }

/* ---------- formulaires (article · fournisseur · attribution) ---------- */
.inv-form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px 14px; margin-top: 16px; }
.inv-form .iv-f.full { grid-column: 1 / -1; }
.inv-form .inv-inp { width: 100%; }
.inv-form .iv-f > span { font-size: .7rem; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--dim); }
@media (max-width: 560px) { .inv-form { grid-template-columns: 1fr; } }
.iv-ctrl { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-top: 13px; }
.iv-f { display: flex; flex-direction: column; gap: 5px; }
.iv-f > span { font-size: .72rem; color: var(--dim); font-weight: 600; }
.iv-price { display: flex; align-items: center; gap: 5px; }
.iv-price > span { color: var(--dim); font-size: .82rem; }
.inv-inp { font: inherit; font-size: .84rem; color: var(--txt); background: var(--glass); border: 1px solid var(--line); border-radius: 9px; padding: 8px 10px; outline: none; }
.inv-inp:focus { border-color: var(--blue-l); }
.inv-inp[type=number] { width: 84px; }
.inv-inp option { background: var(--panel); color: var(--txt); }
.iv-tot { margin-left: auto; font-size: .82rem; color: var(--mid); }
.iv-tot b { color: #4ade80; }
.iv-acts { display: flex; gap: 8px; margin-top: 14px; }

/* boutons génériques (repli si non fournis par admin.css) */
.btn-ghost { background: var(--glass); border: 1px solid var(--line); color: var(--mid); }
.btn-ghost:hover { border-color: var(--line2); color: var(--txt); }
.btn-ghost.danger { color: var(--red); }
.btn-ghost.danger:hover { border-color: var(--red); }

/* ---------- fiche article (modal) ---------- */
.inv-modal { position: fixed; inset: 0; z-index: 4000; display: none; }
.inv-modal.open { display: block; }
.inv-modal-scrim { position: absolute; inset: 0; background: rgba(4,8,24,.62); backdrop-filter: blur(4px); }
.inv-modal-card { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(680px, 94vw); max-height: 90vh; overflow: auto; background: var(--panel); border: 1px solid var(--line2); border-radius: 18px; box-shadow: 0 40px 100px -30px rgba(0,0,0,.7); padding: 22px; }
.fiche-head { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.fiche-ic { width: 46px; height: 46px; border-radius: 13px; }
.fiche-head h3 { margin: 0; font-size: 1.1rem; color: var(--txt); }
.fiche-head p { margin: 3px 0 0; font-size: .8rem; color: var(--dim); }
.fiche-x { margin-left: auto; width: 34px; height: 34px; border-radius: 9px; background: var(--glass); border: 1px solid var(--line); color: var(--mid); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; align-self: flex-start; }
.fiche-x svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; }
.fiche-x:hover { color: var(--txt); border-color: var(--line2); }
.fiche-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.fiche-f { border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; background: var(--glass); }
.fiche-f span { display: block; font-size: .68rem; color: var(--dim); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 3px; }
.fiche-f b { font-size: .88rem; color: var(--txt); font-weight: 600; }
.fiche-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.fiche-h { font-size: .82rem; color: var(--mid); margin: 20px 0 10px; text-transform: uppercase; letter-spacing: .05em; }
.fiche-hist { display: flex; flex-direction: column; gap: 7px; }
.fiche-mv { display: flex; align-items: center; gap: 11px; font-size: .8rem; color: var(--mid); padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px; }
.fiche-mv > span:first-child { font-weight: 700; min-width: 34px; color: var(--dim); }
.fiche-mv .pos { color: #4ade80; }
.fiche-mv .neg { color: var(--gold); }
.fiche-mv > div { flex: 1; min-width: 0; }
.fiche-mv > div b { color: var(--txt); }
.fiche-mv > span:last-child { white-space: nowrap; }
/* accordéon mouvements de la fiche */
.fiche-acc { margin-top: 18px; border-top: 1px solid var(--line); }
.fiche-acc summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 9px; font-size: .82rem; color: var(--mid); text-transform: uppercase; letter-spacing: .05em; padding: 12px 0 10px; user-select: none; }
.fiche-acc summary::-webkit-details-marker { display: none; }
.fiche-acc summary::after { content: ''; width: 7px; height: 7px; border-right: 1.6px solid var(--dim); border-bottom: 1.6px solid var(--dim); transform: rotate(45deg); margin-left: auto; transition: transform .15s; }
.fiche-acc[open] summary::after { transform: rotate(-135deg); }
.fiche-acc-n { background: rgba(128,128,128,.12); border: 1px solid var(--line); border-radius: 99px; padding: 1px 8px; font-size: .72rem; color: var(--dim); letter-spacing: 0; }
.fiche-hist-h { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 8px; scrollbar-width: thin; }
.fiche-mv2 { flex: 0 0 auto; display: flex; flex-direction: column; gap: 3px; min-width: 122px; max-width: 176px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; font-size: .73rem; color: var(--mid); }
.fiche-mv2 .mv2-top { display: flex; align-items: baseline; gap: 7px; }
.fiche-mv2 b { font-size: .9rem; color: var(--dim); }
.fiche-mv2 .pos { color: #4ade80; }
.fiche-mv2 .neg { color: var(--gold); }
.fiche-mv2 .mt { color: var(--txt); font-weight: 600; }
.fiche-mv2 span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fiche-acc-more { background: none; border: none; color: var(--gold); font-size: .78rem; cursor: pointer; padding: 2px 0 12px; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- responsive ---------- */
@media (max-width: 900px) {
  .fiche-grid { grid-template-columns: repeat(2, 1fr); }
  .inv-val-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .inv-filters { gap: 8px; }
  .inv-search { flex: 1 1 100%; }
  .fiche-grid { grid-template-columns: 1fr; }
  .iv-tot { margin-left: 0; width: 100%; }
}

/* ---------- light mode : les tokens suffisent, quelques ajustements ---------- */
body.theme-light .inv-note-band { background: rgba(37,99,235,.06); }
body.theme-light .inv-modal-scrim { background: rgba(13,31,92,.4); }
body.theme-light .c-gray { background: rgba(13,31,92,.06); }

/* ---------- édition rapide du stock (simples clics) ---------- */
.inv-qedit { display: flex; align-items: center; gap: 6px; }
.inv-qbtn { width: 22px; height: 22px; border-radius: 7px; border: 1px solid var(--line); background: transparent; color: var(--mid); font-size: .9rem; font-weight: 700; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; flex: none; }
.inv-qbtn:hover { border-color: rgba(96,165,250,.6); color: var(--blue-l, #60a5fa); }
.inv-qnum { background: transparent; border: 0; border-bottom: 1px dashed var(--line); padding: 0 2px 1px; cursor: pointer; font: inherit; color: inherit; }
.inv-qnum:hover { border-bottom-color: rgba(96,165,250,.7); }
body.theme-light .inv-qbtn:hover { color: #1d4ed8; }

/* ---------- lignes du Stock Atlas cliquables (fiche article) ---------- */
.inv-tbl tbody tr[data-inv-fiche] { cursor: pointer; }
.inv-tbl tbody tr[data-inv-fiche]:hover td { background: rgba(96,165,250,.06); }
.inv-tbl tbody tr[data-inv-fiche]:focus-visible { outline: 2px solid rgba(96,165,250,.65); outline-offset: -2px; }
.inv-open-hint { font-size: 1rem; opacity: .55; margin-left: 4px; }
body.theme-light .inv-tbl tbody tr[data-inv-fiche]:hover td { background: rgba(37,99,235,.05); }


