/* ==========================================================
   Continuum — Admin panel (design system)
   ========================================================== */

:root {
    --admin-sidebar-w: 272px;
    --admin-topbar-h: 72px;
    --admin-radius: 1rem;
    --admin-radius-sm: .65rem;
    --admin-shadow: 0 1px 3px rgba(10, 22, 40, .06), 0 8px 24px -8px rgba(10, 22, 40, .12);
    --admin-shadow-lg: 0 4px 6px rgba(10, 22, 40, .04), 0 20px 40px -12px rgba(10, 22, 40, .18);
    --admin-border: rgba(10, 22, 40, .08);
    --admin-surface: #ffffff;
    --admin-bg: #eef1f6;
    --admin-sidebar-bg: linear-gradient(180deg, #0a1628 0%, #0f2038 55%, #122844 100%);
}

/* ---------- Shell ---------- */
body.admin-body {
    background: var(--admin-bg);
    font-family: var(--font-sans);
    margin: 0;
    color: var(--color-fg);
}

.admin-shell { display: flex; min-height: 100vh; }

.admin-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(10, 22, 40, .55);
    z-index: 1040;
    backdrop-filter: blur(2px);
}
.admin-overlay.is-visible { display: block; }

/* ---------- Sidebar ---------- */
.admin-sidebar {
    width: var(--admin-sidebar-w);
    background: var(--admin-sidebar-bg);
    color: rgba(255, 255, 255, .82);
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid rgba(255, 255, 255, .06);
    transition: transform .28s ease;
}

.admin-sidebar__head {
    padding: 1rem 1rem .9rem;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    flex: 0 0 auto;
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--admin-sidebar, #0a1628);
}

.admin-sidebar .brand {
    color: #fff;
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: .02em;
    display: block;
    padding: 0;
    line-height: 1.2;
    text-decoration: none;
}
.admin-sidebar .brand span { color: var(--color-accent); }
.admin-sidebar .brand-logo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
    width: 100%;
}
.admin-sidebar .brand--sidebar {
    display: block;
    width: 100%;
    line-height: 0;
}
.admin-sidebar .brand-logo--sidebar {
    display: block;
    width: 100%;
}
.admin-sidebar .brand-logo__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 5.5rem;
    padding: .7rem .85rem;
    background: linear-gradient(160deg, #ffffff 0%, #f8fafc 100%);
    border-radius: .9rem;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .6) inset,
        0 8px 24px rgba(0, 0, 0, .22);
    border: 1px solid rgba(255, 255, 255, .12);
    overflow: hidden;
}
.admin-sidebar .brand-mark--sidebar {
    width: 100%;
    max-width: 7.5rem;
    height: auto;
    display: block;
}
.admin-sidebar .brand-mark--sidebar-img {
    display: block;
    width: 100%;
    max-width: 11rem;
    height: auto;
    max-height: 5.75rem;
    object-fit: contain;
    object-position: center;
    transform: scale(1.12);
    transform-origin: center center;
}
.admin-sidebar .brand-logo:not(.brand-logo--image) {
    flex-direction: row;
    align-items: center;
    gap: .65rem;
    background: rgba(255,255,255,.06);
    border-radius: .85rem;
    padding: .65rem .75rem;
}
.admin-sidebar .brand-logo:not(.brand-logo--image) .brand-wordmark {
    display: flex;
    flex-direction: column;
    gap: .05rem;
}
.admin-sidebar .brand-logo:not(.brand-logo--image) .brand-name {
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .02em;
}
.admin-sidebar .brand-logo:not(.brand-logo--image) .brand-tag {
    color: rgba(255,255,255,.55);
    font-size: .7rem;
    font-weight: 650;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.admin-sidebar .brand-sub {
    display: block;
    margin-top: .65rem;
    padding: 0 .15rem;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .45);
}

.admin-sidebar__scroll {
    flex: 1;
    overflow-y: auto;
    padding: 1rem .85rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.15) transparent;
}

.admin-nav-section {
    margin-bottom: 1.35rem;
    padding-bottom: .35rem;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}
.admin-nav-section:last-child {
    border-bottom: none;
    margin-bottom: .5rem;
}
.admin-nav-section__label {
    display: block;
    padding: 0 .75rem .5rem;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(241, 179, 0, .72);
}

.admin-nav a {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .72rem .85rem;
    border-radius: var(--admin-radius-sm);
    margin-bottom: .2rem;
    font-size: .88rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .72);
    transition: background .15s ease, color .15s ease, transform .15s ease;
    position: relative;
}
.admin-nav a:hover {
    background: rgba(255, 255, 255, .07);
    color: #fff;
}
.admin-nav a.active {
    background: linear-gradient(135deg, rgba(196, 92, 38, .95) 0%, rgba(224, 122, 69, .85) 100%);
    color: #fff;
    box-shadow: 0 4px 14px rgba(196, 92, 38, .35);
}
.admin-nav a .icon-inline {
    width: 1.15rem;
    height: 1.15rem;
    flex-shrink: 0;
    opacity: .9;
}
.admin-nav a .icon-inline svg { width: 100%; height: 100%; display: block; }

.admin-nav-badge {
    margin-left: auto;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--color-primary);
    font-size: .68rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.admin-sidebar__foot {
    padding: 1rem .85rem 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
    background: rgba(0, 0, 0, .12);
}

.admin-sidebar-link {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .65rem .85rem;
    border-radius: var(--admin-radius-sm);
    font-size: .85rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .65);
    margin-bottom: .35rem;
    transition: background .15s ease, color .15s ease;
}
.admin-sidebar-link:hover { background: rgba(255,255,255,.06); color: #fff; }
.admin-sidebar-link--logout { color: rgba(255, 180, 160, .85); }
.admin-sidebar-link--logout:hover { background: rgba(192, 57, 43, .2); color: #ffb4a0; }
.admin-sidebar-link .icon-inline { width: 1.1rem; height: 1.1rem; flex-shrink: 0; }

/* ---------- Main area ---------- */
.admin-main {
    margin-left: var(--admin-sidebar-w);
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    min-height: var(--admin-topbar-h);
    padding: .75rem 1.75rem;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--admin-border);
    box-shadow: 0 4px 20px -8px rgba(10, 22, 40, .08);
}

.admin-topbar__left {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
    flex: 1;
}

.admin-menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
    background: var(--admin-surface);
    color: var(--color-primary);
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s ease, box-shadow .15s ease;
}
.admin-menu-toggle:hover { background: #fff; box-shadow: var(--admin-shadow); }
.admin-menu-toggle svg { width: 1.25rem; height: 1.25rem; }

.admin-topbar__titles {
    min-width: 0;
    padding-left: .85rem;
    border-left: 3px solid var(--color-secondary);
}
.admin-topbar__breadcrumb {
    display: block;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: .12rem;
}
.admin-topbar h1 {
    margin: 0;
    font-size: 1.28rem;
    font-family: var(--font-display);
    font-weight: 800;
    color: var(--color-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
}
.admin-topbar__subtitle {
    margin: .2rem 0 0;
    font-size: .82rem;
    color: var(--color-muted);
    font-weight: 500;
}

.admin-topbar__right {
    display: flex;
    align-items: center;
    gap: .85rem;
    flex-shrink: 0;
}

.admin-topbar-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .5rem .85rem;
    border-radius: var(--admin-radius-sm);
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
    border: 1px solid var(--admin-border);
    background: var(--admin-surface);
    transition: color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.admin-topbar-link:hover {
    color: var(--color-primary);
    border-color: rgba(10, 22, 40, .15);
    box-shadow: var(--admin-shadow);
}
.admin-topbar-link .icon-inline { width: 1rem; height: 1rem; }

.admin-topbar-notify {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .65rem;
    border: 1px solid var(--admin-border);
    background: var(--admin-surface);
    color: var(--color-primary);
    transition: background .15s ease, box-shadow .15s ease;
}
.admin-topbar-notify:hover { box-shadow: var(--admin-shadow); background: #fff; }
.admin-topbar-notify__badge {
    position: absolute;
    top: -.25rem;
    right: -.25rem;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 .25rem;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: .62rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
}

.admin-subtopbar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .65rem 1.25rem;
    background: var(--admin-surface);
    border-bottom: 1px solid var(--admin-border);
    position: sticky;
    top: var(--admin-topbar-h);
    z-index: 40;
}
.admin-subtopbar--interventions {
    justify-content: center;
    flex-wrap: wrap;
    gap: .65rem;
}
.admin-subtopbar__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-left: .5rem;
}
.admin-subtopbar__filters .form-control {
    min-width: 12rem;
    max-width: 16rem;
}
.admin-subtopbar__multiselect {
    position: relative;
    min-width: 13rem;
}
.admin-subtopbar__multiselect > summary {
    list-style: none;
    cursor: pointer;
    padding: .4rem .7rem;
    border: 1px solid var(--admin-border);
    border-radius: .5rem;
    background: #fff;
    font-size: .82rem;
    font-weight: 600;
    color: var(--admin-text);
}
.admin-subtopbar__multiselect > summary::-webkit-details-marker { display: none; }
.admin-subtopbar__multiselect-panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 50;
    min-width: 18rem;
    max-height: 16rem;
    overflow: auto;
    padding: .45rem .55rem;
    border: 1px solid var(--admin-border);
    border-radius: .55rem;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .12);
}
.admin-subtopbar__multiselect-panel label {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    margin: 0;
    padding: .28rem .15rem;
    font-size: .8rem;
    font-weight: 500;
    cursor: pointer;
}
.admin-subtopbar__btn {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .55rem 1rem;
    border-radius: .65rem;
    border: 1px solid var(--admin-border);
    background: #fff;
    color: var(--admin-text-muted);
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.admin-subtopbar__btn small {
    font-size: .68rem;
    font-weight: 700;
    opacity: .75;
    letter-spacing: .02em;
}
.admin-subtopbar__btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    box-shadow: var(--admin-shadow);
}
.admin-subtopbar__btn.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.admin-subtopbar__btn.is-active small {
    opacity: .9;
    color: inherit;
}
@media (max-width: 640px) {
    .admin-subtopbar {
        padding: .5rem .75rem;
    }
    .admin-subtopbar__btn {
        flex: 1 1 calc(50% - .25rem);
        justify-content: center;
        min-width: 0;
    }
    .admin-subtopbar__btn span:not(.icon-inline):not(small) {
        font-size: .78rem;
    }
}

.admin-user {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .4rem .85rem .4rem .4rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--admin-border);
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-primary);
    box-shadow: 0 2px 8px rgba(10, 22, 40, .04);
}
.admin-user__meta { display: flex; flex-direction: column; gap: .15rem; line-height: 1.2; min-width: 0; }
.admin-user__name {
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 140px;
}
.admin-user__badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem;
}
.admin-user__role {
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #475569;
    background: #f1f5f9;
    padding: .12rem .4rem;
    border-radius: 4px;
}
.admin-user__country {
    font-size: .62rem;
    font-weight: 800;
    color: #9a3412;
    background: linear-gradient(135deg, #ffedd5, #fed7aa);
    border: 1px solid #fb923c;
    padding: .12rem .45rem;
    border-radius: 999px;
    white-space: nowrap;
}
.admin-user__country--global {
    color: #64748b;
    background: #f1f5f9;
    border-color: #cbd5e1;
    font-weight: 600;
}
.admin-user .avatar-circle {
    width: 2.25rem;
    height: 2.25rem;
    font-size: .88rem;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-secondary-light) 100%);
}

.d-none-mobile { display: inline; }
@media (max-width: 900px) {
    .d-none-mobile { display: none; }
    .admin-topbar__titles { padding-left: 0; border-left: 0; }
    .admin-user__name { max-width: 100px; }
}
@media (max-width: 480px) {
    .admin-topbar__left:has(.qt-space-switch) .admin-topbar__titles { display: none; }
}

.admin-content {
    padding: 1.75rem 2rem 2.5rem;
    flex: 1;
}

/* ---------- Alerts (admin scope) ---------- */
.admin-content .alert {
    border-radius: var(--admin-radius-sm);
    padding: .9rem 1.15rem;
    margin-bottom: 1.5rem;
    font-size: .88rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: .6rem;
}

/* ---------- Stat cards ---------- */
.stat-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.15rem;
    margin-bottom: 1.75rem;
}

.stat-card {
    background: var(--admin-surface);
    border-radius: var(--admin-radius);
    padding: 1.35rem 1.4rem;
    box-shadow: var(--admin-shadow);
    border: 1px solid var(--admin-border);
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    transition: transform .2s ease, box-shadow .2s ease;
    position: relative;
}
.stat-card__overlay-link {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}
.stat-card__overlay-link:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}
.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--admin-shadow-lg);
}

.stat-card__icon {
    width: 3rem;
    height: 3rem;
    border-radius: .85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.stat-card__icon .icon-tile {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    margin: 0;
}
.stat-card__icon .icon-tile .icon { width: 1.65rem; height: 1.65rem; }

.stat-card__body { min-width: 0; flex: 1; }
.stat-card strong {
    display: block;
    font-size: 1.85rem;
    font-family: var(--font-display);
    color: var(--color-primary);
    line-height: 1.1;
    margin-bottom: .2rem;
}
.stat-card span {
    font-size: .82rem;
    color: var(--color-muted);
    font-weight: 500;
}

.stat-card--users .stat-card__icon { background: rgba(10, 22, 40, .08); }
.stat-card--formations .stat-card__icon { background: rgba(196, 92, 38, .12); }
.stat-card--enrollments .stat-card__icon { background: rgba(212, 168, 83, .15); }
.stat-card--registrations .stat-card__icon { background: rgba(59, 130, 246, .12); }
.stat-card--certificates .stat-card__icon { background: rgba(16, 185, 129, .12); }
.stat-card--messages .stat-card__icon { background: rgba(239, 68, 68, .1); }

.stat-card--link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
.stat-card--alert {
    border-color: rgba(239, 68, 68, .35);
    background: linear-gradient(135deg, #fff 0%, #fff5f5 100%);
}
.stat-card__trend {
    display: block;
    margin-top: .35rem;
    font-size: .72rem;
    font-style: normal;
    font-weight: 600;
    color: #10b981;
}
.stat-card__trend--warn { color: #ef4444; }

/* ---------- Dashboard welcome & charts ---------- */
.dash-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.5rem 1.75rem;
    margin-bottom: 1.5rem;
    border-radius: var(--admin-radius);
    background: linear-gradient(135deg, var(--color-primary) 0%, #1a3050 55%, #243b5c 100%);
    color: #fff;
    box-shadow: var(--admin-shadow-lg);
    position: relative;
    overflow: hidden;
}
.dash-welcome::after {
    content: '';
    position: absolute;
    top: -40%;
    right: -5%;
    width: 14rem;
    height: 14rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 92, 38, .35) 0%, transparent 70%);
    pointer-events: none;
}
.dash-welcome__copy { position: relative; z-index: 1; min-width: 0; }
.dash-welcome__eyebrow {
    margin: 0 0 .35rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
}
.dash-welcome h2 {
    margin: 0 0 .45rem;
    font-family: var(--font-display);
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
}
.dash-welcome p {
    margin: 0;
    font-size: .88rem;
    color: rgba(255, 255, 255, .78);
    max-width: 36rem;
}
.dash-welcome__actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    flex-shrink: 0;
}
.dash-welcome .btn-secondary {
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
}
.dash-welcome .btn-secondary:hover { background: rgba(255, 255, 255, .2); }
.dash-welcome .btn-outline-dark {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .3);
    color: rgba(255, 255, 255, .85);
}
.dash-welcome .btn-outline-dark:hover { background: rgba(255, 255, 255, .1); color: #fff; }

.dash-grid {
    display: grid;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}
.dash-grid--charts { grid-template-columns: 1.4fr 1fr; }
.dash-grid--3 { grid-template-columns: repeat(3, 1fr); }
.dash-grid .admin-panel { margin-bottom: 0; }

.dash-chart-panel { padding: 1.25rem 1.5rem 1.5rem; min-height: 220px; }

.dash-bar-chart {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .65rem;
    height: 180px;
    padding-top: .5rem;
}
.dash-bar-chart__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}
.dash-bar-chart__bar-wrap {
    width: 100%;
    height: 150px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.dash-bar-chart__bar {
    width: 72%;
    max-width: 3.5rem;
    min-height: 8px;
    border-radius: .45rem .45rem .2rem .2rem;
    background: linear-gradient(180deg, var(--color-secondary) 0%, #a85520 100%);
    position: relative;
    transition: height .4s ease;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.dash-bar-chart__value {
    position: absolute;
    top: -.1rem;
    transform: translateY(-100%);
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-primary);
}
.dash-bar-chart__label {
    font-size: .68rem;
    font-weight: 600;
    color: var(--color-muted);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.dash-donut-wrap {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    flex-wrap: wrap;
    justify-content: center;
}
.dash-donut {
    width: 9.5rem;
    height: 9.5rem;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .04);
}
.dash-donut__hole {
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 12px rgba(10, 22, 40, .08);
}
.dash-donut__hole strong {
    font-size: 1.35rem;
    font-family: var(--font-display);
    color: var(--color-primary);
    line-height: 1;
}
.dash-donut__hole span {
    font-size: .68rem;
    font-weight: 600;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-top: .15rem;
}
.dash-legend {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-width: 10rem;
}
.dash-legend li {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .45rem 0;
    font-size: .82rem;
    border-bottom: 1px solid var(--admin-border);
}
.dash-legend li:last-child { border-bottom: none; }
.dash-legend li i {
    width: .65rem;
    height: .65rem;
    border-radius: 50%;
    flex-shrink: 0;
}
.dash-legend li span { flex: 1; color: var(--color-muted); font-weight: 500; }
.dash-legend li strong { color: var(--color-primary); font-weight: 700; }
.dash-legend__empty { color: var(--color-muted); font-style: italic; }

.dash-rank-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dash-rank-list li { padding: .75rem 0; border-bottom: 1px solid var(--admin-border); }
.dash-rank-list li:last-child { border-bottom: none; padding-bottom: 0; }
.dash-rank-list__head {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: .45rem;
    font-size: .82rem;
}
.dash-rank-list__num {
    width: 1.35rem;
    height: 1.35rem;
    border-radius: .35rem;
    background: rgba(196, 92, 38, .12);
    color: var(--color-secondary);
    font-size: .68rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.dash-rank-list__title { flex: 1; min-width: 0; font-weight: 600; color: var(--color-primary); }
.dash-rank-list__head strong { color: var(--color-secondary); font-weight: 800; }
.dash-rank-list__bar {
    height: .35rem;
    border-radius: 999px;
    background: #eef1f6;
    overflow: hidden;
}
.dash-rank-list__bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--color-secondary), #d4a853);
}

.dash-feed { padding: .5rem 0; }
.dash-feed__item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .75rem 1.25rem;
    border-bottom: 1px solid var(--admin-border);
    transition: background .12s ease;
}
.dash-feed__item:hover { background: #fafbfc; }
.dash-feed__item--unread { background: rgba(59, 130, 246, .04); }
.dash-feed__avatar {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: .65rem;
    background: linear-gradient(135deg, var(--color-primary), #1a3050);
    color: #fff;
    font-size: .82rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.dash-feed__avatar--mail {
    background: rgba(196, 92, 38, .12);
    color: var(--color-secondary);
}
.dash-feed__avatar--mail .icon { width: 1rem; height: 1rem; }
.dash-feed__body { flex: 1; min-width: 0; }
.dash-feed__body strong {
    display: block;
    font-size: .82rem;
    color: var(--color-primary);
    margin-bottom: .1rem;
}
.dash-feed__body span {
    display: block;
    font-size: .78rem;
    color: var(--color-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dash-feed__body small {
    display: block;
    margin-top: .15rem;
    font-size: .68rem;
    color: #94a3b8;
}
.dash-feed__dot {
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: #3b82f6;
    flex-shrink: 0;
    margin-top: .35rem;
}
.dash-feed__more {
    display: block;
    padding: .85rem 1.25rem;
    font-size: .78rem;
    font-weight: 700;
    color: var(--color-secondary);
    text-align: center;
}
.dash-feed__more:hover { background: #fafbfc; }

.admin-topbar__logo { display: none !important; }

.activity-log-action {
    display: inline-block;
    font-size: .78rem;
    font-weight: 600;
    color: #334155;
    background: #f1f5f9;
    padding: .2rem .5rem;
    border-radius: .35rem;
    white-space: nowrap;
}
.activity-log-action--validation {
    color: #9a3412;
    background: #ffedd5;
}
.activity-log-action--export {
    color: #1d4ed8;
    background: #dbeafe;
}
.activity-log-action--success {
    color: #166534;
    background: #dcfce7;
}
.activity-log-action--danger {
    color: #991b1b;
    background: #fee2e2;
}
.activity-log-action--document {
    color: #0f766e;
    background: #ccfbf1;
}
.activity-log-row--alert {
    background: #fffbeb;
}
.supervision-log-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}
.supervision-log-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .85rem 1.25rem;
    border-bottom: 1px solid var(--admin-border);
    background: #fafbfc;
}
.supervision-log-tab {
    display: inline-flex;
    align-items: center;
    padding: .35rem .75rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
    color: #475569;
    background: #fff;
    border: 1px solid #e2e8f0;
    text-decoration: none;
}
.supervision-log-tab:hover {
    color: var(--color-primary);
    border-color: #cbd5e1;
}
.supervision-log-tab.is-active {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
}

.supervision-country-table .supervision-muted-zero {
    color: #94a3b8;
}
.supervision-pending-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.6rem;
    padding: 0 .45rem;
    border-radius: 999px;
    background: #ffedd5;
    color: #9a3412;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1;
}
.supervision-alert-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.6rem;
    padding: 0 .45rem;
    border-radius: 999px;
    background: #dbeafe;
    color: #1d4ed8;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1;
}
.supervision-country-row--pending {
    background: #fffbeb;
}
.supervision-country-row--active {
    background: #eff6ff;
    box-shadow: inset 3px 0 0 var(--color-secondary);
}
.supervision-country-row--total {
    background: #f8fafc;
    border-top: 2px solid var(--admin-border);
}
.supervision-country-row--total td {
    font-variant-numeric: tabular-nums;
}
.supervision-country-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    white-space: nowrap;
}

.admin-page-intro__note {
    margin: .65rem 0 0;
    font-size: .88rem;
    color: var(--color-muted);
}
.admin-page-intro__note a {
    color: var(--color-secondary);
    font-weight: 600;
}

.admin-page-intro {
    margin-bottom: 1.25rem;
    padding: 1rem 1.15rem;
    border-radius: var(--admin-radius);
    border: 1px solid var(--admin-border);
    background: var(--admin-surface);
    box-shadow: var(--admin-shadow);
}
.admin-page-intro > p {
    margin: 0;
    font-size: .92rem;
    line-height: 1.55;
    color: #475569;
}

.admin-page-intro--guide {
    padding: 0;
    overflow: hidden;
    border-color: rgba(11, 31, 58, .1);
    background: linear-gradient(135deg, #f8fafc 0%, #fff 48%);
}
.admin-page-intro__head {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid var(--admin-border);
    background: rgba(255, 255, 255, .72);
}
.admin-page-intro__icon {
    width: 2.75rem;
    height: 2.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: .75rem;
    background: rgba(11, 31, 58, .08);
    color: var(--color-primary, #0b1f3a);
    flex-shrink: 0;
}
.admin-page-intro__icon svg {
    width: 1.35rem;
    height: 1.35rem;
}
.admin-page-intro__title {
    margin: 0 0 .3rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-primary, #0b1f3a);
}
.admin-page-intro__lead {
    margin: 0;
    font-size: .9rem;
    line-height: 1.5;
    color: #64748b;
}
.admin-page-intro__steps {
    list-style: none;
    margin: 0;
    padding: .85rem 1.25rem;
    display: grid;
    gap: .75rem;
}
@media (min-width: 768px) {
    .admin-page-intro__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: .85rem;
    }
}
.admin-page-intro__step {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .75rem .85rem;
    border-radius: var(--admin-radius-sm);
    background: #fff;
    border: 1px solid var(--admin-border);
}
.admin-page-intro__step-badge {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--color-primary, #0b1f3a);
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
}
.admin-page-intro__step-body strong {
    display: block;
    margin-bottom: .25rem;
    font-size: .84rem;
    color: var(--color-primary, #0b1f3a);
}
.admin-page-intro__step-body p {
    margin: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: #64748b;
}
.admin-page-intro__step-body a {
    color: var(--color-secondary, #c45c26);
    font-weight: 600;
    text-decoration: none;
}
.admin-page-intro__step-body a:hover {
    text-decoration: underline;
}
.admin-page-intro__pill {
    display: inline-block;
    padding: .08rem .45rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
    vertical-align: middle;
}
.admin-page-intro__pill--active {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #bbf7d0;
}
.admin-page-intro__pill--ref {
    background: rgba(11, 31, 58, .08);
    color: var(--color-primary, #0b1f3a);
    border: 1px solid rgba(11, 31, 58, .14);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.admin-page-intro__pill--spo {
    background: rgba(196, 92, 38, .12);
    color: var(--color-secondary, #c45c26);
    border: 1px solid rgba(196, 92, 38, .25);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.admin-page-intro--interventions .admin-page-intro__icon {
    background: rgba(11, 31, 58, .08);
    color: var(--color-primary, #0b1f3a);
}
.admin-subtopbar--demo {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: .25rem;
    padding: .15rem;
    margin: 0 .2rem;
    vertical-align: middle;
    border: none;
    background: #f1f5f9;
    border-radius: .5rem;
    position: static;
    pointer-events: none;
    transform: scale(.88);
    transform-origin: left center;
}
.admin-subtopbar--demo .admin-subtopbar__btn {
    padding: .25rem .45rem;
    font-size: .62rem;
    min-width: 0;
    flex: none;
}
.admin-subtopbar--demo .admin-subtopbar__btn small {
    display: none;
}
.admin-page-intro__footer {
    margin: 0;
    padding: .65rem 1.25rem .85rem;
    font-size: .82rem;
    color: #94a3b8;
    border-top: 1px dashed var(--admin-border);
    background: rgba(255, 255, 255, .5);
}
.admin-status-toggle--demo {
    display: inline-flex;
    vertical-align: middle;
    margin: 0 .15rem;
    pointer-events: none;
    transform: scale(.92);
    transform-origin: left center;
}
.admin-status-toggle--demo .admin-status-toggle__btn {
    cursor: default;
}
.stat-card__link {
    color: inherit;
    text-decoration: none;
}
.stat-card__link:hover {
    color: var(--color-secondary);
}
.doc-validation-ref {
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: none;
}
.doc-validation-ref:hover {
    color: var(--color-secondary);
}
.doc-validation-actions {
    align-items: center;
}
.doc-validation-form {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    margin: 0;
}
.doc-validation-form--reject .form-control {
    width: 9rem;
    min-width: 7rem;
}
.doc-validation-row:hover {
    background: #fafbfc;
}

.admin-scroll-section {
    scroll-margin-top: calc(var(--admin-topbar-h) + 1.25rem);
}
.admin-section--focused {
    animation: adminSectionFocus 1.6s ease;
}
@keyframes adminSectionFocus {
    0% { box-shadow: inset 0 0 0 0 rgba(196, 92, 38, 0); }
    25% { box-shadow: inset 0 0 0 3px rgba(196, 92, 38, .45); }
    100% { box-shadow: inset 0 0 0 0 rgba(196, 92, 38, 0); }
}

.admin-quick-links--wide {
    grid-template-columns: repeat(4, 1fr);
}

/* ---------- Panels ---------- */
.admin-panel {
    background: var(--admin-surface);
    border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow);
    border: 1px solid var(--admin-border);
    padding: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}
.admin-panel:last-child { margin-bottom: 0; }

.admin-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--admin-border);
    background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}
.admin-panel-head h3 {
    margin: 0;
    font-size: 1.05rem;
    font-family: var(--font-display);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    gap: .55rem;
}
.admin-panel-head h3 .icon-inline { width: 1.2rem; height: 1.2rem; color: var(--color-secondary); }
.admin-panel-head__desc {
    margin: .25rem 0 0;
    font-size: .84rem;
    color: var(--color-muted);
    font-weight: 400;
}
.admin-panel-body { padding: 1.5rem; }
.admin-panel .table-responsive { padding: 0; }
.admin-panel .table-responsive .data-table { border-radius: 0; }

.admin-panel--form .admin-panel-body { padding: 1.5rem; }
.admin-panel--form form { margin: 0; }

/* ---------- Tables (admin) ---------- */
.admin-content table.data-table {
    width: 100%;
    border-collapse: collapse;
    background: transparent;
    border-radius: 0;
}
.admin-content table.data-table th,
.admin-content table.data-table td {
    padding: .95rem 1.25rem;
    text-align: left;
    border-bottom: 1px solid var(--admin-border);
    font-size: .88rem;
    vertical-align: middle;
}
.admin-content table.data-table th {
    background: #f8fafc;
    font-weight: 700;
    font-size: .75rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.admin-content table.data-table tbody tr {
    transition: background .12s ease;
}
.admin-content table.data-table tbody tr:hover {
    background: rgba(10, 22, 40, .02);
}
.admin-content table.data-table tbody tr:last-child td { border-bottom: none; }
.admin-content table.data-table tbody tr.row-unread {
    background: rgba(196, 92, 38, .04);
    font-weight: 600;
}
.admin-content table.data-table tbody tr.row-unread:hover {
    background: rgba(196, 92, 38, .07);
}

.table-empty {
    text-align: center;
    padding: 2.5rem 1rem !important;
    color: var(--color-muted);
    font-size: .9rem;
}

/* ---------- Status tags ---------- */
.status-tag {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .75rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    white-space: nowrap;
}
.status-pending { background: #fef3c7; color: #92400e; }
.status-confirmed { background: #d1fae5; color: #065f46; }
.status-cancelled { background: #fee2e2; color: #991b1b; }
/* Caisse / comptes clients */
.status-unpaid { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
.status-partial { background: #fff7ed; color: #c2410c; border: 1px solid #fdba74; }
.status-paid { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.status-planned { background: #e0e7ff; color: #3730a3; }
.status-in_progress { background: #dbeafe; color: #1d4ed8; }
.status-processing { background: #fef3c7; color: #92400e; }
.status-completed { background: #d1fae5; color: #065f46; }
.status-closed { background: #f1f5f9; color: #334155; }
.status-published { background: #d1fae5; color: #065f46; }
.status-draft { background: #f1f5f9; color: #475569; }
.status-reviewed { background: #dbeafe; color: #1d4ed8; }
.status-sent { background: #e0e7ff; color: #4338ca; }
.status-accepted { background: #d1fae5; color: #065f46; }
.status-rejected { background: #fee2e2; color: #991b1b; }
/* Documents officiels / factures */
.status-pending_validation { background: #fff7ed; color: #c2410c; border: 1px solid #fdba74; }
.status-approved { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.status-issued { background: #dbeafe; color: #1d4ed8; border: 1px solid #93c5fd; }
.status-archived { background: #e2e8f0; color: #475569; border: 1px solid #cbd5e1; }
.status-unknown { background: #f8fafc; color: #64748b; }

.doc-status-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
    margin: 0 0 1rem;
}
.doc-status-legend .status-tag {
    font-size: .68rem;
    padding: .28rem .65rem;
}
.doc-invoice-row--pending td:first-child,
.doc-validation-row--invoice td:first-child {
    box-shadow: inset 3px 0 0 #c2410c;
}
.doc-invoice-row--approved td:first-child {
    box-shadow: inset 3px 0 0 #059669;
}
.doc-invoice-row--rejected td:first-child {
    box-shadow: inset 3px 0 0 #dc2626;
}
.doc-invoice-row--draft td:first-child {
    box-shadow: inset 3px 0 0 #94a3b8;
}
.doc-invoice-row--issued td:first-child,
.doc-invoice-row--sent td:first-child {
    box-shadow: inset 3px 0 0 #2563eb;
}
.doc-invoice-row--archived td:first-child {
    box-shadow: inset 3px 0 0 #64748b;
}

.payments-country-filter {
    display: inline-flex;
    align-items: center;
    min-width: 11rem;
}
.payments-country-filter .form-control-sm {
    min-width: 11rem;
    font-weight: 600;
}
.payments-country-scope {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .35rem .75rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid var(--admin-border);
    font-size: .82rem;
}
.payments-country-scope strong { color: #0a1628; }
.payments-country-cell {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    min-width: 8.5rem;
}
.payments-country-cell .country-flag {
    flex-shrink: 0;
    border-radius: .25rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.12);
}
.payments-country-form { margin: 0; }
.payments-country-select {
    min-width: 9rem;
    max-width: 11rem;
    font-weight: 700;
    font-size: .82rem;
}
.payments-country-cell__text {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    line-height: 1.2;
}
.payments-country-cell__text strong {
    font-size: .9rem;
    color: #0a1628;
}
.payments-country-cell__text small {
    font-size: .7rem;
    font-weight: 700;
    color: #64748b;
    letter-spacing: .03em;
}
.admin-panel-head__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
}

.status-pay-unpaid { background: #fee2e2; color: #991b1b; }
.status-pay-partial { background: #fef3c7; color: #92400e; }
.status-pay-paid { background: #d1fae5; color: #065f46; }
.status-pay-refunded { background: #e0e7ff; color: #4338ca; }
.status-pay-waived { background: #f1f5f9; color: #475569; }

.admin-table-thumb {
    width: 64px;
    height: 44px;
    object-fit: cover;
    border-radius: .45rem;
    border: 1px solid var(--admin-border, #e2e8f0);
    display: block;
    background: #f1f5f9;
}
.admin-table-thumb--empty {
    display: grid;
    place-items: center;
    color: #94a3b8;
}
.admin-table-thumb--empty .icon-inline,
.admin-table-thumb--empty svg {
    width: 1.1rem;
    height: 1.1rem;
}

.admin-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.admin-stat-chip {
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
    padding: 1rem 1.15rem;
    box-shadow: var(--admin-shadow);
}
.admin-stat-chip strong {
    display: block;
    font-size: 1.35rem;
    font-family: var(--font-display);
    color: var(--color-primary);
    line-height: 1.1;
}
.admin-stat-chip span {
    font-size: .78rem;
    color: var(--color-muted);
    font-weight: 600;
}
.admin-stat-chip--warn strong { color: #c45c26; }
.admin-stat-chip--ok strong { color: #059669; }
.admin-stat-chip--danger strong { color: #b91c1c; }
.cash-amount-out { color: #b91c1c; }
.cash-amount-in { color: #059669; }
.report-amount--in { color: #059669; font-weight: 600; }
.cash-movement-accordion {
    margin-top: 1.25rem;
}
.cash-movement-accordion .cash-outflow-filters {
    margin-bottom: .25rem;
}

.cash-client-pick {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}
.cash-client-pick .form-control {
    flex: 1 1 14rem;
    min-width: 0;
}
.cash-new-client-panel {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px dashed var(--admin-border);
    border-radius: var(--admin-radius-sm);
    background: #f8fafc;
}
.cash-new-client-panel__title {
    margin: 0 0 .85rem;
    font-size: .92rem;
    font-weight: 700;
    color: var(--color-primary);
}
.cash-new-client-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .85rem;
}
#cashNewClientForm {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.admin-cross-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin: 0 0 1rem;
    padding: .55rem .75rem;
    background: #f8fafc;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
}
.admin-cross-nav__label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    margin-right: .35rem;
}
.admin-cross-nav__link {
    display: inline-flex;
    align-items: center;
    padding: .35rem .75rem;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    border: 1px solid transparent;
    background: #fff;
}
.admin-cross-nav__link:hover {
    border-color: var(--admin-border);
}
.admin-cross-nav__link.is-active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.cash-outflows {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--admin-border);
}
.cash-outflows__intro {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-bottom: 1.15rem;
}
.cash-outflows__title {
    margin: 0 0 .35rem;
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--color-primary);
    letter-spacing: -.01em;
}
.cash-outflows__lead {
    margin: 0;
    color: var(--color-muted);
    font-size: .9rem;
    max-width: 36rem;
}
.cash-outflows__totals {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}
.cash-outflows__total {
    min-width: 8.5rem;
    padding: .7rem 1rem;
    border-radius: .75rem;
    background: #fef2f2;
    border: 1px solid #fecaca;
}
.cash-outflows__total span {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #991b1b;
    margin-bottom: .2rem;
}
.cash-outflows__total strong {
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
    color: #7f1d1d;
}
.cash-outflows__total--count {
    background: #f8fafc;
    border-color: var(--admin-border);
}
.cash-outflows__total--count span { color: var(--color-muted); }
.cash-outflows__total--count strong { color: var(--color-primary); }

.cash-outflows-layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}
.cash-outflow-form-panel .admin-panel-body {
    padding-top: 1.1rem;
}
.cash-outflow-form {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.cash-outflow-form .form-group {
    margin: 0;
}
.cash-outflow-form__money {
    display: grid;
    grid-template-columns: 1.4fr .85fr;
    gap: .75rem;
}
.cash-outflow-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
}
.cash-outflow-form__actions {
    margin-top: .35rem;
    padding-top: .85rem;
    border-top: 1px solid var(--admin-border);
}
.cash-outflow-form__submit {
    width: 100%;
    justify-content: center;
}

.cash-outflow-list-panel__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
}
.cash-outflow-list-panel__head .admin-panel-head__desc {
    margin: .25rem 0 0;
    font-size: .8rem;
    color: var(--color-muted);
}
.cash-outflow-list-panel__body {
    padding-top: .35rem;
}
.cash-outflow-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .5rem;
}
.cash-outflow-filters__dates {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem .5rem;
    padding: .4rem .55rem;
    background: #f8fafc;
    border: 1px solid var(--admin-border);
    border-radius: .65rem;
}
.cash-outflow-filters__dates label {
    margin: 0;
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .03em;
}
.cash-outflow-filters .form-control-sm {
    width: auto;
    min-width: 9.25rem;
}

.cash-outflow-empty {
    text-align: center;
    padding: 2.75rem 1.5rem;
    border: 1px dashed #cbd5e1;
    border-radius: .85rem;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}
.cash-outflow-empty__icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto .85rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
}
.cash-outflow-empty__icon .icon-inline,
.cash-outflow-empty__icon svg {
    width: 1.35rem;
    height: 1.35rem;
}
.cash-outflow-empty h4 {
    margin: 0 0 .4rem;
    font-size: 1rem;
    color: var(--color-primary);
}
.cash-outflow-empty p {
    margin: 0 auto;
    max-width: 26rem;
    color: var(--color-muted);
    font-size: .9rem;
    line-height: 1.45;
}

.cash-outflow-table__date {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    color: #475569;
    font-weight: 600;
}
.cash-outflow-table__label {
    font-weight: 700;
    color: #0f172a;
}
.cash-outflow-table__amount {
    white-space: nowrap;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.cash-outflow-cat {
    display: inline-flex;
    align-items: center;
    padding: .28rem .65rem;
    border-radius: 999px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    color: #334155;
    font-size: .72rem;
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 960px) {
    .cash-outflows-layout { grid-template-columns: 1fr; }
    .cash-outflows__intro { align-items: flex-start; }
}
@media (max-width: 560px) {
    .cash-outflow-form__money,
    .cash-outflow-form__row {
        grid-template-columns: 1fr;
    }
    .cash-outflow-filters__dates {
        width: 100%;
    }
    .cash-outflow-filters .form-control-sm {
        flex: 1;
        min-width: 0;
    }
}

.admin-stat-card {
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
    padding: 1rem 1.15rem;
    box-shadow: var(--admin-shadow);
    display: flex;
    flex-direction: column;
    gap: .25rem;
}
.admin-stat-card__label {
    font-size: .78rem;
    color: var(--color-muted);
    font-weight: 600;
}
.admin-stat-card__value {
    font-size: 1.35rem;
    font-family: var(--font-display);
    color: var(--color-primary);
    line-height: 1.1;
}
.admin-stat-card small {
    font-size: .75rem;
    color: var(--color-muted);
}
.admin-stats-row--compact {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.commissions-stats .admin-stat-card__value {
    font-size: 1.15rem;
}

.col-rate,
.rate-pct {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* ---------- Caisse ---------- */
.cash-period-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .75rem 1rem;
    margin: 0 0 1.25rem;
    padding: .85rem 1rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}
.cash-period-bar__dates,
.cash-period-bar__country {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}
.cash-period-bar label {
    font-size: .8rem;
    font-weight: 600;
    color: #475569;
}
.cash-treasury {
    margin-bottom: 1.5rem;
}
.cash-treasury__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .5rem 1rem;
    margin-bottom: .75rem;
}
.cash-treasury__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0a1628;
}
.cash-dashboard {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
    align-items: stretch;
}
.cash-dashboard--treasury {
    margin-bottom: .5rem;
}
.cash-dashboard--treasury .cash-dashboard__currency {
    grid-template-columns: repeat(4, minmax(120px, 1fr));
}
.cash-dashboard--treasury .cash-dashboard__counts {
    grid-template-columns: repeat(3, minmax(100px, 140px));
}
.cash-dashboard__currency {
    display: grid;
    grid-template-columns: repeat(5, minmax(120px, 1fr));
    gap: 1rem;
    flex: 1 1 100%;
}
.cash-dashboard__counts {
    display: grid;
    grid-template-columns: repeat(2, minmax(100px, 140px));
    gap: 1rem;
}
.cash-stats-row {
    grid-template-columns: repeat(5, 1fr);
}
.cash-form-panel {
    margin-bottom: 1.25rem;
}
.cash-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.25rem;
    align-items: end;
}
.cash-form-grid--compact {
    margin-bottom: .85rem;
}
.cash-form-grid .form-group {
    margin: 0;
}
.cash-form-grid .form-group--full {
    grid-column: 1 / -1;
}
.cash-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
}
.cash-form-section-title {
    margin: 1.15rem 0 .75rem;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-muted);
}
.cash-account-layout {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}
.cash-account-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: .5rem;
}
.cash-account-summary__item {
    padding: .85rem 1rem;
    background: #f8fafc;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
}
.cash-account-summary__item span {
    display: block;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    margin-bottom: .25rem;
}
.cash-account-summary__item strong {
    font-size: .95rem;
    color: #0a1628;
}
.cash-account-summary__item--due strong {
    color: #b45309;
}
.cash-payment-form {
    margin-top: .5rem;
    padding-top: .25rem;
    border-top: 1px solid var(--admin-border);
}
.cash-status-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.cash-status-filters .btn.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

.cash-client-groups-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1.15rem 0;
}
.cash-client-groups-toolbar .form-control {
    max-width: 22rem;
    flex: 1 1 14rem;
}
.cash-client-groups-toolbar__hint {
    margin: 0;
}
.cash-client-groups {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 1.15rem 1.25rem;
}
.cash-client-group {
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
    background: #fff;
    overflow: hidden;
}
.cash-client-group__head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .75rem 1.25rem;
    align-items: center;
    padding: .85rem 1rem;
    background: #f8fafc;
    border-bottom: 1px solid var(--admin-border);
}
.cash-client-group__who {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .85rem;
}
.cash-client-group__name {
    font-size: 1rem;
    color: #0a1628;
}
.cash-client-group__count {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    background: #e2e8f0;
    padding: .2rem .55rem;
    border-radius: 999px;
}
.cash-client-group__totals {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    font-size: .84rem;
    font-variant-numeric: tabular-nums;
}
.cash-client-group__totals em {
    font-style: normal;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--color-muted);
    margin-right: .25rem;
}
.cash-client-group__totals .is-ok { color: #059669; font-weight: 600; }
.cash-client-group__totals .is-warn { color: #c45c26; font-weight: 600; }
.cash-client-group__table {
    margin: 0;
    border: 0;
    border-radius: 0;
}
.cash-client-group__table thead th {
    background: #fff;
}
.cash-client-group__ref {
    font-size: .8rem;
    background: #f1f5f9;
    padding: .15rem .4rem;
    border-radius: .3rem;
}
.cash-client-group__label {
    font-weight: 600;
    color: #0a1628;
}
.cash-client-group .table-responsive {
    margin: 0;
}
@media (max-width: 1200px) {
    .cash-dashboard__currency { grid-template-columns: repeat(2, 1fr); }
    .cash-stats-row { grid-template-columns: repeat(3, 1fr); }
    .cash-account-layout { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .cash-dashboard__currency { grid-template-columns: 1fr; }
    .cash-dashboard__counts { grid-template-columns: 1fr 1fr; width: 100%; }
    .cash-stats-row { grid-template-columns: repeat(2, 1fr); }
    .cash-form-grid { grid-template-columns: 1fr; }
    .cash-account-summary { grid-template-columns: 1fr 1fr; }
}

.registration-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}
.registration-detail__title {
    margin: 0 0 .65rem;
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-muted);
}
.registration-detail__list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: .88rem;
}
.registration-detail__list li { padding: .25rem 0; }
.registration-detail__message {
    margin: 1rem 0 0;
    padding: 1rem;
    background: #f8fafc;
    border-radius: var(--admin-radius-sm);
    border: 1px solid var(--admin-border);
    font-size: .88rem;
}
.registration-balance--due { color: #c0392b; font-weight: 700; }
.registration-payments-block { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--admin-border); }
.registration-payment-form { margin-top: 1rem; padding: 1rem; background: #fafbfc; border-radius: var(--admin-radius-sm); border: 1px solid var(--admin-border); }
.registration-payment-form .form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .85rem;
    margin-bottom: .85rem;
}
.registration-payment-form .form-group {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin: 0;
}
.registration-payment-form .form-group label {
    display: block;
    font-size: .78rem;
    font-weight: 650;
    color: #475569;
}
.registration-payment-form .btn {
    height: auto;
    min-height: 2.35rem;
    align-self: flex-start;
}

/* ---------- Action buttons ---------- */
.actions-cell {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .4rem;
    white-space: nowrap;
}

.admin-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-width: 2.15rem;
    height: 2.15rem;
    padding: 0 .65rem;
    border-radius: .55rem;
    font-size: .78rem;
    font-weight: 600;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
    font-family: var(--font-sans);
    line-height: 1;
    text-decoration: none;
}
.admin-action:hover { transform: translateY(-1px); }
.admin-action .icon-inline { width: .95rem; height: .95rem; flex-shrink: 0; }
.admin-action .icon-inline svg { display: block; width: 100%; height: 100%; }

.admin-action--edit {
    background: rgba(10, 22, 40, .06);
    color: var(--color-primary);
    border-color: rgba(10, 22, 40, .1);
}
.admin-action--edit:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
    box-shadow: 0 4px 12px rgba(10, 22, 40, .2);
}

.admin-action--delete {
    background: rgba(192, 57, 43, .08);
    color: #c0392b;
    border-color: rgba(192, 57, 43, .15);
}
.admin-action--delete:hover {
    background: #c0392b;
    color: #fff;
    border-color: #c0392b;
    box-shadow: 0 4px 12px rgba(192, 57, 43, .3);
}

.admin-action--publish,
.admin-action--secondary {
    background: rgba(196, 92, 38, .1);
    color: var(--color-secondary);
    border-color: rgba(196, 92, 38, .2);
}
.admin-action--publish:hover,
.admin-action--secondary:hover {
    background: var(--color-secondary);
    color: #fff;
    border-color: var(--color-secondary);
    box-shadow: 0 4px 12px rgba(196, 92, 38, .3);
}

.admin-action--unpublish {
    background: rgba(100, 116, 139, .1);
    color: #475569;
    border-color: rgba(100, 116, 139, .2);
}
.admin-action--unpublish:hover {
    background: #475569;
    color: #fff;
    border-color: #475569;
}

.admin-action--success {
    background: rgba(16, 185, 129, .1);
    color: #059669;
    border-color: rgba(16, 185, 129, .2);
}
.admin-action--success:hover {
    background: #059669;
    color: #fff;
    border-color: #059669;
}

.admin-action--labeled { padding: 0 .75rem; }

.actions-cell form { display: inline-flex; margin: 0; }
.actions-cell .status-select {
    padding: .4rem .65rem;
    font-size: .78rem;
    font-weight: 600;
    border-radius: .55rem;
    border: 1px solid var(--admin-border);
    background: #fff;
    color: var(--color-primary);
    cursor: pointer;
    min-width: 8.5rem;
}
.actions-cell .status-select:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(196, 92, 38, .12);
}

/* ---------- Buttons (admin overrides) ---------- */
.admin-content .btn-sm {
    padding: .55rem 1rem;
    font-size: .82rem;
    border-radius: .55rem;
}
.admin-content .btn-danger {
    background: #c0392b;
    color: #fff;
    border: none;
}
.admin-content .btn-danger:hover { background: #a5281b; }
.admin-content form .btn + .btn,
.admin-content form .btn + a.btn { margin-left: .5rem; }

.admin-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
    padding-top: .5rem;
    margin-top: .5rem;
    border-top: 1px solid var(--admin-border);
}

/* ---------- Forms (admin scope) ---------- */
.admin-content .form-group label {
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: .4rem;
}
.admin-content .form-control {
    border-radius: .55rem;
    border-color: var(--admin-border);
    font-size: .88rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.admin-content .form-control:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(196, 92, 38, .1);
}

/* ---------- Dashboard grid ---------- */
.admin-dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
@media (max-width: 1100px) {
    .admin-dashboard-grid { grid-template-columns: 1fr; }
}

.admin-quick-links {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .75rem;
}
.admin-quick-link {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
    border-radius: var(--admin-radius-sm);
    border: 1px solid var(--admin-border);
    background: #fafbfc;
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-primary);
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.admin-quick-link:hover {
    background: #fff;
    border-color: rgba(196, 92, 38, .25);
    transform: translateX(3px);
}
.admin-quick-link .icon-inline { width: 1.1rem; height: 1.1rem; color: var(--color-secondary); }

.admin-action--success:hover {
    background: #059669;
    color: #fff;
    border-color: #059669;
}

.admin-action--view {
    background: rgba(59, 130, 246, .08);
    color: #2563eb;
    border-color: rgba(59, 130, 246, .15);
}
.admin-action--view:hover {
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
}

.admin-action--document {
    background: rgba(99, 102, 241, .08);
    color: #4338ca;
    border-color: rgba(99, 102, 241, .15);
}
.admin-action--document:hover {
    background: #4338ca;
    color: #fff;
    border-color: #4338ca;
}

/* ---------- DataTables (admin) ---------- */
.dataTables_wrapper { padding: 0 1.25rem 1.25rem; }
.dt-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0 .75rem;
}
.dt-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding-top: .85rem;
}
.dataTables_length label,
.dataTables_filter label {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
}
.dataTables_length select,
.dataTables_filter input {
    border: 1px solid var(--admin-border);
    border-radius: .5rem;
    padding: .45rem .65rem;
    font-size: .82rem;
    font-family: var(--font-sans);
    color: var(--color-primary);
    background: #fff;
}
.dataTables_filter input { min-width: 12rem; }
.dataTables_filter input:focus,
.dataTables_length select:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(196, 92, 38, .1);
}
.dataTables_info { font-size: .78rem; color: var(--color-muted); }
.dataTables_paginate { display: flex; gap: .25rem; }
.dataTables_paginate .paginate_button {
    padding: .4rem .75rem !important;
    border-radius: .45rem !important;
    border: 1px solid var(--admin-border) !important;
    background: #fff !important;
    color: var(--color-primary) !important;
    font-size: .78rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
}
.dataTables_paginate .paginate_button.current {
    background: var(--color-primary) !important;
    color: #fff !important;
    border-color: var(--color-primary) !important;
}
.dataTables_paginate .paginate_button:hover:not(.disabled):not(.current) {
    background: #f8fafc !important;
    border-color: rgba(10, 22, 40, .15) !important;
}
table.dataTable thead th { border-bottom: 1px solid var(--admin-border) !important; }
table.dataTable.no-footer { border-bottom: none; }
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
    background-color: var(--color-secondary);
}
.admin-panel .dataTables_wrapper .data-table { margin: 0; }
.col-actions { width: 1%; white-space: nowrap; text-align: right !important; }

.admin-message-view {
    margin-bottom: 1.5rem;
}
.admin-message-view__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    margin-bottom: 1rem;
    font-size: .85rem;
    color: var(--color-muted);
}
.admin-message-view__body {
    padding: 1rem 1.15rem;
    border-radius: var(--admin-radius-sm);
    background: #f8fafc;
    border: 1px solid var(--admin-border);
    white-space: pre-wrap;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
.msg-view-actions { border-top: none; margin-top: 1rem; padding-top: 0; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-start; }
.msg-view-actions form { margin: 0; }

.msg-source {
    display: inline-block;
    padding: .15rem .55rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
}
.msg-source--email { background: #dbeafe; color: #1d4ed8; }
.msg-source--form { background: #fef3c7; color: #b45309; }

.msg-subject-link { color: inherit; font-weight: 600; text-decoration: none; }
.msg-subject-link:hover { color: var(--color-secondary); text-decoration: underline; }
.msg-clip { display: inline-flex; align-items: center; gap: .15rem; margin-left: .4rem; font-size: .75rem; color: var(--color-muted); }
.msg-clip .icon { width: 14px; height: 14px; }

.msg-attachments { margin-top: 1rem; }
.msg-attachments__title { font-size: .8rem; font-weight: 600; color: var(--color-muted); margin-bottom: .5rem; text-transform: uppercase; letter-spacing: .04em; }
.msg-attachments__list { display: flex; flex-wrap: wrap; gap: .5rem; }
.msg-attachment {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    max-width: 100%;
    padding: .5rem .75rem;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
    background: #fff;
    color: var(--color-primary);
    text-decoration: none;
    font-size: .85rem;
}
.msg-attachment:hover { border-color: var(--color-secondary); color: var(--color-secondary); }
.msg-attachment__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.msg-attachment__size { color: var(--color-muted); font-size: .75rem; }

.msg-inbox { margin-bottom: 1.5rem; }
.msg-inbox__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
}
.msg-inbox__status { display: flex; align-items: flex-start; gap: .75rem; min-width: 0; flex: 1 1 360px; }
.msg-inbox__status strong { display: block; color: var(--color-primary); font-size: .95rem; }
.msg-inbox__status small { display: block; color: var(--color-muted); font-size: .8rem; line-height: 1.45; margin-top: .15rem; }
.msg-inbox__status .msg-inbox__error { color: #b91c1c; }
.msg-inbox__dot { flex: none; width: 10px; height: 10px; margin-top: .4rem; border-radius: 50%; background: #94a3b8; box-shadow: 0 0 0 4px rgba(148, 163, 184, .2); }
.msg-inbox__dot.is-on { background: #16a34a; box-shadow: 0 0 0 4px rgba(22, 163, 74, .18); }
.msg-inbox__dot.is-warn { background: #f59e0b; box-shadow: 0 0 0 4px rgba(245, 158, 11, .2); }
.msg-inbox__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.msg-inbox__actions form { margin: 0; }
.msg-inbox__config { border-top: 1px solid var(--admin-border); padding: 1.1rem 1.25rem 1.25rem; }
.msg-inbox__config[hidden] { display: none; }
.msg-inbox__help { font-size: .82rem; color: var(--color-muted); margin: 0 0 .9rem; line-height: 1.5; }
.msg-inbox__help code { font-size: .78rem; word-break: break-all; }
.msg-inbox__config .settings-switch { margin-bottom: .9rem; }
.msg-inbox__config .form-group small { display: flex; align-items: center; gap: .35rem; margin-top: .35rem; font-size: .75rem; color: var(--color-muted); }
.msg-inbox__buttons { border-top: none; margin-top: .5rem; padding-top: 0; display: flex; gap: .5rem; justify-content: flex-start; }

.msg-filters { display: flex; flex-wrap: wrap; gap: .35rem; }
.msg-filter {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .7rem;
    border-radius: 999px;
    border: 1px solid var(--admin-border);
    font-size: .8rem;
    color: var(--color-primary);
    text-decoration: none;
    background: #fff;
}
.msg-filter span { font-size: .7rem; font-weight: 700; padding: 0 .4rem; border-radius: 999px; background: #eef2f7; }
.msg-filter:hover { border-color: var(--color-secondary); }
.msg-filter.is-active { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.msg-filter.is-active span { background: rgba(255, 255, 255, .2); }

.msg-new-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 1.25rem 1rem;
    padding: .65rem 1rem;
    border-radius: var(--admin-radius-sm);
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #047857;
    font-weight: 600;
    font-size: .88rem;
}
.msg-new-banner[hidden] { display: none; }

.msg-source--reply { background: #dcfce7; color: #15803d; }
.msg-replied,
.msg-followup {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    margin-left: .4rem;
    padding: .05rem .45rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: middle;
}
.msg-replied { background: #dcfce7; color: #15803d; }
.msg-replied .icon { width: 12px; height: 12px; }
.msg-followup { background: #ede9fe; color: #6d28d9; }

.msg-thread { display: flex; flex-direction: column; gap: 1rem; }
.msg-bubble {
    padding: 1rem 1.1rem;
    border: 1px solid var(--admin-border);
    border-left: 4px solid #93c5fd;
    border-radius: var(--admin-radius-sm);
    background: #fff;
}
.msg-bubble .admin-message-view__meta { margin-bottom: .75rem; gap: .5rem 1.25rem; }
.msg-bubble--in.is-current { border-left-color: var(--color-secondary); box-shadow: 0 1px 6px rgba(15, 23, 42, .06); }
.msg-bubble--out { border-left-color: #22c55e; background: #f7fdf9; margin-left: clamp(0rem, 4vw, 2.5rem); }
.msg-bubble--out .admin-message-view__body { background: #fff; }
.msg-bubble__subject { font-weight: 600; color: var(--color-primary); margin-bottom: .5rem; font-size: .92rem; }

.msg-reply {
    margin-top: 1.5rem;
    padding: 1.1rem 1.15rem 1.25rem;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-sm);
    background: #f8fafc;
    scroll-margin-top: 90px;
}
.msg-reply__title { display: flex; align-items: center; gap: .4rem; margin: 0 0 .85rem; font-size: 1rem; color: var(--color-primary); }
.msg-reply__notice {
    padding: .75rem 1rem;
    border-radius: var(--admin-radius-sm);
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
    font-size: .88rem;
    line-height: 1.5;
}
.msg-reply__notice a { color: inherit; font-weight: 600; }
.msg-reply__from { font-size: .82rem; color: var(--color-muted); margin-bottom: .85rem; }
.msg-reply__from strong { color: var(--color-primary); font-weight: 600; }
.msg-reply__form .form-group label small { font-weight: 400; color: var(--color-muted); }
.msg-reply__body { min-height: 220px; font-family: inherit; line-height: 1.55; resize: vertical; }
.msg-reply__options { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .75rem 1.5rem; margin-top: .25rem; }
.msg-reply__check { display: inline-flex; align-items: center; gap: .45rem; font-size: .85rem; cursor: pointer; }
.msg-reply__check input { width: 16px; height: 16px; margin: 0; }
.msg-reply__files { display: flex; flex-direction: column; gap: .25rem; font-size: .85rem; }
.msg-reply__files small { color: var(--color-muted); font-size: .75rem; }
.msg-reply .msg-view-actions { margin-top: 1rem; }
.msg-view-actions--footer { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px dashed var(--admin-border); }
.msg-inbox__subtitle { margin: 1.1rem 0 .35rem; font-size: .92rem; color: var(--color-primary); }

/* ---------- Login page admin tweaks ---------- */
body.admin-login .auth-card-head .icon-tile {
    display: inline-flex;
    margin-bottom: .85rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
    .stat-cards { grid-template-columns: repeat(2, 1fr); }
    .dash-grid--charts { grid-template-columns: 1fr; }
    .dash-grid--3 { grid-template-columns: 1fr 1fr; }
    .admin-quick-links--wide { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .admin-sidebar {
        transform: translateX(-100%);
        box-shadow: var(--admin-shadow-lg);
    }
    .admin-sidebar.is-open { transform: translateX(0); }
    .admin-main { margin-left: 0; }
    .admin-menu-toggle { display: inline-flex; }
    .admin-topbar { padding: 1rem 1.25rem; }
    .admin-content { padding: 1.25rem; }
    .admin-topbar-link span:not(.icon-inline) { display: none; }
    .admin-user__meta { display: none; }
    .dash-welcome { flex-direction: column; align-items: flex-start; }
    .dash-grid--3 { grid-template-columns: 1fr; }
    .admin-quick-links--wide { grid-template-columns: 1fr; }
    .admin-stats-row { grid-template-columns: 1fr 1fr; }
    .registration-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
    .stat-cards { grid-template-columns: 1fr; }
    .actions-cell { flex-wrap: wrap; justify-content: flex-start; }
    .admin-action--labeled .admin-action__label { display: none; }
    .admin-action--labeled { min-width: 2.15rem; padding: 0; }
}

/* ---------- Settings page (compact) ---------- */
.settings-page { max-width: 1100px; }

.settings-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: 0 0 1rem;
    padding: .35rem;
    background: #fff;
    border: 1px solid var(--admin-border);
    border-radius: .85rem;
    box-shadow: var(--admin-shadow);
    position: sticky;
    top: .75rem;
    z-index: 20;
}

.settings-tab {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .55rem .9rem;
    border-radius: .6rem;
    font-size: .82rem;
    font-weight: 650;
    color: #64748b;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
}
.settings-tab:hover { background: #f1f5f9; color: var(--color-primary); }
.settings-tab.is-active {
    background: var(--color-primary);
    color: #fff;
}
.settings-tab.is-active .settings-pill {
    background: rgba(255,255,255,.2);
    color: #fff;
}

.settings-pill {
    display: inline-flex;
    align-items: center;
    padding: .1rem .4rem;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .04em;
    background: #e2e8f0;
    color: #475569;
}
.settings-pill--on { background: #dcfce7; color: #166534; }

.settings-section { display: none; margin-bottom: 1rem; }
.settings-section.is-active { display: block; }

.settings-card {
    background: #fff;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow);
    overflow: hidden;
}
.settings-card--compact .settings-card__body { padding: .85rem 1rem; }

.settings-card__head {
    padding: .85rem 1.1rem;
    border-bottom: 1px solid var(--admin-border);
    background: linear-gradient(180deg, #fbfcfd 0%, #fff 100%);
}
.settings-card__head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 750;
    color: var(--color-primary);
}
.settings-card__head p {
    margin: .2rem 0 0;
    font-size: .78rem;
    color: #64748b;
    line-height: 1.35;
}

.settings-card__body { padding: 1rem 1.1rem 1.15rem; }
.settings-guide {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.settings-guide__block {
    padding: .85rem 1rem;
    border: 1px solid #e2e8f0;
    border-radius: .75rem;
    background: #f8fafc;
}
.settings-guide__block h4 {
    margin: 0 0 .45rem;
    font-size: .95rem;
    font-weight: 750;
    color: var(--color-primary);
}
.settings-guide__block ol,
.settings-guide__block ul {
    margin: 0;
    padding-left: 1.15rem;
}
.settings-guide__block li,
.settings-guide__block p {
    margin: .25rem 0;
    font-size: .88rem;
    line-height: 1.45;
    color: #334155;
}
.settings-guide__block code {
    font-size: .8rem;
    background: #e2e8f0;
    padding: .1rem .35rem;
    border-radius: .3rem;
}
.settings-guide__block--highlight {
    border-color: #cbd5e1;
    background: #fff;
    box-shadow: var(--admin-shadow);
}
.settings-guide__subtitle {
    margin: .85rem 0 .35rem;
    font-size: .88rem;
    font-weight: 700;
    color: #0f172a;
}
.settings-guide__table {
    width: 100%;
    border-collapse: collapse;
    margin: .5rem 0 .75rem;
    font-size: .84rem;
}
.settings-guide__table th,
.settings-guide__table td {
    border: 1px solid #e2e8f0;
    padding: .45rem .6rem;
    text-align: left;
    vertical-align: top;
}
.settings-guide__table th {
    background: #f1f5f9;
    font-weight: 650;
    color: var(--color-primary);
}
.settings-guide__example {
    margin: .5rem 0 .75rem;
    padding: .65rem .85rem;
    border-radius: .55rem;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    font-size: .84rem;
    line-height: 1.5;
}
.settings-guide__example p { margin: .2rem 0; }
.settings-help-callout {
    margin-bottom: 1rem;
    padding: .85rem 1rem;
    border-radius: .65rem;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}
.settings-help-callout p {
    margin: 0 0 .35rem;
    font-size: .88rem;
    line-height: 1.45;
    color: #1e3a5f;
}
.settings-help-callout p:last-child { margin-bottom: 0; }
.settings-help-callout__link a {
    font-weight: 650;
    color: #1d4ed8;
    text-decoration: none;
}
.settings-help-callout__link a:hover { text-decoration: underline; }
.settings-country-bar__hint--legal {
    padding: .55rem .75rem;
    border-radius: .45rem;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #14532d;
}
.settings-card__body--row {
    display: flex;
    gap: .75rem;
    align-items: end;
    flex-wrap: wrap;
}

.settings-grid {
    display: grid;
    gap: .75rem .9rem;
}
.settings-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.settings-grid--4 { grid-template-columns: 1.2fr 1fr 1.2fr auto; align-items: end; }
.settings-grid + .settings-grid { margin-top: .75rem; }
.settings-span-2 { grid-column: span 2; }

.settings-page .form-group { margin-bottom: 0; }
.settings-page .form-group label {
    margin-bottom: .28rem;
    font-size: .78rem;
    font-weight: 650;
}
.settings-page .form-control {
    padding: .55rem .7rem;
    font-size: .88rem;
    border-radius: .55rem;
}

.settings-label-icon {
    display: inline-flex !important;
    align-items: center;
    gap: .4rem;
}
.settings-label-icon .icon-inline {
    width: 1rem;
    height: 1rem;
    color: var(--color-secondary);
}

.settings-logo {
    display: flex;
    align-items: center;
    gap: .85rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding: .75rem .85rem;
    border: 1px dashed var(--admin-border);
    border-radius: .75rem;
    background: #f8fafc;
}
.settings-logo img {
    height: 2.75rem;
    max-width: 9rem;
    object-fit: contain;
}
.settings-logo__empty {
    width: 3.2rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    border-radius: .5rem;
    background: #e2e8f0;
    color: #64748b;
    font-size: .72rem;
    font-weight: 700;
}
.settings-logo__upload { flex: 1; min-width: 180px; }
.settings-logo__upload small { color: #94a3b8; font-size: .72rem; }

.settings-check,
.settings-switch {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .84rem;
    font-weight: 600;
    margin: 0 0 .85rem;
    cursor: pointer;
}
.settings-switch small { color: #94a3b8; font-weight: 500; }

.settings-savebar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    margin: 1rem 0 1.25rem;
    padding: .85rem 1rem;
    background: #f8fafc;
    border: 1px solid var(--admin-border);
    border-radius: .75rem;
}
.settings-savebar__hint {
    margin: 0;
    flex: 1 1 12rem;
    font-size: .84rem;
    line-height: 1.45;
    color: #64748b;
}
.settings-savebar .btn {
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(10, 22, 40, .12);
}

.settings-upload { margin-bottom: 1rem; }
.settings-upload__actions {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    align-items: stretch;
}
.settings-upload__actions .settings-check { margin: 0; }
.settings-upload__actions .btn { width: 100%; }

.settings-table { margin-top: .25rem; border: 1px solid var(--admin-border); border-radius: .75rem; overflow: hidden; }
.settings-table .data-table th,
.settings-table .data-table td { padding: .65rem .75rem; font-size: .84rem; }
.settings-muted { color: #94a3b8; font-size: .72rem; margin-top: .15rem; }
.settings-empty { color: #94a3b8; text-align: center; padding: 1.25rem !important; }

@media (max-width: 960px) {
    .settings-grid--3,
    .settings-grid--4 { grid-template-columns: 1fr 1fr; }
    .settings-upload__actions { grid-column: span 2; flex-direction: row; align-items: center; justify-content: space-between; }
    .settings-upload__actions .btn { width: auto; }
}
@media (max-width: 640px) {
    .settings-grid--2,
    .settings-grid--3,
    .settings-grid--4 { grid-template-columns: 1fr; }
    .settings-span-2 { grid-column: auto; }
    .settings-tabs { top: .35rem; }
    .settings-tab { padding: .45rem .7rem; font-size: .78rem; }
    .settings-upload__actions { grid-column: auto; }
}

/* ---------- Guide rôles utilisateurs ---------- */
.user-roles-guide {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .65rem;
    margin: 0 0 1.25rem;
    padding: 0;
    list-style: none;
}
.user-roles-guide__item {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: .65rem .85rem;
    background: #f8fafc;
    font-size: .78rem;
    line-height: 1.45;
}
.user-roles-guide__item strong {
    display: block;
    font-size: .82rem;
    color: #0a1628;
    margin-bottom: .2rem;
}
.user-roles-guide__item--admin { border-left: 4px solid #0a1628; }
.user-roles-guide__item--country { border-left: 4px solid #e85d04; background: #fff7ed; }
.user-roles-guide__item--editor { border-left: 4px solid #1d4ed8; }
.user-roles-guide__item--accountant { border-left: 4px solid #059669; }
.user-roles-guide__item--instructor { border-left: 4px solid #7c3aed; }
.user-roles-guide__item--student { border-left: 4px solid #94a3b8; opacity: .92; }
.users-view-tabs { margin-bottom: 1.25rem; }
.users-view-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    padding: 0 .35rem;
    margin-left: .35rem;
    border-radius: 999px;
    background: rgba(10, 22, 40, .08);
    font-size: .72rem;
    font-weight: 700;
}
.user-role-badge {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
}
.user-role-badge--student { background: #f1f5f9; color: #475569; }
.user-role-badge--editor { background: #dbeafe; color: #1d4ed8; }
.user-role-badge--admin { background: #0a1628; color: #fff; }
.user-role-badge--country { background: #ffedd5; color: #c2410c; }
.user-role-badge--accountant { background: #d1fae5; color: #047857; }
.user-role-badge--instructor { background: #ede9fe; color: #6d28d9; }
.user-role-badge--lead-tech { background: #cffafe; color: #0e7490; }
.user-role-badge--commercial { background: #dcfce7; color: #15803d; }
.user-role-badge--technician { background: #fef3c7; color: #b45309; }
.user-roles-guide__item--lead-tech { border-left: 4px solid #06b6d4; }
.user-roles-guide__item--commercial { border-left: 4px solid #16a34a; background: #f0fdf4; }
.user-roles-guide__item--technician { border-left: 4px solid #f59e0b; }

.user-country-field {
    border: 2px solid #e85d04;
    border-radius: 12px;
    padding: .85rem 1rem;
    background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
    box-shadow: 0 0 0 3px rgba(232, 93, 4, .12);
}
.user-country-field label {
    color: #c2410c;
    font-weight: 800;
    font-size: .88rem;
    letter-spacing: .02em;
}
.user-country-field label::before {
    content: "🌍 ";
}
.user-country-field .form-control {
    border-color: #fb923c;
    background: #fff;
    font-weight: 600;
    color: #9a3412;
}
.user-country-field .form-control:focus {
    border-color: #e85d04;
    box-shadow: 0 0 0 3px rgba(232, 93, 4, .25);
}
.user-country-field .form-hint {
    color: #c2410c;
    font-weight: 600;
}
.user-country-field.is-global {
    border-color: #cbd5e1;
    background: #f8fafc;
    box-shadow: none;
}
.user-country-field.is-global label { color: #475569; font-weight: 600; }
.user-country-field.is-global label::before { content: "🌐 "; }
.user-country-field.is-global .form-control { border-color: #cbd5e1; color: inherit; font-weight: 400; }
.user-country-field.is-global .form-hint { color: #64748b; font-weight: 400; }

.user-country-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .28rem .65rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
    background: linear-gradient(135deg, #ffedd5, #fed7aa);
    color: #9a3412;
    border: 1px solid #fb923c;
    white-space: nowrap;
}
.user-country-badge--global {
    background: #f1f5f9;
    color: #64748b;
    border-color: #cbd5e1;
    font-weight: 600;
}
.user-role-desc {
    display: block;
    margin-top: .35rem;
    font-size: .78rem;
    color: #64748b;
    line-height: 1.4;
    min-height: 2.5em;
}

/* ---------- Utilisateurs — sélecteurs rôle / pays ---------- */
.user-picker-section {
    margin: 1.25rem 0 1rem;
    padding: 1rem 1.1rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}
.user-picker-section__head {
    margin-bottom: .85rem;
}
.user-picker-section__title {
    display: block;
    font-weight: 700;
    font-size: .92rem;
    color: #0f172a;
    margin-bottom: .2rem;
}
.user-picker-group {
    border: 0;
    margin: 0 0 1rem;
    padding: 0;
}
.user-picker-group legend {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
    margin-bottom: .5rem;
    padding: 0;
}
.user-pick-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .55rem;
}
.user-pick-grid--countries {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}
.user-pick-card {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: 0;
    padding: .65rem .75rem;
    background: #fff;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.user-pick-card:hover:not(.is-disabled) {
    border-color: #cbd5e1;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .06);
}
.user-pick-card.is-selected {
    border-color: var(--color-secondary, #e85d04);
    background: #fff7ed;
    box-shadow: 0 0 0 1px rgba(232, 93, 4, .15);
}
.user-pick-card.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}
.user-pick-card__input {
    flex-shrink: 0;
    margin-top: .2rem;
    accent-color: var(--color-secondary, #e85d04);
}
.user-pick-card__body {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.user-pick-card__body strong {
    font-size: .84rem;
    color: #0f172a;
    line-height: 1.25;
}
.user-pick-card__body small {
    font-size: .72rem;
    color: #64748b;
    line-height: 1.35;
}
.user-pick-card--admin.is-selected { border-color: #0a1628; background: #f1f5f9; }
.user-pick-card--country.is-selected { border-color: #0ea5e9; background: #f0f9ff; }
.user-pick-card--global.is-selected { border-color: #64748b; background: #f8fafc; }
.user-country-picker-wrap.needs-country .user-pick-card--global { opacity: .5; }
.user-list-filters {
    border-bottom: 1px solid #e2e8f0;
}
.user-list-filters__block {
    margin-bottom: .85rem;
}
.user-list-filters__block:last-child {
    margin-bottom: 0;
}
.user-list-filters__label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
    margin-bottom: .45rem;
}
.user-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.user-filter-chip {
    display: inline-flex;
    align-items: center;
    margin: 0;
    cursor: pointer;
}
.user-filter-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.user-filter-chip span {
    display: inline-block;
    padding: .28rem .65rem;
    font-size: .78rem;
    font-weight: 600;
    color: #475569;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    transition: background .15s, color .15s, border-color .15s;
}
.user-filter-chip input:checked + span {
    background: var(--color-secondary, #e85d04);
    border-color: var(--color-secondary, #e85d04);
    color: #fff;
}
.user-filter-chip:hover span {
    border-color: #cbd5e1;
}
.admin-panel-body--compact {
    padding-top: .85rem;
    padding-bottom: .85rem;
}

/* ---------- Interventions — timeline horizontale ---------- */
.admin-panel-head__meta {
    margin: .25rem 0 0;
    font-size: .82rem;
    color: var(--color-muted);
    font-weight: 500;
}
.intervention-list-head {
    flex-wrap: wrap;
    gap: .75rem;
}
.intervention-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.intervention-filters .btn.active {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #fff;
}
.intervention-cards-wrap {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 1.25rem 1.25rem;
}
.intervention-card {
    background: #fafbfc;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius);
    padding: 1rem 1.15rem 1.1rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.intervention-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 2px 12px rgba(10, 22, 40, .05);
}
.intervention-card--active {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 2px rgba(232, 93, 4, .12);
}
.intervention-card__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: .85rem;
}
.intervention-card__ref {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #94a3b8;
}
.intervention-card__headline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-bottom: .15rem;
}
.intervention-country-badge {
    font-size: .72rem;
    padding: .12rem .45rem;
    border-radius: 999px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
}
.intervention-list-head__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
}
.intervention-list-head {
    flex-wrap: wrap;
    gap: .75rem;
}
.intervention-card__title {
    margin: .15rem 0 .2rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-primary);
}
.intervention-card__meta {
    margin: 0;
    font-size: .78rem;
    color: var(--color-muted);
}
.intervention-card__date {
    font-size: .75rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
}

.intervention-timeline {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.intervention-timeline__track {
    display: flex;
    align-items: flex-start;
    width: 100%;
    overflow-x: auto;
    padding-bottom: .25rem;
    scrollbar-width: thin;
}
.intervention-timeline__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    min-width: 4.5rem;
    flex: 0 0 auto;
    text-align: center;
}
.intervention-timeline__bubble {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    font-weight: 800;
    border: 2px solid #cbd5e1;
    background: #fff;
    color: #94a3b8;
    transition: all .2s ease;
}
.intervention-timeline__label {
    font-size: .68rem;
    font-weight: 650;
    color: #94a3b8;
    line-height: 1.2;
    max-width: 5.5rem;
}
.intervention-timeline__connector {
    flex: 1 1 auto;
    min-width: 1.25rem;
    height: 2px;
    margin-top: 1rem;
    background: #e2e8f0;
    border-radius: 1px;
}
.intervention-timeline__connector--done { background: var(--color-secondary); }
.intervention-timeline__connector--current {
    background: linear-gradient(90deg, var(--color-secondary) 0%, #e2e8f0 100%);
}
.intervention-timeline__step--done .intervention-timeline__bubble {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #fff;
}
.intervention-timeline__step--done .intervention-timeline__label { color: #475569; }
.intervention-timeline__step--current .intervention-timeline__bubble {
    background: #fff;
    border-color: var(--color-secondary);
    color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(232, 93, 4, .18);
    transform: scale(1.08);
}
.intervention-timeline__step--current .intervention-timeline__label {
    color: var(--color-primary);
    font-weight: 800;
}
.intervention-timeline__step--cancelled .intervention-timeline__bubble {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}
.intervention-timeline__step--cancelled .intervention-timeline__label {
    color: #991b1b;
}
.intervention-timeline__step--pending .intervention-timeline__bubble {
    background: #fff;
    color: #94a3b8;
    border-color: #e2e8f0;
}
.intervention-timeline__cancelled {
    margin: 0;
    font-size: .78rem;
    font-weight: 700;
    color: #b91c1c;
}
.intervention-timeline__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}
.intervention-timeline__action-form {
    display: inline-flex;
    margin: 0;
}
.intervention-timeline__btn-cancel { color: #b45309; border-color: #fcd34d; }
.intervention-timeline__btn-delete { color: #b91c1c; border-color: #fecaca; }

.intervention-timeline--compact .intervention-timeline__step { min-width: 3.5rem; }
.intervention-timeline--compact .intervention-timeline__bubble {
    width: 1.65rem;
    height: 1.65rem;
    font-size: .68rem;
}
.intervention-timeline--compact .intervention-timeline__connector { margin-top: .82rem; min-width: .75rem; }
.intervention-timeline--compact .intervention-timeline__label { font-size: .62rem; max-width: 4.25rem; }

.intervention-history {
    list-style: none;
    margin: 0;
    padding: 0 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .65rem;
}
.intervention-history__item {
    display: grid;
    grid-template-columns: 7rem 1fr;
    gap: .35rem 1rem;
    padding: .65rem .85rem;
    background: #fafbfc;
    border-radius: var(--admin-radius-sm);
    border-left: 3px solid var(--color-secondary);
    font-size: .82rem;
}
.intervention-history__date {
    font-weight: 600;
    color: #64748b;
}
.intervention-history__item small {
    grid-column: 2;
    color: #94a3b8;
    font-size: .72rem;
}

@media (max-width: 768px) {
    .intervention-card__head { flex-direction: column; }
    .intervention-timeline__label { display: none; }
    .intervention-timeline__step { min-width: 2.5rem; }
    .intervention-timeline--compact .intervention-timeline__step { min-width: 2rem; }
    .intervention-history__item { grid-template-columns: 1fr; }
}

/* ---------- Rapports financiers ---------- */
.report-country-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.report-country-card {
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius);
    padding: 1rem 1.1rem;
    box-shadow: var(--admin-shadow);
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.report-country-card__head {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.report-country-card__flag {
    flex-shrink: 0;
    line-height: 0;
    border-radius: .35rem;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.report-country-card__flag .country-flag {
    display: block;
    border-radius: .35rem;
}
.report-country-card__title {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}
.report-country-card__title strong {
    font-size: .95rem;
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1.2;
}
.report-country-card__title small {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: #94a3b8;
    text-transform: uppercase;
}
.report-country-card__metrics {
    display: grid;
    grid-template-columns: 1fr;
    gap: .45rem;
}
.report-country-card__metric {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: .5rem;
    font-size: .78rem;
}
.report-country-card__metric > span {
    color: #64748b;
    font-weight: 600;
}
.report-country-card__metric strong {
    font-size: .88rem;
    text-align: right;
}
.report-country-card__metric--balance {
    padding-top: .4rem;
    margin-top: .15rem;
    border-top: 1px dashed var(--admin-border);
}
.report-country-card__link {
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-secondary);
    text-decoration: none;
}
.report-country-card__link:hover { text-decoration: underline; }
.report-country-cell {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.report-country-cell .country-flag {
    flex-shrink: 0;
    border-radius: .2rem;
    box-shadow: 0 1px 2px rgba(0,0,0,.1);
}
.report-filters__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .5rem;
}
.report-amount--in { color: #059669; font-weight: 600; }
.report-amount--out { color: #b91c1c; font-weight: 600; }
.report-amount--balance { color: #0a1628; }
.report-type {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    padding: .15rem .45rem;
    border-radius: 999px;
    text-transform: capitalize;
}

.doc-vat-row {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
}
.doc-vat-apply { margin: 0; white-space: nowrap; }
.doc-vat-rate { max-width: 5.5rem; text-align: right; }
.doc-vat-suffix { color: var(--color-muted, #64748b); font-weight: 600; }
.doc-vat-row.is-disabled .doc-vat-rate {
    opacity: .55;
    background: #f1f5f9;
}

.doc-client-row {
    display: flex;
    align-items: stretch;
    gap: .5rem;
    flex-wrap: wrap;
}
.doc-client-row select { flex: 1 1 12rem; min-width: 0; }
.doc-client-row .btn {
    flex: 0 0 auto;
    white-space: nowrap;
    align-self: stretch;
}
.doc-client-quick-add { margin-top: 1rem; }
.admin-panel--nested {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
}
.admin-panel--nested .admin-panel-head {
    padding: .75rem 1rem;
    border-bottom: 1px solid #e2e8f0;
}
.admin-panel--nested .admin-panel-head h4 {
    margin: 0;
    font-size: .95rem;
    font-weight: 700;
}
.admin-panel--nested .admin-panel-body { padding: 1rem; }
.doc-client-quick-status.is-success { color: #166534; }
.doc-client-quick-status.is-error { color: #b91c1c; }
.quick-picker-panel { margin-top: .75rem; }
.js-quick-picker-status.is-success { color: #166534; }
.js-quick-picker-status.is-error { color: #b91c1c; }
.report-type--entrée { background: #dcfce7; color: #166534; }
.report-type--sortie { background: #fee2e2; color: #991b1b; }

.settings-country-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-end;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e2e8f0;
}
.settings-country-bar__select { flex: 1 1 14rem; max-width: 22rem; margin: 0; }
.settings-country-bar__hint { flex: 1 1 100%; margin: 0; }
.settings-country-preview {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: .85rem 1rem;
    margin-bottom: 1rem;
    font-size: .88rem;
    line-height: 1.45;
}
.settings-country-preview strong { display: block; font-size: 1rem; margin-bottom: .2rem; }
.settings-country-preview span { color: #64748b; font-style: italic; }
.settings-country-preview__meta { margin-top: .45rem; color: #334155; }
.settings-fallback {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px dashed #cbd5e1;
}
.settings-fallback summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-primary, #c45c26);
    margin-bottom: .75rem;
}
.doc-country-profile-wrap { margin-bottom: 1rem; }
.doc-fields-panel.is-hidden { display: none !important; }
.doc-type-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: .55rem;
    margin: .35rem 0 .75rem;
}
.doc-type-list__item {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    margin: 0;
    padding: .7rem .85rem;
    border: 1px solid #dbe3ee;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}
.doc-type-list__item:hover,
.doc-type-list__item.is-selected {
    border-color: #c45c26;
    background: #fff7ed;
}
.doc-type-list__item input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.doc-type-list__name {
    font-weight: 700;
    color: #0a1628;
    line-height: 1.3;
}
.doc-type-list__meta {
    font-size: .78rem;
    color: #64748b;
}
.doc-other-name-wrap {
    margin-top: .35rem;
}
.doc-status-hint {
  display: block;
  margin-top: .35rem;
  font-size: .78rem;
  line-height: 1.45;
  color: #c45c26;
  font-weight: 500;
}
.doc-status-hint strong { color: #a3471a; font-weight: 700; }
.doc-country-profile {
    background: linear-gradient(135deg, #fff7ed 0%, #f8fafc 100%);
    border: 1px solid #fed7aa;
    border-radius: 8px;
    padding: .85rem 1rem;
    font-size: .88rem;
    line-height: 1.45;
}
.doc-country-profile__name { display: block; font-size: 1rem; color: #9a3412; }
.doc-country-profile__tagline { display: block; color: #64748b; font-style: italic; margin-top: .15rem; }
.doc-country-profile__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    margin-top: .5rem;
    color: #334155;
}
.doc-country-profile__meta span:not(:last-child)::after {
    content: '·';
    margin-left: .75rem;
    color: #94a3b8;
}

.doc-models-filters { margin-bottom: 1rem; }
.doc-models-upload {
    padding: 1rem;
    margin-bottom: 1rem;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
}
.doc-models-upload__actions { align-self: flex-end; }
.doc-model-vars { margin: .75rem 0 1rem; }
.doc-model-vars summary { cursor: pointer; font-weight: 600; color: var(--color-primary, #c45c26); }
.doc-model-vars__grid {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .65rem;
}
.doc-var-btn { font-size: .75rem; font-family: ui-monospace, monospace; }

.doc-models-editor-panel { margin-bottom: 1.25rem; }
.doc-models-tabs {
    display: flex;
    gap: .35rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: .5rem;
}
.doc-models-tab {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #334155;
    border-radius: 8px 8px 0 0;
    padding: .45rem .85rem;
    font-weight: 600;
    cursor: pointer;
}
.doc-models-tab.is-active {
    background: #fff;
    color: var(--color-primary, #c45c26);
    border-bottom-color: #fff;
    margin-bottom: -1px;
}
.doc-models-pane { display: none; }
.doc-models-pane.is-active { display: block; }
.doc-models-pane-intro { margin: 0 0 1rem; }
.doc-models-save-bar {
    margin-top: 1.25rem;
    padding-top: 1rem;
}
.doc-model-body-field {
    min-height: 16rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .92rem;
    line-height: 1.55;
}
.doc-models-upload--inline {
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
}

/* Interrupteur segmenté Brouillon | Actif */
.admin-status-toggle-form {
    display: inline-block;
    margin: 0;
    vertical-align: middle;
}
.admin-status-toggle {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    overflow: hidden;
    background: #e2e8f0;
    padding: 2px;
    gap: 2px;
}
.admin-status-toggle__btn {
    border: none;
    background: transparent;
    color: #64748b;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .01em;
    padding: .38rem .82rem;
    cursor: pointer;
    border-radius: 999px;
    line-height: 1.2;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.admin-status-toggle__btn:not(:disabled):hover {
    color: #0f172a;
    background: rgba(255, 255, 255, .65);
}
.admin-status-toggle__btn.is-selected {
    cursor: default;
    box-shadow: 0 1px 4px rgba(15, 23, 42, .14);
}
.admin-status-toggle.is-draft .admin-status-toggle__btn.is-selected {
    background: #64748b;
    color: #fff;
}
.admin-status-toggle.is-active .admin-status-toggle__btn.is-selected {
    background: #059669;
    color: #fff;
}
.admin-status-toggle.is-unpaid .admin-status-toggle__btn.is-selected,
.admin-status-toggle__btn--unpaid.is-selected,
button.admin-status-toggle__btn--unpaid.is-selected {
    background: #dc2626 !important;
    color: #fff !important;
    box-shadow: 0 1px 4px rgba(220, 38, 38, .35);
}
.admin-status-toggle.is-paid .admin-status-toggle__btn.is-selected,
.admin-status-toggle__btn--paid.is-selected,
button.admin-status-toggle__btn--paid.is-selected {
    background: #059669 !important;
    color: #fff !important;
    box-shadow: 0 1px 4px rgba(5, 150, 105, .35);
}
.admin-status-toggle.is-unpaid {
    border-color: #fecaca !important;
    background: #fef2f2 !important;
}
.admin-status-toggle.is-paid {
    border-color: #a7f3d0 !important;
    background: #ecfdf5 !important;
}
.admin-status-toggle.is-unpaid .admin-status-toggle__btn:not(.is-selected) {
    color: #991b1b;
}
.admin-status-toggle.is-paid .admin-status-toggle__btn:not(.is-selected) {
    color: #047857;
}
.admin-status-toggle--md .admin-status-toggle__btn {
    font-size: .8rem;
    padding: .48rem 1.05rem;
}
.actions-cell .admin-status-toggle-form {
    margin-right: .35rem;
}
.data-table td .admin-status-toggle-form {
    margin: 0;
}
.data-table-static {
    width: 100%;
}
tr.is-muted td {
    opacity: .72;
}
tr.is-muted td .admin-status-toggle {
    opacity: 1;
}

/* ---------- Dashboard v2 (compact) ---------- */
.dash-v2 { display: flex; flex-direction: column; gap: 1rem; }
.dash-v2__hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.15rem;
    border-radius: 12px;
    border: 1px solid var(--admin-border);
    background: linear-gradient(135deg, #fff 0%, #f8fafc 100%);
    box-shadow: var(--admin-shadow);
}
.dash-v2__eyebrow {
    margin: 0 0 .2rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #64748b;
}
.dash-v2__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.2;
}
.dash-v2__subtitle {
    margin: .25rem 0 0;
    font-size: .82rem;
    color: #64748b;
}
.dash-v2__hero-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}
.dash-v2__seed-form { margin: 0; }

.dash-v2__queue {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.dash-v2__queue-item {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .75rem;
    border-radius: 999px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #991b1b;
    text-decoration: none;
    font-size: .78rem;
    font-weight: 600;
    transition: background .15s ease;
}
.dash-v2__queue-item:hover { background: #fee2e2; color: #7f1d1d; }
.dash-v2__queue-icon .icon { width: .95rem; height: .95rem; }
.dash-v2__queue-count {
    min-width: 1.25rem;
    text-align: center;
    background: #dc2626;
    color: #fff;
    border-radius: 999px;
    padding: .05rem .4rem;
    font-size: .72rem;
}

.dash-v2__kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    padding: .15rem 0;
}
@media (min-width: 1400px) {
    .dash-v2__kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.dash-v2-kpi {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: .25rem;
    padding: 1.1rem .85rem;
    min-height: 7.25rem;
    border-radius: 12px;
    border: 1px solid var(--admin-border);
    background: #fff;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .05);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.dash-v2-kpi:hover {
    border-color: #cbd5e1;
    box-shadow: 0 6px 16px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}
.dash-v2-kpi--alert { border-color: #fecaca; background: linear-gradient(180deg, #fff, #fff5f5); }
.dash-v2-kpi__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: .15rem;
}
.dash-v2-kpi__icon .icon { width: 1.35rem; height: 1.35rem; }
.dash-v2-kpi__value {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1.05;
    color: var(--color-primary);
}
.dash-v2-kpi__label {
    font-size: .8rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.2;
}
.dash-v2-kpi__meta {
    font-size: .7rem;
    color: #94a3b8;
    font-weight: 500;
    margin-top: .05rem;
}
.dash-v2-kpi--blue .dash-v2-kpi__icon { background: rgba(59, 130, 246, .12); color: #2563eb; }
.dash-v2-kpi--rose .dash-v2-kpi__icon { background: rgba(244, 63, 94, .1); color: #e11d48; }
.dash-v2-kpi--orange .dash-v2-kpi__icon { background: rgba(196, 92, 38, .12); color: #c45c26; }
.dash-v2-kpi--slate .dash-v2-kpi__icon { background: rgba(100, 116, 139, .12); color: #475569; }
.dash-v2-kpi--amber .dash-v2-kpi__icon { background: rgba(245, 158, 11, .12); color: #d97706; }
.dash-v2-kpi--violet .dash-v2-kpi__icon { background: rgba(139, 92, 246, .12); color: #7c3aed; }
.dash-v2-kpi--brand .dash-v2-kpi__icon { background: rgba(196, 92, 38, .15); color: #c45c26; }
.dash-v2-kpi--navy .dash-v2-kpi__icon { background: rgba(10, 22, 40, .08); color: #0a1628; }

.dash-v2__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 15rem;
    gap: .85rem;
    align-items: start;
}
.dash-v2__split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem;
    margin-top: .85rem;
}
.admin-panel--compact { margin-bottom: 0; }
.admin-panel-head--compact {
    padding: .65rem 1rem;
    min-height: 0;
}
.admin-panel-head--compact h3 {
    margin: 0;
    font-size: .88rem;
    font-weight: 700;
}
.admin-panel-head--compact .dash-v2-link-more {
    margin-left: auto;
    font-size: .75rem;
    font-weight: 600;
    color: var(--color-secondary);
    text-decoration: none;
}
.admin-panel-head--compact .dash-v2-link-more:hover { text-decoration: underline; }
.admin-panel-head.admin-panel-head--compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}
.dash-v2-chart { padding: .75rem 1rem 1rem; min-height: 140px; }
.dash-bar-chart--compact { min-height: 120px; gap: .35rem; }
.dash-bar-chart--compact .dash-bar-chart__label { font-size: .62rem; }
.dash-v2-donut-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 11.5rem;
    padding: 1.25rem 1rem;
}
.dash-v2-donut-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.75rem;
    width: 100%;
    max-width: 22rem;
    margin: 0 auto;
}
.dash-donut--md {
    width: 7.25rem;
    height: 7.25rem;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .04);
}
.dash-donut--md .dash-donut__hole {
    width: 4.15rem;
    height: 4.15rem;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 12px rgba(10, 22, 40, .08);
}
.dash-donut--md .dash-donut__hole strong {
    font-size: 1.25rem;
    font-family: var(--font-display);
    color: var(--color-primary);
    line-height: 1;
}
.dash-donut--md .dash-donut__hole span {
    font-size: .62rem;
    font-weight: 600;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-top: .12rem;
}
.dash-donut--sm {
    width: 4.5rem;
    height: 4.5rem;
    flex-shrink: 0;
}
.dash-donut--sm .dash-donut__hole { width: 2.6rem; height: 2.6rem; }
.dash-donut--sm .dash-donut__hole strong { font-size: .95rem; }
.dash-legend--compact { flex: 0 1 auto; min-width: 0; }
.dash-legend--v2 { min-width: 9.5rem; }
.dash-legend--compact li { padding: .5rem 0; font-size: .82rem; }
.dash-legend--v2 li i { width: .65rem; height: .65rem; }
.dash-v2__split .admin-panel--compact {
    min-height: 12.5rem;
    display: flex;
    flex-direction: column;
}
.dash-v2__split .admin-panel--compact .admin-panel-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.dash-rank-list--compact li { padding: .5rem 0; }
.dash-rank-list--compact .dash-rank-list__num { width: 1.35rem; height: 1.35rem; font-size: .68rem; }

.dash-v2-quick {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .35rem;
    padding: .5rem;
}
.dash-v2-quick__link {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .5rem;
    border-radius: 8px;
    font-size: .72rem;
    font-weight: 600;
    color: #334155;
    text-decoration: none;
    border: 1px solid transparent;
}
.dash-v2-quick__link:hover {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: var(--color-primary);
}
.dash-v2-quick__link .icon { width: .9rem; height: .9rem; flex-shrink: 0; }

.dash-v2__feeds {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: .85rem;
}
.dash-v2-table-wrap { padding: 0; overflow-x: auto; }
.dash-v2-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .78rem;
}
.dash-v2-table th {
    text-align: left;
    padding: .5rem .85rem;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
    background: #f8fafc;
    border-bottom: 1px solid var(--admin-border);
}
.dash-v2-table td {
    padding: .55rem .85rem;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
}
.dash-v2-table tbody tr:last-child td { border-bottom: none; }
.dash-v2-table tbody tr:hover { background: #fafbfc; }
.dash-v2-table__muted { color: #64748b; white-space: nowrap; }
.dash-v2-table__unread { background: rgba(59, 130, 246, .03); }
.dash-v2-table a { color: inherit; text-decoration: none; }
.dash-v2-table a:hover { color: var(--color-secondary); }
.dash-v2-dot {
    display: inline-block;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: #3b82f6;
}
.dash-v2-empty {
    margin: 0;
    padding: 1rem .85rem;
    color: #94a3b8;
    font-size: .82rem;
}

@media (max-width: 1100px) {
    .dash-v2__grid { grid-template-columns: 1fr; }
    .dash-v2__col--side { order: -1; }
    .dash-v2-quick { grid-template-columns: repeat(4, 1fr); }
    .dash-v2__kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    .dash-v2__split { grid-template-columns: 1fr; }
    .dash-v2__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dash-v2-quick { grid-template-columns: repeat(2, 1fr); }
    .dash-v2-kpi { min-height: 6.5rem; padding: .95rem .75rem; }
    .dash-v2-kpi__value { font-size: 1.5rem; }
}
@media (max-width: 480px) {
    .dash-v2__kpis { grid-template-columns: 1fr 1fr; }
}

.continuum-export-toast {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 9999;
    max-width: min(22rem, calc(100vw - 2rem));
    padding: .85rem 1rem;
    border-radius: 12px;
    background: #0a1628;
    color: #fff;
    font-size: .88rem;
    line-height: 1.4;
    box-shadow: 0 12px 32px rgba(10, 22, 40, .28);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease;
    pointer-events: none;
}
.continuum-export-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.continuum-export-toast--validation {
    background: #9a3412;
    border: 1px solid #fdba74;
}

.table-empty--filter {
    margin: .75rem 0 0;
    padding: .85rem 1rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    color: #64748b;
    font-size: .9rem;
}

.intervention-categories {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .55rem .85rem;
    padding: .85rem 1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: .65rem;
    background: #f8fafc;
}

.intervention-categories__item {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: 0;
    font-size: .92rem;
    font-weight: 500;
    color: var(--color-primary, #0a1628);
    cursor: pointer;
}

.intervention-categories__item input {
    margin-top: .2rem;
    accent-color: var(--color-secondary, #c45c26);
}

#interventionOtherWrap {
    margin-top: .75rem;
    padding: .85rem 1rem;
    border-radius: .65rem;
    border: 1px dashed rgba(196, 92, 38, .35);
    background: #fff8f3;
}

.intervention-sheet-sections,
.intervention-checklists {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 1.25rem 0 1.5rem;
}

.intervention-checklist-panel {
    margin: 0;
    padding: 1rem 1.1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: .65rem;
    background: #fff;
}

.intervention-checklist-panel legend {
    padding: 0 .35rem;
    font-size: .95rem;
    font-weight: 700;
    color: var(--color-primary, #0a1628);
}

.intervention-checklist-panel--section {
    background: #f8fafc;
}

.intervention-checklists--primary {
    margin-top: .5rem;
}

.intervention-checklist-panel--category {
    border-color: rgba(196, 92, 38, .35);
    background: #fff8f3;
}

.intervention-checklist-panel--category legend {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
    color: var(--color-secondary, #c45c26);
    letter-spacing: .02em;
}

.intervention-checklist-panel legend .js-check-all {
    font-weight: 600;
    padding: .18rem .55rem;
    line-height: 1.2;
    white-space: nowrap;
}

.intervention-sheet-sections-wrap {
    margin: 1rem 0 1.25rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: .65rem;
    background: #f8fafc;
}

.intervention-sheet-sections-wrap__summary {
    padding: .75rem 1rem;
    font-size: .9rem;
    font-weight: 700;
    color: var(--color-primary, #0a1628);
    cursor: pointer;
    list-style: none;
}

.intervention-sheet-sections-wrap__summary::-webkit-details-marker {
    display: none;
}

.intervention-sheet-sections-wrap[open] > .intervention-sheet-sections {
    padding: 0 1rem 1rem;
}

.intervention-sheet-sections-wrap > .intervention-sheet-sections {
    margin-top: 0;
}

.intervention-checklist-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: .55rem .85rem;
    margin-top: .65rem;
}

.intervention-checklist__item {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: 0;
    font-size: .9rem;
    font-weight: 500;
    color: var(--color-primary, #0a1628);
    cursor: pointer;
}

.intervention-checklist__item input {
    margin-top: .18rem;
    accent-color: var(--color-secondary, #c45c26);
    flex-shrink: 0;
}

.spo-hero {
    margin-bottom: 1.25rem;
    border: 1px solid rgba(196, 92, 38, .25);
    background: linear-gradient(135deg, #fff8f3 0%, #fff 55%);
}

.spo-hero__content {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
}

.spo-hero__icon {
    width: 2.75rem;
    height: 2.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: .75rem;
    background: rgba(196, 92, 38, .12);
    color: var(--color-secondary, #c45c26);
    flex-shrink: 0;
}

.spo-hero__icon svg {
    width: 1.35rem;
    height: 1.35rem;
}

.spo-hero__title {
    margin: 0 0 .35rem;
    font-size: 1.15rem;
}

.spo-hero__text {
    margin: 0;
    color: #64748b;
    font-size: .92rem;
    line-height: 1.5;
}

.spo-form-panel .admin-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.spo-quick-categories {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.spo-quick-categories--more {
    margin-top: .75rem;
}

.spo-quick-categories__item {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin: 0;
    padding: .55rem .85rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 999px;
    background: #fff;
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.spo-quick-categories__item:has(input:checked) {
    border-color: var(--color-secondary, #c45c26);
    background: #fff8f3;
    color: var(--color-secondary, #c45c26);
}

.spo-quick-categories__item input {
    accent-color: var(--color-secondary, #c45c26);
}

.spo-more-categories {
    margin-top: .75rem;
    font-size: .9rem;
}

.spo-more-categories summary {
    cursor: pointer;
    color: var(--color-secondary, #c45c26);
    font-weight: 600;
}

.spo-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    margin-top: 1rem;
}

.spo-form__submit {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

.spo-badge {
    display: inline-block;
    padding: .15rem .55rem;
    border-radius: 999px;
    background: rgba(196, 92, 38, .12);
    color: var(--color-secondary, #c45c26);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    vertical-align: middle;
}

.spo-card {
    border-left: 3px solid var(--color-secondary, #c45c26);
}

.spo-card--new {
    box-shadow: 0 0 0 2px rgba(196, 92, 38, .25);
}

.spo-card__reported {
    margin: .35rem 0 0;
    font-size: .82rem;
    color: #64748b;
}

.spo-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
}

@media (max-width: 640px) {
    .spo-form__submit {
        width: 100%;
        justify-content: center;
    }
}

/* Accordion formulaire (apporteurs, etc.) */
.admin-accordion {
    padding: 0;
    overflow: hidden;
}

.admin-accordion > .admin-accordion__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.35rem;
    margin: 0;
    list-style: none;
    cursor: pointer;
    user-select: none;
    background: linear-gradient(135deg, #c45c26 0%, #d4a017 55%, #e8b923 100%);
    border-bottom: 1px solid transparent;
    color: #fff;
    transition: filter .15s ease, box-shadow .15s ease;
    box-shadow: 0 2px 8px rgba(196, 92, 38, .28);
}

.admin-accordion > .admin-accordion__summary::-webkit-details-marker {
    display: none;
}

.admin-accordion > .admin-accordion__summary:hover {
    filter: brightness(1.06);
    box-shadow: 0 3px 12px rgba(196, 92, 38, .4);
}

.admin-accordion[open] > .admin-accordion__summary {
    border-bottom-color: rgba(196, 92, 38, .35);
    background: linear-gradient(135deg, #b55220 0%, #c49214 55%, #d4a017 100%);
    filter: none;
}

.admin-accordion__summary-title {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
}

.admin-accordion__summary-title .icon-inline {
    width: 1.15rem;
    height: 1.15rem;
    color: #fff;
}

.admin-accordion__chevron {
    width: .65rem;
    height: .65rem;
    border-right: 2px solid rgba(255, 255, 255, .9);
    border-bottom: 2px solid rgba(255, 255, 255, .9);
    transform: rotate(45deg);
    transition: transform .18s ease;
    flex-shrink: 0;
}

.admin-accordion[open] > .admin-accordion__summary .admin-accordion__chevron {
    transform: rotate(-135deg);
}

.admin-accordion__body {
    padding: 1.25rem 1.35rem 1.5rem;
}

.admin-accordion-form {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    margin: 0;
}

.admin-accordion__section {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: .65rem;
    background: #f8fafc;
    overflow: hidden;
}

.admin-accordion__section-summary {
    padding: .7rem 1rem;
    font-size: .92rem;
    font-weight: 700;
    color: var(--color-primary, #0a1628);
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.admin-accordion__section-summary::-webkit-details-marker {
    display: none;
}

.admin-accordion__section-summary::after {
    content: '';
    float: right;
    width: .5rem;
    height: .5rem;
    margin-top: .35rem;
    border-right: 2px solid #64748b;
    border-bottom: 2px solid #64748b;
    transform: rotate(45deg);
    transition: transform .18s ease;
}

.admin-accordion__section[open] > .admin-accordion__section-summary {
    background: #fff;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.admin-accordion__section[open] > .admin-accordion__section-summary::after {
    transform: rotate(-135deg);
}

.admin-accordion__section-body {
    padding: 1rem;
    background: #fff;
}

.admin-accordion__actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: .35rem;
    padding-top: .85rem;
}

/* —— Guide gestes commissions (animé) —— */
.commission-gesture-guide {
    margin: 0 0 1.35rem;
    border: 1px solid rgba(196, 92, 38, .28);
    border-radius: var(--admin-radius, .85rem);
    background:
        linear-gradient(145deg, #fff8f3 0%, #ffffff 42%, #fffbeb 100%);
    box-shadow: var(--admin-shadow, 0 1px 3px rgba(15, 23, 42, .06));
    overflow: hidden;
}

.commission-gesture-guide__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.25rem .65rem;
}

.commission-gesture-guide__eyebrow {
    margin: 0 0 .2rem;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-secondary, #c45c26);
}

.commission-gesture-guide__title {
    margin: 0 0 .35rem;
    font-size: 1.05rem;
    color: var(--color-primary, #0a1628);
}

.commission-gesture-guide__lead {
    margin: 0;
    font-size: .88rem;
    line-height: 1.45;
    color: #64748b;
    max-width: 42rem;
}

.commission-gesture-guide__controls {
    display: inline-flex;
    gap: .4rem;
    flex-shrink: 0;
}

.commission-gesture-guide__stage {
    position: relative;
    padding: .5rem 1rem 0;
    min-height: 5.5rem;
}

.commission-gesture-guide__track {
    list-style: none;
    margin: 0;
    padding: .5rem 0 1.75rem;
    display: flex;
    align-items: flex-start;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: thin;
}

.commission-gesture-guide__step {
    display: flex;
    align-items: flex-start;
    flex: 1 1 0;
    min-width: 5.5rem;
    position: relative;
}

.commission-gesture-guide__node {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    width: 100%;
    padding: .25rem .2rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    color: inherit;
}

.commission-gesture-guide__num {
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 2px solid #cbd5e1;
    background: #fff;
    font-size: .78rem;
    font-weight: 800;
    color: #64748b;
    transition: transform .25s ease, border-color .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}

.commission-gesture-guide__node-label {
    font-size: .68rem;
    font-weight: 650;
    line-height: 1.25;
    text-align: center;
    color: #64748b;
    max-width: 6.5rem;
}

.commission-gesture-guide__connector {
    position: absolute;
    top: 1.15rem;
    left: calc(50% + 1.05rem);
    right: calc(-50% + 1.05rem);
    height: 3px;
    border-radius: 999px;
    background: #e2e8f0;
    z-index: 0;
    pointer-events: none;
}

.commission-gesture-guide__step.is-done .commission-gesture-guide__num {
    border-color: #16a34a;
    background: #16a34a;
    color: #fff;
}

.commission-gesture-guide__step.is-done .commission-gesture-guide__connector {
    background: linear-gradient(90deg, #16a34a, #86efac);
}

.commission-gesture-guide__step.is-active .commission-gesture-guide__num {
    border-color: var(--color-secondary, #c45c26);
    background: linear-gradient(135deg, #c45c26, #d4a017);
    color: #fff;
    transform: scale(1.12);
    box-shadow: 0 0 0 5px rgba(196, 92, 38, .18);
    animation: cgPulse 1.6s ease-in-out infinite;
}

.commission-gesture-guide__step.is-active .commission-gesture-guide__node-label {
    color: var(--color-primary, #0a1628);
    font-weight: 800;
}

.commission-gesture-guide.is-playing .commission-gesture-guide__step.is-active .commission-gesture-guide__connector {
    background: linear-gradient(90deg, #c45c26, #fbbf24, #e2e8f0);
    background-size: 200% 100%;
    animation: cgFlow 1.8s linear infinite;
}

.commission-gesture-guide__pointer {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    width: 2.5rem;
    height: 2.5rem;
    color: var(--color-secondary, #c45c26);
    pointer-events: none;
    filter: drop-shadow(0 3px 6px rgba(15, 23, 42, .25));
    transition: transform .55s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
}

.commission-gesture-guide__hand {
    display: block;
    transform-origin: 20% 20%;
    animation: cgHandBob 1.1s ease-in-out infinite;
}

.commission-gesture-guide__pointer.is-tap .commission-gesture-guide__hand {
    animation: cgHandTap .55s ease;
}

.commission-gesture-guide__tap {
    position: absolute;
    left: .15rem;
    top: .2rem;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 999px;
    border: 2px solid rgba(196, 92, 38, .55);
    opacity: 0;
    transform: scale(.4);
}

.commission-gesture-guide__pointer.is-tap .commission-gesture-guide__tap {
    animation: cgRipple .7s ease-out;
}

.commission-gesture-guide__panel {
    padding: 0 1.15rem 1rem;
}

.commission-gesture-guide__card {
    padding: 1rem 1.1rem;
    border-radius: .75rem;
    background: #fff;
    border: 1px solid var(--admin-border, #e2e8f0);
    animation: cgCardIn .4s ease;
}

.commission-gesture-guide__card[hidden] {
    display: none !important;
}

.commission-gesture-guide__card-top {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    margin-bottom: .55rem;
}

.commission-gesture-guide__who {
    display: inline-flex;
    align-items: center;
    padding: .2rem .55rem;
    border-radius: 999px;
    background: #0a1628;
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
}

.commission-gesture-guide__gesture {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .25rem .7rem;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(196, 92, 38, .12), rgba(212, 160, 23, .18));
    color: #9a3412;
    font-size: .78rem;
    font-weight: 750;
}

.commission-gesture-guide__gesture-dot {
    width: .55rem;
    height: .55rem;
    border-radius: 999px;
    background: var(--color-secondary, #c45c26);
    box-shadow: 0 0 0 0 rgba(196, 92, 38, .55);
    animation: cgDotPing 1.4s ease-out infinite;
}

.commission-gesture-guide__card-title {
    margin: 0 0 .35rem;
    font-size: 1rem;
    color: var(--color-primary, #0a1628);
}

.commission-gesture-guide__card-detail {
    margin: 0 0 .85rem;
    font-size: .9rem;
    line-height: 1.5;
    color: #475569;
}

.commission-gesture-guide__footnote {
    margin: 0;
    padding: .65rem 1.25rem 1rem;
    font-size: .8rem;
    color: #64748b;
    border-top: 1px dashed rgba(148, 163, 184, .55);
}

.commission-gesture-guide__footnote a {
    color: var(--color-secondary, #c45c26);
    font-weight: 650;
}

.commission-gesture-guide--compact .commission-gesture-guide__node-label {
    font-size: .62rem;
    max-width: 5.25rem;
}

.commission-gesture-guide--compact .commission-gesture-guide__stage {
    min-height: 4.75rem;
}

@keyframes cgPulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(196, 92, 38, .16); }
    50% { box-shadow: 0 0 0 8px rgba(196, 92, 38, .08); }
}

@keyframes cgFlow {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

@keyframes cgHandBob {
    0%, 100% { transform: translateY(0) rotate(-8deg); }
    50% { transform: translateY(4px) rotate(-14deg); }
}

@keyframes cgHandTap {
    0% { transform: translateY(0) rotate(-8deg) scale(1); }
    40% { transform: translateY(6px) rotate(-16deg) scale(.92); }
    100% { transform: translateY(0) rotate(-8deg) scale(1); }
}

@keyframes cgRipple {
    0% { opacity: .7; transform: scale(.35); }
    100% { opacity: 0; transform: scale(2.2); }
}

@keyframes cgDotPing {
    0% { box-shadow: 0 0 0 0 rgba(196, 92, 38, .55); }
    70% { box-shadow: 0 0 0 8px rgba(196, 92, 38, 0); }
    100% { box-shadow: 0 0 0 0 rgba(196, 92, 38, 0); }
}

@keyframes cgCardIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 720px) {
    .commission-gesture-guide__head { padding: .9rem 1rem .5rem; }
    .commission-gesture-guide__panel { padding: 0 .85rem .85rem; }
    .commission-gesture-guide__node-label { display: none; }
    .commission-gesture-guide__step { min-width: 3.25rem; }
}

/* Timeline réelle du parcours commission */
.commission-flow-timeline {
    display: flex;
    gap: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    margin: 0 0 1.35rem;
    padding: .85rem .5rem 1rem;
    border-radius: var(--admin-radius, .85rem);
    background: #f8fafc;
    border: 1px solid var(--admin-border, #e2e8f0);
}

.commission-flow-timeline__step {
    position: relative;
    flex: 1 1 0;
    min-width: 7rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 .35rem;
}

.commission-flow-timeline__bubble {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 800;
    background: #fff;
    border: 2px solid #cbd5e1;
    color: #64748b;
    z-index: 1;
}

.commission-flow-timeline__label {
    margin-top: .45rem;
    font-size: .78rem;
    font-weight: 750;
    color: #334155;
}

.commission-flow-timeline__hint {
    display: block;
    margin-top: .15rem;
    font-size: .68rem;
    color: #94a3b8;
    max-width: 8rem;
    line-height: 1.3;
}

.commission-flow-timeline__connector {
    position: absolute;
    top: .9rem;
    left: calc(50% + 1rem);
    width: calc(100% - 2rem);
    height: 3px;
    background: #e2e8f0;
    z-index: 0;
}

.commission-flow-timeline__connector.is-done {
    background: linear-gradient(90deg, #16a34a, #86efac);
}

.commission-flow-timeline__step--done .commission-flow-timeline__bubble {
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
}

.commission-flow-timeline__step--current .commission-flow-timeline__bubble {
    background: linear-gradient(135deg, #c45c26, #d4a017);
    border-color: #c45c26;
    color: #fff;
    box-shadow: 0 0 0 5px rgba(196, 92, 38, .16);
    animation: cgPulse 1.6s ease-in-out infinite;
}

.commission-flow-timeline__step--current .commission-flow-timeline__label {
    color: var(--color-secondary, #c45c26);
}

.commission-flow-timeline__step--refused .commission-flow-timeline__bubble {
    background: #991b1b;
    color: #fff;
    box-shadow: 0 0 0 3px rgba(153, 27, 27, 0.2);
}

.commission-flow-timeline__step--refused .commission-flow-timeline__label {
    color: #991b1b;
}

.commission-payment-actions .doc-validation-form--reject {
    padding-top: 1rem;
    border-top: 1px dashed rgba(10, 22, 40, 0.15);
}

.commission-flow-gesture-hint {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin: 0 0 1rem;
    padding: .55rem .85rem;
    border-radius: .65rem;
    background: linear-gradient(135deg, rgba(196, 92, 38, .1), rgba(212, 160, 23, .14));
    border: 1px solid rgba(196, 92, 38, .28);
    color: #9a3412;
    font-size: .88rem;
    font-weight: 650;
}

.commission-flow-gesture-hint__icon {
    width: 1.15rem;
    height: 1.15rem;
    flex-shrink: 0;
    animation: cgHandBob 1.1s ease-in-out infinite;
}

.commission-rate-adjust .js-commission-amount,
.commission-amount-preview {
    font-weight: 750;
    color: var(--color-primary, #0a1628);
    background: #fff8f3;
    border-color: rgba(196, 92, 38, .35);
}

.commission-amount-preview.is-updating,
.js-commission-amount.is-updating {
    box-shadow: 0 0 0 3px rgba(196, 92, 38, .18);
    transition: box-shadow .2s ease;
}

.doc-pending-banner {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin: 0 0 .75rem;
    padding: .75rem .9rem;
    border-radius: .65rem;
    border: 1px solid rgba(196, 92, 38, .35);
    background: linear-gradient(135deg, #fff8f3, #fffbeb);
    color: #9a3412;
    font-size: .88rem;
    line-height: 1.45;
}

.doc-pending-banner strong {
    color: #c45c26;
    font-size: .92rem;
}

.doc-commission-panel {
    margin-top: .85rem;
}

.doc-commission-panel .admin-panel-head h4 {
    margin: 0;
    font-size: .95rem;
}

.doc-validation-commission {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    width: 100%;
    margin: .35rem 0 .5rem;
    padding: .55rem .65rem;
    border-radius: .55rem;
    background: #fff8f3;
    border: 1px solid rgba(196, 92, 38, .28);
}

.doc-validation-commission label {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    font-size: .72rem;
    font-weight: 700;
    color: #9a3412;
    min-width: 6.5rem;
    flex: 1 1 6.5rem;
}

.doc-validation-form--approve {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
    width: 100%;
}

.commercial-notif-banner {
    margin: 0 0 1.15rem;
    border: 1px solid rgba(196, 92, 38, .28);
    border-radius: .85rem;
    background: linear-gradient(145deg, #fff8f3, #fff);
    overflow: hidden;
}

.commercial-notif-banner__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem 1rem;
    border-bottom: 1px solid rgba(196, 92, 38, .18);
    color: var(--color-primary, #0a1628);
}

.commercial-notif-banner__badge {
    display: inline-flex;
    align-items: center;
    padding: .15rem .55rem;
    border-radius: 999px;
    background: #c45c26;
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
}

.commercial-notif-banner__list {
    list-style: none;
    margin: 0;
    padding: .35rem 0;
}

.commercial-notif-banner__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .7rem 1rem;
    border-bottom: 1px solid #f1f5f9;
}

.commercial-notif-banner__item:last-child {
    border-bottom: 0;
}

.commercial-notif-banner__item strong {
    display: block;
    font-size: .9rem;
    color: #0a1628;
}

.commercial-notif-banner__item span {
    display: block;
    margin-top: .15rem;
    font-size: .84rem;
    color: #475569;
}

.commercial-notif-banner__item small {
    display: block;
    margin-top: .2rem;
    color: #94a3b8;
    font-size: .72rem;
}

.commercial-notif-banner__item--ok {
    border-left: 3px solid #16a34a;
}

.commercial-notif-banner__item--ko {
    border-left: 3px solid #dc2626;
}

.commercial-notif-banner__item.is-unread {
    background: #fffbeb;
}

/* �� Droits par type (permissions) �� */
.perm-scope-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 1.25rem;
}
.perm-scope-nav__link {
    display: inline-flex;
    align-items: center;
    padding: .45rem .85rem;
    border: 1px solid rgba(10, 22, 40, .14);
    border-radius: 8px;
    background: #fff;
    color: #0a1628;
    text-decoration: none;
    font-size: .86rem;
    font-weight: 600;
}
.perm-scope-nav__link:hover {
    border-color: var(--color-secondary, #c45c26);
    color: var(--color-secondary, #c45c26);
}
.perm-scope-panel .admin-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}
.perm-scope-actions {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}
.perm-table-wrap {
    overflow-x: auto;
    max-width: 100%;
    border: 1px solid rgba(10, 22, 40, .08);
    border-radius: 10px;
}
.perm-matrix {
    margin: 0;
    min-width: 720px;
}
.perm-matrix thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8fafc;
    vertical-align: bottom;
}
.perm-matrix__role {
    position: sticky;
    left: 0;
    z-index: 1;
    background: #fff;
    min-width: 160px;
    text-align: left !important;
}
.perm-matrix thead .perm-matrix__role {
    z-index: 3;
    background: #f8fafc;
}
.perm-matrix__type {
    text-align: center;
    min-width: 88px;
    max-width: 120px;
    font-size: .78rem;
    line-height: 1.25;
    padding: .55rem .35rem !important;
}
.perm-col-toggle,
.perm-row-toggle {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-align: inherit;
}
.perm-col-toggle:hover,
.perm-row-toggle:hover {
    color: var(--color-secondary, #c45c26);
    text-decoration: underline;
}
.perm-matrix__cell {
    text-align: center;
    vertical-align: middle;
}
.perm-matrix__cell.is-default {
    background: rgba(148, 163, 184, .08);
}
.perm-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 2rem;
    cursor: pointer;
}
.perm-check input {
    width: 1.05rem;
    height: 1.05rem;
    cursor: pointer;
}
.perm-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .85rem;
}
.perm-summary-card {
    border: 1px solid rgba(10, 22, 40, .1);
    border-radius: 10px;
    padding: .85rem 1rem;
    background: #fafbfc;
}
.perm-summary-card h4 {
    margin: 0 0 .55rem;
    font-size: .95rem;
}
.perm-summary-card p {
    margin: .35rem 0;
    font-size: .82rem;
}
.perm-summary-card ul {
    margin: 0 0 .5rem;
    padding-left: 1.1rem;
    font-size: .8rem;
}
.perm-sticky-save {
    position: sticky;
    bottom: .75rem;
    z-index: 5;
    box-shadow: 0 8px 24px rgba(10, 22, 40, .08);
}
