/* Auth chrome — the standalone (no Vue) pages that live outside the shells: the
   sign-in page and the forbidden page. Both centre a single block on URBN tokens.
   Theme-aware via the tokens; the login page also reads the persisted scheme
   pre-paint (partials/theme_boot.html). */

.urbn-login {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: var(--urbn-side-bg);
  color: var(--urbn-ink);
  font-family: var(--urbn-font);
}

/* The sign-in page rides the scheme's paper ground, like darwin_ui's title screen. */
.urbn-login--splash {
  background: var(--urbn-paper);
}

/* ---- sign-in: the title/splash layout --------------------------------------- */

.urbn-login__inner {
  width: 100%;
  max-width: 20rem;
  text-align: center;
}

.urbn-splash {
  margin-bottom: 2rem;
}

.urbn-splash__mark {
  margin: 0;
  font-family: var(--urbn-display);
  font-weight: 700;
  font-size: clamp(2.5rem, 10vmin, 5rem);
  line-height: .9;
  letter-spacing: -.01em;
  color: var(--urbn-ink);
}

.urbn-splash__sub {
  /* wide tracking, nudged right one letter-space to stay optically centred under URBN */
  margin: .35rem 0 0 .3em;
  font-family: var(--urbn-display);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .3em;
  font-size: clamp(.75rem, 3vmin, 1rem);
  color: var(--urbn-accent);
}

.urbn-login__form {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.urbn-login__label {
  margin: .6rem 0 .2rem;
  font-size: .8rem;
  font-weight: 600;
  color: var(--urbn-side-ink);
}

.urbn-login__submit {
  width: 100%;
  margin-top: 1.25rem;
  padding: .55rem 1rem;
  border: 0;
  border-radius: var(--urbn-radius);
  background: var(--urbn-accent);
  color: var(--urbn-on-accent);
  font-family: var(--urbn-font);
  font-size: .95rem;
  font-weight: 600;
  cursor: pointer;
}

.urbn-login__submit:hover {
  background: var(--urbn-accent-strong);
}

.urbn-login__error {
  margin-bottom: .75rem;
  padding: .5rem .75rem;
  border-radius: var(--urbn-radius);
  background: var(--urbn-danger-bg);
  color: var(--urbn-danger-ink);
  font-size: .85rem;
  text-align: left;
}

/* ---- forbidden page: the same splash aesthetic (shares this stylesheet) ------- */

.urbn-login__lead {
  margin: 0 auto 1.5rem;
  max-width: 22rem;
  color: var(--urbn-muted);
  font-size: .95rem;
  line-height: 1.5;
}

.urbn-login__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
}

.urbn-login__link {
  color: var(--urbn-accent);
  font-weight: 600;
  font-size: .9rem;
  text-decoration: none;
}

.urbn-login__link:hover {
  color: var(--urbn-accent-strong);
  text-decoration: underline;
}

.urbn-login__logout {
  margin: 0;
}

.urbn-login__signout {
  border: 0;
  background: none;
  color: var(--urbn-muted);
  font-family: var(--urbn-font);
  font-size: .85rem;
  cursor: pointer;
}

.urbn-login__signout:hover {
  color: var(--urbn-ink);
  text-decoration: underline;
}

/* ---- Cyberpunk ornament (journal 034.three_skins): the sign-in button notched, an inset
   focus ring where the clip would hide the outline. */
:root[data-theme="cyberpunk"] .urbn-login__submit {
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px));
}
:root[data-theme="cyberpunk"] .urbn-login__submit:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--urbn-on-accent);
}
