/* Track MCO Normalized CSS */

.modern-card {
    border: none;
    border-radius: 15px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    overflow: hidden;
    background: #fff;
}

.modern-card-header {
    background: linear-gradient(135deg, #007bff 0%, #0056b3 100%);
    border: none;
    padding: 1.5rem;
    color: white;
}

.modern-card-header h4 {
    margin: 0;
    font-weight: 700;
}

.details-block {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    background: #fff;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.details-block-title {
    background: linear-gradient(135deg, #6c757d 0%, #495057 100%);
    color: white;
    padding: 12px 16px;
    font-weight: 600;
    font-size: 1.1em;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.details-bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #f8f9fa;
}

.details-bullet-item {
    padding: 12px 16px;
    border-bottom: 1px solid #e9ecef;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 0.95em;
    line-height: 1.4;
}

.details-bullet-item:last-child {
    border-bottom: none;
}

.details-bullet-icon {
    flex-shrink: 0;
    width: 20px;
    text-align: center;
    margin-top: 1px;
}

.details-bullet-label {
    font-weight: 600;
    color: #495057;
    min-width: fit-content;
    flex-shrink: 0;
}

.details-bullet-value {
    color: #6c757d;
    word-break: break-word;
}

/* Timeline specific styles */
.timeline-container .details-block:last-child {
	margin-bottom: 0;
}

.card.border-left-primary {
	border-left: 0.25rem solid #4e73df !important;
}

.card.border-left-success {
	border-left: 0.25rem solid #1cc88a !important;
}

.badge {
	font-size: 0.875rem;
}

.alert-success {
	background-color: #d1edff;
	border-color: #bee5eb;
	color: #0c5460;
}

/* Form Controls & Validation */
/* Style pour les champs requis : une bordure gauche rouge pour indiquer l'obligation */
.form-control:required {
    border-left: 4px solid #dc3545 !important; /* Rouge pour "requis" */
}

/* Une fois le champ requis rempli et valide, la bordure devient verte */
.form-control:required:valid {
    border-left-color: #28a745 !important; /* Vert pour "valide" */
    border-color: #28a745;
    background-color: #f2fff2;
}

/* Style pour les champs désactivés ou en lecture seule */
.form-control[readonly],
.form-control[disabled] {
    background-color: #e9ecef;
    cursor: not-allowed;
    opacity: 0.7;
    border-style: dashed;
    border-left-color: #6c757d !important; /* Gris pour indiquer "désactivé mais requis" */
}

/* Amélioration du design des switchs (checkboxes) */
.form-switch .form-check-input {
    width: 3.5em;
    height: 1.75em;
    cursor: pointer;
    background-color: #dc3545; /* Rouge pour "Non" */
    border-color: #dc3545;
    transition: background-position .15s ease-in-out;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(255,255,255,1.0)'/%3e%3c/svg%3e");
}

.form-switch .form-check-input:checked {
    background-color: #198754; /* Vert pour "Oui" */
    border-color: #198754;
    background-position: 100% 0;
}

/* Styles responsives pour mobile */
@media (max-width: 768px) {
    .form-switch .form-check-input {
        width: 2.8em;
        height: 1.4em;
    }
}

/* Custom File Upload Button */
.custom-file-upload .btn.btn-outline-primary:hover,
.custom-file-upload.dragover .btn.btn-outline-primary {
    background: #e3f2fd;
    border-color: #1976d2;
}
.custom-file-upload.dragover-animate .btn.btn-outline-primary {
    box-shadow: 0 0 12px 2px #1976d2aa;
}
