/* BDD AFPS v2 — interface sobre : neutres, un seul accent, typographie système */
:root {
    /* charte france-palestine.org : vert #259D50, rouge #CE061F, gris #AAB8C2, texte #212121, fond #F2F4F6 */
    --brand-green: #259d50;
    --brand-red: #ce061f;
    --brand-grey: #aab8c2;
    --bg: #f2f4f6;
    --surface: #ffffff;
    --surface-2: #f7f8fa;
    --text: #212121;
    --text-2: #4a5560;
    --muted: #6b7a86;
    --line: #e1e5e9;
    --line-2: #c8d0d7;
    --accent: #1b7a40;          /* vert de la charte, assombri pour le contraste (AA) */
    --accent-hover: #146033;
    --accent-soft: #e6f3eb;
    --warn-bg: #fff8e6; --warn-line: #f2d18b; --warn-ink: #7a5300;
    --err-bg: #fdecee; --err-line: #f0b3bb; --err-ink: #b0051a;
    --ok-bg: #e7f5ec; --ok-line: #a6d8b8; --ok-ink: #1b7a40;
    --info-bg: #eef3f7; --info-line: #c3d1dc;
    --radius: 4px;
    --nav-w: 230px;
    --top-h: 62px;
    --banner-h: 0px;
    font-size: 15px;
}
body.with-banner { --banner-h: 30px; }
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; font-family: "Source Sans 3", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
       background: var(--bg); color: var(--text); line-height: 1.45; font-variant-numeric: tabular-nums; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-family: "Roboto Slab", Georgia, serif; font-size: 1.45rem; font-weight: 600; margin: 0; letter-spacing: 0; }
h2 { font-size: 1.02rem; font-weight: 650; margin: 0 0 .75rem; }
h3 { font-size: .95rem; font-weight: 650; margin: 1rem 0 .5rem; }
h1 small, h2 small { font-weight: 400; font-size: .82rem; color: var(--muted); margin-left: .35rem; }
p { margin: 0 0 .75rem; }
.muted { color: var(--muted); }
.intro { margin: -.25rem 0 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ------------------------------------------------------------------ structure */
.env-banner { position: fixed; inset: 0 0 auto 0; height: var(--banner-h); z-index: 30; background: var(--brand-red); color: #fff;
              display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: .9rem; letter-spacing: .02em; }
.topbar { position: fixed; inset: var(--banner-h) 0 auto 0; height: var(--top-h); z-index: 20; display: flex; align-items: center; gap: 1rem;
          padding: 0 1rem; background: var(--surface); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .6rem; color: var(--text); white-space: nowrap; min-width: calc(var(--nav-w) - 1rem); }
.brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.brand-asso { font-size: .78rem; color: var(--text-2); letter-spacing: .01em; }
.brand-asso .g { color: var(--brand-grey); } .brand-asso .v { color: var(--brand-green); } .brand-asso .r { color: var(--brand-red); }
.brand-app { font-family: "Roboto Slab", Georgia, serif; font-weight: 600; font-size: 1.05rem; color: var(--text); }
.brand:hover { text-decoration: none; }
.quicksearch { flex: 1; max-width: 520px; }
.quicksearch input { width: 100%; background: var(--surface-2); }
.who { margin-left: auto; display: flex; align-items: center; gap: .6rem; white-space: nowrap; }
.who form { margin: 0; }
.who-name { font-weight: 500; }
.nav-toggle { display: none; }

.sidenav { position: fixed; top: calc(var(--top-h) + var(--banner-h)); bottom: 0; left: 0; width: var(--nav-w); overflow-y: auto; z-index: 15;
           background: var(--surface); border-right: 1px solid var(--line); padding: .75rem .5rem; display: flex; flex-direction: column; }
.nav-section { margin-bottom: .75rem; }
.nav-title { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--text); padding: .35rem .65rem; }
.sidenav a { display: flex; align-items: center; gap: .55rem; padding: .42rem .65rem; border-radius: var(--radius); color: var(--text-2); }
.sidenav a:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.sidenav a.active { background: var(--accent-soft); color: var(--accent); font-weight: 600; box-shadow: inset 3px 0 0 var(--brand-green); border-radius: 0 var(--radius) var(--radius) 0; }
.nav-foot { margin-top: auto; font-size: .75rem; color: var(--muted); padding: .5rem .65rem; }

.page { padding-top: calc(var(--top-h) + var(--banner-h)); }
body.with-nav .page { margin-left: var(--nav-w); }
main { padding: 1.25rem 1.5rem 3rem; max-width: 1500px; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.page-head .actions, .head-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.breadcrumb { font-size: .85rem; margin-bottom: .5rem; color: var(--muted); }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 1rem 1.15rem; margin-bottom: 1rem; }
.card > h2:first-child { margin-top: 0; }
.card-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.card-head h2 { margin: 0; }
.card.narrow { max-width: 420px; margin: 3.5rem auto; }
.cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.cols > .card { margin-bottom: 0; }
.cols-2 { display: grid; grid-template-columns: 2fr 1fr; gap: 1rem; align-items: start; }

/* ------------------------------------------------------------------ messages */
.banner { padding: .55rem 1.5rem; font-size: .92rem; }
.banner.warn { background: var(--warn-bg); border-bottom: 1px solid var(--warn-line); color: var(--warn-ink); }
.flash { padding: .6rem .85rem; border-radius: var(--radius); margin-bottom: 1rem; border: 1px solid; }
.flash.error { background: var(--err-bg); border-color: var(--err-line); color: var(--err-ink); }
.flash.success { background: var(--ok-bg); border-color: var(--ok-line); color: var(--ok-ink); }
.flash.info { background: var(--info-bg); border-color: var(--info-line); }
.flash.warn { background: var(--warn-bg); border-color: var(--warn-line); color: var(--warn-ink); }

/* ------------------------------------------------------------------ boutons et champs */
input, select, textarea, .btn, button { font: inherit; color: inherit; }
input[type=text], input[type=search], input[type=email], input[type=tel], input[type=date], input[type=number], input[type=password],
input:not([type]), select, textarea {
    padding: .42rem .55rem; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--surface); min-width: 0; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); outline: 2px solid var(--accent-soft); outline-offset: 0; }
textarea { resize: vertical; width: 100%; }
.btn, button.btn { display: inline-flex; align-items: center; gap: .35rem; padding: .42rem .8rem; border: 1px solid var(--line-2); border-radius: var(--radius);
       background: var(--surface); color: var(--text); cursor: pointer; white-space: nowrap; line-height: 1.3; }
.btn:hover { background: var(--surface-2); text-decoration: none; border-color: var(--muted); }
.btn-primary, button.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn-danger { color: var(--err-ink); border-color: var(--err-line); }
.btn-danger:hover { background: var(--err-bg); border-color: var(--err-ink); }
.btn-ghost { border: 0; background: none; color: var(--text-2); cursor: pointer; padding: .3rem .4rem; }
.btn-ghost:hover { color: var(--text); text-decoration: underline; }
.btn-sm { padding: .2rem .5rem; font-size: .85rem; }
button:disabled, .btn[aria-disabled=true] { opacity: .55; cursor: not-allowed; }
.link { border: 0; background: none; padding: 0; color: var(--accent); cursor: pointer; text-decoration: underline; }
.link.danger { color: var(--err-ink); }
.inline-form { display: inline; margin: 0; }

label { font-size: .82rem; color: var(--text-2); }
.filters { display: flex; flex-wrap: wrap; gap: .6rem .75rem; align-items: flex-end; padding-bottom: .9rem; margin-bottom: .75rem; border-bottom: 1px solid var(--line); }
.filters > label { display: flex; flex-direction: column; gap: .2rem; }
.filters .grow { flex: 1 1 240px; }
.filters .grow input { width: 100%; }
.filters label.check, label.check { flex-direction: row; align-items: center; gap: .35rem; padding-bottom: .45rem; }
.filter-buttons { display: flex; gap: .5rem; }
.more-filters { flex-basis: 100%; order: 10; }
.more-filters summary { cursor: pointer; color: var(--text-2); font-size: .85rem; padding: .2rem 0; width: max-content; }
.more-filters-body { display: flex; flex-wrap: wrap; gap: .6rem .75rem; align-items: flex-end; padding-top: .5rem; }
.more-filters-body > label { display: flex; flex-direction: column; gap: .2rem; }
.filters .filter-buttons { order: 5; }
label.inline { display: inline-flex; align-items: center; gap: .4rem; }

/* formulaires de saisie */
.form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .8rem 1rem; }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid .span-2 { grid-column: span 2; }
.field { display: flex; flex-direction: column; gap: .25rem; position: relative; }
.field label { display: block; }
.field .lbl abbr { color: var(--err-ink); text-decoration: none; }
.field input, .field select { width: 100%; }
.field.check { justify-content: flex-end; }
.field.check label { display: flex; align-items: center; gap: .4rem; font-size: .92rem; color: var(--text); padding: .45rem 0; }
.field .help { font-size: .78rem; color: var(--muted); }
.field .err { font-size: .8rem; color: var(--err-ink); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--err-ink); }
.form-section { border: 0; border-top: 1px solid var(--line); padding: 1rem 0 0; margin: 1rem 0 0; }
.form-section > legend { font-weight: 650; padding: 0 .4rem 0 0; font-size: .95rem; }
.form-actions { display: flex; gap: .5rem; align-items: center; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.form-actions .spacer { flex: 1; }
.checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .15rem 1rem; }
.checks label { display: flex; gap: .4rem; align-items: center; font-size: .9rem; color: var(--text); padding: .15rem 0; }

/* sélecteur d'adhérent */
.picker-list { position: absolute; top: 100%; left: 0; right: 0; z-index: 30; margin: 2px 0 0; padding: .25rem 0; list-style: none;
               background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--radius); box-shadow: 0 6px 18px rgba(0,0,0,.08); max-height: 280px; overflow-y: auto; }
.picker-list li { padding: .35rem .6rem; cursor: pointer; }
.picker-list li[aria-selected=true], .picker-list li:hover { background: var(--accent-soft); }
.picker-list small { color: var(--muted); }

/* ------------------------------------------------------------------ grilles */
.toolbar { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: .6rem; }
.toolbar .count { color: var(--text-2); }
.toolbar .actions { display: flex; gap: .4rem; flex-wrap: wrap; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
table.grid { width: 100%; border-collapse: collapse; font-size: .9rem; }
.grid th, .grid td { padding: .45rem .65rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.grid thead th { background: var(--surface-2); font-weight: 600; font-size: .82rem; color: var(--text-2); white-space: nowrap; position: sticky; top: 0; z-index: 1; }
.grid thead th a { color: inherit; display: inline-flex; gap: .25rem; align-items: center; }
.grid thead th a:hover { color: var(--text); text-decoration: none; }
.grid .sort-ind { font-size: .7rem; color: var(--line-2); }
.grid th[aria-sort] .sort-ind { color: var(--accent); }
.grid tbody tr:last-child td { border-bottom: 0; }
.grid tbody tr:hover td { background: #fafcfb; }
.grid .num { text-align: right; white-space: nowrap; }
.grid .nowrap { white-space: nowrap; }
.grid .empty { text-align: center; color: var(--muted); padding: 2.5rem 1rem; }
.grid .actions-col { text-align: right; white-space: nowrap; width: 1%; }
.grid tr.dim td, .grid tr.ended td, .grid tr.dcd td { color: var(--muted); }
.grid tr.alert td:first-child { box-shadow: inset 3px 0 0 var(--err-ink); }
.grid tr.warn td:first-child { box-shadow: inset 3px 0 0 #e0a800; }
.grid tfoot td { font-weight: 600; background: var(--surface-2); }
.grid.compact th, .grid.compact td { padding: .3rem .55rem; }
.grid td.trunc { max-width: 60ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grid small { color: var(--muted); }
.card .table-wrap + .table-wrap { margin-top: 1rem; }

.pager { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: .75rem; flex-wrap: wrap; }
.pager .pages { display: flex; gap: .4rem; align-items: center; }
.pager .page-info { color: var(--text-2); padding: 0 .4rem; }
.pager .per-page { margin: 0; }

/* ------------------------------------------------------------------ éléments */
.tag, .badge { display: inline-block; font-size: .72rem; line-height: 1.5; padding: 0 .45rem; border-radius: 999px; background: #eef0f3; color: var(--text-2); font-weight: 500; vertical-align: 1px; white-space: nowrap; }
.tag.ok { background: var(--ok-bg); color: var(--ok-ink); }
.tag.warn { background: var(--warn-bg); color: var(--warn-ink); }
.tag.err { background: var(--err-bg); color: var(--err-ink); }
.tag.accent { background: var(--accent-soft); color: var(--accent); }
.pill { display: inline-block; font-size: .8rem; padding: .05rem .5rem; border-radius: 999px; background: #eef0f3; margin: 0 .2rem .2rem 0; }
.pill.ok { background: var(--ok-bg); color: var(--ok-ink); }
.pill.old { background: #f2f4f7; color: var(--muted); }

dl.props { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.1rem; }
dl.props dt { color: var(--muted); font-size: .84rem; }
dl.props dd { margin: 0; overflow-wrap: anywhere; }
.pre { white-space: pre-wrap; }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.kpi { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: .8rem 1rem; }
.kpi .kpi-label { font-size: .8rem; color: var(--text-2); }
.kpi { border-top: 3px solid var(--brand-green); }
.kpi .kpi-value { font-family: "Roboto Slab", Georgia, serif; font-size: 1.5rem; font-weight: 600; letter-spacing: -.01em; margin-top: .15rem; }
.kpi .kpi-sub { font-size: .8rem; color: var(--muted); }
.bar { height: 8px; background: var(--brand-green); border-radius: 2px; min-width: 1px; }
.bar-track { background: #eef0f3; border-radius: 2px; }

.tabs { display: flex; gap: .25rem; border-bottom: 1px solid var(--line); margin: 0 0 1rem; flex-wrap: wrap; }
.tabs a { padding: .5rem .8rem; color: var(--text-2); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tabs a:hover { color: var(--text); text-decoration: none; }
.tabs a.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 600; }

.empty-state { text-align: center; padding: 2rem 1rem; color: var(--muted); }

/* icônes (masques SVG en ligne, couleur = currentColor) */
.ico { width: 16px; height: 16px; flex: none; background: currentColor; opacity: .75;
       -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.ico-home { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M3 11l9-7 9 7v9a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E"); }
.ico-users { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='9' cy='8' r='4'/%3E%3Cpath d='M1 21c0-4 4-6 8-6s8 2 8 6M17 4a4 4 0 0 1 0 8M23 21c0-3-2-5-5-6'/%3E%3C/svg%3E"); }
.ico-map { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M12 22s7-6 7-12a7 7 0 0 0-14 0c0 6 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.ico-euro { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M18 6a7 7 0 1 0 0 12M4 10h10M4 14h10'/%3E%3C/svg%3E"); }
.ico-link { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M10 14a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1M14 10a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1'/%3E%3C/svg%3E"); }
.ico-child { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='6' r='3'/%3E%3Cpath d='M7 21v-6l-2-3 4-2h6l4 2-2 3v6'/%3E%3C/svg%3E"); }
.ico-check { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M3 9h18M8 2v4M16 2v4M8 15l2 2 5-5'/%3E%3C/svg%3E"); }
.ico-mail { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 7l10 7 10-7'/%3E%3C/svg%3E"); }
.ico-file { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
.ico-download { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M4 21h16'/%3E%3C/svg%3E"); }
.ico-chart { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M4 20V10M10 20V4M16 20v-7M22 20H2'/%3E%3C/svg%3E"); }
.ico-clock { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.ico-key { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M11 12l9-9M17 6l3 3M14 9l2 2'/%3E%3C/svg%3E"); }
.ico-shield { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M12 2l8 3v6c0 5-3.5 9-8 11-4.5-2-8-6-8-11V5z'/%3E%3C/svg%3E"); }

/* ------------------------------------------------------------------ impression */
@media print {
    .topbar, .sidenav, .filters, .pager, .toolbar .actions, .banner, .no-print { display: none !important; }
    body.with-nav .page { margin: 0; padding: 0; }
    .card { border: 0; padding: 0; }
}

/* ------------------------------------------------------------------ petits écrans */
@media (max-width: 900px) {
    .nav-toggle { display: inline-block; border: 1px solid var(--line-2); background: var(--surface); border-radius: var(--radius); padding: .2rem .55rem; cursor: pointer; }
    .brand { min-width: 0; }
    .brand-asso { display: none; }
    .sidenav { transform: translateX(-100%); transition: transform .15s ease; box-shadow: 4px 0 18px rgba(0,0,0,.08); }
    body.nav-open .sidenav { transform: none; }
    body.with-nav .page { margin-left: 0; }
    .who-name, .who .tag { display: none; }
    main { padding: 1rem; }
    .cols-2 { grid-template-columns: 1fr; }
    dl.props { grid-template-columns: 1fr; } dl.props dt { margin-top: .35rem; }
}
@media (max-width: 600px) {
    .quicksearch { display: none; }
}

/* connexion */
.login .login-brand { display: flex; flex-direction: column; gap: .5rem; align-items: center; text-align: center; margin-bottom: 1.25rem; }
.login-title { font-family: "Roboto Slab", Georgia, serif; font-weight: 600; font-size: 1.25rem; }
.login-title small { display: block; font-family: inherit; font-size: .85rem; color: var(--muted); font-weight: 400; }
.login-version { text-align: center; font-size: .78rem; color: var(--muted); margin: .75rem 0 0; }
.stack { display: flex; flex-direction: column; gap: .85rem; margin-bottom: 1rem; }
.btn-block { width: 100%; justify-content: center; padding: .55rem; }
.small { font-size: .85rem; }
.row-form { display: flex; gap: .75rem; align-items: flex-end; flex-wrap: wrap; margin-bottom: .5rem; }
.row-form label { display: flex; flex-direction: column; gap: .2rem; }
details.older { margin-top: .5rem; }
details.older > summary { cursor: pointer; color: var(--text-2); font-size: .85rem; padding: .25rem 0; }
details.older > table { margin-top: .35rem; }
.grid td.col-wide { min-width: 220px; }
.grid td.mois, .grid th.mois { padding-left: .3rem; padding-right: .3rem; }
