/* Graphe Stamina acquis : cartes, branches et métriques ; données/règles restent dans Invoicing. */
@layer components {
/* Indicateurs en ligne dans l'en-tête, à côté du bouton Actions : texte sur fond gris, sans carte, une petite barre
   d'avancement sous chacun (violet facturé, vert encaissé, gris marge). Détail au survol. */
.affaire-hkpis { display: flex; align-items: stretch; margin-right: 12px; padding: 7px 4px; border-radius: var(--radius-card); background: var(--color-tile); }
.affaire-hkpi { --c: var(--color-accent); display: flex; flex-direction: column; justify-content: center; gap: 3px; min-width: 150px; padding: 0 14px; cursor: default; }
.affaire-hkpi + .affaire-hkpi { border-left: 1px solid color-mix(in srgb, var(--color-ink) 10%, transparent); }
.affaire-hkpi.is-paid { --c: var(--color-success); }
.affaire-hkpi.is-paid.is-late .affaire-hkpi__label { color: var(--color-danger); }
.affaire-hkpi.is-revenue { --c: color-mix(in srgb, var(--color-ink) 45%, transparent); }
.affaire-hkpi__label { color: var(--color-muted); font-size: 10.5px; font-weight: 700; letter-spacing: .04em; line-height: 1; text-transform: uppercase; }
.affaire-hkpi__value { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.affaire-hkpi__value strong { color: var(--color-ink); font-size: 13.5px; font-weight: 800; font-variant-numeric: tabular-nums; }
.affaire-hkpi__value small { color: var(--color-muted); font-size: 11px; font-weight: 600; }
.affaire-hkpi__value em { margin-left: 2px; color: var(--c); font-size: 11px; font-style: normal; font-weight: 800; }
.affaire-hkpi__bar { height: 4px; overflow: hidden; border-radius: 2px; background: color-mix(in srgb, var(--color-ink) 9%, transparent); }
.affaire-hkpi__bar > span { display: block; height: 100%; border-radius: 2px; background: var(--c); }
@media (max-width: 1199.98px) {
    .affaire-hkpi.is-revenue { display: none; }
}
@media (max-width: 991.98px) {
    .affaire-hkpis { display: none; }
}

/* ---------- Parcours : une carte par pièce, reliées par des courbes ---------- */

.affaire-flow { position: relative; display: flex; flex-direction: column; gap: 30px; padding: 14px 0 4px; }
.affaire-flow__svg { position: absolute; inset: 0; z-index: 0; overflow: visible; pointer-events: none; }
.affaire-flow__edge { fill: none; stroke-width: 2; stroke-linecap: round; }
.affaire-flow__edge.is-dashed { stroke-dasharray: 1 6; stroke-width: 2.4; }
.affaire-flow__dot { fill: var(--color-surface); stroke-width: 2; }

/* Parcours en colonnes : les pièces alignées à gauche (une rangée chacune), puis « en plusieurs fois » et le solde,
   qui commencent un peu sous la pièce d'où partent les chemins. La dernière rangée (1fr) prend la hauteur des
   colonnes de droite, pour que les pièces restent serrées. --cols / --rows / --maxw sont posés par la vue.
   Zone étroite : tout l'un sous l'autre. */
.affaire-flow { padding-top: 6px; container: affaire-flow / inline-size; }
.affaire-board { position: relative; z-index: 1; display: grid; grid-template-columns: var(--cols); grid-template-rows: var(--rows); width: min(100%, var(--maxw)); column-gap: 36px; row-gap: 18px; }
.affaire-board__piece { grid-column: 1; min-width: 0; container: affaire-col / inline-size; }
.affaire-board__piece > .affaire-fnode { width: 100%; }
.affaire-board__piece > .affaire-fpill { margin: 6px 0; }
/* Pièce portant une pastille à cheval sur son bord haut (référence, à facturer) : écart supplémentaire avec la pièce
   précédente, pour que la pastille ne touche pas la carte du dessus. */
.affaire-board__piece + .affaire-board__piece:has(> .affaire-fnode > .affaire-fnode__flag) { margin-top: 16px; }
.affaire-board__col { display: flex; flex-direction: column; align-items: center; gap: 24px; min-width: 0; container: affaire-col / inline-size; }
/* Colonnes de droite : un peu plus bas que la pièce de départ, le lien sort de son bord droit et descend. */
.affaire-board__col.is-offset { margin-top: 64px; }
.affaire-board__col > .affaire-fnode { width: 100%; }
/* Colonne large (seule à droite) : deux demi-colonnes ; les factures sur la moitié gauche, dans l'axe de la carte
   « continuer » de la fourche, qui prend toute la largeur. Le lien depuis la pièce reste court. */
.affaire-board__col.is-wide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; justify-items: center; column-gap: 20px; row-gap: 24px; }
.affaire-board__col.is-wide > * { grid-column: 1; }
.affaire-board__col.is-wide > .affaire-fork { grid-column: 1 / -1; }
/* Fourche : continuer ou terminer, deux cartes de même hauteur, boutons en bas. */
/* Les deux cartes partagent leurs rangées (subgrid) : en-têtes, titres, phrases, barres et boutons alignés. */
.affaire-fork { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(5, auto); column-gap: 20px; width: 100%; margin-top: 22px; }
.affaire-fork > .affaire-fnode.affaire-cta { grid-row: span 5; display: grid; grid-template-rows: subgrid; row-gap: 0; }
/* Choix (rien de facturé) : place pour le tronc qui descend puis se sépare en Y au-dessus des cartes. */
.affaire-fork.is-choice { position: relative; z-index: 1; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); grid-template-rows: repeat(4, auto); width: 100%; max-width: calc(var(--n) * 290px + (var(--n) - 1) * 20px); margin: 50px auto 0; }
.affaire-fork.is-choice > .affaire-fnode.affaire-cta { grid-row: span 4; }
.affaire-cta__head { display: flex; align-items: center; gap: 12px; }
/* Pièce sur laquelle se calcule la facture (icône, numéro, montant) ; carte grisée si aucune pièce ne le permet. */
.affaire-cta__on { display: flex; align-items: center; min-height: 28px; margin-top: 12px; }
.affaire-piece { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 4px 10px; border-radius: var(--radius-item); background: var(--color-tile); color: var(--color-muted); font-size: 12px; white-space: nowrap; }
.affaire-piece .fad { color: var(--color-accent); }
.affaire-piece b { color: var(--color-ink); font-weight: 700; }
.affaire-cta__why { color: var(--color-muted); font-size: 12px; }
.affaire-fnode.affaire-cta.is-blocked { --tone: var(--color-muted-2); --tone-soft: var(--color-tile); background: color-mix(in srgb, var(--color-surface) 60%, transparent); box-shadow: none; }
.affaire-fnode.affaire-cta.is-blocked :is(.affaire-cta__title, .affaire-cta__sub) { color: var(--color-muted); }
.affaire-btn.is-cta.is-disabled:not(.is-success) { border-color: transparent; background: var(--color-tile); color: var(--color-muted); box-shadow: none; opacity: 1; }
.affaire-cta__head .affaire-cta__title { margin-top: 0; }
.affaire-fork.is-choice .affaire-cta__sub { margin-top: 10px; }
.affaire-fork.is-choice .affaire-cta__actions { align-self: end; padding-top: 16px; }
.affaire-fork__base { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 0; color: var(--color-muted); font-size: 12px; text-align: center; }
/* Parcours étroit : les cartes l'une sous l'autre. */
@container affaire-flow (max-width: 640px) {
    .affaire-fork.is-choice { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 16px; }
    .affaire-fork.is-choice > .affaire-fnode.affaire-cta { grid-row: auto; grid-column: auto; display: flex; }
    .affaire-fork.is-choice .affaire-cta__actions { align-self: stretch; }
}
@container affaire-col (max-width: 520px) {
    .affaire-fork { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 20px; }
    .affaire-fork > .affaire-fnode.affaire-cta { grid-row: auto; display: flex; }
    .affaire-fork .affaire-cta > .affaire-cta__actions { align-self: stretch; }
}
.affaire-fnode.affaire-cta { display: flex; flex-direction: column; align-items: flex-start; padding: 18px 18px 16px; border-top: 4px solid var(--tone); }
.affaire-cta__kind { display: inline-flex; align-items: center; gap: 6px; justify-self: start; align-self: start; padding: 3px 10px; border-radius: var(--radius-pill); background: var(--tone-soft); color: var(--tone); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.affaire-cta__title { margin-top: 10px; color: var(--color-ink); font-size: 17px; font-weight: 800; line-height: 1.25; }
.affaire-cta__sub { margin-top: 4px; color: var(--color-muted); font-size: 12.5px; line-height: 1.45; }
.affaire-cta__note { color: var(--color-muted); font-size: 11.5px; text-align: center; }
.affaire-cta__sub strong { color: var(--color-ink); }
.affaire-cta .affaire-plan { align-self: end; justify-self: stretch; margin-top: 12px; }
.affaire-fork > .affaire-cta > .affaire-plan { width: 100%; }
.affaire-cta__actions { display: flex; flex-direction: column; align-self: start; justify-self: stretch; gap: 8px; padding-top: 14px; }
.affaire-btn__text small { display: block; font-size: 12.5px; font-weight: 700; opacity: .85; }
.affaire-cta__actions .affaire-fnode__rule { margin: 0; }
.affaire-btn.is-cta { width: 100%; height: auto; min-height: 46px; justify-content: center; padding: 10px 14px; border-radius: var(--radius-card); font-size: 14px; font-weight: 800; line-height: 1.25; text-align: center; white-space: normal; box-shadow: var(--shadow-card); }
/* Une phrase sur une ligne (l'icône alignée sur le texte) ; si la carte est trop étroite, seul le montant passe à la ligne. */
.affaire-btn.is-cta { gap: 8px; font-size: 13.5px; letter-spacing: -.1px; }
.affaire-btn.is-cta.is-soft { border-color: color-mix(in srgb, var(--tone) 45%, transparent); background: var(--tone-soft); color: var(--tone); box-shadow: none; }
.affaire-btn.is-cta.is-soft:hover { background: color-mix(in srgb, var(--tone) 18%, var(--color-surface)); color: var(--tone); }
/* Colonne étroite : sans l'icône de la carte (le type est écrit), le montant reste sur la ligne. */
@container affaire-col (max-width: 290px) {
    .affaire-board .affaire-fnode__main > .affaire-fnode__icon { display: none; }
}
@container affaire-col (max-width: 620px) {
    .affaire-board__col.is-wide > .affaire-fnode > .affaire-fnode__main > .affaire-fnode__icon { display: none; }
}
@container affaire-flow (max-width: 760px) {
    .affaire-board { display: flex; flex-direction: column; gap: 24px; }
    .affaire-board__col.is-offset { margin-top: 0; }
    .affaire-board__col.is-wide { display: flex; }
}
.affaire-flow__note { position: relative; z-index: 1; margin-top: 0; color: var(--color-muted); font-size: 12px; text-align: center; }
.affaire-flow__note a { margin-left: 4px; color: var(--color-accent); font-weight: 700; }

/* Pastilles : branches, pièces archivées, fin */
.affaire-fpill { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: var(--radius-pill); background: var(--color-tile); color: var(--color-ink); font-size: 12.5px; font-weight: 700; }
.affaire-fpill i { width: 8px; height: 8px; border-radius: 50%; background: var(--color-accent); }
.affaire-fpill b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--color-surface); font-size: 11px; }
.affaire-fpill.is-branch { background: var(--color-warning-soft); color: var(--color-warning); }
.affaire-fpill.is-solde { background: color-mix(in srgb, var(--color-success) 12%, var(--color-surface)); color: color-mix(in srgb, var(--color-success) 80%, var(--color-ink)); }
.affaire-fpill.is-solde i { background: var(--color-success); }
.affaire-fpill.is-branch i { background: var(--color-warning); }
.affaire-fpill.is-todo { background: var(--color-surface); outline: 1.5px dashed color-mix(in srgb, currentColor 45%, transparent); outline-offset: -1.5px; }
.affaire-fpill.is-archive { color: var(--color-muted); font-size: 12px; font-weight: 600; }
.affaire-fpill.is-end { background: color-mix(in srgb, var(--color-success) 12%, var(--color-surface)); color: var(--color-success); }

/* Cartes (une par pièce) */
.affaire-fnode {
    --tone: var(--color-accent);
    --tone-soft: var(--color-accent-soft);
    position: relative;
    width: min(100%, 400px);
    padding: 11px 14px;
    border: 1px solid color-mix(in srgb, var(--color-ink) 9%, transparent);
    border-radius: var(--radius-card);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
    transition: box-shadow .15s;
}
.affaire-fnode:hover { box-shadow: var(--shadow-card); }
.affaire-fnode.is-invoice { --tone: var(--color-success); --tone-soft: color-mix(in srgb, var(--color-success) 12%, var(--color-surface)); }
.affaire-fnode.is-deposit,
.affaire-fnode.is-partial,
.affaire-fnode.is-branch { --tone: var(--color-warning); --tone-soft: var(--color-warning-soft); }
.affaire-fnode.is-credit { --tone: var(--color-danger); --tone-soft: color-mix(in srgb, var(--color-danger) 10%, var(--color-surface)); }

.affaire-fnode__main { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.affaire-fnode__icon { display: grid; flex: none; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-field); background: var(--tone-soft); color: var(--tone); font-size: 15px; }
.affaire-fnode__id { display: flex; flex: 1 1 100px; flex-direction: column; min-width: 0; line-height: 1.3; }
.affaire-fnode__kind { color: var(--color-muted); font-size: 12px; }
.affaire-fnode__title { overflow: hidden; color: var(--color-ink); font-size: 15px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
a.affaire-fnode__title:hover { color: var(--color-accent); }
.affaire-fnode__date { color: var(--color-muted); font-size: 12px; }
.affaire-fnode__amount { display: flex; flex: none; flex-direction: column; align-items: flex-end; margin-left: auto; text-align: right; line-height: 1.2; }
.affaire-fnode__amount strong { color: var(--color-ink); font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.affaire-fnode__amount small { color: var(--color-muted); font-size: 11px; font-weight: 700; }
.affaire-fnode__status { display: flex; margin-top: 5px; }
.affaire-fnode__rule { flex-basis: 100%; color: var(--color-muted); font-size: 11.5px; }
.affaire-fnode__pct { margin-top: 4px; padding: 1px 8px; border-radius: var(--radius-pill); background: var(--color-tile); color: var(--color-ink); font-size: 11.5px; font-weight: 700; }
.affaire-fnode__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed color-mix(in srgb, var(--color-ink) 10%, transparent); }
.affaire-fnode__foot:has(> .affaire-btn) { justify-content: flex-start; }
.affaire-fnode__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.affaire-fnode__actions:empty { display: none; }
.affaire-fnode__unlink { position: absolute; top: 10px; right: 12px; color: var(--color-muted); font-size: 12px; opacity: 0; transition: opacity .15s; }
.affaire-fnode:hover .affaire-fnode__unlink { opacity: 1; }
.affaire-fnode__unlink:hover { color: var(--color-danger); }

/* Factures réglées regroupées (dépliable) */
.affaire-fnode.is-stack > summary { cursor: pointer; list-style: none; }
.affaire-fnode.is-stack > summary::-webkit-details-marker { display: none; }
.affaire-fstack__chevron { margin-left: 4px; color: var(--color-muted); font-size: 11px; transition: transform .15s; }
.affaire-fnode.is-stack[open] .affaire-fstack__chevron { transform: rotate(180deg); }
.affaire-fstack { display: flex; flex-direction: column; margin-top: 10px; padding-top: 6px; border-top: 1px dashed color-mix(in srgb, var(--color-ink) 10%, transparent); }
.affaire-fstack__row { display: flex; align-items: baseline; gap: 10px; padding: 5px 2px; border-radius: var(--radius-item); color: var(--color-ink); font-size: 12.5px; }
.affaire-fstack__row span { color: var(--color-muted); }
.affaire-fstack__row .affaire-fstack__amount { margin-left: auto; color: var(--color-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.affaire-fstack__row:hover { background: var(--color-tile); color: var(--color-accent); }

/* Pièce transformée : en retrait */
.affaire-fnode.is-transformed { background: var(--color-surface); box-shadow: none; }
.affaire-fnode.is-transformed .affaire-fnode__icon { background: var(--color-tile); color: var(--color-muted); }
.affaire-fnode.is-transformed .affaire-fnode__amount strong { color: var(--color-muted); }
/* Pièce déjà transformée (hors document de référence) : une seule ligne basse — type, numéro, montant ; la date et
   « Transformé » passent dans l'infobulle de l'icône. */
.affaire-fnode.is-transformed:not(.is-reference) { padding: 6px 12px 6px 8px; border-radius: var(--radius-card); }
.affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__main { flex-wrap: nowrap; gap: 10px; }
.affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__icon { width: 28px; height: 28px; border-radius: var(--radius-item); font-size: 12px; }
.affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__id { flex-direction: row; align-items: baseline; gap: 6px; }
.affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__kind { flex: none; }
.affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__title { font-size: 13.5px; font-weight: 700; color: var(--color-muted); }
.affaire-fnode.is-transformed:not(.is-reference) :is(.affaire-fnode__date, .affaire-fnode__status) { display: none; }
.affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__amount { flex-direction: row; align-items: baseline; gap: 3px; }
.affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__amount strong { font-size: 13.5px; font-weight: 700; }

@container affaire-col (max-width: 20rem) {
    .affaire-fnode.is-transformed:not(.is-reference) .affaire-fnode__id {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Document de référence / pièce à facturer */
.affaire-fnode.is-reference,
.affaire-fnode.is-current { width: min(100%, 440px); padding-top: 17px; }
.affaire-fnode.is-reference { border: 2px solid var(--color-accent); box-shadow: var(--shadow-card); }
.affaire-fnode.is-reference .affaire-fnode__icon { background: var(--color-accent); color: #fff; }
.affaire-fnode.is-current { border: 2px solid var(--color-night); }
.affaire-fnode__flag { position: absolute; top: 0; transform: translateY(-50%); left: var(--space-panel-content); display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: var(--radius-pill); background: var(--color-accent); color: #fff; font-size: 11px; font-weight: 700; }
.affaire-fnode__flag.is-current { background: var(--color-night); }

/* Découpage du montant, dans la carte de référence */
.affaire-fnode__split { display: flex; gap: 3px; height: 7px; margin-top: 11px; }
.affaire-fnode__split > span { min-width: 6px; border-radius: 4px; }
.affaire-fnode__split .is-invoice { background: var(--color-accent); }
.affaire-fnode__split .is-deposit { background: var(--color-warning); }
.affaire-fnode__split .is-partial { background: var(--color-warning); }
.affaire-fnode__split .is-draft { opacity: .45; }
.affaire-fnode__split .is-left { background: repeating-linear-gradient(-45deg, var(--color-line) 0 5px, var(--color-tile) 5px 10px); }
.affaire-fnode__legend { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; color: var(--color-muted); font-size: 12px; }
.affaire-fnode__change > a { color: var(--color-accent); font-weight: 700; }
.affaire-fnode__change > a:hover { text-decoration: underline; }
.affaire-fnode__legend strong { color: var(--color-ink); }

/* Branche « en plusieurs fois » verrouillée : choisir d'abord le document de référence */
.affaire-fref { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.affaire-fref__choice { width: 100%; text-align: left; display: flex; align-items: center; gap: 10px; padding: 7px 12px; border: 1px solid color-mix(in srgb, var(--color-warning) 35%, transparent); border-radius: var(--radius-card); background: var(--color-surface); color: var(--color-ink); font-size: 13px; transition: border-color .15s, background .15s; }
.affaire-fref__choice:hover { border-color: var(--color-accent); background: var(--color-accent-soft); color: var(--color-ink); }
.affaire-fref__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.affaire-fref__amount { color: var(--color-muted); font-size: 12px; white-space: nowrap; }

/* Pièces à faire */
/* Pièces à faire : cartes pleines, bordure et ombre teintées (seul le lien qui y mène est en pointillés). */
.affaire-fnode.is-ghost { border: 1px solid color-mix(in srgb, var(--tone) 38%, transparent); background: var(--color-surface); box-shadow: var(--shadow-card); }
.affaire-fnode.is-ghost .affaire-fnode__icon { border: 0; background: var(--tone-soft); color: var(--tone); }
.affaire-fnode.is-solde { --tone: var(--color-success); --tone-soft: color-mix(in srgb, var(--color-success) 12%, var(--color-surface)); }
/* Choix du mode de facturation : une petite barre illustre le découpage. */
.affaire-plan { display: flex; gap: 3px; margin-top: 12px; }
.affaire-plan > span { min-width: 0; overflow: hidden; padding: 3px 8px; border-radius: var(--radius-item); font-size: 11px; font-weight: 700; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.affaire-plan .is-deposit { background: var(--color-warning-soft); color: var(--color-warning); }
.affaire-plan .is-partial { background: var(--color-warning-soft); color: var(--color-warning); }
.affaire-plan .is-solde { background: color-mix(in srgb, var(--color-success) 20%, var(--color-surface)); color: color-mix(in srgb, var(--color-success) 75%, var(--color-ink)); }
.affaire-choice .affaire-fnode__date { white-space: normal; }
.affaire-fref__ask { margin-top: 2px; color: var(--color-ink); font-size: 12.5px; font-weight: 700; }
.affaire-fref__choice .fa-arrow-right { color: var(--color-warning); }
.affaire-fnode.is-ghost .affaire-fnode__kind { color: var(--tone); font-weight: 700; }
.affaire-fnode.is-ghost .affaire-fnode__title { overflow: visible; white-space: normal; }
.affaire-fnode.is-ghost .affaire-fnode__foot { padding-top: 0; border-top: 0; }

.affaire-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: var(--radius-pill); background: var(--color-tile); color: var(--color-muted); font-size: 11.5px; font-weight: 700; }
.affaire-chip.is-success { background: color-mix(in srgb, var(--color-success) 12%, var(--color-surface)); color: var(--color-success); }
.affaire-chip.is-warning { background: var(--color-warning-soft); color: var(--color-warning); }

/* Boutons */
.affaire-btn {
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 14px;
    border: 1px solid color-mix(in srgb, var(--color-ink) 14%, transparent);
    border-radius: var(--radius-field);
    background: var(--color-surface);
    color: var(--color-ink);
    font-size: 12.5px;
    font-weight: 700;
    white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s;
}
.affaire-btn:hover { border-color: var(--color-accent); color: var(--color-accent); }
.affaire-btn.is-icon { width: 34px; justify-content: center; padding: 0; }
.affaire-btn.is-primary { border-color: var(--color-accent); background: var(--color-accent); color: #fff; }
.affaire-btn.is-primary:hover { background: var(--color-primary-700); color: #fff; }
.affaire-btn.is-branch { border-color: var(--color-warning); background: var(--color-warning); color: #fff; }
.affaire-btn.is-branch:hover { background: var(--color-warning); color: #fff; }
.affaire-btn.is-success { border-color: var(--color-success); background: var(--color-success); color: #fff; }
.affaire-btn.is-success:hover { filter: brightness(.95); color: #fff; }
.affaire-btn.is-disabled { opacity: .45; cursor: not-allowed; }
.affaire-btn { max-width: 100%; }
.affaire-btn.is-sm { height: 30px; padding: 0 11px; border-radius: var(--radius-field); font-size: 12px; }
.affaire-btn.is-sm.is-icon { width: 30px; padding: 0; }



}
