/* ══ 工具页全息主题（与主页首屏以下的全息场景一致）══
   用法：页面引入本文件，并在 <body> 上加 class="holo-tool tool-xxx"。只覆盖外观，不改变页面脚本与结构。 */

body.holo-tool {
  color-scheme: dark;
  background:
    radial-gradient(ellipse 45% 40% at 85% 8%, rgba(60,150,255,0.30), transparent 70%),
    radial-gradient(ellipse 50% 45% at 5% 30%, rgba(110,90,255,0.18), transparent 70%),
    radial-gradient(ellipse 60% 35% at 50% 100%, rgba(60,150,255,0.22), transparent 70%),
    linear-gradient(180deg, #071431 0%, #0b1d48 55%, #071029 100%) fixed;
  background-color: #071431;
  color: #e6eefb;
}
/* 漂浮光点与透视网格地面（固定在视口，不随内容滚动） */
body.holo-tool::before {
  content: ''; position: fixed; left: 0; top: 0; width: 2px; height: 2px; border-radius: 50%;
  z-index: -1; pointer-events: none; opacity: 1; background: none;
  box-shadow:
      663px 154px 0 rgba(255,190,120,0.9),
      98px 74px 0 rgba(160,215,255,0.35),
      1193px 59px 0 rgba(160,215,255,0.5),
      176px 444px 0 rgba(160,215,255,0.9),
      492px 92px 0 rgba(160,215,255,0.9),
      1158px 126px 0 rgba(255,190,120,0.5),
      1284px 596px 0 rgba(255,190,120,0.35),
      1199px 406px 0 rgba(160,215,255,0.35),
      95px 570px 0 rgba(160,215,255,0.5),
      858px 147px 0 rgba(255,190,120,0.35),
      631px 573px 0 rgba(160,215,255,0.5),
      1191px 584px 0 rgba(160,215,255,0.5),
      199px 560px 0 rgba(255,190,120,0.35),
      122px 633px 0 rgba(160,215,255,0.5),
      1393px 544px 0 rgba(160,215,255,0.9),
      953px 599px 0 rgba(160,215,255,0.9),
      613px 254px 0 rgba(255,190,120,0.5),
      499px 83px 0 rgba(255,190,120,0.7),
      1013px 896px 0 rgba(255,190,120,0.7),
      919px 294px 0 rgba(160,215,255,0.35),
      1048px 428px 0 rgba(160,215,255,0.5),
      311px 500px 0 rgba(160,215,255,0.9),
      1368px 79px 0 rgba(160,215,255,0.7),
      717px 608px 0 rgba(255,190,120,0.9),
      934px 70px 0 rgba(160,215,255,0.35),
      970px 713px 0 rgba(160,215,255,0.35),
      634px 662px 0 rgba(160,215,255,0.9),
      790px 684px 0 rgba(160,215,255,0.7),
      945px 363px 0 rgba(255,190,120,0.5),
      239px 505px 0 rgba(160,215,255,0.35),
      588px 132px 0 rgba(160,215,255,0.5),
      800px 892px 0 rgba(160,215,255,0.9),
      340px 459px 0 rgba(255,190,120,0.9),
      569px 140px 0 rgba(255,190,120,0.9),
      570px 723px 0 rgba(160,215,255,0.9),
      1398px 389px 0 rgba(160,215,255,0.5),
      169px 180px 0 rgba(160,215,255,0.5),
      1348px 238px 0 rgba(160,215,255,0.35),
      1206px 186px 0 rgba(160,215,255,0.7),
      8px 149px 0 rgba(255,190,120,0.9),
      756px 624px 0 rgba(160,215,255,0.7),
      1055px 632px 0 rgba(160,215,255,0.35),
      1393px 817px 0 rgba(160,215,255,0.9),
      817px 403px 0 rgba(160,215,255,0.35),
      1299px 410px 0 rgba(160,215,255,0.35),
      137px 213px 0 rgba(160,215,255,0.9);
  animation: holoToolDust 18s linear infinite;
}
@keyframes holoToolDust { from { transform: translateY(30px); } to { transform: translateY(-30px); } }
body.holo-tool::after {
  content: ''; position: fixed; left: -40%; right: -40%; bottom: 0; height: 42vh; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(120,200,255,0.30) 1.5px, transparent 1.5px), linear-gradient(90deg, rgba(120,200,255,0.30) 1.5px, transparent 1.5px);
  background-size: 80px 80px;
  transform: perspective(520px) rotateX(70deg); transform-origin: 50% 100%;
  -webkit-mask-image: linear-gradient(to top, #000 15%, transparent 80%); mask-image: linear-gradient(to top, #000 15%, transparent 80%);
}
body.holo-tool ::selection { background: rgba(77,163,255,0.4); color: #fff; }
body.holo-tool select option { background: #0c1d48; color: #eef4ff; }
body.holo-tool :focus-visible { outline: 2px solid #7fd6ff; outline-offset: 3px; }

/* ══ 隐私政策生成器 ══ */
body.tool-privacy {
  --bg: transparent; --paper: rgba(255,255,255,0.06); --ink: #eef4ff; --muted: #a9bddb; --line: rgba(170,215,255,0.22);
  --teal: #3b8cff; --teal-dark: #9fd8ff; --soft: rgba(80,160,255,0.14);
  --warning: rgba(255,190,80,0.10); --warning-border: rgba(255,190,80,0.45);
  --shadow: 0 24px 50px rgba(0,8,30,0.45), 0 0 40px rgba(60,140,255,0.10);
}
.tool-privacy .site-header { background: rgba(5,10,30,0.72); border-bottom-color: rgba(170,215,255,0.16); }
.tool-privacy .brand-mark { background: linear-gradient(135deg, #2f7bf6, #4fb6ff); box-shadow: 0 0 16px rgba(79,182,255,0.5); }
.tool-privacy .nav-links a:hover { color: #7fd6ff; }
.tool-privacy .primary-link, .tool-privacy .button-primary { background: linear-gradient(90deg, #2f7bf6, #4fb6ff); color: #fff; box-shadow: 0 0 22px rgba(79,182,255,0.45); }
.tool-privacy .button-primary:hover { background: linear-gradient(90deg, #3a86ff, #6cc4ff); }
.tool-privacy .button-secondary { background: rgba(255,255,255,0.07); color: #eef4ff; border: 1px solid rgba(170,215,255,0.4); }
.tool-privacy .button-secondary:hover { border-color: #7fd6ff; }
.tool-privacy .hero { border-bottom-color: var(--line); }
.tool-privacy .hero::before { background: none; }
.tool-privacy h1 { color: #fff; text-shadow: 0 0 30px rgba(120,190,255,0.35); }
.tool-privacy .eyebrow { border-color: rgba(127,214,255,0.4); background: rgba(80,160,255,0.12); color: #cfeaff; }
.tool-privacy .hero-subtitle, .tool-privacy .seo-copy, .tool-privacy .lead-list { color: #c9d8ef; }
.tool-privacy .trust-row span { background: rgba(255,255,255,0.06); border-color: rgba(170,215,255,0.28); color: #cfe0f7; }
.tool-privacy .card, .tool-privacy .faq details, .tool-privacy .panel {
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04) 60%, rgba(120,180,255,0.06));
  border: 1px solid rgba(170,215,255,0.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), var(--shadow);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.tool-privacy .panel-header { border-bottom-color: var(--line); }
.tool-privacy .faq summary, .tool-privacy .panel-header h3, .tool-privacy .section-head h2 { color: #fff; }
.tool-privacy label, .tool-privacy .check { color: #dbe6f7; }
.tool-privacy input, .tool-privacy select, .tool-privacy textarea { background: rgba(4,12,34,0.6); border-color: rgba(140,200,255,0.35); color: #fff; }
.tool-privacy input::placeholder, .tool-privacy textarea::placeholder { color: #7f93b5; }
.tool-privacy input:focus, .tool-privacy select:focus, .tool-privacy textarea:focus { border-color: #7fd6ff; box-shadow: 0 0 0 3px rgba(80,170,255,0.2); }
.tool-privacy .check { background: rgba(255,255,255,0.05); border-color: rgba(170,215,255,0.24); }
.tool-privacy .check input { accent-color: #4fb6ff; }
.tool-privacy .form-note { background: rgba(80,160,255,0.10); border-color: rgba(127,214,255,0.3); color: #cfe6ff; }
.tool-privacy .metric { background: rgba(255,255,255,0.05); border-color: rgba(170,215,255,0.24); }
.tool-privacy .metric strong { color: #7fd6ff; }
.tool-privacy .notice { color: #ffe2b0; }
.tool-privacy details a { color: #7fd6ff; }
/* 预览区是文书本身：保留白纸黑字，便于审阅 */
.tool-privacy .doc-preview { background: #fbfcfd; color: #17201b; border-color: rgba(170,215,255,0.5); }
.tool-privacy .doc-preview h2, .tool-privacy .doc-preview h3 { color: #111; }
.tool-privacy .footer strong { color: #fff; }
.tool-privacy .footer a { color: #9fb6d8; }
/* 首屏：全息文书悬浮在发光底座上（替代原浅色横幅图） */
.tool-privacy .hero-inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 32px; align-items: center; }
.pv-stage { position: relative; width: 100%; max-width: 480px; margin: 0 auto; aspect-ratio: 560 / 620; perspective: 1100px; }
.pv-stage .holo-base { position: absolute; left: 0; bottom: 0; width: 100%; height: auto; }
.pv-stage .hb-ring { animation: pvRing 10s linear infinite; }
.pv-stage .hb-ring-b { animation-duration: 6s; animation-direction: reverse; }
@keyframes pvRing { to { stroke-dashoffset: -600; } }
.pv-beam { position: absolute; left: 20%; right: 20%; bottom: 26%; height: 56%;
  background: linear-gradient(to top, rgba(140,220,255,0.36), rgba(140,220,255,0.08) 55%, transparent 90%);
  clip-path: polygon(6% 100%, 94% 100%, 74% 0, 26% 0);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent); mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent); }
.pv-object { position: absolute; left: 22%; right: 22%; bottom: 27%; transform-style: preserve-3d; animation: pvFloat 5.5s ease-in-out infinite; }
@keyframes pvFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
.pv-spin { position: relative; aspect-ratio: 300 / 380; transform-style: preserve-3d; animation: pvSway 10s ease-in-out infinite; }
@keyframes pvSway { 0%, 100% { transform: rotateY(-18deg) rotateX(4deg); } 50% { transform: rotateY(16deg) rotateX(-3deg); } }
.pv-spin > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; transform: translateZ(var(--z, 0px)); }
.pv-scan { animation: pvScan 4s ease-in-out infinite; }
@keyframes pvScan { 0%, 100% { transform: translateY(0); opacity: 0.2; } 50% { transform: translateY(210px); opacity: 0.85; } }

/* ══ OPC 协作风险诊断 ══ */
body.tool-opc {
  --ink: #eef4ff; --paper: rgba(255,255,255,0.05); --card: rgba(255,255,255,0.08); --rule: rgba(170,215,255,0.26);
  --muted: #a9bddb; --accent: #ff8a45; --accent2: #7fd6ff; --warn: #f2b84b; --danger: #ff6b5b;
}
.tool-opc nav { background: rgba(5,10,30,0.72); border-bottom-color: rgba(170,215,255,0.16); }
.tool-opc .logo { color: #fff; }
.tool-opc h1 { color: #fff; text-shadow: 0 0 26px rgba(120,190,255,0.35); }
.tool-opc .lead, .tool-opc .risk-desc, .tool-opc .toolkit-head p { color: #c9d8ef; }
.tool-opc .thesis, .tool-opc .toolkit-note { border-radius: 0 10px 10px 0; }
.tool-opc .panel.show {
  padding: 2rem; border-radius: 16px;
  background: linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04) 60%, rgba(120,180,255,0.06));
  border: 1px solid rgba(170,215,255,0.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 24px 50px rgba(0,8,30,0.45), 0 0 40px rgba(60,140,255,0.10);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.tool-opc .step-dot { border-color: rgba(170,215,255,0.3); background: rgba(255,255,255,0.04); }
.tool-opc .step-dot.active { background: linear-gradient(90deg, #2f7bf6, #4fb6ff); border-color: transparent; color: #fff; box-shadow: 0 0 16px rgba(79,182,255,0.45); }
.tool-opc .step-dot.done { border-color: #7fd6ff; color: #7fd6ff; }
.tool-opc .field input[type=text], .tool-opc .field input[type=number], .tool-opc .field textarea, .tool-opc .field select {
  background: rgba(4,12,34,0.6); border-color: rgba(140,200,255,0.35); border-radius: 8px; color: #fff; }
.tool-opc .field input::placeholder, .tool-opc .field textarea::placeholder { color: #7f93b5; }
.tool-opc .opt { border-radius: 10px; }
.tool-opc .opt:hover { border-color: #7fd6ff; }
.tool-opc .opt.checked { border-color: var(--accent); background: rgba(255,138,69,0.10); }
.tool-opc .opt input { accent-color: var(--accent); }
.tool-opc .btn { border: none; border-radius: 10px; background: linear-gradient(90deg, #2f7bf6, #4fb6ff); color: #fff; box-shadow: 0 0 20px rgba(79,182,255,0.4); }
.tool-opc .btn:hover { background: linear-gradient(90deg, #3a86ff, #6cc4ff); color: #fff; }
.tool-opc .btn.ghost { background: rgba(255,255,255,0.06); color: #eef4ff; border: 1px solid rgba(170,215,255,0.4); box-shadow: none; }
.tool-opc .btn.ghost:hover { border-color: #7fd6ff; background: rgba(80,160,255,0.12); color: #fff; }
.tool-opc .risk-summary, .tool-opc .risk-item, .tool-opc .doc { border-radius: 10px; }
.tool-opc .risk-level { color: #fff; }
.tool-opc .cta { background: linear-gradient(135deg, rgba(47,123,246,0.35), rgba(80,60,200,0.25)); border: 1px solid rgba(127,214,255,0.4); border-radius: 14px; box-shadow: 0 0 30px rgba(80,160,255,0.2); }
.tool-opc .cta a { border-radius: 8px; box-shadow: 0 0 18px rgba(255,138,69,0.45); }
.tool-opc .disclaimer { border-color: rgba(170,215,255,0.3); border-radius: 10px; }
.tool-opc footer a { color: #9fb6d8; }
.tool-opc .toast { background: rgba(14,22,40,0.94); color: #eef4ff; border: 1px solid rgba(170,215,255,0.3); }

@media (max-width: 900px) {
  .tool-privacy .hero-inner { grid-template-columns: 1fr; padding-bottom: 48px; }
  .pv-stage { max-width: 300px; }
}
@media (max-width: 600px) {
  .tool-opc .panel.show { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  body.holo-tool::before, .pv-object, .pv-spin, .pv-scan, .pv-stage .hb-ring { animation: none !important; }
}
/* 打印 / 存 PDF：恢复白底黑字，去掉装饰 */
@media print {
  body.holo-tool { background: #fff !important; color: #000 !important; }
  body.holo-tool::before, body.holo-tool::after, .pv-stage { display: none !important; }
  body.holo-tool * { color: #000 !important; background: transparent !important; box-shadow: none !important; text-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  .tool-privacy .panel, .tool-privacy .card, .tool-opc .panel.show { border-color: #bbb !important; }
}
