/* Responsividade do sistema — folha única, carregada por todas as telas.
 *
 * Auditoria de 13/08/2026: 18 das 21 telas não tinham NENHUMA media query.
 * Foram feitas para monitor e nunca adaptadas para celular. Os três problemas
 * que aparecem em quase todas:
 *
 *   1. gavetas e modais com largura fixa (460px, 480px, 420px, 540px) — mais
 *      largos que a tela de um celular de 375px, então o conteúdo sai pela
 *      direita e o botão de fechar fica inalcançável;
 *   2. tabelas sem rolagem horizontal — a linha empurra a página inteira e o
 *      corpo passa a rolar de lado, embaralhando tudo;
 *   3. barras de filtros e botões em linha única, que espremem a ponto de o
 *      texto virar duas letras por linha.
 *
 * Aqui está o mínimo que resolve os três sem tocar no layout de desktop:
 * TUDO está dentro de @media (max-width: 768px).
 */

@media (max-width: 768px) {

  /* ── 1. Gavetas e modais ocupam a tela inteira ─────────────────────────── */
  .orc-drawer,
  .drawer,
  .lara-modal,
  .modal,
  [class*="drawer"],
  [class*="modal-card"] {
    width: 100vw !important;
    max-width: 100vw !important;
    left: 0 !important;
    right: 0 !important;
    border-radius: 0 !important;
  }
  /* a gaveta entra pela direita: fechada fica fora da tela inteira */
  .orc-drawer:not(.open),
  .drawer:not(.open) {
    right: -100vw !important;
  }
  .orc-drawer.open,
  .drawer.open {
    right: 0 !important;
  }

  /* ── 2. Tabela rola dentro dela mesma, nunca empurra a página ──────────── */
  table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  table thead th,
  table tbody td {
    white-space: nowrap;
  }
  /* a coluna de ações não precisa de espaço fixo no celular */
  table td:last-child {
    white-space: normal;
  }

  /* ── 3. Filtros e botões empilham em vez de espremer ───────────────────── */
  .filtros,
  .filtros-linha,
  .toolbar,
  .acoes,
  .header-acoes {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  .filtros select,
  .filtros input,
  .toolbar select,
  .toolbar input {
    flex: 1 1 140px;
    min-width: 0;
  }

  /* ── 4. Respiro geral: menos padding, título menor ─────────────────────── */
  .container,
  .conteudo,
  main {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  h1 { font-size: 20px !important; }
  h2 { font-size: 17px !important; }

  /* ── 5. Nada pode ultrapassar a largura da tela ────────────────────────── */
  img,
  canvas,
  pre,
  iframe {
    max-width: 100% !important;
    height: auto;
  }
  /* min-width fixo é a causa nº 1 de estouro herdado do desktop */
  .card,
  .bloco,
  .painel,
  .grid > * {
    min-width: 0 !important;
  }

  /* ── 6. Alvo de toque decente (Apple recomenda 44px) ───────────────────── */
  button,
  .btn,
  select,
  input[type="date"],
  input[type="text"],
  input[type="number"] {
    min-height: 40px;
  }
}

/* Celular pequeno (iPhone SE e similares) */
@media (max-width: 380px) {
  h1 { font-size: 18px !important; }
  .chip-st { font-size: 11px !important; padding: 4px 9px !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
 *  TABELA VIRA CARTÃO  —  telas de Orçamentos e Encomendas
 *
 *  Rolar de lado para ler uma linha é péssimo no celular: você perde o nome do
 *  cliente ao ir buscar o valor. Cada linha vira um cartão com o rótulo ao lado
 *  do dado, lido do atributo data-r de cada célula.
 *  Vale só até 768px — no computador a tabela continua tabela.
 * ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  table.cards,
  table.cards tbody,
  table.cards tr,
  table.cards td {
    display: block;
    width: 100%;
  }
  table.cards { overflow: visible; }
  table.cards thead { display: none; }

  table.cards tr {
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
    padding: 12px 14px;
    margin-bottom: 10px;
  }

  table.cards td {
    border: none !important;
    padding: 5px 0 !important;
    max-width: none !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    display: flex;
    gap: 10px;
    align-items: baseline;
    /* nome de cliente longo ("Instituto Inner - Ana Dias ou Flávia Almeida")
       precisa quebrar linha; sem isto o texto vaza pela direita do cartão */
    overflow-wrap: anywhere;
  }
  /* o conteúdo da célula é o segundo item do flex: pode encolher e quebrar */
  table.cards td > * {
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  /* o rótulo da coluna, que no computador está no cabeçalho */
  table.cards td[data-r]::before {
    content: attr(data-r);
    flex: 0 0 78px;
    color: #9aa0a6;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    line-height: 1.7;
  }
  /* célula sem rótulo (a dos botões) ocupa a largura toda */
  table.cards td:not([data-r]) { display: block; padding-top: 10px !important; }

  /* botões de ação: linha própria, alcançáveis com o polegar */
  table.cards .actions {
    display: flex !important;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
  }
  table.cards .actions .btn {
    /* quatro botões não cabem numa linha de celular: cada um ocupa metade e
       eles descem em duas fileiras, em vez de o último ficar cortado */
    flex: 1 1 calc(50% - 3px);
    min-height: 40px;
    font-size: 12px;
    white-space: nowrap;
  }

  /* a linha de "nenhum resultado" não vira cartão */
  table.cards td.empty {
    display: block;
    text-align: center;
    color: #999;
    padding: 24px 0 !important;
  }
  table.cards td.empty::before { content: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
 *  TELA DE ATENDIMENTO (Lara)
 *
 *  Não é tabela: é lista de conversas com cartão que expande. O que quebra no
 *  celular são as larguras herdadas do computador — a prévia da mensagem corta
 *  em 260px, os campos de busca exigem 180px cada e o container tem 24px de
 *  margem de cada lado, que no celular são 48px roubados da leitura.
 * ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .container { margin: 16px auto !important; padding: 0 12px !important; }

  /* prévia da conversa usa a largura que tiver */
  .conversa-preview,
  .conversa-nome,
  .conversa-ultima { max-width: 100% !important; }

  /* campos de busca e filtro empilham em vez de espremer */
  #nm-novo-wrap input,
  .busca-wrap input,
  input[type="search"] { min-width: 0 !important; flex: 1 1 100% !important; }
  #nm-novo-wrap > div { flex-direction: column !important; }

  /* cabeçalho do cartão: nome e ações em duas linhas, não espremidos */
  .conversa-header { flex-wrap: wrap !important; gap: 8px !important; }
  .conversa-acoes { width: 100%; display: flex; flex-wrap: wrap; gap: 6px; }
  .conversa-acoes .btn { flex: 1 1 auto; min-height: 38px; }

  /* balões de mensagem podem usar quase toda a largura */
  .msg-bolha { max-width: 88% !important; }

  /* a caixa de digitar não pode ficar espremida contra o botão */
  .envio-wrap { flex-wrap: wrap !important; gap: 8px !important; }
  .envio-wrap textarea,
  .envio-wrap input[type="text"] { flex: 1 1 100% !important; min-width: 0 !important; }
}
