/* ============ AFK ITAD — charte graphique ============ */
:root{
  --bg:#f4f7fa; --card:#ffffff; --line:#dbe4ee;
  --ink:#0a1830; --ink2:#0e1a2b; --grey:#5c7086;
  --accent:#2bb0e6; --accent-deep:#1c7fb8; --accent-soft:#e2f3fb;
  --accent-ink:#06192e;
  --sb-bg:#0a1830; --sb-line:#142a45; --sb-text:#9db6d2; --sb-text2:#7f97b8;
  --sb-foot:#3f5c7d; --sb-input-bg:#0f2440; --sb-input-line:#1c3454;
  --neutral-bg:#eef2f6; --neutral-tx:#4d6075;
  --danger:#c14a32; --amber-bg:#fdf0d7; --amber-tx:#8a5f14;
  --kpi-accent-bg:linear-gradient(135deg,#0c2b4a,#123a5f);
  --hover:#f0f6fa;
}
[data-theme="dark"]{
  --bg:#0a1830; --card:#0c1c33; --line:#1c3454;
  --ink:#e8eef7; --ink2:#ffffff; --grey:#9db6d2;
  --accent:#2bb0e6; --accent-deep:#5fd0f2; --accent-soft:#0f2f47;
  --accent-ink:#06192e;
  --sb-bg:#050e1e; --sb-line:#142a45; --sb-text:#9db6d2; --sb-text2:#7f97b8;
  --sb-foot:#3f5c7d; --sb-input-bg:#0f2440; --sb-input-line:#1c3454;
  --neutral-bg:#14304f; --neutral-tx:#9db6d2;
  --danger:#d75f45; --amber-bg:#3a3010; --amber-tx:#e8c56a;
  --kpi-accent-bg:linear-gradient(135deg,#0c2b4a,#123a5f);
  --hover:#102540;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);display:flex;flex-direction:column;min-height:100vh;font-size:14.5px}

/* ---------------- Barre du haut : espaces ---------------- */
.app-top{display:flex;align-items:center;gap:22px;background:var(--sb-bg);border-bottom:1px solid var(--sb-line);padding:9px 18px;position:sticky;top:0;z-index:50}
.app-top .brand{padding:0}
.spaces{display:flex;gap:6px;margin-left:6px}
.spaces a{color:#9db6d2;padding:8px 18px;border-radius:8px;font-weight:700;font-size:14px;text-decoration:none}
.spaces a:hover{background:#0f2440;color:#fff}
.spaces a.on{background:#2bb0e6;color:#06192e}
.top-search{margin-left:auto}
.top-search input{width:240px;background:var(--sb-input-bg);border:1px solid var(--sb-input-line);color:#e8eef7;border-radius:8px;padding:7px 11px;font-size:13px}
.top-search input::placeholder{color:#5f88ad}
.top-user{display:flex;align-items:center;gap:10px;margin-left:14px}
.top-user a{color:#7f97b8;font-size:12px}
.app-row{display:flex;flex:1;align-items:stretch;max-width:100%}
a{color:var(--accent-deep);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------------- Sidebar ---------------- */
.sidebar{width:220px;background:var(--sb-bg);color:#e8eef7;padding:18px 0;display:flex;flex-direction:column;position:sticky;top:55px;height:calc(100vh - 55px);flex-shrink:0;border-right:1px solid var(--sb-line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:16px;padding:0 18px 16px;letter-spacing:.4px;color:#fff}
.brand .logo-dot{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#5fd0f2,#1c7fb8);flex-shrink:0}
.brand span{color:#5fd0f2}
.brand-sub{font-weight:400;font-size:9px;color:#5f88ad;letter-spacing:1.4px;text-transform:uppercase;margin-top:2px}
.sidebar nav{display:flex;flex-direction:column;gap:2px;padding:0 10px}
.sidebar nav a{color:var(--sb-text);padding:9px 12px;border-radius:8px;font-weight:500}
.sidebar nav a:hover{background:#0f2440;text-decoration:none;color:#fff}
.sidebar nav a.active{background:var(--accent);color:var(--accent-ink);font-weight:700}
.sidebar-foot{margin-top:auto;padding:12px 18px 0;font-size:11px;color:var(--sb-foot);line-height:1.8}
.sidebar-foot a{color:var(--sb-foot)}
.theme-btn{margin-top:10px;width:36px;height:36px;border-radius:50%;border:1px solid var(--sb-input-line);background:var(--sb-input-bg);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.theme-btn:hover{border-color:#2bb0e6}

/* ---------------- Layout ---------------- */
.content-col{flex:1;display:flex;flex-direction:column;min-width:0}
.spacebar{display:flex;gap:8px;padding:14px 40px 0;background:var(--bg)}
.space-tab{padding:9px 22px;border-radius:10px 10px 0 0;font-weight:700;font-size:14px;color:var(--grey);background:transparent;border:1px solid transparent;border-bottom:none}
.space-tab:hover{color:var(--ink);text-decoration:none;background:var(--hover)}
.space-tab.active{background:var(--card);color:var(--accent-deep);border-color:var(--line);position:relative;top:1px}
main{flex:1;padding:24px 40px 32px;max-width:1240px;border-top:1px solid var(--line)}
.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:#5f88ad;padding:14px 12px 4px;font-weight:700}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}
h1{font-size:26px;margin:0;font-weight:800;color:var(--ink2)}
h2{font-size:15px;margin:0 0 10px;color:var(--ink2);font-weight:700}
.muted{color:var(--grey)}
.mono{font-family:"Consolas","Menlo",monospace;font-size:13px}

/* ---------------- Cards & tables ---------------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:16px;max-width:100%;overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--grey);text-align:left;padding:7px 10px;border-bottom:1.5px solid var(--line)}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--hover)}
tr[data-href]{cursor:pointer}
tr[data-href]:hover td{background:var(--hover)}

/* ---------------- Badges statuts machine ---------------- */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:600;white-space:nowrap}
.b-recu{background:var(--neutral-bg);color:var(--neutral-tx)}
.b-audite{background:#e2eaf8;color:#33518f}
.b-efface{background:var(--accent-soft);color:var(--accent-deep)}
.b-reconditionne{background:#d9effa;color:#1c7fb8}
.b-en_stock{background:var(--amber-bg);color:var(--amber-tx)}
.b-vendu{background:#2bb0e6;color:#06192e}
.b-transfere{background:#4a3f8f;color:#fff}
.b-recycle{background:#4d5a52;color:#fff}
[data-theme="dark"] .b-audite{background:#16294d;color:#8fb0e8}
[data-theme="dark"] .b-reconditionne{background:#0f3550;color:#7cc9e8}

/* ---------------- Badges étapes lot ---------------- */
.lb-proposition{background:var(--neutral-bg);color:var(--neutral-tx)}
.lb-valide{background:#e2eaf8;color:#33518f}
.lb-recuperation{background:#d9effa;color:#1c7fb8}
.lb-atelier{background:#efe6f6;color:#6d3d94}
.lb-audit{background:var(--amber-bg);color:var(--amber-tx)}
.lb-audit_envoye{background:#fbe9da;color:#9a5314}
.lb-accepte{background:var(--accent-soft);color:var(--accent-deep)}
.lb-paiement_en_cours{background:#fbf3cf;color:#7a6210}
.lb-paye{background:#2bb0e6;color:#06192e}
.lb-cloture{background:#0a1830;color:#fff}
[data-theme="dark"] .lb-valide{background:#16294d;color:#8fb0e8}
[data-theme="dark"] .lb-recuperation{background:#0f3550;color:#7cc9e8}
[data-theme="dark"] .lb-atelier{background:#2c1f42;color:#c39ae0}
[data-theme="dark"] .lb-audit_envoye{background:#3a2510;color:#e8a56a}
[data-theme="dark"] .lb-paiement_en_cours{background:#3a3010;color:#e8c56a}
[data-theme="dark"] .lb-cloture{background:#2bb0e6;color:#06192e}

/* ---------------- Badges propale ---------------- */
.pb-brouillon{background:var(--neutral-bg);color:var(--neutral-tx)}
.pb-envoyee{background:#e2eaf8;color:#33518f}
.pb-acceptee{background:#2bb0e6;color:#06192e}
.pb-refusee{background:#f6e3de;color:var(--danger)}
[data-theme="dark"] .pb-envoyee{background:#16294d;color:#8fb0e8}
[data-theme="dark"] .pb-refusee{background:#3a1a12;color:#e8917a}

/* ---------------- Chips types de matériel ---------------- */
.type-chip{display:inline-block;padding:2px 9px;border-radius:6px;font-size:11.5px;font-weight:600;white-space:nowrap}
.t-Portable{background:#dcecfb;color:#2d549c}
.t-PCfixe{background:#e6e8ef;color:#48485e}
.t-Ecran{background:#ece2f6;color:#6d3d94}
.t-Tablette{background:#daf0ee;color:#177266}
.t-Smartphone{background:#f9e2ec;color:#a1336a}
.t-Serveur{background:#faead8;color:#9a5b14}
.t-Reseau{background:#eee7dd;color:#6e553a}
.t-Autre{background:var(--neutral-bg);color:var(--neutral-tx)}
[data-theme="dark"] .t-Portable{background:#16294d;color:#8fb0e8}
[data-theme="dark"] .t-PCfixe{background:#1d2334;color:#a8adc4}
[data-theme="dark"] .t-Ecran{background:#2c1f42;color:#c39ae0}
[data-theme="dark"] .t-Tablette{background:#0f3330;color:#7cd0c6}
[data-theme="dark"] .t-Smartphone{background:#3a1428;color:#e88ab4}
[data-theme="dark"] .t-Serveur{background:#3a2810;color:#e8b46a}
[data-theme="dark"] .t-Reseau{background:#2e2618;color:#c9ac83}

/* ---------------- Boutons & formulaires ---------------- */
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink);border:none;padding:9px 16px;border-radius:8px;font-weight:700;font-size:13.5px;cursor:pointer}
.btn:hover{background:var(--accent-deep);color:#fff;text-decoration:none}
.btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line);font-weight:600}
.btn.secondary:hover{background:var(--hover);color:var(--ink)}
.btn.small{padding:5px 11px;font-size:12.5px}
form.inline{display:inline}
label{display:block;font-size:12px;font-weight:600;color:var(--grey);margin:10px 0 4px}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--card);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
/* Sans min-width:0, une liste déroulante aux libellés longs élargit sa colonne
   et fait déborder toute la page sur téléphone. */
.grid2 > *,.grid3 > *,.cols2 > *{min-width:0}
.grid2 select,.grid3 select,.grid2 input,.grid3 input,
.grid2 textarea,.grid3 textarea{max-width:100%}
.form-actions{margin-top:16px;display:flex;gap:10px}
.search{max-width:280px}

/* ---------------- KPI cards ---------------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.kpis.five{grid-template-columns:repeat(5,1fr)}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px}
.kpi .n{font-size:34px;font-weight:800;color:var(--ink2);line-height:1.1}
.kpi .l{font-size:11px;color:var(--grey);text-transform:uppercase;letter-spacing:.6px;margin-top:4px}
.kpi.accent{background:var(--kpi-accent-bg);border:1px solid var(--accent)}
.kpi.accent .n{color:#fff}
.kpi.accent .l{color:#9dd6f0}

/* ---------------- Pipeline barres ---------------- */
.bars{display:flex;flex-direction:column;gap:10px}
.bar-row{display:grid;grid-template-columns:130px 1fr 30px;align-items:center;gap:12px}
.bar-row .lbl{font-size:13px;font-weight:600;color:var(--ink)}
.bar-track{background:var(--neutral-bg);border-radius:6px;height:24px;overflow:hidden}
[data-theme="dark"] .bar-track{background:#0f2440}
.bar-fill{height:100%;border-radius:6px;background:#7cc9e8}
.bar-fill.strong{background:var(--accent)}
[data-theme="dark"] .bar-fill{background:#1c7fb8}
[data-theme="dark"] .bar-fill.strong{background:#2bb0e6}
.bar-row .val{font-size:14px;font-weight:800;text-align:right;color:var(--ink2)}

/* ---------------- Listes avec avatars ---------------- */
.list-rows{display:flex;flex-direction:column}
.list-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.list-row:last-child{border-bottom:none}
.list-row:hover{background:var(--hover)}
.avatar{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#5fd0f2,#1c7fb8);color:#06192e;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0}
.list-row .who{flex:1;min-width:0}
.list-row .who .nm{font-weight:700;font-size:13.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list-row .who .sub{font-size:12px;color:var(--grey)}

/* ---------------- Stepper lot ---------------- */
.steps{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px}
.step{flex:1;min-width:90px;text-align:center;font-size:11px;font-weight:600;color:var(--grey);background:var(--card);border:1px solid var(--line);padding:7px 4px;border-radius:8px}
.step.done{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent-deep)}
.step.now{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* ---------------- Autocomplete enrichissement ---------------- */
.enrich-wrap{position:relative}
.enrich-results{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 22px rgba(5,14,30,.25);z-index:20;max-height:260px;overflow:auto;display:none}
.enrich-results.show{display:block}
.enrich-item{padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--line);font-size:13px}
.enrich-item:last-child{border-bottom:none}
.enrich-item:hover{background:var(--accent-soft)}
.enrich-item .t{font-weight:600;color:var(--ink)}
.enrich-item .s{color:var(--grey);font-size:12px}
.hint{font-size:12px;color:var(--grey);margin-top:4px}

/* ---------------- Timeline ---------------- */
.timeline{list-style:none;margin:0;padding:0}
.timeline li{position:relative;padding:0 0 14px 22px;border-left:2px solid var(--line);margin-left:6px}
.timeline li:last-child{padding-bottom:2px}
.timeline li::before{content:"";position:absolute;left:-6.5px;top:2px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:2px solid var(--card)}
.timeline .d{font-size:11.5px;color:var(--grey)}
.timeline .t{font-weight:700;font-size:13.5px;color:var(--ink2)}
.timeline .x{font-size:13px;color:var(--ink)}

/* ---------------- Photos ---------------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:10px}
.ph{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.ph img{width:100%;height:95px;object-fit:cover;display:block}
.ph .cap{font-size:10.5px;color:var(--grey);padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ph form{position:absolute;top:4px;right:4px}
.ph button{background:rgba(10,24,48,.8);color:#fff;border:none;border-radius:5px;font-size:10px;padding:2px 6px;cursor:pointer}

.empty{padding:26px;text-align:center;color:var(--grey)}
.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

@media (max-width:900px){
  .app-top{flex-wrap:wrap;gap:10px}
  .top-search{margin-left:0;width:100%}
  .top-search input{width:100%}
  .app-row{flex-direction:column}
  .sidebar{width:100%;height:auto;position:static;flex-direction:row;align-items:center;padding:8px;flex-wrap:wrap}
  .sidebar nav{flex-direction:row;flex-wrap:wrap}
  .brand-sub,.sidebar-foot{display:none}
  main{padding:16px}
  .grid2,.grid3,.kpis,.kpis.five{grid-template-columns:1fr}
}

.pagination{display:flex;align-items:center;gap:12px;justify-content:center;padding:6px 0 18px}

/* Étiquettes QR */
.etq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.etq{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--card);height:37mm;overflow:hidden}
.etq img{width:28mm;height:28mm;object-fit:contain;flex-shrink:0}
.etq-txt{min-width:0;font-size:11px;line-height:1.35}
.etq-sku{font-family:"Consolas",monospace;font-weight:800;font-size:12px;color:var(--ink2)}
.etq-mod{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.etq-sn{font-family:"Consolas",monospace;color:var(--grey);font-size:10.5px}
.etq-lot{color:var(--grey);font-size:10px}
@media print{
  .app-top,.sidebar,.no-print{display:none !important}
  body,main{background:#fff;padding:0;margin:0;display:block;max-width:none}
  .etq-grid{grid-template-columns:repeat(3,70mm);gap:0}
  .etq{border:1px dashed #bbb;border-radius:0;background:#fff;width:70mm;page-break-inside:avoid}
}

/* Suggestions de recherche */
.top-search{position:relative}
.sugg{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:320px;background:var(--card);
  border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(5,14,30,.3);
  z-index:200;max-height:380px;overflow:auto;display:none}
.sugg.show{display:block}
.sugg-item{display:flex;align-items:baseline;gap:9px;padding:9px 12px;border-bottom:1px solid var(--line);
  text-decoration:none;font-size:13px}
.sugg-item:last-child{border-bottom:none}
.sugg-item:hover,.sugg-item.on{background:var(--accent-soft);text-decoration:none}
.sugg-t{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-deep);
  background:var(--accent-soft);padding:2px 6px;border-radius:4px;flex-shrink:0}
.sugg-l{font-weight:600;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sugg-s{color:var(--grey);font-size:12px;margin-left:auto;white-space:nowrap;flex-shrink:0}

/* Étiquettes Dymo (rouleau 54x25 mm) */
.etq-grid.dymo{grid-template-columns:repeat(auto-fill,54mm);gap:4px}
.etq-grid.dymo .etq{width:54mm;height:25mm;padding:3px 5px;gap:5px}
.etq-grid.dymo .etq img{width:19mm;height:19mm}
.etq-grid.dymo .etq-txt{font-size:9.5px;line-height:1.25}
.etq-grid.dymo .etq-sku{font-size:11px}
.etq-grid.dymo .etq-sn{font-size:9px}
.etq-grid.dymo .etq-lot{display:none}
@media print{
  .etq-grid.dymo{grid-template-columns:54mm;gap:0}
  .etq-grid.dymo .etq{border:none;page-break-after:always}
}

.verif-box{background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;padding:14px 16px}
[data-theme="dark"] .verif-box{background:#0f2f47}
.verif-sn .mono{color:var(--ink2)}

.verif-detect{background:var(--accent-soft);border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:10px;line-height:2}
[data-theme="dark"] .verif-detect{background:#0f2f47}
.detect-tag{display:inline-block;background:var(--card);border:1px solid var(--accent);border-radius:20px;
  padding:2px 10px;font-size:12px;font-weight:600;color:var(--accent-deep);margin:0 2px}

/* Barre d'édition en masse */
.masse-barre{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 12px;margin-bottom:10px;
  border-radius:9px;background:var(--neutral-bg);opacity:.55;transition:opacity .15s}
.masse-barre.actif{opacity:1;background:var(--accent-soft);border:1px solid var(--accent)}
.masse-barre #masse-nb{font-weight:700;font-size:12.5px;color:var(--ink2);min-width:110px}

/* ---------------- Confort mobile ---------------- */
@media (max-width:820px){
  main{padding:14px}
  h1{font-size:21px}
  .topbar{align-items:flex-start}
  /* Les tableaux deviennent défilables horizontalement au lieu de déborder */
  .card table{font-size:12.5px;table-layout:fixed;width:100%}
  .card table th,.card table td{white-space:normal;word-break:break-word;padding:7px 6px}
  .card table th{font-size:10px}
  .mono{font-size:11.5px}
  /* Les grilles passent sur une colonne */
  .card > div[style*="grid-template-columns"],
  main > div[style*="grid-template-columns"]{grid-template-columns:1fr !important}
  .kpis,.kpis.five,.grid2,.grid3{grid-template-columns:1fr !important}
  .steps{gap:4px}
  .step{flex:1 1 44%;min-width:44%;font-size:10.5px;padding:6px 3px}
  .bar-row{grid-template-columns:96px 1fr 26px;gap:8px}
  .bar-row .lbl{font-size:12px}
  .row-actions{gap:6px}
  .btn{padding:9px 13px}
  .etq-grid{grid-template-columns:1fr}
  .sugg{min-width:0;left:0;right:0}
  .masse-barre{position:sticky;bottom:0;z-index:30}
}
@media (max-width:520px){
  .spaces a{padding:7px 12px;font-size:13px}
  .app-top{padding:8px 12px;gap:10px}
  .brand{font-size:14px}
  .kpi .n{font-size:28px}
  .card{padding:14px 15px;border-radius:12px}
}

/* Grilles à deux colonnes, empilées sur mobile */
.cols2{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;align-items:start}
.kpis.trois{grid-template-columns:repeat(3,1fr)}
.kpis.deux{grid-template-columns:repeat(2,1fr)}
@media (max-width:820px){
  .cols2,.kpis.trois,.kpis.deux{grid-template-columns:1fr}
}

@media (max-width:820px){
  .card input,.card select,.card textarea{max-width:100%}
  .card > div[style*="display:flex"]{flex-wrap:wrap}
}

.cam-zone{background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;padding:13px 15px}
[data-theme="dark"] .cam-zone{background:#0f2f47}

/* ---- Aperçu avant import ---------------------------------------------- */
.bandeau-ok{background:var(--accent-soft);color:var(--accent-deep);padding:10px 14px;
  border-radius:8px;font-weight:600;margin:0 0 14px}
.bandeau-erreur{background:#f6e3de;color:var(--danger);padding:10px 14px;border-radius:8px;
  font-weight:600}
[data-theme="dark"] .bandeau-erreur{background:#3a1c14}

.recap-import{display:grid;grid-template-columns:auto auto auto 1fr;gap:22px;align-items:center;
  border-left:4px solid var(--accent);position:sticky;top:0;z-index:20}
.recap-import .recap-n{font-size:26px;font-weight:800;line-height:1.1}
.recap-import .recap-l{font-size:12px;color:var(--grey);margin-top:2px}
.recap-import .recap-alerte{color:var(--danger)}
.recap-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}

.entete-feuille{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;
  flex-wrap:wrap}
.bascule-onglet{display:flex;gap:7px;align-items:center;font-weight:600;font-size:13px;
  white-space:nowrap;margin:0}
.bascule-onglet input{width:auto;margin:0}

.table-import{overflow-x:auto;border:1px solid var(--line);border-radius:9px;max-height:520px}
.table-import table{margin:0;font-size:12.5px}
.table-import th{position:sticky;top:0;background:var(--card);z-index:5;vertical-align:top;
  padding:7px 8px;min-width:120px}
.table-import td{padding:5px 8px;white-space:nowrap;max-width:230px;overflow:hidden;
  text-overflow:ellipsis}
.table-import select{margin:0;padding:4px 6px;font-size:12px;width:100%;min-width:110px}
.entete-nom{font-weight:700;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;
  max-width:190px}
.col-reconnue{background:var(--accent-soft)}
.col-ignoree{background:var(--neutral-bg)}
.cell-reconnue{background:var(--accent-soft)}
[data-theme="dark"] .cell-reconnue{background:#0f2f47}
.col-garde,.col-num{min-width:0;width:1%;white-space:nowrap}
.col-garde input[type="checkbox"]{width:auto;margin:0}
.col-num{color:var(--grey);font-size:11.5px}
.ligne-alerte td{background:var(--amber-bg)}
.ligne-alerte .cell-reconnue{background:var(--amber-bg)}
.ligne-exclue{opacity:.45}
.motif-alerte{color:var(--amber-tx);font-size:10.5px;font-weight:600;white-space:normal;
  max-width:140px;margin-top:2px}

@media (max-width:820px){
  .recap-import{grid-template-columns:repeat(3,1fr);gap:12px;position:static}
  .recap-actions{grid-column:1 / -1;justify-content:flex-start}
  .recap-import .recap-n{font-size:22px}
  .table-import{max-height:380px}
  .table-import th{min-width:104px}
  .entete-nom{max-width:100px;font-size:11.5px}
}

/* ---- Pièces jointes reçues par email ---------------------------------- */
.pj-liste{display:flex;flex-direction:column;gap:8px}
.pj{display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--line);
  border-radius:9px;flex-wrap:wrap}
.pj .pj-nom{font-weight:600;flex:1;min-width:140px;word-break:break-all}
.pj .pj-taille{color:var(--grey);font-size:12px;white-space:nowrap}

/* ---- Checklist d'audit ------------------------------------------------- */
.checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 16px}
.check-pt{display:flex;gap:8px;align-items:flex-start;font-weight:400;font-size:13px;
  margin:0;padding:3px 0;line-height:1.35}
.check-pt input{width:auto;margin:2px 0 0}
@media (max-width:820px){ .checklist{grid-template-columns:1fr} }

/* ---- Suivi commercial d'une propale ------------------------------------ */
.suivi-co{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.filtres-propales{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.filtres-propales select{width:auto;min-width:170px;margin:0}
.bloc-import-lot{margin-top:8px;padding:10px 12px;border:1px solid var(--line);
  border-radius:9px;background:var(--card)}

/* ---- Rôles et droits ---------------------------------------------------- */
.titre-droits{font-size:13px;margin:14px 0 6px;padding-bottom:5px;border-bottom:1px solid var(--line);
  text-transform:uppercase;letter-spacing:.04em;color:var(--grey)}
.grille-droits{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 18px}
@media (max-width:820px){ .grille-droits{grid-template-columns:1fr} }

/* ---- Tâches ------------------------------------------------------------- */
.liste-taches{display:flex;flex-direction:column;gap:6px}
.tache{display:flex;gap:11px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);
  border-radius:9px}
.tache-retard{border-left:3px solid var(--danger)}
.tache-corps{flex:1;min-width:0}
.tache-titre{font-weight:600;font-size:14px}
.tache-meta{font-size:12px;color:var(--grey);margin-top:3px;display:flex;gap:6px;flex-wrap:wrap;
  align-items:center}
.tache-meta .retard{color:var(--danger);font-weight:600}
.case-tache{width:22px;height:22px;border:2px solid var(--line);border-radius:5px;background:none;
  cursor:pointer;color:var(--accent);font-weight:800;font-size:14px;line-height:1;padding:0;
  margin-top:1px;flex-shrink:0}
.case-tache:hover{border-color:var(--accent)}
.pj-neuf{border-left:3px solid var(--accent)}

/* ---- Pipeline commercial ------------------------------------------------ */
.pipeline{display:grid;grid-template-columns:repeat(6,minmax(190px,1fr));gap:10px;
  overflow-x:auto;padding-bottom:8px}
.pipe-col{background:var(--neutral-bg);border:1px solid var(--line);border-radius:11px;
  min-height:200px;display:flex;flex-direction:column}
.pipe-col.pipe-survol{border-color:var(--accent);background:var(--accent-soft)}
.pipe-tete{padding:10px 12px;border-bottom:1px solid var(--line)}
.pipe-titre{font-weight:700;font-size:13px}
.pipe-chiffre{font-size:11.5px;color:var(--grey);margin-top:2px}
.pipe-corps{padding:8px;display:flex;flex-direction:column;gap:7px;flex:1}
.pipe-carte{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:9px 10px;
  cursor:grab}
.pipe-carte:active{cursor:grabbing}
.pipe-prise{opacity:.4}
.pipe-ref{font-family:ui-monospace,monospace;font-size:12px;font-weight:700;text-decoration:none}
.pipe-client{font-size:12.5px;margin-top:2px}
.pipe-bas{display:flex;justify-content:space-between;font-size:11.5px;color:var(--grey);
  margin-top:5px}
.pipe-alerte{margin-top:5px;font-size:11px;font-weight:700;color:var(--amber-tx);
  background:var(--amber-bg);border-radius:4px;padding:2px 6px;display:inline-block}
.pipe-motif{margin-top:5px;font-size:11px;color:var(--grey);font-style:italic}
.pipe-vide{color:var(--grey);text-align:center;padding:14px 0;font-size:12px}
@media (max-width:820px){ .pipeline{grid-template-columns:repeat(6,minmax(160px,1fr))} }

/* ---- Page publique d'acceptation d'offre -------------------------------- */
.page-publique{background:var(--neutral-bg);padding:16px}
.publique-boite{max-width:760px;margin:0 auto;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:22px}
.publique-tete{display:flex;gap:11px;align-items:center;margin-bottom:18px;
  padding-bottom:14px;border-bottom:1px solid var(--line)}
.publique-accept{margin-top:18px;padding:16px;border:2px solid var(--accent);border-radius:11px;
  background:var(--accent-soft)}
.liste-manques{margin:8px 0 0;padding-left:20px;line-height:1.7}
.liste-manques li{margin-bottom:3px}

/* ---- Calendrier des enlèvements ----------------------------------------- */
.cal-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-jour-tete{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--grey);
  text-align:center;padding:5px 0;letter-spacing:.04em}
.cal-case{min-height:84px;border:1px solid var(--line);border-radius:7px;padding:4px 5px;
  background:var(--card)}
.cal-hors{opacity:.35}
.cal-auj{border-color:var(--accent);border-width:2px}
.cal-num{font-size:11.5px;font-weight:700;color:var(--grey);margin-bottom:3px}
.cal-evt{display:block;font-size:10.5px;line-height:1.3;background:var(--accent-soft);
  color:var(--accent-deep);border-radius:5px;padding:3px 5px;margin-bottom:3px;
  text-decoration:none;overflow:hidden}
.cal-evt:hover{background:var(--accent);color:#fff}
@media (max-width:820px){
  .cal-case{min-height:56px;padding:3px}
  .cal-evt{font-size:9px}
  .cal-num{font-size:10px}
}

/* ---- Doublons de clients ------------------------------------------------ */
.paire-doublon{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;
  padding:12px;border:1px solid var(--line);border-radius:10px;margin-bottom:9px}
.doublon-motif{font-size:11.5px;color:var(--grey);text-align:center;white-space:nowrap}
.doublon-actions{grid-column:1 / -1;display:flex;gap:8px;justify-content:center}
@media (max-width:820px){ .paire-doublon{grid-template-columns:1fr} .doublon-motif{text-align:left} }

/* ---- Contacts et fil de suivi ------------------------------------------- */
.bloc-contact{border:1px solid var(--line);border-radius:9px;padding:9px 12px;margin-bottom:7px}
.bloc-contact summary{cursor:pointer;list-style:none}
.bloc-contact summary::-webkit-details-marker{display:none}
.fil-suivi{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.fil-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);
  border-radius:9px}
.fil-pastille{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);
  display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.fil-corps{flex:1;min-width:0}
.fil-suite{margin-top:4px;font-size:12px;font-weight:600;color:var(--accent-deep);
  background:var(--accent-soft);border-radius:5px;padding:3px 7px;display:inline-block}
