/* Login page styles */
.login-bg {
  position: relative;
  min-height: 100vh;
  background-image: url("../immagini/pexels-jonathanborba-29276539.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.login-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  z-index: 1;
}
.login-container {
  position: relative;
  z-index: 2;
  max-width: 420px;
  width: 100%;
}
.login-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.45);
  padding: 2rem;
  color: #fff;
}
.login-card .text-muted { color: rgba(255,255,255,0.75) !important; }
.logo { width: 96px; height: auto; border-radius: 12px; }
.btn-google { width: 100%; padding: 0.75rem 1rem; font-size: 1.05rem; border-radius: 8px; }
.google-logo { width: 22px; height: auto; }

/* Small screens */
@media (max-width: 576px) {
  .login-card { padding: 1.5rem; }
  .logo { width: 80px; }
  .btn-google { font-size: 1rem; padding: 0.7rem; }
}

/* Focus accessibility */
.btn-google:focus { outline: 3px solid rgba(13,110,253,0.25); outline-offset: 2px; }

/* Accessibility helpers */
.skip-link { position: absolute; left: -999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.skip-link:focus, .skip-link:active { position: fixed; left: 1rem; top: 1rem; width: auto; height: auto; background: #fff; color: #000; padding: 0.5rem 0.75rem; z-index: 9999; border-radius: 4px; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,0.3); }

/* Visually hidden utility (fallback if bootstrap not loaded) */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.visually-hidden-focusable:active, .visually-hidden-focusable:focus { clip: auto; margin: 0; width: auto; height: auto; overflow: visible; white-space: normal; position: static; }

/* Button contrast and focus improvements */
.btn-google { background: #fff; color: #000; border: 1px solid rgba(0,0,0,0.08); }
.btn-google:hover, .btn-google:focus { background: #f6f6f6; color: #000; text-decoration: none; }
.btn-google:focus { box-shadow: 0 0 0 4px rgba(13,110,253,0.18); outline: none; }

/* Text contrast */
.login-card .text-muted { color: #e6e6e6 !important; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* High contrast preference */
@media (prefers-contrast: more) {
  .btn-google { box-shadow: none; border: 2px solid #000; }
  .login-card { box-shadow: none; border: 2px solid #000; }
}
