/* =====================================================
   EL MOLCAJETE - capa común (se carga al final en todas las páginas)
   1. Fondo beige detrás del logo
   2. Alertas y ventanas del sistema
   3. Teléfonos y tabletas
===================================================== */

:root {
    --mol-rojo: #8b1e23;
    --mol-rojo-oscuro: #7b1419;
    --mol-vino: #65151a;
    --mol-naranja: #e9a23b;
    --mol-beige: #f6f0e4;
    --mol-beige-2: #f1e5d1;
    --mol-crema: #fffaf3;
    --mol-texto: #4c3029;
    --mol-gris: #75675d;
}

/* =====================================================
   1. LOGO SOBRE BEIGE
===================================================== */

.login-left {
    background-color: var(--mol-beige-2) !important;
    color: var(--mol-rojo-oscuro) !important;
}

.login-slogan {
    color: var(--mol-rojo-oscuro);
}

/* Lado derecho del inicio de sesión en rojo, con la tarjeta blanca encima */
.login-right {
    background-color: var(--mol-rojo) !important;
}

@media (max-width: 768px) {
    .login-right {
        flex: 1;
    }
}

.sidebar .sidebar-logo {
    background: var(--mol-beige);
    border-radius: 16px;
    padding: 14px 12px !important;
    margin: 0 4px 18px;
    box-shadow: inset 0 0 0 2px rgba(233, 162, 59, .55);
}

.sidebar .sidebar-logo img {
    width: 100% !important;
    max-width: 175px !important;
    height: auto !important;
}

/* =====================================================
   2. ALERTAS Y VENTANAS
===================================================== */

body.ui-sin-scroll {
    overflow: hidden;
}

.ui-overlay {
    position: fixed;
    inset: 0;
    z-index: 20000;
    background: rgba(48, 19, 18, .62);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    animation: ui-fade .14s ease-out;
}

.ui-overlay.saliendo {
    opacity: 0;
    transition: opacity .14s;
}

@keyframes ui-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes ui-pop {
    from { transform: translateY(10px) scale(.98); opacity: 0; }
    to { transform: none; opacity: 1; }
}

.ui-dialog {
    width: 100%;
    max-width: 560px;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    display: flex;
    flex-direction: column;
    background: var(--mol-crema);
    border: 2px solid var(--mol-rojo);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 25px 70px rgba(0, 0, 0, .35);
    animation: ui-pop .16s ease-out;
    font-family: Arial, Helvetica, sans-serif;
}

.ui-dialog.ui-dialog-sm {
    max-width: 430px;
}

.ui-dialog-header {
    background: var(--mol-rojo-oscuro);
    color: #fff;
    border-bottom: 4px solid var(--mol-naranja);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-shrink: 0;
}

.ui-dialog-title {
    font-size: 19px;
    font-weight: 800;
    line-height: 1.25;
}

.ui-dialog-close {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.ui-dialog-close:hover {
    background: rgba(255, 255, 255, .14);
}

.ui-dialog-body {
    padding: 20px;
    overflow-y: auto;
    color: var(--mol-texto);
    font-size: 15px;
    line-height: 1.45;
    -webkit-overflow-scrolling: touch;
}

.ui-dialog-footer {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    padding: 14px 20px 18px;
    border-top: 1px solid #ead5c3;
    background: #fff8ee;
    flex-shrink: 0;
}

.ui-btn {
    min-height: 44px;
    padding: 11px 20px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    border: 2px solid transparent;
    transition: background .15s, transform .15s;
    font-family: inherit;
}

.ui-btn:active {
    transform: translateY(1px);
}

.ui-btn-primario {
    background: var(--mol-rojo);
    color: #fff;
    box-shadow: 0 4px 10px rgba(123, 20, 25, .18);
}

.ui-btn-primario:hover {
    background: #a5252b;
}

.ui-btn-secundario {
    background: #fff;
    color: var(--mol-rojo-oscuro);
    border-color: #cfa98c;
}

.ui-btn-secundario:hover {
    border-color: var(--mol-rojo);
}

.ui-btn-peligro {
    background: #b4232d;
    color: #fff;
}

.ui-btn-peligro:hover {
    background: #96161f;
}

.ui-btn-naranja {
    background: var(--mol-naranja);
    color: #5c1719;
}

.ui-btn-naranja:hover {
    background: #f0b155;
}

.ui-msg {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.ui-msg-icon {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 19px;
    background: #f4e2cd;
    color: var(--mol-rojo);
    border: 2px solid #e2c09f;
}

.ui-msg-exito .ui-msg-icon,
.ui-toast-exito .ui-msg-icon {
    background: #e3f2e1;
    color: #2e7d32;
    border-color: #a8d4a5;
}

.ui-msg-error .ui-msg-icon,
.ui-toast-error .ui-msg-icon {
    background: #f9dede;
    color: #b4232d;
    border-color: #e3a3a3;
}

.ui-msg-aviso .ui-msg-icon,
.ui-toast-aviso .ui-msg-icon {
    background: #fdecd0;
    color: #a3600b;
    border-color: #f0c47e;
}

.ui-msg-text {
    padding-top: 8px;
    font-size: 15px;
    color: var(--mol-texto);
}

.ui-label {
    display: block;
    font-weight: 700;
    color: #62453b;
    margin-bottom: 8px;
}

.ui-input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 2px solid #cfa98c;
    border-radius: 9px;
    font-size: 16px;
    color: var(--mol-texto);
    background: #fff;
    font-family: inherit;
}

.ui-input:focus {
    outline: none;
    border-color: var(--mol-rojo);
    box-shadow: 0 0 0 3px rgba(139, 30, 35, .10);
}

#ui-toasts {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 21000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: min(380px, calc(100vw - 32px));
}

.ui-toast {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--mol-crema);
    border: 2px solid var(--mol-rojo);
    border-left: 6px solid var(--mol-naranja);
    border-radius: 12px;
    padding: 10px 14px;
    color: var(--mol-texto);
    font-weight: 700;
    font-size: 14px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, .18);
    animation: ui-pop .2s ease-out;
    transition: opacity .3s, transform .3s;
}

.ui-toast .ui-msg-icon {
    width: 30px;
    height: 30px;
    font-size: 15px;
}

.ui-toast.saliendo {
    opacity: 0;
    transform: translateY(8px);
}

/* Tablas con desplazamiento lateral */
.ui-table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Botón de menú (solo en pantallas angostas) */
.ui-menu-toggle,
.ui-menu-actual {
    display: none;
}


/* =====================================================
   DETALLES POR PANTALLA
===================================================== */

/* Ventas y reportes: transferencia */
.transfer-bar,
.transfer-progress {
    background: #2f6f73 !important;
}

.stat-icon.transfer::before {
    content: "⇄";
    color: #7b1419;
    font-size: 24px;
    font-weight: 800;
}

.stats-grid:has(#transfer-total) {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
}

/* Cocina: número de mesa y notas de los platillos */
.kitchen-table-badge {
    display: inline-block !important;
    margin-left: 8px;
    padding: 4px 10px;
    border-radius: 20px;
    background: var(--mol-naranja);
    color: #5c1719 !important;
    font-weight: 900;
    font-size: 14px !important;
    letter-spacing: .3px;
    vertical-align: middle;
}

.kitchen-order-note {
    margin: 4px 0 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #fdecd0;
    border-left: 4px solid var(--mol-naranja);
    color: #7b1419;
    font-size: 14px;
}

.kitchen-note {
    display: block;
    margin-top: 3px;
    padding: 3px 7px;
    border-radius: 6px;
    background: #fdecd0;
    color: #7b1419;
    font-size: 13px;
    font-style: normal;
    font-weight: 700;
}

/* =====================================================
   3. TABLETAS Y TELÉFONOS
===================================================== */

@media (max-width: 900px) {

    .dashboard-container {
        flex-direction: column !important;
    }

    .sidebar {
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        position: sticky !important;
        top: 0;
        z-index: 900;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 10px;
        padding: 10px 14px !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
    }

    .sidebar .sidebar-logo {
        margin: 0 !important;
        padding: 6px 10px !important;
        border-radius: 12px;
        flex: 0 0 auto;
    }

    .sidebar .sidebar-logo img {
        width: 96px !important;
        max-width: 96px !important;
    }

    .ui-menu-actual {
        display: block;
        flex: 1;
        min-width: 0;
        color: #fff;
        font-weight: 800;
        font-size: 17px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .ui-menu-toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 46px;
        height: 46px;
        padding: 0 11px;
        border: 2px solid rgba(255, 255, 255, .55);
        border-radius: 10px;
        background: transparent;
        cursor: pointer;
        flex-shrink: 0;
    }

    .ui-menu-toggle span {
        display: block;
        height: 3px;
        border-radius: 2px;
        background: #fff;
        transition: transform .2s, opacity .2s;
    }

    .sidebar.ui-abierto .ui-menu-toggle span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .sidebar.ui-abierto .ui-menu-toggle span:nth-child(2) { opacity: 0; }
    .sidebar.ui-abierto .ui-menu-toggle span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

    .sidebar .sidebar-menu,
    .sidebar .session-bar,
    .sidebar .sidebar-footer {
        display: none !important;
    }

    .sidebar.ui-abierto .sidebar-menu {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        overflow: visible !important;
        width: 100%;
        gap: 4px !important;
        padding: 8px 0 4px;
        border-top: 1px solid rgba(255, 255, 255, .18);
    }

    .sidebar.ui-abierto .sidebar-menu .menu-item {
        width: 100% !important;
        padding: 14px 14px !important;
        font-size: 16px !important;
        justify-content: flex-start !important;
    }

    .sidebar.ui-abierto .session-bar {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between;
        width: 100%;
        padding: 10px 4px 6px !important;
        border-top: 1px solid rgba(255, 255, 255, .18);
    }

    .dashboard-main,
    main.dashboard-main {
        padding: 18px 16px 28px !important;
        width: 100% !important;
        margin-left: 0 !important;
    }

    .dashboard-header {
        flex-wrap: wrap;
        gap: 12px;
    }

    /* Evita el zoom automático de iPhone al escribir */
    input, select, textarea {
        font-size: 16px !important;
    }

    .ui-btn {
        flex: 1 1 auto;
    }
}

@media (max-width: 520px) {

    .ui-overlay {
        padding: 10px;
        align-items: flex-end;
    }

    .ui-dialog {
        max-height: calc(100dvh - 20px);
        border-radius: 18px;
    }

    .ui-dialog-body {
        padding: 16px;
    }

    .ui-dialog-footer {
        padding: 12px 16px 16px;
    }

    .ui-dialog-footer .ui-btn {
        flex: 1 1 100%;
    }

    .login-left {
        min-height: 0 !important;
        padding: 26px 20px !important;
    }

    .login-logo {
        width: 210px !important;
        margin-bottom: 14px !important;
    }

    .login-slogan {
        margin-bottom: 0 !important;
        font-size: 18px !important;
    }
}
