/* Styles pour les impressions (Certificats et Listes) */
body.print-body { background: #fff; color: #000; font-family: 'Times New Roman', serif; }
.certificat-container { padding: 40px; min-height: 800px; position: relative; }
.certificat-title { text-align: center; text-decoration: underline; margin: 50px 0; font-size: 24px; font-weight: bold; }
.certificat-body { font-size: 18px; line-height: 1.8; text-align: justify; margin-bottom: 100px; }
.certificat-date { text-align: right; margin-bottom: 50px; }
.certificat-footer-sign { display: flex; justify-content: space-between; margin-top: 50px; }
.sign-box { text-align: center; width: 250px; }

.print-container { padding: 30px; }
.table-print th { background-color: #f2f2f2 !important; color: #000 !important; }

@media print {
    .d-print-none { display: none !important; }
    body { margin: 0; }
    @page { margin: 1cm; }
    nav, header, footer, .navbar, .sidebar, .card-header { display: none !important; }
}

/* Styles utilitaires généraux */
.cursor-pointer { cursor: pointer; }
.clignote {
    animation: blinker 1.5s linear infinite;
}
@keyframes blinker {
    50% { opacity: 0; }
}

.vertical-center {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.font-size-40 { font-size: 40px !important; }
.badge-lg { padding: 0.5rem 1rem; font-size: 1rem; }
.btn-xs { padding: 0.2rem 0.4rem; font-size: 0.7rem; line-height: 1; }

/* Boutons à couleur dynamique (entité/site) — forcer texte blanc au hover */
.btn-entity, .btn-entity:hover, .btn-entity:focus, .btn-entity:active {
    color: #fff !important;
}

/* Boutons filtre dates (cours.php) : outline gris clair au repos, sombre au hover */
a.filter-link,
a.filter-link.btn-filtre,
a.filter-link.btn-sm {
    border: 1px solid #ced4da !important;
    color: #495057 !important;
    background: transparent !important;
    transition: all 0.2s;
}
a.filter-link:hover,
a.filter-link.active,
a.filter-link:focus {
    background: #007bff !important;
    border-color: #007bff !important;
    color: #fff !important;
    box-shadow: none !important;
}
/* Override specifique pour les classes outline-primary sur les filter-links */
a.filter-link.btn-outline-primary,
a.filter-link.btn-outline-secondary,
a.filter-link.btn-outline-success,
a.filter-link.btn-outline-info,
a.filter-link.btn-outline-danger,
a.filter-link.btn-outline-dark {
    color: #495057 !important;
    background: transparent !important;
    border-color: #ced4da !important;
}
a.filter-link.btn-outline-primary:hover,
a.filter-link.btn-outline-secondary:hover,
a.filter-link.btn-outline-success:hover,
a.filter-link.btn-outline-info:hover,
a.filter-link.btn-outline-danger:hover,
a.filter-link.btn-outline-dark:hover,
a.filter-link.btn-outline-primary:focus,
a.filter-link.btn-outline-secondary:focus,
a.filter-link.btn-outline-success:focus,
a.filter-link.btn-outline-info:focus,
a.filter-link.btn-outline-danger:focus,
a.filter-link.btn-outline-dark:focus {
    color: #fff !important;
    background: #007bff !important;
    border-color: #007bff !important;
}

/* Tous les boutons avec background-color inline -> forcer texte lisible au hover */
.btn[style*="background-color"]:hover,
.btn[style*="background-color"]:focus,
.btn[style*="background-color"]:active {
    color: #fff !important;
}

/* Correction survol boutons : garantir la lisibilité du texte */
.btn:hover, .btn:focus, .btn:active {
    text-decoration: none;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { color: #fff !important; }
.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active { color: #fff !important; }
.btn-success:hover, .btn-success:focus, .btn-success:active { color: #fff !important; }
.btn-info:hover, .btn-info:focus, .btn-info:active { color: #fff !important; }
.btn-danger:hover, .btn-danger:focus, .btn-danger:active { color: #fff !important; }
.btn-dark:hover, .btn-dark:focus, .btn-dark:active { color: #fff !important; }
.btn-warning:hover, .btn-warning:focus, .btn-warning:active { color: #212529 !important; }
.btn-light:hover, .btn-light:focus, .btn-light:active { color: #212529 !important; }
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active { color: #fff !important; }
.btn-outline-secondary:hover, .btn-outline-secondary:focus, .btn-outline-secondary:active { color: #fff !important; }
.btn-outline-success:hover, .btn-outline-success:focus, .btn-outline-success:active { color: #fff !important; }
.btn-outline-info:hover, .btn-outline-info:focus, .btn-outline-info:active { color: #fff !important; }
.btn-outline-danger:hover, .btn-outline-danger:focus, .btn-outline-danger:active { color: #fff !important; }
.btn-outline-dark:hover, .btn-outline-dark:focus, .btn-outline-dark:active { color: #fff !important; }
.btn-outline-warning:hover, .btn-outline-warning:focus, .btn-outline-warning:active { color: #212529 !important; }
.btn-outline-light:hover, .btn-outline-light:focus, .btn-outline-light:active { color: #212529 !important; }

/* Styles Messagerie Unifiée */
.message-wrapper { padding:0; margin:0; list-style:none; }
.message-wrapper li { display:flex; align-items:flex-start; margin-bottom:15px; }
.message-wrapper li.in { flex-direction:row; }
.message-wrapper li.out { flex-direction:row-reverse; }
.message-wrapper li.in .message { margin-left:10px; }
.message-wrapper li.out .message { margin-right:10px; text-align: right; }
.message-wrapper .avatar { width:42px; height:42px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.message { max-width:70%; display:flex; flex-direction:column; }
.message .infos { font-size:12px; margin:0 8px 4px 8px; color:#6c757d; }
.message .name { font-weight:600; color:#212529; }
.message .body { margin:0 8px; padding:10px 14px; border-radius:16px; background:#f1f1f1; line-height:1.4; word-break:break-word; text-align: left; }
li.out .message .body { background:#007bff; color:#fff; }

/* Styles Filtres cours (provenance : cours.php) */
.filter-container { background:#f8f9fa; border-radius:6px; padding:8px 12px; margin-bottom:12px; }
.filter-row { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.filter-row label { font-size:10px; font-weight:600; color:#6c757d; margin:0; white-space:nowrap; }
.filter-block { display:flex; flex-direction:row; align-items:center; gap:4px; }
.btn-filtre { font-size:11px; padding:2px 10px; border-radius:20px !important; }
.sel-filtre { font-size:11px; padding:2px 6px !important; height:auto !important; min-height:26px; }
.barre-info { font-size:12px; background:#e9ecef; border-radius:4px; padding:4px 10px; margin-bottom:8px; display:flex; justify-content:space-between; }

/* Styles Facture Proforma */
.proforma-header { margin-bottom: 30px; }
.proforma-title { font-size: 28px; font-weight: bold; color: #333; margin-bottom: 20px; text-align: center; }
.client-box { border: 1px solid #ddd; padding: 15px; border-radius: 5px; background: #fefefe; }
.table-proforma { width: 100%; border-collapse: collapse; margin-top: 20px; }
.table-proforma th { background: #333; color: #fff; padding: 10px; text-align: left; }
.table-proforma td { padding: 10px; border-bottom: 1px solid #eee; }
.total-row { font-weight: bold; font-size: 18px; background: #f9f9f9; }

@media print {
    .proforma-container { padding: 0; }
    .client-box { border: 1px solid #000; }
    .table-proforma th { background: #000 !important; color: #fff !important; -webkit-print-color-adjust: exact; }
    .total-row { background: #eee !important; -webkit-print-color-adjust: exact; }
}