:root {
  --fond: #f6f7f5; --texte: #1c2421; --doux: #6b7570; --trait: #dde2df; --primaire: #14443a;
  --alerte: #b3261e; --alerte-fond: #fde8e6; --saisi: #e7f2ee; --blanc: #fff;
}
* { box-sizing: border-box; }
body { margin: 0; font: 15px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif; background: var(--fond); color: var(--texte); }
.barre { display: flex; gap: 8px; justify-content: flex-end; padding: 8px 12px; background: var(--primaire); }
.barre .btn, .barre select { background: transparent; color: var(--blanc); border-color: var(--blanc); }
.btn { font: inherit; padding: 6px 12px; border: 1px solid var(--trait); border-radius: 8px; background: var(--blanc); color: var(--texte); }
.btn-primaire, .btn.actif { background: var(--primaire); color: var(--blanc); border-color: var(--primaire); }
.ecran { display: grid; place-items: center; min-height: 100vh; padding: 16px; }
.carte { background: var(--blanc); border: 1px solid var(--trait); border-radius: 12px; padding: 20px; width: min(360px, 100%); }
.carte h1 { font-size: 20px; margin: 0 0 16px; }
.champ { display: grid; gap: 4px; margin-bottom: 12px; }
.champ input { font: inherit; padding: 8px; border: 1px solid var(--trait); border-radius: 8px; }
.actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.en-tete { padding: 10px 12px; font-size: 16px; }
.en-tete.alerte { background: var(--alerte-fond); color: var(--alerte); }
.recherche { display: block; width: calc(100% - 24px); margin: 0 12px 8px; font: inherit; padding: 8px; border: 1px solid var(--trait); border-radius: 8px; }
.liste { list-style: none; margin: 0; padding: 0; background: var(--blanc); }
.ligne { display: grid; grid-template-columns: 1fr 3.5em 4.5em 5em 4.5em; align-items: center; gap: 8px; padding: 6px 12px; border-top: 1px solid var(--trait); }
.ligne.saisi { background: var(--saisi); }
.ligne.invalide .stock { border-color: var(--alerte); }
.nom { font: inherit; text-align: left; background: none; border: 0; padding: 0; color: inherit; }
.marque { font-size: 12px; color: var(--doux); border: 1px solid var(--trait); border-radius: 6px; padding: 0 4px; }
.unite, .livraison { color: var(--doux); }
.stock { font: inherit; width: 100%; padding: 4px 6px; border: 1px solid var(--trait); border-radius: 6px; text-align: right; }
.quantite { text-align: right; font-size: 17px; }
.explication { grid-column: 1 / -1; margin: 0; color: var(--doux); }
.axes { display: flex; gap: 8px; padding: 0 12px 8px; }
h2 { font-size: 16px; margin: 12px 12px 4px; }
.scores { width: calc(100% - 24px); margin: 0 12px; border-collapse: collapse; background: var(--blanc); }
.scores th, .scores td { padding: 4px 8px; border-top: 1px solid var(--trait); text-align: right; }
.scores th:first-child, .scores td:first-child { text-align: left; }
.vide { padding: 12px; color: var(--doux); }
#toasts { position: fixed; bottom: 12px; left: 50%; transform: translateX(-50%); display: grid; gap: 6px; }
.toast { padding: 8px 12px; border-radius: 8px; background: var(--texte); color: var(--blanc); }
.toast-erreur { background: var(--alerte); }
