:root {
    --be-cp-navy: #10243d;
    --be-cp-violet: #6936e8;
    --be-cp-blue: #2676df;
    --be-cp-teal: #138f87;
    --be-cp-coral: #f45f78;
    --be-cp-ink: #13243b;
    --be-cp-muted: #607087;
    --be-cp-line: #e4e1f3;
    --be-cp-paper: #fff;
}

.be-cp-page,
.be-cp-page * { box-sizing: border-box; }
.be-cp-page { color: var(--be-cp-ink); background: linear-gradient(145deg, #faf9ff 0%, #f2f9ff 50%, #fff 100%); padding: clamp(18px, 3vw, 54px); border-radius: 34px; font-family: inherit; }
.be-cp-hero { position: relative; overflow: hidden; padding: clamp(36px, 7vw, 88px); border-radius: 32px; color: #fff; background: radial-gradient(circle at 92% 10%, rgba(89,220,205,.32), transparent 28%), linear-gradient(125deg, var(--be-cp-navy), #382176 70%, var(--be-cp-blue)); box-shadow: 0 30px 70px rgba(30,36,90,.2); }
.be-cp-hero::after { content: ""; position: absolute; width: 260px; height: 260px; right: -80px; bottom: -120px; border: 42px solid rgba(255,255,255,.1); border-radius: 50%; }
.be-cp-kicker { display: inline-block; color: var(--be-cp-coral); font-size: .78rem; line-height: 1.3; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.be-cp-hero .be-cp-kicker { color: #ff9baa; }
.be-cp-hero h1 { position: relative; z-index: 1; max-width: 850px; margin: 18px 0; color: #fff; font-size: clamp(2.7rem, 6vw, 6.4rem); line-height: .94; letter-spacing: -.06em; }
.be-cp-hero h1 em { color: #7ee3db; font-style: normal; }
.be-cp-hero p { position: relative; z-index: 1; max-width: 790px; margin: 0; color: #dce8f6; font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.65; }
.be-cp-login-card { max-width: 680px; margin: 34px auto 0; padding: clamp(28px, 4vw, 48px); background: #fff; border: 1px solid var(--be-cp-line); border-radius: 28px; box-shadow: 0 22px 55px rgba(26,44,78,.12); }
.be-cp-login-card h2 { margin: 0 0 8px; font-size: clamp(1.8rem, 3vw, 2.5rem); color: var(--be-cp-ink); }
.be-cp-login-card label { color: var(--be-cp-ink); font-weight: 800; }
.be-cp-login-card input[type="text"], .be-cp-login-card input[type="password"] { width: 100%; min-height: 54px; padding: 12px 16px; border: 1px solid #cbc7e7; border-radius: 15px; }
.be-cp-login-card input[type="submit"] { min-height: 54px; padding: 0 22px; border: 0; border-radius: 999px; color: #fff; background: linear-gradient(90deg, var(--be-cp-violet), var(--be-cp-blue)); font-weight: 900; cursor: pointer; }
.be-cp-welcome { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 30px 0 18px; padding: 18px 24px; background: #fff; border: 1px solid var(--be-cp-line); border-radius: 20px; }
.be-cp-welcome span { color: var(--be-cp-muted); font-size: .85rem; }
.be-cp-welcome h2 { margin: 0; color: var(--be-cp-ink); }
.be-cp-welcome a { color: var(--be-cp-violet); font-weight: 800; }
.be-cp-transversal { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; margin: 18px 0 44px; padding: clamp(25px, 4vw, 46px); background: linear-gradient(120deg, #fff, #eafbf8); border: 1px solid #c9ece5; border-radius: 26px; }
.be-cp-transversal h2 { margin: 8px 0; color: var(--be-cp-ink); font-size: clamp(1.9rem, 3vw, 3rem); }
.be-cp-transversal p { margin: 0; color: var(--be-cp-muted); }
.be-cp-primary { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 52px; padding: 12px 24px; color: #fff !important; background: linear-gradient(90deg, var(--be-cp-violet), var(--be-cp-blue)); border: 0; border-radius: 999px; font-weight: 900; text-decoration: none !important; box-shadow: 0 12px 26px rgba(81,54,205,.2); transition: transform .2s ease, box-shadow .2s ease; }
.be-cp-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(81,54,205,.3); }
.be-cp-section-head { max-width: 780px; margin: 0 0 25px; }
.be-cp-section-head h2 { margin: 7px 0; color: var(--be-cp-ink); font-size: clamp(2.2rem, 4vw, 4rem); letter-spacing: -.04em; }
.be-cp-section-head p { color: var(--be-cp-muted); }
.be-cp-sector-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.be-cp-sector { min-width: 0; padding: clamp(22px, 3vw, 34px); background: #fff; border: 1px solid var(--be-cp-line); border-radius: 26px; box-shadow: 0 18px 42px rgba(26,44,78,.08); }
.be-cp-sector.is-open { border-color: #b9e1dd; background: linear-gradient(145deg, #fff, #f1fbfa); }
.be-cp-sector.is-locked { background: #f8f8fb; color: #667184; box-shadow: none; }
.be-cp-sector-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.be-cp-sector-mark { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--be-cp-teal), var(--be-cp-blue)); font-size: 1.2rem; font-weight: 900; }
.is-locked .be-cp-sector-mark { background: #9aa3b1; }
.be-cp-status { padding: 7px 11px; border-radius: 999px; color: #087b70; background: #dff8f3; font-size: .75rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.is-locked .be-cp-status { color: #727b89; background: #eceef2; }
.be-cp-sector h3 { margin: 0 0 8px; color: var(--be-cp-ink); font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.2; }
.be-cp-sector > p { color: var(--be-cp-muted); }
.be-cp-lock-note { display: inline-flex; gap: 8px; align-items: center; padding: 10px 14px; border-radius: 12px; color: #6e7684; background: #eceef3; font-weight: 800; }
.be-cp-chapters { display: grid; gap: 10px; margin-top: 20px; }
.be-cp-chapter { overflow: hidden; border: 1px solid #d8e7e5; border-radius: 15px; background: #fff; }
.be-cp-chapter summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; cursor: pointer; color: var(--be-cp-ink); font-weight: 900; }
.be-cp-chapter summary strong { color: var(--be-cp-teal); font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; }
.be-cp-files { display: grid; gap: 8px; padding: 0 10px 10px; }
.be-cp-file { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: center; min-width: 0; padding: 11px; color: var(--be-cp-ink) !important; background: #f6fafb; border-radius: 12px; text-decoration: none !important; transition: background .2s ease, transform .2s ease; }
.be-cp-file:hover { background: #ebf7f5; transform: translateX(2px); }
.be-cp-file-icon { display: grid; place-items: center; width: 40px; height: 40px; color: #fff; background: linear-gradient(135deg, var(--be-cp-teal), var(--be-cp-blue)); border-radius: 11px; font-weight: 900; }
.be-cp-file strong, .be-cp-file small { display: block; overflow-wrap: anywhere; }
.be-cp-file small { margin-top: 3px; color: var(--be-cp-muted); }

.be-cp-access { position: fixed; z-index: 9990; top: 94px; right: 22px; display: flex; align-items: center; gap: 11px; max-width: 260px; padding: 10px 15px 10px 10px; border: 1px solid rgba(101,55,227,.22); border-radius: 999px; color: var(--be-cp-ink); background: rgba(255,255,255,.94); box-shadow: 0 13px 34px rgba(26,44,78,.16); backdrop-filter: blur(14px); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.be-cp-access:hover { transform: translateY(-2px); box-shadow: 0 18px 38px rgba(26,44,78,.22); }
.be-cp-access > span:first-child { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border-radius: 50%; color: #fff; background: linear-gradient(135deg, var(--be-cp-violet), var(--be-cp-teal)); }
.be-cp-access strong, .be-cp-access small { display: block; text-align: left; }
.be-cp-access strong { font-size: .87rem; }
.be-cp-access small { color: var(--be-cp-muted); font-size: .7rem; }
.be-cp-modal[hidden] { display: none !important; }
.be-cp-modal { position: fixed; z-index: 10050; inset: 0; display: grid; place-items: center; padding: 20px; opacity: 0; transition: opacity .18s ease; }
.be-cp-modal.is-visible { opacity: 1; }
.be-cp-modal-backdrop { position: absolute; inset: 0; background: rgba(10,24,43,.72); backdrop-filter: blur(8px); }
.be-cp-modal-panel { position: relative; z-index: 1; width: min(560px, 100%); max-height: calc(100vh - 40px); overflow: auto; padding: clamp(28px, 5vw, 50px); background: #fff; border-radius: 28px; box-shadow: 0 35px 90px rgba(0,0,0,.32); transform: translateY(14px) scale(.98); transition: transform .18s ease; }
.be-cp-modal.is-visible .be-cp-modal-panel { transform: none; }
.be-cp-modal-panel h2 { margin: 9px 0; color: var(--be-cp-ink); font-size: clamp(1.8rem, 4vw, 2.7rem); line-height: 1.05; }
.be-cp-modal-panel p { color: var(--be-cp-muted); }
.be-cp-modal-panel .login-username input, .be-cp-modal-panel .login-password input { width: 100%; min-height: 50px; padding: 10px 14px; border: 1px solid #cbc7e7; border-radius: 13px; }
.be-cp-modal-panel input[type="submit"] { min-height: 50px; padding: 0 20px; border: 0; border-radius: 999px; color: #fff; background: linear-gradient(90deg, var(--be-cp-violet), var(--be-cp-blue)); font-weight: 900; cursor: pointer; }
.be-cp-modal-close { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 42px; height: 42px; border: 0; border-radius: 50%; color: var(--be-cp-ink); background: #f0edff; font-size: 1.6rem; cursor: pointer; }
.be-cp-security { display: grid; gap: 3px; margin-top: 18px; padding: 14px; border-radius: 14px; color: #176d65; background: #eaf8f5; font-size: .82rem; }
.be-cp-modal-open { overflow: hidden; }

@media (max-width: 980px) {
    .be-cp-sector-grid { grid-template-columns: 1fr; }
    .be-cp-access { top: auto; right: 18px; bottom: 92px; max-width: 220px; }
}
@media (max-width: 680px) {
    .be-cp-page { padding: 10px; border-radius: 22px; }
    .be-cp-hero { padding: 32px 22px; border-radius: 22px; }
    .be-cp-transversal { grid-template-columns: 1fr; }
    .be-cp-welcome { align-items: flex-start; flex-direction: column; }
    .be-cp-access { width: 54px; height: 54px; padding: 7px; overflow: hidden; }
    .be-cp-access > span:first-child { flex-basis: 40px; }
    .be-cp-access > span:last-child { display: none; }
}

/* Accès permanent administrateur — version 14.8.1 */
.be-cp-access {
    position: fixed !important;
    z-index: 9990;
    top: 8px !important;
    right: 18px !important;
    bottom: auto !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 6px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #493478 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    font-size: .74rem !important;
    font-weight: 800 !important;
    letter-spacing: .01em;
    cursor: pointer;
    overflow: visible !important;
    transform: none !important;
}
.be-cp-access:hover,
.be-cp-access:focus-visible {
    color: #6d3eea !important;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    box-shadow: none !important;
    transform: none !important;
}
body.admin-bar .be-cp-access { top: 40px !important; }
.be-cp-modal-panel { max-width: 560px; }
.be-cp-admin-access {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 18px 0;
    padding: 15px 17px;
    border: 1px solid #bfe8df;
    border-radius: 18px;
    color: #10334a;
    background: #effbf7;
}
.be-cp-admin-access strong { color: #087f70; }
.be-cp-formulas {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 12px;
    padding: 10px 16px;
    border: 1px solid #d7cff8;
    border-radius: 999px;
    color: #5436cc !important;
    font-weight: 800;
    text-decoration: none !important;
}
.be-cp-modal-panel .login-remember {
    display: flex;
    align-items: center;
    gap: 8px;
}
.be-cp-modal-panel .login-submit { margin: 12px 0; }

@media (max-width: 680px) {
    .be-cp-access {
        top: 6px !important;
        right: 10px !important;
        width: auto !important;
        height: auto !important;
        padding: 5px 0 !important;
        font-size: .68rem !important;
    }
    body.admin-bar .be-cp-access { top: 52px !important; }
}
