.settings-form { display: flex; flex-direction: column; gap: .6rem; max-width: 420px; margin-top: .75rem; }
.settings-form label { font-size: .85rem; font-weight: 600; }
.settings-form input { padding: .5rem .6rem; border-radius: 8px; border: 1px solid var(--border, #ccc); font: inherit; }
.settings-form .form-msg { font-size: .85rem; min-height: 1.2em; }
.settings-form .form-msg.ok { color: var(--ok, #1a7f37); }
.settings-form .form-msg.err { color: var(--danger, #c0392b); }
.danger-block { border: 1px solid var(--danger, #c0392b); border-radius: 10px; padding: 1rem 1.25rem; margin-top: 2.5rem; }
.danger-block h2 { color: var(--danger, #c0392b); margin-top: 0; }
.btn-danger { background: var(--danger, #c0392b); color: #fff; border: none; }
.btn-danger:hover { filter: brightness(1.1); }

/* --- Réglages en sections repliables (accordéon) --- */
.settings-accordion { display: flex; flex-direction: column; gap: .6rem; }
details.settings-block {
  border: 1px solid var(--border, #ddd); border-radius: 10px; overflow: hidden;
  background: var(--bg-2, #fff);
}
details.settings-block summary {
  cursor: pointer; padding: 1rem 1.25rem; font-weight: 700; font-size: 1.02rem;
  list-style: none; display: flex; align-items: center; justify-content: space-between;
  color: var(--text, #16181d);
}
details.settings-block summary::-webkit-details-marker { display: none; }
details.settings-block summary::after { content: '▾'; font-size: .85rem; color: var(--text-dim, #64707e); transition: transform .15s ease; }
details.settings-block[open] summary::after { transform: rotate(180deg); }
details.settings-block summary:hover { background: var(--surface-2, #f0f2f6); }
details.settings-block .settings-body { padding: 0 1.25rem 1.25rem; }
details.settings-block .settings-body h3.sub { margin-top: 1.75rem; }
.billing-cancel-block { margin-top: 1.5rem; }
.billing-cancel-block h3 { color: var(--danger, #c0392b); margin-top: 0; }

.approval-mode-options { display: flex; flex-direction: column; gap: .5rem; margin-top: .5rem; }
.approval-mode-opt { display: flex; align-items: flex-start; gap: .5rem; padding: .6rem .8rem; border: 1px solid var(--border, #ddd); border-radius: 8px; cursor: pointer; font-size: .9rem; }
.approval-mode-opt:hover { background: var(--surface-2, #f0f2f6); }
.approval-mode-opt input { margin-top: .2rem; }

/* --- Abonnement --- */
.billing-status { font-weight: 700; }
.billing-status.status-ok { color: var(--ok, #1a7f37); }
.billing-status.status-bad { color: var(--danger, #c0392b); }
.billing-subcard { border: 1px solid var(--border, #ddd); border-radius: 10px; padding: .85rem 1rem; margin-top: .85rem; }
.billing-subcard h3 { margin: 0 0 .4rem; font-size: .92rem; }
.billing-subcard .billing-amount { font-size: 1.3rem; font-weight: 700; }
.billing-subcard .billing-date { color: var(--text-dim, #666); font-size: .85rem; }
.invoice-list { list-style: none; margin: .5rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.invoice-list li { display: flex; justify-content: space-between; gap: .6rem; font-size: .88rem; padding: .4rem .1rem; border-bottom: 1px solid var(--border, #eee); }
.invoice-list li:last-child { border-bottom: none; }
.tax-note { font-size: .85rem; color: var(--text-dim, #444); background: var(--surface-2, #f5f6f8); border-radius: 8px; padding: .7rem .9rem; margin-top: 1rem; }

/* --- Outils & plugins de l'agent --- */
.tools-env { margin-bottom: .8rem; font-size: .9rem; }
.tools-list { display: flex; flex-direction: column; gap: .4rem; }
.tools-row { display: flex; align-items: center; gap: .7rem; padding: .55rem .8rem; border: 1px solid var(--border, #ddd); border-radius: 8px; }
.tools-row.is-installed { background: color-mix(in srgb, var(--ok, #1a7f37) 7%, transparent); }
.tools-info { flex: 1; min-width: 0; font-size: .88rem; }
.tools-desc { color: var(--text-dim, #666); font-size: .8rem; }
.tools-info code { font-size: .78rem; background: var(--surface-2, #f0f2f6); padding: 1px 5px; border-radius: 4px; }
.tools-install-btn { flex: 0 0 auto; }
.tools-log { max-height: 240px; overflow: auto; background: #0d1117; color: #d6e2ea; border-radius: 8px; padding: .7rem .9rem; margin-top: .7rem; font-family: var(--mono, monospace); font-size: .78rem; white-space: pre-wrap; word-break: break-word; }

/* --- Quota de requetes mensuel --- */
.usage-quota-block { margin-bottom: 1.1rem; }
.usage-quota-header { display: flex; justify-content: space-between; font-size: .88rem; font-weight: 600; margin-bottom: .4rem; }
.usage-quota-bar { width: 100%; height: 10px; border-radius: 999px; background: var(--surface-2, #eef0f4); overflow: hidden; }
.usage-quota-fill { height: 100%; border-radius: 999px; background: var(--primary, #3b5bfd); transition: width .3s ease; }
.usage-quota-fill.is-warn { background: var(--amber, #d97706); }
.usage-quota-fill.is-full { background: var(--danger, #c0392b); }
.usage-quota-block .admin-note { margin-top: .35rem; }

.plan-upgrade-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.plan-upgrade-row button:disabled { opacity: .6; cursor: default; }

/* Reglages -> Base documentaire (Archipel) */
.archipel-postes { display: flex; flex-direction: column; gap: .5rem; margin: .5rem 0 1rem; }
.archipel-poste { display: flex; align-items: center; gap: .75rem; padding: .6rem .8rem; border: 1px solid var(--border, #ccc); border-radius: 8px; }
.archipel-poste-texte { flex: 1; min-width: 0; }
.archipel-pastille { width: .65rem; height: .65rem; border-radius: 50%; background: var(--border, #bbb); flex: none; }
.archipel-pastille.en-ligne { background: var(--ok, #1a7f37); }
.archipel-jeton { margin-top: .75rem; max-width: 640px; }
.archipel-jeton-ligne { display: flex; gap: .5rem; }
.archipel-jeton-ligne input { flex: 1; min-width: 0; font-family: ui-monospace, Consolas, monospace; font-size: .8rem; padding: .5rem .6rem; border-radius: 8px; border: 1px solid var(--border, #ccc); }
.archipel-telechargement { margin: .25rem 0 1rem; max-width: 640px; }
.archipel-telechargement .btn { display: inline-block; margin-bottom: .5rem; }
.archipel-empreinte summary { cursor: pointer; font-size: .85rem; }
.archipel-sha { display: block; word-break: break-all; font-size: .75rem; padding: .4rem .5rem; border: 1px solid var(--border, #ccc); border-radius: 6px; }
.archipel-dl-lance { opacity: .6; cursor: default; pointer-events: auto; }
.archipel-dl-etat:empty { display: none; }
.archipel-entete { display: flex; align-items: flex-start; gap: .75rem; }
.archipel-entete p { flex: 1; margin-top: 0; }

/* Soutien a distance (SouverainBox) */
.soutien-texte { max-width: 680px; font-size: .9rem; line-height: 1.5; background: var(--surface-2, #f5f6f8); border-left: 3px solid var(--accent, #4f6ef7); border-radius: 6px; padding: .75rem .95rem; margin: .5rem 0 0; }
.soutien-durees { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; border: 1px solid var(--border, #ddd); border-radius: 8px; padding: .5rem .8rem .6rem; margin: 0; }
.soutien-durees legend { font-size: .85rem; font-weight: 600; padding: 0 .3rem; }
.settings-form .soutien-duree { display: flex; align-items: center; gap: .35rem; font-weight: 400; font-size: .9rem; cursor: pointer; }
.settings-form .soutien-accord { display: flex; align-items: flex-start; gap: .5rem; font-weight: 600; font-size: .9rem; cursor: pointer; }
.settings-form .soutien-accord input { margin-top: .2rem; }
.soutien-form button:disabled { opacity: .55; cursor: not-allowed; }
.soutien-bandeau { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1rem; max-width: 680px; border: 1px solid var(--warn, #d97706); background: color-mix(in srgb, var(--warn, #d97706) 12%, transparent); border-radius: 10px; padding: .8rem 1rem; margin: .5rem 0 .75rem; }
.soutien-rebours { font-variant-numeric: tabular-nums; font-weight: 700; }
.soutien-msg { font-size: .85rem; min-height: 1.2em; margin: .6rem 0 0; }
.soutien-msg.ok { color: var(--ok, #1a7f37); }
.soutien-msg.err { color: var(--danger, #c0392b); }
.soutien-journal td { font-size: .85rem; vertical-align: top; }
.soutien-journal td:first-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
