.password-field { margin-bottom: 18px; }
.password-field label { margin-bottom: 7px; }
.password-control { position: relative; }
.password-control input { margin-top: 0; padding-right: 52px; }
.password-control input::-ms-reveal { display: none; }
.password-toggle {
  position: absolute;
  top: 50%;
  right: 3px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 44px;
  height: 42px;
  padding: 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--teal);
}
.password-toggle[hidden] { display: none; }
.password-toggle:hover { background: var(--mint); }
.password-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.password-toggle .eye-slash { display: none; }
.password-toggle[aria-pressed="true"] .eye-slash { display: block; }
html.ai-is-loading, .ai-is-loading body { overflow: hidden; }
.ai-loading-dialog {
  width: min(440px, calc(100% - 40px));
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 36px 30px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  color: var(--ink);
  text-align: center;
  box-shadow: 0 24px 80px #143f3b38;
}
.ai-loading-dialog::backdrop { background: #102f2b99; backdrop-filter: blur(3px); }
.ai-loading-dialog h2 { margin-bottom: 12px; font-size: 26px; }
.ai-loading-dialog p { color: var(--muted); margin-bottom: 12px; }
.ai-loading-dialog .fine { margin: 0; }
.ai-spinner {
  display: block;
  width: 48px;
  height: 48px;
  margin: 0 auto 24px;
  border: 4px solid var(--mint);
  border-top-color: var(--teal);
  border-radius: 50%;
  animation: ai-spin 1s linear infinite;
}
#answer { scroll-margin-top: 24px; }
#answer:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }
@keyframes ai-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ai-spinner { animation: none; } }
