/* Geodalia · espace client (app.html), sur Carbon (@carbon/web-components).
   Chargé après vendor/carbon.css et base.css. Ici seulement l'assemblage de page : coquille (décalage sous cds-header
   et à côté de cds-side-nav), lignes d'option du configurateur, panneau de prix collant, barre de prix mobile,
   tableaux en cartes sous 672 px, aperçus, répartition des points, état vide. Classes maison préfixées app-.
   Couleurs et espacements : jetons --cds-* uniquement. Points de rupture Carbon : md 42rem, lg 66rem, xlg 82rem. */

/* Couche : les champs posés sur une tuile (layer-01) prennent le fond field-02. */
cds-layer { display: block; }

/* Notifications en ligne : toute la largeur de leur bloc, sans déborder (Carbon les plafonne et ajoute son filet). */
.app-main :is(cds-inline-notification, cds-actionable-notification), .app-entree cds-inline-notification { max-inline-size: none; min-inline-size: 0; margin: 0; inline-size: 100%; box-sizing: border-box; }

/* ========== Coquille ========== */
.app-main { display: flex; flex-direction: column; min-block-size: 100dvh; padding-block-end: var(--cds-spacing-07); }
/* Pied de page : en bas de l'écran quand la vue est courte, aligné sur la grille. */
.app-pied { margin-block-start: auto; padding-block-start: var(--cds-spacing-10); color: var(--cds-text-secondary); }
.app-pied-l {
  display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03) var(--cds-spacing-06);
  padding-block-start: var(--cds-spacing-05); border-block-start: 1px solid var(--cds-border-subtle-00);
}
.app-main:focus { outline: none; }
/* La cds-side-nav fixe (16rem, ≥ 66rem) ne décale pas le contenu d'elle-même. */
@media (min-width: 66rem) { .app-main { margin-inline-start: 16rem; } }
.app-main section[aria-busy="true"] { opacity: .6; transition: opacity 110ms cubic-bezier(.2, 0, .38, .9) 150ms; }

/* En-tête : e-mail et déconnexion à droite */
.app-entete-droite { display: flex; align-items: center; block-size: 100%; margin-inline-start: auto; }
.app-moi {
  max-inline-size: 18rem; padding-inline: var(--cds-spacing-05); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--cds-text-secondary); text-decoration: none;
}
.app-moi:hover { color: var(--cds-text-primary); text-decoration: underline; }
.app-moi:focus-visible { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
@media (max-width: 41.98rem) { .app-moi { display: none; } }

/* Compteur « en cours » dans le lien de navigation */
.app-compteur {
  display: inline-grid; place-items: center; min-inline-size: 1.25rem; block-size: 1.25rem; margin-inline-start: var(--cds-spacing-03);
  padding-inline: var(--cds-spacing-02); border-radius: .625rem;
  background: var(--cds-tag-background-blue); color: var(--cds-tag-color-blue);
  font-size: var(--cds-label-01-font-size); line-height: 1; font-weight: 600;
}
/* Bas du menu (mobile seulement : sur bureau, l'en-tête porte l'e-mail et la déconnexion) */
.app-nav-moi {
  display: grid; justify-items: start; gap: var(--cds-spacing-02);
  margin-block-start: var(--cds-spacing-05); padding: var(--cds-spacing-05);
  border-block-start: 1px solid var(--cds-border-subtle-01); color: var(--cds-text-secondary);
}
.app-nav-mail { max-inline-size: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--cds-link-primary); }
.app-nav-moi cds-button { margin-inline-start: calc(-1 * var(--cds-spacing-05)); }
@media (min-width: 66rem) { .app-nav-moi { display: none; } }

/* ========== Vues ========== */
.app-vue { padding-block-start: var(--cds-spacing-07); row-gap: var(--cds-spacing-07); align-items: start; }
.app-tete { display: flex; flex-direction: column; gap: var(--cds-spacing-05); }
.app-tete--ligne { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.app-tete-titre { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cds-spacing-03) var(--cds-spacing-04); min-inline-size: 0; }
.app-tete h1 { margin: 0; }
/* Titre de vue focalisé par programme au changement de vue (tabindex="-1") : pas d'anneau, ce n'est pas un arrêt de tabulation. */
.app-tete h1[tabindex="-1"]:focus { outline: none; }
/* Fil d'Ariane : les éléments restent sur une ligne à 390 px (chaque cds-breadcrumb-item est en flex pleine largeur). */
.app-tete cds-breadcrumb-item { display: inline-flex; }
.app-tete p { margin: 0; }
.app-discret { color: var(--cds-text-secondary); }
.app-aide {
  margin: var(--cds-spacing-03) 0 0; color: var(--cds-text-helper);
  font-size: var(--cds-helper-text-01-font-size); line-height: var(--cds-helper-text-01-line-height); letter-spacing: var(--cds-helper-text-01-letter-spacing);
}
.app-aide--err { color: var(--cds-text-error); }
.app-pile { display: grid; gap: var(--cds-spacing-05); min-inline-size: 0; }
.app-plein { inline-size: 100%; max-inline-size: none; }
.app-plein::part(button) { inline-size: 100%; max-inline-size: none; }

/* Étapes : frise Carbon dès 42rem, texte court dessous */
.app-etape-m { display: none; color: var(--cds-text-secondary); }
@media (max-width: 41.98rem) {
  .app-etapes { display: none; }
  .app-etape-m { display: block; }
}

/* ========== Configurateur ========== */
.app-config { min-inline-size: 0; }

/* Paiement commencé : configurateur figé (inert), notification au-dessus */
.app-main .app-fige { margin-block-end: var(--cds-spacing-06); }


.app-bloc { margin-block-start: var(--cds-spacing-07); }
.app-bloc--premier { margin-block-start: 0; }
.app-bloc-tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--cds-spacing-03); margin-block-end: var(--cds-spacing-05); }
.app-bloc-tete h2 { margin: 0; }

/* Dépôt */
.app-depot { display: block; }
.app-depot-lim { display: grid; gap: var(--cds-spacing-01); }
#limites > span { white-space: nowrap; }
#limites > span + span::before { content: " · "; white-space: pre; }
.app-depot-toucher { display: none; }
@media (pointer: coarse) { .app-depot-glisser { display: none; } .app-depot-toucher { display: inline; } }
.app-fichiers { margin-block-start: var(--cds-spacing-05); }

/* Accordéon des options : titre + résumé à droite, contenu sur toute la largeur */
.app-options::part(expando) { min-block-size: 3rem; }
.app-options cds-accordion-item::part(title) { flex: 1; min-inline-size: 0; }
.app-options cds-accordion-item::part(content) { padding-inline: var(--cds-spacing-05); padding-block: var(--cds-spacing-03) var(--cds-spacing-06); }
.app-acc-titre { display: flex; align-items: baseline; justify-content: space-between; gap: var(--cds-spacing-05); inline-size: 100%; }
.app-acc-titre > span:first-child { flex: none; font-weight: 600; }
.app-resume {
  min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--cds-text-secondary);
  font-size: var(--cds-label-01-font-size); line-height: var(--cds-label-01-line-height); letter-spacing: var(--cds-label-01-letter-spacing);
}
.app-resume--alerte { color: var(--cds-text-error); font-weight: 600; }

/* Ligne d'option : libellé à gauche, réglage à droite (empilés sous 42rem) */
.app-ligne {
  display: grid; grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr); gap: var(--cds-spacing-03) var(--cds-spacing-06);
  padding-block: var(--cds-spacing-05); border-block-end: 1px solid var(--cds-border-subtle-01);
}
.app-ligne:first-of-type { padding-block-start: var(--cds-spacing-03); }
.app-ligne:last-child { border-block-end: 0; padding-block-end: 0; }
.app-ligne { align-items: start; }
/* Libellé centré sur la première ligne du réglage : 20 px (texte, boutons radio), 24 px (texte + tag),
   40 px (select, champ), 48 px (notification). */
.app-lab {
  display: flex; flex-wrap: wrap; align-items: center; align-content: center; gap: var(--cds-spacing-03);
  min-block-size: 1.25rem; color: var(--cds-text-secondary);
  font-size: var(--cds-heading-compact-01-font-size); line-height: var(--cds-heading-compact-01-line-height); font-weight: 600;
}
.app-val { display: block; min-inline-size: 0; }
@media (min-width: 42rem) {
  .app-ligne:has(> .app-val > :is(.app-fixe, .app-legende):first-child) .app-lab { min-block-size: 1.5rem; }
  .app-ligne:has(> .app-val > :is(cds-select, cds-text-input):first-child) .app-lab { min-block-size: 2.5rem; }
  .app-ligne:has(> .app-val > :is(cds-inline-notification, cds-actionable-notification):first-child) .app-lab { min-block-size: 3rem; }
}
.app-val > p { margin: 0; }
.app-val > .app-aide { margin-block-start: var(--cds-spacing-03); }
@media (max-width: 41.98rem) {
  .app-ligne { grid-template-columns: minmax(0, 1fr); }
  .app-lab { min-block-size: 0; }
}
.app-fixe { display: flex; align-items: center; gap: var(--cds-spacing-03); }
.app-legende { grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); color: var(--cds-text-primary); }
.app-codes {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: var(--cds-spacing-05);
  margin-block-start: var(--cds-spacing-05);
}
.app-radios { display: block; }
.app-sauve { display: inline-flex; margin-block-start: var(--cds-spacing-02); min-block-size: 0; }
.app-sauve[hidden] { display: none; }

/* Aperçus d'emprise (images servies par l'API) */
.app-apercus { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: var(--cds-spacing-04); max-inline-size: 34rem; }
.app-apercu { margin: 0; display: grid; gap: var(--cds-spacing-02); min-inline-size: 0; }
.app-apercu-img { display: block; border: 1px solid var(--cds-border-subtle-01); background: var(--cds-layer-01); }
.app-apercu img { display: block; inline-size: 100%; block-size: auto; max-block-size: 8.75rem; object-fit: contain; }
.app-apercu figcaption {
  display: flex; justify-content: space-between; gap: var(--cds-spacing-03); color: var(--cds-text-secondary);
  font-size: var(--cds-label-01-font-size); line-height: var(--cds-label-01-line-height);
}
.app-apercu figcaption .gd-num { flex: none; white-space: nowrap; }
.app-apercu figcaption span:first-child { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: 'IBM Plex Mono', ui-monospace, monospace; }
@media (prefers-color-scheme: dark) { .app-apercu img { filter: invert(1) hue-rotate(180deg) brightness(.92); } }

/* ========== Détail du prix (collant à droite dès 66rem) ========== */
.app-recap-col { min-inline-size: 0; }
/* Jamais de défilement interne : le panneau reste collé quand il tient en entier dans l'écran (classe posée par app.js),
   sinon il défile avec la page. */
@media (min-width: 66rem) {
  .app-recap-col { align-self: start; }
  .app-recap-col.app-recap-col--collee { position: sticky; inset-block-start: calc(var(--gd-entete) + var(--cds-spacing-05)); }
}
.app-recap { display: block; padding: var(--cds-spacing-05); }
.app-recap aside { display: grid; gap: var(--cds-spacing-05); }
.app-recap-tete { display: flex; align-items: center; justify-content: space-between; gap: var(--cds-spacing-03); }
.app-recap-tete h2 { margin: 0; }
.app-recap-tete h2:focus { outline: none; }
.app-lignes { margin: 0; border-block-start: 1px solid var(--cds-border-subtle-01); }
.app-lignes > div {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--cds-spacing-05);
  padding-block: var(--cds-spacing-03); border-block-end: 1px solid var(--cds-border-subtle-01);
}
.app-lignes dt { color: var(--cds-text-secondary); }
.app-lignes dd { margin: 0; text-align: end; }
.app-lignes .app-off :is(dt, dd) { color: var(--cds-text-disabled); }
.app-total { display: grid; gap: var(--cds-spacing-02); }
.app-total p { margin: 0; }
#q-total:empty { display: none; }
#q-total { transition: background-color 400ms ease-out; }
#q-total.app-flash { background: var(--cds-highlight); transition: none; }
.app-accords { display: grid; gap: var(--cds-spacing-03); margin: 0; padding: 0; border: 0; min-inline-size: 0; }
.app-accords legend { padding: 0; margin-block-end: var(--cds-spacing-03); }
.app-accords-aide { margin: 0; }
.app-raison:empty { display: none; }
.app-raison { margin: 0; }
.app-recap aside > p { margin: 0; }
#pay-charge { min-block-size: 3rem; }

/* Barre de prix mobile (sous 66rem, tant que le détail du prix n'est pas à l'écran) */
.app-barre {
  position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 7000;
  display: flex; align-items: center; justify-content: space-between; gap: var(--cds-spacing-05);
  padding: var(--cds-spacing-03) var(--cds-spacing-05); padding-block-end: max(var(--cds-spacing-03), env(safe-area-inset-bottom, 0px));
  background: var(--cds-layer-01); border-block-start: 1px solid var(--cds-border-subtle-01);
}
.app-barre-t { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--cds-spacing-03); min-inline-size: 0; }
.app-barre-t b { font-size: var(--cds-heading-03-font-size); line-height: var(--cds-heading-03-line-height); font-weight: 600; }
.app-barre-t b.app-attente { font-size: var(--cds-body-compact-01-font-size); font-weight: 400; color: var(--cds-text-secondary); }
body.app-avec-barre .app-main { padding-block-end: calc(var(--cds-spacing-10) + 4rem); }

/* ========== Tableaux (fichiers, commandes, administration) ========== */
.app-table { display: block; }
.app-table cds-table-header-cell.app-d, .app-table cds-table-cell.app-d { text-align: end; }
.app-table cds-table-cell.app-d { font-variant-numeric: tabular-nums; white-space: nowrap; }
.app-table cds-table-cell.app-nul { color: var(--cds-text-disabled); }
.app-table cds-table-header-cell.app-x, .app-table cds-table-cell.app-x { inline-size: 1%; white-space: nowrap; text-align: end; }
.app-table cds-table-cell { vertical-align: middle; }
.app-table code { background: transparent; border: 0; padding: 0; font-size: var(--cds-code-02-font-size, .875rem); }
.app-nom { display: grid; gap: var(--cds-spacing-01); min-inline-size: 0; padding-block: var(--cds-spacing-02); }
.app-nom code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-inline-size: 22rem; }
.app-envoi { display: flex; align-items: center; gap: var(--cds-spacing-03); min-inline-size: 8rem; }
.app-envoi cds-tag { margin: 0; flex: none; }
.app-envoi cds-progress-bar { flex: 1; min-inline-size: 4rem; }
.app-envoi .gd-num { inline-size: 2.75rem; text-align: end; white-space: nowrap; }
.app-etat { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cds-spacing-02) var(--cds-spacing-04); }
.app-avanc { display: inline-flex; align-items: center; gap: var(--cds-spacing-03); }
.app-avanc cds-progress-bar { inline-size: 4rem; }
.app-avanc .gd-num { color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size); }
.app-table cds-table-row.app-retrait { opacity: .5; }
.app-table--commandes cds-table-row { cursor: pointer; }
.app-table--commandes cds-table-cell.app-x { color: var(--cds-icon-secondary); }
.app-table--admin .app-client { display: block; max-inline-size: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-skel { display: block; padding-block: var(--cds-spacing-04); }

/* Sous 42rem : chaque ligne devient une carte (libellé de colonne en ::before) */
@media (max-width: 41.98rem) {
  .app-table cds-table-head { display: none; }
  .app-table cds-table-body { display: grid; gap: 1px; background: transparent; }
  .app-table cds-table-row {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cds-spacing-03) var(--cds-spacing-04);
    box-sizing: border-box; inline-size: 100%; block-size: auto; padding: var(--cds-spacing-04) var(--cds-spacing-05); background: var(--cds-layer-01);
  }
  .app-table cds-table-cell { display: block; padding: 0; border: 0; min-inline-size: 0; text-align: start !important; }
  .app-table cds-table-cell[data-label]::before {
    content: attr(data-label); display: block; color: var(--cds-text-secondary);
    font-size: var(--cds-label-01-font-size); line-height: var(--cds-label-01-line-height); letter-spacing: var(--cds-label-01-letter-spacing);
  }
  .app-table cds-table-cell.app-c1 { grid-column: 1 / -2; grid-row: 1; align-self: center; }
  .app-table cds-table-cell.app-x { grid-column: -2 / -1; grid-row: 1; inline-size: auto; justify-self: end; align-self: center; }
  .app-table cds-table-cell.app-large { grid-column: 1 / -1; }
  .app-table cds-table-cell.app-l2 { grid-column: span 2; }
  .app-nom code { max-inline-size: 100%; }
  .app-table cds-table-row.app-skel-l { display: block; }
}

/* ========== Liste vide, filtres ========== */
.app-vide {
  display: grid; justify-items: start; gap: var(--cds-spacing-05);
  padding: var(--cds-spacing-09) var(--cds-spacing-07); background: var(--cds-layer-01);
}
.app-vide h2, .app-vide p { margin: 0; }
.app-vide p { color: var(--cds-text-secondary); max-inline-size: 32rem; }
.app-vide-logo i { grid-template-columns: repeat(3, 10px); grid-auto-rows: 10px; gap: 3px; }
.app-vide-logo i b { width: 10px; height: 10px; background: var(--cds-border-strong-01); }
.app-vide-logo i b:nth-child(5) { background: var(--cds-button-primary); }
@media (max-width: 41.98rem) { .app-vide { padding: var(--cds-spacing-07) var(--cds-spacing-05); } }
.app-filtres {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cds-spacing-05);
  margin-block-end: var(--cds-spacing-05);
}
/* cds-select occupe toute la largeur par défaut */
.app-filtres cds-select { flex: 0 1 auto; inline-size: auto; }
#paye, #paye-att { max-inline-size: none; margin-block-end: var(--cds-spacing-05); }

/* ========== Détail d'une commande ========== */
.app-panneau { display: block; padding: var(--cds-spacing-05); }
.app-panneau section { display: grid; gap: var(--cds-spacing-05); }
.app-panneau h2 { margin: 0; }
.app-panneau h3 { margin: 0; color: var(--cds-text-secondary); }
.app-panneau-tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cds-spacing-03); }
.app-panneau cds-inline-notification { max-inline-size: none; margin: 0; }
.app-avance { display: grid; gap: var(--cds-spacing-03); }
.app-avance p { margin: 0; }
.app-frise { max-inline-size: 100%; }
/* Frise verticale : la dernière étape s'arrête à son contenu (son trait ne descend pas sous l'étape). */
.app-frise cds-progress-step:last-child { min-block-size: 0; }

/* Répartition des points : barre empilée + légende */
.app-repartition { display: flex; block-size: .75rem; overflow: hidden; background: var(--cds-layer-accent-01); }
.app-repartition i { display: block; min-inline-size: 2px; flex-basis: 0; }
.app-repartition-l { display: grid; grid-template-columns: auto auto 1fr; gap: var(--cds-spacing-03) var(--cds-spacing-05); align-items: center; margin: 0; padding: 0; list-style: none; }
.app-repartition-l li { display: contents; }
.app-repartition-l .app-cl { display: flex; align-items: center; gap: var(--cds-spacing-03); }
.app-repartition-l .gd-num { text-align: end; }
.app-repartition-n { margin: 0; color: var(--cds-text-secondary); }

/* Téléchargements */
.app-dl-g { display: grid; gap: var(--cds-spacing-03); }
.app-dl { margin: 0; padding: 0; list-style: none; border-block-start: 1px solid var(--cds-border-subtle-01); }
.app-dl li { display: flex; align-items: center; justify-content: space-between; gap: var(--cds-spacing-04); padding-block: var(--cds-spacing-04); border-block-end: 1px solid var(--cds-border-subtle-01); min-inline-size: 0; }
.app-dl cds-link { min-inline-size: 0; overflow: hidden; }
.app-dl cds-link code { background: transparent; border: 0; padding: 0; color: inherit; font-size: var(--cds-code-02-font-size, .875rem); }
.app-dl .gd-num { flex: none; color: var(--cds-text-secondary); }
.app-dl-att { display: flex; align-items: center; gap: var(--cds-spacing-03); margin: 0; color: var(--cds-text-secondary); }

/* Récapitulatif (clé / valeur) */
.app-kv { display: grid; grid-template-columns: minmax(7rem, auto) minmax(0, 1fr); margin: 0; border-block-start: 1px solid var(--cds-border-subtle-01); }
.app-kv dt, .app-kv dd { margin: 0; padding-block: var(--cds-spacing-03); border-block-end: 1px solid var(--cds-border-subtle-01); }
.app-kv dt { color: var(--cds-text-secondary); padding-inline-end: var(--cds-spacing-05); }
.app-kv dd { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }

/* ========== Connexion ========== */
.app-entree { min-block-size: 100dvh; display: grid; align-content: center; padding-block: var(--cds-spacing-09); background: var(--cds-background); }
.app-entree-col { display: grid; gap: var(--cds-spacing-05); }
.app-entree-retour { display: inline-flex; align-items: center; gap: var(--cds-spacing-03); justify-self: start; text-decoration: none; }
.app-entree-retour:hover { text-decoration: underline; }
.app-entree-carte { display: block; padding: var(--cds-spacing-07) var(--cds-spacing-06); }
.app-entree-carte section { display: grid; gap: var(--cds-spacing-05); }
.app-entree-carte h1 { margin: var(--cds-spacing-03) 0 0; }
.app-entree-carte h1[tabindex="-1"]:focus { outline: none; }
.app-entree-logo { margin-block-end: var(--cds-spacing-03); }
.app-entree-chapeau, .app-entree-dest { margin: 0; color: var(--cds-text-secondary); }
.app-entree-dest b { color: var(--cds-text-primary); font-weight: 600; overflow-wrap: anywhere; }
.app-entree-form { display: grid; gap: var(--cds-spacing-06); margin-block-start: var(--cds-spacing-03); }
.app-entree-liens { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--cds-spacing-03); margin-block-start: calc(-1 * var(--cds-spacing-03)); }
.app-entree-liens cds-button:first-child { margin-inline-start: calc(-1 * var(--cds-spacing-05)); }
.app-entree-liens cds-button:last-child { margin-inline-end: calc(-1 * var(--cds-spacing-05)); }
.app-entree-carte cds-inline-notification { max-inline-size: none; margin: 0; }
.app-entree-pied { margin: 0; color: var(--cds-text-secondary); }
@media (max-width: 41.98rem) {
  .app-entree { align-content: start; padding-block: var(--cds-spacing-06); }
  .app-entree-carte { padding: var(--cds-spacing-06) var(--cds-spacing-05); }
}

/* ========== Votre compte (profil) et Mon compte ========== */
/* Ligne discrète du tarif, sous le détail du prix */
.app-tarif-ligne { margin: calc(-1 * var(--cds-spacing-03)) 0 0; color: var(--cds-text-secondary); }
.app-pay-info { margin: 0; }
/* Commandes fermées (GET /v1/config) : la notification et « Me prévenir » remplacent le bouton Payer. */
.app-ferme { display: grid; gap: var(--cds-spacing-05); }
/* Tuiles de tarif : deux boutons radio encadrés, aucun choisi d'avance */
.app-tarifs { display: block; }
.app-tarifs cds-radio-button {
  display: block; box-sizing: border-box; inline-size: 100%; margin: 0; padding: var(--cds-spacing-05);
  border: 1px solid var(--cds-border-subtle-01); background: var(--cds-layer-02, var(--cds-field-02)); cursor: pointer;
}
.app-tarifs cds-radio-button + cds-radio-button { margin-block-start: var(--cds-spacing-03); }
.app-tarifs cds-radio-button:hover { background: var(--cds-layer-hover-02, var(--cds-layer-hover-01)); }
.app-tarifs cds-radio-button[checked] { border-color: var(--cds-border-interactive); box-shadow: inset 0 0 0 1px var(--cds-border-interactive); }
.app-tarif { display: grid; gap: var(--cds-spacing-02); }
.app-tarif-prix { font-weight: 600; color: var(--cds-text-primary); }
.app-tarif-texte { color: var(--cds-text-secondary); }
/* Dénomination trouvée pour le SIREN saisi */
.app-trouve {
  display: flex; align-items: flex-start; gap: var(--cds-spacing-03); margin: calc(-1 * var(--cds-spacing-02)) 0 0; color: var(--cds-text-primary);
  font-size: var(--cds-body-compact-01-font-size); line-height: var(--cds-body-compact-01-line-height);
}
.app-trouve .gd-ico { margin-block-start: .125rem; }
.app-trouve-ok { fill: var(--cds-support-success); }
.app-trouve-ko { fill: var(--cds-support-warning); }
.app-trouve cds-inline-loading { min-block-size: 0; }
.app-profil { gap: var(--cds-spacing-07); }
.app-profil-fin { display: grid; gap: var(--cds-spacing-03); }
.app-entree-pied a { color: var(--cds-link-primary); }
/* Formulaires de Mon compte */
.app-form { display: grid; gap: var(--cds-spacing-05); min-inline-size: 0; }
.app-actions { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); }
.app-liste { margin: 0; padding-inline-start: var(--cds-spacing-05); list-style: disc; display: grid; gap: var(--cds-spacing-02); }
.app-panneau .app-liste { margin: 0; }
.app-sous-bloc { display: grid; gap: var(--cds-spacing-04); padding-block-start: var(--cds-spacing-05); border-block-start: 1px solid var(--cds-border-subtle-01); }
.app-sous-bloc h3 { margin: 0; color: var(--cds-text-primary); }
.app-sous-bloc .app-aide { margin: 0; }
/* Conditions : libellés longs, deux colonnes égales sur bureau, empilés sous 42rem */
.app-kv--compte { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
@media (max-width: 41.98rem) {
  .app-kv--compte { grid-template-columns: minmax(0, 1fr); }
  .app-kv--compte dt { border-block-end: 0; padding-block-end: 0; }
}
.app-kv-liens { display: block; margin-block-start: var(--cds-spacing-02); font-size: var(--cds-helper-text-01-font-size); }
.app-kv-liens a { color: var(--cds-link-primary); }
.app-panneau h2:focus { outline: none; }

/* ========== Message (toast unique) ========== */
#message { position: fixed; inset-inline-end: var(--cds-spacing-05); inset-block-end: var(--cds-spacing-05); z-index: 8500; max-inline-size: min(28rem, calc(100vw - 2rem)); margin: 0; }
body.app-avec-barre #message { inset-block-end: calc(4rem + var(--cds-spacing-05)); }
@media (max-width: 41.98rem) { #message { inset-inline: var(--cds-spacing-05); inline-size: auto; } }
