/**
 * ==========================================================================
 * CUSTOM NOTIFICATIONS - Drone Reunion Theme
 * ==========================================================================
 * Version: 1.1.0
 * Description: Styles Toastify, spinner, dialogs de confirmation
 *              cohérents avec le thème Drone Reunion (--dr-* variables)
 *
 * Sections:
 *   1. Toastify base overrides
 *   2. Variantes par type (success, danger, warning, info)
 *   3. Layout contenu toast (icon + texte)
 *   4. Spinner
 *   5. Dialog confirm
 *   6. Modales générales
 * ==========================================================================
 */


/* ==========================================================================
   1. TOASTIFY BASE OVERRIDES
   ========================================================================== */

.toastify.dr-toast {
    font-family: var(--dr-font-family);
    font-size: var(--dr-font-size-sm);
    font-weight: 500;
    border-radius: var(--dr-radius-md);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08);
    padding: 12px 16px;
    min-width: 200px;
    max-width: 400px;
    z-index: 2147483647;
    cursor: default;
    background: none;
    border: 1px solid transparent;
}

/* Override Toastify default gradient background */
.toastify.dr-toast.on {
    opacity: 1;
}

/* Close button override */
.toastify.dr-toast .toast-close {
    color: inherit;
    opacity: 0.6;
    font-size: 14px;
    padding: 0 0 0 10px;
    line-height: 1;
}

.toastify.dr-toast .toast-close:hover {
    opacity: 1;
}


/* ==========================================================================
   2. VARIANTES PAR TYPE
   ========================================================================== */

/* --- Success (vert) --- */
.toastify.dr-toast.dr-toast-success {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}

.dr-toast-success .dr-toast-icon {
    color: #059669;
}

/* --- Danger / Error (rouge) --- */
.toastify.dr-toast.dr-toast-danger {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

.dr-toast-danger .dr-toast-icon {
    color: #dc2626;
}

/* --- Warning (ambre) --- */
.toastify.dr-toast.dr-toast-warning {
    background: #fffbeb;
    border-color: #fde68a;
    color: #92400e;
}

.dr-toast-warning .dr-toast-icon {
    color: #d97706;
}

/* --- Info (bleu, utilise --dr-primary-light) --- */
.toastify.dr-toast.dr-toast-info {
    background: var(--dr-primary-light, #dbeafe);
    border-color: #93c5fd;
    color: #1e40af;
}

.dr-toast-info .dr-toast-icon {
    color: var(--dr-primary, #2563EB);
}


/* ==========================================================================
   3. LAYOUT CONTENU TOAST (icon + texte)
   ========================================================================== */

.toastify.dr-toast {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dr-toast-icon {
    flex-shrink: 0;
    font-size: 16px;
    line-height: 1;
    display: flex;
    align-items: center;
}

.dr-toast-text {
    flex: 1;
    line-height: 1.4;
    word-break: break-word;
}


/* ==========================================================================
   4. SPINNER
   ========================================================================== */

/* Spinner toast — fond neutre */
.toastify.dr-toast.dr-toast-spinner {
    background: var(--dr-bg-card, #ffffff);
    border-color: var(--dr-border, #e5e7eb);
    color: var(--dr-text-secondary, #374151);
    min-width: auto;
    padding: 10px 16px;
}

.dr-toast-spinner .dr-toast-icon {
    color: var(--dr-primary, #2563EB);
    font-size: 18px;
}

/* Smooth spinner animation */
.dr-toast-spinner .fa-spin,
.dr-loading-spinner .fa-spin {
    animation: dr-spin 0.8s linear infinite;
}

@keyframes dr-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}


/* ==========================================================================
   4b. IN-PAGE LOADING SPINNERS (Split right-panel, Kanban card)
   ========================================================================== */

/**
 * Shared themed spinner element — used inside panels/cards
 * Replaces native EspoCRM fa-spinner with Drone Reunion branded style
 */
.dr-loading-spinner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--dr-primary, #2563EB);
    font-size: 22px;
    line-height: 1;
}

/**
 * Loading panel — full-area centered spinner
 * Used in Split view right-panel when a record is loading
 */
.dr-loading-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    padding: 40px 20px;
}

/**
 * Loading inside Kanban expanded detail
 * Smaller, left-aligned within the card body
 */
.kanban-detail-expanded > .dr-loading-spinner {
    display: flex;
    justify-content: center;
    padding: 12px 0;
    font-size: 18px;
}

/**
 * Fallback: style any remaining native loading-panel spinners
 * (core templates or third-party views we don't control)
 */
.loading-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    padding: 40px 20px;
}

.loading-panel .fa-spinner {
    color: var(--dr-primary, #2563EB) !important;
    font-size: 22px;
    animation: dr-spin 0.8s linear infinite;
}

/**
 * Override any native text-soft / text-muted spinner with DR primary
 */
.text-soft.fa-spinner,
.text-muted.fa-spinner,
span.text-soft .fa-spinner {
    color: var(--dr-primary, #2563EB) !important;
}


/* ==========================================================================
   6. MODALES GENERALES — cohérence thème
   ========================================================================== */

.modal .modal-content {
    border: none;
    border-radius: var(--dr-radius-lg, 12px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.modal .modal-header {
    background-color: var(--dr-bg-card, #ffffff);
    border-bottom: 1px solid var(--dr-border-light, #f3f4f6);
    padding: 14px 20px;
}

.modal .modal-header .modal-title,
.modal .modal-header h4 {
    font-family: var(--dr-font-family);
    font-size: var(--dr-font-size-base, 16px);
    font-weight: 600;
    color: var(--dr-text-primary, #111827);
}

.modal .modal-header .close {
    color: var(--dr-text-muted, #6b7280);
    opacity: 0.6;
    text-shadow: none;
}

.modal .modal-header .close:hover {
    opacity: 1;
    color: var(--dr-text-primary, #111827);
}

.modal .modal-body {
    font-family: var(--dr-font-family);
    font-size: var(--dr-font-size-sm, 14px);
    color: var(--dr-text-secondary, #374151);
}

.modal .modal-footer {
    background-color: #f9fafb;
    border-top: 1px solid var(--dr-border-light, #f3f4f6);
    padding: 12px 20px;
}

.modal .modal-footer .btn {
    font-family: var(--dr-font-family);
    font-size: var(--dr-font-size-sm, 14px);
    font-weight: 500;
    border-radius: var(--dr-radius-md, 8px) !important;
    padding: 8px 16px !important;
    transition: all var(--dr-transition, 0.2s ease);
}

.modal .modal-footer .btn-default {
    background-color: var(--dr-bg-card, #ffffff);
    border: 1px solid var(--dr-border, #e5e7eb);
    color: var(--dr-text-secondary, #374151);
}

.modal .modal-footer .btn-default:hover {
    background-color: var(--dr-sidebar-item-hover-bg, #f3f4f6);
}


/* ==========================================================================
   SAFETY NET — Hide native EspoCRM notification
   ========================================================================== */

#notification {
    display: none !important;
}


/* ==========================================================================
   FIN DU FICHIER - v1.1.0
   ========================================================================== */
