:root {
  color-scheme:dark;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis:none;
  background:var(--nx-panel);
  color:var(--nx-accent-light);
}
* { box-sizing:border-box; }
body { margin:0; min-height:100svh; cursor:default; }
a { color:inherit; text-decoration:none; }
button, input { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { opacity:.5; cursor:wait; }
button:focus-visible, a:focus-visible { outline:2px solid var(--nx-accent); outline-offset:4px; }
input:focus { outline:none; border-color:var(--nx-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--nx-accent) 6.27%,transparent); }

.auth-layout {
  width:min(380px, calc(100% - 40px));
  min-height:calc(100svh - 38px);
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:55px 0;
}
.auth-card { width:100%; }
.auth-card h1 { font-size:29px; font-weight:600; letter-spacing:-.8px; margin:0 0 10px; }
.subtext { font-size:13px; line-height:1.7; color:var(--nx-soft); margin:0 0 32px; }
.field { margin-bottom:22px; }
.field label { display:block; font-size:12px; font-weight:500; color:var(--nx-soft); margin-bottom:9px; }
.field input {
  width:100%;
  border:1px solid color-mix(in srgb,var(--nx-accent) 18.82%,transparent);
  border-radius:8px;
  background:var(--nx-panel);
  color:var(--nx-accent-light);
  padding:13px 14px;
  font-size:13px;
  transition:border-color .2s, box-shadow .2s;
}
.field input::placeholder { color:var(--nx-muted); }
.field small { font-size:11px; color:var(--nx-muted); line-height:1.6; display:block; margin-top:7px; }
.password-wrap { position:relative; }
.password-wrap input { padding-right:62px; }
.toggle-password {
  position:absolute;
  right:9px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:none;
  color:var(--nx-accent-light);
  font-size:10px;
  padding:7px;
}
.primary-button {
  width:100%;
  padding:13px 18px;
  border:1px solid color-mix(in srgb,var(--nx-accent) 40.0%,transparent);
  border-radius:8px;
  background:transparent;
  color:var(--nx-accent-light);
  font-size:13px;
  font-weight:600;
  transition:background .2s, border-color .2s;
}
.primary-button:hover { border-color:color-mix(in srgb,var(--nx-accent) 60.0%,transparent); background:color-mix(in srgb,var(--nx-accent) 3.92%,transparent); }
.form-error { font-size:12px; line-height:1.6; color:#edafc7; background:#c64c7310; border:1px solid #d9628b25; border-radius:7px; padding:10px 12px; margin:0 0 16px; }
.form-error:empty { display:none; }
.switch-auth { text-align:center; color:var(--nx-soft); font-size:12px; line-height:1.8; margin:24px 0 0; }
.switch-auth a { color:var(--nx-accent-light); margin-left:3px; }
.switch-auth a:hover { text-decoration:underline; }
.form-footer { margin:38px 0 0; line-height:1.9; font-size:10px; color:var(--nx-muted); text-align:center; }
.loading { min-height:100svh; display:flex; align-items:center; justify-content:center; color:var(--nx-soft); font-size:12px; }
.error-screen { padding:40px; max-width:450px; margin:auto; min-height:100svh; display:flex; flex-direction:column; justify-content:center; }
.error-screen p { font-size:14px; color:var(--nx-soft); line-height:1.7; }

.reservation-page { min-height:100svh; display:grid; place-items:center; padding:40px 24px; }
.reservation { width:100%; text-align:center; }
.reservation h1 { font-size:clamp(36px, 7vw, 76px); letter-spacing:-.045em; font-weight:600; line-height:1.15; margin:0 0 20px; color:var(--nx-accent-light); overflow-wrap:anywhere; }
.reservation>p { color:var(--nx-soft); font-size:15px; line-height:1.7; margin:0; }
.reservation-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:32px; }
.outline-button { display:inline-flex; align-items:center; justify-content:center; min-height:43px; padding:0 22px; border:1px solid color-mix(in srgb,var(--nx-accent) 30.2%,transparent); border-radius:8px; background:transparent; color:var(--nx-accent-light); font-size:12px; font-weight:500; transition:border-color .2s, color .2s; }
.outline-button:hover { border-color:color-mix(in srgb,var(--nx-accent) 60.0%,transparent); color:#fff; }
.reservation .account-error { color:#edafc7; font-size:12px; line-height:1.6; margin-top:20px; }
.account-error:empty { display:none; }
[hidden] { display:none !important; }
@media (max-width:700px) {
  .auth-layout { padding:50px 0; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation: none !important; transition:none !important; }
}
.auth-terms{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.6;color:var(--nx-soft);margin:18px 0}.auth-terms input{width:16px;height:16px;flex-shrink:0;margin:3px 0;accent-color:var(--nx-accent)}.auth-terms a,.auth-legal a{color:var(--nx-accent-light)}.auth-legal{font-size:10px;text-align:center;color:var(--nx-muted);margin:20px 0}

/* "Welcome everyone" banner, top of the landing and login pages. */
.nx-welcome-banner{position:relative;z-index:50;width:100%;padding:9px 16px;text-align:center;font:600 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.01em;color:#fff;background:linear-gradient(90deg,#7c4ad1,#9d68e4 45%,#b48cf0);box-shadow:0 1px 0 rgba(255,255,255,.08) inset}
