
  :root{
    --navy:#040C21; --navy2:#0D1430; --navy3:#161F3D;
    --gold:#C9A24B; --gold-soft:#E6C778;
    --rose:#E7A4BF;
    --ink:#EAEEF7; --ink-dim:#9AA6C0; --ink-faint:#5C6786;
    --line:rgba(201,162,75,.18);
    --line2:rgba(255,255,255,.07);
    --ok:#4FBF8B; --warn:#E6B450; --bad:#E0697A;
    --bg-card:rgba(255,255,255,.025);
    --r:14px;
    --f-disp:'Georgia',serif;
    --f-body:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  }
  /* === Thème clair === */
  html[data-theme="light"]{
    --navy:#F4F1EA; --navy2:#FFFFFF; --navy3:#ECE7DC;
    --gold:#B07D2B; --gold-soft:#9A6A1F;
    --rose:#C76E96;
    --ink:#1C2233; --ink-dim:#55617A; --ink-faint:#8A93A8;
    --line:rgba(176,125,43,.28);
    --line2:rgba(28,34,51,.10);
    --ok:#2E9E6B; --warn:#B7841F; --bad:#C7405A;
    --bg-card:rgba(28,34,51,.025);
  }
  html[data-theme="light"] body{
    background:
      radial-gradient(1200px 700px at 80% -10%, rgba(176,125,43,.10), transparent 60%),
      radial-gradient(900px 600px at -10% 110%, rgba(199,110,150,.08), transparent 55%),
      var(--navy);
  }
  /* Inversions ponctuelles pour le contraste en thème clair */
  html[data-theme="light"] .btn,
  html[data-theme="light"] .pill.on,
  html[data-theme="light"] .chip.on,
  html[data-theme="light"] .seg button.on,
  html[data-theme="light"] .file-ic,
  html[data-theme="light"] .axe-scale button.sel,
  html[data-theme="light"] .mission.done .checkbox,
  html[data-theme="light"] ::selection{color:#fff}
  /* Le blanc ci-dessus vaut pour les boutons pleins. Les boutons secondaires
     ont un fond transparent : leur texte y devenait invisible. */
  html[data-theme="light"] .btn.ghost,
  html[data-theme="light"] .btn.ghost:hover,
  html[data-theme="light"] .pill:not(.on),
  html[data-theme="light"] .chip:not(.on){color:var(--ink)}
  html[data-theme="light"] .icon-btn{color:var(--ink-dim)}
  html[data-theme="light"] ::selection{background:var(--gold)}
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{
    font-family:var(--f-body); color:var(--ink);
    background:
      radial-gradient(1200px 700px at 80% -10%, rgba(201,162,75,.08), transparent 60%),
      radial-gradient(900px 600px at -10% 110%, rgba(231,164,191,.06), transparent 55%),
      var(--navy);
    min-height:100vh; -webkit-font-smoothing:antialiased;
  }
  button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit}
  input,select,textarea{font-family:inherit; font-size:14px}
  ::selection{background:var(--gold); color:var(--navy)}

  /* ---------- LOGIN ---------- */
  #login{position:fixed; inset:0; display:flex; align-items:center; justify-content:center; padding:24px; z-index:100}
  .login-card{
    width:100%; max-width:380px; background:var(--navy2);
    border:1px solid var(--line); border-radius:20px; padding:36px 30px;
    box-shadow:0 30px 80px rgba(0,0,0,.5);
  }
  .brand-mark{display:flex; align-items:baseline; gap:3px; justify-content:center; margin-bottom:6px}
  .brand-mark .b1{font-family:var(--f-disp); font-size:30px; letter-spacing:1px; color:var(--ink)}
  .brand-mark .dot{width:7px; height:7px; border-radius:50%; background:var(--gold); transform:translateY(-3px)}
  .brand-sub{text-align:center; font-size:11px; letter-spacing:3.5px; text-transform:uppercase; color:var(--ink-faint); margin-bottom:28px}
  .field{margin-bottom:14px}
  .field label{display:block; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink-dim); margin-bottom:7px}
  .field input,.field select{
    width:100%; padding:12px 14px; background:var(--navy3); color:var(--ink);
    border:1px solid var(--line2); border-radius:10px; outline:none; transition:.15s;
  }
  .field input:focus,.field select:focus{border-color:var(--gold)}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:11px 16px; border-radius:10px; font-size:14px; font-weight:600;
    background:var(--gold); color:var(--navy); transition:.15s; white-space:nowrap;
  }
  .btn:hover{background:var(--gold-soft)}
  .btn:active{transform:translateY(1px)}
  .btn.full{width:100%; padding:13px}
  .btn.ghost{background:transparent; border:1px solid var(--line); color:var(--ink)}
  .btn.ghost:hover{border-color:var(--gold); background:rgba(201,162,75,.06)}
  .btn.sm{padding:7px 12px; font-size:12.5px}
  .btn.danger{background:transparent; border:1px solid rgba(224,105,122,.4); color:var(--bad)}
  .btn.danger:hover{background:rgba(224,105,122,.1)}
  /* alias utilisés par le module Réunions */
  .fld{display:block; margin-bottom:12px}
  .fld>span{display:block; font-size:11px; letter-spacing:.5px; color:var(--ink-dim); margin-bottom:6px}
  .inp{width:100%; padding:11px 13px; background:var(--navy3); color:var(--ink); border:1px solid var(--line2); border-radius:10px; outline:none; transition:.15s; font-family:inherit; font-size:14px}
  .inp:focus{border-color:var(--gold)}
  .btn-primary{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 16px; border-radius:10px; font-size:14px; font-weight:600; background:var(--gold); color:var(--navy); transition:.15s; white-space:nowrap; cursor:pointer; border:0}
  .btn-primary:hover{background:var(--gold-soft)}
  .btn-primary:active{transform:translateY(1px)}
  .btn-ghost{display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:10px 14px; border-radius:10px; font-size:13.5px; font-weight:600; background:transparent; border:1px solid var(--line); color:var(--ink); transition:.15s; white-space:nowrap; cursor:pointer}
  .btn-ghost:hover{border-color:var(--gold); background:rgba(201,162,75,.06)}
  .login-err{color:var(--bad); font-size:12.5px; margin-top:10px; min-height:16px; text-align:center}
  .login-hint{margin-top:20px; padding-top:16px; border-top:1px solid var(--line2); font-size:11.5px; color:var(--ink-faint); text-align:center; line-height:1.7}

  /* ---------- APP SHELL ---------- */
  #app{display:none; min-height:100vh; grid-template-columns:230px 1fr}
  .sidebar{
    background:var(--navy2); border-right:1px solid var(--line2);
    padding:22px 16px; display:flex; flex-direction:column; gap:4px;
    position:sticky; top:0; height:100vh; min-height:0;
  }
  .side-brand{padding:6px 8px 18px; border-bottom:1px solid var(--line2); margin-bottom:14px; flex:none; text-align:center}
  /* Aperçu SEO Google */
  .g-prev{background:#fff;border-radius:10px;padding:14px 16px;border:1px solid var(--line2)}
  .g-prev .g-url{color:#202124;font-size:12px;margin-bottom:3px}
  .g-prev .g-title{color:#1a0dab;font-size:18px;line-height:1.3;margin-bottom:3px;font-family:Arial,sans-serif}
  .g-prev .g-desc{color:#4d5156;font-size:13px;line-height:1.5;font-family:Arial,sans-serif}
  /* Aperçu réseaux sociaux (Open Graph) */
  .og-prev .og-card{border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:var(--navy3);max-width:480px}
  .og-prev .og-img{height:200px;background:var(--navy2);display:flex;align-items:center;justify-content:center;overflow:hidden}
  .og-prev .og-img img{width:100%;height:100%;object-fit:cover}
  .og-prev .og-body{padding:10px 14px}
  .og-prev .og-dom{font-size:11px;text-transform:uppercase;color:var(--ink-faint);letter-spacing:.5px}
  .og-prev .og-t{font-size:15px;font-weight:600;margin:2px 0}
  .og-prev .og-d{font-size:12.5px;color:var(--ink-dim)}
  /* Infos système */
  .sys-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 16px;font-size:13.5px;align-items:baseline}
  .sys-grid .sys-k{color:var(--ink-faint);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
  .sys-grid .sys-v{color:var(--ink)}
  /* Calcul RH */
  .rh-table{width:100%;border-collapse:collapse;font-size:13.5px}
  .rh-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-faint);padding:6px 8px;border-bottom:1px solid var(--line2)}
  .rh-table td{padding:7px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}
  .rh-table tfoot td{border-top:2px solid var(--line);border-bottom:0;padding-top:10px}
  .rh-in{width:90px;padding:7px 9px}
  .rh-calc{color:var(--gold-soft);font-weight:600;white-space:nowrap}
  .rh-scenarios{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
  .rh-scn{background:var(--navy3);border:1px solid var(--line2);border-radius:12px;padding:14px}
  .rh-scn.good{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
  .rh-scn-p{font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
  .rh-scn-ca{font-size:20px;font-weight:700;color:var(--ink)}
  .rh-scn-c{font-size:12.5px;color:var(--gold-soft);margin-top:3px}
  /* Pointage sécurité */
  .sec-chips{display:flex;flex-wrap:wrap;gap:8px}
  .sec-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);font-size:13px;transition:.12s}
  .sec-chip:hover{color:var(--ink);border-color:var(--line)}
  .sec-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--ink-faint)}
  .sec-chip.present{color:var(--ink);border-color:var(--ok)}
  .sec-chip.present .dot{background:var(--ok);box-shadow:0 0 0 3px rgba(79,191,139,.18)}
  .sec-chip .st{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--ok)}
  .sec-chip.manage{cursor:default}
  .sec-mini{margin-left:4px;width:22px;height:22px;border-radius:6px;background:var(--navy2);border:1px solid var(--line2);color:var(--ink-dim);font-size:11px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:.12s}
  .sec-mini:hover{color:var(--ink);border-color:var(--line)}
  .sec-mini.del:hover{color:#fff;background:var(--bad);border-color:var(--bad)}
  .sec-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
  .sec-actions .btn{padding:18px;font-size:16px;font-weight:700}
  .sec-actions .sec-in{background:var(--ok);color:#fff}
  .sec-actions .sec-out{background:var(--bad);color:#fff}
  .sec-tag{font-size:11px;padding:3px 9px;border-radius:999px;font-weight:600}
  .sec-tag.in{background:rgba(79,191,139,.16);color:var(--ok)}
  .sec-tag.out{background:rgba(224,105,122,.16);color:var(--bad)}
  .brand-logo{width:150px; max-width:100%; display:block; margin:0 auto}
  .hop-logo{width:62px; display:block; margin:8px auto 0; opacity:.95}
  .hop-logo-login{width:120px; display:block; margin:6px auto 4px}
  .hop-acro{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px;font-size:11px;letter-spacing:1px;color:var(--ink-faint);text-transform:uppercase}
  .hop-acro b{color:var(--gold);font-weight:700}
  .hop-acro .sep{color:var(--line)}
  .brand-light{display:none}
  html[data-theme="light"] .brand-dark{display:none}
  html[data-theme="light"] .brand-light{display:block}
  .side-brand .b1{font-family:var(--f-disp); font-size:22px; letter-spacing:.5px}
  .side-brand .b1 i{color:var(--gold); font-style:normal}
  .side-brand .b2{font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--ink-faint); margin-top:2px}
  #nav{flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; display:flex; flex-direction:column; gap:4px; -webkit-overflow-scrolling:touch; scrollbar-width:thin}
  #nav::-webkit-scrollbar{width:6px}
  #nav::-webkit-scrollbar-thumb{background:var(--line2); border-radius:99px}
  .nav-item{
    display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:10px;
    color:var(--ink-dim); font-size:14px; transition:.13s; text-align:left; width:100%; flex:none;
    box-sizing:border-box; text-decoration:none;
  }
  .nav-item:hover{background:var(--navy3); color:var(--ink)}
  .nav-item.active{background:linear-gradient(90deg,rgba(201,162,75,.16),transparent); color:var(--ink); box-shadow:inset 2px 0 0 var(--gold)}
  .nav-item .ic{width:18px; text-align:center; font-size:15px; opacity:.85}
  .msg-badge{display:inline-block;min-width:18px;height:18px;line-height:18px;padding:0 5px;margin-left:auto;border-radius:9px;background:#E0697A;color:#fff;font-size:11px;font-weight:700;text-align:center}
  .nav-item{position:relative}
  .nav-spacer{display:none}
  .nav-foot{border-top:1px solid var(--line2); padding-top:12px; margin-top:8px; flex:none}
  .copyright{text-align:center;font-size:9.5px;color:var(--ink-faint);margin-top:10px;padding-top:8px;border-top:1px solid var(--line2);letter-spacing:.3px}
  .who{padding:6px 10px; margin-bottom:8px}
  .who .name{font-size:13.5px; font-weight:600}
  .who .role{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); margin-top:2px}

  .main{padding:26px 30px 60px; max-width:1280px; width:100%}
  .topbar{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; flex-wrap:wrap}
  .topbar-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .tb-icon{position:relative;background:var(--navy2);border:1px solid var(--line2);color:var(--ink);width:38px;height:38px;border-radius:10px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .tb-icon:hover{border-color:var(--gold)}
  .tb-badge{position:absolute;top:-5px;right:-5px;background:var(--bad);color:#fff;font-size:10px;font-weight:800;border-radius:20px;padding:1px 5px;min-width:16px;text-align:center}
  /* Recherche globale */
  .gs-bg{display:none;position:fixed;inset:0;background:rgba(6,12,22,.7);z-index:400;padding-top:8vh;justify-content:center}
  .gs-bg.show{display:flex}
  .gs-box{width:min(600px,92vw);height:max-content;max-height:80vh;background:var(--navy2);border:1px solid var(--line2);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.5)}
  .gs-input{width:100%;background:var(--navy3);border:none;border-bottom:1px solid var(--line);color:var(--ink);padding:16px 18px;font-size:16px;outline:none}
  .gs-results{overflow-y:auto;max-height:60vh}
  .gs-hint{padding:18px;color:var(--ink-dim);font-size:13px;text-align:center}
  .gs-row{display:flex;align-items:center;gap:12px;padding:11px 16px;cursor:pointer;border-bottom:1px solid var(--line)}
  .gs-row:hover{background:var(--navy3)}
  .gs-ic{font-size:18px;flex:0 0 auto}
  .gs-main{flex:1;min-width:0;display:flex;flex-direction:column}
  .gs-title{font-weight:600;font-size:14px}
  .gs-sub{font-size:12px;color:var(--ink-dim)}
  .gs-type{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--gold);background:var(--navy3);border:1px solid var(--line);border-radius:20px;padding:2px 8px}
  /* Notifications */
  .notif-bg{display:none;position:fixed;inset:0;background:rgba(6,12,22,.55);z-index:400;justify-content:flex-end}
  .notif-bg.show{display:flex}
  .notif-panel{width:min(400px,92vw);background:var(--navy2);border-left:1px solid var(--line2);height:100%;display:flex;flex-direction:column}
  .notif-head{display:flex;align-items:center;gap:8px;padding:16px 18px;border-bottom:1px solid var(--line);font-weight:700}
  .notif-body{overflow-y:auto;flex:1}
  .notif-empty{padding:30px 18px;text-align:center;color:var(--ok);font-size:14px}
  .notif-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer}
  .notif-row:hover{background:var(--navy3)}
  .nf-ic{font-size:18px;flex:0 0 auto}
  .nf-main{flex:1;min-width:0;display:flex;flex-direction:column}
  .nf-mod{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-dim)}
  .nf-msg{font-size:13.5px;font-weight:500}
  .nf-arrow{color:var(--ink-faint);font-size:18px}
  .notif-row.nf-bad{border-left:3px solid var(--bad)}
  .notif-row.nf-warn{border-left:3px solid var(--warn,#facc15)}
  .notif-row.nf-info{border-left:3px solid var(--gold)}
  /* Favoris */
  .fav-menu{display:none;position:fixed;top:64px;right:20px;width:min(300px,92vw);max-height:70vh;overflow-y:auto;background:var(--navy2);border:1px solid var(--line2);border-radius:14px;z-index:401;box-shadow:0 16px 44px rgba(0,0,0,.45);padding:8px}
  .fav-menu.show{display:block}
  .fav-head{font-weight:700;font-size:13px;padding:6px 8px}
  .fav-empty{color:var(--ink-dim);font-size:12px;padding:8px}
  .fav-sep{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-dim);padding:10px 8px 4px;border-top:1px solid var(--line);margin-top:6px}
  .fav-row{display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:8px;cursor:pointer}
  .fav-row:hover{background:var(--navy3)}
  .fav-row.dim{opacity:.85}
  .fav-ic{font-size:15px;flex:0 0 auto}
  .fav-lbl{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fav-star{background:none;border:none;color:var(--gold);font-size:15px;cursor:pointer;flex:0 0 auto}
  .fav-star:not(.on){color:var(--ink-faint)}
  .fav-others{max-height:34vh;overflow-y:auto}
  .page-title{font-family:var(--f-disp); font-size:26px; letter-spacing:.3px}
  .page-sub{font-size:13px; color:var(--ink-dim); margin-top:3px}
  .topbar-right{display:flex; align-items:center; gap:10px; flex-wrap:wrap}

  .estab-pills{display:flex; gap:6px; flex-wrap:wrap}
  .pill{
    padding:7px 13px; border-radius:999px; font-size:12.5px; font-weight:600;
    background:var(--navy3); color:var(--ink-dim); border:1px solid var(--line2); transition:.13s;
  }
  .pill:hover{color:var(--ink)}
  .pill.on{background:var(--gold); color:var(--navy); border-color:var(--gold)}

  .day-chip{min-width:30px;padding:5px 8px;margin:2px;border-radius:8px;font-size:12px;font-weight:600;
    background:var(--navy3);color:var(--ink-dim);border:1px solid var(--line2);cursor:pointer;transition:.12s}
  .day-chip:hover{color:var(--ink);border-color:var(--gold)}
  .day-chip.on{background:var(--gold);color:var(--navy);border-color:var(--gold)}

  .card{background:var(--bg-card); border:1px solid var(--line2); border-radius:var(--r); padding:18px}
  .card.gold{border-color:var(--line)}
  .grid{display:grid; gap:16px}

  /* motivation banner */
  .moto{
    position:relative; overflow:hidden; border:1px solid var(--line);
    border-radius:var(--r); padding:20px 22px; margin-bottom:20px;
    background:linear-gradient(120deg,var(--navy3),var(--navy2));
  }
  .moto::after{content:""; position:absolute; right:-40px; top:-40px; width:180px; height:180px;
    background:radial-gradient(circle,rgba(201,162,75,.18),transparent 65%)}
  .moto .lbl{font-size:10.5px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:8px}
  .moto .msg{font-family:var(--f-disp); font-size:19px; line-height:1.45; max-width:760px}
  .moto .goal{margin-top:10px; font-size:13px; color:var(--rose)}
  .moto .meta{margin-top:8px; font-size:11.5px; color:var(--ink-faint)}

  /* stat tiles */
  .stats-row{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px}
  .stat{background:var(--bg-card); border:1px solid var(--line2); border-radius:var(--r); padding:16px 18px}
  .stat .k{font-size:11px; letter-spacing:1.8px; text-transform:uppercase; color:var(--ink-dim)}
  .stat .v{font-family:var(--f-disp); font-size:32px; margin-top:6px; letter-spacing:.5px}
  .stat .v small{font-size:15px; color:var(--ink-faint)}
  .ring-wrap{display:flex; align-items:center; gap:16px}
  .ring{--p:0; width:70px; height:70px; border-radius:50%; flex:none;
    background:conic-gradient(var(--gold) calc(var(--p)*1%), var(--navy3) 0);
    display:flex; align-items:center; justify-content:center; position:relative}
  .ring::before{content:""; position:absolute; inset:8px; border-radius:50%; background:var(--navy2)}
  .ring span{position:relative; font-family:var(--f-disp); font-size:18px}

  /* category chips */
  .filters{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:16px}
  .chip{padding:7px 13px; border-radius:999px; font-size:12.5px; background:var(--navy3); color:var(--ink-dim); border:1px solid var(--line2); transition:.12s}
  /* ---- Messagerie : éditeur enrichi & bulles ---- */
  .msg-tb{background:transparent;border:none;color:var(--ink);font-size:14px;min-width:30px;height:30px;border-radius:7px;cursor:pointer;padding:0 7px;line-height:1}
  .msg-tb:hover{background:var(--navy2)}
  .msg-tb-sep{width:1px;align-self:stretch;background:var(--line2);margin:2px 3px}
  .msg-editor.is-empty:before{content:attr(data-ph);color:var(--ink-dim);opacity:.6;pointer-events:none}
  .msg-editor:focus{border-color:var(--gold-soft)}
  .msg-editor ul,.msg-editor ol{margin:4px 0 4px 20px;padding-left:6px}
  .msg-html ul,.msg-html ol{margin:4px 0 4px 20px;padding-left:6px}
  .msg-html a{color:#5B8DEF;text-decoration:underline}
  .msg-html p{margin:4px 0}
  .msg-thread:hover{filter:brightness(1.08)}
  /* ---- Tableau de bord : sections réorganisables ---- */
  .dash-sec{margin-bottom:18px;border-radius:14px;transition:box-shadow .12s,transform .08s}
  .dash-sec.editing{outline:1px dashed var(--line2);outline-offset:4px;padding:6px;background:rgba(201,162,75,.03)}
  .dash-sec.dragging{opacity:.45}
  .dash-sec.drop-target{box-shadow:0 0 0 2px var(--gold-soft) inset;border-radius:14px}
  .dash-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .dash-title{font-family:var(--f-disp);font-size:15px;color:var(--gold-soft);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dash-handle{cursor:grab;font-size:18px;color:var(--ink-faint);user-select:none;padding:0 2px}
  .dash-handle:active{cursor:grabbing}
  .dash-collapse{background:transparent;border:none;color:var(--ink-dim);font-size:16px;cursor:pointer;width:28px;height:28px;border-radius:7px;line-height:1}
  .dash-collapse:hover{background:var(--navy3);color:var(--ink)}
  .dash-move{background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);font-size:11px;cursor:pointer;width:26px;height:26px;border-radius:6px;line-height:1}
  .dash-move:hover{color:var(--gold-soft);border-color:var(--gold-soft)}
  /* ---- Analyse des ventes ---- */
  .sales-table{width:100%;border-collapse:collapse;font-size:13px}
  .sales-table th{padding:8px 10px;border-bottom:2px solid var(--line2);color:var(--ink-dim);font-weight:600;position:sticky;top:0;background:var(--navy2)}
  .sales-table th:hover{color:var(--gold-soft)}
  .sales-table td{padding:7px 10px;border-bottom:1px solid var(--line2)}
  .sales-table tbody tr:hover{background:var(--navy3)}
  .sales-table tfoot td{padding:9px 10px}
  .chip:hover{color:var(--ink)}
  .chip.on{background:var(--navy3); color:var(--navy); font-weight:600}
  .chip.on[data-cat="ouverture"]{background:#5BA6E0; border-color:#5BA6E0}
  .chip.on[data-cat="midi"]{background:var(--gold); border-color:var(--gold)}
  .chip.on[data-cat="soir"]{background:#9B7BD4; border-color:#9B7BD4}
  .chip.on[data-cat="fermeture"]{background:var(--rose); border-color:var(--rose)}
  .chip.on[data-cat="autres"]{background:#7FB89A; border-color:#7FB89A}
  .chip.on[data-cat="all"]{background:var(--ink); border-color:var(--ink)}

  .ctrl{padding:9px 12px; background:var(--navy3); color:var(--ink); border:1px solid var(--line2); border-radius:9px; outline:none}
  .ctrl:focus{border-color:var(--gold)}

  /* mission list */
  .cat-block{margin-bottom:22px}
  .cat-head{display:flex; align-items:center; gap:10px; margin-bottom:10px}
  .cat-head .dot{width:9px; height:9px; border-radius:50%}
  .cat-head h3{font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink)}
  .cat-head .count{font-size:11.5px; color:var(--ink-faint)}
  .dot-ouverture{background:#5BA6E0}.dot-midi{background:var(--gold)}.dot-soir{background:#9B7BD4}.dot-fermeture{background:var(--rose)}.dot-autres{background:#7FB89A}

  .mission{
    display:flex; align-items:center; gap:14px; padding:13px 15px; border-radius:12px;
    background:var(--bg-card); border:1px solid var(--line2); margin-bottom:8px; transition:.13s;
  }
  .mission:hover{border-color:var(--line)}
  .mission.done{opacity:.55}
  .mission.done .m-name{text-decoration:line-through; text-decoration-color:var(--ink-faint)}
  .checkbox{
    width:24px; height:24px; border-radius:7px; border:2px solid var(--ink-faint); flex:none;
    display:flex; align-items:center; justify-content:center; transition:.13s; color:transparent; font-size:14px; font-weight:700;
  }
  .checkbox:hover{border-color:var(--gold)}
  .mission.done .checkbox{background:var(--ok); border-color:var(--ok); color:var(--navy)}
  .m-body{flex:1; min-width:0}
  .m-name{font-size:14.5px; font-weight:600}
  .m-meta{display:flex; gap:12px; flex-wrap:wrap; margin-top:4px; font-size:12px; color:var(--ink-dim)}
  .m-meta .tag{display:inline-flex; align-items:center; gap:5px}
  .m-assignee{padding:3px 9px; border-radius:999px; background:var(--navy3); font-size:11.5px; color:var(--rose); border:1px solid var(--line2)}
  .m-dur{color:var(--gold-soft)}
  .m-actions{display:flex; gap:6px; opacity:0; transition:.13s}
  .mission:hover .m-actions{opacity:1}
  .icon-btn{width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:var(--navy3); color:var(--ink-dim); font-size:14px; transition:.12s}
  .icon-btn:hover{color:var(--ink); background:var(--navy)}
  .icon-btn.del:hover{color:var(--bad)}
  .done-by{font-size:11px; color:var(--ink-faint); margin-top:3px}

  .empty{padding:50px 20px; text-align:center; color:var(--ink-faint)}
  .empty .big{font-size:40px; margin-bottom:10px; opacity:.4}
  .empty .t{font-size:15px; color:var(--ink-dim)}

  /* tables */
  table{width:100%; border-collapse:collapse}
  th{text-align:left; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--ink-dim); padding:10px 12px; border-bottom:1px solid var(--line2)}
  td{padding:11px 12px; font-size:13.5px; border-bottom:1px solid var(--line2)}
  tr:last-child td{border-bottom:none}
  tr:hover td{background:rgba(255,255,255,.015)}
  .bar{height:7px; border-radius:99px; background:var(--navy3); overflow:hidden; min-width:80px}
  .bar i{display:block; height:100%; background:linear-gradient(90deg,var(--gold),var(--gold-soft))}
  .badge{padding:3px 9px; border-radius:999px; font-size:11px; font-weight:600}
  .badge.ok{background:rgba(79,191,139,.15); color:var(--ok)}
  .badge.bad{background:rgba(224,105,122,.15); color:var(--bad)}
  .badge.warn{background:rgba(230,180,80,.15); color:var(--warn)}
  .badge.role{background:var(--navy3); color:var(--gold); border:1px solid var(--line2)}

  .section-title{font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); margin:6px 0 14px}

  /* modal */
  .modal-bg{position:fixed; inset:0; background:rgba(2,5,15,.7); backdrop-filter:blur(4px); display:none; align-items:center; justify-content:center; z-index:320; padding:20px}
  .modal-bg.show{display:flex}
  .modal{background:var(--navy2); border:1px solid var(--line); border-radius:18px; width:100%; max-width:480px; padding:26px; max-height:90vh; overflow:auto}
  .modal.modal-xl{max-width:min(1360px,94vw)}
/* ---- Réservations ---- */
.rsv-c{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;
  padding:10px 12px;margin-bottom:8px;cursor:grab}
.rsv-c:active{cursor:grabbing}
.rsv-chip{background:var(--navy2);border:1px solid var(--line2);border-left-width:4px;
  border-radius:8px;padding:5px 10px;font-size:12.5px;cursor:grab;white-space:nowrap}
.rsv-salle{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.rsv-t{background:var(--navy2);border:2px dashed var(--line2);border-radius:12px;
  padding:10px;min-height:96px;cursor:pointer;transition:border-color .15s,background .15s}
.rsv-t.on{border-style:solid;background:var(--bg-card)}
.rsv-t.over{border-color:var(--gold,#C9A24B);background:rgba(201,162,75,.12)}
.rsv-t.trop{border-color:var(--bad)}
.rsv-t-n{font-size:15px;font-weight:700}
.rsv-t-c{font-size:11px;color:var(--ink-dim)}
.rsv-t-r{margin-top:6px;font-size:11.5px;line-height:1.5}
.rsv-t-warn{margin-top:5px;font-size:10.5px;color:var(--bad)}
.rsv-f-rond{border-radius:50%;display:flex;flex-direction:column;justify-content:center;
  align-items:center;text-align:center;aspect-ratio:1}
.rsv-f-rect{grid-column:span 2}
.rsv-f-banquette{border-radius:12px 12px 4px 4px}
.rsv-plan{position:relative;min-height:460px;background:
  linear-gradient(var(--line2) 1px,transparent 1px) 0 0/28px 28px,
  linear-gradient(90deg,var(--line2) 1px,transparent 1px) 0 0/28px 28px,
  var(--navy2);border:1px solid var(--line2);border-radius:12px;overflow:auto}
.rsv-pt{position:absolute;width:88px;min-height:66px;background:var(--navy2);
  border:2px solid var(--line2);border-radius:10px;padding:6px;cursor:pointer;
  display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;
  transition:border-color .15s,transform .1s;user-select:none}
.rsv-pt.on{background:var(--bg-card)}
.rsv-pt.over{border-color:var(--gold,#C9A24B);transform:scale(1.06)}
.rsv-pt.trop{border-color:var(--bad)}
.rsv-pt.rsv-f-rond{border-radius:50%;width:80px;height:80px;min-height:80px}
.rsv-pt.rsv-f-rect{width:130px}
/* Le contenu reçoit la rotation inverse : la table s'incline, le numéro et
   le nombre de places restent lisibles. */
.rsv-pt-in{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;max-width:100%}
.rsv-pt-n{font-size:15px;font-weight:700;line-height:1.1}
.rsv-pt-c{font-size:10px;color:var(--ink-dim)}
.rsv-pt-r{font-size:10px;margin-top:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rsv-pt-t{font-size:9.5px;opacity:.85;margin-top:1px}
.rsv-pt-x{font-size:12px;margin-top:1px}
.rsv-pt.conflit{border-color:var(--bad);animation:rsvPulse 1.6s ease-in-out infinite}
@keyframes rsvPulse{0%,100%{box-shadow:0 0 0 0 rgba(199,64,90,.35)}50%{box-shadow:0 0 0 6px rgba(199,64,90,0)}}
.rsv-plan-w{overflow:auto;border-radius:12px;max-height:72vh}
.rsv-plan-c{position:relative;transform-origin:0 0;width:100%;height:100%;min-height:440px}
/* Quand la salle a des dimensions propres, elles priment sur le 100 % : sans
   cela le plan se limitait à la largeur de l'écran et les tables posées à
   droite semblaient tomber dans le vide. */
.rsv-plan-c.dim{width:auto;height:auto}
.rsv-zoom{display:flex;gap:4px;align-items:center;background:var(--navy2);
  border:1px solid var(--line2);border-radius:9px;padding:3px 5px}
.rsv-f{max-height:calc(100vh - 210px);overflow:auto;padding-right:2px}
.rsv-f .field{margin-bottom:7px}
.rsv-f label{margin-bottom:2px;font-size:10.5px}
.rsv-f .ctrl{padding:7px 10px;font-size:14px}
.ra-lu{margin:-4px 0 9px;padding:7px 11px;border-radius:9px;font-size:12.5px;
  background:rgba(46,158,107,.14);border:1px solid var(--ok);color:var(--ink)}
.rsv-f-g4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:9px}
.rsv-pax{display:flex;gap:5px;flex-wrap:wrap}
.rsv-pax-b{width:42px;height:42px;border-radius:11px;background:var(--navy2);
  border:1px solid var(--line2);color:var(--ink);font-size:16px;font-weight:600;
  font-family:inherit;cursor:pointer;transition:transform .08s}
.rsv-pax-b:hover{border-color:var(--gold)}
.rsv-pax-b:active{transform:scale(.93)}
.rsv-pax-b.on{background:var(--gold);color:#1A1200;border-color:var(--gold);font-weight:800}
.rsv-pax-b.autre{width:auto;padding:0 12px;font-size:14px;color:var(--ink-dim)}
.rsv-resume{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;font-size:12.5px}
.rsv-resume span{background:var(--bg-card);border:1px solid var(--line2);
  border-radius:20px;padding:4px 12px;color:var(--ink-faint)}
.rsv-resume span.ok{background:rgba(201,162,75,.14);border-color:var(--gold);color:var(--ink)}
.rsv-resume.pret span.ok{background:rgba(46,158,107,.16);border-color:var(--ok);color:var(--ink)}
@media (max-width:820px){ .rsv-f-g4{grid-template-columns:1fr 1fr} }
.rsv-f .rsv-cren{gap:4px}
.rsv-f .rsv-cr-b{padding:6px 9px;font-size:13px}
.rsv-f-g{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rsv-f-g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.rsv-f-g2b{display:grid;grid-template-columns:1fr 130px;gap:10px}
/* Les libellés tiennent sur une ligne : « Couverts * » passait à la ligne et
   décalait la colonne, cassant l'alignement des champs. */
.rsv-f label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.rsv-f .field{display:flex;flex-direction:column}
.rsv-f .field .ctrl{width:100%}
@media (max-width:620px){ .rsv-f-g,.rsv-f-g3{grid-template-columns:1fr 1fr}
  .rsv-f-g2b{grid-template-columns:1fr 110px} }
.rsv-cren{display:flex;gap:5px;flex-wrap:wrap}
.rsv-cr-b{background:var(--navy2);border:1px solid var(--line2);color:var(--ink);
  border-radius:8px;padding:8px 11px;font-size:13.5px;font-family:inherit;cursor:pointer}
.rsv-cr-b:hover{border-color:var(--gold)}
.rsv-cr-b.on{background:var(--gold);color:#1A1200;border-color:var(--gold);font-weight:700}
.rsv-cr-b.autre{color:var(--ink-dim);font-size:12.5px}
.rsv-dc{position:absolute;display:flex;align-items:center;justify-content:center;
  font-size:13px;color:var(--ink-dim);background:rgba(255,255,255,.04);
  border:1px dashed var(--line2);border-radius:8px;pointer-events:auto;user-select:none}
.rsv-d-poteau_r{border-radius:50%;background:var(--navy3)}
.rsv-d-poteau_c{background:var(--navy3)}
.rsv-d-mur,.rsv-d-porte,.rsv-d-passage{background:var(--navy3);border-style:solid}
.rsv-d-bar,.rsv-d-accueil,.rsv-d-cuisine{background:rgba(201,162,75,.12);border-color:rgba(201,162,75,.4)}
.rsv-cr{background:var(--navy2);border:1px solid var(--line2);border-radius:8px;
  padding:5px 9px;font-size:11.5px;display:flex;gap:6px;align-items:baseline}
.rsv-cr.plein{border-color:var(--bad);background:rgba(192,91,91,.12)}
/* Pendant un placement, les tables se signalent comme cibles. */
/* Plan de salle en fenêtre : les tables disent leur état d'un coup d'œil. */
.rsv-plan-modal{overflow:auto;max-height:52vh;border-radius:12px;
  background:var(--bg);border:1px solid var(--line2);padding:8px}
.rsv-pl-t{position:absolute;display:flex;align-items:center;justify-content:center;
  text-align:center;border-radius:10px;border:2px solid;cursor:pointer;
  transition:transform .1s;user-select:none}
.rsv-pl-t:hover{transform:scale(1.07)!important;z-index:6}
.rsv-pl-t.libre{background:rgba(46,158,107,.20);border-color:var(--ok)}
.rsv-pl-t.prise{background:rgba(201,162,75,.22);border-color:var(--gold)}
.rsv-pl-t.petite{background:rgba(199,64,90,.16);border-color:var(--bad)}
.rsv-pl-t.ici{background:var(--gold);border-color:var(--gold);color:#1A1200}
.rsv-pl-n{font-size:14px;font-weight:700;line-height:1.1}
.rsv-pl-c{font-size:10px;opacity:.75;line-height:1.2}
.dg-tile{position:relative}
.dg-tile-grid.ranger .dg-tile{outline:1px dashed var(--line);cursor:default}
.dg-tile-nav{display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:8px;padding-top:7px;border-top:1px solid var(--line2)}
.dg-fl{width:30px;height:26px;border-radius:7px;border:1px solid var(--line);
  background:var(--bg);color:var(--ink);font-size:15px;cursor:pointer;line-height:1}
.dg-fl:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}
.dg-fl:disabled{opacity:.3;cursor:default}
.dg-rang{font-size:11px;color:var(--ink-dim);min-width:16px;text-align:center}
.rsv-place-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:11px 14px;margin-bottom:12px;border-radius:12px;
  background:rgba(201,162,75,.14);border:1px solid var(--gold)}
.rsv-pt-cible{cursor:pointer;box-shadow:0 0 0 2px var(--gold) inset}
.rsv-pt-cible:hover{transform:scale(1.06);z-index:5}
.rsv-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;
  border-radius:9px;background:var(--gold);color:#1A1200;font-size:11px;font-weight:800;
  line-height:18px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.dgr-l{display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:4px 0;font-size:12.5px;border-bottom:1px solid var(--line2)}
.dgr-l:last-of-type{border-bottom:0}
.dgr-e{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dgr-c{display:flex;align-items:baseline;gap:5px;flex-shrink:0}
.dgr-c b{font-size:14px}
.dgr-cap{font-size:10px;color:var(--ink-faint)}
.dgr-d{font-size:10.5px;color:var(--ink-dim)}
.dgr-att{background:var(--gold);color:#1A1200;border-radius:9px;padding:0 6px;
  font-size:10px;font-weight:700}
.dgr-v{color:var(--ink-faint)}
.dgr-f{font-size:10.5px;color:var(--bad)}
.dgr-tot{margin-top:7px;padding-top:6px;border-top:1px solid var(--line2);
  font-size:11.5px;color:var(--ink-dim)}
.rsv-sem{width:100%;border-collapse:collapse;font-size:12.5px}
.rsv-sem th,.rsv-sem td{border:1px solid var(--line2);padding:5px 4px;text-align:center}
.rsv-sem thead th{font-size:10.5px;color:var(--ink-dim);font-weight:600;line-height:1.3;padding:4px 3px}
.rsv-sem thead th.auj{background:rgba(201,162,75,.18);color:var(--gold)}
.rsv-sem th.etab{text-align:left;font-size:11.5px;font-weight:600;white-space:nowrap;
  padding-right:9px;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.rsv-sem td.plein{cursor:pointer;position:relative;font-size:13px}
.rsv-sem td.plein:hover{outline:2px solid var(--gold);outline-offset:-2px}
.rsv-sem td.vide{color:var(--ink-faint)}
.rsv-sem td.ferme{font-size:10px;font-weight:600;background:var(--bg-card)}
.pastille{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;
  background:var(--gold)}
.rsv-etab{display:flex;gap:13px;align-items:center;margin-bottom:14px;
  padding:11px 14px;background:var(--navy2);border:1px solid var(--line2);border-radius:12px}
.rsv-etab img{width:46px;height:46px;object-fit:contain;border-radius:9px;background:#fff;padding:4px}
.rsv-etab-n{font-size:15px;font-weight:700}
.rsv-etab-c{font-size:12px;color:var(--ink-dim);margin-top:2px}
.rsv-duo{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:14px;align-items:start}
@media (max-width:900px){ .rsv-duo{grid-template-columns:1fr} }
.rsv-duo-l{max-height:70vh;overflow:auto}
.rsv-l{display:flex;gap:10px;align-items:center;padding:9px 11px;margin-bottom:6px;
  background:var(--navy2);border:1px solid var(--line2);border-left:4px solid var(--c);
  border-radius:10px;cursor:pointer}
.rsv-l:hover{border-color:var(--gold)}
.rsv-l.suiv{box-shadow:0 0 0 2px var(--gold) inset}
.rsv-l-h{font-size:15px;font-weight:700;min-width:46px}
.rsv-l-c{flex:1;min-width:0;font-size:13px}
.rsv-l-s{font-size:11px;color:var(--c);margin-top:1px}
.rsv-legende{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;font-size:11px;color:var(--ink-dim)}
.rsv-legende span{display:flex;gap:5px;align-items:center}
.rsv-legende i{width:10px;height:10px;border-radius:3px;display:inline-block}
/* Mon planning : la semaine tient sur sept colonnes. En dessous de 1100 px
   les colonnes seraient illisibles, on passe à un défilement latéral plutôt
   qu'à un retour à la ligne qui coupait la semaine en 5 + 2. */
@media (max-width:1100px){
  .mp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .mp-grid{min-width:900px}
}
@media (max-width:760px){
  .mp-grid{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px}
}
/* Service planifié dans un autre établissement : visible mais inactif. */
.pl-ailleurs{opacity:.42;border-style:dashed !important;cursor:not-allowed;
  background:rgba(138,147,166,.12) !important}
.pl-ailleurs .pl-sh-h{font-size:10.5px;text-transform:uppercase;letter-spacing:.3px}
.pl-conflit{opacity:.85;border-color:var(--bad) !important;
  background:rgba(192,91,91,.16) !important}
.pl-conflit .pl-sh-h{color:var(--bad)}
.pl-renfort{display:inline-block;font-size:9.5px;padding:1px 6px;border-radius:20px;margin-left:4px;
  background:rgba(91,141,239,.18);color:#9DBBF5;vertical-align:middle}
.pl-freelance{display:inline-block;font-size:9.5px;padding:1px 6px;border-radius:20px;margin-left:4px;
  background:rgba(201,162,75,.18);color:var(--gold,#C9A24B);vertical-align:middle}
.pl-pole{display:inline-block;font-size:9.5px;padding:1px 6px;border-radius:20px;margin-left:4px;
  background:rgba(138,147,166,.16);color:var(--ink-dim);vertical-align:middle}
/* Les tableaux larges — prix du mois, comparatifs — défilent latéralement
   plutôt que d'être tronqués : la colonne d'écart restait invisible. */
.modal-xl .tbl-large{overflow-x:auto;-webkit-overflow-scrolling:touch}
.modal-xl .tbl-large table{min-width:820px}
  .asr-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px}
  .asr-vignettes{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:12px}
  .asr-vignette{position:relative; border:1px solid var(--line,#e3e3e8); border-radius:10px; overflow:hidden; cursor:pointer;
    background:var(--navy2,#fff); transition:transform .12s ease, box-shadow .12s ease}
  .asr-vignette:hover{transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.14)}
  .asr-drop{border:2px dashed var(--line,#ccc); border-radius:10px; padding:16px; text-align:center;
    font-size:12.5px; color:#8a8a95; cursor:pointer; transition:border-color .12s, background .12s}
  .asr-drop.on{border-color:var(--gold,#C9A24B); background:rgba(201,162,75,.08)}
  .modal h3{font-family:var(--f-disp); font-size:21px; margin-bottom:18px}
  .modal .row2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
  .modal-foot{display:flex; gap:10px; justify-content:flex-end; margin-top:22px}

  .toast{position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--navy3); border:1px solid var(--line); color:var(--ink); padding:13px 20px; border-radius:12px; font-size:13.5px; opacity:0; transition:.25s; z-index:340; box-shadow:0 12px 40px rgba(0,0,0,.4)}
  .toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

  .page{display:none}
  .page.active{display:block}


  .logo-img{display:block; height:auto}
  .login-logo{width:200px; margin:0 auto 6px; display:block}
  .side-logo{width:150px; margin:2px 4px 16px; display:block}
  .login-card .brand-sub{margin-top:14px}

  /* ---- v2 components ---- */
  .seg{display:inline-flex;background:var(--navy3);border:1px solid var(--line2);border-radius:9px;padding:3px;gap:2px}
  .seg button{padding:6px 11px;border-radius:7px;font-size:12.5px;color:var(--ink-dim)}
  .seg button.on{background:var(--gold);color:var(--navy);font-weight:600}
  .req-icons{display:inline-flex;gap:5px;margin-left:8px}
  .req-ic{font-size:11px;padding:2px 6px;border-radius:6px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim)}
  .req-ic.photo{color:#5BA6E0}.req-ic.sign{color:var(--gold-soft)}.req-ic.check{color:var(--rose)}
  .m-comment{margin-top:6px;font-size:12px;color:var(--ink-dim);background:var(--navy3);border-left:2px solid var(--gold);padding:6px 10px;border-radius:0 7px 7px 0}
  .pending-check{border-color:rgba(231,164,191,.4)!important;background:linear-gradient(90deg,rgba(231,164,191,.06),transparent)}
  .gbadge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--line2)}
  .gbadge.bronze{background:rgba(176,141,87,.15);color:#CD9B63;border-color:rgba(205,155,99,.3)}
  .gbadge.argent{background:rgba(176,185,198,.15);color:#C6CEDA;border-color:rgba(198,206,218,.3)}
  .gbadge.or{background:rgba(201,162,75,.18);color:var(--gold-soft);border-color:var(--line)}
  .gbadge.elite{background:linear-gradient(120deg,rgba(231,164,191,.2),rgba(201,162,75,.2));color:#fff;border-color:var(--rose)}
  .gbadge.none{color:var(--ink-faint)}
  .ies-ring{--p:0;width:120px;height:120px;border-radius:50%;flex:none;
    background:conic-gradient(var(--gold) calc(var(--p)*1%),var(--navy3) 0);
    display:flex;align-items:center;justify-content:center;position:relative}
  .ies-ring::before{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--navy2)}
  .ies-ring .val{position:relative;text-align:center}
  .ies-ring .val b{font-family:var(--f-disp);font-size:30px;display:block;line-height:1}
  .ies-ring .val small{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-faint)}
  .stars{display:inline-flex;gap:2px}
  .stars button{font-size:20px;color:var(--ink-faint);line-height:1}
  .stars button.on{color:var(--gold)}
  .behav-chip{padding:6px 11px;border-radius:999px;font-size:12px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);cursor:pointer;transition:.12s;display:inline-flex;gap:6px;align-items:center}
  .behav-chip:hover{color:var(--ink)}
  .behav-chip.pos.on{background:rgba(79,191,139,.16);color:var(--ok);border-color:rgba(79,191,139,.35)}
  .behav-chip.neg.on{background:rgba(224,105,122,.16);color:var(--bad);border-color:rgba(224,105,122,.35)}
  .dg-hero{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;background:linear-gradient(120deg,var(--navy3),var(--navy2));border:1px solid var(--line);border-radius:18px;padding:26px 30px;margin-bottom:20px;position:relative;overflow:hidden}
  .dg-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;background:radial-gradient(circle,rgba(201,162,75,.14),transparent 65%)}
  .dg-top{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .dg-top .stat .who2{font-family:var(--f-disp);font-size:22px;margin-top:4px}
  .dg-top .stat .who2 small{font-size:13px;color:var(--gold-soft)}
  .alert-box{background:rgba(224,105,122,.07);border:1px solid rgba(224,105,122,.25);border-radius:var(--r);padding:16px 18px}
  .alert-box .ttl{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--bad);margin-bottom:10px}
  .alert-line{display:flex;gap:9px;align-items:center;padding:6px 0;font-size:13.5px;border-bottom:1px solid var(--line2)}
  .alert-line:last-child{border-bottom:none}
  .alert-line .pip{width:7px;height:7px;border-radius:50%;background:var(--bad);flex:none}
  .alert-line.warn .pip{background:var(--warn)}
  .synth-box{background:linear-gradient(120deg,var(--navy3),var(--navy2));border:1px solid var(--line);border-radius:var(--r);padding:22px;font-family:var(--f-disp);font-size:15.5px;line-height:1.7;color:var(--ink)}
  .synth-box .lbl{font-family:var(--f-body);font-size:10.5px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
  .cat-mgr-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--bg-card);border:1px solid var(--line2);border-radius:10px;margin-bottom:7px}
  .cat-swatch{width:14px;height:14px;border-radius:4px;flex:none}
  .tabbar{display:flex;gap:6px;border-bottom:1px solid var(--line2);margin-bottom:18px;flex-wrap:wrap}
  .tab{padding:9px 14px;font-size:13.5px;color:var(--ink-dim);border-bottom:2px solid transparent;margin-bottom:-1px}
  .tab.on{color:var(--ink);border-bottom-color:var(--gold)}
  .photo-thumb{width:42px;height:42px;border-radius:8px;object-fit:cover;border:1px solid var(--line2)}
  .powers-grid{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px}
  .power-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:var(--navy3);border:1px solid var(--line2);border-radius:9px}
  .switch{width:40px;height:22px;border-radius:999px;background:var(--navy);border:1px solid var(--line2);position:relative;cursor:pointer;flex:none;transition:.15s}
  .switch.on{background:var(--gold);border-color:var(--gold)}
  .switch::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--ink);top:2px;left:2px;transition:.15s}
  .switch.on::after{left:20px;background:var(--navy)}
  .mini-label{font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px}
  .prio-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent}
  .prio-dot{width:7px;height:7px;border-radius:50%}
  .reorder{display:inline-flex;flex-direction:column;gap:1px;margin-right:2px}
  .reorder button{width:22px;height:15px;display:flex;align-items:center;justify-content:center;font-size:9px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);border-radius:5px;cursor:pointer;padding:0;line-height:1}
  .reorder button:hover{color:var(--ink);background:var(--navy)}
  .reorder button:disabled{opacity:.25;cursor:default}
  .prio-seg{display:flex;gap:6px}
  .prio-opt{flex:1;padding:9px;border-radius:9px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);cursor:pointer;text-align:center;font-size:12.5px;font-weight:600;transition:.12s}
  .trend-up{color:var(--ok)}.trend-down{color:var(--bad)}.trend-flat{color:var(--ink-faint)}
  .spark{display:inline-flex;align-items:flex-end;gap:2px;height:28px}
  .spark i{width:8px;background:var(--gold);border-radius:2px 2px 0 0;opacity:.85}

  .hide{display:none !important}
  .muted{color:var(--ink-faint)}
  .flex{display:flex; align-items:center; gap:10px}
  .between{justify-content:space-between}
  .mt{margin-top:16px}

  /* ---------- Ajouts v4 (serveur) ---------- */
  .seg{display:inline-flex;background:var(--navy3);border:1px solid var(--line2);border-radius:10px;padding:3px;gap:3px}
  .seg button{padding:7px 14px;border-radius:8px;font-size:13px;color:var(--ink-dim);font-weight:600}
  .seg button.on{background:var(--gold);color:var(--navy)}
  .prio-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent}
  .prio-dot{width:7px;height:7px;border-radius:50%}
  .reorder{display:inline-flex;flex-direction:column;gap:1px;margin-right:2px}
  .reorder button{width:22px;height:15px;display:flex;align-items:center;justify-content:center;font-size:9px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);border-radius:5px;cursor:pointer;padding:0;line-height:1}
  .reorder button:hover{color:var(--ink);background:var(--navy)}
  .reorder button:disabled{opacity:.25;cursor:default}
  .prio-seg{display:flex;gap:6px}
  .prio-opt{flex:1;padding:9px;border-radius:9px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);cursor:pointer;text-align:center;font-size:12.5px;font-weight:600;transition:.12s}
  .trend-up{color:var(--ok)}.trend-down{color:var(--bad)}.trend-flat{color:var(--ink-faint)}
  .spark{display:inline-flex;align-items:flex-end;gap:2px;height:28px}
  .spark i{width:8px;background:var(--gold);border-radius:2px 2px 0 0;opacity:.85}
  /* météo / fête du jour */
  .daily-bar{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px}
  .daily-chip{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--line2);border-radius:12px;padding:10px 16px}
  .daily-chip .ic{font-size:22px}
  .daily-chip .k{font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-faint)}
  .daily-chip .v{font-size:15px;font-weight:600}
  /* radar */
  .radar-wrap{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
  .radar-legend{display:flex;flex-direction:column;gap:9px;min-width:200px}
  .radar-legend .row{display:flex;align-items:center;gap:10px;font-size:13px}
  .radar-legend .lab{flex:none;width:120px;color:var(--ink-dim)}
  .radar-legend .barwrap{flex:1;height:8px;background:var(--navy3);border-radius:5px;overflow:hidden}
  .radar-legend .barwrap i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-soft))}
  .radar-legend .num{width:42px;text-align:right;font-weight:600;color:var(--gold-soft)}
  /* agenda */
  .agenda-frame{width:100%;height:680px;border:1px solid var(--line2);border-radius:14px;background:#fff}
  /* fichiers */
  .file-card{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--line2);border-radius:12px;background:var(--bg-card);margin-bottom:10px}
  .file-ic{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:var(--navy);flex:none}
  .file-meta{flex:1;min-width:0}
  .file-meta .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .file-meta .s{font-size:11.5px;color:var(--ink-faint)}
  /* idées */
  .idea-card{border:1px solid var(--line2);border-radius:12px;padding:14px 16px;background:var(--bg-card);margin-bottom:12px}
  .idea-topic{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;margin-bottom:6px}
  /* Communication équipes */
  .comm-card{background:var(--navy2);border:1px solid var(--line2);border-left-width:4px;border-radius:12px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:.15s}
  .comm-card:hover{background:var(--navy3);transform:translateY(-1px)}
  .comm-card.cm-info{border-left-color:var(--gold)}
  .comm-card.cm-cons{border-left-color:#5B8DEF}
  .comm-card.cm-urg{border-left-color:var(--bad)}
  .comm-card.comm-off{opacity:.55}
  .comm-card.comm-unread{background:var(--navy3);border-color:var(--gold-soft)}
  .comm-card-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
  .comm-niv{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px}
  .comm-niv.cm-info{background:rgba(212,175,90,.16);color:var(--gold)}
  .comm-niv.cm-cons{background:rgba(91,141,239,.16);color:#8ab0ff}
  .comm-niv.cm-urg{background:rgba(224,105,122,.16);color:#f0899a}
  .comm-pin,.comm-arch,.comm-new{font-size:11px;font-weight:600}
  .comm-pin{color:var(--gold-soft)} .comm-arch{color:var(--ink-faint)} .comm-new{color:var(--bad)}
  .comm-cible{margin-left:auto;font-size:11.5px;color:var(--ink-dim)}
  .comm-titre{font-size:15px;font-weight:700;line-height:1.3}
  .comm-extrait{font-size:13px;color:var(--ink-dim);margin-top:4px;line-height:1.4}
  .comm-card-f{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font-size:11.5px;color:var(--ink-faint);flex-wrap:wrap}
  .comm-corps{font-size:14px;line-height:1.55;background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:12px 14px}
  /* Vignettes de fichiers joints (réutilisable) */
  .f-thumb{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line2);border-radius:7px;overflow:hidden;text-decoration:none;background:var(--navy3);vertical-align:middle}
  .fg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;max-height:60vh;overflow-y:auto;padding:4px 2px}
  .fg-tile{display:flex;flex-direction:column;align-items:center;gap:5px;text-decoration:none;color:var(--ink);background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 8px;transition:.15s}
  .fg-tile:hover{border-color:var(--gold);transform:translateY(-2px)}
  .fg-img .f-thumb{width:96px!important;height:96px!important;font-size:34px}
  .fg-img .f-thumb img{width:96px!important;height:96px!important;object-fit:cover}
  .fg-t{font-size:12px;font-weight:600;text-align:center;line-height:1.3;max-height:32px;overflow:hidden}
  .fg-s{font-size:10.5px;color:var(--ink-faint);text-align:center;line-height:1.3}
  .f-thumb:hover{border-color:var(--gold)}
  .f-thumb img{object-fit:cover;display:block}
  .f-thumb-ic{font-size:18px}
  .cc-preview{display:flex;align-items:center;gap:8px;margin:6px 0 2px}
  .cc-preview-n{font-size:11px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .comm-attach{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
  .comm-att-img img{max-height:120px;max-width:180px;border-radius:8px;border:1px solid var(--line2);object-fit:cover;display:block}
  .comm-att-file{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;background:var(--navy2);border:1px solid var(--line2);border-radius:8px;padding:8px 12px;color:var(--ink);text-decoration:none}
  .comm-att-file:hover{border-color:var(--gold)}
  .comm-files-edit{display:flex;flex-direction:column;gap:5px}
  .comm-file-edit{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;background:var(--navy3);border-radius:7px;padding:5px 10px}
  .comm-track{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;font-size:12.5px;margin-top:6px;line-height:1.5}
  .comm-thread{margin-top:8px}
  .comm-rep{background:var(--navy2);border:1px solid var(--line2);border-radius:9px;padding:9px 11px;margin-bottom:7px}
  .comm-rep-h{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:3px}
  .comm-rep-h .muted{margin-left:0;font-size:11px}
  .comm-rep-del{margin-left:auto;background:none;border:none;color:var(--ink-faint);font-size:16px;cursor:pointer;line-height:1}
  .comm-rep-del:hover{color:var(--bad)}
  .comm-rep-t{font-size:13.5px;line-height:1.45;white-space:pre-wrap}
  .comm-replybox{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
  .comm-replybox textarea{flex:1;resize:vertical}
  .comm-checks{display:flex;flex-wrap:wrap;gap:6px 14px;padding:4px 0}
  .comm-chk{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;background:var(--navy3);border:1px solid var(--line2);border-radius:8px;padding:5px 10px}
  .comm-chk input{width:15px;height:15px}
  /* Clôture de caisse */
  .cc-daybar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:8px 12px;margin-bottom:14px}
  .cc-daylabel{font-weight:600;text-transform:capitalize}
  .cc-daytot{margin-left:auto;font-size:13px;color:var(--ink-dim)}
  .cc-serv{margin-bottom:18px}
  .cc-serv-h{display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:700;padding:6px 2px;border-bottom:2px solid var(--line2);margin-bottom:10px}
  .cc-serv-tot{color:var(--gold-soft)}
  .cc-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;margin-bottom:9px;cursor:pointer;transition:.15s}
  .cc-card:hover{background:var(--navy3);border-color:var(--gold-soft)}
  .cc-card-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
  .cc-salle{font-weight:700;font-size:14px}
  .cc-card-tot{font-family:var(--f-disp);font-size:18px;color:var(--gold-soft)}
  .cc-card-meta{font-size:12px;color:var(--ink-dim);line-height:1.5}
  .cc-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
  .cc-chip{font-size:11px;background:var(--navy3);border:1px solid var(--line2);border-radius:6px;padding:2px 8px;color:var(--ink-dim)}
  .cc-fond{font-size:11.5px;color:var(--gold-soft);margin-top:6px}
  .cc-add-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
  .cc-sec-title{font-weight:700;font-size:13.5px;margin:16px 0 8px;color:var(--gold-soft)}
  /* Moyens de paiement : une seule colonne, plus lisible à la saisie. */
  .cc-modes{display:grid;grid-template-columns:1fr;gap:8px 12px}
  .cc-mode-row{display:flex;align-items:center;gap:8px}
  .cc-mode-row label{flex:1;font-size:12.5px}
  .cc-mode-row input{width:100px;text-align:right}
  .cc-tr-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}
  .cc-tr-row input{width:90px}
  .cc-tr-sub{color:var(--ink-dim);font-size:12px;min-width:80px}
  .cc-tr-del{background:none;border:none;color:var(--ink-faint);font-size:18px;cursor:pointer;line-height:1;margin-left:auto}
  .cc-tr-del:hover{color:var(--bad)}
  .cc-tr-total{font-size:13px;margin-top:6px;color:var(--ink-dim)}
  .cc-total-live{background:var(--navy3);border:1px solid var(--gold);border-radius:10px;padding:12px 14px;font-size:16px;text-align:center;margin-top:14px}
  .cc-total-live b{font-family:var(--f-disp);color:var(--gold-soft);font-size:20px}
  .cc-salle-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}
  .cc-syn-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:8px}
  .cc-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px;text-align:center}
  .cc-kpi-v{font-family:var(--f-disp);font-size:20px;color:var(--gold-soft)}
  .cc-kpi-l{font-size:11px;color:var(--ink-dim);margin-top:2px}
  .cc-syn-modes{display:flex;flex-direction:column;gap:7px}
  .cc-syn-row{display:flex;align-items:center;gap:10px;font-size:13px}
  .cc-syn-lbl{flex:0 0 120px}
  .cc-syn-bar{flex:1;height:9px;background:var(--navy3);border-radius:6px;overflow:hidden}
  .cc-syn-bar span{display:block;height:100%;background:var(--gold)}
  .cc-syn-val{flex:0 0 150px;text-align:right;color:var(--ink-dim);font-size:12px}
  /* Bloc "à saisir dans L'Addition" (formulaire) */
  .cc-addblock{margin-top:10px;background:var(--navy3);border:1px solid var(--gold-soft);border-radius:10px;padding:12px 14px}
  .cc-add-title{font-weight:700;font-size:12.5px;color:var(--gold-soft);margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}
  .cc-add-line{display:flex;justify-content:space-between;font-size:13px;padding:3px 0}
  .cc-add-cash{border-top:1px dashed var(--line2);margin-top:4px;padding-top:6px;font-weight:700;color:var(--gold-soft)}
  .cc-add-tot{border-top:2px solid var(--line2);margin-top:4px;padding-top:6px;font-weight:700}
  .cc-add-note{font-size:11.5px;color:var(--ink-dim);margin-top:8px;line-height:1.5}
  .cc-add-note.warn{color:var(--warn)}
  /* Bloc caisse finale du jour */
  .cc-finale{margin-top:16px;background:var(--navy2);border:1px solid var(--gold);border-radius:12px;padding:14px 16px}
  .cc-finale-h{font-family:var(--f-disp);font-size:16px;color:var(--gold-soft);margin-bottom:10px}
  .cc-fin-line{display:flex;justify-content:space-between;font-size:13.5px;padding:4px 0}
  .cc-fin-cash{font-weight:700;color:var(--gold-soft);border-top:1px dashed var(--line2);margin-top:4px;padding-top:7px}
  .cc-fin-tot{font-weight:700;border-top:2px solid var(--line2);margin-top:4px;padding-top:7px;font-size:15px}
  /* Analyse d'écart de caisse */
  .cc-ecart{margin-top:14px;border:1px solid var(--line2);border-radius:10px;padding:12px 14px;background:var(--navy3)}
  .cc-ecart.ok{border-color:var(--ok)} .cc-ecart.surplus{border-color:var(--warn)} .cc-ecart.bad{border-color:var(--bad)}
  .cc-ecart-h{font-weight:700;font-size:13px;margin-bottom:8px}
  .cc-ecart-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
  .cc-ecart-grid>div{display:flex;flex-direction:column;gap:2px}
  .cc-ecart-grid span{font-size:11px} .cc-ecart-grid b{font-size:15px;font-family:var(--f-disp)}
  .cc-ecart-grid b.neg{color:var(--bad)} .cc-ecart-grid b.pos{color:var(--warn)}
  .cc-ecart-msg{font-size:12px;line-height:1.55;color:var(--ink-dim)}
  .cc-ecart-detail{margin-top:8px;border-top:1px dashed var(--line2);padding-top:6px}
  .cc-ec-line{display:flex;justify-content:space-between;font-size:12px;padding:2px 0}
  .cc-ec-line.neg span:last-child{color:var(--bad);font-weight:600}
  .cc-ec-line.pos span:last-child{color:var(--warn);font-weight:600}
  /* Commentaire + validation jour */
  .cc-jour-comm{margin-top:14px}
  .cc-jour-comm textarea:disabled{opacity:.7}
  .cc-jour-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
  .cc-finale.is-valide{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok) inset}
  .cc-badge-ok{font-size:11px;font-weight:600;color:var(--ok);background:rgba(39,174,96,.12);padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle}
  .cc-badge-open{font-size:11px;font-weight:600;color:var(--ink-faint);background:var(--navy3);padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle}
  /* Tableau période jour par jour */
  .cc-tbl-wrap{overflow-x:auto;margin-top:12px;border:1px solid var(--line2);border-radius:10px}
  .cc-tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:640px}
  .cc-tbl th{background:var(--navy3);color:var(--ink-dim);font-weight:600;padding:8px 10px;text-align:right;white-space:nowrap;position:sticky;top:0}
  .cc-tbl th:first-child{text-align:left}
  .cc-tbl td{padding:7px 10px;text-align:right;border-top:1px solid var(--line2);white-space:nowrap}
  .cc-tbl-day{text-align:left!important;text-transform:capitalize;font-weight:600}
  .cc-tbl-ev{margin-left:5px;cursor:help}
  .cc-tbl-cash{color:var(--gold-soft);font-weight:600}
  .cc-tbl-tot{font-weight:700}
  .cc-tbl-total td{border-top:2px solid var(--gold-soft);font-weight:700;background:var(--navy2)}
  .cc-z{color:var(--ink-faint)}
  /* ---- Graphiques synthèse ---- */
  .cc-chart-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:14px 16px;margin-top:14px}
  .cc-chart-h{font-family:var(--f-disp);font-size:14.5px;color:var(--gold-soft);margin-bottom:10px}
  .cc-chart-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  @media(max-width:820px){.cc-chart-2col{grid-template-columns:1fr}}
  .cc-svg{width:100%;height:auto;overflow:visible}
  .cc-svg-val{fill:var(--ink-dim);font-size:10px;font-weight:600}
  .cc-svg-lbl{fill:var(--ink-faint);font-size:9.5px}
  .cc-scroll-x{overflow-x:auto}
  .cc-donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
  .cc-donut{width:150px;height:150px;flex:0 0 auto}
  .cc-donut-c{fill:var(--ink);font-size:19px;font-weight:700;font-family:var(--f-disp)}
  .cc-donut-l{fill:var(--ink-faint);font-size:10px}
  .cc-leg-list{flex:1;min-width:160px;display:flex;flex-direction:column;gap:5px}
  .cc-leg{font-size:12px;color:var(--ink-dim);display:flex;align-items:center;gap:7px}
  .cc-leg b{color:var(--ink);margin-left:auto}
  .cc-leg-dot{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
  .cc-ms-grid{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}
  @media(max-width:560px){.cc-ms-grid{grid-template-columns:1fr}}
  .cc-ms-stats{display:flex;flex-direction:column;gap:7px}
  .cc-ms-row{display:flex;align-items:baseline;gap:8px;font-size:12.5px;border-bottom:1px solid var(--line2);padding-bottom:5px}
  .cc-ms-row b{color:var(--gold-soft);font-size:14px}
  .cc-ms-row .muted{margin-left:auto;font-size:11px}
  .cc-resp-list{display:flex;flex-direction:column;gap:6px}
  .cc-resp-row{display:flex;align-items:center;gap:10px;font-size:13px;padding:6px 8px;background:var(--navy3);border-radius:8px}
  .cc-resp-rank{width:20px;height:20px;border-radius:50%;background:var(--gold);color:#040C21;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .cc-resp-nom{font-weight:600}
  .cc-resp-nb{color:var(--ink-faint);font-size:11.5px}
  .cc-resp-ca{margin-left:auto;color:var(--gold-soft);font-weight:700}
  .cc-meteo-row{display:flex;gap:12px;flex-wrap:wrap}
  .cc-meteo-chip{display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--navy3);border-radius:10px;padding:10px 14px;min-width:56px}
  .cc-meteo-ic{font-size:22px}
  .cc-meteo-nb{font-size:12px;color:var(--ink-dim);font-weight:600}
  .cc-tbl-resp{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--ink-dim)}
  /* Comparaison période précédente */
  .cc-cmp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
  .cc-cmp{background:var(--navy3);border:1px solid var(--line2);border-radius:10px;padding:11px 13px;display:flex;flex-direction:column;gap:3px}
  .cc-cmp-l{font-size:11.5px;color:var(--ink-faint)}
  .cc-cmp-v{font-size:18px;font-weight:700;font-family:var(--f-disp);color:var(--ink)}
  .cc-cmp-prev{font-size:10.5px;color:var(--ink-faint)}
  .cc-pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;margin-top:2px;width:fit-content}
  .cc-pill-up{background:rgba(79,191,139,.16);color:var(--ok)}
  .cc-pill-down{background:rgba(224,105,122,.16);color:var(--bad)}
  .cc-pill-flat,.cc-pill-neutre{background:var(--navy2);color:var(--ink-faint)}
  /* Jour de semaine */
  .cc-dow-best{margin-top:10px;font-size:12.5px;background:rgba(79,191,139,.10);border:1px solid var(--ok);border-radius:8px;padding:8px 12px;color:var(--ink-dim)}
  .cc-dow-best b{color:var(--ok)}
  .cc-dow-legend{font-size:11px;margin-top:6px}
  .cc-meteo-tbl{display:flex;flex-direction:column;gap:4px;margin-top:12px}
  .cc-meteo-row2{display:flex;align-items:center;gap:10px;font-size:12.5px;background:var(--navy3);border-radius:8px;padding:7px 11px}
  .cc-meteo-ic2{font-size:18px}
  .cc-meteo-nom{font-weight:600;min-width:80px}
  .cc-meteo-nb2{color:var(--ink-faint);font-size:11.5px}
  .cc-meteo-ca{margin-left:auto;font-weight:700;color:var(--gold-soft)}
  .cc-meteo-couv{color:var(--ink-dim);font-size:11.5px;min-width:66px;text-align:right}
  @media(max-width:640px){ .cc-modes{grid-template-columns:1fr} .cc-syn-lbl{flex-basis:90px} }
  /* Process / procédures */
  .proc-card{border:1px solid var(--line2);border-radius:14px;padding:16px 18px;background:var(--bg-card);margin-bottom:14px;cursor:pointer;transition:.14s}
  .proc-card:hover{border-color:var(--gold);transform:translateY(-1px)}
  .proc-theme{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;background:rgba(201,162,75,.14);color:var(--gold-soft);margin-bottom:8px}
  .proc-title{font-family:var(--f-disp);font-size:19px;margin-bottom:6px}
  .proc-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:var(--ink-faint);margin-top:8px}
  .proc-meta .pm{display:inline-flex;align-items:center;gap:5px}
  .proc-step{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line2)}
  .proc-step:last-child{border-bottom:0}
  .proc-step-n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#1a1205;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
  .proc-step-body{flex:1;min-width:0}
  .proc-step-body .pt{font-size:14.5px;line-height:1.55;white-space:pre-wrap}
  .proc-step-body img{margin-top:10px;max-width:100%;max-height:300px;border-radius:10px;border:1px solid var(--line2);display:block}
  /* éditeur d'étapes */
  .pe-step{border:1px solid var(--line2);border-radius:12px;padding:12px 14px;margin-bottom:12px;background:var(--navy3)}
  .pe-step-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .pe-step-head .lab{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-faint);font-weight:600}
  .pe-thumb{margin-top:8px;max-height:130px;border-radius:8px;border:1px solid var(--line2);display:block}
  /* logs table */
  .log-row td{font-size:12.5px}
  .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink-dim)}
  /* avatar clickable */
  .uname{color:var(--gold-soft);cursor:pointer;border-bottom:1px dotted var(--line)}
  .uname:hover{color:var(--gold)}
  /* drawer profil */
  .drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:none;opacity:0;transition:.2s}
  .drawer-bg.show{display:block;opacity:1}
  .drawer{position:fixed;top:0;right:0;height:100vh;width:var(--drawer-w,440px);max-width:96vw;background:var(--navy2);border-left:1px solid var(--line);z-index:201;transform:translateX(100%);transition:transform .25s;overflow-y:auto;padding:26px}
  .drawer.resizing{transition:none;user-select:none}
  .drawer-grip{position:absolute;top:0;left:0;width:10px;height:100%;cursor:ew-resize;z-index:5;
    display:flex;align-items:center;justify-content:center}
  .drawer-grip::before{content:'';width:3px;height:44px;border-radius:2px;background:var(--line2);transition:.15s}
  .drawer-grip:hover::before{background:var(--gold);height:70px}
  .drawer-larger{position:absolute;top:10px;left:14px;display:flex;gap:4px;z-index:6}
  .drawer-larger button{background:var(--navy3);border:1px solid var(--line2);color:var(--ink-faint);
    border-radius:6px;width:24px;height:24px;cursor:pointer;font-size:12px;line-height:1;padding:0;font-family:inherit}
  .drawer-larger button:hover{border-color:var(--gold);color:var(--gold-soft)}
  @media(max-width:820px){.drawer-grip,.drawer-larger{display:none}}
  .drawer.show{transform:translateX(0)}
  /* ---------- RESPONSIVE COMPLET (ordinateur / iPad / iPhone) ---------- */
  /* éviter le débordement horizontal global.
     NB : on NE met PAS overflow-x sur html/body — sur iOS Safari cela casse
     position:fixed (le bouton menu « décrochait » et sortait de l'écran au scroll).
     On confine donc le débordement aux conteneurs internes. */
  html,body{max-width:100%}
  /* IMPORTANT : pas d'overflow sur #app — un conteneur de défilement ici
     casse position:sticky de la sidebar. Le débordement horizontal est
     confiné à la zone de contenu uniquement. */
  #app{max-width:100%}
  .content,.main{min-width:0; max-width:100%; overflow-x:hidden}
  table{width:100%}
  .card{min-width:0}

  /* === Tablette / iPad (≤ 1024px) === */
  @media(max-width:1024px){
    #app{grid-template-columns:1fr}
    .sidebar{position:fixed; left:0; top:0; bottom:0; z-index:90; transform:translateX(-100%); transition:.22s; width:250px; box-shadow:6px 0 30px rgba(0,0,0,.4)}
    .sidebar.open{transform:translateX(0); z-index:130}
    .menu-toggle{display:flex !important}
    .content,.main{padding:72px 22px 60px}
    .topbar{flex-wrap:wrap; gap:12px}
    .dg-hero{grid-template-columns:1fr; text-align:center}
    .dg-top{grid-template-columns:repeat(3,1fr)}
  }

  /* === Mobile / iPhone (≤ 640px) === */
  @media(max-width:640px){
    .content,.main{padding:68px 14px 70px}
    h1{font-size:21px}
    .topbar{flex-direction:column; align-items:flex-start}
    .topbar-tools{width:100%;order:2}
    .fav-menu{right:10px;top:auto;left:10px;width:auto}
    .estab-pills{width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px}
    .estab-pills .pill{white-space:nowrap}
    /* toutes les grilles repassent en 1 colonne */
    .stats-row{grid-template-columns:1fr 1fr; gap:10px}
    .dg-top{grid-template-columns:1fr; gap:12px}
    .grid{grid-template-columns:1fr !important}
    .modal .row2{grid-template-columns:1fr}
    /* cartes & modales */
    .card{padding:16px}
    .modal{width:94vw; max-width:94vw; max-height:88vh; overflow-y:auto; padding:20px}
    /* la modale large reste dans l'écran sur mobile ; son tableau défile latéralement */
    .modal.modal-xl{width:94vw; max-width:94vw; padding:18px 14px}
    .asr-grid{grid-template-columns:1fr}
    .asr-vignettes{grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px}
    .drawer{width:100vw; max-width:100vw; padding:20px 18px}
    /* tableaux scrollables horizontalement */
    .card{overflow-x:auto}
    table{font-size:13px; min-width:480px}
    /* radar : empile le dessin et la légende */
    .radar-wrap{flex-direction:column; gap:14px; align-items:stretch}
    .radar-legend{min-width:0}
    .radar-legend .lab{width:auto; flex:1}
    /* agenda plus court sur mobile */
    .agenda-frame{height:560px}
    /* éviter le zoom auto iOS : champs ≥16px */
    input,select,textarea{font-size:16px !important}
    .btn{padding:12px 16px}
    .seg button{padding:9px 12px}
    /* cibles tactiles plus grandes */
    .icon-btn,.checkbox{min-width:38px; min-height:38px}
    .reorder button{width:30px; height:20px; font-size:11px}
    .mission{flex-wrap:wrap}
    .m-actions{margin-left:auto}
    .daily-bar{gap:8px}
    .daily-chip{padding:9px 12px; flex:1; min-width:140px}
    /* --- modules récents (v5.2→5.5) --- */
    .sys-grid{grid-template-columns:1fr; gap:4px 0}
    .sys-grid .sys-k{margin-top:8px}
    .rh-table{min-width:420px}
    .rh-in{width:74px}
    .rh-scenarios{grid-template-columns:1fr 1fr; gap:10px}
    .sec-actions .btn{padding:16px; font-size:15px}
    .og-prev .og-card{max-width:100%}
    .g-prev .g-title{font-size:16px}
    .side-brand .brand-logo{width:130px}
    .side-brand .hop-logo{width:54px}
  }

  /* === Très petits écrans (≤ 380px) === */
  @media(max-width:380px){
    .stats-row{grid-template-columns:1fr}
    .rh-scenarios{grid-template-columns:1fr}
    .sec-actions{grid-template-columns:1fr}
  }

  /* === Encoches iPhone (safe-area) === */
  @supports(padding:max(0px)){
    .content,.main{padding-left:max(14px,env(safe-area-inset-left));
                   padding-right:max(14px,env(safe-area-inset-right));
                   padding-bottom:max(70px,env(safe-area-inset-bottom))}
    .sidebar{padding-top:max(22px,env(safe-area-inset-top))}
    .menu-toggle{top:max(12px,env(safe-area-inset-top))}
    /* le contenu démarre TOUJOURS sous le burger (encoche + bouton + marge) */
    @media(max-width:1024px){
      .content,.main{padding-top:calc(env(safe-area-inset-top) + 64px)}
    }
  }

  /* bouton menu mobile + voile */
  .menu-toggle{display:none; width:44px; height:44px; border-radius:12px; background:var(--navy3); border:1px solid var(--gold-soft); color:var(--gold-soft); align-items:center; justify-content:center; font-size:20px; position:fixed; top:14px; left:14px; z-index:120; box-shadow:0 4px 16px rgba(0,0,0,.45); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px)}
  .menu-toggle:active{transform:scale(.94)}
  .scrim{display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:88}
  .scrim.show{display:block; z-index:125}
  /* --- Notation détaillée par axe (1 à 5) --- */
  .axe-line{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line2)}
  .axe-line .axe-lab{flex:1;font-size:13.5px;min-width:0}
  .axe-scale{display:flex;gap:5px;flex:none}
  .axe-scale button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);font-weight:600;font-size:14px;cursor:pointer;transition:.12s}
  .axe-scale button:hover{border-color:var(--gold)}
  .axe-scale button.sel{background:var(--gold);color:var(--navy);border-color:var(--gold)}
  .axe-scale.star5{gap:3px}
  .axe-scale.star5 .st{font-size:22px;color:var(--ink-faint);cursor:pointer;transition:.1s;line-height:1;user-select:none;width:24px;text-align:center}
  .axe-scale.star5 .st:hover{transform:scale(1.15)}
  .axe-scale.star5 .st[data-n="0"]{font-size:15px;opacity:.6}
  .avg-box{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:14px 0}
  .avg-box .v{font-family:var(--f-disp);font-size:30px;color:var(--gold-soft)}
  .mood-pick{display:flex;gap:8px;flex-wrap:wrap}
  .mood-opt{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:62px;padding:8px 6px;border:1px solid var(--line2);border-radius:12px;background:var(--navy3);cursor:pointer;font-size:26px;line-height:1;transition:.12s}
  .mood-opt span{font-size:10.5px;color:var(--ink-dim);font-weight:600}
  .mood-opt:hover{border-color:var(--gold);transform:translateY(-1px)}
  .mood-opt.on{border-color:var(--gold);background:var(--gold);}
  .mood-opt.on span{color:var(--navy)}
  .mood-bubble{display:inline-flex;align-items:center;gap:6px;font-size:13px}
  .mood-bubble .em{font-size:20px;line-height:1}
  .evo-table th,.evo-table td{text-align:center;padding:7px 6px;font-size:12.5px;white-space:nowrap}
  .evo-table td.lab{text-align:left;font-weight:600}
  .evo-up{color:var(--ok)} .evo-down{color:var(--bad)} .evo-flat{color:var(--ink-faint)}
  .mini-tile{background:var(--navy3);border:1px solid var(--line2);border-radius:12px;padding:12px 14px}
  .mini-tile .k{font-size:11px;color:var(--ink-faint);margin-bottom:4px}
  .mini-tile .v{font-family:var(--f-disp);font-size:20px;color:var(--gold-soft);line-height:1.1}
  /* ====== Résa de groupes (CRM) ====== */
  .btn.xs{padding:4px 9px;font-size:11.5px;border-radius:7px}
  .inp.xs{padding:5px 7px;font-size:12px;width:100%;min-width:54px}
  .resa-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:4px}
  .resa-chip{padding:6px 12px;border-radius:20px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);font-size:12.5px;cursor:pointer;transition:.15s;white-space:nowrap}
  .resa-chip:hover{color:var(--ink)}
  .resa-chip.on{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:600}
  .resa-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .resa-table{width:100%;border-collapse:collapse;font-size:13px}
  .resa-table th{padding:8px 10px;border-bottom:2px solid var(--line2);color:var(--ink-dim);font-weight:600;text-align:left;white-space:nowrap}
  .resa-table td{padding:8px 10px;border-bottom:1px solid var(--line2);vertical-align:middle}
  .resa-table tbody tr:hover{background:var(--navy3)}
  .resa-badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;color:#fff;white-space:nowrap}
  .resa-itable{width:100%;border-collapse:collapse;font-size:12.5px;min-width:680px}
  .resa-itable th{padding:6px 8px;border-bottom:2px solid var(--line2);color:var(--ink-dim);font-weight:600;font-size:11px;text-align:left;white-space:nowrap}
  .resa-itable td{padding:5px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}
  .resa-itable input.inp.xs,.resa-itable select.inp.xs{max-width:88px}
  .resa-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .resa-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
  .resa-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}
  .resa-f{display:flex;flex-direction:column;gap:4px;font-size:12px}
  .resa-f>span{color:var(--ink-dim);font-size:11px;font-weight:600}
  .resa-f .inp{width:100%}
  .resa-f.resa-toggle{flex-direction:row;align-items:center;justify-content:space-between}
  .resa-switch{width:42px;height:23px;border-radius:20px;background:var(--navy3);border:1px solid var(--line2);position:relative;cursor:pointer;transition:.18s;flex:none}
  .resa-switch::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--ink-faint);transition:.18s}
  .resa-switch.on{background:var(--gold)}
  .resa-switch.on::after{left:21px;background:var(--navy)}
  .resa-recap{width:100%;font-size:13px}
  .resa-recap td{padding:5px 4px}
  .resa-recap td:last-child{text-align:right;font-weight:600}
  .resa-recap tr.big td{font-size:16px;color:var(--gold-soft);font-weight:bold;border-top:2px solid var(--line2);padding-top:8px}
  .resa-recap tr.sep td{border-top:1px solid var(--line2);padding-top:7px}
  .resa-statusrow{display:flex;gap:7px;flex-wrap:wrap}
  .resa-stbtn{padding:7px 12px;border-radius:9px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);font-size:12.5px;cursor:pointer;transition:.15s}
  .resa-stbtn:hover{color:var(--ink)}
  .resa-stbtn.on{font-weight:600}
  .resa-picklist{max-height:50vh;overflow-y:auto;border:1px solid var(--line2);border-radius:10px;padding:6px}
  .resa-pickcat-h{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--gold-soft);font-weight:600;margin:8px 4px 4px}
  .resa-pickrow{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;cursor:pointer;font-size:13px}
  .resa-pickrow:hover{background:var(--navy3)}
  .resa-teamchips{display:flex;gap:3px}
  .resa-tc{width:26px;height:24px;border-radius:6px;background:var(--navy3);border:1px solid var(--line2);cursor:pointer;font-size:12px;line-height:1;padding:0;opacity:.4;transition:.12s}
  .resa-tc:hover{opacity:.75}
  .resa-tc.on{opacity:1;background:var(--gold);border-color:var(--gold)}
  .dnd-h{cursor:grab;color:var(--ink-dim);font-size:15px;letter-spacing:-2px;padding:0 4px;user-select:none}
  tr[data-dnd]{transition:background .12s,box-shadow .12s}
  tr.dnd-src{opacity:.45}
  tr.dnd-over{box-shadow:inset 0 2px 0 var(--gold,#C9A24B)}
  .resa-pill{display:inline-block;padding:1px 7px;border-radius:11px;background:var(--navy3);border:1px solid var(--line2);font-size:10.5px;color:var(--ink-dim);white-space:nowrap}
  .resa-checkrow{display:flex;gap:8px;flex-wrap:wrap}
  .resa-check{display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:8px;background:var(--navy3);border:1px solid var(--line2);font-size:12.5px;cursor:pointer}
  .resa-check input{accent-color:var(--gold)}
  /* sous-onglets */
  .resa-subtabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line2);padding-bottom:0}
  .resa-subtab{background:none;border:none;border-bottom:2px solid transparent;color:var(--ink-dim);font-size:14px;font-weight:600;padding:8px 14px;cursor:pointer;margin-bottom:-1px}
  .resa-subtab:hover{color:var(--ink)}
  .resa-subtab.on{color:var(--gold);border-bottom-color:var(--gold)}
  /* historique statuts */
  .resa-hist{margin-top:10px;font-size:12px}
  .resa-hist summary{cursor:pointer;color:var(--ink-dim);font-size:12px}
  .resa-histlist{margin-top:8px;display:flex;flex-direction:column;gap:6px}
  .resa-histrow{display:flex;align-items:center;gap:8px}
  /* KPI cards stats */
  .resa-statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .resa-statcard{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:14px 16px}
  .resa-statv{font-size:22px;font-weight:700;color:var(--gold)}
  .resa-statl{font-size:12px;color:var(--ink-dim);margin-top:2px}
  .resa-stats-sub{font-size:10.5px;color:var(--ink-faint);margin-top:3px}
  /* barres horizontales */
  .resa-bars{display:flex;flex-direction:column;gap:9px}
  .resa-barrow{display:grid;grid-template-columns:120px 1fr 84px;gap:10px;align-items:center}
  .resa-barlbl{font-size:12px;color:var(--ink-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .resa-bartrack{height:9px;background:var(--navy3);border-radius:6px;overflow:hidden}
  .resa-bartrack i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-soft),var(--gold));border-radius:6px}
  .resa-barval{font-size:12.5px;font-weight:600;text-align:right}
  @media(max-width:760px){
    .resa-statgrid{grid-template-columns:1fr 1fr}
    .resa-barrow{grid-template-columns:90px 1fr 70px}
  }
  @media(max-width:760px){
    .resa-grid2,.resa-grid3{grid-template-columns:1fr}
    .resa-fields{grid-template-columns:1fr 1fr}
  }
  /* ====== Cocktails ====== */
  .cock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
  .cock-card{display:flex;flex-direction:column;background:var(--navy2);border:1px solid var(--line2);border-radius:14px;overflow:hidden;cursor:pointer;transition:.15s}
  .cock-card:hover{border-color:var(--gold);transform:translateY(-2px)}
  .cock-thumb{height:130px;background:var(--navy3);display:flex;align-items:center;justify-content:center;font-size:44px;overflow:hidden}
  .cock-thumb img{width:100%;height:100%;object-fit:cover}
  .cock-cardbody{padding:11px 13px;flex:1}
  .cock-cardname{font-weight:700;font-size:15px;color:var(--ink)}
  .cock-cardmeta{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}
  .cock-pill{display:inline-block;padding:1px 8px;border-radius:11px;background:var(--navy3);border:1px solid var(--line2);font-size:10.5px;color:var(--ink-dim)}
  .cock-cardprices{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--ink-dim);margin-top:6px}
  .cock-cardprices .cock-sell{font-weight:700;color:var(--gold);font-size:14px}
  .cock-cardprices .cock-marge{margin-left:auto;background:var(--navy3);border-radius:8px;padding:1px 8px;font-size:11px}
  .cock-cardact{display:flex;gap:5px;padding:9px 13px;border-top:1px solid var(--line2);justify-content:flex-end}
  .cock-cardby{font-size:10.5px;color:var(--ink-faint);margin:2px 0 6px}
  .cock-estabs{margin-top:12px;border-top:1px solid var(--line2);padding-top:10px}
  /* Cocktail du moment : badges de statut + période */
  .cock-mom-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:11px;font-size:10.5px;font-weight:600;white-space:nowrap;vertical-align:middle}
  .cock-mom-badge.live{background:#7FB89A22;color:#7FB89A;border:1px solid #7FB89A55}
  .cock-mom-badge.soon{background:var(--gold-soft,#C9A24B22);color:var(--gold);border:1px solid #C9A24B55}
  .cock-mom-badge.past{background:var(--navy3);color:var(--ink-faint);border:1px solid var(--line2)}
  .cock-mom-badge.arch{background:var(--navy3);color:var(--ink-faint);border:1px solid var(--line2)}
  .cock-pill.mom{background:var(--gold-soft,#C9A24B22);color:var(--gold);border-color:#C9A24B55}
  .cock-mom-dates{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-top:10px}
  @media(max-width:640px){ .cock-mom-dates{grid-template-columns:1fr 1fr} }
  .cock-estabs-lbl{font-size:11px;color:var(--ink-dim);margin-bottom:6px;font-weight:600}
  .cock-estabs-row{display:flex;gap:7px;flex-wrap:wrap}
  .cock-estabchip{font-size:12px;padding:5px 12px;border-radius:20px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);cursor:pointer;transition:.12s}
  .cock-estabchip:hover{border-color:var(--gold)}
  .cock-estabbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
  .dq-badge{display:inline-block;font-size:10.5px;background:rgba(248,113,113,.16);color:#f87171;padding:2px 8px;border-radius:20px;margin:1px 0}
  .dq-badge.warn{background:rgba(250,204,21,.16);color:#facc15}
  .dq-badge.info{background:rgba(129,140,248,.16);color:#a5b4fc}
  .cand-tbl td.num,.cand-tbl th.num{text-align:right;white-space:nowrap}
  .cock-estabchip.on{background:var(--gold-soft);border-color:var(--gold);color:var(--ink)}
  .cock-estabchip.prim{box-shadow:inset 0 0 0 1px var(--gold);font-weight:700;cursor:default}
  .cock-rolock{font-size:12px;color:var(--ink-dim);background:var(--navy3);border:1px solid var(--line2);border-radius:8px;padding:6px 12px}
  /* ---- Tenues Staff ---- */
  .ten-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line2);padding-bottom:0}
  .ten-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--ink-dim);font-size:13px;padding:8px 10px;cursor:pointer;white-space:nowrap;transition:.12s}
  .ten-tab:hover{color:var(--ink)}
  .ten-tab.on{color:var(--gold);border-bottom-color:var(--gold);font-weight:600}
  .ten-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
  .ten-modelgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
  .ten-modelcard{background:var(--navy2);border:2px solid var(--line2);border-radius:12px;padding:8px;cursor:pointer;transition:.12s;text-align:center}
  .ten-modelcard:hover{border-color:var(--gold)}
  .ten-modelcard.on{border-color:var(--gold);background:var(--gold-soft)}
  .ten-modelimg{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--navy3);display:flex;align-items:center;justify-content:center;font-size:34px}
  .ten-modelimg img{width:100%;height:100%;object-fit:cover}
  .ten-optbadge{position:absolute;top:5px;right:5px;background:var(--gold);color:#1B2240;font-size:9px;font-weight:700;padding:2px 6px;border-radius:10px;text-transform:uppercase}
  .ten-modelcode{font-weight:700;font-size:13px;margin-top:6px;display:inline-block}
  .ten-modelqty{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:6px;font-weight:700}
  .ten-catcard{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:8px}
  .ten-step{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;background:var(--navy3);font-size:11px;opacity:.4;filter:grayscale(1)}
  .ten-step.done{opacity:1;filter:none;background:var(--gold-soft)}
  .ten-stepsep{color:var(--ink-faint);font-size:10px}
  .cock-edgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .cock-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .cock-f{display:flex;flex-direction:column;gap:4px;font-size:12px}
  .cock-f>span{color:var(--ink-dim);font-size:11.5px}
  .cock-calc{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .cock-kpi{background:var(--navy3);border:1px solid var(--line2);border-radius:12px;padding:12px;text-align:center}
  .cock-kpiv{font-size:21px;font-weight:800;color:var(--gold)}
  .cock-kpil{font-size:10.5px;color:var(--ink-dim);margin-top:2px}
  .cock-ind{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap}
  .cock-ind>div{display:flex;flex-direction:column} .cock-ind span{font-size:10.5px;color:var(--ink-faint)} .cock-ind b{font-size:14px}
  .cock-tablewrap{overflow-x:auto} .cock-table{width:100%;border-collapse:collapse;font-size:12.5px}
  .cock-table th{text-align:left;color:var(--gold-soft);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;padding:6px 8px;border-bottom:1px solid var(--line2)}
  .cock-table td{padding:5px 8px;border-bottom:1px solid var(--navy3)}
  .cock-table td.r,.cock-table th.r{text-align:right}
  .inp.xs{padding:5px 7px;font-size:12px;width:100%}
  .cock-picklist{max-height:52vh;overflow-y:auto;border:1px solid var(--line2);border-radius:10px;padding:6px}
  .cock-pickrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13px}
  .cock-pickrow:hover{background:var(--navy3)}
  .cock-step{display:flex;align-items:center;gap:8px;margin:6px 0}
  .cock-stepn{flex:0 0 24px;height:24px;border-radius:50%;background:var(--gold);color:#1a1a2e;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}
  .cock-photos{display:flex;flex-wrap:wrap;gap:10px}
  .cock-photo{width:140px;border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:var(--navy3)}
  .cock-photo img{width:100%;height:100px;object-fit:cover;display:block}
  .cock-photoact{display:flex;justify-content:space-between;align-items:center;padding:4px 6px}
  .cock-main{font-size:9.5px;color:var(--gold-soft)}
  @media(max-width:760px){ .cock-edgrid{grid-template-columns:1fr} .cock-calc{grid-template-columns:1fr 1fr} .cock-fields{grid-template-columns:1fr} }

/* ---- Avis Google (widget iframe v7.32) ---- */
.grev-estname{font-family:var(--f-disp);font-size:16px;color:var(--ink)}
.grev-frame-wrap{position:relative;width:100%;border-radius:10px;overflow:hidden;background:#fff}
.grev-frame{width:100%;min-height:520px;border:0;display:block;background:#fff}
@media(max-width:640px){ .grev-frame{min-height:600px} }

/* ---- Fiches de service (v7.33) ---- */
.svc-card{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;cursor:pointer;transition:border-color .15s}
.svc-card:hover{border-color:var(--gold)}
.svc-srv{font-weight:600}
.svc-dayhead{font-family:var(--f-disp);font-size:15px;color:var(--gold-soft);margin-bottom:6px}
.svc-day-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.svc-sheet{max-width:760px;margin:0 auto}
.svc-sheet-head{text-align:center;border:1px solid var(--line2);border-radius:10px;padding:10px;margin-bottom:12px;background:var(--navy2)}
.svc-logo{font-family:var(--f-disp);font-size:20px;color:var(--gold)}
.svc-title{letter-spacing:2px;font-size:13px;color:var(--ink-dim);margin-top:2px}
.svc-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:4px}
.svc-f{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink-dim)}
.svc-f input,.svc-f select{font-size:13px}
.svc-sec{background:var(--navy3);border:1px solid var(--line2);border-radius:8px;text-align:center;letter-spacing:2px;font-size:12px;font-weight:700;color:var(--ink-dim);padding:6px;margin:14px 0 6px}
.svc-table{width:100%;border-collapse:collapse}
.svc-table th,.svc-table td{border:1px solid var(--line2);padding:0}
.svc-table thead th{background:var(--navy3);font-size:11px;color:var(--ink-dim);padding:5px 6px;text-align:center}
.svc-rang{background:var(--navy3);font-weight:600;font-size:12px;padding:6px 8px;white-space:nowrap}
.svc-cell{width:100%;border:0;background:transparent;color:var(--ink);font-size:13px;padding:6px 8px;outline:none}
.svc-cell:focus{background:var(--navy2)}
.svc-rangedit{font-weight:600;font-size:12px;background:var(--navy3)!important}
.svc-rangedit:focus{background:var(--navy2)!important;outline:1px solid var(--gold)}
/* Assistant IA */
.ai-wrap{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:start}
  /* Veille — Directeur Adjoint IA */
  .aiw-intro{font-size:12.5px;line-height:1.5;background:var(--navy3);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;margin-bottom:14px}
  .aiw-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
  .aiw-period{font-size:12.5px;font-weight:700;color:var(--ink);background:var(--navy3);border:1px solid var(--line2);border-radius:10px;padding:7px 12px}
  .aiw-multibox{background:var(--navy3);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;margin-bottom:12px}
  .aiw-count{display:flex;flex-direction:column;align-items:center;min-width:78px;padding:10px 14px;border-radius:12px;border:1px solid var(--line2);background:var(--navy3)}
  .aiw-count .n{font-size:24px;font-weight:800;line-height:1}
  .aiw-count .l{font-size:11px;color:var(--ink-dim);margin-top:3px;white-space:nowrap}
  .aiw-count.red .n{color:var(--bad)} .aiw-count.amber .n{color:var(--warn,#C9A24B)} .aiw-count.green .n{color:var(--ok,#7FB89A)}
  .aiw-gen{font-size:11px;margin-left:auto}
  .aiw-viewtog{display:inline-flex;gap:0;border:1px solid var(--line2);border-radius:9px;overflow:hidden}
  .aiw-viewtog button{border:0;background:var(--navy3);color:var(--ink-dim);font-size:11.5px;padding:6px 12px;cursor:pointer}
  .aiw-viewtog button.on{background:var(--gold);color:#1a1205;font-weight:700}
  .aiw-agentgroup{margin-bottom:18px}
  .aiw-agenthead{font-size:13px;font-weight:700;margin-bottom:9px;display:flex;align-items:center;gap:8px}
  .aiw-agentn{font-size:11px;font-weight:700;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);border-radius:10px;padding:1px 8px}
  .aiw-ras{padding:18px;font-size:14px}
  .aiw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
  .aiw-card{border:1px solid var(--line2);border-left-width:4px;border-radius:12px;padding:13px 15px;background:var(--navy2)}
  .aiw-card.red{border-left-color:var(--bad)} .aiw-card.amber{border-left-color:var(--warn,#C9A24B)} .aiw-card.green{border-left-color:var(--ok,#7FB89A)}
  .aiw-card-head{display:flex;align-items:center;gap:8px;margin-bottom:7px}
  .aiw-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .aiw-card.red .aiw-dot{background:var(--bad)} .aiw-card.amber .aiw-dot{background:var(--warn,#C9A24B)} .aiw-card.green .aiw-dot{background:var(--ok,#7FB89A)}
  .aiw-agent{font-size:11px;font-weight:700;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.02em}
  .aiw-estab{font-size:10.5px;padding:1px 8px;border-radius:10px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim);margin-left:auto}
  .aiw-title{font-size:14.5px;font-weight:700;margin-bottom:3px}
  .aiw-detail{font-size:12.5px;color:var(--ink-dim);line-height:1.45}
  .aiw-vals{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
  .aiw-chip{font-size:10.5px;padding:2px 8px;border-radius:10px;background:var(--navy3);border:1px solid var(--line2);color:var(--ink-dim)}
  .aiw-action{margin-top:9px;font-size:12px;color:var(--ink);background:var(--navy3);border-radius:9px;padding:7px 10px;line-height:1.4}
  .aiw-expand{margin-left:auto;font-size:14px;color:var(--ink-faint);opacity:.6}
  .aiw-card:hover .aiw-expand{opacity:1;color:var(--gold)}
  .aiw-modal{max-width:560px}
  .aiw-modal-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
  .aiw-modal-lvl{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:11px}
  .aiw-modal-lvl.red{background:#E4573622;color:var(--bad)} .aiw-modal-lvl.amber{background:#C9A24B22;color:var(--warn,#C9A24B)} .aiw-modal-lvl.green{background:#7FB89A22;color:var(--ok,#7FB89A)}
  .aiw-modal-agent{font-size:11.5px;font-weight:700;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.02em}
  .aiw-modal-per{font-size:11.5px;color:var(--ink-dim);background:var(--navy3);border:1px solid var(--line2);border-radius:10px;padding:2px 9px}
  .aiw-modal-title{font-size:20px;font-weight:800;margin:0 0 8px;line-height:1.25}
  .aiw-modal-detail{font-size:14px;line-height:1.6;color:var(--ink);margin:0 0 16px}
  .aiw-modal-sec{margin-top:14px}
  .aiw-modal-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin-bottom:6px}
  .aiw-modal-vals{width:100%;border-collapse:collapse}
  .aiw-modal-vals td{padding:6px 10px;border-bottom:1px solid var(--line2);font-size:13px}
  .aiw-modal-vals td.k{color:var(--ink-dim)} .aiw-modal-vals td.v{text-align:right;font-weight:700}
  .aiw-modal-action{font-size:13.5px;line-height:1.55;background:var(--navy3);border-radius:10px;padding:11px 13px}
.ai-side{display:flex;flex-direction:column;gap:10px}
.ai-history{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow-y:auto}
.ai-hist-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:9px;background:var(--navy2);border:1px solid var(--line2);cursor:pointer;font-size:12.5px}
.ai-hist-item:hover{background:var(--navy3)}
.ai-hist-item.on{box-shadow:inset 2px 0 0 var(--gold);background:var(--navy3)}
.ai-hist-t{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-hist-del{background:transparent;border:0;cursor:pointer;opacity:.6;font-size:13px}
.ai-hist-del:hover{opacity:1}
.ai-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.ai-budget-bar{height:6px;border-radius:99px;background:var(--navy3);overflow:hidden}
.ai-budget-fill{height:100%;background:var(--gold);transition:.3s}
.ai-budget-bar.warn .ai-budget-fill{background:var(--bad)}
.ai-budget-txt{font-size:11.5px;color:var(--ink-faint);margin-top:3px}
.ai-thread{min-height:300px;max-height:58vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:6px 2px}
.ai-msg{max-width:88%;padding:11px 14px;border-radius:14px;font-size:14px;line-height:1.5;white-space:normal;word-wrap:break-word}
.ai-user{align-self:flex-end;background:linear-gradient(120deg,var(--gold-soft),var(--navy3));border:1px solid var(--line);border-bottom-right-radius:4px}
.ai-bot{align-self:flex-start;background:var(--navy2);border:1px solid var(--line2);border-bottom-left-radius:4px}
.ai-sys{align-self:stretch;max-width:100%;background:var(--navy3);border:1px dashed var(--line);font-size:13px}
.ai-typing{display:flex;gap:4px;align-items:center}
.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);animation:aiblink 1.2s infinite}
.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes aiblink{0%,60%,100%{opacity:.3}30%{opacity:1}}
.ai-compose{display:flex;gap:8px;align-items:flex-end}
.ai-input{flex:1;resize:vertical;min-height:46px;background:var(--navy2);border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:11px 13px;font-size:14px;font-family:inherit}
.ai-input:focus{outline:1px solid var(--gold);border-color:var(--gold)}
.ai-hint{font-size:11px;color:var(--ink-faint);line-height:1.4}
.ai-empty{text-align:center;color:var(--ink-faint);padding:30px 10px;display:flex;flex-direction:column;gap:10px;align-items:center}
.ai-empty-ic{font-size:40px}
.ai-examples{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:6px}
@media(max-width:1024px){ .ai-wrap{grid-template-columns:1fr} .ai-side{order:2} .ai-history{max-height:none} }
/* RH Skello */
.sk-wrap{max-width:100%}
.sk-table{width:100%;border-collapse:collapse;font-size:13px}
.sk-table th{text-align:left;padding:7px 9px;border-bottom:2px solid var(--line);color:var(--ink-dim);font-weight:600;white-space:nowrap}
.sk-table td{padding:7px 9px;border-bottom:1px solid var(--line2)}
.sk-table tbody tr:hover{background:var(--navy2)}
.sk-table .sk-r{text-align:right;white-space:nowrap}
.sk-table tr.sk-tot td{border-top:2px solid var(--gold);font-weight:700;background:var(--navy2)}
/* Alertes */
.sk-dot{display:inline-block;width:11px;height:11px;border-radius:50%;cursor:help}
.sk-dot.red{background:var(--bad);box-shadow:0 0 0 3px rgba(220,80,80,.15)}
.sk-dot.orange{background:var(--warn);box-shadow:0 0 0 3px rgba(230,170,60,.15)}
.sk-c{text-align:center}
.sk-thr{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.sk-thr label{font-size:13px;display:inline-flex;align-items:center;gap:6px}
.sk-thr-i{width:62px;text-align:center;padding:5px 6px}
.sk-alert-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.sk-as-item{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px;text-align:center}
.sk-as-item.red{border-color:rgba(220,80,80,.4)}
.sk-as-item.orange{border-color:rgba(230,170,60,.4)}
.sk-as-item.ok{border-color:rgba(120,200,140,.35)}
.sk-as-n{font-size:26px;font-weight:800;font-family:var(--f-disp,inherit)}
.sk-as-l{font-size:11.5px;color:var(--ink-faint);margin-top:2px}
.sk-alert-row{display:flex;align-items:center;gap:10px;padding:9px 6px;border-bottom:1px solid var(--line2)}
.sk-alert-row:last-child{border-bottom:none}
.sk-alert-dot{width:9px;height:9px;border-radius:50%;flex:none}
.sk-alert-dot.red{background:var(--bad)} .sk-alert-dot.orange{background:var(--warn)}
.sk-alert-name{font-weight:600;font-size:13.5px;min-width:140px}
.sk-alert-estab{font-size:11.5px;color:var(--ink-faint);background:var(--navy3,var(--navy2));padding:2px 8px;border-radius:20px}
.sk-alert-val{margin-left:auto;font-weight:700;font-size:13.5px}
.sk-badge{display:inline-block;background:var(--gold-soft,var(--gold));color:var(--navy);font-size:12px;font-weight:700;border-radius:20px;padding:1px 9px;margin-left:6px}
@media(max-width:600px){ .sk-alert-sum{grid-template-columns:repeat(2,1fr)} .sk-alert-name{min-width:0} .sk-thr{gap:10px} }
/* Journal */
.sk-jseg button{font-size:12.5px}
.sk-jday{margin-bottom:14px}
.sk-jdate{font-size:12px;font-weight:700;color:var(--gold);text-transform:capitalize;padding:6px 0;border-bottom:1px solid var(--line2);margin-bottom:4px}
.sk-jrow{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line2)}
.sk-jrow:last-child{border-bottom:none}
.sk-jicon{font-size:17px;flex:none;width:22px;text-align:center}
.sk-jmain{flex:1;min-width:0}
.sk-jname{font-weight:600;font-size:13.5px}
.sk-jmotif{font-size:12.5px;color:var(--ink-dim);margin-top:1px}
.sk-jsub{color:var(--ink-faint)}
.sk-jestab{font-size:10.5px;color:var(--ink-faint);background:var(--navy2);padding:1px 7px;border-radius:20px;margin-left:4px;vertical-align:middle}
.sk-jdur{font-weight:700;font-size:13px;flex:none;white-space:nowrap}
.sk-jdur.retard{color:var(--warn)} .sk-jdur.absence{color:var(--ink-dim)}
/* Heures : barres réel/contrat */
.sk-h-table th{white-space:nowrap}
.sk-h-click{cursor:pointer} .sk-h-click:hover{background:var(--navy2)}
.sk-h-caret{color:var(--gold);font-size:10px;display:inline-block;width:12px}
.sk-hbar{display:inline-block;width:60px;height:7px;background:var(--line2);border-radius:4px;overflow:hidden;vertical-align:middle}
.sk-hbar-fill{height:100%;border-radius:4px}
.sk-hbar-fill.ok{background:var(--ok)} .sk-hbar-fill.under{background:var(--bad)} .sk-hbar-fill.over{background:var(--warn)}
.sk-hpct{font-size:10.5px;color:var(--ink-dim);margin-left:6px}
.sk-h-weekrow td{background:var(--navy2)}
.sk-weekwrap{display:flex;gap:8px;flex-wrap:wrap;padding:10px}
.sk-weekcell{flex:1;min-width:72px;background:var(--navy);border:1px solid var(--line2);border-radius:8px;padding:8px;text-align:center}
.sk-weeknum{font-size:10.5px;color:var(--gold);font-weight:700}
.sk-weekh{font-size:14px;font-weight:700;margin:3px 0}
.sk-wbar{height:5px;background:var(--line2);border-radius:3px;overflow:hidden;margin-top:4px}
.sk-wbar-fill{height:100%} .sk-wbar-fill.ok{background:var(--ok)} .sk-wbar-fill.under{background:var(--bad)} .sk-wbar-fill.over{background:var(--warn)}
.sk-wpct{font-size:10px;color:var(--ink-faint);margin-top:2px}
/* Pointage : classement */
.sk-rank{display:inline-block;width:22px;height:22px;line-height:22px;text-align:center;background:var(--navy2);border-radius:50%;font-size:12px;font-weight:700;color:var(--ink-dim)}
/* Ratio masse salariale / CA */
.pf-ratio-card{border-left:4px solid var(--gold)}
.pf-ratio-card.ok{border-left-color:var(--ok)} .pf-ratio-card.warn{border-left-color:var(--warn)} .pf-ratio-card.bad{border-left-color:var(--bad)}
.pf-ratio-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pf-ratio-l{font-size:13px;font-weight:700}
.pf-ratio-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.pf-ratio-badge.ok{background:rgba(60,180,120,.16);color:var(--ok)} .pf-ratio-badge.warn{background:rgba(240,180,60,.16);color:var(--warn)} .pf-ratio-badge.bad{background:rgba(220,90,90,.16);color:var(--bad)}
.pf-ratio-main{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pf-ratio-big{font-family:var(--f-disp);font-size:46px;line-height:1;color:var(--gold-soft)}
.pf-ratio-card.ok .pf-ratio-big{color:var(--ok)} .pf-ratio-card.warn .pf-ratio-big{color:var(--warn)} .pf-ratio-card.bad .pf-ratio-big{color:var(--bad)}
.pf-ratio-det{font-size:13px;line-height:1.8}
.pf-ratio-bar{position:relative;height:8px;background:var(--line2);border-radius:5px;margin-top:12px;overflow:visible}
.pf-ratio-fill{height:100%;border-radius:5px;background:var(--gold)}
.pf-ratio-fill.ok{background:var(--ok)} .pf-ratio-fill.warn{background:var(--warn)} .pf-ratio-fill.bad{background:var(--bad)}
.pf-ratio-mark{position:absolute;top:-2px;width:2px;height:12px;background:var(--ink-faint);opacity:.6}
/* Annuaire fiches */
.pf-anngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.pf-anncard{display:flex;align-items:center;gap:12px;background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;cursor:pointer;transition:.12s}
.pf-anncard:hover{border-color:var(--gold);transform:translateY(-1px)}
.pf-annava{flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.pf-annbody{flex:1;min-width:0}
.pf-annname{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:6px}
.pf-annpost{font-size:12px;color:var(--ink-dim);margin:1px 0 4px}
.pf-annmeta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--ink-faint)}
.pf-annarrow{color:var(--ink-faint);font-size:20px}
/* Alertes RH */
.pf-alertlist{display:flex;flex-direction:column;gap:8px}
.pf-alert{display:flex;gap:12px;align-items:flex-start;background:var(--navy2);border:1px solid var(--line2);border-left-width:4px;border-radius:10px;padding:11px 13px}
.pf-alert.sev3{border-left-color:var(--bad)} .pf-alert.sev2{border-left-color:var(--warn)} .pf-alert.sev1{border-left-color:var(--gold)}
.pf-alert-ic{font-size:20px;line-height:1.2}
.pf-alert-body{flex:1;min-width:0}
.pf-alert-who{font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px}
.pf-alert-lab{font-size:12px;color:var(--ink-dim);margin:1px 0}
.pf-alert-det{font-size:11.5px;color:var(--ink-faint)}
.pf-cnt{display:inline-block;background:var(--navy);border-radius:10px;padding:0 6px;font-size:10px;margin-left:2px}
.f360-allbadge{display:inline-block;background:rgba(126,196,207,.16);color:#7EC4CF;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600}
.f360-multibadge{font-size:12px;margin-left:2px}
.f360-etag{display:inline-block;background:var(--navy);border:1px solid var(--line2);border-radius:8px;padding:0 6px;font-size:10px;color:var(--ink-dim);margin-right:3px}
.pf-anncard.multi{border-color:#7EC4CF55}
.f360-alerts{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.f360-alert{font-size:11.5px;background:var(--navy2);border:1px solid var(--line2);border-radius:8px;padding:4px 9px}
/* Achats & food cost */
.ach-rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.ach-rc{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;border-top:3px solid var(--line2)}
.ach-rc.ok{border-top-color:var(--ok)} .ach-rc.warn{border-top-color:var(--warn)} .ach-rc.bad{border-top-color:var(--bad)}
.ach-rc-l{font-size:11.5px;color:var(--ink-dim);font-weight:600}
.ach-rc-v{font-family:var(--f-disp);font-size:28px;margin:4px 0 2px}
.ach-rc.ok .ach-rc-v{color:var(--ok)} .ach-rc.warn .ach-rc-v{color:var(--warn)} .ach-rc.bad .ach-rc-v{color:var(--bad)}
.ach-rc-s{font-size:10.5px}
.ach-prime{display:flex;justify-content:space-between;align-items:center;gap:14px;background:linear-gradient(135deg,var(--navy2),var(--navy3));border:1px solid var(--gold-soft);border-radius:14px;padding:16px 20px;margin-bottom:6px}
.ach-prime.ok{border-color:var(--ok)} .ach-prime.warn{border-color:var(--warn)} .ach-prime.bad{border-color:var(--bad)}
.ach-prime-l{font-size:13.5px;font-weight:700}
.ach-prime-s{font-size:11px;margin-top:2px}
.ach-prime-v{font-family:var(--f-disp);font-size:40px;color:var(--gold-soft)}
.ach-prime.ok .ach-prime-v{color:var(--ok)} .ach-prime.warn .ach-prime-v{color:var(--warn)} .ach-prime.bad .ach-prime-v{color:var(--bad)}
.ach-cat{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:10px}
.ach-cat.food{background:rgba(231,164,191,.18);color:#E7A4BF}
.ach-cat.beverage{background:rgba(126,196,207,.18);color:#7EC4CF}
.ach-cat.autre{background:var(--navy);color:var(--ink-dim)}
/* Fiches plats */
.plat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.plat-card{display:flex;gap:10px;background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:10px;cursor:pointer;transition:.15s}
.plat-card:hover{border-color:var(--gold-soft);transform:translateY(-1px)}
.plat-thumb{width:62px;height:62px;border-radius:10px;background:var(--navy);display:flex;align-items:center;justify-content:center;font-size:26px;overflow:hidden;flex:0 0 auto}
.plat-thumb img{width:100%;height:100%;object-fit:cover}
.plat-cbody{flex:1;min-width:0}
.plat-cname{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plat-ccat{font-size:11px;margin-top:1px}
.plat-cmetrics{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:12px;align-items:center}
.plat-fc{font-weight:700;padding:1px 7px;border-radius:20px;font-size:11px}
.plat-fc.ok{background:rgba(74,193,124,.18);color:var(--ok)} .plat-fc.warn{background:rgba(230,162,60,.18);color:var(--warn)} .plat-fc.bad{background:rgba(229,90,90,.18);color:var(--bad)}
.plat-itable{width:100%;border-collapse:collapse;font-size:12px}
.plat-itable th{text-align:left;color:var(--ink-faint);font-size:10px;text-transform:uppercase;padding:3px 4px;font-weight:600}
.plat-itable td{padding:2px 4px;border-bottom:1px solid var(--line)}
.plat-itable .inp.xs{padding:5px 6px;font-size:12px;height:auto}
.plat-calc{background:var(--navy);border:1px solid var(--line2);border-radius:12px;padding:10px 14px;margin-top:10px}
.plat-calc-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:13px}
.plat-suggest{display:flex;justify-content:space-between;align-items:center;background:rgba(201,162,75,.10);border:1px solid var(--gold-soft);border-radius:12px;padding:10px 14px;margin-top:10px}
.plat-suggest-v{font-family:var(--f-disp);font-size:20px;color:var(--gold-soft)}
.plat-result{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-radius:12px;padding:12px 14px;margin-top:10px;border:1px solid var(--line2)}
.plat-result.ok{background:rgba(74,193,124,.10);border-color:rgba(74,193,124,.4)}
.plat-result.warn{background:rgba(230,162,60,.10);border-color:rgba(230,162,60,.4)}
.plat-result.bad{background:rgba(229,90,90,.10);border-color:rgba(229,90,90,.4)}
.plat-result-v{font-family:var(--f-disp);font-size:19px}
.plat-result.ok .plat-result-v{color:var(--ok)} .plat-result.warn .plat-result-v{color:var(--warn)} .plat-result.bad .plat-result-v{color:var(--bad)}
/* denrée : calculateur conditionnement */
.denree-calc{background:rgba(91,141,239,.08);border:1px solid rgba(91,141,239,.3);border-radius:12px;padding:12px 14px;margin-top:10px}
.denree-calc-title{font-weight:700;font-size:13px;margin-bottom:2px}
/* fiche plat : photo + étapes */
.plat-photo-row{display:flex;gap:12px;align-items:flex-start}
.plat-photo-prev{width:88px;height:88px;border-radius:12px;background:var(--navy);display:flex;align-items:center;justify-content:center;font-size:32px;overflow:hidden;flex:0 0 auto}
.plat-photo-prev img{width:100%;height:100%;object-fit:cover}
.plat-step{display:flex;gap:10px;margin-bottom:10px;align-items:flex-start}
.plat-step-n{width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:0 0 auto;margin-top:2px}
.plat-step-body{flex:1;min-width:0}
.plat-step-photo{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:5px}
.plat-step-img{position:relative;width:64px;height:64px;border-radius:8px;overflow:hidden}
.plat-step-img img{width:100%;height:100%;object-fit:cover}
.plat-step-imgdel{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.6);color:#fff;border:0;border-radius:50%;width:18px;height:18px;cursor:pointer;font-size:11px;line-height:1}
/* catégories de dépenses */
.ach-catdot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.ach-catbar{height:5px;background:var(--line2);border-radius:3px;overflow:hidden;margin-bottom:2px}
.ach-catbar-f{height:100%;border-radius:3px}
/* Analyse achats */
.acha-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.acha-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:12px 14px}
.acha-kpi-l{font-size:11.5px;color:var(--ink-dim);font-weight:600}
.acha-kpi-v{font-family:var(--f-disp);font-size:23px;margin-top:3px}
.acha-kpi-s{font-size:10.5px;margin-top:1px}
.acha-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
@media(max-width:760px){.acha-2col{grid-template-columns:1fr}}
.acha-leg{display:flex;align-items:center;gap:7px;padding:3px 0;font-size:12px}
.acha-leg-dot{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
.acha-leg-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acha-leg-v{color:var(--ink-dim);font-size:11px;white-space:nowrap}
.acha-legrow{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-dim);margin-top:8px;flex-wrap:wrap}
.acha-cmp-row{display:flex;align-items:center;gap:10px;padding:6px 0}
.acha-cmp-name{width:110px;font-size:12.5px;font-weight:600;flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acha-cmp-bar{flex:1;height:20px;background:var(--navy);border-radius:6px;overflow:hidden;display:flex}
.acha-cmp-seg{height:100%}
.acha-cmp-tot{width:80px;text-align:right;font-weight:700;font-size:12.5px;flex:0 0 auto}
.acha-four{margin-bottom:9px}
.acha-four-top{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:2px}
.acha-four-n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acha-four-v{color:var(--ink-dim);white-space:nowrap;margin-left:8px}
.acha-four-bar{height:6px;background:var(--line2);border-radius:3px;overflow:hidden}
.acha-four-barf{height:100%;border-radius:3px}
/* stats fournisseur (modale) */
.four-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
.four-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:11px 13px}
.four-kpi-l{font-size:11px;color:var(--ink-dim);font-weight:600}
.four-kpi-v{font-family:var(--f-disp);font-size:21px;margin-top:2px}
.four-kpi-s{font-size:10px;margin-top:1px}
.four-row{display:flex;align-items:center;gap:10px;padding:5px 0}
.four-row-n{width:120px;font-size:12.5px;font-weight:600;flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.four-row-bar{flex:1;height:8px;background:var(--line2);border-radius:4px;overflow:hidden}
.four-row-barf{height:100%;background:var(--gold);border-radius:4px}
.four-row-v{width:84px;text-align:right;font-weight:700;font-size:12px;flex:0 0 auto}
/* Productivité */
.prod-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.prod-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:14px 16px;border-left:3px solid var(--gold-soft)}
.prod-kpi.ok{border-left-color:var(--ok)} .prod-kpi.warn{border-left-color:var(--warn)} .prod-kpi.bad{border-left-color:var(--bad)}
.prod-kpi-l{font-size:12px;color:var(--ink-dim);font-weight:600}
.prod-kpi-v{font-family:var(--f-disp);font-size:30px;margin-top:5px;color:var(--gold-soft)}
.prod-kpi.ok .prod-kpi-v{color:var(--ok)} .prod-kpi.warn .prod-kpi-v{color:var(--warn)} .prod-kpi.bad .prod-kpi-v{color:var(--bad)}
.prod-kpi-u{font-size:14px;color:var(--ink-dim)}
.prod-kpi-s{font-size:10.5px;margin-top:2px}
.prod-src{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.prod-src>div{display:flex;flex-direction:column;gap:2px;background:var(--navy);border:1px solid var(--line2);border-radius:10px;padding:9px 12px}
.prod-src>div span{font-size:10.5px} .prod-src>div b{font-size:15px}
.prod-bar{height:5px;background:var(--line2);border-radius:3px;margin-top:4px;overflow:hidden}
.prod-bar-f{height:100%;background:var(--gold);border-radius:3px}
/* RH PayFit */
.pf-grid2{display:grid;grid-template-columns:1fr 1.3fr;gap:14px;margin:14px 0}
@media(max-width:720px){.pf-grid2{grid-template-columns:1fr}}
.pf-chip{display:inline-block;font-size:11.5px;background:var(--navy2);padding:3px 10px;border-radius:20px;margin:2px 4px 2px 0}
.pf-chip b{color:var(--gold)}
.pf-staff td{white-space:nowrap}
.pf-tag{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:20px;vertical-align:middle;font-weight:700}
.pf-tag.essai{background:rgba(242,193,78,.2);color:var(--warn)}
.pf-tag.sortie{background:rgba(231,164,191,.2);color:var(--bad)}
.pf-nat{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--navy2);color:var(--ink-dim)}
.pf-nat.cdi{background:rgba(127,209,160,.16);color:#7FD1A0}
.pf-nat.alt{background:rgba(157,141,241,.16);color:#9D8DF1}
.pf-nat.cdd{background:rgba(242,193,78,.16);color:var(--warn)}
.pf-arow{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line2)}
.pf-arow:last-child{border-bottom:none}
.pf-arow.soon{background:rgba(242,193,78,.06)} .pf-arow.past{background:rgba(231,164,191,.06)}
.pf-aic{font-size:17px;flex:none;width:24px;text-align:center}
.pf-amain{flex:1;min-width:0}
.pf-aname{font-weight:600;font-size:13.5px}
.pf-aestab{font-size:10.5px;color:var(--ink-faint);background:var(--navy2);padding:1px 7px;border-radius:20px;margin-left:4px}
.pf-asub{font-size:12px;color:var(--ink-dim);margin-top:1px}
.pf-awhen{font-size:12px;font-weight:700;flex:none;white-space:nowrap;color:var(--ink-dim)}
.pf-arow.soon .pf-awhen{color:var(--warn)} .pf-arow.past .pf-awhen{color:var(--bad)}
/* PayFit v2 : liens, modale, fiche, comparaison */
.pf-link{color:var(--gold);cursor:pointer;border-bottom:1px dotted var(--gold-soft,var(--gold))}
.pf-link:hover{opacity:.8}
.pf-up{color:var(--ok)} .pf-down{color:var(--bad)}
.pf-modal-bg{position:fixed;inset:0;background:rgba(8,10,20,.72);display:none;align-items:flex-start;justify-content:center;z-index:9999;padding:24px 12px;overflow-y:auto}
.pf-modal{background:var(--navy);border:1px solid var(--line);border-radius:16px;max-width:680px;width:100%;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.5);margin:auto}
.pf-fhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;border-bottom:1px solid var(--line2);padding-bottom:12px}
.pf-fname{font-size:19px;font-weight:800}
.pf-fpost{font-size:13px;color:var(--ink-dim);margin-top:3px}
.pf-fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 16px;margin-bottom:6px}
.pf-finfo{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:5px 0;border-bottom:1px solid var(--line2)}
.pf-flabel{color:var(--ink-faint)} .pf-fval{font-weight:600;text-align:right}
.pf-fsection{margin-top:16px}
.pf-cmp-selectors{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.pf-vs{font-weight:800;color:var(--gold);padding-bottom:10px}
.pf-cmp-table td:first-child{color:var(--ink-faint);font-size:12.5px}
.pf-mdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle}
.pf-mdot.ok{background:var(--ok)} .pf-mdot.no{background:var(--ink-faint)}
/* RH Paie : sélecteur de source */
.rhpaie-switch{display:flex;gap:8px;margin:0 auto 16px;max-width:1100px;background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:5px}
  .reglerh-intro{max-width:1100px;margin:0 auto 16px;font-size:12.5px;line-height:1.55;background:var(--navy3);border:1px solid var(--line2);border-radius:12px;padding:13px 16px}
  .reglerh-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
  .reglerh-card{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:15px 17px}
  .reglerh-head{font-size:15px;font-weight:800;display:flex;align-items:center;gap:9px;margin-bottom:11px}
  .reglerh-ic{font-size:18px}
  .reglerh-list{list-style:none;margin:0;padding:0}
  .reglerh-list li{font-size:12.8px;line-height:1.5;padding:6px 0;border-bottom:1px solid var(--line2)}
  .reglerh-list li:last-child{border-bottom:0}
  .reglerh-list li b{color:var(--gold)}
  .reglerh-note{margin-top:11px;font-size:12px;line-height:1.45;background:var(--navy3);border-radius:9px;padding:9px 11px;color:var(--ink-dim)}
  .reglerh-foot{max-width:1100px;margin:16px auto 0;font-size:11px;line-height:1.5;text-align:center}
  .reglerh-topbar{max-width:1100px;margin:0 auto 16px;display:flex;gap:12px;align-items:flex-start}
  .reglerh-editbar{max-width:1100px;margin:0 auto 16px;display:flex;gap:10px;align-items:center;background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:11px 14px}
  .reglerh-edit-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
  .reglerh-edit-card{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:14px 15px}
  .reglerh-edit-points{margin-bottom:8px}
  /* ---- Recrutement ---- */
  .recrut-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:640px}
  .recrut-stat{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:14px;text-align:center}
  .recrut-stat .rs-n{font-size:26px;font-weight:800;color:var(--gold)}
  .recrut-stat .rs-l{font-size:11.5px;color:var(--ink-dim);margin-top:2px;text-transform:uppercase;letter-spacing:.4px}
  .recrut-stat.rs-urg .rs-n{color:var(--bad)}
  .recrut-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
  .recrut-card{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:14px 15px;display:flex;flex-direction:column;gap:9px}
  .recrut-card.recrut-done{opacity:.62}
  .rc-top{display:flex;gap:10px;align-items:flex-start}
  .rc-urg{font-size:15px;line-height:1.4}
  .rc-main{flex:1;min-width:0}
  .rc-poste{font-weight:700;font-size:15px}
  .rc-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
  .rc-estab{font-size:11px;font-weight:700;color:var(--gold);background:var(--gold-soft);padding:2px 8px;border-radius:20px}
  .rc-chip{font-size:11px;background:var(--navy3);border:1px solid var(--line);padding:2px 8px;border-radius:20px;color:var(--ink-dim)}
  .rc-chip.ghost{background:transparent}
  .rc-status{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap;align-self:flex-start}
  .st-ouvert{background:rgba(74,222,128,.16);color:#4ade80}
  .st-encours{background:rgba(250,204,21,.16);color:#facc15}
  .st-attente{background:rgba(148,163,184,.16);color:#94a3b8}
  .st-pourvu{background:rgba(96,165,250,.16);color:#60a5fa}
  .st-annule{background:rgba(248,113,113,.14);color:#f87171}
  .rc-body{display:flex;flex-wrap:wrap;gap:12px}
  .rc-info{font-size:12px;color:var(--ink-dim)}
  .rc-link{color:var(--gold);text-decoration:none}
  .rc-comment{font-size:12.5px;color:var(--ink-dim);background:var(--navy3);border-radius:8px;padding:8px 10px;line-height:1.45}
  .rc-actions{display:flex;gap:8px;margin-top:2px}
  .rc-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .reg-photo-opt{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:12px;cursor:pointer}
  .reg-photo-opt input{margin:0}
  .inv-import-help{font-size:11px;color:var(--ink-dim);background:var(--navy3);border:1px solid var(--line);border-radius:8px;padding:9px 12px;margin-top:12px;line-height:1.55}
  /* ---- Grille salariale ---- */
  .grille-calc{background:var(--navy2);border:1px solid var(--line2);border-radius:16px;padding:16px 18px;margin-bottom:16px}
  .gc-title{font-weight:800;font-size:15px;margin-bottom:12px}
  .gc-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-bottom:12px}
  .gc-result{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .gc-res-item{background:var(--navy3);border-radius:12px;padding:12px;text-align:center}
  .gc-res-l{font-size:11px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.4px}
  .gc-res-v{font-size:22px;font-weight:800;margin-top:4px}
  .gc-res-item.gc-net{background:var(--gold-soft);border:1px solid var(--gold)}
  .gc-res-item.gc-net .gc-res-v{color:var(--gold)}
  .gc-free{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
  .gc-free-title{font-size:12px;font-weight:700;color:var(--ink-dim);margin-bottom:8px}
  .gc-free-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .gc-free-row .inp{width:130px}
  .gc-free-out{font-weight:800;color:var(--gold);font-size:16px;margin-left:4px}
  .grille-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
  .grille-wrap{overflow-x:auto;border:1px solid var(--line2);border-radius:14px}
  .grille-tbl{border-collapse:collapse;width:100%;font-size:12.5px;min-width:820px}
  .grille-tbl th{background:var(--navy3);padding:9px 10px;text-align:center;font-size:11px;border-bottom:1px solid var(--line2);color:var(--ink-dim)}
  .grille-tbl td{padding:9px 10px;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}
  .grille-tbl .gr-poste{text-align:left;font-weight:700}
  .grille-tbl .gr-stat{display:block;font-size:10px;font-weight:400;color:var(--ink-faint)}
  .grille-tbl .gr-net{color:var(--gold)}
  .grille-tbl tbody tr:hover{background:var(--navy3)}
  .gre-list{max-height:52vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
  .gre-row{display:flex;align-items:center;gap:10px}
  .gre-poste{flex:1;font-size:13px}
  .gre-taux{display:flex;gap:6px}
  .gre-taux .inp{width:74px}
  .usrpow-box{margin:6px 0 4px;border:1px solid var(--line2);border-radius:12px;padding:10px 12px;background:var(--navy2)}
  .usrpow-box summary{cursor:pointer;font-weight:700;font-size:13.5px}
  .usrpow-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
  .usrpow-row{display:flex;align-items:center;gap:8px;justify-content:space-between}
  .usrpow-lbl{font-size:12px;color:var(--ink-dim);flex:1;min-width:0}
  .usrpow-sel{max-width:190px;font-size:12px;padding:4px 6px}
  @media(max-width:640px){ .usrpow-list{grid-template-columns:1fr} }
  /* ---- ZenChef réservations ---- */
  .zc-cfg{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:14px 16px;margin-bottom:16px}
  .zc-note{background:var(--navy3);border:1px solid var(--line);border-radius:10px;padding:9px 13px;margin-bottom:14px;font-size:12px;color:var(--ink-dim);line-height:1.5}
  .zc-note a{color:var(--gold)}
  .zc-note b{color:var(--ink)}
  .page-head{margin:0 0 14px} .page-head h1{font-size:20px;margin:0}
  /* ===== Finance ===== */
  .fin-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}
  @media(max-width:900px){.fin-grid{grid-template-columns:1fr}}
  .fin-warn{background:rgba(245,158,11,.12);border:1px solid var(--warn);color:var(--warn);border-radius:10px;padding:9px 13px;font-size:12.5px;margin-bottom:14px}
  .pnl-card{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:16px 18px}
  .pnl-title{font-weight:800;font-size:14px;margin-bottom:14px}
  .pnl-line{display:grid;grid-template-columns:1fr auto 60px;gap:8px;align-items:center;padding:7px 0;font-size:14px;border-bottom:1px solid var(--line)}
  .pnl-lbl{color:var(--ink-dim)}
  .pnl-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
  .pnl-pct{text-align:right;font-size:11px;color:var(--ink-faint)}
  .pnl-ca .pnl-lbl,.pnl-ca .pnl-val{color:var(--gold);font-weight:700;font-size:15px}
  .pnl-sub .pnl-lbl,.pnl-sub .pnl-val{font-weight:700}
  .pnl-sub2 .pnl-val{font-weight:600}
  .pnl-result{border-top:2px solid var(--gold);border-bottom:0;margin-top:4px;padding-top:11px}
  .pnl-result .pnl-lbl,.pnl-result .pnl-val{font-weight:800;font-size:16px;color:var(--gold)}
  .pnl-charges-head{display:flex;justify-content:space-between;align-items:center;margin:10px 0 4px;font-size:13px;color:var(--ink-dim);font-weight:600}
  .pnl-charge{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:4px 0 4px 12px;font-size:13px}
  .pnl-charge-val{text-align:right;font-variant-numeric:tabular-nums}
  .pnl-tag{font-size:9px;background:var(--navy3);padding:1px 6px;border-radius:20px;color:var(--ink-faint)}
  .fin-ratios{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
  .fin-ratio{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px;text-align:center}
  .fin-ratio-v{font-size:22px;font-weight:800}
  .fin-ratio-l{font-size:11px;color:var(--ink-dim);margin-top:2px}
  .fin-ratio-c{font-size:10px;color:var(--ink-faint);margin-top:3px}
  .fin-ratio.rc-ok{border-color:var(--ok,#34d399)} .fin-ratio.rc-ok .fin-ratio-v{color:var(--ok,#34d399)}
  .fin-ratio.rc-near{border-color:var(--warn,#f59e0b)} .fin-ratio.rc-near .fin-ratio-v{color:var(--warn,#f59e0b)}
  .fin-ratio.rc-bad{border-color:var(--bad,#ef4444)} .fin-ratio.rc-bad .fin-ratio-v{color:var(--bad,#ef4444)}
  .fin-obj{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:13px 15px}
  .fin-obj-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
  .fin-obj-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}
  .fin-obj-grid>div{display:flex;flex-direction:column}
  .fin-obj-grid span{font-size:10px;color:var(--ink-faint)}
  .fin-obj-real{margin-top:10px;font-size:12.5px;padding-top:8px;border-top:1px solid var(--line)}
  .rc-ok{color:var(--ok,#34d399)} .rc-bad{color:var(--bad,#ef4444)} .rc-near{color:var(--warn,#f59e0b)}
  .fin-cockpit-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
  .fin-alertes{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;margin-bottom:14px}
  .fin-alertes-t{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13px;margin-bottom:8px}
  .fin-alerte{font-size:12.5px;padding:6px 10px;border-radius:8px;margin-top:5px}
  .fin-alerte.fa-warn{background:rgba(250,204,21,.12);color:#facc15}
  .fin-alerte.fa-bad{background:rgba(248,113,113,.14);color:#f87171}
  .fin-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:14px;text-align:center}
  .fin-kpi-v{font-size:22px;font-weight:800;color:var(--gold)}
  .fin-kpi-l{font-size:11px;color:var(--ink-dim);margin-top:3px}
  .fin-kpi-bad .fin-kpi-v{color:var(--bad,#ef4444)}
  .fin-cockpit-tbl{width:100%;border-collapse:collapse;font-size:13px;min-width:600px}
  .fin-cockpit-tbl th{background:var(--navy3);padding:9px 10px;text-align:left;font-size:11px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.3px}
  .fin-cockpit-tbl td{padding:9px 10px;border-bottom:1px solid var(--line)}
  .fin-cockpit-tbl .num{text-align:right;font-variant-numeric:tabular-nums}
  .fin-cockpit-tbl tfoot td{border-top:2px solid var(--line2);border-bottom:0}
  .cock-bar{background:var(--navy2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px}
  .cock-bar-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
  .cock-period{display:flex;gap:8px;align-items:center}
  .cock-estabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px;align-items:center}
  .cock-estab-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;background:var(--navy3);border:1px solid var(--line);border-radius:8px;padding:5px 11px;cursor:pointer}
  .cock-estab-chk.on{border-color:var(--gold);color:var(--gold)}
  .cock-estab-chk input{margin:0}
  .cock-period-lbl{font-size:13px;color:var(--ink-dim);margin-bottom:14px;font-weight:600}
  .fin-mini{font-size:10px;color:var(--ink-faint);margin-top:1px}
  .treso-solde{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:14px}
  .treso-in{color:var(--ok,#34d399)} .treso-out{color:var(--bad,#ef4444)}
  .treso-low{background:rgba(239,68,68,.08)}
  .treso-flux-section{margin-top:18px} .treso-flux-section h4{font-size:13px;margin:0 0 8px}
  .treso-fdetail{margin-bottom:10px} .treso-fmonth{font-weight:700;font-size:12px;color:var(--ink-dim);margin-bottom:4px}
  .treso-frow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:4px 0;font-size:13px;border-bottom:1px solid var(--line)}
  /* ===== Conformité / HACCP ===== */
  .temp-grid,.conf-equip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
  .temp-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px}
  .conf-subnav{flex-wrap:wrap}
  .temp-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:16px}
  .temp-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;text-align:center}
  .temp-kpi.bad{border-color:var(--bad)} .temp-kpi.ok{border-color:var(--ok)}
  .temp-kpi-nom{font-size:11.5px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .temp-kpi-v{font-size:22px;font-weight:700;font-family:var(--f-disp);margin:2px 0}
  .temp-kpi-l{font-size:10.5px;color:var(--ink-faint)}
  .temp-chart-wrap{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:14px;overflow-x:auto}
  .temp-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
  .temp-leg{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-dim)}
  .temp-leg-dot{width:11px;height:11px;border-radius:3px}
  .tl-ok{font-size:12.5px;color:var(--ok);background:rgba(79,191,139,.10);border:1px solid var(--ok);border-radius:8px;padding:7px 11px;margin-bottom:10px}
  .tl-bad{font-size:12.5px;color:var(--ink);background:rgba(224,105,122,.12);border:1px solid var(--bad);border-radius:8px;padding:9px 12px;margin-bottom:10px;line-height:1.5}
  .pn-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
  .pn-open{background:rgba(224,105,122,.16);color:var(--bad)}
  .pn-wip{background:rgba(230,180,80,.16);color:var(--warn)}
  .pn-ok{background:rgba(79,191,139,.16);color:var(--ok)}
  .pn-rep{background:var(--navy3);color:var(--ink-dim)}
  .pn-bad td{background:rgba(224,105,122,.06)}
  .pn-cum{display:flex;align-items:center;gap:12px;font-size:12.5px;background:var(--navy3);border-radius:8px;padding:8px 12px;margin-bottom:5px}
  .pn-cum.alerte{border:1px solid var(--warn)}
  .pn-cum-nom{font-weight:600;flex:1}
  .pn-cum-nb{color:var(--ink-faint);font-size:11.5px}
  .pn-cum-cout{font-weight:700;color:var(--gold-soft);min-width:80px;text-align:right}
  .pn-cum-flag{font-size:10.5px;font-weight:700;color:var(--warn);background:rgba(230,180,80,.14);padding:2px 8px;border-radius:999px}
  /* ---- Badgeuse ---- */
  .bdg-wrap{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:18px;align-items:start}
  @media(max-width:760px){.bdg-wrap{grid-template-columns:1fr}}
  .bdg-pad{background:var(--navy2);border:1px solid var(--line2);border-radius:16px;padding:20px}
  .bdg-title{text-align:center;font-family:var(--f-disp);font-size:16px;color:var(--gold-soft);margin-bottom:14px}
  .bdg-dots{display:flex;justify-content:center;gap:14px;margin-bottom:18px}
  .bdg-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--line2);background:transparent;transition:.15s}
  .bdg-dot.on{background:var(--gold);border-color:var(--gold);transform:scale(1.1)}
  .bdg-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .bdg-key{font-size:22px;font-weight:600;padding:16px 0;border-radius:12px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink);cursor:pointer;transition:.12s;font-family:var(--f-disp)}
  .bdg-key:hover{border-color:var(--gold);background:var(--navy)}
  .bdg-key:active{transform:scale(.95)}
  .bdg-key-alt{font-size:16px;color:var(--ink-dim)}
  .bdg-types{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
  .bdg-types-2 .bdg-type{padding:16px 8px;font-size:15px}
  .bdg-type-in{border-color:var(--ok)}
  .bdg-type-in:hover{background:rgba(79,191,139,.14);border-color:var(--ok)}
  .bdg-type-out{border-color:var(--bad)}
  .bdg-type-out:hover{background:rgba(224,105,122,.14);border-color:var(--bad)}
  .bdg-type{font-size:13px;font-weight:600;padding:11px 8px;border-radius:10px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink);cursor:pointer;transition:.12s}
  .bdg-type:hover{border-color:var(--gold)}
  .bdg-msg{margin-top:14px;text-align:center;font-size:13.5px;padding:12px;border-radius:10px;background:var(--navy3);line-height:1.6}
  .bdg-msg.ok{border:1px solid var(--ok);background:rgba(79,191,139,.10)}
  .bdg-msg.bad{border:1px solid var(--bad);background:rgba(224,105,122,.10);color:var(--bad)}
  .bdg-retard{margin-top:6px;font-size:12px;color:var(--warn)}
  .bdg-side{background:var(--navy2);border:1px solid var(--line2);border-radius:14px;padding:16px}
  .bdg-now-kpi{font-size:12.5px;color:var(--ink-dim);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line2)}
  .bdg-now-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line2)}
  .bdg-code{font-family:ui-monospace,monospace;font-size:14px;letter-spacing:2px;background:var(--navy3);padding:3px 9px;border-radius:6px;color:var(--gold-soft)}
  .bdg-off td{opacity:.5}
  .bdg-ret{display:flex;align-items:center;gap:10px;font-size:12.5px;background:var(--navy3);border-radius:8px;padding:7px 11px;margin-bottom:5px;flex-wrap:wrap}
  .bdg-ret-min{margin-left:auto;font-weight:700;color:var(--warn)}
  .dgt-datebar{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--line2)}
  .dgt-datebar button{font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);cursor:pointer}
  .dgt-datebar button.on{background:var(--gold);border-color:var(--gold);color:#040C21;font-weight:700}
  .dgt-datebar input[type=date]{font-size:11px;padding:2px 6px;border-radius:6px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);margin-left:auto}
  .bdg-clickable{cursor:pointer}
  .bdg-clickable:hover td{background:var(--navy3)}
  .bdg-pline{display:flex;align-items:center;gap:10px;font-size:13px;background:var(--navy2);border:1px solid var(--line2);border-radius:9px;padding:9px 12px;margin-bottom:6px;flex-wrap:wrap}
  .bdg-pl-t{font-weight:600;min-width:120px}
  .bdg-pl-h{font-family:ui-monospace,monospace;font-size:14px;color:var(--gold-soft);font-weight:700}
  .bdg-pl-src{font-size:11px;color:var(--ink-faint)}
  .bdg-pl-act{margin-left:auto;display:flex;gap:5px}
  .bdg-fiche-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-dim);background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 14px;margin-bottom:14px}
  .bdg-abs{display:flex;flex-wrap:wrap;gap:6px}
  .bdg-abs-chip{font-size:11.5px;background:var(--navy3);border:1px solid var(--line2);border-radius:999px;padding:3px 10px;color:var(--ink-dim)}
  /* ---- Planning ---- */
  .pl-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
  /* Rangée d'outils du planning : elle compte une douzaine de boutons et doit
     se replier sur plusieurs lignes plutôt que déborder de l'écran. */
  .pl-outils{display:flex;flex-wrap:wrap;gap:8px;width:100%;justify-content:flex-start;
    padding-top:10px;border-top:1px solid var(--line,rgba(255,255,255,.08))}
  @media (max-width:620px){
    .pl-outils .btn{flex:1 1 auto;min-width:calc(50% - 4px);justify-content:center}
  }
  .pl-periode{font-family:var(--f-disp);font-size:14.5px;color:var(--gold-soft);min-width:150px;text-align:center;text-transform:capitalize}
  .pl-wrap{overflow-x:auto;border:1px solid var(--line2);border-radius:12px}
  .pl-cumuls{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
  .pl-cu{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:11px 14px}
  .pl-cu-main{border-color:var(--gold)}
  .pl-cu-l{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.4px}
  .pl-cu-v{font-size:21px;font-weight:700;font-family:var(--f-disp);color:var(--gold-soft);margin:2px 0}
  .pl-cu-s{font-size:11px;color:var(--ink-dim)}
  .pl-avatar{width:30px;height:30px;border-radius:50%;background:var(--navy);border:1px solid var(--gold-soft);color:var(--gold-soft);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:0 0 auto}
  .pl-nom-wrap{display:flex;flex-direction:column;min-width:0;flex:1}
  .pl-add{width:100%;border:1px dashed var(--line2);background:transparent;color:var(--ink-faint);border-radius:7px;padding:9px 0;cursor:pointer;font-size:15px;opacity:0;transition:.12s}
  .pl-td:hover .pl-add{opacity:1}
  .pl-add:hover{border-color:var(--gold);color:var(--gold)}
  .pl-sh-top{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
  .pl-sh-pause{position:absolute;right:6px;bottom:4px;font-size:9px;opacity:.75}
  .pl-foot td{border-top:2px solid var(--gold-soft);background:var(--navy2);padding:8px 4px}
  .pl-foot-c{text-align:center}
  .pl-foot-p{font-size:10.5px;color:var(--ink-faint)}
  .pl-foot-h{font-size:13px;font-weight:700}
  .pl-tot-h{font-size:14px;font-weight:700;font-family:var(--f-disp)}
  .pl-grand{color:var(--gold-soft);font-size:15px}
  .pl-sh-menu{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.28);border:0;color:var(--ink);cursor:pointer;
    font-size:14px;line-height:1;padding:3px 6px;border-radius:5px;opacity:.85;transition:.12s;font-weight:700}
  .pl-shift:hover .pl-sh-menu{opacity:1;background:rgba(0,0,0,.45)}
  .pl-sh-menu:hover{background:var(--gold)!important;color:#040C21}
  @media(max-width:820px){.pl-sh-menu{opacity:1;font-size:16px;padding:4px 8px}}
  .pl-menu{position:fixed;z-index:9999;background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:5px;box-shadow:0 8px 28px rgba(0,0,0,.45);min-width:176px}
  .pl-menu button{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--ink);font-size:13px;padding:8px 11px;border-radius:7px;cursor:pointer}
  .pl-menu button:hover{background:var(--navy3)}
  .pl-menu .pl-menu-del{color:var(--bad)}
  .pl-clip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;background:rgba(201,162,75,.10);border:1px solid var(--gold-soft);border-radius:10px;padding:9px 13px;margin-bottom:12px}
  .pl-paste{opacity:1!important;border-style:solid;border-color:var(--gold-soft);color:var(--gold-soft)}
  .pl-diag-box{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:12px;text-align:left}
  .pl-diag{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:5px 0;border-bottom:1px solid var(--line2);flex-wrap:wrap}
  .pl-diag.bad{color:var(--bad)}
  .pl-diag-detail{margin-top:10px;font-family:ui-monospace,monospace;font-size:11.5px;background:var(--navy3);border:1px solid var(--bad);border-radius:8px;padding:10px 12px;color:var(--ink);white-space:pre-wrap;word-break:break-word;text-align:left;line-height:1.5}
  .pl-filtres{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:10px 12px;background:var(--navy2);border:1px solid var(--line2);border-radius:10px}
  .pl-colors{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .pl-col{width:28px;height:28px;border-radius:7px;border:2px solid transparent;cursor:pointer;padding:0;font-size:10px;color:var(--ink-dim);background:var(--navy3)}
  .pl-col.on{border-color:var(--gold);transform:scale(1.1)}
  .pl-col:hover{transform:scale(1.08)}
  .pl-sh-e{display:block;font-size:9.5px;color:var(--ink-faint);font-style:italic}
  .pl-aide{font-size:12px;line-height:1.6;background:rgba(201,162,75,.08);border:1px solid var(--gold-soft);border-radius:9px;padding:10px 13px;margin-top:12px;color:var(--ink-dim)}
  .pl-aide b{color:var(--ink)}
  .pl-dup{background:rgba(201,162,75,.08);border:1px solid var(--gold-soft);border-radius:10px;padding:11px 13px;margin-top:12px}
  .pl-dup-t{font-size:12px;color:var(--gold-soft);font-weight:700;margin-bottom:8px}
  .pl-dup-b{display:flex;gap:6px;flex-wrap:wrap}
  .pl-dup-src{background:var(--navy3);border-radius:9px;padding:10px 13px;margin-bottom:12px;font-size:13px}
  .pl-dj{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:6px}
  .pl-dj-i{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border:1px solid var(--line2);
    border-radius:9px;cursor:pointer;background:var(--navy3);transition:.12s;position:relative}
  .pl-dj-i:hover{border-color:var(--gold)}
  .pl-dj-i.src{opacity:.55;cursor:not-allowed;border-style:dashed}
  .pl-dj-i input{margin:0}
  .pl-dj-l{font-size:11.5px;font-weight:600}
  .pl-dj-n{font-size:10.5px;color:var(--ink-faint)}
  .pl-dj-s{font-size:9px;color:var(--gold-soft);text-transform:uppercase;letter-spacing:.3px}
  .pl-dj-i.vide{opacity:.4}
  /* Modèles de planning */
  .plm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:11px}
  .plm-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:13px 15px}
  .plm-h{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
  .plm-t{font-weight:700;font-size:13.5px;line-height:1.3}
  .plm-d{font-size:11.5px;color:var(--ink-faint);margin-top:2px;line-height:1.4}
  .plm-e{font-size:10px;background:var(--navy3);color:var(--ink-dim);padding:2px 7px;border-radius:999px;white-space:nowrap;flex:0 0 auto}
  .plm-stats{display:flex;gap:9px;flex-wrap:wrap;font-size:11px;color:var(--ink-dim);margin-top:9px;padding-top:8px;border-top:1px solid var(--line2)}
  .plm-act{display:flex;gap:5px;margin-top:10px;flex-wrap:wrap}
  .plm-by{font-size:10px;color:var(--ink-faint);margin-top:7px}
  .plm-noms{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:5px;max-height:180px;overflow-y:auto}
  .plm-nom{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:5px 8px;border-radius:7px;cursor:pointer;background:var(--navy3)}
  .plm-nom:hover{background:var(--navy)}
  .plm-ecrase{display:flex;gap:9px;align-items:flex-start;font-size:13px;cursor:pointer;background:var(--navy3);
    border:1px solid var(--line2);border-radius:9px;padding:11px 13px;margin-top:10px}
  .plm-apercu{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
  .plm-jour-t{font-size:12px;font-weight:700;color:var(--gold-soft);margin-bottom:5px}
  .plm-sh{display:flex;gap:8px;align-items:center;font-size:12px;background:var(--navy3);border-left:3px solid var(--line2);
    border-radius:6px;padding:5px 9px;margin-bottom:3px;flex-wrap:wrap}
  .plm-sh-n{font-weight:600;min-width:90px}
  .plm-sh-h{color:var(--ink-dim)}
  .plm-sh-p{font-size:10.5px;color:var(--ink-faint);margin-left:auto}
  /* Journal des modifications */
  .plau-fil{display:flex;flex-direction:column;gap:14px}
  .plau-jour-t{font-size:12px;font-weight:700;color:var(--gold-soft);margin-bottom:7px;position:sticky;top:0;background:var(--navy);padding:3px 0;z-index:1}
  .plau-e{background:var(--navy2);border:1px solid var(--line2);border-left:3px solid var(--line2);border-radius:9px;padding:10px 13px;margin-bottom:7px}
  .plau-e.plau-add{border-left-color:var(--ok)}
  .plau-e.plau-mod{border-left-color:var(--warn)}
  .plau-e.plau-del{border-left-color:var(--bad)}
  .plau-e.plau-mov{border-left-color:#5B8FF9}
  .plau-e.plau-bulk{border-left-color:var(--gold)}
  .plau-e-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
  .plau-op{font-size:11.5px;font-weight:700}
  .plau-h{font-size:11px;color:var(--ink-faint)}
  .plau-who{display:flex;align-items:center;gap:6px;font-size:12px;margin-top:6px;flex-wrap:wrap}
  .plau-role{font-size:9.5px;background:var(--navy3);color:var(--ink-faint);padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.3px}
  .plau-res{font-size:12px;color:var(--ink-dim);margin-top:6px;line-height:1.5}
  .plau-meta{display:flex;flex-direction:column;gap:6px;background:var(--navy2);border-radius:9px;padding:11px 13px}
  .plau-meta>div{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;flex-wrap:wrap}
  .plau-chg td{background:rgba(230,180,80,.10)}
  .plau-chg td:first-child{font-weight:600}
  /* Verrouillage paie */
  .plv-list{display:flex;flex-direction:column;gap:7px}
  .plv-sem{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--navy2);
    border:1px solid var(--line2);border-radius:10px;padding:11px 13px;flex-wrap:wrap}
  .plv-sem.on{border-color:var(--gold-soft);background:rgba(201,162,75,.07)}
  .plv-d{font-size:13px;font-weight:600}
  .plv-by{font-size:11.5px;color:var(--ink-faint);margin-top:3px;line-height:1.5}
  /* Compteurs */
  .plc-ok{color:var(--ok);font-weight:600}
  .plc-warn{color:var(--warn);font-weight:600}
  .plc-bad{color:var(--bad);font-weight:700}
  .plc-r{color:var(--warn);font-weight:600}
  /* Multi-etablissements */
  .pk-estabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .pk-est{display:flex;align-items:center;gap:6px;font-size:12.5px;padding:6px 11px;border-radius:8px;
    background:var(--navy3);border:1px solid var(--line2);cursor:pointer}
  .pk-est:hover{border-color:var(--gold-soft)}
  /* Annuaire intervenants */
  .mnta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:11px}
  .mnta-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:13px 15px}
  .mnta-card.fav{border-color:var(--gold-soft)}
  .mnta-h{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
  .mnta-t{font-weight:700;font-size:13.5px;line-height:1.3}
  .mnta-m{font-size:11.5px;color:var(--ink-faint);margin-top:2px}
  .mnta-astr{font-size:10px;background:rgba(155,109,255,.16);color:#9B6DFF;padding:2px 7px;border-radius:999px;white-space:nowrap}
  .mnta-c{font-size:12px;color:var(--ink-dim);margin-top:7px}
  .mnta-tels{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
  .mnta-tel{font-size:12px;background:var(--navy3);color:var(--gold-soft);padding:5px 10px;border-radius:7px;text-decoration:none;white-space:nowrap}
  .mnta-tel:hover{background:var(--gold);color:#040C21}
  .mnta-tel.urg{color:var(--bad)}
  .mnta-meta{display:flex;gap:9px;flex-wrap:wrap;font-size:11px;color:var(--ink-dim);margin-top:8px}
  .mnta-ct{font-size:11px;color:var(--ink-faint);margin-top:7px;padding-top:7px;border-top:1px solid var(--line2)}
  .mnta-ct.exp{color:var(--bad)}
  .mnta-note{font-size:11.5px;color:var(--ink-dim);margin-top:6px;line-height:1.5;font-style:italic}
  .mnta-act{margin-top:9px}
  .rhaf-manque{color:var(--warn);font-size:11.5px}
  .rhaf-disp{font-size:11px;background:var(--navy3);color:var(--ink-dim);padding:2px 8px;border-radius:999px}
  /* Sélecteur de période */
  .pl-periode-btn{background:var(--navy2);border:1px solid var(--line2);border-radius:9px;padding:7px 14px;
    cursor:pointer;color:var(--ink);font-family:inherit;font-size:13px;transition:.12s}
  .pl-periode-btn:hover{border-color:var(--gold);color:var(--gold-soft)}
  .plp-raccourcis{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
  .plp-cals{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:14px}
  .plp-cal{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px}
  .plp-cal-t{font-size:12px;font-weight:700;color:var(--gold-soft);text-align:center;margin-bottom:7px;text-transform:capitalize}
  .plp-jrs{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:3px}
  .plp-jrs span{text-align:center;font-size:9.5px;color:var(--ink-faint)}
  .plp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
  .plp-j{aspect-ratio:1;border:0;background:transparent;color:var(--ink-dim);border-radius:6px;cursor:pointer;font-size:11.5px;font-family:inherit}
  .plp-j:hover{background:var(--navy3);color:var(--ink)}
  .plp-j.in{background:rgba(201,162,75,.20);color:var(--gold-soft);font-weight:600}
  .plp-j.auj{outline:1px solid var(--gold)}
  .plp-v{aspect-ratio:1}
  .plp-manuel{background:var(--navy3);border-radius:9px;padding:11px 13px}
  /* Mon planning */
  .mp-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
  .mp-jour{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:11px 13px}
  .mp-jour.auj{border-color:var(--gold)}
  .mp-jour-t{font-size:12.5px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:7px}
  .mp-auj{font-size:9.5px;background:var(--gold);color:#040C21;padding:1px 7px;border-radius:999px;text-transform:uppercase}
  .mp-sh{background:var(--navy3);border-left:3px solid var(--line2);border-radius:7px;padding:8px 10px;margin-bottom:5px;
    display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
  .mp-sh.moi{background:rgba(201,162,75,.10)}
  .mp-sh-h{font-size:12.5px;font-weight:600}
  .mp-sh-n{display:block;font-size:11px;color:var(--ink-faint);margin-top:2px}
  .mp-sh-p{font-size:10.5px;color:var(--ink-faint)}
  .mp-sh-d{font-size:11.5px;color:var(--gold-soft);font-weight:600;display:block;text-align:right}
  .mp-vide{font-size:12px;color:var(--ink-faint);padding:6px 0}
  .mm-nomail{font-size:10px;color:var(--warn);margin-left:auto}
  .plm-nom.sans-mail{opacity:.55}
  .plco-manque{color:var(--warn);font-size:11.5px}
  .plcv-sous{color:var(--bad);font-weight:700}
  .plcv-sur{color:var(--warn);font-weight:600}
  .plcv-ok{color:var(--ok);font-weight:600}
  .plcv-bar{height:5px;background:var(--navy3);border-radius:3px;overflow:hidden;min-width:60px;margin-bottom:2px}
  .plcv-bar span{display:block;height:100%;border-radius:3px}
  .ccr-apercu{background:#fff;border-radius:8px;padding:12px;margin-top:8px;max-height:340px;overflow-y:auto;color:#222}
  .ccr-apercu table{width:100%}
  /* Documents vehicule */
  .vehd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
  .vehd-card{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:12px 14px}
  .vehd-card.exp{border-color:var(--bad)}
  .vehd-h{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;flex-wrap:wrap}
  .vehd-t{font-size:12.5px;font-weight:600}
  .vehd-exp{font-size:10px;color:var(--ink-faint);white-space:nowrap}
  .vehd-exp.warn{color:var(--warn)}
  .vehd-exp.bad{color:var(--bad);font-weight:700}
  .vehd-ti{font-size:12px;color:var(--ink-dim);margin-top:4px}
  .vehd-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:10.5px;color:var(--ink-faint);margin-top:6px}
  .vehd-note{font-size:11.5px;color:var(--ink-dim);margin-top:5px;font-style:italic}
  .vehd-act{display:flex;gap:5px;margin-top:9px}
  /* Synchronisation paie */
  .psy-chk{display:flex;align-items:flex-start;gap:8px;cursor:pointer}
  .psy-chg{font-size:10px;background:var(--navy3);color:var(--gold-soft);padding:2px 6px;border-radius:999px;white-space:nowrap;display:inline-block;margin:1px}
  .psy-ok{font-size:11px;color:var(--ink-faint)}
  .psy-new{font-size:11px;color:var(--ok);font-weight:600}
  .psy-rien{opacity:.5}
  .psy-opts{display:flex;flex-direction:column;gap:7px;background:var(--navy2);border:1px solid var(--line2);
    border-radius:10px;padding:11px 13px}
  /* Ordre des onglets */
  .hubo-list{display:flex;flex-direction:column;gap:5px;max-height:340px;overflow-y:auto}
  .hubo-i{display:flex;align-items:center;gap:9px;background:var(--navy2);border:1px solid var(--line2);
    border-radius:9px;padding:9px 12px;cursor:grab}
  .hubo-i:active{cursor:grabbing;opacity:.7}
  .hubo-h{color:var(--ink-faint);font-size:13px;letter-spacing:-2px}
  .hubo-ic{font-size:15px}
  .hubo-l{font-size:13px;flex:1}
  .hubo-b{display:flex;gap:3px}
  .page-head .btn.xs{margin-left:8px;vertical-align:middle}
  .navo-row{display:flex;align-items:center;gap:8px;padding:9px 6px;border-bottom:1px solid var(--line2);cursor:grab;transition:.12s}
  .navo-row:hover{background:var(--navy3)}
  .navo-row.dragging{opacity:.45}
  .navo-row.navo-over{background:rgba(201,162,75,.14);box-shadow:inset 0 2px 0 var(--gold)}
  .navo-grip{color:var(--ink-faint);letter-spacing:-2px;font-size:13px}
  .navo-n{display:inline-block;width:20px;color:var(--ink-faint);font-size:11.5px}
  .navo-lbl{font-size:13px}
  /* Modules en développement */
  .beta-tag{font-size:9px;background:var(--warn);color:#0C1220;padding:1px 5px;border-radius:999px;
    margin-left:5px;font-weight:700;vertical-align:middle;letter-spacing:.3px}
  .beta-count{font-size:12px;color:var(--gold-soft);background:rgba(201,162,75,.08);
    border:1px solid var(--gold-soft);border-radius:8px;padding:7px 12px;margin-bottom:12px}
  .beta-list{display:flex;flex-direction:column;gap:14px;max-height:52vh;overflow-y:auto}
  .beta-grp-t{font-size:11.5px;font-weight:700;color:var(--gold-soft);margin-bottom:6px;
    text-transform:uppercase;letter-spacing:.4px;position:sticky;top:0;background:var(--navy2);padding:3px 0}
  .beta-i{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:8px;cursor:pointer;
    background:var(--navy3);border:1px solid var(--line2);margin-bottom:4px;transition:.12s}
  .beta-i:hover{border-color:var(--gold-soft)}
  .beta-i.on{background:rgba(230,180,80,.10);border-color:var(--warn)}
  .beta-ic{font-size:14px}
  .beta-l{font-size:12.5px;flex:1}
  .beta-s{font-size:10.5px;color:var(--ink-faint);white-space:nowrap}
  .beta-i.on .beta-s{color:var(--warn)}
  .beta-grp-t{display:flex;align-items:center;gap:7px}
  .beta-grp-n{font-size:10px;color:var(--ink-faint);font-weight:400;text-transform:none;letter-spacing:0}
  .beta-grp-t .btn{margin-left:0}
  .beta-grp-t .btn:first-of-type{margin-left:auto}
  .beta-cle{display:block;font-size:9.5px;color:var(--ink-faint);font-family:monospace;margin-top:1px}
  .plc-filtre-info{font-size:11.5px;color:var(--gold-soft);background:rgba(201,162,75,.08);
    border:1px solid var(--gold-soft);border-radius:8px;padding:7px 12px;margin-bottom:10px}
  /* Dossier salarié */
  .rhd-bloc{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:13px 15px;margin-bottom:11px}
  .rhd-bloc.rhd-vide{opacity:.6}
  .rhd-t{font-size:12px;font-weight:700;color:var(--gold-soft);margin-bottom:9px;text-transform:uppercase;letter-spacing:.4px}
  .rhd-l{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:4px 0;flex-wrap:wrap}
  .rhd-l>span{color:var(--ink-faint)}
  .rhd-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;margin-bottom:9px}
  .rhd-kpis>div{background:var(--navy3);border-radius:8px;padding:8px;text-align:center}
  .rhd-kpis b{display:block;font-size:15px;font-family:var(--f-disp);color:var(--gold-soft)}
  .rhd-kpis span{font-size:10px;color:var(--ink-faint)}
  .rhd-chips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
  .rhd-chip{font-size:10.5px;background:var(--navy3);color:var(--ink-dim);padding:3px 9px;border-radius:999px}
  .rhd-r{display:flex;justify-content:space-between;gap:9px;font-size:12px;padding:5px 0;
    border-bottom:1px solid var(--line2);flex-wrap:wrap}
  .rhd-r:last-child{border-bottom:0}
  .rhd-mini-t{font-size:11.5px;color:var(--ink-faint);margin-bottom:6px}
  .rhd-obj{margin-bottom:9px}
  .rhd-obj-t{font-size:12.5px;margin-bottom:4px}
  .rhd-obj-b{height:5px;background:var(--navy3);border-radius:3px;overflow:hidden}
  .rhd-obj-b span{display:block;height:100%;background:var(--gold);border-radius:3px}
  /* Local SAVOURE */
  .loc-cat{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;margin-bottom:10px;overflow:hidden}
  .loc-cat-h{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;cursor:pointer;
    font-size:13px;font-weight:700;list-style:none;user-select:none}
  .loc-cat-h::-webkit-details-marker{display:none}
  .loc-cat-h:hover{background:var(--navy3)}
  .loc-cat[open] .loc-cat-h{border-bottom:1px solid var(--line2)}
  .loc-cat-n{font-size:11px;color:var(--ink-faint);font-weight:400}
  .loc-etat{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
  .loc-ok{background:rgba(79,191,139,.14);color:var(--ok)}
  .loc-warn{background:rgba(230,180,80,.16);color:var(--warn)}
  .loc-bad{background:rgba(224,105,122,.16);color:var(--bad)}
  .loc-off{background:var(--navy3);color:var(--ink-faint)}
  .loc-q{font-size:14px;font-family:var(--f-disp)}
  .loc-act{display:flex;gap:3px;white-space:nowrap}
  .loc-mvt-art{background:var(--navy3);border-radius:9px;padding:11px 13px;margin-bottom:12px}
  /* Échanges */
  .ech-t{font-size:10.5px;padding:2px 8px;border-radius:999px;white-space:nowrap}
  .ech-liq{background:rgba(91,143,249,.16);color:#5B8FF9}
  .ech-sol{background:rgba(79,191,139,.14);color:var(--ok)}
  .ech-mat{background:rgba(230,180,80,.16);color:var(--warn)}
  .ech-mon{background:rgba(201,162,75,.18);color:var(--gold-soft)}
  .ech-flux{white-space:nowrap;font-size:11.5px}
  .ech-de{color:var(--ink-dim);font-weight:600}
  .ech-fl{color:var(--gold-soft);margin:0 3px}
  .ech-vers{color:var(--ink);font-weight:600}
  .ech-bal{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
  .ech-bal-i{display:flex;align-items:center;gap:7px;background:var(--navy2);border:1px solid var(--line2);
    border-radius:9px;padding:8px 12px;font-size:12px}
  .ech-bal-n{color:var(--warn);font-weight:600}
  .ech-bal-v{color:var(--gold-soft);font-weight:700}
  .pn-bad2{background:rgba(224,105,122,.20);color:var(--bad)}
  /* Scénarios financiers */
  .scn-base{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
  .scn-b{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:12px 14px}
  .scn-b span{display:block;font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.4px}
  .scn-b b{display:block;font-size:19px;font-family:var(--f-disp);color:var(--gold-soft);margin:3px 0}
  .scn-b em{display:block;font-size:11px;color:var(--ink-dim);font-style:normal}
  .scn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:10px}
  .scn-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:14px;
    cursor:pointer;text-align:left;transition:.12s;font-family:inherit;color:var(--ink);display:block}
  .scn-card:hover{border-color:var(--gold);transform:translateY(-2px)}
  .scn-ic{display:block;font-size:22px;margin-bottom:7px}
  .scn-n{display:block;font-size:13.5px;font-weight:700;margin-bottom:4px}
  .scn-d{display:block;font-size:11.5px;color:var(--ink-faint);line-height:1.5}
  .scn-resultat{background:var(--navy2);border:2px solid var(--line2);border-radius:12px;padding:16px;text-align:center}
  .scn-resultat.scn-pos{border-color:var(--ok)}
  .scn-resultat.scn-neg{border-color:var(--bad)}
  .scn-r-l{font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.4px}
  .scn-r-v{font-size:29px;font-weight:700;font-family:var(--f-disp);margin:5px 0}
  .scn-pos .scn-r-v{color:var(--ok)}
  .scn-neg .scn-r-v{color:var(--bad)}
  .scn-r-an{font-size:12.5px;color:var(--ink-dim)}
  .scn-detail{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:12px 14px;margin-top:12px}
  .scn-d-l{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:5px 0;
    border-bottom:1px solid var(--line2);flex-wrap:wrap}
  .scn-d-l:last-child{border-bottom:0}
  .scn-d-l>span{color:var(--ink-dim)}
  .scn-d-l.fort{font-size:13.5px;padding:9px 0;border-top:1px solid var(--gold-soft);margin-top:4px}
  .scn-d-l.fort b{color:var(--gold-soft)}
  .scn-alerte{display:flex;gap:10px;align-items:flex-start;background:var(--navy2);border:1px solid var(--line2);
    border-left-width:3px;border-radius:10px;padding:11px 14px;margin-top:12px;font-size:12.5px;line-height:1.6}
  /* Comptes clients */
  .cli-fs{font-size:10px;background:var(--navy3);color:var(--ink-faint);padding:1px 6px;border-radius:999px}
  .cli-rem{color:var(--ok);font-weight:600}
  .cli-deb{color:var(--warn)}
  .cli-cre{color:var(--ok)}
  .hub-tabs-sub{border-bottom:0;padding-bottom:0;margin-bottom:12px}
  .hub-tabs-sub .hub-tab{padding:7px 12px;font-size:12.5px}
  .cli-th{cursor:pointer;user-select:none;white-space:nowrap}
  .cli-th:hover{color:var(--gold-soft)}
  .cli-fl{color:var(--ink-faint);font-size:10px;margin-left:2px}
  .cli-fl.on{color:var(--gold);font-weight:700}
  .cli-sur{font-size:13px;color:var(--ink-faint);font-weight:400}
  .rhd-net{color:var(--gold);font-size:14px}
  .rhd-hist{margin-top:10px;padding-top:10px;border-top:1px solid var(--line2)}
  .rhd-hist-t{font-size:11px;color:var(--ink-faint);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
  /* Notes en compte client */
  .ccn-add{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:13px 15px}
  .ccn-add-t{font-size:12px;font-weight:700;color:var(--gold-soft);margin-bottom:10px;text-transform:uppercase;letter-spacing:.4px}
  .ccn-list{display:flex;flex-direction:column;gap:6px}
  .ccn-l{display:flex;align-items:center;gap:10px;background:var(--navy2);border:1px solid var(--line2);
    border-left:3px solid var(--warn);border-radius:9px;padding:9px 12px}
  .ccn-l.ccn-neg{border-left-color:var(--ok)}
  .ccn-l-i{flex:1;font-size:12.5px}
  .ccn-l-m{font-weight:700;font-family:var(--f-disp);color:var(--warn);white-space:nowrap}
  .ccn-neg .ccn-l-m{color:var(--ok)}
  .ccn-tot{display:flex;justify-content:space-between;align-items:center;background:var(--navy3);
    border-radius:9px;padding:11px 14px;margin-top:10px;font-size:13px}
  .ccn-tot b{font-size:17px;font-family:var(--f-disp);color:var(--gold-soft)}
  .ccn-ctx{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 13px;margin-bottom:12px;font-size:13px}
  .ccn-rappro{background:var(--navy2);border:1px solid var(--line2);border-left-width:3px;border-radius:10px;padding:11px 14px;margin-bottom:12px}
  .ccn-rappro.ok{border-left-color:var(--ok)}
  .ccn-rappro.ko{border-left-color:var(--warn)}
  .ccn-rappro-l{display:flex;justify-content:space-between;font-size:12.5px;padding:2px 0}
  .ccn-rappro-l>span{color:var(--ink-faint)}
  .ccn-rappro-e{font-size:12px;margin-top:7px;padding-top:7px;border-top:1px solid var(--line2)}
  .ccn-rappro.ok .ccn-rappro-e{color:var(--ok)}
  .ccn-rappro.ko .ccn-rappro-e{color:var(--warn)}
  .cc-comptes-l{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;
    background:rgba(201,162,75,.10);border-radius:7px;padding:6px 10px;margin-top:7px;cursor:pointer}
  .cc-comptes-l:hover{background:rgba(201,162,75,.18)}
  .cc-comptes-a{font-size:11px;color:var(--ink-faint);margin-left:auto}
  .cc-comptes-add{font-size:11.5px;color:var(--ink-faint);padding:5px 0;margin-top:5px;cursor:pointer;
    border-top:1px dashed var(--line2)}
  .cc-comptes-add:hover{color:var(--gold-soft)}
  .cc-nb-ok{color:var(--ok)}
  .cc-nb-ko{color:var(--warn)}
  /* Notes en compte dans le formulaire de clôture */
  .ccf-l{background:var(--navy3);border:1px solid var(--line2);border-left:3px solid var(--warn);
    border-radius:9px;padding:9px 11px;margin-bottom:6px}
  .ccf-l.ccf-neg{border-left-color:var(--ok)}
  .ccf-l-1{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  .ccf-l-1 select{flex:1;min-width:0}
  /* .inp.xs (deux classes) impose width:100% et l'emportait sur .ccf-m :
     le champ montant occupait toute la ligne et écrasait la recherche client.
     On repasse devant en spécificité. */
  .ccf-l-1 input.ccf-m{width:104px;flex:0 0 104px;text-align:right}
  .ccf-l-1 .ccf-search{flex:1 1 240px;min-width:200px}
  .ccf-l-1 .ccf-search input{width:100%}
  .ccf-l-2{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
  .ccf-l-2>*{flex:1;min-width:110px}
  .ccf-l-i{font-size:10.5px;color:var(--ink-faint);margin-top:5px}
  .inp.xs{padding:6px 9px;font-size:12px}
  .ccf-tot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:var(--navy2);
    border:1px solid var(--line2);border-radius:9px;padding:9px 12px;margin-top:9px;font-size:12.5px}
  .ccf-tot.ok{border-color:var(--ok)}
  .ccf-tot.ko{border-color:var(--warn)}
  .ccf-tot b{font-size:15px;font-family:var(--f-disp);color:var(--gold-soft);margin-left:auto}
  .ccf-ec{font-size:11px;color:var(--warn)}
  .ccf-ok{font-size:11px;color:var(--ok)}
  .ccf-search{position:relative;flex:1 1 240px;min-width:200px}
  .ccf-search input{width:100%}
  .ccf-sug-i b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ccf-sug{display:none;position:absolute;top:100%;left:0;right:0;z-index:30;background:var(--navy);
    border:1px solid var(--gold-soft);border-radius:9px;margin-top:3px;max-height:300px;overflow-y:auto;
    min-width:280px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
  .ccf-sug.on{display:block}
  .ccf-sug-i{display:flex;align-items:center;gap:8px;padding:8px 11px;cursor:pointer;font-size:12.5px;
    border-bottom:1px solid var(--line2)}
  .ccf-sug-i:last-child{border-bottom:0}
  .ccf-sug-i:hover{background:var(--navy3)}
  .ccf-sug-d{margin-left:auto;font-size:11px;color:var(--warn)}
  .ccf-sug-w{color:var(--bad)}
  .ccf-sug-v{padding:8px 11px;font-size:12px;color:var(--ink-faint)}
  .ccf-l-3{display:flex;gap:6px;align-items:center;margin-top:6px;flex-wrap:wrap}
  .ccf-chk{display:flex;align-items:center;gap:6px;font-size:11.5px;cursor:pointer;
    background:var(--navy2);border:1px solid var(--line2);border-radius:7px;padding:5px 9px}
  .ccf-chk input{margin:0}
  .ccf-l-c{font-size:11.5px;color:var(--ink-dim);font-style:italic;margin-top:6px;
    padding-left:9px;border-left:2px solid var(--line2)}
  /* Onglets de regroupement */
  .hub-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line2)}
  .hub-tab{display:flex;align-items:center;gap:7px;padding:9px 14px;border-radius:10px;border:1px solid var(--line2);
    background:var(--navy2);color:var(--ink-dim);cursor:pointer;font-size:13px;transition:.12s;font-family:inherit}
  .hub-tab:hover{border-color:var(--gold-soft);color:var(--ink)}
  .hub-tab.on{background:var(--gold);border-color:var(--gold);color:#040C21;font-weight:700}
  .hub-ic{font-size:15px}
  @media(max-width:640px){.hub-tab span:not(.hub-ic){display:none}.hub-tab{padding:10px 14px}.hub-ic{font-size:18px}}
  /* ---- Maintenance ---- */
  .mnt-urg{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
  .mnt-u-b{background:var(--navy3);color:var(--ink-faint)}
  .mnt-u-n{background:rgba(91,143,249,.16);color:#5B8FF9}
  .mnt-u-h{background:rgba(230,180,80,.18);color:var(--warn)}
  .mnt-u-c{background:rgba(224,105,122,.20);color:var(--bad)}
  .mnt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
  .mnt-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:13px 15px;border-left:3px solid var(--line2)}
  .mnt-card.mnt-ok{border-left-color:var(--ok)}
  .mnt-card.mnt-panne{border-left-color:var(--warn)}
  .mnt-card.mnt-hs{border-left-color:var(--bad)}
  .mnt-card.mnt-rep{border-left-color:var(--ink-faint);opacity:.75}
  .mnt-card-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
  .mnt-card-t{font-weight:700;font-size:13.5px;line-height:1.3}
  .mnt-card-s{font-size:11px;color:var(--ink-faint);margin-top:2px}
  .mnt-card-img{width:44px;height:44px;object-fit:cover;border-radius:7px;flex:0 0 auto}
  .mnt-card-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
  .mnt-b{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:999px}
  .mnt-b.ok{background:rgba(79,191,139,.14);color:var(--ok)}
  .mnt-b.warn{background:rgba(230,180,80,.16);color:var(--warn)}
  .mnt-b.bad{background:rgba(224,105,122,.16);color:var(--bad)}
  .mnt-card-stats{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-dim);margin-top:9px;padding-top:8px;border-top:1px solid var(--line2)}
  .mnt-card-act{display:flex;gap:5px;margin-top:9px;flex-wrap:wrap}
  .mnt-fiche{display:flex;flex-direction:column;gap:7px;background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:12px 14px;margin-bottom:14px}
  .mnt-fiche>div{display:flex;justify-content:space-between;gap:10px;font-size:13px;flex-wrap:wrap}
  .mnt-fiche .muted{font-size:12px}
  .mnt-tel{color:var(--gold-soft);text-decoration:none;font-size:12px}
  .mnt-iv{background:var(--navy2);border:1px solid var(--line2);border-radius:9px;padding:10px 12px;margin-bottom:7px}
  .mnt-iv-h{display:flex;align-items:center;gap:8px;font-size:12.5px;flex-wrap:wrap}
  .mnt-iv-c{margin-left:auto;font-weight:700;color:var(--gold-soft)}
  .mnt-iv-r{font-size:12px;color:var(--ink-dim);margin-top:5px;line-height:1.5}
  .mnt-etapes{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:11px 13px;margin-bottom:12px}
  .mnt-etapes-t{font-size:11.5px;color:var(--ink-faint);margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}
  .mnt-etapes-l{display:flex;gap:6px;flex-wrap:wrap}
  .mnt-etape{display:flex;align-items:center;gap:5px;font-size:11.5px;padding:6px 10px;border-radius:999px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);cursor:pointer;transition:.12s}
  .mnt-etape:hover{border-color:var(--gold);color:var(--ink)}
  .mnt-etape.on{background:var(--gold);border-color:var(--gold);color:#040C21;font-weight:700}
  .mnt-etape span{white-space:nowrap}
  @media(max-width:520px){.mnt-etape span{display:none}.mnt-etape{font-size:16px;padding:8px 12px}}
  .mnt-suggest{font-size:12px;background:rgba(201,162,75,.08);border:1px solid var(--gold-soft);border-radius:8px;padding:8px 11px;margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  /* ---- Véhicules ---- */
  .veh-km{font-family:var(--f-disp);font-size:17px;font-weight:700;color:var(--gold-soft)}
  .veh-ech{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
  .veh-e{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--navy3);color:var(--ink-dim)}
  .veh-e.ok{background:rgba(79,191,139,.14);color:var(--ok)}
  .veh-e.warn{background:rgba(230,180,80,.16);color:var(--warn)}
  .veh-e.bad{background:rgba(224,105,122,.18);color:var(--bad)}
  /* ---- Contrôle qualité ---- */
  .qua-note{font-family:var(--f-disp);font-size:26px;font-weight:700}
  .qua-ok{color:var(--ok)} .qua-moy{color:var(--warn)} .qua-bad{color:var(--bad)}
  .qua-theme{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:12px 14px;margin-bottom:10px}
  .qua-theme-n{font-weight:700;font-size:13px;margin-bottom:8px}
  .qua-crit{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line2);flex-wrap:wrap}
  .qua-crit:last-child{border-bottom:0}
  .qua-crit-l{flex:1;font-size:12.5px;min-width:150px}
  .qua-crit-p{font-size:10.5px;color:var(--ink-faint)}
  .qua-notes{display:flex;gap:4px}
  .qua-n{width:30px;height:30px;border-radius:7px;border:1px solid var(--line2);background:var(--navy3);color:var(--ink-dim);cursor:pointer;font-size:12px;font-weight:600;transition:.12s}
  .qua-n:hover{border-color:var(--gold)}
  .qua-n.on{background:var(--gold);border-color:var(--gold);color:#040C21}
  .qua-n.na{font-size:10px}
  .qua-total{background:var(--navy2);border:1px solid var(--gold-soft);border-radius:11px;padding:14px;text-align:center;margin:14px 0}
  .qua-total-v{font-family:var(--f-disp);font-size:30px;font-weight:700;color:var(--gold-soft)}
  .qua-total-l{font-size:11.5px;color:var(--ink-dim)}
  /* ---- Clés & accès ---- */
  .acc-code{font-family:ui-monospace,monospace;letter-spacing:2px;background:var(--navy3);padding:3px 9px;border-radius:6px;color:var(--gold-soft);font-size:13px}
  .acc-chip{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px}
  .acc-chip.attr{background:rgba(91,143,249,.16);color:#5B8FF9}
  .acc-chip.rendu{background:rgba(79,191,139,.14);color:var(--ok)}
  .acc-chip.perdu{background:rgba(224,105,122,.18);color:var(--bad)}
  /* ---- Veille réglementaire ---- */
  .vei-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
  .vei-chip{display:flex;align-items:center;gap:7px;font-size:11.5px;padding:6px 11px;border-radius:999px;background:var(--navy2);border:1px solid var(--line2);cursor:pointer;transition:.12s}
  .vei-chip:hover{border-color:var(--gold)}
  .vei-chip.on{border-color:var(--gold);background:rgba(201,162,75,.10)}
  .vei-chip-v{font-weight:700}
  .vei-chip-v.ok{color:var(--ok)} .vei-chip-v.moy{color:var(--warn)} .vei-chip-v.bad{color:var(--bad)}
  .vei-actu{background:var(--navy2);border:1px solid var(--line2);border-radius:11px;padding:13px 15px;margin-bottom:9px;cursor:pointer;transition:.12s}
  .vei-actu:hover{border-color:var(--gold-soft)}
  .vei-actu.nonlu{border-left:3px solid var(--gold)}
  .vei-actu-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
  .vei-actu-d{font-size:11px;color:var(--ink-faint)}
  .vei-actu-t{font-weight:600;font-size:13.5px;line-height:1.4}
  .vei-actu-r{font-size:12px;color:var(--ink-dim);margin-top:5px;line-height:1.5}
  .vei-actu-f{font-size:10.5px;color:var(--ink-faint);margin-top:6px}
  .vei-ia{font-size:11px}
  .vei-ia-res{background:var(--navy2);border:1px solid var(--gold-soft);border-radius:10px;padding:12px;margin-top:12px}
  /* ---- RH ---- */
  .rha-obj{background:var(--navy2);border:1px solid var(--line2);border-radius:9px;padding:10px 12px;margin-bottom:7px}
  .rha-obj-h{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;flex-wrap:wrap;margin-bottom:6px}
  .rha-obj-bar{height:6px;background:var(--navy3);border-radius:999px;overflow:hidden}
  .rha-obj-bar span{display:block;height:100%;background:var(--gold);border-radius:999px}
  .rha-obj-form{display:flex;gap:6px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
  .rha-obj-form .inp{flex:1;min-width:140px}
  .rha-comps{display:flex;flex-direction:column;gap:5px;margin-top:8px}
  .rha-comp{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:4px 0;border-bottom:1px solid var(--line2)}
  .rha-comp:last-child{border-bottom:0}
  .rha-comp-n{color:var(--ink-dim)}
  .rha-comp-niv{color:var(--gold-soft);letter-spacing:1px;font-size:10px}
  /* ---- Marketing ---- */
  .mkt-sem{margin-bottom:16px}
  .mkt-sem-t{font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--line2)}
  .mkt-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:9px}
  .mkt-post{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:11px 13px;cursor:pointer;transition:.12s}
  .mkt-post:hover{border-color:var(--gold-soft);transform:translateY(-1px)}
  .mkt-post-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;margin-bottom:6px}
  .mkt-post-t{font-size:12.5px;font-weight:600;line-height:1.35}
  .mkt-tags{font-size:11.5px;color:var(--gold-soft);margin-top:8px;line-height:1.5;word-break:break-word}
  .mkt-idee{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:12px 14px;margin-bottom:9px}
  .mkt-idee-h{font-size:12px;color:var(--ink-dim);margin-bottom:7px}
  .mkt-idee-t{font-size:12.5px;line-height:1.6}
  /* Kanban de suivi */
  .mnt-kanban{display:flex;gap:11px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}
  .mnt-col{flex:0 0 250px;background:var(--navy2);border:1px solid var(--line2);border-radius:12px;min-height:130px;transition:.12s}
  .mnt-col.mnt-col-over{border-color:var(--gold);background:rgba(201,162,75,.07);transform:scale(1.01)}
  .mnt-col-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line2);font-size:12px;font-weight:600;color:var(--ink-dim)}
  .mnt-col-b{padding:8px;display:flex;flex-direction:column;gap:7px;min-height:60px}
  .mnt-kc{background:var(--navy3);border:1px solid var(--line2);border-radius:9px;padding:9px 10px;cursor:pointer;transition:.12s;border-left:3px solid transparent}
  .mnt-kc:hover{border-color:var(--gold);transform:translateY(-1px)}
  .mnt-kc.crit{border-left-color:var(--bad)}
  .mnt-kc.dragging{opacity:.45;transform:rotate(1.5deg)}
  .mnt-kc-h{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:5px}
  .mnt-kc-d{font-size:10.5px;color:var(--ink-faint)}
  .mnt-kc-t{font-weight:700;font-size:12.5px;line-height:1.3}
  .mnt-kc-p{font-size:11px;color:var(--ink-dim);margin-top:3px;line-height:1.4}
  .mnt-kc-ph{display:flex;gap:4px;margin-top:6px;align-items:center}
  .mnt-kc-ph img{width:34px;height:34px;object-fit:cover;border-radius:5px;border:1px solid var(--line2)}
  .mnt-kc-more{font-size:10px;color:var(--ink-faint)}
  .mnt-kc-f{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:10.5px;color:var(--ink-faint)}
  .mnt-kc-c{color:var(--gold-soft);font-weight:700;margin-left:auto}
  .mnt-clos{margin-top:16px}
  .mnt-clos-list{display:flex;flex-direction:column;gap:5px}
  .mnt-clos-i{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;background:var(--navy2);border-radius:8px;padding:7px 11px;cursor:pointer}
  .mnt-clos-i:hover{background:var(--navy3)}
  .conf-lien-mnt{font-size:12.5px;background:rgba(201,162,75,.08);border:1px solid var(--gold-soft);border-radius:9px;padding:10px 13px;margin-bottom:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pl-cu-warn{border-color:var(--warn)}
  .pld-sig{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
  .pld-sig.ok{background:rgba(79,191,139,.16);color:var(--ok)}
  .pld-sig.wait{background:rgba(230,180,80,.16);color:var(--warn)}
  .pld-sig.none{color:var(--ink-faint)}
  .pld-sup{color:var(--warn);font-weight:700}
  .pld-retard{color:var(--warn);font-weight:600}
  .pld-manque{color:var(--bad);font-weight:700}
  .pld-flag{font-size:9.5px;font-weight:700;padding:1px 4px;border-radius:4px;margin-left:3px;vertical-align:middle}
  .pld-flag.bad{background:rgba(224,105,122,.18);color:var(--bad)}
  .pld-flag.ok{background:rgba(79,191,139,.16);color:var(--ok)}
  .pl-cu-bad{border-color:var(--bad)}
  .pl-cu-bad .pl-cu-v{color:var(--bad)}
  .pld-recap{background:var(--navy3);border-radius:9px;padding:10px 13px;margin-bottom:6px;line-height:1.6}
  .pld-sigbox{position:relative;background:var(--navy3);border:2px dashed var(--line2);border-radius:10px;overflow:hidden}
  .pld-sigbox canvas{display:block;width:100%;height:180px;cursor:crosshair;touch-action:none}
  .pld-sig-hint{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);text-align:center;font-size:12.5px;color:var(--ink-faint);pointer-events:none}
  .pl-tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:760px}
  .pl-tbl th{background:var(--navy3);padding:8px 6px;font-weight:600;font-size:11.5px;color:var(--ink-dim);position:sticky;top:0;z-index:2}
  .pl-th-nom{text-align:left;min-width:130px;position:sticky;left:0;z-index:3}
  .pl-th-jour{text-align:center;min-width:104px}
  .pl-th-jour span{display:block;font-size:10.5px;color:var(--ink-faint);font-weight:400}
  .pl-th-tot{text-align:right;min-width:78px}
  .pl-tbl td{border-top:1px solid var(--line2);vertical-align:top;padding:4px}
  .pl-td{min-height:52px;height:52px}
  .pl-td.pl-over{background:rgba(201,162,75,.14);outline:2px dashed var(--gold);outline-offset:-3px}
  .pl-auj{background:rgba(201,162,75,.06)}
  .pl-td-nom{position:sticky;left:0;background:var(--navy2);z-index:1;min-width:172px;display:flex;align-items:center;gap:9px;padding:8px 10px}
  .pl-nom{font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pl-poste{font-size:10.5px;color:var(--ink-faint)}
  .pl-contrat{font-size:11px;color:var(--gold-soft);font-weight:600;margin-left:auto;flex:0 0 auto}
  .pl-td-tot{text-align:right;font-size:12.5px;white-space:nowrap;padding:8px 10px;background:var(--navy2)}
  .pl-ecart{font-size:11px;margin-top:2px;font-weight:600}
  .pl-ecart.ok{color:var(--ok)} .pl-ecart.over{color:var(--bad);font-weight:700} .pl-ecart.under{color:#5B8FF9}
  .pl-shift{position:relative;border-radius:7px;padding:6px 8px;margin-bottom:4px;cursor:pointer;font-size:11.5px;line-height:1.4;border-left:3px solid transparent;transition:.12s}
  .pl-shift:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.25)}
  .pl-t-work{background:rgba(91,143,249,.16);border-left-color:#5B8FF9}
  .pl-t-rest{background:var(--navy3);border-left-color:var(--line2);color:var(--ink-faint)}
  .pl-t-cp{background:rgba(79,191,139,.16);border-left-color:#4FBF8B}
  .pl-t-sick{background:rgba(224,105,122,.16);border-left-color:#E0697A}
  .pl-t-form{background:rgba(155,109,255,.16);border-left-color:#9B6DFF}
  .pl-t-abs{background:rgba(230,180,80,.14);border-left-color:#E6B450}
  .pl-sh-h{display:block;font-weight:700}
  .pl-sh-d{display:block;font-size:10.5px;color:var(--ink-dim)}
  .pl-sh-p{display:block;font-size:10px;color:var(--ink-faint)}
  .pl-sh-t{display:block;font-weight:600}
  .pl-sh-n{display:block;font-size:10px;color:var(--ink-faint)}
  .pl-nuit{font-size:10px}
  .pl-pause{font-size:9.5px}
  .pl-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:10px}
  .pl-leg{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-dim)}
  .pl-leg-dot{width:11px;height:11px;border-radius:3px}
  .pl-ok{font-size:12.5px;color:var(--ok);background:rgba(79,191,139,.08);border:1px solid var(--ok);border-radius:10px;padding:9px 13px;margin-bottom:12px}
  .pl-alertes{border:1px solid var(--warn);border-radius:12px;margin-bottom:12px;overflow:hidden}
  .pl-al-h{display:flex;align-items:center;gap:10px;background:rgba(230,180,80,.10);padding:9px 13px;font-size:13px;font-weight:600;flex-wrap:wrap}
  .pl-al-c{font-size:12px;font-weight:400}
  .pl-al-c .bad{color:var(--bad)} .pl-al-c .warn{color:var(--warn)}
  .pl-al-h button{margin-left:auto}
  .pl-al-list{display:none;padding:8px 13px 12px}
  .pl-alertes.open .pl-al-list{display:block}
  .pl-al{display:flex;gap:10px;font-size:12px;padding:5px 0;border-bottom:1px solid var(--line2);flex-wrap:wrap}
  .pl-al.bad .pl-al-r{color:var(--bad)} .pl-al.warn .pl-al-r{color:var(--warn)}
  .pl-al-n{font-weight:600;min-width:110px}
  .pl-al-r{font-weight:600;min-width:130px}
  .pl-al-d{flex:1;color:var(--ink-dim)}
  .pl-al-j{color:var(--ink-faint);font-size:11px}
  .pl-duree{margin-top:8px}
  .pl-duree-v{font-size:13px;background:var(--navy3);border-radius:8px;padding:8px 12px}
  .pl-duree-bad{font-size:12px;color:var(--bad);margin-top:6px}
  .pl-duree-warn{font-size:12px;color:var(--warn);margin-top:6px}
  .pl-m-head{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
  .pl-m-head div{text-align:center;font-size:11.5px;color:var(--ink-faint);font-weight:600}
  .pl-m-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
  .pl-m-cell{min-height:76px;background:var(--navy2);border:1px solid var(--line2);border-radius:9px;padding:7px;cursor:pointer;transition:.12s}
  .pl-m-cell:hover{border-color:var(--gold)}
  .pl-m-out{background:transparent;border:none;cursor:default}
  .pl-m-auj{border-color:var(--gold);background:rgba(201,162,75,.07)}
  .pl-m-d{font-size:12.5px;font-weight:700;margin-bottom:4px}
  .pl-m-n{font-size:11px;color:var(--ink-dim)}
  .pl-m-h{font-size:12px;color:var(--gold-soft);font-weight:600}
  .pl-m-abs{font-size:10.5px;color:var(--warn);margin-top:2px}
  .bdg-prev{color:var(--ink-faint);font-size:11.5px}
  .bdg-ec-neg{color:var(--bad);font-weight:600}
  .bdg-ec-pos{color:var(--warn);font-weight:600}
  .bdg-db{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:12px;margin-bottom:10px}
  .bdg-db-h{font-size:11.5px;color:var(--ink-faint);margin-bottom:8px}
  .bdg-db-v{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:6px 8px;border-radius:7px;cursor:pointer;flex-wrap:wrap}
  .bdg-db-v:hover{background:var(--navy3)}
  .bdg-db-nom{font-weight:600}
  /* Tableau de bord conformité (Lot C) */
  .cnt-badge{display:inline-block;background:var(--bad);color:#fff;font-size:11px;font-weight:800;border-radius:20px;padding:1px 8px;margin-left:6px;vertical-align:middle}
  .cscore-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
  /* Documents comptables */
  .compta-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
  .compta-chips{display:flex;gap:6px;flex-wrap:wrap}
  .cf-chip{background:var(--navy3);border:1px solid var(--line);color:var(--ink-dim);border-radius:20px;padding:4px 11px;font-size:12px;cursor:pointer}
  .cf-chip.on{background:var(--gold);color:var(--navy);border-color:var(--gold);font-weight:700}
  .compta-bulk{display:flex;align-items:center;gap:12px;background:var(--navy3);border:1px solid var(--gold);border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:13px}
  .compta-list{display:flex;flex-direction:column;gap:8px}
  .compta-row{display:flex;align-items:center;gap:10px;background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 12px}
  .compta-cb{width:17px;height:17px;flex:0 0 auto}
  .compta-main{flex:1;min-width:0;cursor:pointer}
  .compta-lib{font-weight:600;font-size:13.5px}
  .compta-meta{font-size:11.5px;color:var(--ink-dim);margin-top:2px}
  .compta-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
  .compta-badge.cs-todo{background:rgba(250,204,21,.16);color:#facc15}
  .compta-badge.cs-ok{background:rgba(74,222,128,.16);color:#4ade80}
  .compta-badge.cs-sent{background:rgba(96,165,250,.16);color:#60a5fa}
  .compta-badge.cs-arch{background:var(--navy3);color:var(--ink-faint)}
  .compta-acts{display:flex;gap:4px;flex:0 0 auto}
  .cd-files{display:flex;flex-direction:column;gap:6px}
  .cd-fdl{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--navy3);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px}
  .cd-history{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:8px 10px;max-height:180px;overflow-y:auto}
  .cd-hev{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px solid var(--line2);font-size:12px}
  .cd-hev:last-child{border-bottom:none}
  .cd-hev .cd-hi{flex:0 0 auto}
  .cd-hev .cd-ht{flex:1;color:var(--ink)}
  .cd-hev .cd-hm{flex:0 0 auto;color:var(--ink-faint);font-size:11px}
  /* Zone de glisser-déposer (upload en masse) */
  .compta-drop{border:2px dashed var(--line2);border-radius:14px;padding:20px 16px;text-align:center;cursor:pointer;transition:.15s;margin-bottom:12px;background:var(--navy2)}
  .compta-drop:hover{border-color:var(--gold);background:var(--navy3)}
  .compta-drop.drag{border-color:var(--gold);background:rgba(212,175,90,.10);transform:scale(1.005)}
  .compta-drop .cdz-ic{font-size:26px;line-height:1}
  .compta-drop .cdz-t{font-weight:700;font-size:14px;margin-top:6px}
  .compta-drop .cdz-t .muted{font-weight:400}
  .compta-drop .cdz-sub{font-size:11.5px;color:var(--ink-dim);margin-top:3px}
  .arrimp-files{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
  .arrimp-file{display:flex;align-items:center;gap:6px;padding:3px 0}
  .arrimp-fn{font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .arrimp-tbl th{font-size:10.5px} .arrimp-tbl td{padding:3px 4px}
  .arrimp-tbl .inp.xs{padding:4px 6px;font-size:12px;min-width:70px}
  .compta-prog{margin-bottom:12px}
  .compta-prog .cp-bar{height:8px;border-radius:6px;background:var(--navy3);overflow:hidden;border:1px solid var(--line)}
  .compta-prog .cp-fill{height:100%;background:var(--gold);transition:width .2s}
  .compta-prog .cp-lbl{font-size:11.5px;color:var(--ink-dim);margin-top:4px}
  /* Pipeline Kanban compta */
  .compta-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:6px}
  .compta-col{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:8px;min-height:120px;transition:.15s}
  .compta-col.drop{border-color:var(--gold);background:rgba(212,175,90,.08)}
  .compta-col-h{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:800;padding:6px 8px;border-radius:8px;margin-bottom:8px;border:1px solid transparent}
  .compta-col-h.cs-todo{background:rgba(250,204,21,.14);color:#facc15}
  .compta-col-h.cs-ok{background:rgba(74,222,128,.14);color:#4ade80}
  .compta-col-h.cs-sent{background:rgba(96,165,250,.14);color:#60a5fa}
  .compta-col-h.cs-arch{background:var(--navy3);color:var(--ink-dim)}
  .compta-col-h .cc-count{background:rgba(0,0,0,.25);border-radius:20px;padding:1px 8px;font-size:11px}
  .compta-col-body{display:flex;flex-direction:column;gap:7px;min-height:40px}
  .compta-card{background:var(--navy3);border:1px solid var(--line2);border-radius:10px;padding:9px;cursor:grab;transition:.12s}
  .compta-card:hover{border-color:var(--gold-soft)}
  .compta-card.dragging{opacity:.45;cursor:grabbing}
  .compta-card .cc-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}
  .compta-card .cc-type{font-size:11px;color:var(--ink-dim);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .compta-card .cc-file{text-decoration:none}
  .compta-card .cc-nofile{opacity:.7}
  .compta-card .cc-lib{font-weight:600;font-size:13px;line-height:1.25;cursor:pointer;word-break:break-word}
  .compta-card .cc-meta{font-size:11px;color:var(--ink-dim);margin-top:3px}
  .compta-card .cc-meta2{font-size:10.5px;color:var(--ink-faint);margin-top:1px}
  .compta-card .cc-miss{color:var(--warn);font-style:italic}
  .compta-card .cc-acts{margin-top:6px}
  .compta-card .compta-cb{width:15px;height:15px}
  .cc-empty{text-align:center;color:var(--ink-faint);font-size:12px;padding:10px 0}
  @media(max-width:820px){ .compta-board{grid-template-columns:1fr 1fr} }
  @media(max-width:520px){ .compta-board{grid-template-columns:1fr} }
  .cscore-card{display:flex;gap:12px;align-items:center;background:var(--navy3);border:1px solid var(--line);border-radius:12px;padding:12px}
  .cscore-ring{flex:0 0 auto;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;border:3px solid}
  .cscore-ring.cs-hi{border-color:#4ade80;color:#86efac}
  .cscore-ring.cs-mid{border-color:#facc15;color:#facc15}
  .cscore-ring.cs-lo{border-color:#f87171;color:#f87171}
  .cscore-name{font-weight:700;font-size:14px}
  .cscore-detail{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;font-size:11.5px;color:var(--ink-dim)}
  .due-row{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
  .due-row:last-child{border-bottom:none}
  .due-ic{flex:0 0 24px;text-align:center}
  .due-main{flex:1;min-width:0}
  .due-nm{font-weight:600;font-size:13px}
  .due-meta{font-size:11.5px;color:var(--ink-dim)}
  .due-badge{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
  .due-late .due-badge{background:rgba(250,204,21,.16);color:#facc15}
  .due-never .due-badge{background:rgba(248,113,113,.16);color:#f87171}
  .dlc-row{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
  .dlc-row:last-child{border-bottom:none}
  .dlc-main{flex:1;min-width:0}
  .dlc-nm{font-weight:600;font-size:13px}
  .dlc-meta{font-size:11.5px;color:var(--ink-dim)}
  .dlc-date{text-align:right;font-size:12px;white-space:nowrap}
  .dlc-type{font-size:10px;font-weight:800;padding:1px 6px;border-radius:20px;background:var(--navy3);border:1px solid var(--line)}
  .dlc-j{font-size:11px;margin-top:2px}
  .dlc-perime .dlc-j{color:#f87171;font-weight:700}
  .dlc-crit .dlc-j{color:#fb923c;font-weight:700}
  .dlc-proche .dlc-j{color:#facc15}
  .temp-card.temp-ok{border-left:3px solid var(--ok,#34d399)}
  .temp-card.temp-bad{border-left:3px solid var(--bad,#ef4444);background:rgba(239,68,68,.06)}
  .temp-card.temp-none{border-left:3px solid var(--line2)}
  .temp-card-h{display:flex;justify-content:space-between;align-items:center}
  .temp-nom{font-weight:700;font-size:14px}
  .temp-seuil{font-size:11px;color:var(--ink-faint);margin:2px 0 6px}
  .temp-val{font-size:18px}
  .temp-corr{font-size:11px;color:var(--warn,#f59e0b);margin-top:4px}
  .temp-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
  .temp-chip{font-size:11px;padding:3px 8px;border-radius:20px;background:var(--navy3);border:1px solid var(--line);cursor:pointer;white-space:nowrap}
  .temp-chip.bad{background:rgba(239,68,68,.15);border-color:var(--bad,#ef4444);color:var(--bad,#ef4444)}
  .du-docbox{background:var(--navy2);border:1px dashed var(--line2);border-radius:12px;padding:13px 15px;margin-bottom:6px}
  .du-doc{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13px;border-bottom:1px solid var(--line)}
  .du-doc a{color:var(--gold)}
  .tournee-prog{font-size:11px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
  .tournee-dots{display:flex;gap:4px;justify-content:center;margin:10px 0}
  .tournee-dots span{width:8px;height:8px;border-radius:50%;background:var(--line2)}
  .tournee-dots span.done{background:var(--ok,#34d399)}
  .tournee-dots span.cur{background:var(--gold)}
  .clean-zone{margin-bottom:16px}
  .clean-zone-t{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--gold);margin-bottom:6px}
  .clean-task{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:10px;align-items:center;padding:9px 12px;background:var(--navy2);border:1px solid var(--line);border-radius:8px;margin-bottom:5px;cursor:pointer;font-size:13.5px}
  .clean-task.done{background:rgba(52,211,153,.08);border-color:var(--ok,#34d399)}
  .clean-task.done .clean-lbl{text-decoration:line-through;color:var(--ink-dim)}
  .clean-freq{font-size:10px;color:var(--ink-faint);text-transform:uppercase}
  .clean-by{font-size:11px;color:var(--ink-dim)}
  .arriv-bad{background:rgba(239,68,68,.06)}
  .conf-equip{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:13px 15px}
  .conf-equip.ce-soon{border-left:3px solid var(--warn,#f59e0b)}
  .conf-equip.ce-late{border-left:3px solid var(--bad,#ef4444);background:rgba(239,68,68,.06)}
  .conf-equip.ce-ok{border-left:3px solid var(--ok,#34d399)}
  .conf-equip-h{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
  .conf-equip-t{font-weight:700;font-size:14px}
  .conf-equip-type{font-size:11px;color:var(--ink-faint)}
  .conf-equip-badge{font-size:10px;padding:2px 9px;border-radius:20px;background:var(--navy3);white-space:nowrap}
  .ce-late .conf-equip-badge{background:var(--bad,#ef4444);color:#fff}
  .ce-soon .conf-equip-badge{background:var(--warn,#f59e0b);color:#1a1205}
  .conf-equip-dates{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-dim);margin:8px 0}
  .conf-equip-presta{font-size:11.5px;color:var(--ink-faint)}
  .conf-equip-act{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}
  .du-niv{display:inline-block;min-width:26px;text-align:center;font-weight:800;padding:2px 6px;border-radius:6px}
  .du-low{background:rgba(52,211,153,.15);color:var(--ok,#34d399)}
  .du-med{background:rgba(245,158,11,.15);color:var(--warn,#f59e0b)}
  .du-high{background:rgba(239,68,68,.15);color:var(--bad,#ef4444)}
  /* ===== Inventaire ===== */
  .inv-topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
  .inv-meta{display:flex;gap:14px;flex-wrap:wrap}
  .inv-meta label{display:flex;flex-direction:column;font-size:11px;color:var(--ink-dim);gap:3px}
  .inv-metai{max-width:150px}
  .inv-total-box{background:var(--navy);border:1px solid var(--gold);border-radius:12px;padding:10px 20px;text-align:right}
  .inv-total-box span{display:block;font-size:10px;color:var(--ink-dim);letter-spacing:.5px}
  .inv-total-box b{font-size:24px;color:var(--gold)}
  .inv-cat{margin-bottom:16px}
  .inv-cat-h{display:flex;justify-content:space-between;align-items:center;background:var(--navy3);padding:7px 12px;border-radius:8px 8px 0 0;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--gold)}
  .inv-cat-tot{color:var(--ink);font-size:13px}
  .inv-rows{border:1px solid var(--line);border-top:0;border-radius:0 0 8px 8px}
  .inv-row{display:grid;grid-template-columns:1.4fr 2fr;gap:10px;align-items:center;padding:7px 12px;border-bottom:1px solid var(--line)}
  .inv-row:last-child{border-bottom:0}
  .inv-row.has{background:rgba(201,162,75,.06)}
  .inv-desig{display:flex;flex-direction:column;gap:1px}
  .inv-desig b{font-size:13px}
  .inv-vol{font-size:10px;color:var(--ink-faint)}
  .inv-prix{font-size:11px;color:var(--ink-dim)}
  .inv-zones{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-start}
  .inv-z{display:flex;flex-direction:column;font-size:9px;color:var(--ink-faint);gap:1px;text-align:center}
  .inv-zin{width:60px;text-align:center;padding:5px}
  .inv-qte{font-size:12px;color:var(--ink-dim);min-width:44px;text-align:right}
  .inv-tot{font-size:13px;font-weight:700;min-width:80px;text-align:right;color:var(--gold)}
  .inv-comm-btn{opacity:.35;flex:0 0 auto}
  .inv-comm-btn.on{opacity:1;color:var(--gold-soft)}
  .inv-comm-btn:hover{opacity:1}
  .inv-comm-txt{font-size:11.5px;color:var(--ink-dim);padding:2px 12px 6px;line-height:1.4}
  .pl-cp-tag{font-size:10px;color:var(--gold-soft);background:rgba(201,162,75,.14);
    border-radius:6px;padding:1px 5px;white-space:nowrap;font-weight:600}
  .pl-cp-solde{font-size:10px;color:var(--ink-dim);background:var(--navy3);
    border:1px solid var(--line2);border-radius:6px;padding:1px 6px;
    white-space:nowrap;cursor:pointer;font-weight:600}
  .pl-cp-solde:hover{color:var(--gold-soft);border-color:var(--line)}
  .inv-crow{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:6px 12px;border-bottom:1px solid var(--line);font-size:13px}
  .inv-crow:last-child{border-bottom:0}
  .inv-cprix{color:var(--ink-dim);font-variant-numeric:tabular-nums}
  .inv-estab-pick{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
  .inv-estab-chk{display:flex;align-items:center;gap:6px;font-size:13px;background:var(--navy3);border:1px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer}
  .inv-estab-chk input{margin:0}
  @media(max-width:760px){.inv-row{grid-template-columns:1fr}.inv-zones{justify-content:flex-start}.inv-zin{width:52px}}
  /* Stats inventaire */
  .inv-stats-filters{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 18px}
  .inv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
  .inv-kpi{background:var(--navy2);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
  .inv-kpi-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-faint);font-weight:700}
  .inv-kpi-val{font-size:26px;font-weight:800;margin:6px 0 2px;color:var(--gold)}
  .inv-kpi-sub{font-size:12px;color:var(--ink-dim)}
  .inv-stats-card{background:var(--navy2);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:18px}
  .inv-stats-card-h{font-weight:800;font-size:14px;margin-bottom:12px}
  .inv-stats-2col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  @media(max-width:900px){.inv-stats-2col{grid-template-columns:1fr}}
  .inv-chart-wrap{width:100%;overflow-x:auto}
  .inv-svg{width:100%;height:auto;min-width:520px}
  .inv-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;justify-content:center}
  .inv-leg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-dim)}
  .inv-leg i{width:12px;height:3px;border-radius:2px;display:inline-block}
  .inv-catbars{display:flex;flex-direction:column;gap:9px}
  .inv-catrow{display:grid;grid-template-columns:120px 1fr auto;gap:10px;align-items:center}
  .inv-catname{font-size:12px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .inv-catbar{background:var(--navy3);border-radius:6px;height:16px;overflow:hidden}
  .inv-catbar-fill{height:100%;border-radius:6px;transition:width .3s}
  .inv-catval{font-size:12px;font-weight:700;white-space:nowrap}
  .inv-catpct{color:var(--ink-faint);font-weight:500;margin-left:5px}
  .inv-top-tbl{width:100%;border-collapse:collapse;font-size:13px}
  .inv-top-tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);padding:6px 8px;border-bottom:1px solid var(--line)}
  .inv-top-tbl td{padding:6px 8px;border-bottom:1px solid var(--line2)}
  .inv-top-tbl .num{text-align:right}
  .inv-top-sort{display:flex;gap:6px;align-items:center;margin-bottom:10px}
  .inv-top-tbl th.inv-th-active{color:var(--gold)}
  @media(max-width:760px){.inv-catrow{grid-template-columns:90px 1fr auto}}
  .zc-cfg-title{font-weight:800;font-size:14px;margin-bottom:12px}
  .zc-summary{font-size:13px;color:var(--ink-dim);margin-bottom:12px}
  .zc-summary b{color:var(--gold)}
  .zc-day{margin-bottom:16px;border:1px solid var(--line2);border-radius:14px;overflow:hidden}
  .zc-day-head{background:var(--navy3);padding:9px 14px;font-weight:700;font-size:13.5px;text-transform:capitalize;display:flex;justify-content:space-between;align-items:center}
  .zc-day-head span{font-size:11.5px;color:var(--ink-dim);font-weight:400;text-transform:none}
  .zc-day-body{display:flex;flex-direction:column}
  .zc-book{display:flex;gap:12px;align-items:flex-start;padding:10px 14px;border-top:1px solid var(--line)}
  .zc-book:first-child{border-top:0}
  .zc-time{font-weight:800;font-size:14px;min-width:48px;color:var(--gold)}
  .zc-guests{min-width:40px;text-align:center;font-weight:800;font-size:16px;line-height:1}
  .zc-guests span{display:block;font-size:9px;color:var(--ink-faint);font-weight:400}
  .zc-main{flex:1;min-width:0}
  .zc-name{font-weight:700;font-size:13.5px}
  .zc-meta{font-size:12px;color:var(--ink-dim);margin-top:2px}
  .zc-meta a{color:var(--gold);text-decoration:none}
  .zc-comment{font-size:12px;color:var(--ink-dim);margin-top:4px;background:var(--navy3);border-radius:8px;padding:5px 9px}
  .zc-badge{font-size:10px;font-weight:700;padding:1px 7px;border-radius:20px;background:var(--navy3);color:var(--ink-dim);vertical-align:middle}
  .zc-badge.zc-ok{background:rgba(74,222,128,.16);color:#4ade80}
  .zc-badge.zc-bad{background:rgba(248,113,113,.16);color:#f87171}
  .zc-badge.zc-wait{background:rgba(250,204,21,.16);color:#facc15}
  /* ---- Grille v2 lisible ---- */
  .grille-searchbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
  .grille-baseseg{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
  .grille-baseseg button{background:var(--navy2);border:0;color:var(--ink-dim);padding:8px 14px;cursor:pointer;font-size:13px;font-weight:600}
  .grille-baseseg button.on{background:var(--gold);color:#1a1205}
  .grille-legend{font-size:12px;color:var(--ink-dim);margin:10px 0 12px;padding:8px 12px;background:var(--navy2);border-radius:10px;border:1px solid var(--line)}
  .grille-tbl-v2{min-width:640px}
  .grille-tbl-v2 .gr-th-poste{text-align:left;width:210px}
  .grille-tbl-v2 .gr-th-ech{text-align:center;padding:10px}
  .grille-tbl-v2 .gr-ech-lbl{display:block;font-weight:800;font-size:13px;color:var(--ink)}
  .grille-tbl-v2 .gr-ech-sub{display:block;font-size:10px;color:var(--ink-faint);font-weight:400;text-transform:uppercase;letter-spacing:.4px}
  .grille-tbl-v2 td{padding:0;border-bottom:1px solid var(--line)}
  .grille-tbl-v2 .gr-poste{padding:12px 14px;font-weight:700;font-size:13.5px;vertical-align:middle}
  .grille-tbl-v2 .gr-cadre{display:inline-block;margin-left:7px;font-size:9.5px;font-weight:700;color:var(--gold);background:var(--gold-soft);padding:1px 7px;border-radius:20px;vertical-align:middle;text-transform:uppercase}
  .grille-tbl-v2 .gr-ech{text-align:center;padding:9px 8px;border-left:1px solid var(--line)}
  .grille-tbl-v2 .gr-taux{font-weight:800;font-size:15px;color:var(--gold)}
  .grille-tbl-v2 .gr-taux span{font-size:10px;color:var(--ink-faint);font-weight:400;margin-left:1px}
  .grille-tbl-v2 .gr-brut{font-size:13px;font-weight:600;margin-top:3px}
  .grille-tbl-v2 .gr-brut span{font-size:9.5px;color:var(--ink-faint);font-weight:400;margin-left:3px;text-transform:uppercase}
  .grille-tbl-v2 .gr-netv{font-size:12px;color:var(--ink-dim);margin-top:1px}
  .grille-tbl-v2 .gr-netv span{font-size:9.5px;color:var(--ink-faint);margin-left:3px;text-transform:uppercase}
  .grille-tbl-v2 .gr-ech1{background:rgba(255,255,255,.015)}
  .grille-tbl-v2 .gr-ech2{background:rgba(255,255,255,.03)}
  .grille-tbl-v2 tbody tr.gr-row:hover td{background:var(--navy3)}
  .gr-famrow td{padding:7px 14px !important;background:var(--navy);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:1px}
  /* détail poste (drawer) */
  .recrut-clickable{cursor:pointer;transition:border-color .15s}
  .recrut-clickable:hover{border-color:var(--gold)}
  .rc-remun{color:var(--gold);font-weight:700}
  .recrut-calchint{font-size:12px;line-height:1.5;background:var(--navy3);border-radius:8px;padding:8px 11px;margin:2px 0 10px}
  .recrut-calchint b{color:var(--gold)}
  .rcdet-head{margin-bottom:12px}
  .rcdet-poste{font-size:20px;font-weight:800}
  .rcdet-sub{font-size:13px;color:var(--ink-dim);margin-top:3px}
  .rcdet-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
  .rcdet-sec{margin-bottom:16px}
  .rcdet-sec-t{font-size:12px;font-weight:700;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.4px;margin-bottom:7px}
  .rcdet-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
  .rcdet-tbl td{padding:7px 10px;border-bottom:1px solid var(--line)}
  .rcdet-tbl td:last-child{text-align:right;font-weight:600}
  .rcdet-grid{width:100%;border-collapse:collapse;font-size:13px;background:var(--navy2);border-radius:10px;overflow:hidden}
  .rcdet-grid th{background:var(--navy3);padding:8px;font-size:11px;color:var(--ink-dim)}
  .rcdet-grid td{padding:8px 10px;text-align:center;border-bottom:1px solid var(--line)}
  .rcdet-grid td:first-child{text-align:left;color:var(--ink-dim);font-size:12px}
  .rcdet-grid .rcdet-net td{color:var(--gold)}
  .rcdet-text{font-size:13px;line-height:1.55;white-space:pre-wrap;background:var(--navy2);border-radius:10px;padding:10px 12px}
  .rcdet-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
  /* ---- Référentiel recrutement ---- */
  .rex-sec{margin-bottom:26px}
  .rex-sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .rex-sec-h h3{margin:0;font-size:15px}
  .rex-crit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
  .rex-card{background:var(--navy2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
  .rex-card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .rex-card-h b{font-size:13.5px;text-transform:uppercase;letter-spacing:.3px;color:var(--gold)}
  .rex-card-act{display:flex;gap:2px;flex-shrink:0}
  .rex-crit-list{margin:0;padding-left:18px;font-size:13px;line-height:1.7}
  .rex-crit-list li{color:var(--ink-dim)}
  .rex-av-list{display:flex;flex-direction:column;gap:8px}
  .rex-av{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--navy2);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
  .rex-av-main{display:flex;align-items:flex-start;gap:10px}
  .rex-av-dot{color:var(--ok,#34d399);font-weight:800;flex-shrink:0}
  .rex-av-t{font-weight:600;font-size:14px}
  .rex-av-d{font-size:12px;color:var(--ink-dim);margin-top:2px}
  .rex-prime-wrap{overflow-x:auto}
  .rex-prime-tbl{width:100%;border-collapse:collapse;font-size:13px;min-width:600px}
  .rex-prime-tbl th{background:var(--navy3);padding:9px 10px;text-align:left;font-size:11px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.4px}
  .rex-prime-tbl td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
  .rex-prime-st{display:inline-block;font-size:11px;padding:2px 9px;border-radius:20px;background:var(--navy3);color:var(--ink-dim)}
  .cf-black{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:var(--bad,#ef4444);padding:2px 9px;border-radius:20px;vertical-align:middle;margin-left:6px}
  .rex-diag{background:var(--navy3);border:1px solid var(--gold-soft);border-radius:12px;padding:14px 16px;margin-bottom:20px}
  .rex-diag-t{font-weight:700;font-size:14px;margin-bottom:8px}
  .rex-diag-err{font-size:12.5px;color:var(--warn,#f59e0b);line-height:1.5;margin-bottom:6px}
  .rex-diag code{background:var(--navy);padding:1px 6px;border-radius:5px;font-size:11.5px;color:var(--gold)}
  .grille-searchbar{margin:12px 0}
  .grille-searchbar .inp{max-width:420px}
  .gc-ask-out{font-size:13px;line-height:1.5}
  .gc-ask-out b{color:var(--gold)}
  .gc-ask-out-wrap{flex:1}
  /* ---- Candidatures ---- */
  .cand-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
  .cand-search{flex:1;min-width:220px;max-width:420px}
  .cand-viewtoggle{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
  .cand-viewtoggle button{background:var(--navy2);border:0;color:var(--ink-dim);padding:8px 12px;cursor:pointer;font-size:13px}
  .cand-viewtoggle button.on{background:var(--gold-soft);color:var(--gold);font-weight:700}
  .cand-pipesummary{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin:12px 0}
  .cand-sumcell{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:8px 4px;text-align:center}
  .cand-sumcell .cs-n{font-size:19px;font-weight:800;color:var(--gold)}
  .cand-sumcell .cs-l{font-size:9.5px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.2px;line-height:1.15;margin-top:2px}
  .cand-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px}
  .cand-col{flex:0 0 244px;background:var(--navy2);border:1px solid var(--line2);border-radius:12px;display:flex;flex-direction:column;max-height:72vh;transition:background .15s,border-color .15s}
  .cand-col.cc-over{border-color:var(--gold);background:rgba(242,193,78,.06)}
  .cand-col-head{padding:10px 12px;font-size:12.5px;font-weight:700;border-bottom:1px solid var(--line2);border-radius:12px 12px 0 0;display:flex;align-items:center;gap:6px}
  .cand-col-head .cch-ic{opacity:.9}
  .cand-col-head .cch-n{margin-left:auto;background:rgba(255,255,255,.14);border-radius:20px;padding:1px 8px;font-size:11px}
  .cand-col-body{padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:40px}
  /* Carte premium */
  .cand-card{background:var(--navy3);border:1px solid var(--line);border-radius:12px;padding:10px 11px;cursor:pointer;transition:border-color .15s,transform .1s,box-shadow .15s}
  .cand-card:hover{border-color:var(--gold);box-shadow:0 4px 14px rgba(0,0,0,.22)}
  .cand-card.cc-dragging{opacity:.5;transform:scale(.97)}
  .cc-top{display:flex;align-items:center;gap:9px}
  .cc-ava{width:38px;height:38px;border-radius:50%;background-size:cover;background-position:center;flex:0 0 38px;border:1px solid var(--line2)}
  .cc-ava-i{display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--navy);background:linear-gradient(135deg,var(--gold),#e0a34b)}
  .cc-idnt{min-width:0;flex:1}
  .cc-name{font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cc-stars{color:var(--gold);font-size:11px;flex:0 0 auto}
  .cc-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
  .cc-chip{font-size:10.5px;background:var(--navy2);border:1px solid var(--line);padding:1px 7px;border-radius:20px;color:var(--ink-dim);white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}
  .cc-chip-e{color:var(--gold);border-color:rgba(242,193,78,.3)}
  .cc-score{flex:0 0 auto;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
  .cc-score.sc-hi{background:rgba(34,197,94,.2);color:#86efac}
  .cc-score.sc-mid{background:rgba(250,204,21,.18);color:#facc15}
  .cc-score.sc-lo{background:rgba(148,163,184,.16);color:#cbd5e1}
  .cc-meta{font-size:11.5px;color:var(--ink-dim);margin-top:8px}
  .cc-foot{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
  .cc-tag{font-size:10.5px;color:var(--ink-dim);background:var(--navy2);border:1px solid var(--line);padding:1px 7px;border-radius:20px}
  .cc-tag-x{color:var(--gold);border-color:rgba(242,193,78,.25)}
  .cand-empty{color:var(--ink-faint);font-size:12px;text-align:center;padding:8px}
  .cp-recue{background:rgba(148,163,184,.18);color:#cbd5e1}
  .cp-examiner{background:rgba(129,140,248,.18);color:#a5b4fc}
  .cp-contacter{background:rgba(56,189,248,.18);color:#38bdf8}
  .cp-planifie{background:rgba(250,204,21,.18);color:#facc15}
  .cp-passe{background:rgba(56,189,248,.18);color:#38bdf8}
  .cp-propo{background:rgba(168,85,247,.2);color:#c084fc}
  .cp-acceptee{background:rgba(74,222,128,.18);color:#4ade80}
  .cp-attente{background:rgba(168,85,247,.16);color:#c084fc}
  .cp-essai{background:rgba(251,146,60,.2);color:#fb923c}
  .cp-embauche{background:rgba(34,197,94,.28);color:#86efac}
  .cp-refusee{background:rgba(248,113,113,.16);color:#f87171}
  .cp-vivier{background:rgba(203,213,225,.15);color:#cbd5e1}
  .cand-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
  .cand-listwrap{overflow-x:auto;border:1px solid var(--line2);border-radius:12px}
  .cand-tbl{border-collapse:collapse;width:100%;font-size:13px;min-width:720px}
  .cand-tbl th{background:var(--navy3);padding:9px 11px;text-align:left;font-size:11px;color:var(--ink-dim);border-bottom:1px solid var(--line2)}
  .cand-tbl td{padding:9px 11px;border-bottom:1px solid var(--line);vertical-align:middle}
  .cand-tbl tbody tr:hover{background:var(--navy3)}
  .cand-list-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:14px}
  .cand-viv-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:13px 14px;cursor:pointer;transition:border-color .15s}
  .cand-viv-card:hover{border-color:var(--gold)}
  .cvv-top{display:flex;justify-content:space-between;align-items:center}
  .cvv-name{font-weight:700}
  .cvv-stars{color:var(--gold);font-size:12px}
  .cvv-poste{font-size:12.5px;color:var(--ink-dim);margin-top:3px}
  .cvv-contact{font-size:12px;color:var(--ink-dim);margin-top:5px}
  .cvv-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
  .cvv-tags span{font-size:10.5px;background:var(--navy3);border:1px solid var(--line);padding:2px 7px;border-radius:20px;color:var(--ink-dim)}
  .cvv-cv{font-size:11.5px;color:var(--gold);margin-top:8px}
  /* Fiche candidat (drawer) */
  .cand-fiche{padding:4px 2px}
  .cf-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
  .cf-name{font-size:20px;font-weight:800}
  .cf-sub{font-size:13px;color:var(--ink-dim);margin-top:3px}
  .cf-pipe{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
  .cand-step{font-size:11px;padding:5px 9px;border-radius:20px;border:1px solid var(--line2);background:var(--navy2);color:var(--ink-dim);cursor:pointer}
  .cand-step.on{font-weight:800;border-color:transparent}
  .cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
  .cf-item{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:9px 11px;font-size:13px}
  .cf-item span{display:block;font-size:11px;color:var(--ink-dim);margin-bottom:2px}
  .cf-item a{color:var(--gold);text-decoration:none}
  .cf-sec{margin-bottom:14px}
  .cf-sec-t{font-size:12px;font-weight:700;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
  .cf-text{font-size:13px;line-height:1.55;white-space:pre-wrap;background:var(--navy2);border-radius:10px;padding:10px 12px}
  .cf-ent{background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:10px 12px}
  .cf-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
  .cand-form{max-height:64vh;overflow-y:auto;padding-right:4px}
  .cand-formsep{font-size:12px;font-weight:800;color:var(--gold);margin:14px 0 8px;padding-top:10px;border-top:1px solid var(--line)}
  .cand-viv-check{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:10px;cursor:pointer}
  /* Analyse IA candidat */
  .cf-ai{background:linear-gradient(180deg,rgba(242,193,78,.06),var(--navy2));border:1px solid var(--line2);border-radius:14px;padding:14px 15px;margin-bottom:16px}
  .cf-ai-empty{background:var(--navy2)}
  .cf-ai-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
  .cf-ai-t{font-weight:800;font-size:14px}
  .cf-ai-mode{font-size:11px;color:var(--ink-faint)}
  .cf-ai-btns{display:flex;gap:8px;flex-wrap:wrap}
  .cf-ai-top{display:flex;gap:14px;align-items:center;margin:12px 0}
  .cf-ai-score{flex:0 0 auto;width:72px;height:72px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .cf-ai-score.sc-hi{background:rgba(34,197,94,.18);color:#86efac}
  .cf-ai-score.sc-mid{background:rgba(250,204,21,.16);color:#facc15}
  .cf-ai-score.sc-lo{background:rgba(148,163,184,.16);color:#cbd5e1}
  .cf-ai-score-n{font-size:30px;font-weight:800;line-height:1}
  .cf-ai-score-l{font-size:11px;opacity:.8;margin-top:2px}
  .cf-ai-raisons ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px}
  .cf-ai-raisons li{font-size:12.5px}
  .cf-ai-raisons .r-plus{color:#86efac}
  .cf-ai-raisons .r-minus{color:#fbbf24}
  .cf-ai-sec{margin-top:12px}
  .cf-ai-st{font-size:12px;font-weight:700;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}
  .cf-ai-resume,.cf-ai-q,.cf-ai-inc{margin:0;padding-left:18px;font-size:13px;line-height:1.6}
  .cf-ai-inc li{color:#fbbf24}
  .cf-compat-row{display:grid;grid-template-columns:120px 1fr 42px;gap:8px;align-items:center;margin-top:6px}
  .cf-compat-n{font-size:12.5px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cf-compat-bar{background:var(--navy3);border-radius:6px;height:14px;overflow:hidden}
  .cf-compat-fill{height:100%;border-radius:6px}
  .cf-compat-fill.sc-hi{background:#4ade80}.cf-compat-fill.sc-mid{background:#facc15}.cf-compat-fill.sc-lo{background:#94a3b8}
  .cf-compat-p{font-size:12.5px;font-weight:700;text-align:right}
  .cf-compat-why{font-size:11px;color:var(--ink-faint);margin:2px 0 4px 128px}
  .cf-fit-chips{display:flex;flex-wrap:wrap;gap:6px}
  .cf-fit-chip{font-size:11.5px;background:var(--navy3);border:1px solid var(--line);padding:3px 9px;border-radius:20px;color:var(--ink-dim)}
  @media(max-width:640px){.cf-compat-row{grid-template-columns:90px 1fr 38px}.cf-compat-why{margin-left:98px}}
  /* Quickbar fiche candidat */
  .cf-quickbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
  .cf-hired{font-size:12.5px;color:#86efac;font-weight:700;display:flex;align-items:center}
  /* Timeline */
  .cf-timeline{display:flex;flex-direction:column;gap:2px}
  .cf-tl-row{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
  .cf-tl-row:last-child{border-bottom:none}
  .cf-tl-ic{flex:0 0 22px;text-align:center;font-size:14px}
  .cf-tl-lbl{font-size:12.5px}
  .cf-tl-meta{font-size:11px;color:var(--ink-faint);margin-top:1px}
  /* Disponibilités */
  .dispo-grid{display:flex;flex-direction:column;gap:6px}
  .dispo-row{display:grid;grid-template-columns:90px 1fr 1fr;gap:8px;align-items:center}
  .dispo-day{font-size:13px;color:var(--ink-dim)}
  .dispo-cell{border:1px solid var(--line2);background:var(--navy2);color:var(--ink-dim);border-radius:8px;padding:7px 6px;font-size:12.5px;cursor:pointer;transition:.15s}
  .dispo-cell.on{background:rgba(242,193,78,.16);border-color:var(--gold);color:var(--gold);font-weight:700}
  /* Email */
  .em-out{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
  /* Stats recrutement */
  .rst-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}
  .rst-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 10px;text-align:center}
  .rst-n{font-size:22px;font-weight:800;color:var(--gold)}
  .rst-l{font-size:10.5px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.3px;margin-top:2px}
  .rst-sub{font-size:11px;color:var(--ink-faint);margin-top:2px}
  .rst-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
  .rst-card{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:13px 15px;margin-bottom:12px}
  .rst-card-t{font-size:12px;font-weight:700;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.3px;margin-bottom:10px}
  .rst-bar-row{display:grid;grid-template-columns:130px 1fr 34px;gap:8px;align-items:center;margin-bottom:7px}
  .rst-bar-l{font-size:12.5px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rst-bar{background:var(--navy3);border-radius:6px;height:14px;overflow:hidden}
  .rst-bar-fill{height:100%;background:#818cf8;border-radius:6px}
  .rst-bar-fill.gold{background:var(--gold)}
  .rst-bar-v{font-size:12.5px;font-weight:700;text-align:right}
  .rst-chips{display:flex;flex-wrap:wrap;gap:8px}
  .rst-chip{font-size:12px;background:var(--navy3);border:1px solid var(--line);padding:5px 10px;border-radius:20px;color:var(--ink-dim)}
  .rst-chip-n{font-weight:800;color:var(--gold)}
  @media(max-width:760px){.rst-kpis{grid-template-columns:repeat(3,1fr)}.rst-grid{grid-template-columns:1fr}}
  /* Matching */
  .mm-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
  .mm-sum-cell{border-radius:10px;padding:9px;text-align:center;font-size:12.5px}
  .mm-sum-cell b{font-size:18px;display:block}
  .mm-sum-cell span{font-size:10px;opacity:.8}
  .mm-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto}
  .mm-row{display:flex;gap:11px;align-items:center;background:var(--navy2);border:1px solid var(--line2);border-radius:10px;padding:9px 11px;cursor:pointer;transition:border-color .15s}
  .mm-row:hover{border-color:var(--gold)}
  .mm-score{flex:0 0 auto;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
  .mb-hi{background:rgba(34,197,94,.2);color:#86efac}
  .mb-mid{background:rgba(250,204,21,.18);color:#facc15}
  .mb-low{background:rgba(129,140,248,.18);color:#a5b4fc}
  .mb-lo{background:rgba(148,163,184,.16);color:#cbd5e1}
  .mm-name{font-weight:700;font-size:13.5px}
  .mm-ai{font-size:10.5px;background:rgba(242,193,78,.16);color:var(--gold);padding:1px 7px;border-radius:20px;margin-left:6px}
  .mm-meta{font-size:12px;color:var(--ink-dim);margin-top:2px}
  .mm-whys{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
  .mm-why{font-size:10.5px;background:var(--navy3);border:1px solid var(--line);padding:1px 7px;border-radius:20px;color:var(--ink-dim)}
  @media(max-width:640px){.mm-summary{grid-template-columns:1fr}.dispo-row{grid-template-columns:70px 1fr 1fr}}
  /* Entonnoir recrutement */
  .funnel{display:flex;flex-direction:column;gap:8px}
  .fn-row{display:grid;grid-template-columns:150px 1fr 48px;gap:10px;align-items:center}
  .fn-lbl{font-size:12.5px;color:var(--ink-dim)}
  .fn-track{background:var(--navy3);border-radius:8px;height:26px;overflow:hidden}
  .fn-fill{height:100%;background:linear-gradient(90deg,var(--gold),#e0a34b);color:var(--navy);font-weight:800;font-size:12.5px;display:flex;align-items:center;padding:0 10px;border-radius:8px;min-width:24px}
  .fn-conv{font-size:12px;color:var(--ok);text-align:right;font-weight:700}
  .fn-foot{font-size:12px;color:var(--ink-dim);margin-top:6px}
  @media(max-width:640px){.fn-row{grid-template-columns:100px 1fr 40px}}
  /* Doublons */
  .dup-list{display:flex;flex-direction:column;gap:12px;max-height:56vh;overflow-y:auto}
  .dup-pair{border:1px solid var(--line2);border-radius:12px;padding:10px 12px;background:var(--navy2)}
  .dup-raison{font-size:12px;color:#facc15;font-weight:700;margin-bottom:8px}
  .dup-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .dup-card{background:var(--navy3);border:1px solid var(--line);border-radius:10px;padding:10px}
  .dup-name{font-weight:700;font-size:13.5px}
  .dup-meta{font-size:11.5px;color:var(--ink-dim);margin-top:2px}
  .dup-card .btn{margin-top:8px;width:100%}
  @media(max-width:640px){.dup-cards{grid-template-columns:1fr}}
  @media(max-width:640px){
    .cand-pipesummary{grid-template-columns:repeat(4,1fr)}
    .cf-grid{grid-template-columns:1fr}
  }
.rhpaie-switch button{flex:1;border:none;background:transparent;color:var(--ink-dim);font-weight:700;font-size:14px;padding:10px 14px;border-radius:10px;cursor:pointer;transition:.15s}
.rhpaie-switch button.on{background:var(--gold);color:var(--navy)}
.rhpaie-switch button:not(.on):hover{color:var(--ink)}
.pf-kpi-hl{border-color:var(--gold)!important;background:linear-gradient(180deg,rgba(242,193,78,.08),var(--navy2))}
.pf-kpi-hl .sk-kpi-v{color:var(--gold)}
/* Dashboard — accès rapides */
.dg-qa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.dg-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
/* Bannière « À traiter maintenant » */
.atr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}
.atr-card{display:flex;align-items:center;gap:11px;background:var(--navy2);border:1px solid var(--line2);border-left-width:4px;border-radius:11px;padding:12px 14px;cursor:pointer;transition:.15s}
.atr-card:hover{transform:translateY(-1px);background:var(--navy3)}
.atr-card.atr-bad{border-left-color:var(--bad)}
.atr-card.atr-warn{border-left-color:var(--warn)}
.atr-card.atr-info{border-left-color:var(--gold)}
.atr-card .atr-ic{font-size:22px;line-height:1;flex:0 0 auto}
.atr-card .atr-txt{flex:1;min-width:0}
.atr-card .atr-msg{font-size:13.5px;font-weight:600;line-height:1.3}
.atr-card .atr-mod{font-size:11px;color:var(--ink-faint);margin-top:2px;text-transform:uppercase;letter-spacing:.03em}
.atr-card .atr-go{font-size:20px;color:var(--ink-faint);flex:0 0 auto}
.atr-clear{background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.25);color:#86efac;border-radius:11px;padding:14px 16px;font-size:14px;font-weight:600;text-align:center}
.dg-tile{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;cursor:pointer;transition:.15s;display:flex;flex-direction:column}
.dg-tile:hover{border-color:var(--gold);transform:translateY(-1px)}
.dg-tile-h{display:flex;align-items:center;gap:8px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid var(--line2)}
.dg-tile-ic{font-size:16px}
.dg-tile-t{font-weight:700;font-size:13px;flex:1}
.dg-tile-go{color:var(--ink-faint);font-size:18px;line-height:1}
.dg-tile-b{display:flex;flex-direction:column;gap:0;min-height:20px}
.dg-tile-load,.dg-tile-empty{color:var(--ink-faint);font-size:12.5px;padding:4px 0}
.dgt-count{font-size:11.5px;color:var(--gold-soft);font-weight:600;margin-bottom:6px}
.dgt-row{display:flex;flex-direction:column;gap:1px;padding:5px 0;border-bottom:1px solid var(--line2)}
.dgt-row:last-child{border-bottom:0}
.dgt-main{font-size:13px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dgt-meta{font-size:11px;color:var(--ink-faint)}
.dgt-badge{display:inline-block;font-size:10px;background:var(--navy3);color:var(--ink-dim);padding:0 6px;border-radius:20px;margin-left:3px}
.dgt-hours{font-size:11px;color:var(--gold);font-variant-numeric:tabular-nums;font-weight:600}
.dgt-nextday{font-size:9.5px;color:var(--ink-faint);font-weight:400}
.dgt-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}
.dgt-more{font-size:11px;color:var(--ink-faint);padding-top:6px;font-style:italic}
.dgt-ok{color:var(--ok,#34d399)}
.dgt-draft{color:var(--warn,#f59e0b)}
.dgt-red{color:var(--bad,#ef4444);font-weight:700}
.dgt-amber{color:var(--warn,#f59e0b);font-weight:700}
.dg-qa{display:flex;align-items:center;gap:12px;background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;cursor:pointer;transition:.15s}
.dg-qa:hover{border-color:var(--gold);transform:translateY(-1px)}
.dg-qa-ic{font-size:22px;flex:none}
.dg-qa-main{flex:1;min-width:0}
.dg-qa-t{font-weight:700;font-size:14px}
.dg-qa-s{font-size:12px;color:var(--ink-dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis}
.dg-qa-go{font-size:22px;color:var(--ink-faint);flex:none}
.dg-rhbadge{display:inline-block;background:rgba(220,90,90,.16);color:var(--bad);border-radius:12px;padding:1px 8px;font-size:11px;font-weight:700;white-space:nowrap}
.dg-qa:hover .dg-qa-go{color:var(--gold)}
.dg-qa-dot{position:absolute;top:-3px;right:-5px;width:11px;height:11px;border-radius:50%;background:var(--bad);border:2px solid var(--navy2);box-shadow:0 0 0 1px var(--bad)}
.plat-estab-row{display:flex;flex-wrap:wrap;gap:6px}
.plat-estab-chk{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:5px 10px;border:1px solid var(--line2);border-radius:8px;cursor:pointer;background:var(--navy3)}
.plat-estab-chk.on{border-color:var(--gold);color:var(--gold-soft)}
.plat-estab-chk input{margin:0}
.meet-sec-chk{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:8px 11px;border:1px solid var(--line2);border-radius:9px;cursor:pointer;background:var(--navy3)}
.meet-sec-chk:has(input:checked){border-color:var(--gold);color:var(--gold-soft)}
.meet-sec-chk input{margin:0;flex:0 0 auto}
.meet-done-chk{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:4px 9px;border:1px solid var(--line2);border-radius:7px;cursor:pointer;background:var(--navy2)}
.meet-done-chk input{margin:0}
.meet-item.meet-done{opacity:.72}
.meet-item.meet-done .fld span{text-decoration:none}
.file-estab-row{display:flex;flex-wrap:wrap;gap:6px}
.file-estab-chk{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:5px 10px;border:1px solid var(--line2);border-radius:8px;cursor:pointer;background:var(--navy3)}
.file-estab-chk.on{border-color:var(--gold);color:var(--gold-soft)}
.file-estab-chk input{margin:0}
.sk-mini td,.sk-mini th{padding:5px 9px}
.sk-sortable{cursor:pointer;user-select:none}
.sk-sortable:hover{color:var(--gold)}
.sk-sortable.on{color:var(--gold)}
.sk-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.sk-kpi{background:var(--navy2);border:1px solid var(--line2);border-radius:12px;padding:12px 14px}
.sk-kpi-l{font-size:11.5px;color:var(--ink-faint);margin-bottom:4px}
.sk-kpi-v{font-size:20px;font-weight:700;font-family:var(--f-disp,inherit)}
.sk-kpi-ic{font-size:16px;margin-bottom:2px;opacity:.85}
.sk-kpi-d{font-size:11px;margin-top:4px}
.sk-delta{font-size:11px;font-weight:600;margin-top:3px;display:inline-block}
.sk-delta.up{color:var(--ok)}
.sk-delta.down{color:var(--bad)}
.sk-delta.flat{color:var(--ink-faint)}
.sk-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:760px){ .sk-cols{grid-template-columns:1fr} }
.sk-chart{width:100%;height:auto;margin-top:8px}
.sk-legend{display:flex;gap:14px;flex-wrap:wrap;margin:4px 0 6px}
.sk-leg{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-dim)}
.sk-leg-d{width:11px;height:11px;border-radius:3px;display:inline-block}
.svc-cell[readonly]{color:var(--ink-dim)}
@media(max-width:640px){ .svc-row3{grid-template-columns:1fr} }

/* ---- ✉️ Mailing / newsletters ---- */
.nl-alert{padding:10px 13px;border-radius:8px;font-size:12.5px;line-height:1.6;
  color:var(--ink);background:rgba(201,162,75,.12);
  border:1px solid rgba(201,162,75,.35);margin-bottom:12px}
.nl-alert.bad{background:rgba(224,105,122,.12);border-color:rgba(224,105,122,.4)}
.nl-kpis{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.nl-kpi{flex:1;min-width:110px;background:var(--bg-card);border:1px solid var(--line2);
  border-radius:9px;padding:11px 13px;color:var(--ink)}
.nl-kpi-v{font-size:21px;font-weight:700;line-height:1.15}
.nl-kpi-l{font-size:11px;color:var(--ink-dim);margin-top:2px}
.nl-prog{height:4px;border-radius:3px;background:var(--line2);margin-top:5px;overflow:hidden}
.nl-prog>div{height:100%;background:var(--gold);transition:width .3s}
.nl-prog.big{height:9px;border-radius:5px;margin-top:4px}
.nl-edit{display:grid;grid-template-columns:220px 1fr 260px;gap:12px;align-items:start}
@media(max-width:1100px){.nl-edit{grid-template-columns:1fr}}

/* Panneaux latéraux : ils suivent le thème de l'application. */
.nl-palette,.nl-insp{background:var(--navy2);border:1px solid var(--line2);
  border-radius:10px;padding:12px;max-height:74vh;overflow-y:auto;color:var(--ink)}
.nl-pal-t{font-size:11px;text-transform:uppercase;letter-spacing:.5px;
  color:var(--gold);margin:10px 0 7px;font-weight:700}
.nl-pal-b{padding:9px 11px;border-radius:7px;background:var(--navy3);margin-bottom:6px;
  font-size:12.5px;color:var(--ink);cursor:grab;border:1px solid var(--line2);user-select:none}
.nl-pal-b:hover{border-color:var(--gold);background:var(--navy)}
.nl-palette .field label,.nl-insp .field label{color:var(--ink-dim)}

/* Le plan de travail reste une feuille claire, dans les deux thèmes : c'est
   l'aperçu d'un email, et l'email partira sur fond clair. On y force donc
   des couleurs de texte sombres, sans quoi le thème sombre rendrait
   l'aperçu illisible — texte clair sur papier blanc. */
.nl-canvas{background:#E4E7EE;border:1px solid var(--line2);border-radius:10px;
  padding:14px;min-height:60vh;max-height:74vh;overflow-y:auto}
.nl-canvas-in{max-width:600px;margin:0 auto}
.nl-canvas,.nl-canvas *{color:#12182A}
.nl-canvas .muted{color:#6B7385}
.nl-vide{padding:40px 16px;text-align:center;color:#6B7385;font-size:13px;
  border:2px dashed #B9C0CE;border-radius:10px;background:#fff}
.nl-bloc{background:#fff;border-radius:8px;margin-bottom:8px;border:2px solid transparent;
  cursor:pointer;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.nl-bloc.sel{border-color:#C9A24B}
.nl-bloc-bar{display:flex;justify-content:space-between;align-items:center;
  padding:4px 8px;background:#EFF1F5;border-bottom:1px solid #E2E5EC;font-size:11px}
.nl-bloc-bar .muted{color:#4A5468}
.nl-bloc-ap{padding:10px 12px}
/* les boutons d'action de chaque bloc, sur fond clair */
.nl-bloc-bar .btn.ghost{color:#4A5468;border-color:#D3D8E2;background:#fff}
.nl-bloc-bar .btn.ghost:hover{border-color:#C9A24B;color:#12182A}
.nl-bloc-bar .btn.ghost[disabled]{opacity:.35}

.nl-cible{margin-top:10px;padding:9px 12px;border-radius:8px;font-size:13px;
  color:var(--ink);background:rgba(79,191,139,.14);border:1px solid rgba(79,191,139,.35)}
.nl-cible.bad{background:rgba(224,105,122,.12);border-color:rgba(224,105,122,.38)}
.nl-liste{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:11px 13px;background:var(--bg-card);border:1px solid var(--line2);
  border-radius:9px;margin-bottom:8px;color:var(--ink)}

/* Un sélecteur de couleur natif se réduit à un trait invisible sur fond
   sombre : on lui donne une vraie pastille cliquable. */
.nl-insp input[type=color],.nl-palette input[type=color]{
  -webkit-appearance:none;appearance:none;width:100%;height:34px;padding:3px;
  background:var(--navy3);border:1px solid var(--line2);border-radius:7px;cursor:pointer}
.nl-insp input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.nl-insp input[type=color]::-webkit-color-swatch{border:1px solid rgba(0,0,0,.25);border-radius:5px}
.nl-insp input[type=color]::-moz-color-swatch{border:1px solid rgba(0,0,0,.25);border-radius:5px}
.nl-insp textarea.inp{min-height:90px;resize:vertical}

/* ---- Comparatif groupe (clôture de caisse) ---- */
.cc-grp-jauge{height:5px;border-radius:3px;background:var(--line2);margin:5px 0 3px;overflow:hidden;max-width:220px}
.cc-grp-jauge>div{height:100%;border-radius:3px}
.cc-grp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
@media(max-width:900px){.cc-grp-grid{grid-template-columns:1fr}}

/* ---- Tableau de bord : CA par établissement (clôtures) ---- */
.dgce-tot{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.dgce-tot>div{flex:1;min-width:130px;background:var(--bg-card);border:1px solid var(--line2);
  border-radius:9px;padding:10px 12px}
.dgce-tot-v{font-size:19px;font-weight:700;line-height:1.2}
.dgce-tot-l{font-size:11px;color:var(--ink-dim);margin-top:2px}
.dgce-row{padding:10px 0;border-bottom:1px solid var(--line2);cursor:pointer}
.dgce-row:hover .dgce-head strong{color:var(--gold-soft)}
.dgce-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13.5px}
.dgce-ca{font-weight:700}
.dgce-bar{height:6px;border-radius:4px;background:var(--line2);margin:6px 0 5px;overflow:hidden}
.dgce-bar>div{height:100%;border-radius:4px}
.dgce-sub{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-dim)}

.dgce-row.open{background:var(--bg-card);border-radius:9px;padding:10px 12px;margin-bottom:6px;border:1px solid var(--line2)}
.dgce-main{cursor:pointer}
.dgce-chev{display:inline-block;width:12px;color:var(--gold-soft);font-size:11px}
.dgce-detail{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line2)}
.dgce-resp{font-size:12.5px;margin-bottom:10px;line-height:1.5}
.dgce-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.dgce-tbl th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;
  color:var(--ink-dim);font-weight:700;padding:5px 6px;border-bottom:1px solid var(--line2)}
.dgce-tbl td{padding:7px 6px;border-bottom:1px solid var(--line2);vertical-align:top}
.dgce-tbl .n{text-align:right;white-space:nowrap}
.dgce-liens{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}

/* ---- Tuile Clôtures de caisse : détail dépliable ---- */
.dgt-cc-row{cursor:pointer}
.dgt-cc-row .dgt-main{white-space:normal;overflow:visible;text-overflow:clip}
.dgt-cc-row.open{border-bottom:0}
.dgt-cc-chev{display:inline-block;width:11px;color:var(--gold-soft);font-size:10px}
.dgt-cc-sub{font-size:10.5px;color:var(--ink-faint);font-weight:400;margin-top:1px}
.dgt-cc-detail{padding:6px 0 9px 14px;border-bottom:1px solid var(--line2);cursor:default}
.dgt-cc-srv{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-dim);margin-bottom:5px}
.dgt-cc-srv b{color:var(--ink)}
.dgt-cc-resp{font-size:11.5px;color:var(--gold-soft);margin-bottom:6px}
.dgt-cc-salle{padding:4px 0;border-top:1px dashed var(--line2)}
.dgt-cc-salle-h{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.dgt-cc-salle-s{font-size:10.5px;color:var(--ink-faint);margin-top:1px;line-height:1.5}

/* ---- Présence en direct sur les clôtures ---- */
.cc-pres{background:rgba(201,162,75,.10);border:1px solid rgba(201,162,75,.32);
  border-radius:10px;padding:10px 12px;margin-bottom:12px}
.cc-pres-h{font-size:12px;font-weight:700;color:var(--gold-soft);margin-bottom:6px}
.cc-pres-row{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:13px}
.cc-pres-row+.cc-pres-row{border-top:1px solid rgba(201,162,75,.18)}
.cc-pres-txt{flex:1;line-height:1.4}
.cc-pres-sub{font-size:11.5px;color:var(--ink-dim);margin-top:2px}
.cc-pres-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);margin-top:5px;
  flex:0 0 auto;animation:ccPulse 1.8s ease-in-out infinite}
@keyframes ccPulse{0%,100%{opacity:1}50%{opacity:.35}}
.cc-pres-note{font-size:10.5px;color:var(--ink-faint);margin-top:7px;line-height:1.5}

/* ---- 🧾 Commandes fournisseurs ---- */
.cmd-entete{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;
  background:var(--bg-card);border:1px solid var(--line2);border-radius:10px;
  padding:12px 14px;margin-bottom:12px;font-size:13px;line-height:1.5}
.cmd-suivi{background:var(--bg-card);border:1px solid var(--line2);border-radius:10px;
  padding:10px 13px;margin-bottom:12px}
.cmd-etape{display:flex;gap:9px;align-items:flex-start;padding:4px 0;font-size:12.5px}
.cmd-etape-ic{font-size:14px;line-height:1.2}
.cmd-ecart{margin-top:8px;padding:8px 11px;border-radius:8px;font-size:12.5px;line-height:1.5;
  background:rgba(224,105,122,.12);border:1px solid rgba(224,105,122,.35)}
.cmd-cat{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;
  color:var(--gold);margin:14px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line2)}
.cmd-ligne{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;
  border-bottom:1px solid var(--line2)}
.cmd-ligne.on{background:rgba(201,162,75,.10)}
.cmd-ligne.alerte{box-shadow:inset 3px 0 0 var(--bad)}
.cmd-l-des{flex:1;min-width:0;font-size:13px;line-height:1.35}
.cmd-l-meta{font-size:11px;color:var(--ink-dim);margin-top:1px}
.cmd-l-rest{width:72px;flex:0 0 auto;text-align:center;padding:5px 4px!important;font-size:12.5px!important}
.cmd-l-qte{width:74px;flex:0 0 auto;text-align:center;padding:5px 4px!important;
  font-size:13px!important;font-weight:700}
.cmd-l-fixe{width:56px;text-align:right;font-weight:700;font-size:13.5px}
.cmd-l-pu{width:82px;text-align:right;font-size:11.5px;color:var(--ink-dim)}
.cmd-l-del{flex:0 0 auto}
.cmd-merc,.cmd-prod{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:10px 12px;background:var(--bg-card);border:1px solid var(--line2);
  border-radius:9px;margin-bottom:7px}
.cmd-merc.off,.cmd-prod.off{opacity:.5}
.cmd-p-pu{font-size:12.5px;font-weight:600;white-space:nowrap}
@media(max-width:640px){
  .cmd-l-pu{display:none}
  .cmd-l-rest{width:58px}.cmd-l-qte{width:62px}
}

/* ---- Périmètre fournisseur × établissement ---- */
.cmd-sites{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.cmd-site{font-size:10.5px;padding:2px 8px;border-radius:20px;background:var(--navy3);
  border:1px solid var(--line2);color:var(--ink-dim)}
.cmd-site.perso{border-color:rgba(201,162,75,.5);color:var(--gold-soft)}
.cmd-site-row{padding:9px 11px;border:1px solid var(--line2);border-radius:9px;margin-bottom:7px}
.cmd-site-row.on{border-color:rgba(201,162,75,.4);background:var(--bg-card)}
.cmd-site-det{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line2)}

/* ---- Codes salariés : qui n'en a pas ---- */
.bdg-sans{padding:11px 13px;border-radius:10px;margin-bottom:12px;
  background:rgba(201,162,75,.10);border:1px solid rgba(201,162,75,.32)}
.bdg-sans.ok{background:rgba(79,191,139,.10);border-color:rgba(79,191,139,.3)}
.bdg-sans-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:12.5px;font-weight:700;color:var(--ink)}
.bdg-sans-l{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.bdg-sans-p{font-size:12px;padding:4px 10px;border-radius:20px;background:var(--navy3);
  border:1px solid var(--line2);color:var(--ink);cursor:pointer;font-family:inherit}
button.bdg-sans-p:hover{border-color:var(--gold);color:var(--gold-soft)}
.bdg-sans-p b{color:var(--gold);margin-left:3px}

/* ---- Diffusion de matchs (DRAFT) ---- */
.mtc-logo{display:flex;justify-content:center;margin-bottom:12px}
.mtc-logo img{max-width:280px;width:100%;height:auto}
.mtc-wrap{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line2)}
.mtc-wrap iframe{display:block;width:100%;height:800px;border:0}
@media(max-width:700px){.mtc-wrap iframe{height:1100px}}

/* ---- Module Design ---- */
.dsn-cat{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--gold);
  font-weight:700;margin:16px 0 8px}
.dsn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}
.dsn-card{background:var(--bg-card);border:1px solid var(--line2);border-radius:11px;overflow:hidden}
.dsn-vig{aspect-ratio:4/3;background:var(--navy3);display:flex;align-items:center;justify-content:center;overflow:hidden}
.dsn-vig img{width:100%;height:100%;object-fit:cover}
.dsn-vig-ph{font-size:30px;opacity:.35}
.dsn-card-b{padding:10px 12px 12px;font-size:13px}
.dsn-fmt{font-size:11px;color:var(--ink-dim);margin-top:2px}
.dsn-cons{font-size:11.5px;color:var(--ink-dim);margin-top:5px;line-height:1.5}
.dsn-motif{font-size:11.5px;margin-top:6px;padding:6px 9px;border-radius:7px;line-height:1.5;
  background:rgba(224,105,122,.12);border:1px solid rgba(224,105,122,.3)}
.dsn-coul{display:flex;gap:8px;flex-wrap:wrap}
.dsn-c{display:flex;align-items:center;gap:8px;padding:6px 11px 6px 6px;border-radius:9px;
  background:var(--bg-card);border:1px solid var(--line2);cursor:pointer;font-family:inherit;color:var(--ink)}
.dsn-c:hover{border-color:var(--gold)}
.dsn-c-p{width:30px;height:30px;border-radius:7px;border:1px solid rgba(0,0,0,.25);flex:0 0 auto}
.dsn-c-n{font-size:12.5px;text-align:left;line-height:1.3}
.dsn-c-h{display:block;font-size:10.5px;color:var(--ink-dim);font-variant-numeric:tabular-nums}
.dsn-pol .dsn-p{padding:6px 0;border-bottom:1px solid var(--line2);font-size:13px}
.dsn-logos{display:flex;gap:10px;flex-wrap:wrap}
.dsn-logo{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:9px;
  background:#12182A;border:1px solid var(--line2)}
.dsn-logo img{height:34px;width:auto;max-width:120px;object-fit:contain}
.dsn-logo-n{font-size:12px;color:#fff}
.dsn-liste{margin:0;padding-left:20px;font-size:13px;line-height:1.7}
.dsn-liste.ok li::marker{color:var(--ok)}
.dsn-liste.bad li::marker{color:var(--bad)}

.cli-tp{margin-right:5px;font-size:12px;opacity:.85}
.cli-type button{font-family:inherit}

/* ---- Encaissements hors CA du service ---- */
.cc-horsca{padding:11px 13px;border-radius:10px;margin-bottom:4px;
  background:rgba(91,141,239,.10);border:1px solid rgba(91,141,239,.32)}
.cc-horsca-note{font-size:11.5px;line-height:1.6;color:var(--ink-dim);margin-bottom:9px}
.cc-horsca-rap{font-size:11px;line-height:1.5;color:var(--ink-faint);margin-top:8px;
  padding-top:8px;border-top:1px dashed rgba(91,141,239,.3)}
.cc-horsca-live{font-size:11.5px;color:var(--ink-dim);font-weight:400;margin-top:3px}

.cc-fin-hors{color:#7FA3F0;border-top:1px dashed var(--line2);margin-top:6px;padding-top:7px;font-weight:600}

/* ---- Mercuriales prêtes à l'emploi ---- */
.cmd-seeds{display:flex;flex-direction:column;gap:7px;margin-top:9px}
.cmd-seed{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:8px 11px;border-radius:8px;background:var(--navy3);border:1px solid var(--line2);font-size:13px}
.cmd-seed.sien{border-color:rgba(201,162,75,.5)}
.cmd-seed-tag{font-size:10px;padding:1px 7px;border-radius:20px;background:rgba(201,162,75,.2);
  color:var(--gold-soft);vertical-align:middle}

/* ---- Point de contrôle du matin ---- */
.pcm-ap{max-height:46vh;overflow:auto;padding-right:4px}
.pcm-sec{padding:8px 0;border-bottom:1px solid var(--line2)}
.pcm-sec-h{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:600}
.pcm-n{font-size:11px;min-width:20px;text-align:center;padding:1px 7px;border-radius:20px;
  background:rgba(224,105,122,.18);color:var(--bad)}
.pcm-n.ok{background:rgba(79,191,139,.18);color:var(--ok)}
.pcm-lignes{margin-top:5px}
.pcm-l{font-size:11.5px;padding:3px 0 3px 11px;border-left:3px solid var(--line2);line-height:1.5}
.pcm-l.alerte{border-color:var(--bad)} .pcm-l.info{border-color:var(--gold)}
.pcm-l.ok{border-color:var(--ok)}
.pcm-j{font-size:12px;padding:4px 10px;border-radius:20px;border:1px solid var(--line2);
  cursor:pointer;user-select:none}
.pcm-j.on{border-color:var(--gold);color:var(--gold-soft)}
.pcm-j input{margin-right:3px}

/* ---- Demandes de monnaie ---- */
.cm-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.cm-c{display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:9px;
  background:var(--navy3);border:1px solid var(--line2)}
.cm-c-l{font-size:12.5px;font-weight:600;white-space:nowrap;min-width:44px}
.cm-q{width:100%;text-align:right;padding:5px 7px!important}
.cm-tot{margin-top:11px;padding:9px 12px;border-radius:9px;background:rgba(201,162,75,.12);
  border:1px solid rgba(201,162,75,.32);font-size:14px;text-align:right}
.cm-tab{margin-top:10px;overflow-x:auto}
.cm-tab table{border-collapse:collapse;font-size:12.5px;min-width:100%}
.cm-tab th{font-size:10.5px;color:var(--ink-dim);font-weight:600;padding:4px 9px;
  text-align:right;border-bottom:1px solid var(--line2);white-space:nowrap}
.cm-tab td{padding:4px 9px;text-align:right;border-bottom:1px solid var(--line2);
  font-variant-numeric:tabular-nums}
.cm-tab .cm-lbl{text-align:left;color:var(--ink-dim);font-size:11.5px;white-space:nowrap}
.cm-tab .cm-diff{color:var(--bad);font-weight:700}

/* ---- Visionneuse de documents ---- */
.docv-barre{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.docv-zone{background:#0d1424;border:1px solid var(--line2);border-radius:10px;
  min-height:220px;display:flex;align-items:center;justify-content:center;overflow:auto;padding:10px}
.docv-zone img{max-width:100%;max-height:62vh;transition:transform .18s ease;transform-origin:center}
.docv-pdf{width:100%;height:62vh;border:0;background:#fff;border-radius:6px}

/* ---- Aide de l'agenda ---- */
.agenda-aide{margin-top:10px;font-size:12.5px}
.agenda-aide summary{cursor:pointer;color:var(--gold-soft);padding:6px 0}
.agenda-aide>div{padding:10px 13px;border-radius:9px;background:var(--navy3);
  border:1px solid var(--line2);line-height:1.65}

/* ---- Calendrier iCal ---- */
.agi-barre{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.agi-jours{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}
.agi-jours div{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;
  color:var(--ink-dim);text-align:center;padding:4px 0;font-weight:600}
.agi-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.agi-c{min-height:82px;padding:4px 5px;border-radius:7px;background:var(--bg-card);
  border:1px solid var(--line2);overflow:hidden}
.agi-c.hors{opacity:.4}
.agi-c.auj{border-color:var(--gold);box-shadow:inset 0 0 0 1px rgba(201,162,75,.3)}
.agi-n{font-size:11.5px;font-weight:700;color:var(--ink-dim);margin-bottom:3px}
.agi-c.auj .agi-n{color:var(--gold)}
.agi-e{font-size:10.5px;line-height:1.35;padding:2px 5px;margin-bottom:2px;border-radius:4px;
  background:rgba(91,141,239,.22);border-left:2px solid #5B8DEF;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agi-e.jour{background:rgba(201,162,75,.20);border-left-color:var(--gold)}
.agi-e:hover{background:rgba(91,141,239,.35)}
.agi-h{color:var(--ink-dim);font-variant-numeric:tabular-nums}
.agi-plus{font-size:10px;color:var(--ink-dim);padding-left:4px}
@media(max-width:760px){
  .agi-c{min-height:62px;padding:3px}
  .agi-e{font-size:9.5px;padding:1px 3px}
  .agi-n{font-size:10.5px}
}

/* ---- Cycle des demandes de monnaie ---- */
.cm-frise{display:flex;align-items:center;gap:3px;margin-top:10px;flex-wrap:wrap}
.cm-fe{display:flex;align-items:center;gap:4px;font-size:10.5px;padding:3px 8px;border-radius:20px;
  background:var(--navy3);border:1px solid var(--line2);color:var(--ink-faint);opacity:.55}
.cm-fe.on{opacity:1;color:var(--ink);border-color:rgba(201,162,75,.45)}
.cm-fs{width:8px;height:1px;background:var(--line2)}
.cm-refus{margin-top:8px;padding:7px 11px;border-radius:8px;font-size:12.5px;line-height:1.5;
  background:rgba(224,105,122,.12);border:1px solid rgba(224,105,122,.3)}
.cm-journal{margin-top:8px;font-size:12px}
.cm-journal summary{cursor:pointer;color:var(--ink-dim)}
.cm-j{padding:3px 0;font-size:11.5px;display:flex;gap:8px;flex-wrap:wrap}

/* ---- Analyses croisées ---- */
.ana-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px}
.ana-k{padding:12px 14px;border-radius:11px;background:var(--bg-card);border:1px solid var(--line2)}
.ana-k-v{font-size:22px;font-weight:700;color:var(--ink)}
.ana-k-l{font-size:11.5px;color:var(--ink-dim);margin-top:3px}
.ana-k-s{font-size:10.5px;color:var(--ink-faint);margin-top:2px}
.ana-c{font-size:13px;line-height:1.6;padding:10px 13px;border-radius:9px;margin-bottom:7px;
  background:var(--bg-card);border:1px solid var(--line2);border-left:3px solid var(--gold)}
.ana-c.sureffectif{border-left-color:var(--bad)}
.ana-c.sous_effectif{border-left-color:#5B8DEF}
.ana-c.evenement{border-left-color:var(--gold)}
.ana-sub{font-size:10px;color:var(--ink-faint);font-weight:400}
.ana-incomplet{opacity:.55}
.ana-comp{display:flex;flex-direction:column;gap:6px}
.ana-comp-l{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:7px 11px;border-radius:8px;background:var(--navy3);border:1px solid var(--line2);font-size:13px}

/* ---- Contexte de la journée (équipe, sécurité, agenda) ---- */
.cc-ctx{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:12px 0}
.cc-ctx-b{padding:10px 12px;border-radius:10px;background:var(--bg-card);border:1px solid var(--line2)}
.cc-ctx-t{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--gold);
  font-weight:700;margin-bottom:7px}
.cc-ctx-l{display:flex;justify-content:space-between;align-items:baseline;gap:8px;
  font-size:12.5px;padding:3px 0;border-bottom:1px solid var(--line2)}
.cc-ctx-l:last-child{border-bottom:0}
.cc-ctx-h{color:var(--ink-dim);font-size:11.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.cc-ctx-w{color:var(--bad);font-size:10.5px}
.cc-ctx-ev{font-size:12.5px;padding:4px 9px;margin-bottom:4px;border-radius:6px;
  background:rgba(201,162,75,.14);border-left:2px solid var(--gold)}

/* ---- Revue du mois ---- */
.rev-card{padding:14px 16px;border-radius:12px;background:var(--bg-card);
  border:1px solid var(--line2);margin-bottom:14px}
.rev-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid var(--line2);font-size:15px}
.rev-s{margin-top:14px}
.rev-s-t{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--gold);
  font-weight:700;margin-bottom:6px}
.rev-l{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:13px;padding:4px 0;border-bottom:1px solid var(--line2)}
.rev-l:last-child{border-bottom:0}
.rev-ok{font-size:12.5px;color:var(--ok)}

.ana-ia-h{display:flex;justify-content:space-between;align-items:center;gap:10px;
  margin:18px 0 9px;padding-bottom:7px;border-bottom:1px solid var(--line2)}
.ana-ia-b{font-size:12.5px;font-weight:700;color:var(--gold);
  padding:3px 11px;border-radius:20px;background:rgba(201,162,75,.14);
  border:1px solid rgba(201,162,75,.35)}

/* ---- Besoin estimé et diagnostic ---- */
.opt-intro{font-size:12.5px;line-height:1.65;color:var(--ink-dim);padding:11px 13px;
  border-radius:10px;background:var(--navy3);border:1px solid var(--line2)}
.opt-grille{display:grid;grid-template-columns:64px repeat(7,1fr);gap:3px;margin-top:8px}
.opt-h{font-size:10.5px;text-align:center;color:var(--ink-dim);font-weight:600;padding:3px 0}
.opt-h span{font-weight:400;font-size:9.5px}
.opt-lbl{font-size:11px;color:var(--ink-dim);display:flex;align-items:center}
.opt-sv{padding:6px 4px;border-radius:7px;background:var(--bg-card);border:1px solid var(--line2);
  text-align:center;line-height:1.35}
.opt-sv b{display:block;font-size:13px}
.opt-sv span{display:block;font-size:10px;color:var(--ink-dim)}
.opt-sv small{display:block;font-size:9.5px;color:var(--ink-faint)}
.opt-sv.flou{opacity:.55}
.opt-sv.vide{color:var(--ink-faint);padding:14px 4px}
.opt-ev{display:flex;flex-direction:column;gap:2px}
.opt-ev span{font-size:9.5px;padding:2px 5px;border-radius:4px;background:rgba(201,162,75,.16);
  color:var(--gold-soft);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opt-a{font-size:13px;line-height:1.6;padding:9px 13px;border-radius:9px;margin-bottom:7px;
  background:var(--bg-card);border:1px solid var(--line2);border-left:3px solid var(--line2)}
.opt-a-h{display:flex;gap:9px;font-size:11px;font-weight:700;margin-bottom:3px;
  text-transform:uppercase;letter-spacing:.4px}
@media(max-width:760px){
  .opt-grille{grid-template-columns:48px repeat(7,1fr);gap:2px}
  .opt-sv small{display:none}
}

.opt-tr{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.opt-tr-j{padding:8px 10px;border-radius:9px;background:var(--bg-card);border:1px solid var(--line2)}
.opt-tr-h{font-size:11.5px;font-weight:700;color:var(--gold);margin-bottom:6px}
.opt-tr-s{margin-bottom:8px}
.opt-tr-sv{font-size:10.5px;color:var(--ink-dim);margin-bottom:3px}
.opt-tr-p{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;margin:0 3px 3px 0;
  background:rgba(91,141,239,.2);border:1px solid rgba(91,141,239,.35)}

/* ---- Fond de plan et salles ---- */
.rsv-plan-c{position:relative}
.rsv-fond{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  pointer-events:none;user-select:none;z-index:0}
.rsv-plan-c>*:not(.rsv-fond){position:relative;z-index:1}
.rsv-sa{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;
  background:var(--bg-card);border:1px solid var(--line2);margin-bottom:8px}
.rsv-sa-v{width:62px;height:44px;border-radius:7px;background:var(--navy3);flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:19px;opacity:.9}
.rsv-sa-v img{width:100%;height:100%;object-fit:cover}
.rsv-fond-p{margin-top:7px;padding:9px;border-radius:9px;background:var(--navy3);
  border:1px solid var(--line2);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rsv-fond-p img{max-height:110px;border-radius:6px}

.ten-clause{font-size:12px;line-height:1.6;padding:9px 12px;border-radius:8px;
  background:rgba(201,162,75,.12);border:1px solid rgba(201,162,75,.32);margin-bottom:10px}

/* ---- Ordre d'affichage des salariés ---- */
.pl-ord{max-height:52vh;overflow:auto;padding-right:4px}
.pl-ord-i{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:9px;
  background:var(--bg-card);border:1px solid var(--line2);margin-bottom:5px;cursor:grab;font-size:13px}
.pl-ord-i:hover{border-color:var(--gold)}
.pl-ord-i.drag{opacity:.45;cursor:grabbing}
.pl-ord-h{color:var(--ink-faint);font-size:15px;line-height:1}

/* ---- Lecture IA d'un plan ---- */
.plia-apercu{position:relative;width:100%;border-radius:9px;background:var(--navy3);
  border:1px solid var(--line2);overflow:hidden;margin-top:8px}
.plia-pt{position:absolute;transform:translate(-50%,-50%);font-size:10px;font-weight:600;
  padding:2px 6px;border-radius:5px;background:rgba(91,141,239,.85);color:#fff;
  white-space:nowrap;max-width:70px;overflow:hidden;text-overflow:ellipsis}
.plia-pt.off{background:rgba(140,150,170,.4)}

/* ---- Outils d'édition du plan ---- */
.rsv-eb{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:8px 11px;margin-bottom:9px;
  border-radius:10px;background:var(--bg-card);border:1px solid var(--line2)}
.rsv-eb-g{display:flex;gap:4px;align-items:center}
.rsv-eb-l{font-size:11px;color:var(--ink-dim);margin-right:3px}
.rsv-eb-h{font-size:10.5px;color:var(--ink-faint);margin-left:auto}
.rsv-pt.sel{outline:2px solid var(--gold);outline-offset:2px;z-index:5}

/* ---- Saisie de température avec bascule de signe ---- */
.temp-saisie{display:flex;gap:7px;align-items:stretch}
.temp-saisie .inp{flex:1;min-width:0}
.temp-pm{flex:0 0 auto;width:52px;font-size:17px;font-weight:700;line-height:1;
  display:flex;align-items:center;justify-content:center}
