:root {
  --ink: #18294d;
  --muted: #667085;
  --thai-blue: #243b7b;
  --thai-blue-dark: #17295d;
  --thai-red: #a51931;
  --thai-red-soft: #f9edf0;
  --cream: #f8f5ee;
  --line: #d9dce5;
  --red: #a51931;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 50% 0, #fff 0, var(--cream) 48%); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
body::before { content: ''; display: block; height: 8px; background: linear-gradient(to bottom, var(--thai-red) 0 20%, #fff 20% 34%, var(--thai-blue) 34% 66%, #fff 66% 80%, var(--thai-red) 80% 100%); box-shadow: 0 1px 0 rgba(20,35,75,.12); }
button, input { font: inherit; }
a { color: inherit; }
.intake-shell, .legal-shell { width: min(760px, calc(100% - 32px)); min-height: calc(100vh - 8px); margin: 0 auto; padding: 36px 0 20px; display: flex; flex-direction: column; }
.brand-row { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.brand-row > span:last-child { display: grid; gap: 2px; }.brand-row strong { font-family: Georgia, 'Times New Roman', serif; font-size: 18px; letter-spacing: -.015em; }
.brand-mark { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 13px; color: white; background: var(--thai-blue); border: 3px solid white; outline: 2px solid var(--thai-red); font-size: 24px; line-height: 1; text-decoration: none; box-shadow: 0 8px 22px rgba(36,59,123,.23); }
.intake-card, .login-card, .legal-card { background: white; border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 18px 55px rgba(30,58,50,.08); }
.intake-card { position: relative; overflow: hidden; padding: clamp(26px, 6vw, 52px); }.intake-card::before { content: ''; position: absolute; inset: 0 0 auto; height: 5px; background: linear-gradient(90deg, var(--thai-red) 0 30%, white 30% 40%, var(--thai-blue) 40% 60%, white 60% 70%, var(--thai-red) 70%); }.intro { max-width: 610px; }.eyebrow { margin: 0 0 10px; color: var(--thai-red); text-transform: uppercase; letter-spacing: .14em; font-size: 10px; font-weight: 800; }
h1 { margin: 0; font: 500 clamp(37px, 7vw, 54px)/1 Georgia, 'Times New Roman', serif; letter-spacing: -.04em; }.intro > p:last-child, .login-copy { color: var(--muted); font-size: 15px; line-height: 1.6; margin: 16px 0 0; }
form { display: grid; gap: 19px; margin-top: 30px; }.name-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }.field { display: grid; gap: 8px; }.field > span { font-size: 12px; font-weight: 800; }.field input { width: 100%; min-height: 50px; padding: 13px 14px; border: 1px solid #cbd0dc; border-radius: 10px; color: var(--ink); background: white; outline: none; }.field input::placeholder { color: #99a1b0; }.field input:focus { border-color: var(--thai-blue); box-shadow: 0 0 0 3px rgba(36,59,123,.11); }.field.has-error input { border-color: #c75c54; background: #fffafa; }.field small { color: var(--red); font-size: 11px; font-weight: 700; }
.primary-button { min-height: 51px; border: 0; border-radius: 11px; padding: 14px 18px; color: white; background: var(--thai-blue); font-weight: 800; cursor: pointer; box-shadow: 0 8px 20px rgba(36,59,123,.22); }.primary-button:hover { background: var(--thai-blue-dark); }.primary-button:focus-visible, input:focus-visible, a:focus-visible { outline: 3px solid rgba(36,59,123,.24); outline-offset: 2px; }
.site-footer { display: flex; justify-content: center; align-items: center; flex-wrap: nowrap; gap: 8px; color: #7a8782; font-size: clamp(8px, 1.8vw, 10px); white-space: nowrap; margin-top: auto; padding: 28px 0 0; text-align: center; }.site-footer a { color: var(--thai-blue); text-underline-offset: 2px; }
.legal-card { padding: clamp(26px, 6vw, 52px); }.legal-card h1 { font-size: clamp(34px, 7vw, 50px); }.legal-date { color: var(--muted); font-size: 12px; margin: 12px 0 30px; }.legal-copy { color: #475467; font-size: 14px; line-height: 1.65; }.legal-copy h2 { color: var(--ink); font: 600 21px/1.25 Georgia, 'Times New Roman', serif; margin: 28px 0 8px; }.legal-copy h2:first-child { margin-top: 0; }.legal-copy p { margin: 0; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }.login-card { width: min(430px, 100%); padding: 36px; }.login-card .brand-mark { margin-bottom: 28px; }.login-card h1 { font-size: 40px; }.login-copy { margin-bottom: 26px; }.back-link { display: inline-block; color: var(--muted); font-size: 11px; margin-bottom: 24px; text-decoration: none; }.error-banner { background: #fff0ee; border: 1px solid #efc6c2; color: #87332e; border-radius: 10px; padding: 12px 14px; margin-bottom: 18px; font-size: 12px; font-weight: 700; }
@media (max-width: 560px) { .intake-shell, .legal-shell { padding-top: 22px; }.intake-card, .legal-card { border-radius: 17px; }.name-grid { grid-template-columns: 1fr; }.login-card { padding: 27px 22px; } }
