/* ==========================================================================
   Espace parents (CoPa) — portail de connexion et tableau de bord.
   Charte du site : turquoise #4CAAB0, turquoise foncé #2E7F85, turquoise clair
   #BEE4E7, encre #1B1F27, texte #7A7A7A, titres en Manrope.
   Le fond est d'un seul tenant, avec des voiles de couleur diffus : les cartes
   en verre dépoli ont ainsi quelque chose à capter, et aucune bande de couleur
   ne vient casser la page.
   ========================================================================== */

.copa {
    --copa-teal: #4CAAB0;
    --copa-deep: #2E7F85;
    --copa-light: #BEE4E7;
    --copa-ink: #1B1F27;
    --copa-text: #7A7A7A;
    --copa-line: rgba(76, 170, 176, .16);
    --copa-radius: 20px;

    position: relative;
    overflow: hidden;
    /* Assez haut pour que le pied de page du site reste en bas de l'écran,
       même quand la liste ne contient qu'un document. */
    min-height: calc(100vh - 320px);
    background:
        radial-gradient(62% 44% at 84% 4%, rgba(76, 170, 176, .20), rgba(76, 170, 176, 0) 70%),
        radial-gradient(58% 42% at 8% 36%, rgba(190, 228, 231, .40), rgba(190, 228, 231, 0) 70%),
        #FAFDFD;
    font-family: "Manrope", "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--copa-ink);
    -webkit-font-smoothing: antialiased;
}
.copa *, .copa *::before, .copa *::after { box-sizing: border-box; }
.copa .copa-i { width: 1.25em; height: 1.25em; flex: none; }

/* Le site habille TOUS les <button> (réinitialisation du thème Hello Elementor) :
   bordure, coins carrés, largeur automatique, fond au survol. Nos boutons s'en
   défont ici. Deux classes suffisent à passer devant « button:hover », sans
   recourir à !important, que nos propres fonds ne pourraient plus franchir. */
.copa .copa-doc__tete,
.copa .copa-chip,
.copa .copa-oeil,
.copa .copa-suite,
.copa .copa-bouton {
    appearance: none; -webkit-appearance: none;
    width: auto; margin: 0;
    font-family: inherit; line-height: normal;
    text-transform: none;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}
.copa .copa-doc__tete:hover,
.copa .copa-doc__tete:focus,
.copa .copa-suite:hover,
.copa .copa-suite:focus,
.copa .copa-oeil:hover,
.copa .copa-oeil:focus,
.copa .copa-chip:focus {
    background: none;
    color: inherit;
}

/* ── Bandeau de titre, comme les autres pages intérieures ─────────────── */

.copa-hero {
    position: relative;
    padding: 104px 40px 40px;
    text-align: center;
}
.copa-hero__inner { max-width: 820px; margin: 0 auto; }

.copa-eyebrow {
    margin: 0 0 16px;
    font-size: 13px; font-weight: 600; line-height: 1;
    letter-spacing: .16em; text-transform: uppercase;
    color: #9F9F9F;
}

/* Le titre et son trait au crayon : mêmes tracés, mêmes épaisseurs et même
   animation que sur les autres pages du site (voir front.js). */
.copa-title {
    position: relative;
    display: inline-block;
    margin: 0;
    padding-bottom: 1.05em;
    font-size: 52px; font-weight: 800; line-height: 1.08;
    letter-spacing: -2px;
    white-space: nowrap;
    color: var(--copa-teal);
}
.copa .seak-pencil-underline {
    position: absolute;
    left: -.16em; right: -.16em; bottom: -.72em;
    width: calc(100% + .32em); height: 2.40em;
    pointer-events: none;
    z-index: 5;
    /* Le site applique « mix-blend-mode: multiply » à tout .seak-pencil-underline.
       Au milieu des cartes en verre dépoli, cette fusion empêchait le tracé de
       s'afficher : on la neutralise ici. Sur ce fond clair, le trait rend
       exactement pareil. Pas de calque forcé non plus, pour la même raison. */
    mix-blend-mode: normal;
}
.copa .seak-pencil-underline .sketch-stroke {
    stroke: rgba(20, 20, 20, .86);
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}
.copa .seak-pencil-underline .sketch-w1 { stroke-width: 22; }
.copa .seak-pencil-underline .sketch-w2 { stroke-width: 18; opacity: .74; }

.copa-lede {
    max-width: 660px;
    margin: .15em auto 0;
    font-size: 17px; line-height: 1.75;
    color: var(--copa-text);
}

/* ── Verre dépoli, avec repli pour les navigateurs qui l'ignorent ─────── */

.copa-portail,
.copa-doc,
.copa .copa-chip,
.copa-vide {
    background: rgba(255, 255, 255, .62);
    -webkit-backdrop-filter: blur(20px) saturate(165%);
    backdrop-filter: blur(20px) saturate(165%);
    border: 1px solid rgba(255, 255, 255, .72);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .copa-portail, .copa-doc, .copa .copa-chip, .copa-vide {
        background: rgba(255, 255, 255, .95);
        border-color: var(--copa-line);
    }
}

/* ── Le portail de connexion ──────────────────────────────────────────── */

.copa-portail-zone { padding: 8px 20px 120px; }
.copa-portail {
    max-width: 460px;
    margin: 0 auto;
    padding: 44px 40px 36px;
    text-align: center;
    border-radius: 28px;
    box-shadow:
        0 30px 60px -28px rgba(27, 31, 39, .26),
        inset 0 1px 0 rgba(255, 255, 255, .9);
}
.copa-portail__badge {
    width: 64px; height: 64px;
    margin: 0 auto 22px;
    display: grid; place-items: center;
    color: #FFFFFF;
    background: linear-gradient(135deg, var(--copa-teal), var(--copa-deep));
    border-radius: 50%;
    box-shadow: 0 16px 28px -14px rgba(46, 127, 133, .8);
}
.copa-portail__badge .copa-i { width: 28px; height: 28px; stroke-width: 1.7; }
.copa-portail__titre {
    margin: 0 0 10px;
    font-size: 24px; font-weight: 800; letter-spacing: -.5px;
    color: var(--copa-ink);
}
.copa-portail__texte {
    margin: 0 0 26px;
    font-size: 15px; line-height: 1.65;
    color: var(--copa-text);
}
.copa-portail__aide {
    margin: 20px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--copa-line);
    font-size: 13px; line-height: 1.6;
    color: #9AA3A6;
}

.copa-form { text-align: left; }
.copa-champ { margin-bottom: 16px; }
.copa-label {
    display: block; margin-bottom: 8px;
    font-size: 12px; font-weight: 600;
    letter-spacing: .1em; text-transform: uppercase;
    color: var(--copa-deep);
}
.copa-input-wrap { position: relative; }
.copa .copa-input {
    width: 100%;
    height: 54px;
    padding: 0 52px 0 20px;
    font-family: inherit; font-size: 16px;
    color: var(--copa-ink);
    background: rgba(255, 255, 255, .75);
    border: 1.5px solid rgba(76, 170, 176, .22);
    border-radius: 100px;
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.copa .copa-input::placeholder { color: #C3CDD0; letter-spacing: .1em; }
.copa .copa-input:focus {
    background: #FFFFFF;
    border-color: var(--copa-teal);
    box-shadow: 0 0 0 4px rgba(76, 170, 176, .15);
}
.copa .copa-input.is-erreur { border-color: #D9534F; box-shadow: 0 0 0 4px rgba(217, 83, 79, .12); }

.copa .copa-oeil {
    position: absolute; right: 8px; top: 50%;
    transform: translateY(-50%);
    width: 40px; height: 40px;
    color: #A8B4B7;
    border-radius: 50%;
    cursor: pointer;
    transition: color .18s ease, background-color .18s ease;
}
.copa .copa-oeil:hover { color: var(--copa-deep); background: rgba(76, 170, 176, .10); }
.copa .copa-oeil .copa-i {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 19px; height: 19px;
}
.copa .copa-oeil .copa-i:last-child,
.copa .copa-oeil.is-on .copa-i:first-child { display: none; }
.copa .copa-oeil.is-on .copa-i:last-child { display: block; }

.copa-erreur {
    margin: 10px 2px 0;
    font-size: 13px; font-weight: 500;
    color: #C9302C;
}

/* ── Boutons ──────────────────────────────────────────────────────────── */

.copa .copa-bouton {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    padding: 0 26px; height: 52px;
    font-size: 15px; font-weight: 600;
    color: #FFFFFF !important;
    text-decoration: none;
    background: linear-gradient(135deg, var(--copa-teal), var(--copa-deep));
    border-radius: 100px;
    cursor: pointer;
    box-shadow: 0 14px 26px -16px rgba(46, 127, 133, .9);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.copa .copa-bouton:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
    box-shadow: 0 18px 30px -16px rgba(46, 127, 133, 1);
}
.copa .copa-bouton:active { transform: translateY(0); }
.copa .copa-bouton--bloc { width: 100%; }

/* ── Le tableau de bord des documents ─────────────────────────────────── */

.copa-docs { max-width: 860px; margin: 0 auto; padding: 8px 20px 120px; }

.copa-outils {
    display: flex; flex-direction: column; align-items: center; gap: 16px;
    margin: 0 0 28px;
}
.copa-recherche { position: relative; width: 100%; max-width: 420px; }
.copa-recherche .copa-i {
    position: absolute; left: 18px; top: 50%;
    transform: translateY(-50%);
    width: 19px; height: 19px;
    color: #A8B4B7;
    pointer-events: none;
}
.copa .copa-recherche__champ {
    width: 100%; height: 50px;
    padding: 0 20px 0 48px;
    font-family: inherit; font-size: 15px;
    color: var(--copa-ink);
    background: rgba(255, 255, 255, .66);
    -webkit-backdrop-filter: blur(18px) saturate(160%);
    backdrop-filter: blur(18px) saturate(160%);
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 100px;
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.copa .copa-recherche__champ::placeholder { color: #A8B4B7; }
.copa .copa-recherche__champ:focus {
    background: rgba(255, 255, 255, .92);
    border-color: rgba(76, 170, 176, .55);
    box-shadow: 0 0 0 4px rgba(76, 170, 176, .13);
}
.copa .copa-recherche__champ::-webkit-search-cancel-button { cursor: pointer; }

.copa-filtres {
    display: flex; flex-wrap: wrap; gap: 9px;
    justify-content: center;
    margin: 0;
}

.copa-aucun-resultat {
    margin: 0 0 18px;
    text-align: center;
    font-size: 15px;
    color: var(--copa-text);
}

/* Chargement au fil du défilement : trois points discrets en bas de liste. */
.copa .copa-suite {
    display: flex; justify-content: center; align-items: center; gap: 7px;
    width: 100%;
    padding: 26px 0 6px;
    cursor: pointer;
}
.copa-suite__point {
    width: 7px; height: 7px;
    background: var(--copa-teal);
    border-radius: 50%;
    opacity: .35;
    animation: copa-respire 1.1s ease-in-out infinite;
}
.copa-suite__point:nth-child(2) { animation-delay: .18s; }
.copa-suite__point:nth-child(3) { animation-delay: .36s; }
@keyframes copa-respire {
    0%, 100% { opacity: .28; transform: translateY(0); }
    50%      { opacity: .9;  transform: translateY(-4px); }
}
.copa .copa-chip {
    padding: 9px 18px;
    font-size: 13.5px; font-weight: 600;
    color: var(--copa-deep);
    border-radius: 100px;
    cursor: pointer;
    transition: color .18s ease, border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.copa .copa-chip:hover { border-color: rgba(76, 170, 176, .45); }
.copa .copa-chip.is-on {
    color: #FFFFFF;
    background: linear-gradient(135deg, var(--copa-teal), var(--copa-deep));
    border-color: transparent;
    box-shadow: 0 10px 20px -12px rgba(46, 127, 133, .95);
}

.copa-liste { margin: 0; padding: 0; list-style: none; }

.copa-doc {
    margin-bottom: 12px;
    border-radius: var(--copa-radius);
    overflow: hidden;
    transition: background-color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.copa-doc:hover {
    background: rgba(255, 255, 255, .78);
    border-color: rgba(76, 170, 176, .28);
    box-shadow: 0 14px 28px -24px rgba(27, 31, 39, .3);
}
.copa-doc[hidden] { display: none; }
.copa-doc.is-open {
    background: rgba(255, 255, 255, .88);
    border-color: rgba(76, 170, 176, .34);
    box-shadow: 0 22px 40px -26px rgba(46, 127, 133, .5);
}
.copa-doc.is-masque { display: none; }

.copa .copa-doc__tete {
    width: 100%;
    display: flex; align-items: center; gap: 16px;
    padding: 18px 22px;
    text-align: left;
    cursor: pointer;
}
.copa-doc__icone {
    flex: none;
    width: 46px; height: 46px;
    display: grid; place-items: center;
    color: var(--copa-deep);
    background: rgba(190, 228, 231, .5);
    border-radius: 14px;
    transition: background-color .22s ease, color .22s ease;
}
.copa-doc__icone .copa-i { width: 22px; height: 22px; }
.copa-doc.is-open .copa-doc__icone {
    color: #FFFFFF;
    background: linear-gradient(135deg, var(--copa-teal), var(--copa-deep));
}

.copa-doc__nom { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.copa-doc__titre {
    font-size: 16.5px; font-weight: 700; line-height: 1.35;
    color: var(--copa-ink);
    white-space: normal;
    overflow-wrap: anywhere;
}
.copa-doc__meta {
    font-size: 12.5px; color: #9AA3A6;
    white-space: normal;
    overflow-wrap: anywhere;
}

.copa-doc__badge {
    flex: none;
    padding: 5px 13px;
    font-size: 11px; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
    color: var(--copa-deep);
    background: rgba(190, 228, 231, .55);
    border-radius: 100px;
    white-space: nowrap;
}
.copa-doc__chevron {
    flex: none;
    display: grid; place-items: center;
    color: #A8B4B7;
    transition: transform .28s ease, color .2s ease;
}
.copa-doc.is-open .copa-doc__chevron { transform: rotate(180deg); color: var(--copa-teal); }

/* Dépliage bridé en hauteur : sûr sur tous les écrans. */
.copa-doc__corps {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s cubic-bezier(.4, 0, .2, 1);
}
.copa-doc.is-open .copa-doc__corps { max-height: 60rem; }
.copa-doc__corps-inner { padding: 0 22px 22px 84px; }
.copa-doc__desc {
    margin: 0 0 18px;
    font-size: 15px; line-height: 1.7;
    color: var(--copa-text);
}

/* ── Aucun document ───────────────────────────────────────────────────── */

.copa-vide {
    padding: 58px 30px;
    text-align: center;
    color: var(--copa-text);
    border-radius: var(--copa-radius);
    border-style: dashed;
    border-color: rgba(76, 170, 176, .3);
}
.copa-vide .copa-i { width: 38px; height: 38px; margin-bottom: 14px; color: var(--copa-teal); opacity: .75; }
.copa-vide p { margin: 0 0 6px; font-size: 15px; line-height: 1.6; }
.copa-vide strong { color: var(--copa-ink); font-size: 17px; }

/* ── Écrans plus étroits ──────────────────────────────────────────────── */

@media (max-width: 1024px) {
    .copa-hero { padding: 80px 40px 36px; }
    .copa-title { font-size: 42px; letter-spacing: -1.2px; }
}
@media (max-width: 767px) {
    .copa-hero { padding: 56px 20px 30px; }
    .copa-title { font-size: 33px; letter-spacing: -.8px; }
    .copa-lede { font-size: 15.5px; }
    .copa-portail { padding: 36px 24px 28px; border-radius: 24px; }
    .copa-outils { gap: 14px; }
    .copa-recherche { max-width: none; }
    .copa-portail-zone, .copa-docs { padding-bottom: 80px; }

    /* En grille : la colonne du nom peut passer sous sa largeur minimale
       (minmax 0), donc un long titre revient à la ligne au lieu d'être coupé. */
    .copa .copa-doc__tete {
        display: grid;
        grid-template-columns: 46px minmax(0, 1fr) 24px;
        grid-template-areas: "icone nom chevron" ". badge badge";
        align-items: center;
        gap: 10px 12px;
        padding: 16px;
    }
    .copa-doc__icone { grid-area: icone; }
    .copa-doc__nom { grid-area: nom; min-width: 0; }
    .copa-doc__chevron { grid-area: chevron; justify-self: end; }
    .copa-doc__badge { grid-area: badge; justify-self: start; }
    .copa-doc__titre { font-size: 15.5px; }
    .copa-doc__corps-inner { padding: 0 16px 18px; }
    .copa .copa-bouton { width: 100%; }
}

/* ── Mouvement réduit ─────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
    .copa *, .copa *::before, .copa *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
    .copa .seak-pencil-underline .sketch-stroke {
        stroke-dashoffset: 0 !important;
        transition: none !important;
    }
}
