/* Public site styles (landing, onboarding portal, customer dashboard) */
.pub-nav{position:sticky;top:0;z-index:100;background:color-mix(in oklab,#ffffff 82%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.pub-nav .inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:22px;padding:14px 22px}
.pub-nav .logo{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink)}
.pub-nav .logo .b{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#001a4d,#0052CC);color:#fff;display:grid;place-items:center}
.pub-nav ul{display:flex;gap:4px;list-style:none;margin:0 auto 0 20px;padding:0}
.pub-nav ul a{padding:8px 12px;border-radius:8px;color:var(--muted);font-size:13.5px;font-weight:500}
.pub-nav ul a:hover,.pub-nav ul a.active{background:color-mix(in oklab,var(--brand) 10%,transparent);color:var(--brand)}
.pub-nav .cta{display:flex;gap:8px}
@media(max-width:900px){.pub-nav ul{display:none}}

.hero{position:relative;overflow:hidden;background:radial-gradient(1200px 500px at 10% -10%,rgba(0,82,204,.18),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(25,118,210,.15),transparent 60%),linear-gradient(180deg,#f6f9ff 0%,#eef3fb 100%)}
.hero .wrap{max-width:1240px;margin:0 auto;padding:70px 22px 60px;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr;padding:40px 22px}}
.hero h1{font-size:46px;line-height:1.08;font-weight:800;letter-spacing:-.5px;margin:0 0 14px}
.hero h1 span{background:linear-gradient(135deg,#0052CC,#8E24AA);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{font-size:16.5px;color:var(--muted);max-width:560px;margin-bottom:24px}
.hero .kpis{display:flex;gap:28px;flex-wrap:wrap;margin-top:28px}
.hero .kpis div b{display:block;font-size:24px;color:var(--brand);font-weight:800}
.hero .kpis div span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.hero .art{position:relative;min-height:420px;border-radius:24px;background:linear-gradient(135deg,#001a4d,#0052CC 60%,#1976D2);color:#fff;padding:28px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,82,204,.4)}
.hero .art::after{content:"";position:absolute;inset:-30% -20% auto auto;width:500px;height:500px;background:radial-gradient(closest-side,rgba(255,255,255,.16),transparent 70%)}
.hero .art .glassy{position:relative;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:16px;margin-bottom:12px}
.hero .art .glassy .k{font-size:11px;text-transform:uppercase;letter-spacing:.6px;opacity:.7}
.hero .art .glassy .v{font-size:22px;font-weight:700;margin-top:4px}
.hero .art .float{animation:floaty 6s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

.section{max-width:1240px;margin:0 auto;padding:60px 22px}
.section h2{font-size:30px;font-weight:800;margin:0 0 8px;letter-spacing:-.3px}
.section .sub{color:var(--muted);margin-bottom:28px;max-width:640px}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:1000px){.feature-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.feature-grid{grid-template-columns:1fr}}
.fcard{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:20px;transition:.25s}
.fcard:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(0,82,204,.25);border-color:color-mix(in oklab,var(--brand) 40%,var(--border))}
.fcard .ic{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#0052CC,#1976D2);color:#fff;display:grid;place-items:center;font-size:18px;margin-bottom:12px}
.fcard h4{font-size:15px;font-weight:700;margin:0 0 6px}
.fcard p{font-size:13px;color:var(--muted);margin:0}

.glass-card{background:color-mix(in oklab,var(--card) 78%,transparent);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 60px -30px rgba(15,27,45,.2);padding:24px}

.floating-cta{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;flex-direction:column;gap:10px}
.floating-cta a{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#0052CC,#1976D2);color:#fff;padding:12px 16px;border-radius:999px;font-weight:600;font-size:13px;box-shadow:0 12px 30px -8px rgba(0,82,204,.55);animation:bob 3s ease-in-out infinite}
.floating-cta a.alt{background:linear-gradient(135deg,#00A03e,#00C853)}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

.footer{background:#050d1f;color:#c7d0e2;padding:50px 22px 24px;margin-top:60px}
.footer .wrap{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
@media(max-width:900px){.footer .wrap{grid-template-columns:1fr 1fr}}
.footer h5{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}
.footer a{display:block;color:#8ea1c2;font-size:13px;padding:4px 0}
.footer a:hover{color:#fff}
.footer .bot{max-width:1240px;margin:30px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;display:flex;justify-content:space-between;color:#8ea1c2}

html{scroll-behavior:smooth}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}

.wiz-shell{min-height:100vh;background:radial-gradient(1200px 500px at 10% -10%,rgba(0,82,204,.15),transparent 60%),linear-gradient(180deg,#f4f8ff 0%,#eaf0fb 100%);padding:24px}
.wiz-grid{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:24px;align-items:start}
@media(max-width:1050px){.wiz-grid{grid-template-columns:1fr}}
.wiz-art{position:sticky;top:24px;background:linear-gradient(160deg,#001a4d,#0052CC 55%,#6A1B9A);color:#fff;border-radius:24px;padding:30px;min-height:640px;overflow:hidden}
.wiz-art::after{content:"";position:absolute;inset:auto -20% -30% auto;width:500px;height:500px;background:radial-gradient(closest-side,rgba(255,255,255,.16),transparent 70%);pointer-events:none}
.mini-step{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;margin-bottom:6px;position:relative}
.mini-step.active{background:rgba(255,255,255,.14)}
.mini-step.done .n{background:#00C853;border-color:#00C853}
.mini-step .n{width:32px;height:32px;border-radius:50%;border:2px solid rgba(255,255,255,.35);display:grid;place-items:center;font-weight:700;font-size:13px}
.mini-step.active .n{background:#fff;color:#0052CC;border-color:#fff}
.mini-step .t{font-size:14px;font-weight:600}
.mini-step .d{font-size:11.5px;opacity:.75}

.dz2{border:2px dashed var(--border);border-radius:14px;padding:16px;text-align:center;background:var(--bg);cursor:pointer;transition:.2s;position:relative}
.dz2:hover{border-color:var(--brand);background:color-mix(in oklab,var(--brand) 6%,var(--bg))}
.dz2.uploading{border-color:var(--warning)}
.dz2.done{border-color:var(--success);background:color-mix(in oklab,var(--success) 8%,var(--card));border-style:solid}
.dz2 .bar{height:4px;background:var(--border);border-radius:99px;margin-top:8px;overflow:hidden}
.dz2 .bar span{display:block;height:100%;background:linear-gradient(90deg,#0052CC,#1976D2);width:0;transition:width .3s}

.otp-input{width:44px;height:52px;text-align:center;font-size:22px;font-weight:700;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--ink)}
.otp-input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(0,82,204,.15);outline:none}

.status-flow{display:flex;flex-wrap:wrap;gap:0;align-items:stretch;margin-top:10px}
.status-flow .node{flex:1;min-width:130px;background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px;text-align:center;position:relative;margin:6px}
.status-flow .node.done{background:color-mix(in oklab,var(--success) 12%,var(--card));border-color:var(--success)}
.status-flow .node.current{background:color-mix(in oklab,var(--brand) 12%,var(--card));border-color:var(--brand);box-shadow:0 6px 18px -6px rgba(0,82,204,.35);animation:pulseBrand 2s infinite}
@keyframes pulseBrand{0%,100%{box-shadow:0 6px 18px -6px rgba(0,82,204,.35)}50%{box-shadow:0 10px 26px -6px rgba(0,82,204,.55)}}
.status-flow .node .ic{width:36px;height:36px;border-radius:50%;background:var(--card);display:grid;place-items:center;margin:0 auto 6px;color:var(--muted)}
.status-flow .node.done .ic{background:var(--success);color:#fff}
.status-flow .node.current .ic{background:var(--brand);color:#fff}
.status-flow .node .t{font-size:12px;font-weight:600}
.status-flow .node .s{font-size:10.5px;color:var(--muted)}
