/* Pagina di accesso (convenzioni §3.9). */
:root, html[data-theme="light"] {
  --pm-bg: #f9fafb; --pm-card: #ffffff; --pm-border: #e5e7eb; --pm-fg: #374151;
  --pm-quiet: #6b7280; --pm-brand: #0d0858; --pm-input-bg: #ffffff;
  --pm-button-bg: #e9e8ed; --pm-button-border: #919094; --pm-error: #dc2626;
  --pm-logo-light: inline; --pm-logo-dark: none;
}
html[data-theme="dark"] {
  --pm-bg: #0e1016; --pm-card: #161922; --pm-border: #2a2f3d; --pm-fg: #e6e8ef;
  --pm-quiet: #9aa0b0; --pm-brand: #e4e8f6; --pm-input-bg: #1d2130;
  --pm-button-bg: #242938; --pm-button-border: #3a4052; --pm-error: #f87171;
  --pm-logo-light: none; --pm-logo-dark: inline;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font-family: system-ui, 'Segoe UI', Roboto, sans-serif; background: var(--pm-bg); color: var(--pm-fg); }
.pm-login { min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; justify-content: center; padding: 16px; }
.pm-login-card {
  width: 280px; padding: 24px; background: var(--pm-card); border: 1px solid var(--pm-border);
  border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.pm-logo-light { display: var(--pm-logo-light); }
.pm-logo-dark { display: var(--pm-logo-dark); }
.pm-login-card h1 { margin: 0; color: var(--pm-brand); font-size: 22px; font-weight: 700; letter-spacing: 0.2px; }
.pm-login-card form { width: 100%; display: flex; flex-direction: column; gap: 12px; }
.pm-login-card input {
  width: 100%; padding: 8px 10px; font: inherit; color: var(--pm-fg); background: var(--pm-input-bg);
  border: 1px solid var(--pm-button-border); border-radius: 6px;
}
.pm-login-card input:focus { outline: 2px solid #208f91; outline-offset: 0; }
.pm-login-card button {
  padding: 8px 10px; font: inherit; color: var(--pm-fg); background: var(--pm-button-bg);
  border: 1px solid var(--pm-button-border); border-radius: 6px; cursor: pointer;
}
.pm-login-error { margin: 0; color: var(--pm-error); font-size: 13px; text-align: center; }
.pm-login-note { margin: 0; color: var(--pm-quiet); font-size: 13px; text-align: center; }
.pm-login-card a { color: #208f91; }
html[data-theme="dark"] .pm-login-card a { color: #3ec9c7; }
