:root{
  font-family:"Segoe UI",Arial,sans-serif;
  color:#082d3b;
  background:#f7f5f0;
  --nav:#003b46;
  --nav2:#064d58;
  --gold:#d38c24;
  --gold-dark:#b97213;
  --gold-soft:#f3dfb8;
  --cream:#f7f5f0;
  --card:#ffffff;
  --border:#dce3e4;
  --text:#062d3c;
  --muted:#74868d;
  --blue:#dfeaf6;
  --green:#e4f4e5;
  --red:#f9dddd;
  --yellow:#fbf3d3;
  --shadow:0 7px 18px rgba(20,51,58,.06);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--cream);color:var(--text)}
body{font-size:15px}
button,input,select,textarea{font:inherit}
button{border:1px solid #d6dddf;border-radius:10px;background:#fff;color:var(--text);padding:10px 16px;cursor:pointer;transition:.15s;font-weight:600}
button:hover{border-color:#b9c5c8;background:#fafafa}
button.primary,form>button:not([type="button"]),form button.primary{background:linear-gradient(180deg,#dd9b3a,#c9801c);border-color:#c9801c;color:#fff;box-shadow:0 4px 10px rgba(201,128,28,.15)}
button.primary:hover,form>button:not([type="button"]):hover{background:#b97213}
button.danger{color:#a52d32;border-color:#efc3c5;background:#fff7f7}
button:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{width:100%;margin-top:7px;border:1px solid #d8e1e3;border-radius:10px;background:#f8fbfc;color:var(--text);padding:11px 13px;outline:none}
input:focus,select:focus,textarea:focus{border-color:#2c7a8b;box-shadow:0 0 0 3px rgba(44,122,139,.12);background:#fff}
textarea{min-height:84px;resize:vertical}
label{display:block;color:#183f4a;font-size:.92rem;font-weight:500}
hr{border:0;border-top:1px solid #d7dedd;margin:34px 0}
h1{font-size:1.85rem;line-height:1.1;margin:0 0 8px;font-weight:700;color:#052e3d}
h2{font-size:1.55rem;margin:20px 0 10px;color:#082e3d}
h3{font-size:1rem;margin:0 0 8px}
p{line-height:1.5}
summary{cursor:pointer;font-weight:600;list-style:none}
summary::-webkit-details-marker{display:none}
summary:before{content:"›";display:inline-block;margin-right:12px;font-size:1.2rem;transition:.15s}
details[open] summary:before{transform:rotate(90deg)}

#sidebar{position:fixed;left:0;top:0;bottom:0;width:238px;background:linear-gradient(180deg,#003944 0%,#004b57 62%,#003a46 100%);color:white;display:flex;flex-direction:column;z-index:50;box-shadow:8px 0 22px rgba(0,0,0,.14)}
.brand-block{text-align:center;padding:28px 16px 14px}
.sidebar-logo{display:block;width:118px;height:auto;margin:0 auto 12px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.12))}
.brand-kicker{color:#f0b53f;font-size:.72rem;font-weight:800;letter-spacing:.15em}
#nav{overflow-y:auto;flex:1;padding:0 8px 10px}
.nav-section{margin:13px 8px 4px;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.19);font-size:.64rem;font-weight:800;letter-spacing:.13em;color:#cae2e5;text-transform:uppercase}
.nav-button{display:flex;width:100%;align-items:center;gap:9px;border:1px solid transparent;border-radius:10px;padding:9px 13px;margin:2px 0;background:transparent;color:#fff;text-align:left;font-size:.88rem;font-weight:650}
.nav-button:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.05)}
.nav-button.active{background:rgba(111,117,83,.32);border-color:rgba(217,176,75,.50);color:#ffcb44}
.nav-button .icon{font-size:1.03rem;width:20px;text-align:center}
.user-card{margin:8px 12px 14px;padding:9px 11px;border:1px solid rgba(226,181,74,.45);border-radius:15px;background:rgba(255,255,255,.025);display:flex;align-items:center;gap:9px}
.user-avatar{width:43px;height:43px;border-radius:50%;background:#fff7e8;color:#173d46;display:grid;place-items:center;font-weight:800}
.user-meta{min-width:0;flex:1}.user-meta b,.user-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta span{font-size:.7rem;color:#d2e2e4;margin-top:2px}.user-card button{border:0;background:transparent;color:#fff;padding:5px}

#app-shell{margin-left:238px;min-height:100vh}
.topbar{height:80px;background:#fff;border-bottom:1px solid #e2e2df;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:30}
.topbar-brand{font-size:.78rem;color:#334d55}.topbar-brand span{margin-left:7px}.connection-state{color:#6e8187;font-size:.82rem}
main{max-width:1420px;margin:0 auto;padding:36px 38px 70px}
.page{display:none}.page.active{display:block}
.page-heading{margin-bottom:23px}.page-heading p{margin:0;color:var(--muted);font-size:.9rem}
.helper{color:var(--muted);font-size:.88rem;margin:7px 0 16px}

.panel,.panel-field,.control-grid,.upload-zone{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
.panel{padding:18px;margin:15px 0}
.panel-field{display:block;padding:12px 14px;margin:15px 0}
.panel-field input,.panel-field select{margin-top:7px}
.accent-border{border-color:#d89c41;box-shadow:0 0 0 2px rgba(216,156,65,.12),var(--shadow)}
.control-grid{display:grid;gap:14px;padding:10px 12px;margin:13px 0 18px}.control-grid.two{grid-template-columns:1fr 1fr}.control-grid.dlc-grid{grid-template-columns:360px 1fr;align-items:stretch}.control-grid .notice{margin:0}
.content-grid{display:grid;gap:18px}.content-grid.two-wide{grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:4px}.form-grid.inline{grid-template-columns:1.2fr .8fr auto auto;align-items:end}.form-grid .span-2{grid-column:1/-1}
.component-form{display:grid;grid-template-columns:150px 1.3fr 150px 130px auto;gap:10px;align-items:end}
.radio-row{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin:14px 0}.radio-row label,.check-grid label{display:flex;align-items:center;gap:8px}.radio-row input,.check-grid input{width:auto;margin:0}
.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:14px 4px 18px}
.tabs,.step-tabs{display:flex;gap:4px;border-bottom:1px solid #d5dedf;margin:10px 0 18px;overflow-x:auto}.tabs button,.step-tabs button{border:0;border-radius:0;background:transparent;padding:10px 7px;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.active,.step-tabs button.active{border-bottom-color:#186c84;color:#104f62;background:transparent}
.program-tab,.recipe-step{display:none}.program-tab.active,.recipe-step.active{display:block}
.notice{border-radius:8px;padding:15px 17px;margin:13px 0;line-height:1.4}.notice.info{background:var(--blue);color:#135aa2}.notice.success{background:var(--green);color:#18753c}.notice.warning{background:var(--yellow);color:#9a6b00}.notice.danger{background:var(--red);color:#bb3033}

.metric-grid{display:grid;gap:14px;margin:14px 0}.metric-grid.three{grid-template-columns:repeat(3,1fr)}.metric-grid.four{grid-template-columns:repeat(4,1fr)}.metric-grid.five{grid-template-columns:repeat(5,1fr)}.metric-grid.six{grid-template-columns:repeat(6,1fr)}
.metric-card{background:#fff;border:1px solid #e5e7e5;border-radius:15px;padding:18px 16px;box-shadow:var(--shadow);min-height:112px}.metric-label{font-size:.67rem;letter-spacing:.09em;text-transform:uppercase;color:#77888e;font-weight:800}.metric-value{font-size:1.45rem;font-weight:800;margin-top:14px}.metric-note{font-size:.76rem;color:#88989d;margin-top:9px}
.pilot{padding:13px 15px}.pilot h3{margin:0}.pilot p{margin:5px 0 0;color:#71858c;font-size:.84rem}

.list-row,.task-card,.user-row,.history-row{background:#fff;border:1px solid #e2e6e5;border-radius:12px;padding:13px 15px;margin:8px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.list-row .muted,.task-card .muted{font-size:.78rem;color:#7c8d92}.list-row-actions{display:flex;gap:8px;flex-wrap:wrap}
.task-card{border-left:4px solid #3baa72;align-items:flex-start}.task-card.blocked{border-left-color:#d74747}.task-card.done{border-left-color:#55a86e}.task-info{flex:1}.task-title{font-weight:750;margin-bottom:6px}.task-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.71rem;background:#e6f2f5;color:#1d6577}.badge.gold{background:#fff0ca;color:#875b00}.badge.green{background:#dff3e4;color:#267043}.badge.red{background:#f9dddd;color:#a93035}
.empty{padding:26px;text-align:center;color:#7f9095;background:#f8faf9;border-radius:10px}

.planning-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:34px}.planning-side .panel{margin-top:0}.planning-side button{width:100%;margin:6px 0}.week-board{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:14px}.day-column h3{text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;margin:0 0 13px}.day-drop{min-height:100px;border:1px dashed #d8dedf;border-radius:12px;padding:7px;background:rgba(255,255,255,.34)}.day-drop.dragover{background:#edf6f7;border-color:#3f8190}.day-empty{height:86px;display:grid;place-items:center;text-align:center;color:#94a0a3;font-size:.75rem}.day-empty b{font-size:1.35rem;font-weight:300}.planning-task{background:#fff;border:1px solid #ddd9cf;border-radius:10px;padding:10px;margin:7px 0;cursor:grab;box-shadow:0 4px 10px rgba(20,51,58,.04)}.planning-task.done{background:#fffaf0;border-color:#dfa344}.planning-task .qty{font-size:.73rem;color:#71858b;margin-top:6px}

.quick-period{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:12px 0}.quick-period button{background:#fff}
.upload-zone{padding:14px 16px;margin:16px 0;background:#f2f7f9}.upload-zone input{background:#fff}.instructions{line-height:2.2;margin-top:28px}

.data-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #dce2e2;border-radius:13px;overflow:hidden;margin:13px 0}.data-table th,.data-table td{padding:10px 11px;border-right:1px solid #e1e5e5;border-bottom:1px solid #e1e5e5;text-align:left;font-size:.84rem}.data-table th{background:#f7f9fa;color:#667a81;font-weight:600}.data-table tr:last-child td{border-bottom:0}.data-table th:last-child,.data-table td:last-child{border-right:0}

.print-actions{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin:12px 0}.print-sheet{background:#fff;border-radius:15px;padding:32px;margin-top:12px;box-shadow:var(--shadow)}.print-header{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #0b4d59;padding-bottom:18px;margin-bottom:18px}.print-header img{width:130px}.print-header h2{margin:0}.print-table{width:100%;border-collapse:collapse}.print-table th{background:#095364;color:#fff}.print-table th,.print-table td{padding:8px;border:1px solid #ccd7d9;font-size:.82rem;vertical-align:top}.print-notes{min-height:90px;border:1px solid #ccd7d9;padding:12px;margin-top:14px}

.settings-list label{display:flex;justify-content:space-between;align-items:center;padding:13px 3px;border-bottom:1px solid #eef0ef}.settings-list input{width:auto;margin:0;transform:scale(1.15)}.settings-list h2:not(:first-child){margin-top:28px}
.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.permission-item{display:flex;gap:8px;align-items:center;border:1px solid #e4e8e7;border-radius:8px;padding:8px}.permission-item input{width:auto;margin:0}

.auth-screen{position:fixed;inset:0;background:linear-gradient(145deg,#003945,#075966);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}.auth-screen.show{display:flex}.auth-card{width:min(420px,100%);background:#fff;border-radius:20px;padding:25px;box-shadow:0 25px 70px rgba(0,0,0,.3)}.auth-card img{display:block;width:150px;margin:0 auto 12px}.auth-card h1,.auth-card p{text-align:center}.auth-card p{color:#75878d}
.modal{position:fixed;inset:0;background:rgba(0,50,60,.62);display:flex;align-items:center;justify-content:center;padding:20px;z-index:110}.modal-card{width:min(660px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:17px;padding:22px}
#toast{position:fixed;right:20px;bottom:20px;z-index:130;background:#073a44;color:#fff;padding:12px 17px;border-radius:10px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:none}

@media(max-width:1180px){
  .week-board{grid-template-columns:repeat(3,1fr)}
  .metric-grid.six{grid-template-columns:repeat(3,1fr)}
  .metric-grid.five{grid-template-columns:repeat(3,1fr)}
  .component-form{grid-template-columns:1fr 1fr}.component-form button{grid-column:1/-1}
}
@media(max-width:900px){
  #sidebar{width:205px}#app-shell{margin-left:205px}main{padding:25px 22px}.topbar{padding:0 18px}
  .planning-layout,.content-grid.two-wide{grid-template-columns:1fr}.planning-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .control-grid.two,.control-grid.dlc-grid{grid-template-columns:1fr}
  .metric-grid.four,.metric-grid.five,.metric-grid.six{grid-template-columns:repeat(2,1fr)}
  .check-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  #sidebar{position:static;width:100%;height:auto}.brand-block{padding:11px}.sidebar-logo{width:75px;margin-bottom:5px}.brand-kicker{font-size:.58rem}#nav{display:flex;overflow-x:auto;padding:7px}.nav-section{display:none}.nav-button{width:auto;white-space:nowrap}.user-card{display:none}#app-shell{margin-left:0}.topbar{height:52px}main{padding:18px 12px}.page-heading h1{font-size:1.45rem}
  .form-grid,.form-grid.inline,.component-form,.metric-grid.three,.metric-grid.four,.metric-grid.five,.metric-grid.six,.quick-period{grid-template-columns:1fr}.week-board{grid-template-columns:1fr}.planning-side{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}
  .print-actions{align-items:stretch;flex-direction:column}.print-actions button{width:100%}
}
@media print{
  #sidebar,.topbar,.page:not(#printing),#printing>.page-heading,#printing>.control-grid,#printing>.helper,#printing>.check-grid,#printing>details,#printing>.metric-grid,#printing>.print-actions,#toast{display:none!important}
  #app-shell{margin:0}main{padding:0;max-width:none}#printing{display:block!important}.print-sheet{box-shadow:none;margin:0;border-radius:0;padding:0}.print-table th,.print-table td{font-size:10pt}
}

/* Ajustements 1.1 : fidélité à la version de référence */
.date-clickable{cursor:pointer}
.date-clickable input[type="date"]{cursor:pointer}
.settings-tab{display:none}.settings-tab.active{display:block}
.product-selector-panel{display:grid;gap:14px}
.product-selector-panel>label{width:100%}
.product-component-editor{margin-top:14px;padding-top:8px;border-top:1px solid #e5e9e8}
.product-component-row{margin:11px 0}
.product-save-row{display:grid;grid-template-columns:1fr 2fr;gap:15px;margin-top:16px}
.quick-inline-form{margin-top:22px;border-color:#d89c41;box-shadow:0 0 0 2px rgba(216,156,65,.12),var(--shadow)}
.history-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}
.bar-chart{min-height:300px;padding:10px}
.chart-legend{display:flex;gap:18px;justify-content:flex-end;font-size:.8rem;color:var(--muted);margin-bottom:8px}
.chart-legend i{display:inline-block;width:12px;height:12px;margin-right:5px;border-radius:2px}.chart-legend i.forecast,.chart-bar.forecast{background:#82c5f4}.chart-legend i.shipped,.chart-bar.shipped{background:#126b9e}
.chart-columns{height:270px;display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:16px;border-bottom:1px solid #dbe2e3;padding:0 12px}
.chart-day{text-align:center;color:var(--muted);font-size:.74rem}.chart-day small{display:block;margin-top:3px}.chart-bars{height:225px;display:flex;gap:5px;justify-content:center;align-items:end}.chart-bar{width:28%;min-width:12px;border-radius:3px 3px 0 0}
#scan-components input,#scan-components select{margin:0;min-width:105px}
#scan-components td:first-child{min-width:190px}
.settings-tabs{margin-bottom:28px}

@media(max-width:900px){
  .history-layout{grid-template-columns:1fr}
  .product-save-row{grid-template-columns:1fr}
}
.product-recipe-line{margin:12px 0;padding:16px}
.product-line-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.product-line-heading h3{margin:0}
.product-save-row{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
@media (max-width:1100px){.product-save-row button{min-height:46px}.product-recipe-line .form-grid{grid-template-columns:1fr 1fr}}
@media (max-width:650px){.product-recipe-line .form-grid{grid-template-columns:1fr}.product-save-row{flex-direction:column}.product-save-row button{width:100%}}

/* Version 1.4 : la recette d'un produit fini reste sur une seule ligne sur PC,
   comme dans l'ERP de référence. */
.product-recipe-line .product-component-form{
  grid-template-columns:minmax(250px,1.55fr) minmax(250px,1.55fr) minmax(105px,.55fr) minmax(145px,.75fr);
  align-items:end;
}
@media(max-width:1100px){
  .product-recipe-line .product-component-form{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .product-recipe-line .product-component-form{grid-template-columns:1fr}
}
.editable-print-cell,.print-notes[contenteditable="true"]{min-height:26px;outline:none;cursor:text}
.editable-print-cell:focus,.print-notes[contenteditable="true"]:focus{box-shadow:inset 0 0 0 2px rgba(44,122,139,.28);background:#fffef5}
[hidden]{display:none!important}

/* Paramètres assistant : disposition fidèle à l'ERP de référence. */
.assistant-settings-panel{display:grid;gap:18px}
.assistant-settings-panel .assistant-mode-field,
.assistant-settings-panel .assistant-capacity-field{display:block;padding:0;border:0}
.assistant-settings-panel .assistant-mode-field select,
.assistant-settings-panel .assistant-capacity-field input{margin-top:8px;width:100%}
.assistant-check-grid{grid-template-columns:1fr 1fr;gap:18px 70px;margin:4px 0}
.full-width-button{display:block;width:100%;margin-top:12px}
@media(max-width:700px){.assistant-check-grid{grid-template-columns:1fr}}

.scan-format-row{display:grid;grid-template-columns:1.2fr .8fr auto auto;gap:10px;align-items:end;background:#f7fafb;border:1px solid #dce4e5;border-radius:11px;padding:12px;margin:8px 0}.scan-format-default{display:flex;align-items:center;gap:8px;padding-bottom:11px;white-space:nowrap}.scan-format-default input{width:auto;margin:0}@media(max-width:900px){.scan-format-row{grid-template-columns:1fr 1fr}.scan-format-row button{grid-column:1/-1}}

.metric-card[role="button"]{cursor:pointer;transition:transform .12s ease,border-color .12s ease}.metric-card[role="button"]:hover,.metric-card[role="button"]:focus{transform:translateY(-2px);border-color:var(--gold);outline:none}


.collaboration-banner{margin:12px 0;padding:12px 14px;border-radius:10px;border:1px solid #9bc9c2;background:#eaf8f5;font-weight:600}.collaboration-banner.locked{border-color:#e1b760;background:#fff4d8}.collaboration-banner .muted{display:block;margin-top:4px;font-weight:400}.recipe-readonly{opacity:.82}.recipe-readonly input:disabled,.recipe-readonly select:disabled,.recipe-readonly textarea:disabled{background:#f3f3f3;cursor:not-allowed}

/* Référence 1.8 : navigation catalogue, programmation multi-formats et étapes. */
.prep-chooser-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}
.prep-chooser-grid .span-2{grid-column:1/-1}
.ingredient-row{align-items:flex-start}.ingredient-packages{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.ingredient-packages .badge{display:inline-flex;align-items:center;gap:5px}.package-delete{border:0;background:transparent;padding:0 2px;color:inherit;font-size:1rem;line-height:1;min-height:0}
.program-line-row,.program-step-row{margin:10px 0}.program-step-row{border-left:4px solid var(--teal)}
.program-step-heading{display:flex;align-items:center;gap:16px;margin-bottom:10px}.program-step-heading .form-check{display:flex;align-items:center;gap:7px;margin:0}.program-step-heading input[type="checkbox"]{width:auto;margin:0}
.program-line-row .form-grid,.program-step-row .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.program-line-row .span-2{grid-column:1/-1}
.metric-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}.planning-step{border-left:4px solid #2c7a8b;background:#f4fbfc}.list-row.planning-step{border-left-width:4px}
#scan-yield-helper{display:block;margin-top:6px;font-weight:400}
@media(max-width:1180px){.metric-grid.six{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.prep-chooser-grid,.program-line-row .form-grid,.program-step-row .form-grid{grid-template-columns:1fr}.prep-chooser-grid .span-2,.program-line-row .span-2{grid-column:1}}
@media(max-width:700px){.metric-grid.six{grid-template-columns:1fr}}
.autocomplete-field{position:relative}.autocomplete-list{position:absolute;z-index:40;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid #cbd8da;border-radius:10px;box-shadow:0 12px 30px rgba(0,45,55,.16);max-height:280px;overflow:auto}.autocomplete-list button{display:flex;width:100%;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #eef1f1;border-radius:0;background:#fff;text-align:left;padding:10px 12px}.autocomplete-list button:last-child{border-bottom:0}.autocomplete-list button:hover,.autocomplete-list button:focus{background:#f0f8f9}.autocomplete-list span{color:var(--muted);font-size:.8rem}
.package-edit,.package-delete{border:0;background:transparent;padding:0 2px;color:inherit;font-size:.95rem;line-height:1;min-height:0}

/* Référence 1.8.1 — programmation compacte multi-étapes */
.program-chooser{display:grid;grid-template-columns:minmax(190px,.75fr) minmax(320px,1.5fr) minmax(220px,.8fr);gap:16px;align-items:end;margin-bottom:10px}
.program-chooser input,.program-chooser select{margin-top:7px}
.program-period-box{align-self:stretch;display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--border);padding-left:18px}
.program-period-box span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.program-period-box b{margin-top:7px;font-size:.9rem}
.program-incomplete-panel{padding:12px 16px;margin:10px 0}
.program-section{background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow);padding:16px;margin:14px 0}
.program-section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:12px}
.program-section-heading h2{font-size:1.2rem;margin:0 0 4px}
.program-section-heading p{margin:0;color:var(--muted);font-size:.82rem}
.program-step-tools{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.program-step-tools button,.program-section-heading>button{padding:8px 11px;min-height:38px}
.compact-metrics{gap:9px;margin:10px 0}
.compact-metrics .metric-card{min-height:82px;padding:12px 13px;border-radius:12px}
.compact-metrics .metric-value{font-size:1.16rem;margin-top:8px}
.compact-metrics .metric-note{font-size:.68rem;margin-top:5px}
.program-summary{margin-top:14px}
.program-line-header,.program-line-row{display:grid;grid-template-columns:42px minmax(145px,.85fr) minmax(105px,.65fr) minmax(180px,1.2fr) minmax(120px,.72fr) minmax(150px,1fr) 42px;gap:8px;align-items:center}
.program-step-header,.program-step-row{display:grid;grid-template-columns:48px minmax(155px,1.2fr) minmax(145px,.9fr) 92px 88px minmax(125px,.85fr) minmax(145px,1fr) 105px;gap:8px;align-items:center}
.program-line-header,.program-step-header{padding:0 8px 7px;color:#70838a;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.program-line-row,.program-step-row{margin:7px 0;padding:8px;border:1px solid #dfe6e7;border-radius:11px;background:#fbfcfc}
.program-line-row:hover,.program-step-row:hover{border-color:#bfcfd2;background:#fff}
.program-line-row label,.program-step-row label{min-width:0}
.program-line-row input,.program-line-row select,.program-step-row input,.program-step-row select{margin:0;padding:8px 9px;border-radius:8px;min-width:0}
.program-row-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e8f1f2;color:#0b5664;font-weight:800;margin:auto}
.program-row-delete{width:36px;height:36px;padding:0;display:grid;place-items:center}
.program-quantity-cell,.program-duration-cell{position:relative}
.program-quantity-cell small,.program-duration-cell small{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.68rem;color:var(--muted);pointer-events:none}
.program-quantity-cell input,.program-duration-cell input{padding-right:45px}
.program-step-include{display:grid;place-items:center}
.program-step-include input{width:19px;height:19px;margin:0}
.program-step-order{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}
.program-step-order button{min-width:0;padding:7px 5px;border-radius:7px}
.program-step-row.excluded{opacity:.55;background:#f2f3f3}
.program-step-row.excluded input:not([type="checkbox"]),.program-step-row.excluded select{filter:grayscale(.5)}
.program-step-empty{margin:6px 0;border:1px dashed #cbd7d9}
.mobile-field-label{display:none}
.program-submit-panel{position:sticky;bottom:10px;z-index:8;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.48fr);gap:14px;align-items:end;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border:1px solid #d8e0e1;border-radius:14px;padding:13px 15px;margin:14px 0;box-shadow:0 12px 35px rgba(0,45,55,.16)}
.program-submit-panel textarea{min-height:54px;margin-top:6px}
.program-submit-panel button{min-height:54px}

@media(max-width:1180px){
  .program-chooser{grid-template-columns:1fr 1.5fr}.program-period-box{grid-column:1/-1;border-left:0;border-top:1px solid var(--border);padding:11px 0 0;display:block}.program-period-box b{margin-left:8px}
  .program-line-header,.program-step-header{display:none}
  .program-line-row{grid-template-columns:42px 1fr 1fr;align-items:end;padding:12px}.program-line-row label{display:block}.program-line-row>label:nth-of-type(3),.program-line-row>label:nth-of-type(4),.program-line-row>label:nth-of-type(5){grid-column:auto}.program-row-delete{align-self:end}
  .program-step-row{grid-template-columns:48px 1fr 1fr;align-items:end;padding:12px}.program-step-name-cell{grid-column:2/-1}.program-step-order{grid-column:2/-1;display:flex;justify-content:flex-end}.program-step-order button{width:42px}
  .mobile-field-label{display:block;margin:0 0 5px;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}
}
@media(max-width:760px){
  .program-chooser{grid-template-columns:1fr}.program-section{padding:12px}.program-section-heading{align-items:stretch;flex-direction:column}.program-section-heading>button,.program-step-tools button{width:100%}.program-step-tools{display:grid;grid-template-columns:1fr 1fr}.program-step-tools .badge{grid-column:1/-1;justify-self:start}
  .program-line-row{grid-template-columns:38px 1fr}.program-line-row>label,.program-line-row .program-row-delete{grid-column:2}.program-row-number{grid-row:1;grid-column:1}.program-row-delete{width:100%}
  .program-step-row{grid-template-columns:38px 1fr}.program-step-row>label,.program-step-name-cell,.program-step-order{grid-column:2}.program-step-include{grid-column:1;grid-row:1}.program-step-order{justify-content:stretch}.program-step-order button{width:auto;flex:1}
  .program-submit-panel{position:static;grid-template-columns:1fr}.program-submit-panel button{width:100%}
}


/* Référence 1.8.2 — création des étapes directement depuis le scanner */
.scan-steps-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-top:26px}.scan-steps-heading h3{margin-bottom:4px}.scan-steps-heading .helper{margin:0}.scan-step-row{display:grid;grid-template-columns:86px minmax(260px,1fr) 130px 150px auto;gap:10px;align-items:end;background:#f7fafb;border:1px solid #dce4e5;border-radius:11px;padding:12px;margin:8px 0}.scan-step-number{align-self:center;font-weight:800;color:#173843}.scan-step-stock{display:flex;align-items:center;gap:8px;padding-bottom:11px;white-space:nowrap}.scan-step-stock input{width:auto;margin:0}.scan-step-buttons{display:flex;gap:6px;align-items:end;padding-bottom:1px}.scan-step-buttons button{min-width:42px}.scan-step-buttons .danger{min-width:auto}@media(max-width:1100px){.scan-step-row{grid-template-columns:72px minmax(220px,1fr) 120px}.scan-step-stock,.scan-step-buttons{grid-column:auto}.scan-step-buttons{grid-column:2/-1;justify-content:flex-end}}@media(max-width:720px){.scan-steps-heading{align-items:stretch;flex-direction:column}.scan-step-row{grid-template-columns:1fr}.scan-step-number,.scan-step-stock,.scan-step-buttons{grid-column:1}.scan-step-buttons{justify-content:flex-start}}

/* Version 1.8.5 — production réelle, planning semaine, recherche et performances */
.production-real-modal{max-width:1180px}
.production-real-list{display:grid;gap:12px;margin:16px 0}
.production-real-row{display:grid;grid-template-columns:minmax(165px,1.05fr) minmax(130px,.8fr) minmax(150px,.9fr) minmax(210px,1.25fr) minmax(210px,1.25fr) minmax(170px,1fr);gap:10px;align-items:end;border:1px solid var(--border);border-radius:13px;background:#fbfcfc;padding:13px}
.production-real-row>div,.production-real-row>label{min-width:0;margin:0}
.production-real-row small{display:block;margin-bottom:5px;color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.production-real-row strong,.production-real-row span{display:block}
.production-real-format span,.production-real-preview span,.production-real-row>div:nth-child(3)>span{margin-top:5px;color:var(--muted);font-size:.76rem}
.production-input-with-action{display:grid;grid-template-columns:minmax(95px,1fr) auto;gap:6px}
.production-input-with-action input,.production-real-row input{margin:0;min-width:0}
.production-input-with-action button{padding:8px 9px;white-space:nowrap}
.production-real-preview{border-left:3px solid var(--gold);padding-left:10px}
.production-confirmation{margin:14px 0;padding:14px;border:1px solid #e2b45a;border-radius:12px;background:#fff8e8}
.production-confirmation h3{margin-top:0}
.production-main-actions{justify-content:flex-end;position:sticky;bottom:0;background:#fff;padding-top:12px;border-top:1px solid var(--border)}
@media(max-width:1100px){.production-real-row{grid-template-columns:1fr 1fr 1fr}.production-real-format{grid-column:1/-1}.production-real-preview{grid-column:auto}}
@media(max-width:720px){.production-real-row{grid-template-columns:1fr}.production-real-format,.production-real-preview{grid-column:1}.production-input-with-action{grid-template-columns:1fr}.production-main-actions{position:static;display:grid;grid-template-columns:1fr}.production-main-actions button{width:100%}}

/* 1.8.5 — recherche globale, vue semaine simplifiée et détails à la demande */
.topbar{gap:18px}.topbar-brand{flex:0 0 auto}.connection-state{flex:0 0 auto;min-width:90px;text-align:right}
.global-search{position:relative;flex:1;max-width:650px;margin:0 auto}.global-search>input{margin:0;width:100%;height:44px;padding:10px 78px 10px 42px;border-radius:12px;background:#f7f9f9;border-color:#dbe2e3}.global-search>input:focus{background:#fff}.global-search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);z-index:2;color:#688087;font-size:1.1rem}.global-search kbd{position:absolute;right:11px;top:50%;transform:translateY(-50%);font:600 .7rem/1 "Segoe UI",Arial,sans-serif;color:#73858a;background:#fff;border:1px solid #d8e0e1;border-bottom-width:2px;border-radius:6px;padding:6px 8px;pointer-events:none}.global-search-results{position:absolute;left:0;right:0;top:51px;background:#fff;border:1px solid #d5dfe0;border-radius:13px;box-shadow:0 18px 44px rgba(0,45,55,.18);overflow:hidden;max-height:min(65vh,520px);overflow-y:auto;z-index:80}.global-search-result{display:grid;grid-template-columns:100px minmax(0,1fr) 24px;align-items:center;width:100%;gap:12px;border:0;border-bottom:1px solid #edf1f1;border-radius:0;background:#fff;text-align:left;padding:11px 13px;font-weight:400}.global-search-result:last-child{border-bottom:0}.global-search-result:hover,.global-search-result:focus{background:#f0f7f8;outline:none}.global-search-type{font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;color:#6e8389;font-weight:800}.global-search-main{min-width:0}.global-search-main b,.global-search-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-search-main small{margin-top:3px;color:var(--muted);font-size:.76rem}.global-search-empty{padding:18px;color:var(--muted);text-align:center}

.planning-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.planning-title-row>button{flex:0 0 auto}.planning-week-toolbar{display:grid;grid-template-columns:minmax(250px,auto) minmax(240px,360px) 1fr;align-items:end;gap:14px;margin:0 0 17px}.planning-week-toolbar .planning-mode{margin:0}.planning-week-picker{background:#fff;border:1px solid var(--border);border-radius:12px;padding:9px 12px}.planning-week-picker input,.planning-week-picker select{margin-top:5px;padding:8px 10px}.planning-week-toolbar>#planning-period{align-self:center;margin:0;text-align:right}.planning-week-metrics{margin:0 0 18px}.planning-week-metrics .metric-card{min-height:96px}.planning-week-metrics .metric-value{margin-top:9px}
.planning-week-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}.planning-week-days{display:grid;gap:9px}.planning-week-row{display:grid;grid-template-columns:120px 105px 130px minmax(220px,1fr) 150px 128px;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:13px;padding:14px 14px;box-shadow:0 4px 13px rgba(20,51,58,.045)}.planning-week-row:hover{border-color:#c6d2d4}.planning-week-date b,.planning-week-date span{display:block}.planning-week-date b{text-transform:capitalize;font-size:1.05rem}.planning-week-date span{margin-top:4px;color:var(--muted);font-size:.8rem}.planning-week-stat{border-left:1px solid #edf0ef;padding-left:14px}.planning-week-stat strong,.planning-week-stat span{display:block}.planning-week-stat strong{font-size:1.08rem}.planning-week-stat span{margin-top:4px;color:var(--muted);font-size:.72rem}.planning-week-categories{display:flex;flex-wrap:wrap;gap:5px}.planning-category{display:inline-flex;align-items:center;max-width:170px;padding:5px 8px;border-radius:999px;background:#eef5f6;color:#315f69;font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-week-alert-cell{text-align:left}.planning-alert-badge,.planning-ok{display:inline-flex;align-items:center;padding:6px 9px;border-radius:8px;font-size:.72rem;font-weight:700}.planning-alert-badge{background:#fff2df;color:#a85f00;border:1px solid #f0d0a2}.planning-ok{background:#edf7ef;color:#277643}.planning-week-row>[data-planning-day-open]{padding:8px 10px;font-size:.75rem;white-space:nowrap}
.planning-week-side{position:sticky;top:98px}.planning-week-side .panel{margin:0 0 13px}.planning-week-side .panel>button{display:block;width:100%;margin-top:8px}.planning-side-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.planning-side-heading h3{margin:0}.planning-side-heading button{padding:6px 8px;font-size:.7rem}.planning-alert-item{display:grid;grid-template-columns:38px minmax(0,1fr) 16px;align-items:center;width:100%;gap:9px;border:0;border-top:1px solid #edf0f0;border-radius:0;background:#fff;text-align:left;padding:11px 3px;font-weight:400}.planning-alert-item:first-child{border-top:0}.planning-alert-item:hover,.planning-alert-item:focus{background:#fafcfc;outline:none}.planning-alert-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff3de;color:#b16b08}.planning-alert-icon.blocked{background:#fee9e9;color:#bd3035}.planning-alert-icon.overdue{background:#fff0dc;color:#c66d00}.planning-alert-icon.dlc{background:#eef6ef;color:#2c7b43}.planning-alert-item b,.planning-alert-item small{display:block}.planning-alert-item b{font-size:.82rem}.planning-alert-item small{margin-top:3px;color:var(--muted);font-size:.7rem;line-height:1.25}.planning-day-detail{scroll-margin-top:100px;margin-top:18px}.planning-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.planning-detail-heading h2{margin:0}.planning-day-elements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.planning-day-elements .planning-task{margin:0;cursor:pointer}.planning-advanced{margin-top:18px}.planning-advanced[open] summary{margin-bottom:14px}

@media(max-width:1180px){
  .topbar{padding-left:16px;padding-right:16px}.global-search{max-width:none}.planning-week-layout{grid-template-columns:1fr}.planning-week-side{position:static;display:grid;grid-template-columns:1fr 1fr;gap:12px}.planning-week-row{grid-template-columns:105px 90px 110px minmax(180px,1fr) 130px 120px}.planning-week-toolbar{grid-template-columns:1fr 1fr}.planning-week-toolbar>#planning-period{grid-column:1/-1;text-align:left}.planning-day-elements{grid-template-columns:1fr}
}
@media(max-width:850px){
  .topbar-brand{display:none}.connection-state{min-width:auto}.global-search kbd{display:none}.global-search>input{padding-right:12px}.planning-week-toolbar{grid-template-columns:1fr}.planning-week-toolbar>#planning-period{grid-column:auto}.planning-week-row{grid-template-columns:90px 1fr 1fr;gap:9px}.planning-week-categories{grid-column:1/3}.planning-week-alert-cell{grid-column:3}.planning-week-row>[data-planning-day-open]{grid-column:1/-1;width:100%}.planning-week-stat{padding-left:10px}.planning-week-side{grid-template-columns:1fr}
}
@media(max-width:600px){
  .topbar{height:62px}.global-search{width:100%}.connection-state{display:none}.planning-title-row{display:block}.planning-title-row>button{margin-top:10px;width:100%}.planning-week-row{grid-template-columns:1fr 1fr}.planning-week-date{grid-column:1/-1}.planning-week-categories,.planning-week-alert-cell{grid-column:1/-1}.planning-week-row>[data-planning-day-open]{grid-column:1/-1}.planning-week-stat:first-of-type{border-left:0;padding-left:0}
}

/* Version 1.8.6 — Atelier plein écran et adaptation tactile automatique */
.topbar{justify-content:flex-start}
.topbar-spacer{flex:1}
.tablet-menu-toggle{display:none;padding:8px 11px;font-size:1.2rem}
.tablet-menu-backdrop{position:fixed;inset:0;background:rgba(0,45,55,.46);z-index:44}

.workshop-shell{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:18px;align-items:start;margin-top:18px}
.workshop-task-pane,.workshop-detail{background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow)}
.workshop-task-pane{padding:14px;position:sticky;top:98px;max-height:calc(100vh - 118px);overflow:auto}
.workshop-pane-heading h2{margin:2px 0 4px}.workshop-pane-heading .helper{margin:0 0 10px}
#workshop-list{display:grid;gap:8px}
.workshop-task-button{position:relative;display:grid;grid-template-columns:1fr auto;gap:5px 12px;width:100%;min-width:0;padding:13px 38px 13px 13px;text-align:left;background:#fff;border:1px solid #e0e6e6;border-left:4px solid #c8d3d5;border-radius:12px;font-weight:400}
.workshop-task-button:hover,.workshop-task-button:focus{background:#f9fbfb;border-color:#c2d1d3;outline:none;box-shadow:0 0 0 3px rgba(44,122,139,.10)}
.workshop-task-button.doing{border-left-color:#d38c24;background:#fffcf7}.workshop-task-button.done{border-left-color:#48a06b}.workshop-task-button.blocked{border-left-color:#c74348;background:#fffafa}.workshop-task-button.partial{border-left-color:#447eaa}
.workshop-task-button b{grid-column:1/-1;font-size:.93rem;min-width:0;overflow-wrap:anywhere}.workshop-task-button small{grid-column:1/-1;color:var(--muted);line-height:1.35;font-size:.75rem}
.workshop-task-status{font-size:.67rem;color:#60767d;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.workshop-task-arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:1.35rem;color:#789096}
.workshop-detail{min-width:0;padding:20px;scroll-margin-top:92px}
.workshop-detail-empty{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:30px}.workshop-detail-empty>span{font-size:2rem}.workshop-detail-empty h2{margin:12px 0 4px}.workshop-detail-empty p{margin:0}
.workshop-back-button{display:none;margin-bottom:8px;padding-left:0;border:0;background:transparent;color:#386a76}
.production-view-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #e7ecec;padding-bottom:14px;margin-bottom:16px}.production-view-heading h2{margin:4px 0 4px}.production-view-heading .helper{margin:0;max-width:760px}
.production-real-modal{max-width:1180px}
.production-real-list{display:grid;gap:14px;margin:16px 0}
.production-real-row{display:block;border:1px solid var(--border);border-radius:14px;background:#fbfcfc;padding:16px;min-width:0}
.production-real-format{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e7ecec}.production-real-format small,.production-real-row small{display:block;margin-bottom:5px;color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.production-real-format b{font-size:1.04rem}.production-real-format>span{color:var(--muted);font-size:.8rem;white-space:nowrap}
.production-real-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:13px}.production-real-stats>div{background:#fff;border:1px solid #e7ebeb;border-radius:11px;padding:12px;min-width:0}.production-real-stats strong,.production-real-stats span{display:block}.production-real-stats strong{font-size:1.05rem}.production-real-stats span{margin-top:5px;color:var(--muted);font-size:.76rem}
.production-real-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:13px}.production-real-entry label{min-width:0}.production-real-entry input{margin:0;min-width:0}
.production-input-with-action{display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:7px}.production-input-with-action button{white-space:nowrap;padding:9px 11px}
.production-real-preview{margin-top:13px;border-left:4px solid var(--gold);border-radius:8px;background:#fff8e9;padding:11px 13px}.production-real-preview strong,.production-real-preview span{display:block}.production-real-preview span{margin-top:5px;color:#6e7777;font-size:.78rem}
.production-confirmation{margin:16px 0;padding:15px;border:1px solid #e2b45a;border-radius:12px;background:#fff8e8}.production-confirmation h3{margin-top:0}.production-confirm-row{display:grid;gap:4px;padding:10px 0;border-top:1px solid rgba(185,133,43,.22)}.production-confirm-row:first-of-type{border-top:0}.production-confirm-row span{font-size:.84rem;color:#536970}
.production-main-actions{justify-content:flex-end;position:sticky;bottom:10px;background:rgba(255,255,255,.96);padding:12px;border:1px solid #e2e8e8;border-radius:12px;box-shadow:0 8px 22px rgba(10,44,50,.10);z-index:5}
.workshop-step-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.workshop-step-summary span{background:#edf4f5;border-radius:999px;padding:6px 9px;font-size:.76rem}.workshop-step-form{padding:0}

@media(max-width:1180px){
  .workshop-shell{grid-template-columns:300px minmax(0,1fr)}
  .production-real-stats{grid-template-columns:1fr 1fr}.production-real-stats>div:last-child{grid-column:1/-1}
  .production-real-entry{grid-template-columns:1fr}
}

/* Une tablette tactile utilise la même application, avec seulement une disposition adaptée. */
@media (max-width:1100px) and (pointer:coarse){
  #sidebar{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);height:auto;transform:translateX(-105%);transition:transform .18s ease;z-index:60;box-shadow:12px 0 30px rgba(0,0,0,.22)}
  #sidebar.tablet-open{transform:translateX(0)}
  #app-shell{margin-left:0}
  .tablet-menu-toggle{display:inline-flex;align-items:center;justify-content:center;order:0;min-width:48px;min-height:48px;margin-right:10px}
  .topbar-brand{display:block;order:1}.topbar-spacer{order:2}.connection-state{order:3}
  .topbar{height:68px;padding:0 18px;gap:8px}
  main{max-width:none;padding:22px 20px 82px}
  .workshop-date-controls{grid-template-columns:1fr 1fr}
  .workshop-shell{display:block}
  .workshop-task-pane{position:static;max-height:none;padding:12px}
  .workshop-detail{display:none;padding:18px;min-height:0}
  .workshop-shell.detail-open .workshop-task-pane{display:none}
  .workshop-shell.detail-open .workshop-detail{display:block}
  .workshop-back-button{display:inline-flex;align-items:center}
  .workshop-task-button{min-height:76px;padding:14px 42px 14px 14px}
  .workshop-task-button b{font-size:1rem}.workshop-task-button small{font-size:.82rem}
  .workshop-detail button,.workshop-task-pane button{min-height:48px}
  .workshop-detail input,.workshop-detail select,.workshop-detail textarea{font-size:16px;min-height:48px}
  .production-view-heading>button:last-child{display:none}
  .production-real-stats{grid-template-columns:1fr}.production-real-stats>div:last-child{grid-column:auto}
  .production-real-entry{grid-template-columns:1fr}
  .production-input-with-action{grid-template-columns:minmax(0,1fr) auto}
  .production-main-actions{bottom:8px;display:grid;grid-template-columns:1fr;gap:8px}.production-main-actions button{width:100%;min-height:52px}
}

@media (max-width:620px){
  .workshop-date-controls{grid-template-columns:1fr}
  .workshop-detail{padding:13px}.production-real-row{padding:12px}.production-real-format{align-items:flex-start;flex-direction:column}.production-real-format>span{white-space:normal}
  .production-input-with-action{grid-template-columns:1fr}.production-input-with-action button{width:100%}
}

/* ========================================================================== 
   1.8.8 — Ajustements demandés uniquement, sans refonte visuelle globale
   ========================================================================== */
/* La barre haute a été retirée. Le menu tactile reste accessible sur tablette. */
.floating-menu{display:none}
.workshop-task-pane{top:20px}
.workshop-detail{scroll-margin-top:20px}

/* Commandes fournisseurs : calendrier de commande et recommandations, sans prix. */
.commands-today-head,.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:4px 0 14px}
.commands-today-head h2,.section-heading-row h2{margin:0 0 4px}
.commands-today-head .helper,.section-heading-row .helper{margin:0}
.commands-today-head>label,.section-heading-row>label{width:min(280px,100%);flex:0 0 auto}
.supplier-recommendation{background:#fff;border:1px solid var(--border);border-radius:14px;margin:12px 0 16px;box-shadow:var(--shadow);overflow:hidden}
.supplier-recommendation-head{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 18px;background:#fbfaf6;border-bottom:1px solid #e7e7e0}
.supplier-recommendation-head h3{font-size:1.12rem;margin:5px 0 2px}
.supplier-recommendation-head p{margin:0;color:var(--muted);font-size:.8rem}
.recommend-badge{display:inline-flex;background:#fff0ca;color:#875b00;border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.supplier-count{min-width:72px;text-align:center;font-size:1.35rem;font-weight:800;color:var(--text)}
.supplier-count span{display:block;font-size:.65rem;color:var(--muted);font-weight:600}
.command-table{width:100%}
.command-table-head,.command-table-row{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(190px,1fr) minmax(170px,.8fr);gap:16px;align-items:center}
.command-table-head{padding:9px 18px;background:#f7f9fa;color:#667a81;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.command-table-row{padding:13px 18px;border-top:1px solid #edf0ed}
.command-table-row:first-of-type{border-top:0}
.command-line-main b,.command-line-main span,.command-package b,.command-package span,.command-order b,.command-order span{display:block}
.command-line-main span,.command-package span,.command-order span{margin-top:4px;color:var(--muted);font-size:.76rem}
.command-order b{color:#0f5663;font-size:1rem}
.command-supplier-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.command-supplier-heading h3{font-size:1.05rem;margin:0}
.command-supplier-heading span{font-size:.76rem;color:var(--muted)}
.upcoming-orders{background:#fff;border:1px solid var(--border);border-radius:14px;padding:15px 18px;margin:13px 0;box-shadow:var(--shadow)}
.upcoming-orders h3{margin-bottom:7px}
.upcoming-orders>div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-top:1px solid #edf0ed}
.upcoming-orders>div:first-of-type{border-top:0}
.upcoming-orders span{color:var(--muted)}
.supplier-config-panel{margin-top:22px}
.supplier-schedule-row{display:grid;grid-template-columns:minmax(160px,.9fr) minmax(340px,1.8fr) 150px 170px auto;gap:11px;align-items:end;padding:13px 0;border-top:1px solid #e8ece9}
.supplier-schedule-row:first-of-type{border-top:0}
.supplier-schedule-title{align-self:center}
.supplier-schedule-title b,.supplier-schedule-title span{display:block}
.supplier-schedule-title span{margin-top:4px;font-size:.73rem;color:var(--muted)}
.weekday-checks{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding-bottom:3px}
.weekday-checks label{display:flex;align-items:center;gap:3px;border:1px solid #dfe4e2;border-radius:7px;padding:6px 7px;background:#fff;font-size:.73rem}
.weekday-checks input{width:auto;margin:0}
.supplier-schedule-row>button{min-height:40px}
.commands-period-section{margin-top:26px}
.commands-actions{justify-content:flex-end;margin:8px 0 14px}

@media(max-width:1180px){
  .supplier-schedule-row{grid-template-columns:1fr 1.8fr 1fr 1fr}.supplier-schedule-row>button{grid-column:4}
  .command-table-head,.command-table-row{grid-template-columns:1.2fr 1fr .8fr}
}
@media(max-width:900px){
  .commands-today-head,.section-heading-row{align-items:stretch;flex-direction:column}
  .commands-today-head>label,.section-heading-row>label{width:100%}
  .supplier-schedule-row{grid-template-columns:1fr 1fr}.supplier-schedule-title,.weekday-checks{grid-column:1/-1}.supplier-schedule-row>button{grid-column:auto}
  .command-table-head{display:none}.command-table-row{grid-template-columns:1fr 1fr}.command-order{grid-column:1/-1;background:#f8faf8;border-radius:7px;padding:9px}
}
@media (max-width:1100px) and (pointer:coarse){
  .floating-menu{display:inline-flex;position:fixed;left:14px;top:14px;z-index:58;width:48px;height:48px;align-items:center;justify-content:center;background:var(--nav);color:#fff;border-color:var(--nav);box-shadow:0 6px 18px rgba(13,52,66,.22)}
  main{padding-top:78px}
  .workshop-task-pane{top:auto}
}
@media(max-width:700px){
  .supplier-schedule-row{grid-template-columns:1fr}.supplier-schedule-title,.weekday-checks,.supplier-schedule-row>button{grid-column:1}
  .command-table-row{grid-template-columns:1fr}.command-order{grid-column:1}
  .upcoming-orders>div{align-items:flex-start;flex-direction:column;gap:3px}
}
@media print{.floating-menu{display:none!important}}

/* ========================================================================== 
   1.8.9 — Paramétrage des ingrédients dans Commandes fournisseurs
   ========================================================================== */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.commands-tabs{margin-top:0}
.ingredient-command-settings-panel{margin-top:4px}
.ingredient-command-settings-panel>h2{margin-bottom:4px}
.ingredient-command-table-head,.ingredient-command-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(220px,1fr) minmax(330px,1.7fr) auto;gap:12px;align-items:center}
.ingredient-command-table-head{padding:9px 0;color:#667a81;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #dfe6e3}
.ingredient-command-row{padding:12px 0;border-bottom:1px solid #edf0ed}
.ingredient-command-row:last-child{border-bottom:0}
.ingredient-command-name b,.ingredient-command-name span{display:block}
.ingredient-command-name span{margin-top:4px;font-size:.75rem;color:var(--muted)}
.ingredient-command-supplier{margin:0}
.ingredient-command-supplier input{width:100%}
.ingredient-weekdays{padding-bottom:0}
.ingredient-command-row>button{min-height:40px}
@media(max-width:1050px){
  .ingredient-command-table-head{display:none}
  .ingredient-command-row{grid-template-columns:1fr 1.4fr}.ingredient-command-name{grid-column:1}.ingredient-command-supplier{grid-column:2}.ingredient-weekdays{grid-column:1/-1}.ingredient-command-row>button{justify-self:end}
}
@media(max-width:700px){
  .ingredient-command-row{grid-template-columns:1fr}.ingredient-command-name,.ingredient-command-supplier,.ingredient-weekdays,.ingredient-command-row>button{grid-column:1}.ingredient-command-row>button{width:100%}
}

/* ========================================================================== 
   1.9.2 — Adaptation téléphone, uniquement visuelle
   ========================================================================== */
.mobile-menu-close{display:none}

/* Le téléphone utilise un vrai tiroir vertical, indépendamment du type de pointeur
   annoncé par Safari. Les règles tablette existantes restent inchangées. */
@media screen and (max-width:700px){
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-menu-open{overflow:hidden;touch-action:none}

  #sidebar{
    position:fixed;left:0;top:0;bottom:0;
    width:min(82vw,320px);height:100dvh;
    transform:translateX(-105%);transition:transform .2s ease;
    z-index:60;box-shadow:12px 0 30px rgba(0,0,0,.24);
    padding-bottom:env(safe-area-inset-bottom)
  }
  #sidebar.tablet-open{transform:translateX(0)}
  .brand-block{position:relative;padding:18px 14px 10px}
  .sidebar-logo{width:92px;margin-bottom:7px}
  .brand-kicker{font-size:.62rem}
  .mobile-menu-close{
    display:inline-flex;position:absolute;right:10px;top:max(10px,env(safe-area-inset-top));
    width:42px;height:42px;align-items:center;justify-content:center;
    padding:0;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font-size:1.05rem
  }

  #nav{display:block;overflow-y:auto;overflow-x:hidden;padding:5px 9px 10px;-webkit-overflow-scrolling:touch}
  .nav-section{display:block;margin:12px 7px 5px;padding-bottom:5px}
  .nav-button{
    display:flex;width:100%;min-height:50px;white-space:normal;
    align-items:center;gap:10px;padding:11px 12px;margin:3px 0;
    font-size:.94rem;line-height:1.22
  }
  .nav-button .icon{flex:0 0 24px;width:24px;font-size:1.12rem}
  .user-card{display:flex;margin:8px 10px max(10px,env(safe-area-inset-bottom))}

  #app-shell{margin-left:0;min-width:0;width:100%}
  .floating-menu{
    display:inline-flex;position:fixed;
    left:max(12px,env(safe-area-inset-left));top:max(12px,env(safe-area-inset-top));
    z-index:58;width:48px;height:48px;align-items:center;justify-content:center;
    padding:0;background:var(--nav);color:#fff;border-color:var(--nav);box-shadow:0 6px 18px rgba(13,52,66,.22)
  }
  .tablet-menu-backdrop{z-index:55;background:rgba(0,35,43,.50)}
  main{max-width:none;width:100%;padding:76px 12px 54px}

  h1{font-size:1.5rem} h2{font-size:1.28rem}
  .page-heading{margin-bottom:17px}.page-heading p{font-size:.86rem}
  .panel,.panel-field,.upload-zone{border-radius:12px;padding:13px}
  .control-grid,.control-grid.two,.control-grid.dlc-grid,.form-grid,.form-grid.inline,
  .content-grid.two-wide,.component-form,.prep-chooser-grid,.program-chooser{
    grid-template-columns:1fr!important
  }
  .form-grid .span-2,.prep-chooser-grid .span-2{grid-column:1!important}
  .control-grid{padding:10px;margin:10px 0 15px;gap:11px}
  input,select,textarea{font-size:16px;min-height:48px;padding:11px 12px}
  textarea{min-height:96px}
  button{min-height:46px}
  .list-row-actions,.print-actions,.commands-actions{display:grid;grid-template-columns:1fr;width:100%;gap:8px}
  .list-row-actions button,.print-actions button,.commands-actions button{width:100%}

  .metric-grid,.metric-grid.three,.metric-grid.four,.metric-grid.five,.metric-grid.six{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px
  }
  .metric-card{min-height:96px;padding:14px 12px}.metric-value{font-size:1.25rem;margin-top:10px}

  .planning-layout{display:block}
  .planning-side{margin-top:16px}
  .week-board{
    display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;
    padding:2px 2px 10px;-webkit-overflow-scrolling:touch
  }
  .week-board>.day-column{flex:0 0 min(82vw,315px);scroll-snap-align:start}
  .day-drop{min-height:150px}
  .quick-period{grid-template-columns:1fr 1fr;gap:8px}

  .workshop-date-controls{grid-template-columns:1fr!important}
  .workshop-shell{display:block}
  .workshop-task-pane{position:static;max-height:none;padding:11px}
  .workshop-detail{display:none;padding:12px;min-height:0}
  .workshop-shell.detail-open .workshop-task-pane{display:none}
  .workshop-shell.detail-open .workshop-detail{display:block}
  .workshop-back-button{display:inline-flex}
  .workshop-task-button{min-height:72px;padding:13px 40px 13px 13px}
  .production-view-heading{flex-direction:column;align-items:stretch}
  .production-view-heading>button:last-child{display:none}
  .production-real-stats,.production-real-entry{grid-template-columns:1fr}
  .production-real-stats>div:last-child{grid-column:auto}
  .production-input-with-action{grid-template-columns:1fr}
  .production-input-with-action button{width:100%}
  .production-main-actions{position:sticky;bottom:max(6px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr;gap:8px;padding:9px}
  .production-main-actions button{width:100%;min-height:52px}

  .tabs,.step-tabs{margin-bottom:14px}.tabs button,.step-tabs button{min-height:44px;padding:9px 10px}
  .check-grid{grid-template-columns:1fr!important;gap:10px}
  .radio-row{gap:10px}.radio-row label{min-height:42px}

  /* Les tableaux denses deviennent des cartes lisibles au doigt. Les libellés
     sont ajoutés depuis les en-têtes par enhanceMobileTables() en JavaScript. */
  .data-table{display:block;width:100%;border:0;background:transparent;overflow:visible}
  .data-table thead{display:none}
  .data-table tbody{display:grid;gap:10px;width:100%}
  .data-table tr{display:block;width:100%;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
  .data-table td{
    display:grid;grid-template-columns:minmax(105px,.85fr) minmax(0,1.15fr);gap:10px;
    align-items:center;width:100%;min-width:0;padding:10px 12px!important;
    border-right:0!important;border-bottom:1px solid #edf0f0!important;font-size:.86rem
  }
  .data-table td:last-child{border-bottom:0!important}
  .data-table td::before{content:attr(data-label);font-size:.68rem;line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}
  .data-table td[data-label=""]::before{display:none}
  .data-table td input,.data-table td select,.data-table td textarea{margin-top:0;min-width:0}
  .data-table td button{width:100%}
}

@media screen and (max-width:420px){
  .metric-grid,.metric-grid.three,.metric-grid.four,.metric-grid.five,.metric-grid.six{grid-template-columns:1fr!important}
  main{padding-left:10px;padding-right:10px}
  .data-table td{grid-template-columns:1fr;gap:5px}
}
