:root{font-family:Inter,"Segoe UI",sans-serif;color:#111;background:#fff}
*{box-sizing:border-box}
html,body{margin:0;background:#fff;color:#111}
body.legal-page{display:block;min-height:100vh}
.x-bar{height:40px;display:flex;align-items:center;justify-content:flex-end;padding:0 40px;border-bottom:1px solid #eee;background:#fff;font-size:13px;font-weight:600}
.x-bar a{color:#111;text-decoration:none}
.x-bar a:hover{opacity:.6}
.legal-wrap{max-width:860px;margin:0 auto;padding:0 28px 80px}
.legal-wrap header{height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #eee;background:#fff}
.wordmark{display:flex;align-items:center;gap:8px;color:#111;text-decoration:none;font-size:20px;font-weight:650}
.brand-mark{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;border:1px solid #111;font-size:14px}
.workspace-nav{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:flex-end}
.workspace-nav a{color:#444;text-decoration:none;font-size:13px;font-weight:600}
.workspace-nav a.active,.workspace-nav a:hover{color:#111}
.legal-hero{padding:36px 0 12px}
.legal-hero p{margin:0;font-size:11px;letter-spacing:2px;color:#666;font-weight:600}
.legal-hero h1{margin:10px 0 0;font-size:42px;letter-spacing:-1px;font-weight:650;line-height:1.15;color:#111}
.legal-card{background:#fff;border:1px solid #e8e8e8;border-radius:16px;padding:28px 30px;margin:18px 0 0;color:#222}
.legal-card h2{margin:0 0 12px;font-size:18px}
.legal-card p,.legal-card li{font-size:15px;line-height:1.75;color:#333}
.legal-card ul{margin:0;padding-left:20px}
.legal-card li{margin:6px 0}
.site-legal{padding:28px 0 0;font-size:13px;color:#666}
.site-legal a{color:#111}
@media(max-width:700px){
  .x-bar,.legal-wrap{padding-left:16px;padding-right:16px}
  .legal-wrap header{height:auto;padding:12px 0;flex-direction:column;align-items:flex-start}
  .legal-hero h1{font-size:32px}
}

/* 「已经不是我们的了」—— Proof 页持仓下面那一块。
   🔴 它必须跟上面的持仓表在视觉上分开：这一份不是我们持有的，是我们已经交出去的。
   两者混在一张表里，读者会以为余额还算在我们头上。 */
.proof-gone { margin: 18px 0 26px; padding: 13px 15px; border-radius: 9px;
  background: #f3f8fa; border: 1px solid rgba(27,55,70,0.1);
  border-left: 3px solid #0d7c58; }
.proof-gone p { margin: 0; }
.proof-gone strong { color: #0d7c58; font-variant-numeric: tabular-nums; }
.proof-gone .proof-note { margin-top: 7px; }

/* ── Security 页：逐个合约的现场取证卡 ─────────────────────────────
   配色沿用这一页已有的：#1e3a4a 主 / #4c6a7a 正文 / #0d7c58 通过 / #b4532a 需注意。
   不引入新色，不加阴影堆叠。 */
.legal-lede { font-size: 0.98rem; line-height: 1.75; color: #4c6a7a; max-width: 62ch; }
.sec-note { font-size: 0.88rem; line-height: 1.7; color: #4c6a7a; background: #f3f8fa;
  border: 1px solid rgba(27,55,70,0.08); border-radius: 8px; padding: 11px 13px; margin: 12px 0 0; }

.sec-contract { border-top: 1px solid rgba(27,55,70,0.12); padding: 16px 0 4px; }
.sec-contract:first-of-type { border-top: 0; }
.sec-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.sec-head b { font-size: 1.05rem; color: #1e3a4a; }
.sec-tag { font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 999px; background: #f0e7e1; color: #8a5233; }
.sec-tag.is-ours { background: #e4f2ea; color: #0d7c58; }
.sec-what { margin: 5px 0 9px; font-size: 0.9rem; color: #4c6a7a; line-height: 1.65; }

.sec-addr { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 9px; }
.sec-addr code { font-size: 0.8rem; overflow-wrap: anywhere; color: #315a70;
  background: #f3f8fa; padding: 5px 8px; border-radius: 6px; }
.sec-copy { font: inherit; font-size: 0.74rem; padding: 5px 11px; border-radius: 999px; cursor: pointer;
  border: 1px solid rgba(27,55,70,0.18); background: #fff; color: #315a70; }
.sec-copy:hover { background: #f3f8fa; }

.sec-links { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 11px; }
.sec-links a { font-size: 0.8rem; color: #315a70; }

/* 🔴 判定结果用文字 + 颜色两重表达，不只用颜色 —— 色盲读者也要能读出结论。 */
.sec-facts { display: grid; grid-template-columns: minmax(150px, 38%) 1fr; gap: 7px 16px;
  margin: 0; font-size: 0.86rem; }
.sec-facts dt { color: #5a7688; }
.sec-facts dd { margin: 0; color: #4c6a7a; line-height: 1.6; overflow-wrap: anywhere; }
.sec-facts dd.ok { color: #0d7c58; }
.sec-facts dd.warn { color: #b4532a; }

@media (max-width: 560px) {
  .sec-facts { grid-template-columns: 1fr; gap: 2px 0; }
  .sec-facts dd { margin-bottom: 8px; }
}

/* ── $SPRIVIO 页的分配条 ───────────────────────────────────────── */
.tok-bars { display: grid; gap: 10px; margin-top: 18px; }
.tok-bar-row { font-size: 0.84rem; }
.tok-bar-head { display: flex; justify-content: space-between; align-items: baseline;
  gap: 12px; color: #4c6a7a; margin-bottom: 4px; }
.tok-bar-head b { color: #1e3a4a; font-variant-numeric: tabular-nums; }
.tok-bar { height: 6px; border-radius: 999px; background: rgba(27,55,70,0.09); overflow: hidden; }
/* 🔴 最小宽度 0.3% 由 JS 给：真实占比是 0.1% 的那几行画出来是完全空的，
   读者会以为没加载出来而不是「这一份确实很小」。 */
.tok-bar i { display: block; height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, #315a70, #1e3a4a); }

/* 毕业进度条 —— $SPRIVIO 页。
   🔴 用 #0d7c58（已达成绿）只在真毕业时出现；进行中用主色，不提前给人"成了"的暗示。 */
.grad-head { display: flex; justify-content: space-between; align-items: baseline;
  gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.grad-head b { font-size: 1.3rem; color: #1e3a4a; font-variant-numeric: tabular-nums; }
.grad-head span { font-size: 0.85rem; color: #5a7688; }
.grad-bar { height: 10px; border-radius: 999px; background: rgba(27,55,70,0.1);
  overflow: hidden; margin-bottom: 14px; }
.grad-bar i { display: block; height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, #4d86a4, #1e3a4a); }
.grad-bar i.is-done { background: #0d7c58; }
