
/* Gestao Terapia UI Polish
   Camada global carregada por ultimo para uniformizar campos e superficies. */

:root {
  --gt-bg: #f6f8fb;
  --gt-surface: #ffffff;
  --gt-surface-soft: #f9fbff;
  --gt-text: #111827;
  --gt-muted: #667085;
  --gt-border: #d7dde8;
  --gt-border-soft: #e8edf5;
  --gt-ring: rgba(37, 99, 235, .16);
  --gt-primary: var(--brand, #2563eb);
  --gt-primary-dark: #1d4ed8;
  --gt-radius: 8px;
  --gt-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .06);
}

html { background: var(--gt-bg); }
body {
  background: var(--gt-bg) !important;
  color: var(--gt-text);
  font-size: 14px;
  letter-spacing: 0;
}

.content-body {
  max-width: 1500px;
  padding: 28px 32px 40px !important;
}

.card,
.panel,
.plans-card,
.plan-item,
.journey,
.record,
.item,
.case,
.ai-card,
.campaign-card,
.price-card,
.stat,
.kpi,
.timeline-content,
.side-card,
.modal,
.form-card {
  border: 1px solid var(--gt-border-soft) !important;
  border-radius: var(--gt-radius) !important;
  background: var(--gt-surface) !important;
  box-shadow: var(--gt-shadow) !important;
}

.card,
.panel,
.plans-card,
.form-card {
  padding: 22px !important;
}

.card:hover,
.panel:hover,
.plan-item:hover,
.journey:hover,
.record:hover,
.item:hover,
.case:hover {
  box-shadow: 0 2px 4px rgba(16, 24, 40, .06), 0 12px 30px rgba(16, 24, 40, .08) !important;
}

h1, .plans-title, .journey-head h1, .records-head h1, .head h1 {
  color: var(--gt-text) !important;
  font-size: clamp(22px, 2vw, 28px) !important;
  line-height: 1.2 !important;
  font-weight: 760 !important;
  letter-spacing: 0 !important;
}

h2 { color: var(--gt-text); letter-spacing: 0 !important; }
label,
.field label,
.form-section label,
.form-group label {
  color: #344054 !important;
  display: block !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  margin: 0 0 6px !important;
}

.form-group,
.field,
.form-field {
  min-width: 0;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="tel"],
input[type="url"],
input[type="datetime-local"],
input[type="search"],
select,
textarea,
.input,
.form-control {
  width: 100% !important;
  min-height: 42px !important;
  padding: 10px 12px !important;
  border: 1px solid var(--gt-border) !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: var(--gt-text) !important;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 14px !important;
  font-weight: 450 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important;
  outline: none !important;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}

textarea {
  min-height: 104px !important;
  resize: vertical !important;
}

input::placeholder,
textarea::placeholder {
  color: #98a2b3 !important;
  font-weight: 400 !important;
}

input:hover:not(:disabled),
select:hover:not(:disabled),
textarea:hover:not(:disabled) {
  border-color: #b9c2d3 !important;
}

input:focus,
select:focus,
textarea:focus,
.form-control:focus {
  border-color: var(--gt-primary) !important;
  box-shadow: 0 0 0 4px var(--gt-ring), 0 1px 2px rgba(16, 24, 40, .04) !important;
  background-color: #fff !important;
}

input:disabled,
select:disabled,
textarea:disabled {
  background: #f3f5f8 !important;
  color: #98a2b3 !important;
  cursor: not-allowed !important;
}

select {
  -webkit-appearance: none !important;
  appearance: none !important;
  padding-right: 40px !important;
  background-image: linear-gradient(45deg, transparent 50%, #667085 50%), linear-gradient(135deg, #667085 50%, transparent 50%) !important;
  background-position: calc(100% - 18px) 18px, calc(100% - 13px) 18px !important;
  background-size: 5px 5px, 5px 5px !important;
  background-repeat: no-repeat !important;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--gt-primary);
  width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  margin: 0 6px 0 0;
}

.grid2, .grid3, .two, .form-grid, .filters {
  gap: 14px !important;
}

.btn,
button.btn,
a.btn,
input[type="submit"].btn {
  min-height: 40px !important;
  padding: 9px 14px !important;
  border-radius: 8px !important;
  border: 1px solid var(--gt-border) !important;
  background: #fff !important;
  color: #344054 !important;
  font-weight: 650 !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .05) !important;
  transform: none !important;
}

.btn:hover {
  background: #f8fafc !important;
  border-color: #b9c2d3 !important;
  box-shadow: 0 2px 8px rgba(16, 24, 40, .08) !important;
}

.btn-primary,
button.btn-primary,
a.btn-primary,
.btn-verde,
.btn-success {
  background: var(--gt-primary) !important;
  border-color: var(--gt-primary) !important;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 8px 18px rgba(37, 99, 235, .18) !important;
}

.btn-primary:hover,
.btn-verde:hover,
.btn-success:hover {
  background: var(--gt-primary-dark) !important;
  border-color: var(--gt-primary-dark) !important;
}

.btn-danger {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #fff !important;
}
.btn-warning, .btn-amber {
  background: #d97706 !important;
  border-color: #d97706 !important;
  color: #fff !important;
}
.btn-outline {
  color: var(--gt-primary) !important;
  border-color: #bfdbfe !important;
  background: #eff6ff !important;
}
.btn-sm {
  min-height: 34px !important;
  padding: 7px 11px !important;
  font-size: 12px !important;
}

.table-wrap {
  border: 1px solid var(--gt-border-soft) !important;
  border-radius: 8px !important;
  background: #fff;
}
table { border-collapse: separate !important; border-spacing: 0 !important; }
thead { background: #f8fafc !important; }
th {
  color: #667085 !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  letter-spacing: .03em !important;
  padding: 11px 14px !important;
  border-bottom: 1px solid var(--gt-border-soft) !important;
}
td {
  padding: 12px 14px !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--gt-border-soft) !important;
}
tr:hover td { background: #f9fbff !important; }

.badge,
[class^="badge-"],
[class*=" badge-"] {
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

.alerta {
  border-radius: 8px !important;
  border-width: 1px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important;
}

.sidebar {
  background: #111827 !important;
}
.sidebar-header {
  padding: 18px 16px !important;
}
.nav-link {
  min-height: 38px;
  border-radius: 8px !important;
  letter-spacing: 0 !important;
}
.nav-link.active {
  background: #2563eb !important;
  box-shadow: none !important;
}
.nav-group-title {
  letter-spacing: .06em !important;
}

.topbar {
  background: rgba(255,255,255,.92) !important;
}

.form-actions {
  border-top: 1px solid var(--gt-border-soft) !important;
}

.form-container input,
.form-container select,
.form-container textarea {
  border: 1px solid var(--gt-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important;
}

@media (max-width: 768px) {
  .content-body { padding: 18px 14px 28px !important; }
  .card, .panel, .plans-card, .form-card { padding: 16px !important; }
  input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="date"], input[type="time"], input[type="tel"], input[type="url"], input[type="datetime-local"], input[type="search"], select, textarea {
    font-size: 16px !important;
  }
}
