/* ============ 口口妙 BI 驾驶舱 v5.1 · 展厅式大屏（聚光+抽屉） ============ */
* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --bg0:#050a18; --panel:rgba(13,30,60,.45);
  --line:rgba(80,170,255,.14); --line2:rgba(80,170,255,.4);
  --cyan:#3fd8ff; --blue:#4f8dff; --violet:#9d6bff; --gold:#ffd166;
  --red:#ff5c6c; --green:#2ee6a8; --yellow:#ffb340;
  --txt:#d7eaff; --dim:#647f9f;
}
html,body { height:100%; background:var(--bg0); overflow:hidden;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif; color:var(--txt); }

#stage { position:absolute; left:50%; top:50%; width:1920px; height:1080px;
  transform-origin:center center; display:flex; flex-direction:column;
  background:linear-gradient(160deg,#071026 0%,#050a18 45%,#0a0f24 100%); overflow:hidden; }
.aurora { position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none; opacity:.5; }
.a1 { width:1100px; height:480px; left:40%; top:-190px; transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(53,108,255,.5),transparent 70%); animation:drift 16s ease-in-out infinite alternate; }
.a2 { width:900px; height:420px; left:6%; bottom:-200px;
  background:radial-gradient(closest-side,rgba(157,107,255,.32),transparent 70%); animation:drift 21s ease-in-out infinite alternate-reverse; }
@keyframes drift { to { transform:translateX(-50%) translateY(46px) scale(1.12); } }
#stage::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background:radial-gradient(ellipse at center, transparent 58%, rgba(2,5,14,.55) 100%); }

/* ============ 顶栏 ============ */
.hd { position:relative; z-index:2; height:80px; display:flex; align-items:center; padding:0 40px; flex:none; }
.hd::after { content:""; position:absolute; left:6%; right:6%; bottom:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(63,216,255,.55),rgba(157,107,255,.5),transparent); }
.hd-left { width:380px; }
.clock { font-size:28px; font-weight:700; letter-spacing:2px; color:#fff;
  text-shadow:0 0 20px rgba(63,216,255,.65); font-variant-numeric:tabular-nums; }
.date { font-size:12px; color:var(--dim); margin-top:2px; letter-spacing:1px; }
.hd-title { flex:1; text-align:center; }
.title-glow { font-size:36px; font-weight:800; letter-spacing:8px;
  background:linear-gradient(180deg,#fff 25%,#9fd8ff 60%,#5f9dff);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 26px rgba(80,160,255,.4)); }
.title-sub { font-size:13px; letter-spacing:5px; color:rgba(255,209,102,.75); margin-top:4px; }
.hd-right { width:380px; display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.hd-mode { font-size:11.5px; color:var(--green); letter-spacing:1px; display:flex; align-items:center; gap:7px;
  border:1px solid rgba(46,230,168,.35); border-radius:14px; padding:3px 12px; background:rgba(46,230,168,.07); }
.mode-dot { width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); }
.hd-meta { font-size:11.5px; color:var(--dim); display:flex; align-items:center; gap:8px; }
.fs-btn { cursor:pointer; margin-left:10px; font-size:11px; color:#9fc7ef; font-family:inherit; padding:4px 12px; border-radius:10px;
  background:rgba(30,60,110,.45); border:1px solid rgba(80,170,255,.3); letter-spacing:1px; transition:.25s; }
.fs-btn:hover { color:#fff; border-color:var(--cyan); box-shadow:0 0 14px rgba(63,216,255,.3); }
.dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.dot.live { background:var(--cyan); box-shadow:0 0 10px var(--cyan); animation:pulse 1.6s infinite; }
@keyframes pulse { 50% { opacity:.3; } }

/* ============ KPI ============ */
.kpi-row { position:relative; z-index:2; flex:none; display:grid; grid-template-columns:repeat(8,1fr); gap:16px; padding:8px 40px 4px; transition:opacity .5s; }
.kpi { position:relative; padding:8px 14px 10px; border-radius:10px;
  background:linear-gradient(180deg,rgba(28,58,110,.4),rgba(10,24,50,.5));
  border:1px solid var(--line); backdrop-filter:blur(6px); overflow:hidden; }
.kpi::before { content:""; position:absolute; left:14px; right:14px; top:0; height:2px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent); opacity:.65; }
.kpi-v { font-style:normal; font-size:27px; font-weight:800; color:#fff; font-variant-numeric:tabular-nums;
  text-shadow:0 0 14px rgba(80,200,255,.5); }
.kpi-u { font-size:11px; color:var(--dim); margin-left:3px; }
.kpi-k { display:block; font-style:normal; font-size:12.5px; letter-spacing:1px; margin-top:1px; }
.kpi-yoy { display:block; font-style:normal; font-size:10.5px; margin-top:1px; }
.kpi-yoy.up { color:var(--green); } .kpi-yoy.down { color:var(--red); } .kpi-yoy.flat { color:var(--dim); }
.kpi.warn { border-color:rgba(255,92,108,.45); }
.kpi.warn::before { background:linear-gradient(90deg,transparent,var(--red),transparent); }
.kpi.warn .kpi-v { color:#ff97a2; text-shadow:0 0 14px rgba(255,92,108,.55); }

/* ============ 主体三栏 ============ */
.page { position:relative; z-index:2; display:flex; flex:1; min-height:0; gap:14px; padding:6px 40px; }
.col { flex:1; display:flex; flex-direction:column; gap:13px; min-width:0; overflow:visible; }
.col-c { flex:1.7; }

.panel { position:relative; display:flex; flex-direction:column; min-height:0;
  border-radius:12px; background:var(--panel); border:1px solid var(--line);
  backdrop-filter:blur(8px); box-shadow:0 6px 24px rgba(2,8,24,.4), inset 0 1px 0 rgba(140,200,255,.08); }
.panel::before { content:""; position:absolute; left:-1px; top:16px; width:2px; height:18px;
  background:linear-gradient(var(--cyan),transparent); border-radius:2px; }
.p-hd { flex:none; display:flex; align-items:baseline; gap:9px; padding:10px 14px 3px; }
.p-hd h3 { font-size:15px; font-weight:600; letter-spacing:.5px; color:#eaf5ff; white-space:nowrap; }
.p-hd h3::before { content:"▎"; color:var(--cyan); }
.p-src { font-style:normal; font-size:9.5px; color:var(--dim); border:1px solid var(--line); padding:1px 6px; border-radius:8px; white-space:nowrap; }
.p-badge { margin-left:auto; font-size:10.5px; font-weight:400; color:var(--dim); display:flex; align-items:center; gap:3px; white-space:nowrap; }
.p-badge i { font-style:normal; color:var(--txt); font-weight:700; }
.p-badge.blink { color:var(--red); animation:pulse 1.2s infinite; font-weight:700; letter-spacing:1px; }
.p-badge.ai { color:var(--violet); text-shadow:0 0 12px rgba(157,107,255,.8); font-weight:700; letter-spacing:2px; }
.lg { width:8px; height:8px; display:inline-block; margin-left:7px; border-radius:2px; }
.chart { flex:1; min-height:0; }
.twin-panel .chart { cursor:grab; } .twin-panel .chart:active { cursor:grabbing; }

/* ============ v5.1 聚光：变暗 + FLIP 放大 ============ */
#stage.focus .page .panel:not(.spot) { opacity:.1; filter:saturate(.25) blur(1.5px); pointer-events:none; transition:opacity .5s, filter .5s; }
#stage.focus .kpi-row { opacity:.22; transition:opacity .5s; }
.panel.spot { z-index:20; border-color:rgba(63,216,255,.6) !important; opacity:1 !important; filter:none !important;
  backdrop-filter:none; background:rgba(11,27,54,.92);
  box-shadow:0 0 60px rgba(50,140,255,.4), 0 24px 80px rgba(2,8,26,.7), inset 0 0 40px rgba(50,140,255,.14) !important; }
.panel.spot::before { height:100%; width:3px; opacity:1; background:linear-gradient(var(--cyan),var(--violet)); }
.panel.spot .p-hd h3 { font-size:15px; }
.panel.flip { transition:transform .65s cubic-bezier(.25,.7,.25,1); will-change:transform; }

/* 聚光回答卡 */
.answer-card { position:absolute; left:50%; bottom:52px; transform:translateX(-50%) translateY(20px); z-index:26;
  width:960px; display:none; flex-direction:column; gap:10px; padding:16px 22px 13px; border-radius:18px;
  background:linear-gradient(165deg,rgba(28,58,115,.92),rgba(10,22,48,.94)); border:1px solid rgba(157,107,255,.4);
  backdrop-filter:blur(14px); box-shadow:0 24px 70px rgba(0,8,26,.85), 0 0 34px rgba(157,107,255,.18); opacity:0; }
.answer-card.show { display:flex; animation:cardin .45s cubic-bezier(.2,.9,.3,1.15) .35s forwards; }
@keyframes cardin { to { opacity:1; transform:translateX(-50%) translateY(0); } }
.ac-hd { display:flex; align-items:center; gap:12px; }
.ac-avatar { width:36px; height:36px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  font-size:18px; color:#fff; background:linear-gradient(135deg,#9d6bff,#4f5dff); box-shadow:0 0 18px rgba(157,107,255,.55); flex:none; }
.ac-hd b { color:#eaf5ff; font-size:14px; letter-spacing:1px; display:block; }
.ac-hd i { font-style:normal; color:var(--dim); font-size:12px; display:block; margin-top:2px; }
.ac-hd i::before { content:"问：“"; } .ac-hd i::after { content:"”"; }
.ac-close { margin-left:auto; cursor:pointer; font-size:11.5px; color:#9fc7ef; padding:5px 12px; border-radius:9px;
  background:rgba(30,60,110,.5); border:1px solid rgba(80,170,255,.25); transition:.25s; }
.ac-close:hover { color:#fff; border-color:var(--cyan); }
.ac-body { font-size:15px; line-height:1.7; color:#e6f2ff; min-height:52px; }
.ac-cursor { display:inline-block; width:9px; height:15px; margin-left:2px; vertical-align:-2px;
  background:var(--violet); animation:pulse .8s infinite; }
.ac-foot { display:flex; align-items:center; }
.ac-src { font-style:normal; font-size:10.5px; color:#7fa8d8; border:1px solid rgba(80,170,255,.3); padding:2px 9px; border-radius:8px; }
.ac-src::before { content:"⇣ 溯源 · "; color:var(--green); }
.ac-tip { font-style:normal; margin-left:auto; font-size:10.5px; color:var(--dim); letter-spacing:1px; }

/* ============ 工单 ============ */
.wo-list { flex:1; overflow:hidden; padding:2px 14px 8px; display:flex; flex-direction:column; justify-content:space-around; }
.wo { font-size:12.5px; }
.wo-top { display:flex; justify-content:space-between; margin-bottom:4px; }
.wo-name { color:#eaf5ff; } .wo-meta { color:var(--dim); font-size:10.5px; }
.wo-tag { font-size:10.5px; padding:0 6px; border-radius:8px; margin-left:6px; font-weight:400; }
.wo-tag.run { color:var(--cyan); border:1px solid rgba(63,216,255,.45); }
.wo-tag.wait { color:var(--yellow); border:1px solid rgba(255,179,64,.45); }
.wo-tag.idle { color:var(--dim); border:1px solid var(--line); }
.wo-tag.done { color:var(--green); border:1px solid rgba(46,230,168,.45); }
.wo-bar { height:5px; border-radius:3px; background:rgba(80,160,255,.12); position:relative; overflow:hidden; }
.wo-bar i { position:absolute; left:0; top:0; bottom:0; border-radius:3px;
  background:linear-gradient(90deg,var(--blue),var(--cyan)); box-shadow:0 0 10px rgba(63,200,255,.6); }

/* ============ 事件流 ============ */
.event-list { flex:1; overflow:hidden; padding:2px 13px 8px; display:flex; flex-direction:column; gap:6px; }
.ev { display:flex; gap:8px; align-items:flex-start; font-size:12px; padding:6px 9px; border-radius:8px;
  background:rgba(10,26,52,.5); border:1px solid var(--line); border-left:3px solid var(--dim);
  animation:evin .55s cubic-bezier(.2,.9,.3,1.2); }
@keyframes evin { from { opacity:0; transform:translateY(-14px) scale(.98); } }
.ev.warn { border-left-color:var(--red); background:rgba(58,12,22,.4); }
.ev.qc { border-left-color:var(--green); } .ev.order { border-left-color:var(--cyan); }
.ev.move { border-left-color:var(--violet); } .ev.fix { border-left-color:var(--yellow); }
.ev time { color:var(--dim); font-variant-numeric:tabular-nums; flex:none; font-size:11px; margin-top:1px; }
.ev-tag { flex:none; font-size:9.5px; padding:1px 6px; border-radius:7px; font-weight:400; border:1px solid currentColor; }
.ev span { color:#d8ecff; line-height:1.35; }

/* ============ AI 洞察（左栏常驻卡） ============ */
.ai-strip { flex:1; display:flex; flex-direction:column; gap:5px; padding:2px 13px 8px; overflow:hidden; justify-content:flex-start; }
.ai-item { display:flex; gap:7px; align-items:flex-start; font-size:11.5px; padding:4px 9px; border-radius:8px;
  background:linear-gradient(90deg,rgba(157,107,255,.10),rgba(63,160,255,.05)); border:1px solid rgba(157,107,255,.2);
  animation:fadein .8s; }
@keyframes fadein { from { opacity:0; transform:translateY(6px);} }
.ai-chip { flex:none; width:16px; height:16px; border-radius:5px; display:flex; align-items:center; justify-content:center;
  font-size:9px; font-weight:700; color:#fff; margin-top:1px; }
.ai-chip.警 { background:linear-gradient(135deg,#ff5c6c,#c22856); }
.ai-chip.析 { background:linear-gradient(135deg,#9d6bff,#4f5dff); }
.ai-chip.规 { background:linear-gradient(135deg,#2ee6a8,#0f9d78); }
.ai-chip.报 { background:linear-gradient(135deg,#ffb340,#e07f2a); }
.ai-item p { line-height:1.35; color:#e2f0ff; }

/* ============ v5.1 · 唤醒把手 ============ */
.wake-handle { position:absolute; left:50%; bottom:42px; transform:translateX(-50%); z-index:28; cursor:pointer;
  display:flex; align-items:center; gap:9px; padding:9px 22px; border-radius:22px;
  font-size:13px; letter-spacing:1px; color:#dfe9ff; font-family:inherit;
  background:linear-gradient(135deg,rgba(60,80,180,.55),rgba(120,90,220,.45));
  border:1px solid rgba(157,107,255,.45); backdrop-filter:blur(8px);
  box-shadow:0 6px 26px rgba(40,50,140,.4); opacity:.85; transition:opacity .35s, transform .35s, box-shadow .35s; }
.wake-handle:hover { opacity:1; transform:translateX(-50%) translateY(-3px); box-shadow:0 10px 34px rgba(120,100,255,.55); }
.wake-handle .hk { font-style:normal; font-size:15px; margin-left:4px; }
.handle-dot { width:8px; height:8px; border-radius:50%; background:var(--cyan); box-shadow:0 0 12px var(--cyan); animation:pulse 1.8s infinite; }
body.bay-open .wake-handle, #stage.focus .wake-handle, body.theater-on .wake-handle { opacity:0; pointer-events:none; transform:translateX(-50%) translateY(14px); }

/* ============ v5.2 抽屉动态让位：打开时主内容区整体压缩，绝不遮工单 ============ */
body.bay-open #stage { padding-bottom: 196px; }

/* ============ v5.1 · 语音抽屉 ============ */
.bay-drawer { position:absolute; left:0; right:0; bottom:0; z-index:30; height:196px;
  display:flex; align-items:center; gap:28px; padding:0 44px 16px;
  transform:translateY(105%); transition:transform .55s cubic-bezier(.2,.8,.25,1);
  background:linear-gradient(180deg,rgba(7,15,34,.0),rgba(7,15,34,.92) 34%,rgba(5,10,24,.97)); }
.bay-drawer::before { content:""; position:absolute; left:8%; right:8%; top:14px; height:1px;
  background:linear-gradient(90deg,transparent,rgba(157,107,255,.45),transparent); }
body.bay-open .bay-drawer { transform:none; }
.bay-close { margin-left:auto; cursor:pointer; font-size:12px; color:#9fc7ef; padding:7px 16px; border-radius:11px;
  background:rgba(30,60,110,.4); border:1px solid rgba(80,170,255,.25); font-family:inherit; transition:.25s; flex:none; align-self:flex-start; margin-top:26px; }
.bay-close:hover { color:#fff; border-color:var(--cyan); }

/* 语音球 */
.orb { position:relative; width:104px; height:104px; flex:none; border:none; background:none; cursor:pointer; margin-top:22px; }
.orb-core { position:absolute; inset:14px; border-radius:50%; font-size:32px; color:#fff;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(circle at 35% 30%, #9d6bff, #3847c9 70%);
  box-shadow:0 0 34px rgba(140,110,255,.65), inset 0 0 18px rgba(255,255,255,.22); transition:.3s; }
.orb:hover .orb-core { transform:scale(1.06); }
.orb-ring { position:absolute; inset:0; border-radius:50%; border:1.5px solid rgba(157,107,255,.5); animation:oring 2.6s infinite; }
.orb-ring.r2 { animation-delay:1.3s; }
@keyframes oring { 0% { transform:scale(.72); opacity:.9; } 100% { transform:scale(1.18); opacity:0; } }
.orb.listening .orb-core { background:radial-gradient(circle at 35% 30%, #ff5c6c, #b01e35 70%); box-shadow:0 0 44px rgba(255,92,108,.8), inset 0 0 18px rgba(255,255,255,.25); animation:obreathe .8s infinite; }
@keyframes obreathe { 50% { transform:scale(1.05); } }

.bay-mid { flex:1; min-width:0; display:flex; flex-direction:column; gap:12px; margin-top:22px; }
.bay-state { font-size:14px; color:#9fc3ee; letter-spacing:1px; }
.q-rail { display:flex; gap:12px; }
.q-card { flex:1; cursor:pointer; text-align:left; min-height:52px; padding:9px 14px; border-radius:12px;
  font-size:14.5px; font-weight:600; letter-spacing:.5px; color:#c9e2ff; line-height:1.35; font-family:inherit;
  background:linear-gradient(180deg,rgba(30,62,118,.5),rgba(12,28,58,.55)); border:1px solid var(--line);
  transition:.25s; position:relative; overflow:hidden; }
.q-card::before { content:"✦ 问"; display:block; font-size:9.5px; font-weight:400; color:var(--violet); letter-spacing:2px; margin-bottom:2px; }
.q-card:hover { color:#fff; border-color:rgba(63,216,255,.55); transform:translateY(-2px); box-shadow:0 8px 26px rgba(40,90,200,.35); }
.q-card.hl { color:#fff; border-color:var(--cyan); background:linear-gradient(180deg,rgba(50,92,170,.6),rgba(16,36,76,.6));
  box-shadow:0 0 24px rgba(63,216,255,.35); }

/* ============ 剧场层（出口/兜底题专用） ============ */
.theater { position:absolute; inset:0; z-index:40; display:none; align-items:center; justify-content:center;
  background:radial-gradient(ellipse at 50% 42%, rgba(6,14,34,.86), rgba(2,5,14,.96));
  backdrop-filter:blur(3px); opacity:0; }
.theater.show { display:flex; animation:thin .55s cubic-bezier(.2,.8,.25,1) forwards; }
.theater.out { animation:tout .35s forwards; }
@keyframes thin { from { opacity:0; } to { opacity:1; } }
@keyframes tout { from { opacity:1; } to { opacity:0; } }
.th-stage { position:relative; width:1560px; height:880px; display:flex; flex-direction:column;
  transform:scale(.86); animation:zoomin .55s cubic-bezier(.2,.8,.25,1) forwards; }
@keyframes zoomin { from { transform:scale(.86); opacity:.2; } to { transform:scale(1); opacity:1; } }
.th-head { flex:none; text-align:center; padding:8px 0 18px; }
.th-q { display:inline-block; font-size:34px; font-weight:800; letter-spacing:3px; color:#fff;
  text-shadow:0 0 30px rgba(80,180,255,.55); }
.th-q::before { content:"问 "; color:var(--violet); font-size:22px; }
.th-q::after { content:" ？"; color:var(--violet); font-size:22px; }
.th-chart { flex:1; min-height:0; border-radius:20px; background:rgba(10,26,54,.55); border:1px solid rgba(80,170,255,.25);
  box-shadow:0 0 60px rgba(40,110,255,.18) inset; overflow:hidden; position:relative; }
.th-lower { flex:none; margin:22px auto 0; width:1180px; display:flex; gap:18px; align-items:flex-start;
  padding:20px 26px 18px; border-radius:18px 18px 22px 22px;
  background:linear-gradient(165deg,rgba(30,58,112,.85),rgba(10,22,48,.9)); border:1px solid rgba(157,107,255,.35);
  box-shadow:0 22px 60px rgba(0,8,26,.7); }
.th-avatar { width:52px; height:52px; flex:none; border-radius:16px; display:flex; align-items:center; justify-content:center;
  font-size:26px; color:#fff; background:linear-gradient(135deg,#9d6bff,#4f5dff); box-shadow:0 0 24px rgba(157,107,255,.6); }
.th-answer p { font-size:21px; line-height:1.7; color:#eaf5ff; letter-spacing:.5px; min-height:72px; }
.th-src { display:inline-block; margin-top:8px; font-style:normal; font-size:12px; color:#7fa8d8;
  border:1px solid rgba(80,170,255,.3); padding:2px 12px; border-radius:9px; }
.th-src::before { content:"⇣ 溯源 · "; color:var(--green); }
.th-close { position:absolute; right:26px; top:14px; cursor:pointer; font-size:13px; color:#9fc7ef;
  padding:7px 18px; border-radius:11px; background:rgba(30,60,110,.5); border:1px solid rgba(80,170,255,.25); z-index:5; }
.th-close:hover { color:#fff; border-color:var(--cyan); }
.th-cursor { display:inline-block; width:10px; height:19px; vertical-align:-3px; background:var(--violet); animation:pulse .8s infinite; }
body.theater-on .page, body.theater-on .kpi-row { opacity:.2; filter:saturate(.4); transition:.4s; }

/* ============ 隐私桥段 ============ */
.pv-wrap { display:flex; align-items:center; gap:90px; }
.pv-msg { width:720px; }
.pv-msg h3 { font-size:34px; letter-spacing:2px; color:#fff; margin-bottom:22px; text-shadow:0 0 26px rgba(255,209,102,.4); }
.pv-msg p { font-size:21px; line-height:1.85; color:#dbeeff; min-height:110px; }
.pv-src { display:inline-block; margin-top:18px; font-style:normal; font-size:13px; color:var(--green);
  border:1px solid rgba(46,230,168,.4); padding:4px 14px; border-radius:10px; }
.pv-exit { margin-top:26px; display:block; cursor:pointer; font-size:14px; color:#9fc7ef; padding:9px 24px;
  border-radius:12px; background:rgba(30,60,110,.5); border:1px solid rgba(80,170,255,.25); letter-spacing:2px; font-family:inherit; }
.pv-exit:hover { color:#fff; border-color:var(--cyan); }
.phone { position:relative; width:390px; height:560px; flex:none; border-radius:44px;
  background:linear-gradient(170deg,#101d38,#05070f); border:2px solid rgba(120,170,255,.25);
  box-shadow:0 40px 90px rgba(0,0,0,.75), 0 0 0 10px rgba(30,44,80,.35), inset 0 0 40px rgba(60,120,255,.08);
  padding:56px 22px 22px; animation:phonein .7s cubic-bezier(.2,.9,.3,1.2) .25s backwards; }
@keyframes phonein { from { transform:translateY(40px) rotate(4deg); opacity:0; } }
.ph-notch { position:absolute; left:50%; top:16px; transform:translateX(-50%); width:120px; height:26px; border-radius:14px; background:#02040a; }
.ph-hd { font-size:15px; color:#9fd0ff; margin-bottom:16px; letter-spacing:1px; }
.ph-hd span { font-weight:700; }
.ph-body { display:flex; flex-direction:column; gap:12px; }
.ph-row { padding:13px 15px; border-radius:14px; background:rgba(22,42,82,.7); border:1px solid rgba(80,170,255,.18);
  animation:fadein .5s backwards; }
.ph-row b { display:block; font-size:13px; color:#8fb3d9; font-weight:400; }
.ph-row span { display:block; font-size:19px; color:#fff; margin-top:3px; font-variant-numeric:tabular-nums; }
.ph-foot { position:absolute; left:22px; right:22px; bottom:24px; font-size:11px; color:var(--dim);
  border-top:1px dashed rgba(80,170,255,.2); padding-top:10px; line-height:1.6; }
.privacy .th-close { display:none; }

/* ============ 底栏 ============ */
.ft { position:relative; z-index:2; flex:none; height:30px; display:flex; align-items:center; justify-content:center; gap:16px;
  font-size:11px; color:var(--dim); letter-spacing:1px; }
.ft-line { width:60px; height:1px; background:linear-gradient(90deg,transparent,var(--line2),transparent); }

.twin-tip { position:absolute; pointer-events:none; z-index:9; display:none; padding:5px 10px; font-size:12px; color:#eaf5ff;
  border-radius:8px; white-space:nowrap; background:rgba(6,16,38,.92); border:1px solid rgba(63,216,255,.4); }
