/* Point d'entrée des styles (AssetMapper, aucun bundler). Ordre : polices, jetons, composants
   validés (design/components.css), mises en page validées (design/screens.css), puis les seuls
   ajustements d'intégration ci-dessous. */
@import url("fonts-Bq2-elP.css");
@import url("tokens-GrbyNVJ.css");
@import url("components-W5guObj.css");
@import url("screens-5rfU2cu.css");

html, body { margin: 0; min-height: 100%; }

/* L'attribut hidden l'emporte sur l'affichage des composants (.lc-stack, .lc-row…). */
[hidden] { display: none !important; }

/* Focus clavier commun (système visuel : anneau de 2 px) pour tout élément interactif qui n'a
   pas de style dédié : liens de navigation, nom en toutes lettres, cases à cocher (WCAG 2.4.7). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--focus-ring); outline-offset: 2px;
}
/* Champs date et date et heure (dates libres des statistiques, 005) : au clavier, le focus passe dans ses segments puis sur le bouton du
   calendrier ; sur ce bouton, Chrome n'applique plus :focus ni :focus-visible au champ, seulement
   :focus-within. Même anneau dans tous ces cas (WCAG 2.4.7). */
input[type="datetime-local"].lc-input:focus-within, input[type="date"].lc-input:focus-within { outline: 2px solid var(--focus-ring); outline-offset: 2px; border-color: var(--enamel); }
body { background: var(--surface); }
a { color: var(--enamel); }

/* Lien d'évitement (WCAG 2.4.1) : visible au focus clavier. */
.lc-skip {
  position: absolute; left: var(--space-4); top: -100px; z-index: 100;
  padding: var(--space-2) var(--space-4); border-radius: var(--radius-md);
  background: var(--enamel); color: var(--on-enamel); font-weight: 700; text-decoration: none;
}
.lc-skip:focus { top: var(--space-4); outline: 2px solid var(--focus-ring); outline-offset: 2px; }

/* Texte réservé aux lecteurs d'écran. */
.lc-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Menus déroulants (sélecteur de workspace, menu compte) fermés par défaut. */
.lc-menu[hidden] { display: none; }
.lc-menu--end { left: auto; right: 0; }
.lc-account { background: transparent; border: 0; cursor: pointer; min-height: 44px; padding: 0 var(--space-2); border-radius: var(--radius-md); }
.lc-account:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.lc-menu form { margin: 0; }
.lc-menu button.lc-menu__item { width: 100%; background: transparent; border: 0; font: inherit; cursor: pointer; text-align: left; }

/* Cibles d'au moins 24 px de haut (2.5.8) : logotype, liens isolés dans une ligne ou une cellule. */
.lc-wordmark { display: inline-flex; align-items: center; min-height: 24px; }
.lc-row > .lc-link, .lc-cell-main > .lc-link { display: inline-flex; align-items: center; justify-self: start; min-height: 24px; }

/* Grilles : un enfant large (tableau) défile dans son conteneur au lieu d'élargir la page. */
.lc-main > *, .lc-app__body > *, .lc-panel > * { min-width: 0; }

/* Écrans étroits (dès 360 px) : l'en-tête garde le sélecteur et l'avatar ; le nom du compte
   reste annoncé aux lecteurs d'écran. */
@media (max-width: 520px) {
  .lc-header { gap: var(--space-2); padding-inline: var(--space-3); }
  .lc-switcher__button { max-width: 42vw; }
  .lc-account__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .lc-menu { min-width: min(280px, calc(100vw - 2 * var(--space-3))); }
}

/* Messages flash au-dessus du contenu. */
.lc-flashes { display: grid; gap: var(--space-3); }

/* Pied de page des pages publiques (liens légaux, FR-001a). */
.lc-footer { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-6); padding: var(--space-6) var(--space-8); border-top: 1px solid var(--line); background: var(--surface-raised); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
