/* Pages opérationnelles de stock (état du stock, mouvements, entrées, sorties, transferts, inventaires, réapprovisionnement).
   Uniquement des jetons du design system (aucune couleur en dur). */

/* Lignes d'articles */
.ins-lines-table .ts-wrapper { min-width: 220px; }
.ins-lines-table .ts-wrapper.is-invalid .ts-control { border-color: var(--color-danger); }
.ins-lines-table .input-group { flex-wrap: nowrap; }
.ins-lines-table .input-group .ins-qty { width: 1%; flex: 1 1 auto; min-width: 70px; }
.ins-lines-table tfoot th { border-bottom: 0; }

/* KPI compacts de page */
.ins-stat { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg, 12px); padding: .75rem 1rem; height: 100%; display: block; color: inherit; text-decoration: none; }
a.ins-stat:hover, button.ins-stat:hover { border-color: var(--color-border-strong); }
button.ins-stat { width: 100%; text-align: left; }
.ins-stat.is-active { border-color: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-soft); }
.ins-stat__label { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--color-text-muted); }
.ins-stat__value { font-family: var(--font-heading, inherit); font-size: 1.35rem; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.25; }
.ins-stat__sub { font-size: .8rem; color: var(--color-text-muted); }
.ins-stat--danger { border-left: 4px solid var(--color-danger); }
.ins-stat--warning { border-left: 4px solid var(--color-warning); }
.ins-stat--success { border-left: 4px solid var(--color-success); }
.ins-stat--primary { border-left: 4px solid var(--color-accent); }
.ins-stat--info { border-left: 4px solid var(--color-info); }

/* Tableau de comptage d'inventaire (dense, clavier) */
.ins-count-table { font-size: .9rem; }
.ins-count-table th { position: sticky; top: 0; background: var(--color-surface); z-index: 2; white-space: nowrap; }
.ins-count-table td { padding-top: .3rem; padding-bottom: .3rem; vertical-align: middle; }
.ins-count-table .ins-count-input { width: 110px; text-align: right; font-variant-numeric: tabular-nums; }
.ins-count-table .ins-just-input { min-width: 180px; }
.ins-count-table tr.is-dirty td:first-child { box-shadow: inset 3px 0 0 var(--color-accent); }
.ins-count-table tr.is-gap-plus .ins-gap { color: var(--color-success); font-weight: 600; }
.ins-count-table tr.is-gap-minus .ins-gap { color: var(--color-danger); font-weight: 600; }
.ins-count-table tr.is-uncounted .ins-gap { color: var(--color-text-subtle); }
.ins-count-wrap { max-height: 70vh; overflow: auto; }
.ins-count-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.ins-count-toolbar .form-control { max-width: 260px; }
.ins-progress-sm { height: 6px; min-width: 80px; }

/* Panneaux d'action (approbation, réception, examen) */
.ins-action-panel { border: 1px dashed var(--color-border-strong); background: var(--color-surface-muted); border-radius: var(--radius-lg, 12px); padding: 1rem; }
.ins-flow-in { color: var(--color-success); }
.ins-flow-out { color: var(--ins-orange-700); }
.ins-truncate { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Fiche de stock */
.ins-card-balance td { background: var(--color-surface-muted) !important; font-weight: 600; }

@media (max-width: 575.98px) {
  .ins-count-table .ins-just-input { min-width: 140px; }
  .ins-count-toolbar .form-control { max-width: none; flex: 1 1 100%; }
  .ins-truncate { max-width: 160px; }
}
@media print {
  .ins-action-panel, .ins-count-toolbar { display: none !important; }
}

/* Listes déroulantes Tom Select rattachées au body (au-dessus des modales) */
.ts-dropdown { z-index: 1065; }
/* Les libellés visually-hidden (position absolue) ne doivent pas élargir la page sur mobile */
.table-responsive:has(.ins-lines-table), .ins-count-wrap { position: relative; }
