/* Landing-only layout over the shared approved-page stylesheet. */
body.public-landing { margin:0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--text,#24354b); background:var(--background,#f7faff); }
.public-landing * { box-sizing:border-box; }
.public-landing [hidden] { display:none!important; }
.public-landing a { color:inherit; }
.public-landing button,.public-landing input { font:inherit; }
.public-landing .landing-header,.public-landing main,.public-landing .landing-footer { width:min(1120px,calc(100% - 48px)); margin:auto; }
.public-landing .landing-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:26px 0; }
.public-landing nav { display:flex; gap:26px; align-items:center; font-size:14px; }
.public-landing .how-link { text-decoration:none; }
.public-landing .landing-button { display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:14px 23px; border-radius:12px; border:1px solid #d7e3ed; text-decoration:none; font-weight:600; font-size:15px; cursor:pointer; }
.public-landing .primary { background:var(--blue,#267de3); color:white; border-color:transparent; box-shadow:0 6px 18px #267de320; }
.public-landing .secondary { background:white; color:var(--text,#24354b); }
.public-landing .landing-button:hover:not(:disabled) { filter:brightness(.96); }
.public-landing :focus-visible { outline:3px solid #1879d2; outline-offset:4px; }
.public-landing .landing-hero { display:grid; grid-template-columns:1.15fr 1fr; gap:70px; align-items:center; padding:70px 0 86px; }
.public-landing .eyebrow { font-size:11px; letter-spacing:1.8px; color:var(--blue,#267de3); font-weight:700; }
.public-landing h1 { font-size:clamp(36px,4.5vw,56px); line-height:1.12; letter-spacing:-2px; margin:22px 0; font-weight:650; }
.public-landing h1 span { color:var(--blue,#267de3); }
.public-landing .hero-description { color:var(--muted,#62748a); font-size:18px; line-height:1.75; max-width:460px; margin-bottom:28px; }
.public-landing .cta-note { font-size:13px; color:var(--muted,#62748a); margin-top:14px; }
.public-landing .hero-preview { padding:30px; border-radius:26px; background:linear-gradient(145deg,#e4f1ff,#f0f7fc); transform:rotate(2deg); }
.public-landing .preview-label { font-size:10px; font-weight:650; letter-spacing:1.2px; color:#486782; margin-bottom:20px; }
.public-landing .preview-document { background:white; padding:30px; border:1px solid #e3eaf1; border-radius:14px; box-shadow:0 14px 32px #243d6010; }
.public-landing .document-label { font-weight:650; font-size:21px; }
.public-landing .skeleton { height:7px; width:87%; background:#e5edf5; border-radius:8px; margin-top:12px; }
.public-landing .skeleton.wide { width:100%; }.public-landing .skeleton.short { width:57%; }
.public-landing .preview-document hr { border:0; border-top:1px solid #edf1f5; margin:24px 0; }
.public-landing .preview-document h2 { font-size:16px; line-height:1.5; }
.public-landing .preview-document p { font-size:13px; color:#62748a; line-height:1.7; }
.public-landing .preview-note { display:flex; align-items:center; gap:14px; background:white; border:1px solid #dce9f2; border-radius:12px; padding:17px; margin:20px -12px -8px 14px; transform:rotate(-2deg); }
.public-landing .preview-note>span { color:#247c68; background:#e8f6f1; padding:9px 12px; border-radius:50%; }
.public-landing .preview-note strong { font-size:14px; }.public-landing .preview-note p { font-size:12px; margin:5px 0 0; color:#62748a; }
.public-landing .landing-process { padding:28px 0 60px; }.public-landing .landing-process>h2 { font-size:30px; letter-spacing:-.8px; }
.public-landing .process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:28px; }
.public-landing .process-grid article { padding:28px; border:1px solid #e0e8f1; border-radius:18px; background:white; }
.public-landing .step-number { color:var(--blue,#267de3); font-size:13px; font-weight:650; }
.public-landing h3 { font-size:18px; margin:18px 0 12px; }.public-landing .process-grid p { color:var(--muted,#62748a); font-size:14px; line-height:1.75; margin:0; }
.public-landing .landing-closing { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px 0 55px; }.public-landing .landing-closing h2 { font-size:24px; max-width:520px; }
.public-landing .landing-footer { border-top:1px solid #dde7f0; padding:24px 0; display:flex; justify-content:space-between; gap:20px; color:var(--muted,#62748a); font-size:12px; }.public-landing .landing-footer p { margin:0; }
.public-landing dialog { width:min(440px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; border:1px solid #dce5ee; border-radius:22px; padding:32px; color:var(--text,#24354b); box-shadow:0 25px 90px #18384b30; }
.public-landing dialog::backdrop { background:#18384b55; }.public-landing dialog h2 { margin:8px 0 12px; font-size:28px; }
.public-landing #login-description,.public-landing .login-new { color:#62748a; font-size:14px; line-height:1.6; }
.public-landing .dialog-close { position:absolute; right:12px; top:10px; border:0; background:none; padding:4px 10px; font-size:26px; cursor:pointer; color:#62748a; }
.public-landing form { display:grid; gap:12px; }.public-landing label { font-size:14px; font-weight:600; }
.public-landing input { width:100%; padding:13px; border:1px solid #bacbdc; border-radius:9px; }
.public-landing .text-button { border:0; background:none; color:#286da4; padding:8px; cursor:pointer; font-size:12px; }
.public-landing #login-status { font-size:13px; line-height:1.6; }.public-landing .login-new { margin-bottom:0; }
.public-landing .skip-link { position:absolute; top:-100px; left:20px; }.public-landing .skip-link:focus { top:10px; background:white; padding:12px; z-index:10; }
@media(max-width:760px){.public-landing .landing-hero{grid-template-columns:1fr;gap:35px;padding:35px 0}.public-landing .hero-preview{max-width:440px;width:100%;margin:auto}.public-landing .process-grid{grid-template-columns:1fr}.public-landing .how-link{display:none}.public-landing .landing-closing{align-items:flex-start;flex-direction:column}.public-landing h1{letter-spacing:-1.3px}.public-landing .landing-header{gap:10px}.public-landing .landing-header .landing-button{padding:11px 14px;font-size:13px}.public-landing .landing-footer{flex-direction:column;gap:10px}.public-landing dialog{padding:26px}}

/* Authentication uses the same surface, border and text tokens as the approved pages. */
.public-landing #login-dialog { background:var(--surface); border-color:var(--line); }
.public-landing #login-dialog input { border-color:var(--line); background:var(--surface); color:var(--text); font-size:16px; }
.public-landing #login-dialog form { margin-top:24px; }
.public-landing .login-help { margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
.public-landing .login-destination { margin:0 0 8px; color:var(--muted); font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.public-landing .login-destination strong { color:var(--text); font-weight:600; }
.public-landing #login-code { letter-spacing:.3em; font-size:24px; text-align:center; }
.public-landing .login-secondary-actions { display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.public-landing #login-dialog button:disabled { cursor:default; opacity:.55; box-shadow:none; }
.public-landing #login-status:empty { display:none; }
.public-landing #login-dialog .text-button { color:var(--blue); }
@media(max-width:480px){.public-landing #login-dialog{width:calc(100% - 24px);padding:32px 24px;min-height:70dvh;border-radius:18px}.public-landing .login-secondary-actions{flex-direction:column;align-items:stretch}}
