/* Camada para celular — Assessoria ME v3 (iPhone e Android) (só na TELA até 900px; impressão não é afetada) */
.app-barra, .app-fundo, .app-fechar, .app-gaveta, .app-tabs { display: none; }
@media screen and (max-width: 900px) {
  html, body { height: auto !important; min-height: 100% !important; overflow: auto !important; overflow-x: hidden !important; }
  body { padding-top: calc(54px + env(safe-area-inset-top, 0px)) !important; -webkit-text-size-adjust: 100%; }
  body.app-com-abas { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)) !important; }
  body.app-sem-menu { padding-top: 0 !important; }
  /* barra fixa do app */
  .app-barra { display: flex; position: fixed; top: 0; left: 0; right: 0; height: calc(54px + env(safe-area-inset-top, 0px)); z-index: 9100; align-items: center; gap: 10px; padding: env(safe-area-inset-top, 0px) max(10px, env(safe-area-inset-right, 0px)) 0 max(10px, env(safe-area-inset-left, 0px));
               background: #1a252f; color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.25); font-family: Inter, system-ui, Arial, sans-serif; }
  .app-barra .app-menu-bt { width: 42px; height: 42px; border: 0; border-radius: 8px; background: rgba(255,255,255,.1); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; flex-shrink: 0; }
  .app-barra .app-menu-bt:active { background: rgba(255,255,255,.25); }
  .app-barra .app-tit { flex: 1; min-width: 0; font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .app-barra .app-tit span { color: #d4af6a; }
  .app-barra .app-instalar { border: 1px solid #d4af6a; background: transparent; color: #f1d9a6; border-radius: 8px; padding: 7px 10px; font: 600 12px Inter, system-ui, sans-serif; cursor: pointer; white-space: nowrap; }
  .app-barra .app-instalar[hidden] { display: none; }
  /* sem o menu único: a própria lista da página vira gaveta */
  .app-side-gaveta { position: fixed !important; top: 0 !important; left: 0 !important; bottom: 0 !important; height: auto !important; width: 84vw !important; max-width: 310px !important;
              z-index: 9300 !important; transform: translateX(-108%) !important; transition: transform .25s ease !important; overflow-y: auto !important;
              -webkit-overflow-scrolling: touch; box-shadow: 6px 0 28px rgba(0,0,0,.4) !important; display: flex !important; flex-direction: column; margin: 0 !important; visibility: visible !important; }
  body.app-menu-aberto .app-side-gaveta { transform: none !important; }
  body.app-tem-gaveta .app-side { display: none !important; }
  /* aparência padrão da gaveta (vale também para páginas cujo menu vem sem estilo) */
  .app-side-gaveta { background: #1a252f !important; color: #ecf0f1 !important; padding: 0 0 20px !important; font-family: Inter, system-ui, Arial, sans-serif; }
  .app-side-gaveta ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
  .app-side-gaveta li { list-style: none !important; }
  .app-side-gaveta a { display: block !important; color: #ecf0f1 !important; text-decoration: none !important; padding: 12px 20px !important; font-size: 15px !important; border-left: 3px solid transparent; }
  .app-side-gaveta a:active, .app-side-gaveta a.active, .app-side-gaveta a.ativo { background: #2c3e50 !important; border-left-color: #3498db; }
  .app-side-gaveta .menu-title, .app-side-gaveta .titulo, .app-side-gaveta li:not(:has(a)) { color: #7f8c8d !important; font-size: 11px !important; text-transform: uppercase; font-weight: 700; padding: 16px 20px 6px !important; letter-spacing: .05em; }
  .app-side-gaveta .sidebar-header { padding: 18px 20px !important; font-size: 19px; font-weight: 700; }
  .app-fechar { display: block; position: sticky; top: 0; align-self: flex-end; margin: 8px 8px -44px auto; width: 36px; height: 36px; border: 0; border-radius: 50%;
                background: rgba(0,0,0,.35); color: #fff; font-size: 18px; cursor: pointer; z-index: 2; flex-shrink: 0; }

  /* ---------- gaveta do app (menu único) ---------- */
  .app-gaveta { display: flex; flex-direction: column; position: fixed; top: 0; left: 0; bottom: 0; width: 86vw; max-width: 330px; z-index: 9300; background: #13202c; color: #e2e8f0;
                transform: translateX(-108%); transition: transform .25s ease; box-shadow: 6px 0 28px rgba(0,0,0,.45); font-family: Inter, system-ui, -apple-system, Arial, sans-serif;
                padding: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); }
  body.app-menu-aberto .app-gaveta { transform: none; }
  .app-g-cab { display: flex; align-items: center; justify-content: space-between; padding: 14px 14px 10px 18px; }
  .app-g-marca { font-weight: 800; font-size: 19px; color: #fff; } .app-g-marca span { color: #d4af6a; }
  .app-g-x { width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; font-size: 17px; cursor: pointer; }
  .app-g-busca { padding: 0 14px 10px; } .app-g-busca input { width: 100%; box-sizing: border-box; border: 1px solid #2c3e50; background: #0b1520; color: #fff; border-radius: 10px; padding: 11px 12px; font-size: 16px !important; outline: none; }
  .app-g-busca input:focus { border-color: #d4af6a; }
  .app-g-corpo, .app-g-res { overflow-y: auto; -webkit-overflow-scrolling: touch; flex: 1; padding-bottom: 18px; }
  .app-it { display: flex; align-items: center; gap: 8px; color: #e2e8f0 !important; text-decoration: none !important; padding: 12px 18px; font-size: 15px; border-left: 3px solid transparent; line-height: 1.3; }
  .app-it:active { background: #22344a; } .app-it.app-atual { background: #1d3147; border-left-color: #d4af6a; color: #fff !important; font-weight: 700; }
  .app-it small { margin-left: auto; color: #7f8c9b; font-size: 11px; } .app-it.app-top { font-weight: 600; }
  .app-grp-t { display: flex; width: 100%; align-items: center; justify-content: space-between; background: none; border: 0; border-top: 1px solid #1d2b3a; color: #9fb0c3; text-align: left;
               padding: 14px 18px; font-size: 12.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; min-height: 0; }
  .app-grp-t::after { content: '▸'; transition: transform .2s; font-size: 13px; } .app-grp.on .app-grp-t { color: #fff; } .app-grp.on .app-grp-t::after { transform: rotate(90deg); }
  .app-grp-i { display: none; padding-bottom: 6px; } .app-grp.on .app-grp-i { display: block; } .app-grp-i .app-it { padding-left: 26px; font-size: 14.5px; }
  .app-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; } .app-pend { background: #f39c12; color: #111; border-radius: 9px; padding: 0 6px; font-size: 11px; margin-left: auto; }
  .app-sair { margin-top: 10px; border-top: 1px solid #1d2b3a; color: #fca5a5 !important; } .app-vazio { padding: 18px; color: #7f8c9b; text-align: center; }
  /* ---------- barra inferior de atalhos ---------- */
  .app-tabs { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9050; background: #13202c; border-top: 1px solid #22344a; box-shadow: 0 -4px 16px rgba(0,0,0,.18);
              padding: 4px max(4px, env(safe-area-inset-right, 0px)) calc(4px + env(safe-area-inset-bottom, 0px)) max(4px, env(safe-area-inset-left, 0px)); font-family: Inter, system-ui, -apple-system, Arial, sans-serif; }
  .app-tab { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 2px; color: #9fb0c3 !important; text-decoration: none !important; font-size: 11px; font-weight: 600;
             background: none; border: 0; cursor: pointer; min-height: 52px; border-radius: 10px; -webkit-tap-highlight-color: transparent; }
  .app-tab span { font-size: 21px; line-height: 1.1; position: relative; } .app-tab span b { position: absolute; top: -4px; right: -12px; background: #f39c12; color: #111; border-radius: 9px; font-size: 10px; padding: 0 5px; }
  .app-tab.on { color: #fff !important; background: #1d3147; } .app-tab:active { background: #22344a; }
  body.app-menu-aberto .app-tabs { visibility: hidden; }
  .app-fundo { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 9200; opacity: 0; pointer-events: none; transition: opacity .25s; }
  body.app-menu-aberto .app-fundo { opacity: 1; pointer-events: auto; }
  body.app-menu-aberto { overflow: hidden !important; }
  /* estrutura das páginas: uma coluna */
  .app-casca { display: block !important; height: auto !important; min-height: 0 !important; overflow: visible !important; }
  .app-conteudo { margin-left: 0 !important; padding-left: 0 !important; width: auto !important; box-sizing: border-box !important; max-width: 100% !important; min-width: 0 !important;
                  height: auto !important; overflow: visible !important; display: block !important; flex: none !important; position: static !important; }
  .layout, .main-content, main { display: block !important; height: auto !important; overflow: visible !important; }
  .topbar, .topo { height: auto !important; min-height: 0; padding: 10px 12px !important; gap: 8px; flex-wrap: wrap !important; position: static !important; }
  .topbar h1, .topbar h2, .topbar h3, .topo h1, .topo h2 { font-size: 17px !important; margin: 0 !important; line-height: 1.25; }
  .content-area, .conteudo, .container { padding: 12px !important; overflow: visible !important; }
  .card { padding: 14px !important; border-radius: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .grid-form, .form-grid, .grade, .grid, .grid-2, .grid-3, .resumo { grid-template-columns: 1fr !important; }
  .form-group.full-width, .span2, .span3, .span4, [style*="grid-column"] { grid-column: 1 / -1 !important; }
  .grid-form > *, .form-grid > *, .grade > *, .grid > *, .form-group { min-width: 0; }
  input, select, textarea { font-size: 16px !important; max-width: 100%; min-width: 0; }
  .form-group input:not([type=checkbox]):not([type=radio]), .form-group select, .form-group textarea { width: 100%; box-sizing: border-box; }
  .btn, .btn-new, .btn-action, button { min-height: 38px; }
  img, video, iframe { max-width: 100%; height: auto; }
  /* tabelas de listagem viram cartões */
  table.app-cards { min-width: 0 !important; width: 100% !important; border: 0 !important; table-layout: auto !important; }
  table.app-cards thead, table.app-cards colgroup, table.app-cards tr.app-cab { display: none !important; }
  table.app-cards, table.app-cards tbody { display: block; }
  table.app-cards tr { display: flex; flex-direction: column; border: 1px solid #e0e6ed; border-radius: 10px; margin: 0 0 10px; padding: 6px 12px; background: #fff !important; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
  table.app-cards td { display: flex; gap: 10px; justify-content: space-between; align-items: flex-start; border: 0 !important; border-bottom: 1px dashed #eef2f6 !important;
                       padding: 7px 0 !important; text-align: right !important; min-width: 0 !important; width: auto !important; }
  table.app-cards td:last-child { border-bottom: 0 !important; }
  table.app-cards td::before { content: attr(data-label); font-weight: 600; font-size: 11.5px; color: #7f8c8d; text-transform: uppercase; letter-spacing: .03em; text-align: left; flex-shrink: 0; max-width: 42%; }
  table.app-cards td[data-label=""]::before { display: none; }
  table.app-cards td.app-acoes { flex-wrap: wrap; justify-content: flex-start; text-align: left !important; gap: 6px; padding-top: 10px !important; }
  table.app-cards td.app-acoes::before { width: 100%; max-width: none; }
  table.app-cards td.app-acoes > * { width: auto !important; }
  table.app-cards td.app-titulo { order: -1; font-size: 15px; font-weight: 700; text-align: left !important; justify-content: flex-start; }
  table.app-cards td.app-titulo::before { display: none; }
}
@media (display-mode: standalone) { body { overscroll-behavior-y: contain; } }
