:root {
    /* Mêmes couleurs que le site public. Les noms historiques sont gardés
       afin de préserver tous les composants et formulaires d’administration. */
    --admin-purple-dark: #0a2e63;
    --admin-purple: #0b63ce;
    --admin-purple-medium: #0879c1;
    --admin-lavender: #eaf4ff;
    --admin-lavender-light: #f5f9ff;
    --admin-border: #d7e6f5;
    --admin-red: #d20a2e;
    --admin-blue: #0076d6;
    --admin-cyan: #00a7ea;
    --admin-gold: #f4c44e;
    --admin-ink: #071c3f;
    --admin-text: #263c5d;
    --admin-muted: #5b6d86;
    --admin-green: #1f7a4d;
    --admin-bg: #f1f6fc;
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    background: var(--admin-bg);
}

body {
    margin: 0;
    color: var(--admin-ink);
    background: var(--admin-bg);
    font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

a {
    color: var(--admin-purple);
}

h1,
h2,
h3,
.admin-button,
.admin-brand,
.admin-login-brand {
    font-family: "Poppins", sans-serif;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.admin-skip-link {
    position: fixed;
    top: 0;
    left: 50%;
    z-index: 2000;
    padding: 0.75rem 1.25rem;
    color: #fff;
    background: var(--admin-ink);
    transform: translate(-50%, -150%);
}

.admin-skip-link:focus {
    transform: translate(-50%, 0);
}

/* Connexion et installation */
.admin-login-page {
    color: var(--admin-ink);
    background: var(--admin-ink);
}

.admin-login-shell {
    display: grid;
    min-height: 100vh;
    grid-template-columns: minmax(0, 1.15fr) minmax(420px, 0.85fr);
}

.admin-login-visual {
    position: relative;
    min-height: 460px;
    overflow: hidden;
    background: var(--admin-purple-dark);
}

.admin-login-visual > img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 45% center;
    inset: 0;
}

.admin-login-visual__overlay {
    position: absolute;
    background: linear-gradient(180deg, rgb(7 28 63 / 15%), rgb(10 46 99 / 58%) 55%, rgb(7 28 63 / 94%));
    inset: 0;
}

.admin-login-visual__content {
    position: absolute;
    right: clamp(1.5rem, 5vw, 4rem);
    bottom: clamp(2rem, 6vw, 4.5rem);
    left: clamp(1.5rem, 5vw, 4rem);
    display: flex;
    max-width: 720px;
    flex-direction: column;
    align-items: flex-start;
    color: #fff;
    gap: 0.85rem;
}

.admin-login-visual__content > span {
    padding: 0.35rem 0.75rem;
    border-radius: 4px;
    color: var(--admin-ink);
    background: var(--admin-gold);
    font-family: "Poppins", sans-serif;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.admin-login-visual__content p {
    margin: 0;
    font-family: "Poppins", sans-serif;
    font-size: clamp(2.25rem, 4vw, 3.5rem);
    font-weight: 900;
    line-height: 1.02;
    text-transform: uppercase;
}

.admin-login-visual__content small {
    color: #edf5ff;
    font-size: 1.125rem;
}

.admin-login-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 1.5rem;
}

.admin-login-box {
    display: flex;
    width: 100%;
    max-width: 460px;
    flex-direction: column;
    gap: 1.25rem;
}

.admin-login-brand,
.admin-brand {
    display: flex;
    align-items: center;
    color: #fff;
    font-weight: 900;
    text-decoration: none;
    gap: 0.75rem;
}

.admin-login-brand {
    align-self: center;
    font-size: 1.5rem;
}

.admin-login-brand img {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
}

.admin-login-brand small {
    color: #b9d5f4;
    font-size: 1rem;
}

.admin-login-card,
.admin-setup-card {
    padding: clamp(1.5rem, 4vw, 2.25rem);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 60px rgb(0 0 0 / 18%);
}

.admin-login-card h1,
.admin-setup-card h1 {
    margin: 0 0 0.4rem;
    color: var(--admin-purple-dark);
    font-size: clamp(1.6rem, 4vw, 2rem);
    font-weight: 800;
}

.admin-login-card > p:not(.admin-eyebrow),
.admin-setup-card > p:not(.admin-eyebrow) {
    margin: 0 0 1.25rem;
    color: var(--admin-muted);
}

.admin-eyebrow {
    margin: 0 0 0.25rem;
    color: var(--admin-blue);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.admin-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.admin-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.35rem;
}

.admin-field label {
    font-weight: 700;
}

.admin-field input,
.admin-field select,
.admin-field textarea {
    width: 100%;
    min-height: 48px;
    border: 2px solid var(--admin-border);
    border-radius: 10px;
    padding: 0.65rem 0.85rem;
    color: var(--admin-ink);
    background: #fff;
}

.admin-field input:focus,
.admin-field select:focus,
.admin-field textarea:focus {
    border-color: var(--admin-purple-medium);
    outline: 3px solid rgb(8 121 193 / 16%);
}

.admin-field small {
    color: var(--admin-muted);
}

.admin-field__error {
    color: var(--admin-red);
    font-weight: 700;
}

.admin-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0.7rem 1.35rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.admin-button--primary {
    color: #fff;
    background: var(--admin-purple);
}

.admin-button--primary:hover,
.admin-button--primary:focus-visible {
    background: var(--admin-purple-dark);
}

.admin-button--secondary {
    border: 2px solid var(--admin-border);
    color: var(--admin-purple);
    background: #fff;
}

.admin-alert {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    font-weight: 700;
}

.admin-alert--error {
    color: #8d1026;
    background: #fde8ec;
}

.admin-alert--success {
    color: #14532d;
    background: #e3f4ea;
}

.admin-alert--notice {
    color: #614800;
    background: #fff4d6;
}

.admin-login-security,
.admin-login-back {
    margin: 0;
    color: #a9bfd9;
    text-align: center;
}

.admin-login-back {
    color: var(--admin-border);
    font-weight: 700;
}

.admin-setup-shell {
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}

.admin-setup-card {
    width: min(100%, 600px);
}

.admin-setup-card .admin-login-brand {
    margin-bottom: 1.75rem;
    color: var(--admin-purple-dark);
}

.admin-setup-card .admin-login-brand small {
    color: var(--admin-purple-medium);
}

/* Structure du tableau de bord */
.admin-layout {
    display: grid;
    min-height: 100vh;
    grid-template-columns: 270px minmax(0, 1fr);
}

.admin-sidebar {
    position: sticky;
    top: 0;
    z-index: 1000;
    display: flex;
    height: 100vh;
    overflow-y: auto;
    flex-direction: column;
    padding: 1.25rem 0.85rem;
    color: #fff;
    background: var(--admin-ink);
}

.admin-brand {
    padding: 0 0.5rem 1.25rem;
    font-size: 1.1rem;
}

.admin-brand img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
}

.admin-brand small {
    display: block;
    color: #b9d5f4;
    font-size: 0.75rem;
    font-weight: 600;
}

.admin-sidebar nav {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.admin-nav-heading {
    margin: 1.1rem 0.75rem 0.35rem;
    color: #a9bfd9;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.admin-nav-item {
    display: flex;
    min-height: 42px;
    align-items: center;
    border-radius: 9px;
    padding: 0.55rem 0.75rem;
    color: #edf5ff;
    font-weight: 700;
    text-decoration: none;
    gap: 0.65rem;
}

.admin-nav-item.active {
    color: var(--admin-ink);
    background: var(--admin-gold);
}

.admin-nav-item--planned {
    color: #bdcede;
    cursor: not-allowed;
}

.admin-nav-item--planned small {
    margin-left: auto;
    color: #8298ad;
    font-size: 0.68rem;
    font-weight: 600;
}

.admin-sidebar__footer {
    display: flex;
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid #294563;
    flex-direction: column;
    gap: 0.3rem;
}

.admin-sidebar__footer a,
.admin-sidebar__footer button {
    width: 100%;
    min-height: 42px;
    border: 0;
    padding: 0.55rem 0.75rem;
    color: var(--admin-border);
    background: transparent;
    font-weight: 700;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.admin-sidebar__footer button {
    color: #ff9aa8;
}

.admin-sidebar__footer a:hover,
.admin-sidebar__footer a:focus-visible,
.admin-sidebar__footer a[aria-current="page"] {
    border-radius: 9px;
    color: var(--admin-gold);
    background: #16375a;
}

.admin-workspace {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 900;
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem clamp(1rem, 3vw, 2rem);
    border-bottom: 1px solid var(--admin-border);
    background: rgb(255 255 255 / 96%);
    backdrop-filter: blur(8px);
    gap: 1rem;
}

.admin-topbar p {
    margin: 0;
    color: var(--admin-purple-dark);
    font-family: "Poppins", sans-serif;
    font-size: 1.15rem;
    font-weight: 800;
}

.admin-topbar small {
    display: block;
    color: var(--admin-muted);
}

.admin-menu-button {
    display: none;
    width: 44px;
    height: 44px;
    border: 2px solid var(--admin-border);
    border-radius: 10px;
    color: var(--admin-purple-dark);
    background: #fff;
    font-size: 1.25rem;
}

.admin-user {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.admin-user__initials {
    display: grid;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    color: #fff;
    background: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-weight: 800;
    place-items: center;
}

.admin-user strong,
.admin-user small {
    display: block;
}

.admin-main {
    display: flex;
    width: min(100%, 1600px);
    flex: 1 1 auto;
    flex-direction: column;
    margin: 0 auto;
    padding: clamp(1rem, 3vw, 2rem);
    gap: 1.25rem;
}

.admin-footer {
    padding: 1rem 2rem;
    color: var(--admin-muted);
    font-size: 0.85rem;
    text-align: center;
}

.admin-welcome {
    display: grid;
    align-items: center;
    padding: clamp(1.35rem, 4vw, 2.25rem);
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(125deg, var(--admin-purple-dark), var(--admin-purple));
    grid-template-columns: minmax(0, 1.5fr) minmax(240px, 0.5fr);
    gap: 2rem;
}

.admin-welcome .admin-eyebrow {
    color: var(--admin-gold);
}

.admin-welcome h1 {
    max-width: 850px;
    margin: 0 0 0.65rem;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 900;
    line-height: 1.12;
}

.admin-welcome p:last-child {
    max-width: 760px;
    margin: 0;
    color: #d7e6f5;
}

.admin-readiness {
    display: flex;
    padding: 1.25rem;
    border: 1px solid rgb(255 255 255 / 24%);
    border-radius: 14px;
    background: rgb(255 255 255 / 10%);
    flex-direction: column;
    gap: 0.25rem;
}

.admin-readiness strong {
    font-family: "Poppins", sans-serif;
    font-size: 2.25rem;
    font-weight: 900;
}

.admin-readiness progress {
    width: 100%;
    height: 10px;
    margin: 0.3rem 0;
    border: 0;
    border-radius: 999px;
    overflow: hidden;
    background: rgb(255 255 255 / 20%);
}

.admin-readiness progress::-webkit-progress-bar {
    background: rgb(255 255 255 / 20%);
}

.admin-readiness progress::-webkit-progress-value,
.admin-readiness progress::-moz-progress-bar {
    background: var(--admin-gold);
}

.admin-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 1rem;
}

.admin-kpi {
    position: relative;
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.admin-kpi::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--admin-purple-medium);
    content: "";
}

.admin-kpi--attention::before {
    background: var(--admin-gold);
}

.admin-kpi--succes::before {
    background: var(--admin-green);
}

.admin-kpi p,
.admin-kpi small {
    margin: 0;
    color: var(--admin-muted);
}

.admin-kpi strong {
    display: block;
    margin: 0.2rem 0;
    color: var(--admin-purple-dark);
    font-family: "Poppins", sans-serif;
    font-size: clamp(1.75rem, 3vw, 2.3rem);
    font-weight: 900;
    overflow-wrap: anywhere;
}

.admin-dashboard-grid {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
    gap: 1.25rem;
}

.admin-dashboard-grid--bottom {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
}

.admin-card {
    min-width: 0;
    padding: clamp(1.15rem, 3vw, 1.6rem);
    border: 1px solid var(--admin-border);
    border-radius: 16px;
    background: #fff;
}

.admin-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1rem;
    gap: 1rem;
}

.admin-card__heading h2,
.admin-quick-actions h2 {
    margin: 0;
    color: var(--admin-purple-dark);
    font-size: 1.25rem;
    font-weight: 800;
}

.admin-card__heading > span {
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    color: #6b4a00;
    background: #fff4d6;
    font-size: 0.75rem;
    font-weight: 800;
    white-space: nowrap;
}

.admin-checklist,
.admin-integration-list,
.admin-activity-list {
    display: flex;
    flex-direction: column;
}

.admin-check,
.admin-integration-list article,
.admin-activity-list article {
    display: grid;
    min-width: 0;
    align-items: center;
    padding: 0.8rem 0;
    border-bottom: 1px solid #edf5ff;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.75rem;
}

.admin-check:last-child,
.admin-integration-list article:last-child,
.admin-activity-list article:last-child {
    border-bottom: 0;
}

.admin-check > span,
.admin-activity-icon {
    display: grid;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    font-weight: 900;
    place-items: center;
}

.admin-check--done > span {
    color: #14532d;
    background: #e3f4ea;
}

.admin-check--todo > span {
    color: #6b4a00;
    background: #fff4d6;
}

.admin-check strong,
.admin-check small,
.admin-integration-list strong,
.admin-integration-list small,
.admin-activity-list strong,
.admin-activity-list small {
    display: block;
}

.admin-check small,
.admin-integration-list small,
.admin-activity-list small {
    color: var(--admin-muted);
}

.admin-check em,
.admin-integration-list em {
    color: var(--admin-muted);
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 800;
    text-align: right;
}

.admin-status-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--admin-gold);
    box-shadow: 0 0 0 5px #fff4d6;
}

.admin-status-dot--on {
    background: var(--admin-green);
    box-shadow: 0 0 0 5px #e3f4ea;
}

.admin-map__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.admin-map__grid article {
    padding: 1.2rem;
    border: 2px solid var(--admin-border);
    border-radius: 14px;
}

.admin-map__grid article > span {
    color: var(--admin-blue);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.09em;
}

.admin-map__grid h3 {
    margin: 0.35rem 0 0.75rem;
    color: var(--admin-purple-dark);
    font-size: 1.05rem;
}

.admin-map__grid ul {
    margin: 0;
    padding-left: 1.15rem;
    color: var(--admin-text);
}

.admin-map__grid li {
    margin-bottom: 0.35rem;
}

.admin-map__editable {
    background: #f5fbf7;
}

.admin-map__integration {
    background: #fffbef;
}

.admin-map__static {
    background: var(--admin-lavender-light);
}

.admin-activity-icon {
    color: #fff;
    background: var(--admin-purple);
    font-family: "Poppins", sans-serif;
}

.admin-activity-list time {
    color: var(--admin-muted);
    font-size: 0.75rem;
    text-align: right;
}

.admin-quick-actions {
    background: linear-gradient(150deg, #fff, var(--admin-lavender-light));
}

.admin-quick-actions > p:not(.admin-eyebrow) {
    color: var(--admin-text);
}

.admin-quick-actions__links {
    display: flex;
    margin-top: 1.15rem;
    flex-direction: column;
    gap: 0.65rem;
}

.admin-quick-actions__links a {
    display: grid;
    align-items: center;
    padding: 0.8rem;
    border: 1px solid var(--admin-border);
    border-radius: 12px;
    color: var(--admin-ink);
    background: #fff;
    grid-template-columns: auto minmax(0, 1fr);
    text-decoration: none;
    gap: 0 0.75rem;
}

.admin-quick-actions__links a:hover,
.admin-quick-actions__links a:focus-visible {
    border-color: var(--admin-purple-medium);
    box-shadow: 0 8px 22px rgb(11 99 206 / 10%);
}

.admin-quick-actions__links a > span {
    display: grid;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    color: #fff;
    background: var(--admin-purple);
    font-size: 1.2rem;
    font-weight: 900;
    grid-row: 1 / 3;
    place-items: center;
}

.admin-quick-actions__links strong,
.admin-quick-actions__links small {
    display: block;
}

.admin-quick-actions__links small {
    color: var(--admin-muted);
}

.admin-empty {
    margin: 0;
    padding: 1.5rem;
    border-radius: 10px;
    color: var(--admin-muted);
    background: var(--admin-lavender-light);
    text-align: center;
}

/* Gestion des comptes autorisés */
.admin-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    gap: 1rem;
}

.admin-page-heading h1 {
    margin: 0.15rem 0 0.35rem;
    color: var(--admin-purple-dark);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.admin-page-heading p:last-child {
    margin: 0;
    color: var(--admin-muted);
}

.admin-users-layout {
    display: grid;
    align-items: start;
    margin-bottom: 1.25rem;
    grid-template-columns: minmax(0, 1.7fr) minmax(320px, 0.75fr);
    gap: 1.25rem;
}

.admin-user-create {
    position: sticky;
    top: 96px;
}

.admin-table-wrap {
    max-width: 100%;
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    padding: 0.9rem 0.7rem;
    border-bottom: 1px solid var(--admin-border);
    text-align: left;
    vertical-align: middle;
}

.admin-table th {
    color: var(--admin-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.admin-table td {
    color: var(--admin-text);
    font-size: 0.9rem;
}

.admin-table td:first-child strong,
.admin-table td:first-child small {
    display: block;
}

.admin-table td:first-child strong {
    color: var(--admin-ink);
}

.admin-table td:first-child small,
.admin-table td:last-child > small {
    color: var(--admin-muted);
}

.admin-account-status {
    display: inline-flex;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 800;
}

.admin-account-status--active {
    color: #185b35;
    background: #e3f4ea;
}

.admin-account-status--inactive {
    color: #7b2132;
    background: #fae7eb;
}

.admin-table-action {
    border: 0;
    padding: 0;
    color: var(--admin-purple);
    background: transparent;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.admin-table-action:hover,
.admin-table-action:focus-visible {
    color: var(--admin-red);
}

.admin-profile-grid {
    display: grid;
    align-items: start;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.admin-profile-summary {
    display: flex;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: 1rem;
    border-radius: 12px;
    background: var(--admin-lavender-light);
    gap: 0.75rem;
}

.admin-profile-summary .admin-user__initials {
    flex: 0 0 42px;
}

.admin-profile-summary strong,
.admin-profile-summary small {
    display: block;
}

.admin-profile-summary small {
    color: var(--admin-muted);
}

/* Paramètres publics et état des intégrations */
.admin-settings-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.admin-settings-grid {
    display: grid;
    align-items: start;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.admin-settings-save {
    position: sticky;
    bottom: 1rem;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border: 1px solid #d2e4f7;
    border-radius: 14px;
    background: rgb(255 255 255 / 96%);
    box-shadow: 0 12px 35px rgb(10 46 99 / 16%);
    backdrop-filter: blur(8px);
    gap: 1rem;
}

.admin-settings-save strong,
.admin-settings-save small {
    display: block;
}

.admin-settings-save small,
.admin-settings-note,
.admin-integration-cards small {
    color: var(--admin-muted);
}

.admin-settings-note {
    max-width: 900px;
    margin-top: -0.25rem;
}

.admin-integration-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.admin-integration-cards article {
    display: grid;
    align-items: center;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 12px;
    background: var(--admin-lavender-light);
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.75rem;
}

.admin-integration-cards strong,
.admin-integration-cards small {
    display: block;
}

.admin-integration-cards em {
    color: var(--admin-muted);
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 800;
}

/* Liste et éditeur des contenus administrables */
.admin-list-filters {
    display: grid;
    align-items: end;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    grid-template-columns: minmax(220px, 1fr) minmax(150px, 0.35fr) minmax(170px, 0.4fr) auto auto;
    gap: 0.75rem;
}

.admin-list-filters .admin-button {
    min-height: 48px;
}

.admin-list-filters > a {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    color: var(--admin-purple);
    font-weight: 800;
}

.admin-list-filters--demandes {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.admin-filter-search {
    grid-column: span 2;
}

.admin-filter-actions {
    display: flex;
    align-items: center;
    grid-column: 1 / -1;
    gap: 1rem;
}

.admin-filter-actions > a {
    color: var(--admin-purple);
    font-weight: 800;
}

.admin-export-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    gap: 1rem;
}

.admin-export-actions strong,
.admin-export-actions small {
    display: block;
}

.admin-export-actions small {
    margin-top: 0.2rem;
    color: var(--admin-muted);
}

.admin-export-actions > div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.admin-content-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(0, 1.45fr) minmax(350px, 0.75fr);
    gap: 1.25rem;
}

.admin-content-editor {
    position: sticky;
    top: 92px;
    max-height: calc(100vh - 110px);
    overflow-y: auto;
}

.admin-articles-table {
    min-width: 880px;
}

.admin-documents-table {
    min-width: 820px;
}

.admin-media-summary {
    display: grid;
    align-items: center;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 0.45rem 0.75rem;
}

.admin-media-summary strong {
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-size: 1.5rem;
    font-weight: 900;
}

.admin-media-summary span {
    color: var(--admin-muted);
}

.admin-media-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(0, 1.35fr) minmax(350px, 0.65fr);
    gap: 1.25rem;
}

.admin-media-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.admin-media-card {
    overflow: hidden;
    border: 2px solid var(--admin-lavender-light);
    border-radius: 12px;
    background: #fff;
}

.admin-media-card.active {
    border-color: var(--admin-purple);
}

.admin-media-card > img {
    width: 100%;
    height: 145px;
    object-fit: cover;
}

.admin-media-card > div {
    padding: 0.75rem;
}

.admin-media-card strong,
.admin-media-card small,
.admin-media-card a {
    display: block;
}

.admin-media-card strong {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.admin-media-card small {
    margin: 0.25rem 0 0.55rem;
    color: var(--admin-muted);
}

.admin-media-card a {
    color: var(--admin-purple);
    font-weight: 800;
}

.admin-relations-layout {
    display: grid;
    align-items: start;
    margin-top: 1.25rem;
    grid-template-columns: minmax(0, 1fr) minmax(380px, 0.85fr);
    gap: 1.25rem;
}

.admin-request-list {
    display: grid;
    gap: 0.55rem;
}

.admin-request-item {
    display: grid;
    min-width: 0;
    align-items: center;
    padding: 0.75rem;
    border: 2px solid var(--admin-lavender-light);
    border-radius: 12px;
    color: var(--admin-text);
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 0.7rem;
}

.admin-request-item.active {
    border-color: var(--admin-purple);
    background: var(--admin-lavender-light);
}

.admin-request-item--unread {
    border-left-color: var(--admin-gold);
    background: #fffdf5;
}

.admin-request-icon {
    display: grid;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    color: #fff;
    background: var(--admin-purple);
    font-weight: 900;
    place-items: center;
}

.admin-request-item strong,
.admin-request-item small {
    display: block;
}

.admin-request-item small {
    overflow: hidden;
    color: var(--admin-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-request-detail {
    position: sticky;
    top: 92px;
}

.admin-request-data {
    display: grid;
    margin: 0 0 1.25rem;
    gap: 0.65rem;
}

.admin-request-data > div {
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--admin-border);
}

.admin-request-data dt {
    color: var(--admin-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.admin-request-data dd {
    margin: 0.2rem 0 0;
    overflow-wrap: anywhere;
}

.admin-request-message {
    white-space: normal;
}

.admin-request-data a {
    color: var(--admin-purple);
    font-weight: 700;
}

.admin-message-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-message-actions form {
    margin: 0;
}

.admin-article-title {
    display: flex;
    min-width: 260px;
    align-items: center;
    gap: 0.75rem;
}

.admin-article-title img {
    width: 58px;
    height: 48px;
    flex: 0 0 58px;
    border-radius: 8px;
    object-fit: cover;
}

.admin-content-status {
    display: inline-flex;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 800;
}

.admin-content-status--publie {
    color: #185b35;
    background: #e3f4ea;
}

.admin-content-status--brouillon {
    color: #6b4a00;
    background: #fff4d6;
}

.admin-row-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.admin-row-actions a,
.admin-row-actions button {
    border: 0;
    padding: 0;
    color: var(--admin-purple);
    background: transparent;
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.admin-row-actions button {
    color: var(--admin-red);
}

.admin-row-actions button.admin-action-neutral {
    color: var(--admin-purple);
}

.admin-row-actions form {
    margin: 0;
}

.admin-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.admin-current-image {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    background: var(--admin-lavender-light);
}

.admin-current-image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.admin-current-image span {
    position: absolute;
    bottom: 0.6rem;
    left: 0.6rem;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    color: #fff;
    background: rgb(7 28 63 / 82%);
    font-size: 0.72rem;
    font-weight: 800;
}

.admin-check-option {
    display: flex;
    align-items: flex-start;
    color: var(--admin-text);
    font-weight: 700;
    gap: 0.55rem;
}

.admin-check-option input {
    width: 18px;
    height: 18px;
    margin-top: 0.15rem;
    accent-color: var(--admin-purple);
}

.admin-editor-cancel {
    color: var(--admin-muted);
    font-weight: 800;
    text-align: center;
}

/* Gestion ordonnée des combats et projets */
.admin-combats-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(320px, 0.75fr) minmax(0, 1.35fr);
    gap: 1.25rem;
}

.admin-card-note {
    margin: -0.35rem 0 1rem;
    color: var(--admin-muted);
    font-size: 0.9rem;
}

.admin-combat-list {
    display: grid;
    gap: 0.65rem;
}

.admin-combat-item {
    display: grid;
    align-items: center;
    padding: 0.75rem;
    border: 2px solid var(--admin-lavender-light);
    border-radius: 12px;
    grid-template-columns: 56px minmax(0, 1fr) auto auto;
    gap: 0.7rem;
}

.admin-combat-item.active {
    border-color: var(--admin-purple);
    background: var(--admin-lavender-light);
}

.admin-combat-item > img {
    width: 56px;
    height: 48px;
    border-radius: 8px;
    object-fit: cover;
}

.admin-combat-item > div:nth-child(2) {
    min-width: 0;
}

.admin-combat-item strong,
.admin-combat-item small {
    display: block;
}

.admin-combat-item strong {
    overflow: hidden;
    color: var(--admin-text);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-combat-item small {
    color: var(--admin-muted);
}

.admin-combat-item > a {
    color: var(--admin-purple);
    font-size: 0.85rem;
    font-weight: 800;
}

.admin-combat-order {
    display: flex;
    gap: 0.25rem;
}

.admin-combat-order button {
    width: 32px;
    height: 32px;
    border: 1px solid var(--admin-border);
    border-radius: 8px;
    color: var(--admin-purple);
    background: #fff;
    font-weight: 900;
}

.admin-combat-order button:disabled {
    cursor: not-allowed;
    opacity: 0.35;
}

.admin-combat-editor {
    min-width: 0;
}

.admin-project-fields {
    display: grid;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 12px;
    background: var(--admin-lavender-light);
    gap: 0.8rem;
}

.admin-project-fields legend {
    padding: 0 0.4rem;
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-weight: 800;
}

.admin-file-current {
    margin: 0;
    color: var(--admin-muted);
    font-weight: 700;
}

.admin-file-current a {
    color: var(--admin-purple);
}

.admin-editor-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.8rem;
}

.admin-editor-actions > a {
    color: var(--admin-purple);
    font-weight: 800;
}

.admin-danger-zone {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.25rem;
    padding: 1rem;
    border: 1px solid #f0c8c8;
    border-radius: 12px;
    background: #fff7f7;
    gap: 1rem;
}

.admin-danger-zone strong,
.admin-danger-zone small {
    display: block;
}

.admin-danger-zone small {
    color: var(--admin-muted);
}

.admin-danger-zone button {
    border: 0;
    color: var(--admin-red);
    background: transparent;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Rapports de suivi et cadre logique */
.admin-project-selector {
    display: grid;
    align-items: end;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    grid-template-columns: minmax(240px, 1fr) auto;
    gap: 0.8rem;
}

.admin-report-settings {
    display: grid;
    gap: 1rem;
}

.admin-followup-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(280px, 0.65fr) minmax(0, 1.35fr);
    gap: 1.25rem;
}

.admin-followup-objectives {
    display: grid;
    gap: 0.55rem;
}

.admin-followup-objectives > a,
.admin-followup-objective-row > a {
    display: grid;
    padding: 0.8rem;
    border: 2px solid var(--admin-lavender-light);
    border-radius: 10px;
    color: var(--admin-text);
    gap: 0.15rem;
}

.admin-followup-objectives > a.active,
.admin-followup-objective-row > a.active {
    border-color: var(--admin-purple);
    background: var(--admin-lavender-light);
}

.admin-followup-objectives strong {
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
}

.admin-followup-objectives span {
    font-weight: 700;
}

.admin-followup-objectives small,
.admin-followup-items small {
    color: var(--admin-muted);
}

.admin-followup-create {
    margin-top: 1.2rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--admin-border);
}

.admin-followup-create h3 {
    margin: 0;
    color: var(--admin-purple-dark);
    font-size: 1rem;
}

.admin-followup-details {
    min-width: 0;
}

.admin-followup-section {
    display: grid;
    padding: 1rem 0;
    border-top: 1px solid var(--admin-border);
    gap: 0.75rem;
}

.admin-followup-section > h3 {
    margin: 0;
    color: var(--admin-purple);
    font-size: 1rem;
}

.admin-inline-empty {
    margin: 0;
    color: var(--admin-muted);
}

.admin-followup-items {
    display: grid;
    gap: 0.45rem;
}

.admin-followup-items > article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.7rem;
    border-radius: 9px;
    background: var(--admin-lavender-light);
    gap: 0.8rem;
}

.admin-followup-items strong,
.admin-followup-items small {
    display: block;
}

.admin-followup-form {
    display: grid;
    padding: 0.8rem;
    border: 1px dashed var(--admin-border);
    border-radius: 10px;
    gap: 0.65rem;
}

.admin-followup-form .admin-button {
    justify-self: start;
}

.admin-followup-numbers {
    display: grid;
    grid-template-columns: repeat(4, minmax(100px, 1fr));
    gap: 0.6rem;
}

.admin-report-overview {
    display: grid;
    overflow: hidden;
    border-radius: 16px;
    background: var(--admin-purple-dark);
    color: #fff;
}

.admin-report-overview__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1.35rem;
    gap: 1rem;
}

.admin-report-overview h2,
.admin-report-overview p {
    margin: 0;
}

.admin-report-overview h2 {
    margin-top: 0.2rem;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
}

.admin-report-overview__heading > div:first-child > p:last-child {
    margin-top: 0.45rem;
    color: #d2e4f7;
}

.admin-report-overview__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.admin-report-overview__actions .admin-button--secondary {
    border-color: #fff;
    background: #fff;
}

.admin-report-kpis {
    display: grid;
    border-top: 1px solid rgb(255 255 255 / 18%);
    background: rgb(255 255 255 / 7%);
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.admin-report-kpis article {
    display: grid;
    padding: 1rem 1.2rem;
    border-right: 1px solid rgb(255 255 255 / 14%);
    gap: 0.1rem;
}

.admin-report-kpis article:last-child {
    border-right: 0;
}

.admin-report-kpis strong {
    font-family: "Poppins", sans-serif;
    font-size: 1.45rem;
}

.admin-report-kpis span {
    color: #d2e4f7;
    font-size: 0.78rem;
}

.admin-report-steps {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-report-steps a {
    display: grid;
    position: relative;
    padding: 1rem 1rem 1rem 3.6rem;
    border-right: 1px solid var(--admin-border);
    color: var(--admin-text);
    gap: 0.05rem;
}

.admin-report-steps a:last-child {
    border-right: 0;
}

.admin-report-steps a > span {
    display: grid;
    position: absolute;
    top: 50%;
    left: 1rem;
    width: 2rem;
    height: 2rem;
    transform: translateY(-50%);
    border-radius: 50%;
    background: var(--admin-lavender-light);
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-weight: 800;
    place-items: center;
}

.admin-report-steps a.complete > span {
    background: #d9f3e5;
    color: #17663b;
}

.admin-report-steps a.active {
    background: var(--admin-lavender-light);
    box-shadow: inset 0 -4px 0 var(--admin-purple);
}

.admin-report-steps a.locked {
    color: var(--admin-muted);
    opacity: 0.65;
}

.admin-report-steps strong,
.admin-report-steps small {
    display: block;
}

.admin-report-steps small {
    color: var(--admin-muted);
}

.admin-report-formats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.admin-report-formats article {
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 12px;
    background: var(--admin-lavender-light);
}

.admin-report-formats article > p {
    margin: 0.35rem 0 0;
    color: var(--admin-muted);
}

.admin-report-formats .admin-field {
    margin-top: 0.9rem;
}

.admin-followup-layout--objectives {
    grid-template-columns: minmax(0, 1fr);
}

.admin-followup-objective-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
}

.admin-followup-objective-actions,
.admin-order-controls {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.admin-followup-objective-actions > a,
.admin-followup-objective-actions form:not(.admin-order-controls) button,
.admin-order-controls button {
    min-height: 34px;
    padding: 0.35rem 0.55rem;
    border: 1px solid var(--admin-border);
    border-radius: 8px;
    background: #fff;
    color: var(--admin-purple);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.admin-followup-objective-actions form:not(.admin-order-controls) button {
    color: #9d1730;
}

.admin-order-controls button:disabled,
.admin-button:disabled {
    cursor: not-allowed;
    opacity: 0.4;
}

.admin-followup-add-objective {
    margin-top: 1rem;
}

.admin-followup-tabs {
    display: grid;
    margin-top: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-followup-tabs a {
    padding: 0.65rem;
    border-right: 1px solid var(--admin-border);
    color: var(--admin-muted);
    text-align: center;
    font-weight: 700;
}

.admin-followup-tabs a:last-child {
    border-right: 0;
}

.admin-followup-tabs a.active {
    background: var(--admin-lavender-light);
    color: var(--admin-purple);
}

.admin-followup-tabs span {
    display: inline-grid;
    min-width: 1.45rem;
    min-height: 1.45rem;
    margin-left: 0.25rem;
    border-radius: 999px;
    background: #fff;
    font-size: 0.74rem;
    place-items: center;
}

.admin-publication-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    gap: 1.25rem;
}

.admin-publication-readiness {
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    font-size: 0.78rem;
}

.admin-publication-readiness--ready {
    background: #d9f3e5;
    color: #17663b;
}

.admin-publication-readiness--pending {
    background: #fff0cf;
    color: #7c4b00;
}

.admin-publication-checklist {
    display: grid;
    padding: 0;
    margin: 1rem 0 0;
    list-style: none;
    gap: 0.55rem;
}

.admin-publication-checklist li {
    display: flex;
    align-items: center;
    padding: 0.75rem;
    border: 1px solid var(--admin-border);
    border-radius: 10px;
    gap: 0.7rem;
}

.admin-publication-checklist li > span {
    display: grid;
    flex: 0 0 auto;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 50%;
    font-weight: 800;
    place-items: center;
}

.admin-publication-checklist .valid > span {
    background: #d9f3e5;
    color: #17663b;
}

.admin-publication-checklist .invalid > span {
    background: #fff0cf;
    color: #7c4b00;
}

.admin-publication-help {
    padding: 0.8rem;
    margin: 1rem 0 0;
    border-radius: 10px;
    background: var(--admin-lavender-light);
    color: var(--admin-muted);
}

.admin-publication-state {
    display: grid;
    gap: 1rem;
}

.admin-publication-state h2,
.admin-publication-state p {
    margin: 0;
}

.admin-alert--warning {
    border-color: #eed28f;
    background: #fff8e7;
    color: #6f4700;
}

@media (max-width: 1100px) {
    .admin-report-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-report-kpis article:nth-child(3) {
        border-right: 0;
    }

    .admin-report-kpis article:nth-child(n + 4) {
        border-top: 1px solid rgb(255 255 255 / 14%);
    }

    .admin-publication-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .admin-report-overview__heading {
        flex-direction: column;
    }

    .admin-report-overview__actions {
        justify-content: flex-start;
    }

    .admin-report-kpis,
    .admin-report-steps,
    .admin-report-formats {
        grid-template-columns: 1fr;
    }

    .admin-report-kpis article,
    .admin-report-kpis article:nth-child(3) {
        border-top: 1px solid rgb(255 255 255 / 14%);
        border-right: 0;
    }

    .admin-report-kpis article:first-child {
        border-top: 0;
    }

    .admin-report-steps a,
    .admin-report-steps a:last-child {
        border-right: 0;
        border-bottom: 1px solid var(--admin-border);
    }

    .admin-report-steps a:last-child {
        border-bottom: 0;
    }

    .admin-followup-objective-row {
        grid-template-columns: 1fr;
    }

    .admin-followup-objective-actions {
        justify-content: flex-end;
        padding-bottom: 0.5rem;
    }

    .admin-followup-tabs {
        grid-template-columns: 1fr;
    }

    .admin-followup-tabs a,
    .admin-followup-tabs a:last-child {
        border-right: 0;
        border-bottom: 1px solid var(--admin-border);
    }

    .admin-followup-tabs a:last-child {
        border-bottom: 0;
    }
}

/* Éditeur des contenus de l’accueil */
.admin-home-form {
    display: grid;
    gap: 1.25rem;
}

.admin-home-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-impact-editor {
    display: grid;
    margin-top: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.admin-impact-editor > div {
    display: grid;
    padding: 0.8rem;
    border-radius: 10px;
    background: var(--admin-lavender-light);
    grid-template-columns: minmax(80px, 0.35fr) minmax(0, 1fr);
    gap: 0.65rem;
}

.admin-donation-editor,
.admin-testimonials-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.admin-donation-editor h3,
.admin-testimonial-editor h3 {
    margin: 0 0 0.8rem;
    color: var(--admin-purple-dark);
    font-size: 1rem;
}

.admin-amount-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.admin-home-save {
    position: sticky;
    z-index: 4;
    bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: rgb(255 255 255 / 96%);
    box-shadow: 0 12px 32px rgb(10 46 99 / 14%);
    gap: 1rem;
}

.admin-home-save span {
    color: var(--admin-muted);
    font-weight: 700;
}

.admin-testimonial-list {
    display: grid;
    align-content: start;
    gap: 0.7rem;
}

.admin-testimonial-list > article {
    display: grid;
    align-items: center;
    padding: 0.8rem;
    border: 1px solid var(--admin-border);
    border-radius: 12px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.8rem;
}

.admin-testimonial-list img {
    width: 58px;
    height: 58px;
    border-radius: 999px;
    object-fit: cover;
}

.admin-testimonial-list blockquote {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--admin-text);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.admin-testimonial-list strong,
.admin-testimonial-list small {
    display: block;
}

.admin-testimonial-list strong {
    color: var(--admin-purple);
}

.admin-testimonial-list small {
    color: var(--admin-muted);
}

.admin-testimonial-editor {
    padding: 1rem;
    border-radius: 12px;
    background: var(--admin-lavender-light);
}

.admin-gallery-picker {
    display: grid;
    margin-bottom: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.75rem;
}

.admin-gallery-picker > label {
    display: grid;
    overflow: hidden;
    border: 2px solid var(--admin-border);
    border-radius: 10px;
    background: #fff;
}

.admin-gallery-picker > label.selected {
    border-color: var(--admin-purple);
}

.admin-gallery-picker img {
    width: 100%;
    height: 115px;
    object-fit: cover;
}

.admin-gallery-picker span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.35rem 0.55rem;
    color: var(--admin-text);
    font-size: 0.85rem;
    font-weight: 700;
    gap: 0.35rem;
}

.admin-gallery-picker input[type="number"] {
    width: 62px;
    min-height: 34px;
    padding: 0.2rem 0.35rem;
}

/* Navigation principale des modules composés de plusieurs pages */
.admin-section-tabs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    padding: 0.4rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    gap: 0.35rem;
}

.admin-section-tabs a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 0.6rem 1rem;
    border-radius: 10px;
    color: var(--admin-purple);
    font-weight: 800;
}

.admin-section-tabs a:hover,
.admin-section-tabs a:focus-visible {
    background: var(--admin-lavender-light);
}

.admin-section-tabs a.active {
    color: #fff;
    background: var(--admin-purple);
}

/* Présentation, chronologie et gouvernance de l’association */
.admin-association-nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    padding: 0.45rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    gap: 0.35rem;
}

.admin-association-nav a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 0.55rem 0.9rem;
    border-radius: 10px;
    color: var(--admin-purple);
    font-weight: 800;
    gap: 0.45rem;
}

.admin-association-nav a:hover,
.admin-association-nav a:focus-visible {
    background: var(--admin-lavender-light);
}

.admin-association-nav span {
    display: inline-grid;
    min-width: 1.55rem;
    min-height: 1.55rem;
    border-radius: 999px;
    color: var(--admin-purple-dark);
    background: #eaf4ff;
    font-size: 0.75rem;
    place-items: center;
}

.admin-values-editor {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.admin-values-editor fieldset {
    display: grid;
    min-width: 0;
    padding: 0.9rem;
    border: 1px solid var(--admin-border);
    border-radius: 12px;
    background: var(--admin-lavender-light);
    gap: 0.7rem;
}

.admin-values-editor legend {
    padding: 0 0.35rem;
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-size: 0.85rem;
    font-weight: 800;
}

.admin-association-images {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.admin-association-image-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.7rem;
}

.admin-association-image-field .admin-current-image img {
    height: 145px;
}

.admin-association-video-fields {
    margin-top: 1.25rem;
}

.admin-association-section {
    margin-top: 2rem;
    scroll-margin-top: 1rem;
}

.admin-association-section__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 0.8rem;
    gap: 1rem;
}

.admin-association-section__heading h2 {
    margin: 0;
    color: var(--admin-purple-dark);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
}

.admin-association-section__heading > a {
    color: var(--admin-purple);
    font-weight: 800;
}

.admin-association-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, 0.75fr);
    gap: 1.25rem;
}

.admin-association-list {
    display: grid;
    gap: 0.65rem;
}

.admin-association-item {
    display: grid;
    min-width: 0;
    align-items: center;
    padding: 0.8rem;
    border: 2px solid var(--admin-lavender-light);
    border-radius: 12px;
    grid-template-columns: 90px minmax(0, 1fr) auto auto;
    gap: 0.75rem;
}

.admin-association-item.active {
    border-color: var(--admin-purple);
    background: var(--admin-lavender-light);
}

.admin-association-year {
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-weight: 900;
}

.admin-association-item strong,
.admin-association-item small {
    display: block;
}

.admin-association-item small {
    display: -webkit-box;
    overflow: hidden;
    color: var(--admin-muted);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.admin-association-item > a {
    color: var(--admin-purple);
    font-size: 0.85rem;
    font-weight: 800;
}

.admin-association-item--member {
    grid-template-columns: 56px minmax(0, 1fr) auto auto;
}

.admin-association-item--member > img,
.admin-association-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
}

.admin-association-item--member > img {
    object-fit: cover;
}

.admin-timeline-photos {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--admin-border);
    scroll-margin-top: 1rem;
}

.admin-timeline-photos .admin-association-section__heading p:last-child {
    margin: 0.35rem 0 0;
    color: var(--admin-muted);
}

.admin-association-item--timeline-photo {
    grid-template-columns: 76px minmax(0, 1fr) auto auto;
}

.admin-association-item--timeline-photo > img {
    width: 76px;
    height: 64px;
    border-radius: 9px;
    object-fit: cover;
}

.admin-association-avatar {
    display: grid;
    color: #fff;
    background: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-weight: 900;
    place-items: center;
}

/* Gestion et affectation des partenaires */
.admin-partner-kpis {
    display: grid;
    margin-bottom: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.admin-partner-kpis--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-newsletter-integration {
    margin-bottom: 1.25rem;
}

.admin-list-filters--newsletter {
    margin-bottom: 1.25rem;
    grid-template-columns: minmax(220px, 1fr) minmax(160px, 0.45fr) auto auto;
}

.admin-newsletter-heading {
    margin-top: 0.25rem;
}

.admin-newsletter-table {
    min-width: 760px;
}

.admin-featured-preview {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: var(--admin-lavender-light);
    grid-template-columns: 120px minmax(0, 1fr);
}

.admin-featured-preview > img {
    width: 120px;
    height: 100%;
    min-height: 150px;
    object-fit: cover;
}

.admin-featured-preview > div {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    padding: 1rem;
    gap: 0.35rem;
}

.admin-featured-preview span {
    color: var(--admin-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.admin-featured-preview strong,
.admin-featured-preview small {
    display: block;
}

.admin-featured-preview small {
    overflow: hidden;
    color: var(--admin-muted);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.admin-featured-preview a {
    color: var(--admin-purple);
    font-weight: 800;
}

.admin-partner-kpis article {
    padding: 1rem 1.15rem;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
}

.admin-partner-kpis strong,
.admin-partner-kpis span {
    display: block;
}

.admin-partner-kpis strong {
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-size: 1.65rem;
    font-weight: 900;
}

.admin-partner-kpis span {
    color: var(--admin-muted);
}

.admin-partners-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
    gap: 1.25rem;
}

.admin-partner-list {
    display: grid;
    gap: 0.65rem;
}

.admin-partner-item {
    display: grid;
    min-width: 0;
    align-items: center;
    padding: 0.75rem;
    border: 2px solid var(--admin-lavender-light);
    border-radius: 12px;
    grid-template-columns: 58px minmax(0, 1fr) auto auto;
    gap: 0.7rem;
}

.admin-partner-item.active {
    border-color: var(--admin-purple);
    background: var(--admin-lavender-light);
}

.admin-partner-item > img,
.admin-partner-placeholder {
    width: 58px;
    height: 52px;
    border: 1px solid var(--admin-border);
    border-radius: 9px;
    background: #fff;
}

.admin-partner-item > img {
    padding: 0.3rem;
    object-fit: contain;
}

.admin-partner-placeholder {
    display: grid;
    color: var(--admin-purple);
    font-family: "Poppins", sans-serif;
    font-weight: 900;
    place-items: center;
}

.admin-partner-item strong,
.admin-partner-item small {
    display: block;
}

.admin-partner-item small {
    overflow: hidden;
    color: var(--admin-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-partner-item > a {
    color: var(--admin-purple);
    font-size: 0.85rem;
    font-weight: 800;
}

.admin-partner-editor {
    position: sticky;
    top: 92px;
}

.admin-partner-logo-preview img {
    padding: 1rem;
    background: #fff;
    object-fit: contain;
}

@media (max-width: 1100px) {
    .admin-dashboard-grid,
    .admin-dashboard-grid--bottom {
        grid-template-columns: 1fr;
    }

    .admin-map__grid {
        grid-template-columns: 1fr;
    }

    .admin-users-layout,
    .admin-profile-grid,
    .admin-settings-grid {
        grid-template-columns: 1fr;
    }

    .admin-user-create {
        position: static;
    }

    .admin-content-layout {
        grid-template-columns: 1fr;
    }

    .admin-combats-layout {
        grid-template-columns: 1fr;
    }

    .admin-followup-layout {
        grid-template-columns: 1fr;
    }

    .admin-testimonials-layout {
        grid-template-columns: 1fr;
    }

    .admin-association-layout {
        grid-template-columns: 1fr;
    }

    .admin-partners-layout {
        grid-template-columns: 1fr;
    }

    .admin-media-layout {
        grid-template-columns: 1fr;
    }

    .admin-relations-layout {
        grid-template-columns: 1fr;
    }

    .admin-request-detail {
        position: static;
    }

    .admin-partner-editor {
        position: static;
    }

    .admin-association-images {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-content-editor {
        position: static;
        max-height: none;
        overflow-y: visible;
    }

    .admin-list-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-list-filters--demandes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .admin-login-shell {
        grid-template-columns: 1fr;
    }

    .admin-login-visual {
        min-height: 390px;
    }

    .admin-layout {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        position: fixed;
        left: 0;
        width: min(88vw, 310px);
        transform: translateX(-105%);
        transition: transform 0.22s ease;
        box-shadow: 20px 0 50px rgb(7 28 63 / 28%);
    }

    .admin-menu-open .admin-sidebar {
        transform: translateX(0);
    }

    .admin-menu-button {
        display: inline-grid;
        place-items: center;
    }

    .admin-welcome {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 600px) {
    .admin-login-visual {
        min-height: 320px;
    }

    .admin-login-panel {
        padding: 2rem 1rem;
    }

    .admin-topbar {
        align-items: flex-start;
    }

    .admin-topbar > div:first-of-type small,
    .admin-user > span:last-child {
        display: none;
    }

    .admin-main {
        padding: 1rem;
    }

    .admin-welcome {
        padding: 1.35rem;
    }

    .admin-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-kpi {
        padding: 1rem;
    }

    .admin-kpi strong {
        font-size: 1.5rem;
    }

    .admin-check,
    .admin-integration-list article,
    .admin-activity-list article {
        align-items: flex-start;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .admin-check em,
    .admin-integration-list em,
    .admin-activity-list time {
        grid-column: 2;
        text-align: left;
    }

    .admin-settings-save {
        position: static;
        align-items: stretch;
        flex-direction: column;
    }

    .admin-settings-save .admin-button {
        width: 100%;
    }

    .admin-integration-cards {
        grid-template-columns: 1fr;
    }

    .admin-integration-cards article {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .admin-integration-cards em {
        grid-column: 2;
    }

    .admin-list-filters,
    .admin-form-row {
        grid-template-columns: 1fr;
    }

    .admin-list-filters--demandes {
        grid-template-columns: 1fr;
    }

    .admin-filter-search {
        grid-column: auto;
    }

    .admin-filter-actions,
    .admin-export-actions,
    .admin-message-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-message-actions form,
    .admin-message-actions .admin-button {
        width: 100%;
    }

    .admin-export-actions > div:last-child,
    .admin-export-actions .admin-button {
        width: 100%;
    }

    .admin-project-selector,
    .admin-followup-numbers {
        grid-template-columns: 1fr;
    }

    .admin-home-fields,
    .admin-impact-editor,
    .admin-donation-editor {
        grid-template-columns: 1fr;
    }

    .admin-impact-editor > div {
        grid-template-columns: 1fr;
    }

    .admin-home-save {
        position: static;
        align-items: stretch;
        flex-direction: column;
    }

    .admin-values-editor,
    .admin-association-images {
        grid-template-columns: 1fr;
    }

    .admin-association-item,
    .admin-association-item--member,
    .admin-association-item--timeline-photo {
        grid-template-columns: 56px minmax(0, 1fr) auto;
    }

    .admin-association-item--timeline-photo > img {
        width: 56px;
        height: 56px;
    }

    .admin-association-item .admin-combat-order {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .admin-association-item > a {
        grid-column: 2;
    }

    .admin-association-year {
        font-size: 0.82rem;
    }

    .admin-partner-kpis {
        grid-template-columns: 1fr;
    }

    .admin-partner-kpis--four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-featured-preview {
        grid-template-columns: 1fr;
    }

    .admin-featured-preview > img {
        width: 100%;
        height: 190px;
    }

    .admin-partner-item {
        grid-template-columns: 52px minmax(0, 1fr) auto;
    }

    .admin-partner-item > img,
    .admin-partner-placeholder {
        width: 52px;
        height: 48px;
    }

    .admin-partner-item .admin-combat-order {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .admin-partner-item > a {
        grid-column: 2;
    }

    .admin-media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-media-summary {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .admin-media-grid {
        grid-template-columns: 1fr;
    }

    .admin-testimonial-list > article {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .admin-testimonial-list img {
        grid-row: 1 / span 2;
    }

    .admin-followup-items > article {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-combat-item {
        grid-template-columns: 48px minmax(0, 1fr) auto;
    }

    .admin-combat-item > img {
        width: 48px;
        height: 44px;
    }

    .admin-combat-item > a {
        grid-column: 2;
    }

    .admin-combat-order {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .admin-danger-zone {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-list-filters > a {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-sidebar {
        transition: none;
    }
}
