/* ===== Centre de Vie Familiale — surcharges Tailwind ===== */
body {
    font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

h1, h2, h3, .titre {
    font-family: 'Lora', Georgia, serif;
}

/* Cartes */
.carte {
    background: white;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    padding: 1rem;
}

.carte:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* Boutons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.15s ease;
    cursor: pointer;
    border: 1px solid transparent;
}

.btn-primaire {
    background: #534AB7;
    color: white;
}
.btn-primaire:hover { background: #423a93; }

.btn-secondaire {
    background: white;
    color: #534AB7;
    border-color: #d4cfe9;
}
.btn-secondaire:hover { background: #f3f1fb; }

.btn-danger {
    background: #dc2626;
    color: white;
}
.btn-danger:hover { background: #b91c1c; }

.btn-fantome {
    background: transparent;
    color: #64748b;
}
.btn-fantome:hover { background: #f1f5f9; }

/* Champs */
.champ {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid #cbd5e1;
    border-radius: 0.5rem;
    background: white;
    font-size: 0.9rem;
}
.champ:focus {
    outline: 2px solid #a5a0e0;
    border-color: #534AB7;
}

/* Toasts */
.toast {
    background: #1e293b;
    color: white;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    animation: glisser 0.25s ease;
    max-width: 320px;
}
.toast.succes { background: #059669; }
.toast.erreur { background: #dc2626; }
.toast.info   { background: #534AB7; }

@keyframes glisser {
    from { transform: translateX(20px); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}

/* Modal */
.modal-fond {
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.5);
    display: flex; align-items: center; justify-content: center;
    padding: 1rem;
    z-index: 60;
}
.modal-corps {
    background: white;
    border-radius: 0.75rem;
    max-width: 600px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    padding: 1.5rem;
}

/* Tags */
.tag {
    display: inline-block;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    background: #e2e8f0;
    color: #475569;
}
.tag-urgente  { background: #fee2e2; color: #991b1b; }
.tag-haute    { background: #fed7aa; color: #9a3412; }
.tag-normale  { background: #e2e8f0; color: #475569; }
.tag-basse    { background: #d1fae5; color: #065f46; }

/* Pour les listes scrollables */
.liste-scroll {
    max-height: 500px;
    overflow-y: auto;
}

/* Réajustement sidebar mobile */
@media (max-width: 767px) {
    #sidebar.ouvert {
        transform: translateX(0);
    }
}
