/**
 * Layout - Estrutura da página e responsividade
 * Grid system e componentes de layout modernos
 */

/* ========== Header Moderno ========== */
/* Nota: O header com navegação é definido em navigation.css */
/* Este arquivo mantém apenas estilos de layout gerais */

/* ========== Main Content ========== */
main {
  padding: var(--spacing-3xl) var(--spacing-xl);
  max-width: var(--max-width);
  margin: 0 auto;
  animation: fadeIn 0.6s ease;
  flex: 1;
  width: 100%;
}

/* ========== Dashboard Grid System ========== */
.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--spacing-xl);
  grid-auto-rows: min-content;
}

/* Layout das áreas do dashboard */
.dashboard-saldo {
  grid-column: span 12;
}

/* ========== Footer Moderno ========== */
footer {
  padding: var(--spacing-2xl);
  text-align: center;
  color: var(--text-tertiary);
  font-size: var(--font-size-sm);
  border-top: 1px solid var(--border-color);
  background: var(--bg-secondary);
  margin-top: auto;
  flex-shrink: 0;
}

/* ========== Utilitários de Espaçamento ========== */
.mb-xs { margin-bottom: var(--spacing-xs); }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }
.mb-2xl { margin-bottom: var(--spacing-2xl); }

.mt-xs { margin-top: var(--spacing-xs); }
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }
.mt-2xl { margin-top: var(--spacing-2xl); }

.p-xs { padding: var(--spacing-xs); }
.p-sm { padding: var(--spacing-sm); }
.p-md { padding: var(--spacing-md); }
.p-lg { padding: var(--spacing-lg); }
.p-xl { padding: var(--spacing-xl); }

/* ========== Responsividade do Dashboard ========== */

/* Tablets grandes (até 1200px) */
@media (max-width: 1200px) {
  .dashboard-grid {
    grid-template-columns: repeat(8, 1fr);
  }
  
  .dashboard-saldo {
    grid-column: span 8;
  }
}

/* Tablets médios (até 1024px) */
@media (max-width: 1024px) {
  main {
    padding: var(--spacing-xl);
  }
  
  .dashboard-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: var(--spacing-lg);
  }
  
  .dashboard-saldo {
    grid-column: span 6;
  }
}

/* Tablets pequenos (até 768px) */
@media (max-width: 900px) {
  .dashboard-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }
  
  .dashboard-saldo {
    grid-column: span 1;
  }
}

/* Mobile e tablets pequenos */
@media (max-width: 768px) {
  header {
    padding: var(--spacing-xl) var(--spacing-md);
  }
  
  header h1 {
    font-size: var(--font-size-lg);
  }
  
  main {
    padding: var(--spacing-lg) var(--spacing-md);
  }
  
  .row {
    flex-direction: column;
    gap: var(--spacing-md);
  }
  
  .card {
    padding: var(--spacing-lg);
  }
  
  [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }
  
  .dashboard-grid {
    gap: var(--spacing-md);
  }
}

/* Mobile pequeno */
@media (max-width: 480px) {
  header {
    padding: var(--spacing-md);
  }
  
  header h1 {
    font-size: var(--font-size-md);
  }
  
  header .small {
    font-size: 11px;
  }
  
  main {
    padding: var(--spacing-md);
  }
  
  .card {
    padding: var(--spacing-md);
  }
  
  .controls {
    flex-direction: column;
    width: 100%;
  }
  
  .controls button {
    width: 100%;
  }
  
  li.item {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-sm);
  }
  
  .big {
    font-size: var(--font-size-lg);
  }
  
  .dashboard-grid {
    gap: var(--spacing-sm);
  }
}

/* ========== Visibilidade Responsiva ========== */
.hide-mobile {
  display: block;
}

.show-mobile {
  display: none;
}

@media (max-width: 768px) {
  .hide-mobile {
    display: none;
  }
  
  .show-mobile {
    display: block;
  }
}

/* ========== Container ========== */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--spacing-xl);
}

.container-narrow {
  max-width: var(--max-width-narrow);
}

/* ========== Section ========== */
.section {
  margin-bottom: var(--spacing-3xl);
}

.section-title {
  font-size: var(--font-size-lg);
  font-weight: 600;
  margin-bottom: var(--spacing-lg);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.section-title::before {
  content: '';
  width: 4px;
  height: 24px;
  background: linear-gradient(180deg, var(--accent-primary), var(--accent-success));
  border-radius: 2px;
}

/* ========== Animações de Entrada ========== */
.fade-in {
  animation: fadeIn 0.6s ease;
}

.slide-in {
  animation: slideIn 0.4s ease;
}

/* ========== Skeleton Loading ========== */
.skeleton {
  background: linear-gradient(90deg, var(--surface-primary) 0%, var(--surface-secondary) 50%, var(--surface-primary) 100%);
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
  border-radius: var(--border-radius);
}
