/* Responsivo global — evita overflow horizontal e melhora mobile */

html {
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: clip;
  max-width: 100vw;
}

img,
video,
svg {
  max-width: 100%;
  height: auto;
}

.container,
.container-main,
main {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.card,
.operacional-lista-card,
.operacional-secao,
.fin-layout,
.kanban-board,
.admin-usuarios-grid {
  max-width: 100%;
  min-width: 0;
}

.table-wrap,
.operacional-tabela-wrap,
.fin-tabela-wrap,
.table-wrap-itens-pedido {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Menu drawer a partir de tablet (evita links minúsculos com scroll) */
@media (max-width: 1100px) {
  .nav-user-meta {
    display: none;
  }
  .header-fixo {
    z-index: 1003;
  }
  .nav-toggle {
    display: flex;
    width: 2.75rem;
    height: 2.75rem;
    margin-left: auto;
  }
  .nav-principal {
    position: fixed;
    top: var(--nav-h);
    right: 0;
    z-index: 1002;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    width: min(16rem, 84vw);
    height: calc(100dvh - var(--nav-h));
    padding: 0.85rem 1rem 1.5rem;
    gap: 0.2rem;
    overflow-x: hidden;
    overflow-y: auto;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-hover) 100%);
    box-shadow: -6px 0 24px rgba(0, 0, 0, 0.22);
    transform: translateX(100%);
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    flex: none;
  }
  body.nav-open .nav-principal {
    transform: translateX(0);
  }
  body.nav-open .nav-overlay {
    display: block;
  }
  body.nav-open {
    overflow: hidden;
  }
  .header nav a {
    font-size: 0.95rem;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    white-space: normal;
  }
  .header nav a.nav-logout {
    margin-top: 0.65rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding-top: 0.85rem;
  }
  .nav-cliente-badge {
    font-size: 0.68rem;
    max-width: 6.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

@media (max-width: 768px) {
  :root {
    --nav-h: 2.85rem;
    --fs-base: 0.875rem;
    --fs-sm: 0.8rem;
  }

  .page-title {
    font-size: 1.15rem;
    line-height: 1.25;
    word-break: break-word;
  }

  .page-lead {
    font-size: 0.88rem;
  }

  /* Kanban */
  .kanban-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }
  .kanban-board {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    overflow-x: visible;
  }
  .kanban-col {
    min-width: 0;
    width: 100%;
  }

  /* Financeiro */
  .fin-top {
    flex-direction: column;
    align-items: stretch;
  }
  .fin-top-sync {
    width: 100%;
    flex-wrap: wrap;
  }
  .fin-busca-row {
    flex-direction: column;
    align-items: stretch;
  }
  .fin-busca-row .btn,
  .fin-busca-input {
    width: 100%;
    min-width: 0;
  }
  .fin-metricas-grid,
  .fin-fila-grid,
  .fin-kpis {
    grid-template-columns: 1fr !important;
  }
  .fin-tabs-nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
  }
  .fin-tab {
    flex-shrink: 0;
  }

  /* Operacional — lista e filtros (detalhes em operacional.css) */
  .operacional-filtro-busca,
  .operacional-filtro-status-sel {
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
  }
  .operacional-relatorios {
    flex-direction: column;
    align-items: stretch;
  }
  .operacional-relatorios-btns .btn {
    width: 100%;
    text-align: center;
  }
  .operacional-grid-cabecalho {
    grid-template-columns: 1fr 1fr;
  }

  .operacional-lista-card {
    padding: 0.65rem 0.5rem;
  }

  .operacional-ajuda {
    font-size: 0.92rem;
  }

  .ajuda-resumo-status {
    flex-direction: column;
    align-items: flex-start;
  }

  /* TV (dentro do base com header) */
  .tv-dash__head {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .tv-dash__status {
    align-items: center;
  }
  .tv-dash__grid {
    grid-template-columns: 1fr;
  }
  .tv-dash__wide {
    grid-column: span 1;
  }
}

@media (max-width: 640px) {
  .container,
  .container-main {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .operacional-grid-cabecalho {
    grid-template-columns: 1fr;
  }

  .header-marca {
    flex: 1;
    min-width: 0;
  }

  .logo-carvalho-nome {
    font-size: 0.72rem;
  }

  .painel-layout {
    grid-template-columns: 1fr;
  }

  .painel-sidebar {
    position: static;
    max-height: none;
  }

  .resumo-cards-compact {
    grid-template-columns: 1fr 1fr;
  }

  .admin-usuarios-grid {
    grid-template-columns: 1fr;
  }

  .admin-senha-form {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-senha-form input[type="password"] {
    width: 100%;
  }
}

/* TV standalone (base_tv) */
@media (max-width: 768px) {
  .tv-body {
    overflow-x: clip;
    padding: 0.5rem;
  }
  .tv-dash {
    min-height: auto;
  }
  .tv-dash__bar-row {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}
