:root{--bg:#f4f7fb;--surface:#fff;--surface-2:#f8fafc;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--primary:#2563eb;--primary-dark:#1d4ed8;--success:#059669;--warning:#d97706;--danger:#dc2626;--shadow:0 20px 45px rgba(15,23,42,.08);--radius:22px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:22px;padding:14px 24px;background:#0f172a;color:#fff;box-shadow:0 12px 28px rgba(15,23,42,.16)}.brand{display:flex;align-items:center;gap:12px;font-weight:900;white-space:nowrap}.brand small{display:block;color:#94a3b8;font-size:12px;font-weight:700}.brand-mark{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:14px;background:#fff;color:#0f172a;font-weight:950}.main-nav{display:flex;align-items:center;gap:4px;flex:1;overflow:auto}.main-nav a{padding:9px 11px;border-radius:12px;color:#cbd5e1;font-size:14px;font-weight:800}.main-nav a:hover,.main-nav a:focus{background:#1e293b;color:#fff}.top-actions{display:flex;gap:8px;align-items:center}.container{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:26px 0 46px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px;padding:28px;border-radius:28px;background:linear-gradient(135deg,#0f172a,#1e3a8a);color:#fff;box-shadow:var(--shadow)}.hero.compact{padding:22px}.hero h1{margin:0;font-size:clamp(28px,4vw,46px);letter-spacing:-.04em}.hero p{margin:8px 0 0;color:#cbd5e1}.eyebrow{margin:0 0 8px!important;color:#93c5fd!important;text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:950}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;background:var(--primary);color:#fff;padding:10px 15px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,.2)}.btn:hover,button:hover{background:var(--primary-dark)}.btn.secondary{background:#eef2ff;color:#1e40af;box-shadow:none}.btn.secondary:hover{background:#dbeafe}.btn.ghost{background:#1e293b;color:#e2e8f0;box-shadow:none}.btn.danger,.danger button{background:var(--danger);color:#fff}.btn.small{padding:7px 10px;border-radius:11px;font-size:13px}.btn.full{width:100%}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.narrow{max-width:680px;margin:36px auto}.metrics-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.metric span,.metric small{display:block;color:var(--muted);font-weight:800}.metric b{display:block;margin:8px 0;font-size:34px;letter-spacing:-.04em}.metric.warning{border-color:#fde68a;background:#fffbeb}.metric.danger{border-color:#fecaca;background:#fff1f2}.layout-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid{display:grid}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.title-row h2{margin:0}.title-row p{margin:4px 0 0;color:var(--muted)}.notice{padding:13px 15px;border-radius:16px;margin-bottom:14px;border:1px solid var(--line);background:#f8fafc;font-weight:800}.notice.success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.notice.warning,.notice.error{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.notice.error{background:#fff1f2;border-color:#fecaca;color:#991b1b}.alert{padding:14px;border-radius:16px;border-left:5px solid var(--line);background:var(--surface-2);margin:10px 0}.alert strong{display:block}.alert span,.alert p{display:block;margin:4px 0 0;color:var(--muted)}.alert.danger{border-left-color:var(--danger);background:#fff1f2}.alert.warning{border-left-color:var(--warning);background:#fffbeb}.empty-state{padding:22px;border:1px dashed var(--line);border-radius:18px;background:var(--surface-2);color:var(--muted);text-align:center;font-weight:800}.workload{margin:14px 0}.workload-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.avatar{display:inline-block;width:18px;height:18px;border-radius:8px;margin-right:8px;vertical-align:-3px}.bar{height:12px;background:#e2e8f0;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;border-radius:999px;background:var(--success)}.bar.warning i{background:var(--warning)}.bar.danger i{background:var(--danger)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.cards-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card-link,.stack-item{display:block;border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:15px;transition:.16s ease}.card-link:hover,.stack-item:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(15,23,42,.1)}.card-link strong,.stack-item b{display:block}.card-link span,.card-link em,.card-link small,.stack-item span{display:block;color:var(--muted);font-style:normal;margin-top:5px}.stack-list{display:grid;gap:10px}.danger-left{border-left:5px solid var(--danger)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:950;margin-top:9px}.badge.success{background:#dcfce7;color:#166534}.badge.info{background:#dbeafe;color:#1d4ed8}.badge.warning{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.badge.muted{background:#f1f5f9;color:#475569}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;align-items:end}.filters input,.filters select,.form-control,.login-form input{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px;outline:none}.filters label,.form-grid p,.compact-form p,.login-form label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:900}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid p:has(textarea),.form-actions{grid-column:1/-1}.form-grid textarea,.compact-form textarea{min-height:110px}.table-card{overflow:auto}.table-card table{width:100%;border-collapse:collapse;min-width:900px}.table-card th,.table-card td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}.table-card thead th{position:sticky;top:0;background:#f8fafc;color:#475569;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.table-card tr:hover td{background:#f8fafc}.planning-grid th:first-child,.planning-grid td:first-child{min-width:210px}.day-total{font-size:11px;color:var(--muted);font-weight:900;margin-bottom:6px}.task-pill{display:block;padding:10px;border-radius:14px;margin-bottom:8px;background:#eff6ff;border-left:4px solid var(--primary);font-size:13px}.task-pill.warning{background:#fffbeb;border-left-color:var(--warning)}.task-pill.danger{background:#fff1f2;border-left-color:var(--danger)}.task-pill.muted{background:#f8fafc;border-left-color:#94a3b8}.absence{padding:8px;border-radius:12px;background:#fee2e2;color:#991b1b;font-size:12px;font-weight:900;margin-bottom:8px}.free-slot{display:block;color:#94a3b8;border:1px dashed var(--line);border-radius:12px;padding:12px;text-align:center}.timeline{display:grid;gap:12px}.timeline-item{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:start;padding:15px;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:18px;background:#fff}.timeline-item time{font-weight:950;color:#1d4ed8}.timeline-item span{display:block;color:var(--muted);margin-top:4px}.timeline-item.warning{border-left-color:var(--warning)}.timeline-item.danger{border-left-color:var(--danger)}.detail-list{display:grid;grid-template-columns:160px 1fr;gap:10px;margin:0 0 18px}.detail-list dt{color:var(--muted);font-weight:900}.detail-list dd{margin:0}.compact-form{border:1px solid var(--line);background:var(--surface-2);border-radius:18px;padding:14px;margin-bottom:14px}.compact-list{padding-left:18px}.comment{border-top:1px solid var(--line);padding:14px 0}.comment small{display:block;color:var(--muted);margin-top:3px}.pagination{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:18px}.pagination a,.pagination span{padding:8px 11px;border-radius:12px;background:#fff;border:1px solid var(--line)}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#1d4ed8,#0f172a 48%,#020617)}.login-shell{width:min(430px,calc(100% - 32px))}.login-card{background:#fff;border-radius:28px;padding:30px;box-shadow:0 35px 80px rgba(0,0,0,.3)}.login-card h1{font-size:36px;margin:24px 0 4px}.login-card p{color:var(--muted)}.login-brand{color:#0f172a}.login-form{display:grid;gap:14px;margin-top:20px}@media (max-width:1100px){.topbar{align-items:flex-start;flex-wrap:wrap}.main-nav{order:3;width:100%}.metrics-grid{grid-template-columns:repeat(3,1fr)}.layout-2{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}.timeline-item{grid-template-columns:1fr}}@media (max-width:640px){.container{width:min(100% - 20px,1500px);padding-top:14px}.metrics-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.hero{padding:20px}.main-nav a{font-size:13px}.topbar{padding:12px}.metric b{font-size:28px}}
.metrics-grid-wide{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.text-danger{color:var(--danger)!important}.table-card.flat{box-shadow:none;border:0;padding:0;margin:0}.table-card.flat table{min-width:620px}.compact-form select.form-control{margin-bottom:12px}.metric b{word-break:break-word}.form-grid input[type="checkbox"],.compact-form input[type="checkbox"]{width:auto;justify-self:start}.form-grid p:has(input[type="checkbox"]),.compact-form p:has(input[type="checkbox"]){display:flex;align-items:center;gap:10px}.form-grid .helptext,.compact-form .helptext{display:block;color:var(--muted);font-size:12px;font-weight:700}.form-grid ul.errorlist,.compact-form ul.errorlist{color:var(--danger);font-weight:900;margin:0;padding-left:18px}.topbar .main-nav a[href*="finances"],.topbar .main-nav a[href*="frais"]{font-weight:950}
.compact-inline{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.compact-inline .form-control{width:auto;min-width:110px;padding:6px 8px;border-radius:10px}.mini-input{width:48px!important;border:1px solid var(--line);border-radius:10px;padding:6px 7px}.small-select{max-width:160px}.danger-left{border-left:5px solid var(--danger)!important}.topbar .main-nav a[href*="materiel"],.topbar .main-nav a[href*="locations"],.topbar .main-nav a[href*="exploitation"]{font-weight:950}.metric.warning b,.metric.danger b{line-height:1.05}

/* V6 - Navigation latérale et regroupement métier */
body{background:#eef3f9}.app-layout{min-height:100vh;display:grid;grid-template-columns:292px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:14px;background:#0b1220;color:#dbe7f5;border-right:1px solid rgba(255,255,255,.08);box-shadow:18px 0 45px rgba(15,23,42,.12);overflow:auto}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 8px}.sidebar .brand{color:#fff}.sidebar .brand-mark{background:#2563eb;color:#fff}.sidebar-close{display:none;color:#cbd5e1;font-size:30px;line-height:1;cursor:pointer}.sidebar-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px}.quick-create{display:flex;align-items:center;justify-content:center;border-radius:14px;background:#2563eb;color:#fff;padding:10px 8px;font-weight:950;font-size:13px}.quick-create.muted{background:#1e293b;color:#dbe7f5}.side-nav{display:grid;gap:8px;padding:0 12px 18px}.nav-group{border:1px solid rgba(148,163,184,.16);border-radius:18px;background:rgba(15,23,42,.58);overflow:hidden}.nav-group[open]{background:rgba(15,23,42,.88)}.nav-group summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;color:#e2e8f0;font-weight:950;cursor:pointer;letter-spacing:.01em}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary::after{content:"›";font-size:20px;color:#94a3b8;transition:transform .18s ease}.nav-group[open] summary::after{transform:rotate(90deg)}.nav-group a{display:flex;align-items:center;gap:8px;margin:0 8px 7px;padding:9px 11px;border-radius:12px;color:#b8c5d6;font-size:14px;font-weight:850}.nav-group a:hover{background:#172033;color:#fff}.nav-group a.active{background:#eaf2ff;color:#123b7a;box-shadow:0 10px 22px rgba(37,99,235,.16)}.nav-group-muted{opacity:.9}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:14px 16px 18px;display:grid;gap:8px}.sidebar-foot a,.link-button{display:inline-flex;width:100%;justify-content:flex-start;border:0;background:transparent!important;color:#cbd5e1!important;padding:8px 0;font-weight:900;box-shadow:none!important}.link-button:hover,.sidebar-foot a:hover{color:#fff!important}.content-shell{min-width:0}.app-header{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.app-header h1{margin:0;font-size:22px;letter-spacing:-.03em}.app-context{margin:0 0 3px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:950}.header-actions{display:flex;align-items:center;gap:8px}.menu-button{display:none;width:42px;height:42px;border-radius:14px;background:#0f172a;color:#fff;align-items:center;justify-content:center;font-size:22px;font-weight:950;cursor:pointer}.sidebar-toggle{position:absolute;opacity:0;pointer-events:none}.sidebar-backdrop{display:none}.content-shell .container{width:min(1500px,calc(100% - 40px));padding-top:22px}.content-shell .hero{margin-top:0}.content-shell .hero h1{font-size:clamp(25px,3vw,38px)}.topbar{display:none}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.layout-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.table-card table{min-width:860px}@media (max-width:1180px){.app-layout{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;z-index:50;width:min(88vw,310px);transform:translateX(-105%);transition:transform .2s ease}.sidebar-toggle:checked~.app-layout .sidebar{transform:translateX(0)}.sidebar-toggle:checked~.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:40}.sidebar-close,.menu-button{display:flex}.app-header{justify-content:flex-start}.header-actions{margin-left:auto}.content-shell .container{width:min(100% - 24px,1500px)}}@media (max-width:720px){.app-header{padding:12px;align-items:center}.app-header h1{font-size:18px}.app-context{display:none}.header-actions{display:none}.content-shell .container{width:min(100% - 18px,1500px);padding-top:14px}.sidebar{width:min(92vw,330px)}.sidebar-head{padding-top:14px}.layout-2{grid-template-columns:1fr}.metrics-grid{grid-template-columns:1fr 1fr}.hero .actions{width:100%}.hero .btn{flex:1}.table-card table{min-width:760px}}

/* V7 - Terrain mobile, QR et signatures */
.scan-panel{border-left:6px solid var(--primary)}.scan-form{display:grid;grid-template-columns:2fr 1fr .7fr 1fr 1.1fr 2fr auto auto;gap:12px;align-items:end}.scan-form label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:900}.scan-form .wide{min-width:180px}.scan-video{width:100%;max-height:360px;margin-top:14px;border-radius:18px;background:#020617}.muted{color:var(--muted);font-size:13px}.signature-canvas{width:100%;height:180px;border:2px dashed var(--line);border-radius:18px;background:#fff;touch-action:none;margin:12px 0}.label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:40px}.qr-label{break-inside:avoid;display:grid;grid-template-columns:86px 1fr;gap:12px;align-items:center;padding:12px;border:1px solid #111827;border-radius:12px;background:#fff}.qr-label img{width:82px;height:82px}.qr-label strong{display:block;font-size:18px}.qr-label span{display:block;font-weight:900}.qr-label small{display:block;color:var(--muted);margin-top:4px}.empty{padding:18px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);font-weight:800;background:var(--surface-2)}.btn.danger,button.danger{background:var(--danger)}@media (max-width:1100px){.scan-form{grid-template-columns:1fr 1fr}.scan-form .wide{grid-column:1/-1}.scan-form button{width:100%}}@media (max-width:640px){.scan-form{grid-template-columns:1fr}.label-grid{grid-template-columns:1fr}.qr-label{grid-template-columns:74px 1fr}.qr-label img{width:70px;height:70px}.timeline-item{grid-template-columns:1fr}.compact-inline{display:grid}.compact-inline .form-control{width:100%}}@media print{.no-print,.sidebar,.app-header,.sidebar-backdrop{display:none!important}.app-layout{display:block}.content-shell .container{width:100%;padding:0}.label-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.qr-label{page-break-inside:avoid;border:1px solid #000;border-radius:0}.qr-label img{width:78px;height:78px}body{background:#fff}}

.company-logo-preview{display:block;max-width:260px;max-height:120px;object-fit:contain;margin:0 0 18px;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fff}


/* V10 - Facturation, catalogue et portail client */
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.catalog-card{display:flex;flex-direction:column;gap:10px}.catalog-card img{width:100%;height:170px;object-fit:cover;border-radius:18px;background:var(--surface-2);border:1px solid var(--line)}.catalog-card h2{margin:0}.catalog-card p{margin:0;color:var(--muted)}.catalog-card .actions{margin-top:auto}.portal-docs{display:flex;gap:10px;flex-wrap:wrap}.metric.success{border-color:rgba(5,150,105,.25)}.metric.warning{border-color:rgba(217,119,6,.25)}


/* V14.1 - UX RH et lisibilité générale */
.page-hero.clean-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 22px;padding:24px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,#ffffff,#eef6ff);box-shadow:var(--shadow)}
.page-hero h1{margin:0;font-size:clamp(26px,3vw,42px);letter-spacing:-.045em}.page-hero p{margin:8px 0 0;color:var(--muted)}.action-bar{justify-content:flex-end}.dashboard-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0 0 18px}.dashboard-kpis article{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.dashboard-kpis span,.dashboard-kpis small{display:block;color:var(--muted);font-weight:850}.dashboard-kpis strong{display:block;margin:8px 0 4px;font-size:32px;line-height:1;letter-spacing:-.045em}.dashboard-kpis article.warning{background:#fff7ed;border-color:#fed7aa}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:18px}.modern-panel{padding:0;overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);background:#fff}.section-heading h2{margin:0;font-size:21px;letter-spacing:-.03em}.section-heading p{margin:4px 0 0;color:var(--muted);font-weight:750}.modern-table{box-shadow:none;border:0;border-radius:0}.modern-table table{min-width:680px}.modern-table th{background:#f8fafc!important}.modern-table td{background:#fff}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#eef2ff;color:#1e40af;font-size:12px;font-weight:950}.empty-card{display:grid;gap:8px;justify-items:start;padding:22px;border:1px dashed var(--line);border-radius:18px;background:#f8fafc;color:var(--text)}.empty-card span{color:var(--muted);font-weight:750}.empty-card.compact{padding:18px}.quick-links-panel{margin-top:18px}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px 20px}.quick-grid a{display:block;border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff;transition:.16s ease}.quick-grid a:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(15,23,42,.08)}.quick-grid strong{display:block}.quick-grid span{display:block;margin-top:5px;color:var(--muted);font-size:13px;font-weight:750}.sidebar{width:292px}.nav-group a.active{outline:1px solid rgba(37,99,235,.12)}@media (max-width:1180px){.dashboard-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-columns{grid-template-columns:1fr}.page-hero.clean-hero{align-items:flex-start;flex-direction:column}.action-bar{justify-content:flex-start}.quick-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){.dashboard-kpis{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr}.page-hero.clean-hero{padding:18px}.dashboard-kpis strong{font-size:27px}}


/* V15 - Comptabilité */
.dashboard-kpis article.danger{background:#fff1f2;border-color:#fecaca}.accounting-money{font-variant-numeric:tabular-nums}.modern-table td strong{font-variant-numeric:tabular-nums}.quick-grid a[href*="comptabilite"]{border-color:#bfdbfe}

/* V16 - E-catalogue avance */
.catalog-hero-v16{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:0 0 18px;padding:28px;border-radius:30px;background:linear-gradient(135deg,#0f172a,#1d4ed8 58%,#2563eb);color:#fff;box-shadow:var(--shadow)}
.catalog-hero-v16 h1{margin:0;font-size:clamp(30px,4vw,52px);letter-spacing:-.055em}.catalog-hero-v16 p{margin:8px 0 0;color:#dbeafe;max-width:760px}.catalog-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.catalog-search-v16{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.catalog-search-v16 label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:900}.catalog-search-v16 input,.catalog-search-v16 select{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px}.catalog-check{display:flex!important;align-items:center;gap:8px;color:var(--text)!important}.catalog-check input{width:auto}.catalog-grid-v16{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.catalog-card-v16{position:relative;overflow:hidden}.catalog-placeholder{display:grid;place-items:center;height:170px;border-radius:18px;background:linear-gradient(135deg,#e0ecff,#f8fafc);border:1px solid var(--line);font-weight:950;color:#1d4ed8}.catalog-meta-v16{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.catalog-meta-v16 strong{color:var(--text)}.availability-pill{display:inline-flex;width:max-content;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:950}.availability-pill.ok,.status-pill.ok{background:#dcfce7;color:#166534}.availability-pill.ko,.status-pill.warn{background:#fef3c7;color:#92400e}.catalog-card-actions{display:grid;grid-template-columns:74px 1fr 1fr;gap:8px;margin-top:auto}.catalog-card-actions .qty,.table-card .qty{min-width:64px}.catalog-detail-photo{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:22px;border:1px solid var(--line);margin-bottom:18px}.catalog-suggestions-v16 .section-heading.clean{padding:0 0 14px;border-bottom:0}.quick-grid.compact{padding:0;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.quick-grid em{display:inline-flex;margin-top:10px;font-style:normal}.form-grid h2{grid-column:1/-1;margin:8px 0 0}.stack-item span{font-weight:750}@media (max-width:1100px){.catalog-search-v16{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-hero-v16{align-items:flex-start;flex-direction:column}}@media (max-width:620px){.catalog-search-v16{grid-template-columns:1fr}.catalog-card-actions{grid-template-columns:1fr}.catalog-hero-v16{padding:20px}.catalog-hero-actions .btn{width:100%}}


/* V17 - Connecteurs, API et centre d'import */
.integrations-hero{background:linear-gradient(135deg,#fff,#eff6ff 55%,#eef2ff)}
.integrations-grid{grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr)}
.integration-links a{overflow:hidden}.integration-links span{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-grid{padding:0;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:18px}.import-grid a{background:#fff;box-shadow:var(--shadow)}
@media (max-width:1180px){.integrations-grid{grid-template-columns:1fr}}

/* V18.1 - saisie rapide devis */
.inline-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.muted { color: var(--muted, #64748b); font-size: 0.9rem; }
.mt-2 { margin-top: 1rem; }
datalist option { font-size: 0.95rem; }
@media (max-width: 760px) { .inline-fields { grid-template-columns: 1fr; } }

/* V18.2 - devis accelere, autocomplete et ajout multi-lignes */
.quick-quote-panel{position:relative}.quote-material-zone{align-items:start}.autocomplete-panel{position:relative;z-index:5;display:grid;gap:6px;margin:-6px 0 12px;padding:8px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.14);max-height:360px;overflow:auto}.autocomplete-row{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:14px;background:#fff;color:var(--text);box-shadow:none;text-align:left}.autocomplete-row:hover,.autocomplete-row.active{background:#eff6ff;border-color:#bfdbfe;color:#0f172a}.autocomplete-row strong{font-variant-numeric:tabular-nums}.autocomplete-row span{font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-row small{grid-column:2;color:var(--muted);font-size:12px;font-weight:750}.selected-equipment{margin:0 0 12px;padding:12px;border:1px solid #bfdbfe;border-radius:16px;background:#eff6ff;color:#1e3a8a}.selected-equipment small{color:#1d4ed8}.bulk-add-box textarea.monospace{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:13px;min-height:170px}.quick-quote-panel summary{cursor:pointer;font-weight:950;color:#1e40af}.quote-material-zone .table-card td strong{font-variant-numeric:tabular-nums}@media (max-width:760px){.autocomplete-row{grid-template-columns:1fr}.autocomplete-row small{grid-column:1}.quote-material-zone{grid-template-columns:1fr}}


/* V18.3 - favoris, kits rapides et équivalents devis */
.quote-smart-zone{align-items:start}.smart-panel .title-row{margin-bottom:12px}.quick-pills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.quick-pills-grid.compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:10px}.quick-pill-form{margin:0}.quick-pill{display:grid;width:100%;gap:4px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--text);box-shadow:none;text-align:left}.quick-pill:hover,.quick-pill:focus{background:#eff6ff;border-color:#bfdbfe;color:#0f172a;transform:translateY(-1px)}.quick-pill strong{font-variant-numeric:tabular-nums}.quick-pill span{font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-pill small{color:var(--muted);font-size:12px;font-weight:750}.quick-pill.alt{border-color:#bbf7d0;background:#f0fdf4}.kit-fast-row{display:grid;grid-template-columns:minmax(0,1fr) 74px 74px auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff}.kit-fast-row span{display:block;color:var(--muted);font-size:13px;font-weight:750;margin-top:3px}.alternative-block{padding:14px;border:1px solid var(--line);border-radius:18px;background:#f8fafc}.alternative-block>strong{display:block;margin-bottom:6px}.quote-material-zone .title-row .badge{background:#dbeafe;color:#1e40af}@media (max-width:820px){.kit-fast-row{grid-template-columns:1fr 1fr}.kit-fast-row div{grid-column:1/-1}.kit-fast-row button{grid-column:1/-1}.quick-pills-grid{grid-template-columns:1fr}}

/* V18.5 - CRM client autocomplete */
.crm-client-autocomplete {
  margin: 0 0 0.75rem 0;
  position: relative;
}
.crm-client-autocomplete label {
  display: block;
  font-weight: 700;
  margin-bottom: 0.3rem;
}
.crm-client-results {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 0.35rem);
  z-index: 50;
  max-height: 360px;
  overflow: auto;
  background: #fff;
  border: 1px solid rgba(15,23,42,.14);
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(15,23,42,.16);
  padding: .35rem;
}
.crm-client-results .autocomplete-row {
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  border-radius: 10px;
  padding: .65rem .75rem;
  display: grid;
  gap: .15rem;
  cursor: pointer;
}
.crm-client-results .autocomplete-row:hover,
.crm-client-results .autocomplete-row.active {
  background: #eef4ff;
}
.crm-client-results .autocomplete-row strong {
  color: #0f172a;
}
.crm-client-results .autocomplete-row span,
.crm-client-results .autocomplete-row small {
  color: #64748b;
}

/* V18.6 - CRM doublons / fusion clients */
.duplicate-group .highlight-row {
  background: rgba(37, 99, 235, 0.06);
}
.duplicate-group table td {
  vertical-align: middle;
}
.duplicate-group .actions-cell form {
  margin: 0;
}


/* V18.7 - CRM 360 */
.client-360-grid .detail-list dt { color: #64748b; }
.client-360-grid .detail-list dd { font-weight: 700; }
.warning-soft { border-color: rgba(245, 158, 11, 0.35); background: rgba(245, 158, 11, 0.06); }
.badge-row { display: flex; flex-wrap: wrap; gap: .45rem; }
.timeline-list { display: grid; gap: .6rem; }
.timeline-item { border-left: 3px solid rgba(37, 99, 235, .45); }
.stack-list.compact { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .6rem; }

/* V18.9 - Centre d'actions prioritaires */
.action-list { display: grid; gap: .75rem; }
.action-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .95rem 1rem; border: 1px solid rgba(148, 163, 184, .32); border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15, 23, 42, .04); }
.action-card h3 { margin: .35rem 0 .2rem; font-size: 1rem; }
.action-card p { margin: 0; color: var(--muted, #64748b); }
.action-side { display: grid; justify-items: end; gap: .25rem; min-width: 130px; }
.action-side small { color: var(--muted, #64748b); }
.action-card.priority-high { border-left: 5px solid #ef4444; }
.action-card.priority-medium { border-left: 5px solid #f59e0b; }
.action-card.priority-low { border-left: 5px solid #3b82f6; }
.badge.warning { background: #fef3c7; color: #92400e; }
.badge.info { background: #dbeafe; color: #1d4ed8; }
.badge.muted { background: #f1f5f9; color: #475569; }
@media (max-width: 780px) { .action-card { grid-template-columns: 1fr; } .action-side { justify-items: start; } }

/* V18.4.1 consolidé - UX devis : lignes plus lisibles, actions visibles */
.quote-material-zone,
.quote-smart-zone { align-items: start; }
.quote-material-zone .panel,
.quote-smart-zone .panel,
.quick-quote-panel { min-width: 0; }
.quote-material-zone .table-card,
.quote-smart-zone .table-card,
.panel .table-card { overflow-x: auto; max-width: 100%; }
.quote-material-zone table,
.quote-smart-zone table { width: 100%; border-collapse: separate; border-spacing: 0; }
.quote-material-zone table th,
.quote-material-zone table td,
.quote-smart-zone table th,
.quote-smart-zone table td { padding: 0.5rem 0.6rem; vertical-align: middle; white-space: normal; }
.quote-material-zone table th:first-child,
.quote-material-zone table td:first-child,
.quote-smart-zone table th:first-child,
.quote-smart-zone table td:first-child { min-width: 260px; max-width: 460px; }
.quote-material-zone table th:last-child,
.quote-material-zone table td:last-child,
.quote-smart-zone table th:last-child,
.quote-smart-zone table td:last-child { position: sticky; right: 0; min-width: 118px; text-align: right; background: var(--panel-bg, #fff); z-index: 4; box-shadow: -10px 0 16px rgba(15,23,42,.08); }
.quote-material-zone table th:last-child,
.quote-smart-zone table th:last-child { z-index: 5; }
.quote-material-zone .btn.small,
.quote-smart-zone .btn.small,
.quote-material-zone button.btn.small,
.quote-smart-zone button.btn.small { padding: .34rem .55rem; font-size: .82rem; white-space: nowrap; }
.quote-material-zone .btn.danger,
.quote-smart-zone .btn.danger { min-width: 88px; }
.quick-quote-panel textarea,
.quick-quote-panel input,
.quick-quote-panel select { max-width: 100%; }
@media (max-width: 1100px) { .quote-material-zone, .quote-smart-zone { display: block; } .quote-material-zone > *, .quote-smart-zone > * { margin-bottom: 1rem; } }
@media (max-width: 760px) { .quote-material-zone table, .quote-smart-zone table { font-size: .86rem; } .quote-material-zone table th, .quote-material-zone table td, .quote-smart-zone table th, .quote-smart-zone table td { padding: .42rem .48rem; } .quote-material-zone table th:first-child, .quote-material-zone table td:first-child, .quote-smart-zone table th:first-child, .quote-smart-zone table td:first-child { min-width: 220px; } }


/* V19 - Notifications */
.notification-board .action-card small { color: var(--muted, #64748b); }
.notification-board .action-side { min-width: 170px; }
textarea.monospace, .monospace { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }


.module-toggle-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;padding:18px 20px}.module-toggle-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff;cursor:pointer;transition:.16s ease}.module-toggle-card:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(15,23,42,.07)}.module-toggle-card input{margin-top:4px;width:20px;height:20px}.module-toggle-card.is-disabled{opacity:.72;background:#f8fafc}.module-toggle-card.is-core{border-style:dashed}.module-toggle-content{display:grid;gap:7px}.module-toggle-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.module-toggle-title em{font-style:normal;border-radius:999px;padding:4px 8px;background:#eef2ff;color:#1e40af;font-size:12px;font-weight:950}.module-toggle-card.is-disabled .module-toggle-title em{background:#fee2e2;color:#991b1b}.module-toggle-content small{color:var(--muted);font-weight:750}.module-toggle-content code{width:max-content;border-radius:999px;padding:4px 8px;background:#f1f5f9;color:#334155;font-size:12px}.module-settings-note{margin:0 20px 20px;padding:14px 16px;border-radius:16px;background:#f8fafc;border:1px solid var(--line);color:var(--muted)}
.module-access-list{grid-template-columns:1fr}.module-access-card{display:grid;grid-template-columns:1fr;cursor:default}.module-access-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;cursor:pointer}.module-access-groups{margin-top:4px;padding-top:12px;border-top:1px solid var(--line)}.module-access-groups h3{margin:0 0 10px;font-size:15px}.module-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.module-group-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:8px 10px;background:#f8fafc;font-size:13px;font-weight:850;cursor:pointer}.module-group-pill input{width:16px!important;height:16px!important;margin:0!important}.module-group-pill:has(input:checked){background:#eef2ff;border-color:#bfdbfe;color:#1e40af}.small{font-size:12px}.muted{color:var(--muted)}
