/* ═══════════════════════════════════════════════════════════════════
   AFFAIRES_V3.CSS — l'onglet Affaires devient un poste de travail (25/09/2026)
   Onglets Aujourd'hui · Affaires · Chiffres, page « Aujourd'hui », vue tableau,
   fiche affaire pleine page, suivi (notes, rappels, raison d'attente),
   bilan client. Va de pair avec js/affaires_jour.js, js/affaires_tableau.js,
   js/affaire_page.js, js/affaires_suivi.js, js/affaires_chiffres.js.
   Charte : css/base.css (--wood-*, --accent…). Fenêtres : ui.js.
   ═══════════════════════════════════════════════════════════════════ */

/* ─── Onglets de tête ─────────────────────────────────────────────── */
.aff-onglets { display:flex; gap:4px; border-bottom:1px solid var(--border); margin:0 0 14px; }
.aff-onglet { font:inherit; font-size:13.5px; font-weight:600; padding:9px 14px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--text-muted); cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.aff-onglet:hover { color:var(--text); }
.aff-onglet.actif { color:var(--wood-dark); border-bottom-color:var(--wood-dark); }
.aff-onglet .aff-onglet-n { background:var(--red); color:var(--white); font-size:11px; font-weight:700; padding:1px 7px; border-radius:12px; }
.aff-onglet .aff-onglet-n.gris { background:var(--wood-pale); color:var(--wood-mid); }

/* ─── Page « Aujourd'hui » ────────────────────────────────────────── */
.jour-tete { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:14px; flex-wrap:wrap; }
.jour-titre { font-size:22px; font-weight:800; color:var(--wood-dark); }
.jour-sous { font-size:13px; color:var(--text-muted); margin-top:2px; }
.jour-kpis { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.jour-kpi { background:var(--white); border:1px solid var(--border); border-radius:12px; padding:12px 14px; min-width:0; }
.jour-kpi-l { font-size:11px; font-weight:700; letter-spacing:.06em; color:var(--text-muted); text-transform:uppercase; }
.jour-kpi-v { font-size:24px; font-weight:800; color:var(--wood-dark); margin-top:3px; font-variant-numeric:tabular-nums; }
.jour-kpi-v small { font-size:13px; font-weight:600; color:var(--text-muted); margin-left:4px; }
.jour-kpi-s { font-size:12px; color:var(--text-muted); margin-top:2px; }
.jour-kpi-s.ok { color:var(--green); } .jour-kpi-s.ko { color:var(--red); } .jour-kpi-s.warn { color:var(--orange-text); }
.jour-grille { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:16px; align-items:start; }
.jour-bloc { background:var(--white); border:1px solid var(--border); border-radius:12px; padding:14px 16px; min-width:0; }
.jour-bloc + .jour-bloc { margin-top:16px; }
.jour-bloc-t { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.jour-bloc-t b { font-size:15px; color:var(--wood-dark); }
.jour-bloc-t small { font-size:12px; color:var(--text-muted); }
.jour-ligne { display:flex; align-items:center; gap:12px; padding:9px 11px; border-radius:12px; border:1px solid var(--border); background:var(--white); margin-bottom:8px; cursor:pointer; transition:border-color .12s, background .12s; }
.jour-ligne:hover { border-color:var(--accent); background:#FBFAF8; }
.jour-ligne.rouge { background:var(--red-soft); border-color:var(--red-line); }
.jour-ligne.orange { background:#FFF7E8; border-color:var(--orange-line); }
.jour-pastille { min-width:36px; width:auto; padding:0 6px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:12px; white-space:nowrap; flex-shrink:0; background:var(--wood-pale); color:var(--wood-mid); }
.jour-pastille.rouge { background:var(--red); color:var(--white); }
.jour-pastille.orange { background:var(--orange-soft); color:var(--orange-text); }
.jour-pastille.bleu { background:var(--accent-soft); color:var(--wood-dark); }
.jour-pastille.vert { background:var(--green-soft); color:var(--green); }
.jour-ligne-c { flex:1; min-width:0; }
.jour-ligne-k { font-weight:700; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jour-ligne-d { font-size:12px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* R-AFF-REFUS-VU (30/09/2026) : le motif du client se lit EN ENTIER (retour à la ligne permis). */
.jour-ligne-d .jour-motif { display:block; white-space:normal; color:var(--text); margin-top:2px; }
.jour-ligne-a { display:flex; gap:6px; flex-shrink:0; }
.jour-vide { padding:18px 12px; text-align:center; color:var(--text-muted); font-size:13px; background:#FBFAF8; border-radius:12px; }
.jour-vide b { color:var(--green); }
.jour-groupe { margin:14px 0 6px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); display:flex; align-items:center; gap:8px; }
.jour-groupe:first-child { margin-top:0; }
.jour-groupe .n { background:var(--wood-pale); color:var(--wood-mid); padding:1px 7px; border-radius:8px; font-size:11px; }
.jour-groupe .n.rouge { background:var(--red); color:var(--white); }
.jour-groupe .n.orange { background:var(--orange-soft); color:var(--orange-text); }
/* Accords en tête d'« Aujourd'hui » (28/09/2026, R-AFF-ACCORDS) */
.jour-groupe .n.vert { background:var(--green); color:var(--white); }
.jour-ligne.accord { background:var(--green-soft); border-color:var(--green-line); }
.jour-ligne.accord:hover { border-color:var(--green); }
.jour-ligne.gris .jour-ligne-k { color:var(--text-muted); font-weight:600; }
.jour-pastille i { font-size:16px; }
.jour-porte { display:grid; grid-template-columns:118px minmax(0,1fr) 46px; gap:7px 8px; align-items:center; font-size:12px; }
.jour-porte .b { height:9px; border-radius:6px; background:var(--wood-pale); overflow:hidden; }
.jour-porte .b i { display:block; height:9px; border-radius:6px; background:var(--accent); }
.jour-porte .n { text-align:right; font-weight:700; font-variant-numeric:tabular-nums; }
.jour-porte .lien { cursor:pointer; color:var(--text); }
.jour-porte .lien:hover { color:var(--accent); text-decoration:underline; }
.jour-mv { display:flex; gap:10px; font-size:12px; padding:5px 0; border-bottom:1px dashed var(--border); align-items:baseline; cursor:pointer; }
.jour-mv:last-child { border-bottom:0; }
.jour-mv:hover b { color:var(--accent); }
.jour-mv .q { color:var(--text-muted); width:48px; flex-shrink:0; font-variant-numeric:tabular-nums; }
.jour-mv .i { width:18px; flex-shrink:0; text-align:center; }
@media (max-width: 1100px) { .jour-grille { grid-template-columns:1fr; } .jour-kpis { grid-template-columns:repeat(2, minmax(0,1fr)); } }

/* ─── Barre des stades v3 ─────────────────────────────────────────── */
.aff-stades.aff-v3, .aff-phases.aff-v3 { grid-template-columns:repeat(6, 1fr); }
.aff-stades.aff-v3.aff-5, .aff-phases.aff-v3.aff-5 { grid-template-columns:repeat(5, 1fr); }
.aff-phases.aff-v3 .aff-phase-devis { grid-column:span 3; }
.aff-phases.aff-v3.aff-5 .aff-phase-devis { grid-column:span 2; }
.aff-phases.aff-v3 .aff-phase-bon { grid-column:span 1; }
.aff-phases.aff-v3 .aff-phase-prod { grid-column:span 2; }
.aff-stade.aff-caisse { background:var(--wood-bg); color:var(--wood-mid); border-style:dashed; }
.aff-stade.aff-caisse .aff-stade-n { color:var(--wood-mid); }
.aff-stade.aff-caisse.actif { border-color:var(--wood-mid); background:var(--wood-pale); border-style:solid; }
.aff-chip-rouge.actif { background:var(--red); border-color:var(--red); }
.aff-chip-rouge:not(.actif) { color:var(--red); }
.aff-chip-orange.actif { background:#B86E00; border-color:#B86E00; }
.aff-chip-orange:not(.actif) { color:var(--orange-text); }
.aff-vue { margin-left:auto; display:inline-flex; gap:4px; }

/* ─── Carte compacte d'une commande en production ─────────────────── */
.aff-carte-prod .devis-carte-meta b { color:var(--text); }
.aff-col { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; padding:3px 9px; border-radius:8px; background:#EFE9F7; color:#4A3570; }
.aff-col.caisse { background:var(--wood-pale); color:var(--wood-mid); }
.aff-pill-lire { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; padding:3px 9px; border-radius:8px; background:var(--red); color:var(--white); border:0; cursor:pointer; font-family:inherit; }

/* ─── Vue tableau ─────────────────────────────────────────────────── */
.aff-tab-wrap { background:var(--white); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.aff-tab { width:100%; border-collapse:collapse; font-size:13px; table-layout:fixed; }
.aff-tab th { text-align:left; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); background:var(--wood-bg); padding:8px 10px; border-bottom:1px solid var(--border); white-space:nowrap; cursor:pointer; user-select:none; }
.aff-tab th.nosort { cursor:default; }
.aff-tab th .tri { opacity:.35; margin-left:3px; font-size:10px; }
.aff-tab th.actif .tri { opacity:1; color:var(--accent); }
.aff-tab th.num, .aff-tab td.num { text-align:right; }
.aff-tab td { padding:8px 10px; border-bottom:1px solid var(--wood-pale); vertical-align:middle; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.aff-tab tr:hover td { background:#FBFAF8; }
.aff-tab tr.coche td { background:var(--accent-soft); }
.aff-tab tr.ligne { cursor:pointer; }
.aff-tab .aff-tab-k { font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aff-tab .aff-tab-s { font-size:11px; color:var(--text-muted); font-family:'DM Mono', monospace; }
.aff-tab .age-rouge { color:var(--red); font-weight:700; }
.aff-tab .age-orange { color:var(--orange-text); font-weight:700; }
.aff-tab .muted { color:var(--text-muted); }
.aff-tab .note { color:var(--wood-mid); font-style:italic; }
.aff-geste { display:inline-block; font-size:12px; font-weight:700; padding:2px 8px; border-radius:8px; background:var(--wood-pale); color:var(--wood-mid); white-space:nowrap; }
.aff-geste.rouge { background:var(--red); color:var(--white); }
.aff-geste.rouge2 { background:var(--red-soft); color:#791F1F; }
.aff-geste.orange { background:var(--orange-soft); color:var(--orange-text); }
.aff-geste.vert { background:var(--green-soft); color:var(--green); }
.aff-geste.bleu { background:var(--accent-soft); color:var(--wood-dark); }
.aff-tab-pied { display:flex; justify-content:space-between; gap:10px; padding:8px 12px; font-size:12px; color:var(--text-muted); flex-wrap:wrap; }
.aff-select { display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:12px; background:var(--wood-dark); color:var(--white); font-size:13px; margin-bottom:10px; flex-wrap:wrap; }
.aff-select b { margin-right:4px; }
.aff-select .btn { color:var(--white); border-color:rgba(255,255,255,.45); background:transparent; }
.aff-select .btn.btn-blanc { background:var(--white); color:var(--wood-dark); border-color:var(--white); }
.aff-select .btn:hover { background:rgba(255,255,255,.15); }
.aff-select .btn.btn-blanc:hover { background:var(--wood-pale); }
.aff-tab input[type=checkbox] { width:15px; height:15px; cursor:pointer; }

/* ─── Fiche affaire pleine page ───────────────────────────────────── */
.affp { display:flex; flex-direction:column; min-height:100%; }
.affp-tete { background:var(--white); border-bottom:1px solid var(--border); padding:14px 22px 12px; }
.affp-fil { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--text-muted); flex-wrap:wrap; }
.affp-fil a, .affp-fil .lien { color:var(--accent); font-weight:600; cursor:pointer; text-decoration:none; }
.affp-fil .lien:hover { text-decoration:underline; }
.affp-h { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-top:6px; flex-wrap:wrap; }
.affp-titre { font-size:22px; font-weight:800; color:var(--wood-dark); line-height:1.15; }
.affp-sous { font-size:13px; color:var(--wood-mid); margin-top:4px; }
.affp-sous b { color:var(--text); }
.affp-actions { display:flex; gap:6px; flex-wrap:wrap; align-items:center; flex-shrink:0; }
.affp-frise { display:flex; align-items:center; margin-top:12px; flex-wrap:wrap; row-gap:6px; }
.affp-j { padding:5px 12px; border-radius:16px; font-size:12px; font-weight:700; white-space:nowrap; background:var(--wood-pale); color:var(--text-muted); }
.affp-j.fait { background:var(--green-soft); color:#27500A; }
.affp-j.cur { background:var(--wood-dark); color:var(--white); }
.affp-j.ko { background:var(--red-soft); color:#791F1F; }
.affp-t { width:26px; height:2px; background:var(--border); flex-shrink:0; }
.affp-t.fait { background:#97C459; }
.affp-corps { display:grid; grid-template-columns:380px minmax(0,1fr); gap:18px; padding:18px 22px; align-items:start; }
@media (max-width: 1100px) { .affp-corps { grid-template-columns:1fr; } }
.affp-bloc { background:var(--white); border:1px solid var(--border); border-radius:12px; padding:13px 15px; margin-bottom:14px; }
.affp-bloc-t { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:13px; font-weight:700; color:var(--wood-dark); margin-bottom:9px; }
.affp-bloc-t small { font-size:11px; font-weight:500; color:var(--text-muted); }
.affp-next { border-radius:12px; padding:13px 15px; margin-bottom:14px; border:1px solid var(--border); background:var(--white); }
.affp-next.rouge { background:var(--red-soft); border-color:var(--red-line); }
.affp-next.orange { background:#FFF7E8; border-color:var(--orange-line); }
.affp-next.vert { background:var(--green-soft); border-color:#C0DD97; }
.affp-next-k { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); }
.affp-next.rouge .affp-next-k { color:#791F1F; }
.affp-next-t { font-size:15px; font-weight:700; margin-top:3px; }
.affp-next-p { font-size:12px; color:var(--wood-mid); margin-top:4px; }
.affp-next-b { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.affp-kv { display:grid; grid-template-columns:88px minmax(0,1fr); gap:4px 10px; font-size:13px; }
.affp-kv span:nth-child(odd) { color:var(--text-muted); }
.affp-onglets { display:flex; gap:2px; padding:6px 10px 0; border-bottom:1px solid var(--border); background:var(--white); border-radius:12px 12px 0 0; }
.affp-onglet { font:inherit; font-size:13px; font-weight:600; padding:8px 12px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--text-muted); cursor:pointer; }
.affp-onglet.actif { color:var(--wood-dark); border-bottom-color:var(--wood-dark); }
.affp-panneau { background:var(--white); border:1px solid var(--border); border-top:0; border-radius:0 0 12px 12px; padding:14px 16px; min-height:200px; }
.affp-docs { display:flex; flex-direction:column; gap:8px; }
.affp-doc { display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid var(--border); border-radius:12px; cursor:pointer; text-decoration:none; color:var(--text); background:var(--white); font:inherit; text-align:left; }
.affp-doc:hover { border-color:var(--accent); }
.affp-doc .ico { font-size:18px; }
.affp-doc .k { font-weight:600; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.affp-doc .s { font-size:12px; color:var(--text-muted); }
.affp-versions { margin-top:12px; }
.affp-version { display:grid; grid-template-columns:56px minmax(0,1fr) 110px 90px; gap:8px; align-items:center; padding:7px 10px; border-bottom:1px dashed var(--border); font-size:12px; }
.affp-version .v { font-weight:700; color:var(--wood-dark); }
.affp-version .ecart { font-weight:700; text-align:right; }
.affp-version .ecart.moins { color:var(--red); } .affp-version .ecart.plus { color:var(--green); }
.affp-version.cur { background:var(--accent-soft); border-radius:8px; border-bottom:0; }

/* ─── Suivi : notes, rappels, raison d'attente ────────────────────── */
.suivi-note { padding:8px 10px; border-radius:8px; background:#FBFAF8; font-size:13px; margin-bottom:7px; position:relative; }
.suivi-note.appel { background:var(--orange-soft); }
.suivi-note.rappel { background:var(--accent-soft); }
.suivi-note.rappel.fait { opacity:.6; }
.suivi-note.attente, .suivi-note.relance { background:var(--wood-pale); }
.suivi-note-q { font-size:11px; font-weight:700; color:var(--text-muted); margin-bottom:2px; display:flex; gap:6px; align-items:center; }
.suivi-note-q .ico { font-size:13px; }
.suivi-note-x { position:absolute; top:6px; right:8px; border:0; background:transparent; color:var(--text-muted); cursor:pointer; font-size:13px; font-family:inherit; }
.suivi-note-x:hover { color:var(--red); }
.suivi-note-t { white-space:pre-wrap; word-break:break-word; }
.suivi-saisie { display:flex; gap:6px; align-items:flex-end; margin-top:6px; }
.suivi-saisie textarea { flex:1; min-height:40px; resize:vertical; font:inherit; font-size:13px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; }
.suivi-chips { display:flex; gap:6px; flex-wrap:wrap; }
.suivi-chip { font:inherit; font-size:12px; font-weight:600; padding:5px 10px; border-radius:16px; border:1px solid var(--border); background:var(--white); color:var(--text); cursor:pointer; }
.suivi-chip:hover { border-color:var(--accent); }
.suivi-chip.actif { background:var(--wood-dark); color:var(--white); border-color:var(--wood-dark); }
.suivi-conseil { font-size:12px; color:var(--text-muted); margin-top:8px; }
.suivi-form label { display:block; font-size:12px; font-weight:600; margin:10px 0 4px; }
.suivi-form input[type=date], .suivi-form input[type=text], .suivi-form select, .suivi-form textarea { width:100%; font:inherit; font-size:13px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; box-sizing:border-box; }
.suivi-form textarea { min-height:70px; resize:vertical; }
.suivi-form .dl { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }

/* ─── Chiffres ────────────────────────────────────────────────────── */
.chf-grille { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; align-items:start; }
@media (max-width: 1100px) { .chf-grille { grid-template-columns:1fr; } }
.chf-tab { width:100%; border-collapse:collapse; font-size:13px; }
.chf-tab th { text-align:left; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); padding:6px 8px; border-bottom:1px solid var(--border); }
.chf-tab td { padding:7px 8px; border-bottom:1px solid var(--wood-pale); font-variant-numeric:tabular-nums; }
.chf-tab th.num, .chf-tab td.num { text-align:right; }
.chf-tab tr.total td { font-weight:700; border-top:2px solid var(--border); }
.chf-barre { display:flex; align-items:center; gap:8px; }
.chf-barre .b { flex:1; height:8px; border-radius:4px; background:var(--wood-pale); overflow:hidden; }
.chf-barre .b i { display:block; height:8px; background:var(--accent); border-radius:4px; }

/* ─── Bilan client (fiche client) ─────────────────────────────────── */
.bilan-kpis { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.bilan-kpi { background:var(--wood-bg); border-radius:12px; padding:9px 11px; min-width:0; }
.bilan-kpi-l { font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); }
.bilan-kpi-v { font-size:18px; font-weight:800; color:var(--wood-dark); font-variant-numeric:tabular-nums; }
.bilan-kpi-s { font-size:11px; color:var(--text-muted); }
.bilan-ligne { display:grid; grid-template-columns:92px minmax(0,1fr) 84px 130px; gap:8px; align-items:center; padding:6px 4px; border-bottom:1px solid var(--wood-pale); font-size:12px; cursor:pointer; }
.bilan-ligne:hover { background:#FBFAF8; }
.bilan-ligne .num { font-family:'DM Mono', monospace; font-size:11px; color:var(--text-muted); }
.bilan-ligne .m { text-align:right; font-weight:700; }
@media (max-width: 700px) { .bilan-kpis { grid-template-columns:repeat(2, minmax(0,1fr)); } .bilan-ligne { grid-template-columns:minmax(0,1fr) 84px; } .bilan-ligne .num, .bilan-ligne .st { display:none; } }

/* ─── Chronologie : les types v3 ──────────────────────────────────── */
.aff-fil-note .aff-fil-pt i { background:var(--wood-warm); }
.aff-fil-appel .aff-fil-pt i { background:var(--orange); }
.aff-fil-rappel .aff-fil-pt i { background:var(--accent); }
.aff-fil-version .aff-fil-pt i { background:#4A3570; }
.aff-fil-note .aff-fil-corps, .aff-fil-appel .aff-fil-corps { background:#FBFAF8; border-radius:8px; padding:6px 9px; }
.msg-pj-decor { opacity:.65; cursor:help; font-size:12px; color:var(--text-muted); }

.suivi-chips.suivi-manque { outline:2px solid var(--red); outline-offset:4px; border-radius:8px; }

/* R-APPEL-REFUS / R-AFF-DOUBLON (28/09/2026) : fins d'appel à gauche ; fenêtre « Déjà commandé » */
.suivi-fin-appel { display:flex; align-items:center; gap:8px; flex-wrap:wrap; flex:1 1 100%; padding-bottom:10px; margin-bottom:2px; border-bottom:1px solid var(--border); }
.suivi-fin-t { font-size:12px; color:var(--text-muted); }
.suivi-dbl-liste { max-height:320px; overflow:auto; margin-top:8px; display:flex; flex-direction:column; gap:6px; }
.suivi-dbl-t { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); margin:8px 0 2px; }
.suivi-dbl-opt { display:flex; align-items:center; gap:10px; width:100%; text-align:left; font:inherit; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:var(--white); cursor:pointer; }
.suivi-dbl-opt:hover { border-color:var(--accent); }
.suivi-dbl-opt.actif { border-color:var(--accent); background:var(--accent-soft); box-shadow:inset 0 0 0 1px var(--accent); }
.suivi-dbl-opt i { font-size:16px; color:var(--accent); }
.suivi-dbl-opt span { display:flex; flex-direction:column; min-width:0; }
.suivi-dbl-opt b { font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.suivi-dbl-opt small { font-size:12px; color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.suivi-dbl-opt:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* R-AFF-VARIANTE (12/10/2026) : fenêtre « Doublon / variante », bandeau de l'affaire classée, variantes repliées */
.suivi-dbl-opt span { flex:1; }
.suivi-var-recent { flex:none; font-style:normal; font-size:11px; font-weight:700; padding:2px 8px; border-radius:6px; background:var(--green-soft); color:var(--green); border:1px solid var(--green-line); white-space:nowrap; }
.suivi-var-effet { margin-top:12px; padding:10px 14px; border-radius:12px; background:var(--wood-pale); font-size:13px; }
.suivi-var-effet ul { margin:4px 0 0; padding-left:18px; display:flex; flex-direction:column; gap:2px; }
.aff-var-bandeau { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 16px; margin:0 0 12px; border-radius:12px; background:var(--accent-soft); border:1px solid var(--accent-line); }
.aff-var-bandeau > i { font-size:20px; color:var(--accent); flex:none; }
.aff-var-bandeau-t { flex:1 1 260px; min-width:0; display:flex; flex-direction:column; gap:2px; }
.aff-var-bandeau-t b { color:var(--wood-dark); font-size:13px; }
.aff-var-bandeau-t small { color:var(--text-muted); font-size:12px; }
.bilan-variantes { margin-top:6px; border-top:1px solid var(--border); padding-top:6px; }
.bilan-variantes > summary { cursor:pointer; font-size:12px; font-weight:600; color:var(--wood-mid); padding:4px 0; list-style-position:inside; }
.bilan-variantes .bilan-ligne { opacity:.75; }
/* R-AFF-VARIANTE-RECHERCHE (12/10/2026) : la famille sur la carte, les variantes en retrait sous la gardée */
.aff-famille { display:flex; align-items:center; flex-wrap:wrap; gap:4px 6px; margin-top:6px; padding:6px 10px; border-radius:8px; font-size:12px; color:var(--wood-mid); background:var(--wood-pale); }
.aff-famille i { font-size:14px; }
.aff-famille b { color:var(--wood-dark); font-family:'DM Mono', monospace; font-weight:500; }
.aff-famille.gardee { background:var(--accent-soft); color:var(--accent); }
.aff-famille.gardee b { font-family:inherit; font-weight:700; color:var(--wood-dark); }
.aff-famille-rang { font-weight:600; }
.devis-carte.aff-variante { margin-left:28px; }
@media (max-width: 768px) { .devis-carte.aff-variante { margin-left:14px; } }
.aff-tab .aff-tab-fam { font-size:11px; color:var(--wood-mid); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aff-tab .aff-tab-fam b { font-family:'DM Mono', monospace; font-weight:500; color:var(--wood-dark); }
.aff-tab .aff-tab-fam.gardee { color:var(--accent); font-weight:600; }
.aff-tab tr.variante td:nth-child(2) { padding-left:28px; }
.aff-tab tr.variante .aff-tab-k { font-weight:600; color:var(--wood-mid); }
/* R-AFF-VARIANTE-COULEURS (12/10/2026, Julien : « quelque chose d'évident ») : la famille se reconnaît
   à la couleur — affaire gardée sur fond VERT pâle, variantes sur fond ORANGE pâle (fonds doux de la
   charte, texte toujours lisible ; le mot « Gardée » / « Variante » double la couleur). */
.devis-carte.aff-gardee { background:var(--green-soft); border-color:var(--green-line); }
.devis-carte.aff-variante { background:var(--orange-soft); border-color:var(--orange-line); border-left:3px solid var(--orange-text); }
.devis-carte.aff-gardee .aff-famille.gardee { background:var(--white); color:var(--green); }
.devis-carte.aff-variante .aff-famille { background:var(--white); color:var(--orange-text); }
.aff-tab tr.gardee td { background:var(--green-soft); }
.aff-tab tr.variante td { background:var(--orange-soft); }
.aff-tab tr.gardee:hover td, .aff-tab tr.variante:hover td { filter:brightness(.97); }
.aff-tab tr.gardee .aff-tab-fam.gardee { color:var(--green); }
.aff-tab tr.variante .aff-tab-fam { color:var(--orange-text); }
.aff-tab tr.gardee.coche td, .aff-tab tr.variante.coche td { background:var(--accent-soft); }

/* ─── R-DEMANDE-ATTENTE-CLIENT (01/10/2026) : « ⏸ en attente du client » ─── */
.affatt { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; padding:2px 8px; border-radius:10px; white-space:nowrap; vertical-align:middle; }
.affatt-attente { background:var(--wood-pale); color:var(--wood-mid); }
.affatt-repondu { background:var(--accent-soft); color:var(--accent); }
.affatt-expire  { background:var(--orange-soft); color:var(--orange-text); }
.affatt-retour  { margin-top:8px; font-size:12px; color:var(--text-muted); }
#affatt-date { margin-top:8px; }
.jour-ligne.gris { background:#FBFAF8; }
.jour-ligne.gris .jour-pastille { background:var(--wood-pale); color:var(--wood-mid); }

/* ═══ 05/10/2026 — Notes internes vraiment visibles (js/affaires_notes_visibles.js, R-AFF-NOTES-VISIBLES) ═══
   Maquette « Notes internes Affaires » validée. Jaune « post-it » = notes internes, partout le même. */
:root { --anl-fond:#fff6d9; --anl-bord:#e7c55a; --anl-texte:#7a5a00; --anl-note-bord:#f0dfa6; }
.anl-bandeau { margin:14px 22px 0; background:var(--anl-fond); border:2px solid var(--anl-bord); border-radius:12px; padding:12px 16px; display:flex; flex-direction:column; gap:8px; }
.anl-bandeau.anl-calme { border-width:1px; }
.anl-tete { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--anl-texte); }
.anl-tete .ti { font-size:16px; }
.anl-titre { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.anl-sous { font-size:11px; }
.anl-lien { background:none; border:0; padding:4px 2px; font:inherit; font-size:12px; font-weight:600; color:var(--anl-texte); text-decoration:underline; cursor:pointer; min-height:0; }
.anl-note { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; align-items:start; background:#fff; border:1px solid var(--anl-note-bord); border-radius:8px; padding:10px 12px; }
.anl-note .anl-txt { grid-column:1; }
.anl-note .anl-meta { grid-column:1; }
.anl-note .anl-pin { grid-column:2; grid-row:1 / span 2; }
.anl-txt { font-size:14px; line-height:21px; color:var(--text); white-space:pre-wrap; overflow-wrap:anywhere; }
.anl-txt-s { font-size:13px; line-height:19px; color:var(--text); white-space:pre-wrap; overflow-wrap:anywhere; }
.anl-meta { font-size:12px; color:var(--wood-mid, #6f6457); margin-top:2px; }
.anl-pin { font:inherit; font-size:11px; font-weight:600; padding:6px 10px; border-radius:8px; border:1px solid var(--border); background:#fff; color:var(--wood-mid, #6f6457); cursor:pointer; white-space:nowrap; min-height:0; }
.anl-pin:hover { background:var(--wood-pale); color:var(--text); }
.anl-autres { display:flex; flex-direction:column; gap:6px; border-top:1px dashed var(--anl-bord); padding-top:8px; }
.anl-autre { display:flex; gap:10px; align-items:flex-start; background:rgba(255,255,255,.6); border-radius:8px; padding:8px 10px; }
.anl-ico { width:18px; text-align:center; flex:none; }
.anl-aide { font-size:12px; color:var(--wood-mid, #6f6457); margin:0 0 8px; }
/* Fenêtre « à lire » (dans #devis-modal) */
.anl-fen { margin:-28px; display:flex; flex-direction:column; }
.anl-fen-tete { background:var(--wood-dark); color:#fff; padding:16px 20px; display:flex; align-items:center; gap:10px; border-radius:12px 12px 0 0; }
.anl-fen-tete .ti { font-size:20px; }
.anl-fen-t { font-size:16px; font-weight:700; }
.anl-fen-s { font-size:12px; opacity:.85; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.anl-fen-x { background:none; border:0; color:#fff; font-size:16px; cursor:pointer; padding:6px 8px; border-radius:8px; min-height:0; }
.anl-fen-x:hover { background:rgba(255,255,255,.08); }
.anl-fen-corps { padding:16px 20px; display:flex; flex-direction:column; gap:10px; max-height:60vh; overflow-y:auto; }
.anl-fen-note { background:var(--anl-fond); border:2px solid var(--anl-bord); border-radius:10px; padding:12px 14px; }
.anl-fen-pied { padding:14px 20px; border-top:1px solid var(--border); display:flex; align-items:center; gap:10px; }
.anl-lu { background:var(--green); color:#fff; border:0; font-size:14px; font-weight:700; padding:12px 22px; border-radius:8px; }
.anl-lu:hover { background:var(--wood-dark); color:#fff; }
/* Pastille des listes */
.anl-pastille { font:inherit; font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; border:1px solid var(--anl-bord); background:var(--anl-fond); color:var(--anl-texte); cursor:pointer; white-space:nowrap; min-height:0; line-height:16px; }
.anl-pastille.alire { background:var(--red); border-color:var(--red); color:#fff; }
.anl-pastille:hover { filter:brightness(.95); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:768px) {
  .anl-bandeau { margin:12px 12px 0; border-radius:16px; }
  .anl-note { grid-template-columns:minmax(0,1fr); }
  .anl-note .anl-pin { grid-column:1; grid-row:auto; justify-self:start; min-height:44px; padding:0 14px; font-size:13px; border-radius:12px; }
  .anl-lien { min-height:44px; font-size:13px; }
  .anl-fen-pied { flex-wrap:wrap; }
  .anl-lu { width:100%; min-height:48px; font-size:15px; border-radius:12px; }
  .anl-pastille { min-height:28px; }
}


/* ═══ R-JOUR-COLONNES (12/10/2026) — « Aujourd'hui » en quatre colonnes, filtre par commercial, panneau ═══ */
.jour-v2 .jour-titre { font-size:22px; }
.jour-tete2 { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.jour-tete2-t { flex:1 1 320px; min-width:0; }
.jour-vue-btn { font:inherit; display:flex; align-items:center; gap:10px; padding:9px 14px; border-radius:12px; border:1px solid var(--accent-line); background:var(--white); color:var(--wood-dark); cursor:pointer; text-align:left; transition:border-color .15s, background .15s; }
.jour-vue-btn:hover { border-color:var(--accent); background:var(--accent-soft); }
.jour-vue-btn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.jour-vue-btn > i { font-size:18px; color:var(--accent); }
.jour-vue-btn span { display:flex; flex-direction:column; }
.jour-vue-btn b { font-size:13px; }
.jour-vue-btn small { font-size:11px; color:var(--text-muted); }
.jour-vue-btn em { font-style:normal; color:var(--accent); font-size:16px; }
.jour-vue-btn em.n { font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; background:var(--accent); color:var(--white); }

.jour-filtre { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.jour-filtre-esp { flex:1; }
.jour-chiffres { font-size:12px; color:var(--text-muted); }
.jour-chiffres b { color:var(--wood-dark); font-family:'DM Mono', monospace; font-weight:500; }
.jour-chiffres a { font-weight:600; text-decoration:none; color:var(--accent); }
.jour-com-filtre { position:relative; display:flex; align-items:center; gap:8px; }
.jour-com-filtre-l { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); }
.jour-com-btn { font:inherit; font-size:13px; font-weight:600; min-width:220px; display:flex; align-items:center; gap:8px; padding:6px 10px; border-radius:8px; border:1.5px solid var(--border); background:var(--white); color:var(--text); cursor:pointer; }
.jour-com-btn[aria-expanded="true"], .jour-com-btn:focus-visible { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); outline:none; }
.jour-com-btn > span { flex:1; text-align:left; }
.jour-com-btn small { font-size:11px; color:var(--text-muted); }
.jour-com-btn .ti { color:var(--accent); }
.jour-com-av { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:999px; background:var(--accent); color:var(--white); font-size:10px; font-weight:700; font-style:normal; flex:none; }
.jour-com-av.neutre { background:var(--wood-pale); color:var(--wood-mid); }
.jour-com-av.vide { background:transparent; color:var(--wood-mid); border:1px dashed var(--wood-light); }
.jour-com-menu { position:absolute; top:calc(100% + 6px); left:0; z-index:60; min-width:260px; background:var(--white); border:1px solid var(--border); border-radius:12px; box-shadow:0 14px 40px rgba(23, 62, 84, .18); padding:6px; display:flex; flex-direction:column; }
.jour-com-menu[hidden] { display:none; }
.jour-com-opt { font:inherit; font-size:13px; display:flex; align-items:center; gap:8px; padding:8px 10px; border:none; border-radius:8px; background:transparent; color:var(--text); cursor:pointer; text-align:left; }
.jour-com-opt:hover, .jour-com-opt:focus-visible { background:var(--wood-pale); outline:none; }
.jour-com-opt.actif { background:var(--accent-soft); font-weight:600; }
.jour-com-opt > span { flex:1; }
.jour-com-opt em { font-style:normal; font-weight:400; color:var(--text-muted); }
.jour-com-opt small { font-size:11px; color:var(--text-muted); }
.jour-com-opt .ti-check { color:var(--accent); }
.jour-com-sep { height:1px; background:var(--border); margin:4px 6px; }

.jour-cols { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:14px; align-items:start; }
@media (max-width: 1280px) { .jour-cols { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
.jour-col { min-width:0; }
.jour-col-t { display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:12px; margin-bottom:10px; border:1px solid var(--border); }
.jour-col-t b { font-size:13px; flex:1 1 auto; }
.jour-col-t small { font-size:12px; }
.jour-col-t .n { font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; color:var(--white); }
.jour-col.rouge .jour-col-t { background:var(--red-soft); border-color:var(--red-line); } .jour-col.rouge .jour-col-t b, .jour-col.rouge .jour-col-t small { color:var(--red); } .jour-col.rouge .jour-col-t .n { background:var(--red); }
.jour-col.orange .jour-col-t { background:var(--orange-soft); border-color:var(--orange-line); } .jour-col.orange .jour-col-t b, .jour-col.orange .jour-col-t small { color:var(--orange-text); } .jour-col.orange .jour-col-t .n { background:var(--orange-text); }
.jour-col.bleu .jour-col-t { background:var(--accent-soft); border-color:var(--accent-line); } .jour-col.bleu .jour-col-t b, .jour-col.bleu .jour-col-t small { color:var(--wood-dark); } .jour-col.bleu .jour-col-t .n { background:var(--accent); }
.jour-col.vert .jour-col-t { background:var(--green-soft); border-color:var(--green-line); } .jour-col.vert .jour-col-t b, .jour-col.vert .jour-col-t small { color:var(--green); } .jour-col.vert .jour-col-t .n { background:var(--green); }
.jour-col-c .jour-groupe { margin:12px 0 6px; }
.jour-col-c .jour-groupe:first-child { margin-top:0; }
/* Dans une colonne étroite, la ligne se lit en carte : le texte, puis les boutons dessous. */
.jour-col-c .jour-ligne { flex-wrap:wrap; align-items:flex-start; }
.jour-col-c .jour-ligne-c { flex:1 1 160px; min-width:0; }
.jour-col-c .jour-ligne-k, .jour-col-c .jour-ligne-d { white-space:normal; overflow:visible; text-overflow:clip; }   /* colonne étroite : le titre se lit en entier */
.jour-col-c .jour-ligne-a { flex:1 1 100%; display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-start; padding-left:40px; }
.jour-col-vide { font-size:12px; color:var(--text-muted); padding:10px 14px; border:1px dashed var(--border); border-radius:12px; }
.jour-col-replie { margin-top:8px; }
.jour-col-replie > summary { cursor:pointer; font-size:12px; color:var(--wood-mid); padding:10px 14px; border:1px dashed var(--border); border-radius:12px; list-style-position:inside; }
.jour-col-replie[open] > summary { margin-bottom:8px; }
.jour-com { float:right; margin:0 0 4px 8px; display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:600; padding:2px 8px 2px 2px; border-radius:999px; background:var(--accent-soft); color:var(--wood-dark); }
.jour-com i { font-style:normal; display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:999px; background:var(--accent); color:var(--white); font-size:9px; font-weight:700; }
.jour-com.sans { padding:2px 8px; background:var(--wood-pale); color:var(--wood-mid); font-weight:500; }

.jour-vue { position:fixed; inset:0; z-index:900; }
.jour-vue-fond { position:absolute; inset:0; background:rgba(23, 62, 84, .28); opacity:0; transition:opacity .2s; }
.jour-vue-p { position:absolute; top:0; right:0; bottom:0; width:min(480px, 100vw); background:var(--white); box-shadow:0 14px 40px rgba(23, 62, 84, .18); display:flex; flex-direction:column; transform:translateX(24px); opacity:0; transition:transform .2s, opacity .2s; }
.jour-vue.ouvert .jour-vue-fond { opacity:1; }
.jour-vue.ouvert .jour-vue-p { transform:none; opacity:1; }
@media (prefers-reduced-motion: reduce) { .jour-vue-fond, .jour-vue-p { transition:none; } }
.jour-vue-h { display:flex; align-items:center; gap:10px; padding:18px 22px 0; }
.jour-vue-h h2 { margin:0; flex:1; font-size:16px; font-weight:700; color:var(--wood-dark); }
.jour-vue-x { font:inherit; width:32px; height:32px; border:none; border-radius:8px; background:var(--wood-pale); color:var(--text); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.jour-vue-x:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.jour-vue-tabs { display:flex; gap:6px; padding:12px 22px 0; border-bottom:1px solid var(--border); }
.jour-vue-tabs button { font:inherit; font-size:13px; padding:8px 12px; border:none; background:transparent; color:var(--text-muted); border-bottom:2px solid transparent; cursor:pointer; }
.jour-vue-tabs button.actif { color:var(--wood-dark); font-weight:600; border-bottom-color:var(--accent); }
.jour-vue-tabs .n { font-size:11px; font-weight:700; padding:1px 7px; border-radius:999px; background:var(--accent); color:var(--white); }
.jour-vue-c { flex:1; overflow:auto; padding:14px 22px 22px; }
.jour-vue-c .jour-bloc { border:none; padding:0; }
.jour-col-c .jour-pastille .ti { font-size:18px; font-weight:400; }   /* 12/10/2026 : icône nette (croix du refus) */
.jour-col-c .btn.danger .ti { color:var(--red); }

/* Lignes compactes (12/10/2026, 16:29) : SOCIÉTÉ en capitales grasses sur une ligne, projet plus petit dessous,
   détail plus petit (2 lignes au plus), pastille ronde du commercial. Bureau seulement (colonnes). */
.jour-col-c .jour-ligne-k { display:flex; flex-direction:column; gap:1px; min-width:0; }
.jour-col-c .jour-cli { font-weight:700; text-transform:uppercase; letter-spacing:.02em; font-size:13px; color:var(--wood-dark); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jour-col-c .jour-proj { font-weight:500; font-size:12px; color:var(--wood-mid); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jour-col-c .jour-ligne-d { font-size:11px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.jour-col-c .jour-com { padding:0; background:transparent; }
.jour-col-c .jour-com i { width:22px; height:22px; font-size:10px; }
.jour-col-c .jour-com.sans { padding:2px 6px; background:var(--wood-pale); font-size:10px; }

/* R-JOUR-GROUPES (12/10/2026) : au bureau, chaque groupe a un bandeau-titre lisible (icône, 13 px gras, couleur
   de la catégorie, compteur), séparé du groupe précédent par un espace et un trait. */
.jour-col-c .jour-groupe2 { display:flex; align-items:center; gap:8px; margin:18px 0 8px; padding:7px 10px; border-radius:8px; border:1px solid var(--border); background:var(--white); font-size:13px; }
.jour-col-c .jour-groupe2:first-child { margin-top:0; }
.jour-col-c .jour-groupe2:not(:first-child) { box-shadow:0 -9px 0 -8px var(--border); }
.jour-col-c .jour-groupe2 b { flex:1; min-width:0; font-weight:700; line-height:1.25; }
.jour-col-c .jour-groupe2 .ti { font-size:17px; flex:none; }
.jour-col-c .jour-groupe2 .n { flex:none; font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; color:var(--white); background:var(--wood-mid); }
.jour-groupe2.rouge  { background:var(--red-soft); border-color:var(--red-line); color:var(--red); }       .jour-groupe2.rouge .n  { background:var(--red); }
.jour-groupe2.orange { background:var(--orange-soft); border-color:var(--orange-line); color:var(--orange-text); } .jour-groupe2.orange .n { background:var(--orange-text); }
.jour-groupe2.bleu   { background:var(--accent-soft); border-color:var(--accent-line); color:var(--wood-dark); } .jour-groupe2.bleu .n   { background:var(--accent); }
.jour-groupe2.vert   { background:var(--green-soft); border-color:var(--green-line); color:var(--green); }   .jour-groupe2.vert .n   { background:var(--green); }
.jour-groupe2.gris   { background:var(--wood-pale); border-color:var(--border); color:var(--wood-mid); }   .jour-groupe2.gris .n   { background:var(--wood-mid); }
.jour-groupe2.neutre { background:var(--white); color:var(--wood-dark); }
/* Hiérarchie : la COLONNE en aplat plein (texte blanc), ses GROUPES en bandeau pâle — on ne les confond pas. */
.jour-col.rouge .jour-col-t  { background:var(--red); border-color:var(--red); }
.jour-col.orange .jour-col-t { background:var(--orange-text); border-color:var(--orange-text); }
.jour-col.bleu .jour-col-t   { background:var(--accent); border-color:var(--accent); }
.jour-col.vert .jour-col-t   { background:var(--green); border-color:var(--green); }
.jour-col .jour-col-t b, .jour-col .jour-col-t small { color:var(--white) !important; }
.jour-col .jour-col-t b { font-size:15px; }
.jour-col .jour-col-t .n { background:var(--white) !important; color:var(--wood-dark); }
/* 12/10/2026 16:40 (Julien : « dans Ensuite, accords et en attente sont fades ») : au bureau, ces lignes se lisent
   comme les autres — fond blanc, texte normal ; le bandeau dit « en attente », pas la couleur du texte. */
.jour-groupe2.attente { background:var(--white); border-color:var(--wood-light); color:var(--wood-dark); } .jour-groupe2.attente .n { background:var(--wood-dark); }
.jour-col-c .jour-ligne.gris { background:var(--white); }
.jour-col-c .jour-ligne.gris .jour-ligne-k, .jour-col-c .jour-ligne.gris .jour-cli { color:var(--wood-dark); font-weight:700; }
.jour-col-c .jour-ligne.gris .jour-ligne-d { color:var(--text-muted); }
.jour-col-c .jour-ligne.gris .jour-pastille { background:var(--wood-pale); color:var(--wood-dark); }
.jour-col-replie > summary { color:var(--wood-dark); font-weight:600; border-style:solid; border-color:var(--wood-light); background:var(--white); }
.jour-col-replie > summary.jour-groupe2 { list-style:none; cursor:pointer; margin:18px 0 8px; padding:7px 10px; font-weight:400; }
.jour-col-replie > summary.jour-groupe2::-webkit-details-marker { display:none; }
.jour-col-replie > summary.jour-groupe2::after { content:'▾'; color:var(--wood-mid); margin-left:4px; }
.jour-col-replie:not([open]) > summary.jour-groupe2::after { content:'▸'; }
/* A v4 (12/10/2026) : 4e colonne « À chiffrer » (marine) ; « On attend le client » = bouton orange + onglet du panneau. */
.jour-col.marine .jour-col-t { background:var(--wood-dark); border-color:var(--wood-dark); }
.jour-col-note { font-size:12px; color:var(--text-muted); padding:6px 4px; }
.jour-vue-btn.attente { background:var(--orange-soft); border-color:var(--orange-line); color:var(--orange-text); }
.jour-vue-btn.attente:hover { background:var(--orange-soft); border-color:var(--orange-text); }
.jour-vue-btn.attente > i, .jour-vue-btn.attente small { color:var(--orange-text); }
.jour-vue-btn.attente em.n { background:var(--orange-text); }
.jour-vue-btn.attente.vide { background:var(--white); border-color:var(--accent-line); color:var(--wood-dark); }
.jour-vue-btn.attente.vide > i, .jour-vue-btn.attente.vide small { color:var(--text-muted); }
.jour-vue-btn.attente.vide em.n { background:var(--wood-mid); }
.jour-vue-tabs .n.attente { background:var(--orange-text); }
.jour-attente-intro { font-size:12px; color:var(--text-muted); margin-bottom:12px; line-height:1.5; }

/* R-JOUR-MOBILE (12/10/2026) : le téléphone suit le bureau — filtre, lignes compactes, « On attend le client ». */
.jour-mob .jour-ligne-k { display:flex; flex-direction:column; gap:1px; min-width:0; }
.jour-mob .jour-cli { font-weight:700; text-transform:uppercase; letter-spacing:.02em; font-size:14px; color:var(--wood-dark); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jour-mob .jour-proj { font-weight:500; font-size:13px; color:var(--wood-mid); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jour-mob .jour-com { float:right; margin:0 0 4px 8px; display:inline-flex; }
.jour-mob .jour-com i { font-style:normal; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:999px; background:var(--accent); color:var(--white); font-size:10px; font-weight:700; }
.jour-mob .jour-com.sans { padding:2px 8px; border-radius:999px; background:var(--wood-pale); color:var(--wood-mid); font-size:11px; }
.jour-mob-barre { display:flex; flex-direction:column; gap:8px; margin:0 12px 12px; }
.jour-mob-btn { font:inherit; display:flex; align-items:center; gap:8px; min-height:48px; padding:10px 14px; border-radius:12px; border:1px solid var(--accent-line); background:var(--white); color:var(--wood-dark); text-align:left; cursor:pointer; }
.jour-mob-btn b { font-size:14px; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jour-mob-btn small { font-size:12px; color:var(--text-muted); }
.jour-mob-btn-l { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); }
.jour-mob-btn .ti { color:var(--accent); font-size:16px; }
.jour-mob-btn.attente { background:var(--orange-soft); border-color:var(--orange-line); color:var(--orange-text); }
.jour-mob-btn.attente b { flex:none; }
.jour-mob-btn.attente small { flex:1; color:var(--orange-text); }
.jour-mob-btn.attente .ti { color:var(--orange-text); }
.jour-mob-btn.attente em { font-style:normal; font-size:12px; font-weight:700; padding:2px 9px; border-radius:999px; background:var(--orange-text); color:var(--white); }
.jour-mob .jour-ligne-c { flex:1 1 0; min-width:0; }   /* le nom en capitales ne pousse plus les boutons hors de l'écran */
.jour-mob .jour-grille { grid-template-columns:minmax(0,1fr); }   /* la colonne unique ne s'élargit plus au-delà de l'écran */
.jour-mob .jour-grille > * { min-width:0; }
