@import "./tokens.css";
/* Dessin issu de src/interface/systeme.css du SAS, portée indépendante de la V8. */
.labo9-root { color: var(--labo-text); background: var(--labo-canvas); font-family: var(--labo-font-body); font-size: var(--labo-font-size-body); line-height: var(--labo-line-height-reading); }
.labo9-root *, .labo9-root *::before, .labo9-root *::after { box-sizing: border-box; }
.labo9-root h1, .labo9-root h2 { font-family: var(--labo-font-display); line-height: var(--labo-line-height-tight); letter-spacing: var(--labo-letter-spacing-display); text-wrap: balance; }
.labo9-button { min-width: 0; max-width: 100%; overflow-wrap: anywhere; display: inline-flex; justify-content: center; align-items: center; gap: var(--labo-space-2); min-height: var(--labo-control-md); padding: var(--labo-control-padding-block) var(--labo-button-padding-md); border: var(--labo-border-width-hairline) solid transparent; border-radius: var(--labo-radius-pill); font: var(--labo-font-weight-semibold) var(--labo-font-size-body) / var(--labo-line-height-control) var(--labo-font-body); cursor: pointer; color: var(--labo-action-text); background: var(--labo-action); transition: background var(--labo-motion-fast), border-color var(--labo-motion-fast), transform var(--labo-motion-fast); }
.labo9-button > svg { flex-shrink: 0; }
.labo9-button:hover:not(:disabled) { background: var(--labo-action-hover); }
.labo9-button:active:not(:disabled) { transform: translateY(var(--labo-motion-press-offset)); }
.labo9-button:disabled { opacity: var(--labo-opacity-disabled); cursor: not-allowed; }
.labo9-button[data-size="sm"] { min-height: var(--labo-control-sm); padding-inline: var(--labo-button-padding-sm); font-size: var(--labo-font-size-small); }
.labo9-button[data-size="lg"] { min-height: var(--labo-control-lg); padding-inline: var(--labo-button-padding-lg); }
.labo9-button[data-variant="secondary"] { background: var(--labo-surface); color: var(--labo-text); border-color: var(--labo-border-strong); }
.labo9-button[data-variant="ghost"] { background: transparent; color: var(--labo-text); }
.labo9-button[data-variant="secondary"]:hover:not(:disabled), .labo9-button[data-variant="ghost"]:hover:not(:disabled) { background: var(--labo-hover); }
/* Actions fonctionnelles : couleur liée au geste, fond teinté distinct du bouton principal. */
.labo9-button[data-variant="info"] { background: var(--labo-info-soft); color: var(--labo-info); border-color: currentColor; }
.labo9-button[data-variant="info"]:hover:not(:disabled) { background: var(--labo-info-soft-hover); }
.labo9-button[data-variant="success"] { background: var(--labo-success-soft); color: var(--labo-success-action-text); border-color: currentColor; }
.labo9-button[data-variant="success"]:hover:not(:disabled) { background: var(--labo-success-soft-hover); }
.labo9-button[data-variant="warning"] { background: var(--labo-warning-soft); color: var(--labo-warning); border-color: currentColor; }
.labo9-button[data-variant="warning"]:hover:not(:disabled) { background: var(--labo-warning-soft-hover); }
.labo9-button[data-variant="paid"] { background: var(--labo-paid); color: var(--labo-on-paid); }
.labo9-button[data-variant="paid"]:hover:not(:disabled) { background: var(--labo-paid-hover); }
.labo9-button[data-variant="danger"] { background: transparent; color: var(--labo-danger); border-color: currentColor; }
.labo9-button[data-variant="danger"]:hover:not(:disabled) { background: var(--labo-danger-soft); }
/* Paire de décision (Meydeey, 30/10/2026) : Valider en vert, Refuser en rouge, fonds pleins et libellés mesurés en AA. */
.labo9-button[data-variant="approve"] { background: var(--labo-success); color: var(--labo-on-success); }
.labo9-button[data-variant="approve"]:hover:not(:disabled) { background: var(--labo-success-hover); }
.labo9-button[data-variant="reject"] { background: var(--labo-danger); color: var(--labo-on-danger); }
.labo9-button[data-variant="reject"]:hover:not(:disabled) { background: var(--labo-danger-hover); }
.labo9-button:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset-wide); }
.labo9-field { display: grid; gap: var(--labo-space-2); }
.labo9-field label { font-weight: var(--labo-font-weight-semibold); }
.labo9-input { width: 100%; min-width: 0; min-height: var(--labo-control-md); border: var(--labo-border-width-hairline) solid var(--labo-control-border); border-radius: var(--labo-radius-sm); padding: var(--labo-control-padding-block) var(--labo-button-padding-sm); background: var(--labo-surface); color: var(--labo-text); font: inherit; transition: border-color var(--labo-motion-fast), box-shadow var(--labo-motion-fast), background var(--labo-motion-fast); }
.labo9-input:hover:not(:disabled):not(:focus-visible):not([aria-invalid="true"]) { border-color: var(--labo-text-muted); }
.labo9-input::placeholder { color: var(--labo-text-muted); opacity: 1; }
.labo9-input:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); border-color: var(--labo-focus); box-shadow: 0 0 0 var(--labo-focus-halo) color-mix(in srgb, var(--labo-focus) 10%, transparent); }
.labo9-input:disabled { opacity: var(--labo-opacity-disabled); cursor: not-allowed; }
.labo9-input[aria-invalid="true"] { border-color: var(--labo-danger); }
.labo9-help, .labo9-error { margin: 0; font-size: var(--labo-font-size-small); }
.labo9-help { color: var(--labo-text-muted); }
.labo9-error { color: var(--labo-danger); }
.labo9-dialog { width: min(var(--labo-panel-dialog), calc(100% - 2 * var(--labo-space-4))); max-height: calc(100dvh - 2 * var(--labo-space-4)); padding: var(--labo-space-6); overflow: auto; border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-lg); background: var(--labo-surface); color: var(--labo-text); font: inherit; box-shadow: var(--labo-shadow-dialog); }
.labo9-dialog::backdrop { background: var(--labo-scrim); }
.labo9-dialog { overscroll-behavior: contain; }
.labo9-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: var(--labo-space-4); margin-bottom: var(--labo-space-5); padding-bottom: var(--labo-space-4); border-bottom: var(--labo-border-width-hairline) solid var(--labo-border); }
.labo9-dialog h2 { min-width: 0; overflow-wrap: anywhere; margin: 0; font-size: var(--labo-font-size-heading); }
.labo9-dialog-header > .labo9-button { flex-shrink: 0; max-width: 50%; }
@media (prefers-reduced-motion: reduce) { .labo9-button, .labo9-input { transition: none; } .labo9-button:active:not(:disabled) { transform: none; } }

/* Contrôles natifs P1 : les libellés restent visibles, même en thème forcé. */
.labo9-control-frame, .labo9-radio-group { min-width: 0; font: inherit; color: var(--labo-text); }
.labo9-control-label { overflow-wrap: anywhere; }
/* Mode Select natif explicite ; le menu simple personnalisé est défini plus bas. */
.labo9-select-wrap { position: relative; min-width: 0; }
.labo9-select { display: block; font: inherit; }
.labo9-select-wrap[data-dropdown] .labo9-select { appearance: none; padding-inline-end: calc(var(--labo-space-4) * 3); cursor: pointer; }
.labo9-select-wrap[data-dropdown] .labo9-select:disabled { cursor: not-allowed; }
.labo9-select-chevron { position: absolute; inset-inline-end: var(--labo-space-4); inset-block-start: 50%; transform: translateY(-50%); pointer-events: none; color: var(--labo-text-muted); }
.labo9-select-wrap:has(select:focus-visible) .labo9-select-chevron { color: var(--labo-focus); }
.labo9-select-wrap:has(select:disabled) .labo9-select-chevron { opacity: var(--labo-opacity-disabled); }
.labo9-select option, .labo9-select optgroup { color: var(--labo-text); background: var(--labo-surface); }
.labo9-select[multiple] { min-height: var(--labo-control-lg); }
.labo9-textarea { display: block; min-height: var(--labo-control-lg); resize: vertical; line-height: var(--labo-line-height-body); }
.labo9-choice-label { display: flex; align-items: center; gap: var(--labo-space-3); min-height: var(--labo-control-md); cursor: pointer; }
.labo9-checkbox, .labo9-radio { flex: 0 0 auto; appearance: none; position: relative; display: grid; place-content: center; width: var(--labo-choice-size); height: var(--labo-choice-size); margin: 0; border: var(--labo-border-width-hairline) solid var(--labo-control-border); background: var(--labo-surface); color: var(--labo-surface); accent-color: var(--labo-focus); cursor: pointer; transition: border-color var(--labo-motion-fast), background var(--labo-motion-fast); }
.labo9-checkbox { border-radius: var(--labo-radius-xs); }
.labo9-radio { border-radius: 50%; }
.labo9-checkbox:checked, .labo9-radio:checked { background: var(--labo-focus); border-color: var(--labo-focus); }
.labo9-checkbox:checked::before { content: ""; width: var(--labo-choice-check-width); height: var(--labo-choice-check-height); border-inline-start: var(--labo-border-width-strong) solid currentColor; border-bottom: var(--labo-border-width-strong) solid currentColor; transform: translateY(calc(-1 * var(--labo-border-width-hairline))) rotate(-45deg); }
.labo9-radio:checked { background: var(--labo-surface); }
.labo9-radio:checked::before { content: ""; width: var(--labo-choice-dot); height: var(--labo-choice-dot); border-radius: 50%; background: var(--labo-focus); }
.labo9-choice-label:hover input:not(:disabled):not([aria-invalid="true"]), .labo9-radio-option:hover input:not(:disabled):not([aria-invalid="true"]) { border-color: var(--labo-focus); }
.labo9-checkbox:focus-visible, .labo9-radio:focus-visible, .labo9-switch:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-space-1); }
.labo9-choice > .labo9-help, .labo9-choice > .labo9-error { padding-inline-start: calc(var(--labo-choice-size) + var(--labo-space-3)); }
.labo9-choice:has(.labo9-switch) > .labo9-help, .labo9-choice:has(.labo9-switch) > .labo9-error { padding-inline-start: calc(var(--labo-switch-width) + var(--labo-space-3)); }
.labo9-choice[data-disabled] .labo9-choice-label, .labo9-radio-group:disabled .labo9-choice-label,
.labo9-choice-label:has(input:disabled) { cursor: not-allowed; }
.labo9-choice[data-disabled] .labo9-choice-label, .labo9-radio-option:has(input:disabled) { opacity: var(--labo-opacity-disabled); }
.labo9-choice input:disabled, .labo9-radio:disabled { cursor: not-allowed; }
.labo9-choice[data-invalid] input, .labo9-radio-group[data-invalid] .labo9-radio { border-color: var(--labo-danger); }
.labo9-radio-group { margin: 0; padding: 0; border: 0; }
.labo9-radio-group > legend { padding: 0; margin-bottom: var(--labo-space-2); font-weight: var(--labo-font-weight-semibold); }
.labo9-radio-options { display: grid; gap: var(--labo-space-2); margin-top: var(--labo-space-2); }
.labo9-radio-group > .labo9-help, .labo9-radio-group > .labo9-error { margin-bottom: var(--labo-space-2); }
.labo9-option-help { padding-inline-start: calc(var(--labo-choice-size) + var(--labo-space-3)); }
.labo9-switch { appearance: none; position: relative; flex: 0 0 auto; width: var(--labo-switch-width); height: var(--labo-switch-height); margin: 0; border: var(--labo-border-width-hairline) solid var(--labo-control-border); border-radius: var(--labo-radius-pill); background: var(--labo-hover); cursor: pointer; transition: background var(--labo-motion-fast), border-color var(--labo-motion-fast); }
.labo9-switch::before { content: ""; position: absolute; inset-block-start: 50%; inset-inline-start: var(--labo-switch-inset); width: var(--labo-switch-thumb); height: var(--labo-switch-thumb); border-radius: var(--labo-radius-pill); background: var(--labo-text-muted); transform: translateY(-50%); transition: inset-inline-start var(--labo-motion-fast), background var(--labo-motion-fast); }
.labo9-switch:checked { background: var(--labo-focus); border-color: var(--labo-focus); }
.labo9-switch:checked::before { inset-inline-start: calc(100% - var(--labo-switch-inset) - var(--labo-switch-thumb)); background: var(--labo-surface); }
@media (prefers-reduced-motion: reduce) { .labo9-checkbox, .labo9-radio, .labo9-switch, .labo9-switch::before { transition: none; } }
@media (forced-colors: active) {
  .labo9-select-wrap[data-dropdown] .labo9-select { appearance: auto; padding-inline-end: var(--labo-space-4); }
  .labo9-select-chevron { display: none; }
  .labo9-checkbox, .labo9-radio { appearance: auto; background: revert; border: revert; }
  .labo9-checkbox::before, .labo9-radio::before { display: none; }
  .labo9-checkbox, .labo9-radio, .labo9-switch { forced-color-adjust: auto; }
  .labo9-switch { appearance: auto; width: var(--labo-space-5); height: var(--labo-space-5); background: revert; border: revert; }
  .labo9-switch::before { display: none; }
}

/* Single-choice menu: anchored outside the field; native lists remain opt-in. */
.labo9-select-trigger { appearance: none; display: flex; align-items: center; justify-content: space-between; gap: var(--labo-space-3); text-align: start; padding-inline-end: calc(var(--labo-space-4) * 3); cursor: pointer; }
.labo9-select-trigger > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.labo9-select-trigger[data-placeholder] { color: var(--labo-text-muted); }
.labo9-select-trigger:disabled { cursor: not-allowed; }
.labo9-select-trigger:focus-visible .labo9-select-chevron, .labo9-select-trigger[data-state="open"] .labo9-select-chevron { color: var(--labo-focus); }
.labo9-select-trigger:disabled .labo9-select-chevron { opacity: var(--labo-opacity-disabled); }
.labo9-select-content { z-index: var(--labo-layer-popover); width: var(--radix-select-trigger-width); max-width: calc(100vw - 2 * var(--labo-space-2)); max-height: var(--radix-select-content-available-height); overflow: hidden; border: var(--labo-border-width-hairline) solid var(--labo-border-strong); border-radius: var(--labo-radius-sm); background: var(--labo-surface); color: var(--labo-text); box-shadow: var(--labo-shadow-dialog); font: inherit; }
.labo9-select-viewport { max-height: min(var(--labo-panel-listbox), var(--radix-select-content-available-height)); padding: var(--labo-space-1); }
.labo9-select-item { position: relative; display: flex; align-items: center; min-height: var(--labo-control-sm); padding: var(--labo-space-2) var(--labo-space-3) var(--labo-space-2) calc(var(--labo-space-4) * 2); border-radius: calc(var(--labo-radius-sm) - var(--labo-space-1)); cursor: pointer; user-select: none; overflow-wrap: anywhere; outline: none; }
.labo9-select-item[data-highlighted] { background: var(--labo-hover); box-shadow: inset 0 0 0 var(--labo-focus-ring) var(--labo-focus); }
.labo9-select-item[data-state="checked"] { font-weight: var(--labo-font-weight-semibold); }
.labo9-select-item[data-disabled] { color: var(--labo-text-muted); opacity: var(--labo-opacity-disabled); cursor: not-allowed; }
.labo9-select-indicator { position: absolute; inset-inline-start: var(--labo-space-2); display: flex; color: var(--labo-focus); }
.labo9-select-group-label { padding: var(--labo-space-2) var(--labo-space-3); color: var(--labo-text-muted); font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-semibold); }
@media (forced-colors: active) {
  .labo9-select-trigger .labo9-select-chevron { display: block; }
  .labo9-select-content { border-color: CanvasText; background: Canvas; color: CanvasText; }
  .labo9-select-item[data-highlighted] { outline: var(--labo-focus-ring) solid Highlight; outline-offset: calc(-1 * var(--labo-focus-ring)); }
  .labo9-select-item[data-disabled] { color: GrayText; opacity: 1; }
}

/* Structure et retours v9, valeurs sémantiques héritées de ThemeRoot. */
.labo9-tabs { min-width: 0; }
.labo9-tabs-list { display: flex; gap: var(--labo-space-1); overflow-x: auto; width: fit-content; max-width: 100%; padding: var(--labo-space-1); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-md); background: var(--labo-hover); scrollbar-width: thin; }
.labo9-tab { flex: 0 0 auto; min-height: var(--labo-control-md); padding: var(--labo-control-padding-block) var(--labo-space-4); border: var(--labo-border-width-hairline) solid transparent; border-radius: var(--labo-radius-sm); color: var(--labo-text-muted); background: transparent; font: inherit; font-weight: var(--labo-font-weight-semibold); cursor: pointer; transition: color var(--labo-motion-fast), background var(--labo-motion-fast), border-color var(--labo-motion-fast); }
.labo9-tab:hover:not(:disabled) { color: var(--labo-text); background: var(--labo-hover); }
.labo9-tab[aria-selected="true"] { border-color: var(--labo-border); color: var(--labo-text); background: var(--labo-surface); box-shadow: var(--labo-shadow-raised); }
.labo9-tab:disabled { opacity: var(--labo-opacity-disabled); cursor: not-allowed; }
.labo9-tab:focus-visible, .labo9-tabpanel:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
.labo9-tabpanel { padding-block: var(--labo-space-4); overflow-wrap: anywhere; }
.labo9-tabpanel[hidden] { display: none; }
.labo9-badge, .labo9-alert { --labo9-tone-text: var(--labo-text); --labo9-tone-fill: var(--labo-hover); color: var(--labo9-tone-text); background: var(--labo9-tone-fill); }
.labo9-badge[data-tone="success"], .labo9-alert[data-tone="success"] { --labo9-tone-text: var(--labo-success); --labo9-tone-fill: var(--labo-success-soft); }
.labo9-badge[data-tone="warning"], .labo9-alert[data-tone="warning"] { --labo9-tone-text: var(--labo-warning); --labo9-tone-fill: var(--labo-warning-soft); }
.labo9-badge[data-tone="danger"], .labo9-alert[data-tone="danger"] { --labo9-tone-text: var(--labo-danger); --labo9-tone-fill: var(--labo-danger-soft); }
.labo9-badge[data-tone="info"], .labo9-alert[data-tone="info"] { --labo9-tone-text: var(--labo-info); --labo9-tone-fill: var(--labo-info-soft); }
.labo9-badge { display: inline-flex; align-items: center; gap: var(--labo-badge-gap); max-width: 100%; padding: var(--labo-badge-padding-block) var(--labo-badge-padding-inline); border-radius: var(--labo-radius-pill); font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-semibold); overflow-wrap: anywhere; }
.labo9-tone-mark { display: block; flex: 0 0 auto; width: var(--labo-icon-md); height: var(--labo-icon-md); }
.labo9-badge .labo9-tone-mark { width: var(--labo-icon-sm); height: var(--labo-icon-sm); }
.labo9-alert { display: flex; align-items: start; gap: var(--labo-space-3); padding: var(--labo-space-4); border: var(--labo-border-width-hairline) solid color-mix(in srgb, var(--labo9-tone-text) 22%, transparent); border-radius: var(--labo-radius-md); }
/* Centre l'icône sur la 1re ligne du texte, quelle que soit la taille de police. */
.labo9-alert > .labo9-tone-mark { margin-block-start: calc((var(--labo-line-height-reading) * 1em - var(--labo-icon-md)) / 2); }
.labo9-alert-description { color: var(--labo-text); }
.labo9-alert-content { min-width: 0; overflow-wrap: anywhere; }
.labo9-alert-title { margin: 0 0 var(--labo-space-1); font-weight: var(--labo-font-weight-semibold); }
.labo9-alert-description > :first-child, .labo9-empty-state-description > :first-child { margin-top: 0; }
.labo9-alert-description > :last-child, .labo9-empty-state-description > :last-child { margin-bottom: 0; }
.labo9-card { min-width: 0; padding: var(--labo-space-5); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-md); color: var(--labo-text); background: var(--labo-surface); overflow-wrap: anywhere; }
.labo9-card-title { margin: 0 0 var(--labo-space-4); font-family: var(--labo-font-display); font-size: var(--labo-font-size-heading); line-height: var(--labo-line-height-snug); letter-spacing: var(--labo-letter-spacing-title); }
.labo9-empty-state { display: grid; justify-items: center; gap: var(--labo-space-3); padding: var(--labo-space-6) var(--labo-space-4); text-align: center; overflow-wrap: anywhere; }
.labo9-empty-state-title { margin: 0; font-weight: var(--labo-font-weight-semibold); color: var(--labo-text); }
.labo9-empty-state-description { max-width: 60ch; color: var(--labo-text-muted); }
.labo9-empty-state-action { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--labo-space-2); max-width: 100%; }
.labo9-skeleton { display: grid; gap: var(--labo-space-2); max-width: 100%; }
.labo9-skeleton-line { display: block; height: 1em; border-radius: var(--labo-radius-sm); background: var(--labo-hover); border: var(--labo-border-width-hairline) solid var(--labo-border); }
@media (pointer: coarse) { .labo9-tab { min-height: var(--labo-control-md); } }
@media (forced-colors: active) {
  .labo9-tab[aria-selected="true"] { border-color: Highlight; outline: var(--labo-border-width-hairline) solid Highlight; outline-offset: calc(-1 * var(--labo-border-width-strong)); }
  .labo9-tab:focus-visible, .labo9-tabpanel:focus-visible { outline-color: Highlight; }
  .labo9-tab:disabled { color: GrayText; opacity: 1; }
  .labo9-badge { outline: var(--labo-border-width-hairline) solid CanvasText; outline-offset: calc(-1 * var(--labo-border-width-hairline)); }
  .labo9-alert, .labo9-card { border-color: CanvasText; }
  .labo9-skeleton-line { background: GrayText; forced-color-adjust: none; }
}
@media (prefers-reduced-motion: reduce) { .labo9-tab { transition: none; } }

/* Marque, pages autonomes (entrée, pages système) et champs d’entrée. */
.labo9-brand { display: inline-flex; align-items: center; gap: var(--labo-space-2); min-width: 0; color: var(--labo-text); font-family: var(--labo-font-display); font-weight: var(--labo-font-weight-bold); letter-spacing: var(--labo-letter-spacing-title); text-decoration: none; }
.labo9-brand-sign { flex-shrink: 0; width: auto; height: var(--labo-brand-sign); }
.labo9-brand-peak { fill: var(--labo-brand-accent); }
.labo9-brand-steps { fill: var(--labo-brand-ink); }
.labo9-brand-name { overflow-wrap: anywhere; }
a.labo9-brand:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset-wide); border-radius: var(--labo-radius-xs); }
.labo9-standalone { box-sizing: border-box; display: grid; place-items: center; min-height: 100dvh; padding: max(var(--labo-gutter-sm), var(--labo-safe-area-top)) max(var(--labo-gutter-sm), var(--labo-safe-area-right)) max(var(--labo-gutter-sm), var(--labo-safe-area-bottom)) max(var(--labo-gutter-sm), var(--labo-safe-area-left)); background: var(--labo-canvas); color: var(--labo-text); }
.labo9-standalone-panel { box-sizing: border-box; display: grid; gap: var(--labo-space-5); width: min(100%, var(--labo-panel-standalone)); padding: var(--labo-space-6) clamp(var(--labo-space-4), 6vw, var(--labo-space-6)); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-lg); background: var(--labo-surface); box-shadow: var(--labo-shadow-raised); overflow-wrap: anywhere; }
.labo9-standalone-header { display: grid; gap: var(--labo-space-2); }
.labo9-standalone-eyebrow { margin: 0; color: var(--labo-text-muted); font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-semibold); }
.labo9-standalone-title { margin: 0; font-family: var(--labo-font-display); font-size: var(--labo-font-size-title-2); line-height: var(--labo-line-height-snug); letter-spacing: var(--labo-letter-spacing-title); }
.labo9-standalone-description { color: var(--labo-text-muted); }
.labo9-standalone-description > :first-child { margin-top: 0; }
.labo9-standalone-description > :last-child { margin-bottom: 0; }
.labo9-standalone-body, .labo9-standalone-body > form { display: grid; gap: var(--labo-space-4); }
.labo9-standalone-actions { display: flex; flex-wrap: wrap; gap: var(--labo-space-2); }
.labo9-standalone-footer { padding-top: var(--labo-space-4); border-top: var(--labo-border-width-hairline) solid var(--labo-border); color: var(--labo-text-muted); font-size: var(--labo-font-size-small); }
.labo9-standalone-footer > * { margin: 0; }
.labo9-standalone-footer code { font-family: var(--labo-font-mono); color: var(--labo-text); }
.labo9-input-group { display: flex; min-width: 0; }
.labo9-input-group > .labo9-input { flex: 1; border-start-end-radius: 0; border-end-end-radius: 0; }
.labo9-input-toggle { flex-shrink: 0; min-height: var(--labo-control-md); padding: 0 var(--labo-button-padding-sm); border: var(--labo-border-width-hairline) solid var(--labo-control-border); border-inline-start: 0; border-start-end-radius: var(--labo-radius-sm); border-end-end-radius: var(--labo-radius-sm); background: var(--labo-surface); color: var(--labo-text); font: inherit; font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-semibold); cursor: pointer; }
.labo9-input-toggle:hover:not(:disabled) { background: var(--labo-hover); }
.labo9-input-toggle:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
.labo9-input-toggle:disabled { opacity: var(--labo-opacity-disabled); cursor: not-allowed; }
.labo9-code-input { max-width: calc(var(--labo9-code-length) * (1ch + var(--labo-letter-spacing-code)) + 2 * var(--labo-button-padding-sm) + 2 * var(--labo-border-width-hairline)); font-family: var(--labo-font-mono); font-size: var(--labo-font-size-title-3); font-variant-numeric: tabular-nums; letter-spacing: var(--labo-letter-spacing-code); }
@media (forced-colors: active) {
  .labo9-standalone-panel, .labo9-input-toggle { border-color: CanvasText; }
  .labo9-brand-peak, .labo9-brand-steps { fill: CanvasText; }
}

/* Structure d’application : icônes, en-tête de page, panneau, menu d’actions et coque. */
.labo9-icon { flex-shrink: 0; width: var(--labo-icon-md); height: var(--labo-icon-md); vertical-align: middle; }
.labo9-icon[data-size="sm"] { width: var(--labo-icon-sm); height: var(--labo-icon-sm); }
.labo9-icon[data-size="lg"] { width: var(--labo-icon-lg); height: var(--labo-icon-lg); }

.labo9-page-header { display: grid; gap: var(--labo-space-3); min-width: 0; color: var(--labo-text); }
.labo9-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--labo-space-2); margin: 0; padding: 0; list-style: none; font-size: var(--labo-font-size-small); color: var(--labo-text-muted); }
.labo9-breadcrumbs li { display: inline-flex; align-items: center; gap: var(--labo-space-2); min-width: 0; overflow-wrap: anywhere; }
.labo9-breadcrumbs li + li::before { content: "/"; color: var(--labo-border-strong); }
.labo9-breadcrumbs a { color: inherit; text-underline-offset: var(--labo-space-1); }
.labo9-breadcrumbs a:hover { color: var(--labo-text); }
@media (pointer: coarse) { .labo9-breadcrumbs a { display: inline-flex; align-items: center; min-height: var(--labo-target-min); } }
.labo9-breadcrumbs [aria-current="page"] { color: var(--labo-text); font-weight: var(--labo-font-weight-semibold); }
.labo9-page-header-main { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--labo-space-4); }
.labo9-page-header-text { display: grid; gap: var(--labo-space-2); flex: 1 1 var(--labo-panel-listbox); min-width: 0; }
.labo9-page-header-eyebrow { margin: 0; color: var(--labo-text-muted); font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-semibold); }
.labo9-page-header-title { margin: 0; font-family: var(--labo-font-display); font-size: var(--labo-font-size-title-2); line-height: var(--labo-line-height-snug); letter-spacing: var(--labo-letter-spacing-title); overflow-wrap: anywhere; }
.labo9-page-header-description { max-width: 70ch; color: var(--labo-text-muted); }
.labo9-page-header-description > :first-child { margin-top: 0; }
.labo9-page-header-description > :last-child { margin-bottom: 0; }
.labo9-page-header-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--labo-space-2); color: var(--labo-text-muted); font-size: var(--labo-font-size-small); }
.labo9-page-header-actions { display: flex; flex-wrap: wrap; gap: var(--labo-space-2); }

.labo9-drawer { box-sizing: border-box; position: fixed; inset-block: 0; margin: 0; padding: 0; width: min(var(--labo-panel-drawer), calc(100% - var(--labo-target-min))); max-width: 100%; height: 100dvh; max-height: 100dvh; border: 0; background: transparent; color: var(--labo-text); font: inherit; overscroll-behavior: contain; }
.labo9-drawer[data-side="end"] { inset-inline: auto 0; }
.labo9-drawer[data-side="start"] { inset-inline: 0 auto; }
.labo9-drawer::backdrop { background: var(--labo-scrim); }
.labo9-drawer-panel { box-sizing: border-box; display: flex; flex-direction: column; gap: var(--labo-space-4); height: 100%; overflow: auto; padding: max(var(--labo-space-5), var(--labo-safe-area-top)) var(--labo-space-5) max(var(--labo-space-5), var(--labo-safe-area-bottom)); background: var(--labo-surface); border-inline-start: var(--labo-border-width-hairline) solid var(--labo-border); box-shadow: var(--labo-shadow-dialog); }
.labo9-drawer[data-side="start"] .labo9-drawer-panel { border-inline-start: 0; border-inline-end: var(--labo-border-width-hairline) solid var(--labo-border); padding-inline-start: max(var(--labo-space-5), var(--labo-safe-area-left)); }
.labo9-drawer[data-side="end"] .labo9-drawer-panel { padding-inline-end: max(var(--labo-space-5), var(--labo-safe-area-right)); }
.labo9-drawer .labo9-dialog-header { margin-bottom: 0; }
.labo9-drawer-body { display: grid; gap: var(--labo-space-4); align-content: start; }

.labo9-menu { position: relative; display: inline-flex; }
.labo9-menu-trigger { display: inline-flex; align-items: center; justify-content: center; gap: var(--labo-space-2); min-width: var(--labo-control-md); min-height: var(--labo-control-md); padding: 0 var(--labo-space-3); border: var(--labo-border-width-hairline) solid var(--labo-control-border); border-radius: var(--labo-radius-sm); background: var(--labo-surface); color: var(--labo-text); font: inherit; font-weight: var(--labo-font-weight-semibold); cursor: pointer; }
.labo9-menu-trigger:hover { background: var(--labo-hover); }
.labo9-menu-trigger:focus-visible, .labo9-menu-item:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
.labo9-menu-list { position: absolute; z-index: var(--labo-layer-popover); display: grid; min-width: var(--labo-panel-menu); max-width: min(var(--labo-panel-listbox), calc(100vw - 2 * var(--labo-gutter-sm))); padding: var(--labo-space-1); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-sm); background: var(--labo-surface); box-shadow: var(--labo-shadow-dialog); }
.labo9-menu-list[data-side="bottom"] { inset-block-start: calc(100% + var(--labo-space-1)); }
.labo9-menu-list[data-side="top"] { inset-block-end: calc(100% + var(--labo-space-1)); }
.labo9-menu-list[data-align="end"] { inset-inline-end: 0; }
.labo9-menu-list[data-align="start"] { inset-inline-start: 0; }
.labo9-menu-item { display: flex; align-items: center; gap: var(--labo-space-2); min-height: var(--labo-control-md); padding: 0 var(--labo-space-3); border: 0; border-radius: var(--labo-radius-xs); background: transparent; color: var(--labo-text); font: inherit; text-align: start; cursor: pointer; overflow-wrap: anywhere; }
.labo9-menu-item:hover:not(:disabled), .labo9-menu-item:focus-visible { background: var(--labo-hover); }
.labo9-menu-item[data-tone="danger"] { color: var(--labo-danger); }
.labo9-menu-item:disabled { opacity: var(--labo-opacity-disabled); cursor: not-allowed; }

.labo9-shell { min-height: 100dvh; background: var(--labo-canvas); color: var(--labo-text); }
.labo9-shell-skip { position: absolute; z-index: var(--labo-layer-overlay); inset-block-start: var(--labo-space-2); inset-inline-start: var(--labo-space-2); padding: var(--labo-space-2) var(--labo-space-3); border-radius: var(--labo-radius-sm); background: var(--labo-action); color: var(--labo-action-text); transform: translateY(-200%); }
.labo9-shell-skip:focus { transform: none; }
.labo9-shell-bar { position: sticky; inset-block-start: 0; z-index: var(--labo-layer-sticky); display: flex; align-items: center; gap: var(--labo-space-3); min-height: var(--labo-control-lg); padding: max(var(--labo-space-2), var(--labo-safe-area-top)) max(var(--labo-gutter-sm), var(--labo-safe-area-right)) var(--labo-space-2) max(var(--labo-gutter-sm), var(--labo-safe-area-left)); border-bottom: var(--labo-border-width-hairline) solid var(--labo-border); background: var(--labo-surface); }
.labo9-shell-brand { min-width: 0; }
.labo9-shell-brand .labo9-brand-name { white-space: nowrap; }
.labo9-shell-account { min-width: 0; margin-inline-start: auto; display: flex; align-items: center; gap: var(--labo-space-2); }
.labo9-shell-menu { display: inline-flex; align-items: center; gap: var(--labo-space-2); min-height: var(--labo-target-min); padding: 0 var(--labo-space-3); border: var(--labo-border-width-hairline) solid var(--labo-control-border); border-radius: var(--labo-radius-sm); background: transparent; color: var(--labo-text); font: inherit; font-weight: var(--labo-font-weight-semibold); cursor: pointer; }
.labo9-shell-menu:focus-visible, .labo9-shell-link:focus-visible, .labo9-shell-main:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
.labo9-shell-body { display: grid; grid-template-columns: minmax(0, 1fr); }
.labo9-shell-side { display: none; }
.labo9-shell-main { min-width: 0; padding: var(--labo-space-5) max(var(--labo-gutter-sm), var(--labo-safe-area-right)) max(var(--labo-space-7), var(--labo-safe-area-bottom)) max(var(--labo-gutter-sm), var(--labo-safe-area-left)); }
.labo9-shell-links { display: grid; gap: var(--labo-space-1); margin: 0; padding: 0; list-style: none; }
.labo9-shell-link { display: flex; align-items: center; gap: var(--labo-space-3); min-height: var(--labo-target-min); padding: 0 var(--labo-space-3); border-radius: var(--labo-radius-sm); color: var(--labo-text-muted); font-weight: var(--labo-font-weight-medium); text-decoration: none; }
.labo9-shell-link:hover { background: var(--labo-hover); color: var(--labo-text); }
.labo9-shell-link[aria-current="page"] { background: var(--labo-hover); color: var(--labo-text); font-weight: var(--labo-font-weight-semibold); box-shadow: inset var(--labo-border-width-strong) 0 0 var(--labo-text); }
@media (max-width: 700px) {
  .labo9-shell-brand .labo9-brand-name { position: absolute; width: var(--labo-border-width-hairline); height: var(--labo-border-width-hairline); overflow: hidden; clip-path: inset(50%); }
}
@media (min-width: 1000px) {
  .labo9-shell-menu { display: none; }
  .labo9-shell-body { grid-template-columns: var(--labo-panel-sidebar) minmax(0, 1fr); }
  .labo9-shell-side { display: block; position: sticky; inset-block-start: var(--labo-control-lg); align-self: start; height: calc(100dvh - var(--labo-control-lg)); overflow: auto; padding: var(--labo-space-5) var(--labo-space-3) var(--labo-space-5) max(var(--labo-space-3), var(--labo-safe-area-left)); border-inline-end: var(--labo-border-width-hairline) solid var(--labo-border); }
  .labo9-shell-main { padding-inline: var(--labo-gutter-lg) max(var(--labo-gutter-lg), var(--labo-safe-area-right)); }
}
@media (forced-colors: active) {
  .labo9-menu-list, .labo9-drawer-panel, .labo9-shell-bar { border-color: CanvasText; }
  .labo9-shell-link[aria-current="page"] { outline: var(--labo-border-width-hairline) solid Highlight; }
}

/* Données et retours : tableau, notifications temporaires, dates et fichiers. */
.labo9-visually-hidden { position: absolute; width: var(--labo-border-width-hairline); height: var(--labo-border-width-hairline); margin: calc(-1 * var(--labo-border-width-hairline)); padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

.labo9-table { min-width: 0; color: var(--labo-text); }
.labo9-table-scroll { overflow-x: auto; border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-md); background: var(--labo-surface); }
.labo9-table-scroll:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
.labo9-table table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.labo9-table caption { padding: var(--labo-space-3) var(--labo-space-4); text-align: start; font-weight: var(--labo-font-weight-semibold); }
.labo9-table th, .labo9-table td { padding: var(--labo-control-padding-block) var(--labo-space-4); border-top: var(--labo-border-width-hairline) solid var(--labo-border); text-align: start; vertical-align: middle; overflow-wrap: anywhere; }
.labo9-table thead th { color: var(--labo-text-muted); font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-semibold); white-space: nowrap; }
.labo9-table tbody th { font-weight: var(--labo-font-weight-semibold); }
.labo9-table [data-align="end"] { text-align: end; }
.labo9-table tr[data-selected] { background: var(--labo-hover); }
.labo9-table-select { width: var(--labo-target-min); }
.labo9-table-select .labo9-choice-label .labo9-control-label { position: absolute; width: var(--labo-border-width-hairline); height: var(--labo-border-width-hairline); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.labo9-table-sort { display: inline-flex; align-items: center; gap: var(--labo-space-1); min-height: var(--labo-control-sm); padding: 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.labo9-table-sort:hover { color: var(--labo-text); }
.labo9-table-sort:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); border-radius: var(--labo-radius-xs); }
.labo9-table [aria-sort="ascending"] .labo9-table-sort, .labo9-table [aria-sort="descending"] .labo9-table-sort { color: var(--labo-text); }
.labo9-table-label { display: none; }
@media (max-width: 700px) {
  .labo9-table-scroll { border: 0; background: transparent; }
  .labo9-table thead { position: absolute; width: var(--labo-border-width-hairline); height: var(--labo-border-width-hairline); overflow: hidden; clip-path: inset(50%); }
  .labo9-table table, .labo9-table tbody { display: block; }
  .labo9-table caption { display: block; padding-inline: 0; }
  .labo9-table tr { display: grid; gap: var(--labo-space-2); margin-bottom: var(--labo-space-3); padding: var(--labo-space-4); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-md); background: var(--labo-surface); }
  .labo9-table th, .labo9-table td { display: flex; justify-content: space-between; gap: var(--labo-space-3); padding: 0; border: 0; text-align: start; }
  .labo9-table [data-align="end"] { text-align: start; }
  .labo9-table-label { display: inline; color: var(--labo-text-muted); font-size: var(--labo-font-size-small); }
  .labo9-table-select { width: auto; }
}

.labo9-toasts { position: fixed; z-index: var(--labo-layer-toast); inset-inline-end: max(var(--labo-gutter-sm), var(--labo-safe-area-right)); inset-block-end: max(var(--labo-gutter-sm), var(--labo-safe-area-bottom)); width: min(var(--labo-panel-toast), calc(100% - 2 * var(--labo-gutter-sm))); pointer-events: none; }
.labo9-toasts ol { display: grid; gap: var(--labo-space-2); margin: 0; padding: 0; list-style: none; }
.labo9-toast { pointer-events: auto; background-color: var(--labo-surface); box-shadow: var(--labo-shadow-dialog); animation: labo9-toast-in var(--labo-motion-base) var(--labo-easing-standard); }
.labo9-toast.labo9-alert { background-image: linear-gradient(var(--labo9-tone-fill), var(--labo9-tone-fill)); }
.labo9-toast-content { flex: 1; min-width: 0; display: grid; gap: var(--labo-space-1); }
.labo9-toast-content p { margin: 0; }
.labo9-toast-description { color: var(--labo-text-muted); font-size: var(--labo-font-size-small); }
.labo9-toast-actions { display: flex; flex-wrap: wrap; gap: var(--labo-space-1); align-items: start; }
.labo9-toast-button { min-height: var(--labo-control-sm); padding: 0 var(--labo-space-3); border: var(--labo-border-width-hairline) solid var(--labo-control-border); border-radius: var(--labo-radius-pill); background: var(--labo-surface); color: var(--labo-text); font: inherit; font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-semibold); cursor: pointer; }
.labo9-toast-button[data-variant="close"] { border-color: transparent; background: transparent; }
.labo9-toast-button:hover { background: var(--labo-hover); }
.labo9-toast-button:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
@keyframes labo9-toast-in { from { opacity: var(--labo-opacity-disabled); transform: translateY(var(--labo-motion-press-offset)); } }

.labo9-date-input { max-width: var(--labo-panel-menu); }
.labo9-date-input::-webkit-calendar-picker-indicator { cursor: pointer; }
.labo9-file-drop { position: relative; display: grid; justify-items: center; gap: var(--labo-space-2); padding: var(--labo-space-5) var(--labo-space-4); border: var(--labo-border-width-strong) dashed var(--labo-control-border); border-radius: var(--labo-radius-md); background: var(--labo-surface); color: var(--labo-text-muted); text-align: center; }
.labo9-file-drop[data-dragging] { border-color: var(--labo-focus); background: var(--labo-hover); }
.labo9-file-drop:has(.labo9-file-input:focus-visible) { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
.labo9-file-field[data-invalid] .labo9-file-drop { border-color: var(--labo-danger); }
.labo9-file-input { position: absolute; width: var(--labo-border-width-hairline); height: var(--labo-border-width-hairline); opacity: 0; }
.labo9-file-choose { display: inline-flex; align-items: center; min-height: var(--labo-control-md); padding: 0 var(--labo-button-padding-md); border: var(--labo-border-width-hairline) solid var(--labo-control-border); border-radius: var(--labo-radius-pill); background: var(--labo-canvas); color: var(--labo-text); font-weight: var(--labo-font-weight-semibold); cursor: pointer; }
.labo9-file-choose:hover { background: var(--labo-hover); }
.labo9-file-field[data-disabled] .labo9-file-drop { opacity: var(--labo-opacity-disabled); }
.labo9-file-list { display: grid; gap: var(--labo-space-2); margin: 0; padding: 0; list-style: none; }
.labo9-file-list li { display: flex; align-items: center; gap: var(--labo-space-2); min-width: 0; padding: var(--labo-space-2) var(--labo-space-3); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-sm); }
.labo9-file-name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.labo9-file-remove { display: inline-grid; place-items: center; min-width: var(--labo-control-sm); min-height: var(--labo-control-sm); border: 0; border-radius: var(--labo-radius-xs); background: transparent; color: var(--labo-text-muted); cursor: pointer; }
.labo9-file-remove:hover { background: var(--labo-hover); color: var(--labo-text); }
.labo9-file-remove:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); }
@media (prefers-reduced-motion: reduce) { .labo9-toast { animation: none; } }
@media (forced-colors: active) { .labo9-toast, .labo9-file-drop, .labo9-table-scroll { border-color: CanvasText; } }

/* Pages marketing (thème nuit) : mot lumineux, bandes alternées, premier écran, bénéfices, étapes, preuves, FAQ, offres. */
.labo9-glow { background-image: linear-gradient(100deg, var(--labo-glow-start), var(--labo-glow-end)); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.labo9-eyebrow { margin: 0; color: var(--labo-glow-start); font-family: var(--labo-font-mono); font-size: var(--labo-font-size-caption); font-weight: var(--labo-font-weight-medium); letter-spacing: var(--labo-letter-spacing-label); text-transform: uppercase; }

.labo9-band, .labo9-hero { padding-block: var(--labo-space-8); padding-inline: max(var(--labo-gutter-sm), var(--labo-safe-area-left)) max(var(--labo-gutter-sm), var(--labo-safe-area-right)); background: var(--labo-canvas); color: var(--labo-text); }
.labo9-band[data-tone="panel"] { background: var(--labo-surface); border-block: var(--labo-border-width-hairline) solid var(--labo-border); }
.labo9-band-inner { box-sizing: border-box; width: 100%; max-width: var(--labo-container-content); margin-inline: auto; display: grid; gap: var(--labo-space-6); }
.labo9-band[data-width="narrow"] .labo9-band-inner { max-width: var(--labo-container-narrow); }
.labo9-band-header { display: grid; gap: var(--labo-space-3); max-width: var(--labo-container-narrow); }
.labo9-band[data-align="center"] .labo9-band-header { justify-items: center; margin-inline: auto; text-align: center; }
.labo9-band-title { margin: 0; font-family: var(--labo-font-display); font-size: clamp(var(--labo-font-size-title-2), 4vw, var(--labo-font-size-title-1)); font-weight: var(--labo-font-weight-bold); line-height: var(--labo-line-height-snug); letter-spacing: var(--labo-letter-spacing-title); text-wrap: balance; }
.labo9-band-intro { color: var(--labo-text-muted); font-size: var(--labo-font-size-lead); }
.labo9-band-intro > * { margin: 0; }
.labo9-band-body { min-width: 0; }

.labo9-hero { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--labo-space-9) var(--labo-space-8); }
.labo9-hero::before { content: ""; position: absolute; z-index: -1; inset: -40% -10% auto; height: 120%; background: radial-gradient(closest-side, var(--labo-glow-halo), transparent); pointer-events: none; }
.labo9-hero-inner { align-items: center; }
.labo9-hero[data-media] .labo9-hero-inner { grid-template-columns: minmax(0, 1fr); }
.labo9-hero-text { display: grid; gap: var(--labo-space-4); max-width: var(--labo-container-narrow); }
.labo9-hero-title { margin: 0; font-family: var(--labo-font-display); font-size: clamp(var(--labo-font-size-title-1), 7vw, var(--labo-font-size-hero)); font-weight: var(--labo-font-weight-bold); line-height: var(--labo-line-height-tight); letter-spacing: var(--labo-letter-spacing-display); text-wrap: balance; }
.labo9-hero-lead { color: var(--labo-text-muted); font-size: var(--labo-font-size-lead); max-width: 60ch; }
.labo9-hero-lead > * { margin: 0; }
.labo9-hero-actions { display: flex; flex-wrap: wrap; gap: var(--labo-space-3); margin-top: var(--labo-space-2); }
.labo9-hero-note { margin: 0; color: var(--labo-text-muted); font-size: var(--labo-font-size-small); }
.labo9-hero-media { min-width: 0; }
.labo9-hero-media img, .labo9-hero-media video { display: block; max-width: 100%; height: auto; border-radius: var(--labo-radius-lg); }
@keyframes labo9-rise { from { opacity: var(--labo-opacity-disabled); transform: translateY(var(--labo-space-3)); } }
.labo9-hero-text > * { animation: labo9-rise var(--labo-motion-slow) var(--labo-easing-standard) both; }
.labo9-hero-text > :nth-child(2) { animation-delay: calc(var(--labo-motion-fast) * 0.5); }
.labo9-hero-text > :nth-child(n+3) { animation-delay: var(--labo-motion-fast); }
@media (min-width: 1000px) { .labo9-hero[data-media] .labo9-hero-inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); } }

.labo9-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--labo-panel-listbox) - var(--labo-space-7)), 1fr)); gap: var(--labo-space-4); margin: 0; padding: 0; list-style: none; }
.labo9-feature { --labo9-glow: var(--labo-glow-blue); display: grid; gap: var(--labo-space-3); align-content: start; padding: var(--labo-space-5); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-md); background: var(--labo-surface); }
.labo9-feature[data-glow="lavender"] { --labo9-glow: var(--labo-glow-lavender); }
.labo9-feature[data-glow="peach"] { --labo9-glow: var(--labo-glow-peach); }
.labo9-feature[data-glow="teal"] { --labo9-glow: var(--labo-glow-teal); }
.labo9-feature-icon { display: inline-grid; place-items: center; justify-self: start; width: var(--labo-control-lg); height: var(--labo-control-lg); border-radius: var(--labo-radius-sm); color: var(--labo9-glow); background: color-mix(in srgb, var(--labo9-glow) 12%, transparent); box-shadow: 0 0 var(--labo-space-5) color-mix(in srgb, var(--labo9-glow) 22%, transparent); }
.labo9-feature-title, .labo9-step-title { margin: 0; font-family: var(--labo-font-display); font-size: var(--labo-font-size-title-3); line-height: var(--labo-line-height-snug); }
.labo9-feature-text, .labo9-step-text { color: var(--labo-text-muted); }
.labo9-feature-text > *, .labo9-step-text > * { margin: 0; }

.labo9-steps { display: grid; gap: var(--labo-space-4); margin: 0; padding: 0; list-style: none; counter-reset: labo9-step; }
.labo9-step { position: relative; display: grid; gap: var(--labo-space-2); padding: var(--labo-space-1) 0 var(--labo-space-4) calc(var(--labo-control-lg) + var(--labo-space-4)); border-bottom: var(--labo-border-width-hairline) solid var(--labo-border); counter-increment: labo9-step; }
.labo9-step:last-child { border-bottom: 0; }
.labo9-step::before { content: counter(labo9-step); position: absolute; inset-inline-start: 0; inset-block-start: 0; display: grid; place-items: center; width: var(--labo-control-lg); height: var(--labo-control-lg); border: var(--labo-border-width-hairline) solid var(--labo-border-strong); border-radius: var(--labo-radius-pill); color: var(--labo-glow-start); font-family: var(--labo-font-mono); font-weight: var(--labo-font-weight-medium); font-variant-numeric: tabular-nums; }
.labo9-step-duration { margin: 0; color: var(--labo-text-muted); font-family: var(--labo-font-mono); font-size: var(--labo-font-size-caption); letter-spacing: var(--labo-letter-spacing-label); text-transform: uppercase; }

.labo9-testimonial { display: grid; gap: var(--labo-space-4); margin: 0; padding: var(--labo-space-6); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-md); background: var(--labo-surface); }
.labo9-testimonial-quote { margin: 0; font-family: var(--labo-font-display); font-size: var(--labo-font-size-title-3); line-height: var(--labo-line-height-snug); }
.labo9-testimonial-quote > * { margin: 0; }
.labo9-testimonial-author { display: grid; gap: var(--labo-space-1); font-weight: var(--labo-font-weight-semibold); }
.labo9-testimonial-role { color: var(--labo-text-muted); font-size: var(--labo-font-size-small); font-weight: var(--labo-font-weight-regular); }

.labo9-faq { display: grid; border-top: var(--labo-border-width-hairline) solid var(--labo-border); }
.labo9-faq-item { border-bottom: var(--labo-border-width-hairline) solid var(--labo-border); }
.labo9-faq-question { display: flex; align-items: center; justify-content: space-between; gap: var(--labo-space-4); min-height: var(--labo-target-min); padding-block: var(--labo-space-4); font-family: var(--labo-font-display); font-size: var(--labo-font-size-lead); font-weight: var(--labo-font-weight-semibold); cursor: pointer; list-style: none; }
.labo9-faq-question::-webkit-details-marker { display: none; }
.labo9-faq-question .labo9-icon { transition: transform var(--labo-motion-base) var(--labo-easing-standard); }
.labo9-faq-item[open] .labo9-faq-question .labo9-icon { transform: rotate(180deg); }
.labo9-faq-question:focus-visible { outline: var(--labo-focus-ring) solid var(--labo-focus); outline-offset: var(--labo-focus-offset); border-radius: var(--labo-radius-xs); }
.labo9-faq-answer { padding-bottom: var(--labo-space-5); color: var(--labo-text-muted); max-width: 70ch; }
.labo9-faq-answer > :first-child { margin-top: 0; }
.labo9-faq-answer > :last-child { margin-bottom: 0; }

.labo9-offer { display: grid; gap: var(--labo-space-5); align-content: start; padding: var(--labo-space-6); border: var(--labo-border-width-hairline) solid var(--labo-border); border-radius: var(--labo-radius-lg); background: var(--labo-surface); }
.labo9-offer[data-highlighted] { border-color: var(--labo-glow-start); box-shadow: 0 0 0 var(--labo-border-width-hairline) var(--labo-glow-start), 0 var(--labo-space-5) var(--labo-space-8) calc(-1 * var(--labo-space-6)) var(--labo-glow-halo); }
.labo9-offer-header { display: grid; gap: var(--labo-space-2); }
.labo9-offer-badge { justify-self: start; margin: 0; padding: var(--labo-space-1) var(--labo-space-3); border: var(--labo-border-width-hairline) solid var(--labo-glow-start); border-radius: var(--labo-radius-pill); color: var(--labo-glow-start); font-size: var(--labo-font-size-caption); font-weight: var(--labo-font-weight-semibold); }
.labo9-offer-name { margin: 0; font-family: var(--labo-font-display); font-size: var(--labo-font-size-title-3); }
.labo9-offer-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--labo-space-2); margin: 0; font-family: var(--labo-font-display); font-size: var(--labo-font-size-title-1); font-weight: var(--labo-font-weight-bold); font-variant-numeric: tabular-nums; letter-spacing: var(--labo-letter-spacing-title); }
.labo9-offer-cadence { color: var(--labo-text-muted); font-family: var(--labo-font-body); font-size: var(--labo-font-size-body); font-weight: var(--labo-font-weight-regular); letter-spacing: normal; }
.labo9-offer-description { color: var(--labo-text-muted); }
.labo9-offer-description > * { margin: 0; }
.labo9-offer-features { display: grid; gap: var(--labo-space-3); margin: 0; padding: 0; list-style: none; }
.labo9-offer-features li { display: flex; gap: var(--labo-space-3); align-items: start; }
.labo9-offer-features .labo9-icon { margin-top: calc((var(--labo-line-height-body) * 1em - var(--labo-icon-sm)) / 2); color: var(--labo-success); }
.labo9-offer-action { display: grid; }
.labo9-offer-action > .labo9-button { width: 100%; }
.labo9-offer-note { margin: 0; color: var(--labo-text-muted); font-size: var(--labo-font-size-small); }

@media (prefers-reduced-motion: reduce) { .labo9-hero-text > * { animation: none; } .labo9-faq-question .labo9-icon { transition: none; } }
@media (forced-colors: active) {
  .labo9-glow { color: CanvasText; -webkit-text-fill-color: CanvasText; background: none; }
  .labo9-feature, .labo9-testimonial, .labo9-offer, .labo9-band[data-tone="panel"] { border-color: CanvasText; }
}

/* Impression et PDF : encre sur papier, structure d’application masquée, blocs entiers, adresses des liens visibles. */
@media print {
  @page { margin: var(--labo-print-margin); }
  [data-labo], [data-labo][data-labo-theme] { --labo-canvas: var(--labo-print-paper); --labo-surface: var(--labo-print-paper); --labo-text: var(--labo-print-ink); --labo-text-muted: var(--labo-print-ink-muted); --labo-border: var(--labo-print-rule); color-scheme: light; background: var(--labo-print-paper); color: var(--labo-print-ink); }
  .labo9-shell-bar, .labo9-shell-side, .labo9-shell-skip, .labo9-toasts, .labo9-menu, .labo9-page-header-actions, .labo9-hero-actions, .labo9-hero::before, .labo9-table-select, .labo9-input-toggle, [data-print="hide"] { display: none !important; }
  .labo9-shell-body { display: block; }
  .labo9-shell-main { padding: 0; }
  .labo9-card, .labo9-alert, .labo9-offer, .labo9-feature, .labo9-testimonial, .labo9-step, .labo9-table tr, .labo9-band-header, figure { break-inside: avoid; }
  h1, h2, h3, .labo9-page-header-title, .labo9-band-title { break-after: avoid; }
  .labo9-band, .labo9-hero { padding-block: var(--labo-space-5); background: none; border: 0; }
  .labo9-glow { color: var(--labo-print-ink); -webkit-text-fill-color: var(--labo-print-ink); background: none; }
  .labo9-table-scroll { overflow: visible; border-color: var(--labo-print-rule); }
  /* Sur papier étroit, le tableau reste un tableau : les cartes du petit écran ne s'impriment pas. */
  .labo9-table table { display: table; }
  .labo9-table tbody { display: table-row-group; }
  .labo9-table thead { position: static; width: auto; height: auto; overflow: visible; clip-path: none; display: table-header-group; }
  .labo9-table tr { display: table-row; margin: 0; padding: 0; border: 0; background: none; }
  .labo9-table th, .labo9-table td { display: table-cell; padding: var(--labo-space-1) var(--labo-space-2); border-top: var(--labo-border-width-hairline) solid var(--labo-print-rule); }
  .labo9-table [data-align="end"] { text-align: end; }
  .labo9-table-label { display: none; }
  a[href^="http"]:not(.labo9-button)::after { content: " (" attr(href) ")"; font-size: var(--labo-font-size-caption); color: var(--labo-print-ink-muted); overflow-wrap: anywhere; }
  .labo9-button { border: var(--labo-border-width-hairline) solid var(--labo-print-ink); background: none; color: var(--labo-print-ink); box-shadow: none; }
}
