/* Public pages share Fleet's restrained palette, type and spacing. */
.public-site { --ps-ink:var(--ui-text); --ps-muted:var(--ui-muted); --ps-paper:var(--ui-bg); --ps-border:var(--ui-border); --ps-red:var(--ui-accent); color:var(--ps-ink); background:var(--ps-paper); font:14px/1.6 "Segoe UI",Inter,Arial,sans-serif; min-height:100dvh; }
.public-site * { box-sizing:border-box; }
.public-site a { color:inherit; text-decoration:none; }
.public-site :is(a,button,summary,input,select,textarea):focus-visible { outline:2px solid var(--ps-red); outline-offset:3px; }
.public-site :is(h1,h2,h3) { color:var(--ps-ink); font-weight:600; line-height:1.25; overflow-wrap:break-word; }
.public-site h1 { font-size:clamp(28px,3vw,40px); margin:0 0 16px; }
.public-site h2 { font-size:24px; margin:0 0 12px; }
.public-site h3 { font-size:18px; margin:0 0 8px; }
.public-site p { margin:0 0 16px; }
.public-header { max-width:1280px; margin:auto; min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px 32px; border-bottom:1px solid var(--ps-border); }
.public-brand { display:inline-flex; gap:10px; align-items:center; font-size:19px; font-weight:700; white-space:nowrap; }
.public-brand b { font-weight:400; }
.public-brand-mark { background:var(--ps-red); color:var(--ui-on-accent); width:32px; height:32px; display:grid; place-items:center; border-radius:6px; font-size:23px; }
.public-nav,.public-account { display:flex; align-items:center; gap:24px; }
.public-nav a,.public-login { display:inline-flex; align-items:center; font-size:14px; min-height:40px; }
.public-nav a.active { color:var(--ps-red); box-shadow:0 2px var(--ps-red); }
.public-nav a:hover,.public-login:hover { color:var(--ps-red); }
.public-site .public-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; background:var(--ps-red); color:var(--ui-on-accent); padding:10px 18px; border:1px solid var(--ps-red); border-radius:6px; font-weight:600; font-size:14px; min-height:44px; text-align:center; }
.public-site .public-button:hover { background:var(--ui-accent-hover); border-color:var(--ui-accent-hover); }
.public-site .public-button.small { padding:8px 14px; }
.public-text-link { display:inline-flex; align-items:center; min-height:40px; font-size:14px; font-weight:600; }
.public-text-link:hover { text-decoration:underline; }
.public-hero { max-width:1280px; margin:auto; padding:48px 32px; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.public-hero-copy { min-width:0; }
.public-eyebrow { color:var(--ps-muted); font-size:13px; font-weight:600; margin-bottom:12px!important; }
.public-lead { color:var(--ps-muted); font-size:16px; max-width:600px; }
.public-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin:24px 0 16px; }
.public-hero-notes { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--ps-muted); font-size:12px; }
.public-product-preview { min-width:0; background:var(--ui-surface); border:1px solid var(--ps-border); border-radius:8px; overflow:hidden; }
.preview-top { padding:12px 16px; display:flex; align-items:center; gap:8px; font-size:13px; }
.preview-top>span:last-child { margin-left:auto; font-size:12px; color:var(--ps-muted); }
.preview-dot { height:7px; width:7px; background:var(--ui-success); border-radius:50%; flex-shrink:0; }
.preview-map { height:280px; position:relative; background:#e9ede7; overflow:hidden; }
.preview-map>svg { height:100%; width:100%; }
.preview-pin { position:absolute; display:grid; place-items:center; width:36px; height:36px; border:2px solid #fff; border-radius:6px; color:#fff; }
.preview-pin.pin-one { background:var(--ps-red); color:var(--ui-on-accent); left:27%; top:43%; }
.preview-pin.pin-two { background:#202a36; right:13%; top:37%; }
.preview-map-label { position:absolute; bottom:12px; left:12px; right:12px; width:fit-content; padding:4px 8px; border-radius:4px; background:var(--ui-surface); font-size:12px; }
.preview-features { display:flex; flex-wrap:wrap; justify-content:space-around; gap:8px; padding:12px; font-size:12px; border-bottom:1px solid var(--ps-border); }
.preview-features span { display:flex; gap:4px; align-items:center; }
.preview-features svg { width:18px; }
.preview-invoice { display:flex; gap:12px; align-items:center; padding:16px; font-size:13px; }
.preview-invoice small { display:block; color:var(--ps-muted); font-size:12px; }
.preview-invoice-icon { display:grid; place-items:center; width:32px; height:32px; color:var(--ps-muted); flex-shrink:0; }
.public-section { max-width:1280px; padding:40px 32px; margin:auto; }
.public-section-heading { display:flex; justify-content:space-between; gap:32px; align-items:flex-start; margin-bottom:24px; }
.public-section-heading>p { max-width:440px; color:var(--ps-muted); margin-bottom:0; }
.public-solution-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.public-solution { min-width:0; padding:24px 0; border-top:1px solid var(--ps-border); display:flex; flex-direction:column; }
.public-solution>svg { width:28px; height:28px; color:var(--ps-muted); margin-bottom:16px; }
.public-solution p { color:var(--ps-muted); }
.public-solution .public-text-link { margin-top:auto; color:var(--ps-red); }
.public-solution:hover .public-text-link { text-decoration:underline; }
.public-process { display:grid; grid-template-columns:1fr 2fr; gap:48px; }
.public-process ol { list-style:none; margin:0; padding:0; }
.public-process li { display:flex; gap:16px; border-bottom:1px solid var(--ps-border); padding-bottom:20px; margin-bottom:20px; }
.public-process li>span { font-size:13px; color:var(--ps-muted); padding-top:2px; }
.public-process li p { color:var(--ps-muted); margin:0; }
.public-cta { max-width:1216px; margin:0 auto 40px; padding:24px; background:var(--ui-surface); border:1px solid var(--ps-border); border-radius:8px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.public-cta h2 { font-size:20px; }
.public-cta p { margin-bottom:0; color:var(--ps-muted); }
.public-footer { max-width:1280px; margin:auto; padding:32px; border-top:1px solid var(--ps-border); display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px; }
.public-footer p { font-size:12px; color:var(--ps-muted); margin-top:12px; }
.public-footer nav { display:grid; gap:4px; font-size:13px; justify-content:start; }
.public-footer nav a { display:inline-flex; align-items:center; min-height:36px; }
.public-footer nav a:hover { text-decoration:underline; }
.public-help-grid { display:grid; grid-template-columns:2fr 1fr; gap:40px; margin-top:32px; }
.public-faq details { border-bottom:1px solid var(--ps-border); padding:16px 0; }
.public-faq summary { min-height:32px; font-size:16px; font-weight:600; cursor:pointer; }
.public-faq p { color:var(--ps-muted); margin:12px 0 0; }
.public-faq a { text-decoration:underline; }
.public-help-card { min-width:0; align-self:start; padding:24px; border:1px solid var(--ps-border); background:var(--ui-surface); border-radius:8px; }
.public-help-card h2 { font-size:20px; margin-top:16px; }
.public-help-card p { color:var(--ps-muted); }
.public-help-card a { display:flex; margin-top:12px; }
.public-help-card hr { border:0; border-top:1px solid var(--ps-border); margin:24px 0; }
.public-site .auth-page { min-height:0; height:auto; padding:40px 20px; background:var(--ui-bg); place-items:start center; }
.public-site .auth-panel { margin:0 auto; }
.public-site .auth-catalog-link { font-size:13px; text-align:center; margin-top:24px; color:var(--ps-muted); }
.public-site .auth-catalog-link a { color:var(--ps-red); text-decoration:underline; }
.public-site .billing-public { max-width:1280px; padding:40px 32px; margin:auto; min-height:60vh; color:var(--ps-ink); overflow:visible; }
.public-site .billing-hero { max-width:720px; margin:0; padding:0 0 24px; }
.public-site .billing-hero h1 { font-size:32px; }
.public-site .billing-hero p { color:var(--ps-muted); }
.public-site .billing-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.public-site .billing-card { min-width:0; background:var(--ui-surface); color:var(--ps-ink); border:1px solid var(--ps-border); border-radius:8px; box-shadow:none; padding:24px; }
.public-site .billing-card h2 { font-size:20px; }
.public-site .billing-page .panel-command { display:inline-flex; align-items:center; justify-content:center; width:auto; min-height:40px; padding:8px 14px; margin:0; border:1px solid var(--ps-border); border-radius:6px; background:var(--ui-surface); color:var(--ps-ink); font:inherit; font-weight:600; text-align:center; box-shadow:none; }
.public-site .billing-page .panel-command.primary { color:var(--ui-on-accent); background:var(--ps-red); border-color:var(--ps-red); }
.public-site .billing-page .panel-command:hover:not(:disabled) { border-color:var(--ps-muted); }
.public-site .billing-page .panel-command.primary:hover:not(:disabled) { background:var(--ui-accent-hover); border-color:var(--ui-accent-hover); }
.public-site .billing-card :is(input:not([type=checkbox]),select,textarea) { background:var(--ui-surface); color:var(--ps-ink); border-color:var(--ui-border); }
.public-site .billing-register { max-width:760px; margin:auto; }
.public-site .billing-register h1 { font-size:28px; }
.public-site .billing-register fieldset { border:0; padding:0; margin:24px 0; min-width:0; }
.public-site .billing-register legend { font-size:16px; font-weight:600; margin-bottom:12px; }
.public-site .billing-register label small { display:block; color:var(--ps-muted); font-size:12px; }
.public-site .billing-register .billing-form { margin:0; }
.public-site .billing-payment-card { max-width:760px; margin:auto; }
.public-site .billing-payment-card>label { display:grid; gap:6px; margin:16px 0; }
.public-site .billing-payment-card>label.billing-check { display:flex; }
.public-site .billing-back-link { display:inline-flex; min-height:40px; align-items:center; margin-bottom:16px; color:var(--ps-muted); }
.public-site .billing-selection-summary { color:var(--ps-muted); margin:12px 0; }
.public-site .billing-demo-label { display:inline-block; font-size:12px; color:var(--ui-warning); background:var(--ui-warning-tint); border-radius:4px; padding:4px 8px; margin-bottom:12px; }
html:has(.public-site),body:has(.public-site) { overflow:auto!important; height:auto!important; min-height:100%; }
.public-site h1:focus { outline:none; }
@media(min-width:769px) { .public-site .auth-mobile-hero { display:none; } }
@media(max-width:1100px) {
    .public-header { padding:16px 24px; gap:16px; }
    .public-nav,.public-account { gap:16px; }
    .public-hero { padding:32px 24px; gap:24px; }
    .public-section,.public-site .billing-public { padding:32px 24px; }
    .public-cta { margin-inline:24px; }
    .public-site .billing-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
    .public-header { flex-wrap:wrap; padding:12px 16px; gap:8px 12px; }
    .public-brand { font-size:16px; gap:6px; }
    .public-brand-mark { width:28px; height:28px; font-size:20px; }
    .public-nav { order:3; justify-content:space-between; width:100%; gap:12px; border-top:1px solid var(--ps-border); }
    .public-nav a,.public-login { min-height:44px; font-size:13px; }
    .public-account { margin-left:auto; gap:12px; }
    .public-site .public-button.small { font-size:13px; padding:8px 12px; }
    .public-hero { grid-template-columns:1fr; padding:32px 16px; gap:24px; }
    .public-lead { font-size:15px; }
    .public-hero-notes { gap:8px 12px; }
    .public-actions { gap:12px; }
    .preview-map { height:240px; }
    .public-section { padding:28px 16px; }
    .public-section-heading { display:block; margin-bottom:16px; }
    .public-solution-grid,.public-process,.public-help-grid { grid-template-columns:1fr; gap:16px; }
    .public-solution { padding:20px 0; }
    .public-solution>svg { margin-bottom:12px; }
    .public-cta { margin:0 16px 32px; padding:20px; display:block; }
    .public-cta a { margin-top:16px; }
    .public-footer { padding:24px 16px; grid-template-columns:1fr 1fr; gap:16px; }
    .public-footer nav a { min-height:44px; }
    .public-footer-note { grid-column:1/-1; }
    .public-site:has(.package-mobile-summary) .public-footer { padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
    .public-faq summary { min-height:44px; }
    .public-site .auth-page { min-height:0; padding:24px 16px; }
    .public-site .auth-mobile-hero { display:none; }
    .public-site .billing-public { padding:24px 16px; }
    .public-site .billing-card { padding:16px; }
    .public-site .billing-hero h1,.public-site .billing-register h1 { font-size:26px; }
    .public-site .billing-public :is(.billing-cards,.billing-form) { grid-template-columns:1fr; }
    .public-site .billing-page .panel-command { min-height:44px; }
    .public-site :is(input:not([type=checkbox]),select,textarea) { font-size:16px; min-height:44px; }
    .public-account .public-login[href="/pretplate"] { display:none; }
}
@media(prefers-reduced-motion:reduce) { .public-site * { transition:none!important; scroll-behavior:auto!important; } }

.public-theme-toggle { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid var(--ui-border); border-radius:6px; background:var(--ui-surface); color:var(--ui-muted); cursor:pointer; }
.public-theme-toggle:hover { color:var(--ui-accent); background:var(--ui-soft); }
@media(max-width:400px) { .public-header { column-gap:8px; } .public-account { gap:6px; } .public-account .public-button.small { font-size:12px; padding-inline:8px; } .public-header .public-brand { font-size:14px; } .public-header .public-brand-mark { display:none; } }
