@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "lexend";
  src: url("../fonts/lexend-latin.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial");
  ascent-override: 90.44%;
  descent-override: 22.52%;
  line-gap-override: 0%;
  size-adjust: 107.12%;
}
@font-face {
  font-family: "lexend Fallback";
  src: local("Arial");
  ascent-override: 90.26%;
  descent-override: 22.57%;
  line-gap-override: 0%;
  size-adjust: 110.79%;
}
:root {
  color-scheme: light;
  --as-font-sans: "Inter", "Inter Fallback", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --as-font-display: "lexend", "lexend Fallback", "Inter", ui-sans-serif, system-ui, sans-serif;
  --as-font-display-features: "ss01";
  --as-text: #334155;
  --as-heading: #0f172a;
  font-family: var(--as-font-sans);
}
html, body { min-height: 100%; }
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body.cp-auth-shell {
  min-height: 100vh; margin: 0; position: relative; overflow: hidden;
  background: radial-gradient(circle at top left, rgba(56, 189, 248, .18), transparent 28%), radial-gradient(circle at bottom right, rgba(79, 70, 229, .16), transparent 32%), linear-gradient(160deg, #f8fafc 0%, #eef2ff 45%, #e2e8f0 100%);
  color: var(--as-text);
}
body.cp-auth-shell::before, body.cp-auth-shell::after {
  content: ""; position: absolute; border-radius: 9999px; filter: blur(56px); opacity: .55; pointer-events: none;
}
body.cp-auth-shell::before { top: -6rem; left: -5rem; width: 16rem; height: 16rem; background: rgba(14, 165, 233, .18); }
body.cp-auth-shell::after { right: -5rem; bottom: -6rem; width: 18rem; height: 18rem; background: rgba(99, 102, 241, .16); }
.cp-auth-stage {
  position: relative; z-index: 1; min-height: 100vh; display: flex; align-items: center; justify-content: center; box-sizing: border-box; padding: 3rem 1.5rem;
}
.cp-auth-frame { width: 100%; max-width: 24rem; display: flex; flex-direction: column; gap: 2rem; }
.cp-auth-brand { text-align: center; }
.cp-auth-logo { display: block; width: auto; height: 2.5rem; margin: 0 auto; }
.cp-auth-title { margin: 2.5rem 0 0; font-family: var(--as-font-display); font-feature-settings: var(--as-font-display-features); font-size: 1.9rem; line-height: 1.15; font-weight: 400; letter-spacing: -.025em; color: var(--as-heading); }
.cp-auth-copy { margin: .7rem 0 0; font-size: .98rem; line-height: 1.65; color: var(--as-text); }
.cp-auth-flashes { display: flex; flex-direction: column; gap: .5rem; }
.cp-auth-flash, .cp-auth-message {
  border: 1px solid #e5e7eb; border-radius: .75rem; background: rgba(255, 255, 255, .78); padding: .75rem .9rem; font-size: .9rem; line-height: 1.5; color: var(--as-text);
}
.cp-auth-flash--success { border-color: #bbf7d0; background: #f0fdf4; color: #15803d; }
.cp-auth-flash--warning { border-color: #fde68a; background: #fffbeb; color: #b45309; }
.cp-auth-flash--error { border-color: #fecdd3; background: #fff1f2; color: #be123c; }
.cp-auth-form, .cp-auth-actions { display: flex; flex-direction: column; gap: 1.5rem; }
.cp-auth-fields { display: flex; flex-direction: column; }
.cp-auth-field { position: relative; margin-top: -1px; }
.cp-auth-field:first-child { margin-top: 0; }
.cp-auth-input {
  display: block; width: 100%; box-sizing: border-box; border: 1px solid #d1d5db; background: #fff; padding: .8rem .95rem; font: inherit; font-size: 1rem; line-height: 1.5; color: var(--as-heading); outline: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.cp-auth-field:first-child .cp-auth-input { border-top-left-radius: .75rem; border-top-right-radius: .75rem; }
.cp-auth-field:last-child .cp-auth-input { border-bottom-left-radius: .75rem; border-bottom-right-radius: .75rem; }
.cp-auth-input::placeholder { color: #9ca3af; }
.cp-auth-input:focus { position: relative; z-index: 1; border-color: #0f6bdc; box-shadow: 0 0 0 2px rgba(15, 107, 220, .18); }
.cp-auth-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cp-auth-check { display: flex; align-items: center; gap: .7rem; font-size: .92rem; color: var(--as-text); }
.cp-auth-check input { margin: 0; }
.cp-auth-link { align-self: center; font-size: .92rem; font-weight: 600; color: #0f6bdc; text-decoration: none; }
.cp-auth-link:hover { color: #00174a; text-decoration: underline; }
.cp-auth-button {
  display: inline-flex; width: 100%; box-sizing: border-box; align-items: center; justify-content: center; gap: .5rem; border: 0; border-radius: .75rem; background: #00174a; padding: .8rem 1rem; font: inherit; font-size: .96rem; font-weight: 600; color: #fff; box-shadow: 0 6px 18px rgba(0, 23, 74, .18); cursor: pointer; text-decoration: none; transition: background-color .15s ease, transform .15s ease;
}
.cp-auth-button:hover { background: #0a2d6b; }
.cp-auth-button:focus-visible, .cp-auth-link:focus-visible, .cp-auth-check input:focus-visible { outline: 2px solid #0f6bdc; outline-offset: 2px; }
.cp-auth-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 480px) {
  .cp-auth-stage { padding: 2rem 1rem; }
  .cp-auth-title { margin-top: 2rem; font-size: 1.75rem; }
  .cp-auth-row { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .cp-auth-button, .cp-auth-input { transition: none; }
}