/* ============================================================
   bigdata.css · 「大数据」大屏页专属样式（2026-10-30）
   页面级例外声明（DESIGN.md 第4章）：本页为暗色数据大屏，视觉数值
   不走全站亮色 token；断点 768px（与工具页手机拦截一致）。
   ============================================================ */
.bd-wrap{position:relative}
.bd-stage{position:absolute;inset:0;overflow:hidden;background:linear-gradient(160deg,#141D5C 0%,#1C2680 45%,#2E2A9E 100%)}
#bd-scene{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab}
#bd-scene.dragging{cursor:grabbing}
.bd-plabel{position:absolute;display:none;transform:translate(-50%,-50%);font-size:11px;letter-spacing:1px;color:#FDBA74;text-shadow:0 0 5px rgba(12,8,28,.95),0 0 3px rgba(12,8,28,.95);white-space:nowrap;pointer-events:none;opacity:.92;z-index:2}
.bd-title{position:absolute;top:14px;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;z-index:5}
.bd-title strong{display:block;font-size:20px;font-weight:500;letter-spacing:5px;color:#FFFFFF;text-shadow:0 0 16px rgba(255,255,255,.55),0 2px 10px rgba(58,30,158,.8)}
.bd-title span{display:block;font-size:11px;color:#9B93C4;letter-spacing:3px;margin-top:4px}
.bd-panel{position:absolute;top:14px;width:280px;z-index:5;display:flex;flex-direction:column;gap:10px;max-height:calc(100% - 80px);overflow-y:auto}
.bd-panel::-webkit-scrollbar{width:0}
.bd-left{left:16px}
.bd-right{right:16px}
.bd-card{background:rgba(30,22,80,.66);border:1px solid rgba(255,255,255,.32);border-radius:8px;padding:10px 12px;box-shadow:0 4px 16px rgba(10,5,40,.35)}
.bd-card h3{font-size:13px;font-weight:500;color:#A78BFA;letter-spacing:2px;margin:0 0 8px;display:flex;align-items:center;gap:7px}
.bd-card h3::before{content:"";width:7px;height:7px;background:#A78BFA;box-shadow:0 0 6px #A78BFA;transform:rotate(45deg);flex:0 0 auto}
.bd-me{font-size:12px;line-height:1.9;color:#B7AEDD}
.bd-me .ip{font-size:15px;color:#FB923C;font-family:Consolas,monospace;letter-spacing:.5px}
.bd-me .isp{color:#7A72A6;font-size:11px}
.bd-chart{width:100%;height:110px}
.bd-feedrow{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px dashed rgba(167,139,250,.16);font-size:12px;animation:bdIn .4s ease}
.bd-feedrow:last-child{border-bottom:none}
@keyframes bdIn{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.bd-feedrow .tm{color:#9B93C4;font-size:11px;width:44px;flex:0 0 auto;font-family:Consolas,monospace}
.bd-feedrow .ct{color:#EDE9FE;width:62px;flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bd-feedrow .pg{flex:1;color:#B7AEDD;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bd-tag{font-size:10px;padding:1px 6px;border-radius:3px;flex:0 0 auto}
.bd-tag.direct{background:rgba(167,139,250,.15);color:#A78BFA;border:1px solid rgba(167,139,250,.4)}
.bd-tag.search{background:rgba(52,211,153,.12);color:#34D399;border:1px solid rgba(52,211,153,.4)}
.bd-tag.bili{background:rgba(251,146,60,.12);color:#FB923C;border:1px solid rgba(251,146,60,.4)}
.bd-tag.ref{background:rgba(244,114,182,.12);color:#F472B6;border:1px solid rgba(244,114,182,.4)}
.bd-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bd-stat{background:rgba(167,139,250,.06);border:1px solid rgba(167,139,250,.22);border-radius:5px;padding:8px 10px}
.bd-stat i{display:block;font-style:normal;font-size:11px;color:#9B93C4}
.bd-stat b{display:block;font-size:20px;font-weight:500;color:#A78BFA;font-family:Consolas,monospace;text-shadow:0 0 8px rgba(167,139,250,.5);margin-top:2px}
.bd-stat b small{font-size:11px;color:#9B93C4;margin-left:2px}
.bd-pagebar{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px}
.bd-pagebar .nm{width:118px;flex:0 0 auto;color:#EDE9FE;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bd-pagebar .track{flex:1;height:8px;background:rgba(167,139,250,.1);border-radius:4px;overflow:hidden}
.bd-pagebar .fill{height:100%;background:#A78BFA;box-shadow:0 0 8px rgba(167,139,250,.8);border-radius:4px}
.bd-pagebar .cnt{width:40px;text-align:right;color:#9B93C4;font-family:Consolas,monospace;font-size:11px;flex:0 0 auto}
.bd-hint{position:absolute;bottom:calc(var(--footer-h, 32px) + 12px);left:50%;transform:translateX(-50%);z-index:5;font-size:11px;color:#7A72A6;letter-spacing:1px;pointer-events:none}
.bd-hint b{color:#FB923C;font-weight:400}
#bdLabel{position:absolute;z-index:4;pointer-events:none;font-size:11px;color:#FB923C;background:rgba(24,16,52,.88);border:1px solid rgba(251,146,60,.5);padding:2px 8px;border-radius:3px;white-space:nowrap;transform:translate(-50%,-140%);display:none}
#bdLabel::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid rgba(251,146,60,.5)}
.bd-shot{position:absolute;right:16px;bottom:calc(var(--footer-h, 32px) + 12px);z-index:6;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);color:#FFFFFF;font-size:12px;letter-spacing:1px;padding:6px 14px;border-radius:5px;cursor:pointer;font-family:inherit;backdrop-filter:blur(4px)}
.bd-shot:hover{background:rgba(167,139,250,.18);color:#EDE9FE}
.bd-prov{display:none;position:absolute;z-index:7;min-width:190px;background:rgba(18,12,40,.94);border:1px solid rgba(251,146,60,.55);border-radius:6px;padding:10px 14px;pointer-events:none;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.bd-prov .t{font-size:14px;color:#FDBA74;letter-spacing:2px;margin-bottom:6px}
.bd-prov .t i{font-style:normal;font-size:10px;color:#7A72A6;margin-left:6px;letter-spacing:0}
.bd-prov .r{font-size:12px;color:#B7AEDD;line-height:1.9}
.bd-prov .r b{color:#EDE9FE;font-family:Consolas,monospace;margin-left:4px;font-weight:400}
.bd-plabel.sel{color:#FFFFFF;font-size:13px;opacity:1;text-shadow:0 0 8px rgba(251,146,60,.9)}
.bd-mecard{transition:border-color .25s,box-shadow .25s}
.bd-mecard.hot{border-color:rgba(52,211,153,.75);box-shadow:0 0 14px rgba(52,211,153,.35)}
.bd-me .me-tip{color:#34D399;font-size:11px;margin-top:2px}
@media (prefers-reduced-motion: reduce){
  .bd-feedrow{animation:none}
}
/* 桌面端一屏布局（同工具页模式，≥769px） */
@media (min-width:769px){
  html,body{height:100%}
  body.page-bigdata{display:flex;flex-direction:column;overflow:hidden}
  .site-head,.site-foot{flex:0 0 auto}
  .mobile-nav{display:none}
  .bd-wrap{flex:1 1 auto;min-height:0}
  .site-foot{position:fixed;left:0;right:0;bottom:0;height:var(--footer-h);margin:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;z-index:40}
}

/* ============ 响应式（2026-10-30 平板自适应）：面板折叠按钮 + 窄屏布局 ============ */
.bd-ptoggle{position:absolute;left:16px;bottom:calc(var(--footer-h, 32px) + 12px);z-index:6;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);color:#FFFFFF;font-size:12px;letter-spacing:1px;padding:6px 14px;border-radius:5px;cursor:pointer;font-family:inherit;backdrop-filter:blur(4px)}
.bd-ptoggle:hover{background:rgba(167,139,250,.18);color:#EDE9FE}
.bd-wrap.p-off .bd-panel{display:none}
@media (max-width:1100px){
  .bd-panel{width:240px;top:52px;max-height:calc(100% - 116px)}
  .bd-title strong{font-size:16px;letter-spacing:3px}
  .bd-card{padding:8px 10px}
}