/* BLUVIA accesso e onboarding — light-only, condiviso fra i flussi account. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
}

body.access-page {
  min-height: 100vh;
  margin: var(--bv-s-0);
  padding: var(--bv-s-10) var(--bv-s-5) var(--bv-s-14);
  background: var(--bv-canvas);
  color: var(--bv-ink-2);
  font-family: var(--bv-font-sans);
  font-size: var(--bv-fs-body-sm);
  line-height: var(--bv-lh-body);
}

button,
input,
textarea,
select {
  font: inherit;
}

.access-page .container,
.access-page .wrapper,
.access-page .wrap,
.access-page .team-invite {
  width: var(--bv-full);
  max-width: var(--bv-measure);
  margin: var(--bv-s-0) auto;
}

.access-page--compact .container,
.access-page--compact .wrapper,
.access-page--compact .wrap,
.access-page .team-invite {
  max-width: var(--bv-booking-w);
}

.access-page .header,
.access-page .brand {
  margin-bottom: var(--bv-s-8);
  text-align: center;
}

.access-page .header-label,
.access-page .eyebrow,
.access-page .subtitle,
.access-page .section-title {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-fs-eyebrow);
  font-weight: var(--bv-fw-medium);
  letter-spacing: var(--bv-ls-mono);
  text-transform: uppercase;
  color: var(--bv-ink-3);
}

.access-page .header-label,
.access-page .eyebrow {
  margin-bottom: var(--bv-s-3);
}

.access-page .header-title,
.access-page h1 {
  margin: var(--bv-s-0) var(--bv-s-0) var(--bv-s-3);
  font-family: var(--bv-font-serif);
  font-size: var(--bv-fs-h2);
  font-weight: var(--bv-fw-regular);
  line-height: var(--bv-lh-title);
  letter-spacing: var(--bv-ls-title);
  color: var(--bv-ink);
  text-wrap: pretty;
}

.access-page .header-subtitle,
.access-page .desc {
  max-width: var(--bv-measure-sm);
  margin: var(--bv-s-0) auto;
  color: var(--bv-ink-2);
  font-size: var(--bv-fs-body-sm);
}

.access-page .form-container,
.access-page .card,
.access-page .wrapper > form,
.access-page .team-invite {
  padding: var(--bv-s-8);
  border: var(--bv-bw) solid var(--bv-line-strong);
  border-radius: var(--bv-r-lg);
  background: var(--bv-surface);
  box-shadow: var(--bv-shadow-soft);
}

.access-page .form-container,
.access-page .card,
.access-page .wrapper > form {
  margin-bottom: var(--bv-s-6);
}

.access-page .wrapper > form {
  padding: var(--bv-s-8);
}

.access-page .wrapper .desc {
  margin-bottom: var(--bv-s-8);
}

.access-page .section-title {
  margin: var(--bv-s-8) var(--bv-s-0) var(--bv-s-5);
  padding-top: var(--bv-s-5);
  border-top: var(--bv-bw) solid var(--bv-line);
}

.access-page form > .section-title:first-child {
  margin-top: var(--bv-s-0);
  padding-top: var(--bv-s-0);
  border-top: var(--bv-s-0) solid transparent;
}

.access-page .form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--bv-s-0), var(--bv-col-text)));
  gap: var(--bv-s-4);
}

.access-page .form-group,
.access-page .field {
  margin-bottom: var(--bv-s-5);
}

.access-page label,
.access-page .form-label {
  display: block;
  margin-bottom: var(--bv-s-2);
  color: var(--bv-ink-3);
  font-family: var(--bv-font-sans);
  font-size: var(--bv-fs-eyebrow-sm);
  font-weight: var(--bv-fw-semibold);
  letter-spacing: var(--bv-ls-eyebrow);
  text-transform: uppercase;
}

.access-page input,
.access-page textarea,
.access-page select {
  width: var(--bv-full);
  min-height: var(--bv-btn-h);
  padding: var(--bv-s-3) var(--bv-s-4);
  border: var(--bv-bw) solid var(--bv-line-strong);
  border-radius: var(--bv-r-sm);
  background: var(--bv-surface);
  color: var(--bv-ink);
  font-family: var(--bv-font-sans);
  font-size: var(--bv-fs-body-sm);
  transition: border-color var(--bv-dur-fast) var(--bv-ease), background var(--bv-dur-fast) var(--bv-ease);
}

.access-page textarea {
  min-height: calc(var(--bv-s-24) + var(--bv-s-4));
  resize: vertical;
}

.access-page input::placeholder,
.access-page textarea::placeholder {
  color: var(--bv-ink-3);
}

.access-page input:focus-visible,
.access-page textarea:focus-visible,
.access-page select:focus-visible,
.access-page button:focus-visible,
.access-page a:focus-visible {
  outline: var(--bv-bw-focus) solid var(--bv-focus);
  outline-offset: var(--bv-s-1);
}

.access-page .btn,
.access-page .submit-btn,
.access-page .team-invite button,
.access-page .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--bv-full);
  min-height: var(--bv-cta-h);
  margin-top: var(--bv-s-3);
  padding: var(--bv-s-0) var(--bv-s-6);
  border: var(--bv-bw) solid var(--bv-coral);
  border-radius: var(--bv-r-md);
  background: var(--bv-coral);
  color: var(--bv-on-coral);
  font-size: var(--bv-fs-lead);
  font-weight: var(--bv-fw-bold);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--bv-dur-fast) var(--bv-ease);
}

.access-page .btn:hover,
.access-page .submit-btn:hover,
.access-page .team-invite button:hover,
.access-page .button:hover {
  border-color: var(--bv-coral-hover);
  background: var(--bv-coral-hover);
}

.access-page .button.secondary {
  border-color: var(--bv-line-ink);
  background: transparent;
  color: var(--bv-ink);
}

.access-page .button.secondary:hover {
  border-color: var(--bv-line-ink);
  background: var(--bv-surface-sunk);
}

.access-page button:disabled,
.access-page .submit-btn.loading {
  border-color: var(--bv-line-strong);
  background: var(--bv-line-strong);
  color: var(--bv-surface);
  cursor: default;
}

.access-page .error,
.access-page .error-message,
.access-page .success-message,
.access-page .msg,
.access-page .status {
  display: none;
  margin: var(--bv-s-0) var(--bv-s-0) var(--bv-s-5);
  padding: var(--bv-s-3) var(--bv-s-4);
  border: var(--bv-bw) solid var(--bv-line-strong);
  border-radius: var(--bv-r-sm);
  background: var(--bv-surface-sunk);
  color: var(--bv-ink-2);
  font-size: var(--bv-fs-meta);
  line-height: var(--bv-lh-body);
}

.access-page .error.show,
.access-page .error-message.show,
.access-page .success-message.show,
.access-page .msg.error,
.access-page .msg.err,
.access-page .msg.ok,
.access-page .status:not(:empty) {
  display: block;
}

.access-page .error.show,
.access-page .error-message.show,
.access-page .msg.error,
.access-page .msg.err {
  border-color: var(--bv-coral-line);
  color: var(--bv-coral-ink);
}

.access-page .success-message.show,
.access-page .msg.ok,
.access-page .status.success {
  border-color: var(--bv-line-ink);
  color: var(--bv-ink);
}

.access-page .footer,
.access-page .footer-text,
.access-page .footer-link,
.access-page .foot {
  margin-top: var(--bv-s-6);
  text-align: center;
  color: var(--bv-ink-3);
  font-size: var(--bv-fs-meta);
}

.access-page .footer-row + .footer-row {
  margin-top: var(--bv-s-2);
}

.access-page .footer a,
.access-page .footer-text a,
.access-page .footer-link a,
.access-page .foot a {
  display: inline-flex;
  align-items: center;
  min-height: var(--bv-tap);
}

.access-page .footer a,
.access-page .footer-text a,
.access-page .footer-link a,
.access-page .foot a,
.access-page .back,
.access-page .back-link {
  color: var(--bv-ink);
  text-decoration: underline;
  text-underline-offset: var(--bv-s-1);
}

.access-page .back,
.access-page .back-link {
  display: inline-flex;
  align-items: center;
  min-height: var(--bv-tap);
  margin-bottom: var(--bv-s-6);
  font-size: var(--bv-fs-meta);
}

.access-page .wordmark {
  font-family: var(--bv-font-serif);
  font-size: var(--bv-fs-h4);
  letter-spacing: var(--bv-ls-eyebrow-wide);
  color: var(--bv-ink);
}

.access-page .checking,
.access-page .meta,
.access-page .team-invite p {
  color: var(--bv-ink-2);
}

.access-page .checking,
.access-page .meta {
  padding: var(--bv-s-4);
  border-radius: var(--bv-r-sm);
  background: var(--bv-surface-sunk);
}

.access-page .meta {
  margin: var(--bv-s-5) var(--bv-s-0);
}

.access-page .lang-toggle {
  position: fixed;
  top: var(--bv-s-5);
  right: var(--bv-s-5);
  z-index: 2;
  display: flex;
  overflow: hidden;
  border: var(--bv-bw) solid var(--bv-line-strong);
  border-radius: var(--bv-r-pill);
  background: var(--bv-surface);
  box-shadow: var(--bv-shadow-soft);
}

.access-page .lang-btn {
  min-width: var(--bv-tap);
  min-height: var(--bv-tap);
  padding: var(--bv-s-0) var(--bv-s-3);
  border: var(--bv-s-0) solid transparent;
  background: transparent;
  color: var(--bv-ink-3);
  font-family: var(--bv-font-mono);
  font-size: var(--bv-fs-eyebrow-sm);
  font-weight: var(--bv-fw-medium);
  cursor: pointer;
}

.access-page .lang-btn.active {
  background: var(--bv-ink);
  color: var(--bv-on-ink);
}

.access-page .lang-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bv-s-2);
  margin-bottom: var(--bv-s-2);
}

.access-page .lang-chip {
  display: inline-flex;
  align-items: center;
  min-height: var(--bv-tap);
  padding-left: var(--bv-s-3);
  border: var(--bv-bw) solid var(--bv-line-strong);
  border-radius: var(--bv-r-pill);
  background: var(--bv-surface-sunk);
  color: var(--bv-ink);
  font-size: var(--bv-fs-meta);
}

.access-page .lang-chip button {
  width: var(--bv-tap);
  min-height: var(--bv-tap);
  margin: var(--bv-s-0);
  padding: var(--bv-s-0);
  border: var(--bv-s-0) solid transparent;
  background: transparent;
  color: var(--bv-coral-ink);
}

.access-page .lang-picker {
  position: relative;
}

.access-page .lang-dropdown {
  position: absolute;
  inset: calc(var(--bv-full) + var(--bv-s-1)) var(--bv-s-0) auto;
  z-index: 1;
  display: none;
  max-height: calc(var(--bv-s-24) * 3);
  overflow-y: auto;
  border: var(--bv-bw) solid var(--bv-line-strong);
  border-radius: var(--bv-r-sm);
  background: var(--bv-surface);
  box-shadow: var(--bv-shadow-soft);
}

.access-page .lang-dropdown.open {
  display: block;
}

.access-page .lang-dropdown-item,
.access-page .lang-dropdown-empty {
  min-height: var(--bv-tap);
  padding: var(--bv-s-3) var(--bv-s-4);
  color: var(--bv-ink-2);
  font-size: var(--bv-fs-body-sm);
}

.access-page .lang-dropdown-item {
  width: var(--bv-full);
  margin: var(--bv-s-0);
  border: var(--bv-s-0) solid transparent;
  border-radius: var(--bv-r-none);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.access-page .lang-dropdown-item:hover,
.access-page .lang-dropdown-item.highlighted {
  background: var(--bv-surface-sunk);
  color: var(--bv-ink);
}

.access-page .hidden {
  display: none;
}

[data-en] {
  display: none;
}

html[lang="en"] [data-it] {
  display: none;
}

html[lang="en"] [data-en] {
  display: inline;
}

html[lang="en"] div[data-en],
html[lang="en"] label[data-en] {
  display: block;
}

@media (max-width: 600px) {
  body.access-page {
    padding: var(--bv-s-8) var(--bv-s-4) var(--bv-s-10);
  }

  .access-page .form-container,
  .access-page .card,
  .access-page .wrapper > form,
  .access-page .team-invite {
    padding: var(--bv-s-6);
  }

  .access-page .form-row {
    grid-template-columns: minmax(var(--bv-s-0), var(--bv-col-text));
    gap: var(--bv-s-0);
  }

  .access-page .header-title,
  .access-page h1 {
    font-size: var(--bv-fs-h3);
  }

  .access-page .lang-toggle {
    position: static;
    width: max-content;
    margin: var(--bv-s-0) var(--bv-s-0) var(--bv-s-6) auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .access-page *,
  .access-page *::before,
  .access-page *::after {
    scroll-behavior: auto;
  }
}
