/* ========================================
   OpenCities - Layout
   ======================================== */

/* Grid */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.grid-2-col { grid-template-columns: 1fr 2fr; }
.grid-2-col-compact { grid-template-columns: 1fr 3fr; gap: 1rem; }
.grid-3-col { grid-template-columns: repeat(3, 1fr); }

/* Dashboard Grid - estilo do site */
.dashboard-grid {
  margin-top: 1.25rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.info-row {
  margin-top: 1.5rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.finance-term-grid {
  margin-top: 1.5rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  align-items: stretch;
}

/* Flex */
.flex-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.flex-col {
  display: flex;
  flex-direction: column;
}

.gap-04 { gap: 0.4rem; }
.gap-1 { gap: 1rem; }

/* Spacing */
.w-full { width: 100%; }
.mt-03 { margin-top: 0.3rem; }
.mt-04 { margin-top: 0.4rem; }
.mt-05 { margin-top: 0.5rem; }
.mt-06 { margin-top: 0.6rem; }
.mt-075 { margin-top: 0.75rem; }
.mt-1 { margin-top: 1rem; }
.mt-15 { margin-top: 1.5rem; }
.mb-1 { margin-bottom: 1rem; }
.ml-05 { margin-left: 0.5rem; }
.mx-04 { margin: 0 0.4rem; }

/* Container */
.container {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.shell {
  max-width: 960px;
  margin: 0 auto;
  padding: 2rem 1.5rem 1.5rem;
}

main {
  max-width: 1080px;
  margin: 1.5rem auto 2rem;
  padding: 0 1.25rem;
}
