
:root{
  --headerText:#ffffff;--brandLogo:#ffffff;
  --headerDark:#020e24;--green:#01b7a8;--green2:#124fc4;--bg:#eef1f2;--white:#fff;--text:#28343a;--muted:#718087;--line:#d8dfe2;
  --mint:#e6f7f4;--mintText:#018076;
  --ok-bg:#e6f7f4;--ok-text:#018076;
  --calc-bg:#eaf1fd;--calc-text:#3366cc;
  --edit-bg:#eef0f1;--edit-text:#5b6770;
  --wait-bg:#fdf2d9;--wait-text:#b06a12;
  --warn-bg:#fde9e8;--warn-text:#ad3c38;
  --footerH:25px;--sidebarW:235px
}
*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);font:12px var(--f-b);color:var(--text);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}.app{min-height:100vh}
/* ===== HEADER (fixe) ===== */
.top{background:#fff;border-bottom:1px solid var(--line);position:fixed;top:0;left:0;right:0;z-index:40}
.titlebar{height:56px;display:flex;align-items:center;padding:0 18px;gap:12px;background:var(--headerDark);color:var(--headerText)}
.sage-logo{width:30px;height:30px;border-radius:6px;background:var(--green);color:#0b4c3e;font-weight:800;font-size:16px;display:grid;place-items:center;flex-shrink:0}
.brand-logo{height:22px;width:auto;flex-shrink:0;display:block}
.product{font-size:15px;font-weight:700;color:var(--headerText);white-space:nowrap}
.tbar-sep{color:color-mix(in srgb,var(--headerText) 30%,transparent)}
.company{color:color-mix(in srgb,var(--headerText) 82%,transparent);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-wrap{position:relative;margin-left:auto;display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--headerText) 14%,transparent);border:1px solid color-mix(in srgb,var(--headerText) 20%,transparent);border-radius:9px;padding:8px 12px;width:280px;flex-shrink:1;min-width:120px;transition:width .28s cubic-bezier(.4,0,.2,1),background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.search-wrap:hover{background:color-mix(in srgb,var(--headerText) 19%,transparent)}
.search-wrap:focus-within{width:380px;background:rgba(255,255,255,.98);border-color:rgba(255,255,255,.98);box-shadow:0 8px 24px rgba(0,0,0,.22)}
.search-wrap .sicon{color:color-mix(in srgb,var(--headerText) 70%,transparent);font-size:12px;transition:color .2s ease,transform .2s ease}
.search-wrap:focus-within .sicon{color:var(--mintText);transform:scale(1.08)}
.search-input{background:transparent;border:0;outline:0;color:var(--headerText);width:100%;transition:color .2s ease}
.search-input::placeholder{color:color-mix(in srgb,var(--headerText) 62%,transparent);transition:color .2s ease}
.search-wrap:focus-within .search-input{color:#28343a}
.search-wrap:focus-within .search-input::placeholder{color:#a7b1b5}
.search-kbd{font-size:9px;color:color-mix(in srgb,var(--headerText) 55%,transparent);border:1px solid color-mix(in srgb,var(--headerText) 28%,transparent);border-radius:4px;padding:2px 5px;flex-shrink:0;transition:opacity .15s ease,transform .15s ease}
.search-wrap:focus-within .search-kbd{opacity:0;transform:scale(.8)}
.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 36px rgba(11,76,62,.22);padding:6px;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top center;transition:opacity .16s ease,transform .16s cubic-bezier(.34,1.56,.64,1),visibility .16s;z-index:70;max-height:300px;overflow-y:auto}
.search-results.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.search-result-item{display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:7px;cursor:pointer;color:#28343a;transition:background-color .12s ease,padding-left .12s ease}
.search-result-item:hover{background:var(--mint);padding-left:12px}
.search-result-avatar{width:27px;height:27px;border-radius:50%;background:var(--mint);color:var(--mintText);font-weight:700;font-size:10px;display:grid;place-items:center;flex-shrink:0}
.search-result-name{font-size:11px;font-weight:600}
.search-result-sub{font-size:10px;color:var(--muted)}
.search-result-empty{padding:16px 10px;text-align:center;font-size:11px;color:#8a969c}
.search-result-hint{padding:6px 9px 2px;font-size:9px;color:#9aa4a8;text-transform:uppercase;letter-spacing:.4px}
.icon-btn{position:relative;border:0;background:none;color:color-mix(in srgb,var(--headerText) 85%,transparent);font-size:15px;cursor:pointer;padding:6px 8px;border-radius:6px;transition:background-color .12s ease;flex-shrink:0}
.icon-btn:hover{background:color-mix(in srgb,var(--headerText) 14%,transparent)}
.notif-wrap{position:relative}
.notif-badge{position:absolute;top:2px;right:2px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:var(--warn-text);color:#fff;font-size:8px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;border:1.5px solid var(--headerDark)}
.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:340px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 36px rgba(11,76,62,.22);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top right;transition:opacity .16s ease,transform .16s cubic-bezier(.34,1.56,.64,1),visibility .16s;z-index:70;overflow:hidden}
.notif-panel.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--mint)}
.notif-head span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#28343a}
.notif-head a{font-size:10px;color:var(--mintText);cursor:pointer;text-decoration:none}
.notif-head a:hover{text-decoration:underline}
.notif-list{max-height:340px;overflow-y:auto}
.notif-item{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid #f0f2f3;cursor:pointer;position:relative;transition:background-color .12s ease}
.notif-item:last-child{border-bottom:0}
.notif-item:hover{background:#fafcfc}
.notif-item.unread{background:#f4faf8}
.notif-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.notif-icon svg{width:15px;height:15px}
.notif-icon.warn{background:var(--wait-bg);color:var(--wait-text)}
.notif-icon.info{background:var(--calc-bg);color:var(--calc-text)}
.notif-icon.ok{background:var(--ok-bg);color:var(--ok-text)}
.notif-body{flex:1;min-width:0}
.notif-title{font-size:11px;font-weight:700;color:#28343a}
.notif-desc{font-size:10.5px;color:#657078;margin-top:2px;line-height:1.4}
.notif-time{font-size:9px;color:#9aa4a8;margin-top:4px}
.notif-dot{position:absolute;top:14px;right:14px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.notif-empty{padding:26px 14px;text-align:center;font-size:11px;color:#8a969c}
.avatar{width:30px;height:30px;border-radius:50%;border:0;background:color-mix(in srgb,var(--headerText) 18%,transparent);color:var(--headerText);font-weight:700;font-size:11px;display:grid;place-items:center;cursor:pointer;flex-shrink:0}
.menu{height:36px;background:#fff;display:flex;align-items:center;padding:0 16px;gap:2px}
.menu>button{border:0;background:none;padding:7px 12px;color:#3d4c53;cursor:pointer;border-radius:4px;transition:background-color .12s ease,color .12s ease}
.menu>button:hover{background:var(--mint);color:var(--mintText)}
/* ===== DROPDOWN MENU (ouverture au survol, couleur uniquement) ===== */
.menu-item{position:relative}
.menu-item>button{border:0;background:none;padding:7px 12px;color:#3d4c53;cursor:pointer;border-radius:4px;transition:background-color .12s ease,color .12s ease}
.menu-item>button:hover,.menu-item.open>button{background:var(--mint);color:var(--mintText)}
.menu-dropdown{position:absolute;top:100%;left:0;min-width:225px;max-height:min(70vh,480px);overflow-y:auto;background:#fff;border:1px solid var(--line);box-shadow:0 10px 26px rgba(29,39,43,.16);border-radius:0 0 6px 6px;padding:6px 0;opacity:0;visibility:hidden;transition:opacity .14s ease,visibility .14s ease;z-index:60}
.menu-item:hover .menu-dropdown,.menu-item.open .menu-dropdown{opacity:1;visibility:visible}
.menu-dropdown a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:9px 14px;font-size:11px;color:#43515a;text-decoration:none;cursor:pointer;transition:background-color .12s ease,color .12s ease}
.menu-dropdown a .kbd{font-size:9px;color:#9aa4a8;flex-shrink:0}
.menu-dropdown a:hover .kbd{color:var(--mintText)}
.menu-dropdown a:hover{background:var(--mint);color:var(--mintText)}
.menu-dropdown .sep-line{height:1px;background:#eef0f1;margin:5px 0}
.menu-dropdown a.module-active{background:var(--mint);color:var(--mintText);cursor:default}
.menu-dropdown a.module-active::after{content:'● actif';font-size:9px;color:var(--mintText);font-weight:700;flex-shrink:0}
.modgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:11px}
.modgrid .panel-body{color:#4d5b61;line-height:1.5}
@media(max-width:1000px){.modgrid{grid-template-columns:1fr}}
/* ===== TOOLBAR À ICÔNES GROUPÉES ===== */
.toolbar-icons{display:flex;align-items:flex-start;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 18px 8px;gap:0;overflow-x:auto}
.toolgroup{display:flex;flex-direction:column;align-items:center;padding:0 16px}
.toolbtns{display:flex;gap:22px;align-items:flex-start}
.ticon{display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:none;cursor:pointer;padding:2px 4px;border-radius:6px;transition:background-color .12s ease;color:#3d4c53}
.ticon:hover{background:var(--mint)}
.ticon-glyph{width:32px;height:32px;border:1.6px solid var(--green);border-radius:50%;display:grid;place-items:center;color:var(--green);font-size:14px;background:#fff}
.ticon-label{font-size:10px;white-space:nowrap;color:#3d4c53}
.toolgroup-caption{font-size:9px;letter-spacing:.6px;color:#96a1a6;margin-top:7px;text-transform:uppercase}
.toolsep{width:1px;background:var(--line);align-self:stretch;margin:2px 6px 16px}
.tool-search{border:1px solid #cbd5d8;border-radius:6px;padding:6px 9px;background:#fff;width:170px;outline:0;height:32px}.tool-search:focus{border-color:var(--green)}
/* ===== ZONE CENTRALE (sous le header, au-dessus du footer) ===== */
.body{display:flex;position:fixed;top:var(--headerH,178px);left:0;right:0;bottom:var(--footerH);min-height:0}
/* ===== SIDEBAR (fixe) ===== */
.sidebar{width:var(--sidebarW);background:#fff;border-right:1px solid var(--line);padding:13px 10px;flex-shrink:0;height:100%;overflow-y:auto;z-index:30}
.section-title{font-size:10px;text-transform:uppercase;color:#8a969c;letter-spacing:.7px;padding:10px 10px 6px}
.nav a{display:flex;align-items:center;gap:9px;text-decoration:none;color:#526067;padding:9px 10px;border-radius:8px;cursor:pointer;transition:background-color .12s ease,color .12s ease}
.nav a:hover,.nav a.active{background:var(--mint);color:var(--mintText);font-weight:600}
.sub a{padding-left:16px;font-size:11px;gap:7px}
.subicon{color:var(--green);font-size:11px;flex-shrink:0}
.navicon{color:var(--green);flex-shrink:0;display:flex}.navicon svg{width:15px;height:15px}
.nav a.active .navicon,.nav a:hover .navicon{color:var(--mintText)}
/* ===== CONTENU (seule zone qui défile) ===== */
.content{flex:1;min-width:0;height:100%;overflow-y:auto}.content-inner{padding:18px 20px;max-width:1450px}.crumb{font-size:11px;color:#849096;margin-bottom:7px}.page-title{display:flex;justify-content:space-between;align-items:flex-start}.page-title h1{font-size:21px;margin:0 0 4px}.page-title p{margin:0;color:var(--muted)}.actions{display:flex;gap:6px}.btn{border:1px solid #cbd4d7;background:#fff;border-radius:3px;padding:7px 11px;cursor:pointer;color:#3d4c53;transition:background-color .12s ease}.btn:hover{background:#f5f7f8}.btn.green{background:var(--green);border-color:var(--green);color:#fff}
.btn.danger{background:var(--warn-text);border-color:var(--warn-text);color:#fff}
.btn.danger:hover{background:#8f2f2c}
.btn:disabled{opacity:.65;cursor:not-allowed}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:3px;padding:13px 14px}.card .label{font-size:11px;color:#7c898f;text-transform:uppercase;letter-spacing:.3px;padding-right:22px}.card .value{font-size:21px;font-weight:700;margin-top:6px}.card .sub{font-size:10px;color:var(--mintText);margin-top:3px}.card-icon{position:absolute;top:13px;right:13px;color:var(--green);font-size:15px;opacity:.9}
.layout{display:grid;grid-template-columns:1.65fr 1fr;gap:11px;margin-top:11px}
.panel{background:#fff;border:1px solid var(--line);border-radius:3px}
.panel-head{min-height:39px;background:var(--mint);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:8px 12px;gap:8px}
.panel-head h2{font-size:11px;margin:0;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#28343a}
.panel-head .right{margin-left:auto;font-size:11px;color:var(--mintText);cursor:pointer}
.panel-body{padding:12px}
.step{display:flex;align-items:center;gap:9px;margin:10px 0}.stepno{width:23px;height:23px;border:1px solid #ccd5d8;border-radius:50%;display:grid;place-items:center;font-size:10px}.step.done .stepno{background:#e4f5f1;color:#008b78;border-color:#a8dcd3}.step.current .stepno{background:var(--green);color:#fff;border-color:var(--green)}.steptext{flex:1}.steptext b{display:block;font-size:11px}.bar{height:5px;background:#e8edef;margin-top:5px}.bar i{display:block;height:100%;background:var(--green)}
table{width:100%;border-collapse:collapse;font-size:11px}th{background:#f7f8f9;color:#69777d;text-align:left;font-size:9px;text-transform:uppercase;padding:8px;border:1px solid var(--line);position:sticky;top:0;z-index:1}td{padding:8px;border:1px solid #e2e7e9}tr:hover td{background:#fafcfc}
tbody tr[onclick]{cursor:pointer}
tr.row-selected td{background:#eef9f5}tr.row-selected td:first-child{border-left:3px solid var(--green)}
.state{padding:3px 8px;border-radius:4px;font-size:9px;font-weight:700;display:inline-block}
.ok{background:var(--ok-bg);color:var(--ok-text)}
.calc{background:var(--calc-bg);color:var(--calc-text)}
.edit{background:var(--edit-bg);color:var(--edit-text)}
.wait{background:var(--wait-bg);color:var(--wait-text)}
.warn{background:var(--warn-bg);color:var(--warn-text)}
.deadline{display:grid;grid-template-columns:70px 1fr auto;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0f1}.deadline:last-child{border-bottom:0}.date{font-weight:700}
.notice{padding:8px 9px;border-left:3px solid var(--wait-text);background:#fffaf0;margin:6px 0;font-size:10px}.notice.red{border-color:var(--warn-text);background:#fff6f5}.notice.green{border-color:var(--green);background:#f3fbf9}
.bars{display:grid;gap:8px}.barline{display:grid;grid-template-columns:150px 1fr 70px;gap:8px;align-items:center;font-size:10px}.bartrack{height:7px;background:#e7ecee}.bartrack i{display:block;height:100%;background:#7fbeb4}
/* ===== MODALES (aucun dégradé — couleurs pleines) ===== */
.modal-backdrop{position:fixed;inset:0;background:rgba(29,39,43,.34);display:none;align-items:center;justify-content:center;z-index:500}.modal-backdrop.open{display:flex}
.modal{width:min(760px,94vw);max-height:90vh;overflow:auto;background:#fff;border:1px solid #bcc6c9;border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.16)}
.modal-head{height:43px;background:#f5f7f8;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 14px;position:sticky;top:0;z-index:2}.modal-head h3{font-size:13px;margin:0}
.modal-head.colored{height:auto;background:var(--headerDark);border-bottom:0;padding:16px 18px;align-items:flex-start}
.modal-head.colored h3{color:var(--headerText);font-size:16px;font-weight:700}
.modal-head-row{display:flex;align-items:center;gap:13px;flex:1;min-width:0}
.modal-head-avatar{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);color:#fff;font-weight:800;font-size:15px;display:grid;place-items:center;flex-shrink:0}
.modal-sub{color:rgba(255,255,255,.85);font-size:11px;margin-top:3px}
.modal-head.colored .close{color:var(--headerText);opacity:.85;align-self:flex-start}.modal-head.colored .close:hover{opacity:1}
.close{margin-left:auto;border:0;background:none;font-size:20px;color:#66747a;cursor:pointer}
.modal-body{padding:15px}.modal-foot{display:flex;justify-content:flex-end;gap:6px;padding:10px 14px;border-top:1px solid var(--line);background:#fafbfb;position:sticky;bottom:0}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field label{display:block;font-size:10px;font-weight:700;margin-bottom:4px;color:#536168}.field input,.field select,.field textarea{width:100%;border:1px solid #cbd5d8;border-radius:3px;padding:7px;background:#fff;outline:0;font-family:inherit;font-size:11px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green)}.field input[readonly]{background:#f2f4f4;color:#6b7780;cursor:not-allowed}.full{grid-column:1/-1}
.section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#536168;margin:16px 0 8px}
.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:14px;gap:2px}
.tab{border:0;background:none;padding:9px 13px;color:#68767c;cursor:pointer;font-weight:600;border-bottom:2px solid transparent;transition:color .12s ease,border-color .12s ease}
.tab:hover{color:var(--mintText)}.tab.active{color:var(--mintText);border-bottom:2px solid var(--green)}
.tabpanel{display:none}.tabpanel.active{display:block}
.doclist{display:flex;flex-direction:column;gap:0}.docrow{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid #edf0f1;font-size:11px}.docrow:last-child{border-bottom:0}.docicon{width:26px;height:26px;border-radius:4px;background:var(--mint);color:var(--mintText);display:grid;place-items:center;font-size:12px;flex-shrink:0}.docname{flex:1}.docdate{color:#8a969c;font-size:10px}
.toast{position:fixed;right:18px;bottom:18px;background:#28343a;color:#fff;border-radius:5px;padding:10px 14px;padding-left:15px;display:flex;align-items:center;gap:9px;font-size:11.5px;box-shadow:0 10px 28px rgba(0,0,0,.22);z-index:600;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.toast.show{opacity:1;visibility:visible;transform:translateY(0)}
.toast .toast-icn{flex-shrink:0;display:flex}.toast .toast-icn svg{width:15px;height:15px}
.toast.success{background:#0b6b5e}.toast.success .toast-icn{color:#7bf0da}
.toast.error{background:#7a2321}.toast.error .toast-icn{color:#ffb4b0}
.toast.info{background:#28343a}.toast.info .toast-icn{color:#8fd6cc}

/* ===== SPINNER / ÉTATS DE CHARGEMENT DES BOUTONS ===== */
.spinner{width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;display:inline-block;vertical-align:-2px;margin-right:6px;animation:spin .65s linear infinite;flex-shrink:0}
.btn:not(.green) .spinner{border-color:rgba(61,76,83,.28);border-top-color:#3d4c53}
@keyframes spin{to{transform:rotate(360deg)}}
button.is-loading,a.btn.is-loading{pointer-events:none;opacity:.82;cursor:default}
button.is-loading .btn-label,a.btn.is-loading .btn-label{opacity:.85}
.ticon.is-loading{opacity:.6;pointer-events:none}
.ticon.is-loading .ticon-glyph svg{display:none}
.ticon.is-loading .ticon-glyph::after{content:'';width:13px;height:13px;border-radius:50%;border:2px solid #cfe9e5;border-top-color:var(--green);display:block;animation:spin .65s linear infinite}
input:disabled,select:disabled,textarea:disabled{background:#f2f4f4;color:#8a969c;cursor:not-allowed}

/* ===== ACTIONS DE LIGNE (icônes compactes dans les tableaux) ===== */
.row-actions-cell{white-space:nowrap;width:1%;text-align:right}
.row-action{border:1px solid transparent;background:none;color:#4c5a60;cursor:pointer;padding:5px;border-radius:5px;display:inline-flex;margin-left:2px;transition:background-color .12s ease,color .12s ease}
.row-action svg{width:14px;height:14px;display:block}
.row-action:hover{background:var(--mint);color:var(--mintText)}
.row-action.danger:hover{background:var(--warn-bg);color:var(--warn-text)}
.check-cell{width:1%}
input[type="checkbox"].rowcheck{width:14px;height:14px;cursor:pointer;accent-color:var(--green)}
.selection-bar{display:none;align-items:center;gap:10px;background:var(--mint);border:1px solid #b8e6dd;border-radius:4px;padding:8px 12px;margin-bottom:10px;font-size:11px;color:#0b6b5e}
.selection-bar.show{display:flex}
.selection-bar b{color:#054d43}
.selection-bar .actions{margin-left:auto;display:flex;gap:6px}
.empty-state{text-align:center;padding:34px 14px;color:#8a969c}
.empty-state svg{width:30px;height:30px;color:#c3cdd0;margin-bottom:8px}
.empty-state .t{font-size:11.5px;font-weight:600;color:#69777d}
.field small.hint{display:block;color:#8a969c;font-size:9.5px;margin-top:3px;font-weight:400}
.modal-body .warn-box{display:flex;gap:9px;background:var(--wait-bg);border-left:3px solid var(--wait-text);padding:9px 10px;font-size:11px;color:#6b4b0d;border-radius:3px;margin-bottom:14px}
.modal-body .warn-box.danger{background:var(--warn-bg);border-color:var(--warn-text);color:#7a2321}
.modal-body .warn-box svg{width:16px;height:16px;flex-shrink:0;margin-top:1px}
fieldset.field-fieldset{border:0;padding:0;margin:0}
/* ===== ÉLÉMENTS PAGE SALARIÉS / FICHES ===== */
.avatar-lg{width:38px;height:38px;border-radius:50%;background:var(--mint);color:var(--mintText);font-weight:700;display:grid;place-items:center;font-size:14px}
.profile-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.profile-head b{display:block;font-size:13px}.profile-head span{font-size:10px;color:var(--muted)}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-bottom:12px}.kv div .k{font-size:9px;text-transform:uppercase;color:#8a969c;letter-spacing:.4px}.kv div .v{font-size:11px;margin-top:2px;font-weight:600}
.hist{padding:7px 0;border-bottom:1px solid #edf0f1;font-size:10.5px;color:#4d5b61}.hist:last-child{border-bottom:0}.hist b{color:#28343a}
.total-row{display:flex;justify-content:flex-end;gap:6px;padding:8px 2px 2px;font-size:11px;color:#536168}.total-row b{color:#28343a}
/* ===== FOOTER (fixe) ===== */
.footer{height:var(--footerH);background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 14px;font-size:9px;color:#7d898e;position:fixed;bottom:0;left:0;right:0;z-index:40}.footer span:last-child{margin-left:auto}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}.sidebar{width:205px}:root{--sidebarW:205px}}
.icn{flex-shrink:0}
.ticon-glyph svg,.card-icon svg,.icon-btn svg,.close svg,.navicon svg,.subicon svg,.sicon svg{display:block}
.ticon-glyph svg{width:16px;height:16px}
.card-icon svg{width:16px;height:16px}
.subicon svg{width:13px;height:13px}
.icon-btn svg{width:16px;height:16px}
.sicon svg{width:13px;height:13px}
.close svg{width:16px;height:16px}
.btn svg{display:inline-block;width:14px;height:14px;vertical-align:-2px;margin-right:5px}
.navicon svg{width:15px;height:15px}
#mi-modules>button svg{width:13px;height:13px;vertical-align:-2px;flex-shrink:0}
a.ticon{text-decoration:none;color:#3d4c53}
a.ticon:visited{color:#3d4c53}
a.ticon .ticon-label{color:inherit}
a.btn{text-decoration:none;display:inline-block}
.panel-head .right{text-decoration:none;display:inline-block}

/* =====================================================================
 * v8 — Corrections d'interface + système d'animations fluides
 * (micro-interactions inspirées de Rare UI — https://rareui.com)
 * ===================================================================== */
:root{
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-in:cubic-bezier(.55,0,1,.45);
  --dur-fast:.14s;--dur:.22s;--dur-slow:.38s;
  --sidebarW:235px;--sidebarCollapsedW:62px
}
/* ---------- En-tête ---------- */
.brand-link{display:flex;align-items:center;flex-shrink:0;border-radius:6px;transition:opacity var(--dur) ease,transform var(--dur) var(--ease-spring)}
.brand-link:hover{opacity:.85;transform:scale(1.03)}
.icon-btn{display:grid;place-items:center;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}
.icon-btn:active{transform:scale(.92)}
.icon-btn svg{width:17px;height:17px}
.bell-btn svg{width:18px;height:18px;overflow:visible}
.bell-btn .rb-swing{transform-box:view-box;transform-origin:50% 12%;will-change:transform}
.bell-btn .rb-clapper{transform-box:fill-box;transform-origin:50% 0%;will-change:transform}
.notif-badge{transform:scale(0);opacity:0;transition:transform .35s var(--ease-spring),opacity .2s ease;overflow:hidden;display:flex}
.notif-badge.show{transform:scale(1);opacity:1}
.notif-badge .nb-num{display:inline-block}
.notif-badge.bump .nb-num{animation:nbRoll .42s var(--ease-spring)}
@keyframes nbRoll{0%{transform:translateY(90%);opacity:0}100%{transform:translateY(0);opacity:1}}
.avatar{transition:background-color var(--dur) ease,transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) ease}
.avatar:hover{background:color-mix(in srgb,var(--headerText) 28%,transparent);box-shadow:0 0 0 3px rgba(1,183,168,.35)}
.avatar:active{transform:scale(.93)}
.notif-head .avatar-lg{background:#fff}
.menu-list{padding:6px}
.menu-list .docrow{text-decoration:none;color:#28343a;cursor:pointer;border-radius:7px;border-bottom:0;padding:8px;transition:background-color var(--dur-fast) ease,padding-left var(--dur) var(--ease-out)}
.menu-list .docrow:hover{background:var(--mint);padding-left:12px}
.menu-list .docrow.danger{color:var(--warn-text)}
.menu-list .docrow.danger .docicon{background:var(--warn-bg);color:var(--warn-text)}
.menu-list .docrow.danger:hover{background:var(--warn-bg)}
.docicon svg{width:14px;height:14px;display:block}
.notif-item{transition:background-color var(--dur-fast) ease,transform var(--dur) var(--ease-out),opacity var(--dur) ease}
.notif-item.enter{animation:notifIn .45s var(--ease-spring) both}
@keyframes notifIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.notif-dot{transition:transform .25s var(--ease-in),opacity .25s ease}
.notif-item:not(.unread) .notif-dot{transform:scale(0);opacity:0}

/* ---------- Barre de menus ---------- */
.menu{gap:2px}
.sb-toggle{border:0;background:none;width:30px;height:28px;border-radius:6px;display:grid;place-items:center;cursor:pointer;color:#7a7a7a;margin-right:4px;position:relative;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease}
.sb-toggle:hover{background:var(--mint);color:var(--mintText)}
.sb-toggle:active{transform:scale(.92)}
.sb-toggle>span{position:absolute;inset:0;display:grid;place-items:center;transition:opacity var(--dur) ease,transform var(--dur-slow) var(--ease-spring)}
.sb-toggle svg{width:17px;height:17px;display:block}
.sb-toggle .sbt-closed{opacity:0;transform:rotate(-90deg) scale(.6)}
html.sb-collapsed .sb-toggle .sbt-open{opacity:0;transform:rotate(90deg) scale(.6)}
html.sb-collapsed .sb-toggle .sbt-closed{opacity:1;transform:none}
.mi-modules-btn{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--mintText)!important}
.mi-modules-btn svg{width:13px;height:13px;flex-shrink:0}
.menu-item .chev{width:12px!important;height:12px!important;transition:transform var(--dur) var(--ease-out)}
.menu-item.open .chev,.menu-item:hover .chev{transform:rotate(180deg)}
/* Menus déroulants : ouverture animée (glissement + fondu) */
.menu-dropdown{transform:translateY(-6px) scale(.985);transform-origin:top left;transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),visibility var(--dur);box-shadow:0 14px 34px rgba(29,39,43,.16)}
.menu-item:hover .menu-dropdown,.menu-item.open .menu-dropdown{transform:none}
.menu-dropdown a{transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,padding-left var(--dur) var(--ease-out)}
.menu-dropdown a:hover{padding-left:18px}
/* BUG CORRIGÉ : icônes démesurées dans le menu « Modules » (aucune taille imposée) */
.menu-dropdown svg{width:15px;height:15px;flex-shrink:0;display:block}
.modules-dropdown{min-width:310px;padding:6px}
.modules-dropdown .md-caption{padding:7px 10px 5px;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#9aa4a8}
.modules-dropdown a{justify-content:flex-start;gap:10px;padding:7px 10px;border-radius:7px}
.modules-dropdown a:hover{padding-left:13px}
.modules-dropdown a.strong{font-weight:700}
.modules-dropdown .md-ico{width:26px;height:26px;border-radius:7px;background:#f1f5f5;color:var(--green);display:grid;place-items:center;flex-shrink:0;transition:background-color var(--dur) ease,color var(--dur) ease,transform var(--dur) var(--ease-spring)}
.modules-dropdown .md-ico svg{width:14px;height:14px}
.modules-dropdown a:hover .md-ico{background:#fff;transform:scale(1.08) rotate(-4deg)}
.modules-dropdown a.module-active .md-ico{background:var(--green);color:#fff}
.modules-dropdown .md-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-dropdown a.module-active::after{margin-left:auto}
.modules-dropdown .sep-line{margin:5px 4px}

/* ---------- Barre d'outils ---------- */
.ticon{transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}
.ticon-glyph{transition:transform var(--dur) var(--ease-spring),background-color var(--dur) ease,color var(--dur) ease,box-shadow var(--dur) ease}
.ticon:hover .ticon-glyph{transform:translateY(-2px);background:var(--green);color:#fff;box-shadow:0 6px 14px rgba(1,183,168,.28)}
.ticon:active .ticon-glyph{transform:scale(.9)}

/* ---------- Barre latérale (repliable + indicateur glissant) ---------- */
.sidebar{position:relative;transition:width var(--dur-slow) var(--ease-out),padding var(--dur-slow) var(--ease-out);overflow-x:hidden}
.nav{position:relative;z-index:1}
.nav a{position:relative;white-space:nowrap;transition:color var(--dur-fast) ease,background-color var(--dur) ease}
.nav a:hover,.nav a.active{font-weight:600}
.nav-label{overflow:hidden;text-overflow:ellipsis;transition:opacity var(--dur) ease}
.sub .navicon svg{width:14px;height:14px}
.navicon{transition:transform var(--dur) var(--ease-spring)}
.nav a:hover .navicon{transform:scale(1.12)}
.nav-indicator{position:absolute;left:10px;right:10px;top:0;height:0;border-radius:8px;background:var(--mint);opacity:0;pointer-events:none;z-index:0;
  transition:transform .42s var(--ease-spring),height .3s var(--ease-out),opacity .2s ease;will-change:transform}
.nav-indicator::before{content:'';position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:3px;background:var(--green);transform:scaleY(0);transition:transform .3s var(--ease-spring)}
.nav-indicator.on-active::before{transform:scaleY(1)}
html.js-nav .nav a.active,html.js-nav .nav a:hover{background:transparent}
.section-title{white-space:nowrap;overflow:hidden;transition:opacity var(--dur) ease,height var(--dur) ease,padding var(--dur) ease}
html.sb-collapsed{--sidebarW:var(--sidebarCollapsedW)}
html.sb-collapsed .sidebar{padding:13px 8px}
html.sb-collapsed .nav-label{opacity:0;width:0}
html.sb-collapsed .section-title{opacity:0;height:8px;padding:0}
html.sb-collapsed .nav a,html.sb-collapsed .sub a{justify-content:center;padding:9px 0;gap:0}
html.sb-collapsed .nav-indicator{left:8px;right:8px}
html.sb-collapsed .sub .navicon svg{width:15px;height:15px}
.sb-tip{position:fixed;z-index:1200;background:#28343a;color:#fff;font-size:11px;padding:5px 9px;border-radius:6px;pointer-events:none;opacity:0;transform:translateX(-4px);transition:opacity .12s ease,transform .18s var(--ease-out);white-space:nowrap}
.sb-tip.show{opacity:1;transform:none}

/* ---------- Contenu : entrée de page, cartes, panneaux ---------- */
.page-enter{animation:pageIn .42s var(--ease-out) both}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.crumb-sep{color:#c3cdd0;margin:0 2px}
.cards>.card,.layout>.panel,.modgrid>.panel{animation:riseIn .5s var(--ease-out) both}
.cards>.card:nth-child(2){animation-delay:.04s}.cards>.card:nth-child(3){animation-delay:.08s}.cards>.card:nth-child(4){animation-delay:.12s}
.layout>.panel:nth-child(2){animation-delay:.08s}
@keyframes riseIn{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}
.card{transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) ease,border-color var(--dur) ease}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(29,39,43,.08);border-color:#c7d3d6}
.card .card-icon{transition:transform .35s var(--ease-spring)}
.card:hover .card-icon{transform:scale(1.15) rotate(-6deg)}
.card .value small{font-size:12px;color:var(--muted);font-weight:600}
a.card{display:block;text-decoration:none;color:inherit}
.kpi .kpi-link{color:var(--mintText);white-space:nowrap}
.kpi:hover .kpi-link{text-decoration:underline}
.sub .up{color:var(--ok-text);font-weight:700}.sub .down{color:var(--warn-text);font-weight:700}
.value.flash{animation:valFlash .9s ease}
@keyframes valFlash{0%{color:var(--green)}100%{color:inherit}}
.bartrack i,.bar i{transform-origin:left;animation:growX .8s var(--ease-out) both}
@keyframes growX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
a.deadline{text-decoration:none;color:inherit;border-radius:6px;transition:background-color var(--dur-fast) ease,padding var(--dur) var(--ease-out)}
a.deadline:hover{background:#f6fafa;padding-left:6px;padding-right:6px}
tbody tr{transition:background-color var(--dur-fast) ease}
tbody tr td{transition:background-color var(--dur-fast) ease}
.state{transition:transform var(--dur) var(--ease-spring)}
tr:hover .state{transform:scale(1.04)}
.table-scroll{overflow:auto;border-radius:3px}
table.plain td{border:0;border-bottom:1px solid #eef0f1;padding:9px 6px}
kbd{display:inline-block;min-width:20px;text-align:center;font:600 10px/1 var(--f-b);padding:4px 6px;border:1px solid #cfd8db;border-bottom-width:2px;border-radius:5px;background:#f7f9f9;color:#3d4c53}
.empty-inline{padding:14px;text-align:center;font-size:11px;color:#8a969c}
.live-chip{display:inline-flex;align-items:center;gap:5px;margin-left:8px;font-size:10px;color:var(--mintText);background:var(--mint);padding:2px 8px;border-radius:20px;vertical-align:1px}
.live-dot{width:7px;height:7px;border-radius:50%;background:#b9c4c7;display:inline-block;flex-shrink:0}
.live-dot.on{background:var(--green);animation:livePulse 2s ease-out infinite}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(1,183,168,.55)}70%{box-shadow:0 0 0 6px rgba(1,183,168,0)}100%{box-shadow:0 0 0 0 rgba(1,183,168,0)}}
.footer-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.footer a{color:var(--mintText);text-decoration:none}.footer a:hover{text-decoration:underline}

/* ---------- Onglets : soulignement glissant ---------- */
.tabs{position:relative}
.tab-ink{position:absolute;bottom:-1px;left:0;height:2px;background:var(--green);border-radius:2px;transition:transform .38s var(--ease-spring),width .3s var(--ease-out);pointer-events:none}
html.js-tabs .tab.active{border-bottom-color:transparent}
.tabpanel.active{animation:fadeUp .3s var(--ease-out)}
@keyframes fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* ---------- Boutons ---------- */
.btn{transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) ease;position:relative;overflow:hidden}
.btn:active:not(:disabled){transform:scale(.97)}
.btn.green:hover{background:#00a193;box-shadow:0 4px 12px rgba(1,183,168,.3)}
.btn .ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.18;transform:scale(0);animation:ripple .55s var(--ease-out) forwards;pointer-events:none}
@keyframes ripple{to{transform:scale(2.6);opacity:0}}
.row-action{transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-spring)}
.row-action:hover{transform:scale(1.12)}
.row-action:active{transform:scale(.9)}

/* ---------- Modales (BUG CORRIGÉ : affichées au-dessus de tout) ---------- */
.modal-backdrop{display:flex;visibility:hidden;opacity:0;pointer-events:none;z-index:1000;background:rgba(13,24,30,.42);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);
  transition:opacity var(--dur) ease,visibility 0s linear var(--dur),backdrop-filter var(--dur) ease}
.modal-backdrop.open{visibility:visible;opacity:1;pointer-events:auto;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);transition:opacity var(--dur) ease,visibility 0s,backdrop-filter var(--dur) ease}
.modal{transform:translateY(14px) scale(.965);opacity:0;transition:transform .34s var(--ease-spring),opacity .2s ease;box-shadow:0 24px 60px rgba(13,24,30,.28)}
.modal-backdrop.open .modal{transform:none;opacity:1}
.modal-backdrop.closing .modal{transform:translateY(8px) scale(.98);opacity:0;transition:transform .18s var(--ease-in),opacity .16s ease}
.modal-backdrop.shake .modal{animation:shake .38s ease}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.modal-head-avatar svg{width:20px;height:20px}
.close{border-radius:6px;display:grid;place-items:center;width:28px;height:28px;transition:background-color var(--dur-fast) ease,transform var(--dur) var(--ease-spring)}
.close:hover{background:rgba(0,0,0,.06);transform:rotate(90deg)}
.modal-head.colored .close:hover{background:rgba(255,255,255,.14)}
.help-row{text-decoration:none;color:inherit;border-radius:7px;transition:background-color var(--dur-fast) ease,padding-left var(--dur) var(--ease-out)}
a.help-row:hover{background:var(--mint);padding-left:10px}
.help-row .docsub{font-size:10px;color:var(--muted);margin-top:2px;font-weight:400}
.docgo{color:#9aa4a8;display:flex;transition:transform var(--dur) var(--ease-spring)}
.docgo svg{width:14px;height:14px}
a.help-row:hover .docgo{transform:translateX(3px);color:var(--mintText)}

/* ---------- Toasts ---------- */
.toast{z-index:1100;transform:translateY(16px) scale(.96);transition:opacity .2s ease,transform .38s var(--ease-spring),visibility .2s;overflow:hidden}
.toast.show{transform:none}
.toast .toast-bar{position:absolute;left:0;bottom:0;height:2px;background:rgba(255,255,255,.5);transform-origin:left;animation:toastBar var(--toast-dur,3.2s) linear forwards}
@keyframes toastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.toast .toast-icn svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .5s .1s var(--ease-out) forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* ---------- Recherche globale ---------- */
.search-results{max-height:min(460px,70vh)}
.search-group{padding:8px 9px 3px;font-size:9px;color:#9aa4a8;text-transform:uppercase;letter-spacing:.4px}
.search-result-item{text-decoration:none}
.search-result-item.kb{background:var(--mint);padding-left:12px}
.search-result-item mark{background:#fff1c2;color:inherit;border-radius:2px;padding:0 1px}
.search-results.open .search-result-item{animation:srIn .28s var(--ease-out) both}
@keyframes srIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.search-spinner{width:12px;height:12px;border-radius:50%;border:2px solid #cfe9e5;border-top-color:var(--green);animation:spin .65s linear infinite;flex-shrink:0;display:none}
.search-wrap.loading .search-spinner{display:block}

/* ---------- Micro-interactions des icônes Rare UI (au survol du parent) ---------- */
svg.rare *{transition:transform .35s var(--ease-spring)}
a:hover>.navicon svg[data-icon="rare-house"] .rh-door,a:hover svg[data-icon="rare-house"] .rh-door{transform:translateY(-1.5px)}
svg[data-icon="rare-mail"] .rm-flap{transform-box:fill-box;transform-origin:50% 0}
a:hover svg[data-icon="rare-mail"] .rm-flap,button:hover svg[data-icon="rare-mail"] .rm-flap{transform:scaleY(-.6) translateY(-2px)}
svg[data-icon="rare-briefcase"] .rbc-handle{transform-box:fill-box;transform-origin:50% 100%}
a:hover svg[data-icon="rare-briefcase"] .rbc-handle{transform:translateY(-1.5px)}
a:hover svg[data-icon="rare-briefcase"] .rbc-lock{transform:translateY(1px)}
svg[data-icon="rare-info"] .ri-dot{transform-box:fill-box;transform-origin:center}
button:hover svg[data-icon="rare-info"] .ri-dot,a:hover svg[data-icon="rare-info"] .ri-dot{animation:dotHop .5s var(--ease-spring)}
@keyframes dotHop{40%{transform:translateY(-3px)}}
svg[data-icon="rare-book"]{transform-origin:center;transition:transform .35s var(--ease-spring)}
a:hover svg[data-icon="rare-book"]{transform:perspective(40px) rotateY(-12deg)}
svg[data-icon="rare-trash"] .rt-lid{transform-box:fill-box;transform-origin:0% 100%}
button:hover svg[data-icon="rare-trash"] .rt-lid{transform:rotate(-14deg) translateY(-1px)}
svg[data-icon="rare-check"] .rc-draw{stroke-dasharray:24;stroke-dashoffset:24;animation:draw .45s var(--ease-out) forwards}

/* ---------- Accessibilité : mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
/* ---------- Impression : uniquement le contenu ---------- */
@media print{
  .top,.sidebar,.footer,.toast,.modal-backdrop,.actions,.row-actions-cell{display:none!important}
  .body{position:static!important}.content{overflow:visible;height:auto}
  body{background:#fff}.card,.panel{break-inside:avoid;box-shadow:none;animation:none}
}
.menu-item.force-closed:hover .menu-dropdown{opacity:0;visibility:hidden}
.toolbar-icons:empty{display:none}
/* Harmonisation : boutons alignés (lien ou bouton), champs des tableaux de saisie stylés */
.btn,a.btn{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1.2;text-decoration:none}
td input:not([type=checkbox]):not([type=radio]),td select,td textarea{width:100%;border:1px solid #cbd5d8;border-radius:3px;padding:5px 7px;background:#fff;font:inherit;font-size:11px;outline:0;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}
td input:focus,td select:focus,td textarea:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(1,183,168,.14)}
.field input,.field select,.field textarea{transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}
/* ===== BUG CORRIGÉ : icônes démesurées (tableaux, encadrés hors modale…) =====
 * Une icône sans conteneur dimensionné prenait toute la largeur disponible
 * (jusqu'à 1 165 px sur Taux de change / Fiscalité / Prédictif, 264 px dans
 * Discipline, 167 px dans la File d'approbation). Taille par défaut unique ;
 * les conteneurs spécifiques (boutons, cartes, navigation…) la surchargent. */
svg.icn{width:16px;height:16px;flex-shrink:0;display:inline-block;vertical-align:-3px}
td>svg.icn,th>svg.icn{width:14px;height:14px;margin-right:4px;vertical-align:-2px;color:var(--mintText)}
.warn-box{display:flex;gap:9px;background:var(--wait-bg);border-left:3px solid var(--wait-text);padding:9px 10px;font-size:11px;color:#6b4b0d;border-radius:3px;margin-bottom:14px;line-height:1.5}
.warn-box.danger{background:var(--warn-bg);border-color:var(--warn-text);color:#7a2321}
.warn-box.info{background:var(--calc-bg);border-color:var(--calc-text);color:#24467f}
.warn-box>svg,.warn-box>svg.icn{width:16px;height:16px;flex-shrink:0;margin-top:1px;vertical-align:0}
.state svg,.state svg.icn{width:11px;height:11px;vertical-align:-1px;margin-right:2px}
.notice svg.icn{width:13px;height:13px;vertical-align:-2px}
.panel-head svg.icn{width:14px;height:14px;color:var(--mintText)}
.page-title h1 svg.icn{width:20px;height:20px;vertical-align:-3px}
.empty-state svg.icn{width:30px;height:30px}
.card .value svg.icn{width:18px;height:18px}

/* =====================================================================
 * Graphiques (charts.js) — style inspiré des tableaux de bord modernes
 * ===================================================================== */
.chart{position:relative;min-width:0}
.chart-canvas{position:relative;width:100%;min-height:120px}
.chart-canvas svg{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}
.chart .grid{stroke:#e9eeef;stroke-width:1;stroke-dasharray:3 4}
.chart .ax{font-size:10px;fill:#8a969c;font-family:inherit}
.chart .ln{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.chart .ln.dashed{stroke-dasharray:5 5;stroke-width:1.6}
.chart .target{stroke:#0b5d57;stroke-width:1.2;stroke-dasharray:6 5;opacity:.55}
.chart .target-l{font-size:9.5px;fill:#0b5d57;font-weight:700;opacity:.8}
.chart .guide{stroke:#0b5d57;stroke-width:1;stroke-dasharray:3 3;opacity:.45;pointer-events:none;transition:x1 .12s,x2 .12s}
.chart .bar{transition:opacity .15s}
.chart svg:hover .bar{opacity:.85}.chart svg .bar:hover{opacity:1}
.chart .col-tag{fill:#fff;stroke:#cfe5e1}
.chart .col-tag-t{font-size:10px;font-weight:700;fill:#0b5d57}
.chart .bub-t{font-size:15px;font-weight:700;fill:#0b3b37}.chart .bub-t.inv{fill:#fff}
.chart .donut-v{font-size:19px;font-weight:800;fill:#28343a}.chart .donut-l{font-size:9.5px;fill:#8a969c;text-transform:uppercase;letter-spacing:.4px}
.chart-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:10.5px;color:#5b6770;margin:0 0 8px}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}
.chart-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}
.chart-tip{position:absolute;top:6px;left:0;pointer-events:none;background:#fff;border:1px solid #dde5e7;border-radius:8px;box-shadow:0 10px 26px rgba(13,24,30,.14);padding:7px 9px;font-size:10.5px;min-width:130px;opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .18s var(--ease-out),left .12s var(--ease-out);z-index:3}
.chart-tip.show{opacity:1;transform:none}
.chart-tip b{display:block;margin-bottom:4px;color:#28343a}
.chart-tip div{display:flex;align-items:center;gap:6px;color:#5b6770;white-space:nowrap}
.chart-tip div span{margin-left:auto;font-weight:700;color:#28343a;padding-left:10px}
.chart-tip i{width:7px;height:7px;border-radius:50%}
.chart-empty{display:grid;place-items:center;min-height:140px;font-size:11px;color:#9aa4a8;background:#f7f9f9;border-radius:8px}
.chart-skeleton{height:160px;border-radius:8px;background:#eef3f3;animation:skel 1.2s ease-in-out infinite alternate}
@keyframes skel{to{opacity:.55}}
.chart-pulse .chart-canvas{animation:chartPulse .9s ease}
@keyframes chartPulse{0%{filter:none}30%{filter:drop-shadow(0 0 6px rgba(1,183,168,.35))}100%{filter:none}}
/* Animations d'entrée */
.chart .a-draw{stroke-dasharray:3000;stroke-dashoffset:3000;animation:chDraw 1.4s var(--ease-out) forwards}
@keyframes chDraw{to{stroke-dashoffset:0}}
.chart .a-fade{opacity:0;animation:chFade .8s .35s ease forwards}
@keyframes chFade{to{opacity:1}}
.chart .a-grow{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);animation:chGrow .75s var(--ease-spring) forwards}
@keyframes chGrow{to{transform:scaleY(1)}}
.chart .a-pop{transform-box:fill-box;transform-origin:center;transform:scale(0);animation:chPop .6s var(--ease-spring) forwards}
@keyframes chPop{to{transform:scale(1)}}
.chart .a-ring{stroke-dasharray:0 9999!important;animation:chRing 1s var(--ease-out) forwards}
@keyframes chRing{to{stroke-dasharray:var(--len) 9999}}
.hbars{display:grid;gap:9px}
.hbar-row{display:grid;grid-template-columns:minmax(90px,34%) 1fr auto;gap:10px;align-items:center;font-size:11px}
.hbar-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#4d5b61}
.hbar-track{height:8px;background:#edf2f2;border-radius:6px;overflow:hidden}
.hbar-track i{display:block;height:100%;border-radius:6px}
.hbar-row b{font-size:11px;color:#28343a;white-space:nowrap}
.a-growx{transform-origin:left;transform:scaleX(0);animation:chGrowX .9s var(--ease-out) forwards}
@keyframes chGrowX{to{transform:scaleX(1)}}
/* Grille de tuiles de graphiques */
.chart-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:11px;margin-top:11px}
.chart-grid>.tile{grid-column:span 4}.chart-grid>.tile.w6{grid-column:span 6}.chart-grid>.tile.w8{grid-column:span 8}.chart-grid>.tile.w12{grid-column:span 12}
.tile{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-width:0;animation:riseIn .5s var(--ease-out) both;transition:box-shadow var(--dur) ease,border-color var(--dur) ease}
.tile:hover{box-shadow:0 10px 26px rgba(29,39,43,.07);border-color:#c9d6d9}
.tile-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.tile-h h3{margin:0;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:#28343a;font-weight:700}
.tile-h .live-dot{margin-left:auto}
.tile-h a{margin-left:auto;font-size:10.5px;color:var(--mintText);text-decoration:none}
.tile-kpis{display:flex;gap:22px;margin-bottom:10px;flex-wrap:wrap}
.tile-kpi{border-left:3px solid #0b5d57;padding-left:10px}
.tile-kpi.alt{border-color:#9ed8cf}
.tile-kpi .v{font-size:20px;font-weight:800;color:#1f2a30;letter-spacing:-.3px}
.tile-kpi .l{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#8a969c;margin-top:2px}
.tile.promo{background:#f1faf8;border-color:#cbe9e3;display:flex;flex-direction:column;justify-content:center}
.tile.promo h4{margin:0 0 6px;font-size:14px;color:#0b3b37}.tile.promo p{margin:0 0 12px;font-size:11px;color:#4d6a66;line-height:1.5}
@media(max-width:1100px){.chart-grid>.tile,.chart-grid>.tile.w8{grid-column:span 6}}
@media(max-width:760px){.chart-grid>.tile,.chart-grid>.tile.w6,.chart-grid>.tile.w8{grid-column:span 12}}

/* =====================================================================
 * Kanban (board.js) — glisser-déposer
 * ===================================================================== */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:10px;overflow-x:auto;padding:2px 2px 10px;margin-top:11px;scroll-behavior:smooth;scrollbar-width:thin}
.kb-col{background:#f3f6f6;border:1px solid #e1e8ea;border-radius:12px;display:flex;flex-direction:column;min-height:260px;max-height:calc(100vh - var(--headerH,178px) - 170px);transition:background-color .2s ease,border-color .2s ease,opacity .2s ease,transform .25s var(--ease-spring)}
.kb-col>header{display:flex;align-items:center;gap:7px;padding:10px 12px 8px;position:sticky;top:0}
.kb-col>header .kb-dot{width:8px;height:8px;border-radius:50%;background:var(--c,#9aa4a8);box-shadow:0 0 0 3px color-mix(in srgb,var(--c,#9aa4a8) 20%,transparent)}
.kb-col>header h3{margin:0;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:#28343a}
.kb-count{margin-left:auto;font-size:10px;background:#fff;border:1px solid #dfe6e8;border-radius:20px;padding:1px 8px;color:#5b6770;font-weight:700}
.kb-total{display:block;padding:0 12px 8px;font-size:10.5px;color:#6a7a80;font-weight:600}
.kb-list{flex:1;overflow-y:auto;padding:4px 8px 10px;display:flex;flex-direction:column;gap:8px;min-height:60px}
.kb-col.is-empty .kb-list::after{content:'Glissez une carte ici';display:grid;place-items:center;height:70px;border:1.5px dashed #d3dde0;border-radius:9px;font-size:10.5px;color:#a5b0b4}
.kb-active .kb-col.kb-denied{opacity:.45}
.kb-active .kb-col.kb-allowed{background:#ebf8f5;border-color:#a9dfd6}
.kb-col.kb-over{background:#dff4f0!important;border-color:var(--green)!important;transform:translateY(-2px)}
.kb-card{background:#fff;border:1px solid #e1e8ea;border-radius:10px;padding:10px 11px;cursor:grab;user-select:none;touch-action:none;position:relative;box-shadow:0 1px 2px rgba(13,24,30,.04);transition:box-shadow .2s ease,border-color .2s ease,opacity .2s ease,transform .2s var(--ease-out);animation:riseIn .4s var(--ease-out) both}
.kb-card:hover{box-shadow:0 8px 20px rgba(13,24,30,.09);border-color:#c9d6d9;transform:translateY(-1px)}
.kb-card.kb-dragging{opacity:0}
.kb-card.kb-locked{cursor:default}
.kb-card.kb-pending{opacity:.6;pointer-events:none}
.kb-card.kb-pending::after{content:'';position:absolute;top:9px;right:9px;width:12px;height:12px;border-radius:50%;border:2px solid #cfe9e5;border-top-color:var(--green);animation:spin .65s linear infinite}
.kb-card.kb-landed{animation:kbLand .9s ease}
@keyframes kbLand{0%{box-shadow:0 0 0 0 rgba(1,183,168,.55)}100%{box-shadow:0 0 0 10px rgba(1,183,168,0)}}
.kb-card.kb-shake{animation:shake .4s ease}
.kb-ghost{position:fixed;left:0;top:0;z-index:1500;pointer-events:none;cursor:grabbing;box-shadow:0 22px 44px rgba(13,24,30,.24);border-color:var(--green);opacity:.97;transition:none;animation:none}
.kb-placeholder{border:2px dashed #a9dfd6;border-radius:10px;background:rgba(1,183,168,.06);flex-shrink:0}
html.kb-grabbing,html.kb-grabbing *{cursor:grabbing!important}
.kb-card .kc-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.kb-card .kc-ref{font-size:9.5px;font-weight:700;color:var(--mintText);letter-spacing:.3px}
.kb-card .kc-date{margin-left:auto;font-size:9.5px;color:#9aa4a8}
.kb-card .kc-title{font-size:11.5px;font-weight:700;color:#1f2a30;line-height:1.35}
.kb-card .kc-sub{font-size:10.5px;color:#6a7a80;margin-top:2px}
.kb-card .kc-foot{display:flex;align-items:center;gap:6px;margin-top:9px}
.kb-card .kc-amount{font-size:12px;font-weight:800;color:#1f2a30}
.kb-card .kc-next{margin-left:auto;border:0;background:var(--mint);color:var(--mintText);font-size:10px;font-weight:700;border-radius:20px;padding:4px 9px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background-color .15s ease,transform .2s var(--ease-spring)}
.kb-card .kc-next:hover{background:var(--green);color:#fff;transform:translateX(2px)}
.kb-card .kc-next svg{width:12px;height:12px}
.kb-card .kc-prog{height:4px;background:#edf2f2;border-radius:4px;margin-top:8px;overflow:hidden}
.kb-card .kc-prog i{display:block;height:100%;background:var(--green);border-radius:4px;transition:width .6s var(--ease-out)}
.kb-card .kc-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;background:#eef2f2;color:#5b6770}
.kb-card .kc-tag.hot{background:var(--warn-bg);color:var(--warn-text)}
.kb-card .kc-tag.ok{background:var(--ok-bg);color:var(--ok-text)}
.kb-card .kc-avatar{width:20px;height:20px;border-radius:50%;background:var(--mint);color:var(--mintText);font-size:8.5px;font-weight:800;display:grid;place-items:center}
/* Stepper de workflow animé */
.flow{display:flex;align-items:flex-start;gap:0;margin:6px 0 4px;overflow-x:auto;padding-bottom:4px}
.flow-step{flex:1;min-width:70px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;font-size:10px;color:#8a969c}
.flow-step::before{content:'';position:absolute;top:13px;left:-50%;right:50%;height:3px;background:#e3eaeb;z-index:0}
.flow-step:first-child::before{display:none}
.flow-step::after{content:'';position:absolute;top:13px;left:-50%;height:3px;width:0;background:var(--green);z-index:0;transition:width .6s var(--ease-out) var(--d,0s)}
.flow-step:first-child::after{display:none}
.flow-step.done::after,.flow-step.current::after{width:100%}
.flow-dot{width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid #d8e1e3;display:grid;place-items:center;position:relative;z-index:1;transition:all .4s var(--ease-spring) var(--d,0s);color:#9aa4a8}
.flow-dot svg{width:13px;height:13px}
.flow-step.done .flow-dot{background:var(--green);border-color:var(--green);color:#fff}
.flow-step.current .flow-dot{border-color:var(--green);color:var(--mintText);box-shadow:0 0 0 5px rgba(1,183,168,.15);animation:flowPulse 1.8s ease-out infinite}
@keyframes flowPulse{0%{box-shadow:0 0 0 0 rgba(1,183,168,.35)}70%{box-shadow:0 0 0 8px rgba(1,183,168,0)}100%{box-shadow:0 0 0 0 rgba(1,183,168,0)}}
.flow-step b{display:block;margin-top:6px;font-size:10.5px;color:#4d5b61}
.flow-step.done b,.flow-step.current b{color:#1f2a30}
.flow-step small{font-size:9.5px}
/* Tiroir latéral de détail */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);background:#fff;z-index:1050;box-shadow:-20px 0 50px rgba(13,24,30,.18);transform:translateX(105%);transition:transform .38s var(--ease-out);display:flex;flex-direction:column}
.drawer.open{transform:none}
.drawer-h{padding:16px 18px;background:var(--headerDark);color:var(--headerText);display:flex;align-items:flex-start;gap:10px}
.drawer-h h3{margin:0;font-size:15px}.drawer-h .sub{font-size:11px;opacity:.8;margin-top:3px}
.drawer-h .close{color:#fff;margin-left:auto}
.drawer-b{padding:16px 18px;overflow-y:auto;flex:1}
.drawer-f{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:6px;flex-wrap:wrap;background:#fafbfb}
.drawer-veil{position:fixed;inset:0;background:rgba(13,24,30,.25);z-index:1040;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s}
.drawer-veil.open{opacity:1;visibility:visible}
.view-switch{display:inline-flex;background:#eef2f2;border-radius:8px;padding:3px;gap:2px}
.view-switch button{border:0;background:none;padding:5px 11px;border-radius:6px;font-size:11px;font-weight:600;color:#5b6770;cursor:pointer;transition:all .2s ease}
.view-switch button.on{background:#fff;color:var(--mintText);box-shadow:0 1px 3px rgba(0,0,0,.08)}
/* Glissade / apparition des actions de ligne */
.row-actions-cell .row-action{opacity:1;transform:none;transition:opacity .2s ease,transform .25s var(--ease-out),background-color .12s,color .12s}
tbody tr:hover .row-actions-cell .row-action,tbody tr:focus-within .row-actions-cell .row-action,tbody tr.swiped .row-actions-cell .row-action{opacity:1;transform:none}
tbody tr:hover .row-actions-cell .row-action:nth-child(2){transition-delay:.03s}
tbody tr:hover .row-actions-cell .row-action:nth-child(3){transition-delay:.06s}
@media (hover:none){.row-actions-cell .row-action{opacity:1;transform:none}}
.ring{flex-shrink:0}.ring text{font-size:10px;font-weight:800;fill:#1f2a30}
.ring .ring-v{transition:stroke-dasharray .8s var(--ease-out);animation:ringIn 1s var(--ease-out)}
@keyframes ringIn{from{stroke-dasharray:0 100}}
.kc-sub svg.icn{width:11px;height:11px;vertical-align:-1px}
.ring.big text{font-weight:800;fill:#1f2a30}
.kb-card .kc-date.late{color:var(--warn-text);font-weight:700}
.chart .guide{opacity:0;transition:opacity .15s}
.chart svg:hover .guide{opacity:.45}
.drawer .flow-step{min-width:52px}.drawer .flow-step b{font-size:9.5px}
.flow-step.skipped::after{width:100%;background:none;border-top:2px dashed #b9c4c7;height:0}
.flow-step.skipped .flow-dot{background:#f3f5f5;border-style:dashed;color:#9aa4a8}
.flow-step.skipped small{color:#ad7a1a}

/* =====================================================================
 * Responsive mobile / tablette
 * ===================================================================== */
@media(max-width:1000px){html:not(.sb-collapsed) .sidebar{width:205px}}
@media(max-width:760px){
  :root{--sidebarW:0px}
  .sidebar{position:fixed!important;left:0;top:var(--headerH,178px);bottom:var(--footerH);width:260px!important;z-index:60;transform:translateX(-102%);transition:transform .32s var(--ease-out);box-shadow:20px 0 40px rgba(13,24,30,.18)}
  html.sb-mobile-open .sidebar{transform:none}
  html.sb-collapsed .nav-label,html.sb-collapsed .section-title{opacity:1;width:auto;height:auto}
  html.sb-collapsed .nav a,html.sb-collapsed .sub a{justify-content:flex-start;padding:8px 10px;gap:10px}
  .content-inner{padding:14px 12px}
  .page-title{flex-direction:column;gap:10px}
  .page-title .actions{flex-wrap:wrap}
  .cards{grid-template-columns:1fr 1fr!important}
  .titlebar .company,.tbar-sep{display:none}
  .search-wrap{flex:1;min-width:0}.search-kbd{display:none}
  .toolbar-icons{overflow-x:auto;flex-wrap:nowrap}
  .menu{overflow-x:auto;flex-wrap:nowrap}
  .footer{font-size:9.5px}.footer-right{display:none}
  .kanban{grid-auto-columns:minmax(78vw,1fr);scroll-snap-type:x mandatory}.kb-col{scroll-snap-align:start}
  .modal{max-height:92vh;overflow:auto}
  .drawer{width:100vw}
}
@media(max-width:420px){.cards{grid-template-columns:1fr!important}}

/* =====================================================================
 * Panneaux latéraux AU-DESSUS de tout (en-tête compris) + positions
 * réglables (Mon profil › Affichage) : droite / gauche / centre.
 * Empilement : panneaux 1090 < fenêtres modales ≥ 1200 < toasts 1300.
 * ===================================================================== */
.drawer{z-index:1090;top:0;bottom:0;height:100vh;height:100dvh;border-radius:0}
.drawer-veil{z-index:1080;background:rgba(13,24,30,.34);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.toast{z-index:1300}.sb-tip{z-index:1400}
.drawer-h .modal-head-avatar{width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.12);display:grid;place-items:center;flex-shrink:0}
.drawer-h .modal-head-avatar svg{width:16px;height:16px}
.drawer-h>div{min-width:0}.drawer-h .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-panneau="gauche"] .drawer{right:auto;left:0;transform:translateX(-105%);box-shadow:20px 0 50px rgba(13,24,30,.18)}
html[data-panneau="gauche"] .drawer.open{transform:none}
html[data-panneau="centre"] .drawer{top:50%;left:50%;right:auto;bottom:auto;height:auto;max-height:88vh;width:min(600px,94vw);border-radius:14px;overflow:hidden;
  transform:translate(-50%,-47%) scale(.96);opacity:0;visibility:hidden;transition:transform .34s var(--ease-spring),opacity .2s ease,visibility .2s}
html[data-panneau="centre"] .drawer.open{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible}
html[data-fenetre="haut"] .modal-backdrop{align-items:flex-start;padding-top:7vh}
html[data-fenetre="bas"] .modal-backdrop{align-items:flex-end;padding-bottom:4vh}
html[data-fenetre="droite"] .modal-backdrop{justify-content:flex-end;padding-right:3vw}
@media(max-width:760px){html[data-panneau] .drawer{width:100vw;left:0;right:0;top:auto;bottom:0;max-height:90vh;height:auto;border-radius:16px 16px 0 0;transform:translateY(105%);opacity:1;visibility:visible}html[data-panneau] .drawer.open{transform:none}}

/* ----- Fil de messages ----- */
.fil-list{background:#f6f8f8;display:flex;flex-direction:column;gap:9px}
.fil-empty{margin:auto;text-align:center;font-size:11px;color:#8a969c;line-height:1.7;padding:30px 10px}
.fil-msg{background:#fff;border:1px solid #e1e8ea;border-radius:12px 12px 12px 4px;padding:9px 11px;max-width:88%;align-self:flex-start;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.fil-msg.moi{align-self:flex-end;border-radius:12px 12px 4px 12px;background:#effaf8;border-color:#c9ebe5}
.fil-msg.admin{border-left:3px solid #0b5d57}
.fil-msg.alerte{border-color:#f0c9a0;background:#fff8ef}
.fil-msg.bravo{border-color:#bfe5c8;background:#f1fbf3}
.fil-msg.new{animation:notifIn .45s var(--ease-spring) both}
.fil-meta{display:flex;align-items:center;gap:6px;font-size:10px;color:#8a969c;margin-bottom:3px}
.fil-meta b{color:#1f2a30;font-size:11px}
.fil-when{margin-left:auto;white-space:nowrap}
.fil-badge{background:#0b5d57;color:#fff;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:700}
.fil-lvl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#b06a12;margin-bottom:2px}
.fil-msg.bravo .fil-lvl{color:var(--ok-text)}
.fil-body{font-size:12px;color:#28343a;line-height:1.5;white-space:normal;word-wrap:break-word}
.fil-form{flex-direction:column;align-items:stretch}
.fil-form textarea{width:100%;border:1px solid #cbd5d8;border-radius:8px;padding:9px 10px;font:inherit;font-size:12px;resize:vertical;min-height:64px;outline:0;transition:border-color .15s,box-shadow .15s}
.fil-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(1,183,168,.14)}
.fil-form .btn{align-self:flex-end}
.fil-levels{display:flex;gap:6px;flex-wrap:wrap}
.fil-levels label{cursor:pointer}
.fil-levels input{position:absolute;opacity:0;pointer-events:none}
.fil-levels span{display:inline-block;font-size:10.5px;padding:4px 10px;border-radius:20px;border:1px solid #d6dfe1;color:#5b6770;background:#fff;transition:all .15s}
.fil-levels input:checked+span{background:var(--green);border-color:var(--green);color:#fff}
.fil-levels input[value=alerte]:checked+span{background:#e0a33b;border-color:#e0a33b}
.fil-levels input:focus-visible+span{box-shadow:0 0 0 3px rgba(1,183,168,.25)}
.msg-chip{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:#5b6770;background:#eef2f2;border:0;border-radius:20px;padding:3px 8px;cursor:pointer;transition:background-color .15s,color .15s,transform .2s var(--ease-spring)}
.msg-chip:hover{background:#0b5d57;color:#fff;transform:scale(1.05)}
.msg-chip svg{width:11px;height:11px}
.msg-chip.has{background:#fff1d6;color:#8a5a0c}
.msg-chip.admin{background:#0b5d57;color:#fff}

/* ----- Supervision ----- */
.sup-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:11px;margin-top:11px}
@media(max-width:1100px){.sup-grid{grid-template-columns:1fr}}
.sup-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:11px}
@media(max-width:1100px){.sup-kpis{grid-template-columns:repeat(3,1fr)}}
.sup-kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 13px;position:relative;overflow:hidden}
.sup-kpi .v{font-size:22px;font-weight:800;color:#1f2a30;transition:color .3s}
.sup-kpi .l{font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;color:#8a969c;margin-top:2px}
.sup-kpi.warn .v{color:var(--warn-text)}
.sup-kpi.flash{animation:valFlash .9s ease}
.sup-users{display:grid;gap:6px}
.sup-user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;border:1px solid #edf1f2;background:#fff;transition:background-color .2s,border-color .2s}
.sup-user .av{width:32px;height:32px;border-radius:50%;background:var(--mint);color:var(--mintText);font-weight:800;font-size:11px;display:grid;place-items:center;position:relative;flex-shrink:0}
.sup-user .av i{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;border:2px solid #fff;background:#b9c4c7}
.sup-user.en_ligne .av i{background:#1fb866;animation:livePulse 2s ease-out infinite}
.sup-user.inactif .av i{background:#e0a33b}
.sup-user .nm{font-size:11.5px;font-weight:700;color:#1f2a30}
.sup-user .where{font-size:10.5px;color:#6a7a80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sup-user .where b{color:var(--mintText);font-weight:600}
.sup-user .meta{margin-left:auto;text-align:right;font-size:9.5px;color:#9aa4a8;white-space:nowrap}
.sup-user .meta b{display:block;font-size:12px;color:#1f2a30}
.sup-feed{display:flex;flex-direction:column;max-height:520px;overflow-y:auto;scrollbar-width:thin}
.sup-ev{display:grid;grid-template-columns:44px 30px 1fr;gap:9px;align-items:flex-start;padding:8px 4px;border-bottom:1px solid #f0f3f4}
.sup-ev.new{animation:supIn .6s var(--ease-spring) both;background:rgba(1,183,168,.07)}
@keyframes supIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.sup-ev .h{font-size:10px;color:#9aa4a8;padding-top:3px;font-variant-numeric:tabular-nums}
.sup-ev .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#eef6f5;color:var(--mintText)}
.sup-ev .ic svg{width:14px;height:14px}
.sup-ev.ko .ic{background:var(--warn-bg);color:var(--warn-text)}
.sup-ev .tx{font-size:11.5px;color:#28343a;line-height:1.45}
.sup-ev .tx b{color:#1f2a30}
.sup-ev .tg{display:inline-block;font-size:9px;font-weight:700;border-radius:4px;padding:1px 6px;background:#eef2f2;color:#5b6770;margin-left:4px;vertical-align:1px}
.sup-ev.ko .tg.err{background:var(--warn-bg);color:var(--warn-text)}
.sup-ev .ac{margin-top:3px}
.sup-mgr{border:1px solid #e6ecee;border-radius:10px;margin-bottom:9px;overflow:hidden;background:#fff}
.sup-mgr>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;background:#fafcfc}
.sup-mgr>summary::-webkit-details-marker{display:none}
.sup-mgr>summary .nm{font-weight:700;font-size:12px;color:#1f2a30}
.sup-mgr>summary .chev{margin-left:auto;transition:transform .25s var(--ease-out);color:#9aa4a8}
.sup-mgr[open]>summary .chev{transform:rotate(180deg)}
.sup-proj{padding:8px 12px 10px;border-top:1px solid #eef2f2}
.sup-proj-h{display:flex;align-items:center;gap:8px;font-size:11.5px;margin-bottom:6px}
.sup-proj-h a{font-weight:700;color:#1f2a30;text-decoration:none}.sup-proj-h a:hover{color:var(--mintText)}
.sup-task{display:grid;grid-template-columns:minmax(0,1fr) 110px 44px auto;gap:10px;align-items:center;padding:5px 0;font-size:11px;border-bottom:1px dashed #eef2f2}
.sup-task:last-child{border-bottom:0}
.sup-task .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#28343a}
.sup-task .t small{color:#9aa4a8;margin-left:4px}
.sup-task .t .late{color:var(--warn-text);font-weight:700}
.sup-task .bar{height:6px;background:#edf2f2;border-radius:4px;overflow:hidden}
.sup-task .bar i{display:block;height:100%;background:var(--green);border-radius:4px;transition:width .8s var(--ease-out)}
.sup-task.done .bar i{background:#0b5d57}
.sup-task .pc{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.sup-crm{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sup-crm div{background:#f6f9f9;border-radius:8px;padding:8px 10px}
.sup-crm b{display:block;font-size:15px;color:#1f2a30}.sup-crm span{font-size:9.5px;color:#8a969c;text-transform:uppercase;letter-spacing:.4px}
.sup-live{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--mintText);font-weight:600}
/* Préférences d'affichage (aperçu) */
.pos-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.pos-choice{cursor:pointer}.pos-choice input{position:absolute;opacity:0}
.pos-card{border:2px solid #e1e8ea;border-radius:10px;padding:8px;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease-spring);background:#fff}
.pos-choice input:checked+.pos-card{border-color:var(--green);box-shadow:0 0 0 3px rgba(1,183,168,.15);transform:translateY(-2px)}
.pos-screen{height:64px;border-radius:6px;background:#eef2f2;position:relative;overflow:hidden}
.pos-screen::before{content:'';position:absolute;left:0;right:0;top:0;height:10px;background:#0d1b24}
.pos-screen i{position:absolute;background:var(--green);border-radius:3px;opacity:.9}
.pos-card b{display:block;font-size:11px;margin-top:6px;color:#28343a;text-align:center}
.sup-mgr .kc-avatar,.sup-proj .kc-avatar{width:28px;height:28px;border-radius:50%;background:var(--mint);color:var(--mintText);font-size:10px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.sup-proj-h .kc-ref{font-size:9.5px;font-weight:700;color:var(--mintText)}
.sup-proj-h .kc-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px}
.sup-proj-h .kc-tag.hot{background:var(--warn-bg);color:var(--warn-text)}
/* Le toast ne recouvre jamais le panneau ouvert (bouton « Publier ») */
html[data-panneau="droite"] body:has(.drawer.open) .toast{right:auto;left:20px}

/* =====================================================================
 * Pagination / tri / filtre des tableaux (tables.js)
 * ===================================================================== */
tr.pg-off,tr.pg-q,.pg-off{display:none!important}
.pg-wrap{position:relative}
.pg-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.pg-search{display:flex;align-items:center;gap:6px;border:1px solid #d6dfe1;border-radius:8px;padding:5px 9px;background:#fff;color:#8a969c;transition:border-color .15s,box-shadow .15s;min-width:220px}
.pg-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(1,183,168,.14)}
.pg-search input{border:0;outline:0;font:inherit;font-size:11.5px;width:100%;background:transparent;color:#28343a}
.pg-count{margin-left:auto;font-size:10.5px;color:#8a969c}
.pg-foot{display:flex;align-items:center;gap:12px;margin-top:9px;font-size:11px;color:#6a7a80;flex-wrap:wrap}
.pg-foot.pg-single .pg-nav{display:none}
.pg-nav{display:flex;align-items:center;gap:3px;margin-left:auto}
.pg-btn{min-width:28px;height:28px;border:1px solid #d6dfe1;background:#fff;border-radius:7px;cursor:pointer;display:grid;place-items:center;font-size:11px;color:#3d4c53;padding:0 7px;transition:background-color .15s,border-color .15s,color .15s,transform .15s var(--ease-spring)}
.pg-btn:hover:not(:disabled){border-color:var(--green);color:var(--mintText);transform:translateY(-1px)}
.pg-btn.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}
.pg-btn:disabled{opacity:.4;cursor:default}
.pg-gap{padding:0 3px;color:#9aa4a8}
.pg-size{display:flex;align-items:center;gap:6px}
.pg-size select{border:1px solid #d6dfe1;border-radius:6px;padding:3px 5px;font:inherit;font-size:11px;background:#fff}
th.pg-sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.pg-sortable:hover{color:var(--mintText)}
th.pg-sortable::after{content:'↕';opacity:.25;margin-left:4px;font-size:9px}
th[aria-sort=ascending]::after{content:'↑';opacity:.9;color:var(--mintText)}
th[aria-sort=descending]::after{content:'↓';opacity:.9;color:var(--mintText)}
tbody tr:not(.pg-off){animation:none}
.pg-more{display:block;margin:10px auto 0}
@media(max-width:760px){.pg-search{min-width:0;flex:1}.pg-nav{margin-left:0}}
/* Chronologie (fiche entreprise) */
.timeline{display:flex;flex-direction:column;position:relative;padding-left:4px}
.timeline::before{content:'';position:absolute;left:18px;top:8px;bottom:8px;width:2px;background:#e6eded}
.tl-item{display:flex;gap:12px;align-items:flex-start;padding:7px 4px;text-decoration:none;color:inherit;border-radius:8px;position:relative;transition:background-color .15s}
.tl-item:hover{background:#f6fafa}
.tl-dot{width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid #cfe5e1;display:grid;place-items:center;color:var(--mintText);flex-shrink:0;z-index:1}
.tl-dot svg{width:13px;height:13px}
.tl-txt{font-size:11.5px;color:#28343a}.tl-date{font-size:10px;color:#9aa4a8;margin-top:2px}
.ent-logo{width:46px;height:46px;border-radius:12px;background:var(--green);color:#fff;font-weight:800;font-size:15px;display:grid;place-items:center;flex-shrink:0}
.sup-kpis.rap .v{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sup-kpis.rap .l{line-height:1.4}
table.droits th{font-size:9px;white-space:nowrap}
table.droits td{text-align:center;font-weight:800;font-size:11px}
table.droits td:first-child{text-align:left}
table.droits .dr-E{color:var(--ok-text);background:#f0faf5}
table.droits .dr-L{color:var(--calc-text);background:#f2f6fd}
table.droits .dr-x{color:#c3cdd0}
.ro-banner{display:flex;align-items:center;gap:8px;background:#f2f6fd;border:1px solid #d5e1f7;color:#24467f;border-radius:8px;padding:7px 11px;font-size:11px;margin-bottom:10px}
.ro-banner svg{width:14px;height:14px}
html.readonly .content .row-actions-cell,html.readonly .content .page-title .actions .btn.green:not(.keep),html.readonly .kb-card .kc-next,html.readonly .content .msg-chip+.kc-next{display:none!important}
html.readonly .kb-card{cursor:default}
.view-switch a{border:0;background:none;padding:5px 11px;border-radius:6px;font-size:11px;font-weight:600;color:#5b6770;text-decoration:none;transition:all .2s ease;display:inline-flex;align-items:center}
.view-switch a.on{background:#fff;color:var(--mintText);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.view-switch button svg{width:12px;height:12px;vertical-align:-2px}
.kc-avatar-inline{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--mint);color:var(--mintText);font-size:8.5px;font-weight:800;vertical-align:middle}
.kb-card .kc-avatar+.kc-amount{margin-left:2px}

/* =====================================================================
 * Activités & agenda
 * ===================================================================== */
.act-row{display:flex;align-items:flex-start;gap:12px;padding:11px 6px;border-bottom:1px solid #eef2f2;transition:background-color .15s,opacity .3s,transform .3s}
.act-row:last-child{border-bottom:0}
.act-row:hover{background:#fafcfc}
.act-row.is-done{opacity:.7}
.act-row.leaving{opacity:0;transform:translateX(20px)}
.act-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:#eef6f5;color:var(--mintText)}
.act-ic svg{width:16px;height:16px}
.t-appel{--tc:#0b8d80}.t-rdv{--tc:var(--green2)}.t-email{--tc:#7c5cc4}.t-relance{--tc:#e0a33b}.t-tache{--tc:#5b6770}
.act-ic.t-appel,.act-ic.t-rdv,.act-ic.t-email,.act-ic.t-relance,.act-ic.t-tache{background:color-mix(in srgb,var(--tc) 12%,#fff);color:var(--tc)}
.act-main{flex:1;min-width:0}
.act-top{display:flex;align-items:center;gap:6px;font-size:12px;color:#1f2a30}
.act-top .kc-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px}
.kc-tag.hot{background:var(--warn-bg);color:var(--warn-text)}.kc-tag.ok{background:var(--ok-bg);color:var(--ok-text)}
.act-sub{font-size:10.5px;color:#6a7a80;margin-top:3px}
.act-sub a{color:var(--mintText);text-decoration:none}.act-sub a:hover{text-decoration:underline}
.act-notes{font-size:11px;color:#4d5b61;margin-top:5px;white-space:pre-line}
.act-res{font-size:11px;color:#28343a;margin-top:6px;background:#f1faf8;border-left:3px solid var(--green);padding:5px 8px;border-radius:4px}
.act-actions{display:flex;gap:5px;align-items:center;flex-shrink:0}
.act-actions .btn{padding:5px 9px;font-size:11px}
.act-actions svg{width:13px;height:13px}
.act-group.late .panel-head{background:var(--warn-bg)}
.act-group.late .panel-head h2{color:var(--warn-text)}
.act-types{display:flex;gap:6px;flex-wrap:wrap}
.act-types label{cursor:pointer}.act-types input{position:absolute;opacity:0}
.act-types span{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:20px;border:1px solid #d6dfe1;font-size:11px;color:#4d5b61;background:#fff;transition:all .15s}
.act-types span svg{width:13px;height:13px}
.act-types input:checked+span{background:var(--tc,var(--green));border-color:var(--tc,var(--green));color:#fff}
.agenda .kb-col{min-height:320px}
.agenda .kb-col.is-today{background:#ecf8f6;border-color:#a9dfd6}
.act-card .kc-title svg{width:12px;height:12px;vertical-align:-2px;color:var(--mintText)}
.act-card.is-done{opacity:.55}.act-card.is-done .kc-title{text-decoration:line-through}
.notif-item.perso .notif-title::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:5px;vertical-align:1px}
.notif-item[data-lien]{cursor:pointer}
.mini-acts .act-row{padding:8px 2px}
.smtp-presets{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:10.5px;color:var(--muted);margin-bottom:10px}
details.tpl{border:1px solid #e6ecee;border-radius:8px;margin-bottom:7px;background:#fff}
details.tpl>summary{padding:9px 12px;cursor:pointer;font-size:11.5px;font-weight:600;color:#28343a}
details.tpl[open]>summary{border-bottom:1px solid #eef2f2}
details.tpl .field{padding:8px 12px 0}details.tpl .field:last-child{padding-bottom:12px}
.mail-piece{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:11.5px;background:#f6f9f9;border:1px solid #e1e8ea;border-radius:8px;padding:6px 10px;cursor:pointer}
.mail-piece svg{width:14px;height:14px;color:var(--mintText)}
.mail-h{font-size:11px;color:#4d5b61;padding:3px 0}.mail-h small{color:#9aa4a8}
#mail-modal .modal-sub{color:var(--muted);font-size:10.5px}
.online-box{border:1px solid #e1e8ea;border-radius:10px;padding:10px 12px;margin:12px 0 4px;background:#fafcfc}
.online-box small{font-size:10.5px;color:var(--muted)}
.online-link{display:flex;gap:6px;margin-bottom:5px}
.online-link input{flex:1;min-width:0;border:1px solid #cbd5d8;border-radius:6px;padding:6px 8px;font-size:11px;background:#fff;color:#28343a}
.online-link .btn svg{width:13px;height:13px}
.online-dec{font-size:11.5px;line-height:1.55;padding:8px 10px;border-radius:8px}
.online-dec.ok{background:#eaf8f1;color:#185c3c}.online-dec.ko{background:#fdf0ef;color:#7a2321}
.online-dec img{display:block;max-width:220px;background:#fff;border:1px solid #d9e6e3;border-radius:6px;margin:6px 0}
.online-tag{display:inline-block;font-size:9.5px;font-weight:700;border-radius:4px;padding:1px 6px;background:#eef2f2;color:#5b6770;margin-left:3px}
.online-tag.ok{background:var(--ok-bg);color:var(--ok-text)}.online-tag.ko{background:var(--warn-bg);color:var(--warn-text)}

/* ===================== QHSE ===================== */
.qh-hero{display:grid;grid-template-columns:260px 1fr;gap:11px;margin-top:11px}
@media(max-width:900px){.qh-hero{grid-template-columns:1fr}}
.qh-safe{background:#0b5d57;color:#fff;border-radius:14px;padding:18px 20px;display:flex;align-items:center;gap:14px;box-shadow:0 12px 30px rgba(1,183,168,.25)}
.qh-safe-n{font-size:48px;font-weight:900;line-height:1;letter-spacing:-1px}
.qh-safe-l{font-size:13px;font-weight:700;line-height:1.3}.qh-safe-l small{font-weight:400;opacity:.85;font-size:11px}
.qh-alerts{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.qh-alerts-h{display:flex;align-items:center;gap:6px;font-size:12px;margin-bottom:6px}.qh-alerts-h a{margin-left:auto;color:var(--mintText);text-decoration:none;font-size:11px}
.qh-ok{font-size:12px;color:var(--ok-text);padding:8px 0}
.qh-alert{display:grid;grid-template-columns:10px auto 1fr;grid-template-rows:auto auto;column-gap:8px;padding:6px 8px;border-radius:8px;text-decoration:none;color:inherit;transition:background-color .15s}
.qh-alert:hover{background:#f6fafa}
.qh-dot{grid-row:span 2;width:8px;height:8px;border-radius:50%;background:var(--ac);margin-top:5px;box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 20%,transparent)}
.qh-cat{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--ac)}
.qh-t{font-size:12px;color:#1f2a30;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qh-alert small{grid-column:2/4;font-size:10.5px;color:var(--muted)}
.qh-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:9px}
.qh-kpi{position:relative;background:#fafcfc;border:1px solid #e6ecee;border-radius:11px;padding:12px 12px 10px;transition:transform .2s var(--ease-out),box-shadow .2s;animation:riseIn .45s var(--ease-out) both}
.qh-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(13,24,30,.07)}
.qh-kpi .qh-ic{position:absolute;top:10px;right:10px;color:#b3c4c7}.qh-kpi .qh-ic svg{width:15px;height:15px}
.qh-v{font-size:21px;font-weight:800;color:#1f2a30;letter-spacing:-.3px}
.qh-l{font-size:10.5px;color:#6a7a80;margin-top:2px;line-height:1.35}.qh-l small{display:block;color:#a2adb1;font-size:9.5px}
.qh-kpi.warn{background:#fdf3f2;border-color:#f1d2cf}.qh-kpi.warn .qh-v{color:var(--warn-text)}
.qh-kpi.ok .qh-v{color:var(--ok-text)}
.qh-kpi.env{background:#f3faf6;border-color:#d4ece0}
.qh-kpi.rse{background:#f5f4fd;border-color:#dfdcf6}.qh-kpi.na .qh-v{color:#b9c1c4}
.qh-matrix{display:grid;grid-template-columns:18px repeat(var(--n),1fr);gap:4px;align-items:stretch;margin-top:4px}
.qh-mx-ylab{grid-row:1/span var(--n);writing-mode:vertical-rl;transform:rotate(180deg);font-size:9.5px;color:var(--muted);text-align:center}
.qh-mx-xlab{grid-column:2/-1;text-align:center;font-size:9.5px;color:var(--muted)}
.qh-cell{aspect-ratio:1.4;border-radius:6px;background:color-mix(in srgb,var(--cc) 22%,#fff);display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;transition:transform .2s var(--ease-spring)}
.qh-cell.has{background:var(--cc);box-shadow:0 4px 12px color-mix(in srgb,var(--cc) 35%,transparent)}
.qh-cell:hover{transform:scale(1.08)}
.qh-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:10px;color:#5b6770}
.qh-legend span::before{content:'';display:inline-block;width:9px;height:9px;border-radius:3px;background:var(--cc);margin-right:4px;vertical-align:-1px}
.ghs{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;transform:rotate(45deg);border:2.5px solid #d62b2b;background:#fff;border-radius:3px;margin:3px 6px 3px 3px}
.ghs span{transform:rotate(-45deg);font-size:15px}
.ghs-lg{width:40px;height:40px}.ghs-lg span{font-size:20px}
.niv{display:inline-block;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:800;color:#fff;background:var(--cc)}
.permis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:11px;margin-top:11px}
.permis-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--pc);border-radius:12px;padding:13px 15px;animation:riseIn .45s var(--ease-out) both;transition:box-shadow .2s}
.permis-card:hover{box-shadow:0 10px 24px rgba(13,24,30,.08)}
.permis-card header{display:flex;justify-content:space-between;align-items:center}
.permis-card h3{margin:6px 0 4px;font-size:13.5px;color:#1f2a30}
.pm-meta{font-size:11px;color:#5b6770;margin-top:2px}
.pm-hist{margin-top:8px;font-size:11px;color:#4d5b61}.pm-hist summary{cursor:pointer;color:var(--mintText);font-weight:600}.pm-hist div{padding:2px 0}
.pm-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.pm-actions .btn{font-size:11px;padding:6px 10px}
.sig-pad{width:100%;height:120px;border:2px dashed #b9d9d4;border-radius:10px;background:#fbfefe;touch-action:none;cursor:crosshair;display:block}
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:11px;margin-top:11px}
.prod-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 15px;display:flex;flex-direction:column;gap:8px;animation:riseIn .45s var(--ease-out) both}
.prod-h{display:flex;justify-content:space-between;align-items:flex-start}.prod-h h3{margin:0;font-size:14px}
.prod-pics{display:flex;flex-wrap:wrap;align-items:center;min-height:48px}
.prod-l{font-size:11.5px;color:#28343a;background:#f7fafa;border-radius:7px;padding:6px 9px}.prod-l b{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.4px;color:#6a7a80;margin-bottom:1px}
.prod-l.warn{background:#fff6ea}.prod-l.urg{background:#fdf0ef}
.prod-f{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:6px;border-top:1px solid #eef2f2}.prod-f .btn{font-size:11px;padding:5px 10px}
.ghs-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.ghs-pick label{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:1px solid #e1e8ea;border-radius:8px;cursor:pointer;text-align:center;transition:all .15s}
.ghs-pick input{position:absolute;opacity:0}.ghs-pick small{font-size:8.5px;color:#5b6770;line-height:1.2}
.ghs-pick label:has(input:checked){border-color:#d62b2b;background:#fff4f4;box-shadow:0 0 0 2px rgba(214,43,43,.15)}
.scope-row{display:grid;grid-template-columns:1fr 90px auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed #eef2f2;font-size:11.5px}
.scope-row small{display:block;color:var(--muted);font-size:10px}.scope-row span{font-weight:800;white-space:nowrap}
.obs-quick{margin-top:11px;background:#f1faf8;border:1px solid #cbe9e3;border-radius:14px;padding:14px 16px}
.obs-form{display:flex;flex-direction:column;gap:9px}.obs-form textarea{border:1px solid #cbd5d8;border-radius:9px;padding:9px 11px;font:inherit;font-size:12.5px;resize:vertical}
.obs-types{display:flex;gap:6px;flex-wrap:wrap}.obs-t input{position:absolute;opacity:0}
.obs-t span{display:inline-block;padding:7px 12px;border-radius:20px;border:1px solid #d6dfe1;background:#fff;font-size:11.5px;cursor:pointer;transition:all .15s}
.obs-t.ok input:checked+span{background:#2e9e6a;border-color:#2e9e6a;color:#fff}.obs-t.warn input:checked+span{background:#ad3c38;border-color:#ad3c38;color:#fff}.obs-t.calc input:checked+span{background:var(--green2);border-color:var(--green2);color:#fff}
.niv{white-space:nowrap}
td[style*="monospace"]{white-space:nowrap}
.inc-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;margin-top:10px}
.inc-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid var(--line);transition:transform .2s}.inc-photos img:hover{transform:scale(1.03)}
.inc-action{display:grid;grid-template-columns:1fr 120px 150px 130px auto;gap:6px;margin-top:10px}
.inc-action input,.inc-action select{border:1px solid #cbd5d8;border-radius:6px;padding:6px 8px;font:inherit;font-size:11.5px;min-width:0}
@media(max-width:760px){.inc-action{grid-template-columns:1fr}}
.chrono-row{display:grid;grid-template-columns:100px 1fr 30px;gap:6px;margin-bottom:6px}
.chrono-row input{border:1px solid #cbd5d8;border-radius:6px;padding:6px 8px;font:inherit;font-size:12px}
.why-chain{display:flex;flex-direction:column;gap:6px;position:relative}
.why-step{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center;padding-left:10px;border-left:3px solid var(--green)}
.why-step span{font-size:11px;font-weight:800;color:var(--mintText)}.why-step input{border:1px solid #cbd5d8;border-radius:6px;padding:7px 9px;font:inherit;font-size:12px}
.tree ul{list-style:none;margin:0;padding-left:22px;position:relative}.tree>ul{padding-left:0}
.tree li{position:relative;padding:5px 0 5px 14px}
.tree li::before{content:'';position:absolute;left:0;top:0;bottom:0;border-left:2px solid #cfe5e1}
.tree li::after{content:'';position:absolute;left:0;top:17px;width:12px;border-top:2px solid #cfe5e1}
.tree>ul>li::before,.tree>ul>li::after{display:none}.tree>ul>li{padding-left:0}
.tree-n{display:inline-block;background:#fff;border:1px solid #d6e3e1;border-radius:8px;padding:5px 10px;font-size:11.5px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.tree-n.root{background:#fdf0ef;border-color:#f1c9c6;font-weight:700;color:#7a2321}
.tree-n button{border:0;background:none;color:#ad3c38;cursor:pointer;font-size:10px}
.grille-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.grille-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.grille-card h3{margin:6px 0 2px;font-size:13px}
.grille-card .kc-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--mint);color:var(--mintText)}
.score-pill{display:inline-block;padding:2px 9px;border-radius:20px;font-weight:800;font-size:11px;color:#fff;background:var(--sc)}
.insp-score{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 16px;margin-top:11px;box-shadow:0 6px 18px rgba(13,24,30,.06)}
.insp-score b#sc-v{font-size:24px;font-weight:900;display:block;line-height:1}.insp-score small{font-size:10px;color:var(--muted)}
.insp-bar{height:10px;background:#edf2f2;border-radius:6px;overflow:hidden}.insp-bar i{display:block;height:100%;background:var(--green);border-radius:6px;transition:width .5s var(--ease-out),background .3s}
.insp-cnt{display:flex;gap:10px;font-size:11px;color:var(--muted)}.insp-cnt .c b{color:#2e9e6a}.insp-cnt .nc b{color:#ad3c38}
@media(max-width:760px){.insp-score{grid-template-columns:1fr}.insp-cnt{flex-wrap:wrap}}
.q-row{display:grid;grid-template-columns:1fr auto;gap:8px 14px;padding:11px 4px;border-bottom:1px solid #eef2f2;transition:background-color .2s}
.q-row.is-nc{background:#fff6f5}.q-row.crit .q-txt{font-weight:600}
.q-txt{font-size:12.5px;color:#1f2a30;align-self:center}.q-txt .kc-tag{font-size:9px;padding:1px 6px;border-radius:4px}
.q-rep{display:flex;gap:4px}.q-rep input{position:absolute;opacity:0}
.q-rep span{display:inline-block;padding:7px 11px;border-radius:8px;border:1px solid #d6dfe1;font-size:11px;font-weight:600;cursor:pointer;background:#fff;transition:all .15s;min-width:44px;text-align:center}
.q-c input:checked+span{background:#2e9e6a;border-color:#2e9e6a;color:#fff}.q-nc input:checked+span{background:#ad3c38;border-color:#ad3c38;color:#fff}.q-na input:checked+span{background:#9aa4a8;border-color:#9aa4a8;color:#fff}
.q-more{grid-column:1/-1;display:flex;gap:6px;align-items:center}
.q-more input[type=text],.q-more input:not([type]){flex:1;border:1px solid #e1e8ea;border-radius:6px;padding:6px 8px;font:inherit;font-size:11.5px}
.q-cam{padding:5px 9px;cursor:pointer}.q-cam.on{background:var(--mint);border-color:var(--green)}
.q-photo{width:36px;height:36px;object-fit:cover;border-radius:6px}
@media(max-width:760px){.q-row{grid-template-columns:1fr}.q-rep span{flex:1}.q-rep label{flex:1}}
.ana-steps{display:flex;flex-direction:column;gap:10px}
.ana-step{display:grid;grid-template-columns:34px 1fr;gap:10px;border:1px solid #e1e8ea;border-radius:12px;padding:10px;background:#fcfefe}
.ana-n{width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;font-weight:800;display:grid;place-items:center}
.ana-t{width:100%;border:0;border-bottom:1px solid #e1e8ea;font:inherit;font-weight:700;font-size:13px;padding:4px 2px 6px;margin-bottom:8px;background:transparent}
.ana-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ana-grid label{font-size:10px;font-weight:700;color:#6a7a80;text-transform:uppercase;letter-spacing:.3px}
.ana-grid textarea{width:100%;border:1px solid #d6dfe1;border-radius:7px;padding:6px 8px;font:inherit;font-size:11.5px;min-height:58px;resize:vertical;margin-top:3px;text-transform:none;letter-spacing:0;font-weight:400}
.ana-foot{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap;font-size:11px}.ana-foot input{flex:1;min-width:120px;border:1px solid #d6dfe1;border-radius:6px;padding:5px 8px;font:inherit;font-size:11px}
.ana-foot select{border:1px solid #d6dfe1;border-radius:6px;padding:3px}
@media(max-width:760px){.ana-grid{grid-template-columns:1fr}}
.tbx-sigs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tbx-sig{display:flex;align-items:center;gap:6px;background:#f6f9f9;border-radius:8px;padding:4px 8px 4px 4px;font-size:10.5px}
.tbx-sig img{width:56px;height:26px;object-fit:contain;background:#fff;border-radius:4px;border:1px solid #e1e8ea}.tbx-sig small{display:block;color:var(--muted);font-size:9px}
.inc-action{grid-template-columns:1fr 1fr 1fr auto}.inc-action input[name=titre]{grid-column:1/-1}
/* ===== QHSE phase 3 ===== */
.ref-chips{display:flex;flex-wrap:wrap;gap:8px}
.ref-chip{display:inline-flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px 12px;font-size:12px}.ref-chip small{font-size:10px;color:var(--muted)}
.aud-kpis{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.aud-kpis span{display:inline-flex;align-items:center;gap:6px;font-size:11px;background:color-mix(in srgb,var(--cc) 10%,#fff);border:1px solid color-mix(in srgb,var(--cc) 30%,#fff);color:#28343a;border-radius:20px;padding:4px 10px}
.aud-kpis b{color:var(--cc);font-size:13px}
.aud-clause{padding:7px 4px;border-bottom:1px solid #eef2f2}
.aud-clause.chap{background:#f6f9f9;margin-top:6px;border-radius:6px}.aud-clause.chap b{text-transform:uppercase;font-size:11px;letter-spacing:.4px}
.aud-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}
.aud-num{font-family:monospace;font-weight:800;color:var(--mintText);min-width:36px}
.aud-c{margin:5px 0 3px 44px;padding:6px 10px;border-left:3px solid var(--cc);background:#fafcfc;border-radius:0 6px 6px 0;font-size:11.5px}.aud-c small{color:var(--muted)}
@media print{.aud-clause{break-inside:avoid}}
.hab-legend{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:10.5px;color:var(--muted)}
.hab-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.hab-legend i.valide,.hab-cell.valide{background:#e5f6ee}.hab-legend i.bientot,.hab-cell.bientot{background:#fff1d6}.hab-legend i.expire,.hab-cell.expire{background:#fbe1df}.hab-legend i.vide{background:#f3f5f5;border:1px solid #e1e8ea}
.hab-matrix th{font-size:9.5px;white-space:normal;min-width:90px;text-align:center}
.hab-matrix td.hab-cell{text-align:center;font-size:11px;font-weight:700;border:2px solid #fff}
.hab-cell.valide{color:#185c3c}.hab-cell.bientot{color:#8a5a0c}.hab-cell.expire{color:#7a2321}.hab-cell small{display:block;font-weight:400;font-size:9.5px;opacity:.8}
.dom-tag{display:inline-block;font-size:10px;font-weight:700;padding:3px 8px;border-radius:5px;background:var(--mint);color:var(--mintText);white-space:nowrap}
.view-switch button{white-space:nowrap}
.hab-cell.vide{background:#fafbfb}
.hab-legend i.valide{border:1px solid #bfe5d1}.hab-legend i.bientot{border:1px solid #f0d29a}.hab-legend i.expire{border:1px solid #f1c3bf}
@media(max-width:760px){
  .cards{grid-template-columns:1fr 1fr!important;gap:8px}
  .cards .card{padding:10px 11px}.cards .card .value{font-size:19px}.cards .card .card-icon{display:none}
  .panel-head{flex-wrap:wrap;gap:6px}.hab-legend{margin-left:0;width:100%;flex-wrap:wrap}
  .page-title .actions{flex-wrap:wrap}
}

/* ===== Administration — utilisateurs, rôles & modules ===== */
.ua-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:2px 3px 2px 7px;border-radius:4px;margin:2px 3px 2px 0;border:1px solid var(--line);background:#fff;color:#35434a}
.ua-tag b{font-size:9px;padding:1px 5px;border-radius:3px}
.ua-tag.e b,b.ua-tag.e{background:var(--ok-bg);color:var(--ok-text)}.ua-tag.l b,b.ua-tag.l{background:var(--calc-bg);color:var(--calc-text)}
b.ua-tag{padding:1px 6px}
.ua-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-items:start}
.ua-grid.disabled{opacity:.45;pointer-events:none}
.ua-mod{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:#fff}
.ua-mod-l{font-size:11.5px;font-weight:600;color:#28343a}
.ua-seg{display:inline-flex;border:1px solid var(--line);border-radius:5px;overflow:hidden;flex-shrink:0}
.ua-seg label{margin:0;cursor:pointer}.ua-seg input{position:absolute;opacity:0;pointer-events:none}
.ua-seg span{display:block;font-size:10px;padding:4px 8px;color:#69777d;border-left:1px solid var(--line)}
.ua-seg label:first-child span{border-left:0}
.ua-seg input:checked+span{background:var(--calc-bg);color:var(--calc-text);font-weight:700}
.ua-seg label:last-child input:checked+span{background:var(--ok-bg);color:var(--ok-text)}
.ua-seg label:first-child input:checked+span{background:#f1f3f4;color:#35434a}
.ua-seg input:focus-visible+span{outline:2px solid var(--green);outline-offset:-2px}
.state.ko{background:var(--warn-bg);color:var(--warn-text)}
@media(max-width:700px){.ua-grid{grid-template-columns:1fr}}

/* Module QHSE-RSE : aucun dégradé (couleurs unies uniquement) */
body[data-module="qhse"] .content *{background-image:none!important}
body[data-module="qhse"] .chart-skeleton{background:#eef3f3!important;animation:none}

/* ===== Comptabilité SYSCOHADA ===== */
.maj-box,.ok-box{display:flex;gap:10px;align-items:flex-start;border-radius:6px;padding:11px 13px;margin-top:11px;font-size:12px;line-height:1.5}
.maj-box{background:#fff6e5;border:1px solid #f0cf8a;color:#6b4a06}.ok-box{background:var(--ok-bg);border:1px solid #bfe3d3;color:var(--ok-text)}
.maj-box svg,.ok-box svg{flex-shrink:0;width:17px;height:17px;margin-top:1px}
.maj-banner{display:flex;align-items:center;gap:10px;background:#fff6e5;border:1px solid #f0cf8a;color:#6b4a06;border-radius:6px;padding:8px 12px;margin-bottom:10px;font-size:12px}
.maj-banner svg{width:16px;height:16px;flex-shrink:0}.maj-banner a{margin-left:auto;white-space:nowrap}
.ref-diff{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px}
.ref-diff>div{border:1px solid var(--line);border-radius:6px;padding:8px;font-size:11px;color:#536168;text-align:center}.ref-diff b{display:block;font-size:18px;color:#28343a}
.ref-notes{margin:4px 0 8px;padding-left:18px;font-size:11.5px;line-height:1.6}
table.etat td{padding:6px 8px}table.etat td.ref{font-family:monospace;color:#69777d;width:38px;text-align:center}
table.etat td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.etat tr.t1 td{background:#f2f7f6;font-weight:800;color:#0b5d57}table.etat tr.t2 td{font-weight:700;background:#fafcfc}
table.etat tr.titre td{background:#fff;font-weight:700;color:#35434a;text-transform:uppercase;font-size:10px;letter-spacing:.3px}
table.etat td.neg{color:#b3261e}
.etat-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:11px}
@media(max-width:1100px){.etat-grid{grid-template-columns:1fr}.ref-diff{grid-template-columns:repeat(3,1fr)}}
.fx-lines td input{width:100%}.fx-lines td.num input{text-align:right}

/* ===== Factures dynamiques ===== */
.fx-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:11px;margin-top:11px;align-items:start}
.fx-layout aside{position:sticky;top:8px}
@media(max-width:1100px){.fx-layout{grid-template-columns:1fr}.fx-layout aside{position:static}}
.fx-lines td{padding:4px;vertical-align:top}.fx-lines input,.fx-lines select{width:100%;font-size:11.5px}
.fx-lines td.fx-mt{padding-top:10px;font-weight:700;font-variant-numeric:tabular-nums}
.fx-desc{margin-top:3px;font-size:10.5px!important;color:#536168}
.fx-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:12px;border-bottom:1px dashed #e5ecee}
.fx-row b{font-variant-numeric:tabular-nums;white-space:nowrap}.fx-row.strong{font-weight:700}
.fx-row.total{border:0;margin-top:6px;padding:9px 10px;background:var(--ok-bg);border-radius:6px;font-size:14px;font-weight:800;color:var(--ok-text)}
.fx-lettres{font-size:10.5px;color:#536168;font-style:italic;margin:6px 0 4px;line-height:1.4}
.fx-histo{max-height:260px;overflow:auto;font-size:11px;line-height:1.45}.fx-histo>div{padding:6px 0;border-bottom:1px solid #edf1f2}

.ua-check{display:flex!important;gap:8px;align-items:flex-start;justify-content:flex-start;font-weight:400!important;text-align:left}
.ua-check input{width:auto!important;flex:0 0 auto;margin:2px 0 0!important}
.ua-check span{flex:1;min-width:0}
.page-title .actions .btn{white-space:nowrap}

/* ===== Correctifs responsive globaux / anti-débordement ===== */
html,body{max-width:100%;overflow-x:hidden}
.content,.content-inner,.layout,.layout>*,.sup-grid,.sup-grid>*,.panel,.panel-body,.panel-head{min-width:0}
.panel-body{overflow-x:auto}
.page-title>div:first-child{min-width:0}
.page-title h1,.page-title p{overflow-wrap:anywhere}
.actions{min-width:0;max-width:100%;flex-wrap:wrap}
table{min-width:0}
table:has(> thead > tr > th:nth-child(6)){min-width:620px}
.table-wrap,.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap>table,.table-scroll>table{margin:0}
.formgrid>*{min-width:0}
@media(max-width:760px){
  table:has(> thead > tr > th:nth-child(6)){min-width:560px}
  .page-title .actions{width:100%}
  .sup-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sup-task{grid-template-columns:minmax(0,1fr) 80px 38px auto}
  .sup-ev{grid-template-columns:38px 28px minmax(0,1fr)}
  .sup-user .meta{display:none}
}
@media(max-width:520px){
  .sup-kpis{grid-template-columns:1fr!important}
  .sup-crm{grid-template-columns:1fr}
}

.stock-grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px}@media(max-width:900px){.stock-grid-2{grid-template-columns:1fr}}

/* Jauge d'atteinte (objectifs commerciaux, indicateurs RH) — aplat, sans dégradé */
.jauge{height:6px;background:#eef1f2;border-radius:3px;overflow:hidden;min-width:70px}
.jauge > span{display:block;height:100%;background:var(--ok-text);border-radius:3px}
.jauge.orange > span{background:var(--wait-text)}
.jauge.rouge > span{background:var(--warn-text)}
.jauge.nd > span{background:#b8c2c6}
.histo-bars{display:flex;align-items:flex-end;gap:14px;height:150px;padding:6px 4px 0}
.histo-bars .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end;min-width:0}
.histo-bars .pair{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%;justify-content:center}
.histo-bars .b{width:42%;max-width:26px;border-radius:2px 2px 0 0;background:var(--ok-text)}
.histo-bars .b.obj{background:#cfd8db}
.histo-bars small{font-size:9.5px;color:#7c898f;white-space:nowrap}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.kpi-box{display:block;border:1px solid var(--line);border-left:3px solid #b8c2c6;border-radius:3px;padding:10px 12px;background:#fff;text-decoration:none;color:inherit}
.kpi-box.vert{border-left-color:var(--ok-text)}.kpi-box.orange{border-left-color:var(--wait-text)}.kpi-box.rouge{border-left-color:var(--warn-text)}
.kpi-box .k-h{font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:#7c898f}
.kpi-box .k-v{font-size:20px;font-weight:800;margin-top:4px;color:#1f2a30}
.kpi-box .k-d{font-size:10px;color:#8a969c;margin-top:3px}

/* En-têtes de page : les boutons d'action ne se compriment plus (libellés jamais coupés) */
.btn{white-space:nowrap}
a.btn{display:inline-flex;align-items:center;gap:5px}
.page-title{gap:14px}
.page-title>div:first-child{min-width:0}
.page-title .actions{flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:760px){.page-title{flex-wrap:wrap}.page-title .actions{flex-shrink:1;justify-content:flex-start}}

/* Pagination côté serveur */
.pager-srv{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:#718087}
.pager-links{display:flex;gap:3px;align-items:center}
.pager-links a,.pager-links span{min-width:28px;height:28px;padding:0 8px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:3px;background:#fff;color:#3d4c53;text-decoration:none;font-weight:600}
.pager-links a:hover{background:var(--mint);border-color:#b9dcd6;color:var(--mintText)}
.pager-links .on{background:var(--green);border-color:var(--green);color:#fff}
.pager-links .off{opacity:.4}.pager-links .gap{border:0;background:none;min-width:14px;padding:0}
.da-lignes input{width:100%;box-sizing:border-box}
.view-switch button b{font-weight:700;opacity:.65;margin-left:3px}
.btn.on{background:var(--mint);border-color:#b9dcd6;color:var(--mintText)}

/* ===== Identité visuelle de la société ===== */
.tenant-logo{height:26px;width:auto;max-width:120px;object-fit:contain;flex-shrink:0;display:block}
.tenant-logo.on-light{background:#fff;border-radius:4px;padding:2px 6px;height:28px}
.ag-logo.has-img,.p-logo.has-img{background:#fff;padding:4px;border:1px solid var(--line)}
.ag-logo.has-img img,.p-logo.has-img img{max-width:100%;max-height:100%;object-fit:contain;display:block}
@media(max-width:700px){.tenant-logo{display:none}}

/* ===== Menu « Plus d'actions » des lignes de tableau ===== */
.ra-wrap{display:inline-block;position:relative}
.ra-menu{display:none;position:fixed;z-index:400;min-width:210px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 28px rgba(16,30,36,.16);padding:4px;text-align:left}
.ra-menu.show{display:block}
.ra-item{display:flex!important;align-items:center;gap:9px;width:100%;border:0;background:none;padding:7px 9px;border-radius:4px;cursor:pointer;color:var(--text);font-size:11.5px;white-space:nowrap;text-align:left}
.ra-item svg{width:14px;height:14px;color:#7c898f;flex-shrink:0}.ra-item:hover{background:var(--mint);color:var(--mintText)}.ra-item:hover svg{color:var(--mintText)}
.ra-item.danger{color:var(--warn-text)}.ra-item.danger svg{color:var(--warn-text)}.ra-item.danger:hover{background:var(--warn-bg)}

/* Logo Ongixa recolorable (Identité visuelle) : le PNG sert de masque. */
.brand-mask{display:block;height:22px;aspect-ratio:3.8;background:var(--brandLogo);-webkit-mask:var(--logo-src) no-repeat left center/contain;mask:var(--logo-src) no-repeat left center/contain;flex-shrink:0}


/* E-permis de travail — 05/10/2026 */
.epermis-flow{display:flex;align-items:center;gap:7px;overflow:auto;margin:11px 0;padding:10px 12px;background:#f7fbfb;border:1px solid var(--line);border-radius:12px}
.ef-step{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:10px;color:#526269}.ef-step span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e8f1f0;color:#28645f;font-weight:800}.ef-step i{font-style:normal;color:#a7b5b8;font-size:17px}
.epermis-modal{width:min(1040px,96vw);max-height:94vh;display:flex;flex-direction:column}.epermis-modal .modal-head{flex:none}.ep-body{min-height:0;overflow:auto;padding:0}.ep-tabs{position:sticky;top:0;z-index:3;display:flex;gap:4px;padding:8px 15px;background:#fff;border-bottom:1px solid var(--line);overflow:auto}.ep-tabs button{border:1px solid transparent;background:#f4f7f7;color:#59696f;border-radius:8px;padding:7px 10px;font:inherit;font-size:10.5px;white-space:nowrap;cursor:pointer}.ep-tabs button.active{background:#e6f5f2;color:#086e65;border-color:#b8ded8;font-weight:800}.ep-step{padding:16px 18px 20px}.ep-step h4{margin:0 0 13px;font-size:14px;color:#233139}.ep-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ep-grid label,.ep-sign-grid label{display:flex;flex-direction:column;gap:5px;font-size:10.5px;font-weight:700;color:#536268}.ep-grid label.full{grid-column:1/-1}.ep-grid input,.ep-grid select,.ep-grid textarea,.ep-sign-grid input,.ep-step textarea{box-sizing:border-box;width:100%;border:1px solid #cbd7d9;border-radius:8px;padding:8px 9px;background:#fff;color:#243138;font:inherit;font-size:12px;min-width:0}.ep-grid textarea{resize:vertical}.ep-note{margin-top:12px;padding:9px 11px;border-radius:8px;background:#f1faf8;border:1px solid #cce7e2;color:#42615f;font-size:10.5px}.ep-note.warning{background:#fff8ed;border-color:#f1d8ab;color:#755721}.ep-checks{display:flex;flex-wrap:wrap;gap:6px}.ep-checks label{display:block!important;position:relative}.ep-checks input{position:absolute;width:1px;height:1px;opacity:0}.ep-checks span{display:inline-block;padding:7px 9px;border:1px solid #d7e0e2;border-radius:8px;background:#fafcfc;font-weight:600;font-size:10.5px;cursor:pointer}.ep-checks input:checked+span{background:#e7f6f3;border-color:#8ccfc5;color:#086e65}.ep-two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.ep-subhead{font-size:11px;font-weight:800;color:#26383d;margin-bottom:8px}.ep-task-row{display:grid;grid-template-columns:25px 1fr 1.3fr 32px;gap:5px;align-items:start;margin-bottom:6px}.ep-task-row>b{height:32px;display:grid;place-items:center;border-radius:7px;background:#edf5f4;color:#17675f}.ep-task-row input,.ep-task-row textarea{width:100%;box-sizing:border-box;border:1px solid #cbd7d9;border-radius:7px;padding:7px;font:inherit;font-size:11px}.ep-task-row textarea{min-height:32px;resize:vertical}.ep-danger-picker{border:1px solid var(--line);border-radius:9px;max-height:330px;overflow:auto;padding:7px}.ep-danger-picker details{border-bottom:1px solid #eef2f2;padding:4px 0}.ep-danger-picker summary{cursor:pointer;font-size:10.5px;font-weight:800;padding:5px}.ep-danger-picker label,.ep-control-group label{display:flex;gap:7px;align-items:flex-start;padding:5px 7px;font-size:10px;font-weight:500;cursor:pointer}.ep-danger-picker label:hover,.ep-control-group label:hover{background:#f7fbfb}.ep-danger-picker input,.ep-control-group input{margin-top:2px}.ep-controls-box{margin-top:12px;padding:10px;border:1px solid #d9e5e4;border-radius:10px;background:#fbfefe}.ep-control-group{padding:8px 0;border-bottom:1px dashed #e2eaea}.ep-control-group>b{font-size:10.5px;color:#31535a}.ep-control-group:last-child{border-bottom:0}.ep-empty{padding:10px;color:var(--muted);font-size:10.5px}.ep-validation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:15px}.ep-verify{display:flex;gap:8px;align-items:center;padding:9px 10px;border:1px solid #d8e2e2;border-radius:8px;background:#fafcfc;font-size:10.5px;font-weight:700;cursor:pointer}.ep-verify:has(input:checked){background:#eaf7f4;border-color:#9bd2ca;color:#096e65}.ep-sign-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ep-counter{font-size:10px;color:var(--muted);margin-right:auto}.ep-foot{display:flex;align-items:center;gap:7px;flex:none}.ep-foot .btn{white-space:nowrap}
@media(max-width:760px){.ep-grid,.ep-two,.ep-sign-grid,.ep-validation{grid-template-columns:1fr}.ep-grid label.full{grid-column:auto}.epermis-modal{width:100vw;height:100vh;max-height:100vh;border-radius:0}.ep-step{padding:13px}.ep-tabs{padding:7px}.ep-tabs button{font-size:9.5px}.ep-task-row{grid-template-columns:22px 1fr 32px}.ep-task-row textarea{grid-column:2/4}.ep-foot{padding:10px}.ep-foot .btn{font-size:10px;padding:7px 9px}}

/* ===== Export sur sélection (tables.js) ===== */
table .sel-col{width:34px;text-align:center;padding-left:8px!important;padding-right:4px!important}
table .sel-col input{width:15px;height:15px;accent-color:var(--green);cursor:pointer;margin:0;vertical-align:middle}
.sel-bar{position:fixed;left:50%;bottom:44px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:900;display:flex;align-items:center;gap:10px;background:#1f2a30;color:#fff;border-radius:999px;padding:6px 8px 6px 18px;box-shadow:0 10px 30px rgba(0,0,0,.25);font-size:12px;transition:opacity .16s,transform .16s}
.sel-bar.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.sel-bar .btn{height:28px;border-radius:999px}
.sel-bar .sel-clear{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.req-star{color:#c0392b}
@media print{.sel-col,.sel-bar{display:none!important}}

/* ===== Pipeline commercial (crm/opportunites, crm/opportunites/{id}) ===== */
.page-title .sub{font-size:11px;color:var(--muted)}
.mono{font-family:Consolas,"SFMono-Regular",Menlo,monospace;font-variant-numeric:tabular-nums}
.pl-funnel-panel{margin-top:12px}
.pl-funnel{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:4px;padding:10px;overflow-x:auto}
.pl-stage{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 8px 7px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px;min-width:92px;position:relative;transition:border-color .15s,box-shadow .15s,background-color .15s;font:inherit;color:inherit}
.pl-stage:hover{border-color:var(--green)}
.pl-stage.on{border-color:var(--green);background:var(--mint);box-shadow:inset 0 -3px 0 var(--green)}
.pl-stage.empty{opacity:.6}
.pl-stage .pl-n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;background:var(--mint);color:var(--mintText)}
.pl-stage.lost .pl-n{background:var(--warn-bg);color:var(--warn-text)}
.pl-stage .pl-name{font-size:10.5px;font-weight:600;line-height:1.25;min-height:26px}
.pl-stage .pl-meta{font-size:10px;color:var(--muted)}
.pl-stage .pl-meta b{color:var(--text);font-size:12px}
.pl-stage .pl-p{position:absolute;top:8px;right:8px;font-size:9px;color:var(--muted);font-weight:600}
.pl-bar{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.view-switch a{padding:5px 11px;border-radius:6px;font-size:11px;font-weight:600;color:#5b6770;text-decoration:none}
.view-switch a.on{background:#fff;color:var(--mintText);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.pl-search{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:0 9px;flex:1;max-width:360px}
.pl-search svg{width:14px;height:14px;color:var(--muted)}
.pl-search input{border:0;outline:0;padding:7px 0;width:100%;background:transparent}
.pl-count{font-size:11px;color:var(--muted);margin-left:auto}
.pl-table td{vertical-align:middle}
.pl-t{font-weight:600;font-size:11.5px}
.pl-s{font-size:10px;color:var(--muted);margin-top:2px}
.state.pl-cur{background:var(--calc-bg);color:var(--calc-text)}
.state.pl-lost{background:var(--warn-bg);color:var(--warn-text)}
.pl-prog{height:5px;background:#e8eef0;border-radius:3px;overflow:hidden;width:90px;margin-bottom:3px}
.pl-prog i{display:block;height:100%;background:var(--green)}
.pl-ref summary{list-style:none;cursor:pointer}
.pl-ref summary::-webkit-details-marker{display:none}
.pl-ref summary h2::before{content:'▸ ';color:var(--mintText)}
.pl-ref[open] summary h2::before{content:'▾ '}
.pl-reftable td{vertical-align:top}.pl-reftable ul{margin:0;padding-left:16px}
.pl-note{display:flex;gap:7px;align-items:flex-start;font-size:10.5px;color:var(--muted);margin:12px 0 0}
.pl-note svg{width:14px;height:14px;flex-shrink:0;color:var(--mintText)}
/* fiche */
.pl-head{display:flex;flex-wrap:wrap;gap:14px 30px;align-items:flex-end;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px 18px;margin-top:4px}
.pl-head-l{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.pl-head h1{font-size:21px;margin:0;line-height:1.2}
.pl-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.pl-label a{color:var(--mintText);text-decoration:none}
.pl-meta-row{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:4px}
.pl-meta-row>div{display:flex;flex-direction:column;gap:1px}
.pl-meta-row b{font-size:12px}
.pl-head-r{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.pl-prob{display:flex;align-items:baseline;gap:4px}
.pl-big{font-size:40px;font-weight:700;line-height:1;color:var(--mintText)}
.pl-pbar{height:6px;background:#e8eef0;border-radius:3px;overflow:hidden;width:180px}
.pl-pbar i{display:block;height:100%;background:var(--green);transition:width .4s}
.pl-hint{font-size:11px;color:var(--muted)}
.pl-hint.good{color:var(--mintText);font-weight:600}
.pl-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;align-items:start;margin-top:12px}
.pl-steps{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);border-radius:6px;position:sticky;top:8px}
.pl-steps button{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:26px 1fr auto;gap:9px;align-items:center;padding:7px 8px;border-radius:5px;cursor:pointer;font-size:11.5px}
.pl-steps button:hover{background:#f2f6f7}
.pl-steps button:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.pl-steps .n{font-size:10px;font-weight:700;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #cfd8db;color:var(--muted)}
.pl-steps .n svg{width:12px;height:12px}
.pl-steps .pc{font-size:10px;color:var(--muted)}
.pl-steps li.done .n{background:var(--mintText);border-color:var(--mintText);color:#fff}
.pl-steps li.current .n{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 18%,transparent)}
.pl-steps li.current button{font-weight:700}
.pl-steps li.viewing button{background:var(--mint)}
.pl-steps li.future button{color:#7c898f}
.pl-steps li.lostat .n,.pl-steps li.lost .n{border-color:var(--warn-text);color:var(--warn-text)}
.pl-steps li.lost.current .n{background:var(--warn-text);color:#fff}
.pl-steps .sep{height:1px;background:var(--line);margin:6px 4px}
.pl-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:18px;display:flex;flex-direction:column;gap:16px;min-width:0}
.pl-pane{display:flex;flex-direction:column;gap:16px}
.pl-pane[hidden]{display:none}
.pl-card-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:flex-start}
.pl-card-top h2{font-size:19px;margin:3px 0 0}
.pl-pill{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:999px;background:#eef2f3;color:var(--muted);font-weight:700;white-space:nowrap}
.pl-pill.cur{background:var(--calc-bg);color:var(--calc-text)}
.pl-pill.okk{background:var(--ok-bg);color:var(--ok-text)}
.pl-pill.bad{background:var(--warn-bg);color:var(--warn-text)}
.pl-def{margin:0;max-width:75ch;font-size:12px;line-height:1.55;color:#3d4c53}
.pl-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pl-box{background:#f4f7f8;border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.pl-box p{margin:0;font-size:11.5px}
.pl-h3,.pl-progline h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}
.pl-tasks-wrap{display:flex;flex-direction:column;gap:8px}
.pl-progline{display:flex;align-items:center;gap:12px}
.pl-progline h3{margin:0;white-space:nowrap}
.pl-progline .pl-pbar{flex:1;width:auto}
.pl-progline .mono{font-size:11px}
.pl-tasks{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.pl-tasks li+li{border-top:1px solid var(--line)}
.pl-tasks li{display:grid;grid-template-columns:20px 1fr auto;gap:10px;padding:10px 12px;align-items:start}
.pl-tasks li.editing{background:#f7fbfb}
.pl-tasks li.editing .pl-kv,.pl-tasks li.editing .when{display:none}
.pl-tasks li.pl-none{display:block;color:var(--muted);font-size:11px}
.pl-tasks .pl-btns{display:flex;gap:4px;align-items:center}
.pl-tasks .pl-open:disabled{opacity:.4;cursor:not-allowed}
.pl-kv{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:6px 0 2px;font-size:11px;background:#f5f8f8;border-left:2px solid var(--green);padding:6px 10px;border-radius:3px}
.pl-kv dt{color:var(--muted);font-weight:600}.pl-kv dt::after{content:' :'}.pl-kv dd{margin:0;white-space:pre-wrap;word-break:break-word}.pl-kv .pl-vide{color:#b4bcbf}
.pl-tasks .pl-f{display:grid!important;grid-template-columns:150px 1fr;gap:10px;align-items:center;margin-top:6px;font-size:11px}
.pl-tasks .pl-f>span{color:var(--muted);font-weight:600}
.pl-tasks .pl-f input,.pl-tasks .pl-f textarea{width:100%;font:inherit;font-size:11.5px;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:#fff}
.pl-add{margin-top:8px;align-self:flex-start}
@media (max-width:640px){.pl-tasks .pl-f{grid-template-columns:1fr;gap:3px}.pl-kv{grid-template-columns:1fr}.pl-kv dt::after{content:''}}
.pl-tasks .pl-dot{width:16px;height:16px;border-radius:50%;border:1.5px solid #c7d1d4;margin-top:1px;display:grid;place-items:center;color:#fff}
.pl-tasks li.checked .pl-dot{background:var(--green);border-color:var(--green)}
.pl-tasks .pl-dot svg{width:10px;height:10px}
.pl-tasks .pl-tbody{min-width:0}
.pl-tasks .pl-val{margin-top:5px;font-size:11px;color:var(--ink,#1c2a30);background:#f5f8f8;border-left:2px solid var(--green);padding:5px 8px;border-radius:3px;white-space:pre-wrap;word-break:break-word}
.pl-tasks .pl-edit{margin-top:6px}
.pl-tasks .pl-edit textarea{width:100%;font:inherit;font-size:11.5px;padding:7px 8px;border:1px solid var(--line);border-radius:5px;resize:vertical;min-height:52px}
.pl-tasks .pl-edit-b{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}
.pl-tasks .pl-open{padding:4px 9px;font-size:10.5px;white-space:nowrap}
@media (max-width:640px){.pl-tasks li{grid-template-columns:20px 1fr}.pl-tasks .pl-open{grid-column:2;justify-self:start}}
.pl-tasks .t{display:block;font-weight:600;font-size:11.5px}
.pl-tasks .d{display:block;font-size:10.5px;color:var(--muted)}
.pl-tasks .when{display:block;font-size:10px;color:var(--mintText);margin-top:2px}
.pl-tasks li.checked .t{color:var(--ink,#1c2a30)}
.pl-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:14px}
.pl-spacer{flex:1}
.btn.pl-danger{color:var(--warn-text);border-color:#e4b4b1}
.btn.pl-danger:hover{background:var(--warn-bg)}
.pl-chips{display:flex;flex-wrap:wrap;gap:6px}
.pl-chips span{font-size:10.5px;background:#eef2f3;border-radius:5px;padding:4px 9px}
.pl-chips span.on{background:var(--warn-bg);color:var(--warn-text);font-weight:700}
.pl-fieldset{border:0;padding:0;margin:0}
.pl-fieldset legend{font-size:10px;font-weight:700;color:#536168;margin-bottom:6px}
.pl-reasons{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}
.pl-reasons label{display:flex;gap:7px;align-items:center;border:1px solid var(--line);border-radius:5px;padding:7px 9px;cursor:pointer;font-size:11px}
.pl-reasons label:has(input:checked){border-color:var(--warn-text);background:var(--warn-bg)}
.pl-reasons input{accent-color:var(--warn-text)}
.pl-log{border-top:1px solid var(--line);padding-top:14px}
.pl-log-row{display:grid;grid-template-columns:120px 1fr;gap:10px;font-size:11px;padding:4px 0}
.pl-log-row .mono{color:var(--muted);font-size:10px}
.pl-log-row em{color:var(--muted);font-style:normal}
.pl-log-row.ok span:last-child::before{content:'✓ ';color:var(--green)}
.pl-log-row.bad span:last-child{color:var(--warn-text)}
.pl-log-row.warn span:last-child{color:var(--wait-text)}
@media (max-width:900px){.pl-grid{grid-template-columns:minmax(0,1fr)}.pl-steps{flex-direction:row;overflow-x:auto;position:static}.pl-steps li{flex:0 0 auto}.pl-steps button{grid-template-columns:24px auto}.pl-steps .pc{display:none}.pl-steps .sep{width:1px;height:auto}.pl-two{grid-template-columns:1fr}.pl-head-r{align-items:flex-start}}
@media (max-width:480px){.pl-log-row{grid-template-columns:1fr}}

/* ===== Pyramide de Bird (hse/bird) ===== */
.bd-periods .view-switch{flex-wrap:wrap}
.bd-ratio{font-size:17px!important;letter-spacing:.02em}
.bd-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;margin-top:12px;align-items:start}
.bd-svg{width:100%;height:auto;display:block;max-height:460px}
.bd-band{cursor:pointer}
.bd-band polygon{transition:filter .15s,transform .15s;transform-origin:290px 200px}
.bd-band:hover polygon,.bd-band:focus polygon{filter:brightness(1.08) saturate(1.1)}
.bd-band:focus{outline:none}
.bd-val{fill:#fff;font-size:24px;font-weight:700;font-family:inherit;pointer-events:none}
.bd-lead{stroke:#c5d0d3;stroke-width:1;stroke-dasharray:3 3}
.bd-lib{fill:#28343a;font-size:15px;font-weight:700;font-family:inherit}
.bd-sub{fill:#718087;font-size:12px;font-family:inherit}
.bd-band:hover .bd-lib{fill:var(--mintText)}
.bd-legend{display:flex;align-items:center;gap:6px;color:var(--muted)!important;cursor:default!important;font-size:10px!important}
.bd-tag{font-size:9px;font-weight:700;border-radius:4px;padding:2px 6px}
.bd-tag.auto{background:var(--ok-bg);color:var(--ok-text)}
.bd-tag.man{background:var(--wait-bg);color:var(--wait-text)}
.bd-read{display:flex;flex-direction:column;gap:8px}
.bd-msg{display:flex;gap:8px;align-items:flex-start;font-size:11px;padding:8px 10px;border-radius:5px;line-height:1.45}
.bd-msg svg{width:15px;height:15px;flex-shrink:0;margin-top:1px}
.bd-msg.warn{background:var(--warn-bg);color:var(--warn-text)}
.bd-msg.ok{background:var(--ok-bg);color:var(--ok-text)}
.bd-msg.calc{background:var(--calc-bg);color:var(--calc-text)}
.bd-ref{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:4px;font-size:11px}
.bd-ref small{color:var(--muted);font-size:10px}
.bd-quick{display:flex;flex-direction:column;gap:6px}
.bd-quick .btn{justify-content:flex-start}
.bd-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:0}
@media (max-width:1100px){.bd-layout{grid-template-columns:minmax(0,1fr)}}

/* ===== Tableau de bord QHSE-RSE (hse) ===== */
.qd-actions{flex-wrap:wrap;justify-content:flex-end}
.qd-k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.qd-hero{display:grid;grid-template-columns:260px 340px minmax(0,1fr);gap:10px;margin-top:14px}
.qd-hero>section{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;min-width:0}
.qd-safe{background:#0f6b5f!important;border-color:#0f6b5f!important;color:#fff;display:flex;flex-direction:column;gap:2px}
.qd-safe.low{background:#9a5a14!important;border-color:#9a5a14!important}
.qd-safe.none{background:#3d4c53!important;border-color:#3d4c53!important}
.qd-safe .qd-k{color:rgba(255,255,255,.75)}
.qd-big{font-size:54px;font-weight:800;line-height:1;margin:6px 0 4px;font-variant-numeric:tabular-nums}
.qd-safe-s{font-size:11px;color:rgba(255,255,255,.85)}
.qd-safe-r{margin-top:auto;padding-top:10px;font-size:11px;display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.9)}
.qd-safe-r svg{width:14px;height:14px}
.qd-score{display:flex;gap:14px;align-items:center}
.qd-ring{width:112px;height:112px;flex-shrink:0}
.qd-ring-v{font-size:19px;font-weight:800;fill:var(--text);font-family:inherit}
.qd-ring-l{font-size:8px;fill:var(--muted);font-family:inherit}
.qd-score-t{display:flex;flex-direction:column;gap:8px;min-width:0}
.qd-legend{display:flex;flex-direction:column;gap:5px}
.qd-lg{display:flex;align-items:center;gap:7px;font-size:11px;color:#536168}
.qd-lg i{width:9px;height:9px;border-radius:2px;flex-shrink:0;background:#cfd8db}
.qd-lg b{color:var(--text);min-width:16px}
.s-rouge>i,.qd-lg.s-rouge i,.qd-w.s-rouge i{background:#ad3c38}
.qd-lg.s-orange i,.qd-w.s-orange i{background:#d08a1f}
.qd-lg.s-vert i{background:#1f8f6a}
.qd-alerts{display:flex;flex-direction:column;gap:6px}
.qd-alerts-h{display:flex;justify-content:space-between;align-items:center}
.qd-alerts-h a{font-size:11px;color:var(--mintText);text-decoration:none;display:flex;align-items:center;gap:2px}
.qd-alerts-h a svg{width:13px;height:13px}
.qd-al{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:center;padding:7px 9px;border-left:3px solid var(--ac);border-radius:4px;background:#fafbfb;text-decoration:none;color:inherit}
.qd-al:hover{background:#f2f6f6}
.qd-al-n{font-size:9px;font-weight:800;text-transform:uppercase;color:var(--ac);letter-spacing:.04em}
.qd-al-t{min-width:0}.qd-al-t b{display:block;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qd-al-t small{display:block;font-size:10px;color:var(--muted)}
.qd-more{font-size:10.5px;color:var(--muted);text-decoration:none;padding-left:4px}
.qd-ok{display:flex;gap:7px;align-items:center;font-size:11.5px;color:var(--ok-text);background:var(--ok-bg);padding:10px;border-radius:5px}
.qd-ok svg{width:15px;height:15px}
.qd-domains{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.qd-dom{all:unset;box-sizing:border-box;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:9px;transition:border-color .15s,box-shadow .15s}
.qd-dom:hover{border-color:#b9c7cb;box-shadow:0 6px 16px rgba(16,30,36,.06)}
.qd-dom.on{border-color:var(--green);box-shadow:inset 0 3px 0 var(--green)}
.qd-dom:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.qd-dom-h{display:flex;align-items:center;gap:8px}
.qd-dom-h b{font-size:12.5px}
.qd-dom-i{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:var(--mint);color:var(--mintText)}
.qd-dom-i svg{width:15px;height:15px}
.qd-dom-n{margin-left:auto;font-size:10px;color:var(--muted)}
.qd-bar{display:flex;height:7px;border-radius:4px;overflow:hidden;gap:2px;background:#eef2f3}
.qd-bar i.s-rouge{background:#ad3c38}.qd-bar i.s-orange{background:#d08a1f}.qd-bar i.s-vert{background:#1f8f6a}.qd-bar i.s-nd{background:#cfd8db}.qd-bar i.s-info{background:#7aa0e0}
.qd-dom-w{display:flex;flex-direction:column;gap:4px;min-height:34px}
.qd-w{display:flex;align-items:center;gap:6px;font-size:11px;color:#3d4c53;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qd-w i{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.qd-w b{margin-left:auto}
.qd-fine{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ok-text)}
.qd-fine svg{width:14px;height:14px}
.qd-detail{margin-top:10px}
.qd-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 10px;overflow-x:auto}
.qd-tabs button{border:0;background:none;padding:11px 12px;font:inherit;font-size:11.5px;font-weight:600;color:#66757b;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.qd-tabs button.on{color:var(--mintText);border-bottom-color:var(--green)}
.qd-pane{padding:12px}
.qd-pane[hidden]{display:none}
.qd-h3{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#536168;margin:18px 0 8px}
.qd-rows{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.qd-row{display:grid;grid-template-columns:10px minmax(0,1fr) 110px 120px 84px 18px;gap:12px;align-items:center;padding:9px 12px;text-decoration:none;color:inherit;background:#fff}
.qd-row+.qd-row{border-top:1px solid #edf1f2}
a.qd-row:hover{background:#f7fafa}
.qd-dot{width:9px;height:9px;border-radius:50%;background:#cfd8db}
.qd-row.s-rouge .qd-dot{background:#ad3c38;box-shadow:0 0 0 3px rgba(173,60,56,.15)}
.qd-row.s-orange .qd-dot{background:#d08a1f}
.qd-row.s-vert .qd-dot{background:#1f8f6a}
.qd-row.s-info .qd-dot{background:#7aa0e0}
.qd-lib{min-width:0}.qd-lib b{display:block;font-size:11.5px}
.qd-lib small{display:block;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qd-val{font-size:16px;font-weight:800;text-align:right;font-variant-numeric:tabular-nums}
.qd-val small{font-size:10px;color:var(--muted);font-weight:600}
.qd-cible{font-size:10.5px;color:var(--muted)}.qd-cible b{color:#3d4c53}
.qd-row .state{justify-self:start}
.qd-go{color:#9aa6ab}.qd-go svg{width:14px;height:14px}
.qh-normes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.qh-norme{border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:#fff}.qh-norme-h{display:flex;justify-content:space-between;align-items:center}
.qh-norme-n{font-size:10.5px;color:#66757b;margin-top:2px}.qh-norme-t{display:flex;justify-content:space-between;font-size:11px}.qh-norme-t span{color:#8a969c;font-size:10px}.qh-norme-s{font-size:9.5px;color:#8a969c;margin-top:4px}
.qd-rse{display:grid;grid-template-columns:180px repeat(3,minmax(0,1fr));gap:8px}
.qh-indice{border:1px solid var(--line);border-radius:6px;padding:14px;text-align:center;background:#fafcfc}.qh-indice .l{font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:#7c898f}
.qh-indice .v{font-size:32px;font-weight:800;margin-top:4px;color:var(--mintText)}.qh-indice .s{font-size:10px;color:#8a969c}
.qh-pilier{border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.qd-pil-h{display:flex;justify-content:space-between;font-size:11.5px}.qd-pil-h span{font-size:10px;color:#8a969c}
.qd-pil-v{font-size:18px;font-weight:800}.qd-pil-v small,.qd-pil-v span{font-size:11px;color:#8a969c;font-weight:600}
.qd-envk{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.qd-envk>div{border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.qd-envk b{font-size:16px}.qd-envk span{font-size:10px;color:var(--muted)}
@media (max-width:1250px){.qd-hero{grid-template-columns:1fr 1fr}.qd-alerts{grid-column:1/-1}}
@media (max-width:900px){.qd-hero,.qd-domains{grid-template-columns:1fr}.qd-row{grid-template-columns:10px minmax(0,1fr) auto;row-gap:4px}.qd-cible,.qd-go{display:none}.qd-row .state{grid-column:2}.qd-rse{grid-template-columns:1fr 1fr}}

/* ===== Corbeille ===== */
.cb-tables{display:flex;flex-wrap:wrap;gap:4px}
.cb-tables span{font-size:10px;background:#eef2f3;border-radius:4px;padding:2px 7px;color:#536168}
.cb-tables b{color:var(--text)}
.cb-bulk{display:flex;gap:6px;cursor:default!important}
.del-preview{display:flex;flex-direction:column;gap:8px}
.del-preview ul{margin:0;padding-left:18px;max-height:140px;overflow:auto}
.del-preview .cb-tables span{font-size:10.5px}
.cb-bulk[hidden]{display:none!important}

/* ===== E-permis : assistant ===== */
.ep-head small{display:block;color:color-mix(in srgb,var(--headerText) 75%,transparent);font-size:11px;margin-top:3px}
.ep-head .req-star{color:#ffb4ad}
.ep-progress{height:3px;background:#e6ecee;flex:none}
.ep-progress i{display:block;height:100%;width:0;background:var(--green);transition:width .3s ease}
.ep-tabs button{display:inline-flex;align-items:center;gap:6px}
.ep-tabs .ep-n{width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;font-size:9.5px;font-weight:800;background:#fff;border:1px solid #cbd7d9;color:#59696f}
.ep-tabs button.active .ep-n{background:var(--green);border-color:var(--green);color:#fff}
.ep-tabs button.done{color:#086e65}
.ep-tabs button.done .ep-n{background:#d8f0ec;border-color:#9bd2ca;color:#086e65;font-size:0}
.ep-tabs button.done .ep-n::after{content:'✓';font-size:10px}
.ep-tabs button.locked,.ep-tabs button:disabled{opacity:.5;cursor:not-allowed}
.req-lab{display:inline}
.ep-grid label .req-lab,.ep-sign-grid label .req-lab{display:block}
.ep-counter{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline;font-size:11px;color:var(--muted);margin-right:auto;min-width:0}
.ep-counter b{color:var(--text)}
#ep-missing.bad{color:var(--warn-text)}
#ep-missing.good{color:var(--ok-text)}
.ep-dsearch{width:100%;box-sizing:border-box;border:1px solid #cbd7d9;border-radius:8px;padding:7px 9px;margin-bottom:6px;font:inherit;font-size:11.5px}
.ep-count{font-weight:600;color:var(--mintText);font-size:10px;margin-left:4px}
.ep-subhead .req-star,.ep-lbl>.req-star{margin-left:2px}
.ep-step input:invalid:not(:placeholder-shown),.ep-step textarea:invalid:not(:placeholder-shown){border-color:#e4b4b1}
.btn.pm-del{color:var(--warn-text);border-color:#e4b4b1;padding:7px 9px}
.btn.pm-del svg{margin:0}
.btn.pm-del:hover{background:var(--warn-bg)}
.pm-actions{display:flex;flex-wrap:wrap;gap:6px}

/* ===== Documents QHSE imprimés depuis l'application : en-tête + QR + pied ===== */
.print-head,.print-foot{display:none}
@media print{
  .print-head{display:flex!important;align-items:center;gap:16px;border-bottom:2px solid var(--green);padding-bottom:8px;margin-bottom:12px}
  .print-head .ph-l{display:flex;gap:10px;align-items:center;flex:1}
  .print-head img{max-height:40px;max-width:140px}
  .print-head b{display:block;font-size:12px}.print-head small{display:block;font-size:9px;color:#6b7a80}
  .print-head .ph-c{text-align:right}
  .print-foot{display:block!important}
}

/* ===== Processus digitalisés du projet (projets/{id}) ===== */
.pp-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;margin-top:10px;align-items:start}
.pp-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.pp-sub{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pp-chip{background:var(--mint);color:var(--mintText);border-radius:999px;padding:2px 9px;font-weight:700;font-size:10px}
.pp-chip.off{background:#eef2f3;color:var(--muted)}
.pp-cards{display:flex;gap:10px;flex-wrap:wrap}
.pp-card{all:unset;box-sizing:border-box;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:8px;padding:11px 13px;min-width:220px;display:flex;flex-direction:column;gap:5px;transition:border-color .15s,box-shadow .15s}
.pp-card b{font-size:12.5px}.pp-card span{font-size:11px;color:var(--muted)}
.pp-card.on{border-color:var(--green);background:color-mix(in srgb,var(--green) 7%,#fff);box-shadow:0 0 0 1px var(--green)}
.pp-card.locked{opacity:.7}
.pp-card:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.pp-bar{display:block;height:4px;background:#e8eef0;border-radius:2px;overflow:hidden;flex:1}
.pp-bar i{display:block;height:100%;background:var(--mintText);border-radius:2px}
.pp-flowp{padding:0}
.pp-flowh{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 14px;border-bottom:1px solid var(--line)}
.pp-flowh h2{margin:0;font-size:11px;letter-spacing:.06em}.pp-flowh span{font-size:11px;color:var(--muted)}
.pp-flow{list-style:none;margin:0;padding:14px 10px 12px;display:flex;overflow-x:auto}
.pp-flow li{flex:1;min-width:110px;position:relative;text-align:center}
.pp-flow li::before{content:'';position:absolute;top:13px;left:-50%;right:50%;height:2px;background:#dfe6e8}
.pp-flow li:first-child::before{display:none}
.pp-flow li.done::before,.pp-flow li.current::before{background:var(--mintText)}
.pp-flow button{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;position:relative;z-index:1}
.pp-flow button:focus-visible .pp-dot{outline:2px solid var(--green);outline-offset:2px}
.pp-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1.5px solid #cfd8db;font-size:10px;font-weight:700;color:var(--muted)}
.pp-dot svg{width:12px;height:12px}
.pp-flow li.done .pp-dot{background:var(--mintText);border-color:var(--mintText);color:#fff}
.pp-flow li.current .pp-dot{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 18%,transparent)}
.pp-flow li.viewing b{text-decoration:underline;text-underline-offset:3px}
.pp-flow b{font-size:11px;font-weight:600;color:#28343a}.pp-flow small{font-size:10px;color:var(--muted)}
.pp-step{padding:16px;display:flex;flex-direction:column;gap:12px}
.pp-step[hidden]{display:none}
.pp-step-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.pp-step-top h3{margin:4px 0 0;font-size:18px}
.pp-k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.pp-pill{font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;background:#eef2f3;color:var(--muted)}
.pp-pill.ok{background:var(--ok-bg);color:var(--ok-text)}.pp-pill.cur{background:var(--calc-bg);color:var(--calc-text)}
.pp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pp-tags span{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;background:var(--mint);color:var(--mintText);border-radius:999px;padding:3px 10px}
.pp-tags svg{width:11px;height:11px}
.pp-auto{background:#f3effb;border-left:3px solid #7a5cc4;border-radius:4px;padding:9px 12px;font-size:11.5px;color:#3b2f5c}
.pp-actl{display:flex;align-items:center;gap:10px}.pp-actl .pp-bar{height:5px}.pp-n{font-size:11px}
.pp-tasks{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.pp-tasks li+li{border-top:1px solid var(--line)}
.pp-tasks label{display:grid;grid-template-columns:20px 1fr;gap:10px;padding:10px 12px;cursor:pointer}
.pp-tasks label:hover{background:#f7fafa}
.pp-tasks input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--green)}
.pp-tasks input:disabled{cursor:not-allowed}
.pp-tasks .t{display:block;font-weight:600;font-size:11.5px}.pp-tasks .d{display:block;font-size:10.5px;color:var(--muted)}.pp-tasks .w{display:block;font-size:10px;color:var(--mintText)}

.pp-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap}
.pp-hint{font-size:11px;color:var(--muted)}
.pp-msg{position:sticky;top:8px;display:flex;flex-direction:column;max-height:calc(100vh - 210px)}
.pp-msg-h{display:flex;gap:8px;align-items:baseline;padding:11px 13px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pp-msg-h b{font-size:11px;text-transform:uppercase;letter-spacing:.06em}.pp-msg-h span{font-size:10.5px;color:var(--muted)}
.pp-tabs{display:flex;border-bottom:1px solid var(--line);padding:0 6px}
.pp-tabs button{border:0;background:none;font:inherit;font-size:11px;font-weight:600;color:#66757b;padding:9px 7px;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;display:flex;align-items:center;gap:4px}
.pp-tabs button.on{color:var(--mintText);border-bottom-color:var(--green)}
.pp-badge{font-style:normal;font-size:9px;min-width:16px;height:16px;border-radius:8px;display:inline-grid;place-items:center;background:#e8eef0;color:var(--muted);padding:0 4px}
.pp-badge.on{background:var(--green);color:#fff}
.pp-list{overflow:auto;flex:1;min-height:90px;max-height:300px}
.pp-list[hidden]{display:none}
.pp-m{display:flex;gap:8px;padding:9px 12px;border-bottom:1px solid #eef2f3}
.pp-m.unread{background:#f3faf9}
.pp-m small{display:block;font-size:9.5px;color:var(--muted)}.pp-m p{margin:2px 0 0;font-size:11.5px;line-height:1.45}.pp-m em{display:block;font-style:normal;font-size:9.5px;color:var(--mintText)}
.pp-av{width:24px;height:24px;border-radius:6px;flex-shrink:0;display:grid;place-items:center;background:var(--mint);color:var(--mintText);font-size:9px;font-weight:700}
.pp-m.robot .pp-av{background:#efe9fb;color:#6b4fc0}.pp-av svg{width:13px;height:13px}
.pp-m.robot.mine{background:#faf8ff}
.pp-j{display:grid;grid-template-columns:62px 1fr;gap:6px;padding:6px 12px;font-size:11px;border-bottom:1px solid #f1f4f5}
.pp-j small{color:var(--muted);font-size:9.5px}.pp-j.val span{font-weight:600;color:var(--ok-text)}
.pp-empty{padding:16px 12px;font-size:11px;color:var(--muted)}
.pp-send{display:flex;flex-direction:column;gap:6px;padding:11px 12px;border-top:1px solid var(--line)}
.pp-send select,.pp-send textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5d8;border-radius:5px;padding:7px;font:inherit;font-size:11.5px;background:#fff}
.pp-send .btn{justify-content:center}
@media (max-width:1100px){.pp-grid{grid-template-columns:minmax(0,1fr)}.pp-msg{position:static;max-height:none}}
.pp-card .pp-bar{flex:none;width:100%;margin-top:4px}
@media (max-width:700px){.pl-head{flex-direction:column;align-items:stretch}.pl-head-r{align-items:flex-start}.pl-meta-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.pl-pbar{width:100%}}

/* ===== Patrimoine ===== */
.pt-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.pt-bar .view-switch small{color:var(--muted);font-weight:600;margin-left:2px}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:10px}
.pt-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s,border-color .18s}
.pt-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(16,30,36,.09);border-color:#c5d2d5}
.pt-img{position:relative;display:block;aspect-ratio:16/10;background:#eef3f4}
.pt-img img{width:100%;height:100%;object-fit:cover;display:block}
.pt-noimg{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#9aaab0}
.pt-noimg svg{width:30px;height:30px}.pt-noimg small{font-size:10.5px}
.pt-noimg.big{position:static;min-height:300px;gap:10px}.pt-noimg.big b{color:#536168}
.pt-type,.pt-nb{position:absolute;top:8px;font-size:10px;font-weight:700;border-radius:999px;padding:3px 9px;background:rgba(255,255,255,.92);color:#28343a}
.pt-type{left:8px}.pt-nb{right:8px;background:rgba(2,14,36,.72);color:#fff}
.pt-body{display:flex;flex-direction:column;gap:3px;padding:11px 13px 13px}
.pt-code{font-size:10px;color:var(--muted)}.pt-body b{font-size:13px}.pt-body small{font-size:10.5px;color:var(--muted)}
.pt-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:10.5px;color:#536168;margin-top:5px}
.pt-val{font-size:14px;font-weight:800;margin-top:4px;color:var(--mintText)}
.pt-show{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;margin-top:12px;align-items:start}
.pt-gal{overflow:hidden}
.pt-hero{position:relative;background:#0f1a1e;cursor:zoom-in;display:flex;align-items:center;justify-content:center;min-height:200px;max-height:460px}
.pt-hero img{width:100%;max-height:460px;object-fit:contain;display:block}
.pt-hero .pt-noimg{background:#eef3f4;width:100%;cursor:default}
.pt-hero-cap{position:absolute;left:10px;bottom:10px;background:rgba(2,14,36,.7);color:#fff;font-size:11px;padding:4px 10px;border-radius:999px}
.pt-thumbs{display:flex;gap:8px;padding:10px;overflow-x:auto;border-top:1px solid var(--line)}
.pt-th{position:relative;margin:0;flex:0 0 112px;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#fff}
.pt-th.main{border-color:var(--green)}
.pt-th img{display:block;width:100%;height:76px;object-fit:cover;cursor:zoom-in}
.pt-th figcaption{font-size:9.5px;padding:3px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#536168}
.pt-th-a{position:absolute;top:4px;right:4px;display:flex;gap:3px;opacity:0;transition:opacity .15s}
.pt-th:hover .pt-th-a,.pt-th:focus-within .pt-th-a{opacity:1}
.pt-th-a button{width:24px;height:24px;border-radius:6px;border:0;background:rgba(255,255,255,.95);display:grid;place-items:center;cursor:pointer;color:#3d4c53}
.pt-th-a button svg{width:13px;height:13px}
.pt-add{flex:0 0 112px;border:2px dashed #c5d4d7;border-radius:8px;background:#fafcfc;color:var(--mintText);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:inherit;font-size:11px;cursor:pointer;min-height:96px}
.pt-add svg{width:20px;height:20px}
.pt-kv{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}
.pt-kv div{background:#f6f8f9;border-radius:6px;padding:8px 10px}.pt-kv .full{grid-column:1/-1}
.pt-kv dt{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.pt-kv dd{margin:2px 0 0;font-weight:600;font-size:12px}
.pt-eq-img{width:44px;height:34px;border-radius:5px;object-fit:cover;cursor:zoom-in;display:block}
.pt-eq-img.none{display:grid;place-items:center;background:#eef3f4;color:#9aaab0;cursor:default}.pt-eq-img.none svg{width:15px;height:15px}
.pt-lb{position:fixed;inset:0;z-index:2000;background:rgba(5,12,16,.92);display:flex;align-items:center;justify-content:center;gap:10px;padding:20px}
.pt-lb[hidden]{display:none}
.pt-lb figure{margin:0;max-width:min(1100px,86vw);text-align:center}
.pt-lb img{max-width:100%;max-height:80vh;border-radius:6px;display:block;margin:auto}
.pt-lb figcaption{color:#dfe8ea;font-size:12px;margin-top:8px}
.pt-lb button{border:0;background:rgba(255,255,255,.12);color:#fff;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.pt-lb button svg{width:20px;height:20px}.pt-lb-x{position:absolute;top:16px;right:16px}
@media (max-width:900px){.pt-show{grid-template-columns:1fr}.pt-lb-p,.pt-lb-n{position:absolute;bottom:20px}.pt-lb-p{left:30%}.pt-lb-n{right:30%}}

/* ===== Supervision : onglets, journal, liens, responsive ===== */
.sup-tabs{display:flex;gap:4px;margin:-2px 0 10px;border-bottom:1px solid var(--line)}
.sup-tabs button{border:0;background:none;font:inherit;font-size:11.5px;font-weight:600;color:#66757b;padding:8px 10px;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;display:flex;align-items:center;gap:6px}
.sup-tabs button.on{color:var(--mintText);border-bottom-color:var(--green)}
.sup-tabs svg{width:13px;height:13px}
.sup-jf{display:grid;grid-template-columns:150px 1fr 1fr 1.2fr;gap:6px;margin-bottom:8px}
.sup-jf input,.sup-jf select{border:1px solid #d6dfe1;border-radius:6px;padding:6px 8px;font:inherit;font-size:11px;min-width:0;background:#fff}
.sup-jcount{font-size:10.5px;color:var(--muted);margin-bottom:6px}
.sup-ev{position:relative}
.sup-ev .sup-go{margin-left:auto;align-self:center;flex-shrink:0;font-size:10.5px;font-weight:700;color:var(--mintText);text-decoration:none;border:1px solid #cfe4e1;border-radius:6px;padding:3px 8px;white-space:nowrap;background:#fff}
.sup-ev .sup-go:hover{background:var(--mint)}
.tg.cons{background:#eef0fb!important;color:#4b5bb7!important}
.sup-user{cursor:pointer}
.sup-user:hover{border-color:#c9d6d9}
.sup-user .meta{margin-left:auto;font-size:10px;color:var(--muted);white-space:normal;text-align:right;min-width:90px}
@media (max-width:900px){.sup-kpis{grid-template-columns:repeat(2,1fr)!important}.sup-jf{grid-template-columns:1fr 1fr}.sup-user .meta{width:100%;text-align:left;margin-left:42px}.sup-ev{flex-wrap:wrap}.sup-ev .sup-go{margin-left:42px}}
@media (max-width:520px){.sup-kpis{grid-template-columns:1fr 1fr}.page-title .sup-live{font-size:10px}}
.sup-ev{grid-template-columns:44px 30px minmax(0,1fr) auto}
.sup-ev .sup-go{margin-left:0}
@media (max-width:900px){.sup-ev{grid-template-columns:38px 28px minmax(0,1fr)}.sup-ev .sup-go{grid-column:3;justify-self:start;margin-left:0}}
@media (max-width:900px){.sup-user{flex-wrap:wrap}}

/* ---------- Dossier du salarié (salaries/{matricule}) ---------- */
.sd-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px 20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px}
.sd-photo{position:relative;width:92px;height:92px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--line),0 6px 16px rgba(16,30,36,.10);padding:0;cursor:pointer;overflow:hidden;background:var(--mint);color:var(--mintText);grid-row:span 2}
.sd-photo img{width:100%;height:100%;object-fit:cover;display:block}
.sd-photo span{font-size:30px;font-weight:700;letter-spacing:.5px}
.sd-photo i{position:absolute;inset:auto 0 0 0;height:30px;background:rgba(2,14,36,.55);color:#fff;display:grid;place-items:center;opacity:0;transition:opacity .15s}
.sd-photo i svg{width:15px;height:15px}
.sd-photo:hover i,.sd-photo.empty i{opacity:1}
.sd-id h1{margin:0;font-size:20px;line-height:1.2;color:var(--text)}
.sd-id p{margin:3px 0 8px;color:var(--muted);font-size:12px}
.sd-id p a{color:var(--mintText)}
.sd-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sd-chip{font-size:11px;background:#f3f6f7;border:1px solid #e4eaec;border-radius:20px;padding:3px 9px;color:#4c5a60}
.sd-chip b{color:var(--text)}
.sd-kpis{display:grid;grid-template-columns:repeat(4,minmax(90px,auto));gap:8px;grid-column:3;grid-row:1}
.sd-kpis>div{border:1px solid #e7ecee;border-radius:9px;padding:7px 11px;background:#fafcfc}
.sd-kpis small{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.sd-kpis b{font-size:15px;color:var(--text)}
.sd-kpis em{display:block;font-style:normal;font-size:10px;color:var(--wait-text,#9a6700)}
.sd-actions{grid-column:2/4;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.sd-menu{position:relative}
.sd-menu-list{display:none;position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px rgba(16,30,36,.14);min-width:240px;z-index:40;padding:4px}
.sd-menu.open .sd-menu-list{display:block}
.sd-menu-list a{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:6px;color:var(--text);text-decoration:none;font-size:12px}
.sd-menu-list a:hover{background:var(--mint)}
.sd-menu-list svg{width:14px;height:14px;color:var(--mintText)}
.sd-alerts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.sd-alert{display:inline-flex;gap:6px;align-items:center;border:1px solid;border-radius:20px;padding:5px 11px;font-size:11.5px;cursor:pointer;background:#fff}
.sd-alert svg{width:13px;height:13px}
.sd-alert.warn{border-color:#f1c4bf;color:#b4321f;background:#fff6f5}
.sd-alert.wait{border-color:#f0dca8;color:#8a5a00;background:#fffbf0}
.sd-alert.ok{border-color:#bfe6dc;color:var(--mintText)}
.sd-tabs{overflow-x:auto;scrollbar-width:thin;flex-wrap:nowrap}
.sd-tabs .tab{white-space:nowrap}
.sd-count{display:inline-block;min-width:17px;padding:0 5px;border-radius:9px;background:var(--mint);color:var(--mintText);font-size:10px;line-height:16px;text-align:center}
.sd-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 26px}
.sd-grid2+.sd-grid2{margin-top:6px}
.sd-panel .section-label{display:flex;justify-content:space-between;align-items:center}
.sd-more{font-size:11px;font-weight:600;color:var(--mintText);text-decoration:none;text-transform:none;letter-spacing:0}
.sd-muted{color:var(--muted);font-size:12px;margin:4px 0 10px}
.sd-empty{text-align:center;color:#8a969c;padding:14px!important}
.sd-table td.num,.sd-table th.num{text-align:right;white-space:nowrap}
.sd-row-act{white-space:nowrap;text-align:right}
.sd-row-act a{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:6px;color:var(--muted)}
.sd-row-act a:hover{background:var(--mint);color:var(--mintText)}
.sd-row-act svg{width:14px;height:14px}
.sd-sub{display:block;color:var(--muted);font-size:10.5px}
.sd-net{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:10px 12px;border-radius:9px;background:var(--mint);color:var(--mintText)}
.sd-net b{font-size:17px}
.sd-contract{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.sd-crow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #e7ecee;border-radius:9px;padding:9px 10px}
.sd-crow b{display:block;font-size:12.5px}
.sd-crow small{display:block;color:var(--muted);font-size:11px}
.sd-ico{width:34px;height:34px;border-radius:8px;display:grid;place-items:center}
.sd-ico svg{width:16px;height:16px}
.sd-ico.pdf,.sd-doc-prev.pdf{background:#fdeceb;color:#c0392b}
.sd-ico.doc,.sd-doc-prev.doc{background:#e8f0fd;color:#1f5fbf}
.sd-doc-prev.xls{background:#e6f5ec;color:#1d7a45}
.sd-doc-prev.oth{background:#f1f4f5;color:#5d6a70}
.sd-cbtns{display:flex;gap:4px}
.btn.sm{padding:4px 9px;font-size:11px;min-height:0}
.sd-signed{display:inline-flex;gap:4px;align-items:center;font-size:11px;color:var(--mintText);text-decoration:none;margin-top:3px}
.sd-signed svg,.sd-link svg{width:12px;height:12px}
.sd-link{display:inline-flex;gap:4px;align-items:center;background:none;border:0;padding:0;margin-top:3px;font-size:11px;color:#8a5a00;cursor:pointer;text-decoration:underline dotted}
.sd-signed.wait{color:var(--wait-text)}
.sd-crow>div>a,.sd-crow>div>button{display:flex;width:max-content;max-width:100%}
.sd-add{align-self:flex-start}
.sd-tags{display:flex;flex-wrap:wrap;gap:6px}
.sd-tag{background:#f3f6f7;border:1px solid #e4eaec;border-radius:7px;padding:5px 9px;font-size:11.5px}
.sd-soldes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:8px}
.sd-solde{border:1px solid #e7ecee;border-radius:9px;padding:9px 11px}
.sd-solde small{display:block;font-size:10.5px;color:var(--muted)}
.sd-solde b{font-size:18px}
.sd-solde em{display:block;font-style:normal;font-size:10.5px;color:var(--muted);margin-top:3px}
.sd-bar{height:5px;border-radius:5px;background:#edf1f2;overflow:hidden;margin-top:5px}
.sd-bar.big{height:8px}
.sd-bar i{display:block;height:100%;background:var(--green);border-radius:5px}
.sd-timeline{display:flex;flex-direction:column;gap:0;margin-bottom:8px}
.sd-ti{display:grid;grid-template-columns:14px 1fr;gap:8px;position:relative;padding-bottom:12px}
.sd-ti:before{content:"";position:absolute;left:6px;top:12px;bottom:0;width:2px;background:#e7ecee}
.sd-ti:last-child:before{display:none}
.sd-ti>i{width:10px;height:10px;border-radius:50%;background:var(--green);margin-top:3px;box-shadow:0 0 0 3px var(--mint)}
.sd-ti small{display:block;color:var(--muted);font-size:11px}
.sd-ti p{margin:4px 0 0;font-size:12px;color:#4c5a60}
.sd-skills{display:flex;flex-direction:column;gap:6px}
.sd-skill{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid #eef2f3;padding:6px 0}
.sd-skill small{display:block;color:var(--muted);font-size:10.5px}
.sd-dots{display:flex;gap:3px}
.sd-dots i{width:16px;height:7px;border-radius:4px;background:#e7ecee}
.sd-dots i.on{background:var(--green)}
.sd-dots i.target{background:transparent;box-shadow:inset 0 0 0 1.5px var(--green)}
.sd-doc-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.sd-check{display:flex;gap:6px;flex-wrap:wrap}
.sd-check span{display:inline-flex;gap:5px;align-items:center;font-size:11.5px;padding:4px 10px;border-radius:20px;border:1px solid}
.sd-check svg{width:13px;height:13px}
.sd-check .ok{border-color:#bfe6dc;color:var(--mintText);background:var(--mint)}
.sd-check .miss{border-color:#e1e6e8;color:var(--muted);border-style:dashed;cursor:pointer}
.sd-check .miss:hover{border-color:var(--green);color:var(--mintText)}
.sd-note{display:flex;gap:6px;align-items:center}
.sd-note svg{width:13px;height:13px}
.sd-filter{margin:4px 0 10px;flex-wrap:wrap}
.sd-filter small{color:var(--muted);font-weight:600}
.sd-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.sd-doc{display:grid;grid-template-columns:58px minmax(0,1fr);grid-template-rows:auto auto;gap:6px 10px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;transition:box-shadow .15s,border-color .15s}
.sd-doc:hover{border-color:#c5d2d5;box-shadow:0 8px 20px rgba(16,30,36,.07)}
.sd-doc[hidden]{display:none}
.sd-doc-prev{grid-row:span 2;width:58px;height:70px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;overflow:hidden}
.sd-doc-prev img{width:100%;height:100%;object-fit:cover}
.sd-doc-prev svg{width:20px;height:20px}
.sd-doc-prev em{font-style:normal;font-size:9.5px;font-weight:700}
.sd-doc-prev.img{background:#f1f4f5}
.sd-doc-body{min-width:0}
.sd-doc-body b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sd-doc-body small{display:block;color:var(--muted);font-size:10.5px}
.sd-doc-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}
.sd-origin{font-size:10px;border:1px solid #e1e6e8;border-radius:4px;padding:1px 5px;color:#5d6a70}
.sd-refus{color:#b4321f!important;margin-top:3px}
.sd-doc-act{display:flex;gap:2px;justify-content:flex-end}
.sd-doc-act a,.sd-doc-act button{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:6px;border:0;background:none;color:var(--muted);cursor:pointer}
.sd-doc-act svg{width:14px;height:14px}
.sd-doc-act a:hover,.sd-doc-act button:hover{background:var(--mint);color:var(--mintText)}
.sd-doc-act .ok-btn{color:var(--mintText)}
.sd-doc-act .del:hover{background:#fdeceb;color:#c0392b}
.sd-drop-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:4px;border:2px dashed #d5dee1;border-radius:12px;background:#fafcfc;padding:28px;cursor:pointer;color:var(--muted)}
.sd-drop-empty svg{width:26px;height:26px;color:var(--green)}
.sd-drop-empty b{color:var(--text)}
.sd-narrow{max-width:720px}
.sd-photo-prev{width:150px;height:150px;border-radius:50%;margin:0 auto 14px;overflow:hidden;background:var(--mint);color:var(--mintText);display:grid;place-items:center;font-size:44px;font-weight:700;box-shadow:0 0 0 1px var(--line)}
.sd-photo-prev img{width:100%;height:100%;object-fit:cover}
.sd-dirty{position:sticky;bottom:10px;margin:10px auto 0;width:max-content;max-width:100%;display:flex;gap:10px;align-items:center;background:#28343a;color:#fff;border-radius:30px;padding:6px 6px 6px 14px;font-size:12px;box-shadow:0 10px 26px rgba(0,0,0,.2);z-index:30}
.sd-dirty[hidden]{display:none}
.sd-dirty svg{width:14px;height:14px}
.emp-ava{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--mint);color:var(--mintText);display:inline-grid;place-items:center;font-size:10.5px;font-weight:700;vertical-align:middle}
@media (max-width:1100px){
  .sd-hero{grid-template-columns:auto minmax(0,1fr)}
  .sd-kpis{grid-column:1/-1;grid-row:auto;grid-template-columns:repeat(4,minmax(0,1fr))}
  .sd-actions{grid-column:1/-1;justify-content:flex-start}
  .sd-photo{grid-row:auto}
}
@media (max-width:760px){
  .sd-grid2{grid-template-columns:1fr}
  .sd-hero{padding:14px;gap:12px}
  .sd-photo{width:70px;height:70px}
  .sd-photo span{font-size:22px}
  .sd-id h1{font-size:17px}
  .sd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sd-actions .btn{flex:1 1 auto;justify-content:center}
  .sd-menu{flex:1 1 auto}.sd-menu>.btn{width:100%}
  .sd-crow{grid-template-columns:34px minmax(0,1fr)}
  .sd-cbtns{grid-column:2}
  .sd-docs{grid-template-columns:1fr}
}
@media print{.sd-actions,.sd-alerts,.sd-tabs,.sd-dirty,.sd-doc-act{display:none!important}.tabpanel{display:block!important}}

/* ---------- Contrats & avantages ---------- */
.ct-click{cursor:pointer}
.ct-bar{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.ct-bar .view-switch{flex-wrap:wrap}
.ct-bar .view-switch small{color:var(--muted);font-weight:600}
.ct-search{min-width:240px;flex:0 1 300px}
.ct-list{display:flex;flex-direction:column;gap:6px}
.ct-row{display:grid;grid-template-columns:minmax(220px,1.6fr) 110px minmax(180px,1.2fr) 140px auto;gap:12px;align-items:center;border:1px solid #e7ecee;border-radius:10px;padding:8px 12px;background:#fff;transition:border-color .15s,box-shadow .15s}
.ct-row:hover{border-color:#c5d2d5;box-shadow:0 6px 16px rgba(16,30,36,.06)}
.ct-row[hidden]{display:none}
.ct-row.av{grid-template-columns:minmax(200px,1.2fr) minmax(200px,1.6fr) 140px auto}
.ct-row.ech{grid-template-columns:minmax(220px,1.4fr) 140px minmax(200px,1.6fr) auto}
.ct-who{display:flex;gap:10px;align-items:center;text-decoration:none;color:inherit;min-width:0}
.ct-who span{min-width:0}
.ct-who b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-who small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-who.sm b{font-weight:600}
.ct-pill{display:inline-block;font-size:11px;font-weight:700;background:var(--mint);color:var(--mintText);border-radius:6px;padding:3px 8px}
.ct-dates small,.ct-obj small{display:block;color:var(--muted);font-size:11px}
.ct-dates .state{margin-top:4px;display:inline-block}
.ct-obj b{display:block;font-size:12.5px}
.ct-acts{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}
.ct-btn{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 9px;font-size:11px;font-weight:600;color:var(--text);text-decoration:none;cursor:pointer}
.ct-btn svg{width:13px;height:13px;color:var(--mintText)}
.ct-btn:hover{border-color:var(--green);background:var(--mint)}
.ct-btn.del svg{color:#c0392b}
.ct-btn.del:hover{background:#fdeceb;border-color:#f1c4bf}
@media (max-width:900px){
  .ct-row,.ct-row.av,.ct-row.ech{grid-template-columns:1fr auto}
  .ct-row .ct-who{grid-column:1/-1}
  .ct-row .ct-acts{grid-column:1/-1;justify-content:flex-start}
  .ct-search{flex:1 1 100%;min-width:0}
}
.ct-search{border:1px solid var(--line);border-radius:8px;padding:7px 11px 7px 30px;font:inherit;font-size:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a969c' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat 10px center}
.ct-search:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--mint)}
.sl-name{display:inline-flex;align-items:center;gap:7px}.avatar-lg{overflow:hidden}

/* ---------- Habilitations & certifications (QHSE) ---------- */
.ct-row.hb-row{grid-template-columns:minmax(200px,1.1fr) minmax(220px,1.4fr) minmax(170px,1fr) auto}
.ct-dates .state+.state{margin-left:4px}
.hb-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.hb-sec{display:flex;align-items:center;gap:8px}
.hb-sec span{font-size:10.5px;border-radius:9px;padding:0 7px;line-height:17px;background:#eef2f3;color:var(--muted)}
.hb-sec.warn span{background:#fdeceb;color:#b4321f}.hb-sec.wait span{background:#fff4dc;color:#8a5a00}.hb-sec.ok span{background:var(--mint);color:var(--mintText)}
.hb-obls{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:10px}
.hb-obl{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:10px;padding:10px 12px;background:#fff}
.hb-obl.wait{border-left-color:#e0a33b}.hb-obl.warn{border-left-color:#c0392b}
.hb-obl header{display:flex;justify-content:space-between;gap:6px;align-items:flex-start}
.hb-obl header b{font-size:13px}
.hb-obl>small{display:block;color:var(--muted);font-size:11px;margin:2px 0 8px}
.hb-pct{display:flex;justify-content:space-between;align-items:baseline}
.hb-pct b{font-size:18px}.hb-pct span{font-size:11px;color:var(--muted)}
.hb-miss{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.hb-miss .sd-tag{cursor:pointer;font-size:11px;padding:3px 7px;border-style:dashed;background:#fff}
.hb-miss .sd-tag:hover{border-color:var(--green);color:var(--mintText)}
@media (max-width:900px){.ct-row.hb-row{grid-template-columns:1fr auto}}

/* ---------- Conseiller : analyse & recommandations ---------- */
.cs-panel .panel-head h2{display:flex;gap:6px;align-items:center}
.cs-panel .panel-head h2 svg{width:15px;height:15px;color:#d99a1e}
.cs-sum{display:flex;gap:4px;flex-wrap:wrap}
.cs-body{display:flex;flex-direction:column;gap:6px}
.cs-item{border:1px solid #e7ecee;border-left:4px solid #9aa8ad;border-radius:9px;background:#fff;overflow:hidden}
.cs-item.warn{border-left-color:#c0392b}.cs-item.wait{border-left-color:#e0a33b}.cs-item.calc{border-left-color:#3b82c4}
.cs-item summary{list-style:none;display:flex;gap:10px;align-items:center;padding:9px 11px;cursor:pointer}
.cs-item summary::-webkit-details-marker{display:none}
.cs-t{flex:1;min-width:0}
.cs-t b{display:block;font-size:12.5px}
.cs-t small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-chev svg{width:15px;height:15px;color:var(--muted);transition:transform .2s}
.cs-item[open] .cs-chev svg{transform:rotate(180deg)}
.cs-item[open] .cs-t small{white-space:normal}
.cs-detail{padding:0 12px 12px 12px}
.cs-an{font-size:12px;color:#4c5a60;margin:0 0 8px;line-height:1.5}
.cs-sol-h{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--mintText);font-weight:700;margin:6px 0 4px}
.cs-sol{margin:0 0 10px;padding-left:18px;font-size:12px;line-height:1.55}
.cs-sol li::marker{color:var(--green);font-weight:700}
.cs-all{display:inline-flex;gap:4px;align-items:center;font-size:12px;font-weight:600;color:var(--mintText);text-decoration:none;margin-top:4px}
.cs-all svg{width:13px;height:13px}
.cs-ok{display:flex;flex-direction:column;align-items:center;gap:3px;padding:18px;text-align:center;color:var(--muted)}
.cs-ok svg{width:26px;height:26px;color:var(--green)}
.cs-ok b{color:var(--text)}
.cs-card{cursor:pointer;text-align:left;font:inherit;border:1px solid var(--line)}
.cs-card.active{outline:2px solid var(--green);outline-offset:-1px}
.cs-card.warn .value{color:#c0392b}.cs-card.wait .value{color:#b07800}
.cs-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px}
.cs-card2{border:1px solid var(--line);border-top:4px solid #3b82c4;border-radius:10px;padding:12px 14px;background:#fff;display:flex;flex-direction:column}
.cs-card2.warn{border-top-color:#c0392b}.cs-card2.wait{border-top-color:#e0a33b}
.cs-card2[hidden],.cs-panel[hidden]{display:none}
.cs-card2 header{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.cs-card2 header b{font-size:13.5px;line-height:1.3}
.cs-const{font-size:12px;color:var(--muted);margin:6px 0}
.cs-card2 .btn{align-self:flex-start;margin-top:auto}

/* ---------- Indicateurs RH ---------- */
.ri-hero{display:grid;grid-template-columns:auto minmax(200px,1fr) minmax(0,2fr);gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px}
.ri-score{position:relative;width:110px;height:110px}
.ri-score svg{width:100%;height:100%;transform:rotate(-90deg)}
.ri-score circle{fill:none;stroke-width:9}
.ri-score .bg{stroke:#edf1f2}.ri-score .fg{stroke:var(--green);stroke-linecap:round;transition:stroke-dashoffset 1s ease}
.ri-score.wait .fg{stroke:#e0a33b}.ri-score.warn .fg{stroke:#c0392b}
.ri-score>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ri-score b{font-size:28px;line-height:1}.ri-score small{font-size:10.5px;color:var(--muted)}
.ri-hero-txt h2{margin:0 0 4px;font-size:17px}
.ri-hero-txt p{margin:0 0 8px;color:var(--muted);font-size:12px}
.ri-pills{display:flex;gap:6px;flex-wrap:wrap}
.ri-domains{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.ri-dom{display:flex;gap:8px;align-items:center;border:1px solid #e7ecee;border-radius:9px;background:#fafcfc;padding:7px 9px;cursor:pointer;text-align:left;font:inherit;position:relative}
.ri-dom:hover{border-color:var(--green)}
.ri-dom-ic{width:28px;height:28px;border-radius:7px;background:var(--mint);color:var(--mintText);display:grid;place-items:center;flex-shrink:0}
.ri-dom-ic svg{width:14px;height:14px}
.ri-dom b{display:block;font-size:11.5px;line-height:1.25}.ri-dom small{color:var(--muted);font-size:10.5px}
.ri-dom i{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:#9aa8ad}
.ri-dom.ok i,.ri-tdot.ok{background:#2e9e6a}.ri-dom.wait i,.ri-tdot.wait{background:#e0a33b}.ri-dom.warn i,.ri-tdot.warn{background:#c0392b}
.ri-tdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9aa8ad;margin-right:6px;vertical-align:middle}
.ri-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;align-items:start}
.ri-alerts{padding:6px!important;display:flex;flex-direction:column;gap:4px}
.ri-alert{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;text-decoration:none;color:inherit;border:1px solid transparent}
.ri-alert:hover{background:#f7fafa;border-color:#e7ecee}
.ri-alert[hidden]{display:none}
.ri-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:#9aa8ad}
.ri-alert.warn .ri-dot{background:#c0392b;box-shadow:0 0 0 3px #fdeceb}.ri-alert.wait .ri-dot{background:#e0a33b;box-shadow:0 0 0 3px #fff4dc}
.ri-al-tx{flex:1;min-width:0}.ri-al-tx b{display:block;font-size:12px}.ri-al-tx small{display:block;font-size:11px;color:var(--muted)}
.ri-go{font-size:11px;color:var(--mintText);white-space:nowrap;display:inline-flex;align-items:center}
.ri-go svg{width:13px;height:13px}
.ri-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.ri-kpi{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:#fff;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
.ri-kpi:hover{border-color:#c5d2d5;box-shadow:0 8px 18px rgba(16,30,36,.06)}
.ri-kpi-h{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;font-size:11.5px;color:#4c5a60;font-weight:600}
.ri-kpi-h em{font-style:normal;color:var(--muted);font-weight:700}
.ri-kpi-v{font-size:24px;font-weight:700;color:var(--text);line-height:1.1}
.ri-kpi-v small{font-size:13px;color:var(--muted);font-weight:600;margin-left:2px}
.ri-kpi.warn .ri-kpi-v{color:#b4321f}.ri-kpi.wait .ri-kpi-v{color:#8a5a00}
.ri-kpi.warn .sd-bar i{background:#c0392b}.ri-kpi.wait .sd-bar i{background:#e0a33b}
.ri-kpi-d{font-size:11px;color:var(--muted)}
.ri-kpi-d b{color:#4c5a60}
@media (max-width:1100px){.ri-hero{grid-template-columns:auto 1fr}.ri-domains{grid-column:1/-1}.ri-grid{grid-template-columns:1fr}}
@media (max-width:600px){.ri-hero{grid-template-columns:1fr;justify-items:center;text-align:center}.ri-pills{justify-content:center}.ri-score{width:96px;height:96px}}
/* Les classes de niveau (ok/wait/warn/calc) ne colorent que la bordure / le repère de ces cartes. */
.cs-item.ok,.cs-item.wait,.cs-item.warn,.cs-item.calc,.cs-card2.ok,.cs-card2.wait,.cs-card2.warn,.cs-card2.calc,
.ri-alert.ok,.ri-alert.wait,.ri-alert.warn,.ri-alert.calc,.ri-alert.edit,.ri-kpi.ok,.ri-kpi.wait,.ri-kpi.warn,.ri-kpi.calc,
.hb-obl.ok,.hb-obl.wait,.hb-obl.warn,.ri-dom.ok,.ri-dom.wait,.ri-dom.warn,.ri-dom.calc,.ri-score.ok,.ri-score.wait,.ri-score.warn,.ri-score.calc{background:#fff;color:inherit}
.ri-dom.ok,.ri-dom.wait,.ri-dom.warn,.ri-dom.calc{background:#fafcfc}
.ri-alert:hover{background:#f7fafa}
.hb-sec.warn,.hb-sec.wait,.hb-sec.ok,.hb-sec.calc{background:none;color:inherit}
.qd-conseil{margin:12px 0}

/* Cases à cocher et boutons radio : taille fixe et alignement avec leur libellé, partout. */
:is(.field,.modal,.formgrid,.panel,label,td,.card,form) input:is([type=checkbox],[type=radio]):not(.ep-checks input):not(.sr-only):not([hidden]){width:15px;height:15px;min-width:15px;min-height:0;padding:0;margin:2px 0 0;flex:0 0 15px;display:inline-block;accent-color:var(--green,#01b7a8);box-shadow:none;vertical-align:-2px;cursor:pointer;border-radius:3px}
label:has(> input:is([type=checkbox],[type=radio])):not(.ep-checks label):not(.ag-switch):not(.switch){display:flex;align-items:flex-start;gap:8px;text-align:left;justify-content:flex-start;line-height:1.45}

.ct-row.cr-row{grid-template-columns:minmax(200px,1.5fr) 110px 110px 90px 120px auto}
.ct-row.cr-ent,.ct-row.cr-obj{grid-template-columns:minmax(190px,1fr) minmax(220px,1.6fr) 150px auto}
.ct-obj small+b{display:block}
.cr-cr{position:relative}
.cr-cr summary{list-style:none}.cr-cr summary::-webkit-details-marker{display:none}
.cr-cr p{position:absolute;right:0;top:calc(100% + 4px);z-index:20;width:min(420px,80vw);background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 28px rgba(16,30,36,.14);padding:10px 12px;font-size:12px;margin:0;line-height:1.5}
.card .sd-bar{margin-top:6px}
@media (max-width:900px){.ct-row.cr-row,.ct-row.cr-ent,.ct-row.cr-obj{grid-template-columns:1fr 1fr}.ct-row.cr-row .ct-who,.ct-row.cr-ent .ct-who,.ct-row.cr-obj .ct-who{grid-column:1/-1}}
.ct-row.st-row{grid-template-columns:minmax(200px,1.4fr) 150px 130px 120px 110px auto}
.st-exp{color:#b07800;font-weight:600}
@media (max-width:900px){.ct-row.st-row{grid-template-columns:1fr 1fr}.ct-row.st-row .ct-who{grid-column:1/-1}}

/* ---------- Formation & compétences ---------- */
.fm-link{display:flex;margin:0 0 11px;text-decoration:none;border-radius:9px;justify-content:flex-start}
.fm-link svg:last-child{margin-left:auto}
.fm-list{display:flex;flex-direction:column;gap:8px}
.fm-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #e7ecee;border-radius:11px;padding:10px 12px;background:#fff;transition:border-color .15s,box-shadow .15s}
.fm-card:hover{border-color:#c5d2d5;box-shadow:0 6px 16px rgba(16,30,36,.06)}
.fm-date{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:9px;background:var(--mint);color:var(--mintText);height:58px}
.fm-date b{font-size:20px;line-height:1}.fm-date span{font-size:10px;font-weight:600;text-align:center}
.fm-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fm-h b{font-size:13.5px}
.fm-main>small{display:block;color:var(--muted);font-size:11px;margin:2px 0 7px}
.fm-parts{display:flex;flex-wrap:wrap;gap:5px}
.fm-p{display:inline-flex;align-items:center;gap:5px;border:1px solid #e1e6e8;border-radius:20px;padding:2px 9px 2px 2px;font-size:11px;cursor:pointer;background:#fff}
.fm-p em{font-style:normal}
.fm-p.ok{border-color:#bfe6dc;background:#f2fbf8;color:inherit}.fm-p.warn{border-color:#f1c4bf;background:#fff6f5;color:inherit;text-decoration:line-through}
.fm-p.calc,.fm-p.wait{background:#fff;color:inherit}
.fm-acts{flex-direction:column;align-items:stretch}
.fm-skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.fm-agent{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}
.fm-agent .ct-who{margin-bottom:6px}
.fm-picker{border:1px solid var(--line);border-radius:8px;padding:6px}
.fm-picker .ct-search{width:100%;margin-bottom:6px}
.fm-pick-list{max-height:200px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px}
.fm-pick-list label{padding:5px 6px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer}
.fm-pick-list label:hover{background:#f4f8f8}
.fm-pick-list label[hidden]{display:none}
.fm-pick-list small{display:block;color:var(--muted);font-size:10.5px}
code{font-size:11px;background:#f3f6f7;border-radius:4px;padding:1px 5px}
@media (max-width:760px){.fm-card{grid-template-columns:52px 1fr}.fm-acts{grid-column:1/-1;flex-direction:row}}

/* ---------- CVthèque ---------- */
.cv-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.cv-filters select{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:inherit;font-size:12px;background:#fff}
.cv-filters .ct-search{flex:1 1 220px}
.cv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.cv-grid[hidden],#cv-liste[hidden]{display:none}
.cv-card{border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:9px;transition:transform .15s,box-shadow .15s,border-color .15s}
.cv-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(16,30,36,.08);border-color:#c5d2d5}
.cv-card header{display:flex;gap:10px;align-items:center}
.cv-card header b{display:block;font-size:13.5px}
.cv-card header small{display:block;color:var(--muted);font-size:11.5px}
.cv-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;color:#4c5a60}
.cv-meta span{display:inline-flex;gap:4px;align-items:center}
.cv-meta svg{width:12px;height:12px;color:var(--mintText)}
.cv-skills{display:flex;flex-wrap:wrap;gap:4px}
.cv-skills span{font-size:10.5px;background:#f1f6f7;border:1px solid #e3eaec;border-radius:5px;padding:2px 6px}
.cv-card footer{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:8px;border-top:1px solid #eef2f3}
.cv-rel{display:inline-flex;gap:3px;align-items:center;font-size:10.5px;color:var(--muted)}
.cv-rel.due{color:#b4321f;font-weight:600}
.cv-rel svg,.cv-dl svg{width:12px;height:12px}
.cv-dl{margin-left:auto;display:inline-flex;gap:3px;align-items:center;font-size:11px;font-weight:600;color:var(--mintText);text-decoration:none}

/* ---------- Pipeline : bande des étapes (cartes lisibles, 2 rangées sur écran large, défilement sur mobile) ---------- */
.pl-funnel{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;padding:12px;overflow:visible}
.pl-stage{min-width:0;padding:10px 11px 9px;border-radius:10px;gap:5px;justify-content:flex-start}
.pl-stage .pl-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.pl-stage .pl-p{position:static;font-size:10.5px;font-weight:700;color:var(--mintText);background:var(--mint);border-radius:10px;padding:1px 7px}
.pl-stage .pl-n{width:22px;height:22px;font-size:10.5px;flex-shrink:0}
.pl-stage .pl-name{font-size:12px;font-weight:700;line-height:1.3;min-height:31px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:normal;hyphens:auto}
.pl-stage .pl-meta{font-size:11px}
.pl-stage .pl-meta b{font-size:13px}
.pl-gauge{display:block;height:4px;border-radius:4px;background:#edf1f2;overflow:hidden;margin-top:2px}
.pl-gauge i{display:block;height:100%;width:var(--p);background:var(--green);border-radius:4px}
.pl-stage.won .pl-p{background:var(--ok-bg);color:var(--ok-text)}
.pl-stage.lost .pl-p{background:var(--warn-bg);color:var(--warn-text)}
.pl-stage.lost .pl-gauge i{background:#c0392b}
.pl-stage:not(.empty){box-shadow:0 1px 0 rgba(16,30,36,.04)}
.pl-stage.empty{opacity:.55}
.pl-stage.empty:hover{opacity:.9}
@media (max-width:760px){
  .pl-funnel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px}
  .pl-stage{flex:0 0 150px;scroll-snap-align:start}
}

/* ---------- Logos des entreprises clientes ---------- */
.ent-lg{display:inline-grid;place-items:center;border-radius:8px;background:#fff;border:1px solid #e3e9eb;overflow:hidden;flex-shrink:0;vertical-align:middle}
.ent-lg img{width:100%;height:100%;object-fit:contain;padding:2px}
.ent-lg.ini{background:var(--mint);border-color:transparent;color:var(--mintText);font-weight:800}
.ent-cell{display:inline-flex;align-items:center;gap:9px}
button.ent-logo{border:0;padding:0;cursor:pointer;position:relative;overflow:hidden;font:inherit}
.ent-logo.has-img{background:#fff;box-shadow:0 0 0 1px var(--line),0 6px 16px rgba(16,30,36,.08)}
.ent-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.ent-logo i{position:absolute;inset:auto 0 0 0;height:18px;background:rgba(2,14,36,.55);color:#fff;display:grid;place-items:center;opacity:0;transition:opacity .15s}
.ent-logo i svg{width:11px;height:11px}
.ent-logo:hover i{opacity:1}
.ent-logo-prev{width:160px;height:110px;margin:0 auto 12px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;padding:8px;background:#fff}
.ent-logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
.pl-client{display:flex;align-items:center;gap:5px}.pl-client .ent-lg{border-radius:5px}

/* ---------- SFEC ---------- */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.sf-env{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;border-radius:20px;padding:6px 12px;border:1px solid}
.sf-env i{width:8px;height:8px;border-radius:50%;background:currentColor}
.sf-env.on{color:var(--ok-text);background:var(--ok-bg);border-color:#bfe6dc}
.sf-env.off{color:#b4321f;background:#fff6f5;border-color:#f1c4bf}
.sf-setup{background:#fff;border:1px solid var(--line);border-left:4px solid #e0a33b;border-radius:12px;padding:14px 16px;margin-bottom:12px}
.sf-setup-h{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:10px}
.sf-setup-h b{display:block;font-size:14px}.sf-setup-h small{color:var(--muted);font-size:11.5px}
.sf-setup-h .sd-bar{flex:0 1 260px}
.sf-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.sf-steps li{display:flex;align-items:center;gap:10px;border:1px solid #eef2f3;border-radius:10px;padding:9px 10px;font-size:12.5px;font-weight:600}
.sf-steps li>span:nth-child(2){flex:1}
.sf-steps li small{display:block;font-weight:500;color:#b4321f;font-size:11px}
.sf-steps li.ok{color:var(--muted);background:#fafcfc}
.sf-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;background:#fff4dc;color:#8a5a00;flex-shrink:0}
.sf-steps li.ok .sf-dot{background:var(--green);color:#fff}
.sf-dot svg{width:13px;height:13px}
a.card{text-decoration:none;color:inherit}
.sf-bar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.sf-chips{flex-wrap:wrap}.sf-chips small{color:var(--muted);font-weight:600}
.sf-bar .ct-search{flex:0 1 320px}
.sf-table td{vertical-align:middle}
.sf-doc{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#e8f0fd;color:#1f5fbf;margin-right:8px;vertical-align:middle;float:left}
.sf-doc.avoir{background:#fff4dc;color:#8a5a00}
.sf-doc svg{width:13px;height:13px}
.sf-niu{display:flex;align-items:center;gap:3px;font-size:10.5px;color:#b4321f;font-weight:600;text-decoration:none;margin-top:1px}
.sf-niu svg{width:11px;height:11px}
.sf-err{color:#b4321f!important;max-width:260px;white-space:normal}
.sf-act{white-space:nowrap;text-align:right}
.sf-act .ct-btn+.ct-btn{margin-left:4px}
.sf-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:14px;align-items:start}
.sf-group{border:1px solid #e7ecee;border-radius:12px;padding:12px 14px;margin-bottom:10px}
.sf-group h3{display:flex;gap:7px;align-items:center;margin:0 0 10px;font-size:13px}
.sf-group h3 svg{width:15px;height:15px;color:var(--mintText)}
.sf-toggle{display:flex!important;align-items:center;gap:12px;padding:8px 0;cursor:pointer;position:relative}
.sf-toggle b{display:block;font-size:12.5px}.sf-toggle small{display:block;color:var(--muted);font-size:11px;font-weight:400}
.sf-toggle .ag-switch-ui{width:38px;height:22px;border-radius:12px;background:#c9d3d6;position:relative;flex-shrink:0;transition:background .2s}
.sf-toggle .ag-switch-ui:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
.sf-toggle input:checked+.ag-switch-ui{background:var(--green)}
.sf-toggle input:checked+.ag-switch-ui:after{left:19px}
.sf-toggle input:focus-visible+.ag-switch-ui{box-shadow:0 0 0 3px var(--mint)}
.sf-clear{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:11.5px}
.sf-save{display:flex;gap:8px;flex-wrap:wrap}
.sf-how{border:1px solid #e7ecee;border-radius:12px;padding:14px;background:#fafcfc;position:sticky;top:10px}
.sf-how h3{margin:0 0 10px;font-size:13px}
.sf-how ol{list-style:none;margin:0 0 10px;padding:0;counter-reset:s}
.sf-how li{counter-increment:s;position:relative;padding:0 0 12px 34px}
.sf-how li:before{content:counter(s);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--mint);color:var(--mintText);font-weight:800;font-size:11px;display:grid;place-items:center}
.sf-how li:after{content:"";position:absolute;left:11px;top:26px;bottom:2px;width:2px;background:#e3eaec}
.sf-how li:last-child:after{display:none}
.sf-how li b{display:block;font-size:12.5px}.sf-how li span{font-size:11.5px;color:#4c5a60;line-height:1.45}
@media (max-width:1000px){.sf-grid{grid-template-columns:1fr}.sf-how{position:static}}
.tabs a.tab{text-decoration:none;display:inline-flex;align-items:center;gap:5px}.view-switch a small,.view-switch button small{margin-left:4px}

/* ---------- Suppression (administrateur) ---------- */
.del-inj{border:0;background:none;color:#a33a2f;cursor:pointer;display:inline-grid;place-items:center;border-radius:6px;padding:5px}
.del-inj svg{width:14px;height:14px}
.del-inj:hover{background:#fdeceb;color:#c0392b}
.del-inj.in-cell{float:right;margin:-3px -4px -3px 6px}
.del-inj.on-card{position:absolute;top:8px;right:8px;background:rgba(255,255,255,.92);box-shadow:0 1px 4px rgba(0,0,0,.12);opacity:0;transition:opacity .15s;z-index:2}
[data-del]:hover>.del-inj.on-card,.del-inj.on-card:focus{opacity:1}
@media (hover:none){.del-inj.on-card{opacity:1}}
.del-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:300;display:flex;align-items:center;gap:12px;background:#28343a;color:#fff;border-radius:30px;padding:6px 6px 6px 16px;font-size:12px;box-shadow:0 10px 26px rgba(0,0,0,.25)}
.del-bar[hidden]{display:none}
.del-bar .btn{border-radius:20px}
.del-bar svg{width:14px;height:14px}

/* ===== Messagerie interne ===== */
.mx{display:grid;grid-template-columns:330px 1fr;height:calc(100vh - 205px);min-height:500px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mx-side{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0;background:#fbfcfc}
.mx-side-head{padding:12px 12px 8px;border-bottom:1px solid #edf0f1}
.mx-search{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:0 10px;transition:border-color .15s,box-shadow .15s}
.mx-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(1,183,168,.14)}
.mx-search svg{width:14px;height:14px;color:var(--muted);flex-shrink:0}
.mx-search input{border:0;outline:0;background:transparent;padding:8px 0;width:100%;font-size:12px}
.mx-search.sm{margin-bottom:8px}
.mx-filters{display:flex;gap:4px;margin-top:9px;overflow-x:auto;scrollbar-width:none}
.mx-filters button{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:600;padding:5px 9px;border-radius:999px;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:5px}
.mx-filters button:hover{background:#eef1f2;color:var(--text)}
.mx-filters button.on{background:var(--headerDark);color:#fff}
.mx-filters button i{font-style:normal;background:var(--green);color:#fff;border-radius:999px;font-size:9px;padding:0 5px;line-height:15px}
.mx-list{flex:1;overflow-y:auto;padding:5px}
.mx-conv{display:flex;gap:10px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:9px 9px;border-radius:9px;cursor:pointer;color:var(--text);font:inherit}
.mx-conv:hover{background:#eef3f4}
.mx-conv.on{background:var(--mint)}
.mx-conv-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.mx-conv-top,.mx-conv-bot{display:flex;align-items:center;gap:6px}
.mx-conv-top b{flex:1;min-width:0;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-conv-top small{font-size:10px;color:var(--muted);flex-shrink:0}
.mx-prev{flex:1;min-width:0;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-conv.unread .mx-conv-top b{font-weight:800}
.mx-conv.unread .mx-prev{color:var(--text);font-weight:600}
.mx-conv.unread .mx-conv-top small{color:var(--mintText);font-weight:700}
.mx-ic svg{width:12px;height:12px;color:#9aa6ab;display:block}
.mx-badge{font-style:normal;background:var(--green);color:#fff;border-radius:999px;font-size:10px;font-weight:700;min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px}
.mx-av{width:38px;height:38px;border-radius:50%;background:#dfe9fb;color:var(--green2);font-weight:700;font-size:12px;display:grid;place-items:center;flex-shrink:0}
.mx-av.grp{background:var(--mint);color:var(--mintText)}
.mx-av svg{width:17px;height:17px}
.mx-av.sm{width:28px;height:28px;font-size:10px}
.mx-none{display:flex;flex-direction:column;align-items:center;gap:4px;padding:36px 16px;color:var(--muted);text-align:center}
.mx-none svg{width:28px;height:28px;color:#b8c2c6;margin-bottom:4px}
.mx-none b{color:var(--text);font-size:12px}
.mx-none span{font-size:11px}
.mx-thread{display:flex;flex-direction:column;min-height:0;min-width:0;background:#f6f8f9}
.mx-empty{margin:auto;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);text-align:center;padding:20px}
.mx-empty>span{width:64px;height:64px;border-radius:18px;background:var(--mint);color:var(--mintText);display:grid;place-items:center;margin-bottom:6px}
.mx-empty>span svg{width:30px;height:30px}
.mx-empty b{color:var(--text);font-size:14px}
.mx-empty .btn{margin-top:10px}
.mx-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line)}
.mx-none[hidden],.mx-head[hidden],.mx-msgs[hidden],.mx-comp[hidden],.mx-rep[hidden],.mx-file[hidden],.mx-empty[hidden]{display:none}
.mx-h-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.mx-h-txt b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-h-txt small{font-size:11px;color:var(--muted)}
.mx-h-acts{display:flex;gap:2px}
.mx-ib{width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:#5b6770;display:grid;place-items:center;cursor:pointer;flex-shrink:0}
.mx-ib:hover{background:#eef1f2;color:var(--text)}
.mx-ib.on{color:var(--mintText);background:var(--mint)}
.mx-ib svg{width:16px;height:16px}
.mx-back{display:none;border:0;background:transparent;width:30px;height:30px;border-radius:8px;cursor:pointer;color:var(--text)}
.mx-back svg{width:17px;height:17px}
.mx-menu-wrap{position:relative}
.mx-menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 36px rgba(2,14,36,.16);padding:5px;min-width:232px;z-index:30;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .14s,transform .14s,visibility .14s}
.mx-menu.open{opacity:1;visibility:visible;transform:none}
.mx-menu button{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;padding:8px 10px;border-radius:7px;font:inherit;font-size:12px;color:var(--text);cursor:pointer;text-align:left}
.mx-menu button:hover{background:#f1f4f5}
.mx-menu button svg{width:15px;height:15px;color:#6b787e}
.mx-menu button.danger{color:var(--warn-text)}
.mx-menu button.danger svg{color:var(--warn-text)}
.mx-menu button.danger:hover{background:var(--warn-bg)}
.mx-menu button[hidden]{display:none}
.mx-menu hr{border:0;border-top:1px solid #edf0f1;margin:4px 0}
.mx-msgs{flex:1;overflow-y:auto;padding:14px 18px 8px;display:flex;flex-direction:column}
.mx-load{margin:auto}
.mx-first{margin:auto;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:11px}
.mx-first svg{width:28px;height:28px;color:#b8c2c6}
.mx-first b{color:var(--text);font-size:12px}
.mx-day{display:flex;justify-content:center;margin:12px 0 8px;position:sticky;top:-14px;z-index:2}
.mx-day span{background:#fff;border:1px solid var(--line);border-radius:999px;font-size:10.5px;font-weight:600;color:var(--muted);padding:3px 11px;text-transform:capitalize}
.mx-sys{align-self:center;font-size:10.5px;color:var(--muted);background:#eceff1;border-radius:8px;padding:4px 10px;margin:6px 0;text-align:center}
.mx-msg{display:flex;align-items:flex-end;gap:7px;margin-top:9px;max-width:78%;position:relative}
.mx-msg.suite{margin-top:2px}
.mx-msg.suite .mx-av{visibility:hidden}
.mx-msg.me{align-self:flex-end;flex-direction:row-reverse}
.mx-bub-wrap{display:flex;flex-direction:column;min-width:0;position:relative}
.mx-who{font-size:10px;color:var(--muted);margin:0 0 2px 10px;font-weight:600}
.mx-bub{background:#fff;border:1px solid #e3e8ea;border-radius:14px 14px 14px 4px;padding:7px 11px 5px;font-size:12.5px;line-height:1.45;color:var(--text);word-wrap:break-word;overflow-wrap:anywhere;box-shadow:0 1px 1px rgba(2,14,36,.04)}
.mx-msg.me .mx-bub{background:var(--headerDark);border-color:var(--headerDark);color:#fff;border-radius:14px 14px 4px 14px}
.mx-msg.suite .mx-bub{border-radius:14px}
.mx-msg.me .mx-bub a{color:#7fe3da}
.mx-msg.del .mx-bub{background:transparent;border-style:dashed;color:var(--muted);box-shadow:none}
.mx-msg.me.del .mx-bub{background:transparent;border-color:#c5ced2;color:var(--muted)}
.mx-gone{font-size:11.5px}
.mx-meta{display:block;text-align:right;font-size:9.5px;color:#9aa6ab;margin-top:2px}
.mx-msg.me .mx-meta{color:rgba(255,255,255,.6)}
.mx-tick{letter-spacing:-3px;margin-left:3px}
.mx-tick.lu{color:#5ee0d4}
.mx-quote{border-left:3px solid var(--green);background:rgba(1,183,168,.08);border-radius:6px;padding:4px 8px;margin:2px 0 6px;font-size:11px;display:flex;flex-direction:column}
.mx-msg.me .mx-quote{background:rgba(255,255,255,.1)}
.mx-quote b{font-size:10.5px;color:var(--mintText)}
.mx-msg.me .mx-quote b{color:#7fe3da}
.mx-quote span{opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-img{display:block;margin:2px -5px 4px;border-radius:10px;overflow:hidden}
.mx-img img{display:block;max-width:min(300px,100%);max-height:260px;object-fit:cover}
.mx-doc{display:flex;align-items:center;gap:9px;background:#f3f6f7;border-radius:9px;padding:8px 10px;margin:2px 0 4px;text-decoration:none;color:var(--text);min-width:200px}
.mx-msg.me .mx-doc{background:rgba(255,255,255,.1);color:#fff}
.mx-doc>span:first-child{width:32px;height:32px;border-radius:7px;background:var(--calc-bg);color:var(--calc-text);display:grid;place-items:center;flex-shrink:0}
.mx-doc>span:first-child svg{width:16px;height:16px}
.mx-doc>span:last-child{display:flex;flex-direction:column;min-width:0}
.mx-doc b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-doc small{font-size:10px;opacity:.7}
.mx-tools{position:absolute;top:-14px;right:4px;display:flex;gap:1px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:2px;box-shadow:0 4px 12px rgba(2,14,36,.1);opacity:0;visibility:hidden;transition:opacity .12s;z-index:3}
.mx-msg.me .mx-tools{right:auto;left:4px}
.mx-msg:hover .mx-tools,.mx-msg:focus-within .mx-tools{opacity:1;visibility:visible}
.mx-tools button{width:25px;height:25px;border:0;background:transparent;border-radius:6px;cursor:pointer;color:#5b6770;display:grid;place-items:center}
.mx-tools button:hover{background:#eef1f2;color:var(--text)}
.mx-tools button svg{width:13px;height:13px}
.mx-edit{width:min(360px,60vw);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:12px;resize:vertical;color:var(--text)}
.mx-edit-acts{display:flex;justify-content:flex-end;gap:5px;margin:5px 0 3px}
.mx-comp{background:#fff;border-top:1px solid var(--line);padding:9px 12px 11px}
.mx-rep,.mx-file{display:flex;align-items:center;gap:8px;background:#f3f6f7;border-left:3px solid var(--green);border-radius:7px;padding:5px 5px 5px 10px;margin-bottom:7px}
.mx-rep>div{flex:1;min-width:0;display:flex;flex-direction:column}
.mx-rep small{font-size:10.5px;color:var(--mintText);font-weight:700}
.mx-rep span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-file{border-left-color:var(--green2)}
.mx-file>svg{width:14px;height:14px;color:var(--green2)}
.mx-file span{flex:1;font-size:11.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mx-comp-row{display:flex;align-items:flex-end;gap:6px;background:#f3f6f7;border:1px solid #e3e8ea;border-radius:12px;padding:5px;transition:border-color .15s,box-shadow .15s}
.mx-comp-row:focus-within{border-color:var(--green);background:#fff;box-shadow:0 0 0 3px rgba(1,183,168,.12)}
.mx-comp textarea{flex:1;border:0;outline:0;background:transparent;resize:none;font:inherit;font-size:12.5px;padding:7px 4px;max-height:160px;line-height:1.4;color:var(--text)}
.mx-attach{cursor:pointer}
.mx-send{width:34px;height:34px;border-radius:9px;border:0;background:var(--green);color:#fff;display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s}
.mx-send:hover{background:var(--mintText)}
.mx-send:active{transform:scale(.94)}
.mx-send:disabled{opacity:.55}
.mx-send svg{width:15px;height:15px}
.mx-pick{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:9px;padding:4px}
.mx-pick.ro{border:0;padding:0}
.mx-pick label{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;cursor:pointer;font-weight:400;margin:0}
.mx-pick label:hover{background:#f3f6f7}
.mx-pick label:has(input:checked){background:var(--mint)}
.mx-pick label[hidden]{display:none}
.mx-pick label>span:last-child{display:flex;flex-direction:column;min-width:0}
.mx-pick b{font-size:12px;font-weight:600}
.mx-pick small{font-size:10.5px;color:var(--muted)}
.mx-pick input{accent-color:var(--green)}
@media (max-width:860px){
  .mx{grid-template-columns:1fr;height:calc(100vh - 170px)}
  .mx-thread{display:none}
  .mx.open .mx-side{display:none}
  .mx.open .mx-thread{display:flex}
  .mx-back{display:grid;place-items:center}
  .mx-msg{max-width:90%}
  .mx-tools{opacity:1;visibility:visible;position:static;box-shadow:none;border:0;background:transparent;margin-top:2px}
  .mx-msg.me .mx-tools{justify-content:flex-end}
}

/* ===== Vue d'ensemble ===== */
.ov-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:4px 0 14px}
.ov-date{font-size:11px;color:var(--muted)}
.ov-hero h1{font-size:24px;margin:3px 0 4px;letter-spacing:-.3px}
.ov-hero p{margin:0;color:#536168;font-size:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ov-quick{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ov-quick a{display:flex;flex-direction:column;align-items:center;gap:5px;width:74px;padding:9px 4px 7px;background:#fff;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--text);transition:border-color .15s,transform .15s,box-shadow .15s}
.ov-quick a:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 6px 16px rgba(2,14,36,.08)}
.ov-quick span{width:30px;height:30px;border-radius:8px;background:var(--mint);color:var(--mintText);display:grid;place-items:center}
.ov-quick span svg{width:16px;height:16px}
.ov-quick small{font-size:10px;font-weight:600;text-align:center;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ov-grid{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:12px;align-items:start}
.ov-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ov-card header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #edf0f1}
.ov-card h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.4px;display:flex;align-items:center;gap:7px}
.ov-card h3 svg{width:15px;height:15px;color:var(--mintText)}
.ov-count{background:var(--headerDark);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 9px}
.ov-todo ul{list-style:none;margin:0;padding:5px}
.ov-todo li a{display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:8px;text-decoration:none;color:var(--text);transition:background .12s}
.ov-todo li a:hover{background:#f3f6f7}
.ov-todo li a>svg{width:14px;height:14px;color:#b8c2c6;flex-shrink:0}
.ov-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:var(--calc-bg);color:var(--calc-text)}
.ov-ic svg{width:15px;height:15px}
.ov-todo .t-warn .ov-ic{background:var(--warn-bg);color:var(--warn-text)}
.ov-todo .t-wait .ov-ic{background:var(--wait-bg);color:var(--wait-text)}
.ov-lb{flex:1;min-width:0;font-size:12px}
.ov-todo li b{font-size:14px;min-width:26px;text-align:right}
.ov-todo .t-warn b{color:var(--warn-text)}
.ov-ok{display:flex;flex-direction:column;align-items:center;gap:3px;padding:28px 16px;text-align:center;color:var(--muted);font-size:11px}
.ov-ok>span{width:42px;height:42px;border-radius:50%;background:var(--mint);color:var(--mintText);display:grid;place-items:center;margin-bottom:5px}
.ov-ok>span svg{width:20px;height:20px}
.ov-ok b{color:var(--text);font-size:13px}
.ov-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.ov-kpis .ov-ok{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:12px}
.ov-kpi{position:relative;display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 14px;text-decoration:none;color:var(--text);transition:border-color .15s,box-shadow .15s,transform .15s}
.ov-kpi:hover{border-color:var(--green);box-shadow:0 6px 16px rgba(2,14,36,.07);transform:translateY(-1px)}
.ov-kpi small{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-weight:600;padding-right:30px}
.ov-kpi b{font-size:19px;font-weight:700;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-kpi-sub{font-size:10.5px;color:var(--mintText)}
.ov-kpi-ic{position:absolute;top:12px;right:12px;width:26px;height:26px;border-radius:7px;background:var(--mint);color:var(--mintText);display:grid;place-items:center}
.ov-kpi-ic svg{width:14px;height:14px}
.ov-more{font-size:11px;color:var(--mintText);text-decoration:none;font-weight:600}
.ov-more:hover{text-decoration:underline}
@media(max-width:1100px){.ov-grid{grid-template-columns:1fr}}
@media(max-width:700px){.ov-quick{justify-content:flex-start}.ov-quick a{width:calc(25% - 5px)}.ov-kpis{grid-template-columns:1fr 1fr}.ov-kpi b{font-size:15px}.ov-hero h1{font-size:20px}}

/* ===== Signature électronique ===== */
.sig-box{position:relative;border:1px dashed #b9c4c7;border-radius:8px;background:#fff}
.sig-box canvas{display:block;width:100%;height:150px;cursor:crosshair;border-radius:8px}
.sig-box.saisie canvas{cursor:default}
.sig-modes{position:absolute;top:8px;left:8px;display:flex;gap:2px;background:#f1f5f6;border-radius:6px;padding:2px;z-index:1}
.sig-modes button{border:0;background:none;padding:4px 10px;border-radius:5px;font:inherit;font-size:11px;font-weight:600;color:#5b6770;cursor:pointer}
.sig-modes button.on{background:#fff;color:#1d2a30;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.sig-nom{display:none;position:absolute;left:8px;right:84px;bottom:8px;z-index:1;border:1px solid #cbd5d8;border-radius:6px;padding:6px 9px;font:inherit;font-size:12px}
.sig-box.saisie .sig-nom{display:block}
.sig-eff{position:absolute;right:8px;bottom:8px;z-index:1;border:1px solid #d5dde0;background:#fff;border-radius:6px;padding:5px 10px;font:inherit;font-size:11px;color:#5b6770;cursor:pointer}
.sig-base{position:absolute;left:24px;right:24px;bottom:42px;border-top:1px solid #e1e7e9;pointer-events:none}
.sig-consent{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;color:#3d4c53;margin:12px 0}
.sig-consent input{margin-top:2px;flex:none}
.sig-steps{list-style:none;margin:0;padding:0}
.sig-steps li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 12px;border-bottom:1px solid #eef1f2}
.sig-steps li:last-child{border-bottom:0}
.sig-steps .n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:#eef2f3;color:#5b6770}
.sig-steps li.signe .n{background:var(--green);color:#fff}
.sig-steps li.refuse .n{background:var(--warn-text);color:#fff}
.sig-steps li.tour .n{background:var(--wait-text);color:#fff}
.sig-steps b{display:block;font-size:12px;color:#1d2a30}
.sig-steps small{display:block;font-size:10.5px;color:#7c898f;margin-top:1px;overflow-wrap:anywhere}
.sig-steps img{display:block;max-height:38px;max-width:150px;margin-top:6px}
.sig-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:11px;margin-top:11px;align-items:start}
.sig-grid>*{min-width:0}
.sig-col{display:grid;gap:11px}
.sig-doc{width:100%;height:calc(100vh - 250px);min-height:520px;border:0;display:block;background:#f5f7f8}
.sig-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:#69777d;margin-top:4px}
.sig-meta code{font-size:10.5px;color:#3d4c53}
.sig-row-sign{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) auto auto;gap:8px;align-items:end;padding:9px 0;border-bottom:1px solid #eef1f2}
.sig-row-sign .field{margin:0}
.sig-row-sign .cachet{display:flex;gap:6px;align-items:center;font-size:11px;white-space:nowrap;padding-bottom:7px}
.sig-cachet{display:flex;gap:12px;align-items:center;font-size:11px;color:#3d4c53;margin:10px 0}
.sig-cachet svg{flex:none}
.sig-list a{text-decoration:none;color:inherit}
@media(max-width:1000px){.sig-grid{grid-template-columns:1fr}.sig-doc{height:70vh;min-height:380px}}
@media(max-width:640px){.sig-row-sign{grid-template-columns:1fr 1fr}.sig-row-sign .field:first-child{grid-column:1/-1}}
/* Suivi des ventes par étapes */
.sv-filtres{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}
.sv-chip{border:1px solid var(--line);background:var(--panel,#fff);border-radius:14px;padding:4px 10px;font-size:11px;cursor:pointer;color:inherit}
.sv-chip b{margin-left:3px;color:var(--muted)}.sv-chip.on{background:var(--mint);border-color:var(--green);color:var(--mintText)}.sv-chip.on b{color:inherit}
.sv-q{margin-left:auto;min-width:220px;max-width:100%}
.sv-list{display:flex;flex-direction:column;gap:6px}
.sv-row{display:grid;grid-template-columns:minmax(180px,2fr) minmax(120px,1.3fr) minmax(120px,1.2fr) auto auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.sv-row:hover{border-color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.05)}.sv-row[hidden]{display:none}.sv-row.refuse{opacity:.7}
.sv-row.sv-landed{animation:svLand .6s ease}@keyframes svLand{from{background:var(--mint)}to{background:transparent}}
.sv-who{min-width:0}.sv-who b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sv-who small{display:block;color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-ref{font-family:monospace;font-size:10px;color:var(--muted)}
.sv-steps{display:flex;gap:3px;list-style:none;margin:0;padding:0}.sv-steps li{flex:1;height:6px;border-radius:3px;background:#e4eaec}.sv-steps li.done{background:var(--green)}.sv-steps li.cur{background:#e0a33b}
.sv-etat b{display:block;font-size:11.5px}.sv-etat small{color:var(--muted);font-size:10px}
.sv-mt{font-weight:700;white-space:nowrap;text-align:right}
.sv-form-box{border:1px solid var(--green);border-radius:8px;padding:10px 12px;margin-top:12px;background:linear-gradient(0deg,transparent,transparent)}
.sv-form-box.sv-next{animation:svLand .9s ease}
.sv-form-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.sv-opts{display:flex;gap:4px;margin-left:auto}
.sv-opt{border:1px solid var(--line);background:none;border-radius:12px;padding:3px 9px;font-size:10.5px;cursor:pointer;color:inherit}.sv-opt.on{background:var(--green);border-color:var(--green);color:#fff}.sv-opt.ko.on{background:#ad3c38;border-color:#ad3c38}
.sv-form h4{margin:2px 0 8px;font-size:12.5px}
.sv-hist details{border-bottom:1px solid var(--line);padding:6px 0}.sv-hist summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px;font-size:11.5px}.sv-hist summary small{color:var(--muted)}
@media (max-width:760px){.sv-row{grid-template-columns:1fr auto;}.sv-steps{grid-column:1/-1;order:3}.sv-etat{order:2}.sv-go{grid-column:1/-1}.sv-q{margin-left:0;min-width:0;width:100%}}

/* Typographie : Figtree partout (texte et titres). */
.page-title h1,.modal-head h3,.auth-card h1,.err-title{font-family:var(--f-t);letter-spacing:-.01em}
code,pre,kbd.mono,.mono{font-family:var(--f-m)}
#print-qr{display:none}
@media print{#print-qr{display:flex;flex-direction:column;align-items:center;position:fixed;right:6mm;bottom:6mm;background:#fff;padding:2px;z-index:9999}#print-qr svg{width:22mm;height:22mm}#print-qr small{font-size:7px;color:#6b7a80;text-align:center;line-height:1.2}}

/* Signature : import d'image et signature enregistrée */
.sig-outils{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px}
.sig-lien{border:0;background:none;padding:2px 0;color:var(--mintText,#0b7d72);font:inherit;font-size:11px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.sig-lien:hover{color:var(--text)}
.sig-box.image canvas{cursor:default}
.sig-perso{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.sig-apercu{min-width:220px;min-height:90px;border:1px dashed #c9d4d7;border-radius:8px;display:grid;place-items:center;padding:8px;background:repeating-conic-gradient(#f5f7f8 0 25%,#fff 0 50%) 0 0/14px 14px}
.sig-apercu img{max-width:260px;max-height:110px}
