:root {
    --brand: #e6023b;
    --brand-dark: #a8012c;
    --bg-dark: #1a1f2e;
    --bg-dark-2: #2d3748;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background: #f5f6f8;
    color: #2d3748;
}

.text-brand {
    color: var(--brand) !important;
}

.btn-brand {
    background: var(--brand);
    color: #fff;
    border: none;
    font-weight: 500;
    transition: background .2s ease;
}

.btn-brand:hover,
.btn-brand:focus {
    background: var(--brand-dark);
    color: #fff;
}

/* ========== Auth page ========== */
.auth-body {
    background: linear-gradient(135deg, var(--bg-dark) 0%, var(--bg-dark-2) 100%);
    min-height: 100vh;
}

.auth-wrapper {
    min-height: 100vh;
    padding: 2rem 1rem;
}

.auth-card {
    width: 100%;
    max-width: 420px;
    border-radius: 16px;
    overflow: hidden;
}

.auth-logo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--brand);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--brand);
    box-shadow: 0 4px 12px rgba(230, 2, 59, 0.15);
}

.auth-logo--success {
    background: #ecfdf5;
    border-color: #10b981;
    color: #10b981;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.18);
}

.auth-logo--danger {
    background: #fef2f2;
    border-color: #ef4444;
    color: #ef4444;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.18);
}

/* ========== App navbar ========== */
.app-navbar {
    background: var(--bg-dark);
    border-bottom: 3px solid var(--brand);
}

.app-navbar .navbar-brand {
    font-size: 1.15rem;
}

/* ========== Module cards ========== */
.module-card {
    border-radius: 12px;
    transition: transform .15s ease, box-shadow .15s ease;
    cursor: pointer;
}

.module-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08) !important;
}

/* ========== Global palette advisory (réutilisée) ========== */
.bg-adv-expired {
    background-color: #fde5e7 !important;
    background-image: repeating-linear-gradient(
        45deg,
        transparent 0,
        transparent 11px,
        rgba(220, 53, 69, 0.35) 11px,
        rgba(220, 53, 69, 0.35) 13px
    ) !important;
    color: #000 !important;
    font-weight: 600;
}
.text-adv-expired { color: #212529 !important; }

/* ========== Fiche gardien ========== */
.fiche-label         { color: #6c757d; font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; margin-bottom: .2rem; display: block; }
.fiche-section-title { font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #6c757d; }
.fiche-readonly      { font-weight: 500; padding: .35rem .5rem; min-height: 1.9rem; background: #f5f6f8; border-radius: .25rem; border: 1px solid #e9ecef; font-size: .875rem; }
.fiche-structure-mark {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: .6rem 1.1rem;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.fiche-structure-logo {
    max-height: 56px;
    max-width: 220px;
    object-fit: contain;
    display: block;
}
