@charset "utf-8";

/* Scrollbar */
::-webkit-scrollbar {width: 8px;}
::-webkit-scrollbar-track {background-color: #F3F3F3;}
::-webkit-scrollbar-button {display:none;}
::-webkit-scrollbar-thumb {background-color: rgba(186, 186, 192, 0.7); border-radius: 8px; border: 1px solid #B9B9B9; transition: background-color 0.3s, opacity 0.3s, transform 0.1s, box-shadow 0.1s;}
::-webkit-scrollbar-thumb:hover {background-color: rgba(160, 160, 165, 0.5); opacity: 0.5; transform: scale(1.05);}
::-webkit-scrollbar-thumb:active {background-color: #8a8a8f; opacity: 1; transform: scale(0.95);} 

/* Structure */
html, body {height: 100%; margin: 0; padding: 0; display: flex; flex-direction: column;}
body {display: flex; flex-direction: column; min-height: 100vh;}

.app-shell {display: flex; flex-grow: 1; min-height: 0; overflow: hidden;}
.app-content {flex-grow: 1; overflow-y: auto; transition: margin-left 0.25s ease;}

/* Sidebar */
.sidebar {max-width: 300px; flex-shrink: 0; background: #f8f9fb; border-right: 1px solid #e6e9ef; transition: width 0.25s ease; box-shadow: 2px 0 8px rgba(16,24,40,.03); position: relative; height: 100%; overflow-y: auto; overflow-x: hidden;}
.sidebar.collapsed {width: 60px; min-width: 70px;}

/* Sections du menu */
.sidebar-section {font-size: 14px; letter-spacing: 1px; font-weight: 600; color: #7b8794; margin-top: 22px; margin-bottom: 8px; padding-left: 16px; transition: opacity 0.2s ease, visibility 0.2s ease; white-space: nowrap;}
.sidebar-section:first-of-type {margin-top: 0.5rem !important;}
.sidebar.collapsed .sidebar-section {margin-top: 22px; margin-bottom: 8px; padding-left: 16px; white-space: nowrap; overflow: hidden;}
.sidebar.collapsed .sidebar-section::before {content: attr(data-icon); font-size: 14px; display: inline-block; width: 100%; visibility: visible; opacity: 1;}

/* Navigation */
.sidebar .nav-link {display: flex; align-items: center; gap: 12px; color: #344054; border-radius: 8px; padding: 9px 14px; font-size: 14px; font-weight: 600; transition: all 0.18s ease; position: relative; white-space: nowrap;}
.sidebar .nav-link .nav-icon {width: 20px; text-align: center; color: #98a2b3; flex-shrink: 0;}
.sidebar .nav-link .nav-label {white-space: nowrap; transition: opacity 0.2s ease;}
.sidebar .nav-link:hover {background: #eef2ff; color: #1d4ed8;}
.sidebar .nav-link:hover .nav-icon {color: #2563eb;}
.sidebar .nav-link.active {background: #e0e7ff; color: #1e40af;}
.sidebar .nav-link.active::before {content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; background: #2563eb; border-radius: 4px;}

/* Mode collapsed */
.sidebar.collapsed .nav-label, .sidebar.collapsed .badge {opacity: 0; width: 0; overflow: hidden;}
.sidebar.collapsed .nav-link {gap: 0px;}
.sidebar.collapsed .nav-link .nav-icon {margin: 0;}
.sidebar.collapsed .nav-link.active::before {left: 0;}

/* Transition */
.sidebar {transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);}

/* Reste de ton CSS inchangé à partir d'ici */
.bg-primary.bg-opacity-5 {background-color: rgba(13, 110, 253, 0.05) !important;}
.tooltip {pointer-events:none;}
.SecurityMailerJson {background:#f8f9fa;padding:10px;border-radius:4px}
.SecurityMailerFooter {font-size:12px;color:#666}
.w160 {width:160px}
.w90 {width:90px}
.w120 {width:120px}
.w220 {width:220px}
.w240 {width:240px}
.w480 {max-width:480px}
.min80vh {min-height:80vh}
.left9999 {position:absolute;left:-9999px;}
.mv-toast-container {z-index:1080}
.mv-audit-container {position: fixed; top: 20px; right: 20px; z-index: 9999; width: 320px;}
.mv-audit-toast {background: #212529; color: #fff; padding: 0.75rem; border-radius: 0.5rem; margin-bottom: 0.5rem; font-size: 0.85rem; opacity: 0; transition: opacity 0.3s ease;}
.mv-audit-toast.show {opacity: 1;}
.error-box {display: none; background: #1e1e1e; color: #e6e6e6; border-radius: 8px; padding: 16px; margin-top: 10px; font-family: monospace; font-size: 13px; position: relative; max-height: 350px; overflow-y: auto; border: 1px solid #333;}
.error-box pre {white-space: pre-wrap; margin: 0;}
.error-toggle {text-decoration: none; font-weight: bold; color: #d9534f; cursor: pointer;}
.copy-btn {position: absolute; top: 10px; right: 10px; background: #444; color: white; border: none; padding: 6px 10px; border-radius: 4px; cursor: pointer;}
.copy-success {background: #2e7d32;}
.calendar-day-table {min-width: auto !important; width: 100% !important; table-layout: fixed;}
.calendar-day-table th, .calendar-day-table td {font-size: 0.9rem; padding: 4px !important; white-space: normal;}
.calendar-day-container .card-body {overflow-x: hidden !important;}
@media (max-width: 1400px) {
.calendar-day-table th, .calendar-day-table td {font-size: 0.8rem; padding: 2px !important;}
.calendar-day-table th:not(:first-child) span {display: none;}
.calendar-day-table th:not(:first-child):before {content: attr(data-short);}
}
.calendar-cell.out-of-hours {cursor: not-allowed;}
.calendar-cell.out-of-hours:hover {background: repeating-linear-gradient(45deg, #f8f9fa, #f8f9fa 10px, #e9ecef 10px, #e9ecef 20px) !important; opacity: 0.8;}
.calendar-empty-indicator {min-height: 100%;}
.calendar-empty-indicator:hover {background-color: rgba(13, 110, 253, 0.05); cursor: pointer;}
.reserved {background-color: #0d6efd20 !important; border-left: 3px solid #0d6efd !important; color: #0d6efd !important;}
.executed {background-color: #ffc10720 !important; border-left: 3px solid #ffc107 !important; color: #ffc107 !important;}
.validated {background-color: #19875420 !important; border-left: 3px solid #198754 !important; color: #198754 !important;}
.cancelled {background-color: #6c757d20 !important; border-left: 3px solid #6c757d !important; color: #6c757d !important;}
.available-slot {background-color: #0d6efd20 !important; color: #0d6efd !important; border: 1px solid #0d6efd40 !important;}
.out-of-hours-badge {background: repeating-linear-gradient(45deg, #f8f9fa, #f8f9fa 10px, #e9ecef 10px, #e9ecef 20px) !important; color: #6c757d !important; border: 1px solid #dee2e6 !important;}
.calendar-event {border-radius: 8px; transition: all 0.2s ease;}
.calendar-event:hover {transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0,0,0,0.1);}
.calendar-event-cancelled {opacity: 0.6; text-decoration: line-through;}
.calendar-month-event {transition: transform 0.2s ease;}
.calendar-month-event:hover {transform: translateX(2px); background-color: #0d6efd20 !important;}
.calendar-day-table td, .calendar-day-table th, .calendar-week-table td, .calendar-week-table th {padding: 12px 8px; vertical-align: middle;}
.calendar-sunday, .calendar-sunday-header {display: none;}
.medical-console {background: #f8f9fa; border: 1px solid #e3e6ea; border-radius: 8px; padding: 12px; max-height: 320px; overflow-y: auto;}
.medical-entry {padding: 8px 10px; border-left: 4px solid #0d6efd; background: #ffffff; border-radius: 6px; margin-bottom: 8px; font-size: 0.9rem; line-height: 1.4;}
.medical-entry:nth-child(even) {background: #f1f5f9;}



.triangle-down {width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid #0d6efd;}
