/* Registro ABAP — Milan enterprise terminal: slate ink, amber terminal glow, cool grey panels, monospaced numerals. Prefixe tab- sur 100 % des classes. */
:root{
  --tab-fond:#f4f2ec; --tab-fond-panneau:#e8e6de; --tab-fond-bloc:#eceae3;
  --tab-encre:#1b2430; --tab-encre-douce:#5a6472; --tab-accent:#b45309;
  --tab-accent-appui:#92400e; --tab-lisere:#cfccc0; --tab-selection:#fde9c8;
  --tab-bande-sombre:#1b2430; --tab-bande-sombre-encre:#eef0f3; --tab-bande-sombre-douce:#b9c0cb;
  --tab-bande-sombre-lisere:#3a4657; --tab-lueur:#f59e0b;
  --tab-titre-police:"Avenir Next","Segoe UI",Verdana,Geneva,sans-serif;
  --tab-texte-police:"Avenir Next","Segoe UI",Verdana,Geneva,sans-serif;
  --tab-mono-police:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --tab-mesure:44rem; --tab-marge-largeur:17rem; --tab-pas:1.5rem; --tab-interligne:1.65;
  --tab-rang-taille:2.6rem; --tab-rayon:6px; --tab-page-max:72rem;
  --tab-t1:clamp(1.9rem,1.3rem + 2.6vw,2.9rem); --tab-t2:clamp(1.35rem,1.1rem + 1.1vw,1.75rem); --tab-t3:clamp(1.1rem,1rem + .5vw,1.25rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--tab-fond);color:var(--tab-encre);font-family:var(--tab-texte-police);line-height:var(--tab-interligne);font-size:1.02rem}
::selection{background:var(--tab-selection)}
img{max-width:100%;height:auto;display:block}
a{color:var(--tab-accent);text-decoration-thickness:1px;text-underline-offset:.14em}
a:hover{color:var(--tab-accent-appui)}
p{margin:0 0 1em;max-width:var(--tab-mesure)}
ul,ol{margin:0 0 1em;padding-left:1.4em}
li{margin-bottom:.35em}
li::marker{color:var(--tab-accent)}
h1,h2,h3{font-family:var(--tab-titre-police);line-height:1.2;letter-spacing:-.01em;margin:0 0 .6em}
strong,b{color:inherit}
code,.tab-num{font-family:var(--tab-mono-police);font-variant-numeric:tabular-nums;font-size:.92em}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{border:1px solid var(--tab-lisere);padding:.55em .7em;text-align:left;vertical-align:top}
th{background:var(--tab-fond-panneau);font-family:var(--tab-mono-police);font-size:.82em;text-transform:uppercase;letter-spacing:.06em}
caption{font-weight:700;padding:.6em;text-align:left}
.tab-saut{position:absolute;left:-9999px;top:0;background:var(--tab-bande-sombre);color:var(--tab-bande-sombre-encre);padding:.6em 1em;z-index:50}
.tab-saut:focus{left:0}
.tab-hors-ecran{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tab-cadre{max-width:var(--tab-page-max);margin:0 auto;padding:0 1.25rem}
.tab-separateur{border:0;border-top:1px solid var(--tab-lisere);margin:2rem 0}
/* ---------- bandeau ---------- */
.tab-bandeau{background:var(--tab-bande-sombre);color:var(--tab-bande-sombre-encre);border-bottom:3px solid var(--tab-lueur)}
.tab-bandeau__rangee{display:flex;align-items:center;gap:1.5rem;padding:.9rem 1.25rem;flex-wrap:wrap}
.tab-marque{color:var(--tab-bande-sombre-encre);text-decoration:none;font-family:var(--tab-mono-police);font-weight:700;font-size:1.15rem;letter-spacing:.02em;display:flex;align-items:center;gap:.6rem}
.tab-marque:hover{color:#fff}
.tab-marque__prompt{color:var(--tab-lueur)}
.tab-marque span{display:block;font-family:var(--tab-texte-police);font-weight:400;font-size:.78rem;color:var(--tab-bande-sombre-douce);letter-spacing:.04em}
.tab-marque__bloc{display:flex;flex-direction:column;line-height:1.3}
/* ---------- parcours : checkbox, jamais details ---------- */
.tab-parcours{margin-left:auto}
.tab-parcours__toggle{position:absolute;opacity:0;pointer-events:none}
.tab-parcours__manette{display:none;cursor:pointer;font-family:var(--tab-mono-police);font-size:.9rem;color:var(--tab-bande-sombre-encre);border:1px solid var(--tab-bande-sombre-lisere);border-radius:var(--tab-rayon);padding:.45em .9em;background:transparent}
.tab-parcours__manette:hover{border-color:var(--tab-lueur);color:#fff}
.tab-parcours ul{list-style:none;margin:0;padding:0;display:flex;gap:.2rem;flex-wrap:wrap}
.tab-parcours li{margin:0}
.tab-parcours a{color:var(--tab-bande-sombre-douce);text-decoration:none;font-size:.92rem;padding:.5em .8em;border-radius:var(--tab-rayon);display:block;border-left:2px solid transparent}
.tab-parcours a:hover{color:#fff;background:#28344a}
.tab-parcours a[aria-current="page"]{color:var(--tab-lueur);border-left-color:var(--tab-lueur);background:#242f44}
/* ---------- entree ---------- */
.tab-entree{background:linear-gradient(180deg,var(--tab-bande-sombre) 0,var(--tab-bande-sombre) 58%,var(--tab-fond) 58%,var(--tab-fond) 100%);color:var(--tab-bande-sombre-encre);padding:2.2rem 0 0}
.tab-entree--clair{background:var(--tab-fond);color:var(--tab-encre);padding:2rem 0 0}
.tab-fil-ariane{font-size:.85rem;color:var(--tab-bande-sombre-douce);margin:0 0 1rem}
.tab-entree--clair .tab-fil-ariane{color:var(--tab-encre-douce)}
.tab-fil-ariane a{color:inherit}
.tab-fil-ariane span{margin:0 .45em;color:var(--tab-lueur)}
.tab-titre{font-size:var(--tab-t1);margin:0 0 .5rem;max-width:20em}
.tab-chapeau{font-size:1.12rem;max-width:38em;color:inherit;opacity:.92}
.tab-mention{list-style:none;display:flex;gap:.6rem;flex-wrap:wrap;padding:0;margin:1rem 0 0}
.tab-mention li{margin:0;font-family:var(--tab-mono-police);font-size:.78rem;background:#28344a;color:var(--tab-bande-sombre-encre);border:1px solid var(--tab-bande-sombre-lisere);border-radius:999px;padding:.3em .9em}
.tab-entree--clair .tab-mention li{background:var(--tab-fond-panneau);color:var(--tab-encre);border-color:var(--tab-lisere)}
.tab-hero{margin:1.6rem 0 0;border:1px solid var(--tab-bande-sombre-lisere);border-radius:var(--tab-rayon);overflow:hidden;background:#0f1622}
.tab-entree--clair .tab-hero{border-color:var(--tab-lisere)}
.tab-hero img{width:100%;aspect-ratio:16/9;object-fit:cover}
.tab-hero figcaption,.tab-figure figcaption,.tab-vignette__legende,.tab-galerie figcaption{font-size:.83rem;color:var(--tab-encre-douce);padding:.6em .9em;background:var(--tab-fond-panneau)}
.tab-hero figcaption{color:var(--tab-bande-sombre-douce);background:#232e42}
/* ---------- pupitre ---------- */
.tab-pupitre{display:grid;grid-template-columns:var(--tab-marge-largeur) minmax(0,1fr);gap:2.2rem;align-items:stretch;padding-top:2rem;padding-bottom:2rem}
.tab-marge{min-width:0}
.tab-fil{position:sticky;top:1rem;background:var(--tab-bande-sombre);color:var(--tab-bande-sombre-encre);border:1px solid var(--tab-bande-sombre-lisere);border-top:3px solid var(--tab-lueur);border-radius:var(--tab-rayon);padding:1.1rem 1.1rem 1.2rem;font-size:.9rem}
.tab-fil__cle{font-family:var(--tab-mono-police);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--tab-lueur);margin:0 0 .8em}
.tab-fil__liste{list-style:none;margin:0;padding:0;counter-reset:tab-jalon}
.tab-fil__jalon{margin:0 0 .15em}
.tab-fil__jalon>a{color:var(--tab-bande-sombre-douce);text-decoration:none;display:block;padding:.35em .6em;border-radius:4px;border-left:2px solid transparent}
.tab-fil__jalon>a:hover{color:#fff;background:#28344a}
.tab-fil__jalon>a[aria-current="true"]{color:var(--tab-lueur);border-left-color:var(--tab-lueur)}
.tab-fil__brins{list-style:none;margin:.2em 0 .2em 1em;padding:0;font-size:.86em}
.tab-fil__brins a{color:var(--tab-bande-sombre-douce);text-decoration:none;display:block;padding:.2em .5em}
.tab-fil__brins a:hover{color:#fff}
.tab-marge__note{font-size:.83rem;color:var(--tab-encre-douce);background:var(--tab-fond-panneau);border:1px solid var(--tab-lisere);border-left:3px solid var(--tab-accent);border-radius:0 var(--tab-rayon) var(--tab-rayon) 0;padding:.8em 1em;margin-top:1.2rem}
.tab-corps{min-width:0}
.tab-corps>p,.tab-corps>ul,.tab-corps>ol{max-width:var(--tab-mesure)}
/* ---------- lecon ---------- */
.tab-lecon{margin:0 0 2.6rem;padding-top:.4rem}
.tab-lecon__palier{font-size:var(--tab-t2);display:flex;align-items:baseline;gap:.6rem;border-bottom:2px solid var(--tab-bande-sombre);padding-bottom:.45rem}
.tab-lecon__rang{font-family:var(--tab-mono-police);font-size:var(--tab-rang-taille);font-weight:700;color:var(--tab-accent);font-variant-numeric:tabular-nums;line-height:1}
.tab-lecon h3{font-size:var(--tab-t3);margin-top:1.6em}
.tab-retenir{background:var(--tab-fond-panneau);border:1px solid var(--tab-lisere);border-left:4px solid var(--tab-lueur);border-radius:0 var(--tab-rayon) var(--tab-rayon) 0;padding:1em 1.2em;margin:1.4rem 0}
.tab-retenir__cle{font-family:var(--tab-mono-police);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--tab-accent-appui);margin:0 0 .6em}
.tab-retenir__points{margin:0;padding-left:1.2em}
.tab-retenir__points li{margin-bottom:.3em}
.tab-encart{background:var(--tab-bande-sombre);color:var(--tab-bande-sombre-encre);border-radius:var(--tab-rayon);padding:1.2em 1.4em;margin:1.4rem 0;border-top:3px solid var(--tab-lueur)}
.tab-encart--accent{background:#fff8ec;color:var(--tab-encre);border:1px solid var(--tab-lueur)}
.tab-encart--plein{background:var(--tab-accent);color:#fff}
.tab-encart--plein .tab-encart__cle{color:#fff}
.tab-encart__cle{font-size:1rem;margin:0 0 .5em;color:var(--tab-lueur)}
.tab-encart p:last-child{margin-bottom:0}
.tab-appel{background:var(--tab-fond-bloc);border:1px dashed var(--tab-accent);border-radius:var(--tab-rayon);padding:1.1em 1.3em;margin:1.4rem 0}
.tab-appel--accent{background:#fff8ec;border-style:solid}
.tab-appel p:last-child{margin-bottom:0}
.tab-etapes{list-style:none;counter-reset:tab-pas;margin:1.2em 0;padding:0}
.tab-etapes>li{counter-increment:tab-pas;position:relative;padding:.55em .8em .55em 3.2em;margin-bottom:.6em;background:var(--tab-fond-bloc);border:1px solid var(--tab-lisere);border-radius:var(--tab-rayon)}
.tab-etapes>li::before{content:counter(tab-pas,decimal-leading-zero);position:absolute;left:.7em;top:.55em;font-family:var(--tab-mono-police);font-weight:700;font-size:.85rem;color:#fff;background:var(--tab-accent);border-radius:4px;padding:.15em .45em}
.tab-glose{margin:1.2em 0;padding:0}
.tab-glose dt{font-family:var(--tab-mono-police);font-weight:700;color:var(--tab-accent-appui);margin-top:.9em}
.tab-glose dd{margin:.2em 0 0;padding:0 0 .6em;border-bottom:1px dotted var(--tab-lisere)}
.tab-tableau{overflow-x:auto;margin:1.4rem 0;border:1px solid var(--tab-lisere);border-radius:var(--tab-rayon);background:#fff}
.tab-figure{margin:1.4rem 0;border:1px solid var(--tab-lisere);border-radius:var(--tab-rayon);overflow:hidden;background:#fff}
.tab-figure img{width:100%}
.tab-figure--classique img{aspect-ratio:4/3;object-fit:cover}
.tab-figure--large img{aspect-ratio:16/9;object-fit:cover}
.tab-figure--paysage img{aspect-ratio:3/2;object-fit:cover}
.tab-figure--carre img{aspect-ratio:1/1;object-fit:cover}
/* ---------- programme (accueil : cartes avec vignettes) ---------- */
.tab-programme{list-style:none;margin:1.4rem 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem;counter-reset:tab-dossier}
.tab-programme__entree{counter-increment:tab-dossier;margin:0;display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.9rem;background:#fff;border:1px solid var(--tab-lisere);border-top:3px solid var(--tab-bande-sombre);border-radius:var(--tab-rayon);padding:.8rem;align-items:start}
.tab-programme__entree:hover{border-top-color:var(--tab-lueur)}
.tab-vignette{margin:0;border-radius:4px;overflow:hidden;background:var(--tab-fond-panneau);min-width:0}
.tab-vignette img{width:100%;aspect-ratio:1/1;object-fit:cover}
.tab-programme a{text-decoration:none;color:inherit;display:block;min-width:0}
.tab-programme a:hover .tab-programme__titre{color:var(--tab-accent-appui);text-decoration:underline}
.tab-programme__titre{display:block;font-weight:700;font-size:.98rem;line-height:1.35;margin-bottom:.3em}
.tab-programme__titre::before{content:counter(tab-dossier,decimal-leading-zero);font-family:var(--tab-mono-police);color:var(--tab-accent);margin-right:.5em;font-size:.85em}
.tab-programme__resume{display:block;font-size:.86rem;color:var(--tab-encre-douce);line-height:1.5;margin-bottom:.4em}
.tab-programme__reperes{display:block;font-family:var(--tab-mono-police);font-size:.74rem;color:var(--tab-encre-douce)}
.tab-programme__reperes b{color:var(--tab-accent-appui)}
.tab-programme__legende{display:block;font-size:.78rem;color:var(--tab-encre-douce);margin-top:.5em;font-style:italic}
/* ---------- index (rubriques) ---------- */
.tab-index{list-style:none;margin:1.4rem 0;padding:0;display:grid;gap:1rem}
.tab-index>li{margin:0;display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem;background:#fff;border:1px solid var(--tab-lisere);border-left:4px solid var(--tab-accent);border-radius:0 var(--tab-rayon) var(--tab-rayon) 0;padding:.9rem;align-items:start}
.tab-index__titre{font-size:1.02rem;margin:0 0 .35em}
.tab-index__titre a{text-decoration:none;color:var(--tab-encre)}
.tab-index__titre a:hover{color:var(--tab-accent-appui);text-decoration:underline}
.tab-index__resume{font-size:.9rem;color:var(--tab-encre-douce);margin:0 0 .5em}
.tab-index__reperes{list-style:none;display:flex;gap:.5rem;flex-wrap:wrap;margin:0;padding:0;font-family:var(--tab-mono-police);font-size:.75rem;color:var(--tab-encre-douce)}
.tab-index__reperes li{margin:0;background:var(--tab-fond-panneau);border-radius:999px;padding:.2em .8em}
/* ---------- passerelle / rail / cartes / badges / boutons ---------- */
.tab-passerelle{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.6rem 0}
.tab-passerelle a{display:block;background:var(--tab-bande-sombre);color:var(--tab-bande-sombre-encre);text-decoration:none;border-radius:var(--tab-rayon);padding:1em 1.2em;border-top:3px solid var(--tab-lueur)}
.tab-passerelle a:hover{background:#28344a;color:#fff}
.tab-passerelle small{display:block;font-family:var(--tab-mono-police);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tab-lueur);margin-bottom:.3em}
.tab-passerelle b{display:block;line-height:1.4}
.tab-rail{display:grid;gap:1rem;margin:1.4rem 0}
.tab-rail__bloc{background:var(--tab-fond-panneau);border:1px solid var(--tab-lisere);border-radius:var(--tab-rayon);padding:1em 1.2em}
.tab-rail__bloc--accent{background:var(--tab-bande-sombre);color:var(--tab-bande-sombre-encre);border-color:var(--tab-bande-sombre-lisere)}
.tab-rail__bloc--accent a{color:var(--tab-lueur)}
.tab-rail__bloc h3{font-size:1rem;margin:0 0 .5em}
.tab-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1.4rem 0}
.tab-carte{background:#fff;border:1px solid var(--tab-lisere);border-radius:var(--tab-rayon);padding:1em 1.2em;margin:0}
.tab-carte--accent{border-top:3px solid var(--tab-lueur)}
.tab-carte--serree{padding:.7em .9em;font-size:.9rem}
.tab-carte h3{font-size:1rem;margin:0 0 .4em}
.tab-badge{display:inline-block;font-family:var(--tab-mono-police);font-size:.74rem;background:var(--tab-bande-sombre);color:var(--tab-lueur);border-radius:4px;padding:.2em .6em;letter-spacing:.05em}
.tab-badge--doux{background:var(--tab-fond-panneau);color:var(--tab-accent-appui);border:1px solid var(--tab-lisere)}
.tab-btn{display:inline-block;background:var(--tab-accent);color:#fff;text-decoration:none;font-weight:700;border-radius:var(--tab-rayon);padding:.7em 1.5em;border:0}
.tab-btn:hover{background:var(--tab-accent-appui);color:#fff}
.tab-btn--secondaire{background:transparent;color:var(--tab-accent-appui);border:2px solid var(--tab-accent)}
.tab-btn--secondaire:hover{background:var(--tab-accent);color:#fff}
.tab-pagination{display:flex;gap:.5rem;list-style:none;padding:0;margin:1.6rem 0}
.tab-pagination a,.tab-pagination span{font-family:var(--tab-mono-police);font-size:.85rem;border:1px solid var(--tab-lisere);border-radius:4px;padding:.4em .8em;text-decoration:none}
.tab-pagination a[aria-current="page"]{background:var(--tab-bande-sombre);color:var(--tab-lueur);border-color:var(--tab-bande-sombre)}
.tab-etat-ok{font-family:var(--tab-mono-police);font-size:.8rem;color:#166534;background:#dcfce7;border:1px solid #86efac;border-radius:4px;padding:.3em .7em}
.tab-etat-attente{font-family:var(--tab-mono-police);font-size:.8rem;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:4px;padding:.3em .7em}
.tab-galerie{display:grid;grid-template-columns:1fr 1.4fr;gap:1rem;margin:1.4rem 0}
.tab-galerie figure{margin:0;border:1px solid var(--tab-lisere);border-radius:var(--tab-rayon);overflow:hidden;background:#fff}
.tab-galerie img{width:100%}
.tab-galerie__entree img{aspect-ratio:1/1;object-fit:cover}
.tab-galerie__entree--paysage img{aspect-ratio:3/2;object-fit:cover}
.tab-liste--compacte{font-size:.9rem}
.tab-texte--doux{color:var(--tab-encre-douce)}
.tab-texte--petit{font-size:.85rem}
/* ---------- socle ---------- */
.tab-socle{background:var(--tab-bande-sombre);color:var(--tab-bande-sombre-encre);border-top:3px solid var(--tab-lueur);margin-top:2rem}
.tab-socle__rangee{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;padding:2.2rem 1.25rem}
.tab-socle__rangee>div{min-width:0}
.tab-socle h2{font-family:var(--tab-mono-police);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--tab-lueur);margin:0 0 .8em}
.tab-socle ul{list-style:none;margin:0;padding:0}
.tab-socle li{margin-bottom:.4em}
.tab-socle a{color:var(--tab-bande-sombre-douce);text-decoration:none;font-size:.9rem}
.tab-socle a:hover{color:#fff;text-decoration:underline}
.tab-socle p{font-size:.9rem;color:var(--tab-bande-sombre-douce)}
.tab-socle__bas{border-top:1px solid var(--tab-bande-sombre-lisere);padding:1.1rem 1.25rem;font-size:.83rem;color:var(--tab-bande-sombre-douce);display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between}
.tab-socle__bas a{color:var(--tab-lueur)}
/* ---------- responsive : deux etats ---------- */
@media (max-width:56rem){
  .tab-parcours__manette{display:inline-block}
  .tab-parcours{margin-left:0;width:100%}
  .tab-parcours ul{display:none;flex-direction:column;background:#232e42;border:1px solid var(--tab-bande-sombre-lisere);border-radius:var(--tab-rayon);padding:.5rem;margin-top:.6rem}
  .tab-parcours__toggle:checked~ul{display:grid}
  .tab-pupitre{grid-template-columns:minmax(0,1fr)}
  .tab-fil{position:static}
  .tab-programme{grid-template-columns:minmax(0,1fr)}
  .tab-passerelle{grid-template-columns:minmax(0,1fr)}
  .tab-galerie{grid-template-columns:minmax(0,1fr)}
  .tab-socle__rangee{grid-template-columns:minmax(0,1fr);gap:1.4rem}
  .tab-index>li{grid-template-columns:minmax(0,1fr)}
  .tab-programme__entree{grid-template-columns:6rem minmax(0,1fr)}
}
@media (min-width:56.01rem){
  .tab-parcours__manette{display:none}
  .tab-parcours ul{display:flex}
}
@media print{
  .tab-bandeau,.tab-socle,.tab-marge,.tab-saut{display:none}
  .tab-pupitre{display:block}
  body{background:#fff}
}
