body {
    background: #f4f6f9;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
[v-cloak] { display: none !important; }

.sidebar-header {
    padding: 20px;
    background: #0f172a;
    text-align: center;
}
#sidebar ul.components {
    padding: 20px 0;
}
.menu-categoria {
    padding: 10px 20px;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
    font-weight: bold;
}
#sidebar ul li a {
    padding: 12px 20px;
    font-size: 0.95rem;
    display: block;
    color: #cbd5e1;
    text-decoration: none;
}
#sidebar ul li a:hover, #sidebar ul li.active > a {
    color: #fff;
    background: #334155;
    border-left: 4px solid #3b82f6;
}

/* #content {
    width: 100%;
    min-height: 100vh;
    transition: all 0.3s;
} */
.topo-painel {
    padding: 15px;
    background: #fff !important;
    border-bottom: 1px solid #e2e8f0;
}
.usuario-topo {
    font-size: 0.9rem;
    color: #475569;
}

/* No seu arquivo CSS global ou style block do index.html */
.input-number-right {
    text-align: right;
    font-family: 'Courier New', Courier, monospace; /* Opcional: fonte monoespaçada ajuda ainda mais na leitura de números */
}

.field-money {
    text-align: right;
    /* Removemos a fonte Courier para não estranhar a tipografia */
    font-variant-numeric: tabular-nums; /* Isso alinha os números verticalmente melhor que qualquer fonte */
}

/* Apenas estilo, sem precisar esconder textos */
.tabulator-paginator button {
    background: #fff !important;
    border: 1px solid #dee2e6 !important;
    color: #0d6efd !important;
    padding: 6px 12px !important;
    margin: 0 2px !important;
    border-radius: 4px !important;
    cursor: pointer;
}

.tabulator-page.active {
    background: #0d6efd !important;
    color: #fff !important;
    border-color: #0d6efd !important;
}

.card .tabulator {
    max-width: 100%;
    overflow-x: auto; /* Se a tabela for larga, ela rola dentro do card, não quebra a tela */
}

#footer-paginacao {
    width: 100%;
    flex-wrap: wrap; /* Se a tela for muito pequena, os botões quebram linha em vez de sumir */
}

.tabulator {
    width: 100%;
    overflow-x: auto; /* Isso cria o scroll horizontal interno */
    white-space: nowrap; /* Impede que as colunas quebrem linha */
}

/* Garante que o card seja o limitador */
.card {
    overflow: hidden; /* Corta qualquer coisa que tente vazar */
    width: 100%;
}

/* 1. O segredo para o Flexbox parar de vazar: */
/* #content {
    flex: 1; 
    min-width: 0; 
    overflow: hidden; 
} */

/* 🎯 CORREÇÃO DO CONTEÚDO DA DIREITA: Limita o espaço e impede estouros */
/* 🚨 COMPORTAMENTO DE TELA CHEIA TRAVADO */
.wrapper {
    display: flex;
    width: 100vw;          /* 👈 TRAVA 1: Garante que o container mãe NUNCA passe da largura física da tela */
    max-width: 100%;
    align-items: stretch;
    overflow-x: hidden;    /* 👈 TRAVA 2: Mata qualquer tentativa de scroll ou vazamento para a direita */
}

#sidebar {
    min-width: 260px;
    max-width: 260px;
    background: #1e293b;
    color: #fff;
    transition: all 0.3s;
    min-height: 100vh;
}
#sidebar.active {
    margin-left: -260px;
}

/* 🎯 CONTEÚDO DA DIREITA ELÁSTICO */
#content {
    flex: 1;               /* 👈 TRAVA 3: Força o conteúdo a ocupar EXATAMENTE o espaço que sobrou da tela */
    min-width: 0;          /* 👈 TRAVA 4: Blinda o Tabulator e os inputs para não esticarem a div na marra */
    padding: 20px;
    min-height: 100vh;
    transition: all 0.3s;
    background: #f4f6f9;   /* Mantém o fundo original */
}

/* 🚨 COMPORTAMENTO DE ALERTA DO MAPA DE PEDIDOS - RETAGUARDA */
.card-pedido-mapa {
    background: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 12px;
    width: 90px;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    transition: all 0.2s ease-in-out;
    position: relative;
}

.card-pedido-mapa:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.card-pedido-mapa .numero {
    font-size: 1.15rem;
    font-weight: bold;
    color: #1e293b;
}

.card-pedido-mapa .total {
    font-size: 0.75rem;
    color: #10b981;
    font-weight: 600;
}

/* O Segredo do efeito de piscar (Urgente) */
.piscando-urgente {
    background: #fee2e2 !important; /* Vermelho bem claro */
    border-color: #ef4444 !important;
    animation: pulsarAlertaCaixa 1.2s infinite alternate ease-in-out;
}

.badge-fechamento {
    font-size: 0.55rem !important;
    position: absolute;
    top: -5px;
    left: 50%;
    transform: translateX(-50%);
    box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}

@keyframes pulsarAlertaCaixa {
    0% {
        box-shadow: 0 0 4px #ef4444;
        border-color: #f87171;
    }
    100% {
        box-shadow: 0 0 15px #ef4444;
        border-color: #dc2626;
        background: #fca5a5 !important;
    }
}

/* ==========================================================================
   🎯 TIRO DE MISERICÓRDIA: MOBILE COM MÁXIMO APROVEITAMENTO DE TELA
   ========================================================================== */
@media (max-width: 991.98px) {
    /* 1. Trava o container mãe nos limites do telemóvel */
    .wrapper {
        position: relative;
        overflow-x: hidden !important;
        width: 100vw !important;
        max-width: 100vw !important;
    }

    /* 2. Menu flutua por cima feito app nativo */
    #sidebar:not(.active) {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 9999;
        height: 100vh;
        box-shadow: 4px 0 10px rgba(0,0,0,0.3);
    }

    /* 3. CONTEÚDO DA DIREITA: Passamos o rodo no padding gigante de 20px */
    #content {
        width: 100vw !important;
        max-width: 100vw !important;
        padding: 8px !important; /* 👈 Reduzido drasticamente para sobrar espaço pros dados */
        box-sizing: border-box !important;
    }

    /* 4. MATAR AS MARGENS DO CONTAINER DINÂMICO */
    /* O Bootstrap costuma meter um mt-4 (margin-top) pesado no teu bloco de views */
    .conteudo-dinamico {
        margin-top: 10px !important; /* Aproxima o cadastro do topo, eliminando buracos vazios */
        padding-left: 2px !important;
        padding-right: 2px !important;
    }

    /* 5. TOPBAR ENXUTA (Traz o Sair e limpa os cantos) */
    .topo-painel {
        width: 100% !important;
        padding: 6px 8px !important; /* Encolhe a altura da barra */
        box-sizing: border-box !important;
    }

    .topo-painel .container-fluid {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 0 !important;
    }

    /* 6. Organiza os dados da Empresa/Usuário num bloco compacto */
    .usuario-topo {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        text-align: right !important;
        font-size: 0.72rem !important; /* Fonte compacta e legível para mobile */
        line-height: 1.2 !important;
    }

    /* Esconde o divisor vertical "|" */
    .usuario-topo .mx-2, 
    .usuario-topo span:contains("|") {
        display: none !important;
    }

    /* Botão Sair menor e com clique preciso */
    .usuario-topo button {
        margin-top: 3px !important;
        margin-left: 0 !important;
        padding: 2px 6px !important;
        font-size: 0.68rem !important;
        width: auto !important;
    }

    /* 🚨 BLINDAGEM DO CONTAINER DAS SUB-VIEWS (Mata o bug de Pessoas) */
    #sub-view-container {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important; /* Impede o miolo de vazar */
    }

    /* Força o Tabulator de qualquer subtela a entender que ele tem 100% de espaço */
    #sub-view-container .tabulator {
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
    }

    /* Ajusta o cabeçalho interno das telas (ex: "Cadastro de Pessoas") 
       para não herdar paddings brutais no celular */
    .card-header, .panel-heading {
        padding: 8px 10px !important;
    }
    
    .card-body, .panel-body {
        padding: 8px !important;
    }
}

/* Estilo base do bloquinho de Comanda/Mesa */
.card-pedido-caixa {
    background-color: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 10px;
    min-width: 100px;
    flex: 1 1 calc(25% - 10px); /* Ajusta para caber até 4 por linha responsivo */
    text-align: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    position: relative;
}

/* Efeito ao passar o mouse ou tocar */
.card-pedido-caixa:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    border-color: #adb5bd;
}

/* Estilização do número do identificador */
.card-pedido-caixa .numero {
    font-size: 1.1rem;
    font-weight: 700;
    color: #212529;
    margin-bottom: 2px;
}

/* Estilização do valor total */
.card-pedido-caixa .total {
    font-size: 0.9rem;
    font-weight: 600;
    color: #198754; /* Verde sucesso para destacar valor */
}

/* 🚨 Inteligência visual: Alerta piscante para quem pediu a CONTA (COD_STATUS == 3) */
.piscando-urgente {
    border-color: #dc3545 !important;
    background-color: #fff5f5 !important;
    animation: pulsarAlertaCaixa 1.5s infinite alternate;
}

.piscando-urgente .numero {
    color: #dc3545 !important;
}

/* Animação suave para não irritar os olhos, mas chamar a atenção do operador */
@keyframes pulsarAlertaCaixa {
    0% {
        box-shadow: 0 0 4px rgba(220, 53, 69, 0.2);
        background-color: #ffffff;
    }
    100% {
        box-shadow: 0 0 12px rgba(220, 53, 69, 0.6);
        background-color: #f8d7da;
    }
}

/* Ajuste fino para a badge de CONTA não sobrepor o texto */
.xsmall {
    font-size: 0.65rem;
    padding: 2px 5px;
}

/* Container dos botões de ação do caixa */
.botoes-acao-caixa {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 10px 0;
}

/* Transforma o emoji solto em um botão profissional */
.btn-acao-icone {
    background: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    cursor: pointer; /* 🔥 Muda o cursor de barra para a mãozinha de clique! */
    transition: all 0.2s ease;
    position: relative;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

/* Efeito Hover nos botões */
.btn-acao-icone:hover {
    background-color: #f8f9fa;
    border-color: #adb5bd;
    transform: translateY(-2px);
}

/* Variações de cor para ações críticas */
.btn-acao-icone.btn-cancelar:hover {
    background-color: #fff5f5;
    border-color: #e63946;
}

/* 🎯 CSS Puro para o HINT (Dica flutuante sem precisar de biblioteca externa) */
.btn-acao-icone[data-hint]::after {
    content: attr(data-hint);
    position: absolute;
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%) scale(0);
    background-color: #1e293b;
    color: #ffffff;
    font-size: 0.75rem;
    padding: 4px 8px;
    border-radius: 4px;
    white-space: nowrap;
    z-index: 999;
    opacity: 0;
    transition: all 0.15s ease-in-out;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.btn-acao-icone:hover::after {
    transform: translateX(-50%) scale(1);
    opacity: 1;
}