/* Thème visuel Aseptix — inspiré de la palette et de la typographie de parcasterix.fr
   (bandeau sombre, accents orange/vert, cartes arrondies, police Poppins). */

:root {
    --aseptix-navy: #0e1c30;
    --aseptix-navy-light: #182b46;
    --aseptix-cream: #f7f3ea;
    --aseptix-orange: #e8622c;
    --aseptix-orange-dark: #cf5220;
    --aseptix-green: #2f7d32;
    --aseptix-green-dark: #246326;
    --aseptix-red: #c0392b;
}

body {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background-color: var(--aseptix-cream);
    color: #26221b;
}

/* Page de connexion : carte centrée verticalement, sans nav. */
.auth-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: 700;
    color: var(--aseptix-navy);
}

/* Bandeau de navigation */
.navbar.bg-dark {
    background-color: var(--aseptix-navy) !important;
    box-shadow: 0 2px 10px rgba(14, 28, 48, 0.25);
}

.navbar-brand {
    font-weight: 700;
    letter-spacing: 0.03em;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}

.navbar-logo {
    height: 36px;
    width: auto;
    border-radius: 0.4rem;
}

/* Sépare visuellement l'administration (lieux / points de contrôle, peu utilisée)
   des actions courantes (contrôles, rapport, nouveau contrôle). */
.nav-admin-group {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}
@media (min-width: 992px) {
    .nav-admin-group {
        margin-top: 0;
        padding-top: 0;
        border-top: none;
        margin-left: 1rem;
        padding-left: 1rem;
        border-left: 1px solid rgba(255, 255, 255, 0.15);
    }
}

/* Identifiant connecté + déconnexion : même séparation que le bloc admin, avec un peu d'air
   entre le nom et le bouton quand ils sont empilés sur mobile. */
.nav-user-group {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    gap: 0.35rem;
}
@media (min-width: 992px) {
    .nav-user-group {
        margin-top: 0;
        padding-top: 0;
        border-top: none;
        gap: 0;
    }
}

/* Cartes */
.card {
    border: none;
    border-radius: 1.1rem;
    box-shadow: 0 2px 12px rgba(14, 28, 48, 0.08);
}

/* Boutons */
.btn {
    font-weight: 600;
    border-radius: 999px;
}

.btn-lg {
    border-radius: 999px;
}

.btn-primary {
    background-color: var(--aseptix-orange);
    border-color: var(--aseptix-orange);
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--aseptix-orange-dark) !important;
    border-color: var(--aseptix-orange-dark) !important;
}

.btn-outline-primary {
    color: var(--aseptix-orange);
    border-color: var(--aseptix-orange);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    background-color: var(--aseptix-orange) !important;
    border-color: var(--aseptix-orange) !important;
}

.btn-outline-success {
    color: var(--aseptix-green);
    border-color: var(--aseptix-green);
}
.btn-check:checked + .btn-outline-success,
.btn-outline-success:hover,
.btn-outline-success:focus {
    background-color: var(--aseptix-green) !important;
    border-color: var(--aseptix-green) !important;
}

.btn-check:checked + .btn-outline-danger,
.btn-outline-danger:hover,
.btn-outline-danger:focus {
    background-color: var(--aseptix-red) !important;
    border-color: var(--aseptix-red) !important;
}

.btn-outline-secondary {
    color: var(--aseptix-navy);
    border-color: #c9c2b3;
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    background-color: var(--aseptix-navy) !important;
    border-color: var(--aseptix-navy) !important;
}

.btn-danger {
    background-color: var(--aseptix-red);
    border-color: var(--aseptix-red);
}
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active {
    background-color: #a3352a !important;
    border-color: #a3352a !important;
}

/* Champs de formulaire */
.form-control,
.form-select {
    border-radius: 0.75rem;
    border-color: #e1dbcb;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--aseptix-orange);
    box-shadow: 0 0 0 0.2rem rgba(232, 98, 44, 0.15);
}

/* Placeholder nettement plus clair que le texte saisi, pour repérer d'un coup d'oeil
   les champs encore vides (ex: commentaires optionnels) parmi les champs remplis. */
.form-control::placeholder {
    color: #b6ae9a;
    opacity: 1;
    font-style: italic;
}

/* Popup de confirmation (remplace les confirm() natifs du navigateur) */
.modal-content {
    border: none;
    border-radius: 1.1rem;
    box-shadow: 0 8px 30px rgba(14, 28, 48, 0.25);
}

/* Alertes */
.alert-success {
    background-color: #eaf5ea;
    color: var(--aseptix-green-dark);
    border: none;
}
.alert-danger {
    background-color: #fbeae7;
    color: var(--aseptix-red);
    border: none;
}
.alert-warning {
    background-color: #fdf1e3;
    color: #8a5a1f;
    border: none;
}

/* Onglets d'administration */
.nav-pills .nav-link {
    border-radius: 999px;
    font-weight: 600;
    color: var(--aseptix-navy);
}
.nav-pills .nav-link.active {
    background-color: var(--aseptix-orange);
}

/* Badges de statut */
.badge.bg-success {
    background-color: var(--aseptix-green) !important;
}
.badge.bg-danger {
    background-color: var(--aseptix-red) !important;
}
