/* Photography accompanies entry journeys; operational lists keep their own surface. */
body:has(.engagement-entry) { background: #111; }
.engagement-entry {
    --app-ink: #f5f5f5;
    --app-muted: #ddd;
    --app-surface: #151515;
    --app-green: #a9edc4;
    --app-red: #ffb4ab;
    --entry-ink: #fff;
    --entry-muted: #ddd;
    --entry-line: #717171;
    --entry-field: #151515;
    --engagement-photo: url("../images/client-exam-1440-ua0EqNh.webp");
    --engagement-photo-mobile: url("../images/client-exam-portrait-768-hizuPZT.webp");
    position: relative;
    isolation: isolate;
    color-scheme: dark;
    color: #fff;
    background: transparent;
}
.engagement-entry[data-engagement-profile="teacher"],
.engagement-entry:has(select option[value="teacher"]:checked) {
    --engagement-photo: url("../images/hero-driving-retake-1672-vtOnuAu.jpg");
    --engagement-photo-mobile: url("../images/hero-driving-retake-960-ZUkMoC4.jpg");
}
.engagement-entry:is([data-engagement-profile="partner"], [data-engagement-profile="school"], [data-engagement-profile="school_manager"], [data-engagement-profile="direction"]),
.engagement-entry:has(select option[value="partner"]:checked) {
    --engagement-photo: url("../images/professionals-network-1672-mASxiVU.webp");
    --engagement-photo-mobile: url("../images/professionals-network-960-Hlxm60N.webp");
}
.engagement-entry:has(select option[value="client"]:checked) {
    --engagement-photo: url("../images/client-exam-1440-ua0EqNh.webp");
    --engagement-photo-mobile: url("../images/client-exam-portrait-768-hizuPZT.webp");
}
.engagement-backdrop,
.engagement-entry::before {
    position: fixed;
    inset: 0;
    pointer-events: none;
}
.engagement-backdrop {
    z-index: -2;
    background: #171717 var(--engagement-photo) 70% center / cover no-repeat;
}
.engagement-entry::before {
    content: '';
    z-index: -1;
    background: linear-gradient(90deg, rgb(10 10 10 / 97%) 0%, rgb(10 10 10 / 95%) 34%, rgb(10 10 10 / 85%) 52%, rgb(10 10 10 / 22%) 83%), linear-gradient(0deg, rgb(10 10 10 / 55%), transparent 70%);
}
.engagement-entry.account-entry,
.engagement-entry.auth-shell {
    display: block;
    width: min(calc(100% - 4rem), 80rem);
    min-height: 100svh;
    margin-inline: auto;
    padding: 1.5rem 0 3rem;
}
.engagement-entry.account-entry > .brand,
.engagement-entry.auth-shell > .brand {
    display: inline-flex;
    margin: 0 0 1.75rem;
    color: #fff;
}
.engagement-entry .brand span { background: #ff3029; }
.engagement-entry.account-entry > :is(.auth-form, header, .account-entry__progress, .school-enrollment-form),
.engagement-entry .auth-login-panel {
    width: min(100%, 38rem);
    margin-inline: 0;
    background: transparent;
}
.engagement-entry.account-entry :is(h1, h2, h3, label, legend, a),
.engagement-entry.auth-shell :is(h1, h2, label, legend, a) { color: #fff; }
.engagement-entry.account-entry h1 {
    font-size: clamp(1.8rem, 3.1vw, 2.65rem);
    line-height: 1.12;
    max-width: 20ch;
    text-wrap: balance;
}
.engagement-entry :is(.auth-intro, .auth-login-intro, .auth-links, .form-help, .help-text, .account-entry__step, .account-entry__next, .eyebrow) { color: #ddd; }
.engagement-entry :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
    background: #151515;
    color: #fff;
    border-color: #999;
}
.engagement-entry input::placeholder { color: #bbb; opacity: 1; }
.engagement-entry input[type="checkbox"] { accent-color: #fff; }
.engagement-entry.account-entry button[type="submit"],
.engagement-entry.auth-shell .auth-form button[type="submit"] { color: #183c31; background: #edf3ec; border-color: #d3dfd2; font-weight: 600; }
.engagement-entry.account-entry button[type="submit"]:hover,
.engagement-entry.auth-shell .auth-form button[type="submit"]:hover { color: #183c31; background: #dce8db; border-color: #bdcfbd; }
.engagement-entry .password-visibility-toggle { color: #fff; background: transparent; border: 1px solid #777; }
.engagement-entry :is(.form-error, .auth-form ul, .school-enrollment-form ul) { color: #ffb4ab; background: transparent; }
.engagement-entry .form-success { color: #a9edc4; background: transparent; }
.engagement-entry :is(a, button, input, select, textarea):focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.engagement-entry .account-entry__school-link { margin-top: 1rem; padding-block: .75rem; border-top: 1px solid #717171; }
.engagement-entry .account-entry__school-link a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: .2em; }
.engagement-entry .auth-space-link,
.engagement-entry .auth-space-context,
.engagement-entry .auth-alternatives,
.engagement-entry .passkey-explanation { background: transparent; color: #ddd; }
.engagement-entry .auth-space-link { border-color: #777; }
.engagement-entry .auth-space-link :is(strong, small) { color: inherit; }
.engagement-entry .auth-space-link[aria-current="page"] { background: #292929; color: #fff; border-color: #fff; }
.engagement-entry .auth-space-monogram { background: #333; color: #fff; }
.engagement-entry :is(.auth-space-context strong, .passkey-explanation strong, .passkey-unavailable, .passkey-status) { color: #eee; }
.engagement-entry.auth-shell a.oauth-login-button--google { color: #202124; background: #fff; }
.engagement-entry.auth-shell a.oauth-login-button--google:hover { color: #202124; background: #f1f3f4; }
.engagement-entry .auth-divider { color: #ddd; }
.engagement-entry .auth-divider::before,
.engagement-entry .auth-divider::after { background: #777; }
.engagement-entry.engagement-entry--subtle::before { background: rgb(10 10 10 / 94%); }
.engagement-entry.engagement-entry--subtle { min-height: 0; }
@media (max-width: 800px) {
    .engagement-entry.account-entry,
    .engagement-entry.auth-shell { width: min(calc(100% - 2.5rem), 38rem); }
    .engagement-backdrop { background-image: var(--engagement-photo-mobile); background-position: 68% top; }
    .engagement-entry::before { background: linear-gradient(0deg, rgb(10 10 10 / 98%), rgb(10 10 10 / 95%) 65%, rgb(10 10 10 / 88%)); }
}
@media (prefers-reduced-motion: no-preference) {
    .engagement-backdrop { animation: engagement-arrive 1.1s ease-out both; }
    @keyframes engagement-arrive { from { opacity: .4; } to { opacity: 1; } }
}
/* One invitation palette for the public ecosystem. Red remains an error signal. */
.public-page {
    --esr-entry-action: #28594e;
    --esr-entry-action-hover: #1d463c;
    --esr-entry-on-action: #fff;
}
.public-page .public-primary,
.public-page .booking-submit.public-primary {
    min-height: 44px;
    padding: .65rem 1rem;
    border: 1px solid var(--esr-entry-action);
    border-radius: .5rem;
    background: var(--esr-entry-action);
    color: var(--esr-entry-on-action);
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1.4;
    box-shadow: none;
}
.public-page .public-primary:hover,
.public-page .booking-submit.public-primary:hover {
    background: var(--esr-entry-action-hover);
    border-color: var(--esr-entry-action-hover);
    color: var(--esr-entry-on-action);
}
.public-page:is(.network-app, .public-compact) {
    --esr-entry-action: #edf3ec;
    --esr-entry-action-hover: #dce8db;
    --esr-entry-on-action: #183c31;
}
.public-page.network-app .network-app__primary,
.public-page.public-compact :is(.public-primary, .rdv-help-agent-input button) {
    border-color: var(--esr-entry-action);
    background: var(--esr-entry-action);
    color: var(--esr-entry-on-action);
    font-weight: 600;
    box-shadow: none;
}
.public-page.network-app .network-app__primary:hover,
.public-page.public-compact :is(.public-primary, .rdv-help-agent-input button):hover {
    border-color: var(--esr-entry-action-hover);
    background: var(--esr-entry-action-hover);
    color: var(--esr-entry-on-action);
}
.public-page .public-nav a:hover,
.public-page .public-mobile-links a:hover { background: #e9f0ea; color: #224f42; }
.public-page:is(.network-app, .public-compact) :is(.public-nav a, .public-mobile-links a):hover { background: #ffffff14; color: #fff; }
.public-page .booking-steps .is-current { color: #28594e; border-color: #28594e; }
.public-page .booking-form :is(input, select):focus-visible { outline-color: #28594e; border-color: #28594e; }
.public-page .public-home-progress::after { background: #427862; }
.engagement-entry.account-entry .primary-link {
    color: #183c31;
    background: #edf3ec;
    border-color: #d3dfd2;
    text-decoration: none;
}
.engagement-entry.account-entry .primary-link:hover { color: #183c31; background: #dce8db; }
.engagement-entry .security-notice { border-color: #879b89; color: #eee9cd; background: #1c2923; }
.engagement-entry .auth-steps { color: #ddd; }
.engagement-entry .actor-pending-card { width: min(100%, 38rem); padding: 0; border-radius: 0; background: transparent; box-shadow: none; }
.engagement-entry .actor-pending-card > p:not(.form-success) { color: #ddd; }
.engagement-entry .actor-pending-note { padding: .6rem 0 .6rem .75rem; border-color: #a4b9a6; background: transparent; }
.public-page.public-compact .rdv-help-sources { display: block; padding: .85rem 0; border-top: 1px solid var(--public-line); background: transparent; }
.public-page.public-compact .rdv-help-sources :is(p, a) { color: var(--public-muted); }
.public-page.public-compact .rdv-help-sources ul { margin: .75rem 0 0; border-color: var(--public-line); }
.public-page.public-compact .rdv-help-sources li { border-color: var(--public-line); }

/* Text-heavy public pages use the same road wallpaper, without competing with reading. */
@media screen {
    .public-page:has(> .public-legal-page) {
        position: relative;
        isolation: isolate;
        background: #f3f5ef;
    }
    .public-page:has(> .public-legal-page)::before {
        content: '';
        position: fixed;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        background: url("../images/esr-wallpaper-NnTDRn3.svg") center / max(100%, 95rem) auto no-repeat;
        opacity: .5;
    }
    .public-page > .public-legal-page { background: transparent; }
    .public-page:is(.booking-confirmation-page, .booking-page:not(.booking-page--selected)) {
        background-color: #eff3ee;
        background-image: linear-gradient(90deg, #eff3eefc 15%, #eff3eef2 60%, #eff3eece), url("../images/client-exam-1440-ua0EqNh.webp");
        background-position: center, 75% center;
        background-repeat: no-repeat;
        background-size: cover;
        background-attachment: fixed;
    }
    .public-page.booking-page--selected:not(:has(.booking-center-visual)) {
        background-color: #eff3ee;
        background-image: url("../images/esr-wallpaper-NnTDRn3.svg");
        background-position: center;
        background-size: cover;
    }
    body:not(.esr-workspace):has(.auth-shell:not(.engagement-entry)) {
        background: #f3f5ef url("../images/esr-wallpaper-NnTDRn3.svg") center / cover fixed no-repeat;
    }
}
@media (max-width: 800px) {
    .public-page:is(.booking-confirmation-page, .booking-page:not(.booking-page--selected)) {
        background-image: linear-gradient(0deg, #eff3eef7, #eff3eeef), url("../images/client-exam-portrait-768-hizuPZT.webp");
        background-attachment: scroll;
        background-position: center, center top;
    }
}
@media (forced-colors: active), print {
    .public-page:has(> .public-legal-page)::before { display: none; }
    .public-page:is(.booking-confirmation-page, .booking-page),
    body:not(.esr-workspace):has(.auth-shell:not(.engagement-entry)) { background-image: none; }
}
@media (forced-colors: active), print {
    .engagement-backdrop, .engagement-entry::before { display: none; }
    .engagement-entry { --entry-ink: CanvasText; --entry-muted: CanvasText; --entry-field: Canvas; --entry-line: CanvasText; background: Canvas; color: CanvasText; color-scheme: light; }
    .engagement-entry * { color: CanvasText !important; background-color: Canvas !important; border-color: CanvasText !important; box-shadow: none !important; }
}
