*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#F6F7F9;--surface:#FFFFFF;--surface2:#F1F3F5;--surface3:#E9ECEF;
  --border:#E6E8EC;--border2:#D6DAE0;
  --text:#16191F;--text2:#474E59;--text3:#5F6A79;
  /* Un demi-ton plus sombre : la marque sert aussi de petit texte sur sa
     propre teinte claire (pastilles, libellés d'indicateurs), où elle
     plafonnait à 4,2:1. Le blanc sur la marque y gagne aussi. */
  --brand:#2062EC;--brand-light:#EBF1FE;--brand-dark:#1B53CC;
  /* Ces trois teintes servent de TEXTE sur un fond de la même famille : le
     contraste y est structurellement serré. Assombries pour passer 4,5:1 —
     un badge d'état illisible ne remplit pas son office. */
  --green:#127E44;--green-bg:#EAF7EF;--green-border:#C3E7D1;
  --amber:#9E6010;--amber-bg:#FBF3E3;--amber-border:#EFD9A8;
  --red:#C8342C;--red-bg:#FCECEA;--red-border:#F3CBC6;
  --purple:#6D49D6;--purple-bg:#F1ECFC;
  --blue-bg:#EBF1FE;--blue-border:#C5D7FB;
  --radius:7px;--radius-lg:11px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.07);
  --shadow-lg:0 16px 48px -12px rgba(16,24,40,.22);
  --shadow-card:0 1px 2px rgba(16,24,40,.05);
  --font:-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',Roboto,sans-serif;
  --mono:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;
  color-scheme:light;
}
html[data-theme="dark"]{
  --bg:#0D1015;--surface:#161A21;--surface2:#1E232C;--surface3:#272D38;
  --border:#252B35;--border2:#363E4A;
  --text:#E7EAF0;--text2:#B2BAC5;--text3:#8E96A1;
  --brand:#588CF0;--brand-light:#162540;--brand-dark:#6E9CF4;
  --green:#42C786;--green-bg:#112619;--green-border:#1E4732;
  --amber:#E0A646;--amber-bg:#2B2210;--amber-border:#4A3A18;
  --red:#F0726A;--red-bg:#2C1715;--red-border:#4A2723;
  --purple:#A78BFA;--purple-bg:#1F1937;
  --blue-bg:#162540;--blue-border:#234271;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.5);
  --shadow-lg:0 20px 56px -12px rgba(0,0,0,.7);
  --shadow-card:0 1px 2px rgba(0,0,0,.4);
  color-scheme:dark;
}
html,body{height:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .3s ease,color .3s ease}
.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:10px 14px;border-radius:var(--radius);background:var(--text);color:var(--bg);font-weight:700;text-decoration:none;transform:translateY(-150%);transition:transform .15s ease}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.app{display:flex;height:100vh;overflow:hidden}
::selection{background:color-mix(in srgb,var(--brand) 26%,transparent)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:var(--text3)}
*::-webkit-scrollbar-track{background:transparent}

/* SIDEBAR */
.sidebar{width:236px;min-width:236px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;transition:width .25s ease,min-width .25s ease,background .25s ease,border-color .25s ease;position:relative}
.sidebar.collapsed{width:0!important;min-width:0!important;overflow:hidden;border-right:none;padding:0}
.sidebar.collapsed .sidebar-footer .user-card{display:flex;align-items:center;gap:8px;padding:4px 0}
.logo{padding:14px 16px 12px;border-bottom:1px solid var(--border);position:relative;background:var(--surface)!important;flex-shrink:0;overflow:hidden}
.logo-mark{display:flex;align-items:center;gap:10px;min-height:0}
.logo-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.logo-text{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.3px}
.logo-sub{font-size:10.5px;color:var(--text3);margin-top:1px;font-weight:500}
.nav{flex:1;padding:8px 10px 16px}
.nav-section{font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.7px;text-transform:uppercase;padding:14px 8px 4px}
.nav-section-toggle{cursor:pointer;display:flex;align-items:center;gap:6px;user-select:none;transition:color .15s}
.nav-section-toggle:hover{color:var(--text2)}
.nav-sec-arrow{font-size:8px;transition:transform .2s;display:inline-block;opacity:.7}
.nav-section-toggle.collapsed .nav-sec-arrow{transform:rotate(-90deg)}
.nav-group{overflow:hidden;transition:max-height .25s ease,opacity .2s ease;max-height:600px;opacity:1}
.nav-group.collapsed{max-height:0;opacity:0}
.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;color:var(--text2);transition:background .14s,color .14s;user-select:none;position:relative;margin-bottom:1px}
.nav-item:hover{background:var(--nav-hover-bg,var(--surface2));color:var(--nav-hover-color,var(--text))}
.nav-item.active{background:var(--nav-active-bg,var(--brand-light));color:var(--nav-active-color,var(--brand));font-weight:600}
.nav-item.active::before{content:'';position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--nav-active-color,var(--brand))}
.nav-item .icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.85}
.nav-item .icon svg{width:17px;height:17px;display:block}
.nav-item.active .icon{opacity:1;filter:var(--nav-icon-filter,none)}
.nav-action-badge{background:var(--brand)!important;color:#fff!important}
.nav-calendar-badge{background:#5b67e8!important;color:#fff!important}
.nav-study-badge{background:var(--purple,#7c3aed)!important;color:#fff!important}
.nav-project-badge{background:var(--amber,#d97706)!important;color:#fff!important}
.nav-employee-badge{background:#0f9f85!important;color:#fff!important}
.nav-supplier-badge{background:#4766d8!important;color:#fff!important}
.nav-client-badge{background:#1687a7!important;color:#fff!important}
.nav-recovery-badge{background:var(--amber,#d97706)!important;color:#fff!important}
.nav-recovery-badge.is-late{background:var(--red)!important;color:#fff!important}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px}
.sidebar-footer{padding:10px;border-top:1px solid var(--border)}
.user-card{display:flex;align-items:center;gap:9px;padding:8px;border-radius:var(--radius);background:var(--surface2)}
.avatar{width:30px;height:30px;border-radius:8px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}
.user-name{font-size:12px;font-weight:600;color:var(--text)}
.user-role{font-size:11px;color:var(--text3)}

/* MAIN */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
.topbar{padding:11px 20px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;transition:background .25s ease,border-color .25s ease;gap:12px;flex-shrink:0}
.topbar-left{display:flex;align-items:center;gap:12px}
.page-title{font-size:17px;font-weight:600;color:var(--text);letter-spacing:-.3px;transition:color .25s}
.content{flex:1;overflow-y:auto;padding:22px 24px 40px}
.icon-btn{width:34px;height:34px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text2);transition:all .15s;flex-shrink:0;padding:0}
.icon-btn:hover{background:var(--surface2);color:var(--text)}
.icon-btn svg{width:17px;height:17px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:500;border:1px solid var(--border2);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;transition:all .13s;white-space:nowrap;line-height:1.2}
.btn:hover{background:var(--surface2)}
.btn svg{width:15px;height:15px;flex-shrink:0}
.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 1px 2px rgba(44,107,237,.25)}
.btn-primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.btn-sm{padding:5px 10px;font-size:12px}
.btn-danger{color:var(--red);border-color:var(--red-border);background:var(--surface)}
.btn-danger:hover{background:var(--red-bg)}
.btn-ghost{border-color:transparent;background:transparent}
.btn-ghost:hover{background:var(--surface2);border-color:var(--border)}

/* INPUTS */
.input{width:100%;padding:8px 11px;font-size:13px;border:1px solid var(--border2);border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:var(--font);outline:none;transition:border .13s,box-shadow .13s}
.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}
.input::placeholder{color:var(--text3)}
select.input{cursor:pointer}
.label{display:block;font-size:12px;font-weight:500;color:var(--text2);margin-bottom:5px}
.field{margin-bottom:14px}
.field:last-child{margin-bottom:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* CARDS & METRICS */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-card)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-card);transition:border-color .15s,box-shadow .15s}
.metric:hover{border-color:var(--border2);box-shadow:var(--shadow)}
.metric-label{font-size:11.5px;color:var(--text2);margin-bottom:8px;font-weight:500;letter-spacing:.1px}
.metric-value{font-size:25px;font-weight:700;color:var(--text);letter-spacing:-.6px;font-variant-numeric:tabular-nums;line-height:1.1}
.metric-sub{font-size:11px;margin-top:6px;color:var(--text3);font-weight:500}
.metric-up{color:var(--green)}
.metric-dn{color:var(--red)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}

/* TABLE */
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:hidden;margin-bottom:20px;box-shadow:var(--shadow-card)}
table{width:100%;border-collapse:collapse}
thead tr{background:var(--surface2)}
th{padding:9px 14px;text-align:left;font-size:10.5px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap}
td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr{transition:background .12s}
tbody tr:hover td{background:var(--surface2)}
.mono{font-family:var(--mono);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;line-height:1.5}
.badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.8}
.b-green{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}
.b-blue{background:var(--blue-bg);color:var(--brand);border:1px solid var(--blue-border)}
.b-blue-light{background:var(--blue-bg);color:var(--brand);border:1px solid var(--blue-border)}
/* Le turquoise vif ne tenait que sur fond sombre : 2,2:1 en thème clair,
   c'est-à-dire illisible pour l'état « En cours ». */
.b-turquoise{background:rgba(20,184,166,.15);color:#0C7267;border:1px solid rgba(20,184,166,.40)}
html[data-theme="dark"] .b-turquoise{color:#14B8A6}
.b-amber{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-border)}
.b-red{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}
.b-gray{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}
.b-purple{background:var(--purple-bg);color:var(--purple);border:1px solid color-mix(in srgb,var(--purple) 30%,transparent)}

/* TOOLBAR */
.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}
.toolbar-left{display:flex;gap:8px;flex:1;flex-wrap:wrap}
.search{max-width:260px}

/* MODAL */
.overlay{position:fixed;inset:0;background:rgba(10,13,18,.5);backdrop-filter:blur(3px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .15s ease}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;animation:popIn .18s cubic-bezier(.2,.8,.3,1)}
.modal-wide{max-width:680px}
.modal-header{padding:16px 20px 13px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-title{font-size:15px;font-weight:600}
.modal[data-dirty="true"] .modal-title::after{content:' • non enregistré';margin-left:6px;color:var(--amber);font-size:10px;font-weight:700}
.modal-close{background:none;border:none;font-size:22px;color:var(--text3);cursor:pointer;line-height:1;padding:0 4px;border-radius:6px;transition:.15s}
.modal-close:hover{color:var(--text);background:var(--surface2)}
.modal-body{padding:20px;overflow-y:auto;flex:1}
.modal-footer{padding:13px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}

/* ALERTS */
.alert{padding:10px 14px;border-radius:var(--radius);font-size:13px;margin-bottom:16px;display:flex;align-items:flex-start;gap:8px;line-height:1.45}
.alert-warn{background:var(--amber-bg);border:1px solid var(--amber-border);color:var(--amber)}
.alert-red{background:var(--red-bg);border:1px solid var(--red-border);color:var(--red)}
.alert-green{background:var(--green-bg);border:1px solid var(--green-border);color:var(--green)}

/* BARS */
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:12px}
.bar-label{width:90px;color:var(--text2);text-align:right;flex-shrink:0;font-size:12px}
.bar-track{flex:1;height:8px;background:var(--surface2);border-radius:5px;overflow:hidden}
.bar-fill{height:100%;border-radius:5px;transition:width .5s cubic-bezier(.4,0,.2,1)}
.bar-val{width:60px;font-weight:600;font-size:12px;font-variant-numeric:tabular-nums}

/* EMPTY */
.empty{text-align:center;padding:48px 20px;color:var(--text3)}
.empty-icon{font-size:34px;margin-bottom:10px;opacity:.5}
.empty-text{font-size:14px}

/* PAGES */
.page{display:none}
.page.active{display:block;animation:pageSlide .22s ease}
@keyframes pageSlide{from{transform:translateY(5px)}to{transform:none}}

/* TOAST */
.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px}
.toast{padding:11px 16px;border-radius:var(--radius);font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideIn .22s ease;display:flex;align-items:center;gap:8px}
.toast-success{background:var(--text);color:var(--bg)}
.toast-error{background:var(--red);color:#fff}
.app-update-banner{position:fixed;right:20px;bottom:20px;z-index:250;display:flex;align-items:center;gap:20px;max-width:560px;padding:14px 16px;border:1px solid var(--blue-border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}
.app-update-banner[hidden]{display:none}
.app-update-banner>div:first-child{display:flex;flex-direction:column;gap:2px}
.app-update-banner strong{font-size:13px;color:var(--text)}
.app-update-banner span{font-size:11px;color:var(--text2)}
.app-update-actions{display:flex;gap:7px;flex-shrink:0}
.global-search-result{appearance:none;width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;border:0;background:transparent;color:var(--text);font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}
.global-search-result:hover,.global-search-result:focus-visible{background:var(--surface2);outline:none}
.global-search-result:focus-visible{box-shadow:inset 3px 0 var(--brand)}
.backup-history-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 14px;border-radius:var(--radius);background:var(--surface2)}
.backup-history-summary strong{font-size:13px}.backup-history-summary span{font-size:11px;color:var(--text2)}
.backup-history{max-height:55vh;overflow:auto}.backup-row-actions{display:flex;justify-content:flex-end;gap:6px}
@keyframes slideIn{from{transform:translateX(20px);opacity:0}to{transform:none;opacity:1}}

/* MISC */
.section-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;letter-spacing:-.1px}.text-sm{font-size:12px;color:var(--text2)}.fw{font-weight:600}
.red{color:var(--red)}
.green{color:var(--green)}
.param-group{ margin-bottom:16px; }
.param-group:last-child{ margin-bottom:0; }
.param-group-label{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--text3); margin-bottom:7px; }
/* ═══ Vue mobile (smartphone) ═══ */
@media (max-width: 768px){
  .sidebar{ position:fixed; top:0; left:0; height:100%; width:264px!important; min-width:264px!important; transform:translateX(-100%); transition:transform .25s ease; z-index:300; border-right:1px solid var(--border); }
  .sidebar.collapsed{ width:264px!important; min-width:264px!important; overflow-y:auto!important; border-right:1px solid var(--border)!important; }
  .sidebar.mobile-open{ transform:translateX(0); box-shadow:0 0 40px rgba(0,0,0,.45); }
  #sidebar-backdrop{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:290; }
  #sidebar-backdrop.show{ display:block; }
  .main{ width:100%; }
  .topbar{ padding:9px 12px; flex-wrap:wrap; row-gap:8px; }
  .content{ padding:14px 12px 28px; }
  .grid2, .grid3, .two-col{ grid-template-columns:1fr !important; }
  .metrics{ grid-template-columns:1fr 1fr !important; gap:10px; }
  .toolbar{ flex-direction:column; align-items:stretch; gap:8px; }
  .toolbar-left{ width:100%; }
  .search, .search input{ max-width:none !important; width:100%; }
  .btn{ padding:10px 13px; font-size:14px; }
  .nav-item{ padding:10px 10px; font-size:14px; }
  .table-wrap table{ font-size:12px; }
  .table-wrap th, .table-wrap td{ padding:8px 9px; }
  .overlay{ padding:8px; }
  .modal, .modal-wide{ max-width:100% !important; width:100%; max-height:94vh; }
  .toast-wrap{ left:12px; right:12px; bottom:12px; }
  .toast{ width:100%; }
  #ro-banner{ font-size:11px; }
}
/* Permissions — lecture seule */
body[data-role="lecture"] .toolbar .btn-primary{ display:none !important; }
body[data-role="lecture"] td .btn-danger{ display:none !important; }
body[data-role="lecture"] #modal-footer .btn-danger{ display:none !important; }

/* Les trois niveaux de texte sont espacés en contraste, pas seulement en
   nuance : environ 12:1 pour le texte courant, 7:1 pour le secondaire, 4,6:1
   pour les mentions discrètes. Le troisième niveau descendait à 2,4:1 sur les
   fonds gris — sous le seuil de 4,5:1, et sous ce que l'œil suit sans effort.
   Baisser une de ces valeurs, c'est rendre une partie de l'application
   illisible : le contrôle de tests/lisibilite-menu.test.js le refusera. */
/* Identité visuelle alignée sur AvG Clients */
:root{
  --bg:#F7F8F7;--surface:#FFFFFF;--surface2:#F3F5F4;--surface3:#E9EEED;
  --border:#E1E7E6;--border2:#D3DEDD;
  --text:#172A3A;--text2:#465058;--text3:#5C6C75;
  --brand:#176B87;--brand-light:#E7F0F3;--brand-dark:#12566D;
  --radius:8px;--radius-lg:11px;
}
html[data-theme="dark"]{
  --bg:#0E171F;--surface:#16232D;--surface2:#1D2C37;--surface3:#263742;
  --border:#2A3A45;--border2:#3B4D58;
  --text:#EEF3F5;--text2:#BAC6CC;--text3:#92A1AA;
  --brand:#58A9C4;--brand-light:#173746;--brand-dark:#76BED5;
  --green:#65C89B;--green-bg:#153326;--green-border:#285942;
  --amber:#E1B66C;--amber-bg:#332812;--amber-border:#59451F;
  --red:#F18478;--red-bg:#351D1B;--red-border:#63342F;
  --purple:#B49BE0;--purple-bg:#2A2340;
  --blue-bg:#173746;--blue-border:#2B5B6C;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 3px 8px rgba(0,0,0,.24);
  --shadow-lg:0 20px 56px -12px rgba(0,0,0,.65);
  --shadow-card:0 1px 3px rgba(0,0,0,.26);
  color-scheme:dark;
}
html[data-theme="dark"] .section-title{color:var(--text)}
html[data-theme="dark"] .topbar{background:var(--surface)}
html[data-theme="dark"] .input,html[data-theme="dark"] .btn{background:var(--surface);color:var(--text)}
html[data-theme="dark"] thead tr{background:var(--surface2)}
html[data-theme="dark"] .modal{background:var(--surface)}
.sidebar{width:252px;min-width:252px;background:#172A3A;color:#fff;border:0;padding:0 10px}
.logo{background:#172A3A!important;border-color:rgba(255,255,255,.1);padding:20px 12px 16px}
.logo-text{color:#fff}.logo-sub,.sidebar .user-role{color:#A2B1BB}
.nav{padding:8px 2px 18px}.nav-section{color:#81909B;padding-left:13px}
.nav-item{color:#AFBAC3;padding:9px 13px;border-radius:8px}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.active{background:rgba(255,255,255,.095);color:#fff}
.nav-item.active::before{display:none}.sidebar-footer{border-color:rgba(255,255,255,.1)}
.user-card{background:rgba(255,255,255,.07)}.user-name{color:#fff}
.avatar{background:#D8CDBD;color:#172A3A;border-radius:50%}
.version-button{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.1);background:transparent;color:#A9BAC5;padding:4px 8px 13px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;text-align:left}
.version-button:hover{color:#fff}.version-button>span{display:flex;align-items:center;gap:7px}.version-button-icon{font-size:15px;line-height:1}
.version-button strong{color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:4px 8px;font-size:9px;white-space:nowrap}
.changelog-current{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.changelog-current img{width:56px;height:56px;object-fit:contain}.changelog-scroll{max-height:min(52vh,480px);overflow-y:auto;padding-right:6px}
.changelog-release{display:grid;grid-template-columns:62px 1fr;gap:14px;padding:15px 0;border-bottom:1px solid var(--border)}
.changelog-badge{height:29px;border-radius:20px;background:var(--brand-light);color:var(--brand);display:grid;place-items:center;font-size:10px;font-weight:800}
.changelog-release:first-child .changelog-badge{background:var(--brand);color:#fff}.changelog-release time{font-size:10px;color:var(--text3)}
.changelog-release ul{margin:7px 0 0;padding-left:17px;font-size:12px;color:var(--text2);line-height:1.55}.changelog-release li+li{margin-top:4px}
.topbar{height:74px;padding:0 34px}.content{padding:34px 40px 48px}
.card,.metric,.table-wrap{box-shadow:0 2px 5px rgba(23,42,58,.025)}
.btn-primary{box-shadow:0 5px 15px rgba(23,107,135,.18)}
.section-title{color:var(--text)}
.admin-only[hidden]{display:none!important}
/* .nav-item et .nav-section-toggle déclarent display:flex, ce qui l'emporte sur
   la règle [hidden] du navigateur : sans ces sélecteurs, masquer un module hors
   périmètre resterait sans effet visible. */
.nav-item[hidden],.nav-group[hidden],.nav-section[hidden]{display:none!important}
/* Action rattachée à un module plutôt qu'à une affaire : pastille distincte
   pour qu'on distingue d'un coup d'œil l'origine d'une tâche. */
.affaire-ref-module{--affaire-color:var(--purple,#7c5cff);font-style:normal;letter-spacing:.2px}
/* Historique des actions terminées : la décision du manager et sa note doivent
   se lire sans ouvrir la fiche. */
.et-completed-legend{display:flex;gap:14px;flex-wrap:wrap;padding:9px 12px;background:var(--surface);border-bottom:1px solid var(--border);font-size:9px;color:var(--text3)}
.et-completed-legend b{margin-right:4px;padding:2px 6px;border-radius:99px;font-size:8px}
.et-completed-legend b.is-approved,.et-completed-review b.is-approved{background:var(--green-bg);color:var(--green)}
.et-completed-legend b.is-pending,.et-completed-review b.is-pending{background:var(--amber-bg,#fef3c7);color:var(--amber,#b45309)}
.et-completed-legend b.is-rejected,.et-completed-review b.is-rejected{background:var(--red-bg);color:var(--red)}
.et-completed-review{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:2px}
.et-completed-review b{padding:2px 6px;border-radius:99px;font-size:8px;font-weight:800}
.et-completed-rating{color:var(--amber,#f59e0b);font-size:10px;letter-spacing:1px}
.et-completed-comment{margin:3px 0 0;color:var(--text3);font-size:8px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.et-completed-actions{display:flex;align-items:center;gap:5px}
.et-completed-card.is-pending .et-completed-check{background:var(--amber-bg,#fef3c7);color:var(--amber,#b45309)}
.et-completed-card.is-rejected .et-completed-check{background:var(--red-bg);color:var(--red)}
/* Badge des ordres de service en attente : rouge dès qu'un OS a dépassé son échéance. */
.nav-order-badge.is-late{background:var(--red)!important;color:#fff!important}
/* Lignes cliquables et fiche détaillée d'un ordre de service. */
tr.is-clickable{cursor:pointer}
tr.is-clickable:hover{background:var(--surface2)}
tr.os-late td{box-shadow:inset 2px 0 0 var(--red)}
.os360-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface2);margin-bottom:14px}
.os360-hero.is-late{border-color:var(--red-border,var(--red))}
.os360-hero span{display:block;color:var(--text3);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}
.os360-hero h2{margin:4px 0 8px;font-size:17px;line-height:1.3}
.os360-late{padding:2px 7px;border-radius:99px;background:var(--red-bg);color:var(--red);font-size:10px}
.os360-charge{text-align:right;flex-shrink:0}
.os360-charge strong{display:block;margin-top:4px;font-size:20px;color:var(--brand)}
.os360-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0}
.os360-grid>div{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.os360-grid dt{color:var(--text3);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.os360-grid dd{margin:4px 0 0;color:var(--text);font-size:13px}
.os360-grid dd small{display:block;color:var(--text3);font-size:11px}
.os360-desc{margin-top:14px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.os360-desc span{display:block;margin-bottom:5px;color:var(--text3);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}
.os360-desc p{margin:0;font-size:13px;line-height:1.5}

/* ── Journal des collaborateurs et reporting ── */
.journal-collab{display:flex;flex-direction:column;gap:12px}
.journal-filtres{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.journal-filtres label{display:flex;flex-direction:column;gap:4px}
.journal-filtres span{color:var(--text3);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.journal-synthese{display:flex;flex-wrap:wrap;gap:16px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:12px;color:var(--text2)}
.journal-synthese strong{color:var(--brand);font-size:15px;margin-right:4px}
.journal-collab-bloc{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface)}
.journal-collab-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface2);border-bottom:1px solid var(--border)}
.journal-collab-head strong{font-size:13px}
.journal-collab-head span{color:var(--text3);font-size:11px}
.rep-bar{position:relative;height:6px;border-radius:99px;background:var(--surface2);overflow:hidden;min-width:60px}
.rep-bar i{display:block;height:100%;border-radius:99px}
.et-completed-tools{display:flex;flex-wrap:wrap;gap:6px;padding:9px 12px;background:var(--surface);border-bottom:1px solid var(--border)}
/* Pastille « pièce jointe » sur la carte d'une action. */
.et-task-doc{display:inline-flex;align-items:center;gap:3px;padding:2px 5px;border-radius:6px;
  background:var(--surface2);color:var(--text2);vertical-align:middle}
.et-task-doc svg{width:12px;height:12px;display:block}
.et-task-doc b{font-size:9px;font-weight:800;line-height:1}
.et-task-card:hover .et-task-doc{background:var(--brand);color:#fff}

/* ── Impression ──
   La zone d'impression vit dans la page : au moment d'imprimer, tout le reste
   est masqué. Aucune fenêtre surgissante, aucun script externe — ce que la
   politique de sécurité du serveur interdirait de toute façon. */
#print-area{display:none}
body.is-printing{overflow:hidden}
@media print{
  body.is-printing>*:not(#print-area){display:none!important}
  /* Sans cela, le dégradé de l'écran s'imprime sur le bas de la dernière
     page dès que l'utilisateur coche « Graphiques d'arrière-plan ». */
  body.is-printing,html:has(body.is-printing){background:#fff!important;background-image:none!important}
  body.is-printing #print-area{display:block;padding:0;color:#000;background:#fff;font-size:10pt}
  #print-area .print-head{border-bottom:2px solid #000;padding-bottom:8px;margin-bottom:14px}
  #print-area h1{margin:0;font-size:16pt}
  #print-area .print-head p{margin:3px 0 0;font-size:8pt;color:#444}
  #print-area .print-meta{margin:0 0 12px;font-size:9pt;color:#333}
  #print-area .print-bloc{margin-bottom:16px;break-inside:auto}
  #print-area h2{margin:0 0 6px;font-size:11pt;border-bottom:1px solid #999;padding-bottom:3px}
  #print-area h2 small{float:right;font-weight:400;font-size:8pt;color:#555}
  #print-area table{width:100%;border-collapse:collapse;font-size:8.5pt}
  #print-area th{background:#eee;text-align:left;padding:4px 6px;border:1px solid #bbb}
  #print-area td{padding:4px 6px;border:1px solid #ddd;vertical-align:top}
  #print-area tr{break-inside:avoid}
  #print-area thead{display:table-header-group}
  #print-area .print-foot{margin-top:14px;padding-top:6px;border-top:1px solid #999;font-size:7.5pt;color:#666;text-align:center}
  @page{margin:14mm}
}

.dev-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.dev-intro h1{font-size:27px;letter-spacing:-.6px;margin:0 0 6px}.dev-intro p{color:var(--text2);margin:0}
.dev-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}
.dev-status{display:flex;gap:13px;align-items:flex-start}
.dev-status-dot{width:10px;height:10px;border-radius:50%;background:var(--text3);margin-top:5px;box-shadow:0 0 0 4px var(--surface2)}
.dev-status.ok .dev-status-dot{background:var(--green)}.dev-status.alert .dev-status-dot{background:var(--red)}
.dev-status small{display:block;font-size:9px;letter-spacing:.8px;color:var(--text3);font-weight:700}
.dev-status strong{display:block;margin:3px 0;font-size:14px}.dev-status p{font-size:11px;color:var(--text2);margin:0}
.dev-columns{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
.dev-kv{display:grid;grid-template-columns:1fr auto;gap:9px 18px;font-size:12px}
.dev-kv dt{color:var(--text2)}.dev-kv dd{margin:0;font-family:var(--mono);font-weight:600}
.dev-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.dev-log{background:#101D28;color:#D6E1E6;border-radius:8px;padding:13px;max-height:250px;overflow:auto;font:11px/1.6 var(--mono);white-space:pre-wrap}
/* Centre de paramétrage */
.settings-shell{max-width:1180px;margin:0 auto}
.settings-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:26px 28px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--surface) 0%,var(--brand-light) 180%);box-shadow:var(--shadow-card)}
.settings-eyebrow{display:block;margin-bottom:7px;color:var(--brand);font-size:10px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase}
.settings-hero h1{margin:0 0 7px;font-size:30px;letter-spacing:-.7px;color:var(--text)}
.settings-hero p{max-width:650px;margin:0;color:var(--text2);font-size:13px;line-height:1.55}
.settings-version{flex-shrink:0;padding:7px 11px;border:1px solid var(--border2);border-radius:20px;background:var(--surface);color:var(--text2);font:700 10px var(--mono)}
.settings-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.settings-nav button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:1px 10px;padding:13px 15px;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.settings-nav button:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow)}
.settings-nav button>span{grid-row:1/3;align-self:center;color:var(--brand);font:800 11px var(--mono)}
.settings-nav strong{font-size:12px}.settings-nav small{color:var(--text3);font-size:10px}
.settings-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px;align-items:start}
.settings-panel{scroll-margin-top:90px;padding:20px}
.settings-organisations,.settings-data-panel{grid-column:1/-1}
.settings-panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}
.settings-panel-title>div{display:flex;align-items:center;gap:11px;min-width:0}
.settings-panel-title h2{margin:0 0 3px;font-size:15px;color:var(--text)}
.settings-panel-title p{margin:0;color:var(--text3);font-size:10px}
.settings-icon{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:9px;background:var(--brand-light);color:var(--brand);font-weight:800}
.settings-help{margin:-3px 0 15px;color:var(--text2);font-size:12px;line-height:1.55}
.settings-actions{display:flex;gap:8px;flex-wrap:wrap}
.settings-maintenance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.settings-maintenance-grid .param-group{margin:0;padding:15px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2)}
.settings-maintenance-grid .param-group-label{margin-bottom:10px;color:var(--text);font-size:11px}
.settings-danger-zone{grid-column:1/-1;border-color:var(--red-border)!important;background:var(--red-bg)!important}
.settings-focus{animation:settingsPulse .85s ease}
@keyframes settingsPulse{0%,100%{box-shadow:var(--shadow-card)}45%{box-shadow:0 0 0 3px var(--brand-light),0 0 0 4px var(--brand)}}

/* Expérience harmonisée de tous les volets */
.module-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 18px;padding:22px 24px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--surface) 0%,var(--brand-light) 190%);box-shadow:var(--shadow-card)}
.module-hero[hidden]{display:none}
.module-hero::after{content:'';position:absolute;right:-54px;top:-80px;width:190px;height:190px;border:34px solid color-mix(in srgb,var(--brand) 8%,transparent);border-radius:50%;pointer-events:none}
.module-hero-copy,.module-hero-actions{position:relative;z-index:1}
.module-eyebrow{display:block;margin-bottom:6px;color:var(--brand);font-size:9px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase}
.module-hero h1{margin:0 0 5px;color:var(--text);font-size:25px;line-height:1.1;letter-spacing:-.55px}
.module-hero p{max-width:680px;margin:0;color:var(--text2);font-size:12px;line-height:1.5}
.module-hero-actions{display:flex;gap:7px;flex-shrink:0}
.module-page>.toolbar:first-child{padding:12px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}
.module-page .toolbar .input,.module-page .toolbar .search{min-height:34px}
.module-page>.metrics,.module-page>.grid2,.module-page>.grid3{margin-bottom:16px}
.module-page .metric{position:relative;overflow:hidden;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.module-page .metric:hover{transform:translateY(-2px);border-color:var(--border2);box-shadow:var(--shadow)}
.module-page .card{transition:border-color .16s ease,box-shadow .16s ease}
.module-page .card:hover{border-color:var(--border2)}
.module-page>.table-wrap,.module-page>.card>.table-wrap{box-shadow:var(--shadow-card)}
.module-page .table-wrap{scrollbar-width:thin;scrollbar-color:var(--border2) transparent}
.module-page .table-wrap thead{position:sticky;top:0;z-index:2}
.module-page tbody tr:focus-within td{background:var(--brand-light)}
.module-page .section-title{padding-bottom:10px;border-bottom:1px solid var(--border)}
.module-page .empty{min-height:150px}
.btn:focus-visible,.input:focus-visible,.nav-item:focus-visible,.settings-nav button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.nav-section-toggle:focus-visible,.modal-close:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
body.density-compact .module-page td{padding-top:6px;padding-bottom:6px;font-size:12px}
body.density-compact .module-page th{padding-top:7px;padding-bottom:7px;font-size:9.5px}
body.density-compact .module-page .card{padding:14px}
body.density-compact .module-page .metric{padding:13px}
body.density-compact .module-page .toolbar{margin-bottom:10px}

/* Centre de notifications */
.nav-notif-badge{min-width:20px;margin-left:auto;padding:2px 6px;border-radius:12px;background:var(--red);color:#fff;font-size:9px;font-weight:800;text-align:center}
.notif-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.notif-metric{appearance:none;width:100%;text-align:left;cursor:pointer;font-family:inherit}
.notif-metric:hover{transform:translateY(-2px);border-color:var(--brand)}
.notif-critical{border-left:3px solid var(--red)}.notif-high{border-left:3px solid var(--amber)}.notif-all{border-left:3px solid var(--brand)}
.notif-toolbar{padding:12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.notif-toolbar select{width:auto;min-width:170px}.notif-result-count{flex-shrink:0;color:var(--text3);font-size:11px}
.notif-list{display:flex;flex-direction:column;gap:10px}
.notif-item{display:grid;grid-template-columns:84px minmax(0,1fr) auto auto;align-items:center;gap:14px;margin:0;padding:15px 17px;border-left:3px solid var(--brand)}
.notif-item.notif-critical{border-left-color:var(--red)}.notif-item.notif-high{border-left-color:var(--amber)}
.notif-priority{width:max-content;padding:4px 7px;border-radius:6px;background:var(--brand-light);color:var(--brand);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}
.notif-critical .notif-priority{background:var(--red-bg);color:var(--red)}.notif-high .notif-priority{background:var(--amber-bg);color:var(--amber)}
.notif-module{margin-bottom:3px;color:var(--text3);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}
.notif-item h3{margin:0 0 3px;color:var(--text);font-size:13px}.notif-item p{margin:0;color:var(--text2);font-size:11px;line-height:1.45}
.notif-item time{color:var(--text3);font:10px var(--mono);white-space:nowrap}
.notif-empty{text-align:center;padding:50px 20px}.notif-empty>div{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 12px;border-radius:50%;background:var(--green-bg);color:var(--green);font-size:20px}
.notif-empty h3{margin:0 0 5px}.notif-empty p{margin:0;color:var(--text2);font-size:12px}
@media(max-width:1000px){.dev-grid{grid-template-columns:1fr}.dev-columns{grid-template-columns:1fr}}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-organisations,.settings-data-panel{grid-column:auto}.settings-nav{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.notif-summary{grid-template-columns:repeat(2,1fr)}.notif-item{grid-template-columns:76px minmax(0,1fr) auto}.notif-item time{display:none}}
@media(max-width:768px){.content{padding:20px 14px 34px}.topbar{height:62px;padding:0 14px}.dev-intro{align-items:flex-start;flex-direction:column}.settings-hero{align-items:flex-start;flex-direction:column;padding:20px}.settings-maintenance-grid{grid-template-columns:1fr}.settings-danger-zone{grid-column:auto}.module-hero{align-items:flex-start;flex-direction:column;padding:18px}.module-hero-actions{width:100%}.module-hero-actions .btn{flex:1}.module-page>.toolbar:first-child{padding:10px}.notif-item{grid-template-columns:1fr}.notif-toolbar select{width:100%}.notif-result-count{padding-left:2px}}
@media(max-width:560px){.settings-nav{grid-template-columns:1fr}.settings-panel{padding:16px}.settings-panel-title{align-items:flex-start}.settings-organisations .settings-panel-title{flex-direction:column}.settings-actions .btn,.settings-actions>label{width:100%;justify-content:center}.settings-version{align-self:flex-start}}
@media(max-width:520px){.changelog-release{grid-template-columns:1fr}.changelog-badge{width:max-content;padding:0 12px}}

/* Interface adaptative — tablette et mobile */
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.table-wrap{position:relative;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.table-wrap:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

@media(max-width:1100px){
  .topbar{padding-inline:20px}
  .content{padding-inline:24px}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar-actions{flex-wrap:wrap}
  #global-search-input{width:170px!important}
}

@media(max-width:768px){
  .app{min-height:100dvh;height:100dvh}
  .topbar{height:auto;min-height:62px;padding:10px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 10px;position:relative;z-index:50}
  .topbar-left{min-width:0}
  .page-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
  .topbar-actions{display:grid;grid-template-columns:auto auto minmax(130px,1fr) auto;gap:8px;width:100%;grid-column:1/-1}
  #sel-societe{width:100%!important;min-width:0;height:42px}
  #global-search-wrap{min-width:0}
  #global-search-input{width:100%!important;height:42px;font-size:13px!important}
  #global-search-results{right:0!important;left:auto;width:min(420px,calc(100vw - 28px))!important;max-height:55vh!important}
  .mobile-export-btn{min-width:42px;min-height:42px;justify-content:center}
  .content{padding:16px 14px 32px;overflow-x:hidden}
  .module-hero{gap:14px;margin-bottom:16px}
  .module-hero-copy{min-width:0}
  .module-hero-actions{display:flex;flex-wrap:wrap}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .metric{min-width:0;padding:14px}
  .metric-value{font-size:21px;overflow-wrap:anywhere}
  .card{padding:15px}
  .toolbar,.toolbar-left{width:100%}
  .toolbar-left>*{max-width:100%}
  .toolbar-left>.input,.toolbar-left>select,.toolbar-left>input{width:100%!important}
  .btn,.input,.icon-btn{min-height:42px}
  .table-wrap{max-width:100%;box-shadow:inset -18px 0 18px -22px var(--text3),var(--shadow-card)}
  .module-page .table-wrap table{min-width:640px}
  .table-wrap.is-scrollable::after{content:'Faire défiler le tableau horizontalement';position:sticky;left:10px;display:inline-block;margin:0 0 7px 10px;padding:3px 7px;border-radius:6px;background:var(--surface2);color:var(--text3);font-size:9px;pointer-events:none}
  .modal-header{padding:14px 16px}
  .modal-body{padding:16px}
  .modal-footer{padding:12px 16px;position:sticky;bottom:0;background:var(--surface);flex-wrap:wrap}
  .modal-footer .btn{flex:1;justify-content:center}
  .notif-item .btn{width:100%;justify-content:center}
  .settings-actions{flex-wrap:wrap}
}

@media(max-width:480px){
  .topbar-actions{grid-template-columns:auto auto minmax(0,1fr)}
  #sel-societe{grid-column:1/-1;grid-row:1}
  #theme-toggle{grid-column:1;grid-row:2}
  #sidebar-toggle{grid-column:2;grid-row:2}
  #global-search-wrap{grid-column:3;grid-row:2}
  .mobile-export-btn{grid-column:1/-1;width:100%}
  .mobile-export-btn span{display:inline}
  .module-hero-description{font-size:11px}
  .module-hero-actions,.module-hero-actions .btn{width:100%}
  .metrics,.notif-summary{grid-template-columns:1fr!important}
  .grid2,.grid3,.two-col{grid-template-columns:minmax(0,1fr)!important}
  .card{padding:13px}
  .modal-footer{flex-direction:column-reverse}
  .modal-footer .btn{width:100%}
  .toast-wrap{bottom:max(12px,env(safe-area-inset-bottom))}
  .app-update-banner{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));align-items:stretch;flex-direction:column;gap:12px}
  .app-update-actions,.app-update-actions .btn{width:100%}
  .app-update-actions .btn{justify-content:center}
  .backup-history-summary{align-items:flex-start;flex-direction:column}
  .backup-row-actions{align-items:stretch;flex-direction:column}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Accueil — tableau de bord opérationnel */
.home-dashboard{display:flex;flex-direction:column;gap:18px}
.home-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(125deg,var(--surface),var(--surface2));box-shadow:var(--shadow-card)}
.home-title{font-size:23px;font-weight:750}.home-date{margin-top:3px;color:var(--text2);font-size:13px;text-transform:capitalize}
.home-hero-actions{display:flex;gap:8px}.home-kpis{margin:0!important}
.home-alert-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.home-alert-strip button{display:flex;align-items:baseline;justify-content:center;gap:7px;padding:13px 10px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer}
.home-alert-strip button:last-child{border-right:0}.home-alert-strip button:hover{background:var(--surface2);color:var(--text)}
.home-alert-strip strong{font-size:19px;color:var(--text)}.home-alert-strip span{font-size:11px}
.home-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px}
.home-panel{margin:0;min-width:0}.home-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.home-panel-head h3{margin:2px 0 0;font-size:16px}.home-eyebrow{color:var(--text3);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.home-list{display:flex;flex-direction:column}.home-task,.home-project{width:100%;display:grid;align-items:center;gap:10px;padding:11px 4px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.home-task:last-child,.home-project:last-child{border-bottom:0}.home-task:hover,.home-project:hover{background:var(--surface2)}
.home-task{grid-template-columns:76px minmax(0,1fr) auto}.home-task-priority{padding:4px 6px;border-radius:6px;font-size:9px;font-weight:700;text-align:center;text-transform:uppercase}
.home-task-critical{background:var(--red-bg);color:var(--red)}.home-task-high{background:var(--amber-bg);color:var(--amber)}.home-task-normal{background:var(--blue-bg);color:var(--brand)}
.home-task-copy,.home-project>span:first-child{display:flex;min-width:0;flex-direction:column;gap:3px}.home-task-copy strong,.home-project strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.home-task-copy small,.home-project small{overflow:hidden;color:var(--text3);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.home-task-arrow{color:var(--text3);font-size:17px}
.home-statuses{display:flex;flex-direction:column;gap:4px}.home-status-row{display:grid;grid-template-columns:92px minmax(60px,1fr) 22px;align-items:center;gap:10px;padding:7px 3px;border:0;background:transparent;color:var(--text2);font-size:11px;text-align:left;cursor:pointer}
.home-status-row:hover{color:var(--text)}.home-status-track{height:7px;overflow:hidden;border-radius:999px;background:var(--surface2)}.home-status-track i{display:block;height:100%;border-radius:inherit}
.home-status-row strong{text-align:right;color:var(--text)}.home-project{grid-template-columns:minmax(0,1fr) auto}.home-project-amount{display:flex;flex-direction:column;gap:3px;text-align:right;font-size:12px;font-weight:700}
.home-finance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.home-finance-grid>div{display:flex;min-width:0;flex-direction:column;gap:5px;padding:12px;border-radius:10px;background:var(--surface2)}
.home-finance-grid span,.home-finance-grid small{color:var(--text3);font-size:10px}.home-finance-grid strong{font-size:15px}.home-empty{padding:22px;text-align:center;color:var(--text3);font-size:12px}
.home-pref-list{display:flex;flex-direction:column;margin-top:6px;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.home-pref-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border)}
.home-pref-row:last-child{border-bottom:0}.home-pref-row label{display:flex;align-items:center;gap:9px;cursor:pointer}.home-pref-row input{width:17px;height:17px;accent-color:var(--brand)}
.home-pref-order{display:flex;gap:5px}.home-pref-order .icon-btn{width:34px;height:34px;min-height:34px}.home-pref-order .icon-btn:disabled{opacity:.3;cursor:not-allowed}
.home-trend-up{color:var(--green)}.home-trend-down{color:var(--red)}.home-trend-neutral{color:var(--text3)}
.home-chart{display:grid;grid-template-columns:repeat(12,minmax(18px,1fr));height:154px;gap:5px;padding-top:8px;border-bottom:1px solid var(--border)}
.home-chart-month{display:grid;grid-template-rows:minmax(0,1fr) 20px;min-width:0}.home-chart-bars{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:100%}
.home-chart-bars i{display:block;width:min(9px,42%);min-height:0;border-radius:4px 4px 0 0}.home-chart-previous{background:var(--border)}.home-chart-current{background:var(--brand)}
.home-chart-month>span{align-self:end;overflow:hidden;color:var(--text3);font-size:8px;text-align:center}.home-chart-legend{display:flex;align-items:center;gap:5px;color:var(--text3);font-size:9px}
.home-chart-legend i{width:8px;height:8px;border-radius:2px;background:var(--border)}.home-chart-legend i:nth-of-type(2){margin-left:4px;background:var(--brand)}
.home-trend-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;font-size:11px}.home-trend-summary strong{font-size:12px}
.home-goals-panel{display:flex;flex-direction:column}.home-goal-row{padding:8px 2px}.home-goal-head,.home-goal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.home-goal-head{font-size:11px}.home-goal-head strong{font-size:11px}.home-goal-head small{color:var(--text3);font-weight:400}.home-goal-track{height:8px;margin:7px 0 5px;overflow:hidden;border-radius:999px;background:var(--surface2)}
.home-goal-track i{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .25s ease}.home-goal-track i.is-complete{background:var(--green)}
.home-goal-foot{color:var(--text3);font-size:9px}
.home-panel-actions{display:flex;gap:6px}.home-agenda-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;padding:10px 3px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.home-agenda-row:last-child{border-bottom:0}.home-agenda-row:hover{background:var(--surface2)}.home-agenda-date{padding:6px 5px;border-radius:7px;background:var(--surface2);color:var(--text2);font-size:9px;font-weight:700;text-align:center;text-transform:uppercase}
.home-agenda-date.is-near{background:var(--red-bg);color:var(--red)}.home-agenda-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.home-agenda-copy small{color:var(--brand);font-size:8px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.home-agenda-copy strong,.home-agenda-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-agenda-copy strong{font-size:11px}.home-agenda-copy span{color:var(--text3);font-size:9px}.home-more-link{width:100%;padding:10px 0 0;border:0;background:transparent;color:var(--brand);font-size:10px;font-weight:600;cursor:pointer}
.home-insights{display:flex;flex-direction:column;gap:8px}.home-insight{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.home-insight-icon{display:grid;width:27px;height:27px;place-items:center;border-radius:8px;background:var(--blue-bg);color:var(--brand);font-size:12px;font-weight:800}.home-insight-critical .home-insight-icon{background:var(--red-bg);color:var(--red)}
.home-insight-high .home-insight-icon{background:var(--amber-bg);color:var(--amber)}.home-insight-positive .home-insight-icon{background:var(--green-bg);color:var(--green)}
.home-insight-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.home-insight-copy strong{font-size:11px}.home-insight-copy small{color:var(--text3);font-size:9px;line-height:1.35}
.home-forecast-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.home-forecast-kpis>div{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:9px;background:var(--surface2)}
.home-forecast-kpis span{color:var(--text3);font-size:9px}.home-forecast-kpis strong{font-size:14px}.home-forecast-chart{display:grid;grid-template-columns:repeat(6,1fr);height:130px;gap:7px;margin-top:12px}
.home-forecast-month{display:grid;grid-template-rows:20px minmax(0,1fr) 18px;min-width:0;padding:0;border:0;background:transparent;color:var(--text);cursor:pointer}.home-forecast-month>strong{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.home-forecast-track{display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--border)}.home-forecast-track i{display:block;width:min(24px,65%);border-radius:5px 5px 0 0;background:linear-gradient(var(--brand),var(--purple))}
.home-forecast-month small{align-self:end;color:var(--text3);font-size:8px;text-transform:capitalize}.home-forecast-warning{width:100%;margin-top:9px;padding:8px;border:0;border-radius:7px;background:var(--amber-bg);color:var(--amber);font-size:9px;cursor:pointer}
.home-team-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:8px}.home-team-summary button{display:flex;flex-direction:column;gap:3px;padding:9px;border:0;border-radius:8px;background:var(--surface2);color:var(--text2);cursor:pointer}
.home-team-summary strong{color:var(--text);font-size:16px}.home-team-summary span{font-size:8px}.home-team-summary .has-alert{background:var(--red-bg)}.home-team-summary .has-alert strong,.home-team-summary .has-alert span{color:var(--red)}
.home-team-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:9px 2px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.home-team-row:last-child{border-bottom:0}.home-team-row:hover{background:var(--surface2)}.home-team-avatar{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--blue-bg);color:var(--brand);font-size:11px;font-weight:800}
.home-team-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.home-team-copy strong{font-size:11px}.home-team-copy small{color:var(--text3);font-size:9px}.home-team-track{height:4px;overflow:hidden;border-radius:99px;background:var(--surface2)}
.home-team-track i{display:block;height:100%;border-radius:inherit;background:var(--brand)}.home-team-track i.is-overload{background:var(--red)}
.notif-toolbar-end,.notif-item-actions{display:flex;align-items:center;gap:7px}.notif-manage-title{display:flex;flex-direction:column;gap:5px;margin-bottom:16px;padding:12px;border-radius:10px;background:var(--surface2)}
.notif-manage-title strong{font-size:13px}.notif-manage-title span{color:var(--text2);font-size:11px}.notif-history,.notif-global-history{display:flex;flex-direction:column;gap:8px;max-height:330px;overflow:auto}
.notif-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:10px}.notif-history-row small{color:var(--text3);font-size:9px;text-align:right}
.notif-history-card{padding:12px;border:1px solid var(--border);border-radius:10px}.notif-history-card>strong,.notif-history-card>span{display:block}.notif-history-card>strong{font-size:12px}.notif-history-card>span{margin:3px 0 7px;color:var(--text3);font-size:10px}
@media(max-width:768px){.notif-item-actions,.notif-toolbar-end{width:100%;flex-wrap:wrap}.notif-item-actions .btn{flex:1}}
.home-report-actions,.home-report-create{display:flex;gap:8px;flex-wrap:wrap}.home-report-actions .btn{flex:1}.home-report-create .btn{flex:1;min-width:220px}
.home-report-list,.home-report-history{display:flex;flex-direction:column;margin-top:10px}.home-report-row,.home-report-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--border)}
.home-report-row:last-child,.home-report-history-row:last-child{border-bottom:0}.home-report-row>span,.home-report-history-row>span{display:flex;flex-direction:column;gap:3px}.home-report-row>span:last-child,.home-report-history-row>span:last-child{text-align:right}
.home-report-row strong,.home-report-history-row strong{font-size:10px}.home-report-row small,.home-report-history-row small{color:var(--text3);font-size:9px}.home-report-history{max-height:340px;overflow:auto}
.home-quality-score{display:flex;align-items:center;gap:14px;margin-bottom:10px;padding:10px;border-radius:10px;background:var(--surface2)}.home-quality-score>div:last-child{display:flex;min-width:0;flex-direction:column;gap:4px}.home-quality-score>div:last-child strong{font-size:11px}.home-quality-score>div:last-child span{color:var(--text3);font-size:9px}
.home-quality-ring{display:grid;width:54px;height:54px;flex:0 0 54px;place-content:center;border-radius:50%;background:radial-gradient(circle at center,var(--surface) 58%,transparent 60%),conic-gradient(var(--green) calc(var(--score)*1%),var(--border) 0);text-align:center}.home-quality-ring strong{font-size:14px}.home-quality-ring small{color:var(--text3);font-size:7px}
.home-quality-list,.quality-issues{display:flex;flex-direction:column}.home-quality-row,.quality-issue{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 3px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left}.home-quality-row{cursor:pointer}.home-quality-row:hover{background:var(--surface2)}
.quality-dot{width:7px;height:7px;border-radius:50%;background:var(--text3)}.quality-critical .quality-dot{background:var(--red)}.quality-high .quality-dot{background:var(--amber)}.quality-normal .quality-dot{background:var(--brand)}
.home-quality-row>span:nth-child(2),.quality-issue>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:3px}.home-quality-row strong,.quality-issue strong{font-size:10px}.home-quality-row small,.quality-issue small{overflow:hidden;color:var(--text3);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.quality-modal-summary{display:flex;align-items:baseline;gap:7px;margin-bottom:12px;padding:12px;border-radius:10px;background:var(--surface2)}.quality-modal-summary strong{font-size:20px}.quality-modal-summary span{color:var(--text2);font-size:11px}.quality-issues{max-height:430px;overflow:auto}
.global-command-title{padding:8px 11px 4px;color:var(--text3);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.global-command{display:grid!important;grid-template-columns:28px minmax(0,1fr) auto!important}
.global-command-icon{display:grid;width:25px;height:25px;place-items:center;border-radius:7px;background:var(--blue-bg);color:var(--brand);font-size:13px;font-weight:800}.global-command-label{font-size:12px;font-weight:650}.global-command-sub{overflow:hidden;color:var(--text3);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.global-command kbd{padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:var(--surface2);color:var(--text3);font-family:inherit;font-size:8px}.global-command-footer{display:flex;justify-content:center;gap:16px;padding:8px;border-top:1px solid var(--border);color:var(--text3);font-size:9px}
.audit-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 12px}.audit-summary>div{display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:9px;background:var(--surface2)}.audit-summary strong{font-size:17px}.audit-summary span{color:var(--text3);font-size:9px}
.audit-summary .is-ok{background:var(--green-bg)}.audit-summary .is-ok strong,.audit-summary .is-ok span{color:var(--green)}.audit-summary .is-alert{background:var(--red-bg)}.audit-summary .is-alert strong,.audit-summary .is-alert span{color:var(--red)}
.audit-filters{display:grid;grid-template-columns:minmax(180px,1fr) repeat(4,minmax(130px,auto));gap:7px;margin-bottom:12px}.audit-sensitive td{background:color-mix(in srgb,var(--amber-bg) 65%,var(--surface))!important}
@media(max-width:900px){.audit-summary{grid-template-columns:repeat(2,1fr)}.audit-filters{grid-template-columns:repeat(2,1fr)}.audit-filters .search{grid-column:1/-1}}
@media(max-width:520px){.audit-summary,.audit-filters{grid-template-columns:1fr}.audit-filters .search{grid-column:auto}}

/* ═══════════════════════════════════════════════════════════════
   GLOW UP 2026 — identité premium, profondeur et lisibilité
   ═══════════════════════════════════════════════════════════════ */
:root{
  --bg:#F2F6F7;--surface:#FFFFFF;--surface2:#F5F8F8;--surface3:#EAF0F1;
  --border:#DDE7E8;--border2:#C8D7DA;
  --text:#102B38;--text2:#42525A;--text3:#596E76;
  --brand:#087590;--brand-light:#E2F3F6;--brand-dark:#055F76;
  --radius:10px;--radius-lg:16px;
  --shadow:0 8px 22px rgba(15,57,70,.08),0 2px 6px rgba(15,57,70,.04);
  --shadow-card:0 1px 2px rgba(15,57,70,.04),0 7px 22px rgba(15,57,70,.045);
  --shadow-lg:0 28px 80px -24px rgba(8,40,52,.42),0 8px 24px rgba(8,40,52,.12);
  --glow:0 12px 35px rgba(8,122,150,.16);
}
html[data-theme="dark"]{
  --bg:#08141B;--surface:#10212A;--surface2:#162A34;--surface3:#1E3540;
  --border:#203944;--border2:#31505C;
  --text:#F2F8F9;--text2:#AFC3CA;--text3:#879FA8;
  --brand:#55C0D8;--brand-light:#123541;--brand-dark:#7BD2E3;
  --shadow:0 10px 28px rgba(0,0,0,.28),0 2px 8px rgba(0,0,0,.18);
  --shadow-card:0 1px 1px rgba(255,255,255,.025),0 12px 30px rgba(0,0,0,.16);
  --shadow-lg:0 32px 90px -20px rgba(0,0,0,.78);
  --glow:0 14px 42px rgba(85,192,216,.11);
}
body{background:
  radial-gradient(circle at 82% -10%,color-mix(in srgb,var(--brand) 9%,transparent) 0,transparent 29rem),
  radial-gradient(circle at 10% 105%,color-mix(in srgb,var(--purple) 5%,transparent) 0,transparent 34rem),
  var(--bg)}
.main{position:relative;background:transparent}
.sidebar{width:264px;min-width:264px;padding:0 11px;background:linear-gradient(178deg,#102C3A 0%,#0E2430 52%,#0A1D27 100%);box-shadow:10px 0 34px rgba(4,24,33,.12)}
.logo{margin:0 -11px;padding:23px 22px 19px;background:transparent!important;border-color:rgba(255,255,255,.075)}
.logo-icon{width:39px;height:39px;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.logo-text{font-size:16px;font-weight:750;letter-spacing:-.35px}
/* Le sous-titre porte le numéro de version : il doit se lire, pas se deviner.
   4,4:1 sur le bleu du menu, c'est en dessous du seuil de confort. */
.logo-sub{color:#96ACB8;font-size:10px;letter-spacing:.25px;font-weight:600}
.nav{padding:12px 2px 20px}
/* Les intitulés du menu étaient fins et peu contrastés : 12,5 px en graisse 540
   sur un fond sombre se lisent mal dès qu'on s'éloigne de l'écran. On monte la
   taille, la graisse et surtout le contraste — de 6,9:1 à 9,9:1 pour les
   entrées, de 3,3:1 à 5,8:1 pour les titres de section, qui étaient les plus
   pénalisés. */
.nav-section{padding:17px 13px 6px;color:#8FA6B3;font-size:9.5px;font-weight:800;letter-spacing:1.05px}
.nav-item{min-height:42px;margin-bottom:3px;padding:10px 12px;border:1px solid transparent;border-radius:10px;color:#C9D6DE;font-size:13.5px;font-weight:600;letter-spacing:.1px;transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease}
.nav-item:hover{transform:translateX(2px);background:rgba(255,255,255,.055);color:#F6FCFE}
.nav-item.active{background:linear-gradient(100deg,rgba(91,197,219,.2),rgba(255,255,255,.075));border-color:rgba(120,214,231,.15);color:#fff;box-shadow:inset 0 1px rgba(255,255,255,.055),0 8px 22px rgba(0,0,0,.12)}
.nav-item.active .icon{color:#78D3E5}.nav-item .icon{width:20px;height:20px}
.nav-badge{padding:2px 7px;border:2px solid #102C3A;box-shadow:0 3px 10px rgba(210,59,51,.3)}
.sidebar-footer{margin:0 -1px;padding:12px 1px 14px;border-color:rgba(255,255,255,.07)}
.version-button{border-radius:8px}.user-card{padding:10px;border:1px solid rgba(255,255,255,.055);border-radius:12px;background:rgba(255,255,255,.045)}
.avatar{width:34px;height:34px;border:2px solid rgba(255,255,255,.15);background:linear-gradient(145deg,#E6DCCD,#C9B9A4);box-shadow:0 6px 14px rgba(0,0,0,.2)}
.topbar{height:78px;padding:0 38px;border-color:color-mix(in srgb,var(--border) 78%,transparent);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 1px 0 rgba(255,255,255,.45);backdrop-filter:blur(16px) saturate(140%)}
.page-title{font-size:18px;font-weight:700;letter-spacing:-.45px}.topbar-actions{gap:9px}
.topbar .input,.topbar .icon-btn,.topbar .btn{border-color:var(--border);background:color-mix(in srgb,var(--surface) 85%,transparent);box-shadow:0 1px 2px rgba(15,57,70,.04)}
.content{padding:36px 42px 56px}
.module-hero,.settings-hero,.home-hero{padding:27px 29px;border-color:color-mix(in srgb,var(--brand) 18%,var(--border));border-radius:20px;background:
  radial-gradient(circle at 91% 15%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 15rem),
  linear-gradient(132deg,var(--surface),color-mix(in srgb,var(--brand-light) 68%,var(--surface)));box-shadow:var(--shadow-card)}
.module-hero::after{right:-45px;top:-105px;width:250px;height:250px;border-width:46px;border-color:color-mix(in srgb,var(--brand) 7%,transparent)}
.module-eyebrow,.settings-eyebrow,.home-eyebrow{letter-spacing:1.35px}.module-hero h1{font-size:29px;font-weight:760;letter-spacing:-.85px}.module-hero p{font-size:12.5px}
.card,.metric,.table-wrap{border-color:color-mix(in srgb,var(--border) 92%,transparent);border-radius:16px;box-shadow:var(--shadow-card)}
.card{padding:19px}.metric{position:relative;padding:19px 20px;overflow:hidden}
.metric::after{content:'';position:absolute;inset:auto -28px -42px auto;width:90px;height:90px;border-radius:50%;background:color-mix(in srgb,var(--brand) 4.5%,transparent);pointer-events:none}
.metric:hover,.module-page .metric:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--brand) 28%,var(--border));box-shadow:var(--glow)}
.metric-label{margin-bottom:9px;color:var(--text2);font-size:10.5px;font-weight:650;text-transform:uppercase;letter-spacing:.45px}.metric-value{font-size:27px;font-weight:760}
.btn{min-height:36px;padding:7px 14px;border-radius:9px;font-weight:600;box-shadow:0 1px 2px rgba(15,57,70,.035);transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}
.btn:hover{transform:translateY(-1px);border-color:var(--border2);box-shadow:0 6px 15px rgba(15,57,70,.08)}.btn:active{transform:translateY(0)}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-dark));box-shadow:0 8px 20px rgba(8,122,150,.2)}.btn-primary:hover{box-shadow:0 11px 26px rgba(8,122,150,.25)}
.icon-btn{width:37px;height:37px;border-radius:10px}.input{min-height:38px;border-radius:9px;background:color-mix(in srgb,var(--surface) 94%,var(--surface2));box-shadow:inset 0 1px 1px rgba(15,57,70,.02)}
.input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent),0 6px 18px rgba(8,122,150,.07)}
.toolbar,.module-page>.toolbar:first-child{padding:13px 14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-card)}
.table-wrap{overflow-x:auto;overflow-y:hidden}.table-wrap table{overflow:clip}thead tr{background:color-mix(in srgb,var(--surface2) 82%,var(--brand-light))}
th{height:42px;padding:10px 15px;color:var(--text2);font-size:9.5px;font-weight:750;letter-spacing:.65px}td{padding:12px 15px}
tbody tr:hover td{background:color-mix(in srgb,var(--brand-light) 46%,var(--surface))}
.badge{padding:3px 9px;border-radius:999px;font-size:10px;font-weight:650}
.overlay{background:rgba(4,17,24,.58);backdrop-filter:blur(9px) saturate(110%)}.modal{border-color:color-mix(in srgb,var(--brand) 15%,var(--border));border-radius:19px;box-shadow:var(--shadow-lg)}
.modal-header{padding:19px 22px 16px}.modal-title{font-size:16px;font-weight:720}.modal-body{padding:22px}.modal-footer{padding:15px 22px;background:color-mix(in srgb,var(--surface2) 58%,var(--surface));border-radius:0 0 19px 19px}
.global-search-result{padding:10px 13px}.global-search-result:hover,.global-search-result:focus-visible{background:linear-gradient(90deg,var(--brand-light),var(--surface2))}
.toast{border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:12px;box-shadow:var(--shadow-lg)}
.home-panel-head h3,.section-title{font-weight:720;letter-spacing:-.2px}.home-alert-strip{border-radius:15px;box-shadow:var(--shadow-card)}
.home-task,.home-project,.home-agenda-row,.home-team-row,.home-quality-row{border-radius:8px;padding-inline:7px}.home-task:hover,.home-project:hover,.home-agenda-row:hover,.home-team-row:hover,.home-quality-row:hover{background:linear-gradient(90deg,var(--brand-light),transparent)}
@media(max-width:1100px){.content{padding-inline:26px}.topbar{padding-inline:24px}}
@media(max-width:768px){.topbar{height:auto;padding:10px 14px}.content{padding:18px 14px 36px}.module-hero,.settings-hero,.home-hero{padding:20px;border-radius:16px}.module-hero h1{font-size:24px}.card{padding:15px}}

/* Paramétrage 2026 — navigation et volets modernisés */
.settings-shell{max-width:1240px}.settings-svg{display:block;width:18px;height:18px;flex:0 0 18px}
.settings-hero{position:relative;overflow:hidden;padding:31px 32px}.settings-hero::before{content:'';position:absolute;right:68px;top:-95px;width:230px;height:230px;border:42px solid color-mix(in srgb,var(--brand) 7%,transparent);border-radius:50%}
.settings-hero>div,.settings-version{position:relative;z-index:1}.settings-hero h1{font-size:33px;font-weight:780;letter-spacing:-1px}.settings-version{padding:8px 13px;box-shadow:0 5px 14px rgba(15,57,70,.06)}
.settings-nav{gap:12px;margin-bottom:20px}.settings-nav button{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:2px 12px;min-height:78px;padding:15px;border-color:var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-card)}
.settings-nav button::after{content:'';position:absolute;inset:auto -20px -35px auto;width:70px;height:70px;border-radius:50%;background:color-mix(in srgb,var(--brand) 5%,transparent)}
.settings-nav button:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--brand) 42%,var(--border));box-shadow:var(--glow)}
.settings-nav button>span.settings-nav-icon{grid-row:1/3;display:grid;width:42px;height:42px;place-items:center;align-self:center;border-radius:12px;background:linear-gradient(145deg,var(--brand-light),color-mix(in srgb,var(--brand-light) 45%,var(--surface)));color:var(--brand);font:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 9%,transparent)}
.settings-nav button>span .settings-svg{width:20px;height:20px}.settings-nav button>strong{align-self:end;font-size:13px}.settings-nav button>small{align-self:start;font-size:9.5px}.settings-nav button>i{grid-column:3;grid-row:1/3;align-self:start;color:var(--text3);font:700 9px var(--mono);font-style:normal}
.settings-grid{gap:18px}.settings-panel{position:relative;padding:23px;overflow:hidden}.settings-panel::before{content:'';position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 15%,transparent));opacity:.7}
.settings-panel-title{margin-bottom:20px}.settings-panel-title>div{gap:13px}.settings-panel-title h2{font-size:16px;font-weight:730;letter-spacing:-.25px}.settings-panel-title p{font-size:10.5px}
.settings-icon{width:39px;height:39px;flex-basis:39px;border-radius:12px;background:linear-gradient(145deg,var(--brand-light),color-mix(in srgb,var(--brand-light) 42%,var(--surface)));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 9%,transparent)}
.settings-icon .settings-svg{width:20px;height:20px}.settings-company-placeholder{display:grid;width:100%;height:100%;place-items:center;color:var(--text3)}.settings-company-placeholder .settings-svg{width:19px;height:19px}
.settings-resource-links{display:flex;flex-direction:column;gap:8px}.settings-resource-links button{display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--text);text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,background .15s}
.settings-resource-links button:hover{transform:translateX(3px);border-color:var(--brand);background:var(--brand-light)}.settings-resource-links button>span{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:var(--surface);color:var(--brand)}
.settings-resource-links button>div{display:flex;flex-direction:column;gap:2px}.settings-resource-links strong{font-size:11px}.settings-resource-links small{color:var(--text3);font-size:9px}.settings-resource-links button>i{color:var(--brand);font-style:normal}
.settings-maintenance-grid{gap:14px}.settings-maintenance-grid .param-group{position:relative;padding:18px;border-radius:13px;background:linear-gradient(145deg,var(--surface2),color-mix(in srgb,var(--surface2) 68%,var(--surface)));transition:transform .16s,border-color .16s,box-shadow .16s}
.settings-maintenance-grid .param-group:hover{transform:translateY(-2px);border-color:var(--border2);box-shadow:var(--shadow-card)}.settings-maintenance-grid .param-group-label{display:flex;align-items:center;gap:10px;margin-bottom:14px;text-transform:none;letter-spacing:0}
.settings-maintenance-grid .param-group-label>span{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:10px;background:var(--surface);color:var(--brand);box-shadow:0 3px 9px rgba(15,57,70,.05)}.settings-maintenance-grid .param-group-label>span .settings-svg{width:17px;height:17px}
.settings-maintenance-grid .param-group-label>div{display:flex;flex-direction:column;gap:2px}.settings-maintenance-grid .param-group-label strong{font-size:11.5px}.settings-maintenance-grid .param-group-label small{color:var(--text3);font-size:9px;font-weight:500;text-transform:none;letter-spacing:0}
.settings-actions .settings-svg,.settings-panel>.btn .settings-svg{width:15px;height:15px}.settings-success-btn{border-color:var(--green-border);background:var(--green);color:#fff}.settings-success-btn:hover{background:color-mix(in srgb,var(--green) 88%,#000);color:#fff}
.settings-switch-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text2);font-size:12px;cursor:pointer}.settings-count{display:inline-grid;min-width:20px;height:20px;place-items:center;margin-left:2px;padding:0 6px;border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:9px}
.settings-danger-zone{padding:19px!important}.settings-danger-zone .param-group-label>span{background:color-mix(in srgb,var(--red-bg) 60%,var(--surface));color:var(--red)}
@media(max-width:900px){.settings-nav{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.settings-nav{grid-template-columns:1fr}.settings-nav button{min-height:70px}.settings-panel{padding:18px}.settings-hero h1{font-size:27px}.settings-resource-links button{grid-template-columns:35px minmax(0,1fr) auto}}
@media(max-width:1050px){.home-grid{grid-template-columns:1fr}.home-alert-strip{grid-template-columns:repeat(3,1fr)}.home-alert-strip button:nth-child(3){border-right:0}}
@media(max-width:768px){.home-hero{align-items:flex-start;flex-direction:column}.home-hero-actions{width:100%;flex-wrap:wrap}.home-hero-actions .btn{flex:1}.home-alert-strip{grid-template-columns:repeat(2,1fr)}.home-alert-strip button:nth-child(3){border-right:1px solid var(--border)}.home-alert-strip button:nth-child(even){border-right:0}.home-finance-grid{grid-template-columns:1fr}}
@media(max-width:480px){.home-title{font-size:20px}.home-alert-strip{grid-template-columns:1fr}.home-alert-strip button{border-right:0}.home-task{grid-template-columns:72px minmax(0,1fr)}.home-task-arrow{display:none}.home-chart{gap:2px}.home-chart-month>span{font-size:7px}.home-panel-head{align-items:flex-start}.home-panel-actions{flex-direction:column}.home-agenda-row{grid-template-columns:66px minmax(0,1fr)}.home-insight{grid-template-columns:30px minmax(0,1fr)}.home-insight .btn{grid-column:1/-1;width:100%;justify-content:center}}

/* Affaires 2026 — actions, chronologie et commandes globales */
.affaire-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}
.affaire-action{display:grid;width:33px;height:33px;min-width:33px;padding:0;place-items:center;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text2);cursor:pointer;box-shadow:0 2px 6px rgba(15,57,70,.035);transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease}
.affaire-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.affaire-action:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 40%,var(--border));background:var(--brand-light);color:var(--brand);box-shadow:0 7px 15px rgba(8,122,150,.12)}
.affaire-action-location:hover{border-color:color-mix(in srgb,var(--green) 42%,var(--border));background:var(--green-bg);color:var(--green)}
.affaire-action-edit:hover{border-color:color-mix(in srgb,var(--amber) 42%,var(--border));background:var(--amber-bg);color:var(--amber)}
.affaire-action-delete{color:var(--text3)}.affaire-action-delete:hover{border-color:var(--red-border);background:var(--red-bg);color:var(--red)}
.affaire-timeline-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:21px 0 14px;padding-top:18px;border-top:1px solid var(--border)}
.affaire-timeline-title>div{display:flex;align-items:center;gap:9px}.affaire-timeline-title span{font-size:13px;font-weight:750;color:var(--text)}.affaire-timeline-title strong{padding:3px 8px;border-radius:999px;background:var(--brand-light);color:var(--brand);font-size:9px}
.affaire-timeline-title small{color:var(--text3);font-size:9px}.affaire-timeline{max-height:440px;padding:2px 5px 2px 0;overflow-y:auto;overscroll-behavior:contain}
.affaire-timeline-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;position:relative;padding-bottom:12px}
.affaire-timeline-rail{position:relative;display:flex;justify-content:center}.affaire-timeline-rail::after{content:'';position:absolute;top:32px;bottom:-12px;width:2px;background:linear-gradient(var(--border2),var(--border))}
.affaire-timeline-step:last-child .affaire-timeline-rail::after{display:none}
.affaire-timeline-number{position:relative;z-index:1;display:grid;width:29px;height:29px;place-items:center;border:2px solid var(--surface);border-radius:50%;background:var(--surface3);color:var(--text2);font:750 10px var(--mono);box-shadow:0 0 0 1px var(--border)}
.affaire-timeline-card{padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface2) 46%,var(--surface)));box-shadow:0 3px 12px rgba(15,57,70,.04)}
.affaire-timeline-card-head{display:flex;align-items:flex-start;gap:9px}.affaire-timeline-icon{display:grid;width:29px;height:29px;flex:0 0 29px;place-items:center;border-radius:8px;background:var(--surface2);font-size:14px}
.affaire-timeline-heading{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.affaire-timeline-heading h4{margin:0;color:var(--text);font-size:12px;font-weight:680;line-height:1.35}
.affaire-timeline-category{align-self:flex-start;color:var(--timeline-color,var(--brand));font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.affaire-timeline-card p{margin:9px 0 0 38px;color:var(--text2);font-size:10.5px;line-height:1.5}.affaire-timeline-meta{display:flex;align-items:center;gap:11px;margin:9px 0 0 38px;color:var(--text3);font-size:8.5px}
.affaire-timeline-meta span{padding-left:11px;border-left:1px solid var(--border)}.affaire-timeline-current{flex:0 0 auto;padding:3px 7px;border-radius:99px;background:var(--green-bg);color:var(--green);font-size:8px;font-weight:750}
.affaire-timeline-step.is-current .affaire-timeline-number{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;box-shadow:0 0 0 4px var(--brand-light)}
.affaire-timeline-step.is-current .affaire-timeline-card{border-color:color-mix(in srgb,var(--brand) 35%,var(--border));box-shadow:0 8px 22px rgba(8,122,150,.1)}
.topbar-notification-btn,.topbar-export-btn{position:relative}.topbar-notification-badge{position:absolute;right:-5px;top:-5px;display:grid;min-width:17px;height:17px;padding:0 4px;place-items:center;border:2px solid var(--surface);border-radius:99px;background:var(--red);color:#fff;font-size:7px;font-weight:850;box-sizing:border-box}
.topbar-notification-badge[hidden]{display:none}.topbar-export-btn{width:32px!important;height:32px!important;min-height:32px!important;border-color:transparent!important;background:transparent!important;box-shadow:none!important;color:var(--text3)}
.topbar-export-btn:hover{border-color:var(--border)!important;background:var(--surface2)!important;color:var(--brand)}
.topbar{position:relative;z-index:120;overflow:visible}
#global-search-wrap{position:relative;z-index:130}
#global-search-results{z-index:140!important;isolation:isolate}
.content{position:relative;z-index:1}
@media(max-width:768px){.affaire-action{width:37px;height:37px}.affaire-timeline{max-height:55vh}.topbar-actions{grid-template-columns:auto auto auto minmax(130px,1fr) auto}.topbar-export-btn{width:42px!important;height:42px!important;min-height:42px!important}}
@media(max-width:480px){.topbar-actions{grid-template-columns:auto auto auto minmax(0,1fr) auto}.topbar-notification-btn{grid-column:2;grid-row:2}#sidebar-toggle{grid-column:3;grid-row:2}#global-search-wrap{grid-column:4;grid-row:2}.topbar-export-btn{grid-column:5;grid-row:2}.affaire-timeline-title{align-items:flex-start;flex-direction:column}.affaire-timeline-title small{display:none}.affaire-timeline-step{grid-template-columns:35px minmax(0,1fr);gap:7px}.affaire-timeline-card{padding:11px}.affaire-timeline-current{display:none}.affaire-timeline-card p,.affaire-timeline-meta{margin-left:0}.affaire-timeline-meta{align-items:flex-start;flex-direction:column;gap:4px}.affaire-timeline-meta span{padding-left:0;border-left:0}}

/* Fiche Affaire à 360° */
.modal-affaire360{max-width:920px}.affaire360{display:flex;flex-direction:column;gap:14px}
.affaire360-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:16px;background:radial-gradient(circle at 92% 10%,color-mix(in srgb,var(--brand) 16%,transparent),transparent 13rem),linear-gradient(135deg,var(--surface),var(--brand-light))}
.affaire360-hero>div{min-width:0}.affaire360-eyebrow{color:var(--brand);font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.affaire360-hero h2{margin:4px 0 5px;color:var(--text);font-size:22px;line-height:1.15;letter-spacing:-.55px}.affaire360-hero p{margin:0;color:var(--text2);font-size:10.5px}
.affaire360-actions{display:flex;gap:7px;flex-wrap:wrap}.affaire360-actions button{display:flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text2);font-size:10px;font-weight:650;cursor:pointer;transition:.15s}.affaire360-actions button:hover{transform:translateY(-1px);border-color:var(--brand);background:var(--brand-light);color:var(--brand)}
.affaire360-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.affaire360-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.affaire360-kpis>div{display:flex;min-width:0;flex-direction:column;gap:4px;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.affaire360-kpis span{color:var(--text3);font-size:8px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.affaire360-kpis strong{overflow:hidden;color:var(--text);font-size:17px;text-overflow:ellipsis;white-space:nowrap}.affaire360-kpis small{color:var(--text3);font-size:8.5px}.affaire360-kpis .is-positive strong{color:var(--green)}.affaire360-kpis .is-negative{background:var(--red-bg);border-color:var(--red-border)}.affaire360-kpis .is-negative strong{color:var(--red)}
.affaire360-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.affaire360-panel{min-width:0;padding:15px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:0 3px 12px rgba(15,57,70,.035)}
.affaire360-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.affaire360-panel-head span{color:var(--text3);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.affaire360-panel-head strong{color:var(--text2);font-size:9px}
.affaire360-next{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--brand-light) 65%,var(--surface)))}.affaire360-next-value{margin:4px 0;color:var(--text);font-size:19px;font-weight:760;letter-spacing:-.4px}.affaire360-next p{margin:0 0 12px;color:var(--text2);font-size:10px}
.affaire360-linked{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.affaire360-linked button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px;border:0;border-radius:9px;background:var(--surface2);color:var(--text2);font-size:9.5px;cursor:pointer}.affaire360-linked button:hover{background:var(--brand-light);color:var(--brand)}.affaire360-linked b{display:grid;min-width:21px;height:21px;padding:0 5px;place-items:center;border-radius:99px;background:var(--surface);color:var(--text);font-size:9px}
.affaire360-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}.affaire360-details div{min-width:0}.affaire360-details dt{margin-bottom:3px;color:var(--text3);font-size:8px;text-transform:uppercase}.affaire360-details dd{margin:0;overflow:hidden;color:var(--text);font-size:10px;text-overflow:ellipsis}.affaire360-details a{color:var(--brand);text-decoration:none}
.affaire360-activity{display:flex;flex-direction:column}.affaire360-activity>div{display:grid;grid-template-columns:8px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.affaire360-activity>div:last-child{border-bottom:0}.affaire360-activity i{width:7px;height:7px;margin-top:4px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.affaire360-activity span{display:flex;min-width:0;flex-direction:column;gap:2px}.affaire360-activity strong{overflow:hidden;color:var(--text);font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}.affaire360-activity small,.affaire360-activity p{color:var(--text3);font-size:8.5px}
@media(max-width:720px){.affaire360-kpis,.affaire360-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.affaire360-panel{grid-column:1/-1}}
@media(max-width:480px){.affaire360-hero{align-items:flex-start;flex-direction:column}.affaire360-hero h2{font-size:19px}.affaire360-actions button{flex:1;justify-content:center}.affaire360-kpis{grid-template-columns:1fr 1fr}.affaire360-kpis>div{padding:11px}.affaire360-kpis strong{font-size:14px}.affaire360-grid{grid-template-columns:1fr}.affaire360-details{grid-template-columns:1fr}.affaire360-linked{grid-template-columns:1fr 1fr}}

/* Affaires — sélection et actions groupées */
.affaire-bulkbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-5px 0 15px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border));border-radius:12px;background:linear-gradient(100deg,var(--brand-light),color-mix(in srgb,var(--brand-light) 35%,var(--surface)));box-shadow:0 7px 20px rgba(8,122,150,.07)}
.affaire-bulkbar[hidden]{display:none}.affaire-bulkbar-count{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.affaire-bulkbar-count strong{display:grid;min-width:27px;height:27px;padding:0 7px;place-items:center;border-radius:8px;background:var(--brand);color:#fff;font-size:12px}.affaire-bulkbar-count span{color:var(--text2);font-size:10px;font-weight:650}
.affaire-bulkbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.affaire-bulkbar-actions .input{width:170px;min-height:32px;height:32px;font-size:10px}.affaire-select-cell{width:34px!important;padding-right:4px!important;text-align:center}.affaire-select-cell input{width:15px;height:15px;margin:0;accent-color:var(--brand);cursor:pointer}
tbody tr.is-selected td{background:color-mix(in srgb,var(--brand-light) 72%,var(--surface))}tbody tr.is-selected:hover td{background:color-mix(in srgb,var(--brand-light) 88%,var(--surface))}
@media(max-width:760px){.affaire-bulkbar{align-items:stretch;flex-direction:column}.affaire-bulkbar-actions{justify-content:flex-start}.affaire-bulkbar-actions .input{width:100%}.affaire-bulkbar-actions .btn{flex:1}}
@media(max-width:480px){.affaire-bulkbar-actions{display:grid;grid-template-columns:1fr 1fr}.affaire-bulkbar-actions .input{grid-column:1/-1}.affaire-bulkbar-actions .btn:last-child{grid-column:1/-1}}

/* Affaires — liste interactive premium */
.affaire-list-table{border-collapse:separate;border-spacing:0}.affaire-list-table thead tr{background:linear-gradient(90deg,color-mix(in srgb,var(--surface2) 84%,var(--brand-light)),var(--surface2))}
.affaire-list-table th{height:46px;border-bottom:1px solid var(--border);color:var(--text3);font-size:8.5px;letter-spacing:.09em}.affaire-list-row{position:relative;cursor:pointer;outline:none;transition:transform .14s ease,filter .14s ease}
.affaire-list-row td{position:relative;height:53px;border-bottom-color:color-mix(in srgb,var(--border) 82%,transparent);transition:background .14s ease,color .14s ease}.affaire-list-row td:first-child::before{content:'';position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 4px 4px 0;background:var(--brand);opacity:0;transform:scaleY(.45);transition:.16s}
.affaire-list-row:hover td,.affaire-list-row:focus-visible td{background:linear-gradient(90deg,color-mix(in srgb,var(--brand-light) 76%,var(--surface)),color-mix(in srgb,var(--brand-light) 34%,var(--surface)))!important}.affaire-list-row:hover td:first-child::before,.affaire-list-row:focus-visible td:first-child::before{opacity:1;transform:scaleY(1)}
.affaire-list-row:focus-visible{box-shadow:inset 0 0 0 2px var(--brand)}.affaire-list-row .fw{font-size:12.5px;font-weight:690;letter-spacing:-.1px}.affaire-list-row .text-sm{color:var(--text2)}
.affaire-ref{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--affaire-color) 22%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--affaire-color) 7%,var(--surface));color:color-mix(in srgb,var(--affaire-color) 55%,var(--text));font:720 10px var(--mono);white-space:nowrap}.affaire-ref::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,var(--affaire-color) 12%,transparent)}
.affaire-ref-missing{--affaire-color:var(--text3);font-weight:600}
.modal-action-planner{max-width:720px}.action-planner{display:flex;flex-direction:column;gap:13px}.action-planner-hero{padding:18px 20px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:15px;background:linear-gradient(135deg,var(--surface),var(--brand-light))}.action-planner-hero>span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.action-planner-hero h2{margin:5px 0 9px;color:var(--text);font-size:19px;letter-spacing:-.4px}.action-planner-hero p{display:flex;align-items:center;gap:9px;margin:0}.action-planner-hero small{color:var(--text2);font-size:9px}.action-priority-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.action-priority-options label{position:relative;cursor:pointer}.action-priority-options input{position:absolute;opacity:0;pointer-events:none}.action-priority-options span{display:grid;min-height:38px;place-items:center;border:1px solid var(--border);border-radius:9px;background:var(--surface2);color:var(--text2);font-size:9px;font-weight:700;transition:.14s}.action-priority-options input:checked+span{border-color:var(--brand);background:var(--brand-light);color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 8%,transparent)}.action-priority-options label:nth-child(3) input:checked+span{border-color:var(--amber-border);background:var(--amber-bg);color:var(--amber)}.action-priority-options label:nth-child(4) input:checked+span{border-color:var(--red-border);background:var(--red-bg);color:var(--red)}.action-planner-note{padding:10px 12px;border-radius:9px;background:var(--brand-light);color:var(--text2);font-size:9px;line-height:1.5}@media(max-width:520px){.action-priority-options{grid-template-columns:1fr 1fr}.action-planner-hero p{align-items:flex-start;flex-direction:column}}
.action-owner-empty{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:7px;padding:8px 9px;border:1px solid var(--amber-border);border-radius:8px;background:var(--amber-bg)}.action-owner-empty span{color:var(--amber);font-size:8.5px}.action-owner-empty .btn{flex:none}
.action-planner-existing-list{display:flex;max-height:190px;flex-direction:column;gap:5px;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);overflow-y:auto}.action-planner-existing{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 10px 9px 13px;border:1px solid var(--border);border-radius:9px;background:var(--surface);text-align:left;cursor:pointer;overflow:hidden}.action-planner-existing::before{content:'';position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand)}.action-planner-existing.priority-high::before{background:var(--amber)}.action-planner-existing.priority-critical::before{background:var(--red)}.action-planner-existing.is-editing{border-color:var(--brand);background:var(--brand-light)}.action-planner-existing>span{display:flex;min-width:0;flex-direction:column;gap:2px}.action-planner-existing strong{overflow:hidden;color:var(--text);font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}.action-planner-existing small{color:var(--text3);font-size:8px}.action-planner-existing>b{flex:none;color:var(--brand);font-size:8px}.action-planner-form-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px}.action-planner-form-title span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.action-planner-form-title strong{color:var(--text3);font-size:8px;font-weight:600}
.action-planner-history{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}.action-planner-history summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;color:var(--text2);font-size:9px;font-weight:750;cursor:pointer;list-style:none}.action-planner-history summary::-webkit-details-marker{display:none}.action-planner-history summary span::before{content:'✓';display:inline-grid;width:18px;height:18px;margin-right:8px;place-items:center;border-radius:50%;background:var(--green-bg);color:var(--green);font-size:9px}.action-planner-history summary strong{color:var(--text3);font-size:8px}.action-planner-history[open] summary{border-bottom:1px solid var(--border)}.action-planner-history>div{display:flex;max-height:180px;flex-direction:column;gap:5px;padding:9px;background:var(--surface2);overflow-y:auto}.action-planner-completed{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.action-planner-completed-check{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:var(--green-bg);color:var(--green);font-weight:850}.action-planner-completed>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:2px}.action-planner-completed strong{overflow:hidden;color:var(--text2);font-size:9px;text-decoration:line-through;text-overflow:ellipsis;white-space:nowrap}.action-planner-completed small{color:var(--text3);font-size:7.5px}.action-planner-completed button{padding:5px 7px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--brand);font-size:7.5px;font-weight:750;cursor:pointer}.action-planner-completed button:hover{border-color:var(--brand);background:var(--brand-light)}.action-planner-history-more{padding:5px;text-align:center;color:var(--text3);font-size:8px}
.action-recurrence-help{display:block;margin-top:6px;color:var(--text3);font-size:8px;line-height:1.4}.et-recurrence-badge{display:inline-flex;margin-left:5px;padding:2px 5px;border-radius:99px;background:var(--blue-bg);color:var(--blue);font-size:7px;font-weight:800;white-space:nowrap}
.action-template-strip{padding:10px 11px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.action-template-strip>span{display:block;margin-bottom:7px;color:var(--text3);font-size:7.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.action-template-strip>div{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px}.action-template-strip button{flex:none;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text2);font-size:8px;font-weight:700;cursor:pointer}.action-template-strip button:hover{border-color:var(--brand);background:var(--brand-light);color:var(--brand)}.modal-action-planner .modal-footer{flex-wrap:wrap}
.et-task-card{cursor:pointer}.et-task-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.modal-action360{max-width:760px}.action360{display:flex;flex-direction:column;gap:12px}.action360-hero{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px;border:1px solid color-mix(in srgb,var(--brand) 24%,var(--border));border-radius:16px;background:linear-gradient(135deg,var(--surface),var(--brand-light));overflow:hidden}.action360-hero::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:var(--brand)}.action360-hero.priority-high::before{background:var(--amber)}.action360-hero.priority-critical::before,.action360-hero.is-overdue::before{background:var(--red)}.action360-hero>div>span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.action360-hero.is-overdue>div>span{color:var(--red)}.action360-hero h2{margin:6px 0 10px;color:var(--text);font-size:20px}.action360-hero p{display:flex;align-items:center;gap:8px;margin:0}.action360-hero p small{color:var(--text2);font-size:9px}.action360-hero>strong{padding:6px 9px;border-radius:99px;background:var(--surface);color:var(--text2);font-size:8px;text-transform:uppercase}.action360-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.action360-kpis>div,.action360-grid>section{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.action360-kpis span,.action360-grid>section>span{display:block;color:var(--text3);font-size:7.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.action360-kpis strong{display:block;margin:6px 0 2px;color:var(--text);font-size:13px}.action360-kpis small{color:var(--text3);font-size:7.5px}.action360-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:8px}.action360-grid p{margin:10px 0 0;color:var(--text2);font-size:9.5px;line-height:1.55;white-space:pre-wrap}.action360-grid dl{display:flex;flex-direction:column;gap:7px;margin:10px 0 0}.action360-grid dl>div{display:flex;justify-content:space-between;gap:10px}.action360-grid dt{color:var(--text3);font-size:8px}.action360-grid dd{margin:0;color:var(--text);font-size:8.5px;font-weight:700;text-align:right}@media(max-width:620px){.action360-hero{align-items:flex-start;flex-direction:column}.action360-kpis,.action360-grid{grid-template-columns:1fr}}
.action360-documents,.action360-review{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.action360-documents>div:nth-of-type(odd){display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.action360-documents>div:nth-of-type(odd)>span,.action360-review>div:first-child>span{color:var(--text3);font-size:7.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.action360-document-list{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.action360-document-list:last-child{margin-bottom:0}.action360-document-list>p{margin:0;padding:8px;border:1px dashed var(--border);border-radius:8px;color:var(--text3);font-size:8px}.action360-document{display:grid;grid-template-columns:minmax(0,1fr) 28px 28px;align-items:center;gap:5px;padding:7px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}.action360-document>span{display:flex;min-width:0;flex-direction:column;gap:2px}.action360-document strong{overflow:hidden;color:var(--text2);font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.action360-document small{color:var(--text3);font-size:7px}.action360-document button{display:grid;width:27px;height:27px;place-items:center;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--brand);cursor:pointer}.action360-review.pending{border-color:var(--amber-border);background:color-mix(in srgb,var(--amber-bg) 35%,var(--surface))}.action360-review>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.action360-review>div:first-child>strong{color:var(--text);font-size:9px}.action360-review>p{padding:10px;border-radius:8px;background:var(--surface2);color:var(--text2);font-size:9px}.action360-rating{margin:8px 0;color:var(--amber);font-size:17px;letter-spacing:2px}.action360-review-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}
.et-manager-review{padding:13px;border:1px solid var(--amber-border);border-radius:14px;background:color-mix(in srgb,var(--amber-bg) 32%,var(--surface))}.et-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.et-review-card{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--surface);text-align:left;cursor:pointer;transition:.15s}.et-review-card:hover{border-color:var(--amber);transform:translateY(-1px);box-shadow:var(--shadow-card)}.et-review-icon{display:grid;width:31px;height:31px;place-items:center;border-radius:10px;background:var(--amber-bg);color:var(--amber);font-weight:850}.et-review-card>span:nth-child(2),.et-review-card>span:last-child{display:flex;min-width:0;flex-direction:column;gap:3px}.et-review-card>span:nth-child(2)>strong{overflow:hidden;color:var(--text);font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}.et-review-card small{color:var(--text3);font-size:7.5px}.et-review-card>span:last-child{align-items:flex-end;text-align:right}.et-review-card>span:last-child>strong{color:var(--text2);font-size:8px}.et-review-card b{color:var(--brand);font-size:8px}@media(max-width:850px){.et-review-grid{grid-template-columns:1fr}}@media(max-width:500px){.et-review-card{grid-template-columns:28px minmax(0,1fr)}.et-review-card>span:last-child{grid-column:1/-1;align-items:flex-start;padding-left:37px;text-align:left}}
.modal-action-completion{max-width:680px}.action-completion{display:flex;flex-direction:column;gap:14px}.action-completion>section{padding:17px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--border));border-radius:14px;background:linear-gradient(135deg,var(--surface),var(--green-bg))}.action-completion>section>span{color:var(--green);font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.action-completion h2{margin:5px 0 9px;color:var(--text);font-size:18px}.action-completion>section p{display:flex;align-items:center;gap:8px;margin:0}.action-completion>section p small{color:var(--text2);font-size:8.5px}.action-completion-drop{position:relative;padding:13px;border:1px dashed var(--border2);border-radius:12px;background:var(--surface2)}.action-completion-drop>label{display:flex;align-items:center;flex-direction:column;gap:5px;padding:12px;text-align:center;cursor:pointer}.action-completion-drop>label>span{display:grid;width:34px;height:34px;place-items:center;border-radius:11px;background:var(--brand-light);color:var(--brand);font-size:17px}.action-completion-drop>label strong{color:var(--text);font-size:10px}.action-completion-drop>label small{color:var(--text3);font-size:8px}.action-completion-drop>input{position:absolute;width:1px;height:1px;opacity:0}.action-completion-file-list{display:flex;flex-direction:column;gap:4px}.action-completion-file-list>div{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:7px;background:var(--surface);color:var(--text2);font-size:8px}.action-completion-file-list small{color:var(--text3)}.action-completion-manager{padding:9px 11px;border-radius:9px;background:var(--amber-bg);color:var(--amber);font-size:8.5px}.action360-completion-note,.action360-timeline{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.action360-completion-note>span,.action360-timeline>span{color:var(--text3);font-size:7.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.action360-completion-note p{margin:9px 0 0;color:var(--text2);font-size:9px;line-height:1.55;white-space:pre-wrap}.action360-timeline>div{display:flex;flex-direction:column;margin-top:12px}.action360-timeline article{display:grid;grid-template-columns:17px minmax(0,1fr);gap:8px;min-height:48px}.action360-timeline article>i{position:relative;width:9px;height:9px;margin-top:2px;border:2px solid var(--surface);border-radius:50%;background:var(--brand);box-shadow:0 0 0 2px var(--brand-light)}.action360-timeline article:not(:last-child)>i::after{content:'';position:absolute;top:10px;left:3px;width:1px;height:35px;background:var(--border)}.action360-timeline article>div{display:grid;grid-template-columns:1fr auto;gap:2px 8px}.action360-timeline article strong{color:var(--text);font-size:8.5px}.action360-timeline article small{color:var(--text3);font-size:7.5px}.action360-timeline article p{grid-column:1/-1;margin:0;color:var(--text2);font-size:8px}.action360-review-entry{margin-top:9px;padding:9px;border-radius:9px;background:var(--surface2)}.action360-review-entry>div{display:flex;justify-content:space-between;gap:8px}.action360-review-entry p{margin:7px 0!important;padding:0!important;background:transparent!important}

/* Action 360 — confort de lecture renforcé */
.modal-action360{max-width:880px}.modal-action360 .modal-header{padding:20px 26px}.modal-action360 .modal-header h3{font-size:18px}.modal-action360 .modal-body{padding:24px 26px}.modal-action360 .modal-footer{padding:18px 26px}.modal-action360 .modal-footer .btn{min-height:42px;padding-inline:18px;font-size:12px}.action360{gap:16px}.action360-hero{padding:24px 25px}.action360-hero>div>span{font-size:10px;letter-spacing:.12em}.action360-hero h2{margin:8px 0 13px;font-size:25px;line-height:1.2}.action360-hero p small{font-size:12px}.action360-hero>strong{padding:7px 11px;font-size:10px}.action360-kpis{gap:11px}.action360-kpis>div,.action360-grid>section,.action360-documents,.action360-review,.action360-completion-note,.action360-timeline{padding:18px;border-radius:14px}.action360-kpis span,.action360-grid>section>span,.action360-documents>div:nth-of-type(odd)>span,.action360-review>div:first-child>span,.action360-completion-note>span,.action360-timeline>span{font-size:10px;letter-spacing:.09em}.action360-kpis strong{margin:9px 0 4px;font-size:16px;line-height:1.25}.action360-kpis small{font-size:10px;line-height:1.4}.action360-grid{gap:11px}.action360-grid p,.action360-completion-note p{margin-top:12px;font-size:12px;line-height:1.65}.action360-grid dl{gap:10px;margin-top:13px}.action360-grid dt{font-size:10.5px}.action360-grid dd{font-size:11px;line-height:1.35}.action360-document-list>p{padding:11px;font-size:10px}.action360-document{padding:9px 10px}.action360-document strong{font-size:11px}.action360-document small{font-size:9px}.action360-review>div:first-child>strong{font-size:12px}.action360-review-entry{margin-top:12px;padding:12px}.action360-review-entry>div strong{font-size:11px}.action360-review-entry>div small{font-size:10px}.action360-review-entry p{font-size:12px!important;line-height:1.55}.action360-rating{font-size:20px}.action360-timeline>div{margin-top:16px}.action360-timeline article{grid-template-columns:20px minmax(0,1fr);gap:10px;min-height:62px}.action360-timeline article>i{width:11px;height:11px}.action360-timeline article:not(:last-child)>i::after{top:12px;left:4px;height:48px}.action360-timeline article strong{font-size:11px}.action360-timeline article small{font-size:9.5px}.action360-timeline article p{margin-top:3px;font-size:10.5px;line-height:1.45}@media(max-width:620px){.modal-action360 .modal-body{padding:17px}.action360-hero{padding:20px}.action360-hero h2{font-size:21px}.action360-kpis>div,.action360-grid>section,.action360-documents,.action360-review,.action360-completion-note,.action360-timeline{padding:15px}}

/* Centre des actions — confort de lecture renforcé */
#p-actions .et-action-center{gap:24px}#p-actions .et-action-page-toolbar{padding:18px 20px}#p-actions .et-action-page-toolbar span{font-size:10px}#p-actions .et-action-page-toolbar strong{font-size:14px;line-height:1.35}#p-actions .et-action-page-tools .btn{min-height:40px;padding-inline:15px;font-size:11px}#p-actions .et-action-center-hero{padding:27px 30px}#p-actions .et-action-center-hero>div:first-child>span{font-size:10px}#p-actions .et-action-center-hero h2{margin:8px 0;font-size:27px}#p-actions .et-action-center-hero p{font-size:12px;line-height:1.45}#p-actions .et-action-center-stats{gap:10px}#p-actions .et-action-center-stats>div{min-width:88px;padding:14px 10px}#p-actions .et-action-center-stats strong{font-size:20px}#p-actions .et-action-center-stats span{font-size:9px;line-height:1.25}#p-actions .et-action-section-head{margin-bottom:12px}#p-actions .et-action-section-head span{font-size:11px;letter-spacing:.09em}#p-actions .et-action-section-head strong{min-width:26px;height:26px;font-size:10px}#p-actions .et-workload-grid{gap:10px}#p-actions .et-workload-card{grid-template-columns:40px minmax(0,1fr) auto;padding:13px 14px}#p-actions .et-workload-avatar{width:38px;height:38px;font-size:11px}#p-actions .et-workload-person{gap:4px}#p-actions .et-workload-person strong{font-size:12px}#p-actions .et-workload-person small{font-size:9.5px}#p-actions .et-workload-person i{height:5px;margin-top:4px}#p-actions .et-workload-card>strong{font-size:17px}#p-actions .et-action-filters{gap:9px;margin-bottom:13px;padding:12px}#p-actions .et-action-filters .input{height:42px;padding-inline:12px;font-size:11px}#p-actions .et-task-grid{gap:11px}#p-actions .et-task-card{padding:18px;border-radius:14px}#p-actions .et-task-card-head>span:last-child{font-size:10px}#p-actions .et-task-select{width:25px;height:25px}#p-actions .et-task-select input{width:18px;height:18px}#p-actions .et-task-card-head:has(.et-task-select){grid-template-columns:26px minmax(0,1fr) auto}#p-actions .et-task-card h3{margin:15px 0 7px;font-size:14px;line-height:1.35}#p-actions .et-task-card p{font-size:11px;line-height:1.55}#p-actions .et-task-meta{margin:13px 0}#p-actions .et-task-meta span,#p-actions .et-task-meta strong{font-size:11px}#p-actions .et-recurrence-badge{font-size:9px}#p-actions .et-task-actions{gap:8px}#p-actions .et-task-actions .btn{min-height:42px;font-size:12px}#p-actions .et-unplanned-list{gap:8px}#p-actions .et-unplanned-row{padding:12px 14px}#p-actions .et-unplanned-row small{font-size:11px}#p-actions .et-unplanned-row>strong{font-size:11px}#p-actions .et-action-filter-empty,#p-actions .et-action-empty{padding:22px;font-size:12px}@media(max-width:900px){#p-actions .et-action-center-hero{align-items:flex-start;flex-direction:column}#p-actions .et-action-center-stats{width:100%;flex-wrap:wrap}#p-actions .et-action-center-stats>div{flex:1;min-width:100px}}@media(max-width:560px){#p-actions .et-action-center-hero{padding:21px}#p-actions .et-action-center-hero h2{font-size:23px}#p-actions .et-action-center-stats{display:grid;grid-template-columns:1fr 1fr}#p-actions .et-workload-grid{grid-template-columns:1fr}}
.calendar-action-chip{display:flex;align-items:center;gap:4px;width:100%;margin-top:2px;padding:2px 4px;border:0;border-radius:4px;background:var(--brand-light);color:var(--brand);font-size:8.5px;white-space:nowrap;overflow:hidden;cursor:pointer}.calendar-action-chip span{padding:1px 3px;border-radius:3px;background:var(--brand);color:#fff;font-size:6.5px;font-weight:800;text-transform:uppercase}.calendar-action-chip.priority-high{background:var(--amber-bg);color:var(--amber)}.calendar-action-chip.priority-high span{background:var(--amber)}.calendar-action-chip.priority-critical,.calendar-action-chip.is-overdue{background:var(--red-bg);color:var(--red)}.calendar-action-chip.priority-critical span,.calendar-action-chip.is-overdue span{background:var(--red)}.calendar-upcoming-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.calendar-upcoming-grid>.card{margin:0}.calendar-actions-card{min-width:0}.calendar-upcoming-action{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 7px 8px 11px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;cursor:pointer}.calendar-upcoming-action::before{content:'';position:absolute;left:0;width:3px;height:28px;border-radius:99px;background:var(--brand)}.calendar-upcoming-action.priority-high::before{background:var(--amber)}.calendar-upcoming-action.priority-critical::before{background:var(--red)}.calendar-upcoming-action>span{display:flex;min-width:0;align-items:center;gap:8px}.calendar-upcoming-action>span>small{overflow:hidden;color:var(--text2);font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.calendar-upcoming-action>strong{display:flex;flex:none;flex-direction:column;gap:2px;color:var(--text);font-size:8.5px;text-align:right}.calendar-upcoming-action>strong small{color:var(--text3);font-size:7.5px}.calendar-upcoming-action:hover{background:var(--brand-light)}.calendar-action-empty{padding:18px;color:var(--text3);font-size:9px;text-align:center}@media(max-width:780px){.calendar-upcoming-grid{grid-template-columns:1fr}}@media(max-width:520px){.calendar-upcoming-action>span{align-items:flex-start;flex-direction:column}}
.et-action-metric{min-width:140px;flex:1;text-align:left;cursor:pointer}.et-action-metric:hover{border-color:var(--brand);background:var(--brand-light)}.modal-et-action-center{max-width:940px}.et-action-center{display:flex;flex-direction:column;gap:18px}.et-action-center-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--brand) 23%,var(--border));border-radius:16px;background:radial-gradient(circle at 90% 0,color-mix(in srgb,var(--brand) 16%,transparent),transparent 13rem),linear-gradient(135deg,var(--surface),var(--brand-light))}.et-action-center-hero>div:first-child>span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.et-action-center-hero h2{margin:5px 0;color:var(--text);font-size:21px}.et-action-center-hero p{margin:0;color:var(--text2);font-size:9.5px}.et-action-center-stats{display:flex;gap:7px}.et-action-center-stats>div{display:flex;min-width:72px;flex-direction:column;gap:2px;padding:10px;border:1px solid color-mix(in srgb,var(--brand) 17%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--surface) 84%,transparent);text-align:center}.et-action-center-stats strong{color:var(--text);font-size:16px}.et-action-center-stats span{color:var(--text3);font-size:7.5px;text-transform:uppercase}.et-action-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.et-action-section-head span{color:var(--text2);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.et-action-section-head strong{display:grid;min-width:22px;height:22px;place-items:center;border-radius:99px;background:var(--surface2);color:var(--text2);font-size:8px}.et-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.et-task-card{position:relative;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-card);overflow:hidden}.et-task-card::before{content:'';position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand)}.et-task-card.priority-high::before{background:var(--amber)}.et-task-card.priority-critical::before,.et-task-card.is-overdue::before{background:var(--red)}.et-task-card-head{display:flex;align-items:center;justify-content:space-between;gap:9px}.et-task-card-head>span:last-child{color:var(--text3);font-size:8px;font-weight:750;text-transform:uppercase}.et-task-card.is-overdue .et-task-card-head>span:last-child{color:var(--red)}.et-task-card h3{margin:11px 0 4px;color:var(--text);font-size:11px}.et-task-card p{margin:0 0 10px;color:var(--text3);font-size:8.5px;line-height:1.45}.et-task-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0}.et-task-meta span{color:var(--text2);font-size:8.5px}.et-task-meta strong{color:var(--text);font-size:8.5px}.et-task-card>.btn{width:100%}.et-unplanned-list{display:flex;flex-direction:column;gap:5px}.et-unplanned-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.et-unplanned-row>span{display:flex;align-items:center;gap:9px}.et-unplanned-row small{color:var(--text2);font-size:9px}.et-unplanned-row>strong{color:var(--brand);font-size:9px}.et-unplanned-row:hover{border-color:var(--brand);background:var(--brand-light)}.et-action-empty{grid-column:1/-1;padding:18px;border:1px dashed var(--border);border-radius:10px;color:var(--text3);font-size:10px;text-align:center}@media(max-width:700px){.et-action-center-hero{align-items:flex-start;flex-direction:column}.et-action-center-stats{width:100%}.et-action-center-stats>div{flex:1}.et-task-grid{grid-template-columns:1fr}}@media(max-width:480px){.et-action-center-stats{flex-direction:column}.et-unplanned-row>span{align-items:flex-start;flex-direction:column}.et-action-center-stats>div{width:100%}}
.et-action-filters{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(120px,1fr));gap:7px;margin-bottom:10px;padding:9px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.et-action-filters .input{height:35px;font-size:8.5px}.et-task-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.et-task-actions .btn{width:100%}.et-task-card[hidden]{display:none}.et-action-filter-empty{display:none;padding:18px;border:1px dashed var(--border);border-radius:10px;color:var(--text3);font-size:10px;text-align:center}@media(max-width:760px){.et-action-filters{grid-template-columns:1fr 1fr}}@media(max-width:480px){.et-action-filters{grid-template-columns:1fr}}
.et-action-filters.has-scope{grid-template-columns:minmax(180px,1.5fr) repeat(5,minmax(110px,1fr))}@media(max-width:1100px){.et-action-filters.has-scope{grid-template-columns:1.4fr 1fr 1fr}}@media(max-width:760px){.et-action-filters.has-scope{grid-template-columns:1fr 1fr}}@media(max-width:480px){.et-action-filters.has-scope{grid-template-columns:1fr}}
.et-action-center-stats>div.is-blocked{border-color:var(--red-border);background:var(--red-bg)}.et-action-center-stats>div.is-blocked strong{color:var(--red)}.et-task-card.is-blocked::before{width:4px;background:var(--red)}.et-task-card.is-blocked{border-color:color-mix(in srgb,var(--red) 28%,var(--border))}.et-task-blocker{margin:0 0 9px!important;padding:7px 8px;border-radius:7px;background:var(--red-bg);color:var(--red)!important;font-weight:650}
.et-blocked-manager{padding:15px;border:1px solid var(--red-border);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--red-bg) 70%,var(--surface)),var(--surface))}.et-blocked-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.et-blocked-card{overflow:hidden;border:1px solid var(--red-border);border-radius:11px;background:var(--surface);box-shadow:0 5px 15px color-mix(in srgb,var(--red) 6%,transparent)}.et-blocked-card-main{display:grid;grid-template-columns:31px minmax(0,1fr) minmax(100px,.45fr);align-items:center;gap:10px;width:100%;padding:12px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.et-blocked-card-main:hover{background:var(--red-bg)}.et-blocked-icon{display:grid;width:29px;height:29px;place-items:center;border-radius:9px;background:var(--red-bg);color:var(--red);font-size:14px;font-weight:900}.et-blocked-card-main>span{display:flex;min-width:0;flex-direction:column;gap:3px}.et-blocked-card-main small{color:var(--text3);font-size:8px}.et-blocked-card-main strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.et-blocked-card-main p{margin:1px 0 0;overflow:hidden;color:var(--red);font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.et-blocked-card>div{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--border);background:var(--surface2)}.et-blocked-card>div .btn{flex:1}.et-blocked-card>div .btn-primary{border-color:var(--red);background:var(--red);color:#fff}
.et-comment-badge{display:inline-flex;align-items:center;margin-left:4px;padding:2px 5px;border-radius:99px;background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand);font-size:8px;font-weight:800}
.et-postpone-badge{display:inline-flex;align-items:center;margin-left:4px;padding:2px 5px;border-radius:99px;background:var(--amber-bg);color:var(--amber);font-size:8px;font-weight:800}.et-postpone-badge.is-repeated{background:var(--red-bg);color:var(--red)}
@media(max-width:800px){.et-blocked-grid{grid-template-columns:1fr}}@media(max-width:480px){.et-blocked-card-main{grid-template-columns:31px minmax(0,1fr)}.et-blocked-card-main>span:last-child{grid-column:2}.et-blocked-card>div{flex-direction:column}}
.et-workload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.et-workload-card{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:11px;background:var(--surface);text-align:left;cursor:pointer;transition:.15s}.et-workload-card:hover,.et-workload-card.is-active{border-color:var(--brand);background:var(--brand-light);transform:translateY(-1px)}.et-workload-avatar{display:grid;width:31px;height:31px;place-items:center;border-radius:10px;background:var(--brand-light);color:var(--brand);font-size:9px;font-weight:850}.et-workload-card.has-overdue .et-workload-avatar{background:var(--red-bg);color:var(--red)}.et-workload-person{display:flex;min-width:0;flex-direction:column;gap:2px}.et-workload-person strong{overflow:hidden;color:var(--text);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.et-workload-person small{color:var(--text3);font-size:7.5px}.et-workload-person i{height:3px;margin-top:3px;border-radius:99px;background:var(--surface3);overflow:hidden}.et-workload-person i b{display:block;height:100%;border-radius:inherit;background:var(--brand)}.et-workload-card.has-overdue .et-workload-person i b{background:var(--red)}.et-workload-card>strong{color:var(--text);font-size:13px}@media(max-width:760px){.et-workload-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.et-workload-grid{grid-template-columns:1fr}}
#p-actions .et-action-center{padding-bottom:28px}#p-actions .et-task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#p-actions .et-action-center-hero{min-height:150px}@media(max-width:1100px){#p-actions .et-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){#p-actions .et-task-grid{grid-template-columns:1fr}}
.et-action-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.et-action-page-toolbar>div{display:flex;flex-direction:column;gap:3px}.et-action-page-toolbar span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.et-action-page-toolbar strong{color:var(--text);font-size:11px}.modal-action-affaire-selector{max-width:650px}.action-affaire-selector{display:flex;flex-direction:column;gap:15px}.action-affaire-selector>section{padding:18px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:14px;background:linear-gradient(135deg,var(--surface),var(--brand-light))}.action-affaire-selector>section span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.action-affaire-selector h2{margin:5px 0;color:var(--text);font-size:18px}.action-affaire-selector p{margin:0;color:var(--text2);font-size:9px;line-height:1.5}.action-affaire-selector select[size]{height:230px;padding:5px}.action-affaire-selector select[size] option{padding:8px 9px;border-radius:7px;font-size:9px}.action-affaire-selector select[size] option:checked{background:var(--brand-light);color:var(--brand);font-weight:750}.action-affaire-selector .field>small{display:block;margin-top:6px;color:var(--text3);font-size:8px}@media(max-width:560px){.et-action-page-toolbar{align-items:stretch;flex-direction:column}.et-action-page-toolbar .btn{width:100%}}
.et-action-page-toolbar .et-action-page-tools{display:flex;align-items:center;flex-direction:row;gap:6px}.et-action-page-tools .btn-primary{margin-left:4px}@media(max-width:760px){.et-action-page-toolbar{align-items:stretch;flex-direction:column}.et-action-page-toolbar .et-action-page-tools{display:grid;grid-template-columns:1fr 1fr}.et-action-page-tools .btn-primary{grid-column:1/-1;margin-left:0}}@media(max-width:430px){.et-action-page-toolbar .et-action-page-tools{grid-template-columns:1fr}}
.et-task-select{display:grid;flex:none;place-items:center}.et-task-select input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}.et-action-bulkbar{position:sticky;top:8px;z-index:5;display:flex;align-items:center;gap:7px;margin-bottom:10px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,var(--brand-light));box-shadow:var(--shadow-card);backdrop-filter:blur(12px)}.et-action-bulkbar[hidden]{display:none}.et-action-bulkbar>strong{margin-right:auto;color:var(--text);font-size:9px}.et-action-bulkbar>strong span{color:var(--brand);font-size:12px}.et-action-bulkbar .input{width:170px;height:33px;font-size:8px}@media(max-width:760px){.et-action-bulkbar{align-items:stretch;flex-wrap:wrap}.et-action-bulkbar>strong{width:100%}.et-action-bulkbar .input{width:100%;flex:1 0 100%}.et-action-bulkbar .btn{flex:1}}
.et-task-card-head:has(.et-task-select){display:grid;grid-template-columns:22px minmax(0,1fr) auto}.et-task-card-head:has(.et-task-select) .affaire-ref{justify-self:start}.et-task-card-head:has(.et-task-select)>span:last-child{justify-self:end}.et-task-select{width:22px;height:22px}.et-task-select input{margin:0}
.et-completed-history{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}.et-completed-history>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;color:var(--text);font-size:10px;font-weight:800;cursor:pointer;list-style:none}.et-completed-history>summary::-webkit-details-marker{display:none}.et-completed-history>summary span::before{content:'✓';display:inline-grid;width:22px;height:22px;margin-right:8px;place-items:center;border-radius:8px;background:var(--green-bg);color:var(--green)}.et-completed-history>summary strong{padding:4px 7px;border-radius:99px;background:var(--surface2);color:var(--text3);font-size:8px}.et-completed-history[open]>summary{border-bottom:1px solid var(--border)}.et-completed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px;background:var(--surface2)}.et-completed-card{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.et-completed-check{display:grid;width:26px;height:26px;place-items:center;border-radius:9px;background:var(--green-bg);color:var(--green);font-weight:850}.et-completed-card>div{display:flex;min-width:0;flex-direction:column;gap:3px}.et-completed-card>div>span{display:flex;align-items:center;justify-content:space-between;gap:7px}.et-completed-card>div>span>small{color:var(--text3);font-size:7.5px}.et-completed-card>div>strong{overflow:hidden;color:var(--text2);font-size:9px;text-decoration:line-through;text-overflow:ellipsis;white-space:nowrap}.et-completed-card>div>small{overflow:hidden;color:var(--text3);font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.et-completed-more{display:block;padding:8px;text-align:center;color:var(--text3);font-size:8px}@media(max-width:760px){.et-completed-grid{grid-template-columns:1fr}}@media(max-width:480px){.et-completed-card{grid-template-columns:25px minmax(0,1fr)}.et-completed-card>.btn{grid-column:1/-1;width:100%}}
.affaire-list-row .affaire-row-actions{opacity:.72;transform:translateX(3px);transition:opacity .14s ease,transform .14s ease}.affaire-list-row:hover .affaire-row-actions,.affaire-list-row:focus-within .affaire-row-actions{opacity:1;transform:none}.affaire-list-row.is-selected td:first-child::before{opacity:1;transform:scaleY(1)}
@media(max-width:768px){.affaire-list-row .affaire-row-actions{opacity:1;transform:none}.affaire-list-row td{height:57px}}

/* Affaires — défilement horizontal fiable des listes interactives */
#p-af .table-wrap{overflow-x:scroll!important;overflow-y:hidden;touch-action:pan-x pan-y;cursor:grab;scrollbar-gutter:stable;scroll-behavior:smooth}
#p-af .table-wrap.is-dragging{cursor:grabbing;user-select:none;scroll-behavior:auto}
#p-af .affaire-list-table{min-width:1080px}
#p-af .table-wrap::-webkit-scrollbar{height:11px}
#p-af .table-wrap::-webkit-scrollbar-track{margin:0 10px;border-radius:99px;background:var(--surface2)}
#p-af .table-wrap::-webkit-scrollbar-thumb{border:3px solid var(--surface2);border-radius:99px;background:var(--border2)}
#p-af .table-wrap::-webkit-scrollbar-thumb:hover{background:var(--brand)}
#p-af .table-wrap{scrollbar-width:auto;scrollbar-color:var(--border2) var(--surface2)}
#p-af .affaire-list-row{touch-action:pan-x pan-y}
@media(max-width:768px){#p-af .affaire-list-table{min-width:1040px}#p-af .table-wrap::after{content:'Glissez horizontalement pour voir toutes les colonnes';position:sticky;left:12px;display:inline-flex;margin:6px 0 8px 12px;padding:4px 8px;border-radius:7px;background:var(--surface2);color:var(--text3);font-size:8px;pointer-events:none}}

/* Interface universelle 2026 — listes, aperçus et formulaires */
.universal-list-table{border-collapse:separate;border-spacing:0}.universal-list-table thead tr{background:linear-gradient(90deg,color-mix(in srgb,var(--surface2) 82%,var(--brand-light)),var(--surface2))}
.universal-list-table th{height:45px;color:var(--text3);font-size:8.5px;font-weight:780;letter-spacing:.085em}.universal-list-row{position:relative;cursor:pointer;outline:none}.universal-list-row td{height:50px;transition:background .14s ease,color .14s ease}.universal-list-row td:first-child::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 4px 4px 0;background:var(--brand);opacity:0;transform:scaleY(.4);transition:.16s}
.universal-list-row:hover td,.universal-list-row:focus-visible td{background:linear-gradient(90deg,color-mix(in srgb,var(--brand-light) 72%,var(--surface)),color-mix(in srgb,var(--brand-light) 26%,var(--surface)))!important}.universal-list-row:hover td:first-child::before,.universal-list-row:focus-visible td:first-child::before{opacity:1;transform:scaleY(1)}.universal-list-row:focus-visible{box-shadow:inset 0 0 0 2px var(--brand)}
.universal-list-row td:first-child{font-weight:700;color:var(--text)}.universal-list-row .btn{opacity:.72;transition:opacity .14s,transform .14s}.universal-list-row:hover .btn,.universal-list-row:focus-within .btn{opacity:1}
.modal-universal360{max-width:820px}.universal360{display:flex;flex-direction:column;gap:13px}.universal360-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:17px;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),var(--brand-light))}
.universal360-eyebrow{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.universal360-hero h2{margin:5px 0;color:var(--text);font-size:22px;letter-spacing:-.55px}.universal360-hero p{margin:0;color:var(--text2);font-size:10px}.universal360-status{padding:6px 10px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:99px;background:color-mix(in srgb,var(--surface) 78%,transparent);color:var(--brand);font-size:9px;font-weight:750}
.universal360-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.universal360-summary>div{display:flex;min-width:0;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.universal360-summary span{color:var(--text3);font-size:8px;text-transform:uppercase}.universal360-summary strong{overflow:hidden;color:var(--text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.universal360-panel{padding:17px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-card)}.universal360-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.universal360-panel-head span{color:var(--text3);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.universal360-panel-head strong{color:var(--brand);font-size:9px}
.universal360-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.universal360-detail{display:flex;min-width:0;flex-direction:column;gap:4px;padding:11px;border-radius:10px;background:var(--surface2)}.universal360-detail span{color:var(--text3);font-size:8px;text-transform:uppercase}.universal360-detail strong{overflow-wrap:anywhere;color:var(--text);font-size:10.5px}.universal360-detail.is-primary{background:var(--brand-light)}.universal360-detail.is-primary strong{color:var(--brand);font-size:12px}
.modal-modern-form{max-width:min(880px,calc(100vw - 28px));border-color:color-mix(in srgb,var(--brand) 20%,var(--border));background:linear-gradient(160deg,var(--surface),color-mix(in srgb,var(--surface2) 48%,var(--surface)))}
.modal-modern-form .modal-header{position:relative;padding:23px 25px 18px;background:linear-gradient(120deg,color-mix(in srgb,var(--brand-light) 70%,var(--surface)),var(--surface));overflow:hidden}.modal-modern-form .modal-header::after{content:'';position:absolute;right:-30px;top:-70px;width:150px;height:150px;border:28px solid color-mix(in srgb,var(--brand) 7%,transparent);border-radius:50%;pointer-events:none}.modal-modern-form .modal-title{position:relative;z-index:1;font-size:18px;font-weight:760;letter-spacing:-.4px}
.modal-modern-form .modal-body{padding:24px 25px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface2) 44%,var(--surface)),var(--surface) 120px)}.modal-modern-form .grid2,.modal-modern-form .grid3{gap:12px}.modal-modern-form .modern-form-field{position:relative;margin-bottom:13px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--border) 88%,transparent);border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 3px 12px rgba(15,57,70,.025);transition:transform .15s,border-color .15s,box-shadow .15s;animation:modernFieldIn .2s both;animation-delay:calc(var(--field-index)*12ms)}
.modal-modern-form .modern-form-field:focus-within{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 42%,var(--border));box-shadow:0 8px 22px rgba(8,122,150,.08),0 0 0 3px color-mix(in srgb,var(--brand) 7%,transparent)}.modal-modern-form .label{margin-bottom:7px;color:var(--text2);font-size:9px;font-weight:780;letter-spacing:.055em;text-transform:uppercase}
.modal-modern-form .input{min-height:42px;border-color:var(--border);border-radius:9px;background:var(--surface);font-size:12px}.modal-modern-form textarea.input{min-height:82px;resize:vertical}.modal-modern-form input[type="checkbox"],.modal-modern-form input[type="radio"]{accent-color:var(--brand)}
.modal-modern-form .modal-footer{padding:15px 25px;border-top-color:var(--border);background:color-mix(in srgb,var(--surface2) 72%,var(--surface));box-shadow:0 -8px 22px rgba(15,57,70,.025)}.modal-modern-form .modal-footer .btn{min-height:39px;padding-inline:18px}.modal-modern-form .modal-footer .btn-primary{min-width:120px}
@keyframes modernFieldIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:640px){.universal360-hero{align-items:flex-start;flex-direction:column}.universal360-summary{grid-template-columns:1fr 1fr}.universal360-summary>div:last-child{grid-column:1/-1}.universal360-details{grid-template-columns:1fr}.modal-modern-form .modal-header,.modal-modern-form .modal-body,.modal-modern-form .modal-footer{padding-inline:16px}.modal-modern-form .modern-form-field{padding:10px}.modal-modern-form .modal-footer{flex-direction:column-reverse}.modal-modern-form .modal-footer .btn{width:100%}}

/* Achats — fiche métier à 360° */
.modal-achat360{max-width:900px}.achat360{display:flex;flex-direction:column;gap:13px}.achat360-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 23px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:17px;background:radial-gradient(circle at 91% 5%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),var(--brand-light))}
.achat360-hero>div{min-width:0}.achat360-eyebrow{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.achat360-hero h2{margin:5px 0;color:var(--text);font-size:22px;line-height:1.15;letter-spacing:-.55px}.achat360-hero p{margin:0;color:var(--text2);font-size:10px}.achat360-status{flex:none;padding:7px 11px;border:1px solid var(--amber-border);border-radius:99px;background:var(--amber-bg);color:var(--amber);font-size:9px;font-weight:780}.achat360-status.is-done{border-color:var(--green-border);background:var(--green-bg);color:var(--green)}.achat360-status.is-cancelled{border-color:var(--border);background:var(--surface2);color:var(--text3)}
.achat360-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.achat360-kpis>div{display:flex;min-width:0;flex-direction:column;gap:4px;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.achat360-kpis span{color:var(--text3);font-size:8px;font-weight:750;text-transform:uppercase}.achat360-kpis strong{overflow:hidden;color:var(--text);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.achat360-kpis .is-primary{border-color:color-mix(in srgb,var(--brand) 25%,var(--border));background:var(--brand-light)}.achat360-kpis .is-primary strong{color:var(--brand)}
.achat360-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.achat360-panel{min-width:0;padding:16px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-card)}.achat360-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.achat360-panel-head span{color:var(--text3);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.achat360-panel-head strong{color:var(--brand);font-size:9px}.achat360-checks{display:grid;grid-template-columns:1fr 1fr;gap:7px}.achat360-checks>div{display:flex;align-items:center;gap:9px;padding:10px;border-radius:10px;background:var(--amber-bg)}.achat360-checks i{display:grid;flex:none;width:23px;height:23px;place-items:center;border-radius:50%;background:var(--surface);color:var(--amber);font-size:10px;font-style:normal;font-weight:800}.achat360-checks span{display:flex;min-width:0;flex-direction:column;gap:2px}.achat360-checks strong{color:var(--text);font-size:9.5px}.achat360-checks small{color:var(--text3);font-size:8px}.achat360-checks .is-checked{background:var(--green-bg)}.achat360-checks .is-checked i{color:var(--green)}
.achat360-details{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0}.achat360-details div{min-width:0}.achat360-details dt{margin-bottom:3px;color:var(--text3);font-size:8px;text-transform:uppercase}.achat360-details dd{margin:0;overflow:hidden;color:var(--text);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.achat360-affectation{grid-column:1/-1}.achat360-allocation{display:flex;flex-direction:column;gap:6px}.achat360-allocation>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:9px;background:var(--surface2)}.achat360-allocation span{display:flex;min-width:0;flex-direction:column;gap:2px}.achat360-allocation strong{color:var(--text);font-size:9.5px}.achat360-allocation small{overflow:hidden;color:var(--text3);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.achat360-allocation b{flex:none;color:var(--brand);font-size:10px}
@media(max-width:700px){.achat360-hero{align-items:flex-start;flex-direction:column}.achat360-kpis{grid-template-columns:1fr 1fr}.achat360-grid{grid-template-columns:1fr}.achat360-affectation{grid-column:auto}.achat360-checks{grid-template-columns:1fr}}@media(max-width:430px){.achat360-kpis{grid-template-columns:1fr}.achat360-hero h2{font-size:19px}}
.achat-inline-toggle{display:grid;width:28px;height:28px;margin:auto;padding:0;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text3);font-size:14px;font-weight:800;cursor:pointer;transition:transform .14s,border-color .14s,background .14s,color .14s,box-shadow .14s}.achat-inline-toggle:hover,.achat-inline-toggle:focus-visible{transform:translateY(-1px);border-color:var(--brand);background:var(--brand-light);color:var(--brand);box-shadow:0 5px 12px color-mix(in srgb,var(--brand) 12%,transparent);outline:none}.achat-inline-toggle.is-active{border-color:var(--green-border);background:var(--green-bg);color:var(--green)}.achat-inline-toggle.is-received{border-color:color-mix(in srgb,var(--brand) 28%,var(--border));background:var(--brand-light);color:var(--brand)}
.fournisseur-societe-badge{min-width:38px;margin-right:3px;padding-inline:7px;justify-content:center;font-size:9px;font-weight:800;letter-spacing:.025em;white-space:nowrap}
.banque-inline-toggle{display:grid;width:28px;height:28px;margin:auto;padding:0;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text3);font-size:14px;font-weight:800;cursor:pointer;transition:transform .14s,border-color .14s,background .14s,color .14s,box-shadow .14s}.banque-inline-toggle:hover,.banque-inline-toggle:focus-visible{transform:translateY(-1px);border-color:var(--brand);background:var(--brand-light);color:var(--brand);box-shadow:0 5px 12px color-mix(in srgb,var(--brand) 12%,transparent);outline:none}.banque-inline-toggle.is-active{border-color:var(--green-border);background:var(--green-bg);color:var(--green)}
.client-societe-badge{min-width:38px;margin-right:3px;padding-inline:7px;justify-content:center;font-size:9px;font-weight:800;letter-spacing:.025em;white-space:nowrap}

/* Affaires — filtres avancés et vues personnelles */
#af-advanced-toggle.is-active{border-color:color-mix(in srgb,var(--brand) 38%,var(--border));background:var(--brand-light);color:var(--brand)}
.affaire-smart-filters{margin:-5px 0 16px;padding:16px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:15px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--brand-light) 42%,var(--surface)));box-shadow:var(--shadow-card)}
.affaire-smart-filters[hidden]{display:none}.affaire-smart-filter-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.affaire-smart-filter-head>div{display:flex;flex-direction:column;gap:3px}.affaire-smart-filter-head span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.affaire-smart-filter-head strong{color:var(--text);font-size:13px}.affaire-smart-filter-head>.input{width:210px}
.affaire-smart-filter-grid{display:grid;grid-template-columns:1.2fr 1.2fr .8fr .8fr;gap:8px}.affaire-smart-filter-grid>div{padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface) 88%,transparent)}.affaire-smart-filter-grid label{display:block;margin-bottom:5px;color:var(--text3);font-size:8px;font-weight:750;text-transform:uppercase}.affaire-smart-filter-grid .input{width:100%;min-height:36px;height:36px;border-color:transparent;background:var(--surface2);font-size:10px}
.affaire-smart-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:11px}.affaire-smart-filter-actions>span{margin-right:auto;color:var(--text2);font-size:9px;font-weight:650}
@media(max-width:850px){.affaire-smart-filter-grid{grid-template-columns:1fr 1fr}.affaire-smart-filter-head{align-items:flex-start;flex-direction:column}.affaire-smart-filter-head>.input{width:100%}}
@media(max-width:520px){.affaire-smart-filter-grid{grid-template-columns:1fr}.affaire-smart-filter-actions{align-items:stretch;flex-direction:column}.affaire-smart-filter-actions>span{margin:0 0 4px}.affaire-smart-filter-actions .btn{width:100%}}@media(max-width:560px){}
.affaire360-owner{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--surface) 75%,transparent)}.affaire360-owner span{color:var(--text3);font-size:8px;text-transform:uppercase}.affaire360-owner strong{color:var(--text);font-size:9.5px}

/* Affaires — suivi des tâches dans la fiche à 360° */
.affaire360-tasks-panel{grid-column:1/-1}.affaire360-task-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:10px}.affaire360-task-summary>div{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface2)}.affaire360-task-summary strong{color:var(--text);font-size:15px}.affaire360-task-summary span{color:var(--text3);font-size:8.5px}.affaire360-task-summary .is-alert{border-color:var(--red-border);background:var(--red-bg)}.affaire360-task-summary .is-alert strong{color:var(--red)}.affaire360-task-summary .is-done{border-color:var(--green-border);background:var(--green-bg)}.affaire360-task-summary .is-done strong{color:var(--green)}
.affaire360-task-list{display:flex;max-height:255px;flex-direction:column;gap:6px;overflow-y:auto;padding-right:2px}.affaire360-task{display:grid;grid-template-columns:10px minmax(180px,1fr) minmax(130px,.55fr) auto;align-items:center;gap:10px;width:100%;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:transform .14s,border-color .14s,box-shadow .14s}.affaire360-task:hover,.affaire360-task:focus-visible{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 38%,var(--border));box-shadow:0 7px 16px rgba(8,122,150,.08);outline:none}.affaire360-task>i{width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.affaire360-task-copy,.affaire360-task-owner{display:flex;min-width:0;flex-direction:column;gap:3px}.affaire360-task-copy>strong,.affaire360-task-owner>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.affaire360-task-copy>strong{font-size:10.5px}.affaire360-task-copy>small,.affaire360-task-owner>small{color:var(--text3);font-size:8px}.affaire360-task-owner>strong{font-size:9.5px}.affaire360-task>b{min-width:68px;padding:5px 7px;border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:8px;text-align:center}.affaire360-task.is-overdue>i{background:var(--red);box-shadow:0 0 0 3px var(--red-bg)}.affaire360-task.is-overdue>b{background:var(--red-bg);color:var(--red)}.affaire360-task.is-review>i{background:var(--amber);box-shadow:0 0 0 3px var(--amber-bg)}.affaire360-task.is-review>b,.affaire360-task.is-rejected>b{background:var(--amber-bg);color:var(--amber)}.affaire360-task.is-completed>i{background:var(--green);box-shadow:0 0 0 3px var(--green-bg)}.affaire360-task.is-completed>b{background:var(--green-bg);color:var(--green)}.affaire360-task-empty{display:flex;min-height:86px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px dashed var(--border2);border-radius:10px;background:var(--surface2);text-align:center}.affaire360-task-empty strong{font-size:11px}.affaire360-task-empty span{color:var(--text3);font-size:8.5px}.affaire360-task-add{margin-top:10px}
.affaire360-task.is-in-progress>i{background:#5b67e8;box-shadow:0 0 0 3px color-mix(in srgb,#5b67e8 14%,transparent)}.affaire360-task.is-in-progress>b,.et-task-card-head span.is-progress{background:color-mix(in srgb,#5b67e8 12%,var(--surface));color:#5b67e8}.affaire360-task-summary .is-progress{border-color:color-mix(in srgb,#5b67e8 25%,var(--border));background:color-mix(in srgb,#5b67e8 8%,var(--surface))}.affaire360-task-summary .is-progress strong{color:#5b67e8}.action360-kpis .is-progress{border-color:color-mix(in srgb,#5b67e8 28%,var(--border));background:color-mix(in srgb,#5b67e8 8%,var(--surface))}.action360-kpis .is-progress strong{color:#5b67e8}
.affaire360-task.is-blocked>i{background:var(--red);box-shadow:0 0 0 3px var(--red-bg)}.affaire360-task.is-blocked>b,.et-task-card-head span.is-blocked{background:var(--red-bg);color:var(--red)}.affaire360-task-summary .is-blocked,.action360-kpis .is-blocked{border-color:var(--red-border);background:var(--red-bg)}.affaire360-task-summary .is-blocked strong,.action360-kpis .is-blocked strong{color:var(--red)}.action-blocker-field{padding:11px;border:1px solid var(--red-border);border-radius:10px;background:var(--red-bg)}.action-blocker-field[hidden]{display:none}.action360-blocker{display:flex;flex-direction:column;gap:5px;padding:14px 16px;border:1px solid var(--red-border);border-radius:12px;background:linear-gradient(135deg,var(--red-bg),var(--surface))}.action360-blocker>span{color:var(--red);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.action360-blocker>strong{color:var(--text);font-size:12px;line-height:1.45}.action360-blocker>small{color:var(--text3);font-size:9px}
.modal-action-blocker{max-width:650px}.action-blocker-modal{display:flex;flex-direction:column;gap:14px}.action-blocker-modal>section{padding:18px 20px;border:1px solid var(--red-border);border-radius:14px;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--red) 12%,transparent),transparent 11rem),linear-gradient(135deg,var(--surface),var(--red-bg))}.action-blocker-modal>section>span{color:var(--red);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.action-blocker-modal h2{margin:6px 0;color:var(--text);font-size:19px}.action-blocker-modal p{display:flex;align-items:center;gap:8px;margin:0;color:var(--text2);font-size:9px}.action-blocker-modal>.field{padding:13px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.action-blocker-modal textarea{min-height:120px;resize:vertical}.action-blocker-modal>.field>small{display:block;margin-top:7px;color:var(--text3);font-size:8.5px;line-height:1.45}
.action360-discussion{padding:15px;border:1px solid color-mix(in srgb,var(--brand) 20%,var(--border));border-radius:13px;background:var(--surface)}.action360-discussion>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.action360-discussion>div:first-child span{color:var(--text3);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.action360-discussion>div:first-child strong{color:var(--brand);font-size:9px}.action360-comment-list{display:flex;max-height:230px;flex-direction:column;gap:7px;overflow-y:auto}.action360-comment-list article{display:grid;grid-template-columns:31px minmax(0,1fr);gap:9px;padding:9px 10px;border-radius:10px;background:var(--surface2)}.action360-comment-list article>i{display:grid;width:29px;height:29px;place-items:center;border-radius:9px;background:var(--brand-light);color:var(--brand);font-size:8px;font-style:normal;font-weight:850}.action360-comment-list article>span{display:grid;grid-template-columns:1fr auto;gap:2px 8px}.action360-comment-list article strong{font-size:9.5px}.action360-comment-list article small{color:var(--text3);font-size:8px}.action360-comment-list article p{grid-column:1/-1;margin:2px 0 0;color:var(--text2);font-size:10px;line-height:1.5;white-space:pre-wrap}.action360-comment-empty{margin:0;padding:15px;border:1px dashed var(--border);border-radius:9px;color:var(--text3);font-size:9px;text-align:center}.action360-comment-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:9px}.action360-comment-compose textarea{min-height:55px;resize:vertical}.action360-comment-compose .btn{min-height:42px}@media(max-width:520px){.action360-comment-compose{grid-template-columns:1fr}.action360-comment-compose .btn{width:100%}}
.modal-action-postpone{max-width:650px}.action-postpone-modal{display:flex;flex-direction:column;gap:12px}.action-postpone-modal>section{padding:18px 20px;border:1px solid color-mix(in srgb,var(--brand) 24%,var(--border));border-radius:14px;background:linear-gradient(135deg,var(--surface),var(--brand-light))}.action-postpone-modal>section>span{color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.action-postpone-modal h2{margin:6px 0;color:var(--text);font-size:19px}.action-postpone-modal p{display:flex;align-items:center;gap:8px;margin:0;color:var(--text2);font-size:9px}.action-postpone-modal>.field{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.action-postpone-modal textarea{min-height:80px;resize:vertical}
.bulk-action-blocker>section p{font-size:9.5px;line-height:1.5}.bulk-action-blocker textarea{min-height:105px}.et-action-bulkbar .btn-danger{border-color:var(--red-border);background:var(--red-bg);color:var(--red)}
.bulk-action-postpone>section p{font-size:9.5px;line-height:1.5}.bulk-action-postpone textarea{min-height:105px}

/* Centre des actions — cockpit opérationnel 2026 */
#p-actions .et-action-center{gap:20px;padding-bottom:38px}
#p-actions .et-action-page-toolbar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(130deg,var(--surface),color-mix(in srgb,var(--brand-light) 35%,var(--surface)));box-shadow:0 10px 30px rgba(14,45,57,.055);overflow:hidden}
#p-actions .et-action-page-toolbar::after{content:'';position:absolute;right:-45px;top:-70px;width:190px;height:190px;border:34px solid color-mix(in srgb,var(--brand) 5%,transparent);border-radius:50%;pointer-events:none}
.et-action-toolbar-copy{display:flex;min-width:0;flex-direction:column;gap:4px}.et-action-toolbar-copy span{color:var(--brand);font-size:9px!important;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.et-action-toolbar-copy strong{color:var(--text);font-size:17px!important;letter-spacing:-.25px}.et-action-toolbar-copy small{color:var(--text3);font-size:10.5px;line-height:1.4}
.et-action-page-tools{position:relative;z-index:1;display:flex;align-items:center;gap:8px}.et-action-export-menu{display:flex;gap:5px;padding:4px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--surface) 78%,transparent)}#p-actions .et-action-export-menu .btn{min-height:34px;padding-inline:10px;border:0;font-size:9.5px}.et-action-create span{font-size:17px;line-height:0}
#p-actions .et-action-center-hero{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(560px,1.4fr);min-height:0;padding:28px 30px;border-radius:22px;background:radial-gradient(circle at 92% 5%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 20rem),linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--brand-light) 70%,var(--surface)))}
.et-action-hero-copy{min-width:0}.et-action-hero-copy>span{color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.et-action-hero-copy h2{margin:7px 0 6px!important;font-size:28px!important;letter-spacing:-.8px}.et-action-hero-copy p{max-width:520px;font-size:11.5px!important}.et-action-hero-legend{display:flex;flex-wrap:wrap;gap:13px;margin-top:17px}.et-action-hero-legend span{display:flex;align-items:center;gap:6px;color:var(--text2);font-size:9.5px}.et-action-hero-legend i{width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.et-action-hero-legend i.is-danger{background:var(--red);box-shadow:0 0 0 3px var(--red-bg)}.et-action-hero-legend i.is-progress{background:#5b67e8;box-shadow:0 0 0 3px color-mix(in srgb,#5b67e8 12%,transparent)}.et-action-hero-legend i.is-success{background:var(--green);box-shadow:0 0 0 3px var(--green-bg)}
#p-actions .et-action-center-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.et-action-center-stats>button,.et-action-center-stats>div{display:flex!important;min-width:0!important;align-items:flex-start;flex-direction:column;padding:13px 14px!important;border:1px solid color-mix(in srgb,var(--brand) 14%,var(--border));border-radius:13px!important;background:color-mix(in srgb,var(--surface) 87%,transparent);color:var(--text);text-align:left!important;cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}.et-action-center-stats>button:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 38%,var(--border));box-shadow:0 9px 20px color-mix(in srgb,var(--brand) 9%,transparent)}#p-actions .et-action-center-stats span{order:0;font-size:8.5px!important;font-weight:800;letter-spacing:.04em}#p-actions .et-action-center-stats strong{order:1;margin:4px 0 2px;font-size:22px!important;line-height:1}.et-action-center-stats small{order:2;color:var(--text3);font-size:8px}.et-action-center-stats .is-alert,.et-action-center-stats .is-blocked{border-color:var(--red-border);background:color-mix(in srgb,var(--red-bg) 70%,var(--surface))}.et-action-center-stats .is-alert strong,.et-action-center-stats .is-blocked strong{color:var(--red)}.et-action-center-stats .is-review{border-color:var(--amber-border);background:color-mix(in srgb,var(--amber-bg) 70%,var(--surface))}.et-action-center-stats .is-review strong{color:var(--amber)}.et-action-center-stats .is-rating{cursor:default}.et-action-priority-label{display:flex;align-items:baseline;gap:9px;margin:3px 0 -9px;padding-left:2px}.et-action-priority-label span{color:var(--text);font-size:14px;font-weight:800}.et-action-priority-label small{color:var(--text3);font-size:9px}
#p-actions .et-blocked-manager,#p-actions .et-manager-review{border-radius:17px;padding:17px 18px}#p-actions .et-action-panel{padding:19px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 9px 26px rgba(9,45,58,.045)}#p-actions .et-action-section-head>div{display:flex;flex-direction:column;gap:3px}#p-actions .et-action-section-head>div>span{color:var(--text);font-size:13px;letter-spacing:0;text-transform:none}#p-actions .et-action-section-head>div>small{color:var(--text3);font-size:9px}
#p-actions .et-action-filters{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(5,minmax(125px,.75fr)) 42px;gap:7px;padding:10px;border-color:color-mix(in srgb,var(--brand) 15%,var(--border));border-radius:14px;background:var(--surface2)}#p-actions .et-action-filters .input{height:40px;border-color:transparent;background:var(--surface);font-size:9.5px}.et-action-search-field{position:relative}.et-action-search-field>span{position:absolute;z-index:1;left:13px;top:50%;transform:translateY(-50%);color:var(--brand);font-size:17px}.et-action-search-field .input{width:100%;padding-left:38px!important}.et-action-filter-reset{width:42px;min-height:40px!important;padding:0!important;font-size:16px!important}
.et-action-selection-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-3px 1px 11px}.et-action-selection-tools small{color:var(--text3);font-size:8.5px}.et-action-selection-tools .btn{min-height:31px!important;font-size:8.5px!important}
.et-action-filter-summary{display:flex;align-items:center;gap:9px;margin:-4px 1px 12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--brand-light) 42%,var(--surface))}.et-action-filter-summary[hidden]{display:none}.et-action-filter-summary>span{display:flex;align-items:center;gap:5px;color:var(--text2);font-size:8.5px;font-weight:700;white-space:nowrap}.et-action-filter-summary>span b{display:grid;min-width:20px;height:20px;padding:0 5px;place-items:center;border-radius:7px;background:var(--brand);color:#fff;font-size:8px}.et-action-filter-summary>div{display:flex;min-width:0;align-items:center;gap:5px;overflow-x:auto}.et-action-filter-summary small{padding:4px 7px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--border));border-radius:99px;background:var(--surface);color:var(--brand);font-size:7.5px;white-space:nowrap}.et-action-filter-summary>button{margin-left:auto;border:0;background:transparent;color:var(--brand);font-size:8px;font-weight:750;white-space:nowrap;cursor:pointer}
#p-actions .et-action-bulkbar{top:59px;gap:12px;margin:0 0 13px;padding:10px 12px;border-radius:14px}.et-action-bulk-count{display:flex;align-items:center;gap:8px;padding-right:12px;border-right:1px solid var(--border)}.et-action-bulk-count>span{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--brand);color:#fff;font-size:14px;font-weight:850}.et-action-bulk-count>strong{display:flex;flex-direction:column;color:var(--text);font-size:9.5px}.et-action-bulk-count small{color:var(--text3);font-size:7.5px;font-weight:500}.et-action-bulk-group{display:flex;align-items:center;gap:5px}.et-action-bulk-group:first-of-type{margin-right:auto}.et-action-bulkbar .et-action-bulk-close{width:31px;padding:0;font-size:15px}
#p-actions .et-task-card{border-radius:16px;transition:transform .16s,border-color .16s,box-shadow .16s}#p-actions .et-task-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 35%,var(--border));box-shadow:0 13px 27px rgba(9,57,70,.085)}#p-actions .et-task-card::before{width:4px}#p-actions .et-task-card h3{letter-spacing:-.15px}#p-actions .et-task-actions .btn{border-radius:10px}.et-action-view-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--surface2)}.et-action-view-switch button{display:grid;width:28px;height:27px;padding:0;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--text3);font-size:13px;cursor:pointer}.et-action-view-switch button:hover,.et-action-view-switch button.is-active{background:var(--surface);color:var(--brand);box-shadow:0 2px 7px rgba(9,48,61,.07)}
.et-action-workspace>.et-action-section-head{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:18px}.et-action-save-view{display:grid;width:34px;height:34px;padding:0;place-items:center;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--border));border-radius:9px;background:var(--brand-light);color:var(--brand);font-size:17px;cursor:pointer}.et-action-save-view:hover{border-color:var(--brand);background:var(--brand);color:#fff}
.modal-action-saved-views{max-width:680px}.action-saved-views{display:flex;flex-direction:column;gap:13px}.action-saved-views>section{padding:18px 20px;border:1px solid color-mix(in srgb,var(--brand) 23%,var(--border));border-radius:15px;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--brand) 13%,transparent),transparent 12rem),linear-gradient(135deg,var(--surface),var(--brand-light))}.action-saved-views>section>span{color:var(--brand);font-size:8.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.action-saved-views h2{margin:6px 0;color:var(--text);font-size:19px}.action-saved-views p{margin:0;color:var(--text2);font-size:9.5px;line-height:1.5}.action-saved-views>.field{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.action-saved-view-list{display:flex;flex-direction:column;gap:6px}.action-saved-view-list>span{margin-bottom:2px;color:var(--text3);font-size:8.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.action-saved-view-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.action-saved-view-list>div>span{display:flex;min-width:0;flex-direction:column;gap:2px}.action-saved-view-list strong{overflow:hidden;color:var(--text);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.action-saved-view-list small{color:var(--text3);font-size:8px}
#p-actions .et-task-grid.is-compact{grid-template-columns:1fr;gap:6px}.et-task-grid.is-compact .et-task-card{display:grid;grid-template-columns:minmax(165px,.75fr) minmax(210px,1.2fr) minmax(210px,1fr) auto;align-items:center;gap:14px;padding:12px 14px 12px 18px}.et-task-grid.is-compact .et-task-card-head{display:grid;grid-template-columns:25px minmax(0,1fr) auto;grid-column:1;gap:7px}.et-task-grid.is-compact .et-task-card h3{grid-column:2;margin:0;font-size:11.5px}.et-task-grid.is-compact .et-task-card>p{display:none}.et-task-grid.is-compact .et-task-meta{grid-column:3;margin:0}.et-task-grid.is-compact .et-task-actions{grid-column:4;min-width:190px}.et-task-grid.is-compact .et-task-actions .btn{min-height:35px!important;padding:7px 10px;font-size:9px!important}.et-task-grid.is-compact .et-task-blocker{display:block;grid-column:2;margin:4px 0 0!important;padding:5px 7px;font-size:8.5px!important}
#p-actions .et-unplanned-list{max-height:290px;overflow-y:auto;padding:2px}#p-actions .et-completed-history{border:1px solid var(--border);border-radius:17px;background:var(--surface);overflow:hidden}#p-actions .et-completed-history summary{padding:17px 19px}
@media(max-width:1200px){#p-actions .et-action-center-hero{grid-template-columns:1fr}#p-actions .et-action-center-stats{width:100%;grid-template-columns:repeat(3,1fr)}#p-actions .et-action-filters{grid-template-columns:repeat(3,1fr)}.et-action-search-field{grid-column:span 2}}
@media(max-width:1000px){.et-task-grid.is-compact .et-task-card{grid-template-columns:minmax(160px,.7fr) minmax(190px,1fr) auto}.et-task-grid.is-compact .et-task-meta{grid-column:2}.et-task-grid.is-compact .et-task-actions{grid-column:3;grid-row:1/3}}
@media(max-width:1050px){.et-action-workspace>.et-action-section-head{grid-template-columns:1fr}}
@media(max-width:820px){#p-actions .et-action-page-toolbar{align-items:flex-start;flex-direction:column}.et-action-page-tools{width:100%;flex-wrap:wrap}.et-action-create{margin-left:auto}#p-actions .et-action-bulkbar{align-items:stretch;flex-wrap:wrap}.et-action-bulk-count{width:100%;border-right:0;border-bottom:1px solid var(--border);padding:0 0 8px}.et-action-bulk-group{flex:1;flex-wrap:wrap}.et-action-bulk-group:first-of-type{flex-basis:100%}.et-action-bulk-group .input{flex:1}.et-action-selection-tools{align-items:flex-start;flex-direction:column}.et-task-grid.is-compact .et-task-card{grid-template-columns:1fr auto}.et-task-grid.is-compact .et-task-card h3,.et-task-grid.is-compact .et-task-meta{grid-column:1}.et-task-grid.is-compact .et-task-actions{grid-column:2;grid-row:1/4}.et-task-grid.is-compact .et-task-card-head{grid-column:1}}
@media(max-width:600px){#p-actions .et-action-center-hero{padding:21px}#p-actions .et-action-center-stats{grid-template-columns:1fr 1fr}.et-action-hero-copy h2{font-size:23px!important}#p-actions .et-action-filters{grid-template-columns:1fr}.et-action-search-field{grid-column:auto}.et-action-page-tools,.et-action-export-menu{width:100%}.et-action-export-menu .btn{flex:1}.et-action-create{width:100%;margin:0;justify-content:center}.et-action-priority-label{align-items:flex-start;flex-direction:column;gap:2px}.et-action-filter-summary{align-items:flex-start;flex-wrap:wrap}.et-action-filter-summary>div{order:3;width:100%}}
.affaire360-task[hidden]{display:none}.affaire360-task-progress{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(170px,1fr) auto;align-items:center;gap:12px;margin-bottom:10px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--border));border-radius:10px;background:linear-gradient(120deg,var(--surface),var(--brand-light))}.affaire360-task-progress>span{display:flex;min-width:0;flex-direction:column;gap:2px}.affaire360-task-progress>span strong{font-size:10px}.affaire360-task-progress>span small{color:var(--text3);font-size:8px}.affaire360-task-progress>div{height:7px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--brand) 12%,var(--surface2))}.affaire360-task-progress>div i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--green));transition:width .25s}.affaire360-task-progress>b{min-width:38px;color:var(--brand);font-size:12px;text-align:right}.affaire360-task-filters{display:flex;align-items:center;gap:5px;margin-bottom:9px;overflow-x:auto;padding-bottom:1px}.affaire360-task-filters button{display:flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text2);font-size:8.5px;font-weight:700;white-space:nowrap;cursor:pointer}.affaire360-task-filters button:hover,.affaire360-task-filters button.is-active{border-color:color-mix(in srgb,var(--brand) 35%,var(--border));background:var(--brand-light);color:var(--brand)}.affaire360-task-filters button b{display:grid;min-width:17px;height:17px;padding:0 4px;place-items:center;border-radius:99px;background:var(--surface2);font-size:7.5px}.affaire360-task-visible-count{margin-left:auto;color:var(--text3);font-size:8px;white-space:nowrap}
@media(max-width:650px){.affaire360-task-summary{grid-template-columns:1fr 1fr}.affaire360-task-progress{grid-template-columns:1fr auto}.affaire360-task-progress>div{grid-column:1/-1;grid-row:2}.affaire360-task{grid-template-columns:10px minmax(0,1fr) auto}.affaire360-task-owner{grid-column:2/3}.affaire360-task>b{grid-column:3;grid-row:1/3}.affaire360-task-list{max-height:330px}.affaire360-task-visible-count{display:none}}

/* Stats dépenses — graphique mono-catégorie et références lisibles */
#p-fo .fo-ref-col{width:118px;min-width:118px;white-space:nowrap}#p-fo .fo-ref-cell{min-width:118px!important;max-width:180px;font-family:var(--mono),monospace;font-size:11px!important;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important}

/* Centre des actions — priorité de mise en page de la barre de traitement */
#p-actions .et-action-workspace>.et-action-section-head{display:grid;min-height:0;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:18px;margin-bottom:12px}@media(max-width:1050px){#p-actions .et-action-workspace>.et-action-section-head{grid-template-columns:1fr}}
@media(max-width:820px){}

/* Calendrier — fiche rendez-vous à 360° */
.modal-rdv360{max-width:820px}.rdv360{display:flex;flex-direction:column;gap:12px}.rdv360-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 23px;border:1px solid color-mix(in srgb,#5b67e8 24%,var(--border));border-radius:17px;background:radial-gradient(circle at 91% 5%,color-mix(in srgb,#5b67e8 17%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),color-mix(in srgb,#5b67e8 7%,var(--surface)))}.rdv360-hero>div{min-width:0}.rdv360-hero>div>span{color:#5b67e8;font-size:9px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.rdv360-hero h2{margin:6px 0;color:var(--text);font-size:23px;letter-spacing:-.5px}.rdv360-hero p{display:flex;align-items:center;gap:8px;margin:0;color:var(--text2)}.rdv360-hero>strong{flex:none;padding:8px 12px;border-radius:99px;background:#5b67e8;color:#fff;font-size:10px}.rdv360-hero.is-past{border-color:var(--border);background:linear-gradient(135deg,var(--surface),var(--surface2))}.rdv360-hero.is-past>div>span{color:var(--text3)}.rdv360-hero.is-past>strong{background:var(--text3)}
.rdv360-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rdv360-kpis>div{display:flex;min-width:0;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.rdv360-kpis span,.rdv360-grid span,.rdv360-notes>span{color:var(--text3);font-size:8.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.rdv360-kpis strong{overflow:hidden;color:var(--text);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.rdv360-kpis small{color:var(--text3);font-size:8.5px}.rdv360-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rdv360-grid section,.rdv360-notes{display:flex;min-width:0;flex-direction:column;gap:6px;padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.rdv360-grid strong{color:var(--text);font-size:11px;line-height:1.4}.rdv360-grid small{color:var(--text3);font-size:9px}.rdv360-grid a{align-self:flex-start;color:var(--brand);font-size:9px;font-weight:700;text-decoration:none}.rdv360-notes p{margin:0;color:var(--text2);font-size:10.5px;line-height:1.55;white-space:pre-wrap}
@media(max-width:620px){.rdv360-hero{align-items:flex-start;flex-direction:column}.rdv360-kpis,.rdv360-grid{grid-template-columns:1fr}.modal-rdv360 .modal-footer{align-items:stretch;flex-direction:column}.modal-rdv360 .modal-footer .btn{width:100%}}

/* Affaires — Kanban interactif */
.modal-affaire-kanban{max-width:min(1420px,calc(100vw - 30px));height:min(860px,92vh)}.modal-affaire-kanban .modal-body{padding:16px;overflow:hidden}.affaire-kanban-shell{display:flex;height:100%;min-height:0;flex-direction:column;gap:13px}.affaire-kanban-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 17px;border:1px solid color-mix(in srgb,var(--brand) 20%,var(--border));border-radius:14px;background:linear-gradient(125deg,var(--surface),var(--brand-light))}
.affaire-kanban-intro>div{min-width:0}.affaire-kanban-intro span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.affaire-kanban-intro h2{margin:4px 0 2px;color:var(--text);font-size:19px;letter-spacing:-.4px}.affaire-kanban-intro p{margin:0;color:var(--text2);font-size:9px}.affaire-kanban-intro>strong{color:var(--text);font-size:11px;white-space:nowrap}
.affaire-kanban-board{display:grid;grid-template-columns:repeat(8,240px);min-height:0;flex:1;gap:10px;overflow:auto;padding:1px 2px 10px;scroll-snap-type:x proximity}.affaire-kanban-column{display:flex;min-height:100%;flex-direction:column;padding:9px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface2) 76%,var(--surface));scroll-snap-align:start;transition:border-color .14s,background .14s}.affaire-kanban-column.is-over{border-color:var(--brand);background:var(--brand-light);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand) 12%,transparent)}
.affaire-kanban-column>header{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:3px 2px 10px}.affaire-kanban-column>header>div{display:flex;align-items:center;gap:6px}.affaire-kanban-column>header strong{display:grid;min-width:20px;height:20px;place-items:center;border-radius:99px;background:var(--surface);color:var(--text);font-size:8px}.affaire-kanban-column>header small{color:var(--text3);font-size:8px}
.affaire-kanban-cards{display:flex;flex:1;flex-direction:column;gap:7px}.affaire-kanban-card{padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface);box-shadow:0 3px 10px rgba(15,57,70,.035);cursor:grab;transition:transform .14s,border-color .14s,box-shadow .14s}.affaire-kanban-card:hover,.affaire-kanban-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 35%,var(--border));box-shadow:0 9px 20px rgba(8,122,150,.09);outline:none}.affaire-kanban-card.is-dragging{opacity:.45;cursor:grabbing}
.affaire-kanban-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.affaire-kanban-card-top .affaire-ref{padding:4px 6px;font-size:8px}.affaire-kanban-card-top i{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:var(--brand-light);color:var(--brand);font-size:8px;font-weight:800;font-style:normal}.affaire-kanban-card h3{margin:9px 0 3px;color:var(--text);font-size:11px;line-height:1.3}.affaire-kanban-card>p{margin:0;overflow:hidden;color:var(--text3);font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}
.affaire-kanban-card-amount{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.affaire-kanban-card-amount strong{color:var(--text);font-size:10px}.affaire-kanban-card-amount span{color:var(--green);font-size:7.5px}.affaire-kanban-card-amount span.is-negative{color:var(--red)}.affaire-kanban-next{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:7px;padding:6px 7px;border-radius:7px;background:var(--surface2)}.affaire-kanban-next span{overflow:hidden;color:var(--text2);font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.affaire-kanban-next small{color:var(--brand);font-size:7px;white-space:nowrap}.affaire-kanban-empty{display:grid;min-height:90px;place-items:center;border:1px dashed var(--border2);border-radius:9px;color:var(--text3);font-size:8px;text-align:center}
@media(max-width:650px){.modal-affaire-kanban{max-width:calc(100vw - 16px);height:94vh}.modal-affaire-kanban .modal-body{padding:10px}.affaire-kanban-intro{align-items:flex-start;flex-direction:column}.affaire-kanban-board{grid-template-columns:repeat(8,82vw)}}

/* Tableaux — personnalisation des colonnes */
.table-column-hidden{display:none!important}.modal-column-pref{max-width:680px}.column-pref{display:flex;flex-direction:column;gap:13px}.column-pref-intro{padding:17px 19px;border:1px solid color-mix(in srgb,var(--brand) 20%,var(--border));border-radius:14px;background:linear-gradient(130deg,var(--surface),var(--brand-light))}.column-pref-intro>span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.column-pref-intro h2{margin:5px 0 3px;color:var(--text);font-size:19px;letter-spacing:-.4px}.column-pref-intro p{margin:0;color:var(--text2);font-size:9.5px;line-height:1.45}
.column-pref-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:390px;overflow-y:auto}.column-pref-row{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;transition:border-color .14s,background .14s,transform .14s}.column-pref-row:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 30%,var(--border));background:var(--brand-light)}.column-pref-row input{width:16px;height:16px;accent-color:var(--brand)}.column-pref-row>span{display:flex;min-width:0;flex-direction:column;gap:2px}.column-pref-row strong{overflow:hidden;color:var(--text);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.column-pref-row small{color:var(--text3);font-size:8px}.column-pref-row.is-locked{opacity:.58;cursor:not-allowed}.column-pref-row.is-locked:hover{transform:none;border-color:var(--border);background:var(--surface)}
.column-pref-note{padding:8px 10px;border-radius:8px;background:var(--surface2);color:var(--text3);font-size:8.5px;text-align:center}
@media(max-width:520px){.column-pref-list{grid-template-columns:1fr}.modal-column-pref .modal-footer{flex-direction:column-reverse}.modal-column-pref .modal-footer .btn{width:100%}}

/* Notifications — règles automatiques */
.modal-notification-rules{max-width:760px}.notification-rules{display:flex;flex-direction:column;gap:13px}.notification-rules-intro{padding:18px 20px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:15px;background:linear-gradient(130deg,var(--surface),var(--brand-light))}.notification-rules-intro>span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.notification-rules-intro h2{margin:5px 0 3px;color:var(--text);font-size:20px;letter-spacing:-.45px}.notification-rules-intro p{margin:0;color:var(--text2);font-size:9.5px}
.notification-rule-list{display:flex;flex-direction:column;gap:7px}.notification-rule{display:grid;grid-template-columns:auto minmax(0,1fr) 115px;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--border);border-radius:11px;background:var(--surface);transition:border-color .14s,box-shadow .14s}.notification-rule:focus-within{border-color:color-mix(in srgb,var(--brand) 36%,var(--border));box-shadow:0 7px 18px rgba(8,122,150,.07)}
.notification-rule-switch{position:relative;display:block;width:36px;height:21px;cursor:pointer}.notification-rule-switch input{position:absolute;opacity:0}.notification-rule-switch span{position:absolute;inset:0;border-radius:99px;background:var(--border2);transition:.18s}.notification-rule-switch span::after{content:'';position:absolute;left:3px;top:3px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.15);transition:.18s}.notification-rule-switch input:checked+span{background:var(--brand)}.notification-rule-switch input:checked+span::after{transform:translateX(15px)}
.notification-rule-copy{min-width:0}.notification-rule-copy strong{display:block;color:var(--text);font-size:10.5px}.notification-rule-copy p{margin:3px 0 0;color:var(--text3);font-size:8.5px}.notification-rule-value{display:flex;align-items:center;gap:6px}.notification-rule-value .input{width:72px;min-height:34px;height:34px;text-align:right}.notification-rule-value span{color:var(--text3);font-size:8px}
@media(max-width:560px){.notification-rule{grid-template-columns:auto minmax(0,1fr)}.notification-rule-value{grid-column:2}.modal-notification-rules .modal-footer{flex-direction:column-reverse}.modal-notification-rules .modal-footer .btn{width:100%}}

/* Études — actions condensées */
.et-actions-heading{width:116px!important;min-width:116px!important;padding-inline:8px!important}.et-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;width:106px;white-space:nowrap}.et-action-icon{display:grid;width:32px;height:32px;min-width:32px;padding:0;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text2);cursor:pointer;box-shadow:0 2px 6px rgba(15,57,70,.035);transition:transform .14s,border-color .14s,background .14s,color .14s}.et-action-icon svg{width:15px;height:15px;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.et-action-icon:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 38%,var(--border));background:var(--brand-light);color:var(--brand)}.et-action-rdv{color:var(--brand)}.et-action-journal:hover{background:var(--purple-bg);color:var(--purple)}.et-action-edit:hover{background:var(--amber-bg);color:var(--amber)}
@media(max-width:768px){.et-action-icon{width:36px;height:36px;min-width:36px}.et-row-actions{width:118px}.et-actions-heading{width:128px!important;min-width:128px!important}}

/* ═══════════════════════════════════════════════════════════════
   CARTES D'ACTION — refonte visuelle (v1.95)
   Surcouche volontairement placée en fin de feuille : les règles
   historiques sont minifiées sur de très longues lignes, les modifier
   chirurgicalement serait risqué.
   Trois intentions : lire le classement d'une action d'un coup d'œil,
   alléger les commandes, et ne montrer les cases de sélection que
   lorsqu'on les demande.
   ═══════════════════════════════════════════════════════════════ */

/* ── La carte ───────────────────────────────────────────────── */
#p-actions .et-task-grid{gap:11px}
#p-actions .et-task-card{
  position:relative;display:flex;flex-direction:column;gap:7px;
  padding:13px 15px 12px 19px;border-radius:14px;
  border:1px solid var(--border);background:var(--surface);
  box-shadow:0 1px 2px rgba(15,57,70,.04);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
/* Rail de gauche : la priorité, écrasée par le retard puis le blocage —
   du plus urgent au plus structurel. */
#p-actions .et-task-card::before{
  content:'';position:absolute;inset:0 auto 0 0;width:4px;border-radius:14px 0 0 14px;
  background:var(--text3);transition:background .16s;
}
#p-actions .et-task-card.priority-low::before{background:color-mix(in srgb,var(--text3) 60%,transparent)}
#p-actions .et-task-card.priority-normal::before{background:var(--brand)}
#p-actions .et-task-card.priority-high::before{background:var(--amber,#f59e0b)}
#p-actions .et-task-card.priority-critical::before{background:var(--red)}
#p-actions .et-task-card.is-overdue::before{background:var(--red)}
#p-actions .et-task-card.is-blocked::before{background:repeating-linear-gradient(135deg,var(--red) 0 5px,color-mix(in srgb,var(--red) 45%,transparent) 5px 10px)}
#p-actions .et-task-card:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--brand) 38%,var(--border));
  box-shadow:0 10px 24px rgba(9,57,70,.10);
}
#p-actions .et-task-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* ── En-tête : origine, pièces jointes, état ─────────────────── */
#p-actions .et-task-card-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:20px}
#p-actions .et-task-card-head>span:last-child{
  margin-left:auto;padding:3px 8px;border-radius:99px;
  background:var(--surface2);color:var(--text2);
  font-size:8.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;
}
#p-actions .et-task-card.priority-critical .et-task-card-head>span:last-child,
#p-actions .et-task-card.is-overdue .et-task-card-head>span:last-child{background:var(--red-bg);color:var(--red)}
#p-actions .et-task-card.priority-high .et-task-card-head>span:last-child{background:var(--amber-bg,#fef3c7);color:var(--amber,#b45309)}
#p-actions .et-task-card-head>span.is-progress{background:var(--brand-light);color:var(--brand)}
#p-actions .et-task-card-head>span.is-blocked{background:var(--red-bg);color:var(--red)}

#p-actions .et-task-card h3{
  margin:0;color:var(--text);font-size:13.5px;font-weight:650;line-height:1.32;letter-spacing:-.15px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
#p-actions .et-task-card>p{
  margin:0;color:var(--text2);font-size:10.5px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
#p-actions .et-task-blocker{
  padding:5px 8px;border-radius:8px;border-left:2px solid var(--red);
  background:var(--red-bg);color:var(--red);font-size:10px
}

/* ── Pied : responsable et échéance ──────────────────────────── */
#p-actions .et-task-meta{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:2px 0 0;padding-top:8px;border-top:1px dashed var(--border);
  color:var(--text3);font-size:10px;
}
#p-actions .et-task-meta>span{display:flex;align-items:center;gap:5px;min-width:0}
#p-actions .et-task-meta>strong{
  flex-shrink:0;padding:3px 8px;border-radius:7px;background:var(--surface2);
  color:var(--text2);font-size:10px;font-weight:700;
}
#p-actions .et-task-card.is-overdue .et-task-meta>strong{background:var(--red-bg);color:var(--red)}
#p-actions .et-task-card[data-timing="soon"] .et-task-meta>strong{background:var(--amber-bg,#fef3c7);color:var(--amber,#b45309)}

/* ── Commandes : discrètes au repos, franches au survol ──────── */
#p-actions .et-task-actions{
  display:flex;align-items:center;gap:5px;margin-top:2px;
  opacity:.55;transition:opacity .16s ease;
}
#p-actions .et-task-card:hover .et-task-actions,
#p-actions .et-task-card:focus-within .et-task-actions{opacity:1}
#p-actions .et-act{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  min-height:27px;min-width:27px;padding:0 7px;
  border:1px solid var(--border);border-radius:8px;background:var(--surface);
  color:var(--text2);font-size:11px;font-weight:700;line-height:1;cursor:pointer;
  transition:background .14s,color .14s,border-color .14s;
}
#p-actions .et-act:hover{background:var(--surface2);border-color:var(--brand);color:var(--brand)}
#p-actions .et-act.is-danger:hover{border-color:var(--red);background:var(--red-bg);color:var(--red)}
#p-actions .et-act.is-done{margin-left:auto;padding:0 10px;font-size:10px;
  border-color:color-mix(in srgb,var(--green) 40%,var(--border));color:var(--green)}
#p-actions .et-act.is-done:hover{background:var(--green);border-color:var(--green);color:#fff}
#p-actions .et-act.is-done span{font-size:11px}
/* Sur écran tactile, le survol n'existe pas : les commandes restent lisibles. */
@media(hover:none){#p-actions .et-task-actions{opacity:1}}

/* ── Mode sélection ──────────────────────────────────────────── */
/* La case n'apparaît qu'après avoir cliqué « Sélectionner ». */
#p-actions .et-task-select{display:none}
#p-actions .et-action-workspace.is-selecting .et-task-select{display:inline-flex;align-items:center}
#p-actions .et-action-workspace:not(.is-selecting) .et-action-selection-tools,
#p-actions .et-action-workspace:not(.is-selecting) .et-action-bulkbar{display:none!important}
.et-action-select-toggle{
  display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 11px;
  border:1px solid var(--border);border-radius:9px;background:var(--surface);
  color:var(--text2);font-size:10px;font-weight:750;cursor:pointer;white-space:nowrap;
  transition:background .14s,color .14s,border-color .14s;
}
.et-action-select-toggle:hover{border-color:var(--brand);color:var(--brand)}
.et-action-select-toggle.is-active{background:var(--brand);border-color:var(--brand);color:#fff}
#p-actions .et-action-workspace.is-selecting .et-task-card{border-style:dashed}
#p-actions .et-action-workspace.is-selecting .et-task-actions{opacity:.25;pointer-events:none}

/* ── Vue Kanban ──────────────────────────────────────────────── */
#p-actions .et-action-kanban{display:none}
#p-actions .et-action-workspace.is-kanban .et-task-grid,
#p-actions .et-action-workspace.is-kanban .et-action-filter-empty{display:none!important}
#p-actions .et-action-workspace.is-kanban .et-action-kanban{display:block}
.et-kanban-aide{margin:0 0 10px;color:var(--text3);font-size:10px}
.et-kanban-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:start}
.et-kanban-col{
  display:flex;flex-direction:column;min-height:180px;padding:10px;
  border:1px solid var(--border);border-radius:14px;background:var(--surface2);
  transition:border-color .14s,background .14s;
}
.et-kanban-col.is-over{border-color:var(--brand);background:var(--brand-light)}
.et-kanban-col.is-done{border-style:dashed}
.et-kanban-col>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:2px 3px 10px}
.et-kanban-col>header strong{display:block;color:var(--text);font-size:11px;font-weight:800}
.et-kanban-col>header small{display:block;margin-top:2px;color:var(--text3);font-size:8.5px;line-height:1.3}
.et-kanban-col>header b{
  display:grid;min-width:21px;height:21px;place-items:center;flex-shrink:0;
  border-radius:99px;background:var(--surface);color:var(--text2);font-size:9.5px;font-weight:800;
}
.et-kanban-col.is-blocked>header b{background:var(--red-bg);color:var(--red)}
.et-kanban-cards{display:flex;flex-direction:column;gap:7px;flex:1}
.et-kanban-card{
  position:relative;padding:10px 11px 9px 13px;border:1px solid var(--border);border-radius:11px;
  background:var(--surface);box-shadow:0 2px 6px rgba(15,57,70,.04);cursor:grab;
  transition:transform .14s,border-color .14s,box-shadow .14s;
}
.et-kanban-card::before{content:'';position:absolute;inset:0 auto 0 0;width:3px;border-radius:11px 0 0 11px;background:var(--brand)}
.et-kanban-card.priority-high::before{background:var(--amber,#f59e0b)}
.et-kanban-card.priority-critical::before,.et-kanban-card.is-overdue::before{background:var(--red)}
.et-kanban-card.priority-low::before{background:color-mix(in srgb,var(--text3) 60%,transparent)}
.et-kanban-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 40%,var(--border));box-shadow:0 8px 18px rgba(9,57,70,.09)}
.et-kanban-card.is-dragging{opacity:.45;cursor:grabbing}
.et-kanban-top{display:flex;align-items:center;gap:5px;margin-bottom:5px}
.et-kanban-card h4{margin:0 0 6px;color:var(--text);font-size:11.5px;font-weight:650;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.et-kanban-blocker{margin:0 0 6px;padding:4px 6px;border-radius:6px;background:var(--red-bg);color:var(--red);font-size:9px}
.et-kanban-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.et-kanban-owner{display:flex;align-items:center;gap:5px;min-width:0;color:var(--text2);font-size:9.5px}
.et-kanban-owner i{display:grid;width:19px;height:19px;place-items:center;flex-shrink:0;border-radius:99px;
  background:var(--brand-light);color:var(--brand);font-size:8px;font-weight:850;font-style:normal}
.et-kanban-foot time{flex-shrink:0;padding:2px 6px;border-radius:6px;background:var(--surface2);color:var(--text3);font-size:9px;font-weight:700}
.et-kanban-foot time.is-overdue{background:var(--red-bg);color:var(--red)}
.et-kanban-empty,.et-kanban-drop{
  padding:16px 10px;border:1px dashed var(--border);border-radius:10px;
  color:var(--text3);font-size:9.5px;text-align:center;line-height:1.4;
}
.et-kanban-col.is-over .et-kanban-drop{border-color:var(--brand);color:var(--brand)}
@media(max-width:1100px){.et-kanban-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.et-kanban-board{grid-template-columns:1fr}}

/* Cartes d'une même rangée alignées : la carte occupe toute la hauteur de sa
   cellule et la barre de commandes est plaquée en bas. Sans cela, une carte
   courte laissait un vide sous ses boutons. */
#p-actions .et-task-grid:not(.is-compact){align-items:stretch}
#p-actions .et-task-grid:not(.is-compact) .et-task-card{height:100%}
#p-actions .et-task-grid:not(.is-compact) .et-task-actions{margin-top:auto;padding-top:8px}

/* Sélecteur de présentation : un contrôle segmenté lisible, avec libellés.
   La version précédente — trois glyphes de 28 px sans texte, uniquement en bas
   de l'espace de traitement — était introuvable. */
.et-action-view-switch{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);
  border-radius:11px;background:var(--surface2);flex-shrink:0}
.et-action-view-switch button{
  display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 11px;
  border:0;border-radius:8px;background:transparent;color:var(--text2);
  font-size:10.5px;font-weight:750;cursor:pointer;white-space:nowrap;
  transition:background .14s,color .14s,box-shadow .14s;
}
.et-action-view-switch button i{font-style:normal;font-size:12px;line-height:1}
.et-action-view-switch button:hover{background:var(--surface);color:var(--text)}
.et-action-view-switch button.is-active{
  background:var(--surface);color:var(--brand);box-shadow:0 1px 3px rgba(15,57,70,.12)}
/* Sur écran étroit, l'icône suffit — le libellé s'efface avant que ça déborde. */
@media(max-width:900px){
  .et-action-view-switch button span{display:none}
  .et-action-view-switch button{padding:0 9px}
}

/* La barre du haut est dense : le sélecteur de vue passe à la ligne plutôt que
   de se laisser comprimer. Sans cela ses libellés se chevauchaient. */
#p-actions .et-action-page-tools{flex-wrap:wrap;justify-content:flex-end;gap:8px}
.et-action-view-switch{flex-shrink:0}
.et-action-view-switch button{flex-shrink:0;min-width:max-content}

/* ═══════════════════════════════════════════════════════════════
   CORRECTIFS D'AFFICHAGE (v1.96)
   ═══════════════════════════════════════════════════════════════ */

/* 1. Les notifications passaient DERRIÈRE les modales : calque 200 contre
      1000 pour l'overlay. Elles devenaient illisibles pendant une saisie —
      c'est-à-dire exactement au moment où elles servent. */
.toast-wrap{z-index:3000!important}

/* 2. Les pieds de modale ne passaient pas à la ligne : au-delà de cinq ou six
      boutons, la rangée débordait hors de la fiche. La fiche d'action en
      compte sept. */
.modal-footer,#modal-footer{flex-wrap:wrap!important;row-gap:8px}
.modal-footer>.btn,#modal-footer>.btn{flex-shrink:0}
@media(max-width:700px){
  .modal-footer,#modal-footer{justify-content:stretch}
  .modal-footer>.btn,#modal-footer>.btn{flex:1 1 auto}
}

/* 4. Ordres de service en retard : le liseré rouge s'appliquait à CHAQUE
      cellule de la ligne, ce qui dessinait un séparateur rouge entre toutes
      les colonnes. Il ne doit marquer que le début de la ligne, comme un
      onglet discret. */
tr.os-late td{box-shadow:none}
tr.os-late td:first-child{box-shadow:inset 2px 0 0 var(--red)}

/* 5. Titres de section identiques d'un bloc à l'autre du centre des actions. */
#p-actions .et-action-section-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid var(--border);
}
#p-actions .et-action-section-head>div{min-width:0}
#p-actions .et-action-section-head span{
  display:block;color:var(--text);font-size:12px;font-weight:800;letter-spacing:.01em}
#p-actions .et-action-section-head small{
  display:block;margin-top:3px;color:var(--text3);font-size:10px;line-height:1.35}
#p-actions .et-action-section-head>strong{
  flex-shrink:0;display:grid;min-width:24px;height:24px;place-items:center;padding:0 7px;
  border-radius:99px;background:var(--surface2);color:var(--text2);font-size:10px;font-weight:800}
/* Le bloc des terminées adopte la présentation commune : il était le seul
   à s'afficher sous forme de volet dépliant. */
#p-actions .et-completed-history{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}
#p-actions .et-completed-history>.et-action-section-head{margin:0;padding:14px 16px 12px}

/* La carte d'une action terminée s'est densifiée avec l'évaluation : on lui
   redonne de l'air et on empêche l'horodatage de se couper en deux. */
#p-actions .et-completed-grid{grid-template-columns:1fr;gap:8px;padding:12px 16px 16px;background:transparent}
#p-actions .et-completed-card{grid-template-columns:30px minmax(0,1fr) auto;gap:12px;padding:11px 13px;border-radius:11px}
#p-actions .et-completed-card>div>span>small{white-space:nowrap}
#p-actions .et-completed-card>div>strong{font-size:11.5px;text-decoration:none;color:var(--text)}
#p-actions .et-completed-card.is-approved>div>strong{text-decoration:line-through;color:var(--text2)}
#p-actions .et-completed-actions{gap:6px}
#p-actions .et-completed-tools{padding:12px 16px;border-bottom:0;background:transparent}
#p-actions .et-completed-legend{padding:0 16px 10px;border-bottom:1px solid var(--border);background:transparent}
@media(min-width:1000px){#p-actions .et-completed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ═══════════════════════════════════════════════════════════════
   ESPACE DE TRAITEMENT — mise en forme reprise (v1.97)
   ═══════════════════════════════════════════════════════════════
   Cause des débordements : un élément flex conserve par défaut
   min-width:auto, c'est-à-dire la largeur de son contenu. La barre
   d'outils ne pouvait donc jamais rétrécir ni passer à la ligne — elle
   sortait du cadre. Les !important posés précédemment ne servaient à
   rien puisque le problème n'était pas la règle flex-wrap.

   Structure retenue : deux rangées franches plutôt qu'une rangée
   surchargée. En-tête (titre + compteur), puis barre d'outils. */

#p-actions .et-action-section-head{align-items:center}
#p-actions .et-action-section-head>div:first-child{min-width:0;flex:1 1 auto}
#p-actions .et-action-section-head small{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.et-action-toolbar{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  min-width:0;width:100%;margin:0 0 12px;padding:10px 12px;
  border:1px solid var(--border);border-radius:12px;background:var(--surface2);
}
/* Chaque élément peut rétrécir ; les listes déroulantes se partagent la place
   restante, les boutons gardent leur taille. */
.et-action-toolbar>*{min-width:0}
.et-action-toolbar label{display:flex;align-items:center;min-width:0;flex:1 1 170px}
.et-action-toolbar .input{width:100%;min-width:0}
.et-action-toolbar .et-action-save-view,
.et-action-toolbar .et-action-select-toggle,
.et-action-toolbar .et-action-view-switch{flex:0 0 auto}
.et-action-toolbar .et-action-save-view{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:32px;border:1px solid var(--border);border-radius:9px;
  background:var(--surface);color:var(--text2);cursor:pointer}
.et-action-toolbar .et-action-save-view:hover{border-color:var(--brand);color:var(--brand)}
/* Le sélecteur de vue termine la rangée, séparé du reste. */
.et-action-toolbar .et-action-view-switch{margin-left:auto}
@media(max-width:760px){
  .et-action-toolbar .et-action-view-switch{margin-left:0;width:100%}
  .et-action-toolbar .et-action-view-switch button{flex:1 1 0}
}

/* Même correction pour la barre du haut, où les boutons se chevauchaient. */
#p-actions .et-action-page-toolbar{align-items:center;gap:14px}
#p-actions .et-action-toolbar-copy{min-width:0;flex:1 1 auto}
#p-actions .et-action-page-tools{min-width:0;flex-wrap:wrap;row-gap:8px}
#p-actions .et-action-export-menu{flex-wrap:wrap;min-width:0}

/* Aucun bloc du centre ne doit pouvoir dépasser sa carte. */
#p-actions .et-action-center>*{max-width:100%;min-width:0}
#p-actions .et-action-center{overflow:hidden}

/* La barre d'accès rapide alignait neuf filtres sans retour à la ligne : au-delà
   d'environ 1500 px de large, les derniers sortaient du cadre — c'est le
   « À valid… » tronqué. Elle passe à la ligne comme le reste. */
/* Idem pour la légende du bandeau et les statistiques d'en-tête. */
#p-actions .et-action-hero-legend,#p-actions .et-action-center-stats{flex-wrap:wrap;min-width:0}
#p-actions .et-action-center-hero{flex-wrap:wrap;row-gap:14px}
#p-actions .et-action-hero-copy{min-width:0;flex:1 1 320px}

/* La rangée de filtres est une grille à quatre colonnes fixes ; avec le champ
   de recherche, les quatre listes et le bouton de réinitialisation, le sixième
   élément débordait. Colonnes adaptatives, et le bouton se cale en bout. */
#p-actions .et-action-filters{
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  align-items:center;min-width:0}
#p-actions .et-action-filters>*{min-width:0}
#p-actions .et-action-filters .et-action-search-field{grid-column:1/-1}
#p-actions .et-action-filters .et-action-filter-reset{
  justify-self:end;width:38px;padding:0;flex:0 0 auto}
@media(min-width:1200px){
  #p-actions .et-action-filters .et-action-search-field{grid-column:auto/span 2}
}

/* ── v1.98 · un élément masqué doit disparaître ────────────────────────────
   Le filtre de l'espace de traitement posait bien l'attribut hidden sur les
   cartes écartées, mais la règle #p-actions .et-task-card{display:flex} porte
   un identifiant : elle l'emportait en spécificité sur .et-task-card[hidden].
   Résultat : le compteur descendait, la liste ne bougeait pas. */
#p-actions [hidden],
.et-task-card[hidden],.et-kanban-card[hidden],.et-kanban-col[hidden]{display:none!important}

/* ══════════════════════════════════════════════════════════════════════════
   v1.99 · ESPACE DE TRAITEMENT — MISE EN FORME DÉFINITIVE DES BARRES
   ══════════════════════════════════════════════════════════════════════════
   Trois correctifs successifs ont échoué parce qu'ils traitaient le symptôme.
   La cause est unique : les listes déroulantes portaient un flex-grow sans
   plafond. Sur un écran large elles absorbaient tout l'espace disponible, et
   le sélecteur de vue — dernier de la rangée — était rejeté hors du cadre.
   Ajouter flex-wrap ne servait à rien : une liste qui grandit ne crée jamais
   le manque de place qui déclencherait le retour à la ligne.

   Une liste déroulante n'a aucun besoin de dépasser ~230 px : son contenu est
   court et connu. On les plafonne donc, et l'espace rendu va au champ de
   recherche, seul élément qui gagne à être large. Le sélecteur de vue et le
   bouton de réinitialisation ne rétrécissent ni ne se déplacent jamais.

   Ce bloc est volontairement le dernier de la feuille et se suffit à lui-même :
   il annule les réglages accumulés par les versions 1.95 à 1.98 sur ces deux
   rangées, y compris ceux posés dans des requêtes média.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Rangée d'outils : vues enregistrées, tri, sélection, présentation ── */
#p-actions .et-action-toolbar{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center;
  gap:8px;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface2);
}
#p-actions .et-action-toolbar>*{min-width:0;max-width:100%}
/* Les deux listes partagent l'espace, sans jamais le confisquer. */
#p-actions .et-action-toolbar>.et-action-saved-view,
#p-actions .et-action-toolbar>label{
  flex:1 1 170px;
  min-width:140px;
  max-width:230px;
}
#p-actions .et-action-toolbar .input,
#p-actions .et-action-toolbar .et-action-saved-view .input{
  width:100%!important;
  max-width:100%;
}
#p-actions .et-action-toolbar>.et-action-save-view,
#p-actions .et-action-toolbar>.et-action-select-toggle{flex:0 0 auto}
/* Le sélecteur de vue garde sa taille propre et se cale à droite. */
#p-actions .et-action-toolbar>.et-action-view-switch{
  flex:0 0 auto!important;
  width:auto!important;
  margin-left:auto!important;
}
#p-actions .et-action-toolbar>.et-action-view-switch button{flex:0 0 auto!important}

/* ── Rangée de filtres : la recherche prend la place, pas les listes ── */
#p-actions .et-action-filters{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center;
  gap:8px;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
  margin-bottom:12px;
  padding:10px;
  border:1px solid color-mix(in srgb,var(--brand) 15%,var(--border));
  border-radius:14px;
  background:var(--surface2);
}
#p-actions .et-action-filters>*{min-width:0}
#p-actions .et-action-filters>.et-action-search-field{
  flex:1 1 260px;
  min-width:200px;
  max-width:100%;
  grid-column:auto;
}
#p-actions .et-action-filters>select.input{
  flex:0 1 200px;
  min-width:150px;
  max-width:230px;
}
#p-actions .et-action-filters>.et-action-filter-reset{
  flex:0 0 auto;
  width:40px;
  padding:0;
  margin-left:auto;
}

/* Sous 720 px de large, tout passe en pleine largeur : c'est le seul cas où
   une liste mérite de s'étendre, faute de voisine avec qui partager. */
@media(max-width:720px){
  #p-actions .et-action-toolbar>.et-action-saved-view,
  #p-actions .et-action-toolbar>label,
  #p-actions .et-action-filters>select.input,
  #p-actions .et-action-filters>.et-action-search-field{
    flex:1 1 100%;
    max-width:100%;
  }
  #p-actions .et-action-toolbar>.et-action-view-switch{margin-left:0!important}
}

/* Dernier garde-fou : la page des actions ne pousse jamais la fenêtre. */
#p-actions,#p-actions .et-action-center{min-width:0;max-width:100%}

/* v2.0.42 — Les modes d'affichage constituent une commande principale.
   Ils occupent leur propre rangée afin de ne plus être repoussés ou rognés
   par les vues enregistrées et les options de tri. */
#p-actions .et-action-toolbar>.et-action-view-switch{
  order:10!important;
  flex:1 0 100%!important;
  width:100%!important;
  max-width:100%!important;
  margin:2px 0 0!important;
  padding:4px!important;
  justify-content:stretch!important;
  box-sizing:border-box;
}
#p-actions .et-action-toolbar>.et-action-view-switch button{
  flex:1 1 0!important;
  justify-content:center!important;
  min-width:0!important;
  min-height:36px;
}
#p-actions .et-action-toolbar>.et-action-view-switch button span{display:inline!important}
@media(max-width:560px){
  #p-actions .et-action-toolbar>.et-action-view-switch button{padding-inline:7px;font-size:9.5px}
}

/* Journal des versions par composant. */
.changelog-module-heading{display:flex;align-items:center;justify-content:space-between;margin:2px 0 9px}
.changelog-module-heading>div{display:flex;flex-direction:column;gap:2px}
.changelog-module-heading strong{font-size:13px;color:var(--text)}
.changelog-module-heading small{font-size:10.5px;color:var(--text3)}
.changelog-module-nav{
  display:flex;gap:6px;max-width:100%;margin-bottom:12px;padding:4px;
  overflow-x:auto;scrollbar-width:thin;border:1px solid var(--border);
  border-radius:13px;background:var(--surface2)
}
.changelog-module-button{
  display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:34px;
  padding:0 11px;border:0;border-radius:9px;background:transparent;color:var(--text2);
  font:inherit;font-size:10.5px;font-weight:750;white-space:nowrap;cursor:pointer
}
.changelog-module-button i{font-style:normal;color:var(--brand)}
.changelog-module-button:hover{background:var(--surface);color:var(--text)}
.changelog-module-button.is-active{background:var(--brand);color:#fff;box-shadow:0 4px 12px rgba(0,126,153,.2)}
.changelog-module-button.is-active i{color:#fff}
.changelog-empty{padding:28px 14px;color:var(--text3);font-size:12px;text-align:center}

/* v2.0.43 — Ordres de service dans le compagnon terrain. */
.field-os-card .field-os-badge{font-size:9px;font-weight:850;letter-spacing:.08em;color:var(--brand)}
.field-os-tasks{display:flex;flex-direction:column;gap:6px;margin:0 14px 12px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}
.field-os-tasks span{font-size:11px;font-weight:650;color:var(--text2)}
.field-os-tasks small{font-size:9.5px;color:var(--text3)}
.os-personal-scope{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border:1px solid var(--border);border-radius:10px;background:var(--brand-light);color:var(--brand);font-size:11px;font-weight:750}

/* v2.0.44 — Demande semi-automatique d'affectation depuis un achat. */
.ac-affectation-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.ac-affectation-heading>div{display:flex;flex-direction:column;gap:2px}.ac-affectation-heading>div span{font-size:9px;font-weight:850;letter-spacing:.11em;color:var(--brand)}.ac-affectation-heading>div strong{font-size:14px;color:var(--text)}
.ac-request-allocation{border-color:color-mix(in srgb,var(--brand) 35%,var(--border));color:var(--brand)}
.ac-action-request[hidden]{display:none!important}.ac-action-request{position:fixed;inset:0;z-index:2100;display:grid;place-items:center;padding:18px}
.ac-action-request-backdrop{position:absolute;inset:0;border:0;background:rgba(7,31,39,.54);backdrop-filter:blur(9px);cursor:default}
.ac-action-request>section{position:relative;width:min(560px,100%);padding:20px;border:1px solid rgba(255,255,255,.65);border-radius:20px;background:var(--surface);box-shadow:0 28px 75px rgba(5,35,45,.28)}
.ac-action-request header{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.ac-action-request header span{font-size:9px;font-weight:850;letter-spacing:.11em;color:var(--brand)}.ac-action-request header h3{margin:5px 0 3px;font-size:20px}.ac-action-request header p{margin:0;color:var(--text2);font-size:11px;line-height:1.5}.ac-action-request header>button{width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text2);font-size:20px;cursor:pointer}
.ac-action-request-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:15px}.ac-action-request-context>span{display:flex;min-width:0;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.ac-action-request-context small{font-size:8.5px;font-weight:800;text-transform:uppercase;color:var(--text3)}.ac-action-request-context strong{overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--text)}
.ac-action-request footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
@media(max-width:650px){.ac-affectation-heading{align-items:stretch;flex-direction:column}.ac-action-request-context{grid-template-columns:1fr}.ac-action-request footer .btn{flex:1}}
.field-mobile-identity-warning{border-color:color-mix(in srgb,var(--amber) 45%,var(--border));background:color-mix(in srgb,var(--amber-bg) 78%,var(--surface))}.field-mobile-identity-warning strong{color:var(--amber)}.field-mobile-identity-warning span{max-width:520px;line-height:1.55}

/* ── v1.99 · Encart « Centre des actions » de l'accueil ───────────────────
   Visible d'un coup d'œil sans occuper la place d'un tableau de bord : cinq
   chiffres cliquables, les trois prochaines échéances, et rien d'autre. */
.home-actions-figures{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));
  gap:7px;margin-bottom:11px}
.home-actions-figures button{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  padding:9px 10px;border:1px solid var(--border);border-radius:11px;
  background:var(--surface2);cursor:pointer;text-align:left;min-width:0}
.home-actions-figures button:hover{border-color:color-mix(in srgb,var(--brand) 40%,var(--border))}
.home-actions-figures button>strong{font-size:17px;line-height:1;color:var(--text)}
.home-actions-figures button>span{font-size:8.5px;font-weight:650;color:var(--text3);
  text-transform:uppercase;letter-spacing:.3px;line-height:1.25}
.home-actions-figures button.has-alert{border-color:color-mix(in srgb,var(--red) 45%,var(--border));
  background:var(--red-bg)}
.home-actions-figures button.has-alert>strong{color:var(--red)}
.home-actions-next{display:flex;flex-direction:column;gap:5px}
.home-actions-next button{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 9px;align-items:center;
  padding:7px 9px;border:0;border-radius:9px;background:transparent;cursor:pointer;text-align:left}
.home-actions-next button:hover{background:var(--surface2)}
.home-actions-next button>span{grid-row:1/3;padding:3px 7px;border-radius:7px;
  background:var(--surface2);color:var(--text3);font-size:8.5px;font-weight:700;white-space:nowrap}
.home-actions-next button>span.is-late{background:var(--red-bg);color:var(--red)}
.home-actions-next button>strong{font-size:10.5px;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-actions-next button>small{font-size:8.5px;color:var(--text3)}
.home-actions-warning{width:100%;margin-top:9px;padding:8px 10px;border:1px dashed
  color-mix(in srgb,var(--amber,#f59e0b) 45%,var(--border));border-radius:10px;
  background:transparent;color:var(--amber,#b45309);font-size:9px;font-weight:700;cursor:pointer}

/* ── v2.00 · Radiation d'une tâche ───────────────────────────────────────── */
.notif-item-actions .notif-dismiss{color:var(--text3)}
.notif-item-actions .notif-dismiss:hover{border-color:color-mix(in srgb,var(--red) 45%,var(--border));
  color:var(--red)}
.notif-dismiss-copy{margin:0 0 14px;color:var(--text2);font-size:10.5px;line-height:1.6}
.notif-dismissed-list{display:flex;flex-direction:column;gap:7px;max-height:420px;overflow-y:auto}
.notif-dismissed-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}
.notif-dismissed-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.notif-dismissed-row strong{font-size:11px;color:var(--text)}
.notif-dismissed-row small{font-size:8.5px;color:var(--text3);line-height:1.45}
.notif-dismissed-row .btn{flex:0 0 auto}

/* ══════════════════════════════════════════════════════════════════════════
   v2.0.01 · AGRÉGATS CLIQUABLES
   Un chiffre consolidé qui ne filtre pas la liste laisse l'utilisateur
   chercher lui-même « lesquels ». Ces cartes répondent à la question d'un
   clic, et un reclic annule le filtre. Même composant dans tous les modules.
   ────────────────────────────────────────────────────────────────────────── */
.agregats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:9px;margin:0 0 16px;min-width:0}
.agregats>*{min-width:0}

button.metric-filter{
  display:block;width:100%;text-align:left;cursor:pointer;
  font:inherit;color:inherit;
  border:1px solid var(--border);background:var(--surface)}
button.metric-filter:hover{
  border-color:color-mix(in srgb,var(--brand) 45%,var(--border));
  transform:translateY(-2px)}
button.metric-filter:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* L'état actif doit se lire sans ambiguïté : c'est lui qui explique pourquoi
   la liste en dessous est plus courte que prévu. */
button.metric-filter.is-active{
  border-color:var(--brand);
  background:var(--brand-light);
  box-shadow:inset 0 0 0 1px var(--brand)}
button.metric-filter.is-active .metric-value,
button.metric-filter.is-active .metric-label{color:var(--brand)}
button.metric-filter.is-active::after{
  content:'✕';position:absolute;top:8px;right:10px;
  color:var(--brand);font-size:10px;font-weight:700;opacity:.75}

button.metric-filter.ton-alerte .metric-value{color:var(--red)}
button.metric-filter.ton-alerte.is-active{
  border-color:var(--red);background:var(--red-bg);box-shadow:inset 0 0 0 1px var(--red)}
button.metric-filter.ton-alerte.is-active .metric-value,
button.metric-filter.ton-alerte.is-active .metric-label,
button.metric-filter.ton-alerte.is-active::after{color:var(--red)}
button.metric-filter.ton-attente .metric-value{color:var(--amber,#b45309)}
button.metric-filter.ton-succes .metric-value{color:var(--green,#15803d)}
button.metric-filter.ton-brand .metric-value{color:var(--brand)}

@media(max-width:640px){
  .agregats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px}
  button.metric-filter{padding:10px}
}

/* v2.0.39 — Kanban des actions enrichi */
.et-kanban-command{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:11px;padding:12px 14px;border:1px solid var(--border);border-radius:13px;background:linear-gradient(125deg,var(--surface),var(--brand-light))}.et-kanban-command strong{display:block;font-size:13px;color:var(--text)}.et-kanban-command p{margin:3px 0 0}.et-kanban-command>div:last-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.et-kanban-command>div:last-child>span{display:flex;align-items:center;gap:5px;color:var(--text3);font-size:9px}.et-kanban-command i{width:8px;height:8px;border-radius:50%}.et-kanban-command i.is-critical{background:var(--red)}.et-kanban-command i.is-limit{background:var(--amber)}.et-kanban-column-metrics{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:-3px 0 8px;padding:6px 7px;border-radius:7px;background:var(--surface)}.et-kanban-column-metrics span,.et-kanban-column-metrics small,.et-kanban-column-metrics strong{font-size:8px}.et-kanban-column-metrics span{color:var(--text2);font-weight:750}.et-kanban-column-metrics small{color:var(--green)}.et-kanban-column-metrics strong{color:var(--red)}.et-kanban-col.is-wip-over{border-color:var(--amber);box-shadow:inset 0 3px 0 var(--amber)}.et-kanban-col.is-wip-over>header>b{background:var(--amber-bg);color:var(--amber)}.et-kanban-signals{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0}.et-kanban-signals span{padding:3px 5px;border-radius:99px;background:var(--surface2);color:var(--text3);font-size:7px;font-weight:750}

/* v2.0.39 — cockpit de recouvrement */
.recovery-cockpit{display:flex;flex-direction:column;gap:15px}.recovery-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px 24px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--border));border-radius:18px;background:radial-gradient(circle at 90% 10%,color-mix(in srgb,var(--brand) 17%,transparent),transparent 16rem),linear-gradient(130deg,var(--surface),var(--brand-light));box-shadow:var(--shadow)}.recovery-hero span{color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.12em}.recovery-hero h2{margin:5px 0 3px;font-size:25px;letter-spacing:-.6px}.recovery-hero p{margin:0;color:var(--text2);font-size:11px}.recovery-hero>div:last-child{display:flex;gap:7px}.recovery-alert-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.recovery-alert-strip button{display:flex;align-items:center;gap:10px;padding:13px 15px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.recovery-alert-strip button:hover{border-color:var(--brand);transform:translateY(-1px)}.recovery-alert-strip strong{font-size:17px;color:var(--brand)}.recovery-alert-strip span{font-size:9px;color:var(--text2)}.recovery-toolbar{display:grid;grid-template-columns:1.4fr .8fr .8fr auto;align-items:end;gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface2)}.recovery-toolbar label{display:flex;flex-direction:column;gap:4px}.recovery-toolbar label>span{color:var(--text3);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.recovery-risk{display:inline-flex;align-items:center;gap:6px}.recovery-risk b{display:grid;width:29px;height:29px;place-items:center;border-radius:9px;font-size:10px}.recovery-risk small{font-size:8px}.recovery-risk.is-high b{background:var(--red-bg);color:var(--red)}.recovery-risk.is-medium b{background:var(--amber-bg);color:var(--amber)}.recovery-risk.is-low b{background:var(--green-bg);color:var(--green)}.recovery-next{display:flex;min-width:125px;flex-direction:column;gap:2px;border:0;background:transparent;text-align:left;cursor:pointer}.recovery-next strong{color:var(--text);font-size:9px}.recovery-next small{color:var(--brand);font-size:7.5px}.recovery-next.is-late strong{color:var(--red)}.recovery-next.is-promise strong{color:var(--green)}.recovery-filter-empty{padding:28px;text-align:center;color:var(--text3)}
@media(max-width:900px){.recovery-alert-strip{grid-template-columns:1fr 1fr}.recovery-toolbar{grid-template-columns:1fr 1fr}.recovery-hero{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.recovery-alert-strip,.recovery-toolbar{grid-template-columns:1fr}.recovery-hero>div:last-child{width:100%;flex-wrap:wrap}.recovery-hero .btn{flex:1}.et-kanban-command{align-items:flex-start;flex-direction:column}}

/* v2.0.36 — mode chantier mobile */
.nav-chantier-badge{background:#e06b22!important;color:#fff!important}
.field-mobile-shell{width:min(100%,760px);margin:0 auto;padding-bottom:90px}
.field-mobile-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px;border-radius:22px;background:linear-gradient(135deg,#0b3440,#0c7891);color:#fff;box-shadow:0 16px 40px rgba(8,76,91,.2)}
.field-mobile-hero span{font-size:10px;font-weight:850;letter-spacing:.12em;opacity:.75}.field-mobile-hero h2{margin:5px 0 2px;font-size:27px;letter-spacing:-.04em}.field-mobile-hero p{font-size:13px;opacity:.8;text-transform:capitalize}.field-mobile-hero>i{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.14);font-size:10px;font-style:normal;font-weight:800;white-space:nowrap}.field-mobile-hero>i.is-offline{background:#a23a31}
.field-mobile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.field-mobile-stats button{display:flex;min-height:75px;flex-direction:column;align-items:flex-start;justify-content:center;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow-card)}.field-mobile-stats strong{font-size:25px;line-height:1}.field-mobile-stats span{margin-top:6px;color:var(--text3);font-size:11px;font-weight:700}
.field-mobile-tabs{position:sticky;top:-1px;z-index:8;display:flex;gap:5px;margin:14px 0;padding:5px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px)}.field-mobile-tabs button{flex:1;padding:10px;border:0;border-radius:10px;background:transparent;color:var(--text2);font-weight:750;cursor:pointer}.field-mobile-tabs button.is-active{background:var(--brand);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--brand) 30%,transparent)}
.field-mobile-list{display:grid;gap:13px}.field-task-card{overflow:hidden;border:1px solid var(--border);border-radius:19px;background:var(--surface);box-shadow:0 10px 26px rgba(16,35,50,.08)}.field-task-card.is-running{border-color:color-mix(in srgb,var(--brand) 55%,var(--border));box-shadow:inset 4px 0 0 var(--brand),0 10px 26px rgba(16,35,50,.08)}.field-task-card.is-blocked{border-color:var(--red-border);box-shadow:inset 4px 0 0 var(--red),0 10px 26px rgba(16,35,50,.08)}
.field-task-card>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 0}.field-task-card>header b{color:var(--brand);font-size:9px;letter-spacing:.08em}.field-task-card.is-blocked>header b{color:var(--red)}.field-task-main{display:block;width:100%;padding:13px 16px;text-align:left;border:0;background:transparent;color:var(--text);cursor:pointer}.field-task-main h3{font-size:18px;line-height:1.25;letter-spacing:-.02em}.field-task-main p{margin-top:4px;color:var(--text2);font-size:13px}.field-task-main small{display:block;margin-top:9px;color:var(--text3);font-size:11px;font-weight:650}
.field-task-address{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:9px;margin:0 14px 12px;padding:11px;border-radius:12px;background:var(--surface2);color:var(--text);text-decoration:none}.field-task-address>span{grid-row:1/3;display:grid;place-items:center;color:var(--brand);font-size:22px}.field-task-address strong{font-size:11px}.field-task-address small{overflow:hidden;color:var(--text3);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.field-task-alert{margin:0 14px 12px;padding:10px 12px;border-radius:10px;background:var(--red-bg);color:var(--red);font-size:11px;font-weight:700}
.field-task-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border-top:1px solid var(--border);background:var(--border)}.field-task-actions button,.field-task-actions label{display:flex;min-height:64px;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:0;background:var(--surface);color:var(--text2);font-size:10px;font-weight:750;cursor:pointer}.field-task-actions span{font-size:18px;color:var(--brand)}.field-task-actions .is-start span{color:var(--green)}.field-task-actions .is-stop span{color:var(--amber)}.field-task-complete{width:100%;padding:14px;border:0;background:linear-gradient(90deg,#087c92,#0b6578);color:#fff;font-size:12px;font-weight:800;cursor:pointer}.field-mobile-empty{padding:45px 20px;text-align:center;border:1px dashed var(--border2);border-radius:18px;color:var(--text3)}.field-mobile-empty strong,.field-mobile-empty span{display:block}.field-mobile-empty strong{color:var(--text);font-size:16px}.field-mobile-empty span{margin-top:5px;font-size:12px}
@media(max-width:768px){body:has(#p-chantier.active) .content{padding:10px 10px 30px}body:has(#p-chantier.active) #module-hero{display:none}.field-mobile-shell{width:100%}.field-mobile-hero{border-radius:18px}.field-task-actions button,.field-task-actions label{min-height:68px;font-size:11px}}
@media(max-width:390px){.field-mobile-hero{padding:18px}.field-mobile-hero h2{font-size:23px}.field-mobile-stats button{padding:11px}.field-task-actions{grid-template-columns:repeat(2,1fr)}}

/* v2.0.37 — centre des automatisations */
.nav-automation-badge{background:#7555d9!important;color:#fff!important}.automation-center{display:grid;gap:16px}.automation-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border:1px solid color-mix(in srgb,var(--purple) 25%,var(--border));border-radius:20px;background:radial-gradient(circle at 90% 20%,color-mix(in srgb,var(--purple) 14%,transparent),transparent 32%),linear-gradient(135deg,var(--surface),var(--surface2))}.automation-hero span{color:var(--purple);font-size:10px;font-weight:850;letter-spacing:.12em}.automation-hero h2{margin:5px 0 3px;font-size:25px;letter-spacing:-.035em}.automation-hero p{color:var(--text2);font-size:12px}.automation-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.automation-kpis>div{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-card)}.automation-kpis span,.automation-kpis small{display:block;color:var(--text3);font-size:10px;font-weight:700}.automation-kpis strong{display:block;margin:4px 0;font-size:24px}.automation-kpis .is-error strong{color:var(--red)}.automation-toolbar{display:flex;align-items:center;gap:8px;padding:4px}.automation-toolbar>div{margin-right:auto}.automation-toolbar h3{font-size:16px}.automation-toolbar span{color:var(--text3);font-size:11px}.automation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.automation-card{display:flex;min-width:0;flex-direction:column;padding:17px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 8px 24px rgba(25,35,55,.06)}.automation-card.is-paused{opacity:.62}.automation-card.is-error{border-color:var(--red-border);box-shadow:inset 3px 0 0 var(--red)}.automation-card>header{display:flex;align-items:center;justify-content:space-between}.automation-card>header span{padding:5px 8px;border-radius:999px;background:var(--purple-bg);color:var(--purple);font-size:9px;font-weight:800;text-transform:uppercase}.automation-card>header span.is-achat{background:var(--amber-bg);color:var(--amber)}.automation-card>header span.is-crm{background:var(--green-bg);color:var(--green)}.automation-card>header button{border:0;background:transparent;color:var(--text3);font-size:9px;cursor:pointer}.automation-card h3{margin-top:14px;font-size:15px}.automation-card>p{min-height:34px;margin:3px 0 12px;color:var(--text3);font-size:10px}.automation-card dl{display:grid;gap:7px;margin-top:auto;padding:11px;border-radius:10px;background:var(--surface2)}.automation-card dl>div{display:flex;justify-content:space-between;gap:10px}.automation-card dt{color:var(--text3);font-size:9px}.automation-card dd{overflow:hidden;max-width:65%;font-size:9px;font-weight:750;text-align:right;text-overflow:ellipsis;white-space:nowrap}.automation-card footer{display:flex;gap:5px;margin-top:11px}.automation-card footer button{flex:1;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text2);font-size:9px;font-weight:700;cursor:pointer}.automation-card footer button.is-danger{flex:0;color:var(--red)}.automation-history{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.automation-history>header{display:flex;align-items:center;padding:16px;border-bottom:1px solid var(--border)}.automation-history>header div{flex:1}.automation-history>header span{color:var(--purple);font-size:9px;font-weight:800;text-transform:uppercase}.automation-history>header h3{font-size:15px}.automation-history>article{display:grid;grid-template-columns:10px 1fr auto auto;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--border)}.automation-history>article:last-child{border-bottom:0}.automation-history>article>i{width:8px;height:8px;border-radius:50%;background:var(--green)}.automation-history>article.is-error>i{background:var(--red)}.automation-history article div strong,.automation-history article div span{display:block}.automation-history article div strong{font-size:11px}.automation-history article div span,.automation-history time{color:var(--text3);font-size:9px}.automation-history article>b{color:var(--green);font-size:9px}.automation-history article.is-error>b{color:var(--red)}.automation-history>p,.automation-empty{padding:32px;text-align:center;color:var(--text3);font-size:11px}.automation-empty{grid-column:1/-1;border:1px dashed var(--border2);border-radius:16px}.automation-empty strong,.automation-empty span{display:block}.automation-empty strong{color:var(--text);font-size:15px}.automation-switch{display:flex;align-items:center;gap:9px;padding:11px;border-radius:10px;background:var(--surface2);font-size:12px;font-weight:700;cursor:pointer}
@media(max-width:1050px){.automation-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.automation-hero{align-items:flex-start;flex-direction:column;padding:19px}.automation-hero .btn{width:100%;justify-content:center}.automation-kpis{grid-template-columns:1fr 1fr}.automation-grid{grid-template-columns:1fr}.automation-toolbar{align-items:stretch;flex-direction:column}.automation-toolbar>div{margin:0 0 5px}.automation-history>article{grid-template-columns:10px 1fr auto}.automation-history time{display:none}}

/* v2.0.38 — OCR factures et aperçu PDF fiable */
.doc-apercu-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.doc-apercu-toolbar>span{color:var(--text2);font-size:11px;font-weight:750}.doc-apercu-toolbar>div{display:flex;align-items:center;gap:5px}.doc-apercu-toolbar button{min-width:30px;padding:5px 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text2);font-size:10px;font-weight:700;cursor:pointer}.doc-apercu-toolbar b{min-width:45px;color:var(--text2);font-size:10px;text-align:center}.doc-apercu-scene:has(.doc-pages){background:#cfd3d8}.doc-page{transition:width .16s ease,height .16s ease;box-shadow:0 5px 20px rgba(0,0,0,.2)}
.ac-ocr-zone{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px;padding:15px;border:1px solid color-mix(in srgb,var(--brand) 32%,var(--border));border-radius:14px;background:linear-gradient(135deg,var(--brand-light),var(--surface))}.ac-ocr-zone>div span,.ac-ocr-zone>div strong,.ac-ocr-zone>div small{display:block}.ac-ocr-zone>div span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.12em}.ac-ocr-zone>div strong{margin:2px 0;font-size:14px}.ac-ocr-zone>div small{color:var(--text3);font-size:9px}.ac-ocr-loading{margin-bottom:14px;padding:13px;border-radius:10px;background:var(--surface2);color:var(--brand);font-size:11px;font-weight:750}.ac-ocr-loading:before{content:'';display:inline-block;width:11px;height:11px;margin-right:8px;border:2px solid var(--border2);border-top-color:var(--brand);border-radius:50%;vertical-align:-2px;animation:spin .8s linear infinite}.ac-ocr-error{display:grid;gap:3px;margin-bottom:14px;padding:13px;border:1px solid var(--red-border);border-radius:10px;background:var(--red-bg);color:var(--red)}.ac-ocr-error span,.ac-ocr-error small{font-size:10px}.ac-ocr-review{margin-bottom:14px;padding:13px;border:1px solid var(--green-border);border-radius:12px;background:var(--green-bg)}.ac-ocr-review>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.ac-ocr-review>header strong,.ac-ocr-review>header span{display:block}.ac-ocr-review>header strong{color:var(--green);font-size:12px}.ac-ocr-review>header span{color:var(--text3);font-size:9px}.ac-ocr-review>header button{padding:7px 10px;border:0;border-radius:8px;background:var(--green);color:#fff;font-size:10px;font-weight:800;cursor:pointer}.ac-ocr-review>div{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.ac-ocr-review>div>span{min-width:0;padding:8px;border-radius:8px;background:color-mix(in srgb,var(--surface) 80%,transparent)}.ac-ocr-review small,.ac-ocr-review b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-ocr-review small{color:var(--text3);font-size:8px;text-transform:uppercase}.ac-ocr-review b{margin-top:2px;color:var(--text);font-size:10px}
@media(max-width:640px){.doc-apercu-toolbar{align-items:stretch;flex-direction:column}.doc-apercu-toolbar>div{overflow-x:auto}.ac-ocr-zone{align-items:stretch;flex-direction:column}.ac-ocr-zone label{justify-content:center}.ac-ocr-review>header{align-items:stretch;flex-direction:column}.ac-ocr-review>div{grid-template-columns:1fr 1fr}}

/* v2.0.33 — planning de charge : capacité réelle, six semaines et surcharges. */
.action-effort-input{display:flex;align-items:center;gap:0}.action-effort-input .input{border-radius:10px 0 0 10px}.action-effort-input>span{align-self:stretch;display:flex;align-items:center;padding:0 13px;border:1px solid var(--border);border-left:0;border-radius:0 10px 10px 0;background:var(--surface2);color:var(--text2);font-size:11px;font-weight:750;white-space:nowrap}
.capacity-planning-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:15px;background:var(--surface);scrollbar-gutter:stable}.capacity-planning{width:100%;min-width:940px;border-collapse:separate;border-spacing:0}.capacity-planning th,.capacity-planning td{padding:9px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);text-align:center}.capacity-planning tr:last-child>*{border-bottom:0}.capacity-planning tr>*:last-child{border-right:0}.capacity-planning thead th{background:var(--surface2);color:var(--text2);font-size:10px}.capacity-planning thead th:first-child{position:sticky;left:0;z-index:2;min-width:205px;text-align:left}.capacity-planning thead strong,.capacity-planning thead small{display:block}.capacity-planning thead strong{color:var(--text);font-size:11px}.capacity-planning thead small{margin-top:3px;color:var(--text3);font-size:8px}.capacity-planning tbody>tr>th{position:sticky;left:0;z-index:1;min-width:205px;background:var(--surface);text-align:left}
.capacity-person{display:flex;align-items:center;gap:9px}.capacity-person>i{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--brand-light);color:var(--brand);font-size:10px;font-style:normal;font-weight:850}.capacity-person>span{display:flex;min-width:0;flex-direction:column;gap:3px}.capacity-person strong{overflow:hidden;color:var(--text);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.capacity-person small{color:var(--text3);font-size:8.5px}.capacity-cell{display:flex;width:100%;min-width:92px;flex-direction:column;gap:4px;padding:8px;border:1px solid transparent;border-radius:10px;background:var(--surface2);color:var(--text);cursor:pointer}.capacity-cell strong{font-size:12px}.capacity-cell small{color:var(--text3);font-size:8.5px}.capacity-cell>i{height:4px;border-radius:99px;background:var(--surface3);overflow:hidden}.capacity-cell>i>b{display:block;height:100%;border-radius:inherit;background:var(--green)}.capacity-cell.is-warning{border-color:var(--amber-border);background:var(--amber-bg)}.capacity-cell.is-warning>i>b{background:var(--amber)}.capacity-cell.is-overload{border-color:var(--red-border);background:var(--red-bg)}.capacity-cell.is-overload strong,.capacity-cell.is-overload small{color:var(--red)}.capacity-cell.is-overload>i>b{background:var(--red)}.capacity-cell:hover{border-color:var(--brand);transform:translateY(-1px)}
.capacity-legend{display:flex;align-items:center;gap:14px;margin-top:10px;color:var(--text3);font-size:9px}.capacity-legend span{display:flex;align-items:center;gap:5px}.capacity-legend i{width:8px;height:8px;border-radius:99px;background:var(--green)}.capacity-legend i.is-warning{background:var(--amber)}.capacity-legend i.is-overload{background:var(--red)}.capacity-legend strong{margin-left:auto;padding:5px 8px;border-radius:8px;background:var(--amber-bg);color:var(--amber);font-size:9px}.et-action-section-head>strong.is-alert{background:var(--red-bg);color:var(--red)}.action360-kpis{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){.capacity-legend{align-items:flex-start;flex-wrap:wrap}.capacity-legend strong{width:100%;margin-left:0}.action360-kpis{grid-template-columns:1fr 1fr}}@media(max-width:480px){.action360-kpis{grid-template-columns:1fr}}

/* v2.0.34 — la Base Clients devient un CRM opérationnel. */
.crm-client-table{overflow-x:auto}.crm-client-table table{min-width:1160px}.crm-client-row{cursor:pointer;transition:background .15s,transform .15s}.crm-client-row:hover{background:color-mix(in srgb,var(--brand-light) 45%,var(--surface))}.crm-client-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.crm-client-identity,.crm-contact-cell{display:flex;min-width:150px;flex-direction:column;gap:5px}.crm-client-identity>strong{font-size:13px}.crm-client-identity>span{display:flex;align-items:center;gap:5px;color:var(--text3);font-size:9px}.crm-contact-cell strong{font-size:11px}.crm-contact-cell small,.crm-cell-sub{display:block;margin-top:3px;color:var(--text3);font-size:9px}.crm-followup{display:inline-flex;padding:5px 8px;border-radius:8px;background:var(--brand-light);color:var(--brand);font-size:10px;font-weight:750}.crm-followup.is-late{background:var(--red-bg);color:var(--red)}.crm-metric.is-followup{border-color:var(--amber-border)}
.crm-form-section{margin:16px 0;padding:16px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));border-radius:14px;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--brand-light) 44%,var(--surface)))}.crm-form-section>span,.crm-entry-form>span{display:block;margin-bottom:14px;color:var(--brand);font-size:10px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.modal-client360-crm{max-width:1040px}.client360-crm{display:flex;flex-direction:column;gap:15px}.client360-hero{display:flex;align-items:stretch;justify-content:space-between;gap:20px;padding:24px;border:1px solid color-mix(in srgb,var(--brand) 24%,var(--border));border-radius:18px;background:radial-gradient(circle at 90% 5%,color-mix(in srgb,var(--brand) 15%,transparent),transparent 15rem),linear-gradient(135deg,var(--surface),var(--brand-light))}.client360-hero>div>span{color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.client360-hero h2{margin:7px 0 5px;color:var(--text);font-size:25px}.client360-hero p{margin:0;color:var(--text2);font-size:11px}.client360-hero>div>div{display:flex;gap:5px;margin-top:12px}.client360-hero>div>div b{padding:4px 7px;border-radius:7px;background:var(--soc-color);color:#fff;font-size:9px}.client360-hero aside{display:flex;min-width:210px;flex-direction:column;justify-content:center;gap:5px;padding:15px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--border));border-radius:13px;background:color-mix(in srgb,var(--surface) 85%,transparent)}.client360-hero aside small{color:var(--text3);font-size:9px}.client360-hero aside strong{color:var(--text);font-size:14px}.client360-hero aside span{color:var(--text2);font-size:9px}.client360-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.client360-kpis>div{padding:15px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.client360-kpis span{display:block;color:var(--text3);font-size:8px;font-weight:800;text-transform:uppercase}.client360-kpis strong{display:block;margin:7px 0 3px;color:var(--text);font-size:16px}.client360-kpis small{color:var(--text3);font-size:9px}.client360-kpis .is-alert{border-color:var(--red-border);background:var(--red-bg)}.client360-kpis .is-alert strong{color:var(--red)}
.client360-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:11px}.client360-grid>section,.client360-activity,.client360-business,.client360-notes{padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.client360-crm section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.client360-crm section>header>div>span,.client360-notes>span{display:block;color:var(--text);font-size:12px;font-weight:800}.client360-crm section>header>div>small{display:block;margin-top:3px;color:var(--text3);font-size:9px}.crm-contact-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.crm-contact-card{display:grid;grid-template-columns:34px minmax(0,1fr) 28px;align-items:center;gap:9px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.crm-contact-card.is-primary{border-color:color-mix(in srgb,var(--brand) 35%,var(--border))}.crm-contact-avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--brand-light);color:var(--brand);font-size:10px;font-weight:850}.crm-contact-card>div{display:flex;min-width:0;flex-direction:column;gap:3px}.crm-contact-card strong{font-size:10px}.crm-contact-card small{color:var(--text3);font-size:8px}.crm-contact-card>div>span{display:flex;flex-direction:column;gap:2px}.crm-contact-card a{overflow:hidden;color:var(--brand);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.crm-contact-card>button{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text2);cursor:pointer}.client360-grid dl{display:flex;flex-direction:column;gap:8px;margin:0}.client360-grid dl>div{display:flex;justify-content:space-between;gap:12px}.client360-grid dt{color:var(--text3);font-size:9px}.client360-grid dd{margin:0;color:var(--text);font-size:9px;font-weight:700;text-align:right}.client360-grid a{color:var(--brand)}
.crm-timeline{display:flex;max-height:330px;flex-direction:column;gap:0;overflow:auto}.crm-timeline-item{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;padding:0 0 14px}.crm-timeline-item>i{width:10px;height:10px;margin-top:3px;border-radius:99px;background:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.crm-timeline-item>i.is-meeting{background:var(--purple,#7c3aed)}.crm-timeline-item>i.is-email{background:#4766d8}.crm-timeline-item>i.is-call{background:var(--green)}.crm-timeline-item>div{padding-bottom:12px;border-bottom:1px solid var(--border)}.crm-timeline-item>div>span{display:flex;align-items:center;justify-content:space-between;gap:12px}.crm-timeline-item strong{font-size:10px}.crm-timeline-item small{color:var(--text3);font-size:8.5px}.crm-timeline-item p{margin:7px 0;color:var(--text2);font-size:10px;line-height:1.5;white-space:pre-wrap}.crm-timeline-item b{color:var(--brand);font-size:9px}.crm-linked-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;text-align:left}.crm-linked-row:hover{background:var(--brand-light)}.crm-linked-row>span{display:flex;align-items:center;gap:8px}.crm-linked-row strong,.crm-linked-row b{font-size:10px}.crm-empty{padding:18px;border:1px dashed var(--border);border-radius:10px;color:var(--text3);font-size:10px;text-align:center}.client360-notes p{margin:8px 0 0;color:var(--text2);font-size:11px;line-height:1.55;white-space:pre-wrap}.crm-primary-check{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text2);font-size:11px;cursor:pointer}
@media(max-width:820px){.client360-kpis{grid-template-columns:1fr 1fr}.client360-grid{grid-template-columns:1fr}.client360-hero{flex-direction:column}.client360-hero aside{min-width:0}.crm-contact-list{grid-template-columns:1fr}}@media(max-width:500px){.client360-kpis{grid-template-columns:1fr}.client360-crm section>header{align-items:flex-start;flex-direction:column}.client360-crm section>header .btn{width:100%}.crm-linked-row{align-items:flex-start;flex-direction:column}}

/* v2.0.35 — clients multisites. */
.client360-sites{padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.crm-site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.crm-site-card{position:relative;display:flex;min-width:0;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(145deg,var(--surface),var(--surface2))}.crm-site-card.is-primary{border-color:color-mix(in srgb,var(--brand) 38%,var(--border));box-shadow:inset 3px 0 0 var(--brand)}.crm-site-card.is-inactive{opacity:.6}.crm-site-card>header{display:flex!important;align-items:center!important;flex-direction:row!important;justify-content:space-between!important;margin:0!important}.crm-site-card>header>span{color:var(--brand);font-size:8px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.crm-site-card>header>button{display:grid;width:27px;height:27px;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text2);cursor:pointer}.crm-site-card>strong{color:var(--text);font-size:12px}.crm-site-card>p{margin:0;color:var(--text2);font-size:9.5px;line-height:1.45}.crm-site-card>small{color:var(--text3);font-size:8.5px}.crm-site-card>a{color:var(--brand);font-size:9px}.crm-site-card>b{padding:7px;border-radius:7px;background:var(--brand-light);color:var(--text2);font-size:8.5px;font-weight:650;line-height:1.4}.crm-site-card>i{color:var(--red);font-size:8px;font-style:normal;font-weight:800;text-transform:uppercase}.crm-site-switches{display:flex;gap:10px;flex-wrap:wrap}.crm-site-switches label{display:flex;align-items:center;gap:8px;flex:1;min-width:150px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text2);font-size:11px;cursor:pointer}.modal-client-site{max-width:760px}@media(max-width:900px){.crm-site-grid{grid-template-columns:1fr 1fr}}@media(max-width:580px){.crm-site-grid{grid-template-columns:1fr}}

/* Un montant est plus long qu'un compteur : « 1 234 567,00 € » débordait de la
   carte. On le laisse passer à la ligne plutôt que de le tronquer, et on réduit
   légèrement le corps des valeurs monétaires, qui restent lisibles. */
button.metric-filter .metric-value{
  overflow-wrap:anywhere;word-break:break-word;line-height:1.15;
  font-size:clamp(16px,1.45vw,25px)}
button.metric-filter .metric-label,
button.metric-filter .metric-sub{overflow-wrap:anywhere}

/* Raccourcis de désignation dans le formulaire d'achat : les libellés qui
   reviennent le plus souvent, à un clic, sans avoir à deviner qu'une liste
   déroulante existe. */
.ac-des-raccourcis{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.ac-des-raccourcis button{
  max-width:100%;padding:4px 9px;border:1px solid var(--border);border-radius:99px;
  background:var(--surface2);color:var(--text2);font-size:10px;font-weight:600;
  cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-des-raccourcis button:hover{
  border-color:var(--brand);background:var(--brand-light);color:var(--brand)}

/* Les cartes non cliquables partagent la grille des agrégats. */
.agregats>.metric{margin:0}
.metric.ton-alerte .metric-value{color:var(--red)}
.metric.ton-attente .metric-value{color:var(--amber,#b45309)}
.metric.ton-succes .metric-value{color:var(--green,#15803d)}

/* Aide contextuelle du compte d'affectation choisi. */
.ac-compte-aide{margin:5px 0 0;font-size:10.5px;color:var(--text3);line-height:1.5}
.ac-compte-aide.is-alerte{color:var(--brand);font-weight:600}

/* ── v2.0.06 · Contrôle de cohérence ─────────────────────────────────────── */
.coherence-alerte{display:block;width:100%;text-align:left;cursor:pointer;font:inherit}
.coherence-alerte:hover{filter:brightness(.98)}
.coherence-resume{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:9px;margin-bottom:12px}
.coherence-resume>div{padding:11px 13px;border:1px solid var(--border);border-radius:11px;
  background:var(--surface2);display:flex;flex-direction:column;gap:2px}
.coherence-resume>div>strong{font-size:22px;line-height:1}
.coherence-resume>div>span{font-size:9px;font-weight:650;color:var(--text3);
  text-transform:uppercase;letter-spacing:.35px}
.coherence-resume>div.is-critical{border-color:var(--red);background:var(--red-bg)}
.coherence-resume>div.is-critical>strong{color:var(--red)}
.coherence-resume>div.is-high{border-color:var(--amber,#f59e0b)}
.coherence-resume>div.is-high>strong{color:var(--amber,#b45309)}
.coherence-intro{margin:0 0 14px;font-size:10.5px;color:var(--text3);line-height:1.6}
.coherence-liste{display:flex;flex-direction:column;gap:12px;max-height:460px;overflow-y:auto}
.coherence-groupe{border:1px solid var(--border);border-radius:12px;overflow:hidden}
.coherence-groupe-tete{display:flex;justify-content:space-between;align-items:center;
  padding:9px 12px;background:var(--surface2);font-size:11px}
.coherence-groupe-tete>span{color:var(--text3);font-size:9.5px}
.coherence-ligne{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;
  align-items:center;padding:9px 12px;border-top:1px solid var(--border)}
.coherence-ligne>span:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}
.coherence-ligne strong{font-size:10.5px;color:var(--text)}
.coherence-ligne small{font-size:9px;color:var(--text3);line-height:1.45}
.coherence-niveau{padding:3px 8px;border-radius:99px;font-size:8.5px;font-weight:700;
  white-space:nowrap;background:var(--surface2);color:var(--text3)}
.coherence-ligne.niveau-critical .coherence-niveau{background:var(--red-bg);color:var(--red)}
.coherence-ligne.niveau-high .coherence-niveau{background:var(--amber-bg,#fef3c7);color:var(--amber,#b45309)}

/* ── v2.0.06 · Rapprochement bancaire ────────────────────────────────────── */
.rappro-intro{margin-bottom:14px;padding:11px 13px;border:1px solid var(--border);
  border-radius:11px;background:var(--surface2)}
.rappro-intro p{margin:0 0 5px;font-size:11px;color:var(--text2);line-height:1.6}
.rappro-intro small{font-size:9.5px;color:var(--text3)}
.rappro-resume{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:8px;margin:14px 0 10px}
.rappro-resume>div{padding:10px 12px;border:1px solid var(--border);border-radius:11px;
  background:var(--surface2);display:flex;flex-direction:column;gap:2px}
.rappro-resume>div>strong{font-size:20px;line-height:1}
.rappro-resume>div>span{font-size:9px;font-weight:650;color:var(--text3);
  text-transform:uppercase;letter-spacing:.3px;line-height:1.3}
.rappro-resume>div.is-ok{border-color:var(--green-border);background:var(--green-bg)}
.rappro-resume>div.is-ok>strong{color:var(--green)}
.rappro-resume>div.is-warn{border-color:var(--amber,#f59e0b)}
.rappro-resume>div.is-warn>strong{color:var(--amber,#b45309)}
.rappro-ignorees{display:block;margin-bottom:8px;font-size:9.5px;color:var(--text3)}
.rappro-liste{display:flex;flex-direction:column;gap:5px;max-height:380px;overflow-y:auto}
.rappro-ligne{display:grid;grid-template-columns:26px minmax(0,1fr) minmax(0,1fr) auto;
  gap:9px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:10px}
.rappro-ligne.etat-propose{border-color:color-mix(in srgb,var(--green,#16a34a) 40%,var(--border))}
.rappro-ligne.etat-ambigu{border-color:color-mix(in srgb,var(--amber,#f59e0b) 45%,var(--border))}
.rappro-ligne.etat-introuvable{opacity:.75}
.rappro-ligne>span{display:flex;flex-direction:column;gap:1px;min-width:0}
.rappro-ligne strong{font-size:10.5px;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rappro-ligne small{font-size:9px;color:var(--text3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rappro-choix{display:flex;align-items:center;justify-content:center}
.rappro-puce{width:12px;height:12px;border-radius:50%;background:var(--surface2);
  border:1px solid var(--border)}
.rappro-etat{padding:3px 8px;border-radius:99px;font-size:8.5px;font-weight:700;
  white-space:nowrap;background:var(--surface2);color:var(--text3);flex-direction:row!important}
.etat-propose .rappro-etat{background:var(--green-bg);color:var(--green)}
.etat-ambigu .rappro-etat{background:var(--amber-bg,#fef3c7);color:var(--amber,#b45309)}
.rappro-valider{width:100%;margin-top:12px}

/* ══════════════════════════════════════════════════════════════════════════
   v2.0.08 · BARRES HORIZONTALES
   Le camembert à huit parts obligeait à comparer des angles et à faire
   l'aller-retour avec une légende. Les barres se lisent dans l'ordre, portent
   leur libellé à gauche et leur montant à droite : l'identité ne dépend jamais
   de la couleur, ce qui les rend lisibles à l'impression comme pour un œil qui
   distingue mal les teintes. Une seule teinte suffit — la longueur dit tout.
   ────────────────────────────────────────────────────────────────────────── */
.barres{display:flex;flex-direction:column;gap:3px;min-width:0}
.barre{
  display:grid;grid-template-columns:minmax(96px,1.15fr) minmax(80px,2.4fr) minmax(88px,auto);
  gap:10px;align-items:center;width:100%;
  padding:7px 9px;border:0;border-radius:9px;background:transparent;
  font:inherit;color:inherit;text-align:left}
button.barre{cursor:pointer}
button.barre:hover{background:var(--surface2)}
button.barre:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.barre-libelle{display:flex;flex-direction:column;gap:1px;min-width:0;
  font-size:10.5px;font-weight:600;color:var(--text)}
.barre-libelle>small{font-size:8.5px;font-weight:500;color:var(--text3)}
/* Piste discrète, barre franche : le fond ne doit pas concurrencer la donnée. */
.barre-piste{position:relative;height:9px;border-radius:99px;background:var(--surface2);
  overflow:hidden;min-width:0}
.barre-piste>i{display:block;height:100%;border-radius:99px;background:var(--brand);
  transition:width .25s ease}
button.barre:hover .barre-piste>i{filter:brightness(1.08)}
.barre-valeur{display:flex;flex-direction:column;align-items:flex-end;gap:1px;
  font-size:10.5px;font-weight:700;color:var(--text);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.barre-valeur>small{font-size:8.5px;font-weight:600;color:var(--text3)}

.depenses-graphiques{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:12px;margin-bottom:16px;min-width:0}
.depenses-bloc{padding:15px;min-width:0}
.depenses-tete{display:flex;align-items:flex-start;justify-content:space-between;
  gap:10px;flex-wrap:wrap;margin-bottom:11px}
.depenses-tete h3{margin:2px 0 0;font-size:14px}
.depenses-tete>small{font-size:9px;color:var(--text3);text-align:right;max-width:190px;line-height:1.4}

@media(max-width:640px){
  .barre{grid-template-columns:minmax(80px,1fr) minmax(50px,1.4fr) auto;gap:7px;padding:6px}
  .depenses-tete>small{max-width:100%;text-align:left}
}

/* ── Évaluation des ordres de service ─────────────────────────
   Six critères, trois niveaux. La grille doit se remplir vite :
   des boutons larges, un état sélectionné évident, aucun défilement. */
.eval-entete{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.eval-entete h3{margin:2px 0 4px;font-size:17px;font-weight:700;color:var(--text)}
.eval-entete p{margin:0;font-size:13px;color:var(--text2)}
.eval-intro{margin:0 0 12px;font-size:12.5px;color:var(--text2);line-height:1.5}
.eval-ecart{margin:8px 0 0;font-size:12.5px;color:var(--text2)}
.eval-ecart.is-tenu{color:var(--green);font-weight:600}
.eval-ecart.is-depasse{color:var(--red);font-weight:600}

.eval-grille{display:flex;flex-direction:column;gap:8px}
.eval-critere{display:grid;grid-template-columns:minmax(150px,1fr) auto;align-items:center;gap:10px;
  padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--card)}
.eval-critere-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.eval-critere-copy strong{font-size:13.5px;font-weight:600;color:var(--text)}
.eval-critere-copy small{font-size:11.5px;color:var(--text2);line-height:1.35}
.eval-niveaux{display:flex;gap:6px;flex-wrap:wrap}
.eval-niveau{display:inline-flex;flex-direction:column;align-items:center;gap:1px;
  border:1px solid var(--border);background:var(--bg);color:var(--text2);
  border-radius:8px;padding:6px 11px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;
  transition:background .12s,border-color .12s,color .12s}
.eval-niveau small{font-size:10px;font-weight:500;opacity:.75}
.eval-niveau:hover{border-color:var(--brand)}
.eval-niveau.is-active{background:var(--brand);border-color:var(--brand);color:#fff}
.eval-niveau.is-active small{opacity:.85}
.eval-niveau.ton-succes.is-active{background:var(--green);border-color:var(--green)}
.eval-niveau.ton-attente.is-active{background:var(--amber);border-color:var(--amber)}
.eval-niveau.ton-alerte.is-active{background:var(--red);border-color:var(--red)}
.eval-total{margin-top:14px;padding:11px 13px;border-radius:10px;background:var(--bg);
  border:1px solid var(--border);font-size:13.5px;color:var(--text2)}
.eval-total strong{font-size:19px;color:var(--text);font-variant-numeric:tabular-nums}
.eval-total.is-incomplet{border-color:var(--amber-border);background:var(--amber-bg);color:var(--amber)}
.eval-total.is-incomplet strong{color:var(--amber)}
.eval-historique{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.eval-historique>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);font-size:12.5px}
.eval-historique strong{font-variant-numeric:tabular-nums}
.eval-historique small{color:var(--text2);font-size:11.5px;margin-left:7px}

/* Colonne « Évaluation » de la liste des OS.
   Une note, un écart de temps, une mention de révision : trois informations
   dans une cellule étroite — d'où la puce compacte plutôt qu'un tableau. */
.os-note{display:inline-flex;align-items:baseline;gap:3px;border:1px solid var(--border);
  background:var(--bg);border-radius:8px;padding:4px 8px;cursor:pointer;font-variant-numeric:tabular-nums;
  font-size:12.5px;color:var(--text2);white-space:nowrap}
.os-note:hover{border-color:var(--brand)}
.os-note>b{font-size:14.5px;color:var(--text)}
.os-note.est-bonne>b{color:var(--green)}
.os-note.est-moyenne>b{color:var(--amber)}
.os-note.est-faible>b{color:var(--red)}
.os-note>i{font-style:normal;font-size:11px;font-weight:650;margin-left:4px}
.os-note>i.est-tenu{color:var(--green)}
.os-note>i.est-depasse{color:var(--red)}
.os-note>u{text-decoration:none;font-size:10px;font-weight:650;text-transform:uppercase;
  letter-spacing:.3px;color:var(--amber);margin-left:4px}
.os-qualite{margin-top:10px}

/* Indicateur de performance par collaborateur */
.perf-liste{display:flex;flex-direction:column;gap:14px}
.perf-fiche{border:1px solid var(--border);border-radius:12px;padding:13px 14px;background:var(--card)}
.perf-entete{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.perf-entete b{font-size:15px}
.perf-entete small{display:block;color:var(--text2);font-size:11.5px;margin-top:2px}
.perf-temps{display:inline-block;font-size:12.5px;color:var(--text2);margin-bottom:10px}
.perf-temps.is-tenu{color:var(--green);font-weight:600}
.perf-temps.is-depasse{color:var(--red);font-weight:600}
.perf-criteres{display:flex;flex-direction:column;gap:5px}
.perf-critere{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(70px,2fr) auto;align-items:center;gap:9px;font-size:12.5px}
.perf-critere-nom{color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.perf-critere-val{font-variant-numeric:tabular-nums;font-weight:650;min-width:32px;text-align:right}
.perf-piste{display:block;height:8px;border-radius:99px;background:var(--bg);border:1px solid var(--border);overflow:hidden}
.perf-piste>i{display:block;height:100%;border-radius:99px;background:var(--brand)}
.perf-critere.is-fort .perf-piste>i{background:var(--green)}
.perf-critere.is-faible .perf-piste>i{background:var(--red)}
.perf-critere.is-fort .perf-critere-val{color:var(--green)}
.perf-critere.is-faible .perf-critere-val{color:var(--red)}
.perf-bilan{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:11px;padding-top:11px;border-top:1px solid var(--border)}
.perf-col-titre{display:block;font-size:10.5px;font-weight:650;text-transform:uppercase;letter-spacing:.45px;color:var(--text2);margin-bottom:5px}
.perf-bilan ul{margin:0;padding-left:16px;font-size:12.5px;line-height:1.55}
.perf-vide{margin:0;font-size:12.5px;color:var(--text2);line-height:1.5}
.perf-collectif{margin:0 0 12px}

@media(max-width:640px){
  .eval-critere{grid-template-columns:1fr;gap:7px}
  .perf-critere{grid-template-columns:minmax(90px,1fr) minmax(50px,1.3fr) auto;gap:7px}
  .perf-bilan{grid-template-columns:1fr}
}

/* ══════════════════════════════════════════════════════════════
   v2.0.10 — Équipes d'OS, filtre collaborateur, fiche salarié 360°
   ══════════════════════════════════════════════════════════════ */

/* Sélection de l'équipe dans le formulaire d'OS.
   Une liste de cases plutôt qu'un <select multiple> : ce dernier exige un
   Ctrl+clic que personne ne devine, et masque ce qui est déjà coché. */
.os-equipe{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;
  max-height:190px;overflow-y:auto;padding:8px;border:1px solid var(--border);
  border-radius:10px;background:var(--bg)}
.os-equipe-item{display:flex;align-items:flex-start;gap:8px;padding:7px 9px;border:1px solid transparent;
  border-radius:8px;cursor:pointer;font-size:13px;line-height:1.25;transition:background .12s,border-color .12s}
.os-equipe-item:hover{background:var(--surface2)}
.os-equipe-item.is-coche{background:var(--brand-light);border-color:var(--brand)}
.os-equipe-item.est-inactif{opacity:.6}
.os-equipe-item input{margin:2px 0 0;flex-shrink:0;accent-color:var(--brand);width:15px;height:15px}
.os-equipe-item span{display:flex;flex-direction:column;min-width:0}
.os-equipe-item small{color:var(--text3);font-size:11px}
.os-equipe-vide{margin:0;padding:10px;color:var(--text3);font-size:12.5px}
.os-equipe-plus{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:6px;
  background:var(--surface2);color:var(--text2);font-size:10.5px;font-weight:700;cursor:help}

/* Bandeau rappelant que la page ne montre plus qu'un collaborateur. */
.os-perimetre{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:9px 14px;margin-bottom:12px;border:1px solid var(--brand);border-radius:10px;
  background:var(--brand-light);font-size:13px;color:var(--text)}

/* Membres de l'équipe dans la fiche 360° d'un OS. */
.os360-membre{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;margin:0 6px 4px 0;
  padding:4px 9px;border:1px solid var(--border);border-radius:8px;background:var(--bg);
  cursor:pointer;font-size:13px;color:var(--text);text-align:left}
.os360-membre:hover{border-color:var(--brand);color:var(--brand)}
.os360-membre small{color:var(--text3);font-size:10.5px}

/* Nom cliquable dans le panneau de performance. */
.perf-nom{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--text);
  cursor:pointer;text-align:left}
.perf-nom:hover{color:var(--brand);text-decoration:underline}
.performance-summary{margin-bottom:16px}.performance-summary>div{min-height:102px;justify-content:center}.performance-summary strong{white-space:normal!important}.performance-summary+ .perf-collectif{margin-top:0}
.quality-control-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,var(--surface),var(--brand-light))}.quality-control-head>div:first-child span{color:var(--brand);font-size:9px;font-weight:850;text-transform:uppercase}.quality-control-head h2{margin:4px 0;font-size:20px}.quality-control-head p{margin:0;color:var(--text2);font-size:11px}.quality-control-head>div:last-child{display:flex;gap:8px}.quality-control-head>div:last-child b{display:flex;min-width:72px;flex-direction:column;padding:9px;border-radius:11px;background:var(--surface);font-size:18px;text-align:center}.quality-control-head b small{color:var(--text3);font-size:8px}.quality-control-head b.is-critical{color:var(--red);background:var(--red-bg)}.quality-control-head b.is-high{color:var(--amber);background:var(--amber-bg)}.quality-control-filters{display:flex;gap:6px;margin:12px 0;overflow-x:auto}.quality-control-filters button{display:flex;gap:6px;padding:7px 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text2);font-size:9px;white-space:nowrap;cursor:pointer}.quality-control-filters button.is-active{border-color:var(--brand);background:var(--brand-light);color:var(--brand)}.quality-control-filters b{font-size:8px}.quality-issue[hidden]{display:none!important}@media(max-width:650px){.quality-control-head{align-items:stretch;flex-direction:column}.quality-control-head>div:last-child{display:grid;grid-template-columns:repeat(3,1fr)}.quality-control-head>div:last-child b{min-width:0}}

/* ── Fiche salarié 360° ─────────────────────────────────────── */
.sl360-retour{display:flex;align-items:center;justify-content:space-between;gap:10px;
  flex-wrap:wrap;margin-bottom:14px}
.sl360-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface2);margin-bottom:14px}
.sl360-hero h2{margin:5px 0 8px;font-size:19px;line-height:1.25}
.sl360-hero p{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:13px;color:var(--text2)}
.sl360-note{flex-shrink:0;text-align:right;padding:10px 16px;border-radius:12px;
  border:1px solid var(--border);background:var(--bg)}
.sl360-note span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;
  letter-spacing:.6px;color:var(--text3);margin-bottom:3px}
.sl360-note strong{font-size:27px;font-weight:760;font-variant-numeric:tabular-nums;line-height:1}
.sl360-note small{font-size:14px;color:var(--text3);font-weight:600}
.sl360-note.est-bonne strong{color:var(--green)}
.sl360-note.est-moyenne strong{color:var(--amber)}
.sl360-note.est-faible strong{color:var(--red)}

.sl360-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1px;
  margin:0 0 16px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--border)}
.sl360-grid>div{background:var(--surface);padding:11px 14px}
.sl360-grid dt{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;
  color:var(--text3);margin-bottom:4px}
.sl360-grid dd{margin:0;font-size:13.5px;font-weight:600;color:var(--text);overflow-wrap:anywhere}

.sl360-bloc{margin-bottom:18px}
.sl360-bloc>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  flex-wrap:wrap;margin-bottom:10px}
.sl360-bloc>header h3{margin:0;font-size:15px}
.sl360-bloc>header span{font-size:12px;color:var(--text3)}

@media(max-width:640px){
  .sl360-hero{flex-direction:column}
  .sl360-note{align-self:stretch;text-align:left}
  .os-equipe{grid-template-columns:1fr;max-height:220px}
  .os-perimetre{flex-direction:column;align-items:flex-start}
}

/* ══════════════════════════════════════════════════════════════
   v2.0.11 — Feuilles imprimables, aperçu et dépôt de documents
   ══════════════════════════════════════════════════════════════ */

/* ── Visionneuse de document ─────────────────────────────────
   Le contenu occupe la hauteur disponible sans jamais pousser la fenêtre
   au-delà de l'écran : sur un PDF de 40 pages, une hauteur automatique
   ferait défiler la page entière au lieu du document. */
.doc-apercu{display:flex;flex-direction:column;gap:10px}
.doc-apercu-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-size:12px;color:var(--text3)}
.doc-apercu-scene{height:min(68vh,720px);border:1px solid var(--border);border-radius:12px;
  background:var(--surface2);overflow:auto;display:flex;align-items:center;justify-content:center}
.doc-apercu-image{max-width:100%;max-height:100%;object-fit:contain;display:block}
.doc-apercu-pdf,.doc-apercu-texte{width:100%;height:100%;border:0;background:#fff}
.doc-apercu-pdf{min-height:400px}
.doc-apercu-attente,.doc-apercu-vide{padding:28px;text-align:center;color:var(--text3);
  font-size:13.5px;line-height:1.6}

/* ── Dépôt et liste ──────────────────────────────────────────
   Deux grandes zones cliquables plutôt qu'un bouton discret : le geste le
   plus fréquent, sur un téléphone, est de photographier une feuille. */
.doc-panneau{display:flex;flex-direction:column;gap:14px}
.doc-depot{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.doc-depot-case{display:flex;flex-direction:column;gap:3px;padding:14px;cursor:pointer;
  border:2px dashed var(--border);border-radius:12px;background:var(--surface2);
  transition:border-color .12s,background .12s}
.doc-depot-case:hover{border-color:var(--brand);background:var(--brand-light)}
.doc-depot-case input{display:none}
.doc-depot-case strong{font-size:13.5px;color:var(--text)}
.doc-depot-case small{font-size:11.5px;color:var(--text3);line-height:1.4}

.doc-groupe{margin-bottom:14px}
.doc-groupe-titre{display:flex;align-items:center;gap:7px;margin-bottom:7px;font-size:10.5px;
  font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text3)}
.doc-groupe-titre b{padding:1px 6px;border-radius:6px;background:var(--surface2);color:var(--text2);
  font-size:10.5px}
.doc-ligne{display:flex;align-items:center;gap:9px;padding:8px 10px;margin-bottom:5px;
  border:1px solid var(--border);border-radius:10px;background:var(--bg)}
.doc-icone{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;background:var(--surface2);color:var(--text2)}
.doc-icone svg{width:16px;height:16px}
.doc-icone.doc-pdf{color:var(--red)}
.doc-icone.doc-image{color:var(--green)}
.doc-nom{flex:1;min-width:0;display:flex;flex-direction:column}
.doc-nom strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.doc-nom small{font-size:11px;color:var(--text3)}
.doc-vide{padding:16px;margin:0;text-align:center;color:var(--text3);font-size:13px;line-height:1.6}
.doc-badge{display:inline-flex;align-items:center;gap:2px;color:var(--text2)}
.doc-badge svg{width:14px;height:14px}
.doc-badge b{font-size:10px;font-weight:700}

@media(max-width:640px){
  .doc-apercu-scene{height:56vh}
  .doc-depot{grid-template-columns:1fr}
  .doc-ligne{flex-wrap:wrap}
  .doc-nom{flex-basis:100%;order:-1}
}

/* ══════════════════════════════════════════════════════════════
   FEUILLE DE TRAVAIL À L'IMPRESSION
   ══════════════════════════════════════════════════════════════
   Tout est en points, pas en pixels : c'est l'unité que comprend une
   imprimante. Les couleurs sont proscrites — un atelier imprime en noir. */
@media print{
  #print-area .pf-entete{display:flex;justify-content:space-between;align-items:flex-start;
    gap:16pt;padding-bottom:8pt;border-bottom:2.5pt solid #000;margin-bottom:12pt}
  #print-area .pf-societe{display:flex;gap:10pt;align-items:flex-start}
  #print-area .pf-logo{max-width:110pt;max-height:46pt;object-fit:contain}
  #print-area .pf-societe strong{display:block;font-size:13pt;line-height:1.2}
  #print-area .pf-societe span{display:block;margin-top:3pt;font-size:7.5pt;color:#333;
    line-height:1.5;max-width:290pt}
  #print-area .pf-societe .pf-identite{margin-top:1pt;color:#555}
  #print-area .pf-titre{text-align:right;flex-shrink:0}
  #print-area .pf-titre h1{margin:0;font-size:15pt;text-transform:uppercase;letter-spacing:.5pt}
  #print-area .pf-titre strong{display:block;margin-top:2pt;font-size:13pt;font-family:monospace}
  #print-area .pf-titre span{display:block;margin-top:3pt;font-size:7.5pt;color:#444}

  #print-area .pf-section{margin-bottom:11pt;break-inside:avoid}
  #print-area .pf-section h2{margin:0 0 5pt;padding-bottom:2pt;font-size:9.5pt;
    text-transform:uppercase;letter-spacing:.4pt;border-bottom:.75pt solid #000}
  #print-area .pf-section h2 small{float:right;font-weight:400;text-transform:none;
    letter-spacing:0;font-size:7.5pt;color:#555}

  #print-area .pf-champs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;
    border:.75pt solid #999}
  #print-area .pf-champs>div{padding:4pt 6pt;border-bottom:.5pt solid #ccc;border-right:.5pt solid #ccc}
  #print-area .pf-champs>div.pf-large{grid-column:1 / -1}
  #print-area .pf-champs dt{font-size:7pt;text-transform:uppercase;letter-spacing:.3pt;color:#555}
  #print-area .pf-champs dd{margin:1pt 0 0;font-size:9.5pt;font-weight:600}
  #print-area .pf-texte{margin:0;padding:6pt;border:.75pt solid #999;font-size:10pt;
    line-height:1.5;white-space:pre-wrap}
  #print-area .pf-liste{margin:0;padding-left:14pt;font-size:9pt;line-height:1.6}

  #print-area .pf-table{width:100%;border-collapse:collapse;font-size:8.5pt}
  #print-area .pf-table th{background:#eee;text-align:left;padding:3pt 5pt;border:.75pt solid #666;
    font-size:7.5pt;text-transform:uppercase;letter-spacing:.3pt}
  /* Fond blanc imposé : les tableaux de l'application zèbrent une ligne sur
     deux, et cette teinte se retrouvait sur la première ligne à remplir. */
  #print-area .pf-table td,
  #print-area .pf-table tbody tr{background:#fff}
  #print-area .pf-table td{padding:3pt 5pt;border:.5pt solid #999;background:#fff}
  /* Des lignes assez hautes pour qu'on puisse écrire dedans au stylo. */
  #print-area .pf-remplir td{height:19pt}

  /* Recto puis verso : le second feuillet commence sur une page neuve. Sur une
     imprimante réglée en recto-verso, la feuille sort telle qu'elle se remplit
     — consigne devant, rapport derrière. */
  #print-area .pf-page{break-after:page}
  #print-area .pf-page:last-child{break-after:auto}
  #print-area .pf-verso-entete{display:flex;align-items:baseline;justify-content:space-between;
    gap:12pt;padding-bottom:6pt;border-bottom:1.5pt solid #000;margin-bottom:12pt}
  #print-area .pf-verso-entete strong{font-size:12pt}
  #print-area .pf-verso-entete span{display:block;font-size:8pt;color:#444;margin-top:2pt}
  #print-area .pf-verso-objet{flex:0 1 55%;text-align:right;font-size:8.5pt;color:#333}

  #print-area .pf-mission .pf-num{text-align:center;color:#555}
  #print-area .pf-mission .pf-nombre{text-align:right;font-variant-numeric:tabular-nums}
  #print-area .pf-mission td{height:17pt}
  #print-area .pf-mission tfoot th,
  #print-area .pf-mission tfoot td{background:#eee;font-weight:700;border:.75pt solid #666}

  /* Le second volet est visuellement séparé : le collaborateur doit voir d'un
     coup d'œil ce qui lui est demandé de remplir. La fiche d'action reste sur
     une page unique et garde donc son trait de séparation ; sur le verso d'un
     OS, la page tourne déjà et le trait n'a plus lieu d'être. */
  #print-area .pf-partie2{margin-top:16pt;padding-top:10pt;border-top:2pt dashed #000;
    break-before:auto}
  #print-area .pf-verso .pf-partie2{margin-top:0;padding-top:0;border-top:0}
  #print-area .pf-partie2-titre{margin-bottom:9pt;padding:4pt 8pt;background:#000;color:#fff;
    font-size:9.5pt;font-weight:700;text-transform:uppercase;letter-spacing:.8pt}
  #print-area .pf-lignes{display:block}
  #print-area .pf-lignes span{display:block;height:19pt;border-bottom:.5pt solid #999}
  #print-area .pf-aide{margin:4pt 0 0;font-size:7.5pt;color:#666;font-style:italic}
  #print-area .pf-signatures{display:flex;gap:14pt;margin-top:12pt}
  #print-area .pf-signatures>div{flex:1}
  #print-area .pf-signatures span{display:block;font-size:7.5pt;text-transform:uppercase;
    letter-spacing:.3pt;color:#555;margin-bottom:2pt}
  #print-area .pf-signatures i{display:block;height:34pt;border:.75pt solid #999}
  #print-area .pf-pied{margin-top:12pt;padding-top:4pt;border-top:.5pt solid #999;
    font-size:7pt;color:#666;text-align:center}
}

/* Descriptif de mission. Une ligne par tâche, le temps prévu juste en face :
   la colonne étroite empêche d'y écrire autre chose qu'un nombre d'heures. */
.tache-bloc{margin-bottom:14px}
.tache-entete{display:grid;grid-template-columns:1fr 92px 18px 30px;gap:6px;
  margin-bottom:4px;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--text3)}
.tache-entete span:last-child{grid-column:2 / span 2}
.tache-ligne{display:grid;grid-template-columns:1fr 92px 18px 30px;gap:6px;
  align-items:center;margin-bottom:6px}
.tache-heures{text-align:right;font-variant-numeric:tabular-nums}
.tache-unite{font-size:12.5px;color:var(--text3)}
.tache-suppr{background:none;border:0;padding:4px;border-radius:6px;cursor:pointer;
  font-size:13px;color:var(--text3);line-height:1}
.tache-suppr:hover{background:var(--surface2);color:var(--red)}
.tache-pied{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:8px;flex-wrap:wrap}
.tache-total{display:flex;align-items:baseline;gap:8px;font-size:13px;color:var(--text2)}
.tache-total strong{font-size:15px;color:var(--text);font-variant-numeric:tabular-nums}
.tache-total-vide{color:var(--text3);font-style:italic}
.tache-ecart{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--text2)}
.tache-ecart:empty{margin-top:0}
.tache-ecart span{display:block;margin-bottom:6px}

/* Le descriptif dans la fiche de l'OS : une liste numérotée, le temps aligné
   à droite pour que la colonne se lise d'un trait. */
.os360-taches{margin-top:14px}
.os360-taches>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);
  margin-bottom:6px}
.os360-taches>span b{font-size:13px;text-transform:none;letter-spacing:0;color:var(--text)}
.os360-taches ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.os360-taches li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  font-size:13.5px;line-height:1.5}
.os360-taches li em{flex-shrink:0;font-style:normal;color:var(--text2);
  font-variant-numeric:tabular-nums}

/* Relevé des temps à la clôture, et tâches récurrentes dans la synthèse.
   Les colonnes de chiffres sont alignées à droite en chasse fixe : c'est ce
   qui permet de comparer un écart d'une ligne à l'autre sans les lire. */
.eval-taches-table,.syn-taches-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
.eval-taches-table th,.syn-taches-table th{padding:6px 8px;border-bottom:1px solid var(--border);
  text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}
.eval-taches-table td,.syn-taches-table td{padding:6px 8px;border-bottom:1px solid var(--border)}
.eval-taches-table tfoot th,.eval-taches-table tfoot td{border-top:2px solid var(--border2);
  border-bottom:0;font-weight:700;color:var(--text)}
.eval-taches-prevu,.eval-taches-total,.syn-nombre{text-align:right;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.eval-taches-prevu{color:var(--text2)}
.eval-tache-reel{width:92px;text-align:right;font-variant-numeric:tabular-nums}
.eval-taches-table td:last-child,.eval-taches-table th:last-child{width:110px;text-align:right}

.syn-taches{margin:18px 0}
.syn-taches h3{margin:0 0 4px;font-size:15px}
.syn-taches-table .syn-ecart{font-weight:700}
.syn-taches-table tr.est-depassee .syn-ecart{color:var(--red)}
.syn-taches-table tr.est-surestimee .syn-ecart{color:var(--brand)}

/* ══════════════════════════════════════════════════════════════
   VERRE ET PROFONDEUR
   ══════════════════════════════════════════════════════════════
   Le verre est superbe sur une surface qui flotte au-dessus d'un fond ; il
   devient un piège dès qu'il porte du texte fin sur un fond dont on ne
   maîtrise pas la couleur — le contraste cesse d'être une valeur fixe et
   dépend de ce qui passe derrière. Deux règles, tenues partout ici :

     · les surfaces qui flottent (barre du haut, modales, cartes de tête)
       sont translucides et floutées ;
     · les surfaces qui portent des chiffres à lire (lignes de tableau,
       champs de saisie) restent opaques.

   Les taux de translucidité retenus — 88 % en clair, 82 % en sombre — sont
   ceux qui laissent l'effet visible tout en gardant les textes discrets
   au-dessus de 4,5:1. tests/contraste.test.js le vérifie sur les écrans
   réels : le baisser ferait échouer la suite, et c'est voulu. */

/* Le fond qui donne au verre quelque chose à laisser passer.
   Premier essai : des voiles à 6-15 % sur un fond presque blanc. Résultat
   mesuré — une carte « en verre » sortait à #FDFEFE là où une carte opaque
   donne #FFFFFF. Deux unités sur 255 : l'effet était appliqué mais n'avait
   rien à révéler. Le verre d'Apple fonctionne parce qu'il y a une photo
   derrière ; ici il n'y avait que du blanc sur du blanc.
   Le fond porte donc désormais une vraie couleur. Statique : un dégradé animé
   serait joli trois secondes et coûterait ensuite du processeur graphique à
   chaque image, y compris sur les postes d'atelier. */
body{
  background:
    radial-gradient(ellipse 52rem 38rem at 8% -14%,
      color-mix(in srgb,var(--brand) 78%,transparent) 0,transparent 58%),
    radial-gradient(ellipse 42rem 32rem at 94% -6%,
      color-mix(in srgb,var(--green,#127E44) 52%,transparent) 0,transparent 56%),
    radial-gradient(ellipse 46rem 36rem at 86% 104%,
      color-mix(in srgb,var(--purple,#6D49D6) 46%,transparent) 0,transparent 55%),
    radial-gradient(ellipse 40rem 32rem at -6% 96%,
      color-mix(in srgb,var(--amber,#9E6010) 40%,transparent) 0,transparent 54%),
    radial-gradient(ellipse 38rem 30rem at 46% 40%,
      color-mix(in srgb,var(--brand) 34%,transparent) 0,transparent 60%),
    radial-gradient(ellipse 32rem 26rem at 66% 72%,
      color-mix(in srgb,var(--green,#127E44) 26%,transparent) 0,transparent 58%),
    linear-gradient(155deg,
      color-mix(in srgb,var(--brand) 26%,var(--bg)) 0%,
      color-mix(in srgb,var(--green,#127E44) 16%,var(--bg)) 46%,
      color-mix(in srgb,var(--purple,#6D49D6) 22%,var(--bg)) 100%);
  background-attachment:fixed}

/* La zone de travail laisse voir le fond : sans cela, le verre n'aurait
   qu'un aplat gris derrière lui. */
.content{background:transparent}

/* ── Les surfaces qui flottent ─────────────────────────────── */
.topbar{
  background:color-mix(in srgb,var(--surface) 62%,transparent);
  backdrop-filter:blur(26px) saturate(190%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 55%,transparent),
             0 1px 24px color-mix(in srgb,var(--brand) 6%,transparent)}

.modal{
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:blur(30px) saturate(180%);
  -webkit-backdrop-filter:blur(30px) saturate(180%);
  border:1px solid color-mix(in srgb,#fff 65%,transparent);
  box-shadow:0 32px 80px -20px rgba(8,40,52,.42),
             0 8px 24px rgba(8,40,52,.10),
             inset 0 1px 0 color-mix(in srgb,#fff 70%,transparent)}
.overlay{backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%)}

/* Le taux de translucidité n'a pas été choisi à l'œil : on l'a fait descendre
   par paliers en mesurant le contraste sur les écrans réels, jusqu'à trouver
   où ça casse. Réponse : ça ne casse pas — le texte de l'application est très
   sombre (12:1 sur blanc) et le fond, même coloré, reste clair. On s'arrête
   donc à 72 %, non par nécessité mais parce qu'au-delà les surfaces cessent de
   se distinguer les unes des autres. */
.metric,.module-hero,.home-hero,.settings-hero{
  background:color-mix(in srgb,var(--surface) 72%,transparent);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  border-color:color-mix(in srgb,#fff 62%,transparent);
  box-shadow:0 10px 30px rgba(15,57,70,.10),
             inset 0 1px 0 color-mix(in srgb,#fff 75%,transparent)}

/* ── Les surfaces qui portent des chiffres ─────────────────── */
/* Elles aussi laissent passer le fond — la mesure l'autorise —, mais un peu
   moins : on y lit des montants, ligne après ligne, et le regard doit pouvoir
   suivre une colonne sans être distrait par ce qui bouge derrière. */
.card,.table-wrap{
  background:color-mix(in srgb,var(--surface) 78%,transparent);
  backdrop-filter:blur(20px) saturate(170%);
  -webkit-backdrop-filter:blur(20px) saturate(170%);
  border-color:color-mix(in srgb,#fff 58%,transparent)}
.table-wrap table,.table-wrap tbody tr,.table-wrap td{background:transparent}
.table-wrap thead tr,.table-wrap thead th{
  background:color-mix(in srgb,var(--surface2) 72%,transparent)}
.table-wrap tbody tr:hover td{background:color-mix(in srgb,var(--surface2) 62%,transparent)}

/* Les champs de saisie restent pleins. Ce n'est pas une question de contraste
   — la mesure passe — mais de confort : écrire dans une zone à travers
   laquelle défile un dégradé est désagréable, et le curseur s'y perd. */
.input,select.input,textarea.input{
  background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}

/* ── Le menu ───────────────────────────────────────────────── */
/* Il ne flotte au-dessus de rien — le flouter n'apporterait aucune
   profondeur. Un liseré de lumière sur son arête suffit à le décoller. */
/* Le menu est le plus grand aplat de l'écran : le laisser opaque revenait à
   garder un tiers de l'interface monochrome. Il devient translucide lui aussi
   — assez peu pour que ses intitulés gardent leurs 9,9:1, assez pour que la
   couleur du fond le traverse. */
.sidebar{
  background:linear-gradient(178deg,
    color-mix(in srgb,#102C3A 86%,transparent) 0%,
    color-mix(in srgb,#0E2430 88%,transparent) 52%,
    color-mix(in srgb,#0A1D27 90%,transparent) 100%);
  backdrop-filter:blur(28px) saturate(150%);
  -webkit-backdrop-filter:blur(28px) saturate(150%);
  box-shadow:10px 0 40px rgba(4,24,33,.16),
             inset -1px 0 0 rgba(255,255,255,.075)}
.logo{background:transparent!important}

/* ── Repli ─────────────────────────────────────────────────── */
/* Un navigateur sans flou reçoit des surfaces opaques plutôt qu'un voile
   translucide sur un fond coloré, qui serait illisible. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .topbar,.modal,.metric,.module-hero,.home-hero,.settings-hero{
    background:var(--surface)}
}

/* ── Le thème sombre demande plus de matière ───────────────── */
/* Mesuré après avoir renforcé le fond : les libellés des cartes tombaient à
   1,1:1. Un fond coloré vu à travers 18 % d'ouverture éclaircit la surface
   bien plus en sombre qu'en clair, et le texte clair s'y dissout. On resserre
   donc l'ouverture, et on assagit le dégradé : l'effet reste, la lecture
   revient. C'est tests/contraste.test.js qui a tranché, pas l'œil. */
html[data-theme="dark"] body{
  background:
    radial-gradient(ellipse 58rem 42rem at 10% -12%,
      color-mix(in srgb,var(--brand) 22%,transparent) 0,transparent 64%),
    radial-gradient(ellipse 46rem 36rem at 92% -4%,
      color-mix(in srgb,var(--green,#65C89B) 13%,transparent) 0,transparent 62%),
    radial-gradient(ellipse 52rem 40rem at 82% 102%,
      color-mix(in srgb,var(--purple,#B49BE0) 12%,transparent) 0,transparent 60%),
    linear-gradient(160deg,
      color-mix(in srgb,var(--brand) 5%,var(--bg)),
      var(--bg));
  background-attachment:fixed}

html[data-theme="dark"] .topbar{background:color-mix(in srgb,var(--surface) 80%,transparent)}
html[data-theme="dark"] .modal{background:color-mix(in srgb,var(--surface) 93%,transparent);
  border-color:color-mix(in srgb,#fff 13%,transparent)}
html[data-theme="dark"] .metric,
html[data-theme="dark"] .module-hero,
html[data-theme="dark"] .home-hero,
html[data-theme="dark"] .settings-hero{
  background:color-mix(in srgb,var(--surface) 93%,transparent);
  border-color:color-mix(in srgb,#fff 11%,transparent);
  box-shadow:0 10px 30px rgba(0,0,0,.34),
             inset 0 1px 0 color-mix(in srgb,#fff 9%,transparent)}
/* La pastille turquoise se lisait à 3,1:1 sur un fond devenu plus clair :
   elle prend un fond plein plutôt qu'un voile. */
html[data-theme="dark"] .b-turquoise{background:#15343A;color:#6FDBCB;
  border-color:color-mix(in srgb,#14B8A6 38%,transparent)}

/* ══════════════════════════════════════════════════════════════
   v2.0.40 — LIQUID GLASS / GLOW UP GLOBAL
   Verre multicouche, reflets directionnels et profondeur douce. Les champs
   et cellules gardent une matière stable pour préserver la lecture métier.
   ══════════════════════════════════════════════════════════════ */
:root{
  --glass-fill:color-mix(in srgb,var(--surface) 68%,transparent);
  --glass-strong:color-mix(in srgb,var(--surface) 82%,transparent);
  --glass-line:color-mix(in srgb,#fff 66%,transparent);
  --glass-shadow:0 18px 48px rgba(18,54,78,.11),0 3px 10px rgba(18,54,78,.055),inset 0 1px 0 rgba(255,255,255,.78);
  --glass-glow:0 22px 55px color-mix(in srgb,var(--brand) 13%,transparent),0 5px 16px rgba(18,54,78,.08),inset 0 1px 0 rgba(255,255,255,.9);
  --spring:cubic-bezier(.22,.9,.3,1);
  --radius:10px;--radius-lg:18px
}
html[data-theme="dark"]{
  --glass-fill:color-mix(in srgb,var(--surface) 84%,transparent);
  --glass-strong:color-mix(in srgb,var(--surface) 92%,transparent);
  --glass-line:color-mix(in srgb,#fff 13%,transparent);
  --glass-shadow:0 22px 55px rgba(0,0,0,.4),0 3px 12px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.09);
  --glass-glow:0 24px 62px color-mix(in srgb,var(--brand) 11%,transparent),0 8px 20px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.13)
}
body::before,body::after{content:'';position:fixed;z-index:-1;border-radius:50%;filter:blur(1px);pointer-events:none}
body::before{width:32vw;height:32vw;min-width:320px;min-height:320px;left:18%;top:-18%;background:radial-gradient(circle at 38% 35%,rgba(255,255,255,.42),color-mix(in srgb,var(--brand) 30%,transparent) 38%,transparent 72%)}
body::after{width:28vw;height:28vw;min-width:280px;min-height:280px;right:-8%;bottom:-14%;background:radial-gradient(circle at 40% 40%,color-mix(in srgb,var(--purple) 26%,transparent),color-mix(in srgb,var(--green) 15%,transparent) 48%,transparent 72%)}

.topbar{margin:10px 14px 0;border:1px solid var(--glass-line);border-radius:18px;background:var(--glass-fill);box-shadow:var(--glass-shadow);isolation:isolate;overflow:visible}
.topbar::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(112deg,rgba(255,255,255,.28),transparent 28%,transparent 70%,rgba(255,255,255,.1));pointer-events:none;z-index:-1}
.topbar .icon-btn,.topbar .btn,.topbar .input{border-color:color-mix(in srgb,var(--border) 55%,transparent);background:var(--glass-strong);box-shadow:inset 0 1px 0 var(--glass-line),0 4px 12px rgba(15,57,70,.055)}
.topbar .icon-btn:hover,.topbar .btn:hover{transform:translateY(-2px) scale(1.025);border-color:color-mix(in srgb,var(--brand) 34%,var(--glass-line));box-shadow:0 9px 20px color-mix(in srgb,var(--brand) 12%,transparent),inset 0 1px 0 rgba(255,255,255,.8)}

.sidebar{margin:10px 0 10px 10px;height:calc(100vh - 20px);border:1px solid rgba(255,255,255,.09);border-radius:22px;box-shadow:18px 0 48px rgba(3,22,31,.2),inset -1px 0 0 rgba(255,255,255,.07),inset 0 1px 0 rgba(255,255,255,.1);overflow:hidden}
.sidebar .nav{overflow-y:auto}.logo{margin:8px 6px 4px;border:0;border-radius:15px;background:linear-gradient(120deg,rgba(255,255,255,.075),rgba(255,255,255,.025))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}
.nav-item{overflow:hidden;isolation:isolate;transition:transform .24s var(--spring),background .24s,border-color .24s,box-shadow .24s}
.nav-item::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,rgba(255,255,255,.13),transparent 36%);opacity:0;transition:opacity .22s}
.nav-item:hover{transform:translateX(4px) scale(1.012)}.nav-item:hover::after,.nav-item.active::after{opacity:1}
.nav-item.active{box-shadow:0 10px 24px rgba(0,0,0,.17),inset 0 1px 0 rgba(255,255,255,.14)}
.user-card{border:1px solid rgba(255,255,255,.08);background:linear-gradient(120deg,rgba(255,255,255,.08),rgba(255,255,255,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}

.content{padding-top:28px}.module-hero,.home-hero,.settings-hero,.recovery-hero,.et-action-center-hero{position:relative;overflow:hidden;background:var(--glass-fill)!important;border:1px solid var(--glass-line)!important;box-shadow:var(--glass-shadow)!important;backdrop-filter:blur(32px) saturate(190%)!important;-webkit-backdrop-filter:blur(32px) saturate(190%)!important}
.module-hero::after,.home-hero::after,.settings-hero::after,.recovery-hero::after,.et-action-center-hero::after{content:'';position:absolute;width:280px;height:280px;right:-100px;top:-165px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.46),color-mix(in srgb,var(--brand) 16%,transparent) 43%,transparent 72%);pointer-events:none}

.card,.metric,.table-wrap,.et-action-panel,.settings-panel,.home-panel{border-color:var(--glass-line)!important;box-shadow:var(--glass-shadow);transition:transform .28s var(--spring),box-shadow .28s,border-color .28s;background:var(--glass-strong)}
.card:hover,.metric:hover,.home-panel:hover{transform:translateY(-4px);box-shadow:var(--glass-glow);border-color:color-mix(in srgb,var(--brand) 27%,var(--glass-line))!important}
.metric::before{content:'';position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);opacity:.75}
.table-wrap{overflow:auto}.table-wrap thead{position:sticky;top:0;z-index:2;backdrop-filter:blur(18px) saturate(150%)}
.table-wrap tbody tr{transition:transform .18s var(--spring),background .18s}.table-wrap tbody tr:hover{transform:translateX(2px)}

.btn,.icon-btn{border-radius:11px;transition:transform .2s var(--spring),box-shadow .2s,background .2s,border-color .2s}.btn:hover,.icon-btn:hover{transform:translateY(-2px)}.btn:active,.icon-btn:active{transform:scale(.97)}
.btn-primary{border-color:color-mix(in srgb,#fff 22%,var(--brand));background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 86%,#fff),var(--brand-dark));box-shadow:0 8px 18px color-mix(in srgb,var(--brand) 24%,transparent),inset 0 1px 0 rgba(255,255,255,.35)}
.input{min-height:40px;border-color:color-mix(in srgb,var(--border2) 72%,transparent);border-radius:11px;box-shadow:inset 0 1px 2px rgba(15,31,45,.035),0 1px 0 rgba(255,255,255,.65)}
.input:focus{transform:translateY(-1px);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 13%,transparent),0 8px 18px color-mix(in srgb,var(--brand) 8%,transparent)}

.overlay{background:color-mix(in srgb,#07121c 38%,transparent);backdrop-filter:blur(22px) saturate(125%);-webkit-backdrop-filter:blur(22px) saturate(125%)}
.modal{border-radius:24px;background:var(--glass-strong);border-color:var(--glass-line);box-shadow:0 40px 110px -24px rgba(4,21,34,.55),0 15px 35px rgba(4,21,34,.15),inset 0 1px 0 rgba(255,255,255,.75);overflow:hidden}
.modal-header{background:linear-gradient(115deg,color-mix(in srgb,var(--surface) 50%,transparent),transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}
.modal-footer{background:color-mix(in srgb,var(--surface2) 64%,transparent);backdrop-filter:blur(20px)}

.badge,.nav-notif-badge{box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 3px 8px rgba(20,45,65,.08)}
@media(max-width:768px){.sidebar{margin:0;height:100vh;border-radius:0}.topbar{margin:7px 8px 0;border-radius:15px}.content{padding-top:22px}.modal{border-radius:24px 24px 0 0}}
@media(prefers-reduced-motion:reduce){.nav-item,.card,.metric,.home-panel,.btn,.icon-btn,.input,.table-wrap tbody tr{transition:none!important}.card:hover,.metric:hover,.home-panel:hover,.btn:hover,.icon-btn:hover,.nav-item:hover,.table-wrap tbody tr:hover{transform:none!important}}

/* v2.0.41 — correctifs de composition après le glow up. Ces règles sont
   volontairement en fin de cascade : chaque module garde sa mise en page,
   quelle que soit la couche de verre appliquée au conteneur. */
#p-cl .crm-client-table table{min-width:1320px!important;table-layout:fixed}
#p-cl .crm-client-table th:nth-child(1),#p-cl .crm-client-table td:nth-child(1){width:260px}
#p-cl .crm-client-table th:nth-child(2),#p-cl .crm-client-table td:nth-child(2){width:130px}
#p-cl .crm-client-table th:nth-child(3),#p-cl .crm-client-table td:nth-child(3){width:140px}
#p-cl .crm-client-table th:nth-child(4),#p-cl .crm-client-table td:nth-child(4){width:250px}
#p-cl .crm-client-table th:nth-child(5),#p-cl .crm-client-table td:nth-child(5){width:150px}
#p-cl .crm-client-table th:nth-child(6),#p-cl .crm-client-table td:nth-child(6){width:135px}
#p-cl .crm-client-table th:nth-child(7),#p-cl .crm-client-table td:nth-child(7){width:135px}
#p-cl .crm-client-table th:last-child,#p-cl .crm-client-table td:last-child{width:190px}
#p-cl .crm-client-table td{padding:15px 16px!important;vertical-align:middle!important}
#p-cl .crm-client-identity,#p-cl .crm-contact-cell,#p-cl .crm-pipeline-cell{display:flex!important;min-width:0!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important}
#p-cl .crm-client-identity>strong,#p-cl .crm-contact-cell>strong,#p-cl .crm-pipeline-cell>strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#p-cl .crm-client-identity>span{display:flex!important;min-width:0;align-items:center!important;gap:7px!important}
.crm-company-badges{display:inline-flex;flex:none;align-items:center;gap:4px}.crm-client-location{display:block;min-width:0;overflow:hidden;color:var(--text2)!important;font-size:10px!important;text-overflow:ellipsis;white-space:nowrap}
#p-cl .crm-contact-cell small{display:block!important;max-width:100%;margin:0!important;overflow:hidden;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
#p-cl .crm-cell-sub{display:block!important;margin-top:3px!important;line-height:1.35!important}
.crm-sites-shortcut{min-width:66px!important}.crm-sites-shortcut span{font-size:9px;font-weight:750}

#p-chantier .field-mobile-shell{display:flex!important;width:min(100%,820px)!important;margin:0 auto!important;padding:0 0 90px!important;flex-direction:column!important;gap:0!important}
#p-chantier .field-mobile-hero{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:16px!important;padding:24px!important;border-radius:22px!important;background:linear-gradient(135deg,#0b3440,#0c7891)!important;color:#fff!important;box-shadow:0 18px 45px rgba(8,76,91,.23)!important}
#p-chantier .field-mobile-hero span,#p-chantier .field-mobile-hero h2,#p-chantier .field-mobile-hero p{display:block!important;color:#fff!important}
#p-chantier .field-mobile-hero h2{margin:6px 0 3px!important;font-size:28px!important;line-height:1.15!important}
#p-chantier .field-mobile-hero p{margin:0!important;font-size:13px!important;opacity:.82}
#p-chantier .field-mobile-hero>i{display:block!important;padding:7px 11px!important;border-radius:999px!important;background:rgba(255,255,255,.15)!important;color:#fff!important;font-size:10px!important;font-style:normal!important;white-space:nowrap}
#p-chantier .field-mobile-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:13px 0!important}
#p-chantier .field-mobile-stats button{display:flex!important;min-height:78px!important;align-items:flex-start!important;justify-content:center!important;flex-direction:column!important;padding:15px!important;border:1px solid var(--glass-line)!important;border-radius:17px!important;background:var(--glass-strong)!important;color:var(--text)!important;box-shadow:var(--glass-shadow)!important}
#p-chantier .field-mobile-stats strong{display:block!important;font-size:26px!important;line-height:1!important}#p-chantier .field-mobile-stats span{display:block!important;margin-top:7px!important;font-size:11px!important}
#p-chantier .field-mobile-tabs{display:flex!important;gap:5px!important;margin:2px 0 14px!important;padding:5px!important;border:1px solid var(--glass-line)!important;border-radius:14px!important;background:var(--glass-strong)!important}
#p-chantier .field-mobile-tabs button{display:block!important;flex:1!important;padding:10px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:var(--text2)!important}.field-mobile-tabs button.is-active{background:var(--brand)!important;color:#fff!important}
#p-chantier .field-mobile-list{display:grid!important;gap:13px!important}#p-chantier .field-mobile-empty{display:flex!important;min-height:180px;align-items:center;justify-content:center;flex-direction:column;padding:40px!important;border:1px dashed var(--border2)!important;border-radius:20px!important;background:var(--glass-strong)!important}

#p-actions .capacity-planning-wrap{display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;border-radius:16px!important}
#p-actions .capacity-planning{width:max-content!important;min-width:100%!important;border-collapse:separate!important;border-spacing:0!important;table-layout:fixed!important}
#p-actions .capacity-planning th,#p-actions .capacity-planning td{min-width:190px!important;padding:13px 12px!important;vertical-align:middle!important;text-align:center!important}
#p-actions .capacity-planning th:first-child{width:260px!important;min-width:260px!important;text-align:left!important}
#p-actions .capacity-planning thead strong,#p-actions .capacity-planning thead small{display:block!important;white-space:nowrap!important}
#p-actions .capacity-planning thead strong{margin-bottom:4px;font-size:10px!important}#p-actions .capacity-planning thead small{font-size:9px!important}
#p-actions .capacity-person{display:grid!important;grid-template-columns:38px minmax(0,1fr)!important;align-items:center!important;gap:10px!important}
#p-actions .capacity-person>i{display:grid!important;width:38px!important;height:38px!important;place-items:center!important}
#p-actions .capacity-person>span{display:flex!important;min-width:0!important;flex-direction:column!important;gap:3px!important}
#p-actions .capacity-person strong,#p-actions .capacity-person small{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
#p-actions .capacity-cell{display:flex!important;width:100%!important;min-width:0!important;align-items:stretch!important;flex-direction:column!important;gap:5px!important;padding:10px!important}#p-actions .capacity-cell strong,#p-actions .capacity-cell small{display:block!important}
#p-actions .capacity-legend{display:flex!important;align-items:center!important;gap:16px!important;flex-wrap:wrap!important;margin-top:12px!important}#p-actions .capacity-legend span{display:flex!important;align-items:center!important;gap:6px!important;white-space:nowrap!important}
@media(max-width:700px){#p-cl .crm-client-table table{min-width:1220px!important}.crm-sites-shortcut span{display:none}.crm-sites-shortcut{min-width:38px!important}#p-chantier .field-mobile-hero{padding:20px!important}#p-actions .capacity-planning th,#p-actions .capacity-planning td{min-width:165px!important}}

/* v2.0.48 — rentabilité réelle des affaires et Gantt de capacité. */
.profit-cockpit{margin:16px 0;padding:18px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 96%,var(--brand-light)),var(--surface));box-shadow:var(--shadow-sm)}
.profit-progress{display:flex;align-items:center;gap:10px;margin:12px 0}.profit-progress>span{height:8px;flex:1;overflow:hidden;border-radius:99px;background:var(--surface3)}.profit-progress b{display:block;height:100%;border-radius:inherit;background:var(--green)}.profit-cockpit.is-warning .profit-progress b{background:var(--amber)}.profit-cockpit.is-danger .profit-progress b{background:var(--red)}.profit-progress small{color:var(--text2);font-size:10px}.profit-warning{margin-top:10px;padding:9px 11px;border-radius:10px;background:var(--amber-bg);color:var(--amber);font-size:11px;font-weight:650}
.gantt-panel{overflow:hidden}.gantt-wrap{min-width:1020px;border:1px solid var(--border);border-radius:15px;overflow:hidden}.gantt-panel>.gantt-wrap{width:max-content;min-width:100%}.gantt-header,.gantt-row{display:grid;grid-template-columns:260px minmax(760px,1fr);min-height:56px;border-bottom:1px solid var(--border)}.gantt-row:last-child{border-bottom:0}.gantt-header{min-height:48px;background:var(--surface2)}.gantt-header>span,.gantt-label{display:flex;justify-content:center;flex-direction:column;padding:9px 12px;border-right:1px solid var(--border)}.gantt-header>span{color:var(--text2);font-size:10px;font-weight:800}.gantt-header>div{display:grid;grid-template-columns:repeat(var(--gantt-columns),minmax(95px,1fr))}.gantt-header>div span{display:flex;align-items:center;justify-content:center;flex-direction:column;border-right:1px solid var(--border);font-size:9px}.gantt-header>div span:last-child{border-right:0}.gantt-header small{color:var(--text3);font-size:8px}.gantt-label strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.gantt-label small{overflow:hidden;margin-top:3px;color:var(--text3);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.gantt-track{position:relative;display:grid;align-items:center;grid-template-columns:repeat(var(--gantt-columns),minmax(95px,1fr));padding:9px 0}.gantt-grid{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 1px),var(--border) calc(12.5% - 1px),var(--border) 12.5%);pointer-events:none}.gantt-bar{position:relative;z-index:1;height:30px;margin:0 5px;border:0;border-radius:9px;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 70%,#66d9ff));color:#fff;box-shadow:0 5px 12px color-mix(in srgb,var(--brand) 22%,transparent);cursor:pointer}.gantt-bar.is-os{background:linear-gradient(90deg,#7c3aed,#a855f7)}.gantt-bar span{font-size:9px;font-weight:850;letter-spacing:.08em}.gantt-legend{display:flex;align-items:center;gap:14px;margin-top:10px;color:var(--text3);font-size:10px}.gantt-legend span{display:flex;align-items:center;gap:5px}.gantt-legend i{width:9px;height:9px;border-radius:3px;background:var(--brand)}.gantt-legend i.is-os{background:#8b5cf6}.gantt-legend small{margin-left:auto}.gantt-panel{overflow-x:auto}
@media(max-width:560px){.gantt-header,.gantt-row{grid-template-columns:210px minmax(760px,1fr)}}

/* v2.0.49 — cockpit de rentabilité autonome et lisible dans la fiche 360°. */
.profit-dashboard{display:block!important;margin:22px 0!important;padding:22px!important;overflow:hidden;border:1px solid color-mix(in srgb,var(--brand) 24%,var(--border))!important;border-radius:22px!important;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 94%,var(--brand-light)),var(--surface))!important;box-shadow:0 16px 38px rgba(20,61,75,.09)!important}
@media(max-width:560px){.profit-dashboard{padding:16px!important}}

/* ══════════════════════════════════════════════════════════════
   TRANSITIONS ENTRE ÉCRANS
   ══════════════════════════════════════════════════════════════
   L'écran entrant apparaît en montant de quelques pixels. Court — 190 ms :
   au-delà, une transition cesse d'être une liaison et devient une attente, et
   l'on change d'écran des dizaines de fois par jour.

   Seul l'écran entrant est animé. La barre du haut et le menu ne bougent pas :
   ils encadrent l'écran, ils ne font pas partie de ce qui change. */
.page.entre{animation:ecran-entree 190ms cubic-bezier(.32,.72,0,1)}

@keyframes ecran-entree{
  from{opacity:0;transform:translateY(9px)}
  to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  .page.entre{animation:none}
}

/* ══════════════════════════════════════════════════════════════
   MODALES EN FEUILLE SUR TÉLÉPHONE
   ══════════════════════════════════════════════════════════════
   Une boîte centrée avec des marges de chaque côté est une convention de
   bureau. Sur un téléphone tenu à une main, la même fenêtre gaspille la
   largeur et place ses boutons hors de portée du pouce. Elle monte donc
   depuis le bas, occupe toute la largeur, et garde ses actions en bas — là
   où la main se trouve déjà. */
@media(max-width:768px){
  .overlay{align-items:flex-end;padding:0}
  .modal{
    max-width:none;width:100%;
    max-height:92vh;
    border-radius:22px 22px 0 0;
    border-bottom:0;
    animation:feuille-montee .26s cubic-bezier(.32,.72,0,1)}
  /* Le pied reste accessible même quand le clavier virtuel remonte la page. */
  .modal-footer,#modal-footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))}

  /* Une fiche compte parfois cinq boutons. Empilés sur toute la largeur, ils
     occupaient la moitié de l'écran et repoussaient le contenu hors de vue.
     L'action principale garde la pleine largeur — c'est celle qu'on cherche —
     et les autres se partagent deux colonnes. */
  #modal-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  #modal-footer>.btn{width:100%;margin:0}
  #modal-footer>.btn-primary{grid-column:1 / -1;order:-1}
  /* Un pied à bouton unique n'a pas besoin d'être coupé en deux. */
  #modal-footer:has(>.btn:only-child){grid-template-columns:1fr}
}

@keyframes feuille-montee{
  from{transform:translateY(100%)}
  to{transform:none}}

@media(prefers-reduced-motion:reduce){
  .modal{animation:none}
}

/* ══════════════════════════════════════════════════════════════
   ICÔNES
   ══════════════════════════════════════════════════════════════
   Cent vingt-quatre pictogrammes écrits en caractères — ✕, 👁, 🗑 — se
   mêlaient aux icônes dessinées. Ils changeaient de dessin d'une machine à
   l'autre, et l'émoji poubelle arrivait en couleur au milieu d'un logiciel de
   gestion. Un seul jeu, un seul trait, aligné sur le texte qui le porte. */
.ico{display:inline-block;vertical-align:-.18em;flex-shrink:0}
.btn .ico{margin-right:6px}
.btn-icone .ico,.btn-icone.btn .ico{margin-right:0}
.btn-icone{display:inline-flex;align-items:center;justify-content:center;
  min-width:32px;padding-inline:8px}

/* Pied des listes longues. Il doit annoncer le total avant tout : un tableau
   qui affiche cent lignes sans dire sur combien se lit comme un tableau
   complet, et c'est ainsi qu'on tire des conclusions sur un dixième des
   données. */
.liste-suite td{background:var(--surface2)!important;border-top:2px solid var(--border2)}
.liste-suite-corps{display:flex;align-items:center;justify-content:space-between;
  gap:14px;flex-wrap:wrap;padding:6px 2px}
.liste-suite-compte{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--text2)}
/* La ligne du compte est une phrase : sans ce bloc, chaque nombre devenait un
   élément de la colonne et « 100 sur 3000 » s'écrivait sur quatre lignes. */
.liste-suite-compte>b{font-weight:400}
.liste-suite-compte strong{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}
.liste-suite-compte small{font-size:11.5px;color:var(--text3)}
.liste-suite-boutons{display:flex;gap:8px;flex-wrap:wrap}

/* Squelette de démarrage : l'écran restait vide pendant le chargement des
   données, ce qui se lit comme une panne plutôt que comme une attente. */
.boot-attente{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;padding:70px 20px;text-align:center;color:var(--text2)}
.boot-attente p{margin:0;font-size:14px;font-weight:600;color:var(--text)}
.boot-attente small{color:var(--text3);font-size:12px}
.boot-rond{width:26px;height:26px;border-radius:50%;border:2.5px solid var(--border);
  border-top-color:var(--brand);animation:boot-tourne .8s linear infinite}
@keyframes boot-tourne{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .boot-rond{animation-duration:2.4s}
}

/* Jauge d'occupation du stockage local. Une barre plutôt qu'un chiffre : on
   veut voir d'un coup d'œil s'il reste de la marge, pas faire une division. */
.stock-etat{display:flex;flex-direction:column;gap:14px}
.stock-jauge-piste{height:12px;border-radius:6px;background:var(--surface2);
  border:1px solid var(--border);overflow:hidden}
.stock-jauge-piste>i{display:block;height:100%;background:var(--brand);
  transition:width .3s ease}
.stock-jauge.est-sature .stock-jauge-piste>i{background:var(--red)}
.stock-jauge-legende{display:flex;align-items:baseline;justify-content:space-between;
  gap:10px;margin-top:6px;font-size:13px;color:var(--text2)}
.stock-jauge-legende strong{color:var(--text);font-variant-numeric:tabular-nums}
.stock-jauge-legende span{font-size:15px;font-weight:700;color:var(--text);
  font-variant-numeric:tabular-nums}
.stock-jauge.est-sature .stock-jauge-legende span{color:var(--red)}

/* Récupération d'accès. Un code se recopie à la main depuis une feuille de
   papier : la police à chasse fixe et l'espacement des lettres ne sont pas
   décoratifs, ils évitent de confondre deux caractères. */
.lien-secours{background:none;border:0;padding:4px;font-size:12.5px;color:var(--text2);
  cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.lien-secours:hover{color:var(--brand)}
.secours{display:flex;flex-direction:column;gap:2px}
.secours-intro{margin:0 0 14px;font-size:13px;line-height:1.55;color:var(--text2)}
.secours-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:16px;letter-spacing:1.5px;text-transform:uppercase}
.secours-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;
  margin-top:10px}
.secours-liste code{display:block;padding:9px 10px;border:1px solid var(--border);
  border-radius:8px;background:var(--surface2);text-align:center;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;letter-spacing:1px}
.secours-repli{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:12.5px}
.secours-repli summary{cursor:pointer;color:var(--text2);font-weight:600}
.secours-repli p{color:var(--text3);line-height:1.55}
.secours-repli pre{padding:9px 11px;border-radius:8px;background:var(--surface2);
  border:1px solid var(--border);overflow-x:auto;font-size:12px}

@media print{
  #print-area .pf-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8pt;margin-bottom:8pt}
  #print-area .pf-codes span{padding:7pt 9pt;border:.75pt solid #666;border-radius:3pt;
    font-family:monospace;font-size:12pt;letter-spacing:1pt;text-align:center}
}

/* Aperçu : porte de sortie et diagnostic. Un cadre vide sans explication est
   la pire des réponses — l'utilisateur ne sait ni pourquoi, ni quoi faire. */
.doc-apercu-secours{display:flex;align-items:center;justify-content:flex-end;gap:8px;
  font-size:12px;color:var(--text3)}
.doc-apercu-secours button{background:none;border:0;padding:2px 4px;font-size:12px;
  color:var(--brand);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.doc-apercu-vide .btn{margin-top:6px}
.doc-apercu-diag{margin-top:14px;padding-top:10px;border-top:1px solid var(--border);
  font-size:11px;color:var(--text3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* Pages dessinées par l'application quand le navigateur refuse le cadre. */
.doc-pages{display:flex;flex-direction:column;align-items:center;gap:12px;
  padding:12px;width:100%}
.doc-page{display:block;max-width:100%;background:#fff;border:1px solid var(--border);
  border-radius:4px;box-shadow:0 2px 10px rgba(0,0,0,.10)}
.doc-pages-pied{margin:2px 0 4px;font-size:11.5px;color:var(--text3)}
.doc-apercu-scene:has(.doc-pages){align-items:flex-start;justify-content:flex-start}

/* Bandeau « lecture seule ».
   Il vivait dans un style en ligne, posé en tête de `.app` — une rangée flex.
   Il y devenait une colonne à côté du menu, et sa phrase réclamait sur un
   téléphone toute la largeur de l'écran : l'application disparaissait derrière
   un bandeau jaune. Il appartient à la colonne principale, pas à la rangée. */
#ro-banner{flex-shrink:0;padding:6px 14px;background:var(--amber-bg);
  border-bottom:1px solid var(--amber-border);color:var(--amber);
  font-size:12px;font-weight:650;text-align:center;letter-spacing:.1px;
  line-height:1.4}
@media(max-width:640px){
  #ro-banner{font-size:11px;padding:5px 10px}
}

/* Synthèse des évaluations. Les filtres sont en tête et restent visibles : ce
   sont eux qui donnent leur sens aux chiffres qui suivent. */
.syn{display:flex;flex-direction:column;gap:14px}
.syn-filtres{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;
  padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.syn-filtres label{display:flex;flex-direction:column;gap:4px}
.syn-filtres label>span{font-size:10.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.5px;color:var(--text3)}
.syn-filtres .input{min-width:150px}
.syn-raccourcis{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.syn-raccourcis button{padding:7px 11px;border:1px solid var(--border);border-radius:8px;
  background:var(--surface);color:var(--text2);font-size:12px;cursor:pointer}
.syn-raccourcis button:hover{border-color:var(--brand);color:var(--brand)}

.syn-affaires{display:flex;flex-direction:column;gap:14px}
.syn-affaire{border:1px solid var(--border);border-radius:12px;overflow:hidden;
  background:var(--surface)}
.syn-affaire>header{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 14px;background:var(--surface2);border-bottom:1px solid var(--border)}
.syn-affaire>header strong{display:block;font-size:14px}
.syn-affaire>header small{display:block;margin-top:2px;font-size:11.5px;color:var(--text3)}
.syn-ref{display:inline-block;margin-bottom:2px;padding:1px 7px;border-radius:6px;
  background:var(--brand-light);color:var(--brand);font-size:10.5px;font-weight:700}
.syn-affaire .table-wrap{border:0;border-radius:0}

.syn-note{display:inline-flex;align-items:baseline;gap:2px;white-space:nowrap;
  font-variant-numeric:tabular-nums}
.syn-note>b{font-size:15px}
.syn-note>span{font-size:11.5px;color:var(--text3)}
.syn-note.est-bonne>b{color:var(--green)}
.syn-note.est-moyenne>b{color:var(--amber)}
.syn-note.est-faible>b{color:var(--red)}
.syn-vide{padding:26px;text-align:center;color:var(--text3);font-size:13.5px;line-height:1.6}

@media(max-width:640px){
  .syn-filtres{flex-direction:column;align-items:stretch}
  .syn-raccourcis{margin-left:0}
  .syn-affaire>header{flex-direction:column;align-items:flex-start;gap:6px}
}

/* Planning de production 2.0 */
.capacity-cell em{display:block;margin-top:3px;color:#c06d18;font-size:8px;font-style:normal;font-weight:750}.capacity-reallocation>section,.availability-manager>section,.chantier-model-center>section{margin-bottom:18px;padding:20px;border:1px solid color-mix(in srgb,var(--brand) 24%,var(--border));border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 8%,var(--surface)),var(--surface))}.capacity-reallocation>section span,.availability-manager>section span,.chantier-model-center>section span{color:var(--brand);font-size:10px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.capacity-reallocation>section h2,.availability-manager>section h2,.chantier-model-center>section h2{margin:5px 0;font-size:22px}.capacity-reallocation-row,.availability-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.capacity-reallocation-row span,.availability-row span{display:flex;min-width:0;flex-direction:column}.capacity-reallocation-row small,.availability-row small{margin-top:3px;color:var(--text3)}.capacity-reallocation-row select{max-width:280px}.availability-list{margin-top:18px}.planning-milestone-toggle{display:flex;align-items:center;min-height:44px;gap:9px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.gantt-label{position:relative}.gantt-label-tools{position:absolute;right:7px;bottom:5px;display:flex;gap:3px}.gantt-label-tools button{width:22px;height:20px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text2);cursor:pointer}.gantt-bar[draggable=true]{cursor:grab}.gantt-bar[draggable=true]:active{cursor:grabbing}.gantt-bar.is-critical{outline:2px solid #f59e0b;outline-offset:2px}.gantt-bar.is-milestone{min-width:32px;border-radius:6px;background:linear-gradient(135deg,#f59e0b,#ef4444)}.gantt-bar.has-dependency:before{position:absolute;left:-8px;top:50%;width:8px;border-top:2px dashed #f59e0b;content:''}.gantt-legend i.is-critical{background:#f59e0b}.chantier-model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.chantier-model-grid button{display:flex;min-height:130px;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--brand) 8%,var(--surface)));color:var(--text);text-align:left;cursor:pointer}.chantier-model-grid button:hover{border-color:var(--brand);transform:translateY(-2px)}.chantier-model-grid span{color:var(--brand);font-size:9px;font-weight:850;text-transform:uppercase}.chantier-model-grid strong{margin:6px 0;font-size:15px}.chantier-model-grid small{color:var(--text3)}
@media(max-width:760px){.chantier-model-grid{grid-template-columns:1fr}.capacity-reallocation-row,.availability-row{align-items:stretch;flex-direction:column}.capacity-reallocation-row select{max-width:none}}

/* Cockpit CRM et commercial */
.crm-toolbar-actions{display:flex;gap:8px}.crm-score-mini{display:block;margin-top:6px;color:var(--text3);font-size:8px;font-weight:750}.modal-crm-cockpit{max-width:1180px}.crm-cockpit{display:flex;flex-direction:column;gap:14px}.crm-cockpit-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border));border-radius:18px;background:radial-gradient(circle at 88% 20%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),var(--brand-light))}.crm-cockpit-hero span{color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.crm-cockpit-hero h2{margin:6px 0;font-size:24px}.crm-cockpit-hero p{margin:0;color:var(--text2);font-size:11px}.crm-cockpit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.crm-cockpit-kpis>div{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.crm-cockpit-kpis>div.is-alert{border-color:var(--red-border);background:var(--red-bg)}.crm-cockpit-kpis span{display:block;color:var(--text3);font-size:8px;font-weight:800;text-transform:uppercase}.crm-cockpit-kpis strong{display:block;margin:7px 0 3px;font-size:18px}.crm-cockpit-kpis small{color:var(--text3);font-size:8.5px}.crm-cockpit-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.crm-cockpit-grid>section,.crm-cockpit-section{padding:17px;border:1px solid var(--border);border-radius:15px;background:var(--surface)}.crm-cockpit section>header{margin-bottom:13px}.crm-cockpit section>header span{font-size:12px;font-weight:850}.crm-cockpit section>header small{display:block;margin-top:3px;color:var(--text3);font-size:9px}.crm-funnel{display:flex;flex-direction:column;gap:6px}.crm-funnel-stage{position:relative;display:grid;grid-template-columns:minmax(120px,1fr) 45px minmax(170px,1fr);align-items:center;gap:10px;overflow:hidden;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);cursor:pointer;text-align:left}.crm-funnel-stage i{position:absolute;bottom:0;left:0;width:var(--stage-width);height:3px;border-radius:99px;background:linear-gradient(90deg,var(--brand),#56c4dc)}.crm-funnel-stage span{font-size:9px;font-weight:750}.crm-funnel-stage strong{font-size:15px}.crm-funnel-stage small{color:var(--text3);font-size:8.5px;text-align:right}.crm-cockpit-followups,.crm-hot-deals,.crm-owner-grid{display:flex;flex-direction:column;gap:7px}.crm-cockpit-followup{display:flex;align-items:stretch;gap:5px}.crm-cockpit-followup>button:first-child,.crm-hot-deal{display:flex;min-width:0;flex:1;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);cursor:pointer;text-align:left}.crm-cockpit-followup>button:first-child span,.crm-hot-deal>span{display:flex;min-width:0;flex-direction:column}.crm-cockpit-followup strong,.crm-hot-deal strong{font-size:10px}.crm-cockpit-followup small,.crm-hot-deal small{margin-top:3px;color:var(--text3);font-size:8px}.crm-cockpit-followup b{color:var(--red);font-size:9px}.crm-cockpit-followup>button:last-child{border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--brand);font-size:9px;font-weight:800;cursor:pointer}.crm-hot-deal aside{text-align:right}.crm-hot-deal aside strong{display:block;color:var(--brand);font-size:12px}.crm-owner-grid{display:grid;grid-template-columns:1fr 1fr}.crm-owner-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.crm-owner-avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:var(--brand-light);color:var(--brand);font-size:10px;font-weight:850}.crm-owner-card>div,.crm-owner-card aside{display:flex;flex-direction:column}.crm-owner-card>div strong,.crm-owner-card aside strong{font-size:10px}.crm-owner-card small{margin-top:3px;color:var(--text3);font-size:8px}.crm-owner-card aside{text-align:right}.crm-health-score{display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:5px!important;margin-top:8px!important}.crm-health-score i{grid-column:1/2;width:100%;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--brand) var(--score),var(--border) var(--score))}.crm-health-score b{font-size:9px}.crm-health-score small{grid-column:1/3}.client360-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){.crm-cockpit-kpis{grid-template-columns:1fr 1fr}.crm-cockpit-grid{grid-template-columns:1fr}.crm-owner-grid{grid-template-columns:1fr}.client360-kpis{grid-template-columns:1fr 1fr}}@media(max-width:560px){.crm-toolbar-actions,.crm-cockpit-hero{align-items:stretch;flex-direction:column}.crm-cockpit-kpis,.client360-kpis{grid-template-columns:1fr}.crm-funnel-stage{grid-template-columns:1fr auto}.crm-funnel-stage small{grid-column:1/3;text-align:left}}

/* Priorité 6 — expérience utilisateur et espace personnel */
.ux-hub-button{color:var(--brand)!important}.ux-hub-button svg{width:18px;height:18px}
.ux-favorite-toggle.is-active{border-color:color-mix(in srgb,var(--amber) 55%,var(--border));background:var(--amber-bg);color:var(--amber)}
.modal-ux-hub,.modal-ux-help{max-width:1040px}.ux-hub,.ux-help{display:flex;flex-direction:column;gap:16px}
.ux-hub>section:not(.ux-hub-hero),.ux-help-tips{padding:17px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.ux-hub>section>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ux-hub>section>header strong{display:block;font-size:14px}.ux-hub>section>header small{display:block;margin-top:3px;color:var(--text3);font-size:10px}
.ux-hub-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:18px;background:radial-gradient(circle at 88% 15%,color-mix(in srgb,var(--brand) 24%,transparent),transparent 12rem),linear-gradient(135deg,var(--surface),var(--brand-light))}
.ux-hub-hero span,.ux-help-intro span{color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.14em}.ux-hub-hero h2,.ux-help-intro h2{margin:5px 0;font-size:24px}.ux-hub-hero p,.ux-help-intro p{margin:0;color:var(--text2);font-size:11px}
.ux-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.ux-module-card{position:relative;min-width:0}.ux-module-card>button:first-child{display:flex;width:100%;min-height:105px;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:14px 42px 14px 14px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,var(--surface2),color-mix(in srgb,var(--brand) 7%,var(--surface)));color:var(--text);cursor:pointer;text-align:left}.ux-module-card>button:first-child:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.ux-module-card span{color:var(--brand);font-size:8px;font-weight:850;text-transform:uppercase}.ux-module-card strong{overflow:hidden;width:100%;margin:5px 0;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.ux-module-card small{color:var(--text3);font-size:9px}.ux-star{position:absolute;top:9px;right:9px;display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--amber);cursor:pointer;font-size:17px}.ux-empty{grid-column:1/-1;padding:22px;border:1px dashed var(--border);border-radius:13px;color:var(--text3);font-size:11px;text-align:center}
.ux-recent-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ux-recent-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--text);cursor:pointer;text-align:left}.ux-recent-list button:hover{border-color:var(--brand)}.ux-recent-list span{font-size:8px;font-weight:800;color:var(--brand);text-transform:uppercase}.ux-recent-list strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.ux-recent-list i{grid-column:2;grid-row:1/3;align-self:center;color:var(--brand);font-size:20px;font-style:normal}
.ux-preference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.ux-preference{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);cursor:pointer}.ux-preference span{display:flex;min-width:0;flex-direction:column}.ux-preference strong{font-size:10px}.ux-preference small{margin-top:3px;color:var(--text3);font-size:8px;line-height:1.35}.ux-preference input{position:absolute;opacity:0;pointer-events:none}.ux-preference i{position:relative;width:38px;height:22px;flex:0 0 38px;border-radius:99px;background:var(--border);transition:.2s}.ux-preference i:after{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);content:'';transition:.2s}.ux-preference input:checked+i{background:var(--brand)}.ux-preference input:checked+i:after{transform:translateX(16px)}.ux-preference:focus-within{outline:3px solid color-mix(in srgb,var(--brand) 25%,transparent)}
.ux-help-intro{padding:20px;border-radius:16px;background:linear-gradient(135deg,var(--surface),var(--brand-light));border:1px solid color-mix(in srgb,var(--brand) 25%,var(--border))}.ux-help-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ux-help-grid article{display:grid;grid-template-columns:64px 1fr;gap:4px 12px;padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.ux-help-grid b{grid-row:1/3;display:grid;min-height:48px;place-items:center;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--brand);font-size:15px}.ux-help-grid strong{font-size:12px}.ux-help-grid small{color:var(--text3);font-size:9px}.ux-help-tips strong{font-size:12px}.ux-help-tips ol{margin:10px 0 0;padding-left:20px;color:var(--text2);font-size:11px;line-height:1.8}
body.ux-large-text .page,body.ux-large-text .modal{font-size:112%}body.ux-large-text .nav-item{font-size:14px}body.ux-large-text .input{font-size:13px}
body.ux-high-contrast{--border:color-mix(in srgb,var(--text) 36%,transparent);--text3:color-mix(in srgb,var(--text) 72%,transparent)}body.ux-high-contrast button:focus-visible,body.ux-high-contrast input:focus-visible,body.ux-high-contrast select:focus-visible{outline:3px solid var(--brand)!important;outline-offset:2px}
body.ux-reduce-motion *,body.ux-reduce-motion *:before,body.ux-reduce-motion *:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
@media(max-width:820px){.ux-module-grid{grid-template-columns:1fr 1fr}.ux-preference-grid{grid-template-columns:1fr}.ux-hub-hero{align-items:stretch;flex-direction:column}.ux-recent-list{grid-template-columns:1fr}}
@media(max-width:520px){.ux-module-grid,.ux-help-grid{grid-template-columns:1fr}.ux-favorite-toggle{font-size:0}.ux-favorite-toggle:after{font-size:16px;content:'☆'}.ux-favorite-toggle.is-active:after{content:'★'}}

/* Priorité 7 — cockpit sécurité et exploitation */
.modal-security-ops{max-width:1100px}.security-ops{display:flex;flex-direction:column;gap:14px}.security-ops-loading{padding:42px;color:var(--text3);text-align:center}
.security-ops-hero{display:flex;align-items:center;justify-content:space-between;padding:22px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--brand-light))}.security-ops-hero.ok{border-color:var(--green-border)}.security-ops-hero.warn{border-color:var(--amber-border)}.security-ops-hero.alert{border-color:var(--red-border)}.security-ops-hero span{color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.14em}.security-ops-hero h2{margin:5px 0;font-size:30px}.security-ops-hero p{margin:0;color:var(--text2);font-size:11px}.security-score-ring{display:grid;width:78px;height:78px;place-items:center;border-radius:50%;background:conic-gradient(var(--brand) var(--score),var(--border) 0);box-shadow:inset 0 0 0 9px var(--surface)}.security-score-ring b{font-size:15px}
.security-ops-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.security-ops-kpis article{padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.security-ops-kpis span{display:block;color:var(--text3);font-size:8px;font-weight:800;text-transform:uppercase}.security-ops-kpis strong{display:block;margin:7px 0 3px;font-size:17px}.security-ops-kpis small{display:block;overflow:hidden;color:var(--text3);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.security-ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.security-ops-grid>section{padding:16px;border:1px solid var(--border);border-radius:15px;background:var(--surface)}.security-ops-grid header{margin-bottom:11px}.security-ops-grid header strong{display:block;font-size:12px}.security-ops-grid header small{color:var(--text3);font-size:8.5px}.security-check-list,.security-session-list{display:flex;flex-direction:column;gap:6px}.security-check-list>div,.security-session-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.security-check-list i{display:grid;width:26px;height:26px;flex:0 0 26px;place-items:center;border-radius:8px;font-style:normal;font-weight:850}.security-check-list .is-ok i{background:var(--green-bg);color:var(--green)}.security-check-list .is-alert i{background:var(--red-bg);color:var(--red)}.security-check-list span,.security-session-list span{display:flex;min-width:0;flex:1;flex-direction:column}.security-check-list strong,.security-session-list strong{font-size:9.5px}.security-check-list small,.security-session-list small{margin-top:2px;color:var(--text3);font-size:8px}.security-session-list time{color:var(--text3);font-size:8px}.security-ops-actions{display:flex;align-items:center;gap:8px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.security-ops-actions>div{display:flex;min-width:0;flex:1;flex-direction:column}.security-ops-actions strong{font-size:11px}.security-ops-actions small{margin-top:3px;color:var(--text3);font-size:8px}
@media(max-width:800px){.security-ops-kpis,.security-ops-grid{grid-template-columns:1fr 1fr}.security-ops-grid{grid-template-columns:1fr}.security-ops-actions{align-items:stretch;flex-direction:column}.security-ops-actions .btn{width:100%}}@media(max-width:520px){.security-ops-kpis{grid-template-columns:1fr 1fr}.security-ops-hero{align-items:flex-start;flex-direction:column;gap:15px}}

/* Priorité 18 — administration et exploitation avancées */
.modal-advanced-operations{width:min(1280px,96vw);max-width:1280px}.operations-loading{display:flex;min-height:240px;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:var(--text3)}.operations-loading strong{color:var(--text);font-size:14px}.operations-loading span{font-size:9px}.operations-center{display:flex;flex-direction:column;gap:13px}.operations-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid var(--green-border);border-radius:19px;background:radial-gradient(circle at 90% 10%,color-mix(in srgb,var(--green) 15%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),var(--green-bg));box-shadow:var(--shadow-sm)}.operations-hero.warn{border-color:var(--amber-border);background:linear-gradient(135deg,var(--surface),var(--amber-bg))}.operations-hero.alert{border-color:var(--red-border);background:linear-gradient(135deg,var(--surface),var(--red-bg))}.operations-hero span{color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.14em}.operations-hero h2{margin:5px 0;font-size:25px}.operations-hero p{max-width:720px;margin:0;color:var(--text2);font-size:10px;line-height:1.5}.operations-health{display:grid;grid-template-columns:13px auto;align-items:center;gap:1px 8px;min-width:145px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,transparent)}.operations-health i{grid-row:1/3;width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px var(--green-bg)}.operations-hero.alert .operations-health i{background:var(--red);box-shadow:0 0 0 5px var(--red-bg)}.operations-health strong{font-size:11px}.operations-health small{color:var(--text3);font-size:8px}.operations-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.operations-kpis article{display:flex;min-height:90px;flex-direction:column;justify-content:center;padding:13px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}.operations-kpis article.warn{border-color:var(--amber-border)}.operations-kpis article.alert{border-color:var(--red-border);background:linear-gradient(145deg,var(--surface),var(--red-bg))}.operations-kpis span{color:var(--text3);font-size:7.5px;font-weight:850;text-transform:uppercase}.operations-kpis strong{margin:5px 0;font-size:19px}.operations-kpis small{overflow:hidden;color:var(--text3);font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.operations-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.operations-actions button{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.operations-actions button:hover{border-color:var(--brand);background:var(--brand-light)}.operations-actions b{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:var(--brand-light);color:var(--brand);font-size:8px}.operations-actions span{display:flex;min-width:0;flex-direction:column}.operations-actions strong{font-size:9px}.operations-actions small{margin-top:2px;color:var(--text3);font-size:7px}.operations-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.operations-panel{min-width:0;padding:15px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.operations-panel>header{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:11px}.operations-panel>header>div{display:flex;min-width:0;flex-direction:column}.operations-panel>header strong{font-size:11px}.operations-panel>header small{margin-top:2px;color:var(--text3);font-size:8px}.operations-panel>header button{padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--brand);font-size:8px;font-weight:800;cursor:pointer}.operations-panel>header>span{padding:5px 8px;border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:8px;font-weight:850}.operations-checks,.operations-incidents,.operations-backups{display:flex;flex-direction:column;gap:6px;max-height:275px;overflow:auto}.operations-checks>div,.operations-backups>div{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.operations-checks i,.operations-backups i{display:grid;width:25px;height:25px;flex:0 0 25px;place-items:center;border-radius:8px;background:var(--surface);font-size:9px;font-style:normal;font-weight:900}.operations-checks .is-ok i,.operations-backups i.is-ok{background:var(--green-bg);color:var(--green)}.operations-checks .is-alert i{background:var(--red-bg);color:var(--red)}.operations-checks span,.operations-backups span{display:flex;min-width:0;flex:1;flex-direction:column}.operations-checks strong,.operations-backups strong{font-size:8.5px}.operations-checks small,.operations-backups small{margin-top:2px;color:var(--text3);font-size:7.5px}.operations-backups b{font-size:7.5px}.operations-incidents article{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--border);border-left:4px solid var(--amber);border-radius:10px;background:var(--surface2)}.operations-incidents article.severity-critical{border-left-color:var(--red)}.operations-incidents article.severity-low{border-left-color:var(--green)}.operations-incidents article.is-resolved{opacity:.62;border-left-color:var(--green)}.operations-incidents article>i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--amber)}.operations-incidents article.severity-critical>i{background:var(--red)}.operations-incidents article.is-resolved>i{background:var(--green)}.operations-incidents article>span{display:flex;min-width:0;flex:1;flex-direction:column}.operations-incidents b{color:var(--brand);font-size:6.5px;text-transform:uppercase}.operations-incidents strong{font-size:8.5px}.operations-incidents small{color:var(--text3);font-size:7px}.operations-incidents button{border:0;background:none;color:var(--brand);font-size:7.5px;font-weight:850;cursor:pointer}.operations-runbook{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.operations-runbook>div{padding:10px;border-radius:10px;background:var(--surface2)}.operations-runbook>div>strong{display:block;margin-bottom:7px;color:var(--brand);font-size:8px}.operations-runbook label{display:flex;align-items:flex-start;gap:6px;padding:4px 0;color:var(--text2);font-size:7.5px;line-height:1.35}.operations-runbook input{accent-color:var(--brand)}.operations-empty{padding:20px;border:1px dashed var(--border);border-radius:10px;color:var(--text3);font-size:8px;text-align:center}.operations-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.operations-footer>span{color:var(--text3);font-size:8px}.operations-footer>div{display:flex;gap:7px}.operations-incident-form{display:flex;flex-direction:column;gap:13px}.operations-incident-form label{display:flex;flex-direction:column;gap:5px;color:var(--text3);font-size:9px;font-weight:800}
@media(max-width:1000px){.operations-kpis{grid-template-columns:repeat(3,1fr)}.operations-actions{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.operations-grid{grid-template-columns:1fr}.operations-runbook{grid-template-columns:1fr}.operations-hero{align-items:flex-start;flex-direction:column}.operations-kpis{grid-template-columns:repeat(2,1fr)}.operations-actions{grid-template-columns:repeat(2,1fr)}.operations-footer{align-items:stretch;flex-direction:column}.operations-footer>div{flex-wrap:wrap}}@media(max-width:440px){.operations-kpis,.operations-actions{grid-template-columns:1fr}}

/* Priorités 8 et 11 — gestion documentaire et pilotage des chantiers */
/* Priorité 9 — devis et chiffrage */
.modal-quote-builder{width:min(1500px,96vw);max-width:1500px}.quote-builder{display:flex;flex-direction:column;gap:14px}.quote-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px;border:1px solid color-mix(in srgb,var(--brand) 32%,var(--border));border-radius:18px;background:radial-gradient(circle at 90% 10%,color-mix(in srgb,var(--brand) 20%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),var(--brand-light))}.quote-hero span{color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.15em}.quote-hero h2{margin:5px 0;font-size:24px}.quote-hero p{margin:0;color:var(--text2);font-size:10px}.quote-hero-total{display:flex;min-width:190px;flex-direction:column;align-items:flex-end}.quote-hero-total small{color:var(--text3);font-size:8px}.quote-hero-total strong{margin:4px 0;font-size:25px}.quote-hero-total em{padding:5px 9px;border-radius:99px;background:var(--surface);color:var(--brand);font-size:8px;font-style:normal;font-weight:850}.quote-topbar,.quote-context{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:13px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.quote-context{grid-template-columns:2fr 2fr 1fr 1fr}.quote-topbar label,.quote-context label,.quote-summary>label{display:flex;flex-direction:column;gap:5px;color:var(--text3);font-size:8px;font-weight:800;text-transform:uppercase}.quote-revision-bar{display:flex;align-items:center;gap:9px;padding:11px 13px;border:1px solid var(--border);border-radius:13px;background:var(--surface2)}.quote-revision-bar>div{display:flex;min-width:0;flex:1;flex-direction:column}.quote-revision-bar strong{font-size:10px}.quote-revision-bar small{margin-top:2px;color:var(--text3);font-size:8px}.quote-revision-bar select{width:210px}.quote-lot{overflow:hidden;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.quote-lot>header{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;align-items:center;gap:10px;padding:9px 12px;background:linear-gradient(90deg,#101820,#263640);color:#fff}.quote-lot-title{border:0!important;background:transparent!important;color:#fff!important;font-size:12px!important;font-weight:900!important;letter-spacing:.08em}.quote-lot>header>strong{font-size:11px}.quote-lot>header>button,.quote-line-actions button{display:grid;width:29px;height:29px;place-items:center;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:8px;background:transparent;color:inherit;cursor:pointer}.quote-lines{display:flex;flex-direction:column}.quote-line{display:grid;grid-template-columns:58px 90px minmax(240px,2fr) 70px 85px 105px 105px 64px 64px;align-items:center;gap:7px;padding:10px;border-bottom:1px solid var(--border)}.quote-line:hover{background:color-mix(in srgb,var(--brand) 3%,var(--surface))}.quote-check,.quote-option{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text3);font-size:7px}.quote-image{position:relative;display:grid;height:62px;place-items:center;overflow:hidden;border:1px dashed var(--border);border-radius:9px;background:var(--surface2);color:var(--text3);font-size:7px;cursor:pointer}.quote-image img{width:100%;height:100%;object-fit:contain}.quote-image input{position:absolute;inset:0;opacity:0;cursor:pointer}.quote-line-copy{display:flex;min-width:0;flex-direction:column;gap:5px}.quote-line-copy input{font-weight:800}.quote-line-copy textarea{min-height:42px;resize:vertical}.quote-line-total{padding:10px 5px;border-radius:8px;background:var(--brand-light);color:var(--brand);font-size:10px;text-align:right}.quote-line-actions{display:flex;gap:3px}.quote-add-line{margin:9px 12px}.quote-add-lot{align-self:flex-start}.quote-summary{display:grid;grid-template-columns:1fr 1fr minmax(260px,.8fr);gap:11px;padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--surface)}.quote-summary>div{display:flex;flex-direction:column;gap:4px}.quote-summary>div span{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;border-radius:8px;background:var(--surface2);color:var(--text2);font-size:9px}.quote-summary>div strong{color:var(--text);font-size:11px}.quote-summary .quote-grand-total{background:var(--brand);color:#fff;font-weight:850}.quote-summary .quote-grand-total strong{color:#fff;font-size:14px}
.dq-page{display:flex;min-height:277mm;flex-direction:column;padding:8mm 10mm;background:#fff;color:#111;font-family:Arial,sans-serif}.dq-header{display:grid;grid-template-columns:34mm 1fr 62mm;align-items:start;gap:7mm;padding-bottom:4mm;border-bottom:2px solid #0574b8}.dq-header img{max-width:31mm;max-height:25mm;object-fit:contain}.dq-header address{display:flex;flex-direction:column;font-size:8.5pt;font-style:normal;line-height:1.35}.dq-header address strong{font-size:10pt}.dq-client{padding:4mm;border:1px solid #d6e5ed}.dq-reference{display:flex;align-items:center;justify-content:space-between;padding:4mm 0 3mm}.dq-reference h1{margin:0;color:#0574b8;font-size:17pt}.dq-reference strong{font-size:9pt}.dq-meta{margin:0 0 4mm;border-top:1px solid #9fb3bd}.dq-meta>div{display:grid;grid-template-columns:42mm 1fr;border-bottom:1px solid #cbd7dc}.dq-meta dt,.dq-meta dd{margin:0;padding:1.7mm 2mm;font-size:8.5pt}.dq-meta dt{background:#edf3f6;font-weight:700}.dq-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:7.3pt}.dq-table thead th{padding:2mm 1mm;border:1px solid #fff;background:#0574b8;color:#fff;font-size:6.6pt}.dq-table thead th:nth-child(1){width:5mm}.dq-table thead th:nth-child(2){width:22mm}.dq-table thead th:nth-child(4){width:10mm}.dq-table thead th:nth-child(5){width:13mm}.dq-table thead th:nth-child(6),.dq-table thead th:nth-child(7),.dq-table thead th:nth-child(8){width:22mm}.dq-table td{padding:2mm 1.2mm;border:1px solid #cbd7dc;vertical-align:top}.dq-table td:nth-child(n+4){text-align:center}.dq-table td:nth-child(7){background:#d9eef8;font-weight:700}.dq-table p{margin:1mm 0 0;font-size:6.6pt;line-height:1.3}.dq-picture img{display:block;width:20mm;height:15mm;object-fit:contain}.dq-check{text-align:center}.dq-lot-head th{padding:2mm;background:#111;color:#fff;text-align:left;font-size:8pt}.dq-lot-head th:nth-last-child(2){text-align:center}.dq-bottom{display:grid;grid-template-columns:1fr 67mm;gap:7mm;margin-top:5mm}.dq-bottom>div{font-size:7pt;line-height:1.35}.dq-bottom>div strong{display:block;margin-top:2mm}.dq-bottom>div p{margin:1mm 0}.dq-bottom dl{margin:0}.dq-bottom dl div{display:flex;justify-content:space-between;padding:2mm 3mm;border-bottom:1px solid #b9c8cf;font-size:8.5pt}.dq-bottom dt,.dq-bottom dd{margin:0}.dq-bottom dd{font-weight:700}.dq-bottom .dq-ttc{background:#0574b8;color:#fff;font-size:11pt;font-weight:800}.dq-page footer{display:flex;justify-content:space-between;margin-top:auto;padding-top:3mm;border-top:1px solid #0574b8;color:#465a64;font-size:6.3pt}
@media(max-width:1050px){.quote-line{grid-template-columns:48px 74px minmax(210px,1fr) 64px 75px 90px 92px}.quote-option{grid-column:1}.quote-line-actions{grid-column:2}.quote-topbar{grid-template-columns:repeat(3,1fr)}.quote-context{grid-template-columns:1fr 1fr}.quote-summary{grid-template-columns:1fr 1fr}.quote-summary>div{grid-column:1/3}}@media(max-width:650px){.modal-quote-builder{width:100vw}.quote-hero{align-items:flex-start;flex-direction:column}.quote-hero-total{align-items:flex-start}.quote-topbar,.quote-context,.quote-summary{grid-template-columns:1fr}.quote-summary>div{grid-column:auto}.quote-revision-bar{align-items:stretch;flex-direction:column}.quote-revision-bar select{width:100%}.quote-line{grid-template-columns:44px 65px 1fr 64px}.quote-line-copy{grid-column:3/5}.quote-line-unit{display:none}}
@media print{#print-area .dq-page{display:flex!important;width:210mm;min-height:297mm;padding:8mm 10mm;box-sizing:border-box}#print-area .dq-table thead{display:table-header-group}#print-area .dq-lot,#print-area .dq-table tr{break-inside:avoid}}
.field-mobile-stats-extended{grid-template-columns:repeat(5,minmax(0,1fr))}.field-mobile-workspace{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:5px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:var(--shadow-sm)}.field-mobile-workspace button{min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--text2);font-size:10px;font-weight:800;cursor:pointer}.field-mobile-workspace button.is-active{background:var(--surface);color:var(--brand);box-shadow:0 3px 12px rgba(10,52,70,.1)}
.field-journal-list,.field-reserve-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field-journal-list article,.field-reserve-list article{padding:16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--brand) 5%,var(--surface)));box-shadow:var(--shadow-sm)}.field-journal-list header,.field-reserve-list header{display:flex;align-items:center;justify-content:space-between;gap:10px}.field-journal-list header span,.field-reserve-list header span{padding:5px 8px;border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:8px;font-weight:850}.field-journal-list h3{margin:11px 0 5px;font-size:13px}.field-journal-list p,.field-reserve-list p{margin:5px 0 10px;color:var(--text2);font-size:10px;line-height:1.5}.field-journal-list small,.field-reserve-list small{color:var(--text3);font-size:8.5px}.field-reserve-list article{border-left:4px solid var(--amber)}.field-reserve-list article.is-high{border-left-color:var(--red)}.field-reserve-list article.is-low{border-left-color:var(--green)}.field-reserve-list article.is-closed{opacity:.65;border-left-color:var(--green)}.field-reserve-list button{float:right;margin-top:10px;padding:7px 10px;border:1px solid var(--green-border);border-radius:8px;background:var(--green-bg);color:var(--green);font-size:8px;font-weight:800;cursor:pointer}.field-report-form{display:flex;flex-direction:column;gap:12px}
.doc-status{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border:1px solid var(--border);border-radius:99px;background:var(--surface2);color:var(--text3);font-size:7.5px;font-weight:850;white-space:nowrap}.doc-status.is-review{border-color:var(--amber-border);background:var(--amber-bg);color:var(--amber)}.doc-status.is-validated{border-color:var(--green-border);background:var(--green-bg);color:var(--green)}.doc-status.is-rejected,.doc-status.is-expired{border-color:var(--red-border);background:var(--red-bg);color:var(--red)}
.document-center{display:flex;flex-direction:column;gap:13px}.document-center-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border));border-radius:17px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 13rem),linear-gradient(135deg,var(--surface),var(--brand-light))}.document-center-hero>div:first-child span{color:var(--brand);font-size:8.5px;font-weight:850;letter-spacing:.13em}.document-center-hero h2{margin:5px 0;font-size:22px}.document-center-hero p{margin:0;color:var(--text2);font-size:10px}.document-center-kpis{display:grid;grid-template-columns:repeat(4,minmax(78px,1fr));gap:6px}.document-center-kpis span{display:flex;min-height:58px;flex-direction:column;justify-content:center;padding:9px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--text3);font-size:7.5px;text-align:center}.document-center-kpis strong{color:var(--text);font-size:17px}.document-center-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(130px,1fr)) auto;align-items:center;gap:7px;padding:10px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.document-center-filters label{display:flex;align-items:center;gap:6px;color:var(--text2);font-size:8.5px}.document-center-list{display:flex;flex-direction:column;gap:6px}.document-center-row{display:grid;grid-template-columns:38px minmax(180px,1fr) auto auto 120px auto;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.document-center-row>button:nth-child(2){display:flex;min-width:0;flex-direction:column;border:0;background:none;color:var(--text);text-align:left;cursor:pointer}.document-center-row strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.document-center-row small{margin-top:3px;color:var(--text3);font-size:8px}.document-center-row time{color:var(--text3);font-size:8px}.doc-duplicate{padding:4px 7px;border-radius:99px;background:var(--amber-bg);color:var(--amber);font-size:7px;font-weight:850}.document-meta-form{display:flex;flex-direction:column;gap:13px}.document-meta-file{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface2)}.document-meta-file>div{display:flex;flex-direction:column}.document-meta-file strong{font-size:11px}.document-meta-file small{margin-top:3px;color:var(--text3);font-size:8px}
@media(max-width:800px){.field-mobile-stats-extended{grid-template-columns:repeat(3,1fr)}.field-journal-list,.field-reserve-list{grid-template-columns:1fr}.document-center-hero{align-items:stretch;flex-direction:column}.document-center-kpis{grid-template-columns:repeat(2,1fr)}.document-center-filters{grid-template-columns:1fr 1fr}.document-center-filters>input:first-child{grid-column:1/3}.document-center-row{grid-template-columns:34px minmax(0,1fr) auto}.document-center-row time,.document-center-row .doc-duplicate{display:none}}@media(max-width:460px){.field-mobile-stats-extended{grid-template-columns:repeat(2,1fr)}.document-center-filters{grid-template-columns:1fr}.document-center-filters>input:first-child{grid-column:auto}.document-center-row .doc-status{display:none}}

/* Priorité 13 — Ressources humaines */
.modal-rh-cockpit{width:min(1180px,94vw)}.modal-rh-dossier{width:min(980px,94vw)}
.rh-cockpit,.rh-dossier{display:flex;flex-direction:column;gap:14px}.rh-hero,.rh-profile{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:20px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--brand) 19%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),var(--brand-light));box-shadow:var(--shadow-sm)}
.rh-hero span,.rh-profile>div:nth-child(2)>span{color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.rh-hero h2,.rh-profile h2{margin:5px 0;font-size:24px}.rh-hero p,.rh-profile p{margin:0;color:var(--text2);font-size:11px}.rh-hero>strong{display:flex;min-width:116px;flex-direction:column;color:var(--brand);font-size:34px;text-align:center}.rh-hero>strong small{color:var(--text3);font-size:8px;text-transform:uppercase}
.rh-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.rh-kpis article{display:flex;min-height:95px;flex-direction:column;justify-content:center;padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.rh-kpis article.is-alert{border-color:var(--amber-border);background:linear-gradient(145deg,var(--surface),var(--amber-bg))}.rh-kpis span{color:var(--text3);font-size:8px;font-weight:850;text-transform:uppercase}.rh-kpis strong{margin:4px 0;color:var(--text);font-size:22px}.rh-kpis small{color:var(--text3);font-size:8px}
.rh-cockpit-grid,.rh-dossier-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}.rh-cockpit-grid>section,.rh-dossier>section,.rh-dossier-grid>section{padding:17px;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm)}.rh-cockpit header,.rh-dossier header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.rh-cockpit header strong,.rh-dossier header strong{font-size:12px}.rh-cockpit header small,.rh-dossier header small{color:var(--text3);font-size:8px}.rh-cockpit header button,.rh-dossier header button,.rh-interview>button{padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--brand);font-size:8px;font-weight:800;cursor:pointer}
.rh-alert-list,.rh-cert-list,.rh-interview-list{display:flex;flex-direction:column;gap:7px}.rh-alert{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:10px;border:1px solid var(--border);border-left:4px solid var(--green);border-radius:11px;background:var(--surface2);color:var(--text);text-align:left;cursor:pointer}.rh-alert.is-warning,.rh-cert.is-warning{border-left-color:var(--amber)}.rh-alert.is-alert,.rh-alert.is-expired,.rh-cert.is-alert,.rh-cert.is-expired{border-left-color:var(--red)}.rh-alert span{display:flex;min-width:0;flex-direction:column}.rh-alert b{color:var(--brand);font-size:7px;text-transform:uppercase}.rh-alert strong{font-size:10px}.rh-alert small,.rh-alert time{color:var(--text3);font-size:8px}
.rh-skill-cloud,.rh-skill-list{display:flex;flex-wrap:wrap;gap:7px}.rh-skill-cloud span,.rh-skill-list>span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--border));border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:8px;font-weight:750}.rh-skill-cloud b,.rh-skill-list b{display:grid;width:19px;height:19px;place-items:center;border-radius:50%;background:var(--surface)}.rh-skill-list button{border:0;background:none;color:var(--red);cursor:pointer}.rh-subhead{margin-top:18px}.rh-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.rh-people button{display:grid;grid-template-columns:34px 1fr;gap:1px 8px;padding:9px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--text);text-align:left;cursor:pointer}.rh-people button>span{grid-row:1/3;display:grid;width:34px;height:34px;place-items:center;border-radius:11px;background:var(--brand-light);color:var(--brand);font-size:9px;font-weight:900}.rh-people strong{font-size:9px}.rh-people small{color:var(--text3);font-size:7px}
.rh-profile{justify-content:flex-start}.rh-avatar{display:grid;width:58px;height:58px;flex:0 0 58px;place-items:center;border-radius:18px;background:linear-gradient(145deg,var(--brand),color-mix(in srgb,var(--brand) 62%,#7998ff));color:#fff;font-size:19px;font-weight:900;box-shadow:0 9px 22px color-mix(in srgb,var(--brand) 24%,transparent)}.rh-profile em{margin-left:auto;padding:7px 11px;border-radius:99px;background:var(--green-bg);color:var(--green);font-size:8px;font-style:normal;font-weight:850}.rh-identity dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.rh-identity dl>div{padding:10px;border-radius:11px;background:var(--surface2)}.rh-identity dt{color:var(--text3);font-size:7px;font-weight:850;text-transform:uppercase}.rh-identity dd{margin:4px 0 0;font-size:9px;font-weight:750}.rh-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.rh-checklist label{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);font-size:8px}.rh-checklist input{accent-color:var(--brand)}
.rh-cert,.rh-interview{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-left:4px solid var(--green);border-radius:11px;background:var(--surface2)}.rh-cert>span,.rh-interview>div{display:flex;min-width:0;flex:1;flex-direction:column}.rh-cert strong,.rh-interview strong{font-size:9px}.rh-cert small,.rh-cert time,.rh-interview small{color:var(--text3);font-size:7.5px}.rh-cert>button{border:0;background:none;color:var(--red);font-size:16px;cursor:pointer}.rh-interview>span{display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:var(--amber-bg);color:var(--amber);font-weight:900}.rh-interview>span.is-done{background:var(--green-bg);color:var(--green)}.rh-interview p{margin:4px 0 0;color:var(--text2);font-size:8px;line-height:1.45}.rh-empty{padding:18px;border:1px dashed var(--border);border-radius:11px;color:var(--text3);font-size:9px;text-align:center}.rh-complete-interview{display:flex;flex-direction:column;gap:14px}.rh-complete-interview>p{padding:12px;border-radius:12px;background:var(--brand-light);color:var(--text2)}
@media(max-width:800px){.rh-kpis{grid-template-columns:repeat(2,1fr)}.rh-cockpit-grid,.rh-dossier-grid{grid-template-columns:1fr}.rh-identity dl{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.rh-hero,.rh-profile{align-items:flex-start;flex-wrap:wrap;padding:16px}.rh-hero>strong{min-width:80px;font-size:26px}.rh-kpis,.rh-identity dl,.rh-checklist,.rh-people{grid-template-columns:1fr}.rh-profile em{margin-left:0}.rh-avatar{width:48px;height:48px;flex-basis:48px}.rh-hero h2,.rh-profile h2{font-size:20px}}

/* Priorité 14 — Relation client */
.modal-rc-cockpit{width:min(1160px,94vw)}.modal-rc-dossier{width:min(1040px,94vw)}.rc-cockpit,.rc-dossier{display:flex;flex-direction:column;gap:14px}.rc-hero,.rc-account{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border));border-radius:20px;background:radial-gradient(circle at 91% 16%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 14rem),linear-gradient(135deg,var(--surface),var(--brand-light));box-shadow:var(--shadow-sm)}.rc-hero span,.rc-account>div>span{color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.14em}.rc-hero h2,.rc-account h2{margin:5px 0;font-size:24px}.rc-hero p,.rc-account p{margin:0;color:var(--text2);font-size:10px}.rc-hero>strong,.rc-account>strong{display:flex;min-width:110px;flex-direction:column;color:var(--brand);font-size:34px;text-align:center}.rc-hero>strong small,.rc-account>strong small{color:var(--text3);font-size:8px;text-transform:uppercase}.rc-account.is-warning{border-color:var(--amber-border);background:linear-gradient(135deg,var(--surface),var(--amber-bg))}.rc-account.is-danger{border-color:var(--red-border);background:linear-gradient(135deg,var(--surface),var(--red-bg))}.rc-account.is-danger>strong{color:var(--red)}.rc-account.is-warning>strong{color:var(--amber)}
.rc-kpis,.rc-dossier-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.rc-kpis article,.rc-dossier-kpis article{display:flex;min-height:92px;flex-direction:column;justify-content:center;padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.rc-kpis span,.rc-dossier-kpis span{color:var(--text3);font-size:8px;font-weight:850;text-transform:uppercase}.rc-kpis strong,.rc-dossier-kpis strong{margin:5px 0;color:var(--text);font-size:21px}.rc-kpis small{color:var(--text3);font-size:8px}.rc-cockpit-grid,.rc-dossier-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rc-cockpit-grid>section,.rc-dossier-grid>section,.rc-preferences{padding:17px;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm)}.rc-cockpit header,.rc-dossier header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.rc-cockpit header>div,.rc-dossier header>div{display:flex;flex-direction:column}.rc-cockpit header strong,.rc-dossier header strong{font-size:12px}.rc-cockpit header small,.rc-dossier header small{margin-top:3px;color:var(--text3);font-size:8px}.rc-dossier header button,.rc-ticket button{padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--brand);font-size:8px;font-weight:800;cursor:pointer}
.rc-risk-list,.rc-request-list,.rc-ticket-list,.rc-survey-list{display:flex;flex-direction:column;gap:7px}.rc-risk,.rc-request-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid var(--border);border-left:4px solid var(--green);border-radius:11px;background:var(--surface2);color:var(--text);text-align:left;cursor:pointer}.rc-risk.is-warning{border-left-color:var(--amber)}.rc-risk.is-danger,.rc-request-row.is-late{border-left-color:var(--red)}.rc-risk>span,.rc-request-row>span{display:flex;min-width:0;flex:1;flex-direction:column}.rc-risk strong,.rc-request-row strong{font-size:9px}.rc-risk small,.rc-request-row small,.rc-request-row time{color:var(--text3);font-size:7.5px}.rc-risk>b{color:var(--brand);font-size:18px}.rc-risk>b small{font-size:7px}.rc-request-row b{color:var(--brand);font-size:7px;text-transform:uppercase}.rc-preferences dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}.rc-preferences dl>div{padding:10px;border-radius:11px;background:var(--surface2)}.rc-preferences dt{color:var(--text3);font-size:7px;text-transform:uppercase}.rc-preferences dd{margin:4px 0 0;font-size:9px;font-weight:750}.rc-preferences>p{margin:10px 0 0;padding:10px;border-left:3px solid var(--brand);background:var(--brand-light);color:var(--text2);font-size:8px}
.rc-ticket{padding:11px;border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:12px;background:var(--surface2)}.rc-ticket.is-late{border-left-color:var(--red)}.rc-ticket.is-resolved{opacity:.68;border-left-color:var(--green)}.rc-ticket header,.rc-ticket footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0}.rc-ticket header span{color:var(--brand);font-size:7px;font-weight:850;text-transform:uppercase}.rc-ticket header b{padding:4px 7px;border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:7px}.rc-ticket>strong{display:block;margin-top:8px;font-size:10px}.rc-ticket p{margin:5px 0 10px;color:var(--text2);font-size:8px;line-height:1.45}.rc-ticket footer small{color:var(--text3);font-size:7.5px}.rc-survey{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.rc-survey>strong{display:grid;width:44px;height:38px;place-items:center;border-radius:10px;background:var(--green-bg);color:var(--green);font-size:12px}.rc-survey>span{display:flex;min-width:0;flex-direction:column}.rc-survey b{font-size:9px}.rc-survey small{margin-top:3px;color:var(--text3);font-size:7.5px}.rc-empty{padding:20px;border:1px dashed var(--border);border-radius:11px;color:var(--text3);font-size:9px;text-align:center}.rc-switch{display:flex;align-items:center;gap:8px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);font-size:9px}.rc-switch input{accent-color:var(--brand)}
@media(max-width:800px){.rc-kpis,.rc-dossier-kpis{grid-template-columns:repeat(2,1fr)}.rc-cockpit-grid,.rc-dossier-grid{grid-template-columns:1fr}.rc-preferences dl{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.rc-hero,.rc-account{align-items:flex-start;flex-wrap:wrap;padding:16px}.rc-hero h2,.rc-account h2{font-size:20px}.rc-hero>strong,.rc-account>strong{min-width:75px;font-size:27px}.rc-kpis,.rc-dossier-kpis,.rc-preferences dl{grid-template-columns:1fr}}

/* Priorité 15 — Automatisation et intelligence */
.intelligence-launch{border-color:color-mix(in srgb,var(--purple) 42%,var(--border))!important;background:var(--purple-bg)!important;color:var(--purple)!important}.modal-intelligence{width:min(1180px,94vw)}.intel-center{display:flex;flex-direction:column;gap:14px}.intel-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:23px;border:1px solid color-mix(in srgb,var(--purple) 32%,var(--border));border-radius:20px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--purple) 20%,transparent),transparent 15rem),linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--purple) 8%,var(--surface)));box-shadow:var(--shadow-sm)}.intel-hero span{color:var(--purple);font-size:9px;font-weight:900;letter-spacing:.14em}.intel-hero h2{margin:5px 0;font-size:25px}.intel-hero p{max-width:700px;margin:0;color:var(--text2);font-size:10px;line-height:1.55}.intel-hero>strong{display:flex;min-width:110px;flex-direction:column;color:var(--purple);font-size:35px;text-align:center}.intel-hero>strong small{color:var(--text3);font-size:8px;text-transform:uppercase}.intel-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.intel-kpis article{display:flex;min-height:92px;flex-direction:column;justify-content:center;padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.intel-kpis article.is-alert{border-color:var(--red-border);background:linear-gradient(145deg,var(--surface),var(--red-bg))}.intel-kpis span{color:var(--text3);font-size:8px;font-weight:850;text-transform:uppercase}.intel-kpis strong{margin:4px 0;font-size:22px}.intel-kpis small{color:var(--text3);font-size:8px}.intel-explain{padding:13px 16px;border:1px solid color-mix(in srgb,var(--purple) 25%,var(--border));border-radius:13px;background:var(--purple-bg)}.intel-explain strong{color:var(--purple);font-size:9px}.intel-explain p{margin:4px 0 0;color:var(--text2);font-size:8.5px;line-height:1.5}
.intel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.intel-card{display:flex;min-width:0;flex-direction:column;padding:15px;border:1px solid var(--border);border-top:4px solid var(--brand);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.intel-card.is-critical{border-top-color:var(--red)}.intel-card.is-high{border-top-color:var(--amber)}.intel-card.is-warning{border-top-color:#d19a24}.intel-card header{display:flex;align-items:center;justify-content:space-between;gap:7px}.intel-card header span{color:var(--purple);font-size:7px;font-weight:850;text-transform:uppercase}.intel-card header b{padding:4px 7px;border-radius:99px;background:var(--surface2);color:var(--text3);font-size:7px}.intel-card.is-critical header b{background:var(--red-bg);color:var(--red)}.intel-card h3{margin:12px 0 5px;font-size:12px}.intel-card>p{min-height:35px;margin:0;color:var(--text2);font-size:8.5px;line-height:1.5}.intel-card>div{display:flex;flex-direction:column;margin-top:11px;padding:10px;border-radius:10px;background:var(--surface2)}.intel-card>div span{color:var(--text3);font-size:7px;text-transform:uppercase}.intel-card>div strong{margin-top:3px;font-size:8.5px}.intel-card footer{display:flex;gap:6px;margin-top:12px}.intel-card footer button{flex:1;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text2);font-size:8px;font-weight:800;cursor:pointer}.intel-card footer button.btn-primary{border-color:var(--purple);background:var(--purple);color:#fff}.intel-history{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.intel-history>header{padding:14px;border-bottom:1px solid var(--border)}.intel-history>header div{display:flex;flex-direction:column}.intel-history>header strong{font-size:11px}.intel-history>header small{margin-top:3px;color:var(--text3);font-size:8px}.intel-history>article{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.intel-history>article:last-child{border-bottom:0}.intel-history i{width:8px;height:8px;border-radius:50%;background:var(--green)}.intel-history i.is-ignore{background:var(--text3)}.intel-history span{display:flex;flex-direction:column}.intel-history strong{font-size:9px}.intel-history small,.intel-history time{color:var(--text3);font-size:7.5px}.intel-empty{grid-column:1/-1;padding:28px;border:1px dashed var(--border);border-radius:14px;color:var(--text3);font-size:9px;text-align:center}.intel-empty strong,.intel-empty span{display:block}.intel-empty strong{margin-bottom:4px;color:var(--text);font-size:12px}
@media(max-width:900px){.intel-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.intel-hero{align-items:flex-start;flex-wrap:wrap;padding:17px}.intel-kpis,.intel-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.intel-kpis,.intel-grid{grid-template-columns:1fr}.intel-hero h2{font-size:20px}.intel-hero>strong{min-width:70px;font-size:27px}}

/* v2.0.62 — structure défensive et lisible de toutes les fiches métier */
.modal-record-sheet{width:min(1120px,calc(100vw - 32px))!important;max-width:none!important;height:min(900px,92vh)}.modal-record-sheet .modal-body{min-height:0;padding:22px 24px;scroll-padding-top:74px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface2) 55%,var(--surface)),var(--surface))}.record-sheet{display:flex!important;min-width:0!important;max-width:100%;flex-direction:column!important;gap:16px!important}.record-sheet,.record-sheet *{box-sizing:border-box}.record-sheet>*,.record-sheet section,.record-sheet article,.record-sheet div,.record-sheet span{min-width:0}.record-sheet p,.record-sheet dd,.record-sheet small,.record-sheet strong{overflow-wrap:anywhere}
.rc-section-nav{position:sticky;z-index:3;top:-22px;display:flex;gap:7px;overflow-x:auto;padding:10px 0;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px)}.rc-section-nav button{display:flex;flex:none;align-items:center;gap:6px;min-height:38px;padding:8px 13px;border:1px solid var(--border);border-radius:99px;background:var(--surface);color:var(--text2);font-size:11px;font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm)}.rc-section-nav button:hover,.rc-section-nav button:focus-visible{border-color:var(--brand);color:var(--brand)}.rc-section-nav b{display:grid;min-width:20px;height:20px;place-items:center;border-radius:50%;background:var(--brand-light);color:var(--brand);font-size:9px}
.modal-rc-dossier .rc-account{flex:none;padding:25px 27px}.modal-rc-dossier .rc-account h2{font-size:27px;line-height:1.2}.modal-rc-dossier .rc-account p{font-size:13px;line-height:1.5}.modal-rc-dossier .rc-account>div>span{font-size:10px}.modal-rc-dossier .rc-account>strong{font-size:38px}.modal-rc-dossier .rc-dossier-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))!important;gap:11px}.modal-rc-dossier .rc-dossier-kpis article{min-height:112px;padding:17px}.modal-rc-dossier .rc-dossier-kpis span{font-size:10px}.modal-rc-dossier .rc-dossier-kpis strong{font-size:19px;line-height:1.25}.modal-rc-dossier .rc-dossier-kpis small{display:block;margin-top:5px;color:var(--text3);font-size:10px;line-height:1.35}.modal-rc-dossier .rc-preferences,.modal-rc-dossier .rc-dossier-grid>section{padding:20px;border-radius:17px}.modal-rc-dossier .rc-dossier-grid{align-items:start;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;gap:13px}.modal-rc-dossier .rc-dossier header{align-items:flex-start;margin-bottom:15px}.modal-rc-dossier .rc-dossier header strong{font-size:14px;line-height:1.3}.modal-rc-dossier .rc-dossier header small{font-size:10.5px;line-height:1.4}.modal-rc-dossier .rc-dossier header button,.modal-rc-dossier .rc-ticket button{min-height:34px;padding:7px 11px;font-size:10px}.modal-rc-dossier .rc-preferences dl{gap:10px}.modal-rc-dossier .rc-preferences dl>div{min-height:70px;padding:13px}.modal-rc-dossier .rc-preferences dt{font-size:9px}.modal-rc-dossier .rc-preferences dd{margin-top:7px;font-size:12px;line-height:1.35}.modal-rc-dossier .rc-preferences>p{padding:13px;font-size:11px;line-height:1.55}.modal-rc-dossier .rc-ticket-list,.modal-rc-dossier .rc-survey-list{gap:9px;max-height:430px;overflow:auto;padding-right:3px}.modal-rc-dossier .rc-ticket{padding:14px}.modal-rc-dossier .rc-ticket header span,.modal-rc-dossier .rc-ticket header b{font-size:9px}.modal-rc-dossier .rc-ticket>strong{margin-top:10px;font-size:12px}.modal-rc-dossier .rc-ticket p{font-size:11px;line-height:1.55}.modal-rc-dossier .rc-ticket footer small{font-size:9.5px;line-height:1.4}.modal-rc-dossier .rc-survey{padding:13px}.modal-rc-dossier .rc-survey>strong{width:52px;height:44px;font-size:14px}.modal-rc-dossier .rc-survey b{font-size:11px}.modal-rc-dossier .rc-survey small{font-size:9.5px;line-height:1.4}
/* Les anciennes fiches et cockpits bénéficient des mêmes garde-fous de composition. */
.modal-client360-crm,.modal-action360,.modal-rdv360,.modal-rh-dossier,.modal-rh-cockpit,.modal-intelligence,.modal-crm-cockpit{width:min(1120px,calc(100vw - 32px));max-width:none}.client360-crm,.affaire360,.action360,.achat360,.rdv360,.os360,.rh-dossier,.rh-cockpit,.intel-center,.crm-cockpit{min-width:0;max-width:100%}.client360-crm *,.affaire360 *,.action360 *,.achat360 *,.rdv360 *,.os360 *,.rh-dossier *,.rh-cockpit *,.intel-center *,.crm-cockpit *{box-sizing:border-box}.client360-crm p,.client360-crm dd,.affaire360 p,.affaire360 dd,.action360 p,.action360 dd,.achat360 p,.achat360 dd,.rdv360 p,.os360 p,.rh-dossier p,.intel-center p{overflow-wrap:anywhere}.client360-kpis,.affaire360-kpis,.action360-kpis,.achat360-kpis,.rdv360-kpis,.rh-kpis,.intel-kpis,.crm-cockpit-kpis{align-items:stretch}.client360-kpis>div,.affaire360-kpis>div,.action360-kpis>div,.achat360-kpis>div,.rdv360-kpis>div,.rh-kpis>article,.intel-kpis>article,.crm-cockpit-kpis>div{min-width:0;overflow:hidden}.client360-grid,.affaire360-grid,.action360-grid,.achat360-grid,.rdv360-grid,.rh-dossier-grid,.rh-cockpit-grid,.crm-cockpit-grid{align-items:start}.modal-client360-crm .modal-footer,.modal-action360 .modal-footer,.modal-rdv360 .modal-footer,.modal-rh-dossier .modal-footer,.modal-intelligence .modal-footer,.modal-rc-dossier .modal-footer{position:sticky;z-index:4;bottom:0;flex-wrap:wrap;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(16px)}
@media(max-width:900px){.modal-record-sheet .rc-dossier-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.modal-record-sheet .rc-dossier-grid{grid-template-columns:1fr!important}.modal-record-sheet .rc-preferences dl{grid-template-columns:repeat(2,minmax(0,1fr))}.client360-kpis,.affaire360-kpis,.achat360-kpis,.crm-cockpit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:600px){.modal-record-sheet{width:calc(100vw - 12px)!important;height:96vh}.modal-record-sheet .modal-body{padding:14px}.rc-section-nav{top:-14px}.modal-record-sheet .rc-account{padding:18px}.modal-record-sheet .rc-account h2{font-size:21px}.modal-record-sheet .rc-dossier-kpis,.modal-record-sheet .rc-preferences dl{grid-template-columns:1fr!important}.modal-record-sheet .rc-dossier-kpis article{min-height:88px}.modal-client360-crm,.modal-action360,.modal-rdv360,.modal-rh-dossier,.modal-rh-cockpit,.modal-intelligence,.modal-crm-cockpit{width:calc(100vw - 12px)}.client360-grid,.affaire360-grid,.action360-grid,.achat360-grid,.rdv360-grid,.rh-dossier-grid,.rh-cockpit-grid,.crm-cockpit-grid{grid-template-columns:1fr!important}.client360-kpis,.affaire360-kpis,.action360-kpis,.achat360-kpis,.rdv360-kpis,.rh-kpis,.intel-kpis,.crm-cockpit-kpis{grid-template-columns:1fr!important}}

/* Extension de la structure commune aux aperçus qui disposent de leur propre classe de fenêtre. */
.modal-affaire360,.modal-achat360,.modal-os360{width:min(1120px,calc(100vw - 32px));max-width:none}
.modal-affaire360 .modal-footer,.modal-achat360 .modal-footer,.modal-os360 .modal-footer{position:sticky;z-index:4;bottom:0;flex-wrap:wrap;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(16px)}
@media(max-width:600px){.modal-affaire360,.modal-achat360,.modal-os360{width:calc(100vw - 12px)}}

/* v2.0.63 — Notifications, communication, qualité et conformité */
.modal-communication,.modal-quality-compliance{width:min(1160px,calc(100vw - 28px))!important;height:min(920px,94vh)}.comm-center,.qc-center{gap:14px}.comm-hero,.qc-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:20px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 15rem),linear-gradient(135deg,var(--surface),var(--brand-light));box-shadow:var(--shadow-sm)}.comm-hero span,.qc-hero span{color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.14em}.comm-hero h2,.qc-hero h2{margin:6px 0;font-size:25px}.comm-hero p,.qc-hero p{max-width:720px;margin:0;color:var(--text2);font-size:11px;line-height:1.55}.comm-hero>strong,.qc-hero>strong{display:flex;min-width:120px;flex-direction:column;color:var(--brand);font-size:36px;text-align:center}.comm-hero>strong small,.qc-hero>strong small{color:var(--text3);font-size:8px;text-transform:uppercase}.comm-kpis,.qc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.comm-kpis article,.qc-kpis article{display:flex;min-height:102px;flex-direction:column;justify-content:center;padding:16px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.comm-kpis span,.qc-kpis span{color:var(--text3);font-size:8px;font-weight:850;text-transform:uppercase}.comm-kpis strong,.qc-kpis strong{margin:5px 0;font-size:24px}.comm-kpis small,.qc-kpis small{color:var(--text3);font-size:9px}.comm-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:12px}.comm-grid>section,.comm-history,.qc-panel{padding:18px;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm)}.comm-center header,.qc-center header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.comm-center header>div,.qc-center header>div{display:flex;flex-direction:column}.comm-center header strong,.qc-center header strong{font-size:13px}.comm-center header small,.qc-center header small{margin-top:3px;color:var(--text3);font-size:9px}.comm-feed,.qc-list{display:flex;flex-direction:column;gap:8px;max-height:390px;overflow:auto}.comm-feed-item,.qc-issue{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.comm-feed-item>span,.qc-issue>span{width:8px;height:8px;border-radius:50%;background:var(--brand)}.comm-feed-item.comm-critical>span,.qc-issue.qc-critical>span{background:var(--red)}.comm-feed-item.comm-high>span,.qc-issue.qc-high>span{background:var(--amber)}.comm-feed-item>div,.qc-issue>div{display:flex;min-width:0;flex-direction:column}.comm-feed-item strong,.qc-issue strong{font-size:10px}.comm-feed-item small,.qc-issue small{margin-top:3px;color:var(--text3);font-size:8.5px;line-height:1.4}.comm-settings{display:flex;flex-direction:column;gap:9px}.comm-settings>label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.comm-settings input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}.comm-settings label>span{display:flex;flex-direction:column}.comm-settings b{font-size:10px}.comm-settings small{margin-top:2px;color:var(--text3);font-size:8px}.comm-time{display:grid;grid-template-columns:1fr 1fr;gap:8px}.comm-time label{color:var(--text3);font-size:8px;font-weight:750}.comm-time input{margin-top:5px}.comm-history ul{display:flex;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none}.comm-history li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;background:var(--surface2)}.comm-history li>span{display:flex;flex-direction:column}.comm-history li strong{font-size:9px}.comm-history li small{color:var(--text3);font-size:8px}.comm-history li>b{color:var(--brand);font-size:8px}.comm-empty{padding:22px;border:1px dashed var(--border);border-radius:12px;color:var(--text3);font-size:10px;text-align:center}
.qc-tabs{display:flex;gap:7px;overflow-x:auto;padding:5px;border:1px solid var(--border);border-radius:14px;background:var(--surface2)}.qc-tabs button{display:flex;flex:none;align-items:center;gap:7px;padding:9px 13px;border:0;border-radius:10px;background:transparent;color:var(--text2);font-size:10px;font-weight:800;cursor:pointer}.qc-tabs button.is-active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-sm)}.qc-tabs b{display:grid;min-width:20px;height:20px;place-items:center;border-radius:50%;background:var(--brand-light);font-size:8px}.qc-panel[hidden]{display:none!important}.qc-issue{grid-template-columns:8px minmax(0,1fr) auto auto}.qc-action{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-left:4px solid var(--amber);border-radius:12px;background:var(--surface2)}.qc-action.is-closed{opacity:.72;border-left-color:var(--green)}.qc-action>div{display:flex;min-width:0;flex-direction:column}.qc-action span{color:var(--brand);font-size:8px;font-weight:850;text-transform:uppercase}.qc-action strong{margin:3px 0;font-size:10px}.qc-action small{color:var(--text3);font-size:8px}.qc-action>b{padding:5px 8px;border-radius:99px;background:var(--amber-bg);color:var(--amber);font-size:8px}.qc-action.is-closed>b{background:var(--green-bg);color:var(--green)}.qc-register{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qc-register article{padding:17px;border:1px solid var(--border);border-radius:13px;background:var(--surface2)}.qc-register strong{font-size:11px}.qc-register p{margin:7px 0 0;color:var(--text2);font-size:9px;line-height:1.55}
@media(max-width:850px){.comm-kpis,.qc-kpis{grid-template-columns:repeat(2,1fr)}.comm-grid{grid-template-columns:1fr}.qc-register{grid-template-columns:1fr}}@media(max-width:560px){.modal-communication,.modal-quality-compliance{width:calc(100vw - 10px)!important;height:97vh}.comm-hero,.qc-hero{align-items:flex-start;flex-wrap:wrap;padding:17px}.comm-hero h2,.qc-hero h2{font-size:20px}.comm-kpis,.qc-kpis,.comm-time{grid-template-columns:1fr}.comm-feed-item,.qc-issue{grid-template-columns:8px minmax(0,1fr)}.comm-feed-item button,.qc-issue button{grid-column:2}.qc-action{grid-template-columns:1fr auto}.qc-action button{grid-column:1/-1}}

/* v2.0.64 — Achats et fournisseurs */
.modal-procurement,.modal-supplier-performance{width:min(1160px,calc(100vw - 28px))!important;height:min(920px,94vh)}.proc-center,.supplier-performance{gap:14px}.proc-hero,.supplier-perf-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:20px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 15rem),linear-gradient(135deg,var(--surface),var(--brand-light));box-shadow:var(--shadow-sm)}.proc-hero span,.supplier-perf-hero span{color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.14em}.proc-hero h2,.supplier-perf-hero h2{margin:6px 0;font-size:25px}.proc-hero p,.supplier-perf-hero p{margin:0;color:var(--text2);font-size:11px}.proc-hero>strong,.supplier-perf-hero>strong{display:flex;min-width:120px;flex-direction:column;color:var(--brand);font-size:35px;text-align:center}.proc-hero>strong small,.supplier-perf-hero>strong small{color:var(--text3);font-size:8px;text-transform:uppercase}.proc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.proc-kpis article{display:flex;min-height:102px;min-width:0;flex-direction:column;justify-content:center;padding:16px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.proc-kpis span{color:var(--text3);font-size:8px;font-weight:850;text-transform:uppercase}.proc-kpis strong{margin:5px 0;overflow-wrap:anywhere;font-size:21px}.proc-kpis small{color:var(--text3);font-size:9px}.proc-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:12px}.proc-grid>section,.proc-requests,.supplier-review-history{padding:18px;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm)}.proc-center header,.supplier-performance header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.proc-center header>div,.supplier-performance header>div{display:flex;flex-direction:column}.proc-center header strong,.supplier-performance header strong{font-size:13px}.proc-center header small,.supplier-performance header small{margin-top:3px;color:var(--text3);font-size:9px}.proc-list,.proc-request-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto}.proc-supplier{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);cursor:pointer}.proc-supplier:hover{border-color:var(--brand)}.proc-supplier>div{display:flex;min-width:0;flex-direction:column}.proc-supplier strong{font-size:10px}.proc-supplier small{margin-top:3px;color:var(--text3);font-size:8px}.proc-supplier>span{display:flex;min-width:74px;flex-direction:column;text-align:right}.proc-supplier>span b{color:var(--brand);font-size:12px}.proc-price{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--border);border-left:4px solid var(--red);border-radius:12px;background:var(--surface2)}.proc-price.is-drop{border-left-color:var(--green)}.proc-price>div{display:flex;min-width:0;flex-direction:column}.proc-price strong{font-size:10px}.proc-price small{margin-top:3px;color:var(--text3);font-size:8px;overflow-wrap:anywhere}.proc-price>b{color:var(--red);font-size:12px}.proc-price.is-drop>b{color:var(--green)}.proc-request{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.proc-request>span{padding:5px 8px;border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:8px;font-weight:800}.proc-request>div{display:flex;min-width:0;flex-direction:column}.proc-request strong{font-size:10px}.proc-request small{margin-top:3px;color:var(--text3);font-size:8px}.proc-empty{padding:22px;border:1px dashed var(--border);border-radius:12px;color:var(--text3);font-size:10px;text-align:center}.supplier-review-history ul{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.supplier-review-history li{display:flex;flex-direction:column;padding:12px;border-radius:11px;background:var(--surface2)}.supplier-review-history li strong{font-size:10px}.supplier-review-history li span{margin-top:4px;color:var(--text2);font-size:9px;line-height:1.45}
@media(max-width:850px){.proc-kpis{grid-template-columns:repeat(2,1fr)}.proc-grid{grid-template-columns:1fr}}@media(max-width:560px){.modal-procurement,.modal-supplier-performance{width:calc(100vw - 10px)!important;height:97vh}.proc-hero,.supplier-perf-hero{align-items:flex-start;flex-wrap:wrap;padding:17px}.proc-hero h2,.supplier-perf-hero h2{font-size:20px}.proc-kpis{grid-template-columns:1fr}.proc-supplier{grid-template-columns:1fr 1fr}.proc-supplier>div{grid-column:1/-1}.proc-request{grid-template-columns:1fr auto}.proc-request>span{justify-self:start}.proc-request>div{grid-column:1/-1;grid-row:2}.proc-request button{grid-column:2;grid-row:1}}

/* v2.0.65 — Comptabilité et trésorerie */
.modal-accounting{width:min(1180px,calc(100vw - 28px))!important;height:min(930px,94vh)}.acct-center{gap:14px}.acct-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:20px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 15rem),linear-gradient(135deg,var(--surface),var(--brand-light));box-shadow:var(--shadow-sm)}.acct-hero span{color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.14em}.acct-hero h2{margin:6px 0;font-size:25px}.acct-hero p{margin:0;color:var(--text2);font-size:11px}.acct-hero>strong{display:flex;min-width:130px;flex-direction:column;color:var(--brand);font-size:34px;text-align:center}.acct-hero>strong small{color:var(--text3);font-size:8px;text-transform:uppercase}.acct-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.acct-kpis article{display:flex;min-height:102px;min-width:0;flex-direction:column;justify-content:center;padding:16px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.acct-kpis span{color:var(--text3);font-size:8px;font-weight:850;text-transform:uppercase}.acct-kpis strong{margin:5px 0;overflow-wrap:anywhere;font-size:21px}.acct-kpis small{color:var(--text3);font-size:9px}.acct-forecast,.acct-aging,.acct-close,.acct-alerts{padding:18px;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm)}.acct-forecast{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);align-items:center;gap:18px}.acct-forecast>div:first-child{display:flex;flex-direction:column}.acct-forecast span{color:var(--text3);font-size:9px;font-weight:850;text-transform:uppercase}.acct-forecast strong{margin:5px 0;color:var(--brand);font-size:26px}.acct-forecast small{color:var(--text3);font-size:9px}.acct-scenario{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:13px;border-radius:13px;background:var(--surface2)}.acct-scenario label{display:flex;flex-direction:column;gap:5px;color:var(--text2);font-size:9px}.acct-scenario label b{color:var(--brand)}.acct-scenario input{width:100%;accent-color:var(--brand)}.acct-scenario>strong{grid-column:1/-1;margin:0;color:var(--text);font-size:12px}.acct-scenario>strong.is-danger{color:var(--red)}.acct-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:12px}.acct-center header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.acct-center header>div{display:flex;flex-direction:column}.acct-center header strong{font-size:13px}.acct-center header small{margin-top:3px;color:var(--text3);font-size:9px}.acct-aging article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.acct-aging article:last-child{border-bottom:0}.acct-aging article>span{display:flex;flex-direction:column;color:var(--text);font-size:10px;font-weight:700}.acct-aging article small{margin-top:2px;color:var(--text3);font-size:8px;font-weight:400}.acct-aging article>b{font-size:11px}.acct-aging .is-positive{color:var(--green)}.acct-aging .is-negative{color:var(--red)}.acct-close header>b{padding:6px 9px;border-radius:99px;background:var(--brand-light);color:var(--brand);font-size:10px}.acct-close>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.acct-check{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.acct-check input{width:17px;height:17px;accent-color:var(--green)}.acct-check span{display:flex;min-width:0;flex-direction:column}.acct-check strong{font-size:9px}.acct-check small{margin-top:2px;color:var(--text3);font-size:7.5px}.acct-alerts>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.acct-alerts article{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 9px;padding:13px;border:1px solid var(--border);border-left:4px solid var(--green);border-radius:12px;background:var(--surface2)}.acct-alerts article.is-warning{border-left-color:var(--amber)}.acct-alerts article.is-danger{border-left-color:var(--red)}.acct-alerts article>strong{color:var(--brand);font-size:16px}.acct-alerts article>span{font-size:9px}.acct-alerts article>button{grid-column:1/-1;padding:7px;border:0;border-radius:8px;background:var(--surface);color:var(--brand);font-size:8px;font-weight:800;cursor:pointer}
@media(max-width:850px){.acct-kpis{grid-template-columns:repeat(2,1fr)}.acct-grid{grid-template-columns:1fr}.acct-close>div,.acct-alerts>div{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.modal-accounting{width:calc(100vw - 10px)!important;height:97vh}.acct-hero{align-items:flex-start;flex-wrap:wrap;padding:17px}.acct-hero h2{font-size:20px}.acct-kpis,.acct-forecast,.acct-scenario,.acct-close>div,.acct-alerts>div{grid-template-columns:1fr}.acct-scenario>strong{grid-column:1}}

/* Notifications Push */
.modal-push-settings{width:min(960px,94vw)}.push-settings{display:grid;gap:16px}.push-intro{position:relative;padding:23px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:20px;background:linear-gradient(125deg,var(--surface),var(--brand-light))}.push-intro>span,.push-section header span{color:var(--brand);font-size:10px;font-weight:900;letter-spacing:.15em}.push-intro h2{margin:6px 0;font-size:25px}.push-intro p{max-width:680px;margin:0;color:var(--text2)}.push-intro>b{position:absolute;top:22px;right:22px;padding:7px 11px;border-radius:99px;font-size:11px}.push-intro>b.is-on{background:var(--green-bg);color:var(--green)}.push-intro>b.is-off{background:var(--amber-bg);color:var(--amber)}.push-warning{padding:15px 17px;border:1px solid var(--amber);border-radius:14px;background:var(--amber-bg)}.push-warning p{margin:5px 0 0}.push-section{padding:18px;border:1px solid var(--border);border-radius:17px;background:var(--surface)}.push-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.push-section h3{margin:4px 0 0}.push-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.push-module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:260px;overflow:auto}.push-choice{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface2);cursor:pointer}.push-choice input{width:18px;height:18px;accent-color:var(--brand)}.push-choice span{display:flex;min-width:0;flex-direction:column}.push-choice small,.push-hint{color:var(--text3);font-size:11px}.push-hint{margin-top:-5px}.push-device-list{display:grid;gap:8px}.push-device-list article{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.push-device-list article>i{color:var(--green);font-style:normal}.push-device-list article>span{display:flex;min-width:0;flex:1;flex-direction:column}.push-device-list small{color:var(--text3)}.push-empty{padding:25px;text-align:center;color:var(--text3)}@media(max-width:700px){.push-intro>b{position:static;display:inline-block;margin-top:12px}.push-choice-grid,.push-module-grid{grid-template-columns:1fr}.push-device-list article{flex-wrap:wrap}.push-device-list article>span{min-width:70%}}
.settings-notification-panel{grid-column:1/-1}
.settings-notification-status{padding:7px 11px;border-radius:999px;background:var(--green-bg);color:var(--green);border:1px solid var(--green-border);font-size:11px;font-weight:800}
.settings-notification-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.settings-notification-option{align-items:flex-start!important;padding:16px!important;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.settings-notification-option input{width:18px!important;height:18px!important;margin-top:2px;accent-color:var(--brand);flex:0 0 auto}
.settings-notification-option span{display:grid;gap:4px}.settings-notification-option strong{font-size:13px;color:var(--text)}.settings-notification-option small{font-size:11px;line-height:1.5;color:var(--text3)}
.settings-notification-actions{margin-top:8px}
.help-shell{display:grid;gap:20px}.help-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 30px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--border));border-radius:26px;background:linear-gradient(130deg,var(--surface),color-mix(in srgb,var(--brand) 10%,var(--surface)));box-shadow:var(--shadow)}
.help-hero span,.help-guide header>span{font-size:10px;letter-spacing:.18em;font-weight:900;color:var(--brand)}.help-hero h1{font-size:30px;margin:7px 0}.help-hero p{color:var(--text2)}
.help-search{height:54px;display:flex;align-items:center;gap:10px;padding:0 18px;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm)}.help-search span{font-size:22px;color:var(--brand)}.help-search input{border:0;outline:0;background:transparent;color:var(--text);font:inherit;width:100%}
.help-group{display:grid;gap:12px}.help-group>header{display:flex;align-items:center;justify-content:space-between}.help-group h2{font-size:16px}.help-group>header b{font-size:10px;color:var(--text3)}.help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.help-grid>button{display:flex;text-align:left;align-items:center;gap:12px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);transition:.18s}.help-grid>button:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 40%,var(--border));box-shadow:var(--shadow)}.help-grid>button>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:900}.help-grid>button>div{display:grid;gap:3px;min-width:0;flex:1}.help-grid strong{font-size:13px}.help-grid small{font-size:10.5px;color:var(--text2);line-height:1.35}.help-grid em{font-size:9.5px;color:var(--brand);font-style:normal;font-weight:700}.help-grid i{font-style:normal;color:var(--text3)}
.help-guide{display:grid;gap:18px}.help-guide header{padding:20px;border-radius:18px;background:linear-gradient(130deg,var(--brand-soft),var(--surface2))}.help-guide h2{font-size:24px;margin:6px 0}.help-guide header p,.help-guide section li{color:var(--text2);line-height:1.55}.help-guide section h3{font-size:14px;margin-bottom:10px}.help-guide ol{padding-left:22px;display:grid;gap:7px}.help-panes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.help-panes article{display:flex;gap:11px;padding:13px;border:1px solid var(--border);border-radius:14px;background:var(--surface2)}.help-panes article>b{color:var(--brand);font-size:10px}.help-panes article>div{display:grid;gap:3px}.help-panes strong{font-size:12px}.help-panes small{font-size:10px;color:var(--text3);line-height:1.4}.help-guide aside{display:flex;gap:8px;padding:14px;border-radius:14px;background:var(--green-bg);color:var(--green);font-size:11px}.help-guide aside span{color:var(--text2)}
@media(max-width:900px){.settings-notification-options,.help-panes{grid-template-columns:1fr}.help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.help-hero{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.help-grid{grid-template-columns:1fr}.help-hero{padding:21px}.help-hero h1{font-size:25px}}
/* ── AvG Stock 3.0 intégré ───────────────────────────────────── */
.stock-v3-shell{display:grid;gap:18px;min-width:0;padding-bottom:36px}.stock-v3-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:26px;background:linear-gradient(120deg,color-mix(in srgb,var(--surface) 92%,#dff7ff),color-mix(in srgb,var(--surface) 90%,#e9fff1));box-shadow:var(--shadow);overflow:hidden;position:relative}.stock-v3-hero:after{content:"";position:absolute;width:240px;height:240px;border:45px solid color-mix(in srgb,var(--brand) 8%,transparent);border-radius:50%;right:-65px;top:-95px}.stock-v3-hero>div{position:relative;z-index:1}.stock-v3-hero span{font-size:11px;font-weight:900;letter-spacing:.18em;color:var(--brand)}.stock-v3-hero h2{font-size:30px;line-height:1.1;margin:8px 0}.stock-v3-hero p{color:var(--text2);margin:0}.stock-v3-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.stock-v3-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stock-v3-kpis button{appearance:none;text-align:left;padding:20px;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);cursor:pointer;box-shadow:0 10px 25px rgba(9,38,52,.06);transition:.2s}.stock-v3-kpis button:hover{transform:translateY(-2px);border-color:var(--brand)}.stock-v3-kpis button.is-alert{border-color:color-mix(in srgb,var(--red) 45%,var(--border))}.stock-v3-kpis span,.stock-v3-kpis small{display:block;color:var(--text3)}.stock-v3-kpis span{font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.08em}.stock-v3-kpis strong{display:block;font-size:25px;margin:6px 0}.stock-v3-tabs{display:flex;gap:5px;padding:6px;border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow-x:auto}.stock-v3-tabs button{white-space:nowrap;appearance:none;border:0;background:transparent;color:var(--text2);padding:11px 16px;border-radius:11px;font-weight:750;cursor:pointer}.stock-v3-tabs button.active{background:color-mix(in srgb,var(--brand) 13%,var(--surface));color:var(--brand)}.stock-v3-toolbar,.stock-v3-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.stock-v3-toolbar label{flex:1;display:flex;align-items:center;gap:10px;padding:0 14px;height:48px;background:var(--surface);border:1px solid var(--border);border-radius:14px}.stock-v3-toolbar input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.stock-v3-section-head{padding:16px 2px}.stock-v3-section-head h3{margin:0;font-size:21px}.stock-v3-section-head p{margin:4px 0 0;color:var(--text3)}.stock-v3-article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.stock-v3-article{display:grid;grid-template-columns:66px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;background:var(--surface);border:1px solid var(--border);border-radius:18px;cursor:pointer;min-width:0;box-shadow:0 7px 22px rgba(9,38,52,.05);transition:.2s}.stock-v3-article:hover{border-color:var(--brand);transform:translateY(-2px)}.stock-v3-article.is-low{border-left:4px solid var(--red)}.stock-v3-photo{width:66px;height:66px;border-radius:15px;background:var(--surface2);display:grid;place-items:center;overflow:hidden;color:var(--brand);font-size:25px}.stock-v3-photo img{width:100%;height:100%;object-fit:cover}.stock-v3-article-main{min-width:0}.stock-v3-article-main>div:first-child{display:flex;align-items:center;gap:6px}.stock-v3-article-main b{color:var(--brand);font-size:12px}.stock-v3-article-main i{font-style:normal;font-size:9px;padding:2px 6px;border-radius:8px;background:#e8f5ff;color:#1679a0;font-weight:900}.stock-v3-article-main h3{font-size:15px;margin:5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stock-v3-article-main p{font-size:11px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.stock-v3-article-main footer{display:flex;align-items:center;gap:12px;margin-top:9px}.stock-v3-article-main footer span{font-size:14px;font-weight:850}.stock-v3-article-main footer span.bad{color:var(--red)}.stock-v3-article-main footer small{color:var(--text3)}.stock-v3-card-actions{display:flex;flex-direction:column;gap:5px}.stock-v3-card-actions button{width:32px;height:32px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--brand);cursor:pointer;font-size:17px}.stock-v3-empty{grid-column:1/-1;padding:42px;border:1px dashed var(--border);border-radius:18px;text-align:center;color:var(--text3);background:var(--surface)}.stock-v3-table{overflow:auto;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.stock-v3-table table{width:100%;border-collapse:collapse;min-width:860px}.stock-v3-table th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);text-align:left;background:var(--surface2);padding:13px}.stock-v3-table td{padding:13px;border-top:1px solid var(--border);font-size:13px}.stock-v3-table td small{display:block;color:var(--text3);margin-top:3px}.stock-v3-table .input{min-width:110px}.stock-v3-table .is-diff{color:var(--amber);font-weight:850}.stock-v3-move{display:inline-flex;padding:4px 8px;border-radius:9px;font-size:10px;font-weight:850}.stock-v3-move.in{color:#15803d;background:#dcfce7}.stock-v3-move.out{color:#b91c1c;background:#fee2e2}.stock-v3-tool-grid,.stock-v3-supplier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.stock-v3-tool-grid article,.stock-v3-supplier-grid article{padding:18px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.stock-v3-tool-grid article.is-late{border-left:4px solid var(--red)}.stock-v3-tool-grid header,.stock-v3-supplier-grid header{display:flex;justify-content:space-between;gap:10px}.stock-v3-tool-grid header span{font-weight:850;color:var(--brand)}.stock-v3-tool-grid header b{font-size:10px;color:var(--text3)}.stock-v3-tool-grid h3{font-size:16px;margin:16px 0 7px}.stock-v3-tool-grid p{color:#e5a900;letter-spacing:2px}.stock-v3-tool-grid small{display:block;color:var(--text3);min-height:34px}.stock-v3-tool-grid footer{display:flex;gap:8px;margin-top:14px}.stock-v3-supplier-grid article>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.stock-v3-supplier-grid article>div span b{display:block;color:var(--brand);font-size:11px}.stock-v3-detail>header{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;border-radius:20px;background:linear-gradient(120deg,var(--surface2),color-mix(in srgb,var(--brand) 8%,var(--surface)))}.stock-v3-detail-photo{width:90px;height:90px;border-radius:18px;background:var(--surface);display:grid;place-items:center;overflow:hidden;font-size:30px}.stock-v3-detail-photo img{width:100%;height:100%;object-fit:cover}.stock-v3-detail header span{font-size:10px;letter-spacing:.12em;font-weight:900;color:var(--brand)}.stock-v3-detail header h2{margin:6px 0}.stock-v3-detail header p{margin:0;color:var(--text3)}.stock-v3-detail header>b{font-size:22px}.stock-v3-detail header>b.is-alert{color:var(--red)}.stock-v3-detail>section{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.stock-v3-detail>section>div{padding:15px;border:1px solid var(--border);border-radius:14px}.stock-v3-detail>section small,.stock-v3-detail>section strong{display:block}.stock-v3-detail>section small{color:var(--text3);margin-bottom:5px}.stock-v3-mini-history>div{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:12px;padding:10px;border-top:1px solid var(--border)}.stock-v3-mini-history span small{display:block;color:var(--text3)}.stock-v3-movement-head{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--surface2);margin-bottom:16px}.stock-v3-movement-head b{color:var(--brand)}.stock-v3-movement-head span{flex:1}.stock-v3-allocation{padding:16px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--brand) 5%,var(--surface));margin:14px 0}.stock-v3-allocation h3{margin:0}.stock-v3-allocation p{color:var(--text3);font-size:12px;margin:4px 0 13px}.stock-v3-drop{display:grid;text-align:center;gap:6px;padding:30px;border:2px dashed var(--border);border-radius:18px;cursor:pointer;background:var(--surface2);margin:16px 0}.stock-v3-drop input{display:none}.stock-v3-drop small{color:var(--text3)}.stock-v3-import-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}.stock-v3-import-kpis div{padding:13px;border:1px solid var(--border);border-radius:12px}.stock-v3-import-kpis strong,.stock-v3-import-kpis span{display:block}.stock-v3-import-kpis strong{font-size:20px}.stock-v3-import-kpis span{font-size:10px;color:var(--text3)}.stock-v3-import-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media(max-width:1200px){.stock-v3-article-grid,.stock-v3-tool-grid,.stock-v3-supplier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-v3-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.stock-v3-hero{align-items:flex-start;flex-direction:column;padding:22px}.stock-v3-hero h2{font-size:24px}.stock-v3-hero-actions{width:100%}.stock-v3-hero-actions .btn{flex:1}.stock-v3-kpis,.stock-v3-article-grid,.stock-v3-tool-grid,.stock-v3-supplier-grid,.stock-v3-detail>section,.stock-v3-import-kpis{grid-template-columns:1fr}.stock-v3-section-head{align-items:flex-start;flex-direction:column}.stock-v3-detail>header{grid-template-columns:64px minmax(0,1fr)}.stock-v3-detail-photo{width:64px;height:64px}.stock-v3-detail header>b{grid-column:1/-1}.stock-v3-article{grid-template-columns:54px minmax(0,1fr) auto}.stock-v3-photo{width:54px;height:54px}}
.stock-v3-photo-field{display:flex;align-items:center;gap:18px;margin:0 0 20px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--surface2)}.stock-v3-photo-field>div{width:112px;height:88px;display:grid;place-items:center;overflow:hidden;border-radius:14px;background:var(--surface);color:var(--text3);font-weight:800;letter-spacing:.12em}.stock-v3-photo-field img{width:100%;height:100%;object-fit:cover}.stock-v3-photo-field input{display:none}.stock-v3-scanner{display:grid;gap:16px}.stock-v3-scanner video{width:100%;max-height:360px;display:block;border-radius:20px;background:#10212b;object-fit:cover}.stock-v3-scanner p{margin:0;color:var(--text3)}
