/* Applicora account access */

:root {
  --auth-navy: #113b64;
  --auth-navy-light: #1d4e78;
  --auth-navy-dark: #0b2c4b;
  --auth-accent: #113b64;
  --auth-accent-hover: #0b2c4b;
  --auth-amber-tint: rgba(255,181,46,.2);
  --auth-grad: #113b64;
  --auth-green: #24705a;
  --auth-green-hover: #195c49;
  --auth-text: #102a2e;
  --auth-text-secondary: #516a68;
  --auth-text-muted: #7b8f8c;
  --auth-border: #cad6d2;
  --auth-border-hover: #9eb4b0;
  --auth-input-bg: #ffffff;
  --auth-radius: 0;
  --auth-font: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --auth-display: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

body.auth-page { background: #f7f8f4; letter-spacing: 0; }
.auth-split {
  background: #f7f8f4;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
}

.auth-panel {
  align-items: stretch;
  background: #113b64;
  color: #fff;
  flex-basis: auto;
  justify-content: flex-start;
  max-width: none;
  min-height: 680px;
  padding: clamp(28px,6vw,82px);
}

.auth-panel::before {
  background: transparent;
  border: 110px solid rgba(255,181,46,.12);
  border-radius: 50%;
  bottom: -180px;
  height: 520px;
  opacity: 1;
  right: -190px;
  top: auto;
  transform: none;
  width: 520px;
}

.auth-panel::after {
  display: none;
}

.auth-panel-content {
  display: flex;
  flex-direction: column;
  max-width: 660px;
  min-height: 100%;
  text-align: left;
  width: 100%;
}
.auth-panel-logo {
  align-self: flex-start;
  background: #fff;
  border-radius: 0;
  display: inline-flex;
  margin-bottom: 0;
  padding: 7px 9px;
}
.auth-panel-logo img { display: block; height: auto; width: 160px; }
.auth-panel-statement {
  margin: auto 0;
  max-width: 660px;
  padding: 80px 0;
}
.auth-panel-label {
  color: #ffb52e;
  font-size: .76rem;
  font-weight: 700;
  margin: 0 0 12px;
}
.auth-panel-headline {
  color: #fff;
  font-size: clamp(2.8rem,6vw,5.5rem);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: .94;
  margin: 0 0 24px;
}
.auth-panel-text {
  color: rgba(255,255,255,.68);
  font-size: 1.08rem;
  line-height: 1.55;
  margin: 0;
  max-width: 540px;
}
.auth-panel-note {
  align-items: start;
  display: grid;
  gap: 14px;
  grid-template-columns: 38px minmax(0,1fr);
  max-width: 540px;
}
.auth-panel-note > span {
  border: 2px solid #ffb52e;
  border-radius: 50%;
  color: #ffb52e;
  display: grid;
  height: 32px;
  place-items: center;
  width: 32px;
}
.auth-panel-note p {
  color: rgba(255,255,255,.67);
  font-size: .78rem;
  line-height: 1.55;
  margin: 0;
}
.auth-panel-note strong { color: #fff; font-weight: 600; }
.auth-features { display: grid; margin-bottom: auto; width: min(100%, 540px); }
.auth-features li {
  border-top: 1px solid rgba(255,255,255,.17);
  color: rgba(255,255,255,.78);
  font-size: 14px;
  gap: 12px;
  padding: 14px 0;
}
.auth-features li:last-child { border-bottom: 1px solid rgba(255,255,255,.17); }
.auth-features li i { color: #d8f356; font-size: 13px; }

.auth-form-panel { background: #fff; padding: 44px; }
.auth-form-wrap { max-width: 420px; }
.auth-header { margin-bottom: 30px; text-align: left; }
.auth-heading {
  color: #102a2e;
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1;
  margin: 0 0 10px;
}
.auth-subheading { color: #516a68; font-size: 15px; margin: 0; }

.auth-input-group { margin-bottom: 18px; }
.auth-label { color: #102a2e; font-size: .79rem; font-weight: 600; }
.auth-input {
  background: #fff;
  border: 1px solid #9eb4b0;
  border-radius: 0;
  color: #102a2e;
  min-height: 44px;
  padding: 10px 12px;
}
.auth-input:hover { border-color: #113b64; }
.auth-input:focus { border-color: #113b64; box-shadow: 0 0 0 3px rgba(17,59,100,.12); }
.auth-helper { color: #6b807d; }

.auth-btn { border-radius: 0; min-height: 44px; }
.auth-btn--primary,.auth-btn--green {
  background: #113b64;
  box-shadow: none;
  color: #fff;
}
.auth-btn--primary:hover,.auth-btn--green:hover {
  background: #0b2c4b;
  box-shadow: none;
  transform: none;
}
.auth-btn--social {
  background: #fff;
  border-color: #9eb4b0;
  color: #102a2e;
}
.auth-btn--social:hover { background: #dde9e6; border-color: #113b64; box-shadow: none; transform: none; }
.auth-btn--outline { background: #fff; border: 1px solid #9eb4b0; color: #102a2e; }
.auth-btn--outline:hover { background: #dde9e6; border-color: #113b64; }

.auth-divider::before,.auth-divider::after { background: #cad6d2; }
.auth-divider-text { color: #7b8f8c; }
.auth-link,.auth-forgot-link,.auth-footer a { color: #113b64; }
.auth-legal,.auth-footer { color: #607572; }

.auth-centered { background: #113b64; }
.auth-card {
  border: 0;
  border-radius: 0;
  box-shadow: 0 24px 70px rgba(5,30,49,.25);
  max-width: 470px;
}
.auth-centered--security { padding-block: 40px; }
.auth-card--security { max-width: 820px; }
.auth-security-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
}
.auth-security-step {
  border: 1px solid var(--auth-border);
  padding: 24px;
}
.auth-security-step + .auth-security-step { margin-left: -1px; }
.auth-security-step > p {
  color: var(--auth-text-secondary);
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 18px;
}
.auth-step-label {
  align-items: center;
  color: var(--auth-text);
  display: flex;
  font-size: 16px;
  font-weight: 600;
  gap: 10px;
  margin-bottom: 10px;
}
.auth-step-label span {
  align-items: center;
  background: var(--auth-navy);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 30px;
  height: 30px;
  justify-content: center;
}
.auth-qr-wrap {
  background: #fff;
  border: 1px solid var(--auth-border);
  display: grid;
  padding: 14px;
  place-items: center;
}
.auth-qr-code { display: block; height: auto; max-width: 210px; width: 100%; }
.auth-secret { border-top: 1px solid var(--auth-border); margin-top: 18px; padding-top: 14px; }
.auth-secret summary { color: var(--auth-navy); cursor: pointer; font-size: 13px; font-weight: 600; }
.auth-secret code {
  background: #edf3f1;
  color: var(--auth-text);
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 13px;
  margin-top: 10px;
  overflow-wrap: anywhere;
  padding: 12px;
}
.auth-code-input { font-size: 22px; font-variant-numeric: tabular-nums; letter-spacing: .35em; text-align: center; }
.auth-code-helper { font-size: .78rem; margin: 8px 0 0; text-align: center; }
.auth-back-row { margin-top: 22px; text-align: center; }
.auth-back-link { font-size: .82rem; font-weight: 600; text-decoration: none; }
.verify-2fa-page .auth-form-wrap--compact { transform: translateY(-64px); }
.auth-security-cancel { margin-top: 10px; text-decoration: none; }
.auth-security-note { align-items: flex-start; display: flex; gap: 8px; margin: 18px 0 0 !important; }
.auth-icon { background: #dde9e6; border-radius: 50%; color: #113b64; }
.auth-icon--blue,.auth-icon--navy { background: #dde9e6; color: #113b64; }
.auth-alert { border-radius: 0; }
.auth-alert--success { background: #dfeee8; border-color: #b5d2c8; color: #155a46; }
.auth-alert--info { background: #dde9e6; border-color: #aac0bb; color: #173f45; }
.auth-alert--error { background: #f9e5e1; border-color: #ddb5ae; color: #84352d; }
.auth-checkbox-group input[type="checkbox"] { accent-color: #113b64; }

.access-claim-page .auth-form-wrap { max-width: 470px; }
.access-step { color: var(--auth-green); font-size: .73rem; font-weight: 700; letter-spacing: .04em; margin: 0 0 10px; text-transform: uppercase; }
.access-code-input { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 1.05rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.access-honeypot {
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  left: -10000px !important;
  opacity: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}
.access-sponsor-card { background: #dde9e6; border-left: 4px solid var(--auth-green); display: grid; gap: 4px; margin: 0 0 24px; padding: 16px 18px; }
.access-sponsor-card span { color: var(--auth-green); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.access-sponsor-card strong { color: var(--auth-text); font-size: 1rem; }
.access-sponsor-card small { color: var(--auth-text-secondary); font-size: .78rem; }
.access-account-confirm { align-items: center; border: 1px solid var(--auth-border); display: grid; gap: 12px; grid-template-columns: 38px minmax(0,1fr); margin-bottom: 18px; padding: 14px; }
.access-account-confirm > i { background: #dde9e6; color: var(--auth-navy); display: grid; height: 38px; place-items: center; width: 38px; }
.access-account-confirm span,.access-account-confirm strong { display: block; }
.access-account-confirm span { color: var(--auth-text-muted); font-size: .7rem; }
.access-account-confirm strong { color: var(--auth-text); font-size: .84rem; overflow-wrap: anywhere; }
.access-terms { margin: 20px 0; }
.access-terms a { color: var(--auth-navy); }
.access-change-code { color: var(--auth-navy); display: inline-flex; font-size: .78rem; font-weight: 600; gap: 7px; margin-top: 22px; text-decoration: none; }
.access-social-action { margin-bottom: 8px; }
.access-return-note { line-height: 1.45; margin-bottom: 20px; text-align: center; }
.access-complete-page { background: var(--auth-navy); }
.access-complete-card { border-top: 4px solid #ffb52e; max-width: 540px; }
.access-complete-card .access-step { text-align: center; }
.onboarding-wrap { max-width: 520px; }
.onboarding-upload-form { margin-top: 28px; }
.onboarding-drop { align-items: center; background: #f7f8f4; border: 1px dashed var(--auth-border-hover); color: var(--auth-text); cursor: pointer; display: flex; flex-direction: column; gap: 7px; margin-bottom: 14px; min-height: 190px; padding: 28px; text-align: center; }
.onboarding-drop:hover { background: #edf3f1; border-color: var(--auth-navy); }
.onboarding-drop-icon { background: #dde9e6; color: var(--auth-navy); display: grid; font-size: 1.35rem; height: 48px; margin-bottom: 5px; place-items: center; width: 48px; }
.onboarding-drop strong { font-size: .94rem; }
.onboarding-drop > span:last-of-type { color: var(--auth-text-muted); font-size: .78rem; max-width: 100%; overflow-wrap: anywhere; }
.onboarding-drop input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.onboarding-outcomes { border-top: 1px solid var(--auth-border); display: grid; margin-top: 30px; }
.onboarding-outcomes > div { align-items: start; border-bottom: 1px solid var(--auth-border); display: grid; gap: 13px; grid-template-columns: 30px minmax(0,1fr); padding: 14px 0; }
.onboarding-outcomes > div > span { color: var(--auth-green); font-size: .7rem; font-weight: 700; padding-top: 2px; }
.onboarding-outcomes p { color: var(--auth-text-secondary); font-size: .78rem; line-height: 1.45; margin: 0; }
.onboarding-outcomes strong { color: var(--auth-text); display: block; font-size: .82rem; margin-bottom: 2px; }
.onboarding-processing { color: var(--auth-text-secondary); font-size: .78rem; margin: 18px 0 0; text-align: center; }
.onboarding-processing i { color: var(--auth-green); margin-right: 5px; }

/* Authentication surfaces use the same square control geometry as the portal. */
body.auth-page :is(
  .auth-panel-logo,
  .auth-card,
  .auth-alert,
  button,
  .auth-btn,
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea
) {
  border-radius: 0 !important;
}

@media (max-width: 820px) {
  .auth-split { display: block; }
  .auth-panel { align-items: flex-start; flex: none; max-width: none; padding: 28px 24px 34px; }
  .auth-panel-content { max-width: none; width: 100%; }
  .auth-panel-logo { margin-bottom: 26px; }
  .auth-panel-statement { padding: 24px 0 32px; }
  .auth-panel-headline { font-size: 2.8rem; margin: 0 0 20px; max-width: 620px; }
  .auth-panel-note { margin-top: auto; }
  .auth-features { grid-template-columns: 1fr 1fr; column-gap: 22px; margin-bottom: 0; }
  .auth-features li:nth-child(2) { border-top: 1px solid rgba(255,255,255,.17); }
  .auth-form-panel { min-height: auto; padding: 44px 24px 64px; }
  .auth-form-wrap { margin: 0 auto; }
  .verify-2fa-page .auth-form-wrap--compact { transform: none; }
  .auth-security-grid { grid-template-columns: 1fr; }
  .auth-security-step + .auth-security-step { margin-left: 0; margin-top: -1px; }
}

@media (max-width: 520px) {
  .auth-panel { padding: 22px 18px 28px; }
  .auth-panel-logo { margin-bottom: 22px; }
  .auth-panel-logo img { height: auto; width: 145px; }
  .auth-panel-headline { font-size: 2.05rem; }
  .auth-features { grid-template-columns: 1fr; }
  .auth-features li { padding: 10px 0; }
  .auth-features li:nth-child(n+3) { display: none; }
  .auth-form-panel { padding: 36px 18px 52px; }
  .auth-heading { font-size: 2.2rem; }
  .auth-centered { align-items: flex-start; padding: 18px; }
  .auth-card { border-radius: 0; padding: 30px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
