/**
 * 聚数情报 · 科技感主题（2026-10-23）
 *
 * 只作用于「落地页」与「租户端登录/注册/找回密码」两类页面，不碰工作台内页：
 *   - 落地页：.jushu-landing / .lp-*（Bootstrap 网格照旧，只换皮）
 *   - 登录壳：.jushu-auth-wrap / .jushu-auth-card（common/auth-header.html 提供）
 *
 * 加载顺序：bootstrap.min.css → jushu.css → 本文件。本文件只做覆盖，不改组件库。
 * 纯 CSS 实现（无 canvas / 无构建工具链），并尊重 prefers-reduced-motion。
 */

/* ================================================================
   设计令牌
   ================================================================ */
.lp-body,
.jushu-auth-wrap {
    --t-bg: #05070f;
    --t-bg-2: #080d1a;
    --t-panel: rgba(255, 255, 255, 0.045);
    --t-panel-2: rgba(255, 255, 255, 0.075);
    --t-line: rgba(120, 180, 255, 0.16);
    --t-line-soft: rgba(255, 255, 255, 0.08);
    --t-text: #eef4ff;
    --t-text-2: #cbd8ec;
    /* 2026-10-23 数据大屏校正：深底上的弱化文字再提一档，
       原来 #8593ad 在 #05070f 上偏灰、小字号发糊 */
    --t-muted: #9fb0c8;
    --t-cyan: #38e1ff;
    --t-blue: #4b7bff;
    --t-violet: #8b5cf6;
    --t-grad: linear-gradient(100deg, #38e1ff 0%, #4b7bff 48%, #8b5cf6 100%);
    --t-glow-cyan: 0 0 0 1px rgba(56, 225, 255, 0.35), 0 10px 40px rgba(56, 225, 255, 0.18);
}

/* ================================================================
   落地页：底色与背景层
   ================================================================ */
/* 本文件只在落地页与登录壳加载：兜底把 body 底色也压成深色，
   避免页面比视口略高时露出 jushu.css 的浅灰底 */
html, body { background: #05070f; }

body.lp-body {
    background: var(--t-bg);
    color: var(--t-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
    overflow-x: hidden;
}

.jushu-landing {
    position: relative;
    background:
        radial-gradient(1100px 620px at 78% -8%, rgba(75, 123, 255, 0.20), transparent 62%),
        radial-gradient(900px 560px at 8% 4%, rgba(56, 225, 255, 0.13), transparent 60%),
        radial-gradient(900px 700px at 50% 110%, rgba(139, 92, 246, 0.14), transparent 60%),
        linear-gradient(180deg, #05070f 0%, #070b16 46%, #05070f 100%);
    color: var(--t-text);
}

/* 背景装饰层：网格 + 光球 + 扫描线 */
.lp-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}
.lp-grid {
    position: absolute;
    inset: -1px;
    background-image:
        linear-gradient(to right, rgba(120, 180, 255, 0.075) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(120, 180, 255, 0.075) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(ellipse 80% 62% at 50% 30%, #000 0%, transparent 78%);
    -webkit-mask-image: radial-gradient(ellipse 80% 62% at 50% 30%, #000 0%, transparent 78%);
}
.lp-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    opacity: 0.5;
    will-change: transform;
}
.lp-orb-1 {
    width: 420px; height: 420px; top: -120px; right: 4%;
    background: radial-gradient(circle, rgba(56, 225, 255, 0.55), transparent 68%);
    animation: lpFloat 18s ease-in-out infinite;
}
.lp-orb-2 {
    width: 480px; height: 480px; top: 180px; left: -160px;
    background: radial-gradient(circle, rgba(75, 123, 255, 0.45), transparent 68%);
    animation: lpFloat 24s ease-in-out infinite reverse;
}
.lp-orb-3 {
    width: 380px; height: 380px; bottom: 6%; right: 18%;
    background: radial-gradient(circle, rgba(139, 92, 246, 0.42), transparent 68%);
    animation: lpFloat 21s ease-in-out infinite 3s;
}
@keyframes lpFloat {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50%      { transform: translate3d(26px, -34px, 0) scale(1.08); }
}

/* 神经网络画布：铺满背景层，透明度交给画布自己画 */
.lp-neural {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0.8;
}
/* 竖直扫描线，8 秒一趟，营造"正在运算"的观感 */
.lp-scan {
    position: absolute;
    left: 0; right: 0; top: -30%;
    height: 30%;
    background: linear-gradient(180deg, transparent, rgba(56, 225, 255, 0.07), transparent);
    animation: lpScan 9s linear infinite;
}
@keyframes lpScan {
    0%   { transform: translateY(0); }
    100% { transform: translateY(430%); }
}

/* 内容层压在背景之上 */
.jushu-landing > .lp-nav,
.jushu-landing > .lp-hero,
.jushu-landing > .lp-section,
.jushu-landing > .lp-console-band,
.jushu-landing > .lp-cta-band,
.jushu-landing > .lp-footer {
    position: relative;
    z-index: 1;
}

/* ================================================================
   落地页：顶部导航
   ================================================================ */
.lp-nav {
    position: sticky;
    top: 0;
    z-index: 1030;
    height: 68px;
    line-height: 68px;
    background: rgba(6, 10, 20, 0.72);
    border-bottom: 1px solid var(--t-line-soft);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}
.lp-nav-inner { display: flex; align-items: center; }
.lp-brand {
    display: inline-flex;
    align-items: center;
    color: var(--t-text);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.2px;
    margin-right: 34px;
}
.lp-brand:hover, .lp-brand:focus { color: #fff; text-decoration: none; }
/* 2026-10-23：原先是「深色图标压在渐变上」，深底 + 深图标发糊。
   改成数据大屏常见的发光徽标：亮渐变 + 白色图标 + 外发光 + 高光边。 */
.lp-brand-mark {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px; height: 34px;
    margin-right: 11px;
    border-radius: 10px;
    background: linear-gradient(145deg, #5ff0ff 0%, #4b7bff 52%, #a06bff 100%);
    color: #fff;
    font-size: 16px;
    text-shadow: 0 1px 3px rgba(6, 12, 30, 0.5);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 0 18px rgba(56, 225, 255, 0.55),
        0 8px 24px rgba(56, 225, 255, 0.28);
}
.lp-brand-mark::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 14px;
    border: 1px solid rgba(56, 225, 255, 0.28);
    pointer-events: none;
}
.lp-brand { color: #fff; }
.lp-brand-tag {
    margin-left: 10px;
    padding: 1px 8px;
    border: 1px solid rgba(56, 225, 255, 0.42);
    border-radius: 6px;
    background: rgba(56, 225, 255, 0.12);
    font-size: 10px;
    letter-spacing: 1.4px;
    color: #7defff;
    line-height: 16px;
    font-weight: 700;
}
.lp-nav-links { flex: 1; }
.lp-nav-links a {
    color: var(--t-text-2);
    font-size: 14px;
    margin-right: 26px;
    padding: 4px 0;
    border-bottom: 1px solid transparent;
    transition: color .18s, border-color .18s;
}
.lp-nav-links a:hover {
    color: var(--t-cyan);
    border-bottom-color: rgba(56, 225, 255, 0.6);
    text-decoration: none;
}
.lp-nav-actions { line-height: 68px; white-space: nowrap; }
.lp-nav-actions .lp-btn { margin-left: 10px; }
.lp-nav-actions .lp-btn-ghost {
    color: var(--t-text-2);
    border-color: var(--t-line);
    background: transparent;
}
.lp-nav-actions .lp-btn-ghost:hover { color: #fff; border-color: rgba(56, 225, 255, 0.55); }

/* 通用按钮（覆盖 Bootstrap 默认蓝） */
.lp-btn {
    display: inline-block;
    padding: 9px 18px;
    border-radius: 9px;
    border: 1px solid transparent;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    cursor: pointer;
    transition: transform .18s, box-shadow .18s, background .18s, border-color .18s;
}
.lp-btn:hover, .lp-btn:focus { text-decoration: none; transform: translateY(-1px); }
/* 2026-10-23：换成"深蓝→紫"饱和渐变 + 白字，比亮青底压深字更稳、
   和白字按钮式交互（hover 提亮）也更一致，接近数据大屏的按钮观感。 */
.lp-btn-primary {
    color: #fff;
    background: linear-gradient(100deg, #2f8bff 0%, #4b7bff 46%, #8b5cf6 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        0 10px 30px rgba(75, 123, 255, 0.36),
        0 0 0 1px rgba(120, 180, 255, 0.22);
}
.lp-btn-primary:hover, .lp-btn-primary:focus {
    color: #fff;
    background: linear-gradient(100deg, #45a0ff 0%, #5f8cff 46%, #9d70ff 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 14px 40px rgba(56, 225, 255, 0.42);
}
.lp-btn-ghost {
    color: var(--t-text);
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--t-line);
}
.lp-btn-ghost:hover, .lp-btn-ghost:focus {
    color: #fff;
    background: rgba(56, 225, 255, 0.10);
    border-color: rgba(56, 225, 255, 0.5);
}
.lp-btn-lg { padding: 12px 26px; font-size: 15px; border-radius: 11px; }
.lp-btn-block { display: block; width: 100%; }

/* ================================================================
   落地页：首屏
   ================================================================ */
/* jushu.css 给 .lp-hero 铺了浅色渐变，本主题靠整页背景层做光效，这里要清掉 */
.lp-hero {
    padding: 66px 0 58px;
    background: transparent;
    border-bottom: 0;
}
.lp-hero-row { display: flex; flex-wrap: wrap; align-items: center; }

.lp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 13px 5px 10px;
    margin-bottom: 22px;
    border: 1px solid var(--t-line);
    border-radius: 999px;
    background: rgba(56, 225, 255, 0.06);
    color: var(--t-cyan);
    font-size: 12.5px;
    letter-spacing: 0.4px;
}
.lp-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--t-cyan);
    box-shadow: 0 0 0 0 rgba(56, 225, 255, 0.7);
    animation: lpPulse 2.2s infinite;
}
@keyframes lpPulse {
    0%   { box-shadow: 0 0 0 0 rgba(56, 225, 255, 0.65); }
    70%  { box-shadow: 0 0 0 9px rgba(56, 225, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(56, 225, 255, 0); }
}

.lp-slogan {
    margin: 0 0 20px;
    font-size: 44px;
    line-height: 1.24;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #f4f8ff;
}
.lp-grad {
    background: var(--t-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.lp-sub {
    max-width: 600px;
    margin-bottom: 22px;
    color: var(--t-text-2);
    font-size: 15px;
    line-height: 1.95;
}
.lp-points { list-style: none; padding: 0; margin: 0 0 28px; }
.lp-points li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 7px;
    color: var(--t-text-2);
    font-size: 14px;
    line-height: 1.9;
}
.lp-points li b { color: #fff; font-weight: 600; }
.lp-points li i {
    position: absolute;
    left: 0; top: 4px;
    color: var(--t-cyan);
    font-size: 13px;
}
.lp-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 30px; }

.lp-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 20px;
    border-top: 1px solid var(--t-line-soft);
}
.lp-metrics > div {
    flex: 1 1 150px;
    min-width: 140px;
    padding: 12px 14px;
    border: 1px solid var(--t-line-soft);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.028);
}
.lp-metrics b {
    display: block;
    color: #f2f7ff;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 2px;
}
.lp-metrics span { color: var(--t-muted); font-size: 12px; }

/* ================================================================
   落地页：注册 / 登录玻璃卡
   ================================================================ */
.lp-card {
    position: relative;
    padding: 22px 22px 20px;
    border: 1px solid var(--t-line);
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.075) 0%, rgba(255, 255, 255, 0.035) 100%);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    box-shadow:
        0 22px 60px rgba(0, 0, 0, 0.55),
        inset 0 1px 0 rgba(255, 255, 255, 0.10);
}
.lp-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: 17px;
    padding: 1px;
    background: linear-gradient(140deg, rgba(56, 225, 255, 0.55), transparent 38%, transparent 62%, rgba(139, 92, 246, 0.5));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
}
.lp-card-hd { margin-bottom: 14px; }
.lp-card-hd h3 {
    margin: 0 0 3px;
    font-size: 19px;
    font-weight: 700;
    color: #f4f8ff;
}
.lp-card-hd span { color: var(--t-muted); font-size: 12.5px; }

.lp-tabs { border-bottom: 1px solid var(--t-line-soft); margin-bottom: 18px; }
.lp-tabs > li { margin-bottom: -1px; }
.lp-tabs > li > a {
    color: var(--t-muted);
    border: 0;
    background: transparent;
    font-weight: 600;
    font-size: 14px;
    padding: 8px 16px;
}
.lp-tabs > li > a:hover { color: var(--t-text); background: transparent; border: 0; }
.lp-tabs > li.active > a,
.lp-tabs > li.active > a:hover,
.lp-tabs > li.active > a:focus {
    color: var(--t-cyan);
    background: transparent;
    border: 0;
    border-bottom: 2px solid var(--t-cyan);
}

.lp-card .form-control,
.jushu-auth-card .form-control {
    height: 42px;
    border: 1px solid var(--t-line);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.045);
    color: var(--t-text);
    font-size: 13.5px;
    box-shadow: none;
    transition: border-color .18s, box-shadow .18s, background .18s;
}
.lp-card .form-control::placeholder,
.jushu-auth-card .form-control::placeholder { color: #78879f; }
.lp-card .form-control:focus,
.jushu-auth-card .form-control:focus {
    border-color: rgba(56, 225, 255, 0.65);
    background: rgba(56, 225, 255, 0.07);
    box-shadow: 0 0 0 3px rgba(56, 225, 255, 0.13);
    outline: 0;
}
.lp-card .input-group-addon,
.jushu-auth-card .input-group-addon {
    background: rgba(255, 255, 255, 0.05);
    border-color: var(--t-line);
    color: var(--t-muted);
}
.lp-card .btn-default {
    background: rgba(255, 255, 255, 0.06);
    border-color: var(--t-line);
    color: var(--t-text-2);
}
.lp-card .btn-default:hover {
    background: rgba(56, 225, 255, 0.12);
    border-color: rgba(56, 225, 255, 0.5);
    color: #fff;
}
.lp-card .btn-primary,
.jushu-auth-card .btn-primary {
    border: 0;
    border-radius: 9px;
    background: linear-gradient(100deg, #2f8bff 0%, #4b7bff 46%, #8b5cf6 100%);
    color: #fff;
    font-weight: 700;
    letter-spacing: .5px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        0 10px 30px rgba(75, 123, 255, 0.34);
}
.lp-card .btn-primary:hover,
.lp-card .btn-primary:focus,
.jushu-auth-card .btn-primary:hover,
.jushu-auth-card .btn-primary:focus {
    color: #fff;
    background: linear-gradient(100deg, #45a0ff 0%, #5f8cff 46%, #9d70ff 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 14px 38px rgba(56, 225, 255, 0.4);
}
.lp-card .btn-block { height: 42px; font-size: 14.5px; }
.lp-card .form-group { margin-bottom: 13px; }
.lp-card-tip {
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px dashed var(--t-line-soft);
    color: var(--t-muted);
    font-size: 12px;
    line-height: 1.75;
}
.lp-card a { color: var(--t-cyan); }
.lp-card a:hover { color: #7defff; }
#lp-logged { padding: 6px 0 2px; }
#lp-logged p { color: var(--t-muted); }
#lp-logged b { color: #fff; }

/* ================================================================
   落地页：分节 / 功能卡 / 步骤 / 价格 / FAQ
   ================================================================ */
.lp-section { padding: 62px 0; }
.lp-section-alt {
    background: rgba(255, 255, 255, 0.022);
    border-top: 1px solid var(--t-line-soft);
    border-bottom: 1px solid var(--t-line-soft);
}
.lp-h2 {
    margin: 0 0 10px;
    text-align: center;
    color: #f4f8ff;
    font-size: 27px;
    font-weight: 800;
    letter-spacing: -0.3px;
}
.lp-h2::after {
    content: "";
    display: block;
    width: 46px;
    height: 3px;
    margin: 14px auto 0;
    border-radius: 3px;
    background: var(--t-grad);
}
.lp-h2-sub { text-align: center; color: var(--t-muted); font-size: 13.5px; margin: 16px 0 34px; }

.lp-feat {
    position: relative;
    height: 100%;
    margin-bottom: 22px;
    padding: 24px 22px;
    border: 1px solid var(--t-line-soft);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
    transition: transform .22s, border-color .22s, box-shadow .22s;
    overflow: hidden;
}
.lp-feat::after {
    content: "";
    position: absolute;
    top: -60%; right: -30%;
    width: 180px; height: 180px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(56, 225, 255, 0.20), transparent 70%);
    opacity: 0;
    transition: opacity .25s;
}
.lp-feat:hover {
    transform: translateY(-4px);
    border-color: rgba(56, 225, 255, 0.38);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.45);
}
.lp-feat:hover::after { opacity: 1; }
.lp-feat-i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    border-radius: 12px;
    background: rgba(56, 225, 255, 0.10);
    border: 1px solid rgba(56, 225, 255, 0.25);
    color: var(--t-cyan);
    font-size: 19px;
}
.lp-feat h4 { margin: 15px 0 8px; color: #f0f6ff; font-size: 16px; font-weight: 700; }
.lp-feat p { margin: 0; color: var(--t-muted); font-size: 13px; line-height: 1.85; }

/* 步骤：横向连线 + 发光序号 */
.lp-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 38px;
    position: relative;
}
.lp-step {
    flex: 1 1 200px;
    float: none;
    width: auto;
    padding: 22px 18px;
    text-align: center;
    border: 1px solid var(--t-line-soft);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.03);
}
.lp-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px; height: 42px;
    border-radius: 50%;
    background: rgba(56, 225, 255, 0.10);
    border: 1px solid rgba(56, 225, 255, 0.45);
    color: var(--t-cyan);
    font-weight: 800;
    font-size: 16px;
    box-shadow: 0 0 22px rgba(56, 225, 255, 0.22);
}
.lp-step b { display: block; margin: 12px 0 5px; color: #f0f6ff; font-size: 15px; }
.lp-step p { margin: 0; color: var(--t-muted); font-size: 12.5px; }

/* 价格卡 */
.lp-price {
    position: relative;
    height: 100%;
    margin-bottom: 22px;
    padding: 28px 24px;
    border: 1px solid var(--t-line-soft);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.018));
    transition: border-color .2s, transform .2s, box-shadow .2s;
}
.lp-price:hover { transform: translateY(-3px); border-color: rgba(56, 225, 255, 0.34); }
.lp-price-hot {
    border-color: rgba(56, 225, 255, 0.5);
    box-shadow: 0 18px 50px rgba(56, 225, 255, 0.14), inset 0 0 46px rgba(56, 225, 255, 0.05);
}
.lp-ribbon {
    position: absolute;
    top: 14px; right: 14px;
    padding: 3px 11px;
    border-radius: 999px;
    background: var(--t-grad);
    color: #05070f;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
}
.lp-price-name { color: var(--t-text-2); font-size: 15px; font-weight: 700; letter-spacing: 0.4px; }
.lp-price-num { margin: 10px 0 4px; color: #f6faff; font-size: 34px; font-weight: 800; }
.lp-price-num span { margin-left: 5px; color: var(--t-muted); font-size: 12.5px; font-weight: 400; }
.lp-price-intro { margin-bottom: 16px; min-height: 34px; color: var(--t-muted); font-size: 12.5px; line-height: 1.7; }
.lp-price ul { list-style: none; padding: 0; margin: 0 0 20px; }
.lp-price ul li { color: var(--t-text-2); font-size: 13px; line-height: 2.05; }
.lp-price ul li b { color: #fff; }
.lp-price ul li i { margin-right: 7px; color: var(--t-cyan); }
.lp-price .lp-btn { display: block; width: 100%; }

/* FAQ */
.lp-faq {
    padding: 18px 20px;
    margin-bottom: 14px;
    border: 1px solid var(--t-line-soft);
    border-left: 2px solid rgba(56, 225, 255, 0.45);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.028);
}
.lp-faq b { display: block; margin-bottom: 6px; color: #eef5ff; font-size: 14.5px; }
.lp-faq p { margin: 0; color: var(--t-muted); font-size: 13px; line-height: 1.85; }

/* 页脚 */
.lp-footer {
    padding: 26px 0;
    border-top: 1px solid var(--t-line-soft);
    background: rgba(0, 0, 0, 0.28);
}
.lp-footer p { color: var(--t-muted) !important; line-height: 1.8; }

/* 落地页内的空态 / 提示 */
.jushu-landing .text-muted { color: var(--t-muted) !important; }

@media (max-width: 991px) {
    .lp-slogan { font-size: 34px; }
    .lp-nav-links { display: none; }
    .lp-hero { padding: 44px 0 42px; }
    .lp-card { margin-top: 34px; }
    /* 小屏不走 flex 栅格：避免 flex 最小宽度把整页撑宽 */
    .lp-hero-row { display: block; }
    .lp-sub { max-width: none; }
    .lp-brand { margin-right: auto; }
}

@media (max-width: 560px) {
    .lp-brand-tag { display: none; }
    .lp-nav { height: 60px; line-height: 60px; }
    .lp-nav-actions { line-height: 60px; }
    .lp-nav-actions .lp-btn { padding: 7px 12px; font-size: 12.5px; }
    .lp-brand { font-size: 16.5px; }
    .lp-brand-mark { width: 28px; height: 28px; border-radius: 8px; font-size: 13px; }
}
@media (max-width: 767px) {
    .lp-slogan { font-size: 27px; }
    .lp-hero { padding: 34px 0 30px; }
    .lp-section { padding: 42px 0; }
    .lp-h2 { font-size: 22px; }
    .lp-step { width: 100%; }
    .lp-metrics > div { flex: 1 1 100%; }
}

/* ================================================================
   租户端登录 / 注册 / 找回密码（.jushu-auth-wrap）
   ================================================================ */
.jushu-auth-wrap {
    position: relative;
    min-height: 100vh;
    padding: 40px 16px;
    background:
        radial-gradient(820px 520px at 82% 0%, rgba(75, 123, 255, 0.24), transparent 62%),
        radial-gradient(720px 520px at 8% 100%, rgba(56, 225, 255, 0.16), transparent 62%),
        radial-gradient(620px 480px at 50% 100%, rgba(139, 92, 246, 0.16), transparent 62%),
        #05070f;
    overflow: hidden;
}
.jushu-auth-wrap::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(to right, rgba(120, 180, 255, 0.07) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(120, 180, 255, 0.07) 1px, transparent 1px);
    background-size: 58px 58px;
    mask-image: radial-gradient(ellipse 78% 70% at 50% 40%, #000, transparent 78%);
    -webkit-mask-image: radial-gradient(ellipse 78% 70% at 50% 40%, #000, transparent 78%);
    pointer-events: none;
}
.jushu-auth-card {
    position: relative;
    z-index: 1;
    width: 420px;
    max-width: 100%;
    padding: 32px 30px 26px;
    border: 1px solid var(--t-line);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.032));
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.10);
    color: var(--t-text);
}
.jushu-auth-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: 19px;
    padding: 1px;
    background: linear-gradient(140deg, rgba(56, 225, 255, 0.55), transparent 40%, transparent 62%, rgba(139, 92, 246, 0.5));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
}
.jushu-auth-card h3 {
    margin: 0 0 6px;
    color: #f6faff;
    font-size: 23px;
    font-weight: 800;
    letter-spacing: 0.4px;
}
.jushu-auth-card .sub { margin-bottom: 24px; color: var(--t-muted); font-size: 13px; }
.jushu-auth-card .links { margin-top: 16px; font-size: 13px; }
.jushu-auth-card a { color: var(--t-cyan); }
.jushu-auth-card a:hover { color: #7defff; }
.jushu-auth-card .form-group { margin-bottom: 15px; }
.jushu-auth-card .btn-block {
    height: 44px;
    font-size: 15px;
    letter-spacing: 3px;
    margin-top: 6px;
}
.jushu-auth-card .text-muted { color: var(--t-muted) !important; }

/* ================================================================
   动效可关闭
   ================================================================ */
@media (prefers-reduced-motion: reduce) {
    .lp-orb, .lp-dot { animation: none !important; }
    .lp-btn, .lp-feat, .lp-price { transition: none; }
}

/* ================================================================
   2026-10-23 · 落地页增强：「AI 情报大脑」视觉层
   ------------------------------------------------------------------
   这一块只服务 landing.html 的新结构：实时控制台、大脑可视化、
   滚动进场、结尾行动区。租户端登录壳不受影响。
   ================================================================ */

/* ---------------- 首屏微调 ---------------- */
.lp-hero { padding-top: 56px; }
.lp-eyebrow em {
    font-style: normal;
    margin-left: 8px;
    padding: 2px 7px;
    border: 1px solid rgba(52, 211, 153, 0.4);
    border-radius: 5px;
    color: #34d399;
    font-size: 10.5px;
    letter-spacing: 1.1px;
}
/* 标题渐变缓慢流动，比静态渐变更有"引擎在跑"的感觉 */
.lp-shine {
    background-size: 220% 100%;
    animation: lpShine 7s ease-in-out infinite;
}
@keyframes lpShine {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}
.lp-metrics b { font-variant-numeric: tabular-nums; }

/* 注册卡外面套一层呼吸光晕，把视线拉到转化点上 */
.lp-card-glow::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: 19px;
    padding: 1px;
    background: linear-gradient(140deg, rgba(56, 225, 255, 0.55), rgba(139, 92, 246, 0.45), transparent 70%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: lpGlow 4.5s ease-in-out infinite;
    pointer-events: none;
}
@keyframes lpGlow {
    0%, 100% { opacity: 0.45; }
    50%      { opacity: 1; }
}

/* ---------------- 实时情报控制台 ---------------- */
.lp-console-band { padding: 8px 0 64px; }
.lp-console {
    position: relative;
    border-radius: 18px;
    border: 1px solid rgba(120, 180, 255, 0.16);
    background:
        radial-gradient(700px 300px at 12% 0%, rgba(75, 123, 255, 0.14), transparent 62%),
        rgba(10, 15, 28, 0.86);
    box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    overflow: visible;
    backdrop-filter: blur(8px);
}
.lp-console-bar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    font-size: 12.5px;
    color: var(--t-muted);
}
.lp-dots { display: inline-flex; gap: 6px; }
.lp-dots i {
    width: 9px; height: 9px; border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
}
.lp-dots i:first-child { background: #fb7185; }
.lp-dots i:nth-child(2) { background: #fbbf24; }
.lp-dots i:nth-child(3) { background: #34d399; }
.lp-console-title { color: var(--t-text-2); letter-spacing: 0.4px; }
.lp-console-title i { color: var(--t-cyan); margin-right: 6px; }
.lp-console-badge {
    margin-left: auto;
    padding: 2px 9px;
    border-radius: 20px;
    border: 1px solid rgba(120, 180, 255, 0.22);
    color: var(--t-muted);
    font-size: 11px;
}
.lp-console-body {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 28px;
    padding: 22px 22px 24px;
}
.lp-panel-label {
    margin-bottom: 14px;
    color: var(--t-muted);
    font-size: 12px;
    letter-spacing: 0.6px;
}
.lp-panel-label i { color: var(--t-cyan); margin-right: 6px; }

/* 柱状条 */
.lp-bars {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    height: 132px;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.lp-bars span {
    flex: 1;
    height: 0;
    border-radius: 5px 5px 2px 2px;
    background: linear-gradient(180deg, rgba(56, 225, 255, 0.85), rgba(75, 123, 255, 0.18));
    box-shadow: 0 0 18px rgba(56, 225, 255, 0.18);
    transition: height 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.lp-bars span.is-hot {
    background: linear-gradient(180deg, #8b5cf6, rgba(56, 225, 255, 0.35));
    box-shadow: 0 0 24px rgba(139, 92, 246, 0.4);
}
.lp-bars.is-on span { height: var(--h); }

.lp-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-top: 18px;
}
.lp-kpis > div {
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(255, 255, 255, 0.03);
}
.lp-kpis span { display: block; color: var(--t-muted); font-size: 11.5px; margin-bottom: 4px; }
.lp-kpis b { color: #34d399; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.lp-kpis b.is-down { color: #fbbf24; }

/* 终端式情报输出 */
.lp-terminal {
    min-height: 168px;
    margin: 0;
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid rgba(56, 225, 255, 0.16);
    background: rgba(3, 7, 16, 0.72);
    color: #cfe3ff;
    font-family: "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
    font-size: 13px;
    line-height: 2;
    white-space: pre-wrap;
    word-break: break-word;
}
.lp-caret {
    display: inline-block;
    width: 7px; height: 15px;
    margin-left: 2px;
    background: var(--t-cyan);
    vertical-align: -2px;
    animation: lpCaret 1s steps(1) infinite;
}
@keyframes lpCaret { 50% { opacity: 0; } }
.lp-console-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 14px;
    color: var(--t-muted);
    font-size: 12px;
}
.lp-console-foot i { color: var(--t-cyan); margin-right: 5px; }

/* 三个漂浮状态标 */
.lp-float {
    position: absolute;
    padding: 8px 13px;
    border-radius: 10px;
    border: 1px solid rgba(120, 180, 255, 0.2);
    background: rgba(10, 15, 28, 0.94);
    box-shadow: 0 16px 40px -18px rgba(0, 0, 0, 0.9);
    color: var(--t-text-2);
    font-size: 12px;
    white-space: nowrap;
    animation: lpFloatY 5s ease-in-out infinite;
}
.lp-float i { color: var(--t-cyan); margin-right: 6px; }
.lp-float-1 { top: -16px; right: 6%; }
.lp-float-2 { bottom: 26%; left: -22px; animation-delay: 1.2s; }
.lp-float-3 { bottom: -18px; right: 12%; animation-delay: 2.4s; }
@keyframes lpFloatY {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-9px); }
}

/* ---------------- AI 大脑 ---------------- */
.lp-brain-row { display: flex; flex-wrap: wrap; align-items: center; }
.lp-brain {
    position: relative;
    width: 340px;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0 auto 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lp-brain-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(120, 180, 255, 0.18);
}
.lp-brain-ring.r1 { inset: 0; }
.lp-brain-ring.r2 { inset: 14%; border-style: dashed; border-color: rgba(120, 180, 255, 0.14); }
.lp-brain-ring.r3 { inset: 30%; border-color: rgba(56, 225, 255, 0.22); }
/* 旋转扫描扇区 */
.lp-brain-sweep {
    position: absolute;
    inset: 4%;
    border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(56, 225, 255, 0.32), rgba(56, 225, 255, 0) 26%, transparent 100%);
    animation: lpSpin 5.5s linear infinite;
    mask-image: radial-gradient(circle, transparent 28%, #000 30%);
    -webkit-mask-image: radial-gradient(circle, transparent 28%, #000 30%);
}
.lp-brain-core {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px; height: 96px;
    border-radius: 28px;
    background: linear-gradient(145deg, #5ff0ff 0%, #4b7bff 52%, #a06bff 100%);
    color: #fff;
    text-shadow: 0 2px 10px rgba(6, 12, 30, 0.45);
    font-size: 38px;
    box-shadow: 0 0 0 10px rgba(56, 225, 255, 0.06), 0 22px 60px rgba(56, 225, 255, 0.32);
    animation: lpCorePulse 3.6s ease-in-out infinite;
}
@keyframes lpCorePulse {
    0%, 100% { box-shadow: 0 0 0 10px rgba(56, 225, 255, 0.06), 0 22px 60px rgba(56, 225, 255, 0.28); }
    50%      { box-shadow: 0 0 0 18px rgba(56, 225, 255, 0.03), 0 26px 78px rgba(139, 92, 246, 0.4); }
}
@keyframes lpSpin { to { transform: rotate(360deg); } }

/* 四个沿轨道跑的能力节点 */
.lp-orbit {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px; height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(120, 180, 255, 0.28);
    background: rgba(13, 20, 36, 0.95);
    color: var(--t-cyan);
    font-size: 15px;
    box-shadow: 0 10px 26px -12px rgba(0, 0, 0, 0.9);
}
/* 节点本身只做小幅漂浮（转圈交给核心光晕，节点转圈会糊成一团） */
.lp-orbit.o1 { top: 2%; left: 50%; margin-left: -19px; animation: lpFloatY 6s ease-in-out infinite; }
.lp-orbit.o2 { top: 50%; right: 0; margin-top: -19px; animation: lpFloatY 7.5s ease-in-out infinite 0.8s; }
.lp-orbit.o3 { bottom: 3%; left: 50%; margin-left: -19px; animation: lpFloatY 6.8s ease-in-out infinite 1.6s; }
.lp-orbit.o4 { top: 50%; left: 0; margin-top: -19px; animation: lpFloatY 8s ease-in-out infinite 2.4s; }

/* 四段流水线 */
.lp-pipeline { display: flex; flex-direction: column; gap: 12px; }
.lp-pipe {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 16px 18px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.07);
    background: linear-gradient(120deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015));
    transition: border-color 0.25s, transform 0.25s, background 0.25s;
}
.lp-pipe:hover {
    transform: translateX(4px);
    border-color: rgba(56, 225, 255, 0.3);
    background: linear-gradient(120deg, rgba(56, 225, 255, 0.07), rgba(255, 255, 255, 0.02));
}
.lp-pipe-i {
    flex: 0 0 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    border-radius: 11px;
    background: rgba(56, 225, 255, 0.1);
    color: var(--t-cyan);
    font-size: 16px;
}
.lp-pipe b { display: block; margin-bottom: 5px; color: #f0f6ff; font-size: 15px; }
.lp-pipe p { margin: 0; color: var(--t-muted); font-size: 13px; line-height: 1.75; }
.lp-pipe-n {
    position: absolute;
    top: 14px; right: 16px;
    color: rgba(120, 180, 255, 0.24);
    font-size: 20px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: 1px;
}

/* ---------------- 结尾行动区 ---------------- */
.lp-cta-band { padding: 10px 0 70px; }
.lp-cta {
    position: relative;
    overflow: hidden;
    padding: 54px 30px;
    border-radius: 22px;
    border: 1px solid rgba(120, 180, 255, 0.18);
    text-align: center;
    background:
        radial-gradient(700px 320px at 50% 0%, rgba(75, 123, 255, 0.2), transparent 68%),
        rgba(10, 15, 28, 0.8);
}
.lp-cta-glow {
    position: absolute;
    left: 50%; top: -60%;
    width: 620px; height: 620px;
    margin-left: -310px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(56, 225, 255, 0.22), transparent 66%);
    filter: blur(30px);
    pointer-events: none;
}
.lp-cta h2 {
    position: relative;
    margin: 0 0 12px;
    color: #fff;
    font-size: 27px;
    font-weight: 800;
    letter-spacing: 0.4px;
}
.lp-cta p { position: relative; margin: 0 0 26px; color: var(--t-muted); font-size: 13.5px; }
.lp-cta .lp-hero-cta { position: relative; }

/* ---------------- 滚动进场 ---------------- */
[data-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
[data-reveal].is-in { opacity: 1; transform: none; }

/* ---------------- 响应式 ---------------- */
@media (max-width: 991px) {
    .lp-console-body { grid-template-columns: 1fr; gap: 20px; }
    .lp-float-2 { left: 0; }
    .lp-brain { width: 280px; }
    .lp-cta h2 { font-size: 22px; }
}
@media (max-width: 560px) {
    .lp-kpis { grid-template-columns: repeat(2, 1fr); }
    .lp-float { display: none; }
    .lp-console { margin: 0 4px; }
    .lp-console-body { padding: 16px 14px 18px; }
    .lp-terminal { font-size: 12px; line-height: 1.9; }
    .lp-cta { padding: 40px 18px; }
}
