:root { --ink:#17211b; --branch:#47624f; --gold:#d9a62e; --mist:#f4f7f4; }
body { color:var(--ink); background:var(--mist); }
.brand { color:var(--branch); font-size:1.45rem; font-weight:800; }
.hero { background:radial-gradient(circle at 80% 15%, #fff4cf 0, transparent 28%), linear-gradient(135deg,#f8faf8,#edf4ef); }
.min-vh-75 { min-height:70vh; }
.foundation-card { background:rgba(255,255,255,.9); border:1px solid #dae3dc; border-radius:1.25rem; box-shadow:0 1rem 3rem rgba(23,33,27,.08); }
.foundation-card li { padding:.45rem 0; }
.auth-shell { min-height:72vh; display:grid; place-items:center; padding:2rem 1rem; }
.auth-card { width:min(460px,100%); padding:2rem; background:#fff; border:1px solid #dae3dc; border-radius:1.25rem; box-shadow:0 1rem 3rem rgba(23,33,27,.08); }
.eyebrow { color:var(--branch); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.public-nav a:not(.btn), footer a { color:var(--branch); text-decoration:none; font-weight:600; }
.auth-links { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:1.25rem; font-size:.92rem; }
.auth-links a { color:var(--branch); font-weight:700; }
.feature-card { height:100%; padding:1.5rem; background:#fff; border:1px solid #dae3dc; border-radius:1rem; }
.feature-card h3 { font-size:1.2rem; font-weight:800; }
.legal-copy { max-width:820px; margin:0 auto; }
.legal-copy h2 { margin-top:2rem; font-size:1.25rem; }
@media (max-width:600px) { .public-nav > a:first-child { display:none; } }
.public-auth-shell,.onboarding-shell { min-height:72vh; display:grid; place-items:center; padding:2.5rem 1rem; }
.public-auth-card,.onboarding-card { width:min(580px,100%); padding:2rem; background:#fff; border:1px solid #dae3dc; border-radius:1.25rem; box-shadow:0 1rem 3rem rgba(23,33,27,.08); }
.public-account-form { display:grid; gap:.55rem; }
.public-account-form input:not([type=checkbox]) { width:100%; border:1px solid #bbc9bf; border-radius:.6rem; padding:.72rem .8rem; }
.public-account-form button { margin-top:.75rem; }
.public-check { display:flex; align-items:flex-start; gap:.6rem; margin-top:.6rem; }
.trap-field { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.field-error { color:#a32626; font-weight:700; }
.auth-switch { margin:1.25rem 0 0; text-align:center; }
.result-icon { display:inline-grid; place-items:center; width:3rem; height:3rem; margin-bottom:1rem; border-radius:50%; background:#e9f1eb; font-size:1.5rem; }
.onboarding-card ol { display:grid; gap:1rem; padding-left:1.5rem; margin:1.5rem 0; }
.onboarding-card li span { display:block; color:#66706a; }
