/* Mentions légales et confidentialité : générée par outils/construire-publication.mjs depuis les jetons et les polices d'app.css */
:root { color-scheme: light dark; --fond: #eef1f5; --surface: #ffffff; --surface-2: #f4f6f9; --bordure: #d9dee7; --texte: #161d2c; --texte-2: #4f5a6d; --accent: #4f46e5; --accent-fort: #4338ca; --accent-texte: #3730a3; --sur-accent: #ffffff; --ombre-papier: 0 1px 2px rgba(15,23,42,.10), 0 8px 20px -8px rgba(15,23,42,.28); }
@media (prefers-color-scheme: dark) { :root { --fond: #101419; --surface: #171c24; --surface-2: #1f2630; --bordure: #2c3542; --texte: #e8ecf2; --texte-2: #a3adbd; --accent: #818cf8; --accent-fort: #a5b4fc; --accent-texte: #c7d2fe; --sur-accent: #101419; --ombre-papier: 0 1px 2px rgba(0,0,0,.40), 0 10px 24px -8px rgba(0,0,0,.65); } }
:root[data-theme="dark"] { color-scheme: dark; --fond: #101419; --surface: #171c24; --surface-2: #1f2630; --bordure: #2c3542; --texte: #e8ecf2; --texte-2: #a3adbd; --accent: #818cf8; --accent-fort: #a5b4fc; --accent-texte: #c7d2fe; --sur-accent: #101419; --ombre-papier: 0 1px 2px rgba(0,0,0,.40), 0 10px 24px -8px rgba(0,0,0,.65); }
:root[data-theme="light"] { color-scheme: light; --fond: #eef1f5; --surface: #ffffff; --surface-2: #f4f6f9; --bordure: #d9dee7; --texte: #161d2c; --texte-2: #4f5a6d; --accent: #4f46e5; --accent-fort: #4338ca; --accent-texte: #3730a3; --sur-accent: #ffffff; --ombre-papier: 0 1px 2px rgba(15,23,42,.10), 0 8px 20px -8px rgba(15,23,42,.28); }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--fond); color: var(--texte); font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Noto Sans", "Noto Naskh Arabic", sans-serif; font-size: 16px; line-height: 1.6; overflow-wrap: break-word; }
html:lang(ja) { word-break: auto-phrase; }
:root:lang(zh) body { font-family: "Segoe UI", system-ui, "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", sans-serif; }
:root:lang(ja) body { font-family: "Segoe UI", system-ui, "Yu Gothic UI", "Meiryo", "Hiragino Sans", "Noto Sans CJK JP", "Noto Sans JP", sans-serif; }
@font-face { font-family: "Naskh UI"; font-weight: 400; src: local("Noto Naskh Arabic UI"), local("Noto Naskh Arabic UI Regular"), local("NotoNaskhArabicUI-Regular"), local("Noto Naskh Arabic"), local("Noto Naskh Arabic Regular"), local("NotoNaskhArabic-Regular"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Naskh UI"; font-weight: 700; src: local("Noto Naskh Arabic UI Bold"), local("NotoNaskhArabicUI-Bold"), local("Noto Naskh Arabic Bold"), local("NotoNaskhArabic-Bold"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF; }
:root:lang(ar) body { font-family: "Naskh UI", "Segoe UI", system-ui, "Tahoma", sans-serif; }
:root:lang(zh) body, :root:lang(ja) body { line-height: 1.75; }
:root:lang(ar) body { line-height: 1.8; }
/* colonne de lecture : environ 68 caractères en moyenne (« ch » mesure le chiffre 0, plus large qu'une lettre moyenne :
   la carte de 616 px laisse 518 px de texte, 66 à 78 caractères par ligne selon la langue), marges de 16 px au téléphone */
.cadre { width: min(100% - 32px, 616px); margin-inline: auto; }
.entete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding-block: 16px; }
/* logotype (logo/CHARTE.md § 4, comme l'en-tête de l'outil) : « Atelier » 600, « PDF » 700 en accent (5,55 / 6,20 sur le fond) */
.marque { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; color: var(--texte); font-size: 18px; font-weight: 600; letter-spacing: -.01em; text-decoration: none; }
.marque b { font-weight: 700; color: var(--accent); }
.marque img { display: block; flex: none; }
/* bordures transparentes : invisibles d'ordinaire, elles dessinent le bouton et le sommaire en contraste élevé (forced-colors) */
.bouton { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border: 1px solid transparent; border-radius: 8px; background: var(--accent); color: var(--sur-accent); font-weight: 600; text-decoration: none; }
main { padding: 40px 48px 32px; background: var(--surface); border: 1px solid var(--bordure); border-radius: 16px; box-shadow: var(--ombre-papier); }
main > * { max-width: 60ch; }
h1 { margin: 0 0 24px; font-size: 32px; line-height: 1.2; letter-spacing: -.01em; }
:root:is(:lang(ar), :lang(zh), :lang(ja)) h1 { letter-spacing: 0; }
.provenance { display: none; } /* date et adresse de la page, en tête de l'impression seulement (le pied n'est pas imprimé) */
.sommaire { margin: 0 0 8px; padding: 16px 20px; border: 1px solid transparent; border-radius: 12px; background: var(--surface-2); }
.sommaire p { margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--texte-2); }
.sommaire ol { margin: 0; padding-inline-start: 1.4em; columns: 2; column-gap: 32px; }
.sommaire li { break-inside: avoid; line-height: 1.4; }
.sommaire li + li { margin-top: 0; }
/* bloc : le numéro de la liste s'aligne sur la PREMIÈRE ligne d'une entrée longue (la ligne de base d'un inline-block est
   sa dernière ligne), et toute la largeur de la colonne est cliquable */
.sommaire a { display: block; padding-block: 5px; }
section { padding-top: 24px; }
h2 { margin: 0 0 10px; font-size: 20px; line-height: 1.3; }
p, ul { margin: 0 0 12px; }
ul { padding-inline-start: 1.25em; }
li + li { margin-top: 6px; }
a { color: var(--accent-texte); text-underline-offset: 2px; }
.insecable { white-space: nowrap; } /* numéros d'immatriculation et d'identification fiscale : jamais coupés à leurs tirets ou barres */
.pied { padding-block: 20px 40px; font-size: 14px; color: var(--texte-2); }
.pied p { margin: 0 0 8px; }
.pied ul { display: flex; flex-wrap: wrap; gap: 0 18px; margin: 0; padding: 0; list-style: none; }
.pied li + li { margin-top: 0; }
.pied nav a { display: inline-block; padding-block: 4px; }
.pied [aria-current="page"] { color: var(--texte); font-weight: 600; text-decoration: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 2px; }
@media (hover: hover) and (pointer: fine) {
  .bouton:hover { background: var(--accent-fort); }
  a:not(.bouton):not(.marque):hover { text-decoration-thickness: 2px; }
}
/* doigt : liens du sommaire et des langues d'au moins 40 px de haut */
@media (pointer: coarse) { .sommaire a, .pied nav a { padding-block: 9px; } }
/* téléphone : le texte occupe toute la largeur (la carte perd ses bords), sommaire sur une colonne */
@media (max-width: 599px) {
  main.cadre { width: 100%; padding: 24px 16px 16px; border-inline: 0; border-radius: 0; box-shadow: none; }
  h1 { font-size: 26px; margin-bottom: 20px; }
  .sommaire { padding: 12px 16px; }
  .sommaire ol { columns: 1; }
  h2 { font-size: 19px; }
}
@media print {
  :root, :root[data-theme] { color-scheme: light; --fond: #eef1f5; --surface: #ffffff; --surface-2: #f4f6f9; --bordure: #d9dee7; --texte: #161d2c; --texte-2: #4f5a6d; --accent: #4f46e5; --accent-fort: #4338ca; --accent-texte: #3730a3; --sur-accent: #ffffff; --ombre-papier: 0 1px 2px rgba(15,23,42,.10), 0 8px 20px -8px rgba(15,23,42,.28); --fond: #ffffff; --surface: #ffffff; }
  @page { margin: 16mm 15mm; }
  body { font-size: 11pt; line-height: 1.5; }
  .cadre { width: auto; }
  .entete { padding-block: 0 12pt; }
  /* le pied (date, langues) n'est pas imprimé : seul sur une dernière page, il en ajoutait une ; date et adresse
     passent en tête, sous le titre */
  .bouton, .sommaire, .pied { display: none; }
  .provenance { display: block; margin: -12pt 0 14pt; font-size: 9pt; color: var(--texte-2); }
  main { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
  main > * { max-width: none; }
  a { color: inherit; }
  main a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 90%; overflow-wrap: anywhere; }
  /* fichiers du site ; licences.txt, cible de sept liens, n'est écrit qu'une fois (premier logiciel de la liste) */
  main a[href^="/"]:not([href="/licences.txt"])::after, .licences li:first-child a[href="/licences.txt"]::after { content: " (https://atelierpdf.app" attr(href) ")"; font-size: 90%; overflow-wrap: anywhere; }
  h2 { break-after: avoid; }
  p, li { orphans: 3; widows: 3; }
}
