/* GrizCam Logon — composition layer.
   Colors, type, and components come from the mirrored brand tokens
   (colors_and_type.css -> grizzly-systems-theme.css, the grizcam_design_docs source of truth).
   This file only adds LAYOUT for the logon card. No hardcoded brand colors. */

.auth {
  min-height: 100vh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: var(--space-8); gap: var(--space-4);
  background: var(--color-surface);
}

.auth__card {
  position: relative; overflow: hidden;
  width: 100%; max-width: 520px;
  background: var(--color-surface);            /* pitch black — elevation via border, not fill */
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
}
.auth__accent { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--color-accent); }

/* Brand row */
.auth__brand {
  display: flex; align-items: center; gap: var(--space-3);
  padding-bottom: var(--space-4); margin-bottom: var(--space-6);
  border-bottom: var(--border-width-thin) solid var(--color-border);
}
.auth__logo {
  width: 30px; height: 34px; flex: none; background: var(--color-accent);
  -webkit-mask: url(/brand/logo.svg) center / contain no-repeat;
          mask: url(/brand/logo.svg) center / contain no-repeat;
}
.auth__wordmark {
  font-family: var(--font-display); font-weight: var(--weight-medium);
  letter-spacing: 0.2em; font-size: 18px; color: var(--color-text);
}
.auth__eyebrow { margin-left: auto; color: var(--color-text-secondary); }

/* Screens */
.screen { display: none; }
.screen.is-active { display: block; animation: rise 160ms ease both; }
@keyframes rise { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.auth__card h2 { font-size: 26px; line-height: 32px; margin: var(--space-3) 0 0; }
.auth__lead { margin: var(--space-2) 0 0; }
.auth .grz-field { margin-top: var(--space-5); }
.auth__btn { width: 100%; justify-content: center; margin-top: var(--space-6); }
.auth__helper { margin-top: var(--space-4); }

.auth__callout { margin-top: var(--space-4); }
.auth__code { text-align: center; letter-spacing: 0.4em; font-size: 22px; }

.auth__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-4); }
.auth__row .grz-btn--secondary { margin-top: 0; }
.auth__link { white-space: nowrap; }

/* EULA */
.auth__eulafield { margin-top: var(--space-5); }
.auth__eula {
  height: 158px; overflow: auto;
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-md); padding: var(--space-3) var(--space-4);
  background: var(--color-surface);
  font-family: var(--font-body); font-size: 12.5px; line-height: 1.6;
  color: var(--color-text-secondary); white-space: pre-wrap;
}
.auth__check {
  display: flex; align-items: center; gap: var(--space-2);
  margin-top: var(--space-4); font-family: var(--font-body);
  font-size: 13px; color: var(--color-text);
}
.auth__check input { flex: none; width: 15px; height: 15px; accent-color: var(--color-accent); }

/* Done — key/value summary */
.auth__kv {
  display: grid; grid-template-columns: 120px 1fr; gap: var(--space-2) var(--space-4);
  margin: var(--space-4) 0 0; padding-top: var(--space-4);
  border-top: var(--border-width-thin) solid var(--color-border);
}
.auth__kv dt {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: var(--tracking-section);
  text-transform: uppercase; color: var(--color-text-secondary); align-self: center;
}
.auth__kv dd { margin: 0; font-size: 14px; color: var(--color-text); }

/* Status + footer */
.auth__status { min-height: 16px; margin-top: var(--space-5); font-size: 11px; color: var(--color-text-secondary); }
.auth__status[data-kind="ok"]   { color: var(--color-accent); }
.auth__status[data-kind="warn"] { color: var(--color-text); }
.auth__foot { font-size: 10px; letter-spacing: 0.08em; color: var(--color-text-secondary); opacity: 0.55; }

/* Legal links (web versions of the EULA + Privacy Policy) */
.auth__legal { display: flex; gap: var(--space-3); align-items: center; margin: 0; font-size: 11px; letter-spacing: 0.04em; }
.auth__legal a { color: var(--color-text-secondary); text-decoration: none; }
.auth__legal a:hover { color: var(--color-accent); text-decoration: underline; text-underline-offset: 3px; }
.auth__legal span { color: var(--color-border-strong); }
