/* ============================================================
   PRAXIS - Styles Personnalisés (Fidèles à AdminLTE 3.2)
   ============================================================ */

/* ---- Typographie globale : Tw Cen MT ---- */
body,
.content-wrapper,
.main-header,
.main-sidebar,
.sidebar,
.card,
.table,
.modal,
h1, h2, h3, h4, h5, h6,
input, select, textarea, button {
    font-family: "Tw Cen MT", "Twentieth Century", "Tw Cen", Arial, Helvetica, sans-serif;
}

/* Préservation stricte de la police Font Awesome pour toutes les icônes */
.fa, .fas, .far, .fal, .fad, .fab,
i.fa, i.fas, i.far, i.fab,
[class^="fa-"], [class*=" fa-"],
.nav-icon.fa, .nav-icon.fas, .nav-icon.far, .nav-icon.fab {
    font-family: "Font Awesome 5 Free", "FontAwesome" !important;
}
.fab {
    font-family: "Font Awesome 5 Brands" !important;
}

p {
    margin: 0;
    padding: 0;
    line-height: 1.15;
}

/* Ligne sélectionnée dans les tableaux de sélection */
.table-selectable tbody tr {
    cursor: pointer;
}

.table-selectable tbody tr:hover {
    background-color: #f4f6f9;
}

.table-selectable tbody tr.table-active-row {
    background-color: #d1ecf1 !important;
    font-weight: bold;
}

/* Espacement et utilitaires sobres */
.border-left-primary {
    border-left: 4px solid #007bff !important;
}

.border-left-success {
    border-left: 4px solid #28a745 !important;
}

.border-left-info {
    border-left: 4px solid #17a2b8 !important;
}

/* ============================================================
   Preloader AdminLTE & Spinner Logo UNILO
   ============================================================ */
.logo-spinner-container {
    position: relative;
    width: 120px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-spinner-ring {
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 4px solid #e9ecef;
    border-top: 4px solid #0056b3;
    border-right: 4px solid #007bff;
    animation: praxisSpin 1s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
}

.logo-spinner-ring-inner {
    position: absolute;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 2px dashed #007bff;
    opacity: 0.5;
    animation: praxisSpinReverse 2.5s linear infinite;
}

.logo-spinner-img {
    width: 65px;
    height: 65px;
    object-fit: contain;
    z-index: 2;
    animation: praxisPulse 1.8s ease-in-out infinite;
}

@keyframes praxisSpin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes praxisSpinReverse {
    0% { transform: rotate(360deg); }
    100% { transform: rotate(0deg); }
}

@keyframes praxisPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.06); }
}
