/* D-auth (mandato 2026-07-08, pre-migrazione VPS) — pagina /login. Estende il canon scanner.css :root
   (SSOT token+font, zero colori/font nuovi) + riusa AS-IS il pattern campo-form di manual.css
   (.manual-field label/input) e il bottone amber pieno di config.css (.cfg-save__btn) — nessuno stile
   nuovo inventato, coerenza totale col resto del dashboard. UI-skill guidance: ui-ux-pro-max (accessibility/
   forms lookup) — frontend-design non disponibile in questo agente, sostituito da riuso diretto del
   design-system esistente (fonte di verità più forte di un nuovo mockup). */

.login{ min-height:100dvh; }
.login-main{
  display:flex; align-items:center; justify-content:center;
  min-height:calc(100dvh - 49px); padding:24px;
}

.login-card{
  width:100%; max-width:320px;
  background:var(--panel); border:1px solid var(--hairline); border-left:2px solid var(--amber);
  border-radius:var(--radius); padding:20px 22px;
  display:flex; flex-direction:column; gap:14px;
}
.login-card__title{
  margin:0; font:600 13px/1 var(--font-mono); letter-spacing:.18em; color:var(--amber);
}

#loginForm{ display:flex; flex-direction:column; gap:14px; }

.login-field{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.login-field__label{
  font:500 10px/1 var(--font-sans); letter-spacing:.06em; color:var(--text-dim); text-transform:uppercase;
}
.login-field__input{
  font:500 13px/1 var(--font-mono); color:var(--text); background:var(--panel-hi);
  border:1px solid var(--hairline); border-radius:var(--radius-sm); padding:9px 10px;
  min-height:38px; /* >=44px area di tocco incl. padding verticale, § ui-ux-pro-max touch-target-size */
}
.login-field__input:focus-visible{ outline:2px solid var(--amber); outline-offset:1px; }
.login-field__input[aria-invalid="true"]{ border-color:var(--bear); }

.login-card__submit{
  font:600 12px/1 var(--font-mono); letter-spacing:.03em;
  color:var(--canvas); background:var(--amber); border:0; border-radius:var(--radius);
  padding:10px 16px; min-height:40px; cursor:pointer; transition:opacity var(--dur) ease;
}
.login-card__submit:hover{ opacity:.9; }
.login-card__submit:disabled{ opacity:.4; cursor:not-allowed; background:var(--text-dim); }
.login-card__submit:focus-visible{ outline:2px solid var(--amber); outline-offset:2px; }
.login-card__submit[aria-busy="true"]{ opacity:.7; }
.login-card__submit.is-error{ background:var(--bear); }

.login-card__error{
  margin:0; min-height:1.4em; font:500 11px/1.4 var(--font-sans); color:var(--bear);
}
