/* =====================================================================
   Module Création d'entreprise — styles
   Les couleurs proviennent de variables (--brand-*) injectées par le
   layout depuis la table settings => charte adaptable sans toucher au CSS.
   ===================================================================== */

:root{
    --brand-primary:   #234A5B;
    --brand-secondary: #E89238;
    --brand-accent:    #158877;
    --ce-ink:          #1f2d35;
    --ce-surface:      #ffffff;
}

body{ color: var(--ce-ink); }

/* -- Navigation ------------------------------------------------------ */
.ce-navbar{
    background: var(--brand-primary);
}
.ce-navbar .navbar-brand,
.ce-navbar .nav-link{ color:#fff; }
.ce-navbar .nav-link:hover{ color:#ffffffcc; }

/* -- Boutons ---------------------------------------------------------
   On fixe explicitement le fond sur hover/focus/active : sinon la règle
   Bootstrap « .btn:hover » (background-color: var(--bs-btn-hover-bg),
   non défini pour nos boutons) rendait le fond transparent au survol. */
.ce-btn-primary,
.ce-btn-primary:visited{
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color:#fff;
}
.ce-btn-primary:hover,
.ce-btn-primary:focus,
.ce-btn-primary:active,
.ce-btn-primary:focus-visible{
    background-color: color-mix(in srgb, var(--brand-primary) 86%, #000);
    border-color: color-mix(in srgb, var(--brand-primary) 86%, #000);
    color:#fff;
}
.ce-btn-secondary,
.ce-btn-secondary:visited{
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
    color:#fff;
}
.ce-btn-secondary:hover,
.ce-btn-secondary:focus,
.ce-btn-secondary:active,
.ce-btn-secondary:focus-visible{
    background-color: color-mix(in srgb, var(--brand-secondary) 88%, #000);
    border-color: color-mix(in srgb, var(--brand-secondary) 88%, #000);
    color:#fff;
}

/* -- Cartes ---------------------------------------------------------- */
.ce-card{ border:1px solid #e6e9ec; border-radius:.6rem; background:var(--ce-surface); }

/* -- Hero accueil ---------------------------------------------------- */
.ce-hero{
    background: linear-gradient(135deg, var(--brand-primary), var(--brand-accent));
    color:#fff;
}
.ce-hero-title{ font-weight:800; line-height:1.15; }
.ce-hero .btn-link{ color:#fff; text-decoration:underline; }
.ce-form-code{ color: var(--brand-primary); font-weight:700; letter-spacing:.02em; }

/* Étapes du parcours (hero) */
.ce-steps{ display:flex; flex-direction:column; gap:.6rem; }
.ce-step{
    background:#ffffff22; border:1px solid #ffffff33; border-radius:.5rem;
    padding:.6rem .8rem; color:#fff; font-weight:600; font-size:.95rem;
}
.ce-step span{
    display:inline-flex; width:1.6rem; height:1.6rem; border-radius:50%;
    background:var(--brand-secondary); color:#fff; align-items:center;
    justify-content:center; font-weight:700; margin-right:.5rem;
}

/* -- Statistiques back-office --------------------------------------- */
.ce-stat .ce-stat-num{ font-size:2rem; font-weight:800; color:var(--brand-primary); line-height:1; }
.ce-stat .ce-stat-label{ color:#6c757d; font-size:.85rem; margin-top:.25rem; }

/* -- Statuts & progression ------------------------------------------ */
.ce-badge-status{ background: var(--brand-accent); color:#fff; font-weight:600; }
.ce-progress{ background: var(--brand-secondary); }

/* -- Pages d'authentification --------------------------------------- */
.ce-auth-body{
    min-height:100vh; display:flex; align-items:center;
    background: linear-gradient(160deg, var(--brand-primary) 0%, #16303b 100%);
    padding: 2rem 0;
}
.ce-auth-brand{ color:#fff; font-size:1.4rem; font-weight:800; text-decoration:none; }

/* -- Pied de page ---------------------------------------------------- */
.ce-footer{ color:#6c757d; }
.ce-footer a{ color: var(--brand-accent); }

/* -- Accessibilité : focus visible ---------------------------------- */
a:focus-visible, button:focus-visible, .form-control:focus-visible{
    outline:2px solid var(--brand-accent); outline-offset:2px;
}

/* -- Cartes radio (choix forme juridique) --------------------------- */
.ce-radio-card{ cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.ce-radio-card:hover{ border-color:var(--brand-accent); }
.ce-radio-card:has(input:checked){
    border-color:var(--brand-primary);
    box-shadow:0 0 0 2px color-mix(in srgb, var(--brand-primary) 25%, transparent);
}
.ce-link{ color:var(--brand-primary); }
.ce-link:hover{ color:var(--brand-accent); }

/* -- Zone de glisser-déposer (dépôt de pièces) ---------------------- */
.ce-dropzone{
    border:2px dashed #c7ced3; border-radius:.6rem; padding:1.4rem 1rem;
    text-align:center; cursor:pointer; background:#fbfcfd;
    transition:border-color .15s, background .15s;
}
.ce-dropzone:hover{ border-color:var(--brand-accent); background:#f6fbfa; }
.ce-dropzone:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:2px; }
.ce-dropzone--over{
    border-color:var(--brand-primary);
    background: color-mix(in srgb, var(--brand-primary) 8%, #fff);
}
.ce-dropzone-icon{ font-size:1.6rem; color:var(--brand-primary); line-height:1; margin-bottom:.3rem; }

/* -- Couleurs par statut (le badge par défaut reste accent) ---------- */
.badge.ce-st-pieces_attendues{ background-color: var(--brand-secondary); color:#fff; } /* orange */
.badge.ce-st-immatricule{ background-color:#2e7d32; color:#fff; }                       /* vert */
.badge.ce-st-annule,
.badge.ce-st-cloture{ background-color:#6c757d; color:#fff; }                            /* gris */

/* -- Aperçu des pièces (back-office) -------------------------------- */
.ce-doc-thumb{
    height:56px; width:80px; object-fit:cover; border:1px solid #dee2e6;
    border-radius:.35rem; background:#f6f8fa; display:inline-block; flex:0 0 auto;
}
.ce-doc-thumb--file{
    display:inline-flex; align-items:center; justify-content:center;
    font-weight:700; font-size:.7rem; color:var(--brand-primary);
    text-decoration:none; letter-spacing:.03em;
}

/* -- Zone de dépôt compacte (une par pièce) ------------------------- */
.ce-dropzone--sm{
    padding:.5rem .75rem; display:flex; align-items:center; gap:.5rem;
    text-align:left; font-size:.9rem;
}
.ce-dropzone--sm .ce-dropzone-icon{ font-size:1.1rem; margin:0; }
.ce-piece{ border-bottom:1px solid #eef1f3; padding-bottom:.6rem; }

/* -- Activité réglementée --------------------------------------------- */
/* Activité réglementée : pastille pleine, distincte des tags pastel de secteur */
.badge.ce-badge-reg{ background-color:#b42318; color:#fff; border:1px solid #b42318; font-weight:600; }

/* -- Offres mises en avant (espace client) --------------------------- */
.ce-promo{ overflow:hidden; border-top:3px solid var(--brand-secondary); }
.ce-promo-img{ width:100%; height:150px; object-fit:cover; display:block; }
.ce-promo-title{ color:var(--brand-primary); font-weight:700; }
.ce-promo-body p:last-child{ margin-bottom:0; }
.ce-promo-body img{ max-width:100%; height:auto; }

/* L'attribut hidden l'emporte toujours (même sur .alert / .form-control). */
[hidden]{ display:none !important; }

/* -- Mobile : le nom du cabinet passe à la ligne au lieu de déborder -- */
@media (max-width: 991.98px){
    .ce-navbar .navbar-brand{ white-space:normal; min-width:0; flex:1 1 0; line-height:1.25; }
}
@media (max-width: 575.98px){
    .ce-navbar .navbar-brand{ font-size:1rem; }
}
@media (min-width: 992px){
    .ce-navbar .nav-link, .ce-navbar .navbar-nav .small{ white-space:nowrap; }
    .ce-navbar .navbar-brand{ font-size:1.05rem; }
}

/* -- Tags de secteur d'activité (couleur stable par secteur) --------- */
.badge.ce-sector{ font-weight:600; border:1px solid transparent; vertical-align:middle; }
h1 .badge.ce-sector{ font-size:.7rem; }
.badge.ce-sec-0{ background:#eef0f2; color:#495057; border-color:#d6d9dc; }
.badge.ce-sec-1{ background:#fdebd3; color:#7a4300; border-color:#f3c98f; } /* Artisanat & commerce */
.badge.ce-sec-2{ background:#ffe4e1; color:#8f2424; border-color:#f5b5ad; } /* BTP */
.badge.ce-sec-3{ background:#fce7f3; color:#8a1444; border-color:#f3b4d3; } /* Hôtellerie & restauration */
.badge.ce-sec-4{ background:#e0e7ff; color:#33309a; border-color:#b9c4f7; } /* Transport */
.badge.ce-sec-5{ background:#dcfce7; color:#14532d; border-color:#a7e3bd; } /* Immobilier */
.badge.ce-sec-6{ background:#e0f2fe; color:#0b4f75; border-color:#a9d7f3; } /* Services & conseil */
.badge.ce-sec-7{ background:#f3e8ff; color:#5f1d97; border-color:#d6b8f5; } /* Finance & assurance */
.badge.ce-sec-8{ background:#e6f4f1; color:#0f514d; border-color:#a9d9d1; } /* Professions libérales */
.badge.ce-sec-9{ background:#ecfccb; color:#365314; border-color:#c5e68f; } /* Agriculture */

/* -- Zone de suppression (repliée par défaut) ------------------------- */
.ce-danger{ border:1px solid #f1c6c6; border-radius:.6rem; padding:.6rem .9rem; background:#fff; }
.ce-danger > summary{ cursor:pointer; color:#a12622; font-weight:600; }

/* -- Logo (paramétrage + barre de navigation) ------------------------- */
.ce-logo-preview{ border:1px dashed #c7ced3; border-radius:.5rem; min-height:90px; display:flex;
    align-items:center; justify-content:center; padding:.5rem; background:#fbfcfd; }
.ce-logo-preview img{ max-width:100%; max-height:80px; }
.ce-brand-logo{ height:34px; width:auto; max-width:140px; object-fit:contain; background:#fff;
    border-radius:.3rem; padding:2px 4px; margin-right:.5rem; vertical-align:middle; }
.ce-auth-logo{ max-height:64px; max-width:220px; background:#fff; border-radius:.5rem; padding:6px 10px; margin-bottom:.5rem; }
.ce-auth-sub{ color:rgba(255,255,255,.75); }

/* -- FAQ (accordéon natif <details>) --------------------------------- */
.ce-faq-cat{ margin:1.2rem 0 .5rem; color:var(--brand-primary); }
.ce-faq{ border:1px solid #e6e9ec; border-radius:.6rem; background:#fff; overflow:hidden; }
.ce-faq-item + .ce-faq-item{ border-top:1px solid #eef1f3; }
.ce-faq-item > summary{ cursor:pointer; padding:.8rem 1rem; font-weight:600; list-style:none; position:relative; padding-right:2.4rem; }
.ce-faq-item > summary::-webkit-details-marker{ display:none; }
.ce-faq-item > summary::after{ content:"+"; position:absolute; right:1rem; top:50%; transform:translateY(-50%);
    font-size:1.2rem; color:var(--brand-secondary); }
.ce-faq-item[open] > summary::after{ content:"–"; }
.ce-faq-answer{ padding:0 1rem 1rem; color:#3d4a52; }
.ce-faq-answer p:last-child{ margin-bottom:0; }
details.card > summary{ cursor:pointer; }

/* -- Questionnaire de création (une question par écran) --------------- */
.ce-wizard{ border-radius:1rem; }
.ce-wz-top{ display:flex; justify-content:space-between; align-items:center; min-height:44px; margin-bottom:.75rem; }
.ce-wz-back{ background:none; border:0; padding:.2rem 0; color:var(--brand-primary); font-weight:600;
    text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.ce-wz-ring{ --p:0; width:44px; height:44px; border-radius:50%; margin-left:auto; display:grid; place-items:center;
    background:conic-gradient(var(--brand-primary) calc(var(--p) * 1%), #e5e9ec 0); }
.ce-wz-ring span{ width:34px; height:34px; border-radius:50%; background:#fff; display:grid; place-items:center;
    font-size:.7rem; font-weight:700; color:#55636b; }
.ce-wz-q{ font-size:1.6rem; font-weight:800; line-height:1.2; color:var(--brand-primary); margin:0 0 .5rem; }
.ce-wz-q:focus{ outline:none; }
.ce-wz-sub{ color:#55636b; margin-bottom:1rem; }
.ce-wz-step{ padding-bottom:.5rem; }
.ce-wizard:not(.ce-wz-js) .ce-wz-step{ border-bottom:1px solid #eef1f3; margin-bottom:1.5rem; }
.ce-wizard:not(.ce-wz-js) .ce-wz-nav, .ce-wizard:not(.ce-wz-js) .ce-wz-top{ display:none; }
.ce-opts{ display:flex; flex-direction:column; gap:.6rem; margin-top:1rem; }
.ce-opts-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); }
.ce-opt{ position:relative; display:block; cursor:pointer; margin:0; }
.ce-opt input{ position:absolute; opacity:0; width:1px; height:1px; }
.ce-opt-label{ display:block; padding:.9rem 1.1rem; border-radius:.5rem; border:1px solid transparent;
    background:color-mix(in srgb, var(--brand-primary) 8%, #fff); color:#1f2d35; font-weight:500;
    transition:background .12s, border-color .12s, color .12s; }
.ce-opt-hint{ display:block; font-size:.8rem; color:#5d6b73; font-weight:400; margin-top:.15rem; }
.ce-opt:hover .ce-opt-label{ border-color:color-mix(in srgb, var(--brand-primary) 45%, #fff); }
.ce-opt input:focus-visible + .ce-opt-label{ outline:2px solid var(--brand-accent); outline-offset:2px; }
.ce-opt input:checked + .ce-opt-label{ background:var(--brand-primary); color:#fff; border-color:var(--brand-primary); }
.ce-opt input:checked + .ce-opt-label .ce-opt-hint{ color:rgba(255,255,255,.85); }
.ce-wz-nav{ display:flex; justify-content:flex-end; margin-top:1.25rem; }
@media (max-width: 575.98px){ .ce-wz-q{ font-size:1.3rem; } }
@media (prefers-reduced-motion: reduce){ .ce-opt-label{ transition:none; } }

/* -- Étapes du dossier client --------------------------------------- */
.ce-stepper{ display:flex; gap:.5rem; margin-bottom:1.25rem; flex-wrap:wrap; }
.ce-stepper a{ flex:1 1 0; min-width:150px; display:flex; align-items:center; gap:.6rem; padding:.7rem .9rem;
    border-radius:.6rem; background:#fff; border:1px solid #e1e5e8; color:#33424b; text-decoration:none; font-weight:600; }
.ce-stepper a small{ font-weight:400; color:#6b7780; }
.ce-stepper-n{ width:1.8rem; height:1.8rem; border-radius:50%; display:grid; place-items:center; flex:0 0 auto;
    background:#eef1f3; color:#55636b; font-size:.85rem; }
.ce-stepper a.is-done .ce-stepper-n{ background:var(--brand-accent); color:#fff; }
.ce-stepper a.is-current{ border-color:var(--brand-primary); box-shadow:0 0 0 2px color-mix(in srgb, var(--brand-primary) 18%, transparent); }
.ce-stepper a.is-current .ce-stepper-n{ background:var(--brand-primary); color:#fff; }
.ce-step-next{ margin-top:1.25rem; padding-top:1rem; border-top:1px solid #eef1f3; text-align:right; }
.ce-step-next a{ font-weight:600; color:var(--brand-primary); }
.ce-recap li{ padding:.45rem 0 .45rem 1.6rem; position:relative; border-bottom:1px solid #f0f2f4; }
.ce-recap li::before{ position:absolute; left:0; font-weight:700; }
.ce-recap li.ok::before{ content:"✓"; color:#2e7d32; }
.ce-recap li.ko::before{ content:"!"; color:#b25e00; }
.ce-recap li.opt::before{ content:"–"; color:#8a959c; }
@media (max-width: 575.98px){ .ce-stepper a{ min-width:0; flex-basis:100%; } }
.ce-chip{ display:inline-block; font-size:.8rem; padding:.25rem .6rem; border-radius:1rem; background:#f1f4f6; border:1px solid #e1e5e8; }

/* -- v4 : cartes « Mes dossiers » (notifications + actions) ----------- */
.ce-dossier-card .ce-card-actions{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;
  margin-top:1rem; padding-top:.85rem; border-top:1px solid #edf0f2; }
.ce-dossier-card .ce-card-actions form{ margin:0; }
.badge.ce-badge-new{ background:var(--brand-secondary); color:#fff; font-weight:600; }
.ce-notifs{ font-size:.85rem; }
.ce-notifs li{ display:flex; justify-content:space-between; gap:1rem; padding:.4rem .6rem;
  border-left:3px solid #dfe4e8; background:#f8fafb; border-radius:0 .35rem .35rem 0; margin-bottom:.35rem; }
.ce-notifs li.is-new{ border-left-color:var(--brand-secondary); background:#fff7ee; font-weight:600; }
.ce-notifs .ce-notif-date{ color:#6c757d; font-weight:400; white-space:nowrap; font-size:.78rem; }
@media (max-width: 575.98px){ .ce-notifs li{ flex-direction:column; gap:.1rem; } }
/* Titre d'étape focalisé par le script : pas de cadre de focus visible */
.ce-card h2[tabindex="-1"]:focus, .ce-wz-q[tabindex="-1"]:focus{ outline:none; }
.ce-sent-box{ background:#eef8f5; border:1px solid #b9e2d6; border-radius:.5rem; padding:.75rem 1rem; }
.ce-notifs.is-stacked li{ flex-direction:column; gap:.1rem; }

/* -- v5 : offres en colonne (page FAQ) -------------------------------- */
.ce-promo-stack .ce-promo-heading{ color:var(--brand-primary); }
.ce-promo-stack .ce-promo-img{ max-height:150px; object-fit:cover; }

/* -- v5 : pop-ups du parcours (<dialog> natif) ------------------------ */
.ce-pop{ border:0; padding:0; border-radius:.9rem; width:min(480px, calc(100vw - 2rem));
  box-shadow:0 20px 60px rgba(15, 35, 45, .28); overflow:hidden; color:var(--ce-ink); }
.ce-pop::backdrop{ background:rgba(20, 40, 50, .45); }
.ce-pop[open]{ animation:cePopIn .22s ease-out; }
@keyframes cePopIn{ from{ opacity:0; transform:translateY(12px) scale(.98); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .ce-pop[open]{ animation:none; } }
.ce-pop-img{ width:100%; height:150px; object-fit:cover; display:block; }
.ce-pop-content{ padding:1.4rem 1.5rem 1.1rem; border-top:4px solid var(--brand-secondary); }
.ce-pop-title{ color:var(--brand-primary); font-weight:700; padding-right:1.5rem; }
.ce-pop-body{ font-size:.95rem; line-height:1.55; }
.ce-pop-body p:last-child{ margin-bottom:0; }
.ce-pop-actions{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-top:1.1rem; }
.ce-pop-off{ display:flex; gap:.4rem; align-items:center; margin-top:.75rem; color:#6c757d; cursor:pointer; }
.ce-pop-x{ position:absolute; top:.45rem; right:.6rem; z-index:1; border:0; background:rgba(255,255,255,.9);
  width:2rem; height:2rem; border-radius:50%; font-size:1.4rem; line-height:1; color:#4a5a63; }
.ce-pop-x:hover{ background:#fff; color:var(--brand-primary); }
.ce-pop[hidden]{ display:none !important; }

/* =====================================================================
   v6 — THÈME INSTITUTIONNEL (inspiré d'adheo.fr)
   Typographie Geologica (auto-hébergée, licence OFL), boutons « pilule »,
   en-tête blanc, cartes aérées, animations douces du parcours client.
   Toutes les animations sont désactivées si l'utilisateur a demandé
   « réduire les animations » dans son système (prefers-reduced-motion).
   ===================================================================== */
@font-face{
    font-family:'Geologica'; font-style:normal; font-display:swap; font-weight:100 900;
    src:url(../fonts/geologica-latin.woff2) format('woff2-variations'), url(../fonts/geologica-latin.woff2) format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
    font-family:'Geologica'; font-style:normal; font-display:swap; font-weight:100 900;
    src:url(../fonts/geologica-latin-ext.woff2) format('woff2-variations'), url(../fonts/geologica-latin-ext.woff2) format('woff2');
    unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
    --ce-font: 'Geologica', 'Segoe UI', system-ui, -apple-system, Roboto, Arial, sans-serif;
    --ce-bg: #f5f7f8;
    --ce-line: #e3e8eb;
    --ce-muted: #5d6b73;
    --ce-radius: 1rem;
    --ce-radius-sm: .65rem;
    --ce-shadow: 0 1px 2px rgba(20, 45, 55, .05), 0 6px 22px rgba(20, 45, 55, .06);
    --ce-shadow-hover: 0 4px 10px rgba(20, 45, 55, .08), 0 14px 34px rgba(20, 45, 55, .10);
    --ce-ease: cubic-bezier(.22, .8, .32, 1);
    /* Couleurs Bootstrap alignées sur la charte (liens, boutons, focus) */
    --bs-body-font-family: var(--ce-font);
    --bs-link-color: var(--brand-primary);
    --bs-link-color-rgb: 35, 74, 91;
    --bs-link-hover-color: var(--brand-accent);
    --bs-link-hover-color-rgb: 21, 136, 119;
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: 35, 74, 91;
}

body{ font-family:var(--ce-font); font-weight:400; letter-spacing:-.005em; color:var(--brand-primary);
      -webkit-font-smoothing:antialiased; }
body:not(.ce-auth-body){ background:var(--ce-bg); }
/* L'en-tête est fixe : les ancres et défilements automatiques s'arrêtent en dessous */
[id], [data-ce-stepper], .ce-wizard{ scroll-margin-top:96px; }
@media (max-width: 575.98px){
    .ce-page-head{ gap:.75rem; }
    .ce-page-head .btn{ padding:.45rem 1rem; font-size:.9rem; white-space:nowrap; }
}
h1, h2, h3, .h1, .h2, .h3, .h4, .h5, .h6{ font-family:var(--ce-font); color:var(--brand-primary); letter-spacing:-.015em; }
h1, .h1, .h2, .h3, .h4{ font-weight:800; }
.h5, .h6, h5, h6{ font-weight:700; }
.lead{ font-weight:300; }
.text-muted{ color:var(--ce-muted) !important; }
a{ text-underline-offset:3px; }

/* -- En-tête blanc, comme le site institutionnel ---------------------- */
.ce-navbar{ background:#fff; box-shadow:0 1px 0 var(--ce-line), 0 6px 20px rgba(20,45,55,.04);
    position:sticky; top:0; z-index:1030; padding-top:.65rem; padding-bottom:.65rem; }
.ce-navbar .navbar-brand{ color:var(--brand-primary); gap:.15rem; }
.ce-brand-name{ font-weight:800; font-size:1.15rem; letter-spacing:-.02em; color:var(--brand-primary); line-height:1.1; }
.ce-brand-sub{ display:block; font-weight:500; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-secondary); }
.ce-brand-logo{ background:transparent; padding:0; height:40px; max-width:150px; }
.ce-navbar .nav-link{ color:var(--brand-primary); font-weight:500; position:relative; padding-left:.6rem !important; padding-right:.6rem !important; }
.ce-navbar .nav-link::after{ content:""; position:absolute; left:.6rem; right:.6rem; bottom:.2rem; height:2px;
    background:var(--brand-secondary); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ce-ease); }
.ce-navbar .nav-link:hover, .ce-navbar .nav-link:focus-visible{ color:var(--brand-primary); }
.ce-navbar .nav-link:hover::after, .ce-navbar .nav-link.active::after{ transform:scaleX(1); }
.ce-navbar .ce-nav-user{ color:var(--ce-muted); font-size:.85rem; }
.ce-navbar .navbar-toggler{ border-color:var(--ce-line); border-radius:.6rem; }
@media (max-width: 991.98px){
    .ce-navbar .navbar-collapse{ padding:.75rem 0 .25rem; }
    .ce-navbar .nav-link::after{ display:none; }
}

/* -- Boutons « pilule » ------------------------------------------------ */
.btn{ --bs-btn-border-radius:50rem; --bs-btn-font-weight:600; border-radius:50rem;
      font-family:var(--ce-font); letter-spacing:.005em;
      transition:background-color .2s, border-color .2s, color .2s, box-shadow .25s var(--ce-ease), transform .25s var(--ce-ease); }
.btn:not(.btn-sm):not(.btn-lg):not(.btn-link){ padding:.6rem 1.35rem; }
.btn-sm{ padding:.32rem .9rem; }
.btn-lg{ padding:.85rem 1.8rem; font-size:1.05rem; }
.btn-link{ border-radius:.3rem; font-weight:500; }
.ce-btn-primary, .ce-btn-secondary{ box-shadow:0 2px 0 rgba(0,0,0,.04); }
.ce-btn-primary:hover, .ce-btn-secondary:hover{ transform:translateY(-2px); box-shadow:0 8px 20px color-mix(in srgb, var(--brand-primary) 22%, transparent); }
.ce-btn-secondary:hover{ box-shadow:0 8px 20px color-mix(in srgb, var(--brand-secondary) 35%, transparent); }
.ce-btn-primary:active, .ce-btn-secondary:active{ transform:translateY(0); box-shadow:none; }
/* Boutons Bootstrap utilisés dans l'administration, recolorés à la charte */
.btn-outline-primary{ --bs-btn-color:var(--brand-primary); --bs-btn-border-color:color-mix(in srgb, var(--brand-primary) 45%, #fff);
    --bs-btn-hover-bg:var(--brand-primary); --bs-btn-hover-border-color:var(--brand-primary); --bs-btn-hover-color:#fff;
    --bs-btn-active-bg:var(--brand-primary); --bs-btn-active-border-color:var(--brand-primary); }
.btn-outline-secondary, .ce-btn-ghost{ --bs-btn-color:var(--brand-primary); --bs-btn-border-color:var(--ce-line);
    --bs-btn-hover-bg:color-mix(in srgb, var(--brand-primary) 7%, #fff); --bs-btn-hover-border-color:color-mix(in srgb, var(--brand-primary) 35%, #fff);
    --bs-btn-hover-color:var(--brand-primary); --bs-btn-active-bg:color-mix(in srgb, var(--brand-primary) 12%, #fff); }
.ce-btn-ghost{ border:1px solid var(--bs-btn-border-color); color:var(--bs-btn-color); background:#fff; }
/* Flèche animée sur les boutons d'avancée (« Continuer », « Commencer ») */
.ce-btn-arrow::after{ content:"→"; display:inline-block; margin-left:.5rem; transition:transform .25s var(--ce-ease); }
.ce-btn-arrow:hover::after, .ce-btn-arrow:focus-visible::after{ transform:translateX(4px); }
/* État « envoi en cours » posé par le script au moment de l'envoi d'un formulaire */
.btn.is-loading{ position:relative; color:transparent !important; pointer-events:none; }
.btn.is-loading::after{ content:""; position:absolute; inset:0; margin:auto; width:1.1em; height:1.1em;
    border-radius:50%; border:2px solid rgba(255,255,255,.6); border-top-color:#fff; animation:ceSpin .7s linear infinite; transform:none; }
.btn-outline-danger.is-loading::after, .btn-link.is-loading::after, .ce-btn-ghost.is-loading::after{ border-color:rgba(0,0,0,.15); border-top-color:var(--brand-primary); }
@keyframes ceSpin{ to{ transform:rotate(360deg); } }

/* -- Formulaires ------------------------------------------------------- */
.form-control, .form-select{ border-radius:var(--ce-radius-sm); border-color:#d7dee2; font-family:var(--ce-font); }
.form-control:not(.form-control-sm), .form-select:not(.form-select-sm){ padding:.6rem .9rem; }
.form-control:focus, .form-select:focus{ border-color:var(--brand-accent);
    box-shadow:0 0 0 .22rem color-mix(in srgb, var(--brand-accent) 18%, transparent); }
.form-label{ font-weight:500; }
.form-check-input:checked{ background-color:var(--brand-accent); border-color:var(--brand-accent); }

/* -- Cartes ---------------------------------------------------------- */
.ce-card{ border:1px solid var(--ce-line); border-radius:var(--ce-radius); box-shadow:var(--ce-shadow); }
.ce-card.ce-link:hover, a.ce-card:hover{ box-shadow:var(--ce-shadow-hover); transform:translateY(-2px); }
a.ce-card{ transition:box-shadow .25s var(--ce-ease), transform .25s var(--ce-ease); }
.ce-dossier-card{ transition:box-shadow .25s var(--ce-ease), transform .25s var(--ce-ease); }
.ce-dossier-card:hover{ box-shadow:var(--ce-shadow-hover); }
.alert{ border-radius:var(--ce-radius-sm); border-width:0 0 0 4px; }
.alert-success{ border-left-color:var(--brand-accent); }
.alert-warning{ border-left-color:#e0a106; }
.alert-danger{ border-left-color:#c0392b; }
.alert-info{ border-left-color:var(--brand-primary); background:color-mix(in srgb, var(--brand-primary) 7%, #fff); color:var(--brand-primary); }
.badge{ border-radius:50rem; font-weight:600; padding:.38em .75em; }
.progress{ border-radius:50rem; background:#e7ecef; }
.ce-progress{ background:linear-gradient(90deg, var(--brand-secondary), color-mix(in srgb, var(--brand-secondary) 70%, #ffd29a)); }
.table{ --bs-table-color:var(--brand-primary); }
.breadcrumb{ --bs-breadcrumb-divider-color:var(--ce-muted); }
.breadcrumb a{ color:var(--brand-accent); text-decoration:none; }
.breadcrumb a:hover{ text-decoration:underline; }

/* -- Accueil : bandeau comme le site institutionnel -------------------- */
.ce-hero{ background:
      radial-gradient(1200px 400px at 110% -10%, color-mix(in srgb, var(--brand-accent) 55%, transparent), transparent 60%),
      linear-gradient(135deg, var(--brand-primary) 0%, color-mix(in srgb, var(--brand-primary) 80%, #000) 100%);
    border-radius:1.5rem !important; position:relative; overflow:hidden; }
.ce-hero h1, .ce-hero .ce-hero-title{ color:#fff; }
.ce-hero-tagline{ display:inline-block; font-weight:500; letter-spacing:.14em; text-transform:uppercase; font-size:.8rem;
    color:var(--brand-secondary); margin-bottom:.75rem; }
.ce-hero .lead{ color:rgba(255,255,255,.88); }
.ce-step{ border-radius:50rem; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); }

/* -- Pied de page en bandeau ------------------------------------------- */
.ce-footer{ background:var(--brand-primary); color:rgba(255,255,255,.75); margin-top:2rem; }
.ce-footer a{ color:#fff; }
.ce-footer a:hover{ color:var(--brand-secondary); }
.ce-footer-tagline{ display:block; letter-spacing:.14em; text-transform:uppercase; font-size:.72rem; color:var(--brand-secondary); margin-bottom:.35rem; }

/* -- Authentification -------------------------------------------------- */
.ce-auth-body{ background:
      radial-gradient(900px 380px at 100% 0%, color-mix(in srgb, var(--brand-accent) 45%, transparent), transparent 60%),
      linear-gradient(160deg, var(--brand-primary) 0%, color-mix(in srgb, var(--brand-primary) 70%, #000) 100%); }
.ce-auth-body .ce-card{ border:0; border-radius:1.25rem; box-shadow:0 24px 60px rgba(0,0,0,.25); }

/* -- Questionnaire : options en grands boutons -------------------------- */
.ce-wizard{ border-radius:1.5rem; }
.ce-wz-q{ font-size:1.75rem; letter-spacing:-.02em; }
.ce-opt-label{ border-radius:var(--ce-radius); border:1.5px solid var(--ce-line); background:#fff; color:var(--brand-primary);
    padding:1rem 3rem 1rem 1.2rem; font-weight:600; position:relative;
    transition:border-color .2s, background-color .2s, color .2s, box-shadow .25s var(--ce-ease), transform .25s var(--ce-ease); }
.ce-opt-label::after{ content:""; position:absolute; right:1.1rem; top:50%; width:1.35rem; height:1.35rem; margin-top:-.675rem;
    border-radius:50%; border:1.5px solid #c9d2d7; background:#fff center/60% no-repeat; transition:all .25s var(--ce-ease); }
.ce-opt:hover .ce-opt-label{ border-color:var(--brand-secondary); transform:translateY(-2px); box-shadow:var(--ce-shadow); }
.ce-opt input:checked + .ce-opt-label{ background:var(--brand-primary); border-color:var(--brand-primary); color:#fff; box-shadow:var(--ce-shadow-hover); }
.ce-opt input:checked + .ce-opt-label::after{ border-color:var(--brand-secondary); background-color:var(--brand-secondary);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");
    animation:cePop .35s var(--ce-ease); }
.ce-opt-hint{ color:var(--ce-muted); }
.ce-wz-back{ text-decoration:none; color:var(--brand-accent); }
.ce-wz-back:hover{ text-decoration:underline; }
/* Anneau de progression animé (interpolation de --p) */
@property --p{ syntax:'<number>'; inherits:true; initial-value:0; }
.ce-wz-ring{ width:52px; height:52px; transition:--p .6s var(--ce-ease);
    background:conic-gradient(var(--brand-secondary) calc(var(--p) * 1%), #e7ecef 0); }
.ce-wz-ring span{ width:42px; height:42px; color:var(--brand-primary); font-size:.75rem; }

/* -- Étapes du dossier ---------------------------------------------------- */
.ce-stepper a{ border-radius:50rem; padding:.55rem 1rem .55rem .6rem; border:1.5px solid var(--ce-line);
    transition:border-color .2s, box-shadow .25s var(--ce-ease), transform .25s var(--ce-ease); }
.ce-stepper a:hover{ transform:translateY(-1px); border-color:color-mix(in srgb, var(--brand-primary) 35%, #fff); }
.ce-stepper a.is-current{ border-color:var(--brand-secondary); box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-secondary) 20%, transparent); }
.ce-stepper a.is-current .ce-stepper-n{ background:var(--brand-secondary); }
.ce-stepper a.is-done .ce-stepper-n{ animation:cePop .45s var(--ce-ease) both; }
.ce-dropzone{ border-radius:var(--ce-radius-sm); border-color:#cdd6db; transition:border-color .2s, background-color .2s, transform .2s var(--ce-ease); }
.ce-dropzone--over{ transform:scale(1.01); border-color:var(--brand-secondary); background:color-mix(in srgb, var(--brand-secondary) 7%, #fff); }
.ce-dropzone--over .ce-dropzone-icon{ animation:ceBob .7s ease-in-out infinite; }
.ce-dropzone-icon{ color:var(--brand-secondary); }
.ce-sent-box{ border-radius:var(--ce-radius-sm); position:relative; overflow:hidden; }
.ce-pop{ border-radius:1.25rem; }

/* -- Animations du parcours client ---------------------------------------- */
@keyframes cePop{ 0%{ transform:scale(.4); opacity:0; } 60%{ transform:scale(1.15); opacity:1; } 100%{ transform:scale(1); } }
@keyframes ceRise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes ceInFwd{ from{ opacity:0; transform:translateX(36px); } to{ opacity:1; transform:none; } }
@keyframes ceInBack{ from{ opacity:0; transform:translateX(-36px); } to{ opacity:1; transform:none; } }
@keyframes ceBob{ 0%, 100%{ transform:translateY(0); } 50%{ transform:translateY(-4px); } }
@keyframes ceConfetti{ 0%{ transform:translate(0,0) rotate(0); opacity:1; }
    100%{ transform:translate(var(--dx), var(--dy)) rotate(var(--rot)); opacity:0; } }
/* Questionnaire : la question glisse, les réponses apparaissent en cascade */
.ce-wz-step.is-in-fwd{ animation:ceInFwd .42s var(--ce-ease) both; }
.ce-wz-step.is-in-back{ animation:ceInBack .42s var(--ce-ease) both; }
.ce-wz-step.is-in-fwd .ce-opt, .ce-wz-step.is-in-back .ce-opt{ animation:ceRise .45s var(--ce-ease) both; animation-delay:calc(80ms + var(--i, 0) * 45ms); }
/* Pages client : les blocs apparaissent en douceur à l'ouverture */
.ce-reveal > *{ animation:ceRise .5s var(--ce-ease) both; }
.ce-reveal > *:nth-child(2){ animation-delay:.06s; } .ce-reveal > *:nth-child(3){ animation-delay:.12s; }
.ce-reveal > *:nth-child(4){ animation-delay:.18s; } .ce-reveal > *:nth-child(5){ animation-delay:.24s; }
.ce-reveal > *:nth-child(n+6){ animation-delay:.3s; }
/* Panneau d'étape affiché (fiche dossier) */
[data-panel-id].is-shown{ animation:ceRise .4s var(--ce-ease) both; }
/* Pièce déposée : coche qui apparaît */
.ce-piece .text-success{ display:inline-block; animation:cePop .45s var(--ce-ease) both; }
/* Dossier tout juste envoyé : coche + confettis aux couleurs du cabinet */
.ce-celebrate{ animation:cePop .5s var(--ce-ease) both; }
.ce-confetti{ position:absolute; left:50%; top:40%; width:8px; height:12px; border-radius:2px; pointer-events:none;
    animation:ceConfetti 1.3s cubic-bezier(.2,.7,.3,1) forwards; }

@media (prefers-reduced-motion: reduce){
    *, *::before, *::after{ animation-duration:.001ms !important; animation-delay:0s !important; transition-duration:.001ms !important; }
    .ce-confetti{ display:none; }
}
@media (max-width: 575.98px){
    .ce-wz-q{ font-size:1.35rem; }
    .ce-opt-label{ padding:.85rem 2.8rem .85rem 1rem; }
    .ce-brand-name{ font-size:1rem; }
}
.ce-auth-body > .container > .row > div > p a{ color:rgba(255,255,255,.85); }
.ce-auth-body > .container > .row > div > p a:hover{ color:#fff; }

/* -- v7 : formes avec accompagnement obligatoire ---------------------- */
.badge.ce-badge-advisor{ background:var(--brand-accent); color:#fff; }
.ce-form-card .badge{ vertical-align:middle; }
.ce-family{ color:var(--brand-secondary); letter-spacing:.08em; font-size:.78rem; }

/* -- v8 : bandeau d'accueil paramétrable ------------------------------- */
.ce-hero{ background-color:var(--brand-primary); }
.ce-hero-preview{ border-radius:1rem; min-height:170px; padding:1.4rem 1.6rem; color:#fff; display:flex; flex-direction:column;
    justify-content:center; gap:.4rem; background-color:var(--brand-primary); }
.ce-hero-preview strong{ font-size:1.35rem; font-weight:800; line-height:1.2; max-width:28rem; }
.ce-hero-preview .ce-hero-tagline{ margin:0; }
.ce-hero-preview-btn{ align-self:flex-start; background:var(--brand-secondary); border-radius:50rem; padding:.35rem 1rem; font-weight:600; font-size:.85rem; margin-top:.3rem; }
/* -- v8 : accueil en deux colonnes (formes + offres) ------------------- */


/* -- v8.2 : couleurs du dégradé avec opacité ---------------------------- */
.ce-color-picker{ border:1px solid #c9d2d7 !important; padding:.3rem; max-width:3.2rem; }
.ce-swatch{ padding:.3rem; background:#fff; }
.ce-swatch > span{ display:block; width:1.9rem; height:1.6rem; border-radius:.35rem; border:1px solid #c9d2d7;
    background-color:transparent; box-shadow:inset 0 0 0 999px transparent; }
.ce-swatch{ background-image:conic-gradient(#e3e8eb 25%, #fff 0 50%, #e3e8eb 0 75%, #fff 0); background-size:10px 10px; }

/* -- v10 : cloche de notifications dans le menu ------------------------
   Sans notification : cloche discrète. Avec notifications : bouton rouge,
   cloche + nombre de non lues à côté. */
.ce-bell{ --ce-bell-red:#d92d20; }
.ce-bell-btn{ display:inline-flex; align-items:center; gap:.45rem; height:42px; min-width:42px; justify-content:center;
    padding:0 .75rem !important; border:1px solid var(--ce-line); background:#fff; color:var(--brand-primary); border-radius:50rem; }
.ce-bell-btn:hover, .ce-bell-btn[aria-expanded="true"]{ border-color:color-mix(in srgb, var(--brand-primary) 35%, #fff); background:#f6f9fa; color:var(--brand-primary); }
.ce-bell-btn.has-unread{ background:var(--ce-bell-red); border-color:var(--ce-bell-red); color:#fff; padding:0 .9rem 0 .75rem !important;
    box-shadow:0 4px 14px rgba(217,45,32,.35); }
.ce-bell-btn.has-unread:hover, .ce-bell-btn.has-unread[aria-expanded="true"]{ background:#b42318; border-color:#b42318; color:#fff; }
.ce-bell-btn.has-unread .ce-bell-icon{ transform-origin:50% 10%; animation:ceBellRing 1.2s ease-in-out .6s 2; }
@keyframes ceBellRing{ 0%,100%{ transform:rotate(0); } 15%{ transform:rotate(14deg); } 30%{ transform:rotate(-12deg); }
    45%{ transform:rotate(8deg); } 60%{ transform:rotate(-5deg); } 75%{ transform:rotate(2deg); } }
.ce-bell-count{ font-weight:700; font-size:.95rem; line-height:1; letter-spacing:0; }

.ce-bell .ce-bell-menu{ width:380px; max-width:calc(100vw - 24px); padding:0; border:1px solid var(--ce-line);
    border-radius:1rem; overflow:hidden; margin-top:.6rem; box-shadow:0 18px 50px rgba(20,45,55,.18) !important; }
.ce-bell-head{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.25rem;
    border-bottom:1px solid var(--ce-line); }
.ce-bell-head strong{ font-size:1rem; color:var(--brand-primary); }
.ce-bell-head .ce-bell-unread{ display:inline-block; margin-left:.4rem; padding:.1rem .5rem; border-radius:50rem;
    background:var(--ce-bell-red); color:#fff; font-size:.72rem; font-weight:700; vertical-align:middle; }
.ce-bell-head form{ margin:0; }
.ce-bell-head .btn-link{ font-size:.82rem; color:var(--brand-accent); text-decoration:none; }
.ce-bell-head .btn-link:hover{ text-decoration:underline; }
.ce-bell-list{ max-height:min(440px, 60vh); overflow-y:auto; }
.ce-bell-item{ display:block; padding:.9rem 1.25rem .9rem 2rem; text-decoration:none; color:var(--brand-primary);
    position:relative; border-bottom:1px solid #eef2f4; }
.ce-bell-item:hover, .ce-bell-item:focus-visible{ background:#f6f9fa; color:var(--brand-primary); outline:none; }
.ce-bell-item.is-new{ background:#fff5f4; font-weight:600; }
.ce-bell-item.is-new::before{ content:""; position:absolute; left:1rem; top:1.25rem; width:8px; height:8px; border-radius:50%;
    background:var(--ce-bell-red); }
.ce-bell-subj{ display:block; font-size:.9rem; line-height:1.35; }
.ce-bell-date{ display:block; font-size:.76rem; color:var(--ce-muted); font-weight:400; margin-top:.3rem; }
.ce-bell-empty{ display:flex; flex-direction:column; align-items:center; gap:.6rem; padding:1.75rem 1.25rem; margin:0;
    color:var(--ce-muted); font-size:.9rem; text-align:center; }
.ce-bell-empty svg{ color:#c9d2d7; }
.ce-bell-all{ display:block; text-align:center; padding:.85rem 1.25rem; font-size:.86rem; font-weight:600;
    text-decoration:none; color:var(--brand-accent); background:#fafbfc; border-top:1px solid var(--ce-line); }
.ce-bell-all:hover, .ce-bell-all:focus-visible{ text-decoration:underline; outline:none; background:#f3f6f7; }
@media (max-width: 991.98px){
    /* Sur mobile : panneau pleine largeur sous l'en-tête */
    .ce-bell .ce-bell-menu{ position:fixed; left:12px; right:12px; top:68px; width:auto; max-width:none; margin-top:0; }
}
.ce-notif-page > li{ padding:.75rem .9rem; border-left:3px solid #dfe4e8; background:#f8fafb; border-radius:0 .5rem .5rem 0; margin-bottom:.5rem; }
.ce-notif-page > li.is-new{ border-left-color:var(--brand-secondary); background:#fff7ee; }
.ce-notif-body{ color:#3d4a52; }
.ce-bell-head strong, .ce-bell-head .btn-link{ white-space:nowrap; }
@media (max-width: 575.98px){ .ce-bell-head{ flex-wrap:wrap; row-gap:.4rem; } }

/* Accueil d'un nouvel utilisateur sur le questionnaire (v10.3) */
.ce-welcome { padding: 1rem 1.25rem; border-radius: 14px; background: rgba(21,136,119,.08); border-left: 4px solid #158877; }
.ce-welcome .h5 { color: #234A5B; font-weight: 700; }

/* Suppression de dossiers (v12) */
.ce-danger-zone { border: 1px solid rgba(217,45,32,.35); background: rgba(217,45,32,.04); border-radius: 14px; padding: 1rem 1.25rem; }
.ce-danger-card { border-color: rgba(217,45,32,.35) !important; }
.ce-purge summary { list-style: none; cursor: pointer; white-space: nowrap; }
.ce-purge summary::-webkit-details-marker { display: none; }
.ce-purge[open] { min-width: 13rem; }

