:root {
    --morado: #6f3f8c;
    --verde: #4c9a5b;
    --azul: #3e7ca6;
    --rosa: #d9698c;
}

body {
    background-color: #f6f4f9;
}

/* Empuja el footer hasta el fondo de la pantalla aunque el contenido sea corto */
.app-body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
.app-body main {
    flex: 1 0 auto;
}
.app-body footer {
    flex-shrink: 0;
}

.app-navbar {
    background: linear-gradient(90deg, var(--morado), var(--azul));
}

.login-logo {
    height: 130px;
    width: auto;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.login-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--morado), var(--rosa) 60%, var(--azul));
}

.login-card {
    max-width: 420px;
    width: 100%;
    border: none;
    border-radius: 1rem;
    box-shadow: 0 1rem 3rem rgba(0,0,0,.25);
}

.card-stat {
    border: none;
    border-radius: .75rem;
    color: #fff;
    box-shadow: 0 .25rem .75rem rgba(0,0,0,.08);
}
.card-stat.morado  { background: var(--morado); }
.card-stat.verde   { background: var(--verde); }
.card-stat.azul    { background: var(--azul); }
.card-stat.rosa    { background: var(--rosa); }

.table-responsive {
    background: #fff;
    border-radius: .5rem;
    padding: .5rem;
}

.badge-stock-bajo {
    background-color: #d9534f;
}

.ticket-box {
    max-width: 420px;
    margin: 0 auto;
    background: #fff;
    border: 1px dashed #999;
    padding: 1.5rem;
    font-family: 'Courier New', monospace;
}

@media print {
    .no-print { display: none !important; }
    .ticket-box { border: none; }
}
