[hidden] { display: none !important; }
/* Suivi des dossiers d'importation — feuille de style
   Barre de navigation en haut, contenu en colonne ; fiche dossier = frise des étapes + volet paiement */
:root{
  --bg:#F2F4F1; --surface:#FFFFFF; --sunk:#E8ECE8; --ink:#17211F; --muted:#5C6964; --line:#D8DDD8;
  --accent:#0E5D5A; --accent-ink:#FFFFFF; --accent-soft:#DCEBE9;
  --late:#B83A28; --late-ink:#FFFFFF; --late-soft:#F7E1DC; --warn:#9A6512; --warn-soft:#F6EBD3;
  --ok:#2C7A4B; --ok-soft:#DCEFE2; --pay:#6347A0; --pay-soft:#E9E3F5;
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:8px;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#111816; --surface:#19211F; --sunk:#222B29; --ink:#E5ECE9; --muted:#97A49F; --line:#2D3835;
  --accent:#55B6B0; --accent-ink:#0B1413; --accent-soft:#1D3735;
  --late:#F0806C; --late-ink:#1A0D0A; --late-soft:#3A201B; --warn:#E2B356; --warn-soft:#352B17;
  --ok:#6CC490; --ok-soft:#18301F; --pay:#AE97DE; --pay-soft:#2A2340; color-scheme:dark}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.5}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;letter-spacing:-.01em}
h2{font-size:1.3rem;font-weight:700}
h3{font-size:1rem;font-weight:600}
a{color:var(--accent)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.wrap{max-width:1180px;margin:0 auto;padding-inline:16px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
form.inline{display:inline}

/* Barre du haut */
.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding-block:12px}
.brand{display:flex;align-items:baseline;gap:10px;margin-right:auto;text-decoration:none;color:var(--ink)}
.brand h1{font-size:1.15rem;font-weight:700}
.brand .tag{font-family:var(--f-mono);font-size:.72rem;color:var(--muted);letter-spacing:.04em}
.who{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--muted)}
.who b{color:var(--ink)}
.tabs{display:flex;gap:4px;overflow-x:auto}
.tab{border-bottom:2px solid transparent;padding:8px 12px;color:var(--muted);font-weight:600;white-space:nowrap;text-decoration:none}
.tab[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
.tab .count{font-family:var(--f-mono);font-size:.72rem;background:var(--late-soft);color:var(--late);border-radius:10px;padding:1px 6px;margin-left:4px}

main{padding-block:24px 56px;display:flex;flex-direction:column;gap:24px}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.head p{margin:4px 0 0;color:var(--muted)}

/* Messages */
.flashes{display:flex;flex-direction:column;gap:8px}
.flash{padding:10px 14px;border-radius:6px;font-weight:500;border:1px solid}
.flash.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.flash.erreur{background:var(--late-soft);color:var(--late);border-color:transparent}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 12px;cursor:pointer;font-weight:600;font-size:.85rem;text-decoration:none;color:var(--ink)}
.btn:hover{background:var(--sunk)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.danger{color:var(--late)}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.btn.sm{padding:4px 9px;font-size:.78rem}
.link{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font-weight:600;text-decoration:underline;text-underline-offset:2px;font-size:inherit}

/* Pastilles d'état */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.late{background:var(--late-soft);color:var(--late)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.done,.pill.closed{background:var(--ok-soft);color:var(--ok)}
.pill.cur,.pill.ok,.pill.current{background:var(--accent-soft);color:var(--accent)}
.pill.todo{background:var(--sunk);color:var(--muted)}
.pill.pay{background:var(--pay-soft);color:var(--pay)}

/* Indicateurs */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.stat .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.stat .v{font-family:var(--f-display);font-size:1.7rem;font-weight:700;font-variant-numeric:tabular-nums}
.stat .s{font-size:.78rem;color:var(--muted)}
.stat.alert .v{color:var(--late)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:900px){.cols{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.panel>header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.panel>header .k,.k-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.rows{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.row:first-child{border-top:0}
.row:hover{background:var(--sunk)}
.row .t{font-weight:600}
.row .sub{font-size:.8rem;color:var(--muted)}
.empty{padding:20px 16px;color:var(--muted)}
.date-chip{font-family:var(--f-mono);font-size:.74rem;text-align:center;min-width:52px;border:1px solid var(--line);border-radius:6px;padding:3px 6px;line-height:1.25}
.date-chip b{display:block;font-size:1rem;font-family:var(--f-display)}
.date-chip.late{color:var(--late);border-color:var(--late)}

/* Tableaux */
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:760px}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;font-weight:600;padding:10px 14px;border-bottom:1px solid var(--line)}
td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:hover td{background:var(--sunk)}
tbody tr:last-child td{border-bottom:0}
td a.cell{color:inherit;text-decoration:none;display:block}
.num{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.prog{display:flex;align-items:center;gap:8px;min-width:150px}
.prog .bar{display:flex;gap:2px;flex:1}
.prog .bar i{height:6px;flex:1;border-radius:1px;background:var(--sunk)}
.prog .bar i.done{background:var(--accent)}
.prog .bar i.late{background:var(--late)}
.prog .bar i.warn{background:var(--warn)}
.filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:.8rem;font-weight:600;color:var(--muted);text-decoration:none}
.chip[aria-current="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.search{margin-left:auto;display:flex;gap:6px}
.search input{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 10px;min-width:0;width:220px;max-width:100%}

/* Fiche dossier */
.dhead{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-start;justify-content:space-between}
.dhead .ref{font-family:var(--f-mono);font-size:.85rem;color:var(--accent);font-weight:500;letter-spacing:.02em}
.dhead h2{font-size:1.5rem;margin-top:2px}
.dhead .actions{justify-content:flex-end}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.fact{padding:10px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0}
.fact .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.fact .v{font-weight:600;overflow-wrap:anywhere}
.fact input{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:4px 7px;font-family:var(--f-mono);font-size:.85rem}
.facts-form{display:flex;flex-direction:column;gap:8px}
.facts-form .save{display:flex;justify-content:flex-end}

.steps{list-style:none;margin:0;padding:0}
.step{border-top:1px solid var(--line)}
.step:first-child{border-top:0}
.step-h{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;text-decoration:none;color:var(--ink)}
.step-h:hover{background:var(--sunk)}
.n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-mono);font-size:.78rem;font-weight:500;border:1.5px solid var(--line);color:var(--muted);background:var(--surface)}
.step.done .n{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.step.late .n{border-color:var(--late);color:var(--late);background:var(--late-soft)}
.step.warn .n{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.step.current .n{border-color:var(--accent);color:var(--accent)}
.step-h .t{font-weight:600}
.step.todo .step-h .t{color:var(--muted);font-weight:500}
.step-h .sub{font-size:.78rem;color:var(--muted)}
.step-b{padding:4px 16px 16px 58px;display:flex;flex-direction:column;gap:12px}
@media (max-width:520px){.step-b{padding-left:16px}}
.docs{display:flex;flex-direction:column;gap:6px}
.doc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 10px;border:1px dashed var(--line);border-radius:6px}
.doc.has{border-style:solid;background:var(--bg)}
.doc .dn{font-weight:600;margin-right:auto;min-width:0}
.doc .fn{font-family:var(--f-mono);font-size:.76rem;color:var(--muted);overflow-wrap:anywhere}
.ico{width:18px;height:18px;border-radius:4px;display:inline-grid;place-items:center;font-size:.7rem;font-weight:700;background:var(--sunk);color:var(--muted);flex:none}
.doc.has .ico{background:var(--ok-soft);color:var(--ok)}
.upload{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.upload select,.upload input[type=file]{max-width:100%;min-width:0}
.upload select{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:5px 8px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.hint{font-size:.8rem;color:var(--muted)}
.hint.bad{color:var(--late)}
.validate-form{display:flex;flex-direction:column;gap:8px}
.validate-form input{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:6px 8px;width:100%}

.side{display:flex;flex-direction:column;gap:20px}
.pay-card{padding:14px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.pay-card:first-of-type{border-top:0}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 14px;font-size:.84rem;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.mini-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px}
.mini-form label,.form label{display:flex;flex-direction:column;gap:3px;font-size:.74rem;color:var(--muted);font-weight:600}
.mini-form .full,.form .full{grid-column:1/-1}
.mini-form input,.mini-form select,.form input,.form select,.form textarea{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:6px 8px;font-size:.85rem;width:100%;color:var(--ink)}
.journal{list-style:none;margin:0;padding:8px 16px 14px;display:flex;flex-direction:column;gap:9px;max-height:360px;overflow:auto}
.journal li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;font-size:.82rem}
.journal .when{font-family:var(--f-mono);color:var(--muted);font-size:.72rem;padding-top:1px}

/* Formulaires pleine page */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}
.form footer{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
@media (max-width:560px){.form,.mini-form{grid-template-columns:minmax(0,1fr)}}

/* Calendrier */
.cal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-head h2{min-width:170px;text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);background:var(--surface);border-radius:var(--r);overflow:hidden}
.cal .dow{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cal .dow.we,.day.we{background:var(--sunk)}
.day{min-height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px;display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--ink);min-width:0}
.day.out{opacity:.4}
.day.sel{box-shadow:inset 0 0 0 2px var(--accent)}
.day .dn{font-family:var(--f-mono);font-size:.76rem;color:var(--muted)}
.day.today .dn{background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:0 5px;align-self:flex-start}
.ev{font-size:.7rem;font-weight:600;border-radius:4px;padding:2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid currentColor}
.ev.cur{background:var(--accent-soft);color:var(--accent)}
.ev.todo{background:var(--sunk);color:var(--muted)}
.ev.late{background:var(--late-soft);color:var(--late)}
.ev.pay{background:var(--pay-soft);color:var(--pay)}
.ev.more{border-left:0;background:none;color:var(--muted)}
.dots{display:none;gap:3px;flex-wrap:wrap}
.dots i{width:6px;height:6px;border-radius:50%}
.dots i.cur{background:var(--accent)}.dots i.todo{background:var(--muted)}.dots i.late{background:var(--late)}.dots i.pay{background:var(--pay)}
@media (max-width:640px){.day{min-height:56px}.day .ev{display:none}.dots{display:flex}}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:2px}

/* Paramètres */
.param-table td{vertical-align:top}
.param-table input[type=number]{width:70px}
.param-table textarea{width:100%;min-width:220px;min-height:60px;border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:5px 7px;font-size:.82rem;color:var(--ink)}
.param-table select,.param-table input{border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:5px 7px;color:var(--ink)}

/* Connexion */
.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login .panel{width:min(380px,100%);padding:28px 24px;display:flex;flex-direction:column;gap:16px}
.login label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:600;color:var(--muted)}
.login input{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:9px 10px;font-size:.95rem;color:var(--ink)}
.login .btn{justify-content:center;padding:10px}

/* ---------- Avatars, notifications ---------- */
.avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--f-mono);font-size:.7rem;font-weight:500;flex:none;letter-spacing:.02em}
.avatar.sm{width:24px;height:24px;font-size:.64rem}
.avatar.xs{width:18px;height:18px;font-size:.56rem}
.avatar.r-dc{background:var(--warn-soft);color:var(--warn)}
.avatar.r-cpt{background:var(--pay-soft);color:var(--pay)}
.avatar.r-pdg{background:var(--ink);color:var(--bg)}
.avatar.vide{background:none;border:1.5px dashed var(--line);color:var(--muted)}
.bell{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:6px;color:var(--muted)}
.bell:hover{background:var(--sunk)}
.bell.on{color:var(--ink)}
.bell .badge{position:absolute;top:0;right:-2px;background:var(--late);color:#fff;font-family:var(--f-mono);font-size:.62rem;border-radius:9px;padding:0 5px;line-height:16px}
.notif .dot-nl{width:8px;height:8px;border-radius:50%;background:transparent}
.notif.nonlu .dot-nl{background:var(--late)}
.notif.nonlu .t{font-weight:600}
.notif .t{font-weight:400}
.mention{color:var(--accent);font-weight:600;background:var(--accent-soft);border-radius:4px;padding:0 3px}

/* ---------- Fiche : responsable et commentaires ---------- */
.step-r{display:flex;align-items:center;gap:8px}
.assign{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.assign select{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:5px 8px;color:var(--ink)}
.fil{display:flex;flex-direction:column;gap:10px}
.com{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px}
.com-h{font-size:.8rem}
.com-t{font-size:.88rem;overflow-wrap:anywhere}
.com-form{display:flex;flex-direction:column;gap:6px}
.com-form textarea{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 9px;resize:vertical;color:var(--ink);font-size:.88rem}
.com-form .actions{justify-content:space-between}
.mention-chips{display:none;flex-wrap:wrap;gap:4px}
.com-form.actif .mention-chips{display:flex}
.chip-m{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:1px 8px;font-size:.72rem;font-family:var(--f-mono);cursor:pointer;color:var(--accent)}
.chip-m:hover{background:var(--accent-soft)}
.tasks.retard>header .k{color:var(--late)}
.late-txt{color:var(--late);font-weight:600}

/* ---------- Kanban ---------- */
.board-wrap{overflow-x:auto;margin-inline:-16px;padding:0 16px 8px}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:236px;gap:12px;align-items:start;min-height:300px}
.col{background:var(--sunk);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:6px;min-height:200px;transition:background .12s}
.col header{display:flex;align-items:center;gap:8px}
.col-n{font-size:.72rem;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;background:var(--surface)}
.col-t{font-weight:700;font-family:var(--f-display);font-size:.9rem;margin-right:auto}
.col-sub{font-size:.72rem;color:var(--muted);margin-top:-2px}
.cards{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.col-vide{color:var(--muted);text-align:center;padding:14px 0;font-size:.8rem}
.col.cible{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-2px}
.col.survol:not(.cible){background:var(--late-soft)}
.card{display:flex;flex-direction:column;gap:3px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:6px;padding:9px 10px;text-decoration:none;color:var(--ink);cursor:grab}
.card:hover{border-color:var(--muted)}
.card.late{border-left-color:var(--late)}
.card.warn{border-left-color:var(--warn)}
.card.current{border-left-color:var(--accent)}
.card.done{border-left-color:var(--ok);cursor:pointer}
.card.drag{opacity:.45}
.card-ref{font-size:.72rem;color:var(--accent)}
.card-t{font-weight:600;line-height:1.3}
.card-m{font-size:.78rem;color:var(--muted);line-height:1.3}
.card-f{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:.74rem;flex-wrap:wrap}
.card-f .muted:last-child{margin-left:auto}
#board-info{position:sticky;top:110px;z-index:4}

/* ---------- Chronologie (Gantt) ---------- */
.gantt-wrap{overflow-x:auto}
.gantt{min-width:900px}
.g-head,.g-row{display:grid;grid-template-columns:230px minmax(0,1fr);border-bottom:1px solid var(--line)}
.g-row:last-child{border-bottom:0}
.g-head{position:sticky;top:0;background:var(--surface);z-index:2}
.g-label{padding:9px 14px;display:flex;flex-direction:column;gap:1px;min-width:0;text-decoration:none;color:var(--ink);border-right:1px solid var(--line)}
.g-row .g-label:hover{background:var(--sunk)}
.g-ref{font-size:.72rem;color:var(--accent)}
.g-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-cur{font-size:.74rem;color:var(--muted);display:flex;align-items:center;gap:5px}
.g-track{position:relative;min-height:62px}
.g-head .g-track{min-height:30px}
.g-tick{position:absolute;bottom:6px;transform:translateX(-50%);font-family:var(--f-mono);font-size:.66rem;color:var(--muted);white-space:nowrap}
.g-tick.mois{transform:none;padding-left:4px;color:var(--ink);font-weight:600;font-family:var(--f-body);font-size:.72rem;text-transform:capitalize;border-left:1px solid var(--muted)}
.g-grid{position:absolute;top:0;bottom:0;width:1px;background:var(--line);opacity:.6}
.g-grid.mois{background:var(--muted);opacity:.5}
.g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--late);z-index:1}
.g-bar{position:absolute;top:21px;height:20px;border-radius:4px;font-family:var(--f-mono);font-size:.62rem;display:grid;place-items:center;text-decoration:none;overflow:hidden;color:var(--muted);background:var(--sunk);border:1px solid var(--line);z-index:1}
.g-bar.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.g-bar.current,.g-bar.warn{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}
.g-bar.warn{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.g-bar.late{background:var(--late);border-color:var(--late);color:#fff;font-weight:600}
.g-bar:hover{filter:brightness(1.1);z-index:3}
.g-jalon{position:absolute;top:44px;width:11px;height:11px;background:var(--pay);transform:translateX(-50%) rotate(45deg);z-index:2;border:2px solid var(--surface)}
.g-jalon.late{background:var(--late)}
.legend i.losange{background:var(--pay);transform:rotate(45deg);width:9px;height:9px}

/* Certificat EUR.1 */
.eur1{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:6px;background:var(--accent-soft);color:var(--ink);font-size:.85rem}
.eur1.na{background:var(--sunk);color:var(--muted)}
.eur1 input{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:5px 8px;min-width:0;flex:1}

/* Fil d'échanges : types, destinataires, points à résoudre */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tmsg{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.02em;border-radius:4px;padding:1px 6px;white-space:nowrap}
.tmsg.t-info{background:var(--accent-soft);color:var(--accent)}
.tmsg.t-obstacle{background:var(--late-soft);color:var(--late)}
.tmsg.t-demande{background:var(--warn-soft);color:var(--warn)}
.tmsg.t-message{background:var(--pay-soft);color:var(--pay)}
.com.ouvert{border-left:3px solid var(--late);padding-left:8px;margin-left:-11px}
.com.ouvert.t-demande{border-left-color:var(--warn)}
.com-h{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.resoudre{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.resoudre input{flex:1;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:4px 8px;font-size:.82rem;color:var(--ink)}
.resolu{font-size:.76rem;color:var(--ok);margin-top:4px;font-weight:600}
.types{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.type-opt,.dest-opt{position:relative;cursor:pointer}
.type-opt input,.dest-opt input{position:absolute;opacity:0;pointer-events:none}
.type-opt span,.dest-opt span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:3px 11px;font-size:.78rem;font-weight:600;color:var(--muted);background:var(--surface)}
.type-opt input:checked+span{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
.type-opt.t-obstacle input:checked+span{background:var(--late);border-color:var(--late);color:var(--late-ink)}
.type-opt.t-demande input:checked+span{background:var(--warn);border-color:var(--warn);color:var(--surface)}
.type-opt.t-message input:checked+span{background:var(--pay);border-color:var(--pay);color:var(--surface)}
.dest{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dest-opt input:checked+span{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.type-opt input:focus-visible+span,.dest-opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.card-flags{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.points .com{background:var(--bg);border-radius:6px;padding:8px 10px;margin-left:0}

/* Paiement : rappel J-x */
.rappel-in{display:flex;align-items:center;gap:4px;font-family:var(--f-mono);color:var(--ink)}
.rappel-in input{width:80px}
.form-sep{margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}
.rappel-txt:empty{display:none}

/* Récapitulatif fournisseurs */
.date-in{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 8px;color:var(--ink)}
.recap-total{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.rt-titre{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.rt-dev{font-weight:600;background:var(--sunk);border-radius:4px;padding:0 6px}
.rt-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:700px){.rt-cases{grid-template-columns:minmax(0,1fr)}}
.rt-case{border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.rt-v{font-family:var(--f-display);font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rt-case.ok .rt-v{color:var(--ok)}
.rt-case.credit{border-color:var(--warn);background:var(--warn-soft)}
.rt-case.credit .rt-v{color:var(--warn)}
.rt-bar,.mini-bar{height:6px;background:var(--sunk);border-radius:3px;overflow:hidden}
.rt-bar i,.mini-bar i{display:block;height:100%;background:var(--ok)}
.mini-bar{width:80px;display:inline-block;vertical-align:middle;margin-right:6px}
table.recap tr.total td{font-weight:700;background:var(--sunk);border-top:2px solid var(--line)}
table.recap tbody+tbody tr:first-child td{border-top:12px solid var(--bg)}
.credit-txt{color:var(--warn);font-weight:600}

/* Fiches fournisseurs et équipe */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.fcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);min-width:0}
a.fcard:hover{border-color:var(--muted)}
.fcard.inactif{opacity:.6}
.fc-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:1rem}
.fc-h a{color:var(--ink);text-decoration:none}
.fc-c{font-size:.84rem;overflow-wrap:anywhere}
.fc-s{font-size:.82rem;margin-top:4px;padding-top:6px;border-top:1px solid var(--line)}
.kv.fiche{padding:12px 16px;gap:8px 18px}
.contacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:12px 16px}
.contact{border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.contact.principal{border-color:var(--accent)}
.ct-h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.wa{font-size:.72rem;font-weight:700;color:var(--ok);margin-left:6px}
.form textarea{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:6px 8px;font-size:.85rem;width:100%;color:var(--ink)}
.form .check{flex-direction:row;align-items:center;gap:8px}
.form .check input{width:auto}
.h-link{color:inherit;text-decoration:none;border-bottom:1px dashed var(--muted)}
.h-link:hover{color:var(--accent)}
details summary{cursor:pointer;list-style:none;font-size:.82rem}
details[open] summary{margin-bottom:8px}
