/* =====================================================================================================
   PRISTAYA — THÈME 2026 (0.23.0). Chargé en DERNIER dans index.html et admin.html.
   Fond crème chaud, accent terre cuite, encre brun-noir ; titres Caprasimo, texte Figtree ; formes rondes, pilules.
   Remplace les anciens thèmes Sombre/Clair (les variables historiques sont remappées : aucun JS à changer).
   Pour revenir à l'ancien rendu : retirer la ligne <link … theme-2026.css>.
   ===================================================================================================== */
/* Polices hébergées avec l'app (aucun appel à Google : pas de transfert d'adresse IP des clientes, RGPD). Licence OFL : assets/fonts/OFL-LICENSE.txt */
@font-face { font-family: 'Caprasimo'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/caprasimo-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/figtree-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/figtree-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/figtree-latin-700-normal.woff2') format('woff2'); }

:root, html[data-theme], html[data-theme='light'], html[data-theme='dark'] {
  color-scheme: light;
  /* Palette 2026 */
  --p-bg: #f5ead8; --p-surface: #f9f4ed; --p-surface-2: #eee7db; --p-ink: #201e1d; --p-ink-soft: #645c50;
  --p-night: #2e2b25; --p-night-2: #474238;
  --p-accent: #c67139; --p-accent-100: #fff2eb; --p-accent-200: #ffe1d0; --p-accent-300: #ffc6a5; --p-accent-400: #f6a06b;
  --p-accent-600: #b2622d; --p-accent-700: #8c491a; --p-accent-800: #643312; --p-accent-900: #402310;
  --p-r-sm: 12px; --p-r-md: 16px; --p-r-lg: 28px;
  --p-shadow-sm: 0 1px 2px rgba(46, 43, 37, .14); --p-shadow-md: 0 3px 10px rgba(46, 43, 37, .16); --p-shadow-lg: 0 12px 32px rgba(46, 43, 37, .22);
  /* Variables historiques → nouvelle palette */
  --bg: var(--p-bg); --bg2: var(--p-surface-2); --card: var(--p-surface); --card2: var(--p-surface-2);
  --plum: var(--p-accent-100); --powder: var(--p-accent-100); --ivory: var(--p-ink);
  --text: var(--p-ink); --muted: var(--p-ink-soft);
  --rose: var(--p-accent-700); --rose2: var(--p-accent); --berry: var(--p-accent); --berry-d: var(--p-accent-700);
  --bordeaux: var(--p-accent-800); --oldrose: var(--p-accent-700); --gold: var(--p-accent-700); --champagne: var(--p-accent-700);
  --ok: #4f6b3a; --warn: #8c491a; --danger: #a3322a;
  --line: rgba(32, 30, 29, .12); --line-strong: rgba(32, 30, 29, .24);
  --radius: var(--p-r-lg); --radius-s: var(--p-r-md); --shadow: var(--p-shadow-md);
  --font-title: 'Caprasimo', Georgia, serif;
  --font-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* — Base — */
html[data-theme] body { background: var(--p-bg); color: var(--p-ink); font-family: var(--font-body); }
html[data-theme] body::before { display: none; }
h1, h2, h3, h4 { font-family: var(--font-title); font-weight: 400; letter-spacing: -.015em; line-height: 1.1; }
html h1, html h2, html h3, html h4 { color: inherit; }
a { color: var(--p-accent-700); text-underline-offset: 3px; } a:hover { color: var(--p-accent-800); }
:focus-visible { outline: 2px solid var(--p-accent); outline-offset: 2px; }
::selection { background: rgba(198, 113, 57, .3); }
html[data-theme] .muted { color: var(--p-ink-soft); }
html[data-theme] .eyebrow { color: var(--p-accent-700); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-size: .75rem; }

/* — Barre du haut, navigation — */
html[data-theme] .topbar { background: rgba(245, 234, 216, .88); backdrop-filter: blur(14px); border-bottom: 0; }
html[data-theme] .topbar__brand { font-family: var(--font-title); letter-spacing: 0; color: var(--p-ink); font-size: 1.35rem; text-transform: none; }
html[data-theme] .tabbar { left: 14px; right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); border-radius: 999px; background: var(--p-night); border: 0; padding: 8px; box-shadow: var(--p-shadow-lg); }
html[data-theme] .tabbar__link { min-height: 52px; border-radius: 999px; color: #c0b6a5; font-weight: 600; }
html[data-theme] .tabbar__link[aria-current='page'] { background: var(--p-accent); color: var(--p-surface); }
html[data-theme] .sidebar { background: var(--p-night); color: var(--p-surface); border: 0; }
html[data-theme] .brand { font-family: var(--font-title); letter-spacing: 0; color: var(--p-surface); font-size: 1.7rem; }
html[data-theme] .brand__tag { color: var(--p-accent-300); letter-spacing: .12em; }
html[data-theme] .nav__link { border-radius: 999px; color: #dcd3c4; }
html[data-theme] .nav__link:hover { background: var(--p-night-2); color: var(--p-surface); }
html[data-theme] .nav__link[aria-current='page'] { background: var(--p-accent); color: var(--p-surface); }
html[data-theme] .sidebar__foot, html[data-theme] .sidebar__foot .muted { color: #a19786; }
html[data-theme] .sidebar__foot a { color: var(--p-accent-300); }

/* — Boutons — */
html[data-theme] .btn { border-radius: 999px; font-family: var(--font-title); font-weight: 400; letter-spacing: 0; border: 1px solid var(--line-strong); background: transparent; color: var(--p-ink); box-shadow: none; }
html[data-theme] .btn:hover { background: rgba(32, 30, 29, .07); }
html[data-theme] .btn--primary, html[data-theme] .btn--p { background: var(--p-accent); color: var(--p-surface); border-color: transparent; box-shadow: none; }
html[data-theme] .btn--primary:hover, html[data-theme] .btn--p:hover { background: var(--p-accent-600); }
html[data-theme] .btn--primary:active, html[data-theme] .btn--p:active { background: var(--p-accent-700); }
html[data-theme] .btn--ghost { color: var(--p-accent-700); border-color: transparent; background: transparent; }
html[data-theme] .btn--ghost:hover { background: rgba(198, 113, 57, .1); }
html[data-theme] .btn--danger { color: var(--danger); border-color: rgba(163, 50, 42, .35); }
html[data-theme] .btn:disabled, html[data-theme] .btn[aria-disabled='true'] { opacity: .45; }

/* — Cartes et surfaces — */
html[data-theme] .card, html[data-theme] .card--soft, html[data-theme] .a-card, html[data-theme] .offer, html[data-theme] .xcard, html[data-theme] .pcard, html[data-theme] .evt-card, html[data-theme] .post, html[data-theme] .reward, html[data-theme] .fold, html[data-theme] .empty--soft, html[data-theme] .evo-strip > div {
  background: var(--p-surface); border: 0; border-radius: var(--p-r-lg); box-shadow: none;
}
html[data-theme] .card--hero, html[data-theme] .points-hero, html[data-theme] .offer--featured { background: var(--p-night); color: var(--p-surface); border: 0; border-radius: var(--p-r-lg); }
html[data-theme] .card--hero::after { display: none; }
html[data-theme] .card--hero .muted, html[data-theme] .points-hero .muted, html[data-theme] .offer--featured .muted { color: #dcd3c4; }
html[data-theme] .card--hero .eyebrow, html[data-theme] .offer--featured .eyebrow { color: var(--p-accent-300); }
html[data-theme] .card--alert { background: var(--p-accent-100); color: var(--p-accent-900); border: 0; border-radius: var(--p-r-lg); }

/* — Étiquettes, puces, onglets — */
html[data-theme] .badge, html[data-theme] .pill { border-radius: 999px; background: var(--p-surface-2); color: var(--p-ink); border: 0; font-weight: 600; }
html[data-theme] .badge--gold, html[data-theme] .pill--ok { background: var(--p-accent-200); color: var(--p-accent-800); }
html[data-theme] .badge--warn, html[data-theme] .pill--warn { background: var(--p-accent-100); color: var(--p-accent-700); }
html[data-theme] .chip { border-radius: 999px; background: var(--p-surface); border: 0; color: var(--p-ink); }
html[data-theme] .chip--on, html[data-theme] .chip[aria-pressed='true'] { background: var(--p-ink); color: var(--p-bg); }
html[data-theme] .tabs, html[data-theme] .etabs { background: var(--p-surface); border-radius: 999px; padding: 4px; border: 0; }
html[data-theme] .eclats-chip, html[data-theme] .inbox-chip { border-radius: 999px; background: var(--p-accent-100); color: var(--p-accent-800); border: 0; font-weight: 700; }
html[data-theme] .inbox-chip__n { background: var(--p-accent); color: var(--p-surface); }

/* — Formulaires — */
html[data-theme] input:not([type='checkbox']):not([type='radio']), html[data-theme] select, html[data-theme] textarea {
  background: var(--p-surface); color: var(--p-ink); border: 1px solid var(--line-strong); border-radius: var(--p-r-md); font-family: var(--font-body);
}
html[data-theme] input:not([type='checkbox']):not([type='radio']):not([type='file']), html[data-theme] select { border-radius: 999px; }
html[data-theme] input:focus, html[data-theme] select:focus, html[data-theme] textarea:focus { border-color: var(--p-accent); outline: 2px solid rgba(198, 113, 57, .25); outline-offset: 0; }
html[data-theme] input[type='checkbox'], html[data-theme] input[type='radio'] { accent-color: var(--p-accent); }

/* — Progression — */
html[data-theme] .bar { background: var(--p-surface-2); border-radius: 999px; }
html[data-theme] .bar > *, html[data-theme] .bar span { background: var(--p-accent); border-radius: 999px; }
html[data-theme] .ring__bg { stroke: var(--p-surface-2); } html[data-theme] .ring__fg { stroke: var(--p-accent); }

/* — Images : coins arrondis partout — */
html[data-theme] .art, html[data-theme] .hero-art, html[data-theme] .media-img, html[data-theme] .evt-card__img, html[data-theme] .reward__img, html[data-theme] .res-tile__img, html[data-theme] .res-row__img, html[data-theme] .a-art, html[data-theme] .thumb, html[data-theme] .vis__img { border-radius: var(--p-r-md); }
html[data-theme] .res-hero { border-radius: var(--p-r-lg); overflow: hidden; }
html[data-theme] .avatar { border-radius: 50%; }

/* — Fenêtres modales, notifications — */
html[data-theme] dialog, html[data-theme] .modal { background: var(--p-bg); color: var(--p-ink); border: 0; border-radius: var(--p-r-lg); box-shadow: var(--p-shadow-lg); }
html[data-theme] dialog::backdrop { background: rgba(46, 43, 37, .45); backdrop-filter: blur(4px); }
html[data-theme] #toast { background: var(--p-night); color: var(--p-surface); border-radius: 999px; }

/* ===================== BACK-OFFICE ===================== */
html[data-theme] .a-side { background: var(--p-night); color: var(--p-surface); border: 0; }
html[data-theme] .a-brand { font-family: var(--font-title); color: var(--p-surface); letter-spacing: 0; font-size: 1.7rem; }
html[data-theme] .a-brand span { color: var(--p-accent-300); letter-spacing: .12em; text-transform: uppercase; font-family: var(--font-body); font-size: .72rem; }
html[data-theme] .a-side a { color: #dcd3c4; border-radius: 999px; }
html[data-theme] .a-side a:hover { background: var(--p-night-2); color: var(--p-surface); }
html[data-theme] .a-side a[aria-current='page'], html[data-theme] .a-side a.is-on { background: var(--p-accent); color: var(--p-surface); }
html[data-theme] .a-nav__g { color: #a19786; }
html[data-theme] .a-exit { color: var(--p-accent-300); }
html[data-theme] .kpi { background: var(--p-surface); border: 0; border-radius: var(--p-r-lg); }
html[data-theme] .kpi strong, html[data-theme] .kpi .kpi__v { font-family: var(--font-title); font-weight: 400; }
html[data-theme] .a-subnav a, html[data-theme] .a-subnav button { border-radius: 999px; }
html[data-theme] .a-subnav [aria-current='page'], html[data-theme] .a-subnav .is-on { background: var(--p-accent-100); color: var(--p-accent-800); }
html[data-theme] table, html[data-theme] .a-table { border-collapse: collapse; }
html[data-theme] th { color: var(--p-ink-soft); font-weight: 600; border-bottom: 1px solid var(--line-strong); background: transparent; }
html[data-theme] td { border-bottom: 1px solid var(--line); }
html[data-theme] .todo-today.todo--on { background: var(--p-surface); border: 0; }
html[data-theme] .todo-list a { border-radius: var(--p-r-md); background: var(--p-bg); }
html[data-theme] .todo-list a:hover { background: var(--p-accent-100); }
html[data-theme] .prow, html[data-theme] .srow, html[data-theme] .brow { background: var(--p-surface); border: 0; border-radius: var(--p-r-md); }
html[data-theme] .banner, html[data-theme] .banner--gold { background: var(--p-accent-100); color: var(--p-accent-900); border: 0; border-radius: var(--p-r-lg); }
html[data-theme] .banner--warn { background: var(--p-accent-200); color: var(--p-accent-900); }
html[data-theme] .savebar { background: rgba(245, 234, 216, .94); backdrop-filter: blur(10px); border-top: 1px solid var(--line); }
html[data-theme] .hbar__t { background: var(--p-surface-2); } html[data-theme] .hbar__t i { background: var(--p-accent); }
html[data-theme] .lchart__line { stroke: var(--p-accent); } html[data-theme] .lchart__area { fill: rgba(198, 113, 57, .15); }

/* ===================== ÉTAPE 1 · COHÉRENCE (0.23.0) =====================
   Les anciennes feuilles (sanctuaire sombre, mode clair rose) gardaient des fonds prune et des textes clairs codés en dur.
   Ici : toutes les zones passent en crème / nuit / terre cuite, et les zones sombres gardent un texte clair lisible. */
/* Zones sombres « nuit » : texte clair */
html[data-theme] :is(.card--hero, .points-hero, .offer--featured, .co-head, .evt-hero, .resume--visual, .bravo, .hero-art, .hero-art--img, .res-hero) {
  --text: #f9f4ed; --ivory: #f9f4ed; --muted: #dcd3c4; --champagne: var(--p-accent-300); --gold: var(--p-accent-300); --rose: var(--p-accent-300); --oldrose: var(--p-accent-300);
}
html[data-theme] .offer--featured .offer__price strong, html[data-theme] .card--hero h2, html[data-theme] .card--hero h1 { color: var(--p-surface); }
html[data-theme] .offer__tag { background: var(--p-accent); color: var(--p-surface); }
html[data-theme] .co-head { background: var(--p-night); }
html[data-theme] .evt-hero { background-color: var(--p-night); }
html[data-theme] .evt-card__img, html[data-theme] .media-embed { background-color: var(--p-night); }
/* Visuels de secours (sans photo) : dégradé nuit → terre cuite au lieu du prune */
html[data-theme] :is(.evt-card__img, .evt-hero, .res-row__img, .res-tile__img, .res-cover, .art, .a-art):not([style*='url(']):not(:has(svg, img)) { background-image: linear-gradient(160deg, var(--p-accent-700), var(--p-night)); }
html[data-theme] .res-hero--empty { background: linear-gradient(160deg, var(--p-accent-800), var(--p-night)); }
/* Puces et onglets actifs : encre, plus de rose */
html[data-theme] .chip[aria-current='true'], html[data-theme] .chip[aria-pressed='true'], html[data-theme] .chip--on { background: var(--p-ink); color: var(--p-bg); }
html[data-theme] .tabs a[aria-current='true'], html[data-theme] .tabs [aria-selected='true'] { background: var(--p-ink); color: var(--p-bg); }
/* Avatar, saison, bibliothèque, passerelles */
html[data-theme] .avatar { background: radial-gradient(circle at 30% 25%, var(--p-accent-400), var(--p-accent-700)); color: var(--p-surface); }
html[data-theme] :is(.res-season, .res-library, .res-bridge, .post__quote, .phases li, .wk, .coach-row, .wk__row, .slot-day) { background: var(--p-surface); border-color: transparent; }
html[data-theme] .slot-day[aria-selected='true'] { background: var(--p-accent-100); border-color: var(--p-accent); }
html[data-theme] .slot-day[aria-selected='true'] span { color: var(--p-accent-800); }
html[data-theme] .coach-guidance__date { background: var(--p-accent-100); }
/* Recherche : le champ vit DANS la boîte (pas de double pilule) */
html[data-theme] .coach-search__box, html[data-theme] .search-input { background: var(--p-surface); border: 1px solid var(--line-strong); border-radius: 999px; }
html[data-theme] .coach-search__box input { background: transparent; border: 0; outline: 0; }
/* Semaines du mois (Ressentir) */
html[data-theme] .res-week { background: var(--p-surface); border: 1px solid transparent; }
html[data-theme] .res-week strong { color: var(--p-ink); }
html[data-theme] .res-week span { color: var(--p-ink-soft); }
html[data-theme] .res-week.is-on { background: var(--p-ink); border-color: var(--p-ink); }
html[data-theme] .res-week.is-on strong, html[data-theme] .res-week.is-on span { color: var(--p-bg); }
html[data-theme] .res-week.is-locked { background: transparent; border: 1px dashed var(--line-strong); opacity: 1; }
html[data-theme] .res-title, html[data-theme] .res-row__txt strong, html[data-theme] .res-tile__body strong, html[data-theme] .res-season strong { color: var(--p-ink); }
html[data-theme] .res-brand { color: var(--p-accent-700); }
html[data-theme] .res-hello { color: var(--p-accent-700); }

/* ===================== STUDIO (back-office) en crème ===================== */
html[data-theme] body.is-studio { background: var(--p-bg); color: var(--p-ink); }
html[data-theme] .studio { --st-bg: var(--p-bg); --st-card: var(--p-surface); --st-line: rgba(32, 30, 29, .1); --st-line2: rgba(32, 30, 29, .2);
  --st-text: var(--p-ink); --st-muted: var(--p-ink-soft); --st-rose: var(--p-accent-700); --st-champ: var(--p-accent-700); --st-grad: var(--p-accent); }
html[data-theme] .studio h1, html[data-theme] .studio h2 { font-weight: 400; }
html[data-theme] .st-btn--p { background: var(--p-accent); color: var(--p-surface); box-shadow: none; }
html[data-theme] .st-btn--p:hover { background: var(--p-accent-600); }
html[data-theme] :is(.st-add__list, .st-menu__list) { background: var(--p-surface); box-shadow: var(--p-shadow-lg); }
html[data-theme] :is(.st-add__list a, .st-menu > summary, .st-menu__list > a, .st-menu__list > button, .st-menu__weeks button):is(:hover, :focus-visible), html[data-theme] .st-menu[open] > summary { background: var(--p-accent-100); }
html[data-theme] .st-week { background: var(--p-surface-2); border-color: transparent; }
html[data-theme] .st-week.is-now { background: var(--p-accent-100); border-color: var(--p-accent-300); box-shadow: none; }
html[data-theme] .st-week.is-drop { background: var(--p-accent-200); border-color: var(--p-accent); }
html[data-theme] .st-card { background: var(--p-surface); border-color: transparent; }
html[data-theme] .st-card--danse { border-left: 3px solid var(--p-accent); }
html[data-theme] .st-card--rencontre { border-left: 3px solid var(--p-night-2); }
html[data-theme] .st-dot--pub { color: #4f6b3a; } html[data-theme] .st-dot--arch { color: var(--p-ink-soft); }
html[data-theme] .st-field > span small { color: var(--p-ink-soft); }
html[data-theme] :is(.st-form input, .st-form textarea, .st-form select, .st-date input) { background: var(--p-surface); color: var(--p-ink); border-color: var(--line-strong); }
html[data-theme] .st-seg input:checked + span, html[data-theme] .st-chips input:checked + span { background: var(--p-ink); border-color: var(--p-ink); color: var(--p-bg); }
html[data-theme] .st-check input { accent-color: var(--p-accent); }
html[data-theme] .st-savebar { background: linear-gradient(180deg, rgba(245, 234, 216, 0), var(--p-bg) 30%); }
html[data-theme] .st-status[data-state='saved'] { color: #4f6b3a; } html[data-theme] :is(.st-status[data-state='error'], .st-error) { color: var(--danger); }
html[data-theme] body.is-studio #toast { background: var(--p-night); border: 0; }
html[data-theme] .st-theme details > summary { background: var(--p-night); color: var(--p-surface); }
html[data-theme] .st-theme details > summary :is(strong, .st-theme__text) { color: var(--p-surface); }
html[data-theme] .st-theme details > summary .st-eyebrow { color: var(--p-accent-300); }
html[data-theme] .st-theme.is-empty details > summary { background: transparent; border: 1px dashed var(--line-strong); color: var(--p-ink); }
html[data-theme] .st-theme.is-empty details > summary :is(strong, .st-theme__add) { color: var(--p-ink); }

/* ===================== BACK-OFFICE : derniers roses ===================== */
html[data-theme] #a-nav a { color: #dcd3c4; border-radius: 999px; }
html[data-theme] #a-nav a:hover { background: var(--p-night-2); color: var(--p-surface); }
html[data-theme] #a-nav a[aria-current='page'] { background: var(--p-accent); color: var(--p-surface); box-shadow: none; }
html[data-theme] .todo--on .count { background: var(--p-accent); color: var(--p-surface); }
html[data-theme] .todo .count { background: var(--p-surface-2); }
html[data-theme] .a-more__list { background: var(--p-surface); border: 0; box-shadow: var(--p-shadow-lg); }
html[data-theme] .a-more__list > a, html[data-theme] .a-more__list > button { color: var(--p-ink); }
html[data-theme] .a-more__list > :is(a, button):hover { background: var(--p-accent-100); }
html[data-theme] .a-more__list > .danger { color: var(--danger); }
html[data-theme] :is(.dcal__grid, .dcal__row + .dcal__row, .dcal__cell + .dcal__cell, details.evs--inner) { border-color: var(--line); }
html[data-theme] .dcal__row--days span { background: var(--p-surface-2); color: var(--p-ink-soft); }
html[data-theme] .dcal__cell.is-out, html[data-theme] .dcal__cell.is-past:not(.is-out) { background: rgba(238, 231, 219, .5); }
html[data-theme] .dcal__cell.is-today .dcal__date { background: var(--p-accent); }
html[data-theme] .dcal__item { color: var(--p-ink); }
html[data-theme] .dcal--retraite { --k: var(--p-accent); --kb: var(--p-accent-100); } html[data-theme] .dcal--live { --k: var(--p-night-2); --kb: var(--p-surface-2); }
html[data-theme] .dcal--rdv { --k: #4f6b3a; --kb: #ebeedf; } html[data-theme] .dcal--contenu { --k: var(--p-accent-400); --kb: var(--p-accent-200); }
html[data-theme] details.evs > summary::after { color: var(--p-accent); }

/* ===================== CONTRASTE (≥ 4.5:1) =====================
   Texte crème sur terre cuite #c67139 = 3,3:1 (insuffisant). Les fonds qui portent du texte crème utilisent #a85b28 (4,6:1) ;
   #c67139 reste la couleur des aplats décoratifs (barres, pastilles, bordures). */
html[data-theme] { --p-accent-ink: #a85b28; }
html[data-theme] :is(.btn--primary, .btn--p, .st-btn--p, .tabbar__link[aria-current='page'], .nav__link[aria-current='page'], #a-nav a[aria-current='page'], .a-side a[aria-current='page'], .offer__tag, .inbox-chip__n, .todo--on .count, .dcal__cell.is-today .dcal__date) { background: var(--p-accent-ink); color: var(--p-surface); }
html[data-theme] :is(.btn--primary, .btn--p, .st-btn--p):hover { background: var(--p-accent-700); }

/* ===================== ÉTAPE 2 · RESSENTIR ET EXPLORER (0.24.0) ===================== */
/* Caprasimo n'a pas d'italique : jamais d'italique « forcé » sur les titres */
html[data-theme] :is(h1, h2, h3, .res-title, .res-hero h2, .res-hero__intent, .st-month h1, .st-theme summary strong) { font-style: normal; }
/* Ressentir : en-tête */
html[data-theme] .res-head { padding-top: 8px; }
html[data-theme] .res-hello { margin: 0 0 4px; color: var(--p-ink-soft); font-size: 1rem; }
html[data-theme] .res-title { margin: 0 0 10px; font: 400 clamp(2.3rem, 10vw, 3.1rem)/1.02 var(--font-title); color: var(--p-ink); letter-spacing: -.02em; }
html[data-theme] .res-intro { font-size: .92rem; margin: 0 0 6px; }
/* Semaines en pilules */
html[data-theme] .res-weekhead { padding: 10px 0 14px; border: 0; }
html[data-theme] .res-weeks { display: flex; gap: 6px; overflow-x: auto; margin: 0; padding: 0; scrollbar-width: none; }
html[data-theme] .res-week { flex: none; flex-direction: row; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 0; background: transparent; font-size: .92rem; }
html[data-theme] .res-week strong { font-weight: 600; color: var(--p-ink-soft); }
html[data-theme] .res-week.is-on { background: var(--p-ink); } html[data-theme] .res-week.is-on strong { color: var(--p-bg); }
html[data-theme] a.res-week:hover { background: var(--p-surface-2); } html[data-theme] a.res-week.is-on:hover { background: var(--p-ink); }
html[data-theme] .res-week.is-locked { border: 0; background: transparent; color: var(--p-ink-soft); }
html[data-theme] .res-week.is-locked svg { width: 15px; height: 15px; }
/* Danse de la semaine : grande photo, dégradé sombre en bas */
html[data-theme] .res-hero { min-height: 440px; border-radius: var(--p-r-lg); box-shadow: none; border: 0; background-color: var(--p-night); }
html[data-theme] .res-hero::after { background: linear-gradient(180deg, rgba(46, 43, 37, 0) 30%, rgba(46, 43, 37, .55) 62%, rgba(32, 30, 29, .92) 100%); }
html[data-theme] .res-hero h2 { font: 400 clamp(1.9rem, 8vw, 2.4rem)/1.05 var(--font-title); color: var(--p-surface); text-shadow: none; }
html[data-theme] .res-hero .eyebrow { color: var(--p-accent-300); }
html[data-theme] .res-hero__intent { font: 400 1.02rem/1.45 var(--font-body); color: #ece3d4; }
html[data-theme] .res-hero .btn--primary { background: var(--p-surface); color: var(--p-ink); }
html[data-theme] .res-hero .btn--primary:hover { background: var(--p-accent-100); }
/* Transmission : vignette ronde */
html[data-theme] .res-row__img { border-radius: 50%; width: 60px; height: 60px; border: 0; }
html[data-theme] .res-section { border-top: 0; padding-top: 22px; }
html[data-theme] .res-pager { margin: 18px 0 4px; }
/* Explorer : titre, segment, « Reprendre », grille de couvertures */
html[data-theme] .x-title { margin: 6px 0 14px; font-size: clamp(2.3rem, 10vw, 3rem); }
html[data-theme] .tabs--seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 0; padding: 4px; margin: 0 0 18px; background: var(--p-surface-2); border-radius: 999px; overflow: visible; }
html[data-theme] .tabs--seg .chip { justify-content: center; min-height: 42px; background: transparent; color: var(--p-ink-soft); font-weight: 600; white-space: nowrap; font-size: .88rem; padding: 0 8px; }
html[data-theme] .tabs--seg .chip[aria-current='true'] { background: var(--p-surface); color: var(--p-ink); box-shadow: var(--p-shadow-sm); }
html[data-theme] .resume-row { display: grid; grid-template-columns: 64px 1fr 44px; align-items: center; gap: 14px; padding: 10px 12px 10px 10px; margin: 0 0 22px; border-radius: var(--p-r-lg); background: var(--p-night); color: var(--p-surface); text-decoration: none; }
html[data-theme] .resume-row__img { width: 64px; height: 64px; border-radius: var(--p-r-md); background: var(--p-night-2) center / cover; }
html[data-theme] .resume-row__txt { display: grid; gap: 3px; min-width: 0; }
html[data-theme] .resume-row__txt .small { color: #dcd3c4; } html[data-theme] .resume-row__txt .small strong { color: var(--p-accent-300); }
html[data-theme] .resume-row__title { font: 400 1.1rem/1.2 var(--font-title); color: var(--p-surface); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html[data-theme] .resume-row__bar { display: block; height: 4px; border-radius: 999px; background: var(--p-night-2); overflow: hidden; margin-top: 4px; }
html[data-theme] .resume-row__bar i { display: block; height: 100%; background: var(--p-accent); border-radius: 999px; }
html[data-theme] .resume-row__play { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--p-accent-ink); color: var(--p-surface); font-size: .9rem; padding-left: 2px; }
html[data-theme] .resume-row:hover .resume-row__play { background: var(--p-accent-700); }
html[data-theme] .x-sec { align-items: baseline; margin-bottom: 10px; } html[data-theme] .x-sec h2 { margin: 0; }
html[data-theme] .xgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
@media (min-width: 760px) { html[data-theme] .xgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
html[data-theme] .xcover { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 5; border-radius: var(--p-r-lg); overflow: hidden; background-size: cover; background-position: center; color: var(--p-surface); text-decoration: none; isolation: isolate; }
html[data-theme] .xcover::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(32, 30, 29, 0) 45%, rgba(32, 30, 29, .82) 100%); }
html[data-theme] .xcover__txt { display: grid; gap: 2px; padding: 14px; }
html[data-theme] .xcover__txt strong { font: 400 1.12rem/1.15 var(--font-title); color: var(--p-surface); }
html[data-theme] .xcover__txt .small { color: #ece3d4; }
html[data-theme] .xcover:hover, html[data-theme] .xcover:focus-visible { transform: translateY(-2px); transition: transform .2s ease; }

/* ===================== ÉTAPE 3 · FICHE PROGRAMME (0.25.0) ===================== */
html[data-theme] .prog-hero { position: relative; display: flex; align-items: flex-end; min-height: 420px; border-radius: var(--p-r-lg); overflow: hidden; background-size: cover; background-position: center 30%; isolation: isolate; color: var(--p-surface); }
html[data-theme] .prog-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(32, 30, 29, 0) 35%, rgba(32, 30, 29, .55) 65%, rgba(32, 30, 29, .9) 100%); }
html[data-theme] .prog-hero__txt { padding: 22px; width: 100%; }
html[data-theme] .prog-hero h1 { margin: 4px 0 8px; font-size: clamp(2.1rem, 9vw, 3rem); color: var(--p-surface); }
html[data-theme] .prog-hero .eyebrow { color: var(--p-accent-300); }
html[data-theme] .prog-hero .small { color: #ece3d4; }
html[data-theme] .prog-hero .bar { background: rgba(249, 244, 237, .25); }
@media (max-width: 899px) { html[data-theme] .prog-hero { margin: -20px -16px 0; border-radius: 0 0 var(--p-r-lg) var(--p-r-lg); } }
/* Étapes en pastilles */
html[data-theme] .screen--prog .steps { gap: 4px; }
html[data-theme] .screen--prog .step { background: transparent; border: 0; padding: 12px 6px; border-radius: var(--p-r-md); }
html[data-theme] .screen--prog a.step:hover { background: var(--p-surface); }
html[data-theme] .screen--prog .step strong { font-weight: 600; }
html[data-theme] .screen--prog .step small { display: block; color: var(--p-ink-soft); font-size: .84rem; }
html[data-theme] .step__n { width: 40px; height: 40px; border: 0; font: 400 1.05rem var(--font-title); }
html[data-theme] .step__n--done { background: var(--p-night); color: var(--p-surface); }
html[data-theme] .step__n--open { background: var(--p-accent-ink); color: var(--p-surface); }
html[data-theme] .step__n--off { background: var(--p-surface-2); color: var(--p-ink-soft); }
html[data-theme] .step__n svg { width: 16px; height: 16px; }
html[data-theme] .step--off { opacity: 1; }
/* Bouton « Reprendre » et barre de prix collés en bas, au-dessus de la barre d'onglets */
html[data-theme] .sticky-cta { position: sticky; bottom: calc(var(--tabbar-h, 68px) + 26px + env(safe-area-inset-bottom)); z-index: 5; padding-top: 8px; }
html[data-theme] .sticky-cta .btn { box-shadow: var(--p-shadow-lg); }
html[data-theme] .pricebar { position: sticky; bottom: calc(var(--tabbar-h, 68px) + 26px + env(safe-area-inset-bottom)); z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 20px; border-radius: 999px; background: var(--p-night); color: var(--p-surface); box-shadow: var(--p-shadow-lg); }
html[data-theme] .pricebar__p { display: grid; } html[data-theme] .pricebar__p strong { font: 400 1.4rem/1.1 var(--font-title); color: var(--p-surface); }
html[data-theme] .pricebar__p .small { color: #dcd3c4; }
html[data-theme] .pricebar .btn--primary { min-width: 120px; }
/* « Ce que tu vas vivre » : liste numérotée */
html[data-theme] .numlist { list-style: none; counter-reset: n; padding: 0; margin: 0; display: grid; gap: 12px; }
html[data-theme] .numlist li { counter-increment: n; display: grid; grid-template-columns: 32px 1fr; gap: 12px; align-items: baseline; }
html[data-theme] .numlist li::before { content: counter(n); display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--p-accent-100); color: var(--p-accent-800); font: 400 1rem var(--font-title); }
html[data-theme] .sheet__promise { font: 400 1.15rem/1.45 var(--font-body); color: var(--p-ink); }
/* Formules : options compactes */
html[data-theme] .offer--option { padding: 0; background: var(--p-surface); border-radius: var(--p-r-lg); }
html[data-theme] .offer-opt { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px 10px; color: var(--p-ink); text-decoration: none; }
html[data-theme] .offer-opt__txt { display: grid; gap: 2px; } html[data-theme] .offer-opt__txt strong { font: 400 1.15rem var(--font-title); }
html[data-theme] .offer-opt__price { font: 400 1.5rem/1 var(--font-title); white-space: nowrap; text-align: right; } html[data-theme] .offer-opt__price small { display: block; font: 400 .78rem var(--font-body); color: var(--p-ink-soft); }
html[data-theme] .offer-opt:hover .offer-opt__price { color: var(--p-accent-700); }
html[data-theme] .offer-opt__more { padding: 0 20px 14px; font-size: .88rem; } html[data-theme] .offer-opt__more summary { cursor: pointer; color: var(--p-accent-700); font-weight: 600; }

/* ===================== ÉTAPE 4 · PAIEMENT ET PRATIQUE (0.26.0) ===================== */
html[data-theme] .co-title { margin: 6px 0 16px; font-size: clamp(2rem, 9vw, 2.6rem); }
html[data-theme] .co-line { display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center; padding: 12px; border-radius: var(--p-r-lg); background: var(--p-surface); }
html[data-theme] .co-line__img { display: grid; place-items: center; width: 64px; height: 64px; border-radius: var(--p-r-md); background: var(--p-accent-100) center / cover; color: var(--p-accent-700); }
html[data-theme] .co-line__txt { display: grid; gap: 2px; min-width: 0; } html[data-theme] .co-line__txt strong { font-weight: 700; }
html[data-theme] .co-line__price { font: 400 1.35rem var(--font-title); white-space: nowrap; }
html[data-theme] .co-promo .row { gap: 8px; } html[data-theme] .co-promo input { min-height: 48px; }
html[data-theme] .co-stripe { margin: 4px 4px 0; }
html[data-theme] .co-secure { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 10px 0 0; }
html[data-theme] .co-secure svg { width: 14px; height: 14px; }
/* Pratique : grande photo plein cadre */
html[data-theme] .prac-stage { position: relative; display: flex; align-items: flex-end; min-height: min(72vh, 620px); border-radius: var(--p-r-lg); overflow: hidden; background: var(--p-night) center 25% / cover no-repeat; isolation: isolate; color: var(--p-surface); }
html[data-theme] .prac-stage::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(32, 30, 29, .05) 30%, rgba(32, 30, 29, .6) 62%, rgba(32, 30, 29, .94) 100%); }
html[data-theme] .prac-stage__txt { width: 100%; padding: 24px 22px; }
html[data-theme] .prac-stage h1 { margin: 6px 0 10px; font-size: clamp(2.1rem, 9vw, 2.9rem); color: var(--p-surface); }
html[data-theme] .prac-stage .eyebrow { color: var(--p-accent-300); }
html[data-theme] .prac-stage .res-intent { color: #ece3d4; font: 400 1.02rem/1.5 var(--font-body); }
html[data-theme] .prac-stage__player { margin-top: 14px; } html[data-theme] .prac-stage__player audio { width: 100%; }
html[data-theme] .prac-stage__note { color: #dcd3c4; margin: 10px 0 0; }
@media (max-width: 899px) { html[data-theme] .prac-stage { margin: -20px -16px 0; border-radius: 0 0 var(--p-r-lg) var(--p-r-lg); } }
html[data-theme] .res-player { border-radius: var(--p-r-lg); overflow: hidden; background: var(--p-night); }
html[data-theme] .res-actions .btn--primary { min-height: 52px; padding: 0 26px; }

/* ===================== ÉTAPE 5 · RETRAITE, CERCLE, JOURNAL, CYCLE, CONNEXION (0.27.0) ===================== */
html[data-theme] .tabbar:empty { display: none; }
/* Retraite : grande photo pleine largeur, titre posé dessus */
html[data-theme] .screen--event .evt-hero { min-height: 400px; display: flex; flex-direction: column; justify-content: flex-end; padding: 22px; border-radius: var(--p-r-lg); background-size: cover; background-position: center; background-color: var(--p-night); border: 0; }
html[data-theme] .screen--event .evt-hero .eyebrow { color: var(--p-accent-300); }
html[data-theme] .screen--event .evt-hero h1 { color: var(--p-surface); font-size: clamp(2rem, 8.5vw, 2.8rem); }
html[data-theme] .evt-hero__sub { color: #ece3d4; font: 400 1.05rem/1.4 var(--font-body); }
@media (max-width: 899px) { html[data-theme] .screen--event .evt-hero { margin: -20px -16px 0; border-radius: 0 0 var(--p-r-lg) var(--p-r-lg); } }
html[data-theme] .evt-facts strong { font: 400 1.15rem/1.25 var(--font-title); }
/* Cercle : initiale ronde, cartes douces */
html[data-theme] .post header { display: flex; align-items: center; gap: 12px; }
html[data-theme] .post__av { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--p-accent-100); color: var(--p-accent-800); font: 400 1.05rem var(--font-title); }
html[data-theme] .post__who { display: grid; gap: 1px; }
html[data-theme] .post__quote { border-left: 3px solid var(--p-accent); border-radius: 0 var(--p-r-md) var(--p-r-md) 0; }
/* Cycle : anneau des saisons */
html[data-theme] .cyc-ring { position: relative; width: min(240px, 70vw); aspect-ratio: 1; margin: 8px auto 4px; }
html[data-theme] .cyc-ring svg { width: 100%; height: 100%; }
html[data-theme] .cyc-ring__bg { fill: none; stroke: var(--p-surface-2); stroke-width: 14; }
html[data-theme] .cyc-ring__fg { fill: none; stroke: var(--p-accent); stroke-width: 14; stroke-linecap: round; }
html[data-theme] .cyc-ring__c { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; gap: 2px; }
html[data-theme] .cyc-ring__c strong { font: 400 3.4rem/1 var(--font-title); color: var(--p-ink); }
html[data-theme] .cyc-ring__s { font-weight: 700; color: var(--p-accent-700); }
/* Connexion : photo d'ambiance + carte crème */
html[data-theme] .auth-photo { height: 300px; margin: -20px -16px -40px; border-radius: 0 0 var(--p-r-lg) var(--p-r-lg); background: var(--p-night) url('../programmes/sanctuaire/wide.jpg') center 35% / cover no-repeat; }
html[data-theme] .screen--auth .auth { position: relative; background: var(--p-bg); border-radius: var(--p-r-lg) var(--p-r-lg) 0 0; padding-top: 22px; }
@media (min-width: 900px) { html[data-theme] .auth-photo { margin: 0 0 -40px; border-radius: var(--p-r-lg); } }
html[data-theme] .post header { justify-content: flex-start; text-align: left; }
html[data-theme] .screen--auth { flex-direction: column; align-items: stretch; justify-content: flex-start; min-height: 0; }
@media (max-width: 899px) { html[data-theme] .screen--auth .auth { margin: 0 -16px; padding: 22px 16px 0; max-width: none; width: auto; } }

/* ===================== ÉTAPE 6 · BACK-OFFICE (0.28.0) ===================== */
/* Tableau de bord : « À faire aujourd’hui » + prochaine retraite en photo */
html[data-theme] .dash-top.has-next { display: grid; gap: 16px; align-items: stretch; }
@media (min-width: 1100px) { html[data-theme] .dash-top.has-next { grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); } }
html[data-theme] .dash-top .todo-today { margin: 0; }
html[data-theme] .next-evt { position: relative; display: flex; align-items: flex-end; min-height: 260px; border-radius: var(--p-r-lg); overflow: hidden; background: linear-gradient(160deg, var(--p-accent-700), var(--p-night)) center / cover; color: var(--p-surface); text-decoration: none; isolation: isolate; }
html[data-theme] .next-evt::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(32, 30, 29, 0) 35%, rgba(32, 30, 29, .88) 100%); }
html[data-theme] .next-evt__txt { display: grid; gap: 4px; padding: 20px; }
html[data-theme] .next-evt .eyebrow { color: var(--p-accent-300); } html[data-theme] .next-evt strong { font: 400 1.5rem/1.15 var(--font-title); color: var(--p-surface); } html[data-theme] .next-evt .small { color: #ece3d4; }
html[data-theme] .next-evt:hover strong { text-decoration: underline; }
/* Constructeur de programme : bandeau visuel */
html[data-theme] .b-banner { height: 180px; margin: 0 0 14px; border-radius: var(--p-r-lg); background: var(--p-night) center 30% / cover no-repeat; }
/* Ventes : carte sombre de l'essentiel */
html[data-theme] .biz-hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 18px; padding: 22px 24px; margin: 0 0 16px; border-radius: var(--p-r-lg); background: var(--p-night); color: var(--p-surface); }
html[data-theme] .biz-hero span { display: block; color: #c0b6a5; font-size: .85rem; }
html[data-theme] .biz-hero strong { font: 400 clamp(1.8rem, 3vw, 2.6rem)/1.1 var(--font-title); color: var(--p-surface); }
html[data-theme] .biz-hero div:first-child strong { color: var(--p-accent-300); }
/* Membres : fiche latérale */
html[data-theme] .m-split.has-side { display: grid; gap: 16px; }
@media (min-width: 1100px) { html[data-theme] .m-split.has-side { grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); } html[data-theme] .m-split .m-side { order: 2; position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow: auto; } }
html[data-theme] .m-side__bar { display: flex; gap: 8px; justify-content: flex-end; margin: 0 0 8px; }
html[data-theme] .m-side .crumbs { display: none; }
html[data-theme] .m-side h1 { font-size: 1.7rem; margin: 0 0 4px; }
html[data-theme] a.m-name[aria-current='true'] strong { color: var(--p-accent-700); text-decoration: underline; }
/* Studio : vignette photo sur les danses */
html[data-theme] .st-card__img { grid-column: 1 / -1; display: block; height: 120px; margin: -6px 0 6px -8px; border-radius: var(--p-r-md); background: var(--p-surface-2) center 30% / cover no-repeat; }
