:root{
  --bg:#f4f6f8; --panel:#ffffff; --ink:#1a1d21; --muted:#6b7280;
  --line:#e5e7eb; --line-soft:#eef1f4; --border:#e5e7eb;
  --brand:#e2001a; --brand-soft:#fdebed; --orange:#f39200;
  --good:#0a8f5b; --good-soft:#e7f6ef; --danger:#dc2626;
  --radius:11px;
  --shadow:0 1px 2px rgba(20,20,25,.05);
  --shadow-lg:0 1px 2px rgba(20,20,25,.05),0 8px 26px rgba(20,20,25,.07);
  --font:'IBM Plex Sans',system-ui,'Segoe UI',Roboto,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.num{font-family:var(--font);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}

/* ---- Boutons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;padding:9px 15px;border:1px solid transparent;border-radius:9px;background:var(--brand);color:#fff;font-weight:600;cursor:pointer;font-size:13px;font-family:var(--font);transition:filter .15s}
.btn:hover{filter:brightness(.94);text-decoration:none}
.btn.ghost{background:#fff;color:#3b4149;border-color:var(--line)}
.btn.ghost:hover{background:#f8fafc;filter:none}
.btn.danger{background:var(--danger)}
.btn.sm{padding:6px 12px;font-size:12.5px}
.btn.block{width:100%}

/* ================= Shell bureau — barre à deux niveaux ================= */
.app{min-height:100vh;display:flex;flex-direction:column}

/* Barre unique : logo + onglets + recherche + compte */
.brandbar{display:flex;align-items:stretch;gap:14px;padding:0 22px;height:82px;background:#fff;border-bottom:1px solid var(--line)}
.brandbar .logo{display:flex;align-items:center;height:100%;margin-right:20px}
.brandbar .logo img{height:56px;width:auto;display:block}
.brandbar .logo a{display:inline-flex;align-items:center}
.brandbar .sp{flex:1}
.brandbar .gs{align-self:center;display:flex;align-items:center;gap:8px;background:#f4f6f8;border:1px solid #e7e9ee;border-radius:9px;padding:0 12px;min-width:220px}
.brandbar .gs input{border:none;background:transparent;padding:9px 2px;font-size:13px;font-family:var(--font);width:100%;outline:none;color:var(--ink)}
.brandbar .who{align-self:center;display:flex;align-items:center;gap:12px;font-size:12.5px}
.brandbar .who .nm{color:#3b4149;font-weight:600;line-height:1.2}
.brandbar .who .rl{color:#9aa0a6;font-size:11.5px}
.brandbar .av{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--orange));color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}

/* Onglets modules (dans la barre) */
.tabs{display:flex;align-items:stretch;gap:2px;height:100%;flex-wrap:wrap}
.tabs > a,.tabs .menu > a{display:flex;align-items:center;gap:6px;padding:0 15px;height:100%;color:#61686f;font-size:15px;font-weight:500;text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;cursor:pointer}
.tabs > a:hover,.tabs .menu > a:hover{color:var(--ink);text-decoration:none}
.tabs > a.on,.tabs .menu > a.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
/* Pastille rouge en exposant (legacy notify-bubble) : devis à valider, missions à facturer. */
.tabs .bubble{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin:0 0 14px -2px;border-radius:9px;background:#e2001a;color:#fff;font-size:11px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
/* Menu déroulant */
.tabs .menu{position:relative}
.tabs .menu > a::after{content:'▾';font-size:10px;color:#9aa0a6;margin-left:1px}
.tabs .menu .drop{display:none;position:absolute;top:100%;left:0;min-width:210px;background:#fff;border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;box-shadow:0 10px 26px rgba(20,20,25,.12);padding:6px;z-index:40}
.tabs .menu:hover .drop{display:block}
.tabs .menu .drop a{display:block;padding:9px 12px;border-radius:7px;color:#4b5259;font-size:13px;font-weight:500;border:none;height:auto;text-decoration:none}
.tabs .menu .drop a:hover{background:#f4f6f8;color:var(--ink)}
.tabs .menu .drop a.on{color:var(--brand);font-weight:600;background:var(--brand-soft)}
.tabs .env{align-self:center;font-family:var(--mono);font-size:11px;color:#98a0a8;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 11px;white-space:nowrap}

/* Contenu — largeur maîtrisée et centrée (évite l'étirement sur grands écrans).
   .wide = pleine largeur (dashboard). */
.content{padding:22px 26px;width:100%;max-width:1400px;margin:0 auto}
.content.wide{max-width:none}
@media(max-width:900px){.content{padding:16px}}
@media(max-width:760px){.content{padding:12px}.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}}
.phead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.phead .crumb{font-size:12px;color:#9aa0a6;font-family:var(--mono);margin-bottom:3px}
.phead h1{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}
.phead h1 .cnt{font-size:14px;color:#9aa0a6;font-weight:500}

/* ---- Sous-onglets (navigation secondaire dans une section) ---- */
.subtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 18px}
.subtabs a{display:inline-flex;align-items:center;padding:9px 14px;color:#61686f;font-size:13.5px;font-weight:500;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.subtabs a:hover{color:var(--ink);text-decoration:none}
.subtabs a.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}

/* ---- Cartes ---- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card .card-body{padding:18px}
.grp-title{font-weight:600;margin:22px 0 10px;font-size:15px}
.sub{color:var(--muted);font-size:13px;margin:4px 0}

/* ---- Files d'attente (tableau de bord) : 3 colonnes remplissant la hauteur ---- */
.dash3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;height:calc(100vh - 186px);align-items:stretch}
.dash3 .dcol{display:flex;flex-direction:column;gap:16px;min-height:0}
.dash3 .dcol .queue{flex:1;min-height:0}
@media(max-width:1100px){.dash3{grid-template-columns:1fr;height:auto}.dash3 .dcol .queue{flex:none}.queue .qlist{max-height:60vh}}
.queues{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px}
.queue{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.queue .qhead{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line-soft);font-weight:600}
.queue .qhead .cnt{font-family:var(--mono);font-size:13px;font-weight:700;color:#fff;background:var(--brand);border-radius:999px;padding:2px 10px;min-width:26px;text-align:center}
.queue .qhead .cnt.zero{background:#cfd4da}
.queue .qlist{flex:1;min-height:0;overflow:auto}
.queue .qitem{display:block;padding:11px 14px;border-bottom:1px solid #f0f1f4;text-decoration:none;color:var(--ink)}
.queue .qitem:last-child{border-bottom:none}
.queue .qitem:hover{background:#fcfcfd;text-decoration:none}
.queue .qitem .qtop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.queue .qitem .qtop b{font-size:13.5px;color:#0275d8}
.queue .qitem .qtop .qid{font-family:var(--mono);color:#0275d8;font-size:12px;font-weight:600}
.queue .qitem .act{font-size:10.5px;font-weight:700;color:#fff;border-radius:5px;padding:3px 10px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}
.queue .qitem .act.facturer{background:var(--brand)}
.queue .qitem .act.deviser{background:var(--orange)}
.queue .qitem .qline{display:flex;gap:8px;font-size:12.5px;color:#6b7280;padding:1px 0;align-items:baseline}
.queue .qitem .qline .ic{width:16px;flex:none;text-align:center;opacity:.85}
.queue .qempty{padding:26px;text-align:center;color:var(--muted);font-size:13px}

/* ---- KPI (tableau de bord) ---- */
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.kpi .card .card-body{padding:15px 16px}
.kpi .l{font-size:11.5px;color:#8a9098;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.kpi .n{font-size:25px;font-weight:600;margin-top:7px;letter-spacing:-.01em}

/* ---- Tables ---- */
.tbl-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.tbl-scroll{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse}
table.tbl th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#8a929c;text-align:left;padding:11px 16px;font-weight:600;background:#fafbfc;border-bottom:2px solid #dfe3e9}
table.tbl td{padding:11px 16px;border-bottom:1px solid #e4e7ec;font-size:13.5px}
table.tbl tbody tr:last-child td{border-bottom:none}
table.tbl tbody tr.clickable{cursor:pointer}
table.tbl tbody tr:hover{background:#fcfcfd}
table.tbl td a{color:var(--ink);font-weight:500}
table.tbl td a:hover{color:var(--brand)}
table.tbl td .id{font-family:var(--mono);color:#a7abb1;font-size:12px}

/* ---- Barre d'outils / recherche ---- */
.tbar{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line-soft);background:#fff}
.tbar input[type=text],.tbar input:not([type]){flex:1;min-width:200px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-family:var(--font)}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.toolbar input[type=text],.toolbar input:not([type]){flex:1;min-width:220px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:var(--font)}

/* ---- Pagination simple ---- */
.pager{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-top:14px;font-size:13px;color:var(--muted)}
.pager a,.pager span.cur{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
.pager a:hover{background:#f8fafc;text-decoration:none}
.pager .disabled{opacity:.4;pointer-events:none}
.pager a.cur{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
/* En-têtes de tableau triables (listes façon DataTables) */
.tbl.datatable thead th a{color:inherit;text-decoration:none;cursor:pointer;white-space:nowrap}
.tbl.datatable thead th a:hover{color:var(--brand)}
/* Modale (création rapide par-dessus la page) */
.modal-overlay{position:fixed;inset:0;background:rgba(20,20,25,.45);display:flex;align-items:flex-start;justify-content:center;z-index:100;padding:48px 16px;overflow:auto}
.modal-overlay[hidden]{display:none}
.modal-card{background:#fff;border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.32);padding:26px 30px;width:100%;max-width:760px;position:relative}
.modal-x{position:absolute;top:14px;right:16px;width:28px;height:28px;border-radius:50%;border:none;background:#2b8cf0;color:#fff;cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center}
.modal-x:hover{background:#1f7ad6}

/* ---- Fiche (paires clé/valeur) ---- */
table.kv{width:100%;border-collapse:collapse}
table.kv th{text-align:left;width:200px;padding:9px 10px;color:var(--muted);font-weight:600;vertical-align:top}
table.kv td{padding:9px 10px}
.crumb{font-size:12px;color:#9aa0a6;font-family:var(--mono);margin-bottom:6px}

/* ---- Formulaires ---- */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;max-width:860px}
.form-grid .fld.full{grid-column:1/-1}
.form-grid.wide{max-width:none}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}
.form-actions{display:flex;gap:10px;align-items:center;padding:16px;border-top:1px solid var(--line-soft);flex-wrap:wrap}
.fld{margin-bottom:14px}
.fld label{display:block;font-weight:600;font-size:13px;margin-bottom:5px}
.fld input,.fld select,.fld textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:14px;background:#fff;font-family:var(--font)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(226,0,26,.12)}
.req{color:var(--danger)}

/* ---- Alertes / pills ---- */
.alert{padding:11px 14px;border-radius:9px;margin-bottom:16px;font-size:13px}
.alert.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert.ok{background:var(--good-soft);color:#065f46;border:1px solid #a7f3d0}
.pill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}
.pill.on,.pill.pep,.pill.ok{background:var(--good-soft);color:var(--good)}
.pill.syn{background:var(--brand-soft);color:var(--brand)}
.pill.info{background:#e8f1fd;color:#1a6fd4}
.pill.amber{background:#fbf1de;color:#b06d00}
.pill.off{background:#eef0f2;color:#6b7280}

/* Fiche document en 2 parties : infos/actions à gauche, document à droite (comme legacy) */
.doc-show{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;align-items:start}
.doc-show-doc{position:sticky;top:16px}
@media(max-width:1000px){.doc-show{grid-template-columns:1fr}.doc-show-doc{position:static}}

/* ================= Visionneur PDF (PDF.js) ================= */
.pdfv{background:#eef1f4;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;align-items:center;gap:16px;max-height:80vh;overflow:auto}
.pdfv .pdfv-page{width:100%;max-width:820px;height:auto;background:#fff;border-radius:3px;box-shadow:0 1px 3px rgba(20,20,25,.12),0 10px 28px rgba(20,20,25,.10)}
.pdfv .pdfv-msg{color:var(--muted);padding:28px;text-align:center}
.pdfv .pdfv-loading{color:var(--muted);padding:28px;text-align:center;font-size:13px}

/* ================= Login ================= */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#161d27,#1f2836)}
.auth-card{width:100%;max-width:390px;background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.4);overflow:hidden}
.auth-head{padding:30px 30px 6px;text-align:center}
.auth-head .logo{height:44px;width:auto}
.auth-head .sub{color:var(--muted);margin-top:12px}
.auth-body{padding:16px 30px 30px}

/* --- Menu Administration (burger + tiroir latéral) --- */
.burger{background:#fff;border:1px solid var(--line);border-radius:9px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;color:var(--ink);flex:none}
.burger:hover{background:#f4f6f8}
.burger.on{border-color:var(--brand);color:var(--brand)}
.admin-ov{position:fixed;inset:0;background:rgba(15,20,30,.35);opacity:0;pointer-events:none;transition:opacity .18s;z-index:80}
.admin-ov.open{opacity:1;pointer-events:auto}
.admin-drawer{position:fixed;top:0;right:-310px;width:290px;height:100vh;background:#fff;box-shadow:-8px 0 30px rgba(0,0,0,.14);z-index:81;transition:right .2s ease;display:flex;flex-direction:column}
.admin-drawer.open{right:0}
.ad-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line);font-size:15px}
.ad-head b{display:flex;align-items:center;gap:10px}
.ad-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted);padding:4px 6px}
.ad-close:hover{color:var(--ink)}
.ad-nav{padding:10px;overflow:auto}
.ad-nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:14px}
.ad-nav a i{width:18px;text-align:center;color:var(--muted)}
.ad-nav a:hover{background:#f4f6f8;text-decoration:none}
.ad-nav a.on{background:#fde8e6;color:var(--brand);font-weight:600}
.ad-nav a.on i{color:var(--brand)}
.ad-sep{height:1px;background:var(--line);margin:8px 4px}

/* ---- Classes communes sorties des pages (refonte visuelle, 15/09/2026) : mêmes valeurs que les anciens styles en ligne,
       restylées par ui2.css en nouvelle interface. ---- */
.brandbar .gs .gs-ic{display:none}
.brandbar .who .who-tenant{display:none}
.brandbar .logo-erp img{height:34px}
.phead-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cnt-pill{background:#c0392b;color:#fff;font-size:11px}
.list-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.list-tools .sp{flex:1}
.list-per{margin:0;font-size:13px;color:var(--muted)}
.list-per select{padding:5px 8px;border:1px solid var(--line);border-radius:7px;margin:0 4px;font-family:var(--font)}
.list-search{margin:0;min-width:280px;background:#f4f6f8;border:1px solid #e7e9ee;border-radius:9px;padding:0 12px;display:flex;align-items:center;position:relative}
.list-search .gs-ic{display:none}
.list-search input[type=text],.list-search input[type=search]{border:none;background:transparent;padding:8px 2px;font-size:13px;width:100%;outline:none;font-family:var(--font);color:var(--ink)}
.list-search .clear{color:var(--muted);text-decoration:none;padding-left:6px}
.list-filter{margin:0;display:flex;align-items:center;gap:6px;font-size:13px}
.list-filter > i{color:#0275d8}
.list-filter select{font-size:13px;padding:7px 8px;border:1px solid #e7e9ee;border-radius:9px;background:#f4f6f8;font-family:var(--font)}
.list-filter select.on{border-color:#0275d8;font-weight:600}
.flag{display:inline-block;width:22px;height:14px;border:1px solid #d5d9e0;border-radius:2px;vertical-align:middle}
.flag.fr{background:linear-gradient(90deg,#0055A4 33%,#fff 33% 66%,#EF4135 66%)}
.flag.nl{background:linear-gradient(180deg,#AE1C28 33%,#fff 33% 66%,#21468B 66%)}
.nowrap{white-space:nowrap}
.center{text-align:center}
.empty-row{padding:24px;text-align:center}
.pager.between{justify-content:space-between}
.pager .pages{display:flex;gap:4px;align-items:center}
.modal-actions{text-align:center;margin-top:16px}
.inline-fields{display:flex;gap:6px}
.inline-fields > input{flex:1}

/* ---- Tableau de bord (styles sortis de dashboard.blade.php / queue-card) ---- */
.phead.left{justify-content:flex-start}
.btn.good{background:#0a8f5b;border-color:#0a8f5b;color:#fff}
.dash-kpis{display:grid;grid-template-columns:repeat(var(--kpi-cols,4),1fr);gap:14px;margin-bottom:20px}
.dash-kpis .kpi{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(20,30,50,.04);transition:box-shadow .12s}
.dash-kpis .kpi:hover{box-shadow:0 3px 10px rgba(20,30,50,.09);text-decoration:none}
.dash-kpis .kpi-ico{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.dash-kpis .kpi-txt{display:flex;flex-direction:column;line-height:1.2}
.dash-kpis .kpi-txt b{font-size:24px;color:#111}
.dash-kpis .kpi-txt span{font-size:12.5px;color:var(--muted)}
@media (max-width:760px){.dash-kpis{grid-template-columns:1fr}}
.qtop{gap:8px}
.qbadges{display:inline-flex;align-items:center;gap:5px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.bon-b{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;line-height:1;padding:4px 7px;border-radius:7px;white-space:nowrap}
.bon-b.montant{background:#e3f6ea;color:#0a7a44}
.bon-b.attest{background:#fde8e6;color:#c0392b}
.bon-b.devis{background:#fdecc8;color:#8a5a1e}
.queue .qline .ic.cal{color:#2b6cb0}
.queue .qline .ic.cli{color:#8a5a1e}
.queue .qline .ic.site{color:#0a7a44}
.queue .qline .ic.tech{color:#c0562b}

/* ---- Fiche site (styles sortis de sites/show.blade.php, mêmes valeurs) ---- */
.content.site-w{max-width:1550px}
.site-head{align-items:center}
.site-title{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.site-back{color:#0275d8;font-size:20px}
.site-toggle{cursor:pointer;display:inline-flex;align-items:center;gap:8px;border:none;background:none;padding:0;font-weight:600;font-size:13.5px;font-family:inherit}
.site-toggle.on{color:#0a7a44}.site-toggle.on i{color:#0a8f5b}
.site-toggle.off,.site-toggle.off i{color:#c0392b}
.site-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.site-menu{position:relative}
.site-gear{list-style:none;cursor:pointer;min-height:40px;min-width:48px;color:#e08a1e}
.site-gear::-webkit-details-marker{display:none}
.site-menu-drop{position:absolute;z-index:20;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 26px rgba(20,20,25,.12);padding:8px;display:flex;flex-direction:column;gap:4px;min-width:220px}
.lnk-blue{color:#0275d8}
.lnk-danger{color:#e2001a}
.site-badge{padding:9px 14px;font-size:13px;border-radius:9px;gap:8px}
.site-badge.ok{background:#d7f5e3;color:#0a7a44}
.site-badge.due{background:#fde8e6;color:#c0392b}
.site-top{margin-bottom:18px}
.site-top.inactive{background:#fdeeee;border:2px solid #e0483a}
.site-top-body{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.site-inactive-banner{flex:1 1 100%;color:#c0392b;font-weight:700}
.site-info{flex:0 1 330px;min-width:270px;font-size:13.5px;display:flex;flex-direction:column;gap:8px}
.ico{color:#0275d8;width:22px}
.ico.sm{width:16px}
.site-co{border-left:3px solid #0275d8;padding:6px 0 6px 12px;margin-top:6px;line-height:1.6}
.site-co .co-name{color:#0275d8;font-weight:600}
.site-sv{flex:0 0 250px}
.site-sv-img{border-radius:10px;max-width:100%;display:block;border:1px solid var(--line)}
.site-msgs{flex:1.8;min-width:340px;display:flex;gap:16px;flex-wrap:wrap}
.site-msg{flex:1;min-width:230px;margin:0}
.site-msg-lbl{color:#0275d8;font-size:13.5px}
.site-msg-ta{width:100%;margin-top:6px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13px;resize:vertical;box-sizing:border-box}
.site-msg-save{margin-top:6px}
.site-contacts{max-width:calc(50% - 8px)}
.site-contacts > .tbl-wrap,.site-contacts .tbl-wrap{border:none;box-shadow:none;background:transparent;border-radius:0}
.site-contacts .modal-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.site-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 14px;align-items:center}
.st-btn{background:#2b6cb0;border-color:#2b6cb0;color:#fff;min-width:132px;height:36px;padding:0 14px;justify-content:center;font-size:13px;font-weight:600}
.st-btn:hover{filter:brightness(1.06)}
.st-btn.on{background:#0a8f5b;border-color:#0a8f5b}
.st-btn i{display:none}
.mat-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.mat-layout .tbl-wrap{border:none;box-shadow:none;background:transparent;border-radius:0}
.mat-layout table.tbl th{color:#1a1d21;background:transparent}
.mat-layout table.tbl td,.mat-layout table.tbl td.muted,.mat-layout .muted{color:#1a1d21}
.mat-layout table.tbl tbody tr:hover{background:#f2f5f8}
.mat-layout table.tbl tfoot td{border-bottom:none}
#matDetail{display:none;min-width:0}
.mat-layout.has-d #matDetail{display:block}
.mat-row.on-row{background:#e8f1fb}
@media(max-width:1100px){.mat-layout.has-d{grid-template-columns:1fr}}

/* ---- Fiche client (styles sortis de clients/show.blade.php, mêmes valeurs) ---- */
.content.site-w.client-w{max-width:1700px}
.site-back-lbl{font-size:12px;margin-left:6px;vertical-align:middle}
.client-toggle{cursor:pointer;display:inline-flex;align-items:center;gap:9px;border:2px solid #0a8f5b;border-radius:999px;background:#e3f6ea;color:#0a7a44;padding:6px 14px;font-weight:700;font-size:13.5px;font-family:inherit}
.client-toggle i{color:#0a8f5b}
.client-toggle.off{border-color:#c0392b;background:#fde8e6;color:#c0392b}
.client-toggle.off i{color:#c0392b}
.site-gear-full{list-style:none;cursor:pointer;background:#e08a1e;border-color:#e08a1e;color:#fff}
.site-gear-full::-webkit-details-marker{display:none}
.client-top-body{gap:22px}
.client-kv{flex:1;min-width:320px}
.kv-sep{display:none}
.client-msg{flex:1;min-width:300px}
.site-tabs .st-sp{flex:1}
.st-logs{height:36px}
dialog::backdrop{background:rgba(20,20,25,.45)}

/* ---- Éditeur de documents (styles sortis de doc-form / devis & factures from_mission, mêmes valeurs) ---- */
.doc-sec-title{font-weight:700;color:#0275d8;text-transform:uppercase;font-size:12.5px;letter-spacing:.04em;border-bottom:2px solid #0275d8;padding:0 0 6px}
.doc-sec-title.inset{padding:16px 0 6px;margin:0 16px}
.doc-sec-title.warn{color:var(--orange);border-bottom-color:var(--orange)}
.doc-hdr{padding:16px 16px 8px;font-size:12.5px;line-height:1.55;border-bottom:1px solid var(--border)}
.btn.blue{background:#0275d8;border-color:#0275d8;color:#fff}
.doc-head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;width:880px;max-width:100%}
.doc-head-actions .sp{flex:1}
.doc-close-btn{min-height:42px;min-width:52px}

/* ---- Listes (styles récurrents sortis des index) ---- */
.sp{flex:1}
.list-tools{gap:var(--g,12px);margin-bottom:var(--mb,12px)}
.list-select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-family:var(--font)}
.list-per-select{padding:5px 8px;border:1px solid var(--line);border-radius:7px;margin:0 2px;font-family:var(--font)}
.list-lbl{font-size:13px;color:var(--muted)}
.empty-row.sm{padding:16px}
.tenant-sel{padding:8px 10px;border:1px solid var(--line);border-radius:9px;font-size:13px;font-family:var(--font);background:#f4f6f8;max-width:190px}
.qhead-r{display:inline-flex;align-items:center;gap:10px}
.qmore{display:none}
.qico{display:none}

/* ---- Fiches site / client : compléments (ancienne interface : mêmes rendus qu'avant) ---- */
.site-back-txt,.site-gear-txt,.site-del-form,.ct-ico,.card-h{display:none}
.lbl-old{display:inline}
.small{font-size:11.5px}
.txt-ok{color:#0a7a44}
.txt-danger{color:#c0392b}
.pill.amber.sm{font-size:10px}
.pill.off.sm{background:#eef2f7;color:#41526b;font-size:10.5px}
.ct-head{display:flex;align-items:center;gap:10px;cursor:pointer}
.ct-head .sp{flex:1}
.site-info > div > .v{display:inline}
.queue .qitem .qtop .qmois{font-weight:400;color:var(--ink)}
.queue .qitem .qtop .qid{font-weight:700;font-size:13.5px}
.queue .qitem .qtop .qmois{font-weight:400 !important;font-size:13px}
.bce-ico{display:none}
.grp-title .grp-note{font-weight:400;font-size:.8em}
.grp-title .grp-note{font-size:12px !important;font-weight:400 !important}
.cs-head{display:flex;align-items:center;gap:10px}
.cs-head .sp{flex:1}
.cs-filter{font-size:13px;font-weight:400}
/* Numéro devant le nom dans les titres de fiche : plus petit, léger espace */
.phead h1 .h-num{font-size:.7em;font-weight:500;color:var(--muted);margin-right:8px;font-variant-numeric:tabular-nums}
/* Dièse devant le numéro du titre : plus petit, léger espace ; le numéro garde la taille du titre */
.phead h1 .h-hash{font-size:.6em;font-weight:500;color:var(--muted);margin-right:3px}
/* Onglet Maintenance : détail des équipements un peu plus large que la liste (icônes d actions dégagées de l ascenseur) */
.mat-layout{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)}
.mat-layout .tbl-scroll{overflow-y:auto;scrollbar-gutter:stable}

/* Menu Administration : titres de catégorie (affichés par la nouvelle interface seulement) */
.ad-cat{display:none}

/* Courrier : dossier ouvert en lecture seule (lecteur sur les fiches) — aucun formulaire d'action */
.cs-lecture form{display:none}

/* Courrier : fil du plus récent au plus ancien, réponse au-dessus (retour Antonio 16/09) */
.cs-fil{display:flex;flex-direction:column-reverse}
.cs-fil > .card{margin-bottom:0;margin-top:10px}
#cs-editor:empty::before{content:attr(data-placeholder);color:#9aa0a6}
#cs-editor[contenteditable=false]{background:#f4f6f8;color:#9aa0a6}

/* Courrier : messages repliés (seul le dernier ouvert) */
.cs-msg-h{cursor:pointer;user-select:none}
.cs-msg.cs-collapsed .card-body > :not(.cs-msg-h){display:none}
.cs-msg .cs-snip{display:none}
.cs-msg.cs-collapsed .cs-snip{display:inline-block;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;font-size:12px}
.cs-msg.cs-collapsed .cs-chev{transform:rotate(-90deg)}
.cs-msg .cs-chev{transition:transform .15s}
