/* Feuille de style unique de l'application. Valeurs exclusivement issues de tokens.css. */

*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--text-md); -webkit-text-size-adjust: 100%; }
body {
  margin: var(--space-0);
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-text);
  font-size: var(--text-md);
  line-height: var(--leading);
}
h1, h2, h3, h4 { font-family: var(--font-serif); font-weight: var(--weight-strong); line-height: var(--leading-tight); margin: var(--space-0) var(--space-0) var(--space-3); }
h1 { font-size: var(--text-2xl); }
h2 { font-size: var(--text-xl); }
h3 { font-size: var(--text-lg); }
h4 { font-size: var(--text-md); }
p { margin: var(--space-0) var(--space-0) var(--space-3); max-width: var(--measure); }
a { color: var(--color-accent); text-underline-offset: var(--space-1); }
a:hover { color: var(--color-accent-hover); }
:focus-visible { outline: var(--focus-ring) solid var(--color-accent); outline-offset: var(--line-strong); }
code, kbd, .mono { font-family: var(--font-mono); font-size: var(--text-sm); }
kbd { border: var(--line) solid var(--color-border-strong); border-radius: var(--radius-sm); padding: var(--space-0) var(--space-1); background: var(--color-surface-raised); }
.num, .ref, .cote, td.num, th.num { font-variant-numeric: tabular-nums; }
.muted { color: var(--color-text-muted); }
.small { font-size: var(--text-sm); }
.visually-hidden { position: absolute; width: var(--line); height: var(--line); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.icon { width: var(--size-icon); height: var(--size-icon); flex: none; vertical-align: middle; stroke: currentColor; }
.icon-lg { width: var(--size-icon-lg); height: var(--size-icon-lg); }
hr { border: none; border-top: var(--line) solid var(--color-border); margin: var(--space-4) var(--space-0); }

/* Bandeau de démonstration */
.demo-banner {
  background: var(--color-demo-bg);
  color: var(--color-demo-text);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  padding: var(--space-1) var(--space-4);
  border-bottom: var(--line) solid var(--color-border-strong);
}

/* Mise en page */
.shell { display: grid; grid-template-columns: var(--size-sidebar) 1fr; min-height: 100vh; }
.sidebar-col { background: var(--color-surface); border-right: var(--line) solid var(--color-border); }
.sidebar {
  padding: var(--space-3) var(--space-0);
  position: sticky; top: var(--space-0); height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column;
}
.sidebar .brand { font-family: var(--font-serif); font-weight: var(--weight-strong); font-size: var(--text-lg); padding: var(--space-1) var(--space-4) var(--space-3); color: var(--color-text); text-decoration: none; display: block; }
.nav { list-style: none; margin: var(--space-0); padding: var(--space-0); }
.nav a {
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-2) var(--space-4);
  color: var(--color-text); text-decoration: none; font-size: var(--text-sm);
  border-left: var(--line-strong) solid transparent;
  transition: background var(--transition);
}
.nav a:hover { background: var(--color-accent-soft); }
.nav a[aria-current="page"] { border-left-color: var(--color-accent); background: var(--color-accent-soft); font-weight: var(--weight-medium); }
.sidebar .sidebar-foot { margin-top: auto; padding: var(--space-3) var(--space-4); font-size: var(--text-sm); border-top: var(--line) solid var(--color-border); }
.main { min-width: var(--space-0); display: flex; flex-direction: column; }
.topbar {
  display: flex; align-items: center; gap: var(--space-3);
  min-height: var(--size-topbar); padding: var(--space-2) var(--space-5);
  border-bottom: var(--line) solid var(--color-border); background: var(--color-surface);
}
.topbar .spacer { flex: 1; }
.content { padding: var(--space-5); max-width: var(--size-content); width: 100%; }
.btn.menu-toggle { display: none; }

.breadcrumb { font-size: var(--text-sm); color: var(--color-text-muted); margin-bottom: var(--space-2); }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-0); padding: var(--space-0); }
.breadcrumb li + li::before { content: "/"; margin-right: var(--space-2); color: var(--color-border-strong); }
.breadcrumb a { color: var(--color-text-muted); }

.page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-5); }
.page-head h1 { margin: var(--space-0); }
.page-head .ref { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--color-text-muted); display: block; }
.actions { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }

/* Boutons */
.btn {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: var(--size-control); padding: var(--space-1) var(--space-3);
  font: inherit; font-size: var(--text-sm); font-weight: var(--weight-medium);
  color: var(--color-text); background: var(--color-surface-raised);
  border: var(--line) solid var(--color-border-strong); border-radius: var(--radius);
  text-decoration: none; cursor: pointer;
  transition: background var(--transition), border-color var(--transition);
}
.btn:hover { background: var(--color-accent-soft); border-color: var(--color-accent-line); color: var(--color-text); }
.btn:active { background: var(--color-accent-line); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }
.btn-primary { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-on-accent); }
.btn-primary:hover { background: var(--color-accent-hover); border-color: var(--color-accent-hover); color: var(--color-on-accent); }
.btn-danger { color: var(--color-danger); border-color: var(--color-danger); }
.btn-danger:hover { background: var(--color-danger-soft); color: var(--color-danger); border-color: var(--color-danger); }
.btn-quiet { border-color: transparent; background: transparent; }
.btn-sm { min-height: var(--size-control-sm); padding: var(--space-0) var(--space-2); }
.htmx-request .btn, .btn.htmx-request { opacity: 0.7; cursor: progress; }
.link-button { background: none; border: none; padding: var(--space-0); font: inherit; color: var(--color-accent); text-decoration: underline; cursor: pointer; }

/* Formulaires */
form.stack, .stack { display: flex; flex-direction: column; gap: var(--space-4); }
.form { max-width: var(--size-form); }
.form-narrow { max-width: var(--size-narrow); }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(var(--space-0), 1fr)); gap: var(--space-4); }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(var(--space-0), 1fr)); gap: var(--space-4); }
.field { display: flex; flex-direction: column; gap: var(--space-1); }
.field label, .label { font-size: var(--text-sm); font-weight: var(--weight-medium); }
.field .help { font-size: var(--text-sm); color: var(--color-text-muted); margin: var(--space-0); }
.field .error { font-size: var(--text-sm); color: var(--color-danger); margin: var(--space-0); }
input[type="text"], input[type="password"], input[type="email"], input[type="search"], input[type="number"],
input[type="date"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="url"], select, textarea {
  font: inherit; font-size: var(--text-md); color: var(--color-text);
  background: var(--color-surface-raised);
  border: var(--line) solid var(--color-border-strong); border-radius: var(--radius);
  min-height: var(--size-control); padding: var(--space-1) var(--space-2);
  width: 100%;
  transition: border-color var(--transition);
}
input:hover, select:hover, textarea:hover { border-color: var(--color-text-muted); }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: var(--focus-ring) solid var(--color-accent); outline-offset: var(--space-0); border-color: var(--color-accent); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--color-danger); }
input[disabled], select[disabled], textarea[disabled] { background: var(--color-zebra); color: var(--color-text-muted); }
textarea { min-height: calc(var(--size-control) * 3); resize: vertical; }
.checkbox { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--color-accent); width: var(--size-icon); height: var(--size-icon); }
fieldset { border: var(--line) solid var(--color-border); border-radius: var(--radius); padding: var(--space-3) var(--space-4); margin: var(--space-0); }
legend { font-size: var(--text-sm); font-weight: var(--weight-medium); padding: var(--space-0) var(--space-1); }
.form-actions { display: flex; gap: var(--space-2); align-items: center; padding-top: var(--space-2); }

/* Panneaux */
.panel { background: var(--color-surface-raised); border: var(--line) solid var(--color-border); border-radius: var(--radius); margin-bottom: var(--space-5); }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-bottom: var(--line) solid var(--color-border); }
.panel-head h2, .panel-head h3 { margin: var(--space-0); font-size: var(--text-lg); }
.panel-body { padding: var(--space-4); }
.panel-body > :last-child { margin-bottom: var(--space-0); }
.columns { display: grid; grid-template-columns: repeat(2, minmax(var(--space-0), 1fr)); gap: var(--space-5); align-items: start; }
.columns-3-1 { display: grid; grid-template-columns: 3fr 1fr; gap: var(--space-5); align-items: start; }
.columns-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: var(--space-5); align-items: start; }

dl.meta { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-1) var(--space-4); margin: var(--space-0); font-size: var(--text-sm); }
dl.meta dt { color: var(--color-text-muted); }
dl.meta dd { margin: var(--space-0); }

/* Tableaux */
.table-wrap { overflow: auto; max-height: 70vh; border: var(--line) solid var(--color-border); border-radius: var(--radius); background: var(--color-surface-raised); }
.table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.table th, .table td { text-align: left; padding: var(--space-2) var(--space-3); border-bottom: var(--line) solid var(--color-border); vertical-align: top; }
.table thead th { position: sticky; top: var(--space-0); background: var(--color-surface); font-weight: var(--weight-strong); z-index: 1; white-space: nowrap; }
.table tbody tr:nth-child(even) { background: var(--color-zebra); }
.table tbody tr:hover { background: var(--color-accent-soft); }
.table .num, .table td.num, .table th.num { text-align: right; }
.table td.date, .table td.num, .table td.mono { white-space: nowrap; font-variant-numeric: tabular-nums; }
.table th a, .table th .link-button { color: var(--color-text); text-decoration: none; font-weight: var(--weight-strong); }
.table th .link-button:hover { text-decoration: underline; }
.table th[aria-sort="ascending"] .link-button::after { content: " \2191"; }
.table th[aria-sort="descending"] .link-button::after { content: " \2193"; }
.table-compact .table th, .table-compact .table td, .table.table-compact th, .table.table-compact td { padding: var(--space-1) var(--space-2); }
.table-tools { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: flex-end; margin-bottom: var(--space-3); }
.table-tools .field { min-width: var(--size-col-md); }
.table-tools .spacer { flex: 1; }

/* Statuts, badges, notices */
.status { display: inline-block; font-size: var(--text-sm); padding: var(--space-0) var(--space-2); border: var(--line) solid var(--color-border-strong); border-radius: var(--radius-sm); white-space: nowrap; }
.status-ok { color: var(--color-success); border-color: var(--color-success); background: var(--color-success-soft); }
.status-warn { color: var(--color-warning); border-color: var(--color-warning); background: var(--color-warning-soft); }
.status-danger { color: var(--color-danger); border-color: var(--color-danger); background: var(--color-danger-soft); }
.status-accent { color: var(--color-accent); border-color: var(--color-accent-line); background: var(--color-accent-soft); }
.notice { border: var(--line) solid var(--color-border-strong); border-left-width: var(--space-1); border-radius: var(--radius); padding: var(--space-3) var(--space-4); margin-bottom: var(--space-4); background: var(--color-surface-raised); font-size: var(--text-sm); }
.notice p:last-child { margin-bottom: var(--space-0); }
.notice-ok { border-color: var(--color-success); background: var(--color-success-soft); }
.notice-warn { border-color: var(--color-warning); background: var(--color-warning-soft); }
.notice-danger { border-color: var(--color-danger); background: var(--color-danger-soft); }
.empty { color: var(--color-text-muted); font-size: var(--text-sm); padding: var(--space-4); margin: var(--space-0); }
.propose { border: var(--line) dashed var(--color-border-strong); border-radius: var(--radius); padding: var(--space-3); background: var(--color-surface); }
.propose .propose-label { font-size: var(--text-sm); color: var(--color-text-muted); display: block; margin-bottom: var(--space-1); }
.confirm-inline { border: var(--line) solid var(--color-danger); border-radius: var(--radius); padding: var(--space-3) var(--space-4); background: var(--color-danger-soft); margin: var(--space-3) var(--space-0); }

/* Onglets */
.tabs { display: flex; flex-wrap: wrap; gap: var(--space-0); border-bottom: var(--line) solid var(--color-border); margin-bottom: var(--space-4); }
.tabs a { padding: var(--space-2) var(--space-3); font-size: var(--text-sm); color: var(--color-text-muted); text-decoration: none; border-bottom: var(--line-strong) solid transparent; margin-bottom: calc(var(--line) * -1); }
.tabs a:hover { color: var(--color-text); }
.tabs a[aria-current="page"] { color: var(--color-text); border-bottom-color: var(--color-accent); font-weight: var(--weight-medium); }

/* Listes simples */
.list { list-style: none; margin: var(--space-0); padding: var(--space-0); }
.list li { padding: var(--space-2) var(--space-0); border-bottom: var(--line) solid var(--color-border); font-size: var(--text-sm); }
.list li:last-child { border-bottom: none; }
.kv { display: flex; justify-content: space-between; gap: var(--space-3); }

/* Recherche globale */
dialog.palette { width: min(var(--size-form), 92vw); border: var(--line) solid var(--color-border-strong); border-radius: var(--radius); padding: var(--space-0); background: var(--color-surface-raised); color: var(--color-text); margin-top: 12vh; }
dialog.palette::backdrop { background: var(--color-backdrop); }
.palette input { border: none; border-bottom: var(--line) solid var(--color-border); border-radius: var(--space-0); min-height: calc(var(--size-control) * 1.3); padding: var(--space-2) var(--space-4); }
.palette .results { max-height: 50vh; overflow-y: auto; }
.palette .results a { display: block; padding: var(--space-2) var(--space-4); text-decoration: none; color: var(--color-text); font-size: var(--text-sm); }
.palette .results a:hover, .palette .results a:focus-visible { background: var(--color-accent-soft); }
.palette .group { font-size: var(--text-sm); color: var(--color-text-muted); padding: var(--space-2) var(--space-4) var(--space-1); }
.search-trigger { min-width: var(--size-col-md); justify-content: space-between; color: var(--color-text-muted); }

/* Authentification */
.auth { min-height: 100vh; display: flex; flex-direction: column; }
.auth-box { width: min(var(--size-narrow), 100%); margin: var(--space-7) auto; padding: var(--space-0) var(--space-4); }
.auth-box .brand { font-family: var(--font-serif); font-size: var(--text-xl); margin-bottom: var(--space-5); }
.qr { width: calc(var(--size-col-md) * 1); background: var(--color-surface-raised); border: var(--line) solid var(--color-border); padding: var(--space-2); }
.qr svg { width: 100%; height: auto; display: block; }

/* Responsive */
@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar-col { border-right: none; }
  .sidebar { position: static; height: auto; display: none; border-bottom: var(--line) solid var(--color-border); }
  .sidebar.open { display: flex; }
  .btn.menu-toggle { display: inline-flex; }
  .content { padding: var(--space-4); }
  .columns, .columns-3-1, .columns-2-1, .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .topbar { padding: var(--space-2) var(--space-4); }
  .search-trigger { min-width: var(--space-0); }
  .search-trigger .search-label { display: none; }
}

/* Lignes répétables */
.repeat-row { border-left: var(--line-strong) solid var(--color-border); padding-left: var(--space-3); display: flex; flex-direction: column; gap: var(--space-2); }
.repeat-inline { flex-direction: row; align-items: flex-end; flex-wrap: wrap; }
.repeat-inline .field { flex: 1; min-width: var(--size-col-sm); }
.field label > input, .field label > select { margin-top: var(--space-1); font-weight: var(--weight-normal); }
.picker-results { max-height: calc(var(--size-col-md) * 1.5); overflow-y: auto; }
.prewrap { white-space: pre-wrap; }
address { font-style: normal; }
details > summary { cursor: pointer; padding: var(--space-2) var(--space-0); }
.form-wide { max-width: none; }

/* Dossier : sélecteur de volet, pastilles, étapes */
.topbar-ref { color: var(--color-text-muted); }
.volet-selector { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-3); flex-wrap: wrap; }
.volet-selector select { width: auto; min-width: var(--size-col-md); }
.pastille { display: inline-block; width: var(--space-3); height: var(--space-3); border-radius: var(--radius-sm); margin-right: var(--space-2); vertical-align: middle; background: var(--volet, var(--color-border-strong)); }
.volet-1 { --volet: var(--color-volet-1); } .volet-2 { --volet: var(--color-volet-2); }
.volet-3 { --volet: var(--color-volet-3); } .volet-4 { --volet: var(--color-volet-4); }
.volet-5 { --volet: var(--color-volet-5); } .volet-6 { --volet: var(--color-volet-6); }
.volet-7 { --volet: var(--color-volet-7); } .volet-8 { --volet: var(--color-volet-8); }
.piste-faits { --volet: var(--color-piste-faits); } .piste-procedure { --volet: var(--color-piste-procedure); }
.piste-travail { --volet: var(--color-piste-travail); } .piste-echanges { --volet: var(--color-piste-echanges); }
.piste-financier { --volet: var(--color-piste-financier); }
.volet-panel { border-left: var(--space-1) solid var(--volet, var(--color-border)); }
.etapes { list-style: none; margin: var(--space-0) var(--space-0) var(--space-4); padding: var(--space-0); counter-reset: etape; }
.etape { position: relative; padding: var(--space-2) var(--space-0) var(--space-2) var(--space-5); border-left: var(--line-strong) solid var(--color-border); margin-left: var(--space-2); }
.etape::before { content: ""; position: absolute; left: calc(var(--space-2) * -1 + var(--line) * -1); top: var(--space-3); width: var(--space-3); height: var(--space-3); border-radius: var(--radius-sm); border: var(--line-strong) solid var(--color-border-strong); background: var(--color-surface-raised); }
.etape-faite { border-left-color: var(--color-success); }
.etape-faite::before { background: var(--color-success); border-color: var(--color-success); }
.etape-en_cours::before { border-color: var(--color-accent); background: var(--color-accent-soft); }
.etape-sans_objet { color: var(--color-text-muted); }
.etape-head { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: baseline; }
.etape-statut { font-size: var(--text-sm); color: var(--color-text-muted); min-width: var(--size-col-sm); }
.etape-actions, .volet-actions { margin-top: var(--space-2); }
.ligne-retiree td { color: var(--color-text-muted); text-decoration: line-through; }
.ligne-retiree td .status, .ligne-retiree td .small { text-decoration: none; }
.mermaid-box { overflow-x: auto; }
.mermaid-box svg { height: auto; }
.markdown p, .markdown ul, .markdown ol { margin: var(--space-0) var(--space-0) var(--space-2); }
.timeline-box { background: var(--color-surface-raised); border: var(--line) solid var(--color-border); border-radius: var(--radius); min-height: calc(var(--size-col-md) * 2); }
.timeline-tools fieldset.pistes { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.timeline-box .vis-item { border-color: var(--volet, var(--color-border-strong)); background: var(--color-surface-raised); color: var(--color-text); font-size: var(--text-sm); }
.timeline-box .vis-item.vis-selected { background: var(--color-accent-soft); border-color: var(--color-accent); }
.timeline-box .vis-item.attendu { border-style: dashed; }
.timeline-box .vis-item.depasse { border-color: var(--color-danger); color: var(--color-danger); border-width: var(--line-strong); }
.timeline-box .vis-item.joint { font-style: italic; }
.timeline-box .vis-labelset .vis-label { color: var(--color-text); font-size: var(--text-sm); }
.timeline-box .vis-time-axis .vis-text { color: var(--color-text-muted); font-size: var(--text-sm); }
.timeline-box .vis-current-time { background-color: var(--color-danger); }
.columns > *, .columns-3-1 > *, .columns-2-1 > *, .grid-2 > *, .grid-3 > * { min-width: var(--space-0); }
.mermaid-box svg { max-width: 100%; }
.mermaid-box.taille-reelle svg { max-width: none; }

/* Documents : dépôt, aperçu, explorateur double panneau */
.depot-zone { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding: var(--space-5); border: var(--line-strong) dashed var(--color-border-strong); border-radius: var(--radius); background: var(--color-surface-raised); cursor: pointer; transition: border-color var(--transition), background var(--transition); margin-bottom: var(--space-3); }
.depot-zone:hover, .depot-zone.survol, .depot input:focus-visible + .depot-zone { border-color: var(--color-accent); background: var(--color-accent-soft); }
.depot input[type=file]:focus-visible ~ .depot-zone { outline: var(--focus-ring) solid var(--color-accent); }
.pdf-viewer canvas { display: block; width: 100%; height: auto; border: var(--line) solid var(--color-border); margin-bottom: var(--space-2); }
.pdf-mini { max-height: calc(var(--size-col-md) * 3); overflow: hidden; }
.apercu-image { max-width: 100%; height: auto; border: var(--line) solid var(--color-border); }
.texte-extrait { white-space: pre-wrap; font-size: var(--text-sm); max-height: calc(var(--size-col-md) * 2); overflow: auto; background: var(--color-surface); padding: var(--space-3); border: var(--line) solid var(--color-border); }
.commander { display: grid; grid-template-columns: 3fr 2fr; gap: var(--space-4); align-items: start; }
.commander > * { min-width: var(--space-0); }
.panneau { background: var(--color-surface-raised); border: var(--line) solid var(--color-border); border-radius: var(--radius); }
.panneau:focus-within { border-color: var(--color-accent); }
.panneau-titre { font-size: var(--text-md); padding: var(--space-3) var(--space-4); margin: var(--space-0); border-bottom: var(--line) solid var(--color-border); display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: baseline; }
.panneau .fil { font-family: var(--font-text); font-weight: var(--weight-normal); }
.table-explorateur .ligne-explorateur { cursor: pointer; }
.table-explorateur .ligne-explorateur:focus { outline: var(--focus-ring) solid var(--color-accent); outline-offset: calc(var(--focus-ring) * -1); background: var(--color-accent-soft); }
.table-explorateur .selectionnee { background: var(--color-accent-line); }
.propose-inline { border-bottom: var(--line) dashed var(--color-border-strong); }
@media (max-width: 900px) { .commander { grid-template-columns: 1fr; } }

/* Mails */
.non-lu td { font-weight: var(--weight-medium); }
.inline-propose { display: inline-flex; align-items: center; gap: var(--space-2); margin: var(--space-0) var(--space-2) var(--space-1) var(--space-0); }
.corps-texte { white-space: pre-wrap; font-family: var(--font-text); font-size: var(--text-md); margin: var(--space-0); }
.corps-html { max-width: var(--measure); overflow-wrap: anywhere; }
.corps-html img { max-width: 100%; }
.message-courant { border-color: var(--color-accent-line); }

/* Temps : chronomètre, bandeau de sortie */
.chrono { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-1) var(--space-2); border: var(--line) solid var(--color-accent-line); border-radius: var(--radius); background: var(--color-accent-soft); font-size: var(--text-sm); }
.bandeau-temps { margin-bottom: var(--space-4); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.bandeau-temps p { margin: var(--space-0); }
.input-court { width: calc(var(--size-col-sm) * 0.7); }
.input-large { min-width: calc(var(--size-col-md) * 1.6); }
.semaine { display: grid; grid-template-columns: repeat(7, minmax(var(--space-0), 1fr)); gap: var(--space-2); margin-bottom: var(--space-4); }
.semaine .jour { border: var(--line) solid var(--color-border); border-radius: var(--radius); padding: var(--space-2); background: var(--color-surface-raised); font-size: var(--text-sm); }
.semaine .jour.aujourdhui { border-color: var(--color-accent); }
.semaine .jour strong { display: block; font-size: var(--text-lg); font-variant-numeric: tabular-nums; }
@media (max-width: 900px) { .semaine { grid-template-columns: repeat(2, minmax(var(--space-0), 1fr)); } }
.etapes-assistant { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-4); padding: var(--space-0); margin: var(--space-0) var(--space-0) var(--space-4); font-size: var(--text-sm); color: var(--color-text-muted); }
.etapes-assistant [aria-current="step"] { color: var(--color-text); font-weight: var(--weight-strong); border-bottom: var(--line-strong) solid var(--color-accent); }

/* Indicateurs chiffrés (facturation) : une rangée de chiffres sobres, sans carte ni icône */
.chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-7) * 3.5), 1fr)); gap: var(--space-0); margin: var(--space-0) var(--space-0) var(--space-4); border: var(--line) solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); }
.chiffres > div { padding: var(--space-3) var(--space-4); border-right: var(--line) solid var(--color-border); }
.chiffres > div:last-child { border-right: none; }
.chiffres dt { font-size: var(--text-sm); color: var(--color-text-muted); }
.chiffres dd { margin: var(--space-1) var(--space-0) var(--space-0); font-size: var(--text-lg); font-weight: var(--weight-medium); }

/* Agenda (FullCalendar) : couleurs reprises des jetons, texte toujours lisible */
.calendrier { --fc-border-color: var(--color-border); --fc-page-bg-color: var(--color-surface-raised); --fc-neutral-bg-color: var(--color-zebra); --fc-today-bg-color: var(--color-accent-soft); --fc-now-indicator-color: var(--color-danger); --fc-event-bg-color: var(--color-surface); --fc-event-border-color: var(--color-border-strong); --fc-event-text-color: var(--color-text); --fc-list-event-hover-bg-color: var(--color-zebra); --fc-button-bg-color: var(--color-surface-raised); --fc-button-border-color: var(--color-border-strong); --fc-button-text-color: var(--color-text); --fc-button-hover-bg-color: var(--color-zebra); --fc-button-hover-border-color: var(--color-border-strong); --fc-button-active-bg-color: var(--color-accent-soft); --fc-button-active-border-color: var(--color-accent); font-size: var(--text-sm); }
.calendrier .fc-toolbar-title { font-size: var(--text-lg); }
.calendrier .fc-button { border-radius: var(--radius-sm); }
.calendrier .fc-event { border-left-width: var(--line-strong); }
.calendrier .fc-col-header-cell-cushion, .calendrier .fc-daygrid-day-number, .calendrier .fc-list-day-text, .calendrier .fc-list-day-side-text { color: var(--color-text); }
.calendrier .ev-audience { --fc-event-border-color: var(--color-piste-procedure); border-left-color: var(--color-piste-procedure); }
.calendrier .ev-delai { --fc-event-border-color: var(--color-danger); border-left-color: var(--color-danger); }
.calendrier .ev-rendez_vous { --fc-event-border-color: var(--color-piste-echanges); border-left-color: var(--color-piste-echanges); }
.calendrier .ev-reunion_expertise, .calendrier .ev-cloture { --fc-event-border-color: var(--color-warning); border-left-color: var(--color-warning); }
.calendrier .ev-tache { --fc-event-border-color: var(--color-piste-travail); border-left-color: var(--color-piste-travail); }
.calendrier .fc-daygrid-event-dot { border-color: currentColor; }
.calendrier .fc-list-event-dot { border-color: var(--color-border-strong); }

/* Kanban des tâches */
.kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(calc(var(--space-7) * 5), 1fr); gap: var(--space-3); overflow-x: auto; padding-bottom: var(--space-2); }
.kanban-col { background: var(--color-zebra); border: var(--line) solid var(--color-border); border-radius: var(--radius); padding: var(--space-2); min-height: calc(var(--space-7) * 3); }
.kanban-col h2 { font-size: var(--text-sm); margin: var(--space-1) var(--space-1) var(--space-2); display: flex; justify-content: space-between; }
.kanban-col.survol { border-color: var(--color-accent); }
.carte { background: var(--color-surface-raised); border: var(--line) solid var(--color-border); border-radius: var(--radius-sm); padding: var(--space-2) var(--space-3); margin-bottom: var(--space-2); font-size: var(--text-sm); }
.carte[draggable="true"] { cursor: grab; }
.carte .meta-carte { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); color: var(--color-text-muted); margin-top: var(--space-1); }
.carte select { font-size: var(--text-sm); min-height: auto; padding: var(--space-0) var(--space-1); margin-top: var(--space-2); }
.compteur { display: inline-block; min-width: var(--space-4); padding: var(--space-0) var(--space-1); border-radius: var(--radius-sm); background: var(--color-danger); color: var(--color-on-accent); font-size: var(--text-sm); line-height: 1.4; text-align: center; }
.notif-non-lue { font-weight: var(--weight-medium); }

/* Plans de rédaction : retrait par niveau */
.plan-noeud.niveau-2 { padding-left: var(--space-4); }
.plan-noeud.niveau-3 { padding-left: var(--space-6); }
.plan-noeud.niveau-4 { padding-left: var(--space-7); }
.mono.small { overflow-wrap: anywhere; }
