/* ============================================
   TF Pizzaria - Estilos
   Paleta e tipografia do site da marca (tf-pizzaria-site.html):
     tomate   #B83224 -> #96231A   cor da marca, acoes principais
     forno    #F47725              destaque, foco, atencao
     manteiga #FFE4A0 -> #FFF1CC   realces, hover, selecao
     creme    #FFF8EA  papel #FFFDF8   fundos
     marrom   #44251E -> #6B4A3F   texto
   Fontes: Nunito (texto) e Caveat (letra de mao), servidas de assets/fonts.
   ============================================ */

@import url("../fonts/fonts.css");

:root {
    --tf-tomate: #B83224;
    --tf-tomate-escuro: #96231A;
    --tf-tomate-profundo: #7A1B13;
    --tf-forno: #F47725;
    --tf-manteiga: #FFE4A0;
    --tf-manteiga-claro: #FFF1CC;
    --tf-creme: #FFF8EA;
    --tf-papel: #FFFDF8;
    --tf-marrom: #44251E;
    --tf-marrom-suave: #6B4A3F;
    --tf-borda: #F0D9A8;
    --tf-borda-suave: #F3E4C4;
    --tf-sombra: 68 37 30;

    --tf-fonte: "Nunito", "Trebuchet MS", "Segoe UI", system-ui, sans-serif;
    --tf-fonte-mao: "Caveat", "Segoe Script", cursive;

    /* Estados (verde e vermelho seguem semanticos, fora da paleta) */
    --success: #2E6B30;
    --success-claro: #E3F1E3;
    --danger: var(--tf-tomate-escuro);
    --warning: var(--tf-forno);
    --info: var(--tf-marrom-suave);

    /* Nomes antigos, apontando para a paleta nova: telas que usam
       var(--pizza-*) continuam funcionando */
    --pizza-molho: var(--tf-tomate);
    --pizza-molho-claro: #CC4A3B;
    --pizza-molho-escuro: var(--tf-tomate-escuro);
    --pizza-molho-profundo: var(--tf-tomate-profundo);
    --pizza-massa: var(--tf-manteiga);
    --pizza-massa-media: var(--tf-forno);
    --pizza-massa-escura: #D9964F;
    --pizza-massa-torrada: #8F4A1C;
    --pizza-queijo: var(--tf-manteiga-claro);
    --pizza-queijo-forte: var(--tf-manteiga);
    --pizza-manjericao: #4CAF50;
    --pizza-manjericao-escuro: var(--success);
    --pizza-manjericao-claro: #BFE3C0;
    --pizza-azeitona: var(--tf-marrom);
    --bg-massa: var(--tf-creme);
    --text-dark: var(--tf-marrom);
    --text-muted: var(--tf-marrom-suave);

    /* Bootstrap */
    --bs-body-font-family: var(--tf-fonte);
    --bs-body-color: var(--tf-marrom);
    --bs-body-bg: var(--tf-creme);
    --bs-secondary-color: var(--tf-marrom-suave);
    --bs-border-color: var(--tf-borda-suave);
    --bs-link-color: var(--tf-tomate);
    --bs-link-color-rgb: 184, 50, 36;
    --bs-link-hover-color: var(--tf-tomate-escuro);
    --bs-link-hover-color-rgb: 150, 35, 26;
}

/* Base */
body {
    font-family: var(--tf-fonte);
    font-weight: 600;
    background-color: var(--tf-creme);
    color: var(--tf-marrom);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: 900;
    letter-spacing: -0.01em;
    color: var(--tf-marrom);
}

b, strong, .fw-bold { font-weight: 800 !important; }
.text-muted { color: var(--tf-marrom-suave) !important; }
.fonte-mao { font-family: var(--tf-fonte-mao); font-weight: 700; line-height: 1; }

:focus-visible {
    outline: 3px solid var(--tf-forno);
    outline-offset: 2px;
}

.bg-massa { background-color: var(--tf-creme); }

/* Navbar */
.navbar-pizza {
    background: var(--tf-tomate);
    box-shadow: 0 4px 18px rgb(var(--tf-sombra) / 0.22);
    padding-top: 6px;
    padding-bottom: 6px;
}

.navbar-pizza .navbar-brand,
.navbar-pizza .nav-link {
    color: #fff !important;
}

.navbar-pizza .nav-link {
    font-weight: 800;
    font-size: 0.95rem;
    border-radius: 10px;
    padding: 8px 11px !important;
    white-space: nowrap;
}

/* 10 itens no menu: em telas de 1200-1440px (a janela do sistema abre com
   1280) aperta o espacamento para caber numa linha so */
@media (min-width: 1200px) and (max-width: 1440px) {
    .navbar-pizza .nav-link {
        font-size: 0.88rem;
        padding: 7px 7px !important;
    }
    .navbar-pizza .navbar-brand {
        margin-right: 8px;
    }
    .navbar-pizza .navbar-brand img {
        height: 32px;
    }
}

.navbar-pizza .nav-link:hover {
    color: var(--tf-manteiga) !important;
}

.navbar-pizza .nav-link.active {
    background-color: rgb(255 255 255 / 0.16);
    box-shadow: inset 0 -3px 0 var(--tf-forno);
}

.navbar-pizza .navbar-brand {
    display: flex;
    align-items: center;
    padding: 0;
    margin-right: 18px;
}

.navbar-pizza .navbar-brand img {
    height: 38px;
    width: auto;
    display: block;
}

.navbar-pizza .dropdown-menu {
    border: none;
    border-radius: 14px;
    box-shadow: 0 14px 34px rgb(var(--tf-sombra) / 0.18);
    background: var(--tf-papel);
}

.navbar-pizza .dropdown-item {
    font-weight: 700;
    color: var(--tf-marrom);
}

.navbar-pizza .dropdown-item:hover,
.navbar-pizza .dropdown-item:focus {
    background: var(--tf-manteiga-claro);
    color: var(--tf-marrom);
}

/* Botoes: mesmo "degrau" do botao do site */
.btn {
    font-weight: 800;
}

.btn-pizza {
    background: var(--tf-tomate);
    color: #fff;
    border: none;
    font-weight: 900;
    border-radius: 12px;
    box-shadow: 0 4px 0 var(--tf-tomate-escuro), 0 8px 18px rgb(184 50 36 / 0.22);
    transition: transform 0.15s, box-shadow 0.15s, background 0.2s;
}

.btn-pizza:hover,
.btn-pizza:focus-visible {
    background: #C23828;
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 5px 0 var(--tf-tomate-escuro), 0 12px 22px rgb(184 50 36 / 0.28);
}

.btn-pizza:active {
    color: #fff !important;
    background: var(--tf-tomate) !important;
    transform: translateY(3px);
    box-shadow: 0 1px 0 var(--tf-tomate-escuro), 0 4px 10px rgb(184 50 36 / 0.2);
}

.btn-pizza:disabled,
.btn-pizza.disabled {
    background: var(--tf-tomate);
    color: #fff;
    opacity: 0.5;
    transform: none;
    box-shadow: 0 4px 0 var(--tf-tomate-escuro);
}

.btn-pizza-outline {
    border: 2px solid var(--tf-tomate);
    color: var(--tf-tomate);
    background: var(--tf-papel);
    font-weight: 800;
    border-radius: 12px;
    transition: all 0.2s;
}

.btn-pizza-outline:hover {
    background: var(--tf-tomate);
    border-color: var(--tf-tomate);
    color: #fff;
}

/* Botao claro do site (manteiga com borda) */
.btn-claro {
    background: var(--tf-papel);
    color: var(--tf-tomate);
    border: 2px solid var(--tf-borda);
    border-radius: 12px;
    font-weight: 900;
    box-shadow: 0 3px 0 var(--tf-borda);
}

.btn-claro:hover {
    background: var(--tf-manteiga-claro);
    color: var(--tf-tomate-escuro);
    border-color: var(--tf-borda);
}

/* Botao secundario na cor do forno (acoes de apoio) */
.btn-massa {
    background: var(--tf-forno);
    color: #fff;
    border: none;
    font-weight: 900;
    border-radius: 12px;
    box-shadow: 0 4px 0 #C85A14;
    transition: all 0.15s;
}

.btn-massa:hover {
    background: #E86A18;
    color: #fff;
}

.btn-check:checked + .btn-outline-secondary {
    background: var(--tf-manteiga);
    border-color: var(--tf-tomate);
    color: var(--tf-tomate-escuro);
}

.btn-outline-secondary {
    --bs-btn-color: var(--tf-marrom-suave);
    --bs-btn-border-color: var(--tf-borda);
    --bs-btn-hover-bg: var(--tf-manteiga-claro);
    --bs-btn-hover-color: var(--tf-marrom);
    --bs-btn-hover-border-color: var(--tf-borda);
    --bs-btn-active-bg: var(--tf-manteiga);
    --bs-btn-active-color: var(--tf-marrom);
    border-radius: 12px;
}

.btn-success {
    --bs-btn-bg: var(--success);
    --bs-btn-border-color: var(--success);
    --bs-btn-hover-bg: #245626;
    --bs-btn-hover-border-color: #245626;
}

/* Cards */
.card {
    border: none;
    border-radius: 18px;
    background: var(--tf-papel);
    box-shadow: 0 2px 0 rgb(var(--tf-sombra) / 0.04), 0 10px 28px rgb(var(--tf-sombra) / 0.08);
    transition: transform 0.25s, box-shadow 0.25s;
}

.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 0 rgb(var(--tf-sombra) / 0.04), 0 16px 34px rgb(var(--tf-sombra) / 0.13);
}

.card-stat {
    border-left: 5px solid var(--tf-tomate);
}

.card-stat .card-icon {
    font-size: 2.5rem;
}

.card-stat .card-value {
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--tf-marrom);
    line-height: 1.15;
}

.card-stat .card-label {
    font-size: 0.78rem;
    font-weight: 900;
    color: var(--tf-forno);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

/* PDV */
.pdv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 12px;
    align-content: start;
}

.pdv-item {
    cursor: pointer;
    text-align: center;
    padding: 16px 8px;
    border-radius: 14px;
    border: 2px solid var(--tf-borda-suave);
    background: var(--tf-papel);
    transition: all 0.2s;
    user-select: none;
    position: relative;
}

.pdv-item:hover {
    border-color: var(--tf-tomate);
    background: var(--tf-manteiga-claro);
}

.pdv-item:active {
    transform: scale(0.95);
}

.pdv-item .item-icon {
    font-size: 2rem;
    display: block;
    margin-bottom: 4px;
}

.pdv-item .item-nome {
    font-size: 0.85rem;
    font-weight: 800;
    display: block;
    line-height: 1.2;
    margin-bottom: 4px;
}

.pdv-item .item-preco {
    font-size: 0.95rem;
    color: var(--tf-tomate);
    font-weight: 900;
}

/* Selo de estoque no card do PDV */
.pdv-item .item-estoque {
    position: absolute;
    top: 6px;
    right: 6px;
    font-size: 0.65rem;
    font-weight: 900;
    padding: 2px 6px;
    border-radius: 20px;
    line-height: 1.4;
}

.pdv-item .item-estoque.ok {
    background: var(--success-claro);
    color: var(--success);
}

.pdv-item .item-estoque.baixo {
    background: var(--tf-manteiga);
    color: #8F4A1C;
}

.pdv-item .item-estoque.zero {
    background: var(--tf-tomate);
    color: #fff;
}

.pdv-item.sem-estoque {
    opacity: 0.55;
    border-style: dashed;
}

/* Comanda */
.comanda-panel {
    background: var(--tf-papel);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgb(var(--tf-sombra) / 0.12);
    /* cabe inteiro na tela (menu + busca + margens): o botao de fechar
       nunca fica escondido embaixo */
    height: calc(100vh - 170px);
    min-height: 460px;
    display: flex;
    flex-direction: column;
}

/* com o aviso de pedidos pendentes em cima, o painel encolhe junto */
.col-comanda:has(> .btn-massa) .comanda-panel {
    height: calc(100vh - 222px);
}

.comanda-header {
    padding: 14px 16px;
    border-bottom: 3px solid var(--tf-forno);
    background: var(--tf-tomate);
    color: #fff;
    border-radius: 18px 18px 0 0;
}

.comanda-header h5 {
    color: #fff;
}

.comanda-body {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
}

.comanda-footer {
    padding: 14px 16px;
    border-top: 2px dashed var(--tf-borda);
    background: var(--tf-manteiga-claro);
    border-radius: 0 0 18px 18px;
}

.comanda-total {
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--tf-tomate);
}

.comanda-item {
    display: flex;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--tf-borda-suave);
}

.comanda-item:last-child {
    border-bottom: none;
}

.comanda-item .item-qty {
    width: 80px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.comanda-item .item-qty button {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid var(--tf-borda);
    background: var(--tf-papel);
    color: var(--tf-marrom);
    font-weight: 900;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.comanda-item .item-qty button:hover {
    background: var(--tf-manteiga-claro);
    border-color: var(--tf-tomate);
}

.comanda-item .item-info {
    flex: 1;
    padding: 0 8px;
}

.comanda-item .item-subtotal {
    font-weight: 800;
    min-width: 70px;
    text-align: right;
}

.comanda-item .item-remove {
    color: var(--danger);
    cursor: pointer;
    padding: 4px;
    border: none;
    background: none;
    font-size: 1.1rem;
}

/* Cliente na comanda (busca + dica do CRM) */
.cliente-busca {
    position: relative;
    flex: 1;
    min-width: 0;
}

.cliente-resultados {
    position: absolute;
    z-index: 1060;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 260px;
    overflow-y: auto;
    background: var(--tf-papel);
    border-radius: 12px;
    box-shadow: 0 14px 34px rgb(var(--tf-sombra) / 0.25);
    color: var(--tf-marrom);
}

.cliente-resultados .opcao {
    padding: 9px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--tf-borda-suave);
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.9rem;
}

.cliente-resultados .opcao:hover,
.cliente-resultados .opcao.ativa {
    background: var(--tf-manteiga-claro);
}

.cliente-resultados .opcao small {
    color: var(--tf-marrom-suave);
    white-space: nowrap;
}

.cliente-escolhido {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--tf-manteiga-claro);
    color: var(--tf-marrom);
    border-radius: 8px;
    padding: 3px 4px 3px 10px;
    font-size: 0.875rem;
    font-weight: 800;
    min-height: 31px;
}

.cliente-escolhido span {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cliente-escolhido button {
    border: 0;
    background: none;
    color: var(--tf-tomate);
    font-weight: 900;
    padding: 0 6px;
    line-height: 1;
}

.cliente-dica {
    margin-top: 8px;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--tf-manteiga-claro);
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
}

.cliente-dica .destaque {
    background: var(--tf-forno);
    color: #fff;
    border-radius: 999px;
    padding: 1px 8px;
    font-weight: 900;
}

.cliente-dica .cupom-chip {
    cursor: pointer;
    background: var(--tf-papel);
    color: var(--tf-tomate);
    border-radius: 999px;
    padding: 1px 8px;
    font-weight: 900;
    border: 0;
}

/* Cupom na comanda */
.cupom-entrada .form-control {
    border: 2px dashed var(--tf-borda);
    background: var(--tf-papel);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 0.06em;
}

.cupom-entrada .form-control::placeholder {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
}

.cupom-aplicado {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--tf-papel);
    border: 2px dashed var(--tf-tomate);
    border-radius: 12px;
    padding: 6px 8px 6px 12px;
}

.cupom-aplicado.invalido {
    border-color: var(--tf-forno);
    background: #FFF4E8;
}

.cupom-aplicado .cupom-codigo {
    font-weight: 900;
    letter-spacing: 0.06em;
    color: var(--tf-tomate);
}

.cupom-aplicado .cupom-resumo {
    font-size: 0.8rem;
    color: var(--tf-marrom-suave);
    line-height: 1.2;
}

.cupom-aplicado .cupom-aviso {
    font-size: 0.8rem;
    color: #B4500F;
    font-weight: 800;
    line-height: 1.2;
}

.cupom-aplicado .btn-remover {
    border: 0;
    background: none;
    color: var(--tf-tomate);
    font-weight: 900;
    font-size: 1.1rem;
    padding: 0 4px;
}

.linha-valor {
    display: flex;
    justify-content: space-between;
    font-size: 0.95rem;
    font-weight: 700;
}

.linha-valor.desconto {
    color: var(--success);
    font-weight: 900;
}

/* Premios da roleta (modal do PDV) */
.premio-roleta {
    width: 100%;
    text-align: left;
    border: 2px solid var(--tf-borda);
    background: var(--tf-papel);
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 8px;
    transition: all 0.15s;
}

.premio-roleta:hover {
    border-color: var(--tf-tomate);
    background: var(--tf-manteiga-claro);
}

.premio-roleta strong {
    display: block;
    color: var(--tf-tomate);
}

.premio-roleta small {
    color: var(--tf-marrom-suave);
}

/* Categorias tabs: quebram de linha em vez de rolar, para nenhuma
   categoria ficar escondida fora da coluna */
.nav-categorias {
    flex-wrap: wrap;
    gap: 8px;
}

.nav-categorias .nav-link {
    color: var(--tf-marrom);
    border: 2px solid var(--tf-borda-suave);
    background: var(--tf-papel);
    border-radius: 12px;
    margin: 0;
    padding: 8px 16px;
    font-weight: 800;
    transition: all 0.2s;
    white-space: nowrap;
}

.nav-categorias .nav-link:hover {
    border-color: var(--tf-borda);
    background: var(--tf-manteiga-claro);
}

.nav-categorias .nav-link.active {
    background: var(--tf-tomate);
    border-color: var(--tf-tomate);
    color: #fff;
}

/* Tabelas */
.table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: var(--tf-manteiga-claro);
    --bs-table-color: var(--tf-marrom);
    --bs-table-hover-color: var(--tf-marrom);
}

.table thead {
    background: var(--tf-tomate);
    color: #fff;
}

.table thead th {
    border: none;
    padding: 12px 16px;
    font-weight: 900;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #fff;
    background: var(--tf-tomate);
}

.table thead th:first-child {
    border-radius: 12px 0 0 0;
}

.table thead th:last-child {
    border-radius: 0 12px 0 0;
}

.table tbody td {
    padding: 12px 16px;
    vertical-align: middle;
    border-color: var(--tf-borda-suave);
}

.table-hover tbody tr:hover {
    background-color: var(--tf-manteiga-claro);
}

/* Badges de status */
.badge {
    font-weight: 900;
    letter-spacing: 0.02em;
    border-radius: 999px;
    padding: 0.4em 0.75em;
}

.badge-ativo { background-color: var(--success); color: #fff; }
.badge-inativo { background-color: #A89284; color: #fff; }
.badge-aberto { background-color: var(--tf-manteiga); color: var(--tf-marrom); }
.badge-pago { background-color: var(--success); color: #fff; }
.badge-parcial { background-color: var(--tf-forno); color: #fff; }
.badge-agendado { background-color: var(--tf-manteiga-claro); color: var(--tf-marrom); border: 1px solid var(--tf-borda); }
.badge-expirado,
.badge-esgotado { background-color: #EADFD6; color: var(--tf-marrom-suave); }
.badge-tomate { background-color: var(--tf-tomate); color: #fff; }
.badge-forno { background-color: var(--tf-forno); color: #fff; }

/* Alerta de estoque */
.estoque-baixo {
    background: var(--tf-manteiga-claro);
    border-left: 4px solid var(--tf-forno);
    padding: 12px 16px;
    border-radius: 0 10px 10px 0;
    margin-bottom: 8px;
}

/* Ficha tecnica (receita do item) */
.ficha-linha {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--tf-borda-suave);
    border-radius: 12px;
    margin-bottom: 8px;
    background: var(--tf-papel);
}

.ficha-linha .ficha-un {
    min-width: 46px;
    font-weight: 800;
    color: var(--tf-marrom-suave);
}

.ficha-vazia {
    background: var(--tf-manteiga-claro);
    border: 2px dashed var(--tf-forno);
    border-radius: 14px;
    padding: 20px;
    text-align: center;
    color: #8F4A1C;
}

.ficha-custo {
    background: var(--tf-manteiga-claro);
    border-radius: 12px;
    padding: 12px 16px;
}

/* Pagamento */
.pagamento-opcao {
    cursor: pointer;
    text-align: center;
    padding: 20px;
    border: 2px solid var(--tf-borda-suave);
    border-radius: 14px;
    background: var(--tf-papel);
    transition: all 0.2s;
}

.pagamento-opcao:hover,
.pagamento-opcao.selected {
    border-color: var(--tf-tomate);
    background: var(--tf-manteiga-claro);
}

.btn-check:checked + .pagamento-opcao {
    border-color: var(--tf-tomate);
    background: var(--tf-manteiga-claro);
    box-shadow: inset 0 0 0 1px var(--tf-tomate);
}

.btn-check:focus-visible + .pagamento-opcao {
    outline: 3px solid var(--tf-forno);
    outline-offset: 2px;
}

.pagamento-opcao .pagamento-icon {
    font-size: 2rem;
    display: block;
    margin-bottom: 8px;
}

/* Formularios */
.form-control,
.form-select {
    border: 2px solid var(--tf-borda-suave);
    color: var(--tf-marrom);
    font-weight: 700;
    border-radius: 10px;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--tf-forno);
    box-shadow: 0 0 0 0.22rem rgb(244 119 37 / 0.18);
}

.form-control-lg {
    border-radius: 12px;
    padding: 12px 16px;
}

.form-label {
    font-weight: 800;
}

.form-text {
    color: var(--tf-marrom-suave);
}

.form-check-input:checked {
    background-color: var(--tf-tomate);
    border-color: var(--tf-tomate);
}

.modal-content {
    background: var(--tf-papel);
    border: none;
    border-radius: 20px;
}

.modal-header-tf {
    background: var(--tf-tomate);
    color: #fff;
    border-radius: 20px 20px 0 0;
    border-bottom: 3px solid var(--tf-forno);
}

.modal-header-tf .modal-title {
    color: #fff;
}

.alert {
    border: none;
    border-radius: 14px;
    font-weight: 700;
}

/* Texto */
.text-pizza { color: var(--tf-tomate) !important; }
.text-forno { color: var(--tf-forno) !important; }
.text-massa { color: #8F4A1C !important; }
.text-success-custom { color: var(--success) !important; }

/* Page header */
.page-header {
    margin-bottom: 24px;
    padding-bottom: 14px;
    border-bottom: 3px dashed var(--tf-borda);
}

.page-header h2 {
    font-weight: 900;
    color: var(--tf-marrom);
    margin: 0;
}

.eyebrow {
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--tf-forno);
}

/* Tela de login e instalacao */
.tela-marca {
    min-height: 100vh;
    background: var(--tf-manteiga);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

/* Faixas diagonais do hero do site */
.faixas {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
}

.faixas span {
    position: absolute;
    background: linear-gradient(135deg, #FFD27A, #FFC766);
    opacity: 0.55;
    transform: skewX(-38deg);
}

.login-logo {
    width: 230px;
    max-width: 100%;
    height: auto;
}

.login-card {
    border-top: 6px solid var(--tf-tomate);
    background: var(--tf-papel);
}

.login-card:hover {
    transform: none;
}

.slogan-mao {
    font-family: var(--tf-fonte-mao);
    font-weight: 700;
    font-size: 1.7rem;
    color: var(--tf-marrom);
    line-height: 1.1;
}

/* ---------- Mini CRM ---------- */
.avatar-inicial {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--tf-manteiga);
    color: var(--tf-tomate);
    display: inline-grid;
    place-items: center;
    font-weight: 900;
    font-size: 1.05rem;
    flex-shrink: 0;
}

.avatar-inicial.grande {
    width: 64px;
    height: 64px;
    font-size: 1.6rem;
}

.segmentos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.segmentos a {
    text-decoration: none;
    border: 2px solid var(--tf-borda);
    background: var(--tf-papel);
    color: var(--tf-marrom);
    border-radius: 999px;
    padding: 6px 14px;
    font-weight: 800;
    font-size: 0.9rem;
}

.segmentos a:hover {
    background: var(--tf-manteiga-claro);
}

.segmentos a.ativo {
    background: var(--tf-tomate);
    border-color: var(--tf-tomate);
    color: #fff;
}

.segmentos a .qtd {
    opacity: 0.75;
    margin-left: 4px;
}

.data-especial {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--tf-borda);
}

.data-especial:last-child {
    border-bottom: none;
}

.data-especial .quando {
    min-width: 58px;
    text-align: center;
    background: var(--tf-manteiga-claro);
    border-radius: 12px;
    padding: 6px 4px;
    line-height: 1.1;
}

.data-especial .quando b {
    display: block;
    font-size: 1.25rem;
    color: var(--tf-tomate);
}

.data-especial .quando small {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--tf-marrom-suave);
}

.data-especial.hoje .quando {
    background: var(--tf-tomate);
}

.data-especial.hoje .quando b,
.data-especial.hoje .quando small {
    color: #fff;
}

.data-especial .info {
    flex: 1;
    min-width: 0;
}

.data-especial .info a {
    color: var(--tf-marrom);
    text-decoration: none;
}

.data-especial .info a:hover {
    color: var(--tf-tomate);
}

.btn-whats {
    background: #1F8F4E;
    color: #fff;
    border: none;
    border-radius: 10px;
    font-weight: 800;
}

.btn-whats:hover {
    background: #187340;
    color: #fff;
}

.ficha-numero {
    background: var(--tf-manteiga-claro);
    border-radius: 14px;
    padding: 12px 14px;
    height: 100%;
}

.ficha-numero small {
    display: block;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--tf-forno);
}

.ficha-numero b {
    font-size: 1.3rem;
    font-weight: 900;
    color: var(--tf-marrom);
}

.cupom-ticket {
    border: 2px dashed var(--tf-tomate);
    border-radius: 12px;
    background: var(--tf-papel);
    padding: 8px 12px;
}

.cupom-ticket .codigo {
    font-weight: 900;
    letter-spacing: 0.08em;
    color: var(--tf-tomate);
}

/* Responsivo */
@media (max-width: 768px) {
    .pdv-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    .pdv-item {
        padding: 12px 4px;
    }

    .pdv-item .item-nome {
        font-size: 0.75rem;
    }

    .comanda-panel {
        height: auto;
        min-height: 300px;
    }

    .card-stat .card-value {
        font-size: 1.4rem;
    }

    .btn-lg {
        padding: 10px 16px;
        font-size: 1rem;
    }
}

@media (max-width: 576px) {
    .pdv-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .pagamento-opcao {
        padding: 12px;
    }

    .pagamento-opcao .pagamento-icon {
        font-size: 1.5rem;
    }

    .ficha-linha {
        flex-wrap: wrap;
    }
}

/* Scrollbar customizada */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--tf-borda-suave);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: #D9964F;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--tf-tomate);
}

/* Animacao */
.fade-in {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* V2: navegação lateral e ícones SVG */
.tf-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.tf-icon { display: inline-block; width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -0.18em; }
.tf-icon + span, .tf-icon + strong { margin-left: .1em; }
.card-icon .tf-icon, .pagamento-icon .tf-icon, .erro-icon .tf-icon { width: 1em; height: 1em; }
.tf-shell { min-height: 100vh; }
.tf-sidebar { position: fixed; z-index: 1040; inset: 0 auto 0 0; display: flex; flex-direction: column; width: 258px; background: var(--tf-tomate); color: #fff; box-shadow: 5px 0 22px rgb(var(--tf-sombra) / .18); }
.tf-sidebar-brand { min-height: 90px; display: flex; align-items: center; justify-content: space-between; padding: 20px 18px 14px; border-bottom: 1px solid rgb(255 255 255 / .18); }
.tf-sidebar-brand a { display: flex; align-items: center; min-width: 0; }
.tf-sidebar-brand img { display: block; width: 170px; max-height: 50px; object-fit: contain; object-position: left center; }
.tf-sidebar-nav { flex: 1; min-height: 0; overflow-y: auto; padding: 13px 10px; }
.tf-nav-group + .tf-nav-group { margin-top: 19px; }
.tf-nav-heading { display: block; padding: 4px 14px 8px; color: var(--tf-manteiga); font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.tf-nav-link { display: flex; align-items: center; gap: 11px; min-height: 42px; padding: 9px 13px; margin: 2px 0; border-radius: 11px; color: rgb(255 255 255 / .87); text-decoration: none; font-size: .9rem; font-weight: 800; transition: background .16s, color .16s; }
.tf-nav-link .tf-icon { width: 19px; height: 19px; }
.tf-nav-link:hover, .tf-nav-link:focus-visible { background: rgb(255 255 255 / .12); color: #fff; }
.tf-nav-link.active, .tf-nav-link[aria-current="page"] { background: var(--tf-papel); color: var(--tf-tomate-escuro); box-shadow: inset 4px 0 var(--tf-forno); }
.tf-sidebar-bottom { padding: 10px; border-top: 1px solid rgb(255 255 255 / .18); overflow-y: auto; max-height: 43vh; }
.tf-user-card { display: flex; align-items: center; gap: 10px; padding: 8px 11px 12px; }
.tf-user-avatar { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 10px; background: rgb(255 255 255 / .16); }
.tf-user-details { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.tf-user-details strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .84rem; }
.tf-user-details small { color: var(--tf-manteiga); font-size: .7rem; }
.tf-nav-signout { margin-top: 5px; border-top: 1px solid rgb(255 255 255 / .18); border-radius: 0 0 11px 11px; }
.tf-main { min-width: 0; margin-left: 258px; display: flex; min-height: 100vh; flex-direction: column; }
.tf-main main { flex: 1; min-width: 0; width: 100%; }
.tf-main footer { padding-left: 15px; padding-right: 15px; }
.tf-mobile-bar, .tf-sidebar-close, .tf-sidebar-scrim { display: none; }
body.tf-menu-open { overflow: hidden; }

@media (max-width: 991.98px) {
    .tf-main { margin-left: 0; }
    .tf-mobile-bar { display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 9px 16px; background: var(--tf-papel); border-bottom: 1px solid var(--tf-borda-suave); box-shadow: 0 3px 12px rgb(var(--tf-sombra) / .07); }
    .tf-mobile-bar img { height: 36px; width: auto; max-width: 180px; }
    .tf-sidebar-open, .tf-sidebar-close { display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 10px; background: var(--tf-manteiga-claro); color: var(--tf-tomate-escuro); }
    .tf-sidebar-close { background: rgb(255 255 255 / .14); color: #fff; }
    .tf-sidebar { width: min(280px, 86vw); transform: translateX(-105%); transition: transform .22s ease; }
    .tf-menu-open .tf-sidebar { transform: translateX(0); }
    .tf-menu-open .tf-sidebar-scrim { display: block; position: fixed; inset: 0; z-index: 1035; width: 100%; height: 100%; border: 0; background: rgb(39 25 20 / .58); }
}

/* Impressao (cupom / relatorios) */
@media print {
    .navbar, .tf-sidebar, .tf-sidebar-scrim, .tf-mobile-bar, .no-print, footer { display: none !important; }
    .tf-main { margin-left: 0 !important; }
    body { background: #fff; }
}
