/* ═══ DARK MODE TOKENS ══════════════════════════════════════ */
body.dark-mode {
  --bg:#0F172A; --card:#1E293B; --text:#F8FAFC; --text2:#94A3B8; --text3:#64748B;
  --b:#1E293B; --b2:#334155;
  --sh:0 1px 4px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.28);
  --sh2:0 8px 32px rgba(0,0,0,.55);
  /* accent stays identical — brand rule */
  --accent-light:rgba(255,107,0,.14);
  --accent-tint:rgba(255,107,0,.16);
  --accent-wash:rgba(255,107,0,.08);
  /* semantic — readable on dark */
  --ok-bg:rgba(16,185,129,.16); --ok-tx:#34D399;
  --wa-bg:rgba(217,119,6,.16);  --wa-tx:#FBBF24;
  --er-bg:rgba(220,38,38,.16);  --er-tx:#F87171;
  --info-bg:rgba(59,130,246,.16); --info-tx:#60A5FA;
  --dm-bg:#0A0F1A;
}
/* Auto: follow system when no manual override */
@media (prefers-color-scheme: dark) {
  body:not(.light-mode):not(.dark-mode) {
    --bg:#0F172A; --card:#1E293B; --text:#F8FAFC; --text2:#94A3B8; --text3:#64748B;
    --b:#1E293B; --b2:#334155;
    --sh:0 1px 4px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.28);
    --sh2:0 8px 32px rgba(0,0,0,.55);
    --accent-light:rgba(255,107,0,.14);
    --accent-tint:rgba(255,107,0,.16); --accent-wash:rgba(255,107,0,.08);
    --ok-bg:rgba(16,185,129,.16); --ok-tx:#34D399;
    --wa-bg:rgba(217,119,6,.16);  --wa-tx:#FBBF24;
    --er-bg:rgba(220,38,38,.16);  --er-tx:#F87171;
    --info-bg:rgba(59,130,246,.16); --info-tx:#60A5FA;
    --dm-bg:#0A0F1A;
  }
}

/* ═══ DARK SCREEN OVERRIDES ══════════════════════════════ */
/* Nav */
body.dark-mode .bnav,body:not(.light-mode):not(.dark-mode) .bnav { background:var(--card); border-top-color:var(--b2); }
body.dark-mode .ntab svg,body:not(.light-mode):not(.dark-mode) .ntab svg { stroke:#475569; }
body.dark-mode .ntab span,body:not(.light-mode):not(.dark-mode) .ntab span { color:var(--text2); }
body.dark-mode .home-bar,body:not(.light-mode):not(.dark-mode) .home-bar { background:var(--card); }
body.dark-mode .bar-pill,body:not(.light-mode):not(.dark-mode) .bar-pill { background:rgba(255,255,255,.14); }

/* Sheets & PDF */
body.dark-mode .bs-panel,body.dark-mode .am-sht,
body:not(.light-mode):not(.dark-mode) .bs-panel,
body:not(.light-mode):not(.dark-mode) .am-sht { background:var(--card); }
body.dark-mode .bs-handle,body.dark-mode .am-hdl,
body:not(.light-mode):not(.dark-mode) .bs-handle,
body:not(.light-mode):not(.dark-mode) .am-hdl { background:#475569; }
body.dark-mode .bs-act,body:not(.light-mode):not(.dark-mode) .bs-act { color:var(--text); border-bottom-color:var(--b2); }
body.dark-mode .bs-act.er,body:not(.light-mode):not(.dark-mode) .bs-act.er { color:var(--er-tx); }
body.dark-mode .bs-info,body:not(.light-mode):not(.dark-mode) .bs-info { border-bottom-color:var(--b2); }
body.dark-mode .bs-ico,body:not(.light-mode):not(.dark-mode) .bs-ico { background:#334155!important; }
body.dark-mode .pdf-v,body:not(.light-mode):not(.dark-mode) .pdf-v { background:var(--bg); }
body.dark-mode .pdf-bar,body:not(.light-mode):not(.dark-mode) .pdf-bar { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .pdf-body,body:not(.light-mode):not(.dark-mode) .pdf-body { background:#0A0F1A; }
body.dark-mode .pdf-doc,body:not(.light-mode):not(.dark-mode) .pdf-doc { background:var(--card); }
body.dark-mode .pdf-party,body:not(.light-mode):not(.dark-mode) .pdf-party { background:#1E293B; }
body.dark-mode .pdf-tbl th,body:not(.light-mode):not(.dark-mode) .pdf-tbl th { background:#1E293B; }
body.dark-mode .pdf-tbl td,body:not(.light-mode):not(.dark-mode) .pdf-tbl td { border-bottom-color:var(--b2); }

/* Ham menu */
body.dark-mode .ham-panel,body:not(.light-mode):not(.dark-mode) .ham-panel { background:var(--bg); }
body.dark-mode .ham-item,body:not(.light-mode):not(.dark-mode) .ham-item { color:var(--text); }
body.dark-mode .ham-item svg,body:not(.light-mode):not(.dark-mode) .ham-item svg { stroke:var(--text2); }
body.dark-mode .ham-item.on,body:not(.light-mode):not(.dark-mode) .ham-item.on { background:var(--accent-tint); color:var(--accent); }
body.dark-mode .ham-item.on svg,body:not(.light-mode):not(.dark-mode) .ham-item.on svg { stroke:var(--accent); }
body.dark-mode .ham-chev,body:not(.light-mode):not(.dark-mode) .ham-chev { stroke:var(--text3)!important; }
body.dark-mode .ham-item.er,body:not(.light-mode):not(.dark-mode) .ham-item.er { color:var(--er-tx); }
body.dark-mode .ham-item.er svg,body:not(.light-mode):not(.dark-mode) .ham-item.er svg { stroke:var(--er-tx); }

/* VOCAL — priority screen */
body.dark-mode #vocal-tr-box,body:not(.light-mode):not(.dark-mode) #vocal-tr-box { background:#1E293B; color:var(--text3); }
body.dark-mode #vocal-tr-box.live,body:not(.light-mode):not(.dark-mode) #vocal-tr-box.live { background:#1E293B; color:var(--text); }
body.dark-mode #vocal-tr-box.editing,body:not(.light-mode):not(.dark-mode) #vocal-tr-box.editing { background:#1A2740; border-color:var(--ok); }

/* DEVIS FORM — priority screen */
body.dark-mode .df-hdr,body:not(.light-mode):not(.dark-mode) .df-hdr { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .df-bk,body:not(.light-mode):not(.dark-mode) .df-bk { background:#1E293B; }
body.dark-mode .df-prog,body:not(.light-mode):not(.dark-mode) .df-prog { background:#334155; }
body.dark-mode .df-tabs,body:not(.light-mode):not(.dark-mode) .df-tabs { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .df-tab,body:not(.light-mode):not(.dark-mode) .df-tab { color:var(--text3); }
body.dark-mode .df-card,body:not(.light-mode):not(.dark-mode) .df-card { background:var(--card); }
body.dark-mode .df-card-hdr,body:not(.light-mode):not(.dark-mode) .df-card-hdr { border-bottom-color:var(--b2); }
body.dark-mode .df-card-t,body:not(.light-mode):not(.dark-mode) .df-card-t { color:var(--text2); }
body.dark-mode .df-body2,body:not(.light-mode):not(.dark-mode) .df-body2 { background:var(--card); }
body.dark-mode #df-body,body:not(.light-mode):not(.dark-mode) #df-body { background:var(--bg); }
body.dark-mode #df-prenom,body.dark-mode #df-nom,body.dark-mode #df-tel,body.dark-mode #df-email,
body.dark-mode #df-adresse,body.dark-mode #df-cp,body.dark-mode #df-ville,body.dark-mode #df-lieu-chantier,body.dark-mode .df-inp,
body:not(.light-mode):not(.dark-mode) #df-prenom,body:not(.light-mode):not(.dark-mode) #df-nom,
body:not(.light-mode):not(.dark-mode) #df-tel,body:not(.light-mode):not(.dark-mode) #df-email,
body:not(.light-mode):not(.dark-mode) #df-adresse,body:not(.light-mode):not(.dark-mode) #df-cp,
body:not(.light-mode):not(.dark-mode) #df-ville,body:not(.light-mode):not(.dark-mode) #df-lieu-chantier,
body:not(.light-mode):not(.dark-mode) .df-inp { background:#1E293B; border-color:var(--text2); color:var(--text); }
body.dark-mode .df-lbl,body:not(.light-mode):not(.dark-mode) .df-lbl { color:var(--text3); }
body.dark-mode .df-ch,body:not(.light-mode):not(.dark-mode) .df-ch { background:#1E293B; border-color:var(--text2); color:var(--text2); }
body.dark-mode .df-ch.on,body:not(.light-mode):not(.dark-mode) .df-ch.on { background:var(--accent-tint); border-color:var(--accent); color:var(--accent); }
body.dark-mode .df-cblbl,body:not(.light-mode):not(.dark-mode) .df-cblbl { color:var(--text2); }
body.dark-mode .df-item,body:not(.light-mode):not(.dark-mode) .df-item { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .df-item-desc,body:not(.light-mode):not(.dark-mode) .df-item-desc { color:var(--text); background:transparent; }
body.dark-mode .df-item-meta,body:not(.light-mode):not(.dark-mode) .df-item-meta { color:var(--text3); }
body.dark-mode .df-add-btn,body:not(.light-mode):not(.dark-mode) .df-add-btn { border-color:var(--accent-tint); background:var(--accent-wash); }
body.dark-mode .df-trow,body:not(.light-mode):not(.dark-mode) .df-trow { border-bottom-color:rgba(255,107,0,.1); }
body.dark-mode .df-tsep,body:not(.light-mode):not(.dark-mode) .df-tsep { background:rgba(255,107,0,.18); }
body.dark-mode #df-footer,body:not(.light-mode):not(.dark-mode) #df-footer { background:var(--card); border-top-color:var(--b2); }
body.dark-mode .df-btn-prev,body:not(.light-mode):not(.dark-mode) .df-btn-prev { background:#1E293B!important; border-color:var(--text2)!important; color:var(--text2)!important; }
body.dark-mode .am-btn,body:not(.light-mode):not(.dark-mode) .am-btn { background:#1E293B; border-color:var(--text2); color:var(--text); }

/* COCKPIT — priority screen */
body.dark-mode .ck-chart,body:not(.light-mode):not(.dark-mode) .ck-chart { background:var(--card); }
body.dark-mode .ck-card,body:not(.light-mode):not(.dark-mode) .ck-card { background:var(--card); }
body.dark-mode .ck-track,body:not(.light-mode):not(.dark-mode) .ck-track { background:#1E293B; }
body.dark-mode .ck-fill.prev,body:not(.light-mode):not(.dark-mode) .ck-fill.prev { background:#334155; }
body.dark-mode .ck-ia-btn,body:not(.light-mode):not(.dark-mode) .ck-ia-btn { background:var(--card); border-color:var(--b2); color:var(--text2); }
body.dark-mode .ck-tip,body:not(.light-mode):not(.dark-mode) .ck-tip { background:var(--card); }
body.dark-mode .ck-tip-ico,body:not(.light-mode):not(.dark-mode) .ck-tip-ico { background:var(--accent-wash); }

/* ALL OTHER SCREENS — dark mode optional, all covered */
body.dark-mode .lr,body:not(.light-mode):not(.dark-mode) .lr { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .lr:active,body:not(.light-mode):not(.dark-mode) .lr:active { background:#1E293B; }
body.dark-mode .sw,body:not(.light-mode):not(.dark-mode) .sw { background:#1E293B; border-color:var(--text2); }
body.dark-mode .sw input,body:not(.light-mode):not(.dark-mode) .sw input { color:var(--text); }
body.dark-mode .fpill,body:not(.light-mode):not(.dark-mode) .fpill { background:#1E293B; border-color:var(--text2); color:var(--text2); }
body.dark-mode .fpill.on,body:not(.light-mode):not(.dark-mode) .fpill.on { background:var(--accent); color:#fff; border-color:var(--accent); }
body.dark-mode .sblk,body:not(.light-mode):not(.dark-mode) .sblk { background:var(--card); }
body.dark-mode .cat-src,body:not(.light-mode):not(.dark-mode) .cat-src { background:#1E293B; }
body.dark-mode .cat-src-btn,body:not(.light-mode):not(.dark-mode) .cat-src-btn { color:var(--text3); }
body.dark-mode .cat-src-btn.on,body:not(.light-mode):not(.dark-mode) .cat-src-btn.on { background:#334155; color:var(--text); }
body.dark-mode .cat-chip,body:not(.light-mode):not(.dark-mode) .cat-chip { background:var(--card); border-color:var(--text2); color:var(--text2); }
body.dark-mode .cat-chip.on,body:not(.light-mode):not(.dark-mode) .cat-chip.on { background:var(--accent); color:#fff; border-color:var(--accent); }
body.dark-mode .cat-row,body:not(.light-mode):not(.dark-mode) .cat-row { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .cat-row:active,body:not(.light-mode):not(.dark-mode) .cat-row:active { background:#1E293B; }
body.dark-mode .ag-vtgl,body:not(.light-mode):not(.dark-mode) .ag-vtgl { background:#1E293B; }
body.dark-mode .ag-vbtn,body:not(.light-mode):not(.dark-mode) .ag-vbtn { color:var(--text3); }
body.dark-mode .ag-vbtn.on,body:not(.light-mode):not(.dark-mode) .ag-vbtn.on { background:#334155; color:var(--text); }
body.dark-mode .ag-nav-btn,body:not(.light-mode):not(.dark-mode) .ag-nav-btn { background:var(--card); border-color:var(--text2); }
body.dark-mode .ag-nav-btn svg,body:not(.light-mode):not(.dark-mode) .ag-nav-btn svg { stroke:var(--text2); }
body.dark-mode .ag-ecard,body:not(.light-mode):not(.dark-mode) .ag-ecard { background:var(--card); }
body.dark-mode .stg-row,body:not(.light-mode):not(.dark-mode) .stg-row { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .stg-row:active,body:not(.light-mode):not(.dark-mode) .stg-row:active { background:#1E293B; }
body.dark-mode .tog-sl,body:not(.light-mode):not(.dark-mode) .tog-sl { background:#475569; }
body.dark-mode .eq-mc,body:not(.light-mode):not(.dark-mode) .eq-mc { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .eq-tab,body:not(.light-mode):not(.dark-mode) .eq-tab { background:var(--card); }
body.dark-mode .eq-stat,body:not(.light-mode):not(.dark-mode) .eq-stat { background:#1E293B; color:var(--text2); }
body.dark-mode .eq-tabs,body:not(.light-mode):not(.dark-mode) .eq-tabs { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .cl-detail,body:not(.light-mode):not(.dark-mode) .cl-detail { background:var(--bg); }
body.dark-mode .cl-d-hdr,body:not(.light-mode):not(.dark-mode) .cl-d-hdr { background:var(--card); border-bottom-color:var(--b2); }
body.dark-mode .cl-d-bk,body:not(.light-mode):not(.dark-mode) .cl-d-bk { background:#1E293B; }
body.dark-mode .cl-sc,body:not(.light-mode):not(.dark-mode) .cl-sc { background:var(--card); }
