/* ========== RESPONSIVO GLOBAL ========== */
* { box-sizing: border-box; margin: 0; padding: 0; }

body { overflow-x: hidden; }

/* Container padrão para conteúdo principal */
.container-page {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px 16px;
  width: 100%;
}

/* Cards */
.card {
  padding: 20px;
  border-radius: 16px;
  background: var(--bg-primary, #fff);
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  margin-bottom: 16px;
}

/* Grids responsivos */
.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

/* Media Queries base */
@media (max-width: 768px) {
  body { font-size: 15px; }
  .container-page { padding: 16px; }
  .card { padding: 16px; }
  .linha-dupla, .linha { flex-direction: column; }
  .cards { grid-template-columns: 1fr; }
  .grade-publicos { grid-template-columns: 1fr; }
  .aba-btn { padding: 8px 12px; font-size: 13px; }
}

@media (max-width: 600px) {
  .grid-2 { grid-template-columns: 1fr; }
  .container-page { padding: 12px; }
  .card { padding: 14px; }
  h2 { font-size: 1.3rem; }
}

@media (max-width: 480px) {
  .modal-caixa { padding: 16px; }
  .opcao-tipo { padding: 10px; }
  .slot-card { flex-direction: column; align-items: flex-start; }
  .btn-sm { width: 100%; margin-bottom: 6px; }
  .resumo-chip { font-size: 12px; padding: 6px 10px; }
}

/* Ajustes para elementos fixos em mobile */
@media (max-width: 600px) {
  .painel { transform: translateY(calc(100% - 160px)); max-height: 85vh; }
  .btn-local { bottom: 170px; }
  .barra-topo { padding: 12px; }
}

/* Ajustes para modais */
.modal-fundo { padding: 12px; }
.modal-caixa {
  max-height: 90vh;
  overflow-y: auto;
  padding: 20px;
}