/* ==========================================================================
   SWEETALERT2 CUSTOM STYLES (PHOTOBOOK THEME)
   Based on assets/css/photobook-styles.css
   ========================================================================== */

/* 1. Contenedor Principal (Popup) */
.swal2-popup {
    font-family: var(--pb-font-family, "Roboto", sans-serif) !important;
    border-radius: var(--pb-border-radius-xl, 12px) !important;
    padding: var(--pb-spacing-lg, 24px) var(--pb-spacing-lg, 24px) var(--pb-spacing-xl, 32px) var(--pb-spacing-lg, 24px) !important;
    background: var(--pb-color-bg, #ffffff) !important;
    box-shadow: var(--pb-shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1)) !important;
    border: 1px solid var(--pb-color-border, #e2e8f0) !important;

    /* Responsividad: 85% en escritorio/tablet, 100% en móvil */
    width: 46% !important;
    max-width: 50% !important;
}

@media (max-width: 768px) {
    .swal2-popup {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
}

/* 2. Títulos y Texto */
.swal2-title {
    color: var(--pb-color-text, #373435) !important;
    font-size: var(--pb-font-size-xl, 1.5rem) !important;
    font-weight: var(--pb-font-weight-bold, 700) !important;
    margin-bottom: var(--pb-spacing-sm, 8px) !important;
}

.swal2-html-container {
    color: var(--pb-color-text-muted, #646970) !important;
    font-size: var(--pb-font-size-base, 1rem) !important;
    line-height: 1.5 !important;
    margin: var(--pb-spacing-md, 16px) 1.6em !important;
    white-space: pre-line !important;
}

/* 3. Iconos (Alineados con la paleta) */
.swal2-icon {
    border-width: 3px !important;
}

.swal2-icon.swal2-success {
    border-color: var(--pb-color-success, #28a745) !important;
    color: var(--pb-color-success, #28a745) !important;
}

.swal2-icon.swal2-warning {
    border-color: var(--pb-color-warning, #ffc107) !important;
    color: var(--pb-color-warning, #ffc107) !important;
}

.swal2-icon.swal2-error {
    border-color: var(--pb-color-danger, #dc3545) !important;
    color: var(--pb-color-danger, #dc3545) !important;
}

.swal2-icon.swal2-info {
    border-color: var(--pb-color-info, #17a2b8) !important;
    color: var(--pb-color-info, #17a2b8) !important;
}

/* 4. Botones (Heredando de .pb-btn) */
.swal2-actions {
    gap: var(--pb-spacing-md, 16px) !important;
    margin-top: var(--pb-spacing-lg, 24px) !important;
    width: 100% !important;
    justify-content: center !important;
}

/* Botón de Confirmación (Primary) -> Like .pb-btn-primary */
.swal2-confirm {
    background-color: var(--pb-color-primary, #DEB900) !important;
    color: var(--pb-color-text, #373435) !important;
    border: 1px solid var(--pb-color-primary, #DEB900) !important;
    border-radius: var(--pb-border-radius, 5px) !important;
    padding: 12px 24px !important;
    font-size: var(--pb-font-size-base, 1rem) !important;
    font-weight: var(--pb-font-weight-semibold, 600) !important;
    box-shadow: none !important;
    transition: all var(--pb-transition-fast, 0.2s ease) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    text-decoration: none !important;
}

.swal2-confirm:hover {
    background-color: var(--pb-color-primary-dark, #C9A800) !important;
    border-color: var(--pb-color-primary-dark, #C9A800) !important;
    transform: translateY(-1px) !important;
    background-image: none !important;
}

.swal2-confirm:focus {
    box-shadow: 0 0 0 3px rgba(222, 185, 0, 0.4) !important;
}

/* Botón de Cancelar (Secondary) -> Like .pb-btn-secondary */
.swal2-cancel {
    background-color: var(--pb-color-bg-light, #f8f9fa) !important;
    color: var(--pb-color-text, #373435) !important;
    border: 1px solid var(--pb-color-border, #e2e8f0) !important;
    border-radius: var(--pb-border-radius, 5px) !important;
    padding: 12px 24px !important;
    font-size: var(--pb-font-size-base, 1rem) !important;
    font-weight: var(--pb-font-weight-medium, 500) !important;
    box-shadow: none !important;
    transition: all var(--pb-transition-fast, 0.2s ease) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    text-decoration: none !important;
}

.swal2-cancel:hover {
    background-color: #e2e8f0 !important;
    border-color: #cbd5e0 !important;
    transform: translateY(-1px) !important;
    background-image: none !important;
}

/* Botón de Denegación (Danger) -> Like .pb-btn-danger but filled */
.swal2-deny {
    background-color: var(--pb-color-danger, #dc3545) !important;
    color: #fff !important;
    border: 1px solid var(--pb-color-danger, #dc3545) !important;
    border-radius: var(--pb-border-radius, 5px) !important;
    font-weight: var(--pb-font-weight-medium, 500) !important;
    padding: 12px 24px !important;
}

/* ==========================================================================
   ALERTAS DE PROYECTOS INCOMPLETOS - DISEÑO MODERNO
   ========================================================================== */

/* Header compacto con icono lateral */
.pb-swal-compact .swal2-icon {
    position: absolute !important;
    top: 20px !important;
    left: 20px !important;
    margin: 0 !important;
    width: 50px !important;
    height: 50px !important;
}

.pb-swal-compact .swal2-title {
    margin-left: 70px !important;
    text-align: left !important;
    margin-top: 10px !important;
    margin-bottom: 5px !important;
}

.pb-swal-compact .swal2-html-container {
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
}

/* Lista de proyectos incompletos con scroll */
.pb-incomplete-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 15px 0 !important;
    max-height: 300px !important;
    overflow-y: auto !important;
    border-radius: var(--pb-border-radius, 5px) !important;
}

/* Scroll personalizado */
.pb-incomplete-list::-webkit-scrollbar {
    width: 8px;
}

.pb-incomplete-list::-webkit-scrollbar-track {
    background: var(--pb-color-bg-light, #f8f9fa);
    border-radius: 4px;
}

.pb-incomplete-list::-webkit-scrollbar-thumb {
    background: var(--pb-color-border, #e2e8f0);
    border-radius: 4px;
}

.pb-incomplete-list::-webkit-scrollbar-thumb:hover {
    background: #cbd5e0;
}

/* Tarjeta individual de proyecto incompleto */
.pb-incomplete-item {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px !important;
    margin-bottom: 10px !important;
    background: var(--pb-color-bg-light, #f8f9fa) !important;
    border: 1px solid var(--pb-color-border, #e2e8f0) !important;
    border-radius: var(--pb-border-radius, 5px) !important;
    transition: all 0.2s ease !important;
}

/* .pb-incomplete-item:hover {
    background: #ffffff !important;
    border-color: var(--pb-color-primary, #DEB900) !important;
    transform: translateX(2px) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
} */

.pb-incomplete-item:last-child {
    margin-bottom: 0 !important;
}

/* Thumbnail del proyecto */
.pb-incomplete-thumb {
    flex-shrink: 0 !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: var(--pb-border-radius, 5px) !important;
    object-fit: cover !important;
    border: 1px solid var(--pb-color-border, #e2e8f0) !important;
}

/* Información del proyecto */
.pb-incomplete-info {
    flex: 1 !important;
    min-width: 0 !important;
}

.pb-incomplete-name {
    font-weight: var(--pb-font-weight-semibold, 600) !important;
    color: var(--pb-color-text, #373435) !important;
    margin: 0 0 4px 0 !important;
    font-size: var(--pb-font-size-base, 1rem) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.pb-incomplete-type {
    font-size: var(--pb-font-size-sm, 0.875rem) !important;
    color: var(--pb-color-text-muted, #646970) !important;
    margin: 0 !important;
}

/* Badge de estado (Faltan X fotos) */
.pb-incomplete-badge {
    flex-shrink: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 6px 12px !important;
    border-radius: var(--pb-border-radius-pill, 50px) !important;
    font-size: var(--pb-font-size-xs, 0.75rem) !important;
    font-weight: var(--pb-font-weight-bold, 700) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
}

/* Badge crítico (muchas fotos faltantes) */
.pb-badge-critical {
    background-color: var(--pb-color-danger-bg, #f8d7da) !important;
    color: #721c24 !important;
    border: 1px solid var(--pb-color-danger, #dc3545) !important;
}

/* Badge warning (pocas fotos faltantes) */
.pb-badge-warning {
    background-color: var(--pb-color-warning-bg, #fff3cd) !important;
    color: var(--pb-color-warning-text, #856404) !important;
    border: 1px solid var(--pb-color-warning, #ffc107) !important;
}

/* Badge info (proyecto no encontrado) */
.pb-badge-info {
    background-color: var(--pb-color-info-bg, #d1ecf1) !important;
    color: #0c5460 !important;
    border: 1px solid var(--pb-color-info, #17a2b8) !important;
}

/* Texto descriptivo antes/después de la lista */
.pb-incomplete-description {
    text-align: left !important;
    margin: 10px 0 !important;
    font-size: var(--pb-font-size-base, 1rem) !important;
    color: var(--pb-color-text-muted, #646970) !important;
    line-height: 1.5 !important;
}

/* ==========================================================================
   RESPONSIVE - MOBILE
   ========================================================================== */

@media (max-width: 768px) {

    /* Ajustar header compacto en móvil */
    .pb-swal-compact .swal2-icon {
        width: 40px !important;
        height: 40px !important;
        top: 15px !important;
        left: 15px !important;
    }

    .pb-swal-compact .swal2-title {
        margin-left: 60px !important;
        font-size: var(--pb-font-size-lg, 1.3rem) !important;
    }

    /* Reducir altura máxima de lista en móvil */
    .pb-incomplete-list {
        max-height: 250px !important;
    }

    /* Ajustar tarjetas en móvil */
    .pb-incomplete-item {
        gap: 10px !important;
        padding: 10px !important;
    }

    .pb-incomplete-thumb {
        width: 40px !important;
        height: 40px !important;
    }

    .pb-incomplete-name {
        font-size: var(--pb-font-size-sm, 0.875rem) !important;
    }

    .pb-incomplete-type {
        font-size: var(--pb-font-size-xs, 0.75rem) !important;
    }

    .pb-incomplete-badge {
        padding: 4px 8px !important;
        font-size: 0.65rem !important;
    }

    /* Asegurar que los botones sean tocables */
    .swal2-actions button {
        min-height: 44px !important;
        min-width: 100px !important;
    }
}

/* ==========================================================================
   TOAST NOTIFICATIONS - TAMAÑO REDUCIDO
   ========================================================================== */

/* Popup del Toast más compacto */
.photobook-toast-popup {
    padding: 12px 16px 20px 16px !important;
    width: fit-content !important;
    min-width: 250px !important;
    max-width: 500px !important;
}

.swal2-toast-shown .swal2-container {
    width: auto !important;
}

/* Título del Toast con fuente de 16px */
.photobook-toast-title {
    font-size: var(--pb-font-size-base) !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    font-weight: 500 !important;
    width: 100% !important;
    max-width: 100% !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

/* Ícono del Toast más pequeño */
.photobook-toast-icon {
    width: 32px !important;
    height: 32px !important;
    margin: 0 8px 0 0 !important;
    font-size: var(--pb-font-size-lg) !important;
}

/* Ajustar líneas del ícono */
.photobook-toast-icon .swal2-icon-content {
    font-size: var(--pb-font-size-lg) !important;
}

/* Reducir border del ícono */
.photobook-toast-icon {
    border-width: 2px !important;
}

/* ==========================================================================
   MANUAL SWAP DIALOG - ESTILOS ULTRA COMPACTOS
   ========================================================================== */

/* Popup compacto para diálogo de cambio de posición */
.pb-swal-popup {
    padding: var(--pb-spacing-lg, 24px) !important;
}

/* Título con margen mínimo */
.pb-swal-popup .swal2-title {
    margin-bottom: 4px !important;
}

/* Contenedor HTML ultra compacto (sin márgenes) */
.pb-swal-popup .swal2-html-container {
    margin: 0 !important;
    padding: 0 !important;
}

/* Input del diálogo ultra compacto */
.pb-swal-popup .swal2-input {
    margin: 4px auto 0 auto !important;
    padding: 10px 15px !important;
    font-size: var(--pb-font-size-base) !important;
    height: auto !important;
    line-height: 1.4 !important;
    width: 280px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Reducir espaciado entre input y botones */
.pb-swal-popup .swal2-actions {
    margin-top: 10px !important;
    gap: var(--pb-spacing-md, 16px) !important;
}

/* Botones más compactos */
.pb-swal-popup .swal2-confirm,
.pb-swal-popup .swal2-cancel {
    padding: 10px 24px !important;
    font-size: var(--pb-font-size-sm) !important;
    min-width: 100px !important;
}

/* Párrafos dentro del diálogo (sin margen superior, espaciado mínimo) */
.pb-swal-popup p {
    margin: 0 !important;
    line-height: 1.3 !important;
}

/* Párrafo específico de posición (con margin-top negativo) */
.pb-swal-popup .pb-swal-position-text {
    margin-top: -17px !important;
    margin-bottom: 1px !important;
}

/* Mensaje de validación con fuente correcta */
.pb-swal-popup .swal2-validation-message {
    font-size: var(--pb-font-size-base) !important;
}

/* ==========================================================================
   MODAL: FOTOS PARCIALES (MENOS FOTOS DE LAS REQUERIDAS)
   ========================================================================== */

.pb-partial-popup .swal2-html-container {
    padding: var(--pb-spacing-sm, 8px) var(--pb-spacing-lg, 24px) !important;
    margin-top: -48px !important;
}

.pb-partial-popup .swal2-actions {
    margin-top: -36px !important;
}

.pb-partial-modal {
    text-align: left;
}

.pb-partial-count {
    font-size: var(--pb-font-size-lg, 1.25rem) !important;
    margin-bottom: var(--pb-spacing-md, 16px) !important;
    color: var(--pb-color-text, #373435) !important;
}

.pb-partial-count strong {
    color: var(--pb-color-primary, #DEB900) !important;
}

.pb-partial-recommendation {
    font-size: var(--pb-font-size-base, 1rem) !important;
    color: var(--pb-color-text-muted, #646970) !important;
    margin-bottom: var(--pb-spacing-lg, 24px) !important;
    padding: var(--pb-spacing-sm, 8px) var(--pb-spacing-md, 16px) !important;
    background: var(--pb-color-bg-light, #f8f9fa) !important;
    border-left: 4px solid var(--pb-color-primary, #DEB900) !important;
    border-radius: var(--pb-border-radius-sm, 4px) !important;
}

.pb-partial-cta {
    background: linear-gradient(135deg, #fff9e6 0%, #fff5cc 100%) !important;
    border: 1px solid rgba(222, 185, 0, 0.3) !important;
    border-radius: var(--pb-border-radius, 5px) !important;
    padding: var(--pb-spacing-md, 16px) !important;
}

.pb-partial-cta p {
    margin: 0 !important;
    font-size: var(--pb-font-size-base, 1rem) !important;
    color: var(--pb-color-text, #373435) !important;
    line-height: 1.4 !important;
}

.pb-partial-subtitle {
    margin-top: var(--pb-spacing-xs, 4px) !important;
    font-size: var(--pb-font-size-sm, 0.875rem) !important;
    color: var(--pb-color-text-muted, #646970) !important;
}

/* Variante: Con instrucciones existentes */
.pb-partial-cta--has-instructions {
    background: linear-gradient(135deg, #e6fff0 0%, #ccffe6 100%) !important;
    border-color: rgba(40, 167, 69, 0.3) !important;
}

.pb-partial-cta--has-instructions strong {
    color: var(--pb-color-success, #28a745) !important;
}

/* Botón "Continuar sin instrucciones" o "Continuar con las actuales" (deny button) */
.pb-swal-deny {
    background: transparent !important;
    color: var(--pb-color-text-muted, #646970) !important;
    border: 1px solid var(--pb-color-border, #e2e8f0) !important;
    padding: 12px 24px !important;
    border-radius: var(--pb-border-radius, 5px) !important;
    font-size: var(--pb-font-size-sm, 0.875rem) !important;
    font-weight: 500 !important;
    transition: all var(--pb-transition-fast, 0.2s ease) !important;
}

.pb-swal-deny:hover {
    background: var(--pb-color-bg-light, #f8f9fa) !important;
    border-color: var(--pb-color-text-muted, #646970) !important;
}

/* Variante exitosa para el botón deny */
.pb-swal-deny--success {
    color: var(--pb-color-success, #28a745) !important;
    border-color: var(--pb-color-success, #28a745) !important;
}

.pb-swal-deny--success:hover {
    background: rgba(40, 167, 69, 0.05) !important;
    border-color: var(--pb-color-success-dark, #218838) !important;
}

/* ==========================================================================
   MODAL: INSTRUCCIONES DE DISEÑO
   ========================================================================== */

.pb-swal-instructions-modal .swal2-validation-message {
    font-size: var(--pb-font-size-base) !important;
    display: none !important;
    justify-content: center !important;
}

/* Cuando la validación está visible, aplicar márgenes negativos */
.pb-swal-instructions-modal .swal2-validation-message[style*="display: flex"],
.pb-swal-instructions-modal .swal2-validation-message[style*="display: block"] {
    display: flex !important;
    margin-top: -55px !important;
}

/* Ajustar margen de acciones cuando la validación está visible */
.pb-swal-instructions-modal:has(.swal2-validation-message[style*="display: flex"]) .swal2-actions,
.pb-swal-instructions-modal:has(.swal2-validation-message[style*="display: block"]) .swal2-actions {
    margin-top: 17px !important;
}