/* NEO Bible — écrans de l'application (complète theme.css du thème NEO). */

/* ---------- Utilitaires ---------- */
.neo-ecran { width: 100%; }
.neo-pile { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.neo-pile--s { gap: 12px; }
.neo-pile--etroite { max-width: 820px; }
.neo-sp { flex: 1; }
.neo-centre { align-self: center; }
.neo-centre-t { text-align: center; }
.neo-petit { font-size: 13px; }
.neo-mobile, .neo-mobile-inline { display: none; }
.neo-bureau-inline { display: inline; }
@media (max-width: 1023px) { .neo-bureau { display: none !important; } .neo-mobile { display: block; } .neo-mobile-inline { display: inline; } .neo-bureau-inline { display: none !important; } }
.neo-ic-soleil { display: none; }
[data-theme="dark"] .neo-ic-lune { display: none; }
[data-theme="dark"] .neo-ic-soleil { display: inline-flex; }
.neo-rond .neo-ic-lune, .neo-rond .neo-ic-soleil { align-items: center; justify-content: center; }
.neo-entete-auto { position: absolute; top: 28px; right: clamp(24px, 4vw, 56px); z-index: 40; }
.neo-entete-auto .neo-avatar-btn__nom { display: none; }
@media (max-width: 1023px) { .neo-entete-auto { display: none; } }
.neo-menu-pop__mobile { display: none !important; }
@media (max-width: 1023px) { .neo-menu-pop__mobile { display: flex !important; } }
.neo-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-right: 230px; }
.neo-ecran--accueil .neo-tete, .neo-ecran--lecture .neo-tete, .neo-ecran--quiz .neo-tete { padding-right: 0; }
@media (max-width: 1023px) { .neo-tete { padding-right: 0; padding-top: 4px; } }
.neo-tete > div { min-width: 0; flex: 1 1 320px; }
.neo-sous--ic { display: flex; align-items: center; gap: 6px; }
.neo-titre-ligne { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.neo-titre-ligne > a, .neo-lien-ss { font-size: 15px; font-weight: 700; text-decoration: none; color: var(--neo-link); }
.neo-h4 { margin: 0 0 12px; font: 800 17px/1.25 var(--neo-f-titre); color: var(--neo-ink); }
.neo-h3--ic { display: flex; align-items: center; gap: 12px; }
.neo-kicker--gris { color: var(--neo-muted); }
.neo-kicker--vert { color: #0B6A4C; }
[data-theme="dark"] .neo-kicker--vert { color: #7FE6C1; }
.neo-lien-mini { font-size: 13px; font-weight: 700; color: var(--neo-link); }
.neo-lien--mini { font-size: 13px; text-decoration: none; }
.neo-lien--droite { align-self: flex-end; font-size: 14px; }
.neo-lien-ic { border: 0; background: transparent; color: var(--neo-muted); cursor: pointer; width: 36px; height: 36px; border-radius: 18px; display: inline-flex; align-items: center; justify-content: center; }
.neo-lien-ic:hover { background: var(--neo-surf2); color: var(--neo-danger); }
.neo-ligne-btns { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.neo-ligne-btns--centre { justify-content: center; }
.neo-btn--bleu-txt { color: #2447C9 !important; }
.neo-btn--nuit { background: #14183A; color: #fff !important; }
.neo-btn--nuit:hover { background: #2A2F55; }
.neo-btn--ok { background: var(--neo-ok-bg); color: var(--neo-ok-fg) !important; cursor: default; }
.neo-btn--ok:hover { background: var(--neo-ok-bg); }
.neo-btn--m46 { min-height: 46px; padding: 0 20px; font-size: 14px; border-radius: 23px; }
.neo-btn--auto { align-self: flex-start; }
.neo-btn--contour-danger { background: transparent; color: var(--neo-danger) !important; box-shadow: inset 0 0 0 1.5px var(--neo-danger-line); }
.neo-btn--contour-danger:hover { background: var(--neo-ko-bg); }
.neo-chip--teinte { align-self: flex-start; background: rgba(255, 255, 255, .18); color: #fff; letter-spacing: .06em; padding: 6px 12px; }
.neo-chip--nuit { align-self: flex-start; background: #14183A; color: #fff; letter-spacing: .06em; padding: 6px 12px; }
.neo-chip--sombre { align-self: flex-start; background: rgba(20, 24, 58, .14); color: #14183A; letter-spacing: .06em; padding: 6px 12px; }
.neo-point--bleu { background: var(--neo-bleu); }
.neo-c-bleu { color: #2447C9; } .neo-c-or { color: #8A5A00; } .neo-c-vert { color: #0B6A4C; } .neo-c-violet { color: #4A32B8; }
[data-theme="dark"] .neo-c-bleu { color: #7C9CFF; } [data-theme="dark"] .neo-c-or { color: #FFC83D; } [data-theme="dark"] .neo-c-vert { color: #7FE6C1; } [data-theme="dark"] .neo-c-violet { color: #C6B8FF; }
.neo-barre--fine { height: 6px; border-radius: 3px; }
.neo-barre--or > span { background: #FFB020; }
.neo-radio { flex: none; width: 20px; height: 20px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--neo-muted); display: inline-block; }
[aria-checked="true"] > .neo-radio, [aria-checked="true"] .neo-radio { box-shadow: inset 0 0 0 6px var(--neo-bleu); }
.neo-input--court { width: 140px; }
.neo-input--mono { font-family: ui-monospace, Menlo, monospace; letter-spacing: .06em; }
.neo-carte--compacte { padding: 18px; border-radius: 24px; }
.neo-carte--noter { background: var(--neo-warn-bg); box-shadow: none; color: var(--neo-ink); }
.neo-carte--noter .neo-h3 { display: flex; align-items: center; gap: 8px; color: var(--neo-warn-fg); }
.neo-prose p { margin: 10px 0 0; font-size: 16px; line-height: 1.7; color: var(--neo-ink); }
.neo-prose ul { margin: 10px 0 0; padding-left: 20px; line-height: 1.7; }
.neo-prose em { font-style: italic; }
.neo-pastilles { display: flex; flex-wrap: wrap; gap: 8px; }
.neo-pastille { min-height: 38px; padding: 0 14px; border-radius: 19px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; text-decoration: none !important; background: var(--neo-surf2); color: var(--neo-ink) !important; }
.neo-pastille:hover { background: var(--neo-line); }
.neo-pastille--bleue { background: var(--neo-soft); color: var(--neo-link) !important; }

/* ---------- Héros colorés ---------- */
.neo-hero { position: relative; overflow: hidden; border-radius: 28px; padding: 40px; display: flex; flex-direction: column; justify-content: flex-end; gap: 16px; text-decoration: none; }
.neo-hero > * { position: relative; }
.neo-hero--bleu { background: var(--neo-bleu); color: #fff !important; }
.neo-hero__f1 { position: absolute !important; top: -80px; right: -70px; width: 280px; height: 280px; border-radius: 50%; background: #2447C9; }
.neo-hero__f2 { position: absolute !important; top: 44px; right: 56px; width: 92px; height: 92px; border-radius: 50%; background: #FFC83D; }
.neo-hero__f3 { position: absolute !important; top: 170px; right: -20px; width: 130px; height: 130px; border-radius: 130px 0 0 0; background: #6587F7; }
.neo-hero__f4 { position: absolute !important; right: 30px; bottom: 30px; width: 90px; height: 90px; border-radius: 28px; background: #12B5B0; transform: rotate(12deg); }
.neo-hero__salut { align-self: flex-start; background: rgba(255, 255, 255, .16); padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 600; }
.neo-hero__titre { margin: 0; font: 800 clamp(40px, 4.6vw, 62px)/.98 var(--neo-f-titre); letter-spacing: -.03em; max-width: 480px; color: #fff; }
.neo-hero__titre--m { font-size: clamp(24px, 2.6vw, 34px); line-height: 1.1; max-width: 560px; }
.neo-hero__texte { margin: 0; font-size: 17px; line-height: 1.5; max-width: 420px; color: #EEF2FF; }
.neo-hero__verset { font: 16px/1.5 var(--neo-f-bible); color: #EEF2FF; max-width: 460px; }
.neo-hero__btns { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- Accueil ---------- */
.neo-accueil { display: flex; flex-direction: column; gap: 24px; }
.neo-accueil__duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 20px; }
.neo-accueil .neo-hero { min-height: 380px; }
.neo-vdj { position: relative; overflow: hidden; min-height: 380px; border-radius: 28px; background: #FFC83D; color: #14183A; padding: 36px; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.neo-vdj > * { position: relative; }
.neo-vdj__f { position: absolute !important; right: -70px; bottom: -80px; width: 220px; height: 220px; border-radius: 50%; border: 28px solid #FFAE12; }
.neo-vdj__k { font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #4D3300; }
.neo-vdj__v { margin: 0; font: 500 clamp(24px, 2.3vw, 31px)/1.35 var(--neo-f-bible); letter-spacing: -.01em; }
.neo-vdj__bas { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.neo-vdj__ref { font-size: 15px; font-weight: 700; color: #14183A !important; padding: 10px 0; }
.neo-vdj__btn { width: 44px; height: 44px; border: 0; border-radius: 22px; background: rgba(255, 255, 255, .65); color: #14183A; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.neo-vdj__btn[aria-pressed="true"] { background: #fff; }
.neo-raccourcis { display: none; }
.neo-raccourcis__g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.neo-raccourcis__g a { padding: 14px; border-radius: 22px; background: var(--neo-surf); display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--neo-ink) !important; box-shadow: inset 0 0 0 1px var(--neo-line); }
.neo-raccourcis__g a > span { width: 40px; height: 40px; border-radius: 13px; display: flex; align-items: center; justify-content: center; color: #fff; margin-bottom: 14px; }
.neo-raccourcis__g b { font-size: 15px; }
.neo-raccourcis__g small { font-size: 12px; color: var(--neo-muted); line-height: 1.3; }
.neo-reprendre { display: flex; align-items: center; gap: 20px; padding: 16px; border-radius: 24px; text-decoration: none !important; background: var(--neo-surf); color: var(--neo-ink) !important; box-shadow: inset 0 0 0 1px var(--neo-line); flex-wrap: wrap; }
.neo-tuile { position: relative; overflow: hidden; flex: none; width: 88px; height: 88px; border-radius: 18px; background: var(--fam, var(--neo-bleu)); display: flex; align-items: flex-end; padding: 10px; }
.neo-tuile::after { content: ''; position: absolute; right: -26px; bottom: -26px; width: 70px; height: 70px; border-radius: 50%; background: rgba(0, 0, 0, .18); }
.neo-tuile b { position: relative; z-index: 1; font: 800 30px/1 var(--neo-f-titre); color: #fff; }
.neo-tuile--s { width: 44px; height: 44px; border-radius: 12px; padding: 6px; }
.neo-tuile--s b { font-size: 15px; }
.neo-tuile--xs { width: 36px; height: 36px; border-radius: 10px; padding: 0; align-items: center; justify-content: center; }
.neo-tuile--xs::after { display: none; }
.neo-tuile--xs b { font-size: 13px; }
.neo-reprendre__txt { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.neo-reprendre__k { font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--neo-link); }
.neo-reprendre__k--m, .neo-reprendre__sec, .neo-reprendre__play { display: none; }
.neo-reprendre__txt b { font-size: 19px; }
.neo-reprendre__prog { display: flex; align-items: center; gap: 10px; max-width: 480px; }
.neo-reprendre__prog .neo-barre { flex: 1; }
.neo-reprendre__prog small { font-size: 13px; font-weight: 600; color: var(--neo-muted); white-space: nowrap; }
.neo-une__g { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 16px; }
.neo-une__c { display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; text-decoration: none !important; background: var(--neo-surf); color: var(--neo-ink) !important; box-shadow: inset 0 0 0 1px var(--neo-line); }
.neo-une__img { position: relative; overflow: hidden; height: 148px; display: flex; align-items: flex-end; padding: 16px; }
.neo-une__img b { position: relative; font: 800 48px/.9 var(--neo-f-titre); }
.neo-une__bas { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.neo-une__bas b { font-size: 16px; line-height: 1.3; }
.neo-une__bas .neo-chip { align-self: flex-start; }
.neo-accueil__cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 20px; }
.neo-carte-action { display: flex; align-items: center; gap: 16px; padding: 20px; border-radius: 24px; flex-wrap: wrap; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); }
.neo-carte-action__ic { flex: none; width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: var(--neo-soft); color: var(--neo-link); }
.neo-carte-action__ic--wa { background: #1FC79A; color: #14183A; }
.neo-carte-action__t { flex: 1 1 180px; display: flex; flex-direction: column; gap: 2px; }
.neo-carte-action__t b { font-size: 16px; }
.neo-carte-action__t small { font-size: 14px; color: var(--neo-muted); }
@media (max-width: 1023px) {
	.neo-accueil { gap: 22px; }
	.neo-accueil__duo { display: contents; }
	.neo-accueil .neo-hero { order: 1; min-height: 350px; padding: 24px; }
	.neo-accueil .neo-hero__titre { font-size: 42px; max-width: 260px; }
	.neo-accueil .neo-hero__f2 { top: 40px; right: 30px; width: 70px; height: 70px; }
	.neo-raccourcis { display: block; order: 2; }
	.neo-reprendre { order: 3; flex-wrap: nowrap; gap: 14px; padding: 12px; }
	.neo-une { order: 4; }
	.neo-vdj { order: 5; min-height: 0; padding: 24px; }
	.neo-accueil__cartes { order: 6; }
	.neo-accueil > .neo-bandeau { order: 0; }
	.neo-reprendre__k { display: none; }
	.neo-reprendre__k--m, .neo-reprendre__sec { display: block; }
	.neo-reprendre__sec { font-size: 13px; color: var(--neo-muted); }
	.neo-reprendre__btn { display: none; }
	.neo-reprendre__play { display: flex; flex: none; width: 48px; height: 48px; border-radius: 24px; background: var(--neo-bleu); color: #fff; align-items: center; justify-content: center; }
	.neo-reprendre__txt { flex: 1 1 auto; }
	.neo-reprendre__txt b { font-size: 17px; }
	.neo-une__g { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 0 16px 6px; gap: 12px; scroll-padding-left: 16px; }
	.neo-une__c { flex: 0 0 190px; scroll-snap-align: start; }
	.neo-une__img { height: 124px; }
	.neo-carte-action { flex-wrap: nowrap; padding: 16px; }
}

/* ---------- Parcours ---------- */
.neo-puce-version { min-height: 44px; padding: 0 16px; border-radius: 22px; display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; text-decoration: none !important; background: var(--neo-soft); color: var(--neo-link) !important; }
.neo-parcours__haut { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 20px; }
@media (max-width: 1100px) { .neo-parcours__haut { grid-template-columns: minmax(0, 1fr); } }
.neo-hero--reprendre { min-height: 250px; padding: 28px; gap: 12px; }
.neo-stats4 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.neo-stat { padding: 18px; border-radius: 22px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; justify-content: space-between; gap: 18px; min-height: 118px; }
.neo-stat b { font: 800 30px/1 var(--neo-f-titre); }
.neo-stat span { font-size: 13px; color: var(--neo-ink); }
.neo-stats4--grand .neo-stat { min-height: 178px; padding: 22px; }
.neo-stats4--grand .neo-stat b { font-size: 40px; margin-top: auto; }
.neo-parcours__outils { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.neo-recherche-barre--livres { max-width: 450px; }
.neo-famille { display: flex; flex-direction: column; gap: 14px; }
.neo-famille__t { margin: 6px 0 0; display: flex; align-items: center; gap: 12px; font: 800 24px var(--neo-f-titre); }
.neo-famille__t small { font: 500 14px var(--neo-f-ui); color: var(--neo-muted); }
.neo-livres-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(168px, 100%), 1fr)); gap: 12px; }
.neo-livre-carte { position: relative; padding: 12px 14px 14px; border-radius: 18px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; gap: 4px; text-decoration: none !important; color: var(--neo-ink) !important; min-height: 140px; transition: transform .15s ease-out; }
.neo-livre-carte:hover { transform: translateY(-2px); }
.neo-livre-carte.is-cours { box-shadow: inset 0 0 0 2px var(--neo-bleu); }
.neo-livre-carte.is-lock { color: var(--neo-muted) !important; }
.neo-livre-carte.is-lock b { color: var(--neo-muted); }
.neo-livre-carte__haut { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.neo-livre-carte__abr { min-width: 40px; height: 40px; padding: 0 6px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--fam); color: var(--fam-fg); font: 800 15px var(--neo-f-titre); }
.neo-livre-carte.is-lock .neo-livre-carte__abr { opacity: .55; }
.neo-livre-carte__lock { width: 26px; height: 26px; border-radius: 13px; background: var(--neo-surf2); display: flex; align-items: center; justify-content: center; color: var(--neo-muted); }
.neo-livre-carte__lock.is-ok { background: var(--neo-ok-bg); color: var(--neo-ok-fg); }
.neo-livre-carte b { font-size: 16px; line-height: 1.25; }
.neo-livre-carte small { font-size: 13px; color: var(--neo-muted); }
.neo-livre-carte .neo-barre { margin-top: auto; }
.neo-livre-carte--notice { min-height: 120px; }
@media (max-width: 1023px) { .neo-livres-g { grid-template-columns: repeat(2, minmax(0, 1fr)); } .neo-stats4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .neo-parcours__outils .neo-segments { width: 100%; } .neo-parcours__outils .neo-segments button { flex: 1; padding: 0 8px; font-size: 13px; } }

/* ---------- Livre ---------- */
.neo-livre-hero { position: relative; overflow: hidden; border-radius: 28px; padding: 32px; background: var(--fam); color: var(--fam-fg); display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; min-height: 220px; }
.neo-livre-hero > * { position: relative; }
.neo-livre-hero__f1 { position: absolute !important; right: -60px; top: -90px; width: 290px; height: 290px; border-radius: 50%; background: rgba(0, 0, 0, .18); }
.neo-livre-hero__f2 { position: absolute !important; right: 120px; top: 40px; width: 60px; height: 60px; border-radius: 50%; background: #FFC83D; }
.neo-livre-hero__f3 { position: absolute !important; right: 40px; bottom: -70px; width: 140px; height: 140px; border-radius: 50%; background: #12B5B0; }
.neo-livre-hero__txt { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.neo-livre-hero__titre { margin: 0; font: 800 clamp(40px, 5vw, 58px)/1 var(--neo-f-titre); letter-spacing: -.03em; color: inherit; }
.neo-livre-hero p { margin: 0; font-size: 16px; opacity: .92; }
.neo-livre-hero__prog { display: flex; align-items: center; gap: 12px; }
.neo-livre-hero__prog .neo-barre { width: min(370px, 50vw); }
.neo-livre-hero__btn { z-index: 1; }
.neo-deux-col { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.neo-deux-col__side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 24px; }
@media (max-width: 1180px) { .neo-deux-col { grid-template-columns: minmax(0, 1fr); } .neo-deux-col__side { position: static; } }
.neo-chapitres { list-style: none; margin: 0; padding: 0; border-radius: 24px; overflow: hidden; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); }
.neo-chapitres.is-replie [data-replie] { display: none; }
.neo-ch a { display: flex; align-items: center; gap: 16px; padding: 14px 20px; text-decoration: none !important; border-bottom: 1px solid var(--neo-line); color: var(--neo-ink) !important; }
.neo-ch:last-child a { border-bottom: 0; }
.neo-ch a:hover { background: var(--neo-surf2); }
.neo-ch--cours a { background: var(--neo-soft); }
.neo-ch--verrouille a { opacity: .72; }
.neo-ch__n { flex: none; width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font: 800 17px var(--neo-f-titre); background: var(--neo-surf2); color: var(--neo-muted); }
.neo-ch--lu .neo-ch__n { background: #22B07D; color: #fff; }
.neo-ch--cours .neo-ch__n { background: var(--neo-bleu); color: #fff; }
.neo-ch__n--quiz { background: #FFC83D !important; color: #14183A !important; border-radius: 22px; }
.neo-ch--quiz a { background: var(--neo-quiz-bg); opacity: 1; }
.neo-ch__t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.neo-ch__t b { font-size: 16px; }
.neo-ch__t span { font-size: 14px; color: var(--neo-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.neo-ch--quiz .neo-ch__t span { white-space: normal; font-size: 13px; }
.neo-ch__e { flex: none; min-height: 30px; padding: 0 12px; border-radius: 15px; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--neo-muted); }
.neo-ch--lu .neo-ch__e { background: var(--neo-ok-bg); color: var(--neo-ok-fg); }
.neo-ch--cours .neo-ch__e { background: var(--neo-bleu); color: #fff; }
.neo-ch__e--lock { background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); color: var(--neo-ink); }
.neo-ch__e--ok { background: var(--neo-ok-bg); color: var(--neo-ok-fg); }
.neo-ch__e--bleu { background: var(--neo-bleu); color: #fff; }
.neo-ch__e--warn { background: var(--neo-warn-bg); color: var(--neo-warn-fg); }
.neo-ch__e--gris { background: var(--neo-surf2); }
.neo-etapes { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.neo-etapes li { display: flex; gap: 12px; font-size: 14px; line-height: 1.5; color: var(--neo-ink); }
.neo-etapes li > span { flex: none; width: 26px; height: 26px; border-radius: 13px; background: var(--neo-soft); color: var(--neo-link); font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.neo-etapes--retenir li { font-size: 16px; }
.neo-carte-version { padding: 18px 20px; border-radius: 22px; display: flex; align-items: center; gap: 14px; background: var(--neo-soft); color: var(--neo-link) !important; text-decoration: none !important; }
.neo-carte-version span { flex: 1; display: flex; flex-direction: column; }
.neo-carte-version small { font-size: 13px; }
@media (max-width: 1023px) { .neo-ch a { padding: 12px 14px; gap: 12px; } .neo-ch__e { padding: 0 8px; } .neo-ch__t span { font-size: 13px; } .neo-livre-hero { padding: 22px; min-height: 0; } }

/* ---------- Lecture ---------- */
.neo-lecture, .neo-quiz { display: flex; flex-direction: column; gap: 18px; }
.neo-lecture__barre { display: flex; align-items: center; gap: 10px; min-height: 48px; }
.neo-ariane { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--neo-muted); flex-wrap: wrap; min-width: 0; }
.neo-ariane a { color: var(--neo-muted) !important; text-decoration: none; }
.neo-ariane a:hover { text-decoration: underline; }
.neo-ariane b { color: var(--neo-ink); }
.neo-ariane-m { display: none; }
.neo-pilule-v { min-height: 44px; padding: 0 16px; border-radius: 22px; display: inline-flex; align-items: center; font-size: 13px; font-weight: 800; text-decoration: none !important; background: var(--neo-surf); color: var(--neo-link) !important; box-shadow: inset 0 0 0 1px var(--neo-line); }
.neo-rond--aa { font: 800 15px var(--neo-f-ui); }
.neo-rond--marque.is-on { background: var(--neo-bleu); color: #fff !important; box-shadow: none; }
.neo-menu-pop--aa { width: 220px; padding: 14px; }
.neo-aa { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; }
.neo-aa button { width: 48px; height: 44px; border: 0; border-radius: 14px; background: var(--neo-surf2); color: var(--neo-ink); font-weight: 800; cursor: pointer; }
.neo-lecture__grille { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.neo-lecture__carte { position: relative; padding: clamp(20px, 3.4vw, 48px); border-radius: 28px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.neo-lecture__side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 24px; }
.neo-lecture__prog { height: 6px; }
.neo-lecture__meta { align-self: flex-start; padding: 7px 12px; }
.neo-lecture__titre { margin: 0; font: 800 clamp(30px, 3.6vw, 40px)/1.08 var(--neo-f-titre); letter-spacing: -.02em; color: var(--neo-ink); }
.neo-ouverture { padding: 16px 18px; border-radius: 18px; background: var(--neo-soft); }
.neo-ouverture p { margin: 6px 0 0; font-size: 17px; line-height: 1.55; color: var(--neo-ink); }
.neo-ruban { position: absolute; top: -2px; right: 40px; width: 20px; height: 34px; background: var(--neo-bleu); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 76%, 0 100%); }
.neo-bandeau--jaune { background: #FFF4CC; color: #4D3300; }
[data-theme="dark"] .neo-bandeau--jaune { background: #2A2410; color: #FFE08A; }
.neo-texte { display: flex; flex-direction: column; gap: 26px; }
.neo-sec__tete { all: unset; display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; cursor: default; }
.neo-sec__num, .neo-sec__chev, .neo-sec__ref-m { display: none; }
.neo-sec__etat:empty { display: none; }
.neo-sec__etat { display: none; }
.neo-sec__titre { margin: 0; font: 800 24px/1.2 var(--neo-f-titre); color: var(--neo-ink); }
.neo-sec__titre small { font: 700 13px var(--neo-f-ui); color: var(--neo-link); margin-left: 8px; }
.neo-sec__corps { margin-top: 12px; }
.neo-versets { margin: 0; font-size: var(--neo-texte-bible); line-height: 1.75; color: var(--neo-ink); }
.neo-v { border-radius: 4px; scroll-margin-top: 140px; transition: background .2s ease-out; }
.neo-v__n { font: 700 .62em var(--neo-f-ui); color: var(--neo-bleu); margin-right: 3px; vertical-align: .55em; line-height: 0; }
[data-theme="dark"] .neo-v__n { color: #7C9CFF; }
.sans-numeros .neo-v__n { display: none; }
.neo-hl { padding: 2px 0; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.neo-hl--jaune { background: var(--neo-hl-jaune); } .neo-hl--vert { background: var(--neo-hl-vert); } .neo-hl--bleu { background: var(--neo-hl-bleu); } .neo-hl--rose { background: var(--neo-hl-rose); } .neo-hl--violet { background: var(--neo-hl-violet); }
.sans-surlignages .neo-v.neo-hl { background: transparent; }
.neo-v.is-cible { box-shadow: 0 0 0 3px rgba(53, 99, 245, .35); background: var(--neo-soft); }
.neo-v.is-favori .neo-v__n::after { content: '★'; margin-left: 2px; color: #FFB020; }
.neo-v__note { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin: 0 4px; padding: 0; border: 0; border-radius: 10px; background: var(--neo-bleu); color: #fff; cursor: pointer; vertical-align: middle; }
.neo-note-inline { margin-top: 14px; padding: 14px 16px; border-radius: 18px; background: var(--neo-soft); transition: box-shadow .2s; }
.neo-note-inline.is-flash { box-shadow: 0 0 0 3px var(--neo-bleu); }
.neo-note-inline__t { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.neo-note-inline__t small { font-size: 12px; font-weight: 700; color: var(--neo-link); }
.neo-note-inline p { margin: 6px 0 0; font-size: 15px; line-height: 1.55; color: var(--neo-ink); }
.neo-sec__lu { display: none; margin-top: 16px; }
.neo-sec__fin { display: block; height: 1px; }
.neo-fin-ch { display: flex; flex-direction: column; gap: 28px; margin-top: 10px; }
.neo-fin-ch__sep { display: none; }
.neo-bloc-fin { position: relative; overflow: hidden; padding: 24px; border-radius: 24px; display: flex; flex-direction: column; gap: 12px; }
.neo-bloc-fin > * { position: relative; }
.neo-bloc-fin--moi { background: #F3EEFF; box-shadow: inset 0 0 0 1px #E2D8FF; }
[data-theme="dark"] .neo-bloc-fin--moi { background: #221A4A; box-shadow: inset 0 0 0 1px #3A2F7A; }
.neo-bloc-fin--suite { background: var(--neo-soft); }
.neo-bloc-fin__f { position: absolute !important; right: -40px; bottom: -50px; width: 120px; height: 120px; border-radius: 50%; background: rgba(124, 92, 250, .14); }
.neo-bloc-fin__f2 { position: absolute !important; right: -20px; bottom: -40px; width: 110px; height: 110px; border-radius: 50%; background: rgba(53, 99, 245, .14); }
.neo-bloc-fin__t { margin: 0; display: flex; align-items: center; gap: 12px; font: 800 20px var(--neo-f-titre); color: var(--neo-ink); }
.neo-bloc-fin__ic { width: 32px; height: 32px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: #7C5CFA; color: #fff; font: 800 15px var(--neo-f-titre); }
.neo-bloc-fin__ic--bleu { background: var(--neo-bleu); }
.neo-bloc-fin__titre { font: 800 22px var(--neo-f-titre); color: var(--neo-ink); }
.neo-bloc-fin p { margin: 0; color: var(--neo-ink); line-height: 1.6; max-width: 560px; }
.neo-question { padding: 14px 16px; border-radius: 18px; background: var(--neo-surf); display: flex; flex-direction: column; gap: 12px; }
.neo-question__l { display: flex; align-items: center; gap: 12px; }
.neo-question__l p { flex: 1; margin: 0; font-size: 15px; line-height: 1.5; }
.neo-question__btn { flex: none; width: 36px; height: 36px; border: 0; border-radius: 18px; background: #7C5CFA; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.neo-question__m { display: none; }
.neo-question__zone { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.neo-question__zone .neo-textarea { min-height: 80px; box-shadow: inset 0 0 0 2px #7C5CFA; }
.neo-fin-ch__btns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 22px; border-top: 1px solid var(--neo-line); }
.neo-fin-ch__btns .neo-btn { width: 100%; }
.neo-lecture__bas-m { display: none; }
.neo-liste-sec { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.neo-liste-sec a { min-height: 46px; padding: 0 10px; border-radius: 14px; display: flex; align-items: center; gap: 10px; text-decoration: none !important; color: var(--neo-ink) !important; font-size: 14px; font-weight: 600; }
.neo-liste-sec a:hover { background: var(--neo-surf2); }
.neo-liste-sec a.is-cours { background: var(--neo-soft); font-weight: 800; }
.neo-liste-sec__n { flex: none; width: 24px; height: 24px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; background: var(--neo-surf2); color: var(--neo-muted); }
.neo-liste-sec a.is-lu .neo-liste-sec__n { background: #22B07D; color: #fff; }
.neo-liste-sec a.is-cours .neo-liste-sec__n { background: var(--neo-bleu); color: #fff; }
.neo-liste-sec__t { flex: 1; min-width: 0; }
.neo-liste-sec small { font-size: 11px; color: var(--neo-muted); }
.neo-sur-ch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.neo-sur-ch > span { min-height: 34px; padding: 0 10px; border-radius: 12px; background: var(--neo-surf2); display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; }
.neo-pastilles-sec { display: none; }
/* Barre de sélection */
.neo-selbar { position: absolute; z-index: 90; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.neo-selbar__barre { display: flex; align-items: center; gap: 4px; padding: 6px; border-radius: 22px; background: #14183A; box-shadow: 0 16px 30px -12px rgba(0, 0, 0, .5); white-space: nowrap; }
.neo-selbar__couleur, .neo-selbar__chev, .neo-selbar__b, .neo-selbar__c, .neo-selbar__eff { border: 0; cursor: pointer; font: 700 13px var(--neo-f-ui); color: #fff; background: transparent; }
.neo-selbar__couleur { width: 40px; height: 40px; border-radius: 20px; display: flex; align-items: center; justify-content: center; }
.neo-selbar__pastille { width: 26px; height: 26px; border-radius: 13px; box-shadow: 0 0 0 2px #fff; }
.neo-selbar__chev { width: 24px; height: 40px; display: flex; align-items: center; justify-content: center; }
.neo-selbar__sep { width: 1px; height: 26px; background: rgba(255, 255, 255, .22); margin: 0 4px; }
.neo-selbar__b { min-height: 40px; padding: 0 12px; border-radius: 18px; display: inline-flex; align-items: center; gap: 6px; }
.neo-selbar__b svg { display: none; }
.neo-selbar__b:hover { background: rgba(255, 255, 255, .12); }
.neo-selbar__b--note { background: var(--neo-bleu); }
.neo-selbar__palette { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 22px; background: #14183A; box-shadow: 0 16px 30px -12px rgba(0, 0, 0, .5); }
.neo-selbar__c { width: 28px; height: 28px; border-radius: 14px; }
.neo-selbar__c.neo-hl--jaune { background: #FFE27A; } .neo-selbar__c.neo-hl--vert { background: #9DEBC6; } .neo-selbar__c.neo-hl--bleu { background: #B9D0FF; } .neo-selbar__c.neo-hl--rose { background: #FFC2DA; } .neo-selbar__c.neo-hl--violet { background: #DACDFF; }
.neo-selbar__pastille.neo-hl--jaune { background: #FFE27A; } .neo-selbar__pastille.neo-hl--vert { background: #9DEBC6; } .neo-selbar__pastille.neo-hl--bleu { background: #B9D0FF; } .neo-selbar__pastille.neo-hl--rose { background: #FFC2DA; } .neo-selbar__pastille.neo-hl--violet { background: #DACDFF; }
.neo-selbar__c[aria-checked="true"] { box-shadow: 0 0 0 2px #14183A, 0 0 0 4px #fff; }
.neo-selbar__eff { width: 28px; height: 28px; border-radius: 14px; background: rgba(255, 255, 255, .14); display: flex; align-items: center; justify-content: center; }
@media (max-width: 1180px) { .neo-lecture__grille { grid-template-columns: minmax(0, 1fr); } .neo-lecture__side { position: static; } }
@media (max-width: 1023px) {
	.neo-ecran--lecture, .neo-ecran--quiz { margin-top: -6px; }
	.neo-ariane { display: none; }
	.neo-ariane-m { display: flex; flex-direction: column; min-width: 0; }
	.neo-ariane-m small { font-size: 12px; color: var(--neo-muted); }
	.neo-ariane-m b { font: 800 18px var(--neo-f-titre); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.neo-lecture__barre { position: sticky; top: 0; z-index: 30; background: var(--neo-bg); margin: 0 -16px; padding: 10px 16px; }
	.neo-lecture__barre .neo-rond { width: 44px; height: 44px; }
	.neo-pastilles-sec { display: flex; gap: 6px; overflow-x: auto; margin: -8px -16px 0; padding: 0 16px 4px; position: sticky; top: 64px; z-index: 29; background: var(--neo-bg); }
	.neo-pastilles-sec a { flex: 1 0 44px; min-height: 34px; border-radius: 17px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; text-decoration: none; background: var(--neo-surf); color: var(--neo-ink) !important; box-shadow: inset 0 0 0 1px var(--neo-line); }
	.neo-pastilles-sec a.is-lu { background: #22B07D; color: #fff !important; box-shadow: none; }
	.neo-pastilles-sec a.is-cours { background: var(--neo-bleu); color: #fff !important; box-shadow: none; }
	.neo-lecture__carte { padding: 0; background: transparent; box-shadow: none; gap: 12px; }
	.neo-lecture__carte > .neo-lecture__prog, .neo-lecture__carte > .neo-lecture__meta, .neo-lecture__titre, .neo-ouverture { display: none; }
	.neo-lecture__side { display: none; }
	.neo-texte { gap: 12px; }
	.neo-sec { border-radius: 24px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); overflow: hidden; }
	.neo-sec.is-ouverte { box-shadow: inset 0 0 0 2px var(--neo-bleu); }
	.neo-sec.is-lu.is-ouverte { box-shadow: inset 0 0 0 1px var(--neo-line); }
	.neo-sec__tete { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 4px 12px; width: 100%; padding: 16px; box-sizing: border-box; cursor: pointer; }
	.neo-sec.is-ouverte .neo-sec__tete { grid-template-columns: 1fr; padding-bottom: 0; }
	.neo-sec__num { display: flex; grid-row: span 2; width: 36px; height: 36px; border-radius: 18px; align-items: center; justify-content: center; background: var(--neo-surf2); font-size: 13px; font-weight: 800; color: var(--neo-muted); }
	.neo-sec.is-ouverte .neo-sec__num, .neo-sec.is-ouverte .neo-sec__chev { display: none; }
	.neo-sec__etat { display: block; }
	.neo-sec:not(.is-ouverte) .neo-sec__etat { display: none; }
	.neo-sec__titre { font-size: 17px; }
	.neo-sec.is-ouverte .neo-sec__titre { font-size: 22px; }
	.neo-sec:not(.is-ouverte) .neo-sec__titre small { display: none; }
	.neo-sec__ref-m { display: block; font-size: 12px; color: var(--neo-muted); }
	.neo-sec.is-ouverte .neo-sec__ref-m { display: none; }
	.neo-sec__chev { display: flex; grid-row: span 2; color: var(--neo-muted); }
	.neo-sec__corps { display: none; padding: 0 16px 16px; }
	.neo-sec.is-ouverte .neo-sec__corps { display: block; }
	.neo-sec__lu { display: flex; }
	.neo-fin-ch__sep { display: flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--neo-muted); }
	.neo-fin-ch__sep::before, .neo-fin-ch__sep::after { content: ''; flex: 1; height: 1px; background: var(--neo-line); }
	.neo-fin-ch { gap: 16px; }
	.neo-bloc-fin { padding: 18px; }
	.neo-bloc-fin--suite { background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); }
	.neo-question { background: var(--neo-surf2); }
	.neo-question__l { flex-direction: column; align-items: flex-start; }
	.neo-question__btn { display: none; }
	.neo-question__m { display: inline-flex; padding: 8px 12px; border-radius: 16px; background: var(--neo-surf); }
	.neo-fin-ch__btns { display: none; }
	.neo-ecran--lecture .is-libre .neo-fin-ch__btns { display: grid; grid-template-columns: 1fr; border: 0; }
	.neo-lecture__bas-m { display: block; }
	.neo-ruban { right: 16px; width: 18px; height: 30px; top: 70px; position: fixed; z-index: 31; }
	.neo-selbar__b { flex-direction: column; gap: 2px; min-height: 46px; padding: 0 8px; font-size: 10px; }
	.neo-selbar__b svg { display: block; }
	.neo-selbar__barre { gap: 2px; padding: 4px; }
	.neo-selbar__b--note { border-radius: 14px; }
}

/* ---------- Quiz ---------- */
.neo-quiz__carte { gap: 20px; }
.neo-quiz__prog { display: flex; align-items: center; gap: 14px; }
.neo-quiz__prog .neo-barre { flex: 1; }
.neo-quiz__prog b { font-size: 14px; color: var(--neo-muted); white-space: nowrap; }
.neo-quiz__chip { align-self: flex-start; padding: 8px 14px 8px 8px; font-size: 13px; }
.neo-quiz__ic { width: 22px; height: 22px; border-radius: 11px; background: #FFC83D; color: #14183A; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }
.neo-quiz__q { margin: 0; font: 800 clamp(28px, 3.4vw, 42px)/1.1 var(--neo-f-titre); letter-spacing: -.03em; color: var(--neo-ink); outline: none; }
.neo-quiz__choix { display: flex; flex-direction: column; gap: 12px; }
.neo-choix { min-height: 68px; padding: 12px 18px 12px 16px; border: 0; border-radius: 20px; display: flex; align-items: center; gap: 16px; text-align: left; cursor: pointer; font: 600 18px var(--neo-f-ui); color: var(--neo-ink); background: var(--neo-surf2); box-shadow: inset 0 0 0 2px transparent; transition: background .15s, box-shadow .15s; }
.neo-choix:hover:not([disabled]) { box-shadow: inset 0 0 0 2px var(--neo-bleu); }
.neo-choix__l { flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--neo-surf); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 16px; }
.neo-choix__t { flex: 1; }
.neo-choix.is-bonne { background: var(--neo-ok-bg); box-shadow: inset 0 0 0 2px #22B07D; color: var(--neo-ink); }
.neo-choix.is-bonne .neo-choix__l { background: #22B07D; color: #fff; }
.neo-choix.is-bonne .neo-choix__ic::before { content: '✓'; color: #22B07D; font-size: 22px; font-weight: 800; }
.neo-choix.is-fausse { background: var(--neo-ko-bg); box-shadow: inset 0 0 0 2px #FF6B57; }
.neo-choix.is-fausse .neo-choix__l { background: #FF6B57; color: #14183A; }
.neo-choix.is-fausse .neo-choix__ic::before { content: '✕'; color: #FF6B57; font-size: 20px; font-weight: 800; }
.neo-choix[disabled] { cursor: default; }
.neo-quiz__retour { padding: 20px 22px; border-radius: 22px; display: flex; flex-direction: column; gap: 8px; }
.neo-quiz__retour.is-ok { background: var(--neo-ok-bg); color: var(--neo-ok-fg); }
.neo-quiz__retour.is-ko { background: var(--neo-ko-bg); color: var(--neo-ko-fg); }
.neo-quiz__retour b { font: 800 22px var(--neo-f-titre); }
.neo-quiz__retour p { margin: 0; color: var(--neo-ink); font-size: 16px; line-height: 1.5; }
.neo-quiz__retour a { font-weight: 700; font-size: 14px; color: var(--neo-link); }
.neo-quiz__btns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 12px; padding-top: 18px; border-top: 1px solid var(--neo-line); }
.neo-quiz__btns .neo-btn { width: 100%; min-height: 56px; }
.neo-quiz__grille { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.neo-quiz__grille span { height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; background: var(--neo-surf2); color: var(--neo-muted); }
.neo-quiz__grille span.is-cours { background: var(--neo-bleu); color: #fff; }
.neo-quiz__grille span.is-ok, .neo-quiz__grille span.is-fait { background: #22B07D; color: #14183A; }
.neo-quiz__grille span.is-ko { background: #FF6B57; color: #14183A; }
.neo-regles-quiz { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.neo-regles-quiz li { padding: 10px 12px; border-radius: 12px; background: var(--neo-soft); display: grid; grid-template-columns: 56px 1fr; align-items: center; gap: 8px; font-size: 13px; }
.neo-regles-quiz b { color: var(--neo-link); font-size: 14px; }
.neo-resultat { position: relative; overflow: hidden; padding: 32px; border-radius: 28px; background: var(--hero); color: #14183A; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; max-width: 870px; }
.neo-resultat > * { position: relative; }
.neo-resultat__f { position: absolute !important; right: -60px; top: -110px; width: 300px; height: 300px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.neo-anneau { flex: none; width: 150px; height: 150px; border-radius: 50%; background: conic-gradient(#fff calc(var(--p) * 1%), rgba(255, 255, 255, .28) 0); display: flex; align-items: center; justify-content: center; }
.neo-anneau > span { width: 120px; height: 120px; border-radius: 50%; background: var(--hero); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.neo-anneau b { font: 800 34px var(--neo-f-titre); }
.neo-anneau small { font-size: 13px; font-weight: 700; }
.neo-resultat__txt { flex: 1 1 340px; display: flex; flex-direction: column; gap: 12px; }
.neo-resultat__titre { margin: 0; font: 800 clamp(28px, 3vw, 36px)/1.08 var(--neo-f-titre); letter-spacing: -.02em; color: #14183A; }
.neo-resultat p { margin: 0; font-size: 16px; line-height: 1.55; }
.neo-reponse { max-width: 870px; padding: 16px 18px; border-radius: 20px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; gap: 14px; }
.neo-reponse__ic { flex: none; width: 32px; height: 32px; border-radius: 16px; display: flex; align-items: center; justify-content: center; }
.neo-reponse.is-ok .neo-reponse__ic { background: var(--neo-ok-bg); color: var(--neo-ok-fg); }
.neo-reponse.is-ko .neo-reponse__ic { background: var(--neo-ko-bg); color: var(--neo-ko-fg); }
.neo-reponse > div { display: flex; flex-direction: column; gap: 3px; }
.neo-reponse b { font-size: 15px; }
.neo-reponse__ta { font-size: 14px; color: var(--neo-ok-fg); }
.neo-reponse.is-ko .neo-reponse__ta { color: var(--neo-ko-fg); }
.neo-reponse__bonne { font-size: 14px; color: var(--neo-ok-fg); }
.neo-reponse small { font-size: 13px; color: var(--neo-muted); }
@media (max-width: 1023px) { .neo-quiz__btns { grid-template-columns: 1fr; } .neo-quiz__btns .neo-btn--contour { order: 2; } .neo-resultat { padding: 22px; } .neo-anneau { width: 120px; height: 120px; } .neo-anneau > span { width: 96px; height: 96px; } .neo-choix { font-size: 16px; min-height: 60px; } }

/* ---------- Explorer ---------- */
.neo-recherche-barre--tete { flex: 0 1 456px; }
.neo-filtres--defile { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
.neo-filtre--doux { background: var(--neo-soft); color: var(--neo-link) !important; box-shadow: none; }
.neo-filtre--gris { background: var(--neo-surf2); box-shadow: none; }
.neo-explorer__une { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
@media (max-width: 1100px) { .neo-explorer__une { grid-template-columns: minmax(0, 1fr); } }
.neo-fiche-une { position: relative; overflow: hidden; border-radius: 28px; padding: 32px; background: #FFC83D; color: #14183A; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; min-height: 386px; }
.neo-fiche-une > * { position: relative; }
.neo-fiche-une__f { position: absolute !important; right: -50px; top: -60px; width: 230px; height: 230px; border-radius: 50%; background: #FFB020; }
.neo-fiche-une__etoile { position: absolute !important; right: 54px; top: 48px; color: #fff; }
.neo-fiche-une__etoile svg { fill: #fff; }
.neo-fiche-une__nom { margin: 0; font: 800 clamp(40px, 4.4vw, 52px)/1 var(--neo-f-titre); letter-spacing: -.03em; }
.neo-fiche-une p { margin: 0; font-size: 17px; line-height: 1.45; max-width: 400px; }
.neo-explorer__4 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.neo-fiche-carte { padding: 18px; border-radius: 22px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; gap: 6px; text-decoration: none !important; color: var(--neo-ink) !important; }
.neo-fiche-carte__ini { width: 48px; height: 48px; border-radius: 24px; display: flex; align-items: center; justify-content: center; font: 800 20px var(--neo-f-titre); color: #14183A; margin-bottom: 8px; }
.neo-fiche-carte b { font-size: 17px; }
.neo-fiche-carte__r { font-size: 13px; line-height: 1.45; color: var(--neo-muted); }
.neo-fiche-carte small, .neo-lieu-carte small { margin-top: auto; padding-top: 6px; font-size: 12px; font-weight: 700; color: var(--neo-link); }
.neo-explorer__cat { display: flex; flex-direction: column; gap: 14px; }
.neo-explorer__g { display: grid; gap: 14px; }
.neo-explorer__g--personnage { grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); }
.neo-explorer__g--lieu { grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); }
.neo-explorer__g--theme, .neo-explorer__g--evenement { grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr)); }
.neo-lieu-carte { border-radius: 22px; overflow: hidden; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; text-decoration: none !important; color: var(--neo-ink) !important; }
.neo-lieu-carte__img { position: relative; height: 110px; overflow: hidden; display: flex; align-items: flex-start; padding: 18px; }
.neo-lieu-carte__img::after { content: ''; position: absolute; left: -10%; right: -10%; bottom: 0; height: 40%; background: var(--l2); transform: skewY(-8deg); transform-origin: right bottom; }
.neo-lieu-carte__pin { position: relative; z-index: 1; }
.neo-lieu-carte__bas { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; }
.neo-lieu-carte__bas b { font-size: 17px; }
.neo-lieu-carte__bas span { font-size: 13px; line-height: 1.45; color: var(--neo-muted); }
.neo-ligne-fiche { padding: 14px 16px; border-radius: 20px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; align-items: center; gap: 14px; text-decoration: none !important; color: var(--neo-ink) !important; }
.neo-ligne-fiche__ic { flex: none; width: 46px; height: 46px; border-radius: 14px; background: var(--neo-soft); display: flex; align-items: center; justify-content: center; }
.neo-ligne-fiche b { font-size: 16px; }
.neo-ligne-fiche small { font-size: 12px; font-weight: 700; color: var(--neo-muted); }
.neo-ligne-fiche > span > span { display: block; font-size: 13px; line-height: 1.45; color: var(--neo-muted); }
@media (max-width: 1023px) { .neo-explorer__4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .neo-fiche-une { min-height: 320px; padding: 24px; } .neo-recherche-barre--tete { flex: 1 1 100%; max-width: none; } }

/* ---------- Fiche ---------- */
.neo-recherche-barre--mini { flex: 0 1 370px; height: 48px; }
@media (max-width: 1023px) { .neo-recherche-barre--mini { display: none; } }
.neo-fiche-hero { position: relative; overflow: hidden; border-radius: 28px; padding: 40px; background: var(--c); color: var(--fg); display: flex; flex-direction: column; gap: 14px; min-height: 288px; justify-content: flex-end; }
.neo-fiche-hero > * { position: relative; }
.neo-fiche-hero__f { position: absolute !important; right: -80px; top: -80px; width: 300px; height: 300px; border-radius: 50%; background: rgba(0, 0, 0, .1); }
.neo-fiche-hero__rond { position: absolute !important; right: 60px; top: 50px; width: 110px; height: 110px; border-radius: 55px; background: #fff; display: flex; align-items: center; justify-content: center; }
.neo-fiche-hero__rond--abr { font: 800 34px var(--neo-f-titre); color: var(--c); }
.neo-fiche-hero__nom { margin: 0; font: 800 clamp(40px, 5vw, 62px)/1 var(--neo-f-titre); letter-spacing: -.03em; color: inherit; max-width: calc(100% - 140px); }
.neo-fiche-hero p { margin: 0; font-size: 17px; line-height: 1.5; max-width: 640px; }
.neo-verset-cle { margin: 0; padding: 24px; border-radius: 24px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); }
.neo-verset-cle blockquote { margin: 0; font-size: 19px; line-height: 1.55; color: var(--neo-ink); }
.neo-verset-cle figcaption { margin-top: 12px; font-size: 14px; font-weight: 700; }
.neo-bref { margin: 10px 0 0; display: flex; flex-direction: column; }
.neo-bref dt { padding-top: 12px; border-top: 1px solid var(--neo-line); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--neo-muted); }
.neo-bref dd { margin: 4px 0 12px; font-size: 15px; line-height: 1.5; }
.neo-dans-parcours { padding: 10px; border-radius: 16px; background: var(--neo-soft); display: flex; align-items: center; gap: 12px; text-decoration: none !important; color: var(--neo-ink) !important; }
.neo-dans-parcours span { display: flex; flex-direction: column; }
.neo-dans-parcours small { font-size: 12px; color: var(--neo-muted); }
@media (max-width: 1023px) { .neo-fiche-hero { padding: 24px; min-height: 0; } .neo-fiche-hero__rond { width: 72px; height: 72px; right: 20px; top: 20px; } .neo-fiche-hero__rond svg { width: 32px; height: 32px; } .neo-fiche-hero__nom { max-width: calc(100% - 80px); } }

/* ---------- Recherche ---------- */
.neo-recherche-barre--grande { max-width: 720px; height: 58px; padding: 0 8px 0 20px; }
.neo-res-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(360px, 100%), 1fr)); gap: 12px; }
.neo-res-passage, .neo-res-verset { padding: 18px 20px; border-radius: 22px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; gap: 10px; text-decoration: none !important; color: var(--neo-ink) !important; }
.neo-res-passage blockquote { margin: 0; font-size: 19px; line-height: 1.5; }
.neo-res-passage .neo-chip { align-self: flex-start; }
.neo-res-verset .neo-bible { font-size: 16px; line-height: 1.6; }
.neo-res-verset__bas { display: flex; align-items: center; gap: 10px; }
.neo-res-verset__bas b { font-size: 13px; color: var(--neo-link); }

/* ---------- Tableau de bord ---------- */
.neo-bord__haut { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
@media (max-width: 1100px) { .neo-bord__haut { grid-template-columns: minmax(0, 1fr); } }
.neo-etape { justify-content: flex-start; padding: 32px; min-height: 372px; }
.neo-etape__etoile { position: absolute !important; right: 54px; top: 42px; color: #FFC83D; }
.neo-etape__etoile svg { fill: #FFC83D; }
.neo-etape__k { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #E6ECFF; }
.neo-etape__nom { margin: 0; font: 800 clamp(36px, 4vw, 50px)/1.05 var(--neo-f-titre); letter-spacing: -.03em; color: #fff; }
.neo-etape p { margin: 0; color: #EEF2FF; max-width: 340px; line-height: 1.5; }
.neo-etape__frise { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 4px; }
.neo-etape__frise li { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.neo-etape__frise li > span { width: 30px; height: 30px; border-radius: 15px; background: #2447C9; box-shadow: inset 0 0 0 2px #8FA9FA; }
.neo-etape__frise li.is-fait > span { background: #22B07D; box-shadow: none; }
.neo-etape__frise li.is-cours > span { background: #FFC83D; box-shadow: 0 0 0 3px #fff; }
.neo-etape__frise small { font-size: 11px; font-weight: 700; line-height: 1.2; color: #D6DFFF; }
.neo-etape__frise li.is-cours small { color: #fff; }
.neo-etape__prog { margin-top: auto; padding: 14px 16px; border-radius: 18px; background: rgba(255, 255, 255, .14); display: flex; flex-direction: column; gap: 10px; }
.neo-etape__prog > div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; font-weight: 700; flex-wrap: wrap; }
.neo-stat .neo-point { width: 10px; height: 10px; }
.neo-ann4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 900px) { .neo-ann4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.neo-ann-tuile { padding: 16px 18px; border: 0; border-radius: 22px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; align-items: center; gap: 14px; text-decoration: none !important; color: var(--neo-ink) !important; cursor: pointer; text-align: left; font: inherit; }
.neo-ann-tuile[aria-selected="true"] { box-shadow: inset 0 0 0 2px var(--neo-bleu); }
.neo-ann-tuile b { display: block; font: 800 22px var(--neo-f-titre); }
.neo-ann-tuile small { font-size: 14px; color: var(--neo-ink); }
.neo-ann-ic { flex: none; width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; }
.neo-ann-ic--jaune { background: #FFE27A; color: #14183A; } .neo-ann-ic--bleu { background: var(--neo-bleu); color: #fff; } .neo-ann-ic--or { background: #FFF1C7; color: #8A5A00; } .neo-ann-ic--doux { background: var(--neo-soft); color: var(--neo-link); }
[data-theme="dark"] .neo-ann-ic--jaune { background: #6B5410; color: #FFE27A; } [data-theme="dark"] .neo-ann-ic--or { background: #3D3210; color: #FFC83D; }
.neo-ann-ic--grand { width: 56px; height: 56px; border-radius: 18px; }
.neo-certs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr)); gap: 14px; margin-top: 16px; }
.neo-cert-ligne { padding: 14px 16px; border-radius: 20px; box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; align-items: center; gap: 14px; }
.neo-cert-ligne.is-obtenu { background: var(--neo-ok-bg); box-shadow: none; }
.neo-cert-ligne__ic { flex: none; width: 52px; height: 52px; border-radius: 16px; background: var(--neo-surf2); display: flex; align-items: center; justify-content: center; }
.neo-cert-ligne__t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.neo-cert-ligne__t small { font-size: 13px; color: var(--neo-muted); }
.neo-bord__bas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
@media (max-width: 1100px) { .neo-bord__bas { grid-template-columns: minmax(0, 1fr); } }
.neo-badges3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 20px 0; }
.neo-badge-cell { border: 0; background: transparent; padding: 8px; border-radius: 18px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; cursor: pointer; font: inherit; color: var(--neo-ink); }
.neo-badge-cell b { font-size: 13px; }
.neo-badge-cell small { font-size: 12px; color: var(--neo-muted); }
.neo-badge { --s: 64px; flex: none; width: var(--s); height: var(--s); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.neo-badge__in { width: 100%; height: 100%; border-radius: 50%; display: flex; align-items: center; justify-content: center; font: 800 calc(var(--s) * .3) var(--neo-f-titre); }
.neo-badge--gagne .neo-badge__in { background: var(--b); color: #fff; box-shadow: 0 0 0 4px var(--neo-surf), 0 0 0 6px var(--b); }
.neo-badge--cours { background: conic-gradient(var(--b) calc(var(--p) * 1%), var(--neo-line) 0); padding: 4px; }
.neo-badge--cours .neo-badge__in { background: var(--neo-surf); color: var(--b); }
.neo-badge--vide .neo-badge__in { background: color-mix(in srgb, var(--b) 12%, transparent); color: var(--b); border: 2px dashed color-mix(in srgb, var(--b) 45%, transparent); }
.neo-mes-livres { list-style: none; margin: 18px 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.neo-mes-livres li { display: flex; align-items: center; gap: 12px; }
.neo-mes-livres li.is-lock .neo-tuile { background: var(--neo-surf2); }
.neo-mes-livres li.is-lock .neo-tuile b { color: var(--neo-muted); }
.neo-mes-livres__t { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.neo-mes-livres__t > span:first-child { display: flex; justify-content: space-between; gap: 10px; }
.neo-mes-livres em { font-style: normal; font-size: 14px; font-weight: 700; color: var(--neo-link); }
.neo-mes-livres li.is-lock em { color: var(--neo-muted); font-weight: 500; }
.neo-ma-bible { padding: 12px 14px; border-radius: 16px; background: var(--neo-soft); display: flex; justify-content: space-between; gap: 10px; text-decoration: none !important; color: var(--neo-link) !important; font-size: 14px; }

/* ---------- Annotations ---------- */
.neo-ann-filtres { align-items: center; }
.neo-pastille-c { width: 40px; height: 40px; border: 0; border-radius: 20px; cursor: pointer; }
.neo-pastille-c.neo-hl--jaune { background: #FFE27A; } .neo-pastille-c.neo-hl--vert { background: #9DEBC6; } .neo-pastille-c.neo-hl--bleu { background: #B9D0FF; } .neo-pastille-c.neo-hl--rose { background: #FFC2DA; } .neo-pastille-c.neo-hl--violet { background: #DACDFF; }
.neo-pastille-c[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--neo-bg), 0 0 0 5px var(--neo-bleu); }
.neo-filtres__sep { width: 1px; height: 28px; background: var(--neo-line); margin: 0 6px; }
.neo-ann-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 14px; }
.neo-ann-carte { padding: 18px 20px; border-radius: 24px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; gap: 12px; }
.neo-ann-carte__v { margin: 0; font-size: 18px; line-height: 1.6; color: var(--neo-ink); }
.neo-ann-carte__note { margin: 0; font-size: 15px; line-height: 1.55; }
.neo-ann-carte__cite { margin: 0; font-size: 14px; color: var(--neo-muted); }
.neo-ann-carte__bas { margin-top: auto; display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--neo-muted); }
.neo-ann-carte__bas a { font-weight: 700; text-decoration: none; margin-right: auto; }

/* ---------- Collection ---------- */
.neo-totaux { display: flex; gap: 12px; }
.neo-totaux span { padding: 12px 16px; border-radius: 18px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; }
.neo-totaux b { font: 800 22px var(--neo-f-titre); }
.neo-totaux small { font-size: 12px; color: var(--neo-muted); }
.neo-jalons { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px; margin-top: 14px; }
.neo-jalons .neo-badge-cell.is-gagne { background: var(--neo-field); }
.neo-coll-fam__c { display: flex; align-items: center; gap: 10px; min-width: 140px; }
.neo-coll-fam__c .neo-barre { flex: 1; width: 100px; }
.neo-coll-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.neo-badge-cell--s b { font-size: 12px; }

/* ---------- Notifications ---------- */
.neo-notifs__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; max-width: 860px; }
.neo-notif { padding: 16px 18px; border-radius: 22px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; gap: 14px; }
.neo-notif.is-nonlu { background: var(--neo-soft); box-shadow: none; }
.neo-notif.is-nonlu b { font-weight: 800; }
.neo-notif__ic { flex: none; width: 42px; height: 42px; border-radius: 14px; background: var(--neo-bleu); color: #fff; display: flex; align-items: center; justify-content: center; }
.neo-notif__c { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.neo-notif__t { display: flex; align-items: center; gap: 8px; }
.neo-notif__t b { font-weight: 600; font-size: 16px; }
.neo-notif p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--neo-ink); }
.neo-notif small { font-size: 12px; color: var(--neo-muted); }

/* ---------- Profil ---------- */
.neo-profil { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 1100px) { .neo-profil { grid-template-columns: minmax(0, 1fr); } }
.neo-profil__id { position: relative; overflow: hidden; display: flex; align-items: center; gap: 20px; }
.neo-profil__id > * { position: relative; }
.neo-profil__f { position: absolute !important; right: -50px; top: -60px; width: 190px; height: 190px; border-radius: 50%; background: var(--neo-soft); }
.neo-profil__photo { position: relative; flex: none; width: 124px; height: 124px; border: 0; padding: 4px; border-radius: 50%; background: var(--neo-surf); box-shadow: 0 0 0 2px var(--neo-bleu); cursor: pointer; }
.neo-profil__img { width: 100%; height: 100%; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--neo-soft); font: 800 36px var(--neo-f-titre); color: var(--neo-link); }
.neo-profil__img img { width: 100%; height: 100%; object-fit: cover; }
.neo-profil__cam { position: absolute; right: 0; bottom: 4px; width: 44px; height: 44px; border-radius: 22px; background: var(--neo-bleu); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 4px var(--neo-surf); }
.neo-profil__id .neo-muted { margin: 4px 0 8px; }
.neo-form { display: flex; flex-direction: column; gap: 16px; }
.neo-ligne-action { min-height: 56px; padding: 0 18px; border-radius: 16px; background: var(--neo-surf2); display: flex; align-items: center; gap: 12px; font-weight: 600; text-decoration: none !important; color: var(--neo-ink) !important; margin-top: 14px; }
.neo-zone-danger { margin-top: 14px; padding: 18px; border-radius: 18px; box-shadow: inset 0 0 0 1.5px var(--neo-danger-line); display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.neo-zone-danger b { color: var(--neo-danger); font-size: 16px; }
.neo-zone-danger p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--neo-muted); }
.neo-raisons { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.neo-raison { padding: 12px 14px; border-radius: 14px; background: var(--neo-field); box-shadow: inset 0 0 0 1.5px var(--neo-line); align-items: center; }
.neo-raison:has(input:checked) { box-shadow: inset 0 0 0 2px var(--neo-bleu); background: var(--neo-soft); }
.neo-photo { display: flex; flex-direction: column; gap: 14px; }
.neo-photo__zone { position: relative; width: 100%; aspect-ratio: 560 / 380; border-radius: 20px; overflow: hidden; background: repeating-conic-gradient(var(--neo-surf2) 0 25%, var(--neo-surf) 0 50%) 0 0 / 24px 24px; }
.neo-photo__zone canvas { position: absolute; inset: 0; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.neo-photo__masque { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 50% 50%, transparent 0 calc(150 / 380 * 100%), rgba(11, 14, 36, .55) calc(150 / 380 * 100% + 1px)); }
.neo-photo__masque::after { content: ''; position: absolute; left: 50%; top: 50%; width: calc(300 / 380 * 100% * 380 / 560); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; box-shadow: 0 0 0 2px #fff; }
.neo-photo__vide { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; cursor: pointer; font-weight: 700; color: var(--neo-link); background: var(--neo-soft); }
.neo-photo__outils { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.neo-photo__zoom { flex: 1 1 200px; display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; }
.neo-photo__zoom input { flex: 1; accent-color: var(--neo-bleu); }
.neo-photo__apercus { display: flex; align-items: center; gap: 14px; }
.neo-photo__apercus canvas { border-radius: 50%; background: var(--neo-surf2); }

/* ---------- Réglages ---------- */
.neo-themes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
@media (max-width: 700px) { .neo-themes { grid-template-columns: minmax(0, 1fr); } }
.neo-theme-choix { padding: 12px; border: 0; border-radius: 18px; background: var(--neo-surf2); display: flex; flex-direction: column; gap: 10px; text-align: left; cursor: pointer; font: inherit; color: var(--neo-ink); box-shadow: inset 0 0 0 1.5px var(--neo-line); }
.neo-theme-choix[aria-checked="true"] { box-shadow: inset 0 0 0 2px var(--neo-bleu); }
.neo-theme-choix__ap { height: 84px; border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 16px; background: #F5F7FC; }
.neo-theme-choix__ap i:first-child { width: 84px; height: 6px; border-radius: 3px; background: var(--neo-bleu); }
.neo-theme-choix__ap i:last-child { height: 34px; border-radius: 8px; background: #fff; }
.neo-theme-choix--sombre .neo-theme-choix__ap { background: #0B0E24; }
.neo-theme-choix--sombre .neo-theme-choix__ap i:last-child { background: #1E2450; }
.neo-theme-choix--auto .neo-theme-choix__ap { background: linear-gradient(90deg, #F5F7FC 50%, #0B0E24 50%); }
.neo-theme-choix--auto .neo-theme-choix__ap i:last-child { background: linear-gradient(90deg, #5A82F7 50%, #2C55DB 50%); }
.neo-theme-choix__l { display: flex; align-items: center; gap: 8px; }
.neo-theme-choix small { font-size: 13px; color: var(--neo-muted); }
.neo-filtre--gris[aria-pressed="true"] { background: var(--neo-bleu); }
.neo-apercu-texte { margin-top: 16px; padding: 18px 20px; border-radius: 18px; background: var(--neo-surf2); }
.neo-apercu-texte p { margin: 8px 0 0; line-height: 1.65; color: var(--neo-ink); }
.neo-apercu-texte sup { color: var(--neo-bleu); font: 700 11px var(--neo-f-ui); }
.neo-ligne-reg { min-height: 72px; padding: 12px 0; border-bottom: 1px solid var(--neo-line); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.neo-ligne-reg > span { display: flex; flex-direction: column; gap: 2px; }
.neo-ligne-reg b { font-size: 15px; }
.neo-ligne-reg small { font-size: 14px; color: var(--neo-muted); }

/* ---------- Version ---------- */
.neo-versions { display: flex; flex-direction: column; gap: 10px; }
.neo-version { padding: 14px 16px; border: 0; border-radius: 18px; background: var(--neo-field); box-shadow: inset 0 0 0 1.5px var(--neo-line); display: flex; align-items: center; gap: 14px; text-align: left; cursor: pointer; font: inherit; color: var(--neo-ink); }
.neo-version[aria-checked="true"] { box-shadow: inset 0 0 0 2px var(--neo-bleu); background: var(--neo-soft); }
.neo-version.is-off { opacity: .6; cursor: not-allowed; }
.neo-version__t { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.neo-version__t small { font: italic 14px var(--neo-f-bible); color: var(--neo-muted); }

/* ---------- Plus ---------- */
.neo-installer { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.neo-installer__t { flex: 1 1 280px; display: flex; flex-direction: column; gap: 4px; }
.neo-liste-plus { padding: 8px; display: flex; flex-direction: column; }
.neo-ligne-plus { min-height: 76px; padding: 12px 14px; border-radius: 18px; display: flex; align-items: center; gap: 14px; text-decoration: none !important; color: var(--neo-ink) !important; }
.neo-ligne-plus:hover { background: var(--neo-surf2); }
.neo-ligne-plus > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.neo-ligne-plus small { font-size: 14px; color: var(--neo-muted); }
.neo-ligne-plus__ic { flex: none; width: 48px; height: 48px; border-radius: 16px; display: flex; align-items: center; justify-content: center; color: #fff; }
.neo-ligne-plus.is-off { opacity: .75; }
.neo-reseaux { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 14px; }
.neo-reseau { min-height: 56px; padding: 8px 12px; border-radius: 16px; background: var(--neo-surf2); display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; text-decoration: none !important; color: var(--neo-ink) !important; flex-wrap: wrap; }
.neo-reseau__ic { flex: none; width: 36px; height: 36px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.neo-reseau small { width: 100%; font-size: 11px; color: var(--neo-muted); font-weight: 600; margin-left: 46px; margin-top: -8px; }
.neo-reseau.is-off { opacity: .7; }
.neo-faq { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.neo-faq__item { border-radius: 18px; background: var(--neo-surf2); overflow: hidden; }
.neo-faq__item h3 { margin: 0; }
.neo-faq__item h3 button { width: 100%; min-height: 58px; padding: 0 18px; border: 0; background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; cursor: pointer; font: 700 15px var(--neo-f-ui); color: var(--neo-ink); }
.neo-faq__item h3 button svg { flex: none; transition: transform .2s; }
.neo-faq__item h3 button[aria-expanded="true"] svg { transform: rotate(180deg); }
.neo-faq__r { padding: 0 18px 16px; }
.neo-faq__r p { margin: 0 0 12px; font-size: 15px; line-height: 1.6; color: var(--neo-ink); }
.neo-faq__vote { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--neo-muted); flex-wrap: wrap; }
.neo-pied-plus { font-size: 13px; color: var(--neo-muted); }

/* ---------- Contact ---------- */
.neo-encadre-reinit { padding: 18px 20px; border-radius: 18px; background: var(--neo-warn-bg); color: var(--neo-ink); display: flex; flex-direction: column; gap: 8px; }
.neo-encadre-reinit p { margin: 0; font-size: 14px; line-height: 1.55; }
.neo-pile--public { margin: 0 auto; padding: 40px 16px; }

/* ---------- Connexion ---------- */
.neo-connexion { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 670px) minmax(0, 1fr); background: var(--neo-bg); }
.neo-connexion__bleu { position: relative; overflow: hidden; background: var(--neo-bleu); color: #fff; padding: 44px 56px; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.neo-connexion__bleu > * { position: relative; }
.neo-connexion__f1 { position: absolute !important; right: -130px; top: -170px; width: 450px; height: 450px; border-radius: 50%; background: #2447C9; }
.neo-connexion__f2 { position: absolute !important; right: 80px; top: 120px; width: 110px; height: 110px; border-radius: 50%; background: #FFC83D; }
.neo-connexion__f3 { position: absolute !important; left: -80px; bottom: -120px; width: 240px; height: 240px; border-radius: 50%; background: #6587F7; }
.neo-connexion__f4 { position: absolute !important; right: 40px; bottom: 60px; width: 18px; height: 18px; border-radius: 50%; background: #22B07D; }
.neo-connexion__logo { color: #fff !important; text-decoration: none; }
.neo-connexion__txt h1 { margin: 0; font: 800 clamp(40px, 4.6vw, 62px)/.98 var(--neo-f-titre); letter-spacing: -.03em; max-width: 420px; }
.neo-connexion__txt p { margin: 14px 0 0; font-size: 17px; line-height: 1.5; max-width: 420px; color: #EEF2FF; }
.neo-connexion__vers { margin: 0; padding: 20px 22px; border-radius: 22px; background: rgba(255, 255, 255, .14); max-width: 460px; }
.neo-connexion__vers blockquote { margin: 0; font-size: 18px; line-height: 1.5; }
.neo-connexion__vers figcaption { margin-top: 8px; font-size: 13px; font-weight: 700; color: #D6DFFF; }
.neo-connexion__form { padding: 40px clamp(16px, 4vw, 56px); display: flex; flex-direction: column; align-items: center; gap: 20px; }
.neo-connexion__haut { align-self: flex-end; }
.neo-connexion__carte { width: 100%; max-width: 560px; padding: 36px; border-radius: 32px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line); display: flex; flex-direction: column; gap: 22px; }
.neo-segments--plein { display: flex; width: 100%; background: var(--neo-surf2); box-shadow: none; }
.neo-segments--plein > * { flex: 1; justify-content: center; }
@media (max-width: 1023px) {
	.neo-connexion { grid-template-columns: minmax(0, 1fr); }
	.neo-connexion__bleu { padding: 24px 20px 28px; min-height: 0; gap: 18px; }
	.neo-connexion__f1 { width: 260px; height: 260px; right: -90px; top: -110px; } .neo-connexion__f2 { width: 60px; height: 60px; right: 40px; top: 70px; }
	.neo-connexion__vers { display: none; }
	.neo-connexion__txt h1 { font-size: 40px; }
	.neo-connexion__form { padding: 0 16px 40px; margin-top: -16px; }
	.neo-connexion__haut { position: absolute; top: 18px; right: 16px; }
	.neo-connexion__haut .neo-rond { background: rgba(255, 255, 255, .16); color: #fff !important; box-shadow: none; }
	.neo-connexion__carte { padding: 22px 18px; border-radius: 28px; }
}

/* ---------- Pages publiques autonomes ---------- */
.neo-public { min-height: 100vh; display: flex; flex-direction: column; background: var(--neo-bg); }
.neo-public__tete { padding: 20px clamp(16px, 4vw, 48px); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.neo-public__actions { display: flex; align-items: center; gap: 14px; }
.neo-public__main { flex: 1; display: flex; justify-content: center; padding: 16px; }
.neo-public__carte { width: 100%; max-width: 560px; align-self: flex-start; margin-top: clamp(0px, 4vh, 40px); padding: 36px; border-radius: 32px; background: var(--neo-surf); box-shadow: inset 0 0 0 1px var(--neo-line), 0 30px 60px -40px rgba(20, 24, 58, .35); display: flex; flex-direction: column; gap: 18px; }
.neo-public__carte .neo-form { gap: 18px; }
.neo-public__ic { width: 56px; height: 56px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: var(--neo-soft); color: var(--neo-link); }
.neo-public__ic--ok { background: var(--neo-ok-bg); color: var(--neo-ok-fg); }
.neo-public__ic--ko { background: var(--neo-ko-bg); color: var(--neo-ko-fg); }
.neo-public__pied { padding: 24px; text-align: center; font-size: 13px; color: var(--neo-muted); }
.neo-public__pied a { color: var(--neo-muted) !important; }
@media (max-width: 560px) { .neo-public__carte { padding: 22px 18px; border-radius: 26px; } }
.neo-code { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.neo-code__c { height: 64px; width: 100%; border: 0; border-radius: 16px; text-align: center; font: 800 26px var(--neo-f-titre); background: var(--neo-field); color: var(--neo-ink); box-shadow: inset 0 0 0 1.5px var(--neo-line); }
.neo-code__c:focus { box-shadow: var(--neo-focus); }
.neo-verif-form { display: flex; gap: 10px; }
.neo-verif-form .neo-input { flex: 1; min-width: 0; }
.neo-verif { padding: 18px 20px; border-radius: 20px; display: flex; flex-direction: column; gap: 10px; }
.neo-verif b { display: flex; align-items: center; gap: 8px; font-size: 18px; }
.neo-verif p { margin: 0; line-height: 1.55; color: var(--neo-ink); }
.neo-verif dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; font-size: 15px; }
.neo-verif dt { color: var(--neo-muted); }
.neo-verif dd { margin: 0; font-weight: 700; }
.neo-verif--ok { background: var(--neo-ok-bg); color: var(--neo-ok-fg); }
.neo-verif--ko { background: var(--neo-ko-bg); color: var(--neo-ko-fg); }
.neo-verif--warn { background: var(--neo-warn-bg); color: var(--neo-warn-fg); }

/* ---------- Certificat ---------- */
.neo-certificat { position: relative; margin: 0; width: 100%; max-width: 880px; aspect-ratio: 1.414; padding: 26px; border-radius: 6px; background: #FFFDF7; color: #14183A; box-shadow: 0 20px 40px -24px rgba(20, 24, 58, .45), inset 0 0 0 6px var(--cert), inset 0 0 0 10px #FFFDF7, inset 0 0 0 12px color-mix(in srgb, var(--cert) 20%, transparent); display: flex; flex-direction: column; align-items: center; justify-content: space-between; text-align: center; overflow: hidden; }
.neo-certificat > * { position: relative; }
.neo-certificat__f1 { position: absolute !important; right: -50px; top: -50px; width: 170px; height: 170px; border-radius: 50%; background: color-mix(in srgb, var(--cert) 10%, transparent); }
.neo-certificat__f2 { position: absolute !important; left: -40px; bottom: -60px; width: 150px; height: 150px; border-radius: 50%; background: rgba(255, 200, 61, .15); }
.neo-certificat__logo { margin-top: 14px; color: #14183A; }
.neo-certificat__centre { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.neo-certificat__k { font-size: clamp(8px, 1.1vw, 11px); font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: #2447C9; }
.neo-certificat__titre { font: 800 clamp(20px, 3.4vw, 34px)/1 var(--neo-f-titre); }
.neo-certificat__a { margin-top: 8px; font-size: clamp(9px, 1.2vw, 12px); color: #545B7E; }
.neo-certificat__nom { font: italic 600 clamp(20px, 3.4vw, 34px)/1.1 var(--neo-f-bible); padding: 0 18px 4px; border-bottom: 1.5px solid var(--neo-bleu); }
.neo-certificat__texte { max-width: 78%; margin-top: 6px; font-size: clamp(9px, 1.25vw, 12.5px); line-height: 1.5; color: #2A2F55; }
.neo-certificat__bas { width: 100%; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; text-align: left; padding: 0 18px 10px; }
.neo-certificat__sign { display: flex; flex-direction: column; gap: 4px; font-size: clamp(7px, .95vw, 9.5px); color: #545B7E; }
.neo-certificat__sign i { font: italic clamp(11px, 1.6vw, 16px) var(--neo-f-bible); color: #14183A; }
.neo-certificat__sign > span { width: 150px; height: 1px; background: #14183A; }
.neo-certificat__num { display: flex; align-items: flex-end; gap: 8px; }
.neo-certificat__num > span:first-child { display: flex; flex-direction: column; gap: 2px; text-align: right; font-size: clamp(7px, .9vw, 9px); color: #545B7E; }
.neo-certificat__num b { font: 700 clamp(7.5px, 1vw, 10px) ui-monospace, Menlo, monospace; color: #14183A; }
.neo-certificat__qr { flex: none; width: clamp(40px, 6vw, 60px); height: clamp(40px, 6vw, 60px); padding: 3px; background: #fff; border-radius: 4px; box-shadow: inset 0 0 0 1px #E4E8F2; }
.neo-certificat__qr svg { width: 100%; height: 100%; display: block; }
.neo-cert-infos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 14px; max-width: 1080px; }
.neo-cert-infos p { margin: 4px 0 0; font-size: 14px; color: var(--neo-muted); line-height: 1.5; }
.neo-nom-cert { padding: 22px; border-radius: 20px; background: var(--neo-soft); display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.neo-nom-cert small { font-size: 13px; color: var(--neo-muted); }
.neo-nom-cert b { font: italic 600 30px var(--neo-f-bible); color: var(--neo-ink); }
.neo-case--carte { padding: 14px 16px; border-radius: 16px; box-shadow: inset 0 0 0 1.5px var(--neo-line); }

/* ---------- Badge gagné ---------- */
.neo-badge-gagne { align-items: center; text-align: center; overflow: hidden; }
.neo-badge-gagne .neo-modal__titre { padding: 0; }
.neo-badge-gagne__disque { margin: 14px 0; animation: neo-pop .5s cubic-bezier(.2, 1.4, .4, 1) both; }
.neo-modal__actions--col { flex-direction: column; width: 100%; }
.neo-modal__actions--col .neo-btn { width: 100%; }
.neo-confettis { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.neo-confettis i { position: absolute; top: -10px; left: var(--x); width: 8px; height: 14px; border-radius: 2px; background: var(--c); animation: neo-confetti 1.8s var(--d) ease-in forwards; }
@keyframes neo-confetti { to { transform: translateY(560px) rotate(540deg); opacity: 0; } }
@keyframes neo-pop { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
html.neo-chargement body::after { content: ''; position: fixed; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--neo-bleu), #FFC83D); animation: neo-sq 1s linear infinite; background-size: 200% 100%; z-index: 999; }
