:root {
  --bg:#f4f6f8; --panel:#fff; --text:#17212b; --muted:#6b7785; --line:#e3e8ee;
  --nav:#17212b; --nav2:#23313f; --accent:#1368ce; --accent-soft:#eaf3ff;
  --danger:#bd2c2c; --danger-soft:#fff0f0; --warn:#9a5b00; --warn-soft:#fff6dd;
  --ok:#18794e; --ok-soft:#eaf8f1; --shadow:0 8px 28px rgba(20,37,55,.08);
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit} button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}
.sidebar{background:var(--nav);color:white;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px}.brand-mark{width:40px;height:40px;border-radius:10px;background:white;color:var(--nav);display:grid;place-items:center;font-weight:800;font-size:20px}.brand-title{font-weight:750}.brand-subtitle{font-size:12px;color:#9fb0c0;margin-top:2px}
#nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;color:#c7d2dc;text-align:left;padding:11px 12px;border-radius:9px}.nav-item:hover,.nav-item.active{background:var(--nav2);color:white}.sidebar-footer{margin-top:auto;color:#9fb0c0;font-size:12px;display:flex;gap:8px;align-items:center;padding:10px}.status-dot{width:8px;height:8px;border-radius:50%;background:#48c78e}
.main{padding:26px 30px 42px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.topbar h1{font-size:26px;margin:0 0 5px}.topbar p{margin:0;color:var(--muted)}.topbar-actions{display:flex;gap:10px;align-items:center}.date-chip{background:white;border:1px solid var(--line);padding:9px 12px;border-radius:9px;color:var(--muted);font-size:13px}
.primary,.ghost{border-radius:9px;padding:10px 14px;border:1px solid transparent;font-weight:650}.primary{background:var(--accent);color:#fff}.primary:hover{filter:brightness(.95)}.ghost{background:#fff;border-color:var(--line);color:var(--text)}.icon-btn{border:0;background:transparent;font-size:28px;color:var(--muted)}
.view{display:none}.view.active{display:block}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:16px;box-shadow:0 1px 1px rgba(0,0,0,.02)}.kpi-label{font-size:12px;color:var(--muted);margin-bottom:8px}.kpi-value{font-size:30px;font-weight:800}.kpi small{color:var(--muted)}
.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 2px 8px rgba(20,37,55,.03)}.compact-panel{align-self:start}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.panel h2{font-size:17px;margin:0 0 4px}.panel p{margin:0;color:var(--muted);font-size:13px}.mt16{margin-top:16px}.mt12{margin-top:12px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}td{padding:11px 10px;border-bottom:1px solid #edf0f3;font-size:13px;vertical-align:top}tr:last-child td{border-bottom:0}
.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.badge.Critique{background:var(--danger-soft);color:var(--danger)}.badge.Haute{background:var(--warn-soft);color:var(--warn)}.badge.Moyenne{background:var(--accent-soft);color:var(--accent)}.badge.Faible{background:#f1f3f5;color:#59636e}.badge.Disponible,.badge.Terminé{background:var(--ok-soft);color:var(--ok)}.badge.Absent,.badge.Annulé{background:var(--danger-soft);color:var(--danger)}.badge.Occupé,.badge.En-attente,.badge.En-cours{background:var(--warn-soft);color:var(--warn)}
.brief-section{margin-bottom:14px}.brief-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px}.brief-section ul{margin:0;padding-left:18px}.brief-section li{margin:6px 0;font-size:13px}.decision-box{background:var(--accent-soft);border-left:3px solid var(--accent);padding:10px 12px;border-radius:8px;margin-top:9px}
.tech-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.tech-row:last-child{border-bottom:0}.tech-name{font-weight:700;font-size:13px}.tech-skill{color:var(--muted);font-size:12px;margin-top:2px}
.toolbar{display:flex;gap:8px}.toolbar select{min-width:170px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label,.journal-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650;color:#52606d}.form-grid .full,.journal-grid .full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #d8e0e8;border-radius:8px;background:#fff;padding:9px 10px;color:var(--text);outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#8bb9ef;box-shadow:0 0 0 3px rgba(19,104,206,.08)}
.cards-list{display:flex;flex-direction:column;gap:10px}.incident-card,.team-card{border:1px solid var(--line);border-radius:11px;padding:13px}.incident-top,.team-top{display:flex;justify-content:space-between;gap:12px}.incident-card h3,.team-card h3{font-size:14px;margin:0 0 4px}.meta{font-size:12px;color:var(--muted)}.incident-card p{font-size:13px;color:var(--text);margin:9px 0 0}.detail-line{margin-top:8px;font-size:12px;color:#44505c}
.team-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.equipment-card{border:1px solid var(--line);border-radius:12px;padding:15px}.equipment-card h3{margin:0 0 10px;font-size:15px}.equip-meta{display:grid;gap:6px;font-size:12px;color:var(--muted)}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.empty-state{padding:28px;border:1px dashed #cbd4de;border-radius:10px;text-align:center;color:var(--muted);font-size:13px}.assistant-summary{display:grid;gap:12px}.assistant-tags{display:flex;gap:8px;flex-wrap:wrap}.suggestion{padding:10px 12px;background:#f7f9fb;border-radius:9px;border:1px solid var(--line);font-size:13px}
.modal{position:fixed;inset:0;background:rgba(9,17,25,.55);display:grid;place-items:center;padding:20px;z-index:20}.modal.hidden{display:none}.modal-card{background:#fff;width:min(720px,100%);max-height:90vh;overflow:auto;border-radius:16px;padding:20px;box-shadow:var(--shadow)}.toast{position:fixed;right:24px;bottom:24px;background:var(--nav);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow);z-index:30}.toast.hidden{display:none}.muted{color:var(--muted)}.danger-text{color:var(--danger)}.small-btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 8px;font-size:11px}.small-btn.danger{color:var(--danger)}
.table-actions,.team-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.team-actions{justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid #edf0f3}.hidden{display:none!important}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}.equipment-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{display:grid!important;grid-template-columns:repeat(2,1fr)}.sidebar-footer{display:none}.main{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;flex-wrap:wrap}.kpi-grid{grid-template-columns:repeat(2,1fr)}.journal-grid,.form-grid{grid-template-columns:1fr}.equipment-grid{grid-template-columns:1fr}.reverse-mobile{display:flex;flex-direction:column-reverse}.form-grid .full,.journal-grid .full{grid-column:auto}.sidebar{padding-bottom:14px}.brand{padding-bottom:12px}}

/* Equipment hierarchy */
.grid-equipment{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr);gap:16px}
.asset-tree{display:flex;flex-direction:column;gap:12px}.tree-site{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.tree-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid #eef1f4;font-size:13px}.tree-site-row{background:#f7f9fb;padding:11px 12px}.tree-children{margin-left:18px;border-left:2px solid #edf1f5}.tree-workshop>.tree-row{background:#fbfcfd}.tree-line>.tree-row{background:#fff}.equipment-leaves{margin-left:18px}.tree-equipment{padding:0 0 6px}.tree-equipment>.tree-row{border-bottom:0;padding-bottom:3px}.tree-equipment-meta{font-size:11px;color:var(--muted);padding:0 11px 7px 38px}.tree-icon{display:inline-block;width:20px;color:var(--accent)}.tree-code{display:inline-block;margin-left:8px;padding:2px 6px;border-radius:6px;background:#eef2f6;color:#66727e;font-size:10px;font-weight:700}.tree-actions{display:flex;align-items:center;gap:2px}.tree-edit,.tree-delete{border:0;background:transparent;font-size:11px;padding:4px 6px}.tree-edit{color:var(--accent)}.tree-delete{color:var(--danger)}.tree-edit:hover,.tree-delete:hover{text-decoration:underline}.tree-empty{padding:9px 12px;color:var(--muted);font-size:12px}.asset-form{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:#fff}.asset-form summary{cursor:pointer;padding:11px 12px;font-weight:700;font-size:13px}.asset-form form{padding:0 12px 12px}.single-col{grid-template-columns:1fr}.single-col button{width:100%}
@media(max-width:1100px){.grid-equipment{grid-template-columns:1fr}}

/* Authentication / roles */
.user-chip{background:#eef4fb;border:1px solid #dbe7f4;padding:8px 11px;border-radius:9px;color:#425466;font-size:12px;font-weight:650;white-space:nowrap}
.account-chip{font-family:inherit;cursor:pointer}.account-chip:hover{background:#e4eef9}.account-modal-card{width:min(520px,100%)}
.checkbox-line{flex-direction:row!important;align-items:center;gap:9px!important}.checkbox-line input{width:auto}
.badge.Actif{background:var(--ok-soft);color:var(--ok)}.badge.Inactif{background:var(--danger-soft);color:var(--danger)}.badge.Demandée{background:#f1ebff;color:#6941c6}
.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f4f6f8,#eaf3ff)}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.wide-auth{width:min(520px,100%)}
.auth-brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}.auth-brand .brand-mark{background:var(--nav);color:#fff}.auth-brand h1{font-size:22px;margin:0 0 4px}.auth-brand p{margin:0;color:var(--muted);font-size:13px}.auth-error{background:var(--danger-soft);color:var(--danger);padding:10px 12px;border-radius:8px;font-size:13px}
@media(max-width:780px){.user-chip{max-width:100%;white-space:normal}.auth-card{padding:20px}}

/* Chariots élévateurs */
.forklift-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.forklift-tab{border:1px solid var(--line);background:#fff;color:#53606d;padding:9px 12px;border-radius:9px;font-weight:650;cursor:pointer}.forklift-tab.active{background:var(--nav);border-color:var(--nav);color:#fff}.forklift-tab-panel{display:none}.forklift-tab-panel.active{display:block}.forklift-reading-list{display:grid;gap:10px}.forklift-reading-row{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(130px,.7fr) minmax(150px,.8fr) auto;gap:12px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}.forklift-reading-row>div span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.forklift-reading-row label{font-size:12px;font-weight:650;color:#52606d}.forklift-maint-group{border:1px solid var(--line);border-radius:11px;padding:14px;margin-bottom:12px}.forklift-maint-group h3{font-size:14px;margin:0 0 8px}.forklift-maint-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 0;border-top:1px solid #edf0f3;font-size:13px}.forklift-maint-item:first-of-type{border-top:0}.forklift-maint-item span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.forklift-status.Disponible{background:var(--ok-soft);color:var(--ok)}.forklift-status.À-grouper{background:#fff4cc;color:#8a6300}.forklift-status.Entretien{background:var(--danger-soft);color:var(--danger)}.forklift-status.Relevé-à-faire{background:#ffead6;color:#a34d00}.forklift-status.À-encoder{background:#eef1f4;color:#52606d}.forklift-backup-actions{display:flex;gap:8px;flex-wrap:wrap}.file-button{display:inline-flex;cursor:pointer}.file-button input{display:none}.link-button{border:0;background:transparent;padding:0;color:var(--accent);cursor:pointer;text-align:left}.forklift-detail-card{width:min(1040px,100%)}.forklift-detail-kpis{grid-template-columns:repeat(4,1fr)}.forklift-detail-kpis .kpi-value{font-size:20px}.forklift-kpi-status{display:flex;align-items:center;min-height:32px}.forklift-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.forklift-info-item{padding:11px 0;border-bottom:1px solid var(--line)}.forklift-info-item span{display:block;font-size:11px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.forklift-info-item strong{font-size:13px}.section-title{font-size:15px;margin:0 0 10px}.forklift-timeline{position:relative;padding-left:24px}.forklift-timeline:before{content:"";position:absolute;left:7px;top:7px;bottom:7px;width:2px;background:#dbe5ee}.forklift-timeline-item{position:relative;padding:0 0 18px 12px}.forklift-timeline-item:before{content:"";position:absolute;left:-22px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:3px solid #dbeafe}.forklift-timeline-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.forklift-timeline-item p{font-size:13px;margin:5px 0 0;white-space:pre-wrap}
@media(max-width:1000px){.forklift-reading-row{grid-template-columns:1fr 1fr}.forklift-detail-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.forklift-reading-row{grid-template-columns:1fr}.forklift-maint-item{flex-direction:column;align-items:flex-start}.forklift-info-grid{grid-template-columns:1fr}.forklift-tabs{overflow:auto;flex-wrap:nowrap}.forklift-tab{white-space:nowrap}}


/* Base visuelle historique adaptée à Cohenza */
.cohenza-brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0 8px 22px}
.cohenza-logo{display:block;max-width:100%;height:auto}
.sidebar-logo{width:176px;filter:brightness(0) invert(1);opacity:.98}
.brand-app-label{font-size:12px;color:#9fb0c0;font-weight:650;letter-spacing:.02em}
.cohenza-auth-brand{align-items:flex-start;flex-direction:column;gap:10px}
.auth-logo{width:220px}
.requester-box{margin:-2px 0 14px;padding:10px 12px;border:1px solid #dbe7f4;background:#f4f8fc;border-radius:9px;color:#425466;font-size:12px}
.requester-box span{color:var(--muted)}
@media(max-width:780px){.cohenza-brand{padding:4px 6px 10px}.sidebar-logo{width:150px}.brand-app-label{display:none}.auth-logo{width:190px}}


/* Filtres & export interventions v0.2.8 */
.task-panel-head{align-items:center}
.task-quick-filters{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 14px}
.task-quick-filters button{border:1px solid var(--line);background:#fff;color:#53606d;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:700}
.task-quick-filters button:hover{border-color:#b8c4d0;background:#f8fafc}
.task-quick-filters button.active{background:var(--nav);border-color:var(--nav);color:#fff}
.task-filters-box{border:1px solid var(--line);border-radius:11px;background:#f8fafc;margin-bottom:14px}
.task-filters-box summary{cursor:pointer;padding:11px 13px;font-size:12px;font-weight:750;color:#465360;display:flex;align-items:center;justify-content:space-between;gap:10px}
.task-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:2px 12px 12px}
.task-filter-grid label{font-size:11px;color:#5f6d79;font-weight:700;display:flex;flex-direction:column;gap:5px}
.task-filter-grid input,.task-filter-grid select{padding:8px 9px;font-size:12px;background:#fff}
.task-filter-grid .filter-search{grid-column:span 2}
.task-filter-actions{display:flex;justify-content:flex-end;padding:0 12px 12px}
.filter-count{font-weight:650;color:var(--accent);white-space:nowrap}
.sort-head{border:0;background:transparent;padding:0;color:inherit;text-transform:inherit;letter-spacing:inherit;font:inherit;font-weight:inherit;display:inline-flex;align-items:center;gap:5px}
.sort-head span{display:inline-block;min-width:9px;color:var(--accent)}
.tasks-table-wide{min-width:1180px}
@media(max-width:1200px){.task-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:900px){.task-filter-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.task-filter-grid .filter-search{grid-column:span 2}}
@media(max-width:650px){.task-filter-grid{grid-template-columns:1fr}.task-filter-grid .filter-search{grid-column:auto}.task-panel-head{align-items:flex-start}.task-panel-head .toolbar{width:100%;display:flex;gap:7px;flex-wrap:wrap}}

/* Logo Cohenza visible en haut à gauche */
.brand-logo-card{background:#fff;border-radius:11px;padding:9px 10px;width:100%;box-shadow:0 2px 8px rgba(0,0,0,.12);display:flex;align-items:center}
.sidebar-logo{width:100%;max-width:190px;filter:none!important;opacity:1!important}
.cohenza-brand{width:100%}
.brand-app-label{padding-left:2px}
@media(max-width:780px){.brand-logo-card{width:auto;max-width:190px;padding:7px 9px}.sidebar-logo{width:165px}}

/* Technicien + suivi des demandes v0.3.0 */
.badge.À-faire{background:#eef2f6;color:#52606d}
.technician-header-grid{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;margin-bottom:16px}
.technician-kpis{grid-template-columns:repeat(4,minmax(120px,1fr));margin-bottom:0}
.technician-new-btn{height:42px;white-space:nowrap}
.technician-panel-head{align-items:center}
.technician-work-list{display:grid;gap:12px}
.technician-task-card{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.technician-task-card.En-cours{border-left:4px solid #d88900}
.technician-task-card.Terminé{border-left:4px solid var(--ok)}
.technician-task-card.À-faire{border-left:4px solid #7d8b99}
.technician-task-card.En-attente{border-left:4px solid #9a5b00}
.technician-task-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.technician-task-card h3{margin:10px 0 4px;font-size:17px}
.technician-asset{font-size:12px;font-weight:700;color:#465360}
.technician-task-card p{font-size:13px;line-height:1.45;margin:10px 0;color:#34414d;white-space:pre-wrap}
.technician-task-meta{font-size:11px;color:var(--muted);margin-top:10px}
.technician-blocker{margin-top:10px;padding:9px 10px;border-radius:8px;background:var(--danger-soft);color:var(--danger);font-size:12px}
.technician-task-actions{display:flex;flex-direction:column;gap:8px;justify-content:center;border-left:1px solid var(--line);padding-left:16px}
.technician-task-actions label{font-size:11px;font-weight:700;color:var(--muted)}
.requests-table{min-width:1050px}
.task-history-card{width:min(1080px,100%)}
.task-history-summary{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin-bottom:18px}
.task-history-summary>div{border:1px solid var(--line);border-radius:10px;padding:11px;background:#f8fafc}
.task-history-summary span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px}
.task-history-summary .history-blocker{grid-column:1/-1;background:var(--danger-soft);border-color:#f3cccc;color:var(--danger)}
.task-history-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:20px}
.task-history-timeline{position:relative;padding-left:24px;min-height:80px}
.task-history-timeline:before{content:"";position:absolute;left:7px;top:7px;bottom:7px;width:2px;background:#dbe5ee}
.task-history-item{position:relative;padding:0 0 20px 14px}
.task-history-dot{position:absolute;left:-21px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:3px solid #dbeafe}
.task-history-event-head{display:flex;justify-content:space-between;gap:10px;font-size:12px}
.task-history-event-head span{color:var(--muted);font-size:11px}
.task-history-message{margin-top:5px;font-size:13px;line-height:1.45;white-space:pre-wrap}
.task-history-item.internal{background:#fffaf0;border-radius:8px;padding:9px 10px 12px 14px;margin-bottom:10px}
.task-history-item.internal .task-history-dot{top:13px;background:#9a5b00;border-color:#fff0c2}
.internal-label{display:inline-block;margin-top:6px;font-size:10px;font-weight:700;color:#8a6300;background:#fff1bf;padding:3px 6px;border-radius:999px}
.task-comment-panel{border:1px solid var(--line);border-radius:12px;padding:14px;align-self:start;background:#f8fafc;position:sticky;top:0}

@media(max-width:950px){
  .technician-header-grid{grid-template-columns:1fr}.technician-new-btn{width:100%}
  .technician-kpis{grid-template-columns:repeat(2,1fr)}
  .technician-task-card{grid-template-columns:1fr}.technician-task-actions{border-left:0;border-top:1px solid var(--line);padding:12px 0 0}
  .task-history-layout{grid-template-columns:1fr}.task-comment-panel{position:static}.task-history-summary{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .technician-kpis,.task-history-summary{grid-template-columns:1fr 1fr}
  .technician-task-top,.task-history-event-head{align-items:flex-start;flex-direction:column}
  .technician-panel-head{align-items:flex-start;flex-direction:column}.technician-panel-head .toolbar{width:100%;display:grid;grid-template-columns:1fr auto}
}

/* Multi-sites + chariots terrain v0.4.0 */
.forklift-qr-box{display:flex;gap:14px;align-items:center;margin-top:16px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.forklift-qr-box img{width:132px;height:132px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px;flex:0 0 auto}
.forklift-qr-box p{font-size:12px;color:var(--muted);line-height:1.45;margin:5px 0 8px}
.forklift-qr-box a{font-size:12px;font-weight:700;color:var(--accent)}
#forklift-reports-body .badge{vertical-align:middle}
#forklift-reports-body td:nth-child(4){min-width:260px;max-width:420px}
#forklift-site-filter{min-width:150px}
@media(max-width:700px){.forklift-qr-box{align-items:flex-start;flex-direction:column}.forklift-qr-box img{width:160px;height:160px}.forklift-detail-card .grid-2{grid-template-columns:1fr}}
.forklift-scope-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin:0 0 10px;font-size:12px;font-weight:700;color:var(--muted)}
.forklift-scope-toolbar select{width:auto;min-width:190px}

.field-help{display:block;margin-top:6px;color:var(--muted,#6b7280);font-size:.82rem;line-height:1.35;}


/* Sélection de site utilisateur v0.4.2 - boutons robustes */
.user-site-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650;color:#52606d}
.field-label{font-size:12px;font-weight:650;color:#52606d}
.site-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.site-choice{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:58px;padding:10px 11px;border:1px solid #d8e0e8;border-radius:9px;background:#fff;color:var(--text);text-align:left;transition:border-color .12s,box-shadow .12s,background .12s}
.site-choice:hover{border-color:#8bb9ef;background:#f8fbff}
.site-choice.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px rgba(19,104,206,.10)}
.site-choice-name{font-weight:750;font-size:13px}
.site-choice-code{font-size:10px;color:var(--muted);font-weight:600}
.site-choice.selected .site-choice-name{color:var(--accent)}
.site-choice-empty{padding:10px;border:1px dashed #cbd4de;border-radius:8px;color:var(--muted);font-weight:500}
@media(max-width:600px){.site-choice-grid{grid-template-columns:1fr}}

/* v0.4.3 - feedback visible pour l'affectation d'un utilisateur à un site */
.site-selected-text{margin-top:2px;padding:7px 9px;border-radius:7px;background:#f3f5f7;color:var(--muted);font-size:11px;font-weight:700}
.site-selected-text.selected{background:var(--accent-soft);color:var(--accent)}

/* v0.4.4 - notifications techniciens, version visible et optimisation mobile */
.sidebar-footer-text{display:flex;flex-direction:column;gap:2px;min-width:0}.app-version{font-weight:800;color:#d7e2ec;letter-spacing:.04em}.sidebar-footer{align-items:flex-start}
.technician-header-actions{display:flex;gap:9px;align-items:stretch;flex-direction:column}.notification-button{position:relative;white-space:nowrap}.notification-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:800}
.notifications-card{width:min(680px,100%)}.notifications-head{margin-bottom:10px}.notification-toolbar{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:12px}.notification-toolbar button:disabled{opacity:.65;cursor:default}.notifications-list{display:flex;flex-direction:column;gap:8px}.notification-item{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:12px;text-align:left;color:var(--text)}.notification-item:hover{background:#f8fafc;border-color:#cfd9e3}.notification-item.unread{background:#f1f7ff;border-color:#bed8f7}.notification-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#edf2f7;font-size:16px}.notification-title{font-size:13px;font-weight:800;margin-bottom:4px}.notification-message{font-size:12px;line-height:1.4;color:#34414d}.notification-meta{font-size:10px;color:var(--muted);margin-top:6px}.notification-unread-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);margin:5px 2px 0 0}.mobile-tech-nav{display:none}

@media(max-width:780px){
  body[data-role="technician"]{background:#f4f6f8}
  body[data-role="technician"] .app-shell{display:block;padding-bottom:78px}
  body[data-role="technician"] .sidebar{position:sticky;top:0;z-index:12;height:auto;min-height:58px;padding:7px 12px;display:flex;flex-direction:row;align-items:center;box-shadow:0 2px 12px rgba(0,0,0,.12)}
  body[data-role="technician"] .sidebar .brand{padding:0;margin:0;flex:1;min-width:0}
  body[data-role="technician"] .sidebar .brand-logo-card{width:126px;max-width:126px;padding:4px 7px}
  body[data-role="technician"] .sidebar .sidebar-logo{width:112px;max-width:112px}
  body[data-role="technician"] #nav{display:none!important}
  body[data-role="technician"] .sidebar-footer{display:flex;margin:0 0 0 8px;padding:4px 0;gap:6px;align-items:center;white-space:nowrap}
  body[data-role="technician"] .sidebar-footer-text>span:first-child{display:none}
  body[data-role="technician"] .app-version{font-size:11px}
  body[data-role="technician"] .main{padding:14px 12px 18px}
  body[data-role="technician"] .topbar{margin-bottom:14px;gap:10px}
  body[data-role="technician"] .topbar h1{font-size:21px;margin-bottom:3px}
  body[data-role="technician"] .topbar p{font-size:12px;line-height:1.35}
  body[data-role="technician"] .topbar-actions{gap:7px;display:grid;grid-template-columns:1fr}
  body[data-role="technician"] .date-chip{display:none}
  body[data-role="technician"] .user-chip{width:100%;overflow:hidden;text-overflow:ellipsis;text-align:center;padding:7px 9px}
  body[data-role="technician"] .topbar-actions>.ghost{display:none}
  body[data-role="technician"] .technician-header-grid{gap:10px;margin-bottom:12px}
  body[data-role="technician"] .technician-header-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  body[data-role="technician"] .technician-header-actions button{min-height:44px;padding:9px 8px;font-size:12px;white-space:normal}
  body[data-role="technician"] .technician-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  body[data-role="technician"] .technician-kpis .kpi{padding:12px;min-width:0}
  body[data-role="technician"] .technician-kpis .kpi-label{margin-bottom:5px}
  body[data-role="technician"] .technician-kpis .kpi-value{font-size:24px}
  body[data-role="technician"] .panel{padding:13px;border-radius:12px}
  body[data-role="technician"] .technician-panel-head{gap:10px;margin-bottom:12px}
  body[data-role="technician"] .technician-panel-head .toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;gap:7px}
  body[data-role="technician"] .technician-panel-head .toolbar select{min-width:0}
  body[data-role="technician"] .technician-task-card{padding:13px;gap:12px;border-radius:12px}
  body[data-role="technician"] .technician-task-card h3{font-size:16px;margin:8px 0 4px}
  body[data-role="technician"] .technician-task-card p{font-size:13px;margin:8px 0}
  body[data-role="technician"] .technician-task-actions{gap:9px;padding-top:11px}
  body[data-role="technician"] .technician-task-actions select,body[data-role="technician"] .technician-task-actions button{min-height:44px}
  body[data-role="technician"] .modal{padding:8px;align-items:end}
  body[data-role="technician"] .modal-card{width:100%;max-height:92vh;border-radius:16px 16px 0 0;padding:15px}
  body[data-role="technician"] .task-history-summary{grid-template-columns:1fr 1fr;gap:7px}
  body[data-role="technician"] .task-history-summary>div{padding:9px}
  body[data-role="technician"] .notification-toolbar{display:grid;grid-template-columns:1fr;gap:7px}
  body[data-role="technician"] .notification-toolbar button{min-height:42px}
  body[data-role="technician"] .notification-item{grid-template-columns:34px minmax(0,1fr) auto;padding:11px 9px;gap:8px}
  .mobile-tech-nav:not(.hidden){position:fixed;left:0;right:0;bottom:0;z-index:25;height:68px;padding:5px max(6px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:#fff;border-top:1px solid #dce3ea;display:grid;grid-template-columns:repeat(5,1fr);box-shadow:0 -5px 18px rgba(20,37,55,.10)}
  .mobile-tech-nav button{position:relative;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#465360;padding:3px 2px;min-width:0}
  .mobile-tech-nav button>span{position:relative;font-size:19px;line-height:20px}.mobile-tech-nav small{font-size:9px;font-weight:750;white-space:nowrap}
  .mobile-notification-badge{position:absolute;top:-8px;right:-11px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:9px;font-style:normal;display:grid;place-items:center}
  body[data-role="technician"] .toast{left:12px;right:12px;bottom:82px;text-align:center}
}

@media(max-width:380px){
  body[data-role="technician"] .technician-header-actions{grid-template-columns:1fr}
  body[data-role="technician"] .technician-kpis{grid-template-columns:1fr 1fr}
  body[data-role="technician"] .main{padding-left:9px;padding-right:9px}
  .mobile-tech-nav small{font-size:8px}
}

/* v0.4.8 - vue utilisateurs + sécurité 2FA */
.users-overview-panel{min-width:0}.users-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.user-summary-chip{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.user-summary-chip strong{font-size:20px}.user-summary-chip span{font-size:11px;color:var(--muted);font-weight:700}.users-toolbar{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr)) minmax(190px,1.5fr);gap:8px;margin-bottom:14px}.users-toolbar label{font-size:11px;color:var(--muted);font-weight:700}.users-toolbar select,.users-toolbar input{margin-top:4px}.users-grouped-list{display:flex;flex-direction:column;gap:14px}.user-site-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.user-site-group-title{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;background:#eef4fa;border-bottom:1px solid var(--line)}.user-site-group-title strong{font-size:14px}.user-site-group-title span{font-size:10px;color:var(--muted);font-weight:700}.user-role-group+.user-role-group{border-top:1px solid var(--line)}.user-role-title{padding:8px 12px;background:#fafbfc;font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#52606d}.user-role-title span{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;border-radius:999px;background:#e8edf2;font-size:10px}.users-table{min-width:850px}.users-table th,.users-table td{vertical-align:middle}.user-row-actions{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.security-mini{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:800}.security-mini.enabled{background:#e8f7ee;color:#18783d}.security-mini.disabled{background:#f1f3f5;color:#66727d}
.account-security-card{width:min(820px,100%)}.security-section{padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}.security-section:first-of-type{padding-top:0;margin-top:0;border-top:0}.security-section h3{margin:0 0 10px}.security-section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.security-section-head p{margin:4px 0 0;font-size:12px;color:var(--muted)}.security-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#f1f3f5;color:#66727d;font-size:10px;font-weight:800;white-space:nowrap}.security-status.enabled{background:#e8f7ee;color:#18783d}.two-factor-setup{display:flex;flex-direction:column;gap:12px}.two-factor-qr{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.two-factor-qr img{width:150px;height:150px;background:#fff;border:1px solid var(--line);border-radius:8px}.two-factor-qr p{margin:5px 0;color:var(--muted);font-size:12px}.secret-line{font-size:11px;word-break:break-all}.secret-line code{font-size:11px}.recovery-box{margin-top:12px;padding:12px;border:1px solid #f0c36d;border-radius:10px;background:#fff8e6}.recovery-box h4{margin:0 0 5px}.recovery-box p{margin:0 0 10px;font-size:12px}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}.recovery-codes code{display:block;padding:7px 9px;background:#fff;border:1px solid #ead7a6;border-radius:7px;text-align:center;font-weight:800;letter-spacing:.06em}.danger-btn{border:1px solid var(--danger);background:#fff;color:var(--danger);border-radius:8px;padding:9px 12px;font-weight:750}.auth-2fa-intro{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.auth-2fa-intro p{margin:5px 0 0;font-size:12px;color:var(--muted)}
@media(max-width:900px){.users-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.users-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.users-summary,.users-toolbar{grid-template-columns:1fr 1fr}.users-search-label{grid-column:1/-1}.two-factor-qr{grid-template-columns:1fr}.two-factor-qr img{width:170px;height:170px}.recovery-codes{grid-template-columns:1fr}.security-section-head{flex-direction:column}.users-table{min-width:760px}}


/* v0.4.8.3 - correctif ergonomie mobile des fenêtres technicien */
body.modal-open{overflow:hidden}

@media(max-width:780px){
  /* Une fenêtre ouverte passe devant la barre de navigation mobile. */
  body[data-role="technician"] .modal{
    z-index:50;
    padding:max(8px, env(safe-area-inset-top)) 0 0;
    align-items:end;
    overflow:hidden;
    overscroll-behavior:none;
    touch-action:none;
  }

  /* Le défilement appartient à la fenêtre, jamais à la page située derrière. */
  body[data-role="technician"] .modal-card{
    width:100%;
    max-height:calc(100dvh - max(8px, env(safe-area-inset-top)));
    border-radius:16px 16px 0 0;
    padding:15px 15px calc(20px + env(safe-area-inset-bottom));
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    touch-action:pan-y;
    scroll-padding-bottom:calc(28px + env(safe-area-inset-bottom));
  }

  /* Le suivi d'intervention utilise tout l'écran utile du téléphone. */
  body[data-role="technician"] #task-history-modal .task-history-card{
    height:calc(100dvh - max(8px, env(safe-area-inset-top)));
    max-height:calc(100dvh - max(8px, env(safe-area-inset-top)));
  }

  /* Le titre et la croix restent accessibles pendant le défilement. */
  body[data-role="technician"] #task-history-modal .panel-head{
    position:sticky;
    top:-15px;
    z-index:3;
    margin:0 -1px 10px;
    padding:15px 1px 10px;
    background:#fff;
    border-bottom:1px solid #edf0f3;
  }

  body[data-role="technician"] #task-history-modal .task-history-summary{
    margin-bottom:10px;
  }

  /* Sur téléphone, le compte rendu est l'action principale : il apparaît avant l'historique. */
  body[data-role="technician"] #task-history-modal .task-history-layout{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  body[data-role="technician"] #task-history-modal .task-comment-panel{
    order:-1;
    position:static;
    margin:0;
    padding:12px;
  }
  body[data-role="technician"] #task-history-modal .task-comment-panel textarea{
    min-height:105px;
    max-height:32vh;
    resize:vertical;
  }
  body[data-role="technician"] #task-history-modal .task-comment-panel .primary{
    min-height:48px;
    font-size:14px;
  }
  body[data-role="technician"] #task-history-modal .task-history-timeline{
    min-height:36px;
  }
}

/* v0.4.9 - pièces, routines, fournisseurs et sélections hiérarchiques */
.supplier-search-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:14px}
.supplier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}
.supplier-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:10px;min-width:0}
.supplier-card.inactive{opacity:.62;background:#f7f8fa}.supplier-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.supplier-card h3{margin:0 0 3px;font-size:15px}.supplier-activities{font-size:12px;font-weight:700;padding:8px 10px;border-radius:8px;background:var(--accent-soft);color:#355f8d;word-break:break-word}.supplier-contact{display:grid;gap:4px;font-size:12px;word-break:break-word}
.stock-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);gap:16px}.stock-low td{background:#fff9e9}.stock-zero td{background:var(--danger-soft)}
.compact-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important}.compact-check input{width:auto;margin:0}.cascade-hint{font-size:11px;color:var(--muted);margin-top:-4px}
.parts-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.parts-toolbar input{min-width:220px}.parts-toolbar label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.parts-toolbar label input{width:auto;min-width:0}
@media(max-width:1000px){.stock-layout{grid-template-columns:1fr}}
@media(max-width:780px){.supplier-search-bar{grid-template-columns:1fr}.supplier-grid{grid-template-columns:1fr}.parts-toolbar{display:grid;grid-template-columns:1fr}.parts-toolbar input{min-width:0}.parts-toolbar .primary,.parts-toolbar .ghost{width:100%}.supplier-card{padding:12px}.cascade-hint{margin-top:0}}


/* v0.4.10 - vues de gestion filtrables */
.management-filter-grid{display:grid;grid-template-columns:minmax(150px,1fr) repeat(4,minmax(130px,.65fr));gap:9px;margin-bottom:14px;align-items:end}
.management-filter-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:750;color:var(--muted)}
.management-filter-grid .filter-wide{grid-column:span 2}.management-filter-grid input,.management-filter-grid select{min-width:0}
.management-filter-grid .checkbox-filter{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfc;color:var(--text)}
.management-filter-grid .checkbox-filter input{width:auto}.management-table{min-width:930px}
@media(max-width:1100px){.management-filter-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}.management-filter-grid .filter-wide{grid-column:span 2}}
@media(max-width:780px){.management-filter-grid{grid-template-columns:1fr 1fr}.management-filter-grid .filter-wide{grid-column:1/-1}.management-filter-grid .checkbox-filter{grid-column:1/-1}.management-table{min-width:860px}}
@media(max-width:480px){.management-filter-grid{grid-template-columns:1fr}.management-filter-grid .filter-wide,.management-filter-grid .checkbox-filter{grid-column:auto}}

/* v0.4.12 - KPI maintenance */
.kpi-filter-panel{margin-bottom:16px}.kpi-panel-head{align-items:center}.kpi-quick-periods{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.kpi-filter-grid{grid-template-columns:repeat(4,minmax(135px,1fr))}.kpi-filter-actions{display:flex;gap:8px;align-items:flex-end;justify-content:flex-end}.kpi-filter-actions button{min-width:112px}
.kpi-period-label{font-size:11px;color:var(--muted);font-weight:700;margin-top:-4px}.kpi-summary-grid{grid-template-columns:repeat(5,minmax(145px,1fr))}.kpi-summary-grid .kpi-value{font-size:27px;line-height:1.1}
.kpi-main-grid{grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr)}.kpi-equipment-table{min-width:720px}.kpi-requester-table{min-width:620px}.kpi-number{display:inline-grid;place-items:center;min-width:30px;height:26px;padding:0 8px;border-radius:999px;background:#eef2f6;font-weight:800}.kpi-number.alert{background:var(--danger-soft);color:var(--danger)}
.kpi-ranking{display:flex;flex-direction:column;gap:13px}.kpi-rank-row{border-bottom:1px solid var(--line);padding-bottom:12px}.kpi-rank-row:last-child{border-bottom:0;padding-bottom:0}.kpi-rank-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.kpi-rank-head>div{display:flex;align-items:center;gap:8px;min-width:0}.kpi-rank-head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-rank-index{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef2f6;color:#52606d;font-size:10px;font-weight:800;flex:0 0 auto}.kpi-bar-track{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden;margin:8px 0 6px}.kpi-bar-track span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.kpi-rank-meta{font-size:11px;color:var(--muted)}
.kpi-info-note{padding:9px 11px;margin:-4px 0 12px;border-radius:8px;background:#f5f8fb;border:1px solid #e1e8ef;color:#52606d;font-size:11px;line-height:1.45}
@media(max-width:1100px){.kpi-filter-grid{grid-template-columns:repeat(3,minmax(135px,1fr))}.kpi-summary-grid{grid-template-columns:repeat(3,1fr)}.kpi-main-grid{grid-template-columns:1fr}}
@media(max-width:780px){.kpi-panel-head{flex-direction:column;align-items:flex-start}.kpi-quick-periods{width:100%;justify-content:flex-start}.kpi-filter-grid{grid-template-columns:1fr 1fr}.kpi-filter-actions{grid-column:1/-1;justify-content:stretch}.kpi-filter-actions button{flex:1;min-width:0}.kpi-summary-grid{grid-template-columns:1fr 1fr}.kpi-summary-grid .kpi-value{font-size:24px}}
@media(max-width:480px){.kpi-filter-grid{grid-template-columns:1fr}.kpi-filter-actions{grid-column:auto}.kpi-summary-grid{grid-template-columns:1fr}.kpi-quick-periods{display:grid;grid-template-columns:1fr 1fr}.kpi-quick-periods button{width:100%}}

.kpi-filter-note {
  margin-top: 8px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.45;
}

/* v0.4.12 - Assistant maintenance contextualise par l'historique GMAO */
.assistant-history-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;display:grid;gap:12px}.assistant-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assistant-history-head h3{margin:0 0 3px;font-size:16px}.assistant-history-stats{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:8px}.assistant-history-stats>div{border:1px solid var(--line);border-radius:10px;padding:10px;background:#f8fafc;display:grid;gap:2px}.assistant-history-stats strong{font-size:18px}.assistant-history-stats span{font-size:11px;color:var(--muted)}.assistant-themes{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}.assistant-themes span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:#f7f9fb}.assistant-history-section{display:grid;gap:6px}.assistant-history-section h4{margin:2px 0 4px;font-size:13px}.assistant-history-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:8px 0;font-size:12px}.assistant-history-row:first-of-type{border-top:0}.assistant-history-row>div:last-child{text-align:right;white-space:nowrap}@media(max-width:760px){.assistant-history-stats{grid-template-columns:repeat(2,minmax(100px,1fr))}.assistant-history-head,.assistant-history-row{display:grid}.assistant-history-row>div:last-child{text-align:left;white-space:normal}}


/* v0.4.13 - Copilot maintenance conversationnel */
.assistant-copilot-grid{display:grid;grid-template-columns:minmax(380px,.9fr) minmax(520px,1.25fr);gap:14px;align-items:start}.assistant-chat-panel,.assistant-diagnostic-panel{min-width:0}.assistant-chat{height:360px;overflow:auto;border:1px solid var(--line);background:#f7f9fb;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}.assistant-chat-row{max-width:92%;display:grid;gap:4px}.assistant-chat-row.user{align-self:flex-end}.assistant-chat-row.assistant{align-self:flex-start}.assistant-chat-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}.assistant-chat-row.user .assistant-chat-label{text-align:right}.assistant-chat-bubble{padding:10px 12px;border:1px solid var(--line);background:#fff;border-radius:12px;font-size:12px;line-height:1.5;white-space:normal}.assistant-chat-row.user .assistant-chat-bubble{background:#eaf3ff;border-color:#cfe2fb}.assistant-composer{margin-top:12px;display:grid;gap:8px}.assistant-composer textarea{resize:vertical;min-height:90px}.assistant-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.assistant-ai-status{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:#f7f9fb;color:var(--muted);font-size:10px;font-weight:800;white-space:nowrap}.assistant-ai-status.active{background:#e8f8ef;border-color:#bfe9cf;color:#14713b}.assistant-ai-status.local{background:#fff7e7;border-color:#f1d79d;color:#8a5a00}.assistant-ai-status.working{background:#eef4fb;color:#245d91}.assistant-copilot-answer{display:grid;gap:12px}.assistant-summary-box,.assistant-orientation{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#f8fafc;display:grid;gap:5px;font-size:12px;line-height:1.5}.assistant-orientation{background:#eef6ff;border-color:#d6e7fb}.assistant-copilot-section{display:grid;gap:8px}.assistant-copilot-section h3{font-size:13px;margin:0}.assistant-causes{display:grid;gap:7px}.assistant-cause{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;font-size:12px}.assistant-confidence{font-size:9px;font-weight:800;padding:4px 7px;border-radius:999px;white-space:nowrap}.confidence-high{background:#fdeaea;color:#a72828}.confidence-medium{background:#fff4d9;color:#8a5a00}.confidence-low{background:#edf1f5;color:#52606d}.assistant-checks{display:grid;gap:9px}.assistant-check{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px}.assistant-check-num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:white;font-weight:800;font-size:12px}.assistant-check h4{margin:1px 0 4px;font-size:12px}.assistant-check-why{color:var(--muted);font-size:11px;margin-bottom:5px}.assistant-check-action{font-size:12px;line-height:1.45}.assistant-check-branches{display:grid;gap:3px;margin-top:7px;padding-top:7px;border-top:1px dashed var(--line);font-size:11px}.assistant-safety{border:1px solid #f2c8c8;background:#fff2f2;border-radius:10px;padding:10px 12px;color:#7e2727;font-size:11px;line-height:1.45;display:grid;gap:4px}.assistant-next-question{border:1px solid #bcd9f7;background:#eef6ff;border-radius:10px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:5px 10px;align-items:center;font-size:12px}.assistant-next-question strong{grid-column:1/-1}.assistant-next-question>div{font-weight:700;line-height:1.45}.assistant-local-warning{padding:8px 10px;margin:8px 0;border:1px solid #f1d79d;background:#fff7e7;border-radius:9px;font-size:11px;line-height:1.4}.assistant-history-details{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.assistant-history-details summary{cursor:pointer;font-size:12px;font-weight:800;margin-bottom:10px}.assistant-history-details .assistant-history-card{margin-top:8px}
@media(max-width:1100px){.assistant-copilot-grid{grid-template-columns:1fr}.assistant-chat{height:300px}}
@media(max-width:620px){.assistant-composer-actions{align-items:stretch;flex-direction:column}.assistant-composer-actions .primary{width:100%}.assistant-next-question{grid-template-columns:1fr}.assistant-next-question strong{grid-column:auto}.assistant-check{grid-template-columns:26px 1fr}.assistant-chat-row{max-width:96%}}


/* v0.4.13.1 - Copilot accessible dans la navigation mobile Technicien */
@media(max-width:780px){
  body[data-role="technician"] #view-assistant{padding-bottom:78px}
  body[data-role="technician"] .assistant-copilot-grid{grid-template-columns:1fr;gap:10px}
  body[data-role="technician"] .assistant-chat{height:260px}
  body[data-role="technician"] .assistant-chat-panel,
  body[data-role="technician"] .assistant-diagnostic-panel{padding:12px}
  body[data-role="technician"] .assistant-ai-status{font-size:9px}
  .mobile-tech-nav button[title="Copilot maintenance"] span{font-size:21px}
}

/* v0.4.14 - REX structuré + Copilot orienté pertinence */
.task-history-summary .history-rex{grid-column:1/-1;background:#eef8f2;border-color:#cbe8d5;color:#244c34}.task-history-completion-action{display:flex;justify-content:flex-end;margin:-8px 0 16px}.task-completion-card{width:min(720px,100%)}.completion-task-title{font-weight:800;font-size:16px;margin:-4px 0 14px;color:#263746}.completion-help{font-size:11px;line-height:1.45;color:var(--muted);background:#f6f8fa;border:1px solid var(--line);border-radius:9px;padding:9px 10px}.assistant-grounded-facts{border:1px solid #c9e4d3;background:#f1faf4;border-radius:11px;padding:11px 13px}.assistant-grounded-facts h3{font-size:13px;margin:0 0 7px;color:#245c39}.assistant-grounded-facts ul{margin:0;padding-left:18px;display:grid;gap:5px;font-size:11px;line-height:1.45}.assistant-current-check{border:2px solid #87baf0;background:#f1f7ff;border-radius:12px;padding:13px;display:grid;gap:6px}.assistant-current-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:900;color:#28659c}.assistant-current-check h3{margin:0;font-size:14px}.assistant-next-checks{border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fafbfc}.assistant-next-checks summary{cursor:pointer;font-size:11px;font-weight:800}.assistant-next-checks .assistant-checks{margin-top:9px}.assistant-relevance{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:9px;font-weight:800;border:1px solid var(--line);background:#f1f3f5;color:#5d6975;margin-bottom:4px}.assistant-relevance.high{background:#e9f8ef;border-color:#b9e1c6;color:#1f6b3c}.assistant-relevance.medium{background:#eef6ff;border-color:#c9def5;color:#285f90}.assistant-relevance.low{background:#f5f6f7;color:#66717b}.assistant-rex-line{font-size:11px;line-height:1.4;margin-top:3px}.assistant-feedback{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;font-size:11px;color:var(--muted)}
@media(max-width:620px){.task-history-completion-action{justify-content:stretch}.task-history-completion-action .primary{width:100%}.assistant-current-check{padding:11px}.assistant-feedback .small-btn{min-height:38px}}


/* v0.4.14.1 - recherche globale Copilot dans tous les modules GMAO */
.assistant-global-details{margin-top:14px;border:1px solid #dbe5ef;border-radius:12px;background:#fff;overflow:hidden}
.assistant-global-details>summary{cursor:pointer;padding:12px 14px;font-weight:700;background:#f7fafc;color:#17324d}
.assistant-global-counts{display:flex;flex-wrap:wrap;gap:7px;padding:10px 14px;border-top:1px solid #e8eef4;border-bottom:1px solid #e8eef4}
.assistant-global-counts span{font-size:12px;background:#eef5fb;border:1px solid #dce8f3;border-radius:999px;padding:4px 8px}
.assistant-global-results{padding:0 14px}
.assistant-global-row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #edf1f5}
.assistant-global-row:last-child{border-bottom:0}
.assistant-global-row>div:first-child{min-width:0;flex:1}
.assistant-global-summary{margin-top:4px;font-size:12px;color:#526476;white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){.assistant-global-row{flex-direction:column;gap:7px}.assistant-global-details>summary{font-size:13px}}

/* v0.4.15 - stock multi-sites et revue production */
.stock-value-summary{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:var(--surface-soft,#f4f7fa);font-size:.95rem}
.stock-site-balances{display:flex;flex-wrap:wrap;gap:6px;min-width:260px}
.stock-site-chip{display:inline-flex;gap:5px;align-items:center;padding:5px 8px;border:1px solid rgba(100,116,139,.25);border-radius:999px;background:rgba(148,163,184,.10);white-space:nowrap;font-size:.82rem}
.stock-site-chip.stock-site-low{border-color:#f59e0b;background:rgba(245,158,11,.12)}
.stock-site-edit-title{margin-top:4px;padding-top:10px;border-top:1px solid rgba(148,163,184,.25);font-weight:700}
.request-list-filters{margin:0 0 14px}
.stock-multisite-table td{vertical-align:top}
@media(max-width:900px){.stock-site-balances{min-width:210px}.request-list-filters{grid-template-columns:1fr 1fr}}
.badge.Clôturé{background:var(--ok-soft);color:var(--ok);box-shadow:inset 0 0 0 1px rgba(34,197,94,.22)}

/* v0.4.15.3 - filtre arborescence demandes + valorisation stock par site */
.request-hierarchy-filter{margin:0 0 14px;border:1px solid var(--line);border-radius:11px;background:#fbfcfd;overflow:hidden}
.request-hierarchy-filter>summary{cursor:pointer;padding:10px 12px;font-weight:800;font-size:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.request-tree-selection{font-weight:700;color:var(--accent);background:#eaf3ff;border-radius:999px;padding:3px 8px}
.request-tree-help{padding:0 12px 9px;color:var(--muted);font-size:11px;line-height:1.4}
.request-filter-tree{border-top:1px solid var(--line);padding:8px 10px 10px;max-height:420px;overflow:auto;background:#fff}
.request-tree-site{width:100%;text-align:left;border:0;background:#f5f8fb;border-radius:8px;padding:8px 10px;font-weight:800;color:var(--text);cursor:pointer}
.request-tree-site.active{background:#eaf3ff;color:#145da0}
.request-tree-folder{margin:4px 0 0 10px;border-left:1px solid #dce4ec;padding-left:10px}
.request-tree-folder>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 4px;font-size:12px;font-weight:750}
.request-tree-folder>summary::marker{color:#7b8794}
.request-tree-filter-btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:3px 7px;font-size:10px;color:var(--accent);cursor:pointer;flex:0 0 auto}
.request-tree-filter-btn.active{background:#eaf3ff;border-color:#b9d5f5;font-weight:800}
.request-tree-children{margin-left:8px}.request-tree-line{margin-left:8px}.request-tree-equipment-list{display:grid;gap:3px;padding:2px 0 5px 8px}
.request-tree-equipment{border:0;background:transparent;text-align:left;padding:5px 7px;border-radius:7px;font-size:11px;color:var(--text);cursor:pointer}
.request-tree-equipment:hover{background:#f3f6f9}.request-tree-equipment.active{background:#eaf3ff;color:#145da0;font-weight:800}
.request-tree-empty{padding:5px 7px;color:var(--muted);font-size:10px}
.stock-value-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;margin:0 0 9px}
.stock-value-card{display:grid;gap:3px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}
.stock-value-card span{font-size:11px;color:var(--muted);font-weight:750}.stock-value-card strong{font-size:17px}.stock-value-card small{font-size:10px;color:var(--muted)}
.stock-site-value{margin-left:4px;padding-left:6px;border-left:1px solid rgba(100,116,139,.25);font-weight:750;color:#365d80}
@media(max-width:700px){.request-filter-tree{max-height:360px}.stock-value-cards{grid-template-columns:1fr 1fr}.request-tree-folder>summary{align-items:flex-start}.request-tree-filter-btn{min-height:28px}}
@media(max-width:430px){.stock-value-cards{grid-template-columns:1fr}}


/* v0.4.15.4 - Parc équipements repliable comme une arborescence */
.tree-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.tree-node{margin:0;padding:0}
.tree-node>summary{list-style:none;cursor:pointer;user-select:none;position:relative}
.tree-node>summary::-webkit-details-marker{display:none}
.tree-node>summary::before{content:'›';display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;color:var(--accent);font-size:20px;font-weight:800;line-height:1;transform:rotate(0deg);transition:transform .14s ease}
.tree-node[open]>summary::before{transform:rotate(90deg)}
.tree-node>summary:hover{background:#f3f7fb}
.tree-node>.tree-children{display:block}
.tree-label{display:flex;align-items:center;gap:0;min-width:0;flex:1}
.tree-count{display:inline-block;margin-left:8px;color:var(--muted);font-size:10px;font-weight:600;white-space:nowrap}
.tree-site.tree-node{overflow:hidden}
.tree-site.tree-node+.tree-site.tree-node{margin-top:12px}
.tree-site>.tree-children>.tree-workshop:last-child>.tree-children{padding-bottom:0}
@media(max-width:700px){.tree-toolbar{width:100%;justify-content:flex-start}.tree-toolbar .ghost{padding:7px 9px}.tree-count{display:none}.tree-node>summary::before{width:15px;flex-basis:15px}}


/* v0.4.15.5 - REX vocal optionnel */
.rex-input-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #cbdbe9;background:#f3f8fc;border-radius:11px}.rex-input-choice>div{display:grid;gap:3px}.rex-input-choice strong{font-size:13px;color:#17324d}.rex-input-choice span{font-size:11px;color:var(--muted)}.rex-written-label{font-size:11px;font-weight:700;color:#4e6070;padding:2px 1px}.rex-voice-panel{display:grid;gap:11px;border:1px solid #a8c8e2;background:#f8fbfe;border-radius:12px;padding:12px}.rex-voice-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.rex-voice-head>div{display:grid;gap:4px}.rex-voice-step{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#5f7488;font-weight:800}.rex-voice-question{font-size:13px;line-height:1.4;color:#21384d}.rex-mic-state{font-size:10px;font-weight:800;color:#687887;white-space:nowrap}.rex-mic-state.active{color:#a51d2d}.rex-voice-actions,.rex-voice-review-actions{display:flex;gap:8px;flex-wrap:wrap}.rex-voice-review{display:grid;gap:5px;font-size:11px;font-weight:800;color:#3c5265}.rex-voice-review textarea{background:#fffdf2;border-color:#e2d8a6}.rex-voice-raw{border:1px dashed #c3d1dc;background:#fff;border-radius:9px;padding:9px 10px;font-size:11px;line-height:1.45;color:#465968}.rex-voice-raw strong{display:block;margin-bottom:4px}.rex-voice-info{font-size:10px;line-height:1.45;color:var(--muted)}.rex-origin-details{grid-column:1/-1;border:1px solid #bfd9e8;background:#f5fbff;border-radius:9px;padding:8px 10px}.rex-origin-details summary{cursor:pointer;font-size:11px;font-weight:800;color:#285d7d}.rex-origin-item{margin-top:8px;padding-top:8px;border-top:1px solid #dce8ef;display:grid;gap:4px;font-size:10px;line-height:1.4}.rex-origin-head{display:flex;justify-content:space-between;gap:8px}.rex-origin-head span{color:var(--muted);font-weight:500}.mt6{margin-top:6px}
@media(max-width:620px){.rex-input-choice,.rex-voice-head{flex-direction:column;align-items:stretch}.rex-input-choice .secondary,.rex-voice-actions button,.rex-voice-review-actions button{width:100%}.rex-mic-state{white-space:normal}.task-completion-card{max-height:92vh;overflow:auto}}


/* v0.4.15.6 - choix de la voix REX sur chaque appareil */
.rex-voice-settings{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.rex-voice-settings label{display:grid;gap:5px;min-width:230px;flex:1;font-size:11px;font-weight:800;color:#3c5265}.rex-voice-settings select{width:100%;min-height:38px;background:#fff}.rex-voice-settings .small-btn{min-height:38px}.rex-voice-choice-info{font-size:10px;line-height:1.35;color:var(--muted);margin-top:-4px}
@media(max-width:620px){.rex-voice-settings{align-items:stretch;flex-direction:column}.rex-voice-settings label{min-width:0;width:100%}.rex-voice-settings .small-btn{width:100%}}

/* Cohenza V1.0.0 alpha 1 */
.cohenza-brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0 8px 22px;width:100%}
.cohenza-logo{display:block;width:100%;height:auto;object-fit:contain}
.brand-company-label{font-size:11px;color:rgba(255,255,255,.72);font-weight:700;padding-left:2px}
.feature-disabled{display:none!important}
.feature-flags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.feature-card{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;cursor:pointer}
.feature-card input{margin-top:3px;width:auto}.feature-card span{display:flex;flex-direction:column;gap:3px}.feature-card strong{font-size:13px}.feature-card small{font-size:11px;color:var(--muted);line-height:1.35}
.cohenza-alpha-note{padding:12px;border:1px solid #bcd8f5;border-radius:10px;background:#eef7ff}.cohenza-alpha-note p{margin:4px 0 0;color:#4d6378;font-size:12px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.field-label{font-size:12px;font-weight:700;color:#465360;margin-bottom:6px}

/* Position du menu configurable. Le mode haut reste volontairement compact pour la V1. */
body[data-menu-position="top"] .app-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}
body[data-menu-position="top"] .sidebar{position:sticky;top:0;z-index:30;width:100%;height:auto;min-height:0;display:grid;grid-template-columns:minmax(190px,280px) 1fr auto;align-items:center;gap:14px;padding:10px 18px}
body[data-menu-position="top"] .cohenza-brand{padding:0;gap:2px}
body[data-menu-position="top"] .sidebar .brand-logo-card{width:150px;padding:4px 7px}
body[data-menu-position="top"] .sidebar .sidebar-logo{width:136px}
body[data-menu-position="top"] .sidebar .brand-app-label,body[data-menu-position="top"] .sidebar .brand-company-label{display:none}
body[data-menu-position="top"] #nav{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:0}
body[data-menu-position="top"] #nav .nav-item{flex:0 0 auto;white-space:nowrap;padding:8px 10px;font-size:12px}
body[data-menu-position="top"] .sidebar-footer{margin:0;padding:0;border:0;white-space:nowrap}
body[data-menu-position="top"] .main{grid-column:1;padding-top:20px}

@media(max-width:900px){.feature-flags{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:1fr 1fr}}
@media(max-width:780px){
  .cohenza-brand{padding:4px 6px 10px}.brand-company-label{display:none}
  body[data-menu-position="top"] .app-shell{display:block}
  body[data-menu-position="top"] .sidebar{position:relative;display:block;padding:12px}
  body[data-menu-position="top"] #nav{display:flex;overflow-x:auto;margin-top:8px}
  body[data-menu-position="top"] .sidebar-footer{margin-top:8px}
}

/* Cohenza V1 alpha 2 — navigation haute réellement compacte */
body[data-menu-position="top"] .app-shell{display:flex!important;flex-direction:column!important;min-height:100vh}
body[data-menu-position="top"] .sidebar{position:sticky!important;top:0!important;z-index:30!important;height:auto!important;min-height:78px!important;width:100%!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:14px!important;padding:8px 14px!important;overflow:hidden}
body[data-menu-position="top"] .sidebar .brand{flex:0 0 auto!important;padding:0!important;margin:0!important}
body[data-menu-position="top"] .sidebar .cohenza-brand{width:auto!important;padding:0!important;gap:0!important}
body[data-menu-position="top"] .sidebar .brand-logo-card{width:138px!important;max-width:138px!important;padding:4px 7px!important}
body[data-menu-position="top"] .sidebar .sidebar-logo{width:122px!important;max-width:122px!important}
body[data-menu-position="top"] .sidebar .brand-app-label,body[data-menu-position="top"] .sidebar .brand-company-label{display:none!important}
body[data-menu-position="top"] #nav{display:flex!important;flex-direction:row!important;align-items:center!important;gap:4px!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;flex:1 1 auto!important;min-width:0!important;padding:2px 0!important;scrollbar-width:thin}
body[data-menu-position="top"] #nav .nav-item{display:block!important;flex:0 0 auto!important;width:auto!important;text-align:center!important;white-space:nowrap!important;padding:8px 9px!important;font-size:12px!important}
body[data-menu-position="top"] .sidebar-footer{flex:0 0 auto!important;margin:0!important;padding:4px 0!important;white-space:nowrap!important}
body[data-menu-position="top"] .sidebar-footer-text>span:first-child{display:none!important}
body[data-menu-position="top"] .main{width:100%!important;padding-top:20px!important}
@media(max-width:900px){body[data-menu-position="top"] .sidebar{position:static!important;flex-wrap:wrap!important}body[data-menu-position="top"] #nav{order:3;flex-basis:100%!important}body[data-menu-position="top"] .sidebar-footer{margin-left:auto!important}}

/* Brief atelier : matérialiser clairement le retour de la veille */
.brief-day-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#f4f8fc;border:1px solid #d7e5f3;border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:12px;color:#425466}
.brief-day-banner strong{font-size:13px;color:var(--text)}
@media(max-width:650px){.brief-day-banner{align-items:flex-start;flex-direction:column}}

/* Fournisseurs multi-contacts */
.supplier-contact-list{display:grid;gap:8px;margin-top:10px}.supplier-contact-item{border:1px solid var(--line);border-radius:9px;padding:9px;background:#f8fafc;font-size:12px}.supplier-contact-item strong{display:block;margin-bottom:3px}.supplier-contact-tags{display:flex;gap:6px;flex-wrap:wrap;color:var(--muted)}
.supplier-contacts-editor{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;margin-top:4px}.supplier-contact-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.supplier-contact-editor-grid .full{grid-column:1/-1}.supplier-contact-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.supplier-contact-row{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(120px,1fr) minmax(110px,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:8px;margin-bottom:7px;background:#fff;font-size:12px}
@media(max-width:760px){.supplier-contact-editor-grid,.supplier-contact-row{grid-template-columns:1fr}.supplier-contact-row .table-actions{justify-content:flex-start}}

/* Sous-équipements */
.equipment-parent-note{font-size:11px;color:var(--muted);margin-top:3px}

/* Cohenza alpha2 - arborescence équipement récursive */
.tree-equipment-child{margin-left:18px;position:relative}
.tree-equipment-child::before{content:"";position:absolute;left:-10px;top:0;bottom:0;border-left:1px solid var(--border,#d9e1e8)}
.tree-equipment-children{margin-top:4px}

/* Cohenza V0.1.1 Core — configurateur client */
.branding-logo-row{display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:center;margin-top:7px}
.branding-logo-preview{height:92px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:10px;overflow:hidden}
.branding-logo-preview img{max-width:100%;max-height:72px;object-fit:contain}
.branding-logo-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.branding-logo-actions input[type="file"]{width:100%;max-width:420px}
.core-scope-list{display:grid;gap:10px}.core-scope-item{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;gap:3px}.core-scope-item span{font-size:13px;color:var(--muted)}
@media(max-width:620px){.branding-logo-row{grid-template-columns:1fr}.branding-logo-preview{width:100%;max-width:220px}}

/* Cohenza V0.1.6 - Fiche fournisseurs vue + onglets */
.supplier-main-head{align-items:center}.supplier-code{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin-bottom:4px}.supplier-card-meta{display:flex;gap:8px 12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.supplier-primary-contact{border-top:1px solid var(--line);padding-top:9px;display:grid;gap:3px;font-size:12px}.supplier-primary-contact span{color:var(--muted);word-break:break-word}
.supplier-detail-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:16px}.supplier-detail-title h2{font-size:24px;margin:2px 0 3px}.supplier-detail-title p{margin:0;color:var(--muted);font-size:13px}.supplier-detail-actions{display:flex;gap:8px;align-items:center}.danger-text{color:var(--danger)!important;border-color:#efcaca!important}
.supplier-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.supplier-tab{border:1px solid var(--line);background:#fff;color:#53606d;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.supplier-tab.active{background:var(--nav);border-color:var(--nav);color:#fff}.supplier-tab-panel{display:none}.supplier-tab-panel.active{display:block}.supplier-sheet{max-width:none}.supplier-section-title{font-size:16px;margin:0 0 14px}.supplier-divider{height:1px;background:#edf0f3;margin:20px 0}.supplier-form-grid{gap:13px 16px}.supplier-save-notice{padding:12px 14px;border:1px dashed #c8d2dc;border-radius:10px;background:#f8fafc;color:var(--muted);font-size:13px}.supplier-contact-row.inactive{opacity:.58;background:#f7f8fa}.supplier-activity-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.supplier-activity-chips button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700;color:#53606d}.supplier-activity-chips button.active{background:var(--accent-soft);border-color:#b7d6fa;color:var(--accent)}
.supplier-history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.supplier-history-grid>section{border:1px solid var(--line);border-radius:11px;padding:13px;background:#fff}.supplier-history-grid h3{font-size:13px;margin:0 0 10px;display:flex;justify-content:space-between}.supplier-history-grid h3 span{display:inline-grid;place-items:center;min-width:23px;height:23px;border-radius:99px;background:#eef2f6;font-size:11px}.supplier-history-row{display:grid;gap:4px;padding:9px 0;border-top:1px solid #edf0f3;font-size:12px}.supplier-history-row:first-of-type{border-top:0}.supplier-history-row span{color:var(--muted);display:flex;align-items:center;gap:5px;flex-wrap:wrap}
@media(max-width:900px){.supplier-detail-top{grid-template-columns:1fr}.supplier-detail-actions{justify-content:flex-start}.supplier-history-grid{grid-template-columns:1fr}.supplier-tabs{overflow:auto;flex-wrap:nowrap}.supplier-tab{white-space:nowrap}}

/* V0.1.9 - actions commandes et gouvernance Achats */
.purchase-order-actionbar{position:sticky;top:-20px;z-index:3;display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 -20px 16px;padding:12px 20px;background:#fff;border-top:1px solid #eef1f4;border-bottom:1px solid var(--line);box-shadow:0 4px 10px rgba(20,37,55,.05)}
.purchase-order-row-actions{min-width:330px}.purchase-order-row-actions .small-btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
@media(max-width:780px){.purchase-order-actionbar{top:-15px;margin:0 -15px 14px;padding:10px 15px}.purchase-order-actionbar .ghost,.purchase-order-actionbar .primary{flex:1 1 calc(50% - 8px);text-align:center}.purchase-order-row-actions{min-width:0}}

/* V0.1.9 — Achats : droits, audit et commandes */
.purchase-permissions-table th,.purchase-permissions-table td{vertical-align:middle}
.purchase-permissions-table input[type="checkbox"]{width:18px;height:18px;accent-color:#10283b}
.audit-list{margin:8px 0 0 0;padding:0;list-style:none;display:grid;gap:6px}
.audit-list li{padding:8px 10px;border:1px solid #e0e5e9;border-radius:8px;background:#f8fafb;font-size:12px;line-height:1.35}
body[data-role="buyer"] #top-new-task{display:none!important}

/* V0.1.10 — commandes multi-articles */
.purchase-order-create-card{max-width:1220px;width:min(1220px,calc(100vw - 32px))}
.purchase-order-lines-section{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfcfd}
.purchase-order-lines-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.purchase-order-lines-head h3{margin:0 0 4px;font-size:16px}
.purchase-order-lines-head p{margin:0;color:var(--muted);font-size:12px}
.purchase-request-picker{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end;margin-bottom:12px}
.purchase-order-lines-wrap{background:#fff;border:1px solid #e7ebef;border-radius:10px}
.purchase-order-lines-table{min-width:1100px}
.purchase-order-lines-table th{white-space:nowrap}
.purchase-order-lines-table td{vertical-align:top}
.purchase-order-lines-table select,.purchase-order-lines-table input{min-width:90px;width:100%}
.purchase-order-lines-table td:nth-child(1){min-width:210px}.purchase-order-lines-table td:nth-child(2){min-width:210px}.purchase-order-lines-table td:nth-child(3){min-width:145px}
.purchase-order-lines-table td:nth-child(4){width:90px}.purchase-order-lines-table td:nth-child(5){width:80px}.purchase-order-lines-table td:nth-child(6){width:110px}.purchase-order-lines-table td:nth-child(7){width:90px}.purchase-order-lines-table td:nth-child(8){min-width:105px}
.purchase-line-total{font-weight:800;white-space:nowrap;padding-top:15px!important}
.purchase-order-draft-total{display:flex;justify-content:flex-end;gap:16px;align-items:center;padding-top:12px;font-size:14px}.purchase-order-draft-total strong{font-size:18px}
body[data-role="site_director"] #top-new-task{display:none!important}
@media(max-width:820px){.purchase-order-create-card{width:calc(100vw - 16px);max-width:none}.purchase-order-lines-head{flex-direction:column}.purchase-request-picker{grid-template-columns:1fr}.purchase-request-picker .ghost{width:100%}}

/* V0.1.18 - Contrôles réglementaires */
.regulatory-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.regulatory-tab{border:1px solid var(--line);background:#fff;color:#53606d;padding:9px 12px;border-radius:9px;font-weight:650;cursor:pointer}.regulatory-tab.active{background:var(--nav);border-color:var(--nav);color:#fff}.regulatory-tab-panel{display:none}.regulatory-tab-panel.active{display:block}.regulatory-scope-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin:0 0 10px;font-size:12px;font-weight:700;color:var(--muted)}.regulatory-scope-toolbar select{width:auto;min-width:190px}.regulatory-help{padding:13px 14px;border:1px solid #d9e5ec;border-radius:10px;background:#f7fafc;color:#4e5f6c;font-size:13px;line-height:1.5}.regulatory-due-card{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.regulatory-due-card:last-child{border-bottom:0}.regulatory-due-main strong{display:block;margin-bottom:3px}.regulatory-due-main span{font-size:12px;color:var(--muted)}.regulatory-detail-meta{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-top:12px}.regulatory-meta-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.regulatory-meta-item span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:4px}.regulatory-meta-item strong{font-size:13px}.regulatory-detail-actionsbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.regulatory-finding-card,.regulatory-action-card{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;background:#fff}.regulatory-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.regulatory-card-head strong{font-size:13px}.regulatory-card-body{font-size:13px;white-space:pre-wrap;margin:7px 0;color:#33424d}.regulatory-card-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.regulatory-card-foot select{width:auto;min-width:130px}.badge.En-retard{background:var(--danger-soft);color:var(--danger)}.badge.À-prévoir{background:#fff4cc;color:#8a6300}.badge.À-jour{background:var(--ok-soft);color:var(--ok)}.badge.Non-planifié,.badge.À-vérifier{background:#eef1f4;color:#52606d}.badge.Avec-réserves{background:#fff4cc;color:#8a6300}.badge.Conforme{background:var(--ok-soft);color:var(--ok)}.badge.Non-conforme,.badge.Infraction{background:var(--danger-soft);color:var(--danger)}
@media(max-width:760px){.regulatory-tabs{overflow:auto;flex-wrap:nowrap}.regulatory-tab{white-space:nowrap}.regulatory-detail-meta{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.regulatory-detail-meta{grid-template-columns:1fr}}

/* V0.1.19 - UX achats, travaux chariots avec coûts, équipe unifiée */
.purchase-settings-card{width:min(1320px,calc(100vw - 32px));max-width:none;max-height:94vh}
.purchase-settings-card .purchase-permissions-table{min-width:980px}
.purchase-settings-card .purchase-permissions-table th:first-child,
.purchase-settings-card .purchase-permissions-table td:first-child{position:sticky;left:0;background:#fff;z-index:1;box-shadow:1px 0 0 var(--line)}
#forklift-detail-modal{z-index:42}
#forklift-service-modal,#forklift-report-modal{z-index:60}
.forklift-work-card{width:min(820px,100%)}
.forklift-work-total{display:flex;flex-direction:column;justify-content:center;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.forklift-work-total span{font-size:11px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.forklift-work-total strong{font-size:18px}
.forklift-cost-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 18px}
.forklift-cost-kpis>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#f8fafc}.forklift-cost-kpis span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.forklift-cost-kpis strong{font-size:15px}
.forklift-history-cost{margin-top:5px;font-size:12px;color:#3f4c59}.forklift-history-cost span{color:var(--muted)}
.team-user-help,.user-technician-auto{border:1px solid #cfe0f5;background:#f5f9ff;border-radius:10px;padding:12px 14px;margin-bottom:12px;font-size:12px;line-height:1.5;color:#425466}.team-user-help strong,.user-technician-auto strong{color:#1f2b38}.user-technician-auto{display:flex;flex-direction:column;gap:3px;margin:0}.team-account-link{font-size:11px;color:#3970a8;margin-top:5px}.team-account-link.legacy{color:var(--muted)}
@media(max-width:760px){.purchase-settings-card{width:100%;max-height:94vh}.forklift-cost-kpis{grid-template-columns:1fr}.forklift-work-card{width:100%}}
.forklift-detail-card{width:min(1180px,calc(100vw - 32px))}.forklift-detail-kpis{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}

/* V0.1.20 - Demo hardening */
.purchase-settings-card{width:min(1460px,calc(100vw - 24px));max-width:none!important;max-height:95vh}
.purchase-settings-card .table-wrap{overflow-x:auto;scrollbar-gutter:stable}
.purchase-settings-card .purchase-permissions-table{min-width:1080px;width:100%}
#forklift-detail-modal.forklift-parent-modal{z-index:40!important}
#forklift-service-modal.forklift-child-modal,#forklift-report-modal{z-index:80!important}
#forklift-service-modal .modal-card,#forklift-report-modal .modal-card{position:relative;z-index:81}
.regulatory-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;margin:0 0 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.regulatory-admin-toolbar>div:first-child{display:flex;flex-direction:column;gap:4px}.regulatory-admin-toolbar>div:first-child span{font-size:12px;color:var(--muted)}
.regulatory-engine-status{padding:10px 12px;margin:0 0 12px;border-radius:9px;border:1px solid #d7e3ef;background:#f7fbff;color:#405a72;font-size:12px}
.regulatory-engine-status.ok{border-color:#cfe8d7;background:#f3fbf5;color:#2f6a3d}.regulatory-engine-status.warn{border-color:#f0ddad;background:#fffaf0;color:#7a5a17}
.regulatory-import-progress{padding:10px 12px;border-radius:9px;background:#f5f8fb;border:1px solid var(--line);font-size:12px;color:#506070}
@media(max-width:900px){.regulatory-admin-toolbar{align-items:stretch;flex-direction:column}.regulatory-admin-toolbar .toolbar{width:100%}.regulatory-admin-toolbar .toolbar button{flex:1}.purchase-settings-card{width:100%}}

/* V0.1.22 — Contrôles réglementaires : ergonomie du module réglementaire */
.regulatory-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.regulatory-kpi{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#f7f9fb;display:flex;flex-direction:column;gap:3px}
.regulatory-kpi strong{font-size:1.6rem;line-height:1;color:var(--text)}
.regulatory-kpi span{font-weight:700}.regulatory-kpi small{color:var(--muted)}
.regulatory-detail{margin-top:16px}.regulatory-detail-summary{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 16px}
.regulatory-detail-summary span{border:1px solid var(--line);border-radius:999px;padding:7px 11px;background:#f7f9fb}
.regulatory-recommendation{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line);color:var(--muted)}
.regulatory-comment{margin-top:6px;font-style:italic}.regulatory-lifted-row{opacity:.72;background:rgba(40,167,69,.05)}
.selected-row{outline:2px solid rgba(19,104,206,.22);outline-offset:-2px;background:rgba(19,104,206,.04)}
.regulatory-modal-card{max-width:900px}.regulatory-observation-table td:nth-child(4){min-width:360px}
@media(max-width:900px){.regulatory-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.regulatory-observation-table td:nth-child(4){min-width:280px}}
@media(max-width:560px){.regulatory-kpi-grid{grid-template-columns:1fr 1fr}.regulatory-kpi{padding:11px}.regulatory-kpi strong{font-size:1.35rem}.regulatory-detail-summary{gap:6px}.regulatory-detail-summary span{font-size:.85rem}}

.regulatory-pdf-modal-card{width:min(1240px,96vw);max-width:1240px;max-height:94vh;overflow:auto}
.regulatory-pdf-step{display:grid;gap:14px}
.regulatory-import-note,.regulatory-import-warning,.regulatory-import-status{border:1px solid var(--line);border-radius:12px;padding:11px 13px;display:grid;gap:4px;background:#f7f9fb;font-size:12px;line-height:1.45}
.regulatory-import-note strong{font-size:13px;color:var(--text)}
.regulatory-import-note span{color:var(--muted)}
.regulatory-import-warning{border-color:#e5c36b;background:#fff9e8;color:#6b5316}
.regulatory-import-status[data-kind="error"]{border-color:#dca6a6;background:#fff3f3;color:#8d2222}
.regulatory-pdf-metadata{padding:2px 0 4px}
.regulatory-preview-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
.regulatory-preview-toolbar>div{display:grid;gap:2px;min-width:190px}.regulatory-preview-toolbar>div span{font-size:11px;color:var(--muted)}
.regulatory-preview-toolbar>input{min-width:280px;flex:1}.regulatory-preview-select-all{display:flex!important;flex-direction:row!important;align-items:center;gap:7px;white-space:nowrap}.regulatory-preview-select-all input{width:auto}
.regulatory-pdf-table-wrap{max-height:48vh;border:1px solid var(--line);border-radius:10px;overflow:auto}
.regulatory-pdf-preview-table{min-width:1120px}.regulatory-pdf-preview-table th{position:sticky;top:0;z-index:2;background:#fff}
.regulatory-pdf-preview-table td{vertical-align:top}.regulatory-pdf-preview-table td:first-child{text-align:center;width:65px}.regulatory-pdf-preview-table td:nth-child(2){width:95px}.regulatory-pdf-preview-table td:nth-child(3){min-width:260px}.regulatory-pdf-preview-table td:nth-child(4),.regulatory-pdf-preview-table td:nth-child(5){min-width:300px}.regulatory-pdf-preview-table td:nth-child(6){width:125px}
.regulatory-pdf-preview-table input:not([type="checkbox"]),.regulatory-pdf-preview-table textarea,.regulatory-pdf-preview-table select{width:100%;font-size:11px;padding:7px 8px;min-height:34px;background:#fff}.regulatory-pdf-preview-table textarea{resize:vertical;line-height:1.35}.regulatory-pdf-preview-table .regulatory-mini-input{max-width:72px}.regulatory-preview-unselected{opacity:.45;background:rgba(100,110,120,.04)}
.regulatory-preview-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-top:4px}
@media(max-width:720px){.regulatory-pdf-modal-card{width:98vw;max-height:96vh}.regulatory-preview-toolbar{align-items:stretch;flex-direction:column}.regulatory-preview-toolbar>input{min-width:0;width:100%}.regulatory-preview-select-all{width:100%}.regulatory-preview-actions{flex-direction:column-reverse}.regulatory-preview-actions button{width:100%}.regulatory-pdf-table-wrap{max-height:52vh}}

.regulatory-module-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 10px;margin-bottom:8px;scrollbar-width:thin}
.regulatory-tab{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:9px 12px;font-weight:800;white-space:nowrap;cursor:pointer}
.regulatory-tab:hover{background:#f7f9fb}
.regulatory-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.regulatory-section{display:block}.regulatory-section.hidden{display:none!important}
.compact-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:8px}
.section-gap{margin-top:28px}
#regulatory-section-dashboard .grid-2{align-items:start}
#regulatory-section-dashboard .management-table td,#regulatory-section-plan .management-table td,#regulatory-section-correspondence .management-table td,#regulatory-section-actions .management-table td{vertical-align:top}
#regulatory-section-plan .management-table td:nth-child(2){min-width:320px}
#regulatory-section-correspondence .management-table td:nth-child(3),#regulatory-section-actions .management-table td:nth-child(3){min-width:320px}
#compliance-requirements-table td:nth-child(3){min-width:360px}
#compliance-correspondence-summary{margin-top:4px}
@media(max-width:900px){.regulatory-module-tabs{margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:4px}.compact-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.regulatory-tab{padding:8px 10px;font-size:12px}.compact-kpis{grid-template-columns:1fr 1fr}}

/* V0.1.25 - Achats / Budget / Import offre PDF */
.purchase-budget-panel{border:1px solid var(--line);border-radius:14px;padding:14px;margin:0 0 18px;background:#fbfcfd}
.purchase-budget-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.purchase-budget-head h3{margin:0 0 4px}.purchase-budget-head p{margin:0;color:var(--muted);font-size:12px}
.purchase-budget-cards{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:10px}.purchase-budget-card{background:#fff;border:1px solid #e5e9ed;border-radius:11px;padding:12px;min-height:86px;display:flex;flex-direction:column;gap:5px}.purchase-budget-card span{font-size:12px;color:var(--muted)}.purchase-budget-card strong{font-size:19px}.purchase-budget-card small{font-size:10px;color:var(--muted)}.purchase-budget-card.accent{border-width:2px}.purchase-budget-card.danger strong{color:var(--danger)}
.purchase-cash-forecast{margin-top:12px}.purchase-cash-head{display:flex;gap:10px;align-items:baseline;margin-bottom:8px}.purchase-cash-head span{font-size:11px;color:var(--muted)}.purchase-cash-months{display:flex;gap:8px;overflow:auto;padding-bottom:2px}.purchase-cash-months>div{min-width:125px;background:#fff;border:1px solid #e5e9ed;border-radius:9px;padding:9px 10px;display:flex;flex-direction:column;gap:3px}.purchase-cash-months span{font-size:11px;color:var(--muted)}.purchase-cash-months strong{font-size:14px}
.purchase-quote-import-card{max-width:1120px;width:min(1120px,calc(100vw - 32px))}.purchase-quote-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#f5f7f9;border:1px solid var(--line);border-radius:10px;padding:12px}.purchase-quote-section{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.purchase-quote-section h3{margin:0 0 4px}.purchase-quote-section>p{margin:0 0 12px;color:var(--muted);font-size:12px}.purchase-quote-line{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;background:#fff}.purchase-quote-line-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.purchase-quote-line .form-grid.compact{gap:8px}.purchase-quote-raw{margin-top:8px;padding-top:8px;border-top:1px dashed #e0e5e9}.purchase-quote-actions{justify-content:flex-end;position:sticky;bottom:-20px;background:#fff;padding:12px 0 0;margin-top:14px}.purchase-order-payment-schedule{display:flex;gap:8px;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfcfd}.purchase-order-payment-schedule strong{width:100%}.purchase-order-payment-schedule span{background:#fff;border:1px solid #e5e9ed;border-radius:8px;padding:7px 9px;font-size:12px}
@media(max-width:1100px){.purchase-budget-cards{grid-template-columns:repeat(3,minmax(140px,1fr))}}
@media(max-width:720px){.purchase-budget-head{flex-direction:column}.purchase-budget-cards{grid-template-columns:repeat(2,minmax(130px,1fr))}.purchase-quote-summary{grid-template-columns:1fr}.purchase-quote-import-card{width:calc(100vw - 16px);max-width:none}}

/* V0.1.25.3 - budget mensuel / projection 12 mois / outillage hors stock comptable */
.purchase-budget-rolling{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.purchase-rolling-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:10px}.purchase-rolling-head>div:first-child{display:grid;gap:3px}.purchase-rolling-head span{font-size:11px;color:var(--muted)}
.purchase-chart-legend{display:flex;gap:12px;flex-wrap:wrap}.purchase-chart-legend span{display:flex;align-items:center;gap:6px}.purchase-chart-legend .bar{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--accent)}.purchase-chart-legend .bar.cash{background:var(--ok)}
.purchase-rolling-chart{height:235px;display:grid;grid-template-columns:repeat(12,minmax(54px,1fr));gap:7px;align-items:end;padding:12px 4px 4px;border:1px solid var(--line);border-radius:11px;background:#fff;overflow-x:auto}
.purchase-month-column{height:100%;min-width:54px;display:grid;grid-template-rows:1fr auto auto auto;gap:3px;align-items:end;text-align:center}.purchase-month-bars{height:160px;display:flex;align-items:flex-end;justify-content:center;gap:4px;border-bottom:1px solid #dfe5eb}.purchase-bar{display:block;width:13px;min-height:2px;border-radius:4px 4px 0 0;background:var(--accent)}.purchase-bar.cash{background:var(--ok)}
.purchase-month-column strong{font-size:10px;text-transform:capitalize;white-space:nowrap}.purchase-month-column small{font-size:10px;color:var(--muted);white-space:nowrap}.purchase-month-column em{font-size:9px;color:var(--warn);font-style:normal;font-weight:700}
.purchase-budget-monthly{margin-top:10px}.purchase-monthly-details{border:1px solid var(--line);border-radius:10px;background:#fff}.purchase-monthly-details>summary{cursor:pointer;padding:10px 12px;font-weight:700;font-size:12px}.purchase-monthly-details .table-wrap{padding:0 10px 8px}.purchase-monthly-table{min-width:520px}.purchase-monthly-details p{padding:0 12px 10px;margin:0}
.purchase-order-detail-card{width:min(1480px,calc(100vw - 24px));max-width:none!important;max-height:96vh;padding:18px}.purchase-order-detail-card .purchase-order-actionbar{top:-18px;margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.purchase-order-detail-card .purchase-order-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px}.purchase-order-detail-card .purchase-order-main-table table{min-width:760px}.purchase-order-detail-card .purchase-order-bottom-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:14px;align-items:start}.purchase-order-trace details{border:1px solid var(--line);border-radius:9px;background:#fff;margin-bottom:8px}.purchase-order-trace summary{cursor:pointer;padding:9px 10px;font-weight:700;font-size:12px}.purchase-order-trace .audit-list{margin:0;padding:0 10px 10px;list-style:none}.purchase-order-receipts table{min-width:680px}
@media(max-width:1050px){.purchase-rolling-chart{grid-template-columns:repeat(12,62px)}.purchase-order-detail-card .purchase-order-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-order-detail-card .purchase-order-bottom-grid{grid-template-columns:1fr}}
@media(max-width:720px){.purchase-rolling-head{align-items:flex-start;flex-direction:column}.purchase-order-detail-card{width:100%;max-height:96vh;padding:14px}.purchase-order-detail-card .purchase-order-summary-grid{grid-template-columns:1fr}.purchase-order-detail-card .purchase-order-actionbar{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}}

.purchase-payment-edit-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.purchase-payment-edit-row .small-btn{padding:4px 8px;font-size:11px}
.purchase-line-kind-picker{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0}.purchase-line-kind-picker button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 12px;font-weight:700;cursor:pointer}.purchase-line-kind-picker button.active{border-color:#1f6ed4;background:#eef6ff;color:#1559ae}.purchase-line-kind-label{display:flex;flex-direction:column;gap:2px;min-width:160px}.purchase-line-kind-label span{font-size:11px;color:var(--muted)}.purchase-line-kind-label.equipment strong{color:#1559ae}.purchase-line-kind-label.service strong{color:#73510d}

/* V19: budget wallet and document review; legacy panels remain available. */
.purchase-navigation{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.purchase-navigation button{border:1px solid var(--border,#dde3eb);background:white;padding:10px 18px;border-radius:10px;cursor:pointer}.purchase-navigation button.active{background:#163d3b;color:white}.purchase-document-review{background:#f6faf9;border:1px solid #d5e5e0;padding:20px;border-radius:14px;margin-bottom:20px}.purchase-document-review h3{margin-top:0}.purchase-evidence{white-space:pre-wrap;max-height:260px;overflow:auto;font-size:12px}.purchase-review-warning,.negative{color:#b43b32}.purchase-wallet{padding:28px;border-radius:20px;background:#163d3b;color:white;grid-column:1/-1}.purchase-wallet strong{display:block;font-size:clamp(30px,4vw,48px);margin:10px 0}.purchase-wallet p{opacity:.85}.purchase-wallet-bar{height:10px;background:#365854;border-radius:10px;overflow:hidden}.purchase-wallet-bar i{display:block;height:100%;background:#e2bc72}.purchase-wallet-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;grid-column:1/-1}.purchase-wallet-metrics>div{padding:16px;background:white;border:1px solid #dce5e2;border-radius:12px}.purchase-wallet-metrics span,.purchase-wallet-metrics strong,.purchase-wallet-metrics small{display:block}.purchase-wallet-metrics strong{font-size:23px;margin:7px 0}.purchase-wallet-metrics small{color:#64756f}@media(max-width:760px){.purchase-wallet-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-document-review{padding:12px}.purchase-navigation button{flex:1}}

.purchase-wallet p{color:#e1eeeb;opacity:1}

/* V20: distinct document lines, preserving all existing inputs. */
.purchase-document-line-card{border:1px solid #cbd7e2;border-radius:14px;margin:24px 0;padding:0 20px 20px;background:#fff;box-shadow:0 2px 6px #132b4010;overflow:hidden}
.purchase-document-line-card:nth-of-type(even){background:#f7faff}
.purchase-document-line-card .purchase-quote-line-head{margin:0 -20px 20px;padding:16px 20px;background:#eaf1f7;display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-bottom:1px solid #d6e0e9}
.purchase-document-line-number{font-size:19px;color:#173e59;white-space:nowrap}
.purchase-document-line-card .purchase-category-picker{flex:1;min-width:220px;margin:0}
.purchase-document-line-card .purchase-category-picker label{margin:0}
.purchase-document-line-card .purchase-quote-raw{font-size:12px;color:#506271;background:#edf1f5;padding:12px;border-radius:8px;margin-top:16px;overflow-wrap:anywhere}
@media(max-width:900px){.purchase-document-line-card .purchase-quote-line-head{gap:12px}.purchase-document-line-card .purchase-category-picker{flex-basis:100%}}
@media(max-width:540px){.purchase-document-line-card{padding:0 12px 12px;margin:20px 0}.purchase-document-line-card .purchase-quote-line-head{margin:0 -12px 16px;padding:14px 12px}.purchase-document-line-card .form-grid{grid-template-columns:1fr}.purchase-document-line-card .purchase-category-picker{min-width:0}}

.purchase-period-control{font-size:12px;display:flex;flex-direction:column;gap:5px}.purchase-period-note{font-size:12px;max-width:100ch}.purchase-budget-head .toolbar{flex-wrap:wrap}
#view-regulatory .panel,#view-regulatory .grid-2>*{min-width:0;max-width:100%}
#view-regulatory .table-wrap{max-width:100%;overflow-x:auto}
#view-regulatory .toolbar{flex-wrap:wrap;min-width:0}
#view-regulatory .toolbar button{white-space:normal}
.regulatory-card-body,.regulatory-observation-table td{overflow-wrap:anywhere;white-space:pre-wrap}
#incident-equipment-ranking{overflow-wrap:anywhere}
.regulatory-action-card{border:1px solid #ccd9e3;border-radius:14px;margin:24px 0;padding:20px;background:#fff}.regulatory-action-card:nth-child(even){background:#f6f9fc}.regulatory-action-card header{display:flex;flex-wrap:wrap;align-items:center;gap:18px;background:#eaf1f7;padding:14px;border-radius:9px;margin:-6px -6px 16px}.regulatory-action-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.regulatory-action-card textarea{width:100%;min-height:60px}.regulatory-action-card label{display:flex;flex-direction:column;gap:7px}.regulatory-action-card header label,.regulatory-create-options label{display:flex;flex-direction:row;align-items:center;gap:7px}.regulatory-create-options{display:flex;flex-wrap:wrap;gap:20px;padding:14px;background:#eef4f8;border-radius:9px;margin-top:15px}.regulatory-ai-proposal{padding:14px;border-bottom:1px solid #d3dde5;overflow-wrap:anywhere}.regulatory-action-card small{color:#596977}.regulatory-action-card .meta{overflow-wrap:anywhere}@media(max-width:700px){.regulatory-action-card{padding:12px}.regulatory-action-card .form-grid{grid-template-columns:1fr}.regulatory-action-card header{align-items:flex-start;flex-direction:column}}
#purchase-quote-import-modal .purchase-quote-import-card{width:min(1120px,100%);min-width:0}#purchase-quote-import-modal .purchase-quote-actions{flex-wrap:wrap}#purchase-quote-import-modal .purchase-quote-actions button{white-space:normal}@media(max-width:540px){#purchase-quote-import-modal{padding:10px}#purchase-quote-import-modal .modal-card{padding:12px}.purchase-quote-actions button{flex:1 1 100%;min-height:40px}.purchase-quote-actions{position:static!important}}
.purchase-quote-summary{grid-template-columns:repeat(2,minmax(0,1fr));overflow-wrap:anywhere}.purchase-quote-summary>*{min-width:0}.purchase-ai-review .table-wrap{max-width:100%;overflow-x:auto}@media(max-width:540px){.purchase-quote-summary{grid-template-columns:1fr}#purchase-quote-new-supplier .form-grid{grid-template-columns:1fr}}
