/* #龍芯⚡️丙午·乙未·甲申·庚午·䷙大畜-LONGHUN-PORTAL-DESIGN-TOKENS-v3.2 · LonghunFont v0019 */
/* 君子协议：本文件受龍魂 DNA 追溯保护 */

/* ═══ LonghunFont · 多层@font-face · 全设备兼容 ═══ */
/* 第1层：本地优先 */
@font-face {
  font-family: 'LonghunFont';
  src: local('LonghunFont'), local('LonghunFont Regular'), local('龍魂字体');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/* 第2层：woff2 最小体积 (55KB) */
@font-face {
  font-family: 'LonghunFont';
  src: url('../assets/fonts/LonghunFont-Regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/* 第3层：OTF 回退 (124KB) */
@font-face {
  font-family: 'LonghunFont';
  src: url('../assets/fonts/LonghunFont-Regular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/* 五彩石彩色字体 */
@font-face {
  font-family: 'LonghunFontWuwu';
  src: url('../assets/fonts/LonghunFont-WuwuColor.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  --bg: #0a0a0f;
  --bg2: #12121a;
  --bg3: #1a1a25;
  --border: #2a2a3a;
  --text: #e4e4e7;
  --text-dim: #71717a;
  --accent: #a78bfa;
  --accent-dim: rgba(167,139,250,0.15);
  --gold: #d4a574;
  --green: #4ade80;
  --green-dim: rgba(74,222,128,0.12);
  --yellow: #fbbf24;
  --yellow-dim: rgba(251,191,36,0.12);
  --red: #f87171;
  --red-dim: rgba(248,113,113,0.12);
  --blue: #60a5fa;
  --blue-dim: rgba(96,165,250,0.12);
  --purple: #c084fc;
  --purple-dim: rgba(192,132,252,0.12);
  --cyan: #22d3ee;
  --cyan-dim: rgba(34,211,238,0.12);

  --shadow-sm: 0 2px 8px rgba(0,0,0,0.25);
  --shadow-md: 0 8px 24px rgba(0,0,0,0.35);
  --shadow-glow: 0 0 24px var(--accent-dim);
  --radius: 12px;
  --radius-lg: 16px;
  --container: 1300px;

  /* ── 字体体系 · 全生态兼容 ── */
  --font-main: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-mono: "SF Mono", "Fira Code", "Consolas", monospace;
  --font-brand: "LonghunFont", "PingFang SC", "Microsoft YaHei", serif;
  --font-wuwu: "LonghunFontWuwu", "LonghunFont", serif;
}

[data-theme="longxin"] {
  --accent: #FFD700;
  --accent-dim: rgba(255,215,0,0.15);
  --shadow-glow: 0 0 24px rgba(255,215,0,0.15);
}
[data-theme="tongxinyi"] {
  --accent: #c084fc;
  --accent-dim: rgba(192,132,252,0.15);
  --shadow-glow: 0 0 24px rgba(192,132,252,0.15);
}
[data-theme="longhun"] {
  --accent: #f87171;
  --accent-dim: rgba(248,113,113,0.15);
  --shadow-glow: 0 0 24px rgba(248,113,113,0.15);
}
[data-theme="junzi"] {
  --accent: #22d3ee;
  --accent-dim: rgba(34,211,238,0.15);
  --shadow-glow: 0 0 24px rgba(34,211,238,0.15);
}
[data-theme="audit"] {
  --accent: #60a5fa;
  --accent-dim: rgba(96,165,250,0.15);
  --shadow-glow: 0 0 24px rgba(96,165,250,0.15);
}

*{margin:0;padding:0;box-sizing:border-box;font-family:var(--font-main)}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;transition:background .3s,color .3s}
a{color:inherit;text-decoration:none}

.container{max-width:var(--container);margin:0 auto;padding:0 22px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:8px;font-size:13px;transition:.2s;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--blue-dim);color:var(--blue);border-color:var(--blue)}
.btn-primary:hover{background:var(--blue);color:#fff}
.btn-accent{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}
.btn-accent:hover{background:var(--accent);color:#000}
.btn-outline{background:transparent;border-color:var(--border);color:var(--text)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.btn-sm{padding:6px 12px;font-size:12px}

.longhun-brand{font-family:var(--font-brand)}
.dna{font-size:11px;color:var(--gold);font-family:var(--font-mono);word-break:break-all}

/* Nav */
nav{position:sticky;top:0;background:rgba(10,10,15,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);z-index:50}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:62px}
.logo{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;color:var(--text)}
.logo .brand{color:var(--accent);text-shadow:0 0 14px var(--accent-dim)}
.nav-links{display:flex;gap:24px;font-size:14px}
.nav-links a{color:var(--text-dim);transition:.2s}
.nav-links a:hover{color:var(--accent)}
.theme-switcher{display:flex;gap:6px;align-items:center}
.theme-dot{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:.2s;position:relative}
.theme-dot:hover{transform:scale(1.15)}
.theme-dot.active{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}
.theme-dot[data-theme="longxin"]{background:#FFD700}
.theme-dot[data-theme="tongxinyi"]{background:#c084fc}
.theme-dot[data-theme="longhun"]{background:#f87171}
.theme-dot[data-theme="junzi"]{background:#22d3ee}
.theme-dot[data-theme="audit"]{background:#60a5fa}
@media(max-width:900px){.nav-links{display:none}.theme-switcher{display:none}}

/* Hero */
.hero{position:relative;padding:100px 0 70px;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 50% 0,rgba(167,139,250,.12),transparent 60%),radial-gradient(circle at 80% 80%,rgba(255,215,0,.06),transparent 40%)}
.hero-stars{position:absolute;inset:0;z-index:0;background-image:radial-gradient(circle,#fff 1px,transparent 1px);background-size:60px 60px;opacity:.08;animation:starsMove 60s linear infinite}
@keyframes starsMove{from{background-position:0 0}to{background-position:60px 60px}}
.hero .container{position:relative;z-index:1}
.hero h1{font-size:46px;font-weight:900;margin-bottom:14px;letter-spacing:2px}
.hero h1 .brand{color:var(--accent);text-shadow:0 0 22px var(--accent-dim)}
.hero p{font-size:16px;color:var(--text-dim);max-width:700px;margin:0 auto 28px}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero .dna{margin-top:22px}

/* Stats */
.stats{padding:28px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.stat{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:18px 10px;text-align:center;transition:.2s}
.stat:hover{border-color:var(--accent);box-shadow:var(--shadow-glow)}
.stat b{display:block;font-size:28px;color:var(--accent);font-weight:800}
.stat span{font-size:12px;color:var(--text-dim)}

/* Sections */
.section{padding:56px 0;border-top:1px solid var(--border)}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.section-title{font-size:22px;font-weight:800;display:flex;align-items:center;gap:10px}
.section-sub{color:var(--text-dim);font-size:13px;margin-top:4px}
.section-actions{display:flex;gap:8px}

/* Cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:18px;transition:.2s;display:flex;flex-direction:column;gap:10px}
.card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-glow)}
.card h3{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.card p{font-size:13px;color:var(--text-dim);flex:1}
.card .meta{font-size:11px;color:var(--text-dim);display:flex;gap:8px;flex-wrap:wrap}
.card .status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 6px currentColor}
.card .status-dot.ok{background:var(--green);color:var(--green)}
.card .status-dot.warn{background:var(--yellow);color:var(--yellow)}
.card .status-dot.err{background:var(--red);color:var(--red)}

/* Lists */
.list{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px}
.list-item{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border)}
.list-item:last-child{border-bottom:none}
.list-item a{color:var(--blue);font-size:14px}
.list-item a:hover{text-decoration:underline;color:var(--accent)}
.list-item .meta{font-size:12px;color:var(--text-dim);white-space:nowrap}
.category-title{font-size:13px;font-weight:700;color:var(--accent);margin:20px 0 8px}

/* API endpoints */
.endpoint{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px;transition:.2s}
.endpoint:hover{border-color:var(--accent)}
.endpoint code{font-family:var(--font-mono);font-size:13px;color:var(--gold)}
.endpoint .method{color:var(--green);font-weight:800;margin-right:8px}
.endpoint p{font-size:12px;color:var(--text-dim);margin-top:6px}

/* Console page specific */
.console-header{background:linear-gradient(135deg,var(--bg2) 0%,var(--bg3) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:18px}
.console-title{font-size:22px;font-weight:800;display:flex;align-items:center;gap:10px}
.console-sub{color:var(--text-dim);font-size:12px;margin-top:4px}
.summary{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}
.summary-item{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-size:12px}
.summary-item b{color:var(--accent)}
.workspace{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px}
.workspace-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.workspace iframe{width:100%;height:540px;border:none;border-radius:8px;background:var(--bg)}
.cmd{font-family:var(--font-mono);font-size:11px;background:var(--bg);border:1px dashed var(--border);border-radius:6px;padding:8px;margin:10px 0;word-break:break-all;color:var(--gold)}

/* Toast */
.toast{position:fixed;bottom:22px;right:22px;background:var(--green-dim);color:var(--green);border:1px solid var(--green);padding:10px 16px;border-radius:8px;font-size:13px;opacity:0;transition:opacity .3s;pointer-events:none;z-index:100}
.toast.show{opacity:1}

/* Footer */
footer{padding:42px 0;text-align:center;font-size:12px;color:var(--text-dim);border-top:1px solid var(--border)}

/* Loading / error helpers */
.loading{color:var(--text-dim);font-size:13px;padding:14px}
.error{color:var(--red);font-size:13px}
.empty{color:var(--text-dim);font-size:13px;padding:18px;text-align:center}

/* ═══ 熔断透明化 UI 组件 · FUSE TRANSPARENCY v1.0 ═══ */
/* 当系统熔断时，用户看到的规则导航+申诉入口+UID署名 */
.fuse-response-container {
  background: var(--bg2);
  border: 1px solid var(--red);
  border-radius: var(--radius-lg);
  padding: 20px 24px;
  margin: 16px 0;
  position: relative;
  overflow: hidden;
}
.fuse-response-container::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 10% 0%, var(--red-dim), transparent 60%);
  pointer-events: none;
}
.fuse-response-status {
  font-size: 18px;
  font-weight: 800;
  color: var(--red);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.fuse-response-verdict {
  font-size: 14px;
  color: var(--text-dim);
  margin-bottom: 16px;
  line-height: 1.6;
}
.fuse-rule-list {
  margin-bottom: 18px;
}
.fuse-rule-tag {
  display: inline-block;
  background: var(--red-dim);
  color: var(--red);
  border: 1px solid var(--red);
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 12px;
  font-family: var(--font-mono);
  margin: 0 6px 6px 0;
}
.fuse-rule-tag a { color: var(--red); text-decoration: underline; }
.fuse-rule-tag a:hover { color: #fff; }
.fuse-rule-reason {
  font-size: 12px;
  color: var(--text-dim);
  margin-left: 4px;
}
.fuse-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.fuse-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  background: var(--accent-dim);
  color: var(--accent);
  border: 1px solid var(--accent);
  cursor: pointer;
  transition: .2s;
  text-decoration: none;
}
.fuse-nav-btn:hover { background: var(--accent); color: #000; }
.fuse-appeal-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  background: var(--blue-dim);
  color: var(--blue);
  border: 1px solid var(--blue);
  cursor: pointer;
  transition: .2s;
  text-decoration: none;
}
.fuse-appeal-btn:hover { background: var(--blue); color: #fff; }
.fuse-attribution {
  font-size: 11px;
  color: var(--text-dim);
  border-top: 1px solid var(--border);
  padding-top: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.fuse-attribution .uid-tag {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 2px 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--gold);
}
.fuse-attribution .uid-tag:hover { border-color: var(--gold); }
.fuse-attribution .anon-option {
  color: var(--text-dim);
  font-size: 11px;
  cursor: pointer;
}
.fuse-attribution .anon-option:hover { color: var(--blue); }

/* CONFIRM: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z */
/* DNA: #龍芯⚡️丙午·丙申·甲寅·申时·䷚颐-CONFIRM-SEAL-longhun-portal-50958B38 */
