/*
 * Gestor UI
 * Base visual reutilizavel para as paginas internas da aplicacao.
 * Ativar com a classe `gd-ui` no body e `gd-page` no contentor da pagina.
 * A sidebar fica deliberadamente fora deste sistema.
 */

:root {
  --gd-bg: #f4f6f8;
  --gd-surface: #ffffff;
  --gd-surface-muted: #f8fafc;
  --gd-border: #e2e8f0;
  --gd-border-strong: #cbd5e1;
  --gd-text: #172033;
  --gd-muted: #64748b;
  --gd-accent: #2563eb;
  --gd-accent-soft: #eff6ff;
  --gd-success: #15803d;
  --gd-danger: #dc2626;
  --gd-warning: #b45309;
  --gd-radius: 12px;
  --gd-radius-sm: 8px;
  --gd-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.045);
}

body.gd-ui {
  background: var(--gd-bg) !important;
  color: var(--gd-text);
}

body.gd-ui .main-content {
  background: var(--gd-bg);
}

body.gd-ui #navbarBlur {
  background: #172033 !important;
  background-image: none !important;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--gd-radius) !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12) !important;
  padding: 0.2rem 0.5rem !important;
}

body.gd-ui #navbarBlur .btn {
  box-shadow: none !important;
}

body.gd-ui .gd-page {
  color: var(--gd-text);
  padding: 0 !important;
}

body.gd-ui .gd-page > .card {
  background: transparent;
  border: 0;
  box-shadow: none !important;
  margin: 0 !important;
}

body.gd-ui .gd-page > .card > .card-body {
  padding: 0 !important;
}

body.gd-ui .gd-page .card {
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-radius);
  background: var(--gd-surface);
  box-shadow: var(--gd-shadow);
  overflow: hidden;
}

body.gd-ui .gd-page .card.mt-3 {
  margin-top: 1rem !important;
}

body.gd-ui .gd-page .card-body {
  color: var(--gd-text);
}

body.gd-ui .gd-page .mycard-title,
body.gd-ui .gd-page .mycard-primary,
body.gd-ui .gd-page .mycard-success,
body.gd-ui .gd-page .mycard-danger,
body.gd-ui .gd-page .mycard-warning,
body.gd-ui .gd-page .mycard-info {
  display: flex;
  min-height: 52px;
  align-items: center;
  padding: 0.75rem 1rem !important;
  color: var(--gd-text) !important;
  background: var(--gd-surface) !important;
  background-image: none !important;
  border-bottom: 1px solid var(--gd-border);
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.gd-ui .gd-page .mycard-title h6,
body.gd-ui .gd-page .mycard-title .text-white {
  color: var(--gd-text) !important;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

body.gd-ui .gd-page .mycard-title.mycard-danger {
  border-left: 3px solid var(--gd-danger);
}

body.gd-ui .gd-page .p-3 {
  padding: 1rem !important;
}

body.gd-ui .gd-page h3,
body.gd-ui .gd-page h4,
body.gd-ui .gd-page h5,
body.gd-ui .gd-page h6 {
  color: var(--gd-text);
  font-family: inherit;
  letter-spacing: -0.015em;
}

body.gd-ui .gd-page h3 {
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  font-weight: 700;
}

body.gd-ui .gd-page h4 {
  font-size: 1.15rem;
  font-weight: 700;
}

body.gd-ui .gd-page h5 {
  margin: 0 0 0.8rem;
  font-size: 1rem;
  font-weight: 700;
}

body.gd-ui .gd-page small,
body.gd-ui .gd-page .text-muted {
  color: var(--gd-muted) !important;
}

body.gd-ui .gd-page .table-responsive {
  border-radius: 0;
}

body.gd-ui .gd-page table.table {
  width: 100%;
  margin-bottom: 0;
  color: var(--gd-text);
  border-color: var(--gd-border);
  font-size: 0.875rem;
}

body.gd-ui .gd-page table.table > :not(caption) > * > * {
  padding: 0.72rem 0.75rem;
  border-color: var(--gd-border);
  vertical-align: middle;
}

body.gd-ui .gd-page table.table thead th {
  background: var(--gd-surface-muted) !important;
  color: #475569 !important;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.045em;
  line-height: 1.25;
  text-transform: uppercase;
  white-space: nowrap;
}

body.gd-ui .gd-page table.table tbody tr {
  background: var(--gd-surface);
  transition: background-color 0.15s ease;
}

body.gd-ui .gd-page table.table tbody tr:hover {
  background: #fafcff;
}

body.gd-ui .gd-page table.table .fw-bold,
body.gd-ui .gd-page table.table tr[style*="background:#f0f0f0"] {
  background: var(--gd-surface-muted) !important;
}

body.gd-ui .gd-page .btn {
  min-height: 34px;
  margin-bottom: 0;
  padding: 0.45rem 0.75rem;
  border-radius: 7px;
  box-shadow: none !important;
  font-size: 0.75rem;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

body.gd-ui .gd-page .btn:hover {
  transform: none;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.1) !important;
}

body.gd-ui .gd-page .btn-primary,
body.gd-ui .gd-page .btn-info {
  border-color: var(--gd-accent);
  background: var(--gd-accent);
  color: #fff;
}

body.gd-ui .gd-page .btn-warning {
  border-color: #f59e0b;
  background: #fff7ed;
  color: var(--gd-warning);
}

body.gd-ui .gd-page .btn-danger {
  border-color: #fecaca;
  background: #fff1f2;
  color: var(--gd-danger);
}

body.gd-ui .gd-page .form-control,
body.gd-ui .gd-page .form-select,
body.gd-ui .gd-page select.form-control,
body.gd-ui .gd-page .ts-control {
  min-height: 40px;
  border: 1px solid var(--gd-border-strong) !important;
  border-radius: var(--gd-radius-sm) !important;
  background: #fff !important;
  color: var(--gd-text);
  box-shadow: none !important;
  font-size: 0.875rem;
}

body.gd-ui .gd-page .form-control:focus,
body.gd-ui .gd-page select.form-control:focus,
body.gd-ui .gd-page .ts-control.focus {
  border-color: var(--gd-accent) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
}

body.gd-ui .gd-page .input-group-text {
  border-color: var(--gd-border-strong);
  background: var(--gd-surface-muted);
  color: var(--gd-muted);
}

body.gd-ui .gd-page .badge {
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  box-shadow: none;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

body.gd-ui .gd-page .text-success {
  color: var(--gd-success) !important;
}

body.gd-ui .gd-page .text-danger {
  color: var(--gd-danger) !important;
}

body.gd-ui .gd-page .alert {
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-radius-sm);
  box-shadow: none;
}

body.gd-ui .modal-content {
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-radius);
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.2);
  overflow: hidden;
}

body.gd-ui .modal-header,
body.gd-ui .modal-footer {
  border-color: var(--gd-border);
  background: var(--gd-surface);
}

body.gd-ui .modal-title {
  color: var(--gd-text);
  font-weight: 700;
}

body.gd-ui .gd-page .gd-summary {
  padding: 0.25rem 0 0;
}

body.gd-ui .gd-page .gd-summary__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

body.gd-ui .gd-page .gd-summary__meta {
  padding: 1rem 0;
  border-top: 1px solid var(--gd-border);
  border-bottom: 1px solid var(--gd-border);
}

body.gd-ui .gd-page .gd-kicker {
  color: var(--gd-muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.gd-ui .gd-page .gd-note {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--gd-border);
}

body.gd-ui .gd-page .gd-note:last-child {
  border-bottom: 0;
}

@media (min-width: 992px) {
  body.gd-ui .gd-page > .card > .card-body > .table-responsive {
    overflow: visible;
  }
}

@media (max-width: 767.98px) {
  body.gd-ui #navbarBlur {
    border-radius: 0 0 var(--gd-radius) var(--gd-radius) !important;
  }

  body.gd-ui .gd-page .card {
    border-radius: 10px;
  }

  body.gd-ui .gd-page .mycard-title {
    min-height: 46px;
  }

  body.gd-ui .gd-page table.table > :not(caption) > * > * {
    padding: 0.62rem 0.6rem;
  }

  body.gd-ui .gd-page .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
