/*
 * Habillage Alfred sur Tabler / Sylius BootstrapAdminUi (base Aality « Indigo Pulse »).
 * Violet #6A48E5, indigo #1D1242, bleu ciel #6CA0EA, lavande #DDE9FA. Voir docs/ADR et la maquette de DA.
 * On surcharge des variables plutôt que des classes : plus robuste aux montées de version du bundle.
 */
:root,
[data-bs-theme="light"] {
    --tblr-primary: #6A48E5;
    --tblr-primary-rgb: 106, 72, 229;
    --tblr-primary-fg: #ffffff;
    --tblr-link-color: #5B3BD1;
    --tblr-link-color-rgb: 91, 59, 209;
    --tblr-link-hover-color: #4A2FB5;
    --tblr-body-bg: #F4F7FD;
    --tblr-body-color: #1D1242;
    --tblr-border-color: #E1E8F5;
    --tblr-font-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --tblr-font-monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    --tblr-border-radius: 12px;
    --tblr-card-border-radius: 20px;
}

h1, h2, h3, h4, h5, h6, .page-title, .card-title, .navbar-brand {
    font-family: "Poppins", var(--tblr-font-sans-serif);
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* Barre latérale : indigo profond, comme la charte, quel que soit le thème choisi. */
.navbar-vertical {
    --tblr-navbar-bg: #1D1242;
    background-color: #1D1242;
}
.navbar-vertical .nav-link {
    border-radius: 12px;
    margin: 2px 8px;
}
.navbar-vertical .nav-link.active,
.navbar-vertical .nav-item.active > .nav-link {
    background-color: #6A48E5;
    color: #ffffff;
}

.card {
    border-color: var(--tblr-border-color);
    box-shadow: none;
}
.btn-primary {
    --tblr-btn-bg: #6A48E5;
    --tblr-btn-border-color: #6A48E5;
    --tblr-btn-hover-bg: #5B3BD1;
    --tblr-btn-hover-border-color: #5B3BD1;
    --tblr-btn-active-bg: #4A2FB5;
    font-weight: 600;
    border-radius: 12px;
}
code, pre, .font-monospace {
    font-family: var(--tblr-font-monospace);
}

/* « Le voile » : motif signature pour ce qui est masqué ou refusé (voir la maquette de DA). */
.alfred-veil {
    background-color: #EFEAFD;
    background-image: repeating-linear-gradient(135deg, rgba(106, 72, 229, .16) 0, rgba(106, 72, 229, .16) 2px, transparent 2px, transparent 8px);
    border: 1px solid #D9CEFA;
    color: #4A2FB5;
    border-radius: 8px;
    padding: 1px 9px;
    font-family: var(--tblr-font-monospace);
    font-size: .85em;
}
.alfred-badge-visible { background: #E2F4EC; color: #0F6B4B; border-radius: 999px; padding: 4px 12px; font-weight: 600; font-size: .8rem; }
.alfred-badge-denied { background: #fff; color: #A3173F; border: 1px dashed #D9A3B5; border-radius: 999px; padding: 3px 12px; font-weight: 600; font-size: .8rem; }
.alfred-ghost { border: 1px dashed #D9A3B5 !important; background: #fff; }
.alfred-ghost .alfred-ghost-title { color: #6B6290; }

/* Écrans d'authentification (login, MFA, consentement) : fond lavande, carte centrée, comme la maquette de DA. */
body.alfred-auth {
    min-height: 100vh;
    background: linear-gradient(160deg, #DDE9FA 0%, #EFEAFD 55%, #F4F7FD 100%);
}
.alfred-auth-wrap {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 2rem 1rem;
}
.alfred-auth-brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    color: #1D1242;
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 1.75rem;
    letter-spacing: -0.01em;
    text-decoration: none;
}
.alfred-auth-card {
    width: 100%;
    max-width: 520px;
    background: #fff;
    border: 1px solid #E1E8F5;
    border-radius: 24px;
    padding: 2rem;
    box-shadow: 0 18px 50px rgba(29, 18, 66, .10);
}
.alfred-auth-card h1 { font-size: 1.6rem; line-height: 1.2; margin: 0 0 .5rem; }
.alfred-auth-kicker {
    display: inline-block;
    background: #EFEAFD;
    color: #4A2FB5;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: .75rem;
    font-weight: 600;
    margin-bottom: .75rem;
}
.alfred-auth-card .form-control { min-height: 44px; border-radius: 12px; }
.alfred-auth-card .btn { min-height: 44px; border-radius: 12px; }
.alfred-auth-foot { color: #4A4170; font-size: .8rem; text-align: center; }
.alfred-codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; list-style: none; padding: 0; margin: 1rem 0; }
.alfred-codes li { background: #F4F7FD; border: 1px solid #E1E8F5; border-radius: 10px; padding: .5rem .75rem; font-family: var(--tblr-font-monospace); text-align: center; letter-spacing: .08em; }

/* Écran d'attente des enregistrements longs (lecture des emails pour l'aperçu). */
.alfred-busy { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; background: rgba(29, 18, 66, .55); backdrop-filter: blur(3px); }
.alfred-busy.is-on { display: flex; }
.alfred-busy-card { background: #fff; border-radius: 16px; padding: 28px 32px; width: min(420px, 90vw); text-align: center; box-shadow: 0 20px 50px rgba(29, 18, 66, .3); }
.alfred-spinner { width: 44px; height: 44px; margin: 0 auto 16px; border-radius: 50%; border: 4px solid #DDE9FA; border-top-color: #6A48E5; animation: alfred-spin .9s linear infinite; }
.alfred-busy-msg { font-weight: 600; color: #1D1242; min-height: 1.6em; transition: opacity .3s; }
.alfred-busy-msg.is-fading { opacity: 0; }
.alfred-busy-steps { display: flex; justify-content: center; gap: 6px; margin-top: 14px; }
.alfred-busy-steps span { width: 8px; height: 8px; border-radius: 50%; background: #DDE9FA; transition: background .3s; }
.alfred-busy-steps span.is-done { background: #6A48E5; }
@keyframes alfred-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .alfred-spinner { animation-duration: 3s; } .alfred-busy-msg { transition: none; } }
