/* FAstock V2 — UI-3 Stock. Présentation uniquement, moteur ledger inchangé. */
.v2-stock-view { display:flex; flex-direction:column; gap:var(--fa-space-4); padding:var(--fa-space-4); color:var(--fa-text); }
.v2-stock-head { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--fa-space-4); flex-wrap:wrap; }
.v2-stock-title { display:flex; flex-direction:column; gap:var(--fa-space-1); }
.v2-stock-title h2 { margin:0; font-size:26px; line-height:1.15; }
.v2-stock-title p { margin:0; color:var(--fa-text-muted); font-size:13px; }
.v2-stock-tools { display:flex; gap:var(--fa-space-3); align-items:center; justify-content:space-between; flex-wrap:wrap; padding:var(--fa-space-3); border:1px solid var(--fa-border); border-radius:var(--fa-radius-lg); background:var(--fa-surface); }
.v2-stock-search { min-width:min(100%,320px); min-height:38px; border:1px solid var(--fa-border); border-radius:var(--fa-radius); padding:8px 11px; background:var(--fa-surface); color:var(--fa-text); }
.v2-stock-count { color:var(--fa-text-muted); font-size:12px; font-weight:600; }
.v2-stock-table { overflow:hidden; border:1px solid var(--fa-border); border-radius:var(--fa-radius-lg); background:var(--fa-surface); }
.v2-stock-row { display:grid; grid-template-columns:minmax(220px,1.4fr) 150px minmax(230px,.9fr) 96px; gap:var(--fa-space-4); align-items:center; min-height:76px; padding:var(--fa-space-3) var(--fa-space-4); border-bottom:1px solid var(--fa-border); }
.v2-stock-row:last-child { border-bottom:0; }
.v2-stock-row:hover { background:var(--fa-bg); }
.v2-stock-row.is-low { border-left:3px solid var(--fa-critical); }
.v2-stock-row.is-near { border-left:3px solid var(--fa-warn); }
.v2-stock-name { display:flex; flex-direction:column; gap:3px; min-width:0; }
.v2-stock-name strong { font-size:14px; }
.v2-stock-meta { color:var(--fa-text-muted); font-size:11px; }
.v2-stock-qty { display:flex; flex-direction:column; align-items:flex-end; gap:2px; font-variant-numeric:tabular-nums; }
.v2-stock-qty strong { font-size:17px; }
.v2-stock-qty span { color:var(--fa-text-muted); font-size:10px; }
.v2-stock-level { display:flex; flex-direction:column; gap:5px; }
.v2-stock-track { position:relative; height:20px; }
.v2-stock-track-bg { position:absolute; left:0; right:0; top:6px; height:8px; border-radius:2px; background:var(--fa-bg); }
.v2-stock-under { position:absolute; left:0; top:6px; height:8px; border-radius:2px 0 0 2px; background:repeating-linear-gradient(45deg,var(--fa-border) 0 2px,var(--fa-bg) 2px 5px); }
.v2-stock-fill { position:absolute; left:0; top:6px; height:8px; border-radius:2px; background:var(--fa-ok); max-width:100%; }
.v2-stock-fill.low { background:var(--fa-critical); }
.v2-stock-fill.near { background:var(--fa-warn); }
.v2-stock-fill.over { background:var(--fa-text-muted); }
.v2-stock-threshold { position:absolute; top:1px; width:2px; height:18px; background:var(--fa-text); transform:translateX(-1px); }
.v2-stock-target { position:absolute; top:3px; height:14px; width:0; border-left:1px dashed var(--fa-text-muted); }
.v2-stock-legend { display:flex; justify-content:space-between; gap:8px; color:var(--fa-text-muted); font-size:10px; }
.v2-stock-legend b { color:var(--fa-text); font-weight:700; }
.v2-stock-action { text-align:right; }
.v2-stock-empty { padding:40px 20px; color:var(--fa-text-muted); text-align:center; }

@media (max-width:900px) {
  .v2-stock-row { grid-template-columns:minmax(0,1fr) 120px 90px; }
  .v2-stock-level { grid-column:1 / -1; grid-row:2; }
  .v2-stock-action { grid-column:3; grid-row:1; }
}
@media (max-width:640px) {
  .v2-stock-view { padding:var(--fa-space-3); }
  .v2-stock-row { grid-template-columns:1fr auto; gap:var(--fa-space-2); }
  .v2-stock-qty { grid-column:2; grid-row:1; }
  .v2-stock-level { grid-column:1 / -1; grid-row:2; }
  .v2-stock-action { grid-column:1 / -1; grid-row:3; text-align:left; }
  .v2-stock-action .icon-btn { min-height:var(--fa-tap); }
  .v2-stock-search { width:100%; min-height:var(--fa-tap); }
}

/* Mouvements et inventaires : mêmes primitives opérationnelles. */
.v2-op-view { display:flex; flex-direction:column; gap:var(--fa-space-4); padding:var(--fa-space-4); color:var(--fa-text); }
.v2-op-head { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--fa-space-4); flex-wrap:wrap; }
.v2-op-title { display:flex; flex-direction:column; gap:var(--fa-space-1); }
.v2-op-title h2 { margin:0; font-size:26px; }
.v2-op-title p { margin:0; color:var(--fa-text-muted); font-size:13px; }
.v2-op-actions { display:flex; gap:var(--fa-space-2); flex-wrap:wrap; }
.v2-op-list { overflow:hidden; border:1px solid var(--fa-border); border-radius:var(--fa-radius-lg); background:var(--fa-surface); }
.v2-op-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,.5fr) auto; gap:var(--fa-space-3); align-items:center; min-height:66px; padding:var(--fa-space-3) var(--fa-space-4); border-bottom:1px solid var(--fa-border); }
.v2-op-row:last-child { border-bottom:0; }
.v2-op-row:hover { background:var(--fa-bg); }
.v2-op-main { display:flex; flex-direction:column; gap:3px; min-width:0; }
.v2-op-main strong { font-size:14px; }
.v2-op-meta { color:var(--fa-text-muted); font-size:11px; }
.v2-op-value { text-align:right; font-variant-numeric:tabular-nums; }
.v2-op-value strong { font-size:16px; }
.v2-op-card { border:1px solid var(--fa-border); border-radius:var(--fa-radius-lg); background:var(--fa-surface); overflow:hidden; }
.v2-op-card-head { display:flex; align-items:center; justify-content:space-between; gap:var(--fa-space-3); padding:var(--fa-space-3) var(--fa-space-4); border-bottom:1px solid var(--fa-border); }
.v2-op-card-head h3 { margin:0; font-size:17px; }
.v2-inventory-grid { display:grid; grid-template-columns:minmax(180px,.65fr) minmax(0,1.4fr); gap:var(--fa-space-4); }
.v2-inventory-sessions { display:flex; flex-direction:column; gap:var(--fa-space-2); }
.v2-inventory-session { width:100%; text-align:left; border:1px solid var(--fa-border); border-radius:var(--fa-radius); background:var(--fa-surface); padding:var(--fa-space-3); color:var(--fa-text); }
.v2-inventory-session.active { border-color:var(--fa-accent); box-shadow:inset 3px 0 0 var(--fa-accent); }
.v2-inventory-session strong { display:block; font-size:14px; }
.v2-inventory-session span { display:block; margin-top:3px; color:var(--fa-text-muted); font-size:11px; }
.v2-inventory-detail { min-width:0; }
.v2-inventory-summary { display:flex; gap:var(--fa-space-2); flex-wrap:wrap; }
.v2-inventory-kpi { min-width:110px; padding:var(--fa-space-2) var(--fa-space-3); border:1px solid var(--fa-border); border-radius:var(--fa-radius); background:var(--fa-bg); }
.v2-inventory-kpi b { display:block; font-size:17px; }
.v2-inventory-kpi span { color:var(--fa-text-muted); font-size:10px; }
.v2-inventory-lines { overflow:hidden; border-top:1px solid var(--fa-border); }
.v2-inventory-line { display:grid; grid-template-columns:minmax(0,1fr) 110px 110px 110px; gap:var(--fa-space-3); align-items:center; padding:var(--fa-space-3) var(--fa-space-4); border-bottom:1px solid var(--fa-border); }
.v2-inventory-line:last-child { border-bottom:0; }
.v2-inventory-line span:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; }
.v2-inventory-diff { font-weight:700; }
.v2-inventory-diff.warn { color:var(--fa-warn); }
.v2-inventory-diff.critical { color:var(--fa-critical); }

@media (max-width:900px) {
  .v2-inventory-grid { grid-template-columns:1fr; }
  .v2-inventory-sessions { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
}
@media (max-width:640px) {
  .v2-op-view { padding:var(--fa-space-3); }
  .v2-op-actions, .v2-op-actions > * { width:100%; }
  .v2-op-actions .add-btn, .v2-op-actions .v2-primary-btn { min-height:var(--fa-tap); }
  .v2-op-row { grid-template-columns:1fr auto; }
  .v2-op-value { grid-column:2; grid-row:1; }
  .v2-op-row > :last-child { grid-column:1 / -1; }
  .v2-inventory-line { grid-template-columns:1fr 90px; }
  .v2-inventory-line span:nth-child(3), .v2-inventory-line span:nth-child(4) { grid-column:2; }
}

/* ---- F2 (20/08) — filtres/regroupement/vues sauvegardées récupérés de V1 ---- */
.v2-stock-views { display: flex; gap: var(--fa-space-2); align-items: center; padding: 0 var(--fa-space-3); margin: var(--fa-space-2) 0; flex-wrap: wrap; }
.v2-stock-group { margin-bottom: var(--fa-space-3); }
.v2-stock-group-head {
  display: flex; justify-content: space-between; font-size: 12px; font-weight: 600;
  color: var(--fa-text-muted); text-transform: uppercase; letter-spacing: .04em;
  padding: var(--fa-space-2) var(--fa-space-2) 4px;
}
#v2stock-filter-alert.is-active { background: var(--fa-warn); color: #fff; border-color: var(--fa-warn); }

/* ---- F5 (20/08) — saisie directe du comptage en ligne (ergonomie terrain récupérée de V1) ---- */
.v2inv-count-input { min-height: var(--fa-tap); text-align: right; font-variant-numeric: tabular-nums; }
