/* Portail DAF Connect : charte du site dafconnect.fr (Communication site/Charte_graphique_DAF_CONNECT.md).
   Marine #152A4E (dominante, en-têtes), indigo #2E2E8C -> #5B5FE0 (trait du logo : accents ponctuels),
   orange #F5821F (seule touche chaude). Mot d'ordre : sobriété et rendu premium de grand cabinet. */
:root {
  --marine: #152a4e;
  --marine-profond: #0e1d38;
  --marine-voile: rgba(21, 42, 78, .07);
  --indigo: #2e2e8c;
  --indigo-vif: #5b5fe0;
  --indigo-pale: #f1f2fb;
  --orange: #f5821f;
  --orange-pale: #fff4ea;
  --fond: #f5f6f9;
  --surface: #ffffff;
  --texte: #16213a;
  --texte-doux: #66728a;
  --trait: #e6e9f0;
  --gris: #a9b2c3;
  --gris-clair: #d3d9e4;
  --vert: #1d7a52;
  --vert-pale: #e8f4ee;
  --rouge: #b03a2e;
  --rouge-pale: #fbecea;
  --ombre: 0 1px 2px rgba(21, 42, 78, .04), 0 6px 20px rgba(21, 42, 78, .05);
  --police-titre: "Source Serif 4", Georgia, serif;
  --police-texte: "Public Sans", "Segoe UI", system-ui, sans-serif;
  --police-chiffres: "IBM Plex Mono", Consolas, monospace;
}
* { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; }
body { margin: 0; background: var(--fond); color: var(--texte); font-family: var(--police-texte); font-size: 15px; line-height: 1.55; }
a { color: var(--indigo); }
[hidden] { display: none !important; }
button { font: inherit; }

/* Bandeau */
.barre { background: var(--marine); color: #fff; position: relative; }
.barre::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--indigo), var(--indigo-vif) 70%, var(--orange)); }
.barre-int { max-width: 1280px; margin: 0 auto; padding: 16px 32px 18px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.marque { color: #fff; text-decoration: none; font-weight: 800; letter-spacing: .04em; font-size: 19px; }
.marque span { font-weight: 300; color: #c4c8f5; }
.espace { font-size: 11px; text-transform: uppercase; letter-spacing: .18em; color: #c4c8f5; border-left: 1px solid rgba(255,255,255,.22); padding-left: 20px; }
.barre-client { margin-left: auto; font-size: 13px; letter-spacing: .04em; color: rgba(255,255,255,.85); }

/* Page et en-tête client */
.page { max-width: 1280px; margin: 0 auto; padding: 36px 32px 56px; display: grid; gap: 26px; }
h1, h2, h3 { text-wrap: balance; }
h1 { font-family: var(--police-titre); color: var(--marine); margin: 0; font-size: 34px; line-height: 1.12; font-weight: 700; letter-spacing: -.01em; }
.surtitre { margin: 0 0 6px; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--indigo); }
.periode { margin: 8px 0 0; color: var(--texte-doux); font-size: 14px; }
.entete-client { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.exercices { display: flex; gap: 6px; }
.exercices a { color: var(--marine); text-decoration: none; padding: 5px 16px; border-radius: 99px; font-size: 13px; font-weight: 600; border: 1px solid var(--gris-clair); background: var(--surface); }
.exercices a[aria-current] { background: var(--marine); border-color: var(--marine); color: #fff; }

/* Onglets */
.onglets { display: flex; gap: 4px; border-bottom: 1px solid var(--trait); overflow-x: auto; scrollbar-width: none; }
.onglets a { position: relative; padding: 12px 16px 14px; text-decoration: none; color: var(--texte-doux); font-weight: 600; font-size: 14px; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.onglets a:hover { color: var(--marine); }
.onglets a.actif { color: var(--marine); }
.onglets a.actif::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--marine); }
.onglets a.a-venir { color: var(--gris); }
.bientot { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--texte-doux); background: var(--fond); border: 1px solid var(--trait); border-radius: 99px; padding: 1px 7px; }
.bandeau { margin: 0; background: var(--orange-pale); color: #84470f; border-left: 3px solid var(--orange); border-radius: 4px; padding: 10px 16px; font-size: 13px; }

/* Indicateurs */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.kpi { background: var(--surface); border: 1px solid var(--trait); border-radius: 10px; padding: 18px 20px; display: grid; gap: 6px; align-content: start; box-shadow: var(--ombre); }
.kpi h2 { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--texte-doux); }
.kpi .valeur { margin: 0; font-family: var(--police-chiffres); font-size: 26px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--marine); letter-spacing: -.02em; }
.kpi.principal { background: var(--marine); border-color: var(--marine); position: relative; overflow: hidden; }
.kpi.principal::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--indigo-vif), var(--orange)); }
.kpi.principal h2, .kpi.principal .detail { color: rgba(255,255,255,.72); }
.kpi.principal .valeur { color: #fff; font-size: 30px; }
.detail { margin: 0; font-size: 12px; color: var(--texte-doux); }
.var { font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.var.bon { color: var(--vert); }
.var.mauvais { color: var(--rouge); }
.negatif { color: var(--rouge) !important; }

/* Blocs */
.bloc { background: var(--surface); border: 1px solid var(--trait); border-radius: 12px; padding: 26px 28px; display: grid; gap: 20px; min-width: 0; box-shadow: var(--ombre); }
.bloc-titre h2 { font-family: var(--police-titre); color: var(--marine); margin: 0; font-size: 23px; font-weight: 700; }
.bloc-titre p:not(.surtitre) { margin: 6px 0 0; color: var(--texte-doux); font-size: 13px; max-width: 80ch; }
.bloc-titre.ligne { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.lien-onglet { font-size: 13px; font-weight: 600; color: var(--indigo); text-decoration: none; border-bottom: 1px solid currentColor; }
.grille-deux { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 28px; }
.grille-synthese { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.colonne { display: grid; gap: 26px; }
.graphe { margin: 0; min-width: 0; }

/* Alertes */
.alertes { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.alerte { border: 1px solid var(--trait); border-left: 4px solid var(--gris); border-radius: 8px; padding: 12px 16px; display: grid; gap: 2px; }
.alerte strong { color: var(--marine); font-size: 15px; }
.alerte p { margin: 0; font-size: 13px; color: var(--texte-doux); }
.alerte-niveau { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.alerte.critique { border-left-color: var(--rouge); background: linear-gradient(90deg, var(--rouge-pale), var(--surface) 55%); }
.alerte.critique .alerte-niveau { color: var(--rouge); }
.alerte.vigilance { border-left-color: var(--orange); background: linear-gradient(90deg, var(--orange-pale), var(--surface) 55%); }
.alerte.vigilance .alerte-niveau { color: #b45f0c; }
.alerte.information { border-left-color: var(--marine); }
.alerte.information .alerte-niveau { color: var(--texte-doux); }

/* Tableaux : en-têtes toujours mis en évidence (marine uni) */
.tableau-defile { overflow-x: auto; border-radius: 8px; border: 1px solid var(--trait); }
table.chiffres { width: 100%; border-collapse: collapse; font-size: 14px; }
.chiffres thead th { background: var(--marine); color: #fff; text-align: right; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 12px 16px; white-space: nowrap; }
.chiffres td { text-align: right; padding: 9px 16px; border-bottom: 1px solid var(--trait); font-family: var(--police-chiffres); font-variant-numeric: tabular-nums; white-space: nowrap; font-size: 13.5px; }
.chiffres th:first-child, .chiffres td:first-child { text-align: left; font-family: var(--police-texte); }
.chiffres tbody tr:last-child td { border-bottom: none; }
.chiffres td.fort { font-weight: 600; color: var(--marine); }
.chiffres tr.total td { background: var(--indigo-pale); color: var(--marine); font-weight: 700; border-top: 2px solid var(--marine); }

/* Arbre d'exploration */
.arbre tr.ouvrable { cursor: pointer; }
.arbre tr.ouvrable:hover td, .arbre tr.ouvrable:focus-visible td { background: var(--indigo-pale); }
.arbre tr.ouvrable:focus-visible { outline: 2px solid var(--indigo-vif); outline-offset: -2px; }
.chevron { display: inline-block; width: 16px; margin-right: 6px; color: var(--indigo); font-size: 11px; transition: transform .15s; }
.chevron::before { content: "▸"; }
tr.ouvert > td > .chevron { transform: rotate(90deg); }
.arbre .niv1 td { font-weight: 600; }
.arbre .niv1.majeur td { background: #f6f7fc; color: var(--marine); font-weight: 700; }
.arbre .niv1.majeur td:first-child { box-shadow: inset 3px 0 0 var(--marine); }
.arbre .niv2 td:first-child { padding-left: 38px; }
.arbre .niv2 td { background: #fdfdff; }
.arbre .niv3 td { font-size: 12.5px; color: var(--texte-doux); background: #fff; }
.arbre .niv3 td:first-child { padding-left: 64px; }
.arbre tr.compte { cursor: pointer; }
.arbre tr.compte:hover td { background: var(--orange-pale); }
.cellule-compte { cursor: pointer; }
.cellule-compte:hover { background: var(--orange-pale) !important; color: var(--marine); }
.signe { display: inline-block; width: 14px; color: var(--indigo); font-weight: 700; }
.num { font-family: var(--police-chiffres); font-size: 11px; color: var(--marine); background: var(--indigo-pale); border-radius: 4px; padding: 1px 6px; margin-right: 8px; }
.pastille { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 99px; font-family: var(--police-texte); }
.pastille.bon { background: var(--vert-pale); color: var(--vert); }
.pastille.mauvais { background: var(--rouge-pale); color: var(--rouge); }

/* Compte de résultat mensuel */
.mensuel td:first-child, .mensuel th:first-child { position: sticky; left: 0; z-index: 1; }
.mensuel td:first-child { background: inherit; min-width: 270px; box-shadow: 1px 0 0 var(--trait); }
.mensuel tr.section td { background: #eef0f6; color: var(--marine); font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.mensuel tr.resultat td { background: #f6f7fc; color: var(--marine); font-weight: 700; border-top: 1px solid var(--gris-clair); }
.mensuel tr.resultat-final td { background: var(--marine); color: #fff; font-weight: 700; font-size: 14.5px; }
.mensuel tr.resultat-final td .negatif { color: #ffc9c0 !important; }
.mensuel .niv2 td, .mensuel .niv3 td { background: #fff; }

/* Balance âgée */
.agee { display: grid; gap: 12px; }
.agee + .agee { margin-top: 18px; padding-top: 22px; border-top: 1px solid var(--trait); }
.agee-titre h3 { margin: 0; font-family: var(--police-titre); color: var(--marine); font-size: 18px; }
.agee-titre p { margin: 2px 0 0; font-size: 13px; color: var(--texte-doux); }
.agee-barre { display: flex; height: 10px; border-radius: 99px; overflow: hidden; background: var(--fond); }
.agee-barre .t1 { background: var(--marine); }
.agee-barre .t2 { background: #4f6b94; }
.agee-barre .t3 { background: #f2b277; }
.agee-barre .t4 { background: var(--orange); }
.chiffres td.ancien { color: #b45f0c; font-weight: 600; }
.part { display: block; font-size: 11px; color: var(--texte-doux); font-weight: 400; }
.lien-plus { justify-self: start; background: none; border: 1px solid var(--gris-clair); color: var(--marine); font-weight: 600; font-size: 13px; padding: 6px 14px; border-radius: 99px; cursor: pointer; }
.lien-plus:hover { border-color: var(--marine); }
.note-agee { margin: 0; font-size: 12px; color: var(--texte-doux); }

/* Écritures incrustées */
tr.ecritures > td { background: var(--fond) !important; padding: 0 !important; }
.ecr-cadre { margin: 8px 16px 14px 64px; padding: 12px 16px; background: var(--surface); border: 1px solid var(--trait); border-left: 3px solid var(--orange); border-radius: 6px; font-family: var(--police-texte); white-space: normal; text-align: left; }
.ecr-titre { margin: 0 0 8px; font-weight: 700; color: var(--marine); font-size: 13px; }
table.mini { width: 100%; border-collapse: collapse; font-size: 12px; }
.mini thead th { background: var(--marine); color: #fff; padding: 6px 10px; text-align: right; font-weight: 600; font-size: 11px; letter-spacing: .04em; }
.mini th:nth-child(-n+4), .mini td:nth-child(-n+4) { text-align: left; }
.mini td { padding: 5px 10px; border-bottom: 1px solid var(--trait); font-family: var(--police-chiffres); text-align: right; }
.mini td.lib { font-family: var(--police-texte); white-space: normal; min-width: 220px; }

/* Onglet en préparation */
.a-venir-bloc { justify-items: start; padding: 40px 32px; }
.a-venir-bloc h2 { font-family: var(--police-titre); color: var(--marine); margin: 0; font-size: 26px; }
.a-venir-bloc p:not(.surtitre) { margin: 0; color: var(--texte-doux); max-width: 70ch; }

/* Notes et pied */
.notes { display: grid; gap: 4px; padding-top: 4px; }
.notes p { margin: 0; font-size: 11.5px; color: var(--texte-doux); }
.notes .mention { font-style: italic; }
.na { font-family: var(--police-texte); font-size: 12px; color: var(--texte-doux); font-style: italic; font-weight: 400; }
.liste-clients { list-style: none; padding: 0; display: grid; gap: 8px; }
.offre { font-size: 12px; text-transform: uppercase; color: var(--texte-doux); margin-left: 8px; }
.pied { max-width: 1280px; margin: 0 auto; padding: 0 32px 36px; font-size: 11.5px; color: var(--texte-doux); letter-spacing: .02em; }

@media (max-width: 900px) { .grille-synthese { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
  .page { padding: 22px 16px 36px; gap: 20px; }
  .barre-int { padding: 12px 16px 14px; }
  h1 { font-size: 27px; }
  .bloc { padding: 20px 16px; }
  .mensuel td:first-child { min-width: 180px; }
  .ecr-cadre { margin-left: 16px; }
}
@media (prefers-reduced-motion: reduce) { .chevron { transition: none; } }

/* Analytique */
.analytique thead th.structure { background: #2a3d63; }
.analytique tr.taux td { font-size: 12px; color: var(--texte-doux); font-style: italic; background: #fff; }
.analytique tr.resultat-final td { background: var(--marine); color: #fff; font-weight: 700; font-size: 14.5px; }
.analytique tr.resultat-final td .negatif { color: #ffc9c0 !important; }
.cle-badge { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--texte-doux); border: 1px solid var(--trait); border-radius: 99px; padding: 0 6px; margin-left: 6px; font-family: var(--police-texte); }
.cle { display: grid; gap: 8px; }
.cle + .cle { margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--trait); }
.cle h3 { margin: 0 0 2px; font-family: var(--police-titre); color: var(--marine); font-size: 16px; }
.cle-ligne { display: grid; grid-template-columns: 130px minmax(0, 1fr) 56px; gap: 12px; align-items: center; font-size: 13px; }
.cle-jauge { height: 8px; background: var(--fond); border-radius: 99px; overflow: hidden; }
.cle-jauge span { display: block; height: 100%; background: var(--marine); border-radius: 99px; }
.cle-pct { text-align: right; font-family: var(--police-chiffres); font-variant-numeric: tabular-nums; color: var(--marine); }

/* Menu latéral à icônes (remplace la barre d'onglets) */
.mise-en-page { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 28px; align-items: start; }
.contenu-onglet { display: grid; gap: 26px; min-width: 0; }
.menu { position: sticky; top: 20px; display: grid; gap: 4px; background: var(--surface); border: 1px solid var(--trait); border-radius: 12px; padding: 10px; box-shadow: var(--ombre); }
.menu a { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 8px; text-decoration: none; color: var(--marine); font-weight: 600; font-size: 14px; }
.menu a svg { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--marine); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.menu a:hover { background: var(--indigo-pale); }
.menu a.actif { background: var(--marine); color: #fff; }
.menu a.actif svg { stroke: #fff; }
.menu a.a-venir { color: var(--gris); }
.menu a.a-venir svg { stroke: var(--gris); }
.menu .bientot { margin-left: auto; }
@media (max-width: 900px) {
  .mise-en-page { grid-template-columns: minmax(0, 1fr); }
  .menu { position: static; display: flex; overflow-x: auto; padding: 6px; }
  .menu a { flex: none; }
  .menu .bientot { display: none; }
}

/* Bilan et BFR */
.equation { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 14px; align-items: center; }
.terme { border: 1px solid var(--trait); border-radius: 10px; padding: 16px 20px; display: grid; gap: 4px; background: var(--surface); }
.terme h3 { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--texte-doux); }
.terme .valeur { margin: 0; font-family: var(--police-chiffres); font-size: 26px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--marine); letter-spacing: -.02em; }
.terme.resultat { background: var(--marine); border-color: var(--marine); }
.terme.resultat h3, .terme.resultat .detail { color: rgba(255,255,255,.72); }
.terme.resultat .valeur { color: #fff; }
.terme.resultat .valeur.negatif { color: #ffc9c0 !important; }
.operateur { font-family: var(--police-titre); font-size: 30px; color: var(--indigo); font-weight: 600; }
.detail-bfr { margin: 0; font-size: 13px; color: var(--texte-doux); }
.th-date { font-weight: 400; letter-spacing: .02em; text-transform: none; opacity: .8; }
.bilan + .bilan, .tableau-defile + .tableau-defile { margin-top: 0; }
.bilan tr.sous-total td { background: #f6f7fc; color: var(--marine); font-weight: 700; border-top: 1px solid var(--gris-clair); }
.bilan tr.total td { background: var(--marine); color: #fff; font-weight: 700; font-size: 14.5px; border-top: none; }
.bilan tr.total td .negatif { color: #ffc9c0 !important; }
.ratios td { vertical-align: top; }
.ratios td:first-child { white-space: normal; min-width: 260px; }
.ratios strong { color: var(--marine); }
.formule { display: block; font-size: 11.5px; color: var(--texte-doux); margin-top: 2px; }
.ratios td.lecture { font-family: var(--police-texte); white-space: normal; text-align: left; font-size: 12.5px; color: var(--texte-doux); min-width: 260px; }
.controle details { display: grid; gap: 14px; }
.controle summary { cursor: pointer; display: grid; gap: 2px; list-style: none; }
.controle summary::-webkit-details-marker { display: none; }
.controle summary strong { color: var(--marine); font-size: 15px; }
.controle summary strong::after { content: " ▸"; color: var(--indigo); font-size: 12px; }
.controle details[open] summary strong::after { content: " ▾"; }
.controle details[open] summary { margin-bottom: 14px; }
@media (max-width: 760px) {
  .equation { grid-template-columns: minmax(0, 1fr); }
  .operateur { justify-self: center; line-height: 1; }
}

/* Seuil de rentabilité */
.seuil tr.resultat td { background: #f6f7fc; color: var(--marine); font-weight: 700; border-top: 1px solid var(--gris-clair); }
.seuil tr.resultat-final td { background: var(--marine); color: #fff; font-weight: 700; font-size: 14.5px; }
.seuil tr.resultat-final td .negatif { color: #ffc9c0 !important; }
.seuil td.pct { color: var(--texte-doux); font-size: 12px; }
.seuil tr.resultat-final td.pct { color: rgba(255,255,255,.72); }
.taux { font-family: var(--police-texte); font-size: 11px; font-weight: 600; color: var(--indigo); background: var(--indigo-pale); border-radius: 99px; padding: 1px 8px; margin-left: 8px; }
.leviers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.levier { border: 1px solid var(--trait); border-top: 3px solid var(--marine); border-radius: 10px; padding: 16px 20px; display: grid; gap: 4px; align-content: start; }
.levier h3 { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--texte-doux); }
.levier .valeur { margin: 0; font-family: var(--police-chiffres); font-size: 24px; color: var(--marine); font-variant-numeric: tabular-nums; }
.levier p:not(.valeur) { margin: 0; font-size: 13px; color: var(--texte-doux); }

/* Connexion, activation et administration */
.session { margin-left: auto; display: flex; align-items: center; gap: 16px; font-size: 13px; }
.barre-client + .session { margin-left: 20px; }
.session a { color: rgba(255,255,255,.85); text-decoration: none; font-weight: 600; }
.session a:hover { color: #fff; }
.session-nom { color: #c4c8f5; }
.session form { margin: 0; }
.session button { background: none; border: 1px solid rgba(255,255,255,.35); color: #fff; border-radius: 99px; padding: 4px 12px; font-size: 12px; cursor: pointer; }
.session button:hover { border-color: #fff; }
.carte-acces { width: 100%; max-width: 540px; margin: 40px auto; background: var(--surface); border: 1px solid var(--trait); border-radius: 14px; padding: 36px 36px 30px; box-shadow: var(--ombre); display: grid; gap: 16px; position: relative; overflow: hidden; }
.carte-acces::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--indigo), var(--indigo-vif) 70%, var(--orange)); }
.carte-acces p { margin: 0; color: var(--texte-doux); }
.carte-acces .aide { font-size: 12.5px; }
.bouton-principal { justify-self: start; background: var(--marine); color: #fff; border: none; border-radius: 8px; padding: 12px 22px; font-weight: 600; font-size: 15px; cursor: pointer; text-decoration: none; }
.bouton-principal:hover { background: var(--marine-profond); }
.bouton-principal:disabled { opacity: .6; cursor: progress; }
.message { margin: 0; padding: 10px 14px; border-radius: 6px; font-size: 13.5px; }
.message.info { background: var(--indigo-pale); color: var(--marine) !important; }
.message.erreur { background: var(--rouge-pale); color: var(--rouge) !important; }
.copie { display: flex; gap: 10px; flex-wrap: wrap; }
.copie input { flex: 1 1 360px; min-width: 0; font-family: var(--police-chiffres); font-size: 12.5px; padding: 10px 12px; border: 1px solid var(--gris-clair); border-radius: 8px; }
.lien-activation { border-color: var(--orange); }
.comptes td, .registre td { white-space: normal; text-align: left; font-family: var(--police-texte); }
.comptes tr.inactif td { color: var(--gris); }
.comptes .actions { display: flex; gap: 6px; flex-wrap: wrap; }
.comptes .actions form { margin: 0; }
.comptes .actions button { background: none; border: 1px solid var(--gris-clair); border-radius: 99px; padding: 3px 10px; color: var(--marine); cursor: pointer; font-size: 12.5px; }
.comptes .actions button:hover { border-color: var(--marine); }
.registre tr.refus td { color: var(--rouge); }
.registre td.lib { font-family: var(--police-chiffres); font-size: 12px; }
.nouveau-compte { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; align-items: end; border-top: 1px solid var(--trait); padding-top: 18px; }
.nouveau-compte h3 { grid-column: 1 / -1; margin: 0; font-family: var(--police-titre); color: var(--marine); }
.nouveau-compte label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; color: var(--texte-doux); }
.nouveau-compte input, .nouveau-compte select { padding: 8px 10px; border: 1px solid var(--gris-clair); border-radius: 6px; font-family: var(--police-texte); font-size: 13px; }
.nouveau-compte .bouton-principal { grid-column: 1 / -1; }
@media (max-width: 640px) { .carte-acces { padding: 28px 20px 24px; margin: 16px auto; } .session-nom { display: none; } }

/* Administration : état des sauvegardes */
.etat-sauvegardes { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.etat-sauvegardes li { display: grid; gap: 2px; padding: 10px 14px; border-radius: 8px; border-left: 4px solid var(--gris); background: var(--fond); }
.etat-sauvegardes li.ok { border-left-color: var(--vert); background: var(--vert-pale); }
.etat-sauvegardes li.ko { border-left-color: var(--orange); background: var(--orange-pale); }
.etat-sauvegardes strong { color: var(--marine); font-size: 13.5px; }
.etat-sauvegardes span { font-size: 12.5px; color: var(--texte-doux); }
.sauvegardes.en-alerte { border-color: var(--orange); }
