/* Public pages share the existing 1A Clean tokens and reviewed UI asset pack. */
.vt-public { margin:0; background:var(--vt-bg); color:var(--vt-text); font-family:var(--vt-font-family,system-ui,sans-serif); line-height:1.6; }
.vt-public *, .public-login-main * { box-sizing:border-box; }
.public-wrap { width:min(1180px,calc(100% - 64px)); margin-inline:auto; }
.vt-public a { color:inherit; }
.vt-public a:focus-visible,.public-login-page a:focus-visible { outline:3px solid var(--vt-focus); outline-offset:5px; }
.public-skip { position:absolute; left:20px; top:-100px; background:var(--vt-bg-surface-raised); padding:12px; z-index:10; }
.public-skip:focus { top:12px; }
.public-header { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:26px; border-bottom:1px solid var(--vt-border); }
.public-brand img { display:block; width:154px; height:auto; }
.public-header nav { display:flex; align-items:center; gap:30px; font-size:14px; }
.public-header a:not(.public-button) { text-decoration:none; }
.public-button { display:inline-flex; justify-content:center; align-items:center; gap:14px; min-height:48px; padding:11px 19px; border:1px solid transparent; border-radius:var(--vt-radius); background:var(--vt-brand-primary); color:var(--vt-on-brand)!important; text-decoration:none; font-weight:700; font-size:14px; }
.public-button:hover { background:var(--vt-brand-primary-hover); }
.public-button.public-button-quiet { color:var(--vt-text)!important; background:var(--vt-surface); border-color:var(--vt-border); }
.public-button-quiet:hover { border-color:var(--vt-brand-primary); }
.public-text-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:var(--vt-text); font-size:14px; font-weight:600; text-decoration:none; }
.public-text-link:hover { text-decoration:underline; }
.public-hero { display:grid; grid-template-columns:1.08fr 1fr; align-items:center; gap:64px; padding-block:86px 90px; }
.public-kicker { color:var(--vt-brand-primary); font-size:11px; font-weight:700; letter-spacing:.13em; }
.public-dot { display:inline-block; width:6px; height:6px; margin:0 7px 1px 0; background:var(--vt-brand-primary); border-radius:50%; }
.vt-public h1 { margin:23px 0; font-size:clamp(38px,4.25vw,58px); line-height:1.08; letter-spacing:-.045em; font-weight:650; }
.vt-public h1 em { color:var(--vt-brand-primary); font-style:normal; }
.public-lead { max-width:49ch; color:var(--vt-muted); font-size:17px; line-height:1.75; }
.public-actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:28px; }
.public-fine { color:var(--vt-muted); font-size:12px; line-height:1.7; }
.public-intro > .public-fine { margin-top:22px; }
.public-demo { min-width:0; margin:0; border:1px solid #315069; border-radius:13px; background:var(--vt-surface); box-shadow:0 24px 64px #0003; overflow:hidden; }
.demo-top { padding:16px 20px; display:flex; align-items:center; justify-content:space-between; gap:8px; background:var(--vt-surface-raised); border-bottom:1px solid var(--vt-border); font-size:12px; }
.demo-top > span:first-child,.demo-list div > span:first-child { display:flex; gap:9px; align-items:center; }
.demo-top .vt-icon { color:var(--vt-cyan); width:17px; height:17px; }
.demo-label { color:var(--vt-muted); font-size:9px; letter-spacing:.12em; }
.demo-body { padding:24px; }
.demo-heading { display:flex; align-items:center; gap:12px; justify-content:space-between; }
.demo-heading .public-kicker { color:var(--vt-muted); font-size:9px; }
.vt-public .demo-heading h2 { font-size:22px; margin:4px 0 0; letter-spacing:-.03em; }
.demo-heading .vt-badge { font-size:10px; padding:5px 8px; white-space:nowrap; }
.demo-attention { display:flex; align-items:center; gap:12px; background:var(--vt-warning-surface); border:1px solid var(--vt-warning-border); border-radius:8px; margin:22px 0 16px; padding:12px; color:var(--vt-warning); }
.demo-attention strong { font-size:12px; display:block; }
.demo-attention div { flex:1; }
.demo-attention div > span { font-size:11px; }
.demo-stats { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.demo-stats > div { min-width:0; padding:15px; border:1px solid var(--vt-border); border-radius:8px; background:var(--vt-surface-raised); display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.demo-stats .vt-icon { color:var(--vt-cyan); margin-bottom:5px; }
.demo-stats > div:nth-child(2) .vt-icon { color:var(--vt-brand-primary); }
.demo-stats span { font-size:11px; color:var(--vt-muted); }
.demo-stats strong { font-size:32px; font-weight:650; line-height:1.4; }
.demo-stats small { color:var(--vt-muted); font-size:15px; font-weight:400; }
.demo-meter { width:100%; height:4px; margin-top:8px; border-radius:4px; background:var(--vt-border); }
.demo-meter > span { display:block; width:41%; height:100%; background:var(--vt-cyan); border-radius:4px; }
.demo-list { margin-top:12px; font-size:11px; }
.demo-list > div { display:flex; justify-content:space-between; gap:8px; padding:13px 0; border-bottom:1px solid var(--vt-border); }
.demo-list > div:last-child { border:0; padding-bottom:0; }
.demo-list .vt-icon { width:16px; height:16px; flex-basis:16px; color:var(--vt-muted); }
.demo-good { color:var(--vt-brand-primary); }
.demo-warn { color:var(--vt-warning); }
.public-demo figcaption { color:var(--vt-muted); padding:12px 16px; border-top:1px solid var(--vt-border); font-size:10px; text-align:center; }
.public-strip { border-block:1px solid var(--vt-border); background:var(--vt-surface); }
.public-strip > div { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:22px; }
.public-strip p { margin:0; color:var(--vt-muted); font-size:14px; }
.public-strip strong { color:var(--vt-text); font-weight:500; }
.public-strip span { font-size:12px; color:var(--vt-muted); }
.public-strip span::before { content:'✓'; color:var(--vt-brand-primary); margin-right:9px; }
.public-section { padding-block:76px; scroll-margin-top:24px; }
.vt-public h2 { margin:13px 0 18px; font-size:34px; line-height:1.2; letter-spacing:-.035em; font-weight:600; }
.public-section-intro,.public-split p,.public-trust p,.public-final > p { color:var(--vt-muted); max-width:60ch; font-size:15px; }
.public-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:34px; }
.public-feature-grid article { padding:25px; border:1px solid var(--vt-border); border-radius:var(--vt-radius); background:var(--vt-surface); }
.public-feature-grid .vt-icon { color:var(--vt-cyan); width:26px; height:26px; }
.public-feature-grid article:nth-child(3n+2) .vt-icon { color:var(--vt-brand-primary); }
.public-feature-grid article:nth-child(3n) .vt-icon { color:var(--vt-violet); }
.vt-public h3 { font-size:16px; margin:17px 0 9px; font-weight:600; }
.public-feature-grid p { font-size:14px; color:var(--vt-muted); margin:0; }
.public-split { display:grid; grid-template-columns:1fr 1fr; gap:80px; border-top:1px solid var(--vt-border); }
.public-venue-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-content:center; }
.public-venue-list > span { padding:15px; border:1px solid var(--vt-border); border-radius:8px; font-size:13px; }
.public-venue-list > p { grid-column:1/-1; font-size:13px; }
.public-trust { display:grid; grid-template-columns:1.3fr 1fr; gap:60px; padding:36px; background:var(--vt-surface); border:1px solid var(--vt-border); border-radius:var(--vt-radius); }
.public-trust ul { list-style:none; padding:0; align-self:center; }
.public-trust li { border-bottom:1px solid var(--vt-border); padding:16px 0; font-size:14px; }
.public-trust li::before { content:'✓'; color:var(--vt-brand-primary); margin-right:12px; }
.public-final { text-align:center; border-top:1px solid var(--vt-border); padding-top:65px; }
.public-final > p { margin-inline:auto; }
.public-final .public-actions { justify-content:center; }
.public-footer { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:32px; border-top:1px solid var(--vt-border); padding-block:36px; }
.public-footer p,.public-footer small { font-size:12px; color:var(--vt-muted); }
.public-footer nav { display:flex; flex-direction:column; align-items:flex-start; gap:5px; font-size:12px; }
.public-footer nav a { display:inline-flex; align-items:center; min-height:30px; text-decoration:none; color:var(--vt-muted); }
.public-footer nav a:hover { text-decoration:underline; color:var(--vt-text); }
.public-footer strong { margin-bottom:8px; font-weight:600; }
.public-policy { max-width:740px; min-height:55vh; padding-block:70px; }
.public-policy p { color:var(--vt-muted); }
.public-policy h1 { font-size:42px; }
/* The login page presents the existing form without exposing the application behind it. */

.public-login-page body { background:var(--vt-bg); }
.public-login-header { width:min(1180px,calc(100% - 48px)); margin:auto; padding-block:22px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.public-login-main { min-height:calc(100svh - 90px); padding:38px 24px 80px; display:flex; align-items:flex-start; justify-content:center; }
.public-login-page #loginDialog { position:static; inset:auto; margin:0; width:100%; max-width:440px; max-height:none; padding:32px; border:1px solid var(--vt-border); background:var(--vt-surface); color:var(--vt-text); border-radius:12px; box-shadow:0 20px 60px #0002; }

.public-login-page #loginForm > .vt-brand-image { width:155px; height:auto; margin:0 0 25px; }
.public-login-page #loginForm h1 { font-size:32px; letter-spacing:-.035em; margin:8px 0; }
.public-login-page #loginForm > p { color:var(--vt-muted); font-size:14px; }
.public-login-page #loginForm .field { margin-block:18px; }
.public-login-page #loginForm input { min-height:48px; }
.public-login-page #loginForm > .public-login-help { border-top:1px solid var(--vt-border); padding-top:20px; margin-top:20px; font-size:12px; line-height:1.7; }
@media(max-width:1000px) { .public-hero { gap:30px; } .public-wrap { width:calc(100% - 48px); } .demo-body { padding:18px; } .public-split { gap:32px; } }
@media(max-width:760px) { .public-header { padding-block:18px; } .public-nav-detail { display:none; } .public-hero { grid-template-columns:1fr; padding-block:48px; gap:36px; } .public-intro { max-width:620px; } .public-demo { width:100%; max-width:560px; } .public-feature-grid { grid-template-columns:repeat(2,1fr); } .public-split,.public-trust { grid-template-columns:1fr; gap:22px; } .public-trust { padding:25px; } .public-section { padding-block:48px; } .public-strip > div { flex-wrap:wrap; gap:15px 24px; } .public-strip p { width:100%; } .public-footer { grid-template-columns:1fr 1fr; } .vt-public h2 { font-size:29px; } }
@media(max-width:440px) { .public-wrap { width:calc(100% - 32px); } .public-brand img { width:116px; } .public-header { gap:10px; } .public-header .public-button { padding:9px 12px; font-size:12px; gap:8px; } .public-feature-grid { grid-template-columns:1fr; } .public-feature-grid article { padding:22px; } .public-venue-list { grid-template-columns:1fr; } .public-footer { gap:28px 16px; } .public-footer > div { grid-column:1/-1; } .demo-heading { flex-wrap:wrap; } .demo-stats strong { font-size:24px; white-space:nowrap; } .demo-stats small { font-size:12px; } .demo-stats > div { padding:12px; } .demo-list { font-size:10px; } .public-actions { gap:12px 20px; } .public-login-main { padding:20px 16px 48px; } .public-login-page #loginDialog { padding:24px; } .public-login-header .public-kicker { font-size:9px; } }
@media(prefers-reduced-motion:reduce) { .vt-public * { scroll-behavior:auto; } }
.public-login-page #loginForm { display:block; padding:0; }
.public-login-page #loginForm > .eyebrow { display:block; }
.public-login-page #loginForm > .vt-brand-image { display:block; margin-bottom:22px; }
.public-login-page #loginForm > #showRecovery { margin-top:10px; }

/* Legal pages share the public design tokens. */
.legal-disclosure{grid-column:1/-1;border-top:1px solid var(--vt-border);padding-top:16px;overflow-wrap:anywhere}
.public-policy{max-width:850px;overflow-wrap:anywhere}.public-policy h1{font-size:clamp(30px,5vw,42px)}
.public-policy h2{font-size:24px;line-height:1.3;margin-top:36px}.public-policy section{scroll-margin-top:24px}
.public-policy a{color:var(--vt-text);text-underline-offset:3px}.legal-meta{font-size:12px}.legal-summary{font-size:18px}
.legal-contents{border:1px solid var(--vt-border);border-radius:10px;padding:20px;margin:28px 0}.legal-contents ul{padding-left:20px;margin-bottom:0}.legal-contents li{padding-block:4px}
.legal-table{overflow:auto;max-width:100%;border:1px solid var(--vt-border);border-radius:8px;margin:20px 0}.legal-table table{border-collapse:collapse;width:100%;font-size:13px}.legal-table th,.legal-table td{padding:12px;vertical-align:top;text-align:left;border-bottom:1px solid var(--vt-border);min-width:120px}.legal-table th{background:var(--vt-surface)}
.legal-nav{border-top:1px solid var(--vt-border);margin-top:40px;padding-top:24px;display:flex;flex-wrap:wrap;gap:12px 22px;font-size:13px}
.legal-settings button{font:inherit;cursor:pointer;border:1px solid var(--vt-border);background:var(--vt-surface);color:var(--vt-text);border-radius:8px;padding:12px;margin:4px;white-space:normal}
@media print{.vt-public{background:white!important;color:black!important}.public-header,.public-footer,.public-skip,.legal-contents,.legal-nav,.legal-settings{display:none!important}.public-policy{width:100%;max-width:none;padding:0}.public-policy p,.public-policy a{color:black!important}.legal-table{overflow:visible;border-color:#888}.legal-table table{font-size:10pt}.legal-table th,.legal-table td{min-width:0;background:white!important;color:black!important}h1,h2{break-after:avoid}tr{break-inside:avoid}}
/* Public sign-in keeps the approved tokens without loading application styles. */
.public-login-page #loginDialog { display:block; }
.public-login-page [hidden] { display:none!important; }
.public-login-page .field { display:flex; flex-direction:column; gap:8px; margin-block:18px; font-size:14px; }
.public-login-page input { width:100%; box-sizing:border-box; border:1px solid var(--vt-border); border-radius:8px; background:var(--vt-bg); color:var(--vt-text); font:inherit; padding:12px; min-height:48px; }
.public-login-page button { font:inherit; cursor:pointer; }
.public-login-page .full-width { width:100%; justify-content:center; margin-top:12px; }
.public-login-page #togglePassword { color:var(--vt-muted); background:none; border:0; padding:8px 0; font-size:13px; }
.public-login-page .form-message { font-size:14px; overflow-wrap:anywhere; margin-top:12px; }
.public-login-page #accountForm h2 { font-size:28px; }
.public-login-page #accountForm > p { font-size:14px; color:var(--vt-muted); }

.vt-public button:focus-visible,.vt-public input:focus-visible { outline:3px solid var(--vt-focus); outline-offset:3px; }
