/* ============================================================
   Responsivo — celular, tablet e app Android (WebView)
   A mesma aplicação roda no navegador, no .exe e no APK.
   ============================================================ */

/* --- botão do menu e selo de conexão (desktop: escondidos) --- */
.hamb{display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;
  color:var(--navy);align-items:center;justify-content:center;cursor:pointer;flex:none}
.hamb svg{width:20px;height:20px}
.conexao{display:flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:999px;
  background:#EFF7F2;color:#1E7B57;font-size:11.6px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.conexao i{width:7px;height:7px;border-radius:50%;background:#1E9A93;box-shadow:0 0 0 3px rgba(30,154,147,.16)}
.conexao.off{background:#FBEDEB;color:#96281C}
.conexao.off i{background:#C0392B;box-shadow:0 0 0 3px rgba(192,57,43,.14)}
.conexao.sync{background:#FFF6E5;color:#8A5A11}
.conexao.sync i{background:#B98B2E;box-shadow:0 0 0 3px rgba(185,139,46,.16)}
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(8,26,49,.5);z-index:59;
  backdrop-filter:blur(2px);opacity:0;transition:opacity .18s}
.drawer-bg.on{display:block;opacity:1}

/* --- aviso de alterações vindas de outro dispositivo --- */
.aviso-sync{display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:12px;margin-bottom:16px;
  background:#FFF8EA;border:1px solid #F0DFB8;color:#7A5410;font-size:13px}
.aviso-sync b{font-weight:700}
.aviso-sync .btn{margin-left:auto}

/* ============================ TABLET ============================ */
@media (max-width:1180px){
  .g-kpi{grid-template-columns:repeat(2,1fr)}
  .wrap{padding:20px 20px 44px}
}

/* ============================ CELULAR =========================== */
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .hamb{display:flex}

  /* menu lateral vira gaveta */
  .side{position:fixed;left:0;top:0;bottom:0;width:272px;z-index:60;transform:translateX(-100%);
    transition:transform .22s cubic-bezier(.4,0,.2,1);height:100dvh;box-shadow:0 0 60px rgba(8,26,49,.4)}
  .side.aberta{transform:translateX(0)}
  .nav{padding-bottom:26px}
  #userChip{display:flex;padding-bottom:calc(14px + env(safe-area-inset-bottom))}

  .top{padding:10px 14px;gap:10px}
  .top h1{font-size:15.5px}
  .top .crumb{font-size:11px}
  .top #btnNovoOrc{font-size:12.6px;height:38px;padding:0 12px}
  .top #btnNovoOrc span{display:none}
  .conexao{display:none}

  .wrap{padding:14px 12px calc(30px + env(safe-area-inset-bottom))}

  .g-kpi{grid-template-columns:1fr 1fr;gap:12px}
  .kpi{padding:14px 15px}
  .kpi .vl{font-size:19px}
  .g-2{grid-template-columns:1fr}
  .grid{gap:12px}

  .card{border-radius:12px}
  .card-h{padding:14px 15px}
  .card-b{padding:15px}
  .card-h h3{font-size:12.6px}

  /* tabelas: rolagem horizontal em vez de esmagar */
  .card>.tbl{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .card>.tbl tbody,.card>.tbl thead{display:table;width:100%;min-width:560px}
  .tbl th{padding:10px 12px;font-size:10px}
  .tbl td{padding:11px 12px;font-size:12.6px}
  .rowact{gap:4px}

  /* barra do editor */
  .editbar{flex-wrap:wrap;gap:8px;padding:13px 14px;border-radius:12px}
  .editbar .num{font-size:16px}
  .editbar .st{font-size:11px}
  .editbar .btn{height:36px;font-size:12.4px;padding:0 11px}
  .editbar .btn span{display:none}
  .editbar .sp{display:none}
  .editbar .badge{margin-left:auto}

  /* editor em coluna única */
  .f-row{grid-template-columns:1fr!important}
  .itens-linha{grid-template-columns:1fr!important}
  .itens-linha .edit-x{position:absolute;right:6px;top:6px}

  /* modais ocupam a tela */
  .modal{max-width:100%!important;border-radius:16px 16px 0 0;max-height:92dvh;display:flex;flex-direction:column}
  .modal-bg{align-items:flex-end;padding:0}
  .modal-b{overflow:auto;flex:1}
  .modal-f{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .picker .list{max-height:52dvh}

  /* documento / impressão */
  .print-tb{flex-wrap:wrap;padding:12px}
  .print-tb .btn{height:40px;font-size:12.6px;flex:1}
  .print-bg{padding:10px 6px 80px}

  /* login */
  .login-card{max-width:420px}
  .login-body{padding:30px 24px}
  #login{padding:16px}

  /* botões de toque confortáveis */
  .btn{min-height:38px}
  .ico-btn{width:34px;height:34px}
  input,select,textarea{font-size:16px} /* evita zoom automático no iOS/Android */
  .field input,.field select,.field textarea{height:42px}
  textarea{height:auto}
}

@media (max-width:430px){
  /* mantém 2 colunas: 8 indicadores em 4 linhas em vez de 8 */
  .g-kpi{gap:10px}
  .kpi{padding:12px 12px}
  .kpi .lb{font-size:9.4px;letter-spacing:.12em}
  .kpi .vl{font-size:17px;margin-top:4px}
  .kpi .dt{font-size:10.6px;line-height:1.35}
  .top h1{font-size:14.5px}
  .top .crumb{display:none}
  .top #btnNovoOrc{padding:0 10px}
}

/* ============================ IMPRESSÃO =========================== */
@media print{
  .side,.top,.drawer-bg,.conexao,.aviso-sync{display:none!important}
  .app{grid-template-columns:1fr}
  .wrap{padding:0;max-width:none}
}
