/* Formularios: inputs, selects, checkbox e estado disabled.
   Espelha components/forms/Input.jsx e Select.jsx da Ally Design System
   (raio, borda, sombra e anel de foco). */

input[type="text"],
input[type="password"],
input[type="date"],
input[type="number"],
input[type="email"],
input[type="search"],
select,
textarea {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  color: var(--text);
  padding: 8px 12px;
  font-size: 13.5px;
  font-family: var(--font-sans);
  box-shadow: var(--shadow-xs);
  transition: border-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out),
              background var(--dur-fast) var(--ease-out);
}

/* Cilindro/cápsula (pedido do usuário 2026-08-07: mesmo pedido do .btn,
   ver components/button.css) - SÓ nos campos de uma linha só. textarea
   fica de fora de propósito: campo de várias linhas com --radius-full
   vira um "estádio" com as pontas MUITO arredondadas (metade da altura
   total, que aqui é grande) - foge do padrão Apple real (inputs de texto
   longo lá também usam raio moderado, não cápsula) e ficaria estranho
   visualmente, não elegante. */
input[type="text"],
input[type="password"],
input[type="date"],
input[type="number"],
input[type="email"],
input[type="search"],
select {
  border-radius: var(--radius-full);
}
textarea {
  border-radius: var(--radius-md);
}

input::placeholder,
textarea::placeholder {
  color: var(--text-faint);
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--blue-400);
  box-shadow: var(--ring);
}

/* select especificamente precisa de !important aqui: o compilador do
   Tailwind (CDN, no <head>) injeta seu próprio <style> de reset DEPOIS dos
   nossos <link> (ele roda via JS, depois que a página já carregou), e esse
   reset também mira a tag <select> com a mesma especificidade da regra
   acima - então, na prática, ele "ganha" por vir depois no DOM e o select
   volta a usar fonte/tamanho padrão do navegador (maior, fora do padrão),
   enquanto inputs/textarea (que o Tailwind não reseta com tanta força)
   ficam certos. Isso deixa os filtros em dropdown com fonte visivelmente
   diferente dos campos de texto/data ao lado. Se um dia trocar o Tailwind
   CDN por um build compilado (já on the radar), esse !important pode sair. */
select {
  font-size: 13.5px !important;
  font-family: var(--font-sans) !important;
  padding: 8px 12px !important;
  line-height: 1.3 !important;
}

input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(0.6);
  cursor: pointer;
}

input[type="checkbox"] {
  accent-color: var(--accent);
}

button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Wrapper generico pra campo de senha com botao de mostrar/ocultar dentro
   (2026-08-27, pedido no cadastro de certificado - mesma ideia do login,
   que usa .login-field/.login-field-toggle proprios; aqui e generico pra
   reaproveitar em qualquer input[type=password] fora da tela de login). */
.senha-wrap { position: relative; }
.senha-wrap input[type="password"],
.senha-wrap input[type="text"] { padding-right: 38px; }
.senha-toggle {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  border-radius: var(--radius-full);
  color: var(--text-faint);
  cursor: pointer;
  transition: color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.senha-toggle:hover { color: var(--text-dim); background: var(--bg-inset); }
