    :root{
      /* ── CADENCE Design System v1.1 ───────────────── */
      /* Couleurs (legacy aliases) */
      --bg:#F9F6F0;          /* Fond principal — Farine de Blé */
      --bg2:#EAE5DE;         /* Surface cartes, séparateurs — Marbre Gris */
      --surface:#FFFFFF;

      --ink:#2C2A29;--ink2:#5f5b57;

      --terra:#1B3B4A;       /* Bleu Tablier — accent principal */
      --terra2:#14323e;      /* Bleu Tablier profond */
      --tl:rgba(27,59,74,0.07);
      --tm:rgba(27,59,74,0.16);
      --ok:#4A6A6E;
      --ok-dark:#2d4547;
      --danger:#B4543A;      /* assombri pour contraste AA (≈4.9:1 sur blanc) */
      --muted:#586A70;--border:#EAE5DE;  /* muted assombri : AA sur bg, surface et bg2 */

      /* Tokens v1.1 (noms canoniques) */
      --color-bg-primary:#F9F6F0;
      --color-bg-secondary:#EAE5DE;
      --color-bg-white:#FFFFFF;
      --color-accent-primary:#1B3B4A;
      --color-accent-secondary:#A3B5BD;
      --color-text-primary:#2C2A29;
      --color-text-muted:#5f5b57;
      --color-alert-soft:#B4543A;
      --color-success:#4A6A6E;
      --color-overlay:rgba(0,0,0,0.03);

      /* Géométrie */
      --r:12px;--r-sm:4px;--r-lg:20px;
      --radius-sm:4px;--radius-md:12px;--radius-lg:20px;--radius-pill:40px;
      --border-width:1px;

      /* Espacements (grille 8px) */
      --space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;
      --space-xl:32px;--space-2xl:48px;--space-3xl:64px;

      /* Ombres */
      --shd: 0 6px 14px rgba(0,0,0,0.02), 0 2px 4px rgba(0,0,0,0.02);
      --shd-lg: 0 10px 28px rgba(0,0,0,0.04), 0 3px 8px rgba(0,0,0,0.03);
      --shadow-card: 0 6px 14px rgba(0,0,0,0.02), 0 2px 4px rgba(0,0,0,0.02);
      --shadow-button: 0 4px 8px rgba(27,59,74,0.08);

      /* Typographie */
      --font:'Inter',sans-serif;
      --font-display:'Cormorant Garamond',serif;
      --font-body:'Inter',sans-serif;
      --font-mono:'JetBrains Mono',monospace;

      /* Squelette */
      --sk-base:#EAE5DE;--sk-shine:#F9F6F0;
    }
    @keyframes pulse{0%{opacity:.8}50%{opacity:1}100%{opacity:.8}}
    .pulse-metronome{animation:pulse 4s infinite}
    @media (prefers-reduced-motion: reduce){.pulse-metronome{animation:none}}
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    body{font-family:var(--font);background:var(--bg);color:var(--ink);min-height:100dvh;font-size:15px;-webkit-font-smoothing:antialiased;font-weight:500}

    /* ── ACCESSIBILITÉ : skip link + focus clavier ───────── */
    .skip-link{position:fixed;top:8px;left:8px;z-index:1000;background:var(--terra);color:#fff;padding:10px 16px;border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;font-weight:600;text-decoration:none;transform:translateY(-150%);transition:transform .2s ease-in-out}
    .skip-link:focus{transform:translateY(0);outline:2px solid #fff;outline-offset:2px}
    /* Anneau de focus sur les éléments cliquables non natifs (cartes, lignes) rendus focusables en JS */
    [data-kbd]:focus-visible{outline:2px solid var(--terra);outline-offset:2px;border-radius:var(--radius-sm)}

    /* ── SIDEBAR LAYOUT ─────────────────────────────────── */
    body{display:flex;min-height:100dvh}

    #sidebar{
      width:224px;flex-shrink:0;
      background:linear-gradient(180deg, #1B3B4A 0%, #1e3f50 60%, #213d4c 100%);
      display:flex;flex-direction:column;
      position:fixed;top:0;left:0;bottom:0;z-index:50;
      overflow-y:auto;
      box-shadow:4px 0 24px rgba(27,59,74,.18);
    }
    .sb-logo{
      padding:28px 20px 22px;
      border-bottom:1px solid rgba(255,255,255,.1);
      display:flex;align-items:center;justify-content:center;
    }
    .logo-cadence{display:flex;align-items:baseline;gap:5px;user-select:none}
    .logo-slash{font-family:'JetBrains Mono',monospace;font-size:19px;font-weight:500;color:rgba(163,181,189,0.7);letter-spacing:-0.04em;line-height:1}
    .logo-word{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:300;font-style:italic;color:#FFFFFF;letter-spacing:0.03em;line-height:1}

    .sb-clock{padding:9px 20px 8px;border-bottom:1px solid rgba(255,255,255,.2);display:flex;align-items:baseline;gap:10px}
    .sb-clock .clock-time{font-family:'Inter',sans-serif;font-size:16px;font-weight:700;color:#fff;letter-spacing:-.01em;flex-shrink:0}
    .sb-clock .clock-date{font-size:10px;color:rgba(255,255,255,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

    /* ── BARRE RECHERCHE FLOTTANTE (hors sidebar) ─────────── */
    #search-bar{
      position:fixed;
      top:14px;
      left:50%;
      transform:translateX(calc(-50% + 112px));
      width:440px;
      z-index:200;
    }
    #search-bar .search-wrap input{
      padding:9px 16px 9px 40px;
      border-radius:24px;
      background:var(--surface);
      border:none;
      font-size:13px;
      color:var(--ink);
      width:100%;
      outline:none;
      box-shadow:var(--shd);
      transition:border-color .2s,box-shadow .2s;
    }
    #search-bar .search-wrap input:focus{
      border-color:var(--terra);
      box-shadow:0 4px 20px rgba(27,59,74,.12);
    }
    #search-bar .search-icon{
      position:absolute;left:14px;top:50%;transform:translateY(-50%);
      color:var(--muted);font-size:14px;pointer-events:none;
    }

    .sb-nav{flex:1;padding:10px 0}
    /* .sb-section+.sb-section : séparateur défini plus bas (une seule fois) */
    .sb-section-btn{
      width:100%;background:none;border:none;
      display:flex;align-items:center;justify-content:space-between;
      padding:12px 20px;
      font-family:var(--font);font-size:10px;font-weight:700;
      text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.6);
      cursor:pointer;transition:color .15s;
    }
    .sb-section-btn:hover{color:rgba(255,255,255,.9)}
    .sb-section-btn.has-active{color:#fff}
    .sb-chevron{font-size:9px;transition:transform .25s cubic-bezier(.16,1,.3,1);opacity:.5}
    .sb-section.open .sb-chevron{transform:rotate(90deg)}
    .sb-items{display:none;padding:2px 0 8px}
    .sb-section.open .sb-items{display:block}
    .sb-item{
      width:100%;background:none;border:none;
      display:flex;align-items:center;gap:8px;
      padding:9px 20px 9px 28px;
      font-family:var(--font);font-size:13px;color:rgba(245,237,232,.55);
      cursor:pointer;text-align:left;transition:color .15s,background .15s;
      position:relative;border-radius:0;
    }
    .sb-item:hover{background:rgba(255,255,255,.18);color:#fff}
    .sb-item.active{background:rgba(255,255,255,.9);color:var(--terra2);font-weight:700;margin:2px 10px;width:calc(100% - 20px);padding:9px 14px;border-radius:var(--r-lg);box-shadow:0 2px 10px rgba(27,59,74,.15)}
    .sb-icon{flex-shrink:0;opacity:.55;transition:opacity .15s}
    .sb-item:hover .sb-icon{opacity:.85}
    .sb-item.active .sb-icon{opacity:.7}
        
    .sb-badge{
      margin-left:auto;background:var(--danger);color:#fff;
      font-size:10px;font-weight:600;padding:1px 7px;border-radius:20px;min-width:18px;text-align:center;
    }
    .sb-badge.ok{background:var(--ok)}

    .sb-footer{padding:10px 16px;border-top:1px solid rgba(255,255,255,.2);display:flex;align-items:center;gap:8px;position:relative}
    #conn-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);flex-shrink:0;transition:background .3s;cursor:help}
    #conn-dot.ok{background:#4ADE80}#conn-dot.err{background:#FC5185}
    .sb-user-btn{flex:1;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.7);font-size:12px;font-weight:500;padding:5px 8px;border-radius:var(--r-sm);transition:background .15s;text-align:left;min-width:0}
    .sb-user-btn:hover{background:rgba(255,255,255,.1);color:#fff}
    #sb-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .sb-user-chevron{font-size:14px;margin-left:4px;flex-shrink:0;transform:rotate(90deg);display:inline-block;opacity:.6}
    .sb-user-menu{position:absolute;bottom:calc(100% + 4px);left:8px;right:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shd);z-index:300;overflow:hidden}
    .sb-user-menu button{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;cursor:pointer;font-size:13px;color:var(--ink);transition:background .12s}
    .sb-user-menu button:hover{background:var(--bg2)}



    /* ── SQUELETTES SHIMMER ──────────────────────────────────── */
    @keyframes shimmer{
      0%{background-position:-600px 0}
      100%{background-position:600px 0}
    }
    .sk{
      background:linear-gradient(90deg,var(--sk-base) 25%,var(--sk-shine) 50%,var(--sk-base) 75%);border-radius:var(--r-sm);
      background-size:1200px 100%;
      animation:shimmer 1.6s infinite linear;
      border-radius:6px;
    }
    .sk-line{height:13px;margin-bottom:8px}
    .sk-line.sm{height:10px;width:60%}
    .sk-line.lg{height:18px;width:80%}
    .sk-line.xl{height:24px;width:50%}
    .sk-circle{border-radius:50%}
    .sk-card{
      background:var(--surface);border:none;
      border-radius:var(--r-lg);padding:20px;margin-bottom:12px;
      box-shadow:var(--shd);
    }
    .sk-table-row{
      display:grid;padding:12px 18px;border-bottom:1px solid var(--border);
      gap:16px;
    }
    .sk-kpi{
      background:var(--surface);border:1px solid var(--border);
      border-radius:var(--r-lg);padding:20px 22px;
    }

    /* Zone contenu */
    #app-content{margin-left:224px;flex:1;min-width:0}
    main{max-width:1280px;margin:0 auto;padding:68px 40px 40px}
    .view{display:none}.view.active{display:block}
    .page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px}
    h1{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:600;color:var(--ink);letter-spacing:-.02em}
    h2{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
    h3{font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;color:var(--ink)}
    hr.div{border:none;border-top:1px solid var(--border);margin:22px 0}

    /* Barre de recherche flottante */
    .search-wrap{position:relative;width:100%}
    .search-wrap input{font-family:var(--font)}
    .search-dropdown{
      position:absolute;top:calc(100% + 8px);left:0;right:0;
      background:var(--surface);border:1px solid var(--border);
      border-radius:14px;box-shadow:var(--shd-lg);
      z-index:300;max-height:400px;overflow-y:auto;display:none;
    }
    .search-dropdown.open{display:block}
    .search-section-label{padding:8px 14px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;border-top:1px solid var(--border)}
    .search-section-label:first-child{border-top:none}
    .search-item{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;font-size:13px;transition:background .1s;border-radius:6px;margin:2px 6px}
    .search-item:hover,.search-item.kbd-active{background:var(--bg2)}
    .search-item-name{font-weight:500;color:var(--ink)}
    .search-item-meta{font-size:11px;color:var(--muted);margin-left:8px;white-space:nowrap}
    .search-empty{padding:16px 14px;font-size:13px;color:var(--muted);text-align:center}

    /* Boutons dashboard */
    .dash-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
    .dash-actions-secondary{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
    .dash-nav-link{background:none;border:none;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:500;color:var(--ink2);padding:6px 12px;display:inline-flex;align-items:center;gap:5px;border-radius:var(--r);transition:background .18s,color .2s;white-space:nowrap;flex-shrink:0}
    .dash-nav-link:hover{background:var(--tl);color:var(--terra)}
    /* Boutons */
    .btn{display:inline-flex;align-items:center;gap:6px;padding:10px 22px;border-radius:var(--radius-pill);border:none;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600;transition:background .2s ease-in-out,color .2s ease-in-out,transform .18s cubic-bezier(.16,1,.3,1),box-shadow .2s ease-in-out;white-space:nowrap;letter-spacing:.01em}
    .btn:hover{transform:translateY(-2px)}
    .btn:active{transform:scale(0.97)}
    .btn:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}
    .btn-primary,.btn-gold{background:var(--terra);color:#fff;box-shadow:var(--shadow-button);border-radius:var(--radius-pill)}
    .btn-primary:hover,.btn-gold:hover{background:var(--terra2);box-shadow:0 6px 18px rgba(27,59,74,.28)}
    .btn-secondary{background:transparent;color:var(--terra);border:1px solid var(--color-accent-secondary);border-radius:var(--radius-pill)}
    .btn-secondary:hover{background:var(--terra);color:#fff;border-color:var(--terra);box-shadow:var(--shadow-button)}
    .btn-danger{background:transparent;color:var(--danger);border:1px solid var(--border);border-radius:var(--radius-pill)}
    .btn-danger:hover{background:var(--tl);border-color:var(--tm);box-shadow:0 4px 10px rgba(212,132,106,.15)}
    .btn-ghost{background:none;color:var(--muted);border:none;padding:4px 10px;border-radius:var(--radius-pill)}
    .btn-ghost:hover{color:var(--ink);background:var(--bg2)}
    .btn-ok{background:var(--ok-dark);color:#fff;border:none;border-radius:var(--radius-pill);box-shadow:var(--shadow-button)}
    .btn-ok:hover{background:var(--ok);box-shadow:0 6px 18px rgba(26,122,74,.28)}
    .btn-sm{padding:7px 16px;font-size:12px}.btn-xs{padding:3px 9px;font-size:11px;border-radius:var(--radius-pill);min-height:24px}
    .btn-icon{padding:7px 9px;line-height:1;min-width:24px;min-height:24px}
    .btn-ico{flex-shrink:0;vertical-align:-2px}
    .txt-ico{width:1em;height:1em;flex-shrink:0;vertical-align:-0.15em}
    .empty-icon svg{width:34px;height:34px}
    .mbn-icon svg{width:20px;height:20px}
    /* Bouton étoile « enregistrer comme modèle » (entête fiche commande) */
    .cmd-star-btn{background:none;border:none;cursor:pointer;color:#c9a84c;padding:2px 4px;line-height:0;display:inline-flex;align-items:center}
    .cmd-star-btn:hover{color:#b8942f}

    /* Cards recettes */
    .cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
    .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s;box-shadow:0 1px 4px rgba(44,24,16,.04)}
    .card:hover{transform:translateY(-3px);box-shadow:var(--shd-lg)}
    .card-name{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:400;font-style:italic;color:var(--ink);margin-bottom:4px}
    .card-meta{font-size:10px;color:var(--muted);margin-bottom:18px;letter-spacing:.1em;text-transform:uppercase}
    .card-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
    .stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:3px}
    .stat-value{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:400;color:var(--ink)}
    .stat-value.accent{color:var(--terra)}.stat-value.sm{font-size:16px}
    .card-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:14px;border-top:1px solid var(--border)}

    /* Table */
    .table-wrap{background:var(--surface);border:none;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shd)}
    table{width:100%;border-collapse:collapse}
    thead th{background:var(--bg2);padding:11px 18px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border)}
    tbody td{padding:13px 18px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle;font-weight:400}
    tbody tr:last-child td{border-bottom:none}
    tbody tr:hover td{background:var(--bg2)}
    tbody tr.clickable{cursor:pointer}
    tbody tr.clickable:hover td{background:var(--tl)}

    /* Badges */
    .badge{display:inline-block;padding:3px 9px;border-radius:var(--r-sm);font-size:10px;font-weight:600;white-space:nowrap;letter-spacing:.06em;text-transform:uppercase}
    .badge-gold{background:var(--tl);color:var(--terra2)}
    .badge-green{background:#C8F0DE;color:#1E7A52}
    .badge-red{background:#F2E5E3;color:#7A2E28}
    .badge-prep{background:#EDE8F5;color:#5B3FA0}
    .badge-conso{background:#FEF3E2;color:#A05820}
    .badge-paye{background:var(--ok);color:#fff}
    .badge-acompte{background:#FEF0D6;color:#8A5010}
    .badge-nonpaye{background:#FDE8E5;color:#8A2A20}
    .badge-stock-ok{background:#C8F0DE;color:#1E7A52}
    .badge-stock-bas{background:#FEF0D6;color:#8A5010}
    .badge-stock-rupture{background:#FDE8E5;color:#8A2A20}

    /* KPI Dashboard */
    .kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px}
    .kpi{background:var(--surface);border:none;padding:20px 22px;border-radius:var(--r-lg);box-shadow:var(--shd)}
    .kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:8px;font-weight:600}
    .kpi-value{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;color:var(--ink)}
    .kpi-value.accent{color:var(--terra)}

    /* Modal */
    .overlay{display:none;position:fixed;inset:0;background:rgba(20,12,8,.55);z-index:200;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(4px)}
    .overlay.open{display:flex}
    .modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:560px;max-height:92vh;overflow-y:auto;box-shadow:0 40px 100px rgba(20,12,8,.28)}
    .modal-lg{max-width:820px}.modal-md{max-width:620px}
    .modal-head{padding:28px 28px 0;display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}
    .modal-body{padding:0 28px 28px}
    .modal-close{background:none;border:none;cursor:pointer;color:var(--muted);font-size:16px;padding:6px;border-radius:6px;transition:background .15s,color .15s}
    .modal-close:hover{color:var(--ink);background:var(--bg2)}

    /* Formulaires */
    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
    .form-full{grid-column:1/-1}
    .fgroup{display:flex;flex-direction:column;gap:6px}
    .flabel{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
    input[type=text],input[type=number],input[type=date],select,textarea{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font);font-size:13px;font-weight:400;color:var(--ink);background:var(--surface);outline:none;width:100%;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out}
    input:focus,select:focus,textarea:focus{border-color:var(--terra);box-shadow:0 0 0 3px rgba(27,59,74,.1)}
    textarea{resize:vertical;min-height:72px}
    .form-hint{font-size:11px;color:var(--muted);margin-top:1px}
    .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}

    /* Recette — ingrédients */
    .ri-add-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;margin-bottom:16px}
    .ri-table{width:100%;border-collapse:collapse;border:1px solid var(--border);overflow:hidden;border-radius:var(--r)}
    .ri-table th{background:var(--bg2);padding:10px 14px;font-size:10px;text-align:left;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.1em}
    .ri-table td{padding:10px 14px;border-top:1px solid var(--border);font-size:13px;vertical-align:middle}
    .ri-table tr:first-child td{border-top:none}
    .cost-box{background:var(--tl);border:1px solid var(--tm);padding:20px;margin-top:20px;border-radius:var(--r)}
    .cmd-extra{border:1px solid var(--border);border-radius:var(--radius-sm);padding:0}
    .cmd-extra[open]{padding-bottom:14px}
    .cmd-extra-summary{cursor:pointer;list-style:none;padding:12px 14px;font-size:13px;font-weight:600;color:var(--ink);user-select:none}
    .cmd-extra-summary::-webkit-details-marker{display:none}
    .cmd-extra-summary::before{content:'+ ';color:var(--terra);font-weight:700}
    .cmd-extra[open] .cmd-extra-summary::before{content:'– '}
    .cmd-extra .fgroup{padding:0 14px}
    .planning-cmd-done{border:1px solid var(--ok);background:transparent;color:var(--ok-dark);font:600 10px/1 var(--font);padding:4px 8px;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap}
    .planning-cmd-done:hover{background:var(--ok);color:#fff}
    /* Sélecteur de recherche filtrant (recettes liste + ligne commande) */
    .inline-search{padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font);font-size:13px;background:var(--surface);color:var(--ink);min-width:200px}
    .inline-search-dd{position:absolute;top:100%;left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:230px;overflow:auto;box-shadow:var(--shadow-button);margin-top:2px}
    .inline-search-dd-item{padding:9px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--border)}
    .inline-search-dd-item:last-child{border-bottom:none}
    .inline-search-dd-item:hover{background:var(--bg2)}
    .inline-search-dd-empty{padding:9px 12px;font-size:12px;color:var(--muted);font-style:italic}
    /* Marge cible → prix conseillé (éditeur recette) */
    .rec-marge-cible-row{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap;font-size:13px}
    .rec-marge-cible-row input{width:74px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;text-align:right}
    .rec-prix-conseille{font-weight:700;color:var(--terra);font-family:'Cormorant Garamond',serif;font-size:18px}
    /* Liste de courses : cases à cocher + envoi fournisseur */
    .courses-check{margin-right:10px;display:flex;align-items:center}
    .courses-check input{width:18px;height:18px;accent-color:var(--ok-dark);cursor:pointer}
    .courses-line.done{opacity:.45}
    .courses-line.done .courses-line-name{text-decoration:line-through}
    /* Stock : ligne dépliable + détail par fournisseur */
    .stk-chev{color:var(--muted);transition:transform .15s;vertical-align:-1px}
    .stk-chev.open{transform:rotate(90deg)}
    .stock-detail-row td{background:var(--bg2);border-bottom:1px solid var(--border)}
    .stk-sup-wrap{padding:10px 16px 12px 30px}
    .stk-sup-head{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin-bottom:8px}
    .stk-sup-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;padding:5px 0;border-bottom:1px solid var(--border)}
    .stk-sup-row:last-child{border-bottom:none}
    .cmd-recap-inline{background:var(--terra);border-radius:var(--r-lg);padding:14px 18px;margin-top:14px}
    .cmd-recap-inline-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:13px;color:rgba(255,255,255,.9)}
    .cost-title{font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:400;font-style:italic;color:var(--ink);margin-bottom:12px}
    .cost-line{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;color:var(--ink2)}
    .cost-line+.cost-line{border-top:1px solid rgba(27,59,74,.1)}
    .cost-line-strong{font-weight:600;color:var(--ink);font-size:13px}
    .cost-line-price{font-family:'Cormorant Garamond',serif;color:var(--terra);font-size:22px}

    /* Historique prix */
    .prix-trend{font-size:10px;font-weight:600;padding:2px 7px;border-radius:var(--r-sm)}
    .trend-up{background:#F5E8E6;color:var(--danger)}.trend-down{background:#E0EDEA;color:var(--ok)}.trend-eq{background:var(--bg2);color:var(--muted)}
    .histo-sparkline{display:inline-flex;align-items:flex-end;gap:2px;height:16px;vertical-align:middle}
    .histo-bar{width:4px;border-radius:2px 2px 0 0;background:var(--tm);min-height:3px;opacity:.5}
    .histo-bar.latest{background:var(--terra);opacity:1}
    .histo-item{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--border);font-size:13px}
    .histo-item:last-child{border-bottom:none}
    .histo-bullet{width:8px;height:8px;border-radius:50%;background:var(--border);flex-shrink:0}
    .histo-bullet.latest{background:var(--terra)}
    .histo-date{color:var(--muted);font-size:12px;min-width:85px}
    .histo-prix{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--ink);min-width:90px}
    .histo-delta{font-size:10px;font-weight:600}

    /* P&L */
    .pnl-section{margin-top:40px}
    .pnl-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:24px;gap:4px}
    .pnl-tab{background:none;border:none;cursor:pointer;font-family:var(--font);font-size:14px;color:var(--muted);padding:10px 20px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s;border-radius:var(--r) var(--r) 0 0}
    .pnl-tab:hover{color:var(--ink);background:var(--bg2)}
    .pnl-tab.active{color:var(--terra);border-bottom-color:var(--terra)}
    .pnl-controls{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-bottom:20px}
    .pnl-controls label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
    .pnl-controls select{padding:7px 11px;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font);font-size:13px;width:auto}
    .pnl-kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
    .pnl-kpi{background:var(--surface);border:none;padding:18px 20px;border-radius:var(--r-lg);box-shadow:var(--shd)}
    .pnl-kpi.highlight{background:var(--tl);border-color:var(--tm)}
    .pnl-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;font-weight:600}
    .pnl-kpi-value{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:300;color:var(--ink)}
    .pnl-kpi-value.pos{color:var(--ok)}.pnl-kpi-value.neg{color:var(--danger)}
    .pnl-kpi-sub{font-size:10px;color:var(--muted);margin-top:4px}
    .pnl-bloc-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 18px;background:var(--bg2);border-radius:var(--r-lg);border:1px solid var(--border)}
    .pnl-bloc-icon{font-size:20px;flex-shrink:0;margin-top:2px}
    .pnl-bloc-title{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:var(--ink);margin-bottom:3px}
    .pnl-bloc-subtitle{font-size:12px;color:var(--muted)}
    .pnl-treso-ligne{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;gap:12px}
    .pnl-treso-ligne:last-child{border-bottom:none}
    .pnl-treso-nom{font-weight:500;color:var(--ink)}
    .pnl-treso-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
    .pnl-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
    .pnl-block{background:var(--surface);border:none;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shd)}
    .pnl-block-head{padding:14px 20px;background:var(--bg2);border-bottom:none;font-family:'Cormorant Garamond',serif;font-size:14px;font-weight:600;color:var(--ink)}
    .pnl-block-body{padding:14px 18px}
    .pnl-line{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px}
    .pnl-line:last-child{border-bottom:none}
    .pnl-total{display:flex;justify-content:space-between;align-items:center;padding:11px 0 4px;border-top:2px solid var(--border);font-size:14px;font-weight:600;color:var(--ink);margin-top:4px}
    .pnl-dirty-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--terra);margin-left:8px;vertical-align:middle}

    /* Commandes */
    .cmd-card{background:var(--surface);border:none;border-radius:var(--r-lg);margin-bottom:12px;display:grid;grid-template-columns:1fr auto;gap:0;align-items:stretch;transition:box-shadow .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shd);overflow:hidden;cursor:pointer}
    .cmd-card:hover{box-shadow:var(--shd);transform:translateY(-2px)}
    .cmd-card-body{padding:16px 20px;border-right:1px solid var(--border);min-width:0}
    .cmd-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}
    .cmd-card-title{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .cmd-card-montant{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:300;color:var(--terra);flex-shrink:0}
    .cmd-card-badges{display:flex;align-items:center;gap:6px;margin-bottom:12px;flex-wrap:wrap}
    .cmd-card-client-name{font-size:13px;font-weight:500;color:var(--ink);margin-right:4px}
    .cmd-card-sep{border-top:1px solid var(--border);margin:0 0 10px}
    .cmd-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
    .cmd-card-date{font-size:12px;color:var(--muted)}
    .cmd-card-date strong{color:var(--ink);font-weight:500}
    .cmd-card-recettes{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .cmd-card-countdown{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 12px;width:96px;background:var(--bg2)}
    .cmd-cd-ico{color:var(--muted)}
    .cmd-card-countdown.urgent{background:#FEF0EE}
    .cmd-card-countdown.soon{background:#FEF8EC}
    .cmd-card-countdown.ok{background:#EEF6F2}
    .cmd-card-countdown.past{background:var(--bg2)}
    .cmd-card-countdown.livre{background:var(--bg2)}
    .cmd-card-jours{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;line-height:1;color:var(--ink)}
    .cmd-card-jours.urgent{color:var(--danger)}
    .cmd-card-jours.soon{color:#B8790B}
    .cmd-card-jours.ok{color:var(--ok)}
    .cmd-card-jours.past,.cmd-card-jours.livre{color:var(--muted)}
    .cmd-card-jours.txt{font-size:16px;font-weight:600;font-family:var(--font);text-align:center}
    .cmd-card-jours-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:3px;text-align:center}
    .cmd-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500;white-space:nowrap}
    .cmd-badge-encours{background:#DBEEFF;color:#1A6FA8}
    .cmd-badge-livre{background:var(--bg2);color:var(--muted)}.cmd-badge-annule{background:#FDECEA;color:var(--danger)}
    .cmd-badge-modele{background:rgba(27,59,74,.10);color:var(--terra);border:1px dashed var(--tm)}
    .cmd-countdown{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:300;line-height:1}
    .cmd-countdown.urgent{color:var(--danger)}.cmd-countdown.soon{color:#B8790B}
    .cmd-countdown.ok{color:var(--ok)}.cmd-countdown.past{color:var(--muted)}
    .cmd-countdown-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:2px}
    .cmd-ing-line{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px}
    .cmd-ing-line:last-child{border-bottom:none}
    .cmd-rec-row{display:grid;grid-template-columns:2fr 1fr auto;gap:8px;align-items:end;margin-bottom:8px}

    /* ── BON DE COMMANDE (print) ──────────────────────── */
    .four-card{background:var(--surface);border:none;border-radius:var(--r-lg);padding:18px 22px;margin-bottom:12px;box-shadow:var(--shd);display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;cursor:pointer;transition:box-shadow .2s,transform .2s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 4px rgba(44,24,16,.04)}
    .four-card:hover{box-shadow:var(--shd);transform:translateY(-1px)}
    .four-name{font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:3px}
    .four-meta{font-size:12px;color:var(--muted)}

    /* ── LISTE DE COURSES ────────────────────────────────── */
    .courses-group{background:var(--surface);border:1px solid var(--border);margin-bottom:14px;overflow:hidden;border-radius:var(--r-lg);box-shadow:0 1px 4px rgba(44,24,16,.04)}
    .courses-group-head{padding:14px 20px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
    .courses-group-nom{font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:600;color:var(--ink)}
    .courses-group-contact{font-size:12px;color:var(--muted);margin-top:2px}
    .courses-line{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);font-size:13px}
    .courses-line:last-child{border-bottom:none}
    .courses-line-name{font-weight:500;color:var(--ink)}
    .courses-line-detail{font-size:11px;color:var(--muted);margin-top:2px}
    .courses-line-right{text-align:right;flex-shrink:0;margin-left:16px}
    .courses-line-qte{font-weight:600;font-size:14px;color:var(--ink)}
    .courses-line-prix{font-size:11px;color:var(--muted);margin-top:2px}

    /* ── CLIENTS ──────────────────────────────────────────── */
    .client-card{background:var(--surface);border:none;border-radius:var(--r-lg);padding:18px 22px;margin-bottom:12px;box-shadow:var(--shd);display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;cursor:pointer;transition:box-shadow .2s,transform .2s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 4px rgba(44,24,16,.04)}
    .client-card:hover{box-shadow:var(--shd);transform:translateY(-1px)}
    .client-name{font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;color:var(--ink);margin-bottom:3px}
    .client-meta{font-size:12px;color:var(--muted)}
    .client-kpis{display:flex;gap:20px;align-items:center}
    .client-kpi{text-align:right}
    .client-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
    .client-kpi-value{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:300;color:var(--ink)}
    .client-kpi-value.accent{color:var(--terra)}

    /* ── PLANNING ─────────────────────────────────────────── */
    .planning-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}
    .planning-week-label{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--ink)}
    .planning-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;min-width:0}
    .planning-day{min-height:160px;display:flex;flex-direction:column;gap:6px}
  .planning-month-wrap{width:100%;overflow:hidden;border:1px solid var(--border);border-radius:var(--r)}
  .planning-month-dow-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg2);border-bottom:1px solid var(--border)}
  .planning-month-dow{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 0;font-weight:700}
  .planning-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0}
  .planning-month-cell{background:var(--surface);min-height:110px;padding:8px 6px;display:flex;flex-direction:column;gap:3px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
  .planning-month-cell:nth-child(7n){border-right:none}
  .planning-month-cell.other-month{background:var(--bg2)}
  .planning-month-cell.other-month .planning-month-day-num{color:var(--muted);opacity:.4}
  .planning-month-cell.today .planning-month-day-num{background:var(--terra);color:#fff;border-radius:50%}
  .planning-month-day-num{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:4px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .planning-month-cmd{font-size:11px;font-weight:500;padding:2px 6px;border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5;transition:opacity .1s}
  .planning-month-cmd:hover{opacity:.75}
  .planning-month-cmd.livre{background:rgba(168,230,207,.4);color:#1a7a4a}
  .planning-month-cmd.en_cours{background:rgba(27,59,74,.12);color:var(--terra)}
  .planning-month-more{font-size:10px;color:var(--muted);padding-left:6px;margin-top:1px}
    .planning-day-header{padding:8px 10px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r) var(--r) 0 0;text-align:center}
    .planning-day-name{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
    .planning-day-date{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:300;color:var(--ink);line-height:1.1}
    .planning-day-header.today{background:var(--tl);border-color:var(--tm)}
    .planning-day-header.today .planning-day-date{color:var(--terra)}
    .planning-cmd-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--terra);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:9px 11px;cursor:pointer;transition:box-shadow .12s;font-size:12px}
    .planning-cmd-card:hover{box-shadow:var(--shd)}
    .planning-cmd-card.urgent{border-left-color:var(--danger)}
    .planning-cmd-card.livre{border-left-color:var(--ok);opacity:.65}
    .planning-cmd-nom{font-weight:600;color:var(--ink);margin-bottom:2px;font-size:12px}
    .planning-cmd-client{color:var(--muted);margin-bottom:3px;font-size:11px}
    .planning-cmd-recettes{color:var(--muted);font-size:11px}
    .planning-empty{color:var(--muted);font-size:12px;text-align:center;padding:16px 0;opacity:.5}
    

    /* Détail recette */
    .rec-detail-comp{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-top:4px}
    .rec-detail-line{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--border);font-size:13px}
    .rec-detail-line:last-child{border-bottom:none}
    .rec-detail-line-prep{background:var(--bg2)}
    .rec-detail-sub{font-size:11px;color:var(--muted);margin-top:3px;padding-left:16px;border-left:2px solid var(--tm)}
    .rec-detail-sub-line{display:flex;justify-content:space-between;padding:2px 0}

    /* Simulateur */
    .simu-box{background:var(--tl);border:1px solid var(--tm);padding:20px;margin-top:20px;border-radius:var(--r)}
    .simu-title{font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:12px}
    .simu-ctrl{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
    .simu-ctrl label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}
    .simu-ctrl input[type=number]{width:90px;padding:8px 12px;border:1px solid var(--tm);border-radius:var(--radius-md);font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:400;color:var(--ink);background:var(--surface);outline:none;text-align:center}
    .simu-ctrl input:focus{border-color:var(--terra)}
    .simu-result{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
    .simu-kpi{background:var(--surface);border:1px solid var(--border);padding:14px;border-radius:var(--r)}
    .simu-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:5px;font-weight:600}
    .simu-kpi-value{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:300;color:var(--ink)}
    .simu-kpi-value.accent{color:var(--terra)}
    .simu-lines{margin-top:8px}
    .simu-line{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;border-bottom:1px solid rgba(27,59,74,.08);font-size:13px}
    .simu-line:last-child{border-bottom:none}
    .simu-line-prep{color:var(--muted);font-style:italic}
    .simu-line-sub{font-size:11px;color:var(--muted);margin-top:2px;padding-left:12px;border-left:2px solid var(--tm)}
    .simu-line-sub-row{display:flex;justify-content:space-between;padding:2px 0}
    

    /* ── STICKY THEAD — vues ingrédients et historique ────── */
    #view-ingredients .table-wrap,
    #view-historique .table-wrap {
      max-height: calc(100vh - 180px);
      overflow-y: auto;
    }
    /* ── RESPONSIVE ─────────────────────────────────────────
       Breakpoints :
       1280px  MacBook 13-14"       sidebar 224px, contenu plein
       1100px  MacBook 11" / iPad paysage large
       1024px  iPad paysage / petit MacBook
        900px  iPad paysage compact
        768px  iPad portrait        sidebar overlay
        640px  grand téléphone paysage
        480px  téléphone portrait
    ──────────────────────────────────────────────────────── */

    /* 1100px — MacBook 11" compact */
    @media(max-width:1100px){
      main{padding:68px 28px 40px}
      .kpi-row{grid-template-columns:repeat(2,1fr)}
      .dash-pnl-row{grid-template-columns:repeat(2,1fr)}
      .pnl-treso-grid{grid-template-columns:repeat(3,1fr)}
      .pnl-perf-grid{grid-template-columns:repeat(3,1fr)}
    }

    /* 1024px — iPad paysage / MacBook 11" */
    @media(max-width:1024px){
      main{padding:68px 24px 40px}
      .cards-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
      .pnl-detail-grid{grid-template-columns:1fr}
    }

    /* 900px — iPad paysage compact */
    @media(max-width:900px){
      .dash-week{grid-template-columns:repeat(4,1fr)}
      .planning-grid{grid-template-columns:repeat(4,1fr)}
      .pnl-treso-grid{grid-template-columns:repeat(3,1fr)}
      .cd-header{grid-template-columns:1fr}
    }

    /* ── HAMBURGER + SIDEBAR OVERLAY MOBILE ─────────────── */
    #hamburger{
      position:fixed;top:13px;left:13px;z-index:110;
      background:var(--surface);border:none;border-radius:var(--r);
      padding:10px;cursor:pointer;
      flex-direction:column;gap:5px;
      box-shadow:var(--shd);display:none;
    }
    #hamburger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
    #sb-overlay{display:none;position:fixed;inset:0;background:rgba(20,12,8,.45);z-index:90;backdrop-filter:blur(2px)}
    #sb-overlay.visible{display:block}


    /* ── DASHBOARD REDESIGN ──────────────────────────────── */
    .dash-section{margin-bottom:40px}
    .dash-section-title{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--ink);margin-bottom:16px;display:flex;align-items:center;gap:10px}
    .dash-section-title .dash-count{font-family:var(--font);font-size:13px;font-weight:400;color:var(--muted)}

    /* Zone aujourd'hui */
    .dash-today-empty{padding:24px 28px;background:var(--tl);border:1px solid var(--tm);border-radius:var(--r);font-size:14px;color:var(--terra)}

    /* Cards aujourd'hui */
    .dash-cmd-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--terra);border-radius:var(--r);padding:16px 20px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;transition:box-shadow .15s}
    .dash-cmd-card:hover{box-shadow:var(--shd)}
    .dash-cmd-card.urgent{border-left-color:var(--danger)}
    .dash-cmd-card.pret{border-left-color:var(--ok)}
    .dash-cmd-nom{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--ink);margin-bottom:3px}
    .dash-cmd-meta{font-size:12px;color:var(--muted)}
    .dash-cmd-right{display:flex;align-items:center;gap:16px;flex-shrink:0}
    .dash-cmd-montant{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--terra);font-weight:300}

    /* Alertes */
    .dash-alert{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r);margin-bottom:8px;font-size:13px;cursor:pointer;transition:opacity .15s}
    .dash-alert:hover{opacity:.85}
    .dash-alert.danger{background:#FEE2E2;border:1px solid #FCA5A5;color:#991B1B}
    .dash-alert.warning{background:#FEF3E2;border:1px solid #FCD34D;color:#92400E}
    .dash-alert-icon{width:16px;height:16px;flex-shrink:0}
    .dash-alert-body{flex:1;display:flex;flex-direction:column;gap:2px}
    .dash-alert-name{font-weight:600;font-size:13px}
    .dash-alert-detail{font-size:11px;opacity:.8}
    .dash-alert-cta{font-size:12px;font-weight:500;white-space:nowrap;padding:3px 10px;border-radius:20px;background:rgba(0,0,0,.07);flex-shrink:0}

    /* Vue semaine condensée */
    .dash-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
    .dash-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);min-height:80px;overflow:hidden;cursor:pointer;transition:border-color .15s,background .15s}
    .dash-day:hover{border-color:var(--tm);background:var(--tl)}
    .dash-day-head{padding:6px 10px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline}
    .dash-day-name{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:500}
    .dash-day-num{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--ink);font-weight:300}
    .dash-day.today .dash-day-head{background:var(--tl);border-bottom-color:var(--tm)}
    .dash-day.today .dash-day-num{color:var(--terra)}
    .dash-day-body{padding:6px 8px}
    .dash-day-cmd{font-size:11px;padding:3px 6px;margin-bottom:3px;background:var(--bg2);border-left:2px solid var(--terra);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);transition:background .1s}
    .dash-day-cmd:hover{background:var(--tl)}
    .dash-day-empty{font-size:11px;color:var(--border);text-align:center;padding:12px 0}

    /* P&L simplifié */
    .dash-pnl{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px 24px}
    .dash-pnl-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:16px}
    .dash-pnl-item{}
    .dash-pnl-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:500;margin-bottom:4px}
    .dash-pnl-value{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:300;color:var(--ink)}
    .dash-pnl-value.accent{color:var(--terra)}
    .dash-pnl-value.ok{color:var(--ok)}
    .dash-pnl-value.danger{color:var(--danger)}
    .dash-pnl-delta{font-size:12px;margin-top:2px}
    .dash-pnl-delta.up{color:var(--ok)}.dash-pnl-delta.down{color:var(--danger)}.dash-pnl-delta.neutral{color:var(--muted)}
    
    

    /* ── DEVIS ───────────────────────────────────────────── */
    .devis-table{width:100%;border-collapse:collapse;margin-bottom:12px}
    .devis-table th{background:var(--bg2);padding:8px 10px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border)}
    .devis-table td{padding:7px 8px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
    .devis-table tr:last-child td{border-bottom:none}
    .devis-table input[type=text],.devis-table input[type=number]{padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:12px;width:100%;outline:none;background:var(--surface)}
    .devis-table input:focus{border-color:var(--terra);box-shadow:0 0 0 2px rgba(27,59,74,.08)}
    .devis-total-wrap{background:var(--bg2);border-radius:var(--r);padding:14px 16px;margin-bottom:14px}
    .devis-total-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;color:var(--muted)}
    .devis-total-row strong{color:var(--ink);font-weight:500}
    .devis-total-main{display:flex;justify-content:space-between;align-items:baseline;padding-top:8px;border-top:1px solid var(--border);margin-top:6px}
    .devis-total-main .label{font-size:13px;font-weight:600;color:var(--ink)}
    .devis-total-main .val{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--terra);font-weight:300}
    .devis-tva{font-size:11px;color:var(--muted);font-style:italic;margin-bottom:14px}
    .devis-statut{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500}
    .devis-brouillon{background:var(--bg2);color:var(--muted)}
    .fact-emise{background:#FFF9C4;color:#B8860B}
    .fact-payee{background:var(--ok);color:var(--ok-dark)}
    .fact-annulee{background:#FDECEA;color:var(--danger)}
    .devis-annule{background:#FDECEA;color:var(--danger)}
    .devis-accepte{background:#E6F4EE;color:#1A7050}

    /* ── DÉTAIL COMMANDE ─────────────────────────────────── */
    .cd-header{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
    .cd-block{background:var(--bg2);border-radius:var(--r);padding:14px 16px}
    .cd-block-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin-bottom:4px}
    .cd-block-value{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:300;color:var(--ink);line-height:1.1}
    .cd-block-value.accent{color:var(--terra)}
    .cd-block-value.urgent{color:var(--danger)}
    .cd-block-value.soon{color:#B8790B}
    .cd-block-value.ok{color:var(--ok)}
    .cd-block-sub{font-size:11px;color:var(--muted);margin-top:3px}
    .cd-section{margin-bottom:20px}
    .cd-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin-bottom:10px}
    .cd-ligne{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);gap:12px}
    .cd-ligne:last-child{border-bottom:none}
    .cd-ligne-left{flex:1;min-width:0}
    .cd-ligne-nom{color:var(--ink);font-weight:500;font-size:13px}
    .cd-ligne-qty{font-size:12px;color:var(--muted);margin-top:2px}
    .cd-ligne-prix{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--ink);font-weight:300;flex-shrink:0}
    .cd-total{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0 0;border-top:2px solid var(--border);margin-top:4px}
    .cd-total-label{font-size:13px;font-weight:500;color:var(--ink)}
    .cd-total-val{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--terra);font-weight:300}
    .cd-cout{display:flex;justify-content:space-between;padding:5px 0;font-size:12px;color:var(--muted)}
    .cd-paie-bar{display:flex;align-items:center;gap:6px;padding:12px 14px;background:var(--bg2);border-radius:var(--r);margin-bottom:20px;flex-wrap:wrap}
    .cd-paie-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin-right:4px}
    .cd-adresse{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--bg2);border-radius:var(--r);font-size:13px;color:var(--ink);margin-bottom:20px}
    .cd-adresse-icon{color:var(--terra);flex-shrink:0;margin-top:1px}
    .cd-ing-wrap{background:var(--bg2);border-radius:var(--r);padding:12px 16px}
    .cd-ing-line{display:flex;justify-content:space-between;font-size:12px;padding:5px 0;color:var(--muted);border-bottom:1px solid rgba(0,0,0,.05)}
    .cd-ing-line:last-child{border-bottom:none}

    /* ── FICHE CLIENT VUE DÉDIÉE ────────────────────────── */
    .cli-contact-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);padding:4px 0}
    .cli-cmd-ligne{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;gap:12px}
    .cli-cmd-ligne:last-child{border-bottom:none}
    .cli-cmd-ligne:hover{background:var(--bg2)}
    .cli-cmd-nom{font-weight:500;font-size:13px;color:var(--ink);margin-bottom:2px}
    .cli-cmd-meta{font-size:12px;color:var(--muted)}
    .cd-devis-ligne{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
    .cd-devis-ligne:last-child{border-bottom:none}
    .cd-devis-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .cd-devis-num{font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:600;color:var(--ink)}
    .cd-devis-date{font-size:12px;color:var(--muted)}
    .cd-devis-actions{display:flex;gap:6px;flex-shrink:0}

    .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
    .table-wrap table thead th{
      position:sticky;top:0;background:var(--surface);z-index:2;
      box-shadow:0 1px 0 var(--border);
    }
    /* Séparateur visuel entre sections sidebar */
    .sb-section+.sb-section{border-top:1px solid rgba(255,255,255,.05)}
    .filter-btns{display:flex;gap:6px;flex-wrap:wrap}
    .filter-btn{padding:6px 16px;border-radius:20px;border:none;background:var(--surface);font-family:var(--font);font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;transition:background .15s,color .15s,transform .12s,box-shadow .15s;white-space:nowrap;box-shadow:var(--shd)}
    .filter-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--tl)}
    .filter-btn:active{transform:scale(0.97)}
    .filter-btn.active{background:var(--terra);color:#fff;box-shadow:0 4px 14px rgba(27,59,74,.18)}

    /* ── STOCKS VIEW CONTROLS LAYOUT ─────────────────────── */
    .stocks-controls-wrapper{display:flex;gap:10px;align-items:center;width:100%;flex-wrap:wrap}
    .stocks-filter-select{flex:1;min-width:150px}
    .stocks-buttons-group{display:flex;gap:10px;align-items:center;flex-wrap:nowrap}
    #stk-filter-type{display:flex;gap:6px;flex-wrap:nowrap}
    .stocks-action-buttons{display:flex;gap:8px;flex-wrap:nowrap}

    @media(max-width:768px){
      .stocks-controls-wrapper{flex-direction:column;gap:8px}
      .stocks-filter-select{width:100%}
      .stocks-buttons-group{width:100%;flex-direction:column;gap:8px}
      #stk-filter-type{width:100%;justify-content:flex-start}
      .stocks-action-buttons{width:100%;justify-content:flex-start}
    }
    /* Vue liste recettes */
    .rec-list-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 1px 4px rgba(44,24,16,.04)}
    .rec-list-item{display:grid;align-items:center;padding:13px 18px;border-bottom:1px solid var(--border);gap:8px;transition:background .12s;cursor:pointer}
    .rec-list-item:hover{background:var(--bg2)}
    .rec-list-item:last-child{border-bottom:none}
    .rec-list-name{font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--ink)}
    .rec-list-meta{font-size:12px;color:var(--muted);margin-top:2px}
    .rec-list-right{display:flex;align-items:center;gap:20px;flex-shrink:0}
    .rec-list-prix{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--terra)}
    /* En-têtes triables */
    .th-sort{cursor:pointer;user-select:none;white-space:nowrap}
    .th-sort:hover{color:var(--terra)}
    .th-sort .sa{font-size:10px;margin-left:3px;opacity:.5}
    .th-sort.asc .sa::after{content:'▲'}.th-sort.desc .sa::after{content:'▼'}.th-sort:not(.asc):not(.desc) .sa::after{content:'↕'}
    .ri-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:14px;width:fit-content}
    .ri-toggle button{background:none;border:none;padding:7px 16px;cursor:pointer;font-family:var(--font);font-size:13px;color:var(--muted);transition:background .15s,color .15s}
    .ri-toggle button.active{background:var(--terra);color:#fff}
    .ri-toggle button:not(.active):hover{background:var(--bg2);color:var(--ink)}
    /* ── P&L GRIDS (remplacent les styles inline) ──────── */
    .pnl-perf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-bottom:1px solid var(--border)}
    .pnl-perf-cell{padding:16px 20px;border-right:1px solid var(--border)}
    .pnl-perf-cell:last-child{border-right:none;background:rgba(27,59,74,.05)}
    .pnl-treso-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-bottom:1px solid var(--border)}
    .pnl-treso-cell{padding:16px 20px;border-right:1px solid var(--border)}
    .pnl-treso-cell:last-child{border-right:none}
    .pnl-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
    .pnl-stat-val{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:300;color:var(--ink)}
    .pnl-stat-val.sm{font-size:20px;font-weight:500}
    .pnl-stat-val.bold{font-size:20px;font-weight:700}
    .pnl-stat-sub{font-size:12px;color:var(--muted);margin-top:2px}
    .pnl-chart-label{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}
    .pnl-chart-legend{display:flex;gap:16px;margin-top:10px;font-size:11px;color:var(--muted)}
    .pnl-chart-legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}

    /* ── EMPTY STATES ───────────────────────────────────── */
    .empty{text-align:center;padding:56px 20px 48px;color:var(--muted)}
    .empty-icon{font-size:32px;margin-bottom:12px;opacity:.4}
    .empty p{font-size:13px;margin-bottom:20px;line-height:1.5;max-width:320px;margin-left:auto;margin-right:auto}
    .empty .btn{margin:0 auto}
    #loader{display:none;position:fixed;inset:0;background:rgba(250,248,246,.88);backdrop-filter:blur(4px);z-index:500;align-items:center;justify-content:center;flex-direction:column;gap:16px}
    #loader.show{display:flex}
    .slash-loader{display:flex;align-items:baseline;gap:3px}
    .slash-loader span{font-family:'JetBrains Mono',monospace;font-size:28px;font-weight:500;color:rgba(163,181,189,0.35);letter-spacing:-0.04em;line-height:1;animation:slash-wave 1.2s ease-in-out infinite}
    .slash-loader span:nth-child(1){animation-delay:0s}
    .slash-loader span:nth-child(2){animation-delay:.1s}
    .slash-loader span:nth-child(3){animation-delay:.2s}
    .slash-loader span:nth-child(4){animation-delay:.3s}
    .slash-loader span:nth-child(5){animation-delay:.4s}
    .slash-loader span:nth-child(6){animation-delay:.5s}
    @keyframes slash-wave{0%,100%{color:rgba(163,181,189,0.35)}50%{color:#4A9EC8}}
    #loader-msg{font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
    #toast{position:fixed;bottom:24px;right:24px;padding:11px 18px;border-radius:var(--r-lg);font-size:13px;font-family:var(--font);font-weight:600;z-index:600;opacity:0;transform:translateY(8px);transition:opacity .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1);max-width:320px;background:var(--terra);color:#fff;pointer-events:none;box-shadow:0 8px 24px rgba(27,59,74,.18)}
    #toast.show{opacity:1;transform:translateY(0)}
    #toast.success{background:var(--ok)}#toast.error{background:var(--danger)}

    /* ── BANNIÈRE HORS-LIGNE ─────────────────────── */
    #offline-banner{
      position:fixed;top:0;left:224px;right:0;z-index:400;
      background:var(--danger);color:#fff;
      padding:8px 20px;font-size:12px;font-weight:600;
      display:none;align-items:center;justify-content:center;gap:10px;
      box-shadow:0 2px 8px rgba(0,0,0,.08);
      letter-spacing:.02em;
    }
    #offline-banner.show{display:flex}
    #offline-banner .ob-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:obpulse 1.6s ease-in-out infinite}
    #offline-banner .ob-meta{font-weight:400;opacity:.9;font-size:11px}
    @keyframes obpulse{0%,100%{opacity:1}50%{opacity:.4}}
    body.offline #search-bar{top:42px}
    @media(max-width:768px){
      #offline-banner{left:0}
      body.offline #search-bar{top:42px}
    }

    /* Responsive */

/* ═══════════════════════════════════════════════
   MOBILE FIRST — optimisations < 768px
   Cas d'usage : consultation commandes, paiements,
   planning, courses
   ═══════════════════════════════════════════════ */





/* ── BOTTOM NAV MOBILE ─────────────────────────── */
#mobile-bottom-nav{display:none}
@media(min-width:769px){#mobile-bottom-nav{display:none !important}}



    /* P&L 2 colonnes — responsive */

@media(max-width:600px){
    .planning-grid{grid-template-columns:repeat(2,1fr)}
    .simu-result{grid-template-columns:1fr 1fr}
}
@media(max-width:1100px){
    main{padding:64px 24px 32px}
      .pnl-kpi-row{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:1024px){
    main{padding:62px 20px 28px}
      .kpi-row{grid-template-columns:repeat(3,1fr)}
      .pnl-kpi-row{grid-template-columns:repeat(3,1fr)}
      .pnl-detail-grid{grid-template-columns:1fr}
      .planning-grid{grid-template-columns:repeat(5,1fr)}
      .dash-week{grid-template-columns:repeat(7,1fr)}
      .dash-pnl-row{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
    main{padding:58px 16px 24px}
      .kpi-row{grid-template-columns:repeat(2,1fr)}
      .pnl-kpi-row{grid-template-columns:repeat(3,1fr)}
      .pnl-detail-grid{grid-template-columns:1fr}
      .simu-result{grid-template-columns:repeat(3,1fr)}
      .planning-grid{grid-template-columns:repeat(4,1fr)}
      table{min-width:480px}
      .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
      .modal{max-width:96vw}.modal-lg{max-width:96vw}.modal-md{max-width:96vw}
      .modal-head{padding:22px 22px 0}.modal-body{padding:0 22px 22px}
}
@media(max-width:768px){
    /* Sidebar : cachée par défaut, ouverte via JS avec .sb-open */
      #sidebar{
        position:fixed;left:-224px;width:224px;
        transition:left .3s cubic-bezier(.16,1,.3,1);
        box-shadow:none;z-index:210;
      }
      #sidebar.sb-open{left:0;box-shadow:4px 0 40px rgba(20,8,4,.3)}
      #sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:205;backdrop-filter:blur(2px)}
      #sb-overlay.visible{display:block}
      #hamburger{
        display:flex;align-items:center;justify-content:center;
        position:fixed;top:14px;left:14px;z-index:98;
        width:40px;height:40px;border-radius:10px;
        background:var(--terra);border:none;cursor:pointer;
        box-shadow:0 2px 8px rgba(27,59,74,.2);
      }
      #hamburger span{display:block;width:18px;height:2px;background:#fff;margin:3px auto;border-radius:2px;transition:transform .25s}
      #app-content{margin-left:0;padding-top:0}
      main{padding:60px 16px calc(80px + env(safe-area-inset-bottom))}
      /* Grilles */
      .kpi-row{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
      .cards-grid{grid-template-columns:repeat(2,1fr)}
      .form-grid{grid-template-columns:1fr 1fr}
      .pnl-kpi-row{grid-template-columns:repeat(2,1fr)}
      .pnl-detail-grid{grid-template-columns:1fr}
      .simu-result{grid-template-columns:repeat(2,1fr)}
      .ri-add-row{grid-template-columns:1fr 1fr;gap:8px}
      .ri-add-row>div:last-child{grid-column:1/-1}
      .cmd-rec-row{grid-template-columns:1fr 1fr;gap:8px}
      .cmd-card{grid-template-columns:1fr}
      .cmd-card-countdown{border-top:1px solid var(--border);flex-direction:row;gap:8px;padding:10px 16px;justify-content:flex-start;width:auto}
      .cmd-card-jours{font-size:20px}
      .pnl-controls{gap:8px}
      .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
      table{min-width:480px}
      h1{font-size:22px}
      .planning-grid{grid-template-columns:repeat(3,1fr)}
      .dash-week{grid-template-columns:repeat(4,1fr)}
      .dash-pnl-row{grid-template-columns:repeat(2,1fr)}
      .cd-header{grid-template-columns:1fr}
      /* Barre recherche flottante sur mobile — pleine largeur (plus de hamburger) */
      #search-bar{left:14px;right:14px;width:auto;top:10px;transform:none}
      #search-bar .search-wrap input{padding:9px 14px 9px 36px;font-size:13px}
    .dash-week{grid-template-columns:repeat(4,1fr)}.dash-pnl-row{grid-template-columns:repeat(2,1fr)}
    /* ── Page header : titre + boutons empilés ── */
  .page-header{flex-direction:column;align-items:flex-start;margin-bottom:16px}
  .page-header h1{font-size:22px;margin-bottom:8px}
  .page-header > div{width:100%;display:flex;flex-wrap:wrap;gap:8px}

  /* ── Boutons : plus grands pour les doigts ── */
  .btn{min-height:44px;padding:10px 18px}
  .btn-sm{min-height:40px;padding:9px 14px;font-size:13px}
  .btn-xs{min-height:36px;padding:7px 12px;font-size:12px}

  /* ── Sidebar déjà gérée — ajuster le contenu principal ── */
  #main{padding:16px 14px}

  /* ── Dashboard : vue semaine en scroll horizontal ── */
  .dash-week{
    display:flex;overflow-x:auto;gap:8px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding-bottom:8px;
    /* Cacher la scrollbar mais garder le scroll */
    scrollbar-width:none;
  }
  .dash-week::-webkit-scrollbar{display:none}
  .dash-day{
    min-width:120px;flex-shrink:0;
    scroll-snap-align:start;
    border-radius:var(--r-lg)
  }
  /* Aujourd'hui plus large */
  .dash-day.today{min-width:140px}

  /* ── Dashboard PNL : 2 colonnes ── */
  .dash-pnl-row{grid-template-columns:1fr 1fr}

  /* ── Cards commandes : zones tactiles généreuses ── */
  .cmd-card{margin-bottom:10px}
  .cmd-card-body{padding:14px 16px}
  .cmd-card-title{font-size:16px}
  .cmd-card-montant{font-size:18px}
  .cmd-card-footer{gap:10px}
  .cmd-card-jours{min-width:52px;font-size:13px}

  /* ── Modales : plein écran sur mobile ── */
  .overlay{padding:0;align-items:flex-end}
  .modal{
    max-width:100%;width:100%;
    border-radius:var(--r-lg) var(--r-lg) 0 0;
    max-height:92vh;
  }
  .modal-lg{max-width:100%}
  .modal-head{padding:16px 18px 12px}
  .modal-body{padding:16px 18px 24px}

  /* ── Formulaires : inputs plus grands ── */
  .fgroup input,.fgroup select,.fgroup textarea{
    min-height:44px;font-size:16px /* évite le zoom auto iOS */
  }
  .form-grid{grid-template-columns:1fr}

  /* ── Planning : scroll horizontal ── */
  .planning-grid{
    display:flex;overflow-x:auto;gap:8px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding-bottom:8px;
    scrollbar-width:none;
  }
  .planning-grid::-webkit-scrollbar{display:none}
  .planning-day{min-width:160px;flex-shrink:0;scroll-snap-align:start}
  .planning-nav{flex-wrap:wrap;gap:8px}
  .planning-nav > div:last-child{display:flex;gap:8px;width:100%}
  .planning-nav .btn{flex:1}

  /* ── Courses : masquer les dates de nav, simplifier ── */
  #view-courses .page-header label{display:none}
  #courses-date-debut,#courses-date-fin{width:100%}
  .courses-nav{flex-wrap:wrap}
  .courses-nav .btn{flex:1}

  /* ── Détail commande : sections empilées ── */
  .cmd-detail-grid{grid-template-columns:1fr}
  .cd-block-row{flex-wrap:wrap;gap:8px}
  .cd-block{min-width:calc(50% - 4px)}
  .cd-paie-bar{gap:8px;padding:10px 12px}

  /* ── Fiche client : tabs scrollables ── */
  .cd-section-title{font-size:13px}
  .cli-cmd-ligne{padding:10px 0}

  /* ── Nouveau paiement : modale principale sur mobile ── */
  #ov-paiement .modal{border-radius:var(--r-lg) var(--r-lg) 0 0}
  #paie-cmd-recap{grid-template-columns:1fr 1fr 1fr}

  /* ── Tableau des ingrédients : masquer colonnes secondaires ── */
  .ing-col-fournisseur,.ing-col-date{display:none}

  /* ── Recherche globale : plein largeur ── */
  .search-wrap{left:14px;right:14px;transform:none}
    /* Afficher la bottom nav et ajouter du padding en bas */
  #mobile-bottom-nav{
    display:flex;position:fixed;bottom:0;left:0;right:0;
    background:var(--surface);
    border-top:1px solid var(--border);
    z-index:90;
    padding:4px 0 max(8px, env(safe-area-inset-bottom));
    box-shadow:0 -2px 16px rgba(20,12,8,.08);
  }
  /* Espace pour la bottom nav */
  #main{padding-bottom:80px}

  /* Masquer le hamburger quand bottom nav présente */
  #hamburger{display:none}

  .mbn-item{
    flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;
    gap:3px;padding:6px 2px;background:none;border:none;
    cursor:pointer;color:var(--muted);font-family:var(--font);
    transition:color .15s;
  }
  .mbn-item.active,.mbn-item:active{color:var(--terra)}
  .mbn-icon{font-size:19px;line-height:1.2}
  .mbn-label{font-size:9px;font-weight:600;letter-spacing:0;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  @media(max-width:359px){.mbn-label{font-size:8px}}
  /* CTA central : pastille terra surélevée */
  .mbn-cta{color:var(--terra)}
  .mbn-cta-circle{
    display:flex;align-items:center;justify-content:center;
    width:38px;height:38px;margin-top:-14px;
    background:var(--terra);color:#fff;
    border-radius:50%;font-size:24px;font-weight:300;line-height:1;
    box-shadow:0 3px 10px rgba(27,59,74,.28);
  }
    #view-pnl [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important}
  .pnl-treso-grid{grid-template-columns:repeat(2,1fr)}
  .pnl-perf-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
    .form-grid{grid-template-columns:1fr}.form-full{grid-column:1/-1}
      .pnl-kpi-row{grid-template-columns:repeat(2,1fr)}
      .simu-result{grid-template-columns:1fr 1fr}
      .kpi-row{grid-template-columns:1fr 1fr}
      .cards-grid{grid-template-columns:1fr}
      .rec-detail-kpis{grid-template-columns:1fr 1fr !important}
      .overlay{padding:0;align-items:flex-end}
      .modal,.modal-lg,.modal-md{max-width:100vw;border-radius:20px 20px 0 0;max-height:94vh}
      .modal-head{padding:20px 20px 0}.modal-body{padding:0 20px 24px}
      .card-actions{flex-wrap:wrap}.cmd-card-actions{flex-wrap:wrap}
      .dash-week{grid-template-columns:repeat(2,1fr)}
      .planning-grid{grid-template-columns:repeat(2,1fr)}
      .pnl-treso-grid{grid-template-columns:1fr 1fr}
      .pnl-perf-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
    .pnl-kpi-row{grid-template-columns:1fr 1fr}.kpi-row{grid-template-columns:1fr 1fr}
      .pnl-kpi-value{font-size:20px}.kpi-value{font-size:26px}
      .simu-result{grid-template-columns:1fr 1fr}
      .dash-pnl-row{grid-template-columns:1fr}
    .dash-week{grid-template-columns:repeat(2,1fr)}.dash-pnl-row{grid-template-columns:1fr}
    /* ── Dashboard : semaine — jours plus étroits ── */
  .dash-day{min-width:100px}
  .dash-day.today{min-width:120px}

  /* ── Recap paiement : empilé ── */
  #paie-cmd-recap{grid-template-columns:1fr}

  /* ── Cards commandes : simplifier le footer ── */
  .cmd-card-recettes{display:none}

  /* ── Boutons actions commande ── */
  .form-actions{flex-direction:column}
  .form-actions .btn{width:100%}
  .pnl-treso-grid{grid-template-columns:1fr}
  .pnl-perf-grid{grid-template-columns:1fr}
}
@media print{
    #sidebar,#conn-dot,.page-header button,.btn,#loader,#toast{display:none !important}#app-content{margin-left:0}main{padding:10px;max-width:100%}.view{display:none !important}#view-courses{display:block !important}.courses-group{break-inside:avoid}
}

/* ── PAGE PARAMÈTRES ─────────────────────────────── */
.param-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}
@media(max-width:768px){.param-grid{grid-template-columns:1fr}}
.param-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shd);padding:24px 28px}
.param-card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.param-card .fgroup{margin-bottom:16px}
.param-card .fgroup:last-child{margin-bottom:0}
.param-card .flabel{display:block;font-size:12px;font-weight:600;color:var(--ink2);margin-bottom:6px}
.param-card input[type=text],.param-card input[type=tel],.param-card input[type=email],.param-card input[type=number],.param-card textarea,.param-card select{width:100%;padding:9px 13px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-family:var(--font);font-size:14px;color:var(--ink);background:var(--bg);outline:none;transition:border-color .2s}
.param-card input:focus,.param-card textarea:focus,.param-card select:focus{border-color:var(--terra);background:#fff}
.param-card textarea{resize:vertical;min-height:68px}
.param-hint{font-size:11px;color:var(--muted);margin-top:4px}
.param-save-bar{display:flex;align-items:center;gap:14px;padding:20px 0 0}
.param-save-confirm{font-size:13px;color:var(--ok-dark);font-weight:600;display:none}
@keyframes fadeInUp{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
