/* ============================================================
   POPUPS & SNACKBARS — SIGv
   Notificaciones no bloqueantes y banners pequeños.
   Totalmente independientes de modales.css
============================================================ */

/* ------------------------------------------------------------
   SNACKBAR BASE (inferior)
------------------------------------------------------------ */
.snackbar {
    position: fixed;
    left: 50%;
    bottom: 25px;
    transform: translateX(-50%) translateY(40px);
    background: #323232;
    color: white;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    opacity: 0;
    pointer-events: none;
    z-index: 99999;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    transition:
        opacity .25s ease,
        transform .25s ease;
}

.snackbar.show {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

/* ------------------------------------------------------------
   VARIANTES POR TIPO
------------------------------------------------------------ */

/* OK / Éxito */
.snackbar.success {
    background: #2e7d32;
}

/* Advertencia */
.snackbar.warning {
    background: #d9822b;
}

/* Error */
.snackbar.error {
    background: #c0392b;
}

/* Información */
.snackbar.info {
    background: var(--color-vino, #6f1d1b);
}

/* ------------------------------------------------------------
   SNACKBAR SUPERIOR (para avisos persistentes)
------------------------------------------------------------ */
.top-banner {
    position: fixed;
    top: -80px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-vino, #6f1d1b);
    color: white;
    padding: 14px 24px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 0 0 10px 10px;
    z-index: 99998;
    box-shadow: 0 4px 14px rgba(0,0,0,0.25);
    transition: top .28s ease-out;
}

.top-banner.show {
    top: 0;
}

/* ------------------------------------------------------------
   MINI POPUPS (usados para acciones rápidas)
------------------------------------------------------------ */
.popup-mini {
    position: fixed;
    right: 20px;
    bottom: 20px;
    background: white;
    border-left: 6px solid var(--color-vino);
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 14px;
    color: #2c3e50;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
    min-width: 240px;
    max-width: 300px;
    opacity: 0;
    transform: translateY(20px);
    z-index: 99990;
    transition:
        opacity .25s ease,
        transform .25s ease;
}

.popup-mini.show {
    opacity: 1;
    transform: translateY(0);
}

/* Variantes */
.popup-mini.success { border-color: #2e7d32; }
.popup-mini.warning { border-color: #ef6c00; }
.popup-mini.error   { border-color: #c0392b; }
.popup-mini.info    { border-color: var(--color-verde, #1abc9c); }

/* ------------------------------------------------------------
   BOTÓN DE CIERRE (opcional)
------------------------------------------------------------ */
.popup-close {
    float: right;
    font-size: 16px;
    margin-left: 8px;
    cursor: pointer;
    color: #666;
}

.popup-close:hover {
    color: #111;
}

/* ------------------------------------------------------------
   RESPONSIVE
------------------------------------------------------------ */
@media (max-width: 600px) {
    .popup-mini {
        right: 12px;
        bottom: 12px;
        width: calc(100% - 24px);
        max-width: none;
    }

    .snackbar {
        width: 92%;
        left: 50%;
        transform: translateX(-50%);
    }
}
