/* 银青智融 · 演示原型样式 */
:root{
  --blue:#2B7FFF; --blue-d:#1350C8; --blue-l:#E8F1FF; --blue-ll:#F2F7FF;
  --gold:#FF9A2E; --gold-d:#E07A0C;
  --dark:#141210; --dark2:#221C15; --dark3:#2C241A;
  --ink:#0F172A; --muted:#64748B; --line:#E7EDF6;
  --green:#22C55E; --green-d:#15A34A; --red:#EF4444; --amber:#F59E0B;
  --bg:#F5F8FF; --card:#fff; --r:20px; --r-sm:14px;
  --shadow:0 6px 22px rgba(20,45,90,.08);
  --font:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);background:#0A1930;color:var(--ink);
  display:flex;align-items:center;justify-content:center;min-height:100dvh;
  background-image:radial-gradient(1000px 600px at 20% -10%,#1B3E77 0%,transparent 60%),radial-gradient(800px 500px at 110% 110%,#0E2A55 0%,transparent 55%);
}
.phone{
  position:relative;width:min(430px,100vw);aspect-ratio:9/19.5;max-height:100dvh;
  background:var(--bg);border-radius:30px;overflow:hidden;
  box-shadow:0 30px 90px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.08);
}
@media (max-width:620px){
  .phone{width:100vw;aspect-ratio:auto;height:100dvh;border-radius:0}
}
.stage{position:absolute;inset:0}
.screen{
  position:absolute;inset:0;display:flex;flex-direction:column;overflow-y:auto;
  padding:14px 18px 20px;gap:12px;opacity:0;transform:translateY(10px) scale(.99);
  pointer-events:none;transition:opacity .3s ease,transform .3s ease;scrollbar-width:none;
}
.screen::-webkit-scrollbar{display:none}
.screen.active{opacity:1;transform:none;pointer-events:auto;z-index:2}
.theme-light{background:var(--bg);color:var(--ink)}
.theme-dark{background:var(--dark);color:#fff}
.theme-tech{background:linear-gradient(160deg,#0E1526,#16233D 60%,#0D1A2E);color:#EAF2FF}

/* 状态栏 */
.sb{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;letter-spacing:.4px;opacity:.9;padding:2px 4px 0}
.sb .dots{display:flex;gap:4px;align-items:flex-end}
.sb .dots i{display:block;background:currentColor;border-radius:2px;width:4px}
.sb .dots i:nth-child(1){height:6px}.sb .dots i:nth-child(2){height:9px}.sb .dots i:nth-child(3){height:12px}
.sb .bat{width:22px;height:11px;border:1.5px solid currentColor;border-radius:3px;position:relative;opacity:.9}
.sb .bat::after{content:"";position:absolute;right:-4px;top:3px;width:2px;height:5px;background:currentColor;border-radius:0 2px 2px 0}
.sb .bat b{position:absolute;inset:1.5px;width:70%;background:currentColor;border-radius:1.5px;display:block}

/* 通用组件 */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:16px}
.title{font-size:22px;font-weight:800;letter-spacing:.5px}
.sub{font-size:13px;color:var(--muted)}
.btn{
  border:0;border-radius:var(--r-sm);padding:16px;font-size:17px;font-weight:700;font-family:var(--font);
  width:100%;cursor:pointer;transition:transform .12s ease,filter .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;
}
.btn:active{transform:scale(.985)}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(43,127,255,.32)}
.btn-green{background:var(--green);color:#fff;box-shadow:0 8px 20px rgba(34,197,94,.3)}
.btn-gold{background:linear-gradient(135deg,#FFB257,#FF8A1F);color:#3A2408;box-shadow:0 8px 22px rgba(255,154,46,.35)}
.btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost-red{background:transparent;border:1.5px solid #FCA5A5;color:var(--red)}
.btn-ghost-light{background:transparent;border:1.5px solid rgba(255,255,255,.28);color:#fff}
.row{display:flex;align-items:center;gap:10px}
.grow{flex:1}
.ico{width:20px;height:20px;flex:none}
.hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;letter-spacing:-.2px}
.pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.pill-green{background:#E7F8EE;color:var(--green-d)}
.pill-red{background:#FDECEC;color:var(--red)}
.pill-blue{background:var(--blue-l);color:var(--blue-d)}
.pill-amber{background:#FEF3E2;color:#B5690A}

/* ---------- 1. 入口页 ---------- */
#welcome{padding-top:10px;background:
  radial-gradient(600px 300px at 50% -6%,#DCEBFF 0%,rgba(255,255,255,0) 70%),var(--bg)}
.w-hero{text-align:center;padding-top:6px}
.w-hero .logo{width:64px;height:64px;object-fit:contain}
.w-hero h1{margin:4px 0 0;font-size:30px;letter-spacing:3px}
.w-hero .latin{font-size:10px;letter-spacing:3px;color:#8AA0BE;margin-top:2px}
.w-hero .slogan{margin-top:14px;font-size:21px;font-weight:800;letter-spacing:1px}
.w-hero .sub2{font-size:13px;color:var(--muted);margin-top:6px;letter-spacing:1px}
.w-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px;flex:1;min-height:0}
.w-card{
  border-radius:var(--r);padding:14px 12px 0;display:flex;flex-direction:column;gap:8px;
  border:0;font-family:var(--font);cursor:pointer;overflow:hidden;text-align:left;transition:transform .14s ease;
}
.w-card:active{transform:scale(.985)}
.w-card.dark{background:linear-gradient(170deg,#2A2113,#141210 60%);color:#fff}
.w-card.light{background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.w-card .kicker{font-size:11px;line-height:1.55;opacity:.75}
.w-card.dark .kicker{color:#F7D9A8}
.w-card.light .kicker{color:var(--muted)}
.w-card h3{margin:2px 0 0;font-size:22px;line-height:1.2;font-weight:800}
.w-card .mode{font-size:20px;font-weight:800}
.w-card.dark .mode{color:var(--gold)}
.w-card.light .mode{color:var(--blue)}
.w-card p{margin:0;font-size:11.5px;line-height:1.6;opacity:.8}
.w-card .illu{width:100%;margin-top:auto;display:block;object-fit:contain;flex:none}
.w-feats{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px}
.w-feats li{font-size:11.5px;line-height:1.45;display:flex;gap:6px;align-items:flex-start}
.w-feats li::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.65;margin-top:6px;flex:none}
.w-card.dark .w-feats li{color:#EFDCC1}
.w-card.light .w-feats li{color:#5B6C87}
.w-card .cta{
  margin:6px 0 14px;border-radius:999px;padding:11px;font-size:16px;font-weight:800;text-align:center;color:#fff;
}
.w-card.dark .cta{background:linear-gradient(135deg,#FFB257,#FF8A1F);color:#3A2408;box-shadow:0 6px 16px rgba(255,154,46,.35)}
.w-card.light .cta{background:var(--blue);box-shadow:0 6px 16px rgba(43,127,255,.3)}
.w-foot{text-align:center;font-size:11px;color:#9AAEC9;margin-top:auto;padding-bottom:4px}

/* ---------- 2. 银发模式 ---------- */
#senior{background:radial-gradient(520px 320px at 50% 46%,rgba(255,154,46,.14),rgba(20,18,16,0) 70%),var(--dark);gap:10px}
.safe{display:flex;align-items:center;gap:10px;background:rgba(20,80,40,.55);border:1px solid rgba(52,199,110,.35);border-radius:16px;padding:11px 13px}
.safe .txt b{display:block;font-size:15px;color:#8DF3B4}
.safe .txt span{font-size:12px;color:#B8E6CA}
.safe .badge{width:30px;height:30px;border-radius:50%;background:linear-gradient(140deg,#34D07A,#12A85A);display:grid;place-items:center;flex:none}
.greet{text-align:center;margin-top:6px}
.greet h2{margin:0;font-size:34px;font-weight:800;letter-spacing:1px}
.greet .lead{margin-top:10px;font-size:17px;color:#B9AFA2}
.greet .cmd{margin-top:8px;font-size:28px;font-weight:800;color:var(--gold);letter-spacing:1px}
.wave{display:flex;align-items:center;justify-content:center;gap:3px;height:76px;margin:2px 0 0}
.wave i{display:block;width:3px;border-radius:3px;background:linear-gradient(180deg,#FFCD8A,#FF8A1F);animation:wv 1.25s ease-in-out infinite}
@keyframes wv{0%,100%{height:12%}50%{height:100%}}
.listening{text-align:center;font-size:17px;color:#D8CFC3}
.mic-wrap{display:grid;place-items:center;margin:2px 0 0}
.mic{
  width:132px;height:132px;border-radius:50%;border:0;background:transparent;padding:0;cursor:pointer;
  filter:drop-shadow(0 0 26px rgba(255,154,46,.55));transition:transform .14s ease
}
.mic:active{transform:scale(.94)}
.mic img{width:100%;height:100%;object-fit:contain;display:block;
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 56%,transparent 72%);
  mask-image:radial-gradient(circle at 50% 50%,#000 56%,transparent 72%)}
.mic-hint{text-align:center;font-size:15px;color:#C9BFB1;margin-top:6px}
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
.quick button{
  background:linear-gradient(180deg,#2B241B,#1C1710);border:1px solid rgba(255,154,46,.2);border-radius:16px;
  padding:14px 6px;color:#fff;font-family:var(--font);font-size:17px;font-weight:700;cursor:pointer;display:grid;gap:5px;justify-items:center
}
.quick button span{font-size:11px;font-weight:500;color:#BCAE9B}
.quick button svg{width:26px;height:26px;stroke:var(--gold)}
.hint-bar{display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.06);border-radius:14px;padding:11px;font-size:13.5px;color:#D6CCBE;margin-top:auto}

/* ---------- 3. 语音下单 ---------- */
#voice{background:radial-gradient(480px 260px at 80% 6%,rgba(255,154,46,.14),rgba(20,18,16,0) 70%),var(--dark);gap:10px}
.v-head{display:flex;align-items:center;justify-content:space-between}
.v-head .t{display:flex;align-items:center;gap:9px;font-size:22px;font-weight:800;color:#fff}
.v-head .t svg{stroke:var(--gold);width:26px;height:26px}
.v-head .r{font-size:11px;color:#A99C8A;text-align:right;line-height:1.5}
.msg{display:flex;gap:9px;align-items:flex-start}
.msg.me{justify-content:flex-end}
.msg .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none}
.msg .av.u{background:rgba(255,255,255,.12)}
.msg .av.b{background:rgba(255,154,46,.16);border:1px solid rgba(255,154,46,.35)}
.msg .av svg{width:20px;height:20px;stroke:#fff}
.msg .av.b svg{stroke:var(--gold)}
.bubble{max-width:78%;border-radius:18px;padding:13px 15px;font-size:19px;line-height:1.5}
.bubble.me{background:linear-gradient(135deg,#FFB257,#FF8A1F);color:#3A2408;border-top-right-radius:6px;font-weight:700}
.bubble.bot{background:#241F19;color:#EDE7DF;border-top-left-radius:6px;border:1px solid rgba(255,255,255,.07)}
.bubble.bot b{color:#fff}
.time{font-size:11px;color:#8C8175;margin:-4px 0 0 46px}
.time.right{margin:0 46px 0 0;text-align:right}
.risk{
  border:1.6px solid var(--gold);border-radius:18px;padding:15px;background:linear-gradient(180deg,rgba(255,154,46,.13),rgba(255,154,46,.04));
  display:grid;gap:11px;box-shadow:0 0 26px rgba(255,154,46,.16)
}
.risk .r1{display:flex;gap:11px;align-items:flex-start}
.risk .r1 svg{width:26px;height:26px;stroke:var(--gold);flex:none;margin-top:2px}
.risk .r1 b{color:var(--gold);font-size:19px}
.risk .r1 p{margin:4px 0 0;font-size:17px;line-height:1.5;color:#F0EAE2}
.risk .r2{display:flex;gap:10px;align-items:flex-start;border-top:1px solid rgba(255,154,46,.22);padding-top:11px}
.risk .r2 svg{width:22px;height:22px;stroke:#E8DFD3;flex:none;margin-top:2px}
.risk .r2 p{margin:0;font-size:16px;line-height:1.5;color:#E8DFD3}
.risk .r2 em{font-style:normal;color:var(--gold);font-weight:800}
.v-actions{display:grid;gap:10px;margin-top:auto}
.v-foot{text-align:center;font-size:12px;color:#8C8175}
.rule-card{
  display:flex;align-items:flex-start;gap:9px;background:rgba(255,255,255,.05);border:1px solid rgba(255,154,46,.22);
  border-radius:14px;padding:12px 13px;font-size:13.5px;line-height:1.6;color:#C7BCAD
}
.rule-card b{color:var(--gold);font-weight:800}
.v-analysis{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:13px 14px}
.v-analysis .hd{display:flex;align-items:center;gap:7px;font-size:13.5px;color:#C7BCAD;font-weight:700}
.v-analysis .hd svg{width:16px;height:16px;stroke:var(--gold)}
.v-analysis .grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}
.v-analysis .grid div{background:rgba(255,255,255,.05);border-radius:11px;padding:9px 11px}
.v-analysis .grid span{font-size:11.5px;color:#9C9083;display:block}
.v-analysis .grid b{font-size:14.5px;color:#F2ECE4;margin-top:3px;display:block}
.note-card{
  display:flex;align-items:flex-start;gap:9px;background:#EEF5FF;border-radius:16px;padding:13px 14px;
  font-size:13px;line-height:1.6;color:#3A5C8C
}
.note-card svg{width:17px;height:17px;stroke:var(--blue);flex:none;margin-top:2px}

/* 推送提示 */
.toast{
  position:absolute;left:16px;right:16px;bottom:22px;z-index:40;background:rgba(18,32,58,.96);color:#fff;
  border:1px solid rgba(120,170,255,.35);border-radius:16px;padding:13px 15px;display:flex;gap:11px;align-items:center;
  box-shadow:0 18px 40px rgba(0,0,0,.45);transform:translateY(140%);transition:transform .38s cubic-bezier(.2,.9,.2,1)
}
.toast.show{transform:translateY(0)}
.toast .b{width:34px;height:34px;border-radius:10px;background:var(--blue);display:grid;place-items:center;flex:none}
.toast b{display:block;font-size:14px}
.toast span{font-size:12px;color:#B9CCE8}

/* ---------- 4. 子女端确认 ---------- */
.nav{display:flex;align-items:center;gap:10px;padding:2px 0 2px}
.nav .back{width:34px;height:34px;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer}
.nav .back svg{width:18px;height:18px;stroke:var(--ink)}
.nav h2{font-size:19px;font-weight:800;flex:1;text-align:center;margin:0;padding-right:34px}
.alert{display:flex;align-items:center;gap:12px;background:#FEF3E2;border-radius:var(--r);padding:15px}
.alert svg{width:28px;height:28px;stroke:var(--amber);flex:none}
.alert b{font-size:19px;color:#B5690A;display:block}
.alert span{font-size:13px;color:#A6803F}
.alert .cnt{margin-left:auto;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800}
.kv{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.kv:last-child{border-bottom:0;padding-bottom:0}
.kv .k{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:15px}
.kv .k svg{width:19px;height:19px;stroke:var(--blue)}
.kv .v{font-size:16px;font-weight:700}
.kv .v.amt{font-size:30px;color:var(--blue);font-weight:800}
.ring{position:relative;width:112px;height:112px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring .val{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;font-weight:800;color:#B5690A}
.tags{display:grid;gap:9px;flex:1}
.tag{display:flex;align-items:center;gap:9px;background:#FDECEC;border-radius:10px;padding:9px 11px;font-size:13px;font-weight:700;color:#C0392B}
.tag i{width:22px;height:22px;border-radius:6px;background:#F87171;display:grid;place-items:center;flex:none}
.tag i svg{width:13px;height:13px;stroke:#fff}
.card-title{font-size:19px;font-weight:800;margin:0 0 4px}
.lock-note{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;color:var(--muted);padding:2px 0 4px}
.lock-note svg{width:14px;height:14px;stroke:var(--muted)}

/* ---------- 5. 上链结果 ---------- */
.done{display:grid;place-items:center;gap:8px;padding-top:6px}
.done .tick{width:104px;height:104px;border-radius:50%;background:#E7F8EE;display:grid;place-items:center}
.done .tick div{width:78px;height:78px;border-radius:50%;background:linear-gradient(140deg,#4ADE80,#16A34A);display:grid;place-items:center;animation:pop .5s ease}
.done .tick svg{width:42px;height:42px;stroke:#fff}
@keyframes pop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
.done h2{margin:2px 0 0;font-size:27px;font-weight:800}
.done .amt{font-size:40px;font-weight:800;color:var(--blue);letter-spacing:-1px}
.steps{display:grid;gap:0}
.step{display:flex;gap:12px;align-items:flex-start;position:relative;padding-bottom:16px}
.step:last-child{padding-bottom:0}
.step .dot{width:26px;height:26px;border-radius:50%;background:#E2F6EA;display:grid;place-items:center;flex:none;z-index:1;transition:.3s}
.step.on .dot{background:var(--green)}
.step .dot svg{width:15px;height:15px;stroke:var(--green-d)}
.step.on .dot svg{stroke:#fff}
.step::before{content:"";position:absolute;left:13px;top:22px;bottom:0;width:2px;background:var(--line)}
.step:last-child::before{display:none}
.step.on::before{background:#BFEBD2}
.step .s-t{font-size:16px;font-weight:700}
.step .s-d{font-size:12.5px;color:var(--muted);margin-top:2px}
.step .s-time{margin-left:auto;font-size:12.5px;color:var(--muted)}
.chain{background:#EDF3FB;border-radius:16px;padding:14px}
.chain .hd{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.chain .hd svg{width:22px;height:22px;stroke:var(--blue)}
.chain .hd b{font-size:17px}
.chain .hd .r{margin-left:auto;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px}
.chain .hd .r svg{width:13px;height:13px;stroke:var(--muted)}
.chain .kv{border-bottom:1px dashed #D6E2F2}
.chain .kv .k{font-size:13px}
.chain .kv .v{font-size:13px;font-weight:600}

/* ---------- 6. 青年模式 ---------- */
.y-head{display:flex;align-items:flex-start;gap:10px}
.y-head h2{margin:0;font-size:30px;font-weight:800}
.y-head p{margin:6px 0 0;font-size:13.5px;color:var(--muted)}
.y-head .robot{width:86px;height:78px;object-fit:contain;margin:-6px 0 0 auto;
  -webkit-mask-image:radial-gradient(ellipse at 52% 55%,#000 52%,transparent 76%);
  mask-image:radial-gradient(ellipse at 52% 55%,#000 52%,transparent 76%)}
.health{display:flex;gap:12px;align-items:center}
.health .g-ring{position:relative;width:116px;height:116px;flex:none}
.health .g-ring .val{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.health .g-ring .val b{font-size:34px;color:var(--green-d);display:block;line-height:1}
.health .g-ring .val span{font-size:12px;color:var(--green-d);font-weight:700}
.health .g-ring .val em{font-size:11px;color:var(--muted);font-style:normal;display:block;margin-top:3px}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.metrics div{text-align:center}
.metrics .l{font-size:11.5px;color:var(--muted)}
.metrics .n{font-size:15px;font-weight:800;margin-top:4px}
.todo{display:flex;align-items:center;gap:11px;background:#fff;border-radius:var(--r);padding:14px;box-shadow:var(--shadow);cursor:pointer;border:0;font-family:var(--font);width:100%;text-align:left}
.todo b{font-size:15px;color:var(--ink)}
.todo em{font-style:normal;color:var(--red);font-weight:800;font-size:18px}
.todo span{font-size:12px;color:var(--muted);display:block;margin-top:2px}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.feat button{border:0;border-radius:var(--r);padding:12px 8px;font-family:var(--font);cursor:pointer;display:grid;gap:7px;justify-items:center;text-align:center}
.feat img{width:66px;height:52px;object-fit:contain}
.feat b{font-size:14px}
.feat span{font-size:10.5px;opacity:.8}
.feat .go{border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700;color:#fff;display:flex;align-items:center;gap:3px}
.feat .f1{background:#FFF7E8}.feat .f1 b{color:#8A5A00}.feat .f1 .go{background:#F5A623}
.feat .f2{background:#EAF3FF}.feat .f2 b{color:#124E9E}.feat .f2 .go{background:var(--blue)}
.feat .f3{background:#F4EEFF}.feat .f3 b{color:#5B3AA8}.feat .f3 .go{background:#8B6BD9}
.dyn .two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.dyn .two div{background:var(--blue-ll);border-radius:14px;padding:11px}
.dyn .lbl{font-size:11.5px;color:var(--muted)}
.dyn .num{font-size:19px;font-weight:800;margin-top:4px}
.dyn .dt{font-size:11.5px;margin-top:3px}
.up{color:var(--red)}.down{color:var(--green-d)}
.progress{margin-top:12px}
.progress .bar{height:9px;border-radius:9px;background:#E7EDF6;overflow:hidden;margin-top:7px}
.progress .bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#34D399,#12A85A);width:0;transition:width 1.1s ease}
.tabbar{display:flex;justify-content:space-around;background:#fff;border-top:1px solid var(--line);padding:9px 0 4px;margin:auto -18px -20px;position:sticky;bottom:-20px}
.tabbar button{border:0;background:none;font-family:var(--font);font-size:10.5px;color:var(--muted);display:grid;gap:4px;justify-items:center;cursor:pointer;padding:0 10px}
.tabbar button.on{color:var(--blue);font-weight:700}
.tabbar svg{width:22px;height:22px;stroke:currentColor}

/* ---------- 7. 家庭协同中心 ---------- */
.f-head{display:flex;align-items:flex-start;justify-content:space-between}
.f-head h2{margin:0;font-size:27px;font-weight:800}
.f-head p{margin:5px 0 0;font-size:12.5px;color:var(--muted)}
.chain-badge{display:flex;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:7px 11px;font-size:11.5px;font-weight:700;color:var(--blue-d);box-shadow:var(--shadow)}
.chain-badge i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(34,197,94,.18)}
.graph{position:relative;height:308px;padding:0}
.graph .gl{position:absolute;background:#84B4FF;border-radius:3px}
.graph .gl.v1{left:50%;margin-left:-2.5px;top:120px;width:5px;height:48px;background:#2B7FFF}
.graph .gl.h1{left:16.7%;right:16.7%;top:166px;height:3px}
.graph .gl.v2{left:16.7%;margin-left:-2.5px;top:166px;width:5px;height:22px;background:#2B7FFF}
.graph .gl.v3{left:50%;margin-left:-1.75px;top:166px;width:3.5px;height:22px}
.graph .gl.v4{left:83.3%;margin-left:-1.25px;top:166px;width:2.5px;height:22px;background:#C9DCF7}
.node{position:absolute;transform:translateX(-50%);width:120px;display:grid;justify-items:center;gap:3px;text-align:center}
.node img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#fff;border:2px solid var(--blue-l)}
.node.host img{width:62px;height:62px;border-color:var(--blue)}
.node b{font-size:12.5px}
.node span{font-size:10.5px;color:var(--muted)}
.node .perm{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--blue-l);color:var(--blue-d)}
.node .perm.p2{background:#EEF6FF;color:#3B7FD4}
.node .perm.p3{background:#F1F5F9;color:#64748B}
.glines{position:absolute;inset:0;pointer-events:none}
.rec{display:grid;grid-template-columns:88px 1fr 60px 66px;gap:6px;font-size:11px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}
.rec:last-child{border-bottom:0}
.rec .h{color:var(--blue-d);font-family:ui-monospace,Menlo,monospace;font-size:10.5px}
.rec .res{display:flex;align-items:center;gap:4px;font-weight:700;font-size:11px}
.rec .res.ok{color:var(--green-d)}.rec .res.no{color:var(--red)}
.rec .res svg{width:13px;height:13px}
.rec.new{animation:hl 1.4s ease}
@keyframes hl{from{background:#E7F8EE}to{background:transparent}}
.switch{width:46px;height:27px;border-radius:999px;background:#CBD5E1;position:relative;border:0;cursor:pointer;transition:.22s;flex:none}
.switch i{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:.22s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.switch.on{background:var(--blue)}
.switch.on i{left:22px}
.perm-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}
.perm-row:last-child{border-bottom:0}
.perm-row .txt b{font-size:14.5px;display:block}
.perm-row .txt span{font-size:11.5px;color:var(--muted)}

/* ---------- 8. AI 引擎 ---------- */
#engine{background:linear-gradient(160deg,#0E1526,#16233D 55%,#0C1A2C);color:#EAF2FF;gap:11px}
.tech-grid{background-image:linear-gradient(rgba(90,150,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(90,150,255,.07) 1px,transparent 1px);background-size:26px 26px}
.e-head h2{margin:0;font-size:27px;font-weight:800;background:linear-gradient(90deg,#7FB6FF,#DCE9FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.e-head p{margin:6px 0 0;font-size:12.5px;color:#9FB6D6}
.mini{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}
.m-card{border-radius:16px;padding:10px;border:1px solid rgba(120,170,255,.25);background:rgba(255,255,255,.04)}
.m-card.senior{background:linear-gradient(170deg,#2A2113,#141210)}
.m-card b{font-size:12.5px;display:block;margin-bottom:6px}
.m-card.senior b{color:var(--gold)}
.m-card.youth b{color:#8FB6FF}
.m-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.m-grid i{display:block;height:26px;border-radius:7px;background:rgba(255,255,255,.09)}
.m-card.senior .m-grid i{background:rgba(255,154,46,.16)}
.m-card .m-mic{height:34px;border-radius:999px;margin-top:6px;background:linear-gradient(135deg,#FFB257,#FF8A1F)}
.arrow-ms{display:grid;justify-items:center;gap:3px;color:#7FB6FF}
.arrow-ms b{font-size:13px;font-weight:800;color:#BFD8FF}
.arrow-ms svg{width:26px;height:26px;stroke:#7FB6FF;animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateX(-3px)}50%{transform:translateX(3px)}}
.fbar{display:grid;gap:9px}
.fbar .fr{display:grid;grid-template-columns:18px 86px 1fr 38px;gap:9px;align-items:center;font-size:12.5px}
.fbar .fr svg{width:17px;height:17px;stroke:#7FB6FF}
.fbar .tr{height:8px;border-radius:8px;background:rgba(255,255,255,.09);overflow:hidden}
.fbar .tr i{display:block;height:100%;width:0;border-radius:8px;background:linear-gradient(90deg,#2B7FFF,#8FD0FF);transition:width 1s cubic-bezier(.3,.9,.3,1)}
.fbar .pc{color:#BFD8FF;font-weight:700;font-size:12px}
.kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.kpi div{border:1px solid rgba(120,170,255,.28);border-radius:14px;padding:11px 9px;background:rgba(255,255,255,.04)}
.kpi div.hot{border-color:rgba(255,154,46,.5);background:rgba(255,154,46,.09)}
.kpi .l{font-size:11px;color:#9FB6D6;display:flex;align-items:center;gap:5px}
.kpi .l svg{width:14px;height:14px;stroke:#7FB6FF}
.kpi .n{font-size:23px;font-weight:800;margin-top:7px;letter-spacing:-.5px}
.kpi .hot .n{color:var(--gold)}
.kpi .d{font-size:10px;color:#8FA6C4;margin-top:5px;line-height:1.45}

/* ---------- 演示导航 ---------- */
.dock{position:absolute;right:12px;bottom:12px;z-index:60;font-family:var(--font)}
.dock .fab{
  width:48px;height:48px;border-radius:50%;border:0;background:rgba(15,30,55,.88);color:#fff;cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.35);display:grid;place-items:center;backdrop-filter:blur(6px)
}
.dock .fab svg{width:22px;height:22px;stroke:#fff}
.dock .panel{
  position:absolute;right:0;bottom:58px;width:210px;background:rgba(15,30,55,.97);border:1px solid rgba(120,170,255,.3);
  border-radius:16px;padding:8px;display:none;box-shadow:0 20px 50px rgba(0,0,0,.45)
}
.dock.open .panel{display:block}
.dock .panel b{display:block;font-size:11px;color:#8FA6C4;padding:6px 8px}
.dock .panel button{
  width:100%;text-align:left;border:0;background:none;color:#DCE9FF;font-family:var(--font);font-size:13.5px;
  padding:9px 10px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:8px
}
.dock .panel button:hover{background:rgba(120,170,255,.16)}
.dock .panel button.on{background:rgba(43,127,255,.28);font-weight:700}
.dock .panel button em{font-style:normal;font-size:11px;color:#8FA6C4;margin-left:auto}

/* 访问码 */
.gate{position:absolute;inset:0;z-index:80;background:linear-gradient(170deg,#0E1B33,#132844);display:none;flex-direction:column;justify-content:center;padding:28px;color:#fff;gap:14px}
.gate.on{display:flex}
.gate h2{margin:0;font-size:24px;font-weight:800}
.gate p{margin:0;font-size:13px;color:#A9C0DE;line-height:1.6}
.gate input{width:100%;padding:15px;border-radius:14px;border:1px solid rgba(140,180,255,.35);background:rgba(255,255,255,.08);color:#fff;font-size:17px;font-family:var(--font);letter-spacing:2px;text-align:center}
.gate .err{color:#FF9A9A;font-size:12.5px;min-height:16px}

/* ================= 价值导览（欢迎页） ================= */
.deck{padding:0;background:
  radial-gradient(520px 320px at 50% -8%,#D9E9FF 0%,rgba(255,255,255,0) 72%),var(--bg);overflow:hidden;transition:background .5s ease}
.deck.dark-slide{background:linear-gradient(165deg,#0D1526,#16233D 60%,#0B1728)}
.deck-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;z-index:6}
.brand-mini{display:flex;align-items:center;gap:8px}
.brand-mini img{width:26px;height:26px;object-fit:contain}
.brand-mini span{font-size:14px;font-weight:800;letter-spacing:1px}
.deck.dark-slide .brand-mini span{color:#EAF2FF}
.skip{border:0;background:rgba(15,35,70,.06);color:#5B6C87;font-family:var(--font);font-size:12.5px;font-weight:700;padding:7px 12px;border-radius:999px;cursor:pointer}
.deck.dark-slide .skip{background:rgba(255,255,255,.12);color:#C7DAF5}
.deck-view{position:absolute;inset:0;overflow:hidden;touch-action:pan-y}
.deck-track{display:flex;height:100%;transition:transform .42s cubic-bezier(.22,.8,.2,1);will-change:transform}
.slide{flex:0 0 100%;height:100%;padding:62px 22px 104px;display:flex;flex-direction:column;justify-content:center;gap:13px;overflow-y:auto;scrollbar-width:none}
.slide::-webkit-scrollbar{display:none}
.slide .kicker{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;letter-spacing:2px;color:var(--blue);background:var(--blue-l);padding:5px 11px;border-radius:999px;align-self:flex-start}
.deck.dark-slide .slide .kicker{color:#8FD0FF;background:rgba(43,127,255,.18)}
.slide h2{margin:0;font-size:27px;line-height:1.35;font-weight:800;letter-spacing:.3px}
.slide h2 em{font-style:normal;color:var(--blue)}
.deck.dark-slide .slide h2{color:#F2F7FF}
.deck.dark-slide .slide h2 em{color:#7FB6FF}
.slide .lead{margin:0;font-size:14px;line-height:1.75;color:var(--muted)}
.deck.dark-slide .slide .lead{color:#A9C0DE}
.slide .src{margin-top:2px;font-size:10.5px;color:#9AAEC9;line-height:1.6}
.deck.dark-slide .slide .src{color:#7F96B4}
.d-cards{display:grid;gap:10px}
.d-card{background:#fff;border-radius:18px;padding:14px 15px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:center}
.deck.dark-slide .d-card{background:rgba(255,255,255,.05);border:1px solid rgba(120,170,255,.22);box-shadow:none}
.d-card .n{font-size:24px;font-weight:800;color:var(--blue);letter-spacing:-.5px;min-width:84px}
.d-card .n.gold{color:var(--gold)}
.deck.dark-slide .d-card .n{color:#7FB6FF}
.deck.dark-slide .d-card .n.gold{color:var(--gold)}
.d-card .t b{display:block;font-size:14px;font-weight:700}
.deck.dark-slide .d-card .t b{color:#EAF2FF}
.d-card .t span{font-size:11.5px;color:var(--muted);line-height:1.5;display:block;margin-top:3px}
.deck.dark-slide .d-card .t span{color:#9FB6D6}
.hub-card{background:linear-gradient(150deg,#1E3A6B,#0F2547);color:#fff;border-radius:20px;padding:16px;box-shadow:0 14px 34px rgba(15,37,71,.28)}
.hub-card b{font-size:16.5px;display:block}
.hub-card span{font-size:12px;color:#B8CCE8;display:block;margin-top:5px;line-height:1.6}
.wing{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wing div{border-radius:18px;padding:14px;background:#fff;box-shadow:var(--shadow)}
.wing div.gold{background:linear-gradient(160deg,#2A2113,#141210);color:#fff}
.wing b{font-size:14.5px;display:block}
.wing div.gold b{color:var(--gold)}
.wing span{font-size:11.5px;color:var(--muted);display:block;margin-top:6px;line-height:1.6}
.wing div.gold span{color:#CDB89A}
.loop{display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(43,127,255,.1);border:1px dashed rgba(43,127,255,.45);border-radius:14px;padding:11px;font-size:13.5px;font-weight:800;color:var(--blue-d)}
.deck.dark-slide .loop{background:rgba(127,182,255,.12);border-color:rgba(127,182,255,.4);color:#BFD8FF}
.cmp{display:grid;gap:9px}
.cmp-row{display:grid;grid-template-columns:82px 1fr auto 1fr;gap:8px;align-items:center;background:#fff;border-radius:14px;padding:11px 13px;box-shadow:var(--shadow);font-size:11.5px}
.cmp-row .k{color:var(--muted);font-weight:700}
.cmp-row .old{color:#94A3B8;text-align:right}
.cmp-row .arw{color:#CBD5E1}
.cmp-row .new{color:var(--blue-d);font-weight:700}
.path{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);justify-content:center}
.path b{background:var(--blue-l);color:var(--blue-d);padding:5px 9px;border-radius:999px;font-size:11px}
.role-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.role-btns button{border:0;border-radius:16px;padding:15px 10px;font-family:var(--font);font-size:15px;font-weight:800;cursor:pointer;display:grid;gap:5px;justify-items:center;color:#fff}
.role-btns .r1{background:linear-gradient(140deg,#FFB257,#FF8A1F);color:#3A2408;box-shadow:0 10px 24px rgba(255,154,46,.35)}
.role-btns .r2{background:linear-gradient(140deg,#4E93FF,#1D5FD9);box-shadow:0 10px 24px rgba(43,127,255,.35)}
.role-btns span{font-size:10.5px;font-weight:600;opacity:.85}
.deck-bottom{position:absolute;left:0;right:0;bottom:0;padding:10px 18px 22px;display:grid;gap:10px;justify-items:center;z-index:6;
  background:linear-gradient(180deg,rgba(245,248,255,0),rgba(245,248,255,.86) 45%,rgba(245,248,255,.98))}
.deck.dark-slide .deck-bottom{background:linear-gradient(180deg,rgba(11,23,40,0),rgba(11,23,40,.86) 45%,rgba(11,23,40,.98))}
.dots{display:flex;gap:7px}
.dots i{width:7px;height:7px;border-radius:50%;background:#C7D5E8;transition:.25s;cursor:pointer}
.dots i.on{width:20px;border-radius:999px;background:var(--blue)}
.deck.dark-slide .dots i{background:rgba(255,255,255,.28)}
.deck.dark-slide .dots i.on{background:#7FB6FF}
.deck-hint{font-size:11.5px;color:#93A3B8;display:flex;align-items:center;gap:6px}
.deck.dark-slide .deck-hint{color:#8FA6C4}
.swipe-hand{width:26px;height:16px;position:relative}
.swipe-hand::before{content:"";position:absolute;inset:0;border-radius:999px;background:currentColor;opacity:.25}
.swipe-hand::after{content:"";position:absolute;top:3px;left:3px;width:10px;height:10px;border-radius:50%;background:currentColor;animation:sw 2s ease-in-out infinite}
@keyframes sw{0%,100%{transform:translateX(0)}50%{transform:translateX(10px)}}
.ghost-btn{border:1.5px solid var(--blue-l);background:#fff;color:var(--blue-d);font-family:var(--font);font-size:13.5px;font-weight:700;border-radius:14px;padding:13px;cursor:pointer;width:100%}
.deck.dark-slide .ghost-btn{background:transparent;border-color:rgba(127,182,255,.35);color:#BFD8FF}
.primary-btn{border:0;background:var(--blue);color:#fff;font-family:var(--font);font-size:14.5px;font-weight:800;border-radius:14px;padding:14px;cursor:pointer;width:100%;box-shadow:0 10px 24px rgba(43,127,255,.32);display:flex;align-items:center;justify-content:center;gap:8px}

/* ================= 流程进度条 ================= */
.steps-bar{position:sticky;top:0;z-index:7;display:flex;gap:5px;padding:7px;margin:-4px 0 2px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-radius:14px;box-shadow:0 4px 14px rgba(20,45,90,.06)}
.steps-bar span{flex:1;font-size:10.5px;font-weight:700;text-align:center;color:#93A3B8;padding:5px 2px;border-radius:9px;white-space:nowrap}
.steps-bar span.on{background:var(--blue);color:#fff}
.steps-bar span.done{color:var(--green-d)}
.theme-dark .steps-bar{background:rgba(255,255,255,.08);box-shadow:none}
.theme-dark .steps-bar span{color:#8C8175}
.theme-dark .steps-bar span.done{color:#8DF3B4}
.theme-dark .steps-bar span.on{background:var(--gold);color:#3A2408}

/* ================= 实时出块 ================= */
.live{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted)}
.live i{width:7px;height:7px;border-radius:50%;background:var(--green);animation:blink 1.5s infinite}
@keyframes blink{50%{opacity:.25}}
.blocklist{display:grid;gap:6px;margin-top:9px}
.blockrow{display:grid;grid-template-columns:74px 1fr auto;gap:8px;align-items:center;font-size:11px;padding:7px 10px;background:#fff;border:1px solid var(--line);border-radius:11px;animation:bin .45s ease}
@keyframes bin{from{opacity:0;transform:translateY(-7px)}}
.blockrow b{color:var(--blue-d);font-weight:700}
.blockrow em{font-style:normal;color:#94A3B8;font-size:10.5px}
.mini-chart{display:flex;align-items:flex-end;gap:6px;height:54px;margin-top:10px}
.mini-chart i{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#9FD4FF,#2B7FFF);height:0;transition:height .9s cubic-bezier(.3,.9,.3,1)}
.mini-chart i.hot{background:linear-gradient(180deg,#FFD08A,#FF9A2E)}
.mini-chart i.down{background:linear-gradient(180deg,#B7E8C9,#22C55E)}

/* ================= AI 讲解员 ================= */
.assist{position:absolute;left:12px;bottom:12px;z-index:62}
.assist-fab{width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;color:#fff;display:grid;place-items:center;
  background:linear-gradient(140deg,#4E93FF,#1350C8);box-shadow:0 10px 26px rgba(43,127,255,.45)}
.assist-fab svg{width:22px;height:22px;stroke:#fff}
.assist-fab::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(78,147,255,.5);animation:pulse 2.4s infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(1.45);opacity:0}100%{opacity:0}}
.assist-panel{position:absolute;left:0;bottom:58px;width:min(340px,86vw);max-height:66vh;background:#fff;border-radius:20px;
  box-shadow:0 26px 60px rgba(12,30,60,.32);display:none;flex-direction:column;overflow:hidden}
.assist.open .assist-panel{display:flex}
.assist-hd{display:flex;align-items:center;gap:9px;padding:13px 14px;background:linear-gradient(135deg,#1D5FD9,#2B7FFF);color:#fff}
.assist-hd b{font-size:14.5px}
.assist-hd span{font-size:10.5px;opacity:.85;display:block;margin-top:2px}
.assist-hd button{margin-left:auto;border:0;background:rgba(255,255,255,.18);color:#fff;width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:15px;line-height:1}
.assist-body{flex:1;overflow-y:auto;padding:13px;display:grid;gap:10px;align-content:start;background:#F7FAFF;scrollbar-width:none}
.assist-body::-webkit-scrollbar{display:none}
.amsg{max-width:88%;font-size:12.5px;line-height:1.7;padding:10px 12px;border-radius:14px}
.amsg.me{margin-left:auto;background:var(--blue);color:#fff;border-bottom-right-radius:5px;font-weight:600}
.amsg.bot{background:#fff;border:1px solid var(--line);color:#334155;border-bottom-left-radius:5px;box-shadow:0 3px 10px rgba(20,45,90,.05)}
.assist-qs{padding:10px 12px 13px;display:flex;flex-wrap:wrap;gap:7px;border-top:1px solid var(--line);background:#fff;max-height:132px;overflow-y:auto}
.assist-qs button{border:1px solid var(--blue-l);background:var(--blue-ll);color:var(--blue-d);font-family:var(--font);font-size:11.5px;
  padding:7px 10px;border-radius:999px;cursor:pointer;text-align:left}
.assist-qs button:active{background:var(--blue-l)}

/* ================= 自动导览字幕 ================= */
.subtitle{position:absolute;left:14px;right:14px;bottom:16px;z-index:72;background:rgba(10,22,40,.95);color:#fff;border-radius:16px;
  padding:12px 14px;display:flex;gap:11px;align-items:flex-start;box-shadow:0 20px 44px rgba(0,0,0,.45);
  transform:translateY(180%);transition:transform .38s cubic-bezier(.2,.9,.2,1)}
.subtitle.show{transform:none}
.subtitle .dot{width:9px;height:9px;border-radius:50%;background:var(--red);margin-top:6px;flex:none;animation:blink 1.3s infinite}
.subtitle b{font-size:11px;color:#8FD0FF;display:block;margin-bottom:3px;letter-spacing:1px}
.subtitle p{margin:0;font-size:13px;line-height:1.65;color:#EAF2FF}
.subtitle button{margin-left:auto;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;font-family:var(--font);
  font-size:11px;padding:6px 10px;border-radius:999px;cursor:pointer;flex:none}
body.touring .dock,body.touring .assist{display:none}
.phone.on-deck .dock{display:none}
