: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}
.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}}


/* Personnalisation Monopanel v0.2.7 */
.monopanel-brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0 8px 22px}
.monopanel-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}
.monopanel-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){.monopanel-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 Monopanel 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}
.monopanel-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(4,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}
}
