:root{--vert-fonce: #0d4a42;--vert-fonce-2: #0a3b35;--vert: #1f9d55;--vert-clair: #e7f6ee;--rose: #e2336b;--orange: #f07a45;--ambre: #b7791f;--ambre-clair: #fdf3e1;--rouge: #c53030;--rouge-clair: #fdecec;--bleu: #2563a8;--bleu-clair: #e8f0fb;--encre: #13241f;--texte: #2b3a36;--gris: #6b7a76;--bord: #e3e9e7;--fond: #f5f7f6;--carte: #ffffff;--ombre: 0 1px 2px rgba(13, 74, 66, .06), 0 2px 8px rgba(13, 74, 66, .05);--rayon: 12px;--titres: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;--corps: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--corps);font-size:14px;color:var(--texte);background:var(--fond);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--titres);color:var(--encre);margin:0;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}a{color:var(--vert)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--gris)}.small{font-size:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.stack{display:grid;gap:16px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:1fr 1fr}}@media(max-width:760px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.erp{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}.sidebar{background:var(--vert-fonce);color:#d6ebe5;padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;color:#fff;text-decoration:none}.brand-nom{font-family:var(--titres);font-weight:700;font-size:17px}.brand-nom span{color:#6ee7a8}.brand-tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#9cc9bd}.nav-groupe{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#7fb3a6;padding:14px 10px 6px}.nav-lien{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#d6ebe5;text-decoration:none;font-weight:500}.nav-lien:hover{background:#ffffff0f}.nav-lien.active{background:#fff;color:var(--vert-fonce)}.nav-lien .ico{width:18px;text-align:center}.nav-badge{margin-left:auto;background:var(--rose);color:#fff;border-radius:999px;font-size:11px;padding:1px 7px}.sidebar-pied{margin-top:auto;padding:12px 10px 0;font-size:12px;color:#9cc9bd;border-top:1px solid rgba(255,255,255,.08)}.main{padding:24px 28px 48px;min-width:0}.topbar{display:none}@media(max-width:900px){.erp{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;z-index:40;transform:translate(-100%);transition:transform .2s}.sidebar.ouverte{transform:none}.topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--vert-fonce);color:#fff;position:sticky;top:0;z-index:30}.topbar button{background:none;border:0;color:#fff;font-size:20px}.main{padding:16px}}.page-entete{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-entete p{margin:4px 0 0;color:var(--gris)}.carte{background:var(--carte);border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre)}.carte-corps{padding:16px 18px}.carte-entete{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--bord)}.stat{padding:16px 18px}.stat-label{color:var(--gris);font-size:12px;font-weight:500}.stat-valeur{font-family:var(--titres);font-size:22px;font-weight:600;color:var(--encre);margin-top:6px;font-variant-numeric:tabular-nums}.stat-detail{font-size:12px;margin-top:4px;color:var(--gris)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bord);background:#fff;color:var(--encre);padding:8px 14px;border-radius:8px;font-weight:500;white-space:nowrap}.btn:hover{border-color:#c5d2ce}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primaire{background:var(--vert-fonce);border-color:var(--vert-fonce);color:#fff}.btn-primaire:hover{background:var(--vert-fonce-2)}.btn-vert{background:var(--vert);border-color:var(--vert);color:#fff}.btn-danger{color:var(--rouge)}.btn-lien{border:0;background:none;color:var(--vert);padding:4px 6px}.btn-petit{padding:5px 10px;font-size:13px}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:500;border:1px solid transparent;white-space:nowrap}.badge-vert{background:var(--vert-clair);color:#166c3c;border-color:#bfe6cf}.badge-ambre{background:var(--ambre-clair);color:#8a5a12;border-color:#f2d9a6}.badge-rouge{background:var(--rouge-clair);color:var(--rouge);border-color:#f5c2c2}.badge-bleu{background:var(--bleu-clair);color:var(--bleu);border-color:#c7dbf4}.badge-gris{background:#eef2f1;color:var(--gris);border-color:var(--bord)}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;color:var(--gris);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--bord);background:#fafcfb;white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid #eef2f1;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#fafcfb}.table tfoot td{font-weight:600;border-top:2px solid var(--bord);background:#fafcfb}.table .cliquable{cursor:pointer}.champ{display:grid;gap:5px}.champ label{font-size:12px;font-weight:600;color:var(--texte)}.input,select.input,textarea.input{width:100%;border:1px solid var(--bord);background:#fff;border-radius:8px;padding:8px 10px;outline:none}.input:focus{border-color:var(--vert);box-shadow:0 0 0 3px #1f9d5526}.recherche{position:relative}.recherche .input{padding-left:34px}.recherche:before{content:"⌕";position:absolute;left:11px;top:50%;transform:translateY(-52%);color:var(--gris);font-size:17px}.onglets{display:flex;gap:4px;border-bottom:1px solid var(--bord);margin-bottom:16px;overflow-x:auto}.onglet{border:0;background:none;padding:10px 14px;color:var(--gris);font-weight:500;border-bottom:2px solid transparent;white-space:nowrap}.onglet.actif{color:var(--vert-fonce);border-bottom-color:var(--vert-fonce)}.puces{display:flex;gap:6px;flex-wrap:wrap}.puce{border:1px solid var(--bord);background:#fff;border-radius:999px;padding:5px 12px;font-size:13px;color:var(--texte)}.puce.active{border-color:var(--vert);color:var(--vert);background:var(--vert-clair)}.voile{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a1e1a73;display:grid;place-items:center;z-index:60;padding:16px}.modal{width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 20px 50px #0003}.modal.large{width:min(960px,100%)}.modal-entete{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--bord);position:sticky;top:0;background:#fff;z-index:1}.modal-corps{padding:18px 20px;display:grid;gap:14px}.modal-pied{display:flex;gap:8px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--bord);position:sticky;bottom:0;background:#fff}.fermer{border:0;background:none;font-size:20px;color:var(--gris);margin-left:auto}.toasts{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:80}.toast{background:var(--encre);color:#fff;padding:10px 14px;border-radius:10px;box-shadow:var(--ombre);max-width:380px}.toast.erreur{background:var(--rouge)}.alerte{border-radius:10px;padding:10px 14px;border:1px solid}.alerte-ambre{background:var(--ambre-clair);border-color:#f2d9a6;color:#6f4a0f}.alerte-rouge{background:var(--rouge-clair);border-color:#f5c2c2;color:#8f2222}.alerte-bleu{background:var(--bleu-clair);border-color:#c7dbf4;color:#1d4d85}.vide{padding:32px;text-align:center;color:var(--gris)}.caisse{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:16px;align-items:start}@media(max-width:1000px){.caisse{grid-template-columns:1fr}}.produit-tuile{text-align:left;border:1px solid var(--bord);background:#fff;border-radius:10px;padding:10px 12px;display:grid;gap:4px}.produit-tuile:hover{border-color:var(--vert)}.produit-tuile:disabled{opacity:.55}.tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.panier-ligne{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #eef2f1}.qte{display:inline-flex;align-items:center;border:1px solid var(--bord);border-radius:8px}.qte button{border:0;background:none;width:28px;height:28px}.qte span{min-width:26px;text-align:center;font-variant-numeric:tabular-nums}.total-caisse{font-family:var(--titres);font-size:28px;font-weight:700;color:var(--vert-fonce)}.zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.meuble{display:grid;gap:6px}.meuble-titre{font-size:12px;font-weight:600;color:var(--gris)}.etagere{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.case{border:1px solid var(--bord);border-radius:8px;padding:8px;min-height:74px;background:#fbfdfc;text-align:left;display:grid;align-content:start;gap:3px;font-size:12px}.case:hover{border-color:var(--vert)}.case.selection{outline:2px solid var(--vert-fonce)}.case-code{font-weight:700;color:var(--encre);font-size:11px}.case.alerte-rouge{background:var(--rouge-clair)}.case.alerte-ambre{background:var(--ambre-clair)}.case.froid{background:#eef6fd}.case.secure{background:#f3eefb}.case.quarantaine{background:repeating-linear-gradient(45deg,#fff5f5,#fff5f5 6px,#fde8e8 6px,#fde8e8 12px)}.barres{display:flex;align-items:flex-end;gap:3px;height:140px}.barre{flex:1;background:var(--vert);border-radius:3px 3px 0 0;min-height:2px;opacity:.85}.barre:hover{opacity:1}.jauge{height:8px;background:#edf2f0;border-radius:99px;overflow:hidden}.jauge>div{height:100%;background:var(--vert)}.planning td,.planning th{text-align:center}.creneau{border-radius:6px;padding:4px 6px;font-size:12px;font-weight:500;border:0;width:100%}.creneau-MATIN{background:#e7f6ee;color:#166c3c}.creneau-APRES_MIDI{background:#e8f0fb;color:#1d4d85}.creneau-GARDE_NUIT{background:#2a2f5a;color:#fff}.creneau-REPOS{background:#f1f3f2;color:var(--gris)}.patient{max-width:480px;margin:0 auto;min-height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:0 0 0 1px var(--bord)}.patient-entete{display:flex;align-items:center;gap:10px;padding:18px 20px 6px}.patient-nom{font-family:var(--titres);font-weight:700;font-size:19px;color:var(--vert-fonce)}.patient-nom span{color:#22c55e}.patient-corps{padding:8px 16px 96px;flex:1;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-content:start}.patient-corps .row>a{min-width:0}.patient-corps strong{overflow-wrap:anywhere}.patient-titre{font-family:var(--titres);font-size:24px;line-height:1.2;font-weight:700;color:var(--vert-fonce)}.patient-titre em{color:#22c55e;font-style:normal}.patient-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(480px,100%);background:#fff;border-top:1px solid var(--bord);display:grid;grid-template-columns:repeat(3,1fr);padding:8px 0 12px}.patient-nav a{display:grid;justify-items:center;gap:2px;text-decoration:none;color:var(--gris);font-size:12px}.patient-nav a.active{color:var(--vert);font-weight:600}.patient-nav .ico{font-size:20px}.pharma-carte{border:1px solid var(--bord);border-radius:14px;padding:14px 16px;display:grid;gap:6px;background:#fff;text-decoration:none;color:inherit}.depot{border:2px dashed #bfe6cf;border-radius:14px;padding:32px 16px;text-align:center;display:grid;gap:8px;justify-items:center;background:#fbfefc}.imprimable{display:none}@media print{body{background:#fff}.sidebar,.topbar,.no-print,.toasts,.page-entete .btn{display:none!important}.erp{display:block}.main{padding:0}.voile{position:static;background:none;padding:0;display:block}.modal{box-shadow:none;max-height:none;width:100%}.modal-entete,.modal-pied{display:none}.imprimable{display:block}.carte{box-shadow:none}}.ticket{font-family:Courier New,monospace;font-size:12px;width:300px;margin:0 auto}.ticket hr{border:0;border-top:1px dashed #999}
