body {
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

[data-bs-theme="dark"] body {
    background: linear-gradient(135deg, #1a1a1a 0%, #2d3436 100%);
}

.navbar {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    margin-bottom: 0 !important;
}

[data-bs-theme="dark"] .navbar {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.card {
    border: none;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: transform 0.3s ease;
}

[data-bs-theme="dark"] .card {
    background: #2d3436;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.card:hover {
    transform: translateY(-5px);
}

.card-title {
    color: #0d6efd;
    font-weight: 600;
}

.btn {
    border-radius: 10px;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.btn-sm {
    padding: 0.5rem 1rem;
}

.btn-primary {
    background: linear-gradient(45deg, #0d6efd, #0a58ca);
    border: none;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(13, 110, 253, 0.3);
}

.main-content {
    padding: 2rem 0;
}

[data-bs-theme="dark"] .text-muted {
    color: #adb5bd !important;
}

.position-relative {
    position: relative;
}

.position-absolute {
    position: absolute;
    z-index: 2;
}

.top-0 {
    top: 0;
}

.end-0 {
    right: 0;
}

.creneau-clickable {
    cursor: pointer;
    background-color: #198754; /* vert bootstrap */
    color: white;
    padding: 5px 10px;
    border-radius: 5px;
    display: inline-block;
    margin: 4px 4px;
    transition: background-color 0.3s ease;
}

.creneau-clickable:hover {
    background-color: #145c36; /* vert foncé au hover */
}

.creneau-clickable.selected {
    background-color: #0d6efd; /* bleu bootstrap sélectionné */
}

.rdv-item {
    transition: all 0.3s ease;
    background-color: var(--bs-body-bg);
}

.rdv-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

[data-bs-theme="dark"] .rdv-item {
    border-color: #404040 !important;
}

[data-bs-theme="dark"] .rdv-item:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.modal {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1055;
    overflow: hidden; /* évite les scroll internes */
}

.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
}

.rdv-list {
    position: relative;
    z-index: 1;
}

.rdv-item {
    background: var(--bs-body-bg);
}

.modal-dialog {
    margin: 1.75rem auto; /* centrer horizontalement */
    pointer-events: auto; /* assurer la bonne interactivité */
}

.modal.show {
    display: block !important; /* forcer affichage du modal */
}

.rdv-annule {
    opacity: 0.7;
    background-color: rgba(var(--bs-danger-rgb), 0.05);
}

[data-bs-theme="dark"] .rdv-annule {
    background-color: rgba(var(--bs-danger-rgb), 0.1);
}

.form-switch .form-check-input {
    cursor: pointer;
}

.form-switch .form-check-label {
    cursor: pointer;
    user-select: none;
}