/**
 * Método NES Care — tokens oficiais (identidade visual)
 */

:root {
  /* Autoridade */
  --nes-navy: #103b5c;
  --nes-navy-light: #1d567e;

  /* Saúde */
  --nes-green: #2b8a6e;
  --nes-green-dark: #1e6f59;
  --nes-green-soft: #eaf6f1;

  /* Fundos */
  --nes-bg: #f4f8f7;
  --nes-bg-soft: #f8fbfa;
  --nes-card: #ffffff;

  /* Premium */
  --nes-gold: #c9a227;
  --nes-gold-soft: #fff8e6;

  /* Texto */
  --nes-text: #1f2d3d;
  --nes-text-soft: #5c6b73;

  /* Bordas */
  --nes-border: #dce7e3;

  /* Sombras */
  --shadow-card: 0 4px 14px rgba(16, 59, 92, 0.06);
  --shadow-button: 0 4px 10px rgba(43, 138, 110, 0.2);
  --shadow-focus: 0 0 0 3px rgba(43, 138, 110, 0.12);

  /* Raios */
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  /* Aliases legados */
  --blue-50: #f5f9fc;
  --blue-100: #e8f0f6;
  --blue-200: #c8d7e4;
  --blue-500: var(--nes-navy-light);
  --blue-700: var(--nes-navy);
  --navy-900: var(--nes-navy);

  --green-50: var(--nes-green-soft);
  --green-100: #dff1ea;
  --green-500: var(--nes-green);
  --green-700: var(--nes-green-dark);

  --white: var(--nes-card);
  --gold-50: var(--nes-gold-soft);
  --gold-100: var(--nes-gold-soft);
  --gold-400: var(--nes-gold);
  --gold-700: #8a650f;

  --text-main: var(--nes-text);
  --text-muted: var(--nes-text-soft);
  --border-soft: var(--nes-border);
  --bg-page: var(--nes-bg);

  --black-soft: var(--nes-text);
  --gray-text: var(--nes-text-soft);
  --gray-muted: var(--nes-text-soft);
  --gray-border: var(--nes-border);
  --gray-bg: var(--nes-bg);

  --shadow-soft: 0 4px 18px rgba(16, 59, 92, 0.08);
  --shadow-btn-green: var(--shadow-button);
  --shadow-btn-secondary: 0 2px 8px rgba(16, 59, 92, 0.06);

  --space-field-gap: 14px;
  --space-card-pad: 1.35rem;
  --space-mobile-pad: 16px;

  --font-size-label-pro: 12px;
  --font-size-label-pac: 14px;
  --font-size-hint: 12px;
  --font-size-input: 14px;
  --font-size-section: 15px;

  --font-weight-regular: 400;
  --font-weight-medium: 500;

  /* Aliases legados (teal → verde, cinzas unificados) */
  --teal-50: var(--green-50);
  --teal-100: var(--green-100);
  --teal-200: #8fd4b8;
  --teal-400: var(--green-500);
  --teal-600: var(--green-700);
  --teal-800: var(--blue-700);
  --teal-900: var(--black-soft);

  --gray-50: var(--gray-bg);
  --gray-100: #edf1f2;
  --gray-200: var(--gray-border);
  --gray-400: var(--gray-muted);
  --gray-700: var(--gray-text);
  --gray-900: var(--black-soft);

  --border-teal: 1px solid var(--border-soft);
  --border-gray: 1px solid var(--border-soft);
  --border-input: 1px solid var(--border-soft);
  --border-focus: 1px solid var(--nes-green);

  --shadow-btn: var(--shadow-btn-green);

  /* Alertas */
  --alert-success-bg: var(--nes-green-soft);
  --alert-success-border: var(--nes-border);
  --alert-success-text: var(--nes-green-dark);
  --alert-info-bg: var(--nes-bg-soft);
  --alert-info-border: var(--nes-border);
  --alert-info-text: var(--nes-navy);
  --alert-warning-bg: var(--nes-gold-soft);
  --alert-warning-border: rgba(201, 162, 39, 0.35);
  --alert-warning-text: #8a650f;
  --alert-error-bg: #fdf4f4;
  --alert-error-border: #f0bdbd;
  --alert-error-text: #8b2121;

  /* Badges */
  --badge-ativo-bg: var(--green-50);
  --badge-ativo-text: var(--green-700);
  --badge-ativo-border: var(--green-100);
  --badge-pendente-bg: var(--gray-bg);
  --badge-pendente-text: var(--gray-text);
  --badge-pendente-border: var(--gray-border);
  --badge-retorno-bg: var(--gold-100);
  --badge-retorno-text: var(--gold-700);
  --badge-retorno-border: rgba(214, 169, 58, 0.35);

  --primary: var(--nes-green);
  --brand-primary: var(--nes-green);
  --brand-dark: var(--nes-green-dark);
  --text-primary: var(--black-soft);
  --text-secondary: var(--gray-text);
  --text-muted: var(--gray-muted);
  --border: var(--gray-border);
  --bg-page: var(--gray-bg);
  --bg-surface: var(--white);
  --fusao-brand: var(--green-500);
  --fusao-muted: var(--gray-muted);
  --fusao-line: var(--gray-border);
  --fusao-ink: var(--black-soft);

  /* Elevar toast acima da topbar (z-index: 900) e patient bar (850) */
  --z-toast: 9100;
}

/* Fundo suave global (evita branco puro em excesso) */
body.nes-fusao-v2 {
  background:
    radial-gradient(circle at top right, rgba(43, 138, 110, 0.04), transparent 35%),
    radial-gradient(circle at bottom left, rgba(16, 59, 92, 0.04), transparent 35%),
    var(--nes-bg);
  color: var(--nes-text);
}

body.nes-fusao-v2 h1,
body.nes-fusao-v2 h2,
body.nes-fusao-v2 h3,
body.nes-fusao-v2 h4,
body.nes-fusao-v2 h5,
body.nes-fusao-v2 h6,
body.nes-fusao-v2 strong,
body.nes-fusao-v2 b,
body.nes-fusao-v2 .btn,
body.nes-fusao-v2 .tab-btn,
body.nes-fusao-v2 .form-label,
body.nes-fusao-v2 label,
body.nes-fusao-v2 th {
  font-weight: var(--font-weight-medium) !important;
}

body.nes-fusao-v2 p,
body.nes-fusao-v2 span,
body.nes-fusao-v2 input,
body.nes-fusao-v2 select,
body.nes-fusao-v2 textarea,
body.nes-fusao-v2 td {
  font-weight: var(--font-weight-regular);
}

/* Título de seção — ponto azul */
.nes-section-title,
.nes-form-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--font-size-section);
  font-weight: var(--font-weight-medium);
  color: var(--black-soft);
  text-transform: none;
  letter-spacing: normal;
  margin: 0 0 0.85rem;
}

.nes-section-title::before,
.nes-form-section-title::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nes-green);
  flex-shrink: 0;
}

/* Cards padrão */
body.nes-fusao-v2 .card,
body.nes-fusao-v2 .form-card,
body.nes-fusao-v2 .panel-card,
body.nes-fusao-v2 .stat-card,
body.nes-fusao-v2 .nes-module-card,
body.nes-fusao-v2 .nes-form-card,
body.nes-fusao-v2 .home-card,
body.nes-fusao-v2 .dados-card,
body.nes-fusao-v2 .doc-card,
body.nes-fusao-v2 .cadastro-card {
  background: var(--nes-card);
  border: 1px solid var(--nes-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

/* Destaque premium / Meu Acompanhamento */
.premium-card,
.acompanhamento-card,
body.nes-fusao-v2 .premium-card,
body.nes-fusao-v2 .acompanhamento-card {
  background: linear-gradient(135deg, var(--nes-card) 0%, var(--nes-gold-soft) 100%) !important;
  border: 1px solid rgba(201, 162, 39, 0.35) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}

.premium-card h2,
.premium-card h3,
.acompanhamento-card h2 {
  color: var(--gold-700);
}

.premium-card .home-card-icon,
.acompanhamento-card .home-card-icon {
  filter: none;
}

/* Destaque clínico — borda verde */
.nes-clinico-destaque,
body.nes-fusao-v2 .nes-clinico-item,
body.nes-fusao-v2 .nes-fusao-tl-item {
  border-left: 4px solid var(--nes-green);
}

/* Botões */
body.nes-fusao-v2 .btn-primary,
body.nes-fusao-v2 .btn.btn-primary,
body.nes-fusao-v2 a.btn-primary {
  background: linear-gradient(135deg, var(--nes-green), var(--nes-green-dark));
  color: #fff !important;
  border: none;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-button);
  font-weight: var(--font-weight-medium);
  min-height: 44px;
}

body.nes-fusao-v2 .btn-primary:hover:not(:disabled),
body.nes-fusao-v2 .btn.btn-primary:hover:not(:disabled),
body.nes-fusao-v2 a.btn-primary:hover {
  filter: brightness(0.96);
}

body.nes-fusao-v2 .btn-secondary,
body.nes-fusao-v2 .btn-outline,
body.nes-fusao-v2 button.secondary,
body.nes-fusao-v2 button.outline {
  background: var(--nes-card) !important;
  color: var(--nes-navy) !important;
  border: 1px solid #c8d7e4 !important;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-btn-secondary);
  font-weight: var(--font-weight-medium);
  min-height: 44px;
}

body.nes-fusao-v2 .btn-secondary:hover:not(:disabled),
body.nes-fusao-v2 .btn-outline:hover:not(:disabled),
body.nes-fusao-v2 button.secondary:hover,
body.nes-fusao-v2 button.outline:hover {
  background: #f5f9fc !important;
  border-color: var(--nes-navy-light) !important;
  color: var(--nes-navy) !important;
}

body.nes-fusao-v2 .btn-ghost {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-medium);
  min-height: 44px;
}

body.nes-fusao-v2 .btn-danger {
  background: var(--white);
  color: var(--alert-error-text);
  border: 1px solid var(--alert-error-border);
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-medium);
  min-height: 44px;
}

/* Inputs */
body.nes-fusao-v2 input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='color']),
body.nes-fusao-v2 select,
body.nes-fusao-v2 textarea,
body.nes-fusao-v2 .form-input {
  min-height: 44px;
  border: 1px solid var(--nes-border);
  border-radius: var(--radius-sm);
  background: var(--nes-card);
  color: var(--nes-text);
  font-size: var(--font-size-input);
  font-weight: var(--font-weight-regular);
}

body.nes-fusao-v2 input::placeholder,
body.nes-fusao-v2 textarea::placeholder {
  color: var(--nes-text-soft);
}

body.nes-fusao-v2 textarea {
  min-height: 88px;
}

body.nes-fusao-v2 input:focus:not([type='checkbox']):not([type='radio']),
body.nes-fusao-v2 select:focus,
body.nes-fusao-v2 textarea:focus,
body.nes-fusao-v2 .form-input:focus {
  border-color: var(--nes-green);
  box-shadow: var(--shadow-focus);
  outline: none;
}

/* Alertas */
body.nes-fusao-v2 .alert-success,
body.nes-fusao-v2 .nes-alert-success {
  background: var(--alert-success-bg);
  border: 1px solid var(--alert-success-border);
  color: var(--alert-success-text);
  border-radius: var(--radius-md);
}

body.nes-fusao-v2 .alert-warning,
body.nes-fusao-v2 .nes-alert-warning {
  background: var(--alert-warning-bg);
  border: 1px solid var(--alert-warning-border);
  color: var(--alert-warning-text);
  border-radius: var(--radius-md);
}

body.nes-fusao-v2 .alert-error,
body.nes-fusao-v2 .alert-danger,
body.nes-fusao-v2 .nes-alert-error {
  background: var(--alert-error-bg);
  border: 1px solid var(--alert-error-border);
  color: var(--alert-error-text);
  border-radius: var(--radius-md);
}

body.nes-fusao-v2 .alert-info,
body.nes-fusao-v2 .nes-alert-info {
  background: var(--alert-info-bg);
  border: 1px solid var(--alert-info-border);
  color: var(--alert-info-text);
  border-radius: var(--radius-md);
}

/* Badges */
body.nes-fusao-v2 .nes-badge,
body.nes-fusao-v2 .nes-inter-badge,
body.nes-fusao-v2 .badge {
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  font-size: 11px;
  font-weight: var(--font-weight-medium);
  border: 1px solid transparent;
}

body.nes-fusao-v2 .nes-badge--ativo,
body.nes-fusao-v2 .badge-success {
  background: var(--badge-ativo-bg);
  color: var(--badge-ativo-text);
  border-color: var(--badge-ativo-border);
}

body.nes-fusao-v2 .nes-badge--pendente,
body.nes-fusao-v2 .badge-muted {
  background: var(--badge-pendente-bg);
  color: var(--badge-pendente-text);
  border-color: var(--badge-pendente-border);
}

body.nes-fusao-v2 .nes-badge--retorno,
body.nes-fusao-v2 .badge-warning {
  background: var(--badge-retorno-bg);
  color: var(--badge-retorno-text);
  border-color: var(--badge-retorno-border);
}

/* Progresso: trilha azul, preenchimento verde */
.nes-progress,
.cad-progress-track,
.cad-wizard-progress-track {
  height: 8px;
  border-radius: var(--radius-pill);
  background: var(--nes-green-soft);
  overflow: hidden;
}

.nes-progress-fill,
.cad-progress-fill,
.cad-wizard-progress-fill {
  height: 100%;
  border-radius: var(--radius-pill);
  background: linear-gradient(90deg, var(--nes-green-soft) 0%, var(--nes-green) 100%);
  transition: width 0.3s ease;
}
