/* NES — UX Global de Formulários — v1.1 — 2026-06-27
   Aplicado a todos os campos clínicos do sistema.
   Não quebra estilos existentes: usa especificidade mínima. */

/* ══════════════════════════════════════════════════════════════════════
   PADRONIZAÇÃO GLOBAL — CAPITALIZAÇÃO
   Todos os labels, títulos, botões, opções e checkboxes iniciam com
   letra maiúscula. text-transform:capitalize funciona em qualquer idioma
   e não altera valores de campos (só o display).
   Campos com text-transform:uppercase ou :none explícito são preservados.
══════════════════════════════════════════════════════════════════════ */

/* Labels e títulos de seção */
label.form-label,
.form-label,
.form-section-title,
.nes-section-title,
.nes-field-label,
.nes-group-title,
.nes-clinico-header-text .nes-clinico-titulo,
.ncc-card-label,
.ncc-section-title,
.tab-btn,
legend {
  text-transform: capitalize;
}

/* Checkboxes e radios */
.checkbox-label,
.checkbox-label .checkbox-label-text,
label > input[type="checkbox"] ~ span,
label > input[type="radio"] ~ span,
.radio-label,
.nes-check-label,
.nes-radio-label {
  text-transform: capitalize;
}

/* Botões — apenas os que não têm classe ou estilo próprio */
.btn:not([style*="text-transform"]),
button.btn:not([style*="text-transform"]) {
  text-transform: capitalize;
}

/* Opções de selects */
option {
  text-transform: capitalize;
}

/* Placeholders — primeira letra maiúscula (complementado pelo JS) */
input.form-input::placeholder,
textarea.form-input::placeholder,
textarea.form-textarea::placeholder,
.form-textarea::placeholder {
  /* text-transform:capitalize afeta placeholder em navegadores modernos */
  text-transform: capitalize;
}

/* Exceção: campos que explicitamente não devem ser capitalizados */
.nes-no-cap,
.no-capitalize,
[data-no-cap],
input[type="email"]::placeholder,
input[type="url"]::placeholder,
input[type="password"]::placeholder {
  text-transform: none !important;
}

/* ── Resetar inputs/textareas para base clínica ─────────────────────── */
textarea.form-input,
textarea.form-textarea,
.form-textarea,
textarea.nes-field {
  /* Layout */
  display: block;
  width: 100%;
  box-sizing: border-box;
  resize: vertical;
  min-height: 80px;
  overflow-y: hidden;          /* esconde scroll enquanto auto-grow ativo */

  /* Tipografia clínica */
  font-family: inherit;
  font-size: 0.875rem;
  line-height: 1.65;

  /* Padding confortável para leitura clínica */
  padding: 10px 12px;
  vertical-align: top;

  /* Quebra de linha correta */
  white-space: pre-wrap;
  word-wrap: break-word;
  overflow-wrap: break-word;

  /* Transição suave de altura */
  transition: height 0.08s ease;
}

/* Quando auto-grow JS estiver ativo, overflow hidden garante sem scrollbar */
textarea.nes-autogrow {
  overflow-y: hidden !important;
  resize: none;                /* remove alça manual quando auto-grow ativo */
}

/* ── Inputs de texto clínicos ─────────────────────────────────────────── */
input[type="text"].form-input,
input[type="search"].form-input {
  font-family: inherit;
  font-size: 0.875rem;
  line-height: 1.4;
  padding: 8px 12px;
}

/* ── Capitalização visual (display apenas, não muda o value) ─────────── */
/* Nota: a capitalização real do value é feita pelo JS (nes-form-ux-global.js)
   para preservar siglas e não alterar nomes técnicos.
   Mantemos text-transform:none aqui para não conflitar com o JS. */
textarea.form-input,
textarea.form-textarea,
.form-textarea {
  text-transform: none;
}

/* ── Campos com texto maiúsculo explícito (mantidos do sistema) ───────── */
input[style*="text-transform:uppercase"],
input[style*="text-transform: uppercase"] {
  /* mantidos pelo inline style do sistema */
}

/* ── Focus clínico: borda mais visível ───────────────────────────────── */
textarea.form-input:focus,
textarea.form-textarea:focus,
.form-textarea:focus {
  outline: none;
  border-color: #0f4c66;
  box-shadow: 0 0 0 2px rgba(15, 76, 102, 0.14);
}

/* ── Área de texto com linha-guia visual leve (zebra suave) ──────────── */
/* Opcional: descomente para habilitar fundo com linhas suaves
textarea.form-input {
  background-image: repeating-linear-gradient(
    transparent, transparent 28px, rgba(15,76,102,0.04) 28px, rgba(15,76,102,0.04) 29px
  );
  background-attachment: local;
}
*/

/* ── Placeholder mais suave ──────────────────────────────────────────── */
textarea.form-input::placeholder,
textarea.form-textarea::placeholder,
.form-textarea::placeholder {
  color: #94a3b8;
  font-style: italic;
}

/* ── Campos de leitura (readonly/disabled) ────────────────────────────── */
textarea.form-input[readonly],
textarea.form-textarea[readonly] {
  background: #f8fafc;
  color: #374151;
  cursor: default;
  border-color: #e2e8f0;
}

/* ── Campos SOAP: mais altura mínima ─────────────────────────────────── */
#soap-subjetivo, #soap-objetivo, #soap-avaliacao, #soap-plano,
[id^="soap-"], .soap-field,
#campo-s, #campo-o, #campo-a, #campo-p {
  min-height: 110px;
  line-height: 1.7;
}

/* ── Campos de prontuário / evolução: mais espaço ────────────────────── */
#pront-obs, #pront-queixa, #pront-historia, #pront-conduta,
#med-observacoes, #med-indicacao-full,
#rastreamento-obs, #evolucao-texto, #plano-texto,
[id*="evolucao"], [id*="observ"], [id*="conduta"], [id*="queixa"] {
  min-height: 96px;
}

/* ── Grid de campos clínicos: alinhamento vertical superior ─────────── */
.nes-clinico-grid .form-group,
.nes-med-form-grid .form-group {
  align-items: flex-start;
}

/* ── Campos de queixa/histórico/objetivo: garantir min-height ───────────── */
#atend-queixa-principal, #atend-objetivo, #atend-historia,
#ed-clin-hist,
[id*="queixa"], [id*="historia"], [id*="objetivo"],
[id*="orientacao"][id*="atend"] {
  min-height: 88px;
}

/* ── Visualização de texto longo no prontuário ────────────────────────── */
.nes-texto-longo,
.nes-campo-visualizacao,
.nes-prontuario-texto,
.nes-queixa-principal-visualizacao {
  display: block;
  white-space: pre-wrap;
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
  line-height: 1.6;
}

/* ── Impressão: sem corte, sem rolagem ───────────────────────────────── */
@media print {
  textarea,
  textarea.form-input,
  textarea.form-textarea,
  .form-textarea,
  textarea.nes-autogrow {
    white-space: pre-wrap !important;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    resize: none !important;
  }

  .nes-texto-longo,
  .nes-campo-visualizacao,
  .nes-prontuario-texto,
  .nes-queixa-principal-visualizacao {
    white-space: pre-wrap !important;
    overflow: visible !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }
}

/* ── Mobile: textarea não menor que 70px ──────────────────────────────── */
@media (max-width: 640px) {
  textarea.form-input,
  textarea.form-textarea,
  .form-textarea {
    min-height: 70px;
    font-size: 0.90rem; /* ligeiramente maior em mobile para legibilidade */
  }
}
