:root {
  color-scheme: light;
  --sage: #4a7c6a;
  --sage-dark: #2e5548;
  --sage-pale: #e8f2ef;
  --cream: #faf7f3;
  --ink: #1a2420;
  --muted: #5d6964;
  --line: rgba(74, 124, 106, .22);
  --danger: #a33a36;
  --white: #fff;
  font-family: "DM Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: var(--cream); }
a { color: var(--sage-dark); text-underline-offset: .18em; }
a:hover { color: var(--sage); }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(18rem, 38%) minmax(0, 1fr); }
.auth-aside { position: sticky; top: 0; min-height: 100vh; padding: clamp(2rem, 5vw, 4.5rem); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; background: var(--sage-dark); color: var(--white); }
.auth-aside::after { content: ""; position: absolute; right: -8rem; bottom: -10rem; width: 24rem; height: 24rem; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(255,255,255,.035), 0 0 0 8rem rgba(255,255,255,.025); }
.auth-brand { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .8rem; color: white; text-decoration: none; font: 600 1.35rem Georgia, serif; }
.auth-brand img { width: 3rem; height: 3rem; object-fit: contain; }
.auth-promise { position: relative; z-index: 1; max-width: 27rem; }
.auth-promise h2 { margin: 0 0 1rem; font: 600 clamp(2rem, 3.7vw, 3.6rem)/1.08 Georgia, serif; letter-spacing: -.035em; }
.auth-promise p { margin: 0; color: rgba(255,255,255,.8); font-size: 1.03rem; line-height: 1.7; }
.auth-trust { position: relative; z-index: 1; display: grid; gap: .7rem; color: rgba(255,255,255,.82); font-size: .9rem; }
.auth-trust span::before { content: "✓"; margin-right: .6rem; color: #c8e8dc; font-weight: 800; }
.auth-content { width: min(100%, 47rem); margin: auto; padding: clamp(2rem, 7vw, 5rem); }
.auth-card { width: 100%; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--line); border-radius: 1.35rem; background: rgba(255,255,255,.94); box-shadow: 0 24px 70px rgba(31,65,53,.1); }
.auth-card h1 { margin: 0 0 .65rem; font: 600 clamp(1.8rem, 3vw, 2.5rem)/1.18 Georgia, serif; letter-spacing: -.025em; }
.auth-card h2, .auth-card h3 { color: var(--sage-dark); }
.auth-card > p:first-of-type { color: var(--muted); line-height: 1.65; }
.auth-card form { margin-top: 1.5rem; }
.auth-card form > p { margin: 0 0 1rem; }
.auth-card label { display: block; margin-bottom: .38rem; font-size: .92rem; font-weight: 700; }
.auth-card input:not([type=checkbox]):not([type=radio]), .auth-card select, .auth-card textarea { width: 100%; min-height: 2.9rem; padding: .72rem .85rem; border: 1px solid #aeb9b4; border-radius: .65rem; background: white; color: var(--ink); font: inherit; transition: border-color .16s, box-shadow .16s; }
.auth-card input:focus, .auth-card select:focus, .auth-card textarea:focus { outline: 0; border-color: var(--sage); box-shadow: 0 0 0 .22rem rgba(74,124,106,.15); }
.auth-card input[type=checkbox], .auth-card input[type=radio] { width: 1.05rem; height: 1.05rem; margin: .15rem .55rem 0 0; accent-color: var(--sage); vertical-align: top; }
.auth-card p:has(> label + input[type=checkbox]), .auth-card p:has(> label + input[type=radio]) { display: flex; align-items: flex-start; flex-wrap: wrap; }
.auth-card p:has(> label + input[type=checkbox]) label, .auth-card p:has(> label + input[type=radio]) label { display: inline; flex: 1; order: 2; margin: 0; font-weight: 600; }
.auth-card p:has(> label + input[type=checkbox]) input, .auth-card p:has(> label + input[type=radio]) input { order: 1; }
.helptext { display: block; margin-top: .45rem; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.helptext ul { margin: .45rem 0 0; padding-left: 1.2rem; }
.errorlist, [role=alert] { margin: .5rem 0; padding: .75rem 1rem; border-radius: .65rem; background: #fff0ef; color: var(--danger); font-size: .9rem; }
.messages { margin-bottom: 1rem; padding: .8rem 1rem; border-radius: .7rem; background: var(--sage-pale); color: var(--sage-dark); }
.auth-card button, .auth-card .button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.9rem; margin-top: .45rem; padding: .75rem 1.15rem; border: 0; border-radius: .7rem; background: var(--sage); color: white; font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; transition: background .16s, transform .16s; }
.auth-card button:hover, .auth-card .button:hover { background: var(--sage-dark); transform: translateY(-1px); }
.auth-card button:focus-visible, .auth-card .button:focus-visible, a:focus-visible { outline: .2rem solid rgba(74,124,106,.35); outline-offset: .16rem; }
.auth-card nav { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.eyebrow { margin: 0 0 .45rem !important; color: var(--sage); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.plan-card { padding: 1.25rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--cream); }
.plan-card h2 { margin: 0 0 .75rem; font: 600 1.15rem Georgia, serif; }
.plan-price { display: flex; align-items: baseline; gap: .35rem; margin-bottom: 1rem; }
.plan-price strong { font: 600 2rem Georgia, serif; color: var(--ink); }
.plan-price span { color: var(--muted); }
.plan-card ul { margin: 0; padding-left: 1.15rem; color: var(--muted); line-height: 1.7; }
.launch-lock { display: grid; gap: .25rem; margin-top: 1.25rem; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--sage-pale); color: var(--sage-dark); }
.launch-lock span { font-size: .9rem; line-height: 1.5; }
.auth-footer { margin-top: 1.35rem; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.auth-footer a { white-space: nowrap; }

@media (max-width: 820px) {
  .auth-shell { display: block; }
  .auth-aside { position: relative; min-height: auto; padding: 1.2rem 5%; }
  .auth-promise, .auth-trust { display: none; }
  .auth-brand img { width: 2.5rem; height: 2.5rem; }
  .auth-content { padding: 1.25rem 4% 2.5rem; }
  .auth-card { padding: 1.35rem; border-radius: 1rem; }
  .plan-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
