*{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Couleur de Bar Manager (cyan du portail) : mêmes noms de variables que FicheTech */
  --green:#0891B2;--green-light:#ECFEFF;--green-mid:#A5F3FC;--green-dark:#0E7490;
  --blue:#2563EB;--blue-light:#EFF6FF;
  --bg:#F5F6FA;--white:#FFFFFF;--text:#0D1B2A;--muted:#8A9BB0;--border:#E8ECF1;
  --radius:14px;--shadow:0 2px 16px rgba(0,0,0,0.07);--shadow-sm:0 1px 6px rgba(0,0,0,0.05)
}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
#app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
#main{display:flex;flex:1;overflow:hidden}
#sidebar{width:210px;background:var(--white);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.logo{font-size:20px;font-weight:800;color:var(--text);margin-bottom:18px;padding:0 8px;display:flex;align-items:center;gap:8px}
.logo-dot{width:28px;height:28px;background:var(--green);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--muted);border:none;background:none;width:100%;text-align:left;transition:all .15s;font-family:inherit}
.nav-item:hover{background:var(--green-light);color:var(--green)}
.nav-item.active{background:var(--green);color:#fff}
.nav-item .ni{font-size:16px;width:20px;text-align:center}
.nav-spacer{flex:1}
.user-box{border-top:1px solid var(--border);margin-top:8px;padding:12px 8px 0}
.user-name{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:12px;color:var(--muted)}
#bottomnav{display:none;background:var(--white);border-top:1px solid var(--border);padding:8px 0 calc(4px + env(safe-area-inset-bottom));justify-content:space-around;position:fixed;bottom:0;left:0;right:0;z-index:100}
.bn-item{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:8px;border:none;background:none;font-weight:500;font-family:inherit}
.bn-item.active{color:var(--green)}
.bn-item .ni{font-size:20px}
#content{flex:1;overflow-y:auto;padding:28px 32px}
.page-title{font-size:28px;font-weight:800;margin-bottom:4px}
.page-sub{color:var(--muted);font-size:14px;margin-bottom:24px}
.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.table-wrap{overflow-x:auto}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:22px}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stat-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px;display:flex;align-items:center;gap:14px}
.stat-icon{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.s-all .stat-icon{background:#EEF2FF}.s-idea .stat-icon{background:#FFF8E1}.s-wip .stat-icon{background:#E3F2FD}.s-ready .stat-icon{background:#E8F5E9}
.stat-num{font-size:26px;font-weight:800}
.stat-label{font-size:12px;color:var(--muted);font-weight:500}
.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.recipe-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s}
.recipe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.rc-img{width:100%;height:130px;background:#f0f0f0;display:flex;align-items:center;justify-content:center;font-size:36px;color:#ccc;overflow:hidden}
.rc-img img{width:100%;height:100%;object-fit:cover}
.rc-body{padding:12px 14px}
.rc-name{font-weight:700;font-size:14px;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-meta{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.badge{padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.badge-idea{background:#FFF8E1;color:#F59E0B}
.badge-wip{background:#DBEAFE;color:#3B82F6}
.badge-ready{background:#D1FAE5;color:#10B981}
.badge-order-wip{background:#FFF8E1;color:#F59E0B}
.badge-order-done{background:#D1FAE5;color:#10B981}
.badge-prep{background:#EFF6FF;color:#2563EB}
.badge-archived{background:#F1F5F9;color:#64748B}
.badge-carte{background:#FCE7F3;color:#BE185D}
.badge-stand,.badge-zone{background:#F5F3FF;color:#6D28D9}
.stand-emoji{font-size:18px;margin-right:8px}
.filter-sep{width:1px;height:20px;background:var(--border);margin:0 4px}
.supplier-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;position:sticky;top:-28px;background:var(--bg);padding:8px 0;z-index:5}
.supplier-tabs .filter-tab .tab-count{display:inline-block;margin-left:5px;background:var(--green);color:#fff;border-radius:20px;padding:0 6px;font-size:10.5px;font-weight:700}
.supplier-tabs .filter-tab.active .tab-count{background:#fff;color:var(--green)}
.order-section-title{font-size:14px;font-weight:800;margin:18px 0 10px;display:flex;align-items:center;gap:8px}
.opr-uses{font-size:11.5px;color:#BE185D;margin-top:2px}
.show-all-btn{width:100%;justify-content:center;margin:6px 0 16px}
.recap-sup{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px;margin-bottom:14px}
.recap-sup-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.recap-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:13.5px}
.recap-row:last-child{border-bottom:none}
.recap-qty{font-weight:800;color:var(--green);text-align:right;white-space:nowrap}
.recap-split{font-size:11.5px;color:var(--muted)}
.recipe-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.filter-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.filter-row-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;width:52px;flex-shrink:0}
.filter-reset{align-self:flex-start;background:none;border:none;color:#EF4444;font-size:12.5px;font-weight:600;cursor:pointer;padding:2px 0;font-family:inherit}
.filter-reset:hover{text-decoration:underline}
.btn{padding:9px 18px;border-radius:10px;font-weight:600;font-size:13.5px;cursor:pointer;border:none;transition:all .15s;display:inline-flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none}
.btn:disabled{opacity:.6;cursor:default}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-dark)}
.btn-ghost{background:var(--green-light);color:var(--green)}
.btn-ghost:hover{background:var(--green-mid)}
.btn-sm{padding:6px 13px;font-size:12.5px}
.btn-danger{background:#FEE2E2;color:#EF4444}
.btn-neutral{background:var(--bg);color:var(--text);border:1px solid var(--border)}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px;flex-wrap:wrap}
.search-box{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--border);border-radius:10px;padding:8px 14px;flex:1;max-width:280px;min-width:180px}
.search-box input{border:none;outline:none;font-size:13.5px;background:none;width:100%;font-family:inherit}
.filter-tabs{display:flex;gap:6px;flex-wrap:wrap}
.filter-tab{padding:6px 13px;border-radius:8px;font-size:12.5px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--white);color:var(--muted);font-family:inherit}
.filter-tab.active{background:var(--green);color:#fff;border-color:var(--green)}
.data-table{width:100%;border-collapse:collapse}
.data-table th{text-align:left;padding:10px 14px;font-size:12px;color:var(--muted);font-weight:600;border-bottom:2px solid var(--border);white-space:nowrap}
.data-table td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13.5px;vertical-align:middle}
.data-table tr:last-child td{border-bottom:none}
.sup-badge{display:inline-block;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap}
.td-actions{display:flex;gap:6px}
.modal-overlay{position:fixed;inset:0;background:rgba(13,27,42,0.35);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(2px)}
.modal{background:var(--white);border-radius:20px;width:100%;max-width:700px;max-height:92vh;overflow-y:auto;padding:28px 30px;position:relative}
.modal-title{font-size:19px;font-weight:800;margin-bottom:20px;padding-right:30px}
.modal-close{position:absolute;top:18px;right:18px;background:var(--bg);border:none;width:30px;height:30px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.modal-close:hover{background:var(--border)}
.modal-sm{max-width:440px}
.form-group{margin-bottom:15px}
.form-label{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:5px;display:block}
.form-input{width:100%;padding:9px 13px;border:1.5px solid var(--border);border-radius:9px;font-size:13.5px;outline:none;transition:border .15s;background:var(--white);color:var(--text);font-family:inherit}
.form-input:focus{border-color:var(--green)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
textarea.form-input{min-height:72px;resize:vertical}
.upload-zone{border:2px dashed var(--border);border-radius:10px;padding:20px;text-align:center;cursor:pointer;color:var(--muted);font-size:13.5px;transition:all .15s}
.upload-zone:hover{border-color:var(--green);color:var(--green);background:var(--green-light)}
.ing-list{display:flex;flex-direction:column;gap:7px;margin-bottom:10px}
.ing-row{display:flex;gap:7px;align-items:center}
.ing-row select,.ing-row input{flex:1;padding:7px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;outline:none;font-family:inherit;min-width:0}
.ing-row select:focus,.ing-row input:focus{border-color:var(--green)}
.ing-search-wrap{flex:2;position:relative;min-width:0}
.ing-search-input{width:100%;padding:7px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;outline:none;font-family:inherit;cursor:pointer}
.ing-search-input:focus{border-color:var(--green)}
.ing-search-input.selected{background:var(--green-light);border-color:var(--green);font-weight:600;color:var(--text)}
.ing-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--white);border:1.5px solid var(--green);border-radius:10px;box-shadow:var(--shadow);z-index:500;max-height:200px;overflow-y:auto;margin-top:3px}
.ing-dropdown-item{padding:8px 12px;font-size:13px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.ing-dropdown-item:hover,.ing-dropdown-item.active{background:var(--green-light)}
.ing-dropdown-item .item-name{font-weight:600;color:var(--text)}
.ing-dropdown-item .item-sup{font-size:11px;color:var(--muted)}
.ing-del{background:none;border:none;color:#ccc;font-size:16px;cursor:pointer;padding:0 2px;line-height:1}
.ing-del:hover{color:#EF4444}
.step-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.step-row{display:flex;gap:8px;align-items:flex-start}
.step-num{width:26px;height:26px;background:var(--green);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;margin-top:5px}
.cost-box{background:var(--green-light);border-radius:11px;padding:14px 18px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;border:1px solid var(--green-mid)}
.cost-item{display:flex;flex-direction:column;gap:3px}
.cost-label{font-size:10.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.cost-value{font-size:19px;font-weight:800;color:var(--green)}
.allergen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:7px;margin-top:6px}
.allergen-item{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1.5px solid var(--border);border-radius:8px;cursor:pointer;font-size:12.5px;font-weight:500;transition:all .12s;user-select:none}
.allergen-item.selected{border-color:var(--green);background:var(--green-light);color:var(--green)}
.detail-back{display:flex;align-items:center;gap:6px;color:var(--green);font-weight:600;cursor:pointer;margin-bottom:20px;background:none;border:none;font-size:14px;font-family:inherit}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.section-title{font-size:15px;font-weight:700;margin-bottom:13px}
.ing-item-display{display:flex;justify-content:space-between;gap:10px;padding:8px 11px;background:var(--bg);border-radius:8px;font-size:13.5px;margin-bottom:5px}
.step-display{display:flex;gap:11px;margin-bottom:11px;align-items:flex-start}
.step-text{font-size:13.5px;padding-top:4px;white-space:pre-wrap}
.allergen-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--green-light);color:var(--green);border-radius:20px;font-size:12px;font-weight:600;margin:3px}
.history-list{display:flex;flex-direction:column;gap:6px}
.history-row{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:var(--bg);border-radius:8px;font-size:13px}
.history-price{font-weight:700;color:var(--green)}
.history-date{color:var(--muted);font-size:12px}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.tag-item{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--white);border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-weight:500}
.tag-del{background:none;border:none;color:#ccc;cursor:pointer;font-size:14px;line-height:1;padding:0}
.tag-del:hover{color:#EF4444}
.dish-emoji{cursor:pointer;font-size:16px}
.dish-label{cursor:pointer}
.dish-label:hover{color:var(--green);text-decoration:underline}
.supplier-card{background:var(--white);border-radius:var(--radius);border:1.5px solid var(--border);padding:16px 18px;margin-bottom:10px}
.supplier-name{font-weight:700;font-size:15px;margin-bottom:4px}
.supplier-detail{font-size:12.5px;color:var(--muted)}
.empty{text-align:center;padding:50px 20px;color:var(--muted)}
.empty .e-icon{font-size:48px;margin-bottom:10px}
.order-list{display:flex;flex-direction:column;gap:12px}
.order-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;cursor:pointer;transition:box-shadow .15s}
.order-card:hover{box-shadow:var(--shadow)}
.order-name{font-weight:700;font-size:15px}
.order-meta{font-size:12.5px;color:var(--muted);margin-top:3px}
.cat-section{margin-bottom:22px}
.cat-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid var(--border)}
.order-product-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--white);border-radius:10px;margin-bottom:7px;box-shadow:var(--shadow-sm)}
.opr-name{flex:1;font-size:14px;font-weight:500;min-width:0}
.opr-sup{font-size:12px;color:var(--muted)}
.opr-unit{font-size:12.5px;color:var(--muted);min-width:30px}
.sup-title{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13.5px}
.sup-title .cell-sub{text-transform:none;letter-spacing:0;font-weight:500}
.sup-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.opr-pack{min-width:92px;font-weight:600;color:var(--text);line-height:1.2}
.opr-pack small{display:block;font-weight:400;color:var(--muted);font-size:11px}
.opr-input{width:80px;padding:6px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:13.5px;text-align:center;outline:none;font-family:inherit}
.opr-input:focus{border-color:var(--green)}
.opr-input.has-value{border-color:var(--green);background:var(--green-light);font-weight:700}
.order-summary{position:sticky;bottom:0;background:var(--white);border-top:2px solid var(--border);padding:16px 20px;margin:20px -32px -28px;box-shadow:0 -4px 20px rgba(0,0,0,0.08)}
.order-summary-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.order-summary-stats{display:flex;gap:20px;flex-wrap:wrap}
.oss-item{display:flex;flex-direction:column;gap:2px}
.oss-label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase}
.oss-value{font-size:18px;font-weight:800;color:var(--green)}
.settings-block{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}
.settings-title{font-size:16px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.settings-help{font-size:12.5px;color:var(--muted);margin-bottom:14px;line-height:1.5}
.user-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border-radius:10px;margin-bottom:6px;flex-wrap:wrap}
.role-badge{padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;background:var(--green-light);color:var(--green)}
.order-reminder{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 20px;display:flex;align-items:center;gap:16px;margin-top:14px;cursor:pointer}
.ing-section-title{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:12px 0 6px;display:flex;align-items:center;gap:6px}
.rendement-box{background:var(--blue-light);border:1px solid #BFDBFE;border-radius:10px;padding:10px 14px;font-size:13px;color:var(--blue);font-weight:600;margin-top:8px;margin-bottom:4px}

/* Connexion */
#auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}
.auth-card{background:var(--white);border-radius:20px;box-shadow:var(--shadow);padding:32px 28px;width:100%;max-width:380px}
.auth-sub{text-align:center;color:var(--muted);font-size:13.5px;margin:-6px 0 22px}
.auth-error{background:#FEE2E2;color:#B91C1C;border-radius:9px;padding:9px 12px;font-size:13px;margin-bottom:14px}

/* Notifications */
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text);color:#fff;padding:11px 18px;border-radius:10px;font-size:13.5px;font-weight:500;z-index:2000;box-shadow:var(--shadow);max-width:calc(100vw - 32px)}
#toast.error{background:#B91C1C}

/* Droits : les boutons d'édition sont masqués selon le rôle dans l'espace courant (le serveur vérifie aussi) */
body:not(.role-chef):not(.role-second) .need-manager{display:none!important}
body:not(.role-chef) .need-chef{display:none!important}
body:not(.is-admin) .need-admin{display:none!important}

/* Espaces */
.group-name{font-size:11.5px;color:var(--muted);font-weight:600;padding:0 8px;margin-bottom:12px;text-transform:uppercase;letter-spacing:.4px}
.space-switch{padding:0 4px;margin-bottom:14px}
.space-label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:0 0 4px 4px}
.space-select{font-weight:700;padding:8px 10px;background:var(--green-light);border-color:var(--green-mid);color:var(--green-dark);cursor:pointer}
.space-select:disabled{cursor:default;opacity:1;-webkit-appearance:none;appearance:none}
#space-bar{display:none}
.nav-badge{margin-left:auto;background:#EF4444;color:#fff;border-radius:20px;font-size:11px;font-weight:700;padding:1px 7px;min-width:20px;text-align:center}
.nav-item.active .nav-badge{background:#fff;color:var(--green)}
.settings-scope{font-size:11.5px;font-weight:600;color:var(--green);background:var(--green-light);padding:2px 9px;border-radius:20px}
.space-role-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13.5px;font-weight:500}
.role-badge.role-admin{background:#EEF2FF;color:#4338CA}
.check-row{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;margin-top:10px;cursor:pointer}
.check-row input{width:16px;height:16px;accent-color:var(--green)}
.field-help{font-size:12px;color:var(--muted);margin:-2px 0 8px;line-height:1.45}
.cell-sub{font-size:11.5px;color:var(--muted);font-weight:400}
.info-note{background:var(--blue-light);border:1px solid #BFDBFE;color:#1E40AF;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px;line-height:1.45}
.info-note a{color:inherit;font-weight:600}
.warn-box{background:#FEF3C7;border:1px solid #FDE68A;color:#92400E;border-radius:10px;padding:9px 13px;font-size:12.5px;margin-top:10px;line-height:1.45}
.badge-warn{background:#FEF3C7;color:#B45309}

/* Tableau de bord */
.quick-order{display:flex;gap:10px;flex-wrap:wrap;margin:-8px 0 20px}
.quick-btn{padding:14px 22px;font-size:15px;border-radius:12px}
.dash-alerts{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.dash-alerts:empty{display:none}
.dash-alert{display:flex;align-items:center;gap:12px;background:#FFFBEB;border:1px solid #FDE68A;border-radius:12px;padding:12px 16px;font-size:13.5px;cursor:pointer}
.dash-alert-price{background:#FEF2F2;border-color:#FECACA}
.dash-alert-icon{font-size:20px}
.dash-alert-go{margin-left:auto;font-weight:600;color:var(--green);white-space:nowrap}

/* Allergènes */
.al-cell{min-width:120px}
.al-chip{display:inline-block;padding:1px 7px;border-radius:6px;font-size:11px;font-weight:600;background:#FEE2E2;color:#B91C1C;margin:1px 3px 1px 0;white-space:nowrap}
.al-chip.al-traces{background:#fff;color:#B45309;border:1px dashed #F59E0B}
.al-todo{display:inline-block;padding:1px 7px;border-radius:6px;font-size:11px;font-weight:600;background:#FEF3C7;color:#B45309;white-space:nowrap}
.al-none{display:inline-block;padding:1px 7px;border-radius:6px;font-size:11px;font-weight:600;background:#D1FAE5;color:#047857}
.allergen-item.traces{border-style:dashed;border-color:#F59E0B;color:#B45309;background:#FFFBEB}
.allergen-item.locked{cursor:default;opacity:.85}
.allergen-item small{font-weight:400;font-size:10.5px;opacity:.8}
.allergen-tag-traces{background:#FFFBEB;color:#B45309;border:1px dashed #F59E0B}
.al-block{margin-bottom:10px}
.al-block-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.al-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.al-source{font-size:11.5px;color:var(--muted)}
.modal.readonly .allergen-item,.modal-overlay.readonly .allergen-item{pointer-events:none}
.ing-missing{background:#FFFBEB;color:#92400E}
.ing-search-input.missing{border-color:#F59E0B;background:#FFFBEB}
.ing-search-input.missing::placeholder{color:#B45309;font-weight:600}

/* Correspondances et alertes prix */
.twin-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;background:var(--bg);border-radius:10px;margin-bottom:6px;font-size:13px}
.twin-tag{font-size:11px;font-weight:600;background:#EEF2FF;color:#4338CA;padding:2px 8px;border-radius:20px;white-space:nowrap}
.price-pill{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap}
.price-higher{background:#FEE2E2;color:#B91C1C}
.price-lower{background:#D1FAE5;color:#047857}
.price-equal{background:var(--bg);color:var(--muted)}
.stat-grid-3{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.alert-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px;margin-bottom:12px}
.alert-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;font-size:14px}
.alert-row{display:grid;grid-template-columns:minmax(110px,170px) 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;font-size:13px;cursor:pointer}
.alert-row:hover{background:var(--bg)}
.alert-row.best{background:var(--green-light)}
.alert-space{font-weight:700}
.alert-price{font-weight:700;white-space:nowrap;text-align:right}
.best-tag{font-size:10.5px;font-weight:700;color:#fff;background:var(--green);padding:1px 7px;border-radius:20px;margin-left:4px}

/* ===== Style A : épuré ===== */
:root{--border:#E8ECF1;--shadow:0 1px 2px rgba(16,24,40,.04);--shadow-sm:0 1px 2px rgba(16,24,40,.03);--text:#111418;--muted:#6B7280}
body{font-family:Inter,'Segoe UI',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
.ic{width:16px;height:16px;flex-shrink:0;vertical-align:-3px}
.ic.muted,.muted{color:var(--muted)}
.ic.warn{color:#D97706}
.btn .ic{width:16px;height:16px}
#sidebar{background:#fff;border-right:1px solid var(--border);padding:18px 12px;gap:2px}
.logo{font-size:16px;font-weight:700;gap:9px;margin-bottom:14px}
.logo-dot{width:20px;height:20px;border-radius:6px;background:var(--green)}
.group-name{font-size:11px;text-transform:none;letter-spacing:0;font-weight:500;margin-bottom:10px}
.space-label{display:none}
.space-select{background:#fff;border:1px solid var(--border);color:var(--text);font-weight:600}
.nav-item{padding:8px 10px;font-size:13.5px;color:#4B5563;gap:10px}
.nav-item .ni{width:18px;display:flex}
.nav-item .ni .ic{width:18px;height:18px}
.nav-item:hover{background:#F6F7F9;color:var(--text)}
.nav-item.active{background:var(--green-light);color:var(--green);font-weight:600}
.nav-badge{background:none;color:var(--green);padding:0;font-size:12px}
.nav-item.active .nav-badge{background:none;color:var(--green)}
.user-box{border-top:1px solid var(--border)}
#content{padding:28px 32px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.page-head .page-sub{margin-bottom:0}
.page-title{font-size:24px;font-weight:700;letter-spacing:-.01em}
.page-sub{color:var(--muted);font-size:13.5px}
.page-sub::first-letter{text-transform:uppercase}
.block-title{font-size:12px;color:var(--muted);font-weight:500;margin:0 0 6px}
.panel{background:#fff;border:1px solid var(--border);border-radius:12px;padding:2px 16px;margin-bottom:18px}
.li-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #EEF0F3;font-size:13.5px}
.li-row:last-child{border-bottom:none}
.li-row.clickable{cursor:pointer}
.li-row.clickable:hover .grow>span:first-child,.li-row.clickable:hover>.grow{color:var(--green)}
.li-head{font-size:11.5px;color:var(--muted);padding:9px 0}
.grow{flex:1;min-width:0}
.li-count{color:var(--green);font-weight:600}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dash-grid .panel{margin-bottom:18px}
.quick-order{display:flex;align-items:center;gap:12px;margin:0;flex-wrap:wrap}
.btn-lg{padding:11px 18px;font-size:14px;border-radius:10px}
.btn-link{background:none;border:none;color:var(--green);font-weight:600;font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:6px 2px;font-family:inherit}
.btn-link.small{font-size:12.5px;color:#B91C1C}
.btn{border-radius:9px}
.btn-ghost,.btn-neutral{background:#fff;color:var(--text);border:1px solid var(--border)}
.btn-ghost:hover,.btn-neutral:hover{background:#F6F7F9}
.btn-danger{background:#fff;color:#DC2626;border:1px solid #FECACA}
.btn-danger:hover{background:#FEF2F2}
.card,.settings-block,.order-card,.alert-card,.recap-sup,.stat-card,.supplier-card{box-shadow:none;border:1px solid var(--border)}
.order-product-row{box-shadow:none;border:1px solid var(--border)}
.settings-title{font-size:15px}
.settings-title .ic,.st-label .ic{width:18px;height:18px;color:var(--muted)}
.st-label{display:inline-flex;align-items:center;gap:8px}
.sdot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}
.sdot-idea{background:#F59E0B}.sdot-wip{background:#3B82F6}.sdot-ready{background:#10B981}.sdot-archived{background:#CBD5E1}
.ratio{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ratio-good{color:#047857}.ratio-warn{color:#B45309}.ratio-bad{color:#B91C1C}
.cost-value .ratio{font-size:inherit}
.ratio-form{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13.5px}
.ratio-form label{display:flex;align-items:center;gap:6px}
.ratio-form input{width:76px;padding:6px 8px}
.recipe-row .rr-meta{display:block;min-width:0;color:var(--muted);font-size:12.5px}
.rr-type,.rr-stand{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;color:#4B5563}
.rr-type{flex:0 0 120px}
.rr-stand{flex:0 1 170px}
.li-head .grow{min-width:120px}
.sort-h{cursor:pointer;user-select:none}
.sort-h:hover{color:var(--text)}
.sort-h.on{color:var(--green);font-weight:600}
.sdot-h{width:8px;flex-shrink:0;display:block;height:14px}
.rr-cost,.rr-ratio{display:block;flex-shrink:0}
.recipe-row .rr-meta.show-mobile-block{display:none}
#recipe-sort.show-mobile-block{display:none}
.rr-name{min-width:120px}
@media(max-width:1000px){.rr-cost{display:none}}
@media(max-width:860px){.rr-stand{flex-basis:120px}.rr-type{flex-basis:100px}}
.recipe-row .rr-cost,.li-head .rr-cost{width:84px;text-align:right;font-variant-numeric:tabular-nums}
.recipe-row .rr-ratio,.li-head .rr-ratio{width:64px;text-align:right}
.rr-name>span:first-child{font-weight:500}
.show-mobile-block{display:none}
.filter-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.filter-line .search-box{max-width:240px;padding:7px 12px}
.search-box{border-radius:9px}
.search-box .ic{color:var(--muted)}
.select-sm{width:auto;padding:7px 10px;font-size:13px}
.filter-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fchip-wrap{position:relative}
.fchip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:13px;color:#374151;cursor:pointer;font-family:inherit}
.fchip:hover{background:#F6F7F9}
.fchip.active{background:var(--green-light);border-color:var(--green);color:var(--green);font-weight:600}
.fchip .ic{width:14px;height:14px}
.fchip-x{display:inline-flex}
.fmenu{position:absolute;top:calc(100% + 4px);left:0;z-index:60;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(16,24,40,.12);padding:6px;min-width:190px}
.fmenu-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;font-size:13px;cursor:pointer}
.fmenu-item:hover{background:#F6F7F9}
.fmenu-item input{accent-color:var(--green);width:15px;height:15px}
.badge{font-weight:500}
.badge-idea,.badge-wip,.badge-ready,.badge-archived{background:#F6F7F9;color:#374151;display:inline-flex;align-items:center;gap:6px}
.badge-idea::before,.badge-wip::before,.badge-ready::before,.badge-archived::before{content:'';width:7px;height:7px;border-radius:50%}
.badge-idea::before{background:#F59E0B}.badge-wip::before{background:#3B82F6}.badge-ready::before{background:#10B981}.badge-archived::before{background:#CBD5E1}
.badge-stand,.badge-zone,.badge-carte{background:#F6F7F9;color:#374151}
.cost-box{background:#fff;border:1px solid var(--border)}
.cost-value{color:var(--text)}
.supplier-detail{display:flex;align-items:center;gap:6px}
.supplier-detail .ic{width:14px;height:14px}
.warn-box .ic{margin-right:4px}
.stat-icon .ic{width:20px;height:20px}
.td-actions .btn-sm{padding:6px 8px}
.bn-item .ni{display:flex;justify-content:center}
.bn-item .ni .ic{width:22px;height:22px}
.data-table th{font-weight:500}

@media(max-width:700px){
  #sidebar{display:none}
  .supplier-tabs{top:-14px}
  #bottomnav{display:flex}
  #main{padding-bottom:calc(60px + env(safe-area-inset-bottom))}
  #content{padding:14px 16px 16px}
  .page-title{font-size:24px}
  .stat-grid{grid-template-columns:1fr 1fr}
  .quick-btn{flex:1 1 100%;justify-content:center}
  .dash-grid{grid-template-columns:1fr}
  .detail-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .recipes-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .hide-mobile{display:none}
  .cost-box{grid-template-columns:1fr}
  .search-box{max-width:none}
  .modal{padding:24px 18px}
  .order-summary{margin:20px -16px -16px}
  #space-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-2px 0 14px}
  .space-bar-group{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  #space-bar .space-select{width:auto;max-width:60%}
  .alert-row{grid-template-columns:1fr auto}
  .alert-row .alert-prod{grid-column:1/-1;order:3}
  .bn-item{padding:4px 4px}
  #toast{bottom:84px}
}
.show-mobile{display:none}
@media(max-width:700px){.show-mobile{display:block;margin-top:3px}.data-table td,.data-table th{padding:10px 8px}}
@media(max-width:700px){
  .dash-grid{grid-template-columns:1fr;gap:0}
  .page-head{flex-direction:column;align-items:stretch}
  .quick-order{flex-direction:column-reverse;align-items:stretch}
  .quick-order .btn-lg{justify-content:center;padding:14px}
  .quick-order .btn-link{justify-content:center}
  .show-mobile-block{display:block}
  .recipe-row .rr-meta.show-mobile-block{display:block;white-space:normal;flex:none}
  .recipe-row .rr-meta.hide-mobile,.li-head.hide-mobile,.recipe-row .rr-type,.recipe-row .rr-stand{display:none}
  #recipe-sort.show-mobile-block{display:block}
  .rr-meta.show-mobile-block{margin-top:2px}
  .filter-line .search-box{max-width:none;flex:1 1 100%}
  .panel{padding:2px 14px}
  #content{padding:14px 16px 16px}
}
.confirm-modal{padding:24px 24px 20px}
.confirm-modal .modal-title{margin-bottom:8px;padding-right:0}
.confirm-body{font-size:14px;color:#374151;line-height:1.5;margin-bottom:12px}
.confirm-body:empty{display:none}
.confirm-irreversible{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#B91C1C;margin-bottom:4px}
.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.btn-danger-solid{background:#DC2626;color:#fff;border:none}
.btn-danger-solid:hover{background:#B91C1C}
.opr-dup{display:flex;align-items:flex-start;gap:5px;font-size:11.5px;color:#B45309;margin-top:3px;line-height:1.35}
.opr-dup .ic{width:13px;height:13px;margin-top:1px}
.badge-stale{background:#FEF3C7;color:#B45309;display:inline-flex;align-items:center;gap:4px}
.badge-stale .ic{width:12px;height:12px}
.badge-ready-list{background:#D1FAE5;color:#047857;display:inline-flex;align-items:center;gap:4px}
.badge-ready-list .ic{width:12px;height:12px}
.opr-passed{display:flex;align-items:center;gap:5px;font-size:11.5px;color:#047857;margin-top:3px}
.opr-passed .ic{width:13px;height:13px}
.opr-value{font-weight:700;color:var(--green);font-size:15px;text-align:right;min-width:40px}
.recap-lists{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 8px}
.list-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--border);border-radius:20px;padding:2px 9px;cursor:pointer;background:#fff}
.list-chip.ready{border-color:#A7F3D0;background:#F0FDF4;color:#047857}
.list-chip .ic{width:12px;height:12px}
.step-photo{flex-shrink:0;position:relative}
.step-photo img{width:64px;height:52px;object-fit:cover;border-radius:8px;border:1px solid var(--border);cursor:pointer;display:block}
.step-photo-add{width:64px;height:52px;border:1.5px dashed var(--border);border-radius:8px;background:#fff;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;cursor:pointer;font-family:inherit}
.step-photo-add:hover{border-color:var(--green);color:var(--green)}
.step-photo-add .ic{width:18px;height:18px}
.step-photo-del{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:none;background:#111418;color:#fff;font-size:11px;cursor:pointer;line-height:1}
.step-display{align-items:flex-start}
.step-display .step-text{flex:1}
.step-thumb{width:96px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--border);cursor:zoom-in;flex-shrink:0}
.photo-view{max-width:94vw;max-height:88vh;border-radius:12px;background:#fff}
#modal-photo{cursor:zoom-out}
@media(max-width:700px){.step-thumb{width:72px;height:56px}}
.img-preview{position:relative;display:inline-block}
.img-preview img{display:block;border-radius:8px;max-width:100%}
.img-remove{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;border:2px solid #fff;background:#111418;color:#fff;font-size:12px;cursor:pointer;line-height:1}
.img-remove:hover{background:#DC2626}
.upload-hint{font-size:11.5px;color:var(--muted);margin-top:6px}
.badge-passed{background:#E0E7FF;color:#3730A3}
.lock-ic{width:26px;height:26px;border-radius:50%;background:#E0E7FF;color:#3730A3;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lock-ic .ic{width:14px;height:14px}
.al-ic{width:15px;height:15px;flex-shrink:0}
.al-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:7px;background:#FEF2F2;color:#B91C1C;border:1px solid #FECACA}
.al-chip .al-ic{width:13px;height:13px}
.al-chip.al-traces{background:#fff;color:#B45309;border:1px dashed #F59E0B}
.allergen-tag{display:inline-flex;align-items:center;gap:5px;background:#FEF2F2;color:#B91C1C;border:1px solid #FECACA}
.allergen-tag.allergen-tag-traces{background:#fff;color:#B45309;border:1px dashed #F59E0B}
.allergen-item{gap:7px}
.allergen-item .al-ic{color:var(--muted)}
.allergen-item.selected .al-ic{color:inherit}
.allergen-item.traces .al-ic{color:#B45309}
#allergen-grid .allergen-item.selected,#p-allergen-grid .allergen-item.selected{border-color:#FECACA;background:#FEF2F2;color:#B91C1C}
.modal-wide{max-width:860px}
.import-tip{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:13px;margin:12px 0}
.import-help{font-size:13px;margin-top:10px}
.import-help summary{cursor:pointer;color:var(--green);font-weight:600}
.import-help ul{margin:8px 0 0 18px;line-height:1.6;color:#374151}
.map-table{border:1px solid var(--border);border-radius:10px;padding:2px 12px;margin:10px 0}
.map-row{display:grid;grid-template-columns:170px 220px minmax(0,1fr);gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid #EEF0F3;font-size:13px}
.map-row:last-child{border-bottom:none}
.map-field{font-weight:600}.req{color:#DC2626}
.map-sample{color:#4B5563;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.imp-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-size:12px;color:var(--muted);cursor:pointer;font-family:inherit;min-width:92px}
.imp-stat b{font-size:18px;color:var(--text)}
.imp-stat.on{border-color:var(--green);background:var(--green-light)}
.imp-stat.err b{color:#B91C1C}
.imp-list{border:1px solid var(--border);border-radius:10px;padding:2px 12px;max-height:46vh;overflow-y:auto}
.imp-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #EEF0F3;font-size:13px}
.imp-row:last-child{border-bottom:none}
.imp-row.skipped{opacity:.55}
.imp-line{font-size:11px;color:var(--muted);width:34px;flex-shrink:0;padding-top:2px}
.imp-new{background:#D1FAE5;color:#047857}.imp-upd{background:#DBEAFE;color:#1D4ED8}.imp-err{background:#FEE2E2;color:#B91C1C}
.imp-changes{font-size:12px;color:#1D4ED8;margin-top:2px}
.imp-errors{font-size:12px;color:#B91C1C;margin-top:2px;display:flex;gap:4px;align-items:center}
.imp-errors .ic{width:13px;height:13px}
.imp-warn{font-size:12px;color:#B45309;margin-top:2px}
@media(max-width:700px){.map-row{grid-template-columns:1fr;gap:4px}}
.sup-choice{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--border);margin-top:8px}
.sup-choice select{max-width:340px}
.space-card{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.space-card>div{min-width:0}
.space-logo{flex:0 0 40px;align-self:center;width:40px;height:40px;border-radius:9px;object-fit:contain;border:1px solid var(--border);background:#fff;flex-shrink:0}
.space-logo.no-logo{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.user-row.clickable{cursor:pointer}
.user-row.clickable:hover{background:#EEF0F3}
.sup-line{display:flex;align-items:center;gap:8px}
.avail-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.avail-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:2px 8px;border-radius:20px;border:1px dashed var(--border);color:var(--muted);background:#fff}
.avail-chip.on{border:1px solid #A7F3D0;background:#F0FDF4;color:#047857}
.avail-chip .ic{width:12px;height:12px}
.sheet-section{border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:#fff}
.sheet-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;margin-bottom:12px}
.sheet-title .ic{width:16px;height:16px;color:var(--muted)}
.site-section.off{background:var(--bg)}
.site-section.off .site-fields{display:none}
.site-section .site-fields{margin-top:12px}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:6px}
.contact-card{border:1px solid #EEF0F3;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px;background:#FAFBFC}
.contact-type{font-size:12px;font-weight:700;color:#374151}
.contact-card .form-input{padding:6px 9px;font-size:12.5px}
.day-picker{display:flex;gap:4px;flex-wrap:wrap}
.day{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:6px 6px;border:1px solid var(--border);border-radius:8px;font-size:12px;cursor:pointer;user-select:none;background:#fff}
.day input{display:none}
.day.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.recap-sup-info{font-size:12px;color:#4B5563;margin:-2px 0 8px;display:flex;flex-wrap:wrap;gap:4px 12px}
.recap-sup-info .ic{width:13px;height:13px;color:var(--muted);vertical-align:-2px;margin-right:3px}
.export-menu{left:auto;right:0;min-width:280px;top:calc(100% + 6px)}
.export-menu .fmenu-item{width:100%;border:none;background:none;text-align:left;font-family:inherit;align-items:flex-start;gap:10px;padding:9px 10px}
.export-menu .fmenu-item .ic{width:18px;height:18px;margin-top:2px;color:var(--green)}
.export-menu .fmenu-item span{display:flex;flex-direction:column;gap:2px}
.export-menu .fmenu-item small{color:var(--muted);font-size:11.5px}
.hidden{display:none!important}

/* ---- Bar Manager ---- */
.stat-card.clickable{cursor:pointer}
.stat-card.clickable:hover{border-color:var(--green-mid)}
.cat-row td{background:var(--bg);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-top:8px;padding-bottom:8px}
.form-row.price-row{grid-template-columns:repeat(3,1fr)}
.current-tag{font-size:11px;background:var(--green-light);color:var(--green);padding:2px 8px;border-radius:10px;margin-left:6px}
.chart-box{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.price-chart{width:100%;height:auto;display:block}
.price-chart .ch-grid{stroke:var(--border);stroke-width:1}
.price-chart .ch-axis{font-size:11px;fill:var(--muted);font-family:inherit}
.price-chart .ch-line{fill:none;stroke:var(--green);stroke-width:2.5;stroke-linejoin:round}
.price-chart .ch-dot{fill:var(--white);stroke:var(--green);stroke-width:2}
.loss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 18px}
.loss-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13.5px}
.loss-row input{width:76px;padding:6px 8px;text-align:right}
.loss-row>span:last-child{display:flex;align-items:center;gap:6px;white-space:nowrap}
.loss-default{font-weight:700}
@media(max-width:768px){.form-row.price-row{grid-template-columns:1fr 1fr 1fr;gap:8px}}
.filter-tab{display:inline-flex;align-items:center;gap:5px}

/* ---- Fiches boissons ---- */
.type-picker{display:flex;flex-wrap:wrap;gap:8px}
.type-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1.5px solid var(--border);border-radius:10px;background:var(--white);font-family:inherit;font-size:13px;cursor:pointer;color:var(--text)}
.type-btn span{font-size:16px}
.type-btn.active{border-color:var(--green);background:var(--green-light);color:var(--green-dark);font-weight:600}
.line-kind{font-size:11px;font-weight:600;color:var(--muted);background:var(--bg);border-radius:6px;padding:6px 8px;white-space:nowrap}
.line-cost{min-width:62px;text-align:right;font-size:12.5px;font-weight:600;color:var(--green);white-space:nowrap;font-variant-numeric:tabular-nums}
.line-cost.line-error{color:#B91C1C}
.cost-box.cost-box-4{grid-template-columns:repeat(4,1fr)}
.cost-box .cost-label+.cost-value+.cost-label{margin-top:-2px}
.drink-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:18px}
.drink-photo{width:120px;height:120px;border-radius:14px;object-fit:cover;flex-shrink:0;cursor:zoom-in}
.drink-photo.no-photo{display:flex;align-items:center;justify-content:center;font-size:52px;background:var(--green-light);cursor:default}
.drink-title{font-size:24px;font-weight:800;margin-bottom:8px}
.drink-infos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;font-size:13.5px}
.comp-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #EEF0F3;font-size:13.5px}
.comp-row:last-child{border-bottom:none}
.comp-row.clickable{cursor:pointer}
.comp-row.clickable:hover .grow>span:first-child{color:var(--green)}
.comp-qty{min-width:70px;font-weight:700;color:var(--green);white-space:nowrap}
.comp-cost{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.comp-error .cell-sub{color:#B91C1C}
.comp-error .cell-sub .ic{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--green)}
.drinks-table td{vertical-align:middle}
@media(max-width:768px){
  .cost-box.cost-box-4{grid-template-columns:1fr 1fr}
  .drink-photo{width:84px;height:84px}
  .drink-photo.no-photo{font-size:38px}
  .drink-title{font-size:20px}
  #d-lines .ing-row{flex-wrap:wrap}
  #d-lines .ing-search-wrap{flex:1 1 100%}
}
#drink-detail .detail-grid{grid-template-columns:3fr 2fr}
@media(max-width:1100px){#drink-detail .detail-grid{grid-template-columns:1fr}}

/* ---- Inventaires ---- */
.inv-value{min-width:90px;text-align:right;font-variant-numeric:tabular-nums}
.inv-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.inv-total{display:flex;flex-direction:column;gap:2px;align-items:flex-end;background:var(--green-light);border:1px solid var(--green-mid);border-radius:12px;padding:10px 16px}
.inv-zones{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;-webkit-overflow-scrolling:touch}
.inv-zone{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:9px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--white);font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text);cursor:pointer}
.inv-zone .ic{width:15px;height:15px}
.inv-zone.active{background:var(--green);border-color:var(--green);color:#fff}
.inv-zone.active .muted{color:#E0F7FB}
.inv-list{background:var(--white);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.inv-cat{background:var(--bg);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 14px}
.inv-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid #EEF0F3}
.inv-cat+.inv-row{border-top:none}
.inv-row.counted{background:#FBFEFF}
.inv-row.inv-low{background:#FFF7F7}
.inv-name{font-weight:600;font-size:13.5px}
.inv-inputs{display:flex;gap:10px}
.inv-read{min-width:110px;text-align:right;font-size:13.5px}
.inv-val{min-width:80px;text-align:right;font-size:13px;font-weight:600;color:var(--green);font-variant-numeric:tabular-nums}
.qty-box{display:flex;flex-direction:column;align-items:center;gap:3px}
.qty-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.qty-ctl{display:flex;align-items:center;gap:4px}
.qty-ctl input{width:58px;text-align:center;padding:7px 4px;border:1.5px solid var(--border);border-radius:8px;font-size:15px;font-weight:700;font-family:inherit;outline:none}
.qty-ctl input:focus{border-color:var(--green)}
.qty-btn{width:34px;height:34px;border-radius:9px;border:none;font-size:18px;font-weight:700;cursor:pointer;font-family:inherit}
.qty-btn.minus{background:#FEE2E2;color:#B91C1C}
.qty-btn.plus{background:var(--green-light);color:var(--green-dark)}
.inv-cats{margin-bottom:14px}
@media(max-width:768px){
  .inv-row{flex-wrap:wrap}
  .inv-row>.grow{flex:1 1 100%}
  .inv-inputs{flex:1}
  .qty-btn{width:42px;height:42px;font-size:20px}
  .qty-ctl input{width:64px;font-size:17px;padding:9px 4px}
  .inv-total{align-items:flex-start;width:100%}
}

/* ---- Commandes ---- */
.opr-low{font-size:11.5px;color:#B91C1C;margin-top:2px;font-weight:600}
.order-section-title .ic{width:16px;height:16px;color:#B91C1C}
