  :root{--bg:#f0ede8;--bg2:#faf8f5;--bg3:#e8e4dd;--bg4:#dedad2;--border:#d8d2c8;--border2:#c8c0b4;--text:#2c2620;--text2:#7a6f64;--text3:#b0a898;--accent:#d4621a;--accent2:#b8501a;--green:#2d8a4e;--green-bg:#e8f5ee;--amber:#b07820;--amber-bg:#fdf3e0;--red:#c0392b;--red-bg:#fdecea;--blue:#2860a8;--blue-bg:#e8f0fb;--radius:10px;--radius-lg:16px;}
  *{box-sizing:border-box;margin:0;padding:0;}
  body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;font-size:14px;}
  #login-screen{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:100;}
  .login-card{width:380px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px;animation:fadeUp .4s ease;}
  @keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}
  .login-logo{font-size:22px;font-weight:600;color:var(--accent);letter-spacing:-.5px;margin-bottom:4px;}
  .login-sub{color:var(--text2);font-size:13px;margin-bottom:28px;}
  .fl{font-size:12px;color:var(--text2);margin-bottom:6px;font-weight:500;}
  .fi{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s;margin-bottom:14px;}
  .fi:focus{border-color:var(--accent2);}
  .btn-primary{width:100%;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:11px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;}
  .btn-primary:hover{background:var(--accent2);}
  #sidebar{width:220px;min-width:220px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 0;height:100vh;position:sticky;top:0;}
  .sb-logo{padding:0 20px 24px;font-size:17px;font-weight:600;color:var(--accent);letter-spacing:-.4px;line-height:1.3;}
  .sb-logo span{font-size:11px;color:var(--text3);display:block;font-weight:400;margin-top:2px;}
  .nav-sec{font-size:10px;color:var(--text3);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:0 20px;margin:12px 0 4px;}
  .ni{display:flex;align-items:center;gap:10px;padding:8px 20px;color:var(--text2);cursor:pointer;transition:all .15s;font-size:13px;position:relative;}
  .ni:hover{color:var(--text);background:var(--bg3);}
  .ni.active{color:var(--accent);background:var(--bg3);font-weight:500;}
  .ni.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);}
  .nb{margin-left:auto;background:var(--accent);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:99px;}
  .sb-user{margin-top:auto;padding:14px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;}
  .av{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;}
  #main{flex:1;overflow-y:auto;}
  .page{display:none;padding:32px;animation:fadeIn .2s ease;}
  .page.active{display:block;}
  .ph{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px;}
  .pt{font-size:22px;font-weight:600;color:var(--accent);letter-spacing:-.4px;}
  .ps{font-size:13px;color:var(--text2);margin-top:3px;}
  .btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg3);color:var(--text);font-family:inherit;font-size:13px;cursor:pointer;transition:all .15s;font-weight:500;}
  .btn:hover{border-color:var(--border2);background:var(--bg4);}
  .ba{background:var(--accent);color:#141414;border-color:var(--accent);}
  .ba:hover{background:var(--accent2);}
  .cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:28px;}
  .sc{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;}
  .sl{font-size:11px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
  .sv{font-size:26px;font-weight:600;color:var(--accent);letter-spacing:-.5px;font-family:'DM Mono',monospace;}
  .ss{font-size:12px;color:var(--text2);margin-top:4px;}
  .tw{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:24px;}
  .ttb{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);gap:10px;flex-wrap:wrap;}
  .ts{flex:1;min-width:160px;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:7px 12px;color:var(--text);font-family:inherit;font-size:13px;outline:none;}
  .ts:focus{border-color:var(--accent2);}
  table{width:100%;border-collapse:collapse;}
  th{font-size:11px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:10px 16px;text-align:left;border-bottom:1px solid var(--border);}
  td{padding:11px 16px;border-bottom:1px solid var(--border);color:var(--text2);font-size:13px;vertical-align:middle;}
  tr:last-child td{border-bottom:none;}
  tr:hover td{background:var(--bg3);}
  .tn{font-weight:500;color:var(--text)!important;}
  .tm{font-family:'DM Mono',monospace;font-size:12px;}
  .badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:500;white-space:nowrap;}
  .bg{background:var(--green-bg);color:var(--green);}
  .bam{background:var(--amber-bg);color:var(--amber);}
  .br{background:var(--red-bg);color:var(--red);}
  .bb{background:var(--blue-bg);color:var(--blue);}
  .bgr{background:var(--bg4);color:var(--text2);}
  .bm{background:var(--accent);color:#fff;}
  .ra{color:var(--text3);cursor:pointer;padding:3px 8px;border-radius:6px;font-size:15px;}
  .ra:hover{background:var(--bg4);color:var(--red);}
  .empty{padding:48px 24px;text-align:center;}
  .empty div{color:var(--text3);font-size:13px;}
  .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:200;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto;}
  .modal-overlay.open{display:flex;}
  .modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:32px;width:720px;max-width:100%;animation:fadeUp .2s ease;margin:auto;}
  .mt{font-size:16px;font-weight:600;color:var(--accent);margin-bottom:20px;}
  .fg{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .fgroup{display:flex;flex-direction:column;gap:5px;}
  .fgroup.full{grid-column:1/-1;}
  .flabel{font-size:12px;color:var(--text2);font-weight:500;}
  .finput{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-family:inherit;font-size:13px;outline:none;width:100%;}
  .finput:focus{border-color:var(--accent2);}
  .fa{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap;}
  .lh{display:grid;grid-template-columns:1fr 138px 96px 96px 28px;gap:6px;font-size:11px;color:var(--text3);padding:0 2px;margin-bottom:4px;}
  .dl{display:grid;grid-template-columns:1fr 138px 96px 96px 28px;gap:6px;margin-bottom:6px;align-items:center;}
  .dl .finput{padding:7px 10px;}
  .dl .qu{display:flex;gap:4px;align-items:center;min-width:0;}
  .dl .qu .q-in{width:50px;flex:0 0 50px;text-align:center;min-width:0;padding:7px 4px;}
  .dl .qu .u-sel{flex:1 1 auto;min-width:0;padding:7px 4px;font-size:12px;}
  .delb{color:var(--text3);cursor:pointer;text-align:center;font-size:18px;line-height:1;padding:4px;}
  .delb:hover{color:var(--red);}
  .alb{font-size:12px;color:var(--accent2);cursor:pointer;padding:4px 0;display:inline-block;margin-top:4px;}
  .alb:hover{color:var(--accent);}
  .tblock{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-top:12px;}
  .tri{display:flex;justify-content:space-between;padding:3px 0;font-size:13px;color:var(--text2);}
  .tri.main{border-top:1px solid var(--border);margin-top:6px;padding-top:8px;font-weight:600;color:var(--text);font-size:15px;}
  .tri .val{font-family:'DM Mono',monospace;}
  .cc{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:14px;}
  .cn{font-size:15px;font-weight:600;color:var(--text);}
  .cm{font-size:12px;color:var(--text3);margin-top:3px;}
  .pb{height:4px;background:var(--bg4);border-radius:99px;overflow:hidden;margin-top:10px;}
  .pf{height:100%;border-radius:99px;background:var(--accent);}
  .csumm{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px;}
  .ccard{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;}
  .clabel{font-size:11px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
  .cval{font-size:22px;font-weight:600;letter-spacing:-.4px;font-family:'DM Mono',monospace;}
  .cvg{color:var(--green);}.cvr{color:var(--red);}.cva{color:var(--accent);}
  .ug{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
  .uc{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;display:flex;gap:14px;}
  .ua{width:42px;height:42px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0;}
  .dg{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px;}
  .dc{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;}
  .dct{font-size:11px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;}

  @media(max-width:700px){.dg,.csumm{grid-template-columns:1fr;}.fg{grid-template-columns:1fr;}}

  /* ── Améliorations globales design ── */
  /* Scroll horizontal pour les tables larges */
  .tw{overflow-x:auto;}
  table{min-width:600px;}

  /* Backdrop modal */
  .modal-overlay{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
  .modal{box-shadow:0 24px 80px rgba(0,0,0,.18),0 4px 16px rgba(0,0,0,.08);}

  /* Card hover */
  .sc{transition:box-shadow .18s,transform .18s;cursor:default;}
  .sc:hover{box-shadow:0 4px 20px rgba(0,0,0,.08);transform:translateY(-1px);}
  .ccard{transition:box-shadow .18s;}
  .ccard:hover{box-shadow:0 2px 12px rgba(0,0,0,.07);}

  /* Sidebar ombre */
  #sidebar{box-shadow:2px 0 12px rgba(0,0,0,.04);}

  /* Toast amélioré */
  #toast{box-shadow:0 8px 32px rgba(0,0,0,.18);border-radius:12px!important;padding:12px 22px!important;font-size:13.5px!important;letter-spacing:.01em;max-width:360px;word-break:break-word;}

  /* Scrollbar élégante */
  ::-webkit-scrollbar{width:6px;height:6px;}
  ::-webkit-scrollbar-track{background:transparent;}
  ::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px;}
  ::-webkit-scrollbar-thumb:hover{background:var(--text3);}

  /* Boutons inline table — plus compacts et harmonisés */
  td .btn-inline{display:inline-flex;align-items:center;gap:3px;background:var(--bg3);color:var(--text2);border:1px solid var(--border2);border-radius:6px;padding:3px 8px;font-size:11px;cursor:pointer;font-family:inherit;font-weight:600;transition:all .12s;white-space:nowrap;}
  td .btn-inline:hover{background:var(--bg4);color:var(--text);}

  /* Chantier card hover */
  .cc{transition:box-shadow .15s,border-color .15s;}
  .cc:hover{box-shadow:0 2px 16px rgba(0,0,0,.07);border-color:var(--border2);}

  /* Progress bar animation */
  .pf{transition:width .6s ease;}

  /* Empty state amélioré */
  .empty{padding:56px 24px;}
  .empty div{color:var(--text3);font-size:13px;line-height:1.6;}

  /* Finput focus ring */
  .finput:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(212,98,26,.1);}
  .fi:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(212,98,26,.1);}

  /* Badge amélioré */
  .badge{font-weight:600;letter-spacing:.01em;}

  /* Modal title */
  .mt{font-size:17px;font-weight:700;color:var(--accent);margin-bottom:22px;letter-spacing:-.3px;}

  /* Table th sticky */
  thead{position:sticky;top:0;z-index:1;background:var(--bg2);}

  /* Bouton annuler dans .fa */
  .fa .btn:first-child{color:var(--text3);}
  .fa .btn:first-child:hover{color:var(--text);}

  /* Page header responsive */
  @media(max-width:900px){
    .page{padding:18px;}
    #sidebar{width:180px;min-width:180px;}
    .ni{padding:8px 14px;font-size:12px;}
    .pt{font-size:18px;}
    table{min-width:400px;}
  }
  @media(max-width:640px){
    #sidebar{display:none;}
    .page{padding:12px;}
  }

  /* Catalogue ── */
  .cat-grid{display:grid;grid-template-columns:220px 1fr;gap:0;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;min-height:500px;}
  .cat-sidebar{border-right:1px solid var(--border);padding:10px 0;overflow-y:auto;}
  .cat-cat{padding:8px 16px;font-size:13px;cursor:pointer;color:var(--text2);transition:all .15s;border-left:2px solid transparent;}
  .cat-cat:hover{background:var(--bg3);color:var(--text);}
  .cat-cat.active{background:var(--bg3);color:var(--accent);font-weight:500;border-left-color:var(--accent);}
  .cat-count{margin-left:auto;font-size:11px;color:var(--text3);background:var(--bg4);padding:1px 6px;border-radius:99px;}
  .cat-main{padding:16px;overflow-y:auto;}
  .cat-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;transition:background .12s;cursor:default;}
  .cat-item:hover{background:var(--bg3);}
  .cat-item-name{flex:1;font-size:13px;color:var(--text);}
  .cat-item-unit{font-size:11px;color:var(--text3);min-width:60px;text-align:right;}
  .cat-item-price{font-family:'DM Mono',monospace;font-size:13px;color:var(--accent);font-weight:500;min-width:80px;text-align:right;}
  .cat-item-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s;}
  .cat-item:hover .cat-item-actions{opacity:1;}
  .cat-picker-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .12s;}
  .cat-picker-item:hover{background:var(--bg3);}

  /* ── SIDEBAR — nouveau design (S3) ─────────────────────── */
  #sidebar{transition:width .2s ease,min-width .2s ease;overflow:hidden;}
  .sb-header{display:flex;align-items:flex-start;justify-content:space-between;padding:0 16px 20px;}
  .sb-logo-wrap{display:flex;flex-direction:column;min-width:0;}
  .sb-brand{font-size:17px;font-weight:600;color:var(--accent);letter-spacing:-.4px;white-space:nowrap;}
  .sb-sub{font-size:11px;color:var(--text3);font-weight:400;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .sb-toggle{background:none;border:none;cursor:pointer;color:var(--text3);padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;margin-top:2px;}
  .sb-toggle:hover{background:var(--bg3);color:var(--text);}
  .ni{display:flex;align-items:center;gap:10px;padding:8px 16px;color:var(--text2);cursor:pointer;transition:all .15s;font-size:13px;position:relative;white-space:nowrap;}
  .ni:hover{color:var(--text);background:var(--bg3);}
  .ni.active{color:var(--accent);background:var(--bg3);font-weight:500;}
  .ni.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);}
  .ni svg{flex-shrink:0;}
  .ni-text{flex:1;overflow:hidden;text-overflow:ellipsis;}
  .sb-footer{border-top:1px solid var(--border);flex-shrink:0;}
  .sb-backup-btn{width:100%;background:transparent;border:none;padding:10px 16px;font-family:inherit;font-size:12px;color:var(--text2);cursor:pointer;display:flex;align-items:center;gap:7px;transition:all .15s;white-space:nowrap;}
  .sb-backup-btn:hover{color:var(--accent);background:var(--bg3);}
  .sb-user{margin-top:0;border-top:1px solid var(--border);padding:12px 16px;display:flex;align-items:center;gap:10px;min-width:0;}
  .sb-user-info{flex:1;min-width:0;overflow:hidden;}
  .sb-user-info div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .sb-logout-btn{margin-left:auto;background:none;border:none;color:var(--text3);cursor:pointer;font-size:16px;flex-shrink:0;padding:2px;}
  .nav-sec{font-size:10px;color:var(--text3);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:0 16px;margin:12px 0 4px;white-space:nowrap;overflow:hidden;}

  /* Sidebar collapsed */
  #sidebar.collapsed{width:52px;min-width:52px;}
  #sidebar.collapsed .sb-logo-wrap{display:none;}
  #sidebar.collapsed .sb-header{padding:0 0 16px;justify-content:center;}
  #sidebar.collapsed .nav-sec{opacity:0;height:0;margin:0;padding:0;}
  #sidebar.collapsed .ni{justify-content:center;padding:9px 0;}
  #sidebar.collapsed .ni-text{display:none;}
  #sidebar.collapsed .nb{display:none!important;}
  #sidebar.collapsed .sb-footer-text{display:none;}
  #sidebar.collapsed .sb-user-info{display:none;}
  #sidebar.collapsed .sb-logout-btn{display:none;}
  #sidebar.collapsed .sb-user{justify-content:center;padding:12px 0;}
  #sidebar.collapsed .sb-backup-btn{justify-content:center;padding:10px 0;}

  /* ── SKELETON LOADERS ───────────────────────────────────── */
  @keyframes shimmer{0%{background-position:-600px 0}100%{background-position:600px 0}}
  .skel{background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);background-size:1200px 100%;animation:shimmer 1.4s infinite linear;border-radius:6px;}
  .skel-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;}
  .skel-line{height:10px;margin-bottom:8px;}
  .skel-val{height:28px;width:60%;margin-bottom:8px;}
  .skel-sub{height:8px;width:80%;}

  /* ── KPI TRENDS (S4) ────────────────────────────────────── */
  .kpi-trend{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:600;padding:1px 5px;border-radius:5px;}
  .kpi-trend.up{color:var(--green);background:var(--green-bg);}
  .kpi-trend.down{color:var(--red);background:var(--red-bg);}
  .kpi-trend.neutral{color:var(--text3);background:var(--bg3);}
  .sc-trend{font-size:11px;color:var(--text2);margin-top:5px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;}

  /* ── À FAIRE MAINTENANT (S4) ────────────────────────────── */
  .dash-todo-panel{border-radius:var(--radius-lg);border:1px solid var(--border2);overflow:hidden;margin-bottom:20px;}
  .dash-todo-header{background:var(--bg3);padding:10px 16px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text);}
  .dash-todo-list{background:var(--bg2);display:flex;flex-direction:column;}
  .todo-item{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
  .todo-item:last-child{border-bottom:none;}
  .todo-item:hover{background:var(--bg3);}
  .todo-icon{font-size:16px;flex-shrink:0;width:22px;text-align:center;}
  .todo-text{flex:1;min-width:0;}
  .todo-label{font-size:13px;font-weight:500;color:var(--text);display:block;}
  .todo-sub{font-size:11px;color:var(--text2);}
  .todo-arrow{color:var(--text3);font-size:14px;flex-shrink:0;}
  .todo-item:hover .todo-arrow{color:var(--accent);}

  /* ── DASHBOARD CFO LAYOUT ───────────────────────────────── */
  .dash-chart-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px;margin-bottom:18px;}
  .dash-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
  .dash-chart-title{font-size:13px;font-weight:600;color:var(--text);}
  .dash-chart-sub{font-size:11px;color:var(--text3);}
  .dash-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-bottom:24px;}
  @media(max-width:1100px){.dash-bottom{grid-template-columns:1fr 1fr;}}
  @media(max-width:700px){.dash-bottom{grid-template-columns:1fr;}.dg,.csumm{grid-template-columns:1fr;}.fg{grid-template-columns:1fr;}}

  /* ── AGENDA GOOGLE-STYLE ─────────────────────────────────── */
  #page-agenda{padding:0!important;display:none}
  #page-agenda.active{display:flex!important;flex-direction:column;height:calc(100vh - 32px);overflow:hidden}
  .agenda-wrap{display:flex;flex:1;overflow:hidden}
  .agenda-sidebar{width:240px;min-width:240px;padding:14px 12px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:14px;overflow-y:auto;background:var(--bg2)}
  .agenda-create-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;background:var(--bg2);border:none;border-radius:24px;box-shadow:0 1px 4px rgba(0,0,0,.18),0 0 0 1px var(--border);font-family:inherit;font-size:14px;font-weight:500;color:var(--text);cursor:pointer;transition:box-shadow .2s;width:100%}
  .agenda-create-btn:hover{box-shadow:0 2px 10px rgba(0,0,0,.22),0 0 0 1px var(--border2)}
  .agenda-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
  .agenda-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg2);flex-wrap:wrap;gap:8px;flex-shrink:0}
  .agenda-nav-btn{background:none;border:1px solid var(--border2);border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;color:var(--text2);transition:background .12s;line-height:1}
  .agenda-nav-btn:hover{background:var(--bg3)}
  .agenda-today-btn{background:none;border:1px solid var(--border2);border-radius:20px;padding:5px 14px;font-family:inherit;font-size:12px;cursor:pointer;color:var(--text2);font-weight:500;transition:background .12s}
  .agenda-today-btn:hover{background:var(--bg3)}
  .agenda-title-label{font-size:18px;font-weight:400;color:var(--text);margin-left:6px;white-space:nowrap}
  .agenda-view-tabs{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg2)}
  .agenda-view-tab{background:none;border:none;border-right:1px solid var(--border);padding:6px 13px;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;color:var(--text2);transition:background .12s}
  .agenda-view-tab:last-child{border-right:none}
  .agenda-view-tab:hover{background:var(--bg3)}
  .agenda-view-tab.active{background:var(--accent);color:#fff}
  .agenda-ical-btn{background:none;border:1px solid var(--border2);border-radius:7px;padding:5px 12px;font-family:inherit;font-size:12px;cursor:pointer;color:var(--text2);font-weight:500;transition:background .12s}
  .agenda-ical-btn:hover{background:var(--bg3)}
  /* Mini-calendrier */
  .mini-cal{width:100%;user-select:none}
  .mini-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding:0 2px}
  .mini-cal-nav{background:none;border:none;border-radius:50%;width:26px;height:26px;cursor:pointer;font-size:16px;color:var(--text2);display:flex;align-items:center;justify-content:center;line-height:1;transition:background .12s}
  .mini-cal-nav:hover{background:var(--bg3)}
  .mini-cal-month-label{font-size:12px;font-weight:600;color:var(--text)}
  .mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}
  .mini-cal-dow{font-size:10px;font-weight:600;color:var(--text3);text-align:center;padding:4px 0}
  .mini-cal-day{font-size:11px;text-align:center;padding:4px 2px;border-radius:50%;cursor:pointer;color:var(--text2);line-height:1.4;transition:background .1s}
  .mini-cal-day:hover{background:var(--bg3)}
  .mini-cal-day.today{color:var(--accent);font-weight:700;background:rgba(212,98,26,.1)}
  .mini-cal-day.in-range{background:rgba(212,98,26,.08);border-radius:0}
  .mini-cal-day.other-month{color:var(--text3)}
  .mini-cal-day.ferie{color:#c0392b;font-weight:600}
  .mini-cal-day.ferie.other-month{color:rgba(192,57,43,.4)}
  /* Fériés FullCalendar */
  #agenda-fc .fc-day-ferie{background:rgba(220,38,38,0.05)!important}
  #agenda-fc .fc-day-ferie.fc-day-today{background:rgba(220,38,38,0.08)!important}
  #agenda-fc .fc-event-ferie{font-size:10px!important;font-style:italic;pointer-events:none!important;opacity:.9}
  /* Filtre bar */
  .agenda-filter-bar{display:flex;align-items:center;gap:8px;padding:6px 16px;border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0;flex-wrap:wrap}
  /* Légende items */
  .agenda-legend-item{display:flex;align-items:center;gap:8px;padding:3px 6px;cursor:pointer;border-radius:6px;transition:background .1s}
  .agenda-legend-item:hover{background:var(--bg3)}
  /* Filtre équipe sidebar */
  .agenda-collab-chip{font-size:11px;color:var(--text2);padding:4px 8px;border-radius:6px;cursor:pointer;transition:background .1s,color .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .agenda-collab-chip:hover{background:var(--bg3)}
  .agenda-collab-chip.active{background:var(--accent);color:#fff;font-weight:600}
  /* Chips ouvriers dans la modal */
  .agenda-ouvrier-chip{font-size:11px;font-weight:500;color:var(--text2);padding:4px 12px;border-radius:20px;cursor:pointer;background:var(--bg2);border:1px solid var(--border);transition:background .12s,color .12s,border-color .12s;white-space:nowrap;user-select:none}
  .agenda-ouvrier-chip:hover{background:var(--bg3);border-color:var(--border2)}
  .agenda-ouvrier-chip.selected{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
  /* Color picker */
  .agenda-color-swatch{width:24px;height:24px;border-radius:50%;cursor:pointer;transition:transform .12s;flex-shrink:0;outline:3px solid transparent;outline-offset:2px;display:flex;align-items:center;justify-content:center}
  .agenda-color-swatch:hover{transform:scale(1.15)}
  .agenda-color-swatch.selected{outline-color:var(--accent)}
  /* En-têtes de jours style GCal */
  .fc-day-header-custom{display:flex;flex-direction:column;align-items:center;padding:5px 0;gap:3px}
  .fc-day-header-name{font-size:10px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
  .fc-day-header-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:400;color:var(--text);transition:background .12s}
  .fc-day-header-num.today{background:var(--accent);color:#fff;font-weight:700}
  /* Contenu événement custom */
  .fc-event-inner{display:flex;align-items:flex-start;gap:3px;overflow:hidden;width:100%;padding:1px 3px}
  .fc-event-icon{font-size:9px;flex-shrink:0;line-height:1.6}
  .fc-event-text{overflow:hidden;min-width:0;flex:1}
  .fc-event-time-custom{font-size:9px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
  .fc-event-title-custom{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
  /* FullCalendar overrides */
  #agenda-fc .fc{font-family:'DM Sans',sans-serif!important}
  #agenda-fc .fc-toolbar{display:none!important}
  #agenda-fc .fc-event{border-radius:5px!important;border:none!important;padding:0!important}
  #agenda-fc .fc-event .fc-event-main{cursor:pointer!important}
  #agenda-fc .fc-event-resizer{cursor:s-resize!important}
  #agenda-fc .fc-daygrid-event{border-radius:4px!important;margin:1px 2px!important}
  #agenda-fc .fc-day-today{background:rgba(212,98,26,.04)!important}
  #agenda-fc .fc-timegrid-now-indicator-line{border-color:var(--red)!important;border-width:2px!important}
  #agenda-fc .fc-timegrid-now-indicator-arrow{border-top-color:var(--red)!important;border-bottom-color:var(--red)!important}
  #agenda-fc .fc-col-header-cell-cushion{text-decoration:none!important;padding:0!important}
  #agenda-fc .fc-col-header-cell{border-bottom:1px solid var(--border)!important;vertical-align:middle!important}
  #agenda-fc .fc-daygrid-day-number{font-size:12px!important;color:var(--text2)!important;text-decoration:none!important}
  #agenda-fc .fc-day-today .fc-daygrid-day-number{color:var(--accent)!important;font-weight:700!important}
  #agenda-fc .fc-more-link{font-size:11px!important;color:var(--accent)!important}
  #agenda-fc .fc-timegrid-slot-label{font-size:10px!important;color:var(--text3)!important}
  #agenda-fc .fc-timegrid-slot-label-cushion{padding:0 4px!important}
  #agenda-fc .fc-scrollgrid{border-color:var(--border)!important}
  #agenda-fc .fc-scrollgrid td,#agenda-fc .fc-scrollgrid th{border-color:var(--border)!important}
  #agenda-fc .fc-highlight{background:rgba(212,98,26,.12)!important;border-radius:4px!important}
  #agenda-fc .fc-multimonth-title{font-size:14px!important;font-weight:600!important;color:var(--text)!important;font-family:'DM Sans',sans-serif!important}
  #agenda-fc .fc-button{font-family:'DM Sans',sans-serif!important}
  #agenda-fc .fc-week-number a,#agenda-fc .fc-daygrid-week-number a{font-size:9px!important;color:var(--text3)!important;text-decoration:none!important;font-weight:400!important}
  #agenda-fc .fc-timegrid-event .fc-event-main{padding:0!important}
  #agenda-fc .fc-daygrid-event .fc-event-main{padding:0!important}
  #agenda-fc .fc-timegrid-event{border-radius:5px!important}
  #agenda-fc .fc-event-mirror{opacity:.85!important}

  /* ── SESSION 5 : UX SIGNATURE ─────────────────────────────────────── */

  /* ── Command Palette ───────────────────────────────────────────────── */
  #cmd-palette{display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);align-items:flex-start;justify-content:center;padding-top:72px;}
  #cmd-palette.open{display:flex;}
  .cmd-box{width:560px;max-width:calc(100vw - 32px);background:var(--bg2);border:1px solid var(--border2);border-radius:16px;box-shadow:0 32px 80px rgba(0,0,0,.28),0 4px 16px rgba(0,0,0,.1);overflow:hidden;animation:fadeUp .15s ease;}
  .cmd-search{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);}
  .cmd-search svg{flex-shrink:0;color:var(--text3);}
  #cmd-input{flex:1;background:none;border:none;outline:none;font-family:'DM Sans',sans-serif;font-size:15px;color:var(--text);}
  #cmd-input::placeholder{color:var(--text3);}
  .cmd-results{max-height:380px;overflow-y:auto;}
  .cmd-section{padding:4px 0;}
  .cmd-section-label{font-size:10px;color:var(--text3);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:8px 18px 4px;}
  .cmd-item{display:flex;align-items:center;gap:12px;padding:9px 18px;cursor:pointer;transition:background .1s;}
  .cmd-item:hover,.cmd-item.selected{background:var(--bg3);}
  .cmd-item-icon{width:28px;height:28px;background:var(--bg4);border:1px solid var(--border);border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text2);transition:all .1s;}
  .cmd-item.selected .cmd-item-icon{background:var(--accent);border-color:var(--accent);color:#fff;}
  .cmd-item-label{flex:1;font-size:13px;color:var(--text);font-weight:500;}
  .cmd-item-sub{font-weight:400;color:var(--text3);}
  .cmd-item-type{font-size:10px;color:var(--text3);background:var(--bg4);padding:2px 7px;border-radius:5px;font-weight:500;white-space:nowrap;}
  .cmd-empty{padding:36px 18px;text-align:center;color:var(--text3);font-size:13px;}
  .cmd-footer{padding:9px 18px;border-top:1px solid var(--border);display:flex;gap:16px;background:var(--bg3);}
  .cmd-footer span{font-size:11px;color:var(--text3);display:inline-flex;align-items:center;gap:4px;}
  kbd{display:inline-flex;align-items:center;padding:1px 5px;background:var(--bg2);border:1px solid var(--border2);border-radius:4px;font-family:'DM Mono',monospace;font-size:10px;color:var(--text2);line-height:1.6;}

  /* ── Shortcuts overlay ─────────────────────────────────────────────── */
  #shortcuts-overlay{display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);align-items:center;justify-content:center;}
  #shortcuts-overlay.open{display:flex;}
  .sc-box{width:520px;max-width:calc(100vw - 32px);background:var(--bg2);border:1px solid var(--border2);border-radius:16px;box-shadow:0 32px 80px rgba(0,0,0,.28);padding:28px 32px;animation:fadeUp .15s ease;}
  .sc-title{font-size:16px;font-weight:700;color:var(--accent);margin-bottom:6px;letter-spacing:-.3px;}
  .sc-hint{font-size:12px;color:var(--text3);margin-bottom:20px;}
  .sc-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 32px;}
  .sc-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);}
  .sc-row:last-child{border-bottom:none;}
  .sc-label{font-size:12px;color:var(--text2);}
  .sc-keys{display:flex;align-items:center;gap:3px;}
  .sc-close{display:block;margin-top:20px;text-align:center;font-size:12px;color:var(--text3);cursor:pointer;}
  .sc-close:hover{color:var(--accent);}

  /* ── Empty states ──────────────────────────────────────────────────── */
  .es-row td{border:none!important;background:transparent!important;}
  .es-cell{padding:56px 24px!important;text-align:center;border:none!important;}
  .es-inner{display:flex;flex-direction:column;align-items:center;gap:0;}
  .es-inner svg{margin-bottom:16px;opacity:.9;}
  .es-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px;}
  .es-sub{font-size:13px;color:var(--text3);margin-bottom:20px;line-height:1.55;max-width:340px;}
  .es-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 22px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;}
  .es-btn:hover{background:var(--accent2);}
  .es-div{display:flex;flex-direction:column;align-items:center;padding:64px 24px;text-align:center;}
  .es-div svg{margin-bottom:16px;opacity:.9;}

  /* ── Nav popover (sidebar collapsed) ─────────────────────────────── */
  #nav-popover{position:fixed;left:62px;background:var(--text);color:var(--bg2);font-size:12px;font-weight:500;padding:6px 12px;border-radius:8px;z-index:600;pointer-events:none;white-space:nowrap;opacity:0;transition:opacity .12s;box-shadow:0 4px 16px rgba(0,0,0,.22);}
  #nav-popover.show{opacity:1;}

