/* Login and signup layout. Visual tokens and control behavior live in ui-system.css. */

html,
body {
  min-height: 100%;
  margin: 0;
}

body {
  color: var(--bb-text, #f7f9ff);
  background:
    radial-gradient(circle at 18% 12%, rgba(61, 145, 235, 0.18), transparent 34%),
    radial-gradient(circle at 84% 86%, rgba(106, 67, 189, 0.2), transparent 38%),
    linear-gradient(145deg, var(--bb-bg, #080f1e), var(--bb-bg-deep, #050914));
  font-family: var(--bb-font-body, "Lato", sans-serif);
}

.container {
  width: 100%;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(20px, 5vw, 48px);
  text-align: center;
}

.auth-card {
  position: relative;
  width: min(100%, 460px);
  overflow: hidden;
  padding: clamp(28px, 5vw, 42px);
  border: 3px solid var(--bb-border, #385478);
  border-radius: var(--bb-radius-window, 10px);
  color: var(--bb-text, #f7f9ff);
  background: var(--bb-surface-gradient, linear-gradient(180deg, #111f37, #0b1629));
  box-shadow: var(--bb-frame-shadow);
}

.auth-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 10px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.12);
  background: var(--bb-header-gradient, linear-gradient(90deg, #3d91eb, #6a43bd));
}

.auth-card h1 {
  margin: 8px 0 12px;
  color: #fff;
  font-family: var(--bb-font-display, "Press Start 2P", monospace);
  font-size: clamp(20px, 4vw, 28px);
  line-height: 1.35;
  text-transform: uppercase;
  text-shadow: var(--bb-title-shadow, 3px 4px 0 rgba(2, 5, 12, 0.72));
}

.subtitle {
  margin: 0 0 28px;
  color: var(--bb-text-muted, #91a5c2);
  font-size: 15px;
  line-height: 1.5;
}

.guest-info {
  margin: 0 0 26px;
  padding: 12px 14px;
  border: 2px solid var(--bb-border-soft, #263b59);
  border-radius: var(--bb-radius-card, 0);
  color: var(--bb-text-soft, #c9d6e8);
  background: rgba(26, 49, 84, 0.58);
  box-shadow: var(--bb-inset-shadow);
  font-size: 14px;
  line-height: 1.5;
}

.guest-info p {
  margin: 0;
}

.guest-name {
  color: #80bfff;
  font-weight: 900;
}

.form-group {
  margin-bottom: 20px;
  text-align: left;
}

.form-label {
  display: block;
  margin-bottom: 8px;
  color: var(--bb-text-soft, #c9d6e8);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.form-input {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 2px solid var(--bb-border, #385478);
  border-radius: var(--bb-radius-control, 0);
  color: var(--bb-text, #f7f9ff);
  background: rgba(5, 12, 25, 0.88);
  box-shadow: var(--bb-inset-shadow);
  font-family: var(--bb-font-display, "Press Start 2P", monospace);
  font-size: 10px;
  line-height: 1.4;
  transition:
    border-color var(--bb-motion-fast, 130ms) ease,
    background-color var(--bb-motion-fast, 130ms) ease;
}

.form-input:hover {
  border-color: #50739f;
}

.form-input:focus {
  border-color: var(--bb-border-highlight, #7aa9e5);
  background: rgba(4, 10, 22, 0.98);
}

.form-input::placeholder {
  color: #7285a1;
  opacity: 1;
}

.auth-button {
  width: 100%;
  min-height: 48px;
  margin-top: 6px;
  padding: 10px 18px;
  color: #fff;
  background: var(--bb-primary-gradient, linear-gradient(180deg, #438feb, #285fc0));
}

.auth-button:disabled {
  background: linear-gradient(180deg, #46566c, #303c50);
}

.button-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
}

.error-message,
.success-message {
  display: none;
  min-height: 20px;
  margin-top: 16px;
  padding: 9px 10px;
  border: 2px solid currentColor;
  border-radius: var(--bb-radius-tag, 0);
  font-size: 13px;
  line-height: 1.4;
}

.error-message {
  color: #ff9fa8;
  background: rgba(169, 40, 51, 0.2);
}

.success-message {
  color: #76e4ba;
  background: rgba(7, 136, 95, 0.2);
}

.link-section {
  width: min(100%, 300px);
  display: grid;
  gap: 12px;
  margin: 24px auto 0;
}

.auth-link,
.back-link {
  min-height: 36px;
  padding: 8px 10px;
  color: var(--bb-text-soft, #c9d6e8);
  background: var(--bb-surface-raised, #20314a);
  text-decoration: none;
}

.back-link {
  background: #27364c;
}

.loading {
  display: none;
  width: 18px;
  height: 18px;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: var(--bb-radius-pill, 999px);
  animation: authSpin 0.8s linear infinite;
}

@keyframes authSpin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 480px) {
  .container {
    padding: 18px;
  }

  .auth-card {
    padding: 28px 20px 24px;
  }

  .auth-card h1 {
    font-size: 18px;
  }

  .subtitle {
    margin-bottom: 22px;
    font-size: 14px;
  }
}

