:root{--fond:#eef0f4;--surface:#ffffff;--surface-creuse:#f7f8fa;--encre:#16202e;--encre-douce:#5b6779;--encre-tenue:#8b95a5;--trait:#d7dce4;--trait-fort:#b9c1cd;--action:#0f6b4f;--action-clair:#e4f2ec;--alerte:#a32b22;--alerte-clair:#fbeceb;--rayon:6px;--chiffres:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--fond);color:var(--encre);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}.appli{display:grid;grid-template-columns:208px 1fr;min-height:100vh}.rail{background:var(--encre);color:#e8ecf2;padding:20px 16px;display:flex;flex-direction:column;gap:28px}.marque{font-size:17px;font-weight:620;letter-spacing:-.01em}.marque span{display:block;font-size:12px;font-weight:400;color:#8f9cb0;margin-top:2px}.rail nav{display:flex;flex-direction:column;gap:2px}.rail nav a{padding:8px 10px;border-radius:var(--rayon);text-decoration:none;color:#b9c4d4;font-weight:500}.rail nav a:hover{background:rgba(255,255,255,.07);color:#fff}.rail nav a[aria-current=page]{background:rgba(255,255,255,.12);color:#fff}.rail footer{margin-top:auto;font-size:12px;color:#78849a}.lien-deconnexion{display:block;margin-top:8px;background:none;border:none;padding:0;font:inherit;font-size:12px;color:#9aa6bd;text-decoration:underline;cursor:pointer}.lien-deconnexion:hover{color:#cbd3e1}.page-connexion{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--fond)}.page-connexion form{width:100%;max-width:340px}.page-connexion .marque{color:var(--encre)}.contenu{padding:24px 28px 64px;max-width:1400px}.entete-page{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}h1{font-size:22px;font-weight:620;letter-spacing:-.015em;margin:0 0 4px}h2{font-size:15px;font-weight:600;margin:0 0 12px}.sous-titre{color:var(--encre-douce);margin:0}.bouton,button.bouton{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--trait-fort);border-radius:var(--rayon);background:var(--surface);color:var(--encre);font:inherit;font-weight:550;cursor:pointer;text-decoration:none;white-space:nowrap}.bouton:hover:not(:disabled){border-color:var(--encre-tenue);background:var(--surface-creuse)}.bouton:disabled{opacity:.5;cursor:not-allowed}.bouton.primaire{background:var(--action);border-color:var(--action);color:#fff}.bouton.primaire:hover:not(:disabled){background:#0c5a42;border-color:#0c5a42}.bouton.danger{color:var(--alerte);border-color:#e3bfbc}.bouton.danger:hover:not(:disabled){background:var(--alerte-clair)}.champ{width:100%;padding:7px 10px;border:1px solid var(--trait-fort);border-radius:var(--rayon);background:var(--surface);font:inherit;color:var(--encre)}.bouton:focus-visible,.carte-resultat:focus-visible,.champ:focus{outline:2px solid var(--action);outline-offset:1px}.champ[type=number],.chiffre{font-family:var(--chiffres);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}label.libelle{display:block;font-size:12.5px;font-weight:550;color:var(--encre-douce);margin-bottom:4px}.grille-champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.barre-filtres{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.barre-filtres .champ{width:auto;min-width:140px}.barre-filtres .champ.recherche{flex:1 1;min-width:220px}.panneau{background:var(--surface);border:1px solid var(--trait);border-radius:10px;overflow:hidden}.panneau.rembourre{padding:18px}table{width:100%;border-collapse:collapse}thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface-creuse);text-align:left;font-size:12.5px;font-weight:600;color:var(--encre-douce);white-space:nowrap}tbody td,thead th{border-bottom:1px solid var(--trait);padding:9px 12px}tbody td{vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-creuse)}td.nombre,th.nombre{text-align:right;font-family:var(--chiffres);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sku{font-family:var(--chiffres);font-size:12px;color:var(--encre-douce)}.lien-titre{font-weight:550;text-decoration:none}.lien-titre:hover{text-decoration:underline}.vignette{width:34px;height:47px;object-fit:cover;border-radius:3px;background:var(--surface-creuse);border:1px solid var(--trait)}.vignette--vide{border-style:dashed}.pastille{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:550;padding:2px 8px;border-radius:20px;border:1px solid var(--trait);background:var(--surface-creuse);white-space:nowrap}.point{width:7px;height:7px;border-radius:50%;flex-shrink:0}.pastille.publie{color:var(--action);background:var(--action-clair);border-color:#bfded2}.pastille.brouillon{color:var(--encre-douce)}.rupture{color:var(--alerte);font-weight:600}.canaux{display:flex;gap:4px;flex-wrap:wrap}.canal{font-size:11px;padding:2px 7px;border-radius:999px;border:1px solid var(--trait);color:var(--encre-tenue);background:var(--surface-creuse);white-space:nowrap}.canal.actif{color:var(--action);background:var(--action-clair);border-color:#bfded2;font-weight:550}.bloc-exports{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.export-canal{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--trait);border-radius:10px;background:var(--surface)}.export-titre{font-size:13px;font-weight:600;color:var(--encre-douce)}.export-canal .bouton{padding:4px 11px;font-size:12.5px}.barre-lot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:10px 14px;border:1px solid var(--trait-fort);border-radius:10px;background:var(--surface)}.barre-lot-groupe{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--encre-douce)}.barre-lot-groupe .bouton{padding:3px 10px;font-size:12.5px}.ligne-cochee td{background:var(--action-clair)}.deux-colonnes{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);grid-gap:20px;gap:20px;align-items:start}.grille-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));grid-gap:12px;gap:12px;padding:16px;max-height:68vh;overflow-y:auto}.carte-resultat{border:1px solid var(--trait);border-radius:8px;background:var(--surface);padding:6px;cursor:pointer;text-align:left;font:inherit;color:inherit;display:flex;flex-direction:column;gap:6px}.carte-resultat:hover{border-color:var(--encre-tenue)}.carte-resultat[aria-pressed=true]{border-color:var(--action);box-shadow:0 0 0 2px var(--action-clair)}.carte-resultat .vignette--vide,.carte-resultat img{width:100%;aspect-ratio:63/88;object-fit:cover;border-radius:4px;background:var(--surface-creuse);border:1px solid var(--trait);display:block}.carte-resultat .nom{font-size:12.5px;font-weight:550;line-height:1.3}.carte-resultat .meta{font-size:11.5px;color:var(--encre-tenue);font-family:var(--chiffres)}.formulaire{position:-webkit-sticky;position:sticky;top:24px;display:flex;flex-direction:column;gap:14px}.apercu{display:flex;gap:12px;align-items:flex-start}.apercu .vignette--vide,.apercu img{width:84px;aspect-ratio:63/88;object-fit:cover;border-radius:5px;border:1px solid var(--trait);background:var(--surface-creuse);flex:none}.zone-photos{display:flex;flex-wrap:wrap;gap:8px;padding:8px;border:1px dashed var(--trait);border-radius:8px;background:var(--surface-creuse);transition:border-color .12s,background .12s}.zone-photos.survol{border-color:var(--action);background:var(--action-clair)}.photo-item{position:relative;width:84px}.photo-item .vignette--vide,.photo-thumb{width:84px;aspect-ratio:63/88;object-fit:cover;border-radius:5px;border:1px solid var(--trait);background:var(--surface);display:block}.photo-principale{position:absolute;left:0;bottom:0;right:0;font-size:10px;text-align:center;padding:2px 0;background:color-mix(in srgb,var(--action) 88%,black);color:#fff;border-radius:0 0 5px 5px}.photo-actions{position:absolute;top:3px;right:3px;display:flex;gap:3px}.photo-actions button{width:20px;height:20px;border:none;border-radius:4px;background:rgba(0,0,0,.62);color:#fff;font-size:12px;line-height:1;cursor:pointer;padding:0}.photo-actions button:hover{background:rgba(0,0,0,.85)}.photo-ajout{width:84px;aspect-ratio:63/88;border:1px solid var(--trait);border-radius:5px;background:var(--surface);color:var(--encre-douce);font:inherit;font-size:12.5px;cursor:pointer}.photo-ajout:hover:not(:disabled){border-color:var(--encre-tenue);color:var(--encre)}.photo-ajout:disabled{opacity:.6;cursor:default}.vide{padding:44px 20px;text-align:center;color:var(--encre-douce)}.vide strong{display:block;color:var(--encre);margin-bottom:4px}.message{padding:9px 12px;border-radius:var(--rayon);font-size:13px}.message.erreur{background:var(--alerte-clair);color:var(--alerte);border:1px solid #e3bfbc}.message.succes{background:var(--action-clair);color:var(--action);border:1px solid #bfded2}.chargement{padding:40px;text-align:center;color:var(--encre-tenue)}.entetes-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--trait);border-radius:10px;padding:14px 16px}button.stat.cliquable{font:inherit;text-align:left;cursor:pointer;color:inherit}button.stat.cliquable:hover{border-color:var(--trait-fort)}button.stat.cliquable.actif{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}.stat .valeur{font-family:var(--chiffres);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;letter-spacing:-.02em}.stat .etiquette{font-size:12.5px;color:var(--encre-douce);margin-top:2px}.ligne-mouvement .sens-positif{color:var(--action);font-weight:600}.ligne-mouvement .sens-negatif{color:var(--alerte);font-weight:600}@media (max-width:1000px){.deux-colonnes{grid-template-columns:1fr}.formulaire{position:static}}@media (max-width:720px){.appli{grid-template-columns:1fr}.rail{align-items:center;gap:16px;padding:12px 16px}.rail,.rail nav{flex-direction:row}.rail footer{display:none}.contenu{padding:16px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}