/* ══ RESPONSIVE ══ */
@media (max-width: 1024px) { .chart-grid { grid-template-columns: 1fr; } }

/* Sidebar vira overlay em telas menores que 900px mas maiores que 768px */
@media (max-width: 900px) {
  .sidebar { transform: translateX(-100%); }
  .sidebar.open { transform: translateX(0); }
  .main { margin-left: 0; }
}

@media (max-width: 768px) {
  .sidebar { transform: translateX(-100%); width: 260px; padding-top: 66px; }
  .sidebar.open { transform: translateX(0); }
  .mobile-header { display: flex; }
  .bottom-nav { display: flex; flex-direction: column; }
  body { display: block; }
  .main { margin-left: 0; padding: 14px; padding-top: calc(54px + 14px); padding-bottom: calc(var(--nav-h) + 14px); }
  .page-header { margin-bottom: 14px; }
  .page-header h2 { font-size: 1.35rem; }
  .cards { grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
  .card { padding: 14px 12px; }
  .card-value { font-size: 1.3rem; }
  .insumos-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .prec-insumo-linha { grid-template-columns: 1fr 80px 28px; }
  .prec-insumo-linha .linha-custo-display { display: none; }
  thead { display: none; }
  table { min-width: unset; }
  tr { display: block; }
  td { display: none; }
  .row-card { display: block; }
  .form-row { grid-template-columns: 1fr; }
  .modal-overlay { align-items: flex-end; padding: 0; }
  .modal { border-radius: var(--r) var(--r) 0 0; max-width: 100%; padding: 22px 18px; padding-bottom: calc(env(safe-area-inset-bottom) + 18px); animation: sheetUp .28s ease; }
  @keyframes sheetUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
  .modal-footer { flex-direction: column-reverse; }
  .modal-footer .btn { width: 100%; justify-content: center; }
  .rel-summary { grid-template-columns: 1fr 1fr; }
  .toast { bottom: calc(var(--nav-h) + 10px); right: 10px; left: 10px; max-width: unset; }
}

@media (max-width: 380px) {
  .cards { grid-template-columns: 1fr; }
  .insumos-grid { grid-template-columns: 1fr; }
  .rel-summary { grid-template-columns: 1fr; }
  .bottom-nav button { font-size: .53rem; }
  .bnav-svg { width: 18px; height: 18px; }
}
