/* apps-core 0.1.62 — module « billing » : blocs Abonnement (Mon compte), Code promo (inscription), Codes promo, Rabais et Santé
   des paiements (Super consoles). Balisage : AppsCore\BillingUi (sans script : la confirmation en deux clics est un <details>).
   Couleurs (texte ≥ 4,5:1) : clair par défaut ; sombre avec html[data-theme="dark"], body[data-theme="dark"], .dark, .theme-dark,
   ou le réglage du système quand l'app n'impose pas « light » ; une app peut poser data-theme sur la section .ac-bill elle-même.
   Cibles ≥ 44 px de haut pour les boutons, aucune largeur fixe (375 px sans défilement horizontal ; le tableau défile dans son cadre). */
.ac-bill {
  --ac-b-bg: #ffffff; --ac-b-fg: #1b2430; --ac-b-muted: #4a5566; --ac-b-line: #c9d1dd; --ac-b-soft: #f4f6f9;
  --ac-b-accent: #0b5cad; --ac-b-accent-fg: #ffffff; --ac-b-danger: #b42318; --ac-b-danger-fg: #ffffff;
  --ac-b-ok-bg: #e7f5ec; --ac-b-ok-fg: #14532d; --ac-b-warn-bg: #fff4e0; --ac-b-warn-fg: #6b3a00; --ac-b-err-bg: #fff1f0; --ac-b-err-fg: #7a1610;
  box-sizing: border-box; max-width: 100%; margin: 0 0 24px; padding: 16px; color: var(--ac-b-fg); background: var(--ac-b-bg);
  border: 1px solid var(--ac-b-line); border-radius: 10px; font: inherit; line-height: 1.45; overflow-wrap: anywhere;
}
.ac-bill *, .ac-bill *::before, .ac-bill *::after { box-sizing: border-box; }
.ac-bill h2 { margin: 0 0 12px; font-size: 1.2em; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ac-bill p { margin: 8px 0; }
.ac-bill code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .95em; }
.ac-bill-muted { color: var(--ac-b-muted); }
.ac-bill-strong { font-weight: 600; }
.ac-bill-dl { display: grid; grid-template-columns: minmax(110px, max-content) 1fr; gap: 6px 16px; margin: 8px 0; }
.ac-bill-dl dt { color: var(--ac-b-muted); }
.ac-bill-dl dd { margin: 0; min-width: 0; }
.ac-bill-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .9em; font-weight: 600; background: var(--ac-b-soft); }
.ac-bill-badge.ac-bill-full { background: var(--ac-b-ok-bg); color: var(--ac-b-ok-fg); }
.ac-bill-badge.ac-bill-grace { background: var(--ac-b-warn-bg); color: var(--ac-b-warn-fg); }
.ac-bill-badge.ac-bill-none { background: var(--ac-b-err-bg); color: var(--ac-b-err-fg); }
.ac-bill-msg { padding: 10px 12px; border-radius: 8px; }
.ac-bill-msg.ac-bill-ok { background: var(--ac-b-ok-bg); color: var(--ac-b-ok-fg); }
.ac-bill-msg.ac-bill-err, .ac-bill .ac-bill-err { color: var(--ac-b-err-fg); }
.ac-bill-msg.ac-bill-err { background: var(--ac-b-err-bg); }
.ac-bill-warn { padding: 10px 12px; border-radius: 8px; background: var(--ac-b-warn-bg); color: var(--ac-b-warn-fg); }
.ac-bill-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; margin: 12px 0 4px; }
.ac-bill-inline { display: inline-block; margin: 0; }
.ac-bill-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 16px; border-radius: 8px;
  border: 1px solid var(--ac-b-line); background: var(--ac-b-bg); color: var(--ac-b-fg); font: inherit; font-weight: 600;
  text-decoration: none; cursor: pointer; list-style: none; white-space: normal; text-align: center;
}
.ac-bill-btn::-webkit-details-marker { display: none; }
.ac-bill-btn.ac-bill-primary { background: var(--ac-b-accent); border-color: var(--ac-b-accent); color: var(--ac-b-accent-fg); }
.ac-bill-btn.ac-bill-danger { background: var(--ac-b-bg); border-color: var(--ac-b-danger); color: var(--ac-b-danger); }
.ac-bill-confirm-body .ac-bill-btn.ac-bill-danger { background: var(--ac-b-danger); color: var(--ac-b-danger-fg); }
.ac-bill-btn:hover { filter: brightness(.96); }
.ac-bill-btn:focus-visible, .ac-bill input:focus-visible, .ac-bill select:focus-visible, .ac-bill summary:focus-visible {
  outline: 3px solid var(--ac-b-accent); outline-offset: 2px;
}
.ac-bill-confirm { flex: 1 1 100%; }
.ac-bill-confirm[open] > summary { margin-bottom: 8px; }
.ac-bill-confirm-body { padding: 12px 14px; border: 1px solid var(--ac-b-line); border-radius: 8px; background: var(--ac-b-soft); }
.ac-bill-confirm-body ul { margin: 6px 0 12px; padding-left: 20px; }
.ac-bill-field { display: flex; flex-direction: column; gap: 4px; margin: 0 0 12px; min-width: 0; border: 0; padding: 0; }
.ac-bill-field label, .ac-bill-label, .ac-bill-field legend { font-weight: 600; }
.ac-bill input[type=text], .ac-bill input:not([type]), .ac-bill input[type=number], .ac-bill input[type=date], .ac-bill select {
  min-height: 44px; width: 100%; max-width: 100%; padding: 8px 10px; border: 1px solid var(--ac-b-line); border-radius: 8px;
  background: var(--ac-b-bg); color: var(--ac-b-fg); font: inherit;
}
.ac-bill input[aria-invalid=true] { border-color: var(--ac-b-danger); }
.ac-bill-radios, .ac-bill-checks { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.ac-bill-radios label, .ac-bill-checks label, .ac-bill-check { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; font-weight: 400; }
.ac-bill-check { margin: 0 0 8px; }
.ac-bill input[type=checkbox], .ac-bill input[type=radio] { width: 20px; height: 20px; margin: 0; }
.ac-bill-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 16px; }
.ac-bill-form { margin: 16px 0 0; padding: 14px; border: 1px solid var(--ac-b-line); border-radius: 8px; min-width: 0; }
.ac-bill-form > legend { padding: 0 6px; font-weight: 700; }
.ac-bill-scroll { max-width: 100%; overflow-x: auto; }
.ac-bill-table { width: 100%; border-collapse: collapse; font-size: .95em; }
.ac-bill-table th, .ac-bill-table td { padding: 8px; border-bottom: 1px solid var(--ac-b-line); text-align: left; vertical-align: top; }
.ac-bill-table thead th { color: var(--ac-b-muted); font-weight: 600; white-space: nowrap; }
.ac-bill-row-actions { white-space: nowrap; }
.ac-bill-row-actions .ac-bill-btn { min-height: 36px; padding: 4px 12px; }
.ac-bill-history { margin-top: 12px; }
.ac-bill-history summary { cursor: pointer; min-height: 32px; }
.ac-bill .ac-bill-field small { font-size: .88em; }
@media (max-width: 560px) {
  .ac-bill { padding: 12px; }
  .ac-bill-dl { grid-template-columns: 1fr; gap: 2px; }
  .ac-bill-dl dd { margin-bottom: 8px; }
  .ac-bill-actions > form, .ac-bill-actions .ac-bill-btn { width: 100%; }
  .ac-bill-actions > form .ac-bill-btn { width: 100%; }
}
html[data-theme="dark"] .ac-bill, body[data-theme="dark"] .ac-bill, html.dark .ac-bill, body.dark .ac-bill, .theme-dark .ac-bill, .ac-bill[data-theme="dark"] {
  --ac-b-bg: #161b22; --ac-b-fg: #e6edf3; --ac-b-muted: #a8b3c1; --ac-b-line: #3b4554; --ac-b-soft: #1f2630;
  --ac-b-accent: #4c9aff; --ac-b-accent-fg: #0b1220; --ac-b-danger: #ff7b72; --ac-b-danger-fg: #1a0b0a;
  --ac-b-ok-bg: #12301f; --ac-b-ok-fg: #a7f3c0; --ac-b-warn-bg: #3a2a0c; --ac-b-warn-fg: #ffd89a; --ac-b-err-bg: #3a1513; --ac-b-err-fg: #ffb4ab;
}
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]):not(.light) body:not([data-theme="light"]) .ac-bill:not([data-theme="light"]) {
    --ac-b-bg: #161b22; --ac-b-fg: #e6edf3; --ac-b-muted: #a8b3c1; --ac-b-line: #3b4554; --ac-b-soft: #1f2630;
    --ac-b-accent: #4c9aff; --ac-b-accent-fg: #0b1220; --ac-b-danger: #ff7b72; --ac-b-danger-fg: #1a0b0a;
    --ac-b-ok-bg: #12301f; --ac-b-ok-fg: #a7f3c0; --ac-b-warn-bg: #3a2a0c; --ac-b-warn-fg: #ffd89a; --ac-b-err-bg: #3a1513; --ac-b-err-fg: #ffb4ab;
  }
}
@media print { .ac-bill-actions, .ac-bill form { display: none; } }
/* 0.1.62 : événements du webhook (Super console › Stripe) et notes des pages de tarifs */
.ac-bill-copytext { width: 100%; box-sizing: border-box; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85em; padding: 8px; border: 1px solid var(--ac-b-line); border-radius: 8px; background: transparent; color: inherit; resize: vertical; }
.ac-bill-url { display: inline-block; max-width: 100%; overflow-wrap: anywhere; }
.ac-bill-table-wrap { overflow-x: auto; }
.ac-bill-event-missing td:first-child code { font-weight: 600; }
.ac-bill-notes { margin: .75rem 0; padding-left: 1.2rem; }
.ac-bill-notes li { margin: .25rem 0; }
.ac-bill-evlist { list-style: none; margin: .5rem 0; padding: 0; }
.ac-bill-evlist li { padding: 8px 0; border-bottom: 1px solid var(--ac-b-line); overflow-wrap: anywhere; }
.ac-bill-ev-last { float: right; margin-left: 8px; font-size: .9em; }
@media (max-width: 560px) { .ac-bill-ev-last { float: none; display: block; margin: 2px 0 0; } }
