@font-face {font-family:"Chakra Petch";font-style:normal;font-weight:700;font-display:swap;src:url("/site-assets/wordmark-font.89d43755ae0c.woff2") format("woff2");unicode-range:U+41,U+49,U+50,U+56,U+9700;}
@font-face {font-family:"Noto Sans SC";font-style:normal;font-weight:700;font-display:swap;src:url("/site-assets/wordmark-font.556f8e6ab169.woff2") format("woff2");unicode-range:U+41,U+49,U+50,U+56,U+9700;}
  body.vneedai-login-blueprint {
    --lp-paper:#ffffff;
    --lp-bg:#f5f8fd;
    --lp-field:#fbfcff;
    --lp-ink:#102342;
    --lp-muted:#61718c;
    --lp-line:#dce4f1;
    --lp-blue:#176cff;
    --lp-on-blue:#ffffff;
    --lp-wash:#eaf1ff;
    --lp-error:#bb344b;
    --lp-stage:#0b1b35;
    --lp-stage-paper:#132d52;
    --lp-stage-ink:#edf4ff;
    --lp-stage-muted:#a0b6d8;
    --lp-stage-line:#2c4972;
    --lp-stage-blue:#8bb7ff;
    --lp-ring:0 0 0 1px rgb(0 0 0 / .045);
    --lp-brand-blue:#155cde; --lp-brand-end:#2780ed; --lp-curve:cubic-bezier(.2,0,0,1);
    font-family:"IBM Plex Sans","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
    color:var(--lp-ink);
  }
  body.vneedai-login-blueprint .lp-header { display:flex; align-items:center; gap:16px; min-height:80px; padding:16px 118px 16px 34px; background:var(--lp-paper); border-bottom:1px solid var(--lp-line); }
  body.vneedai-login-blueprint .lp-logo { display:inline-flex; align-items:center; min-height:44px; flex:0 0 auto; }
  body.vneedai-login-blueprint .lp-wordmark { display:inline-flex; align-items:baseline; gap:.045em; font-family:"Chakra Petch","Noto Sans SC",sans-serif; font-size:27px; font-weight:700; line-height:1; letter-spacing:-.025em; color:var(--lp-blue); }
  body.vneedai-login-blueprint .lp-wordmark-cn { font-family:"Noto Sans SC",sans-serif; font-size:.84em; position:relative; top:-.015em; }
  body.vneedai-login-blueprint .lp-wordmark-api { letter-spacing:-.035em; }
  @supports(background-clip:text) {
    body.vneedai-login-blueprint .lp-wordmark { color:transparent; background:linear-gradient(110deg,var(--lp-brand-blue) 20%,var(--lp-brand-end) 100%); background-clip:text; -webkit-background-clip:text; }
  }
  body.vneedai-login-blueprint .lp-home { display:inline-flex; align-items:center; gap:7px; min-height:44px; margin-left:auto; color:var(--lp-muted); font-size:12px; white-space:nowrap; transition:color 150ms; }
  body.vneedai-login-blueprint .lp-home:hover { color:var(--lp-blue); }
  body.vneedai-login-blueprint svg.lucide, body.vneedai-login-blueprint i[data-lucide] { width:17px; height:17px; flex-shrink:0; stroke-width:1.5; }
  body.vneedai-login-blueprint .lp-body { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,1fr); flex:1; min-height:690px; }
  body.vneedai-login-blueprint .lp-showcase { position:relative; isolation:isolate; display:flex; flex-direction:column; justify-content:center; padding:48px 40px; background:var(--lp-stage); color:var(--lp-stage-ink); overflow:hidden; }
  body.vneedai-login-blueprint .lp-showcase::before { content:""; position:absolute; z-index:-1; inset:0; opacity:.22; background-image:linear-gradient(var(--lp-stage-line) 1px,transparent 1px),linear-gradient(90deg,var(--lp-stage-line) 1px,transparent 1px); background-size:44px 44px; mask-image:linear-gradient(transparent 0%,currentColor 28%,currentColor 66%,transparent 100%); }
  body.vneedai-login-blueprint .lp-showcase::after { content:""; position:absolute; z-index:-1; width:350px; height:350px; border:1px solid var(--lp-stage-line); border-radius:50%; right:-210px; top:-180px; box-shadow:0 0 0 48px rgb(139 183 255 / .025),0 0 0 96px rgb(139 183 255 / .025); }
  body.vneedai-login-blueprint .lp-kicker { display:flex; align-items:center; gap:10px; font:11px/1.5 Consolas,monospace; letter-spacing:.14em; color:var(--lp-stage-muted); }
  body.vneedai-login-blueprint .lp-kicker::before { content:""; width:22px; height:1px; background:var(--lp-stage-blue); }
  body.vneedai-login-blueprint .lp-showcase h2 { font-size:38px; line-height:1.35; font-weight:600; letter-spacing:-1.2px; margin:22px 0 16px; }
  body.vneedai-login-blueprint .lp-showcase h2 span { color:var(--lp-stage-blue); }
  body.vneedai-login-blueprint .lp-showcase-copy { max-width:29ch; color:var(--lp-stage-muted); font-size:13px; line-height:1.9; margin:0; }
  body.vneedai-login-blueprint .lp-route { display:grid; grid-template-columns:64px 112px minmax(88px,1fr); align-items:center; gap:22px; margin:40px 0 38px; min-width:0; }
  body.vneedai-login-blueprint .lp-client { display:flex; align-items:center; flex-direction:column; gap:12px; color:var(--lp-stage-muted); font-size:11px; }
  body.vneedai-login-blueprint .lp-client svg { width:27px; height:27px; color:var(--lp-stage-blue); }
  body.vneedai-login-blueprint .lp-core-frame { position:relative; border-radius:24px; padding:8px; background:#1b3457; box-shadow:0 0 0 1px var(--lp-stage-line),0 20px 45px -25px rgb(0 0 0 / .45); }
  body.vneedai-login-blueprint .lp-core-frame::before, body.vneedai-login-blueprint .lp-core-frame::after { content:""; position:absolute; top:50%; height:1px; width:22px; background:var(--lp-stage-blue); }
  body.vneedai-login-blueprint .lp-core-frame::before { right:100%; }
  body.vneedai-login-blueprint .lp-core-frame::after { left:100%; }
  body.vneedai-login-blueprint .lp-core { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:9px; min-height:100px; padding:12px 4px; border-radius:16px; background:var(--lp-stage-paper); }
  body.vneedai-login-blueprint .lp-core strong { font-family:"Chakra Petch",Consolas,monospace; font-size:31px; font-weight:700; line-height:1; color:var(--lp-stage-blue); }
  body.vneedai-login-blueprint .lp-core span { font:11px/1.4 Consolas,monospace; color:var(--lp-stage-muted); }
  body.vneedai-login-blueprint .lp-models { position:relative; display:flex; flex-direction:column; gap:17px; padding-left:13px; font-size:12px; font-weight:500; }
  body.vneedai-login-blueprint .lp-models::before { content:""; position:absolute; width:1px; background:var(--lp-stage-line); left:0; top:8px; bottom:8px; }
  body.vneedai-login-blueprint .lp-models span { position:relative; padding-left:5px; white-space:nowrap; }
  body.vneedai-login-blueprint .lp-models span::before { content:""; position:absolute; left:-13px; top:50%; width:12px; height:1px; background:var(--lp-stage-line); }
  body.vneedai-login-blueprint .lp-endpoint { border-top:1px solid var(--lp-stage-line); padding-top:19px; display:flex; flex-direction:column; gap:8px; }
  body.vneedai-login-blueprint .lp-endpoint small { font:11px/1.4 Consolas,monospace; color:var(--lp-stage-muted); letter-spacing:.05em; }
  body.vneedai-login-blueprint .lp-endpoint code { font:12px/1.7 Consolas,monospace; color:var(--lp-stage-blue); overflow-wrap:anywhere; }
  body.vneedai-login-blueprint .lp-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 18px; min-height:50px; padding:13px 34px; background:var(--lp-paper); border-top:1px solid var(--lp-line); color:var(--lp-muted); font-size:11px; }
  body.vneedai-login-blueprint .lp-footer span:last-child { display:inline-flex; gap:6px; align-items:center; }
  body.vneedai-login-blueprint .lp-footer svg { width:13px; height:13px; }

/* The body grid places decorations around #app without moving any Vue-owned node. */
body.vneedai-login-blueprint { display:grid!important; grid-template-columns:minmax(32px,1fr) minmax(0,600px) minmax(0,584px) minmax(32px,1fr); grid-template-rows:76px minmax(640px,1fr) auto; align-items:center; min-height:100vh; min-height:100dvh; height:auto!important; margin:0; background:var(--lp-bg); color:var(--lp-ink); font-family:"IBM Plex Sans","PingFang SC","Microsoft YaHei",system-ui,sans-serif; }
body.vneedai-login-blueprint [data-vn-login-app] { grid-area:2/3/3/4; display:flex!important; flex-direction:column; align-items:stretch; min-width:0; min-height:600px!important; height:700px; height:min(700px,calc(100dvh - 176px)); width:auto!important; position:static; background:var(--lp-paper); border-radius:0 24px 24px 0; box-shadow:12px 16px 44px -28px rgb(16 35 66 / .24); }
body.vneedai-login-blueprint >[data-vneedai-login-shell="header"] { grid-area:1/1/2/5; box-sizing:border-box; min-height:76px; padding:16px max(32px,calc((100% - 1184px)/2)); }
body.vneedai-login-blueprint >[data-vneedai-login-shell="showcase"] { grid-area:2/2/3/3; box-sizing:border-box; height:700px; height:min(700px,calc(100dvh - 176px)); min-height:600px; padding:48px 64px; align-items:center; border-radius:24px 0 0 24px; box-shadow:-12px 16px 44px -28px rgb(16 35 66 / .24); }
body.vneedai-login-blueprint .lp-showcase >* { box-sizing:border-box; width:100%; max-width:420px; flex-shrink:0; }
body.vneedai-login-blueprint .lp-showcase h2 { font-size:40px; }
body.vneedai-login-blueprint .lp-showcase-copy { font-size:14px; }
body.vneedai-login-blueprint .lp-route { grid-template-columns:64px 112px minmax(88px,1fr); }
body.vneedai-login-blueprint >[data-vneedai-login-shell="footer"] { grid-area:3/1/4/5; box-sizing:border-box; padding-inline:max(32px,calc((100% - 1184px)/2)); }
body.vneedai-login-blueprint [data-vn-login-layout] { box-sizing:border-box; display:flex!important; flex:1; justify-content:center; align-items:center; min-height:0!important; width:100%; padding:42px 56px!important; overflow:visible!important; background:none!important; }
body.vneedai-login-blueprint [data-vn-login-container] { width:100%; max-width:360px!important; }
body.vneedai-login-blueprint [data-vn-login-decoration], body.vneedai-login-blueprint [data-vn-login-brand], body.vneedai-login-blueprint [data-vn-login-copyright] { display:none!important; }
body.vneedai-login-blueprint [data-vn-login-card] { padding:0!important; border:0!important; border-radius:0!important; background:none!important; box-shadow:none!important; backdrop-filter:none!important; }
body.vneedai-login-blueprint [data-vn-login-heading] { text-align:left!important; margin:0 0 25px!important; }
body.vneedai-login-blueprint [data-vneedai-login-eyebrow] { display:inline-block; color:var(--lp-blue); font-size:12px; font-weight:500; margin-bottom:15px; }
body.vneedai-login-blueprint [data-vn-login-heading] h1, body.vneedai-login-blueprint [data-vn-login-heading] h2 { margin:0 0 12px!important; color:var(--lp-ink)!important; font-size:29px!important; font-weight:600!important; line-height:1.35!important; letter-spacing:-.6px; }
body.vneedai-login-blueprint [data-vn-login-heading] p { margin:0!important; color:var(--lp-muted)!important; font-size:13px; line-height:1.8; }
body.vneedai-login-blueprint [data-vn-login-field] { position:relative; }
body.vneedai-login-blueprint [data-vn-login-field] >label { display:block; margin-bottom:10px!important; font-size:13px; line-height:1.5; font-weight:500; color:var(--lp-ink)!important; }
body.vneedai-login-blueprint [data-vn-login-input-wrap] >div[class~="pointer-events-none"] { display:none!important; }
body.vneedai-login-blueprint [data-vn-login-input] { box-sizing:border-box; width:100%; height:50px; min-width:0; padding:13px 14px!important; border:1px solid var(--lp-line)!important; border-radius:12px!important; background:var(--lp-field)!important; color:var(--lp-ink)!important; font-family:inherit; font-size:16px!important; line-height:1.4; transition:border-color 150ms,box-shadow 150ms; }
body.vneedai-login-blueprint [data-vn-login-input="password"],
body.vneedai-login-blueprint [data-vn-login-input="confirm"] { padding-right:52px!important; }
body.vneedai-login-blueprint [data-vn-login-input]::placeholder { color:var(--lp-muted); opacity:.85; }
body.vneedai-login-blueprint [data-vn-login-input]:hover { border-color:var(--lp-muted)!important; }
body.vneedai-login-blueprint [data-vn-login-input]:focus { border-color:var(--lp-blue)!important; box-shadow:0 0 0 3px var(--lp-wash)!important; }
body.vneedai-login-blueprint [data-vn-login-input][aria-invalid="true"] { border-color:var(--lp-error)!important; }
body.vneedai-login-blueprint [data-vn-login-toggle] { position:absolute!important; inset:3px 3px auto auto!important; width:44px; height:44px; display:flex; align-items:center; justify-content:center; padding:0!important; border:0; border-radius:9px; background:transparent; color:var(--lp-muted)!important; transition:color 150ms,background-color 150ms,transform 150ms; }
body.vneedai-login-blueprint [data-vn-login-toggle]:hover { background:var(--lp-wash); color:var(--lp-blue)!important; }
body.vneedai-login-blueprint [data-vn-login-forgot] { position:absolute; right:0; top:-5px; margin:0!important; min-height:28px; }
body.vneedai-login-blueprint [data-vn-login-forgot] a { display:inline-flex; align-items:center; min-height:28px; color:var(--lp-blue)!important; font-size:12px; font-weight:500; }
body.vneedai-login-blueprint [data-vn-login-forgot] a:hover { text-decoration:underline; text-underline-offset:3px; }
body.vneedai-login-blueprint [data-vn-login-submit] { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; min-height:48px; padding:13px 16px!important; border:0!important; border-radius:12px!important; background:var(--lp-blue)!important; color:var(--lp-on-blue)!important; font-size:14px; font-weight:600; box-shadow:0 1px 2px rgb(0 0 0 / .08); transition:opacity 150ms,transform 150ms,box-shadow 150ms; }
body.vneedai-login-blueprint [data-vn-login-submit]:hover { box-shadow:0 1px 2px rgb(0 0 0 / .08),0 6px 18px -10px var(--lp-blue); }
body.vneedai-login-blueprint [data-vn-login-submit]:active, body.vneedai-login-blueprint [data-vn-login-toggle]:active { transform:scale(.96); }
body.vneedai-login-blueprint [data-vn-login-submit]:disabled { opacity:.7; transform:none; }
body.vneedai-login-blueprint [data-vn-login-submit] svg { color:inherit!important; }
body.vneedai-login-blueprint [data-vn-login-register] { margin-top:24px!important; text-align:center; font-size:12px; color:var(--lp-muted)!important; }
body.vneedai-login-blueprint [data-vn-login-register]:empty { display:none; }
body.vneedai-login-blueprint [data-vn-login-register] p { color:var(--lp-muted)!important; }
body.vneedai-login-blueprint [data-vn-login-register] a { display:inline-flex; min-height:36px; align-items:center; color:var(--lp-blue)!important; }
body.vneedai-login-blueprint [data-vn-login-register] a:hover { text-decoration:underline; text-underline-offset:3px; }
body.vneedai-login-blueprint button:disabled { cursor:default; }
html.dark body.vneedai-login-blueprint { --lp-paper:#111c30; --lp-bg:#080f1e; --lp-field:#0c1628; --lp-ink:#e8eefb; --lp-muted:#a2b2cf; --lp-line:#30415e; --lp-blue:#8ab5ff; --lp-on-blue:#08182e; --lp-wash:#213858; --lp-error:#ff9bab; --lp-stage:#071327; --lp-stage-paper:#102442; --lp-stage-ink:#e3eeff; --lp-stage-muted:#a7b9d6; --lp-stage-line:#29425f; --lp-stage-blue:#9bc3ff; --lp-brand-blue:#8ab5ff; --lp-brand-end:#b0ceff; color-scheme:dark; }
html:not(.dark) body.vneedai-login-blueprint { color-scheme:light; }
body.vneedai-login-blueprint.vn-login-theme-swap *, body.vneedai-login-blueprint.vn-login-theme-swap *::before, body.vneedai-login-blueprint.vn-login-theme-swap *::after { transition:none!important; }
@media(min-width:781px) and (max-width:1100px) {
  body.vneedai-login-blueprint >[data-vneedai-login-shell="showcase"] { padding-inline:36px; }
  body.vneedai-login-blueprint .lp-showcase h2 { font-size:34px; }
  body.vneedai-login-blueprint .lp-route { grid-template-columns:52px 96px minmax(80px,1fr); gap:16px; }
  body.vneedai-login-blueprint .lp-core-frame::before, body.vneedai-login-blueprint .lp-core-frame::after { width:16px; }
  body.vneedai-login-blueprint [data-vn-login-layout] { padding-inline:36px!important; }
}
@media(max-width:780px) {
  body.vneedai-login-blueprint { grid-template-columns:minmax(0,1fr); grid-template-rows:76px minmax(570px,1fr) auto; align-items:stretch; }
  body.vneedai-login-blueprint [data-vn-login-app] { grid-area:2/1/3/2; height:auto; min-height:0!important; border-radius:0; box-shadow:none; background:linear-gradient(165deg,var(--lp-wash),var(--lp-paper) 42%); }
  body.vneedai-login-blueprint >[data-vneedai-login-shell="header"] { grid-area:1/1/2/2; padding:16px 24px; min-height:76px; }
  body.vneedai-login-blueprint >[data-vneedai-login-shell="showcase"] { display:none; }
  body.vneedai-login-blueprint >[data-vneedai-login-shell="footer"] { grid-area:3/1/4/2; padding-inline:24px; }
  body.vneedai-login-blueprint [data-vn-login-layout] { padding:34px 24px!important; }
  body.vneedai-login-blueprint .lp-wordmark { font-size:24px; }
  body.vneedai-login-blueprint .lp-footer { padding-inline:24px; }
}
@media(max-width:460px) {
  body.vneedai-login-blueprint >[data-vneedai-login-shell="header"] { padding-inline:22px; }
}
@media(pointer:coarse) {
  body.vneedai-login-blueprint [data-vn-login-forgot] a, body.vneedai-login-blueprint [data-vn-login-register] a { min-height:44px; }
  body.vneedai-login-blueprint [data-vn-login-forgot] { top:-13px; }
  body.vneedai-login-blueprint [data-vn-login-field="password"] >label,
  body.vneedai-login-blueprint [data-vn-login-field="confirm"] >label { min-height:28px; }
}
@media(prefers-reduced-motion:reduce) {
  body.vneedai-login-blueprint *, body.vneedai-login-blueprint *::before, body.vneedai-login-blueprint *::after { transition:none!important; animation:none!important; }
  body.vneedai-login-blueprint [data-vn-login-submit]:active, body.vneedai-login-blueprint [data-vn-login-toggle]:active { transform:none; }
}
@media(forced-colors:active) { body.vneedai-login-blueprint .lp-wordmark { color:LinkText; background:none; } }
