/* =============================================================
   蝴蝶SCRM · 品牌级视觉系统 (brand-premium)
   纯自研 CSS · 无第三方框架 · Font Awesome 6 仅作图标 CDN
   设计语言：大厂化 / 高端化 / 前沿化 / 商业化
   使用：页面 <head> 引入本文件并定义 --t1/--t2/--t3/--r/--g/--b
   ============================================================= */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
    /* 主题色（页面可覆盖，默认蓝） */
    --t1:#3B82F6; --t2:#2563EB; --t3:#60A5FA;
    --r:59; --g:130; --b:246;
    /* 品牌主视觉（固定，营造前沿多色渐变） */
    --brand-1:#4F46E5;   /* indigo */
    --brand-2:#3B82F6;   /* blue   */
    --brand-3:#06B6D4;   /* cyan   */
    --brand-4:#7C3AED;   /* violet */
    --brand-ink:#0a0e1f; /* 深空底 */
    --ink-1:#0f172a;
    --ink-2:#334155;
    --ink-3:#64748b;
    --ink-4:#94a3b8;
    --line:#e2e8f0;
    --ease:cubic-bezier(.16,1,.3,1);
    --r-card:24px;
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
}

html,body{height:100%}
body{
    min-height:100vh;
    color:var(--ink-1);
    background:#eef2f9;
    position:relative;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}

/* ============ 背景系统 ============ */
.bg-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
#bg-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;width:100%;height:100%;opacity:.55}

.orb{position:absolute;border-radius:50%;filter:blur(120px);opacity:.5;will-change:transform}
.orb-1{width:620px;height:620px;top:-220px;right:-160px;background:var(--brand-1);animation:orbA 22s ease-in-out infinite}
.orb-2{width:520px;height:520px;bottom:-220px;left:-160px;background:var(--brand-3);animation:orbB 26s ease-in-out infinite}
.orb-3{width:380px;height:380px;top:32%;left:46%;transform:translate(-50%,-50%);background:var(--brand-4);opacity:.35;animation:orbC 18s ease-in-out infinite}
@keyframes orbA{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-80px,50px) scale(1.15)}66%{transform:translate(50px,-40px) scale(.92)}}
@keyframes orbB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,-40px) scale(1.12)}}
@keyframes orbC{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.28)}}

.grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(circle at 30% 40%,#000 0%,transparent 75%)}

/* ============ 顶栏 ============ */
.topbar{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:22px 40px}
.topbar .brand{display:flex;align-items:center;gap:12px}
.topbar .logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--brand-1),var(--brand-2));display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(79,70,229,.4);position:relative;overflow:hidden}
.topbar .logo i{color:#fff;font-size:19px;position:relative;z-index:1}
.topbar .logo::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.4),transparent 60%);opacity:.5}
.topbar .name{font-size:17px;font-weight:800;letter-spacing:.3px;color:#fff}
.topbar .name span{color:var(--brand-3)}
.topbar .ver{font-size:12px;color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.18);padding:5px 12px;border-radius:20px;backdrop-filter:blur(8px)}

/* ============ 分栏外壳 ============ */
.shell{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;height:100vh;overflow:hidden}
.shell.collapsed{grid-template-columns:1fr}

/* ---- 左侧品牌面板（深色戏剧化） ---- */
.brand-panel{
    position:relative;overflow:hidden;min-height:0;
    background:
        radial-gradient(1200px 600px at 12% 8%,rgba(79,70,229,.42),transparent 60%),
        radial-gradient(900px 600px at 88% 92%,rgba(6,182,212,.32),transparent 55%),
        linear-gradient(140deg,#0a0e1f 0%,#111634 48%,#0c1430 100%);
    padding:54px 60px;display:flex;flex-direction:column;justify-content:space-between;
    color:#fff;
}
.brand-panel::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 30%);pointer-events:none}
.bp-glow{position:absolute;width:280px;height:280px;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none}
.bp-glow.a{top:-60px;left:-40px;background:var(--brand-1)}
.bp-glow.b{bottom:-80px;right:-30px;background:var(--brand-4)}

.brand-head{position:relative;z-index:2;display:flex;align-items:center;gap:14px}
.brand-badge{width:58px;height:58px;border-radius:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px rgba(79,70,229,.5);position:relative;overflow:hidden;flex-shrink:0;background:transparent}
.brand-badge img{width:80%;height:80%;object-fit:contain;position:relative;z-index:1}
.brand-titles .b-name{font-size:24px;font-weight:900;letter-spacing:.5px;line-height:1.1}
.brand-titles .b-name b{background:linear-gradient(90deg,var(--brand-3),#a5f3fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.brand-titles .b-eyebrow{font-size:12.5px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:4px}

.bp-center{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center;padding:30px 0}
.bp-tag{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;font-size:12.5px;font-weight:600;letter-spacing:1px;color:#c7d2fe;background:rgba(99,102,241,.16);border:1px solid rgba(129,140,248,.3);padding:7px 16px;border-radius:30px;margin-bottom:26px}
.bp-tag i{color:var(--brand-3)}
.bp-headline{font-size:clamp(34px,4.4vw,54px);font-weight:900;line-height:1.08;letter-spacing:-1px;margin-bottom:20px}
.bp-headline .grad{background:linear-gradient(100deg,#fff 0%,#a5b4fc 40%,#67e8f9 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.bp-slogan{font-size:clamp(17px,1.7vw,21px);font-weight:700;color:#e0e7ff;margin-bottom:16px}
.bp-desc{font-size:15px;line-height:1.85;color:rgba(226,232,255,.72);max-width:480px;margin-bottom:34px}

/* 价值点网格 */
.bp-values{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:520px}
.bp-value{display:flex;align-items:flex-start;gap:13px;padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);transition:transform .4s var(--ease),background .4s var(--ease),border-color .4s var(--ease)}
.bp-value:hover{transform:translateY(-4px);background:rgba(255,255,255,.09);border-color:rgba(165,243,252,.4)}
.bp-value .vi{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;background:linear-gradient(135deg,rgba(79,70,229,.4),rgba(6,182,212,.4));color:#a5f3fc;border:1px solid rgba(165,243,252,.25)}
.bp-value .vt{font-size:14.5px;font-weight:700;color:#fff;line-height:1.3}
.bp-value .vd{font-size:12px;color:rgba(226,232,255,.6);margin-top:3px;line-height:1.4}

/* 浮动数据卡（3D 倾斜） */
.bp-stat{position:relative;z-index:2;align-self:flex-start;display:flex;gap:18px;padding:18px 22px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(16px);box-shadow:0 20px 50px rgba(0,0,0,.35);transform-style:preserve-3d;transition:transform .25s var(--ease),box-shadow .4s var(--ease)}
.bp-stat .si{text-align:center}
.bp-stat .snum{font-size:22px;font-weight:900;background:linear-gradient(90deg,#fff,#67e8f9);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1}
.bp-stat .slabel{font-size:11.5px;color:rgba(226,232,255,.66);margin-top:6px;letter-spacing:.5px}
.bp-stat .sdiv{width:1px;background:rgba(255,255,255,.16)}

.bp-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:26px;margin-top:26px;border-top:1px solid rgba(255,255,255,.1);font-size:12.5px;color:rgba(226,232,255,.55)}
.bp-foot a{color:rgba(165,243,252,.85);text-decoration:none}
.bp-foot a:hover{text-decoration:underline}

/* ---- 右侧表单面板（浅色玻璃） ---- */
.form-panel{position:relative;display:flex;align-items:center;justify-content:center;padding:48px 40px;background:transparent;min-height:0;overflow:hidden}
.form-panel .fp-orb{position:absolute;border-radius:50%;filter:blur(110px);opacity:.25;pointer-events:none}
.form-panel .fp-orb.a{width:420px;height:420px;top:-120px;right:-80px;background:var(--t1)}
.form-panel .fp-orb.b{width:340px;height:340px;bottom:-120px;left:-60px;background:var(--t3)}

.glass-card{position:relative;z-index:2;width:100%;max-width:460px;max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden;padding-right:8px;background:rgba(255,255,255,.72);backdrop-filter:blur(34px) saturate(200%);-webkit-backdrop-filter:blur(34px) saturate(200%);border-radius:var(--r-card);padding:46px 42px;box-shadow:0 2px 6px rgba(15,23,42,.04),0 14px 46px rgba(15,23,42,.08),0 34px 90px rgba(15,23,42,.06);scrollbar-width:none}
.glass-card::-webkit-scrollbar{display:none}
.glass-card::before{content:'';position:absolute;inset:0;border-radius:var(--r-card);padding:1.5px;background:conic-gradient(from var(--border-angle,0deg),transparent 0deg,var(--t1) 55deg,var(--t3) 145deg,transparent 220deg,transparent 360deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.72;animation:borderRotate 8s linear infinite;pointer-events:none}
@property --border-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes borderRotate{0%{--border-angle:0deg}100%{--border-angle:360deg}}

.gc-title{text-align:center;font-size:25px;font-weight:800;color:var(--ink-1);letter-spacing:-.4px;margin-bottom:6px}
.gc-sub{text-align:center;font-size:13.5px;color:var(--ink-3);margin-bottom:12px}
.gc-mark{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;box-shadow:0 10px 26px rgba(var(--r),var(--g),var(--b),.38);position:relative;overflow:hidden;background:transparent}
.gc-mark img{width:80%;height:80%;object-fit:contain;position:relative;z-index:1}

/* ============ 表单元素 ============ */
.pfield{margin-bottom:18px}
.pfield label{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink-2);margin-bottom:8px}
.pfield label i{color:var(--t1);font-size:13px;width:15px;text-align:center}
.pfield input{width:100%;padding:13px 15px;font-size:14px;color:var(--ink-1);background:rgba(255,255,255,.65);border:1.5px solid var(--line);border-radius:13px;outline:none;transition:all .25s var(--ease)}
.pfield input::placeholder{color:var(--ink-4)}
.pfield input:focus{border-color:var(--t1);background:#fff;box-shadow:0 0 0 4px rgba(var(--r),var(--g),var(--b),.13);transform:translateY(-1px)}

/* ============ 按钮 ============ */
.pbtn{position:relative;width:100%;padding:14px 18px;background:linear-gradient(135deg,var(--t1),var(--t2));color:#fff;border:none;border-radius:13px;font-size:15px;font-weight:700;cursor:pointer;letter-spacing:.4px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .3s var(--ease),box-shadow .3s var(--ease);box-shadow:0 8px 24px rgba(var(--r),var(--g),var(--b),.36);will-change:transform}
.pbtn span,.pbtn i{position:relative;z-index:1}
.pbtn:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(var(--r),var(--g),var(--b),.5)}
.pbtn:active{transform:translateY(0)}
.pbtn-ghost{background:transparent;color:var(--t2);border:1.5px solid rgba(var(--r),var(--g),var(--b),.25);box-shadow:none}
.pbtn-ghost:hover{background:rgba(var(--r),var(--g),var(--b),.07);border-color:rgba(var(--r),var(--g),var(--b),.45);box-shadow:none}

/* ============ 提示 ============ */
.palert{display:flex;align-items:flex-start;gap:10px;padding:13px 16px;border-radius:13px;font-size:13.5px;line-height:1.55;margin-bottom:20px}
.palert i{margin-top:2px;flex-shrink:0}
.palert-error{background:rgba(254,242,242,.9);color:#dc2626;border:1px solid rgba(252,165,165,.5)}
.palert-success{background:rgba(240,253,244,.9);color:#16a34a;border:1px solid rgba(134,239,172,.5)}
.palert-info{background:rgba(239,246,255,.9);color:#2563eb;border:1px solid rgba(147,197,253,.5)}

.pnote{text-align:center;font-size:12.5px;color:var(--ink-4);margin-top:22px;line-height:1.6}
.pnote code{background:rgba(var(--r),var(--g),var(--b),.09);color:var(--t2);padding:2px 8px;border-radius:6px;font-weight:600}

/* ============ 步骤指示器 ============ */
.psteps{display:flex;align-items:flex-start;justify-content:center;margin-bottom:30px}
.pstep{display:flex;flex-direction:column;align-items:center;gap:5px;position:relative;z-index:1}
.pstep-dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;background:#fff;border:2px solid var(--line);color:var(--ink-4);transition:all .4s var(--ease)}
.pstep.active .pstep-dot{background:linear-gradient(135deg,var(--t1),var(--t2));border-color:transparent;color:#fff;box-shadow:0 8px 22px rgba(var(--r),var(--g),var(--b),.45);transform:scale(1.1)}
.pstep.done .pstep-dot{background:#10b981;border-color:transparent;color:#fff}
.pstep-label{font-size:12px;font-weight:600;color:var(--ink-3)}
.pstep.active .pstep-label,.pstep.done .pstep-label{color:var(--ink-1)}
.pstep-line{width:74px;height:2px;background:var(--line);margin:0 6px;margin-top:19px;border-radius:2px;transition:all .45s var(--ease)}
.pstep-line.done{background:linear-gradient(90deg,var(--t1),#10b981)}

/* ============ 环境检测分组折叠 ============ */
.pcheck-group{border:1px solid #eef2f7;border-radius:12px;margin-bottom:10px;overflow:hidden;background:rgba(255,255,255,.3);transition:border-color .2s}
.pcheck-group[open]{border-color:#c7d2fe}
.pcheck-summary{display:flex;align-items:center;padding:10px 14px;cursor:pointer;font-size:13px;font-weight:500;color:var(--ink-2);user-select:none;list-style:none}
.pcheck-summary::-webkit-details-marker{display:none}
.pcheck-summary::before{content:'▸';display:inline-block;width:14px;font-size:10px;margin-right:4px;transition:transform .2s;color:var(--ink-4)}
.pcheck-group[open] .pcheck-summary::before{transform:rotate(90deg)}
.pcheck-group .pcheck{margin:0;padding:0 14px 8px}
.pcheck-group .pcheck li{margin-bottom:4px;border-radius:8px;padding:8px 10px;font-size:13px}
.pcheck-group .pcheck li:last-child{border-bottom:none}
/* ============ 环境检测清单 ============ */
.pcheck{list-style:none;margin:4px 0 24px}
.pcheck li{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;background:rgba(255,255,255,.5);margin-bottom:8px;border:1px solid #eef2f7;font-size:14px;color:var(--ink-2)}
.pcheck li small{color:var(--ink-4);font-weight:400}
.pcheck .ck-msg{display:block;margin-top:3px;font-size:12.5px;line-height:1.5;color:#dc2626}
.pcheck .ci{width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.pcheck .check-pass .ci{background:#dcfce7;color:#16a34a}
.pcheck .check-fail .ci{background:#fee2e2;color:#dc2626}
.pcheck .check-fail{background:rgba(254,242,242,.55);border-color:#fecaca}

/* ============ 动画 ============ */
html.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
html.js [data-reveal].in{opacity:1;transform:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.shell>*,.topbar{animation:fadeUp .8s var(--ease) both}

/* ============ 响应式 ============ */
@media(max-width:980px){
    .shell{grid-template-columns:1fr}
    .brand-panel{padding:40px 30px;min-height:auto}
    .bp-values{grid-template-columns:1fr 1fr}
    .form-panel{padding:40px 22px}
    .topbar{padding:18px 24px}
}
@media(max-width:560px){
    .brand-panel{padding:34px 22px}
    .bp-values{grid-template-columns:1fr}
    .bp-stat{flex-wrap:wrap;gap:16px}
    .glass-card{padding:36px 24px;border-radius:20px}
    .topbar .name{font-size:15px}
    .pstep-line{width:42px}
}
@media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important}
    [data-reveal]{opacity:1;transform:none}
}

/* ============ 安装完成页 ========== */
.bp-tag-success{
    --sc: #10b981;
    background: rgba(16,185,129,.12);
    color: #059669;
    border-color: rgba(16,185,129,.25);
    backdrop-filter: blur(8px)
}

/* 成功卡片 */
/* ══════════════════════════════════════
   安装成功卡片 — 大厂级设计
   ══════════════════════════════════════ */
.success-card{
    text-align: center;
    padding: 12px 0 8px;
    position: relative;
    overflow: hidden
}

/* ---- 庆祝动画区（脉冲圆环 + 勾号） ---- */
.sc-celebration{
    position: relative;
    width: 96px; height: 96px;
    margin: 0 auto 24px;
    display:flex; align-items:center; justify-content:center
}

.sc-ring{
    position:absolute; inset:0; border-radius:50%;
    border: 2.5px solid rgba(16,185,129,.25);
    animation: sc-pulse 2s ease-out infinite
}
.sc-ring-2{
    inset: -6px; border-width:1.5px; border-color:rgba(16,185,129,.12);
    animation-delay: .6s
}

@keyframes sc-pulse{
    0%{ transform:scale(.85); opacity:1 }
    70%{ transform:scale(1.35); opacity:0 }
    100%{ transform:scale(1.4); opacity:0 }
}

.sc-check-wrap{
    width:64px; height:64px; border-radius:50%;
    background: linear-gradient(145deg, #10b981, #059669);
    display:flex; align-items:center; justify-content:center;
    box-shadow:
        0 10px 36px rgba(16,185,129,.32),
        0 0 0 1px rgba(255,255,255,.15) inset;
    position:relative; z-index:2
}

.sc-check-icon{
    color:#fff; font-size:28px;
    animation: sc-pop .45s cubic-bezier(.175,.885,.32,1.275) both
}

@keyframes sc-pop{
    0%{ transform: scale(.3); opacity:0 }
    100%{ transform: scale(1); opacity:1 }
}

/* ---- 文案区 ---- */
.sc-title{
    font-size:26px; font-weight:800; color:#111827;
    margin-bottom:8px; letter-spacing:.5px;
    background: linear-gradient(135deg,#111827,#374151);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text
}

.sc-sub{
    font-size:14px; color:#6b7280; margin-bottom:30px;
    line-height:1.5; letter-spacing:.3px
}

/* ---- 安装信息（单行紧凑横排） ---- */
.sc-meta{
    display:inline-flex; flex-wrap:wrap; align-items:center;
    gap: 0 10px; margin-bottom:28px;
    background: linear-gradient(145deg, rgba(99,102,241,.035), rgba(59,130,246,.055));
    border: 1px solid rgba(99,102,241,.09);
    border-radius: 12px;
    padding: 12px 18px;
    font-size:13px; line-height:1.6
}

.scm-label{
    color:#6b7280; font-weight:600; letter-spacing:.3px
}
.scm-sep{
    color:#9ca3af
}
.scm-item{
    color:#1f2937; font-weight:700;
    font-family:'SF Mono',Menlo,Consolas,'Courier New',monospace;
    white-space:nowrap
}
.scm-dot{
    width:4px; height:4px; border-radius:50%;
    background: #c7d2fe; flex-shrink:0
}

/* ---- CTA 按钮 ---- */
.sc-btn{
    width:100%; justify-content:center; gap:8px;
    background: linear-gradient(135deg,var(--t1),var(--t2));
    color:#fff !important; border:none !important;
    cursor:pointer; text-decoration:none;
    display:inline-flex; align-items:center;
    font-size:15px; font-weight:700; letter-spacing:.5px;
    padding: 14px 20px; border-radius: 14px;
    position:relative; overflow:hidden;
    transition: all .3s cubic-bezier(.16,1,.3,1)
}
.sc-btn::before{
    content:''; position:absolute; top:0; left:-100%;
    width:60%; height:100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
    transition: left .5s ease
}
.sc-btn:hover{
    transform: translateY(-2px) scale(1.01);
    box-shadow:
        0 8px 28px rgba(var(--r),var(--g),var(--b),.38),
        0 2px 8px rgba(var(--r),var(--g),var(--b),.22);
}
.sc-btn:hover::before{ left:120% }
.sc-btn i{ transition:transform .25s ease }
.sc-btn:hover i{ transform: translateX(3px) }
