/* =============================================================================
   Painel administrativo — ajustes sobre o AdminLTE 3.
   A identidade do restaurante entra pela cor da sidebar e dos destaques.
   ========================================================================== */

:root {
    --terra:        #7a3b1d;
    --terra-escuro: #5a2a13;
    --dende:        #d98324;
    --folha:        #2f5d3f;
}

/* Sidebar na cor da casa, sem a barra lateral colorida do tema padrão. */
.main-sidebar { background-color: var(--terra-escuro) !important; }

.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active {
    background-color: var(--terra) !important;
    color: #fff;
}

.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link:hover {
    background-color: rgba(255, 255, 255, .08);
}

.brand-link { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.brand-text { font-size: .98rem; }

.btn-primary {
    background-color: var(--terra);
    border-color: var(--terra);
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled):active {
    background-color: var(--terra-escuro);
    border-color: var(--terra-escuro);
}

.btn-outline-primary { color: var(--terra); border-color: var(--terra); }
.btn-outline-primary:hover { background-color: var(--terra); border-color: var(--terra); }

a { color: var(--terra); }
a:hover { color: var(--terra-escuro); }

.text-primary { color: var(--terra) !important; }
.bg-primary   { background-color: var(--terra) !important; }

/* ----- Cartões de número --------------------------------------------------- */

.small-box .icon { opacity: .22; }

.card { box-shadow: 0 1px 3px rgba(0, 0, 0, .08); border: 1px solid #e9ecef; }
.card-title { font-size: 1rem; font-weight: 600; }

/* ----- Tabelas ------------------------------------------------------------- */

table.dataTable td, table.dataTable th { vertical-align: middle; }
.table td, .table th { vertical-align: middle; }

.tabela-compacta td, .tabela-compacta th { padding: .45rem .6rem; font-size: .88rem; }

.codigo-reserva {
    font-family: "Courier New", monospace;
    font-weight: 700;
    letter-spacing: .05em;
}

/* ----- Validação de QR Code ------------------------------------------------ */

#leitor-qr {
    max-width: 460px;
    margin: 0 auto;
    border-radius: 10px;
    overflow: hidden;
    background: #000;
}

#leitor-qr video { width: 100% !important; display: block; }

.resultado-validacao {
    border-radius: 12px;
    padding: 26px;
    text-align: center;
    color: #fff;
    animation: aparecer .2s ease;
}

.resultado-valido       { background: linear-gradient(135deg, #2f7a4f, #1d5334); }
.resultado-ja_validado  { background: linear-gradient(135deg, #b3541e, #7a3a11); }
.resultado-nao_pago     { background: linear-gradient(135deg, #b3541e, #7a3a11); }
.resultado-cancelada,
.resultado-invalido     { background: linear-gradient(135deg, #b3261e, #7d1b16); }

.resultado-validacao .icone-resultado { font-size: 3.2rem; margin-bottom: 10px; }
.resultado-validacao h3 { color: #fff; font-weight: 700; }

.ficha-validacao {
    background: #fff;
    border-radius: 0 0 12px 12px;
    padding: 20px 24px;
    border: 1px solid #e9ecef;
    border-top: none;
}

.ficha-validacao .linha {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 8px 0;
    border-bottom: 1px dashed #e9ecef;
    font-size: .92rem;
}

.ficha-validacao .linha:last-child { border-bottom: none; }
.ficha-validacao .linha .rotulo { color: #6c757d; }
.ficha-validacao .linha .valor  { font-weight: 600; text-align: right; }

@keyframes aparecer { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ----- Agenda do dia ------------------------------------------------------- */

.bloco-horario {
    border-left: 4px solid var(--dende);
    background: #fff;
    border-radius: 8px;
    padding: 14px 18px;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}

.bloco-horario.chegou   { border-left-color: var(--folha); background: #f6faf7; }
.bloco-horario.pendente { border-left-color: #ffc107; }
.bloco-horario .hora    { font-size: 1.15rem; font-weight: 700; color: var(--terra-escuro); }

/* ----- Cardápio ------------------------------------------------------------ */

.miniatura {
    width: 52px;
    height: 52px;
    border-radius: 8px;
    object-fit: cover;
    background: #f4f6f9;
}

.item-indisponivel { opacity: .55; }

/* ----- Impressão do comprovante -------------------------------------------- */

@media print {
    .main-sidebar, .main-header, .main-footer, .content-header, .no-print { display: none !important; }
    .content-wrapper { margin-left: 0 !important; }
    body { background: #fff !important; }
}

/* ----- Login --------------------------------------------------------------- */

.pagina-login {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--terra-escuro), var(--folha));
    padding: 20px;
}

.caixa-login {
    width: 100%;
    max-width: 400px;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .25);
    overflow: hidden;
}

.caixa-login .topo {
    background: var(--terra-escuro);
    color: #fff;
    padding: 28px;
    text-align: center;
}

.caixa-login .topo .icone { font-size: 2.2rem; color: var(--dende); }
.caixa-login .corpo { padding: 28px; }
