/*
 * CSL Gestion 2.0.66 — formulaire public, vraie finition sombre + correctif du bandeau de règlement.
 * Couche exclusivement visuelle. Aucun comportement métier n'est modifié.
 */

@media (prefers-color-scheme: dark) {
    .csl-registration--public {
        --cslreg-ink: #f7f9fc;
        --cslreg-ink-soft: #c5cfda;
        --cslreg-muted: #8f9cab;
        --cslreg-blue: #688ba5;
        --cslreg-blue-dark: #a9bdd0;
        --cslreg-blue-soft: #172432;
        --cslreg-red: #ff4658;
        --cslreg-cream: #071018;
        --cslreg-line: rgba(174, 195, 214, .16);
        --cslreg-shadow: 0 28px 70px rgba(0, 0, 0, .34);
        --cslreg-radius: 26px;
        color: var(--cslreg-ink-soft);
        background:
            radial-gradient(circle at 82% 4%, rgba(105, 139, 166, .08), transparent 32%),
            radial-gradient(circle at 8% 30%, rgba(255, 70, 88, .045), transparent 28%),
            #071018;
        color-scheme: dark;
    }

    .csl-registration--public *,
    .csl-registration--public *::before,
    .csl-registration--public *::after {
        box-sizing: border-box;
    }

    .csl-registration--public .csl-reg-shell {
        width: min(1180px, calc(100% - 40px));
    }

    /* Hero -------------------------------------------------------------- */
    .csl-registration--public .csl-reg-hero {
        min-height: 535px;
        padding: 70px 0 92px;
        color: var(--cslreg-ink);
        background:
            radial-gradient(circle at 8% 16%, rgba(255, 70, 88, .09), transparent 24%),
            radial-gradient(circle at 89% 12%, rgba(105, 139, 166, .11), transparent 28%),
            linear-gradient(145deg, #071018 0%, #0b141d 48%, #09121a 100%);
        border-bottom: 1px solid rgba(174, 195, 214, .08);
    }

    .csl-registration--public .csl-reg-hero::before {
        opacity: .42;
        background-image: radial-gradient(rgba(183, 199, 213, .10) 1px, transparent 1px);
        mask-image: linear-gradient(to bottom, rgba(0,0,0,.66), transparent 92%);
    }

    .csl-registration--public .csl-reg-orb {
        border-color: rgba(150, 174, 195, .18);
    }

    .csl-registration--public .csl-reg-orb--one {
        top: -175px;
        right: 12%;
        width: 350px;
        height: 350px;
    }

    .csl-registration--public .csl-reg-orb--two {
        border-color: rgba(255, 70, 88, .14);
    }

    .csl-registration--public .csl-reg-hero__grid {
        grid-template-columns: minmax(0, 1.12fr) minmax(320px, .78fr);
        gap: clamp(46px, 7vw, 92px);
    }

    .csl-registration--public .csl-reg-kicker {
        color: #ff5d6c;
        letter-spacing: .13em;
    }

    .csl-registration--public .csl-reg-hero h1 {
        max-width: 710px;
        color: #f7f9fc;
        font-size: clamp(52px, 6vw, 86px);
        letter-spacing: -.055em;
        line-height: .98;
        text-wrap: balance;
    }

    .csl-registration--public .csl-reg-hero h1 span {
        color: #91a4b7;
    }

    .csl-registration--public .csl-reg-hero__lead {
        max-width: 650px;
        color: #b1bdc9;
        font-size: clamp(17px, 1.8vw, 20px);
        line-height: 1.66;
    }

    .csl-registration--public .csl-reg-hero__badges span {
        min-height: 34px;
        padding: 7px 13px;
        border-color: rgba(174, 195, 214, .18);
        color: #cbd5df;
        background: rgba(13, 24, 34, .72);
        box-shadow: inset 0 1px rgba(255,255,255,.025);
        backdrop-filter: blur(8px);
    }

    .csl-registration--public .csl-reg-hero__badges span::before {
        width: 6px;
        height: 6px;
        margin-right: 8px;
        border-radius: 50%;
        background: #ff4658;
        box-shadow: 0 0 0 4px rgba(255,70,88,.08);
        content: "";
    }

    .csl-registration--public .csl-reg-hero-card {
        width: min(390px, 100%);
        min-height: 315px;
        padding: 31px;
        border: 1px solid rgba(182, 199, 214, .23);
        border-radius: 32px;
        color: #c3ced8;
        background:
            radial-gradient(circle at 95% 8%, rgba(113, 149, 177, .11), transparent 30%),
            linear-gradient(145deg, rgba(20, 30, 41, .94), rgba(10, 18, 27, .98));
        box-shadow:
            0 30px 65px rgba(0,0,0,.35),
            inset 0 1px rgba(255,255,255,.035);
    }

    .csl-registration--public .csl-reg-hero-card::after {
        border-color: rgba(255, 70, 88, .36);
    }

    .csl-registration--public .csl-reg-hero-card__top {
        color: #f2f5f8;
    }

    .csl-registration--public .csl-reg-hero-card__dot {
        background: #ff4658;
        box-shadow: 0 0 0 6px rgba(255,70,88,.09), 0 0 18px rgba(255,70,88,.24);
    }

    .csl-registration--public .csl-reg-hero-card strong {
        color: #f9fbfd;
    }

    .csl-registration--public .csl-reg-hero-card p {
        color: #9facb9;
    }

    .csl-registration--public .csl-reg-hero-card__mark {
        border-color: rgba(255, 70, 88, .34);
        color: #ff5666;
        background: rgba(255,70,88,.025);
        box-shadow: 0 0 32px rgba(255,70,88,.08);
    }

    /* Conteneur de formulaire ------------------------------------------- */
    .csl-registration--public .csl-reg-form-section {
        margin-top: -54px;
        padding-bottom: 94px;
    }

    .csl-registration--public .csl-reg-form {
        gap: 18px;
        padding: 24px;
        border: 1px solid rgba(174, 195, 214, .14);
        border-radius: 31px;
        background: linear-gradient(145deg, rgba(12, 21, 30, .96), rgba(8, 16, 24, .97));
        box-shadow: 0 34px 85px rgba(0,0,0,.31), inset 0 1px rgba(255,255,255,.025);
    }

    .csl-registration--public .csl-reg-form-intro {
        align-items: center;
        padding: 20px 22px;
        border: 1px solid rgba(174, 195, 214, .13);
        border-radius: 20px;
        background: rgba(17, 28, 38, .78);
        box-shadow: none;
    }

    .csl-registration--public .csl-reg-form-intro h2 {
        color: #f3f6f9;
        font-size: clamp(24px, 2.8vw, 31px);
    }

    .csl-registration--public .csl-reg-form-intro p {
        color: #95a3b1;
    }

    /* Parcours du dossier ----------------------------------------------- */
    .csl-registration--public .csl-reg-process {
        grid-template-columns: minmax(205px, .72fr) minmax(0, 2.35fr);
        gap: 18px;
        padding: 17px;
        border: 1px solid rgba(174, 195, 214, .14);
        border-radius: 20px;
        background: rgba(10, 19, 28, .86);
        box-shadow: inset 0 1px rgba(255,255,255,.018);
    }

    .csl-registration--public .csl-reg-process__intro {
        padding: 14px 17px 14px 4px;
        border-right-color: rgba(174, 195, 214, .12);
    }

    .csl-registration--public .csl-reg-process__intro strong {
        color: #eef2f6;
        font-size: 16px;
    }

    .csl-registration--public .csl-reg-process__intro small {
        color: #8f9daa;
    }

    .csl-registration--public .csl-reg-process li {
        min-height: 72px;
        padding: 10px;
        border-color: rgba(174, 195, 214, .12);
        background: linear-gradient(145deg, rgba(19, 30, 40, .88), rgba(13, 23, 32, .88));
        box-shadow: inset 0 1px rgba(255,255,255,.02);
    }

    .csl-registration--public .csl-reg-process li:first-child {
        border-color: rgba(255, 70, 88, .42);
        background: linear-gradient(145deg, rgba(48, 24, 30, .34), rgba(16, 24, 33, .92));
        box-shadow: 0 0 0 1px rgba(255,70,88,.04), inset 0 1px rgba(255,255,255,.02);
    }

    .csl-registration--public .csl-reg-process__number,
    .csl-registration--public .csl-reg-step-number,
    .csl-registration--public .csl-reg-document-choice__number {
        background: linear-gradient(145deg, #764a66 0%, #d92d42 68%, #ff4558 100%);
        box-shadow: 0 7px 18px rgba(213,31,53,.14), inset 0 1px rgba(255,255,255,.18);
    }

    .csl-registration--public .csl-reg-process li strong {
        color: #c4cfda;
    }

    .csl-registration--public .csl-reg-process li:first-child strong {
        color: #f4f7fa;
    }

    .csl-registration--public .csl-reg-process li small {
        color: #7f8c99;
    }

    /* Étapes / accordéons ----------------------------------------------- */
    .csl-registration--public .csl-reg-form-block {
        padding: 28px;
        border: 1px solid rgba(174, 195, 214, .15);
        border-radius: 24px;
        color: var(--cslreg-ink-soft);
        background: linear-gradient(145deg, rgba(16, 27, 37, .96), rgba(10, 19, 28, .96));
        box-shadow: 0 16px 40px rgba(0,0,0,.16), inset 0 1px rgba(255,255,255,.02);
    }

    .csl-registration--public .csl-reg-collapsible:not([open]) {
        min-height: 104px;
        padding-top: 22px;
        padding-bottom: 22px;
    }

    .csl-registration--public .csl-reg-collapsible[open] {
        border-color: rgba(255, 70, 88, .23);
        box-shadow: 0 19px 48px rgba(0,0,0,.19), 0 0 0 1px rgba(255,70,88,.025), inset 0 1px rgba(255,255,255,.025);
    }

    .csl-registration--public .csl-reg-collapsible[open] > .csl-reg-form-block__summary {
        padding-bottom: 21px;
        margin-bottom: 24px;
        border-bottom: 1px solid rgba(174, 195, 214, .11);
    }

    .csl-registration--public .csl-reg-form-block__heading h2 {
        color: #f2f5f8;
        letter-spacing: -.025em;
    }

    .csl-registration--public .csl-reg-collapsible:not([open]) .csl-reg-form-block__heading h2 {
        color: #9aabba;
    }

    .csl-registration--public .csl-reg-form-block__toggle {
        width: 38px;
        height: 38px;
        margin-top: 2px;
        border-color: rgba(174, 195, 214, .20);
        border-radius: 50%;
        color: #a8b7c5;
        background: rgba(11, 20, 29, .72);
        box-shadow: inset 0 1px rgba(255,255,255,.025);
    }

    .csl-registration--public .csl-reg-collapsible[open] > .csl-reg-form-block__summary .csl-reg-form-block__toggle {
        color: #ff5d6c;
        background: rgba(255, 70, 88, .055);
        border-color: rgba(255, 70, 88, .34);
    }

    .csl-registration--public .csl-reg-collapsible > .csl-reg-form-block__summary:hover .csl-reg-form-block__toggle,
    .csl-registration--public .csl-reg-collapsible > .csl-reg-form-block__summary:focus-visible .csl-reg-form-block__toggle {
        color: #fff;
        background: #24384a;
    }

    /* Champs / choix ----------------------------------------------------- */
    .csl-registration--public .csl-reg-fields label > span,
    .csl-registration--public .csl-reg-file-field > span,
    .csl-registration--public .csl-reg-inline-fields label > span,
    .csl-registration--public .csl-reg-inline-fields > div > span,
    .csl-registration--public .csl-reg-inline-signature > span,
    .csl-registration--public .csl-reg-document-select > span,
    .csl-registration--public .csl-reg-document-mode > span,
    .csl-registration--public .csl-reg-cheque-field > span,
    .csl-registration--public .csl-reg-conditional__title > span,
    .csl-registration--public .csl-reg-subheading > span {
        color: #c5d0da;
    }

    .csl-registration--public .csl-reg-fields label > small,
    .csl-registration--public .csl-reg-file-field small,
    .csl-registration--public .csl-reg-conditional__title small,
    .csl-registration--public .csl-reg-subheading small,
    .csl-registration--public .csl-reg-cheque-field small,
    .csl-registration--public .csl-reg-document-select > small,
    .csl-registration--public .csl-reg-document-choice--other > p {
        color: #8795a3;
    }

    .csl-registration--public input[type="text"],
    .csl-registration--public input[type="email"],
    .csl-registration--public input[type="tel"],
    .csl-registration--public input[type="date"],
    .csl-registration--public input[type="search"],
    .csl-registration--public input[type="number"],
    .csl-registration--public select,
    .csl-registration--public textarea,
    .csl-registration--public .csl-reg-inline-fields input[type="text"],
    .csl-registration--public .csl-reg-inline-fields input[type="number"],
    .csl-registration--public .csl-reg-inline-fields input[type="date"] {
        border-color: rgba(174, 195, 214, .18) !important;
        color: #f5f8fb !important;
        background: #0b151f !important;
        box-shadow: inset 0 1px rgba(255,255,255,.018);
    }

    .csl-registration--public input::placeholder,
    .csl-registration--public textarea::placeholder {
        color: #647586;
        opacity: 1;
    }

    .csl-registration--public select option {
        color: #f4f7fa;
        background: #101b25;
    }

    .csl-registration--public input[readonly],
    .csl-registration--public .csl-reg-inline-fields input[readonly] {
        color: #aebbc7 !important;
        background: #121e29 !important;
    }

    .csl-registration--public input:focus,
    .csl-registration--public select:focus,
    .csl-registration--public textarea:focus {
        border-color: rgba(112, 158, 193, .76) !important;
        box-shadow: 0 0 0 4px rgba(105, 144, 174, .13) !important;
    }

    .csl-registration--public input:-webkit-autofill,
    .csl-registration--public input:-webkit-autofill:hover,
    .csl-registration--public input:-webkit-autofill:focus {
        -webkit-text-fill-color: #f5f8fb !important;
        -webkit-box-shadow: 0 0 0 1000px #0b151f inset !important;
        caret-color: #fff;
    }

    .csl-registration--public .csl-reg-choice,
    .csl-registration--public .csl-reg-activity-choice,
    .csl-registration--public .csl-reg-payment-choice,
    .csl-registration--public .csl-reg-document-mode-choice {
        border-color: rgba(174, 195, 214, .15);
        color: #bec9d3;
        background: linear-gradient(145deg, rgba(18, 29, 39, .94), rgba(12, 21, 30, .96));
        box-shadow: inset 0 1px rgba(255,255,255,.018);
    }

    .csl-registration--public .csl-reg-choice:hover,
    .csl-registration--public .csl-reg-activity-choice:hover {
        border-color: rgba(118, 158, 188, .48);
        box-shadow: 0 12px 24px rgba(0,0,0,.14);
    }

    .csl-registration--public .csl-reg-choice:has(input:checked),
    .csl-registration--public .csl-reg-activity-choice:has(input:checked),
    .csl-registration--public .csl-reg-payment-choice:has(input:checked),
    .csl-registration--public .csl-reg-document-mode-choice:has(input:checked) {
        border-color: rgba(255, 70, 88, .58);
        background: linear-gradient(145deg, rgba(54, 27, 34, .48), rgba(15, 25, 34, .96));
        box-shadow: 0 0 0 1px rgba(255,70,88,.04), 0 10px 24px rgba(0,0,0,.14);
    }

    .csl-registration--public .csl-reg-choice strong,
    .csl-registration--public .csl-reg-activity-choice strong,
    .csl-registration--public .csl-reg-document-choice__heading strong,
    .csl-registration--public .csl-reg-document-choice__toggle strong,
    .csl-registration--public .csl-reg-file-field > span strong,
    .csl-registration--public .csl-reg-inline-section-title > span,
    .csl-registration--public .csl-reg-inline-question > span {
        color: #eef3f7;
    }

    .csl-registration--public .csl-reg-choice small,
    .csl-registration--public .csl-reg-activity-choice small,
    .csl-registration--public .csl-reg-document-choice__heading small,
    .csl-registration--public .csl-reg-document-choice__toggle small,
    .csl-registration--public .csl-reg-document-picker__intro span,
    .csl-registration--public .csl-reg-document-choice > p,
    .csl-registration--public .csl-reg-inline-documents__intro span,
    .csl-registration--public .csl-reg-inline-section-title small,
    .csl-registration--public .csl-reg-inline-panel__heading span,
    .csl-registration--public .csl-reg-inline-signature > span small {
        color: #8b99a7;
    }

    .csl-registration--public .csl-reg-conditional,
    .csl-registration--public .csl-reg-activity-rule,
    .csl-registration--public .csl-reg-document-picker,
    .csl-registration--public .csl-reg-auto-document-message,
    .csl-registration--public .csl-reg-model-download-wrap,
    .csl-registration--public .csl-reg-inline-documents__intro,
    .csl-registration--public .csl-reg-inline-confirm {
        border-color: rgba(120, 160, 190, .18);
        color: #aebcc8;
        background: rgba(17, 30, 41, .72);
    }

    /* Photo ------------------------------------------------------------- */
    .csl-registration--public .csl-reg-participant-photo {
        grid-template-columns: 74px minmax(0,1fr) auto auto;
        gap: 16px;
        margin: 0;
        padding: 18px 20px;
        border: 1px solid rgba(73, 165, 131, .23);
        border-radius: 21px;
        color: #f4f8fb;
        background:
            radial-gradient(circle at 91% 40%, rgba(25, 154, 100, .11), transparent 24%),
            linear-gradient(145deg, rgba(16, 31, 36, .92), rgba(10, 21, 29, .97));
        box-shadow: inset 0 1px rgba(255,255,255,.02);
    }

    .csl-registration--public .csl-reg-participant-photo__preview {
        width: 66px;
        height: 66px;
        border: 1px dashed rgba(89, 199, 158, .48);
        border-radius: 20px;
        color: #93d8bd;
        background: rgba(13, 35, 37, .72);
        font-size: 26px;
    }

    .csl-registration--public .csl-reg-participant-photo__copy strong {
        color: #f3f8fb;
        font-size: 17px;
    }

    .csl-registration--public .csl-reg-participant-photo__copy small {
        color: #92a6b2;
    }

    .csl-registration--public .csl-reg-participant-photo__button {
        min-height: 44px;
        padding: 10px 16px;
        border: 1px solid rgba(74, 203, 144, .22);
        border-radius: 13px;
        color: #fff;
        background: linear-gradient(135deg, #0c8755, #159b63);
        box-shadow: 0 9px 24px rgba(0, 133, 82, .20), inset 0 1px rgba(255,255,255,.12);
    }

    .csl-registration--public .csl-reg-participant-photo__remove {
        color: #ff8f9a;
    }

    /* Activités / capacité --------------------------------------------- */
    .csl-registration--public .csl-reg-activity-choice--full,
    .csl-registration--public .csl-reg-activity-choice--age-incompatible {
        background: #101820;
    }

    .csl-registration--public .csl-reg-full-overlay {
        border-color: rgba(255, 92, 108, .38);
        color: #ffabb3;
        background: rgba(50, 20, 27, .94);
        box-shadow: 0 8px 20px rgba(0,0,0,.16);
    }

    .csl-registration--public .csl-reg-full-overlay strong,
    .csl-registration--public .csl-reg-full-overlay__icon,
    .csl-registration--public .csl-reg-activity-choice--full .csl-reg-activity-capacity {
        color: #ff9aa5 !important;
    }

    .csl-registration--public .csl-reg-full-overlay__icon {
        border-color: #e75a69;
    }

    .csl-registration--public .csl-reg-activity-capacity {
        color: #a6bfd2;
    }

    .csl-registration--public .csl-reg-age-exception-box {
        border-color: rgba(235, 180, 74, .37);
        color: #e8d3a2;
        background: rgba(63, 46, 15, .42);
    }

    .csl-registration--public .csl-reg-age-exception-box strong,
    .csl-registration--public .csl-reg-age-warning {
        color: #f2cb72;
    }

    .csl-registration--public .csl-reg-age-exception-list label {
        border-color: rgba(232, 188, 92, .28);
        color: #e5d8b6;
        background: rgba(39, 31, 17, .68);
    }

    /* Documents --------------------------------------------------------- */
    .csl-registration--public .csl-reg-documents-block,
    .csl-registration--public .csl-reg-form-block--consent {
        background: linear-gradient(145deg, rgba(16, 27, 37, .96), rgba(10, 19, 28, .96));
    }

    .csl-registration--public .csl-reg-documents-intro > p,
    .csl-registration--public .csl-reg-doc-links p {
        color: #9aa8b5;
    }

    .csl-registration--public .csl-reg-doc-links,
    .csl-registration--public .csl-reg-document-choice,
    .csl-registration--public .csl-reg-file-field,
    .csl-registration--public .csl-reg-inline-panel,
    .csl-registration--public .csl-reg-inline-questions,
    .csl-registration--public .csl-reg-inline-question {
        border-color: rgba(174, 195, 214, .14);
        background: rgba(11, 21, 30, .88);
        box-shadow: inset 0 1px rgba(255,255,255,.015);
    }

    .csl-registration--public .csl-reg-document-picker__intro strong,
    .csl-registration--public .csl-reg-doc-links > span,
    .csl-registration--public .csl-reg-inline-panel__heading strong,
    .csl-registration--public .csl-reg-inline-documents__intro strong,
    .csl-registration--public .csl-reg-inline-documents__intro em,
    .csl-registration--public .csl-reg-inline-preview summary {
        color: #a7bfd2;
    }

    .csl-registration--public .csl-reg-doc-links a,
    .csl-registration--public .csl-reg-model-download,
    .csl-registration--public .csl-reg-check a {
        color: #a9c3d6 !important;
    }

    .csl-registration--public .csl-reg-doc-links a:hover,
    .csl-registration--public .csl-reg-model-download:hover {
        color: #ff7b88 !important;
    }

    .csl-registration--public .csl-reg-inline-question {
        border-bottom-color: rgba(174, 195, 214, .08);
    }

    .csl-registration--public .csl-reg-inline-question > label,
    .csl-registration--public .csl-reg-inline-radio label {
        color: #c4d0db;
    }

    .csl-registration--public .csl-reg-inline-preview {
        border-top-color: rgba(174, 195, 214, .11);
    }

    .csl-registration--public .csl-reg-inline-preview object {
        border-color: rgba(174, 195, 214, .16);
        background: #e9edf1;
    }

    .csl-registration--public .csl-reg-inline-signature canvas {
        border-color: rgba(174, 195, 214, .27);
        background: #e9eef2;
    }

    /* Sécurité, contact, consentement ---------------------------------- */
    .csl-registration--public .csl-reg-safety-privacy {
        color: #8f9eab;
    }

    .csl-registration--public .csl-reg-pickup-panel {
        border-top-color: rgba(174, 195, 214, .12);
    }

    .csl-registration--public .csl-reg-pickup-restriction {
        border-color: rgba(238, 99, 114, .34);
        color: #e7dfe2;
        background: rgba(54, 27, 32, .58);
    }

    .csl-registration--public .csl-reg-pickup-restriction strong {
        color: #ff9eaa;
    }

    .csl-registration--public .csl-reg-pickup-restriction small {
        color: #c6b8bd;
    }

    .csl-registration--public .csl-reg-check {
        color: #b6c1cc;
    }

    .csl-registration--public .csl-reg-check--large {
        border-color: rgba(174, 195, 214, .15);
        background: rgba(11, 21, 30, .76);
    }

    .csl-registration--public .csl-reg-validation-notice {
        border-color: rgba(255, 91, 106, .44);
        color: #e6c0c4;
        background: rgba(65, 25, 31, .48);
        box-shadow: none;
    }

    .csl-registration--public .csl-reg-validation-notice strong {
        color: #ff9ba5;
    }

    .csl-registration--public .csl-reg-validation-notice--success {
        border-color: rgba(218, 168, 73, .38);
        color: #d9c398;
        background: rgba(61, 45, 15, .42);
    }

    .csl-registration--public .csl-reg-validation-notice--success strong {
        color: #e7c674;
    }


    .csl-registration--public .csl-reg-payment-later-note {
        align-items: flex-start;
        gap: 10px;
        border-color: rgba(226, 186, 91, .24);
        color: #d9c79e;
        background: linear-gradient(145deg, rgba(62, 47, 18, .56), rgba(38, 30, 12, .50));
        box-shadow: inset 0 1px rgba(255,255,255,.02);
    }

    .csl-registration--public .csl-reg-payment-later-note strong {
        color: #f2d27f;
    }

    .csl-registration--public .csl-reg-payment-later-note span {
        color: #d1c3a2;
    }

    .csl-registration--public .csl-reg-trial-note {
        border-left-color: #ff4658;
        color: #c5aeb1;
        background: rgba(57, 25, 30, .45);
    }

    .csl-registration--public .csl-reg-trial-note strong {
        color: #ff8591;
    }

    .csl-registration--public .csl-reg-trial-note span {
        color: #bdadb1;
    }

    .csl-registration--public .csl-reg-submit-row {
        border-top-color: rgba(174, 195, 214, .12);
    }

    .csl-registration--public .csl-reg-submit-row p {
        color: #8e9ba8;
    }

    /* Boutons ----------------------------------------------------------- */
    .csl-registration--public .csl-reg-button--light {
        border-color: rgba(174, 195, 214, .17);
        color: #d7e0e8 !important;
        background: #13202b;
    }

    .csl-registration--public .csl-reg-button--dark {
        color: #eef3f7 !important;
        background: #0b141d;
    }

    .csl-registration--public .csl-reg-button--primary {
        color: #fff !important;
        background: linear-gradient(135deg, #28465c 0%, #7c3c51 45%, #d62d42 100%);
        box-shadow: 0 12px 28px rgba(130, 44, 67, .20), inset 0 1px rgba(255,255,255,.10);
    }

    .csl-registration--public .csl-reg-button--primary:hover {
        box-shadow: 0 16px 34px rgba(148, 48, 72, .27), inset 0 1px rgba(255,255,255,.11);
    }

    .csl-registration--public .csl-reg-file-remove {
        color: #ff8d98;
    }


    .csl-registration--public .csl-reg-notice--error {
        border-color: rgba(255,91,106,.35);
        color: #ffb0b8;
        background: rgba(70,25,32,.58);
    }

    .csl-registration--public .csl-reg-notice--warning {
        border-color: rgba(221,171,76,.34);
        color: #ecd296;
        background: rgba(63,46,15,.50);
    }

    .csl-registration--public .csl-reg-notice--success {
        border-color: rgba(64,181,131,.30);
        color: #a4e2c6;
        background: rgba(12,54,40,.58);
    }

    /* États fermé / succès --------------------------------------------- */
    .csl-registration--public.csl-registration--closed,
    .csl-registration--public.csl-registration--success {
        color: #c2ccd6;
        background: radial-gradient(circle at 50% 10%, rgba(105,139,166,.08), transparent 34%), #071018;
    }

    .csl-registration--public .csl-reg-success-card {
        color: #c2ccd6;
    }

    .csl-registration--public .csl-reg-success-card,
    .csl-registration--public .csl-reg-closed-card {
        border-color: rgba(174, 195, 214, .16);
        background: linear-gradient(145deg, #101b25, #0a131c);
        box-shadow: 0 28px 72px rgba(0,0,0,.34);
    }

    .csl-registration--public .csl-reg-success-card h1,
    .csl-registration--public .csl-reg-closed-card h1 {
        color: #f4f7fa;
    }

    .csl-registration--public .csl-reg-reference,
    .csl-registration--public .csl-reg-opening-date {
        border: 1px solid rgba(174,195,214,.15);
        color: #b8c6d2;
        background: rgba(13, 24, 34, .88);
    }

    .csl-registration--public .csl-reg-reference strong {
        color: #c5d8e7;
    }

    .csl-registration--public .csl-reg-reference small,
    .csl-registration--public .csl-reg-opening-date span,
    .csl-registration--public .csl-reg-success-card__small {
        color: #8f9daa;
    }

    /* Le cropper photo doit rester parfaitement lisible. */
    .csl-registration--public .csl-photo-cropper-modal,
    .csl-registration--public .csl-photo-cropper-dialog {
        color-scheme: dark;
    }
}

/* iPad / petit ordinateur ------------------------------------------------ */
@media (prefers-color-scheme: dark) and (max-width: 1100px) {
    .csl-registration--public .csl-reg-shell {
        width: min(calc(100% - 32px), 1040px);
    }

    .csl-registration--public .csl-reg-hero {
        min-height: 480px;
        padding: 56px 0 82px;
    }

    .csl-registration--public .csl-reg-hero__grid {
        grid-template-columns: minmax(0, 1.18fr) minmax(275px, .82fr);
        gap: 38px;
    }

    .csl-registration--public .csl-reg-hero-card {
        min-height: 280px;
        padding: 25px;
    }

    .csl-registration--public .csl-reg-form {
        padding: 18px;
    }

    .csl-registration--public .csl-reg-process {
        grid-template-columns: 1fr;
    }

    .csl-registration--public .csl-reg-process__intro {
        padding: 4px 4px 13px;
        border-right: 0;
        border-bottom: 1px solid rgba(174,195,214,.12);
    }

    .csl-registration--public .csl-reg-process ol {
        gap: 7px;
    }

    .csl-registration--public .csl-reg-process li {
        min-height: 68px;
    }
}

/* iPhone / portrait étroit ---------------------------------------------- */
@media (prefers-color-scheme: dark) and (max-width: 760px) {
    .csl-registration--public .csl-reg-shell {
        width: min(calc(100% - 22px), 700px);
    }

    .csl-registration--public .csl-reg-hero {
        min-height: auto;
        padding: 38px 0 72px;
    }

    .csl-registration--public .csl-reg-hero__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .csl-registration--public .csl-reg-hero h1 {
        font-size: clamp(44px, 13vw, 64px);
    }

    .csl-registration--public .csl-reg-hero__lead {
        margin-top: 20px;
        font-size: 16px;
        line-height: 1.58;
    }

    .csl-registration--public .csl-reg-payment-later-note {
        flex-direction: column;
        align-items: flex-start;
    }

    .csl-registration--public .csl-reg-hero__badges {
        margin-top: 24px;
    }

    .csl-registration--public .csl-reg-hero-card {
        width: 100%;
        min-height: 240px;
        margin: 0;
        padding: 23px;
        border-radius: 25px;
    }

    .csl-registration--public .csl-reg-hero-card strong {
        font-size: 36px;
    }

    .csl-registration--public .csl-reg-form-section {
        margin-top: -38px;
        padding-bottom: 64px;
    }

    .csl-registration--public .csl-reg-form {
        gap: 13px;
        padding: 11px;
        border-radius: 23px;
    }

    .csl-registration--public .csl-reg-form-intro {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        padding: 16px;
        border-radius: 17px;
    }

    .csl-registration--public .csl-reg-form-intro p {
        max-width: none;
        text-align: left;
    }

    .csl-registration--public .csl-reg-process {
        padding: 12px;
        border-radius: 17px;
    }

    .csl-registration--public .csl-reg-process ol {
        grid-template-columns: repeat(5, minmax(128px, 1fr));
        gap: 8px;
        overflow-x: auto;
        padding: 1px 0 5px;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .csl-registration--public .csl-reg-process ol::-webkit-scrollbar {
        display: none;
    }

    .csl-registration--public .csl-reg-process li {
        min-height: 66px;
        scroll-snap-align: start;
    }

    .csl-registration--public .csl-reg-form-block {
        padding: 18px 15px;
        border-radius: 20px;
    }

    .csl-registration--public .csl-reg-collapsible:not([open]) {
        min-height: 88px;
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .csl-registration--public .csl-reg-form-block__heading {
        gap: 12px;
    }

    .csl-registration--public .csl-reg-form-block__heading h2 {
        font-size: 24px;
    }

    .csl-registration--public .csl-reg-step-number {
        width: 39px;
        height: 39px;
        border-radius: 13px;
    }

    .csl-registration--public .csl-reg-fields--two,
    .csl-registration--public .csl-reg-fields--three,
    .csl-registration--public .csl-reg-radio-grid--two,
    .csl-registration--public .csl-reg-inline-fields--two,
    .csl-registration--public .csl-reg-inline-fields--three,
    .csl-registration--public .csl-reg-file-grid {
        grid-template-columns: 1fr;
    }

    .csl-registration--public .csl-reg-choice,
    .csl-registration--public .csl-reg-activity-choice {
        padding: 14px;
    }

    .csl-registration--public .csl-reg-participant-photo {
        grid-template-columns: 58px minmax(0,1fr);
        gap: 11px;
        padding: 13px;
    }

    .csl-registration--public .csl-reg-participant-photo__preview {
        width: 56px;
        height: 56px;
        border-radius: 16px;
    }

    .csl-registration--public .csl-reg-participant-photo__button {
        grid-column: 1 / -1;
        width: 100%;
    }

    .csl-registration--public .csl-reg-participant-photo__remove {
        grid-column: 1 / -1;
        justify-content: center;
        min-height: 38px;
        border: 1px solid rgba(255, 114, 127, .18);
        border-radius: 11px;
        background: rgba(68, 27, 33, .42);
    }

    .csl-registration--public .csl-reg-document-choice-grid,
    .csl-registration--public .csl-reg-payment-grid {
        grid-template-columns: 1fr;
    }

    .csl-registration--public .csl-reg-documents-intro,
    .csl-registration--public .csl-reg-submit-row,
    .csl-registration--public .csl-reg-conditional__title,
    .csl-registration--public .csl-reg-subheading {
        align-items: flex-start;
        flex-direction: column;
    }

    .csl-registration--public .csl-reg-conditional__title small,
    .csl-registration--public .csl-reg-subheading small {
        text-align: left;
    }

    .csl-registration--public .csl-reg-doc-links {
        min-width: 0;
        width: 100%;
    }

    .csl-registration--public .csl-reg-submit-row .csl-reg-button {
        width: 100%;
    }
}
