/* bi-screen bundle ?? generated by gen.py, do not edit */
/* built 2026-07-22 21:59:49 */

/* ===== 00-fonts.css ===== */
/* 汉仪尚巍手书 W — 标题专用书法字 */
@font-face {
  font-family: "汉仪尚巍手书 W";
  src:
    local("汉仪尚巍手书 W"),
    local("汉仪尚巍手书W"),
    local("HYShangWeiShouShuW"),
    local("HYShangWeiShouShu W"),
    url("../assets/fonts/HYShangWeiShouShuW.woff2") format("woff2"),
    url("../assets/fonts/HYShangWeiShouShuW.woff") format("woff"),
    url("../assets/fonts/HYShangWeiShouShuW.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* ===== 01-tokens.css ===== */
:root,
html[data-theme="legend"] {
  --bg:#1a0808;
  --bg2:#2a1010;
  --panel:rgba(70,18,14,.78);
  --panel2:rgba(85,22,16,.72);
  --gold:#ffe566;
  --gold2:#ffc53d;
  --gold3:#ffaa00;
  --red:#ff6b6b;
  --red2:#e84545;
  --red3:#a82020;
  --text:#fffaf0;
  --muted:#f0d4b8;
  --border:rgba(255,210,120,.68);
  --accent:#ffd666;
  --glow:rgba(255,200,80,.55);
  --header-bg1:rgba(110,25,18,.94);
  --header-bg2:rgba(55,12,8,.9);
  --header-accent:#ff8c42;
  --header-accent2:#ffd666;
  --theme-color:#6e1912;
  --banner-glow-a:rgba(255,100,60,.32);
  --banner-glow-b:rgba(196,30,42,.42);
  --banner-plate-bg:radial-gradient(ellipse 70% 105% at 50% 42%, rgba(196,30,42,.52) 0%, rgba(89,18,24,.36) 50%, rgba(42,8,8,0) 76%);
  --banner-line:linear-gradient(90deg, transparent 0%, rgba(255,179,71,.55) 50%, transparent 100%);
  --title-main-grad:linear-gradient(180deg,#fff9d0 0%,#ffd147 42%,#ff8844 78%,#ffd666 100%);
  --title-main-shadow:#4a1208;
  --title-main-shadow-deep:#2a0804;
  --title-main-glow:rgba(255,160,60,.45);
  --title-main-glow-soft:rgba(255,100,60,.22);
  --brand-name-grad:linear-gradient(90deg,#fff5e6 0%,#ffd666 35%,#ff8c42 70%,#ffd666 100%);
  --brand-orbit:rgba(255,180,80,.35);
  --brand-mark-ring:rgba(255,180,80,.28);
  --brand-mark-glow:rgba(255,140,60,.18);
  --live-dot:#52c41a;
  --live-dot-glow:rgba(82,196,26,.85);
  --live-text:#b7eb8f;
  --live-border:rgba(82,196,26,.45);
  --title-grad1:#fffef8;
  --title-grad2:#ffe08a;
  --title-grad3:#ff8c00;
  --title-deep:#8b4513;
  --surface-a:rgba(75,20,14,.92);
  --surface-b:rgba(45,12,8,.95);
  --kpi-a:rgba(100,28,20,.92);
  --kpi-b:rgba(60,15,10,.95);
  --surface-soft:rgba(20,5,5,.6);
  --surface-input:rgba(30,8,6,.7);
  --surface-input2:rgba(20,5,5,.5);
  --surface-thead:rgba(35,8,6,.98);
  --surface-tab:rgba(28,8,8,.98);
  --surface-tab2:rgba(16,4,4,.99);
  --surface-hover:rgba(196,30,30,.15);
  --surface-hover2:rgba(196,30,30,.12);
  --surface-active:rgba(196,30,30,.35);
  --surface-tab-active-a:rgba(196,30,30,.45);
  --surface-tab-active-b:rgba(55,14,10,.9);
  --surface-seg:rgba(250,173,20,.2);
  --surface-rank:rgba(196,30,30,.08);
  --surface-rank-hover:rgba(250,173,20,.1);
  --surface-rank-no:rgba(196,30,30,.4);
  --surface-bar-bg:rgba(196,30,30,.15);
  --surface-analysis:rgba(196,30,30,.1);
  --surface-footer-bar:rgba(0,0,0,.22);
  --line:rgba(255,140,60,.18);
  --line-soft:rgba(255,140,60,.06);
  --line-mid:rgba(255,140,60,.12);
  --line-strong:rgba(255,140,60,.3);
  --line-tab:rgba(255,140,60,.15);
  --line-tab-btn:rgba(255,140,60,.25);
  --inner-border:rgba(255,200,100,.18);
  --scan-line:rgba(255,210,100,.85);
  --scan-head:rgba(255,210,100,.12);
  --panel-head-bg:rgba(196,30,30,.12);
  --accent-text:#ffe566;
  --accent-text2:#ffc880;
  --accent-warm:#ffc069;
  --accent-orange:#ff6b35;
  --accent-btn-text:#2a0800;
  --success:#95de64;
  --success-bg:rgba(82,196,26,.15);
  --success-border:rgba(82,196,26,.3);
  --warning:#ffc069;
  --warning-bg:rgba(250,173,20,.15);
  --warning-border:rgba(250,173,20,.3);
  --warning-bg2:rgba(250,173,20,.2);
  --warning-bg3:rgba(250,173,20,.28);
  --danger:#ff7875;
  --danger-bg:rgba(255,77,79,.12);
  --danger-text:#ff9a76;
  --panel-shadow:inset 0 1px 0 rgba(255,220,150,.08),inset 0 0 30px rgba(230,50,40,.1),0 0 18px rgba(255,180,60,.1),0 4px 20px rgba(0,0,0,.2);
  --kpi-shadow:inset 0 1px 0 rgba(255,220,150,.1),inset 0 0 24px rgba(230,60,40,.12),0 4px 18px rgba(0,0,0,.25),0 0 16px rgba(255,180,60,.08);
  --glow-text:rgba(255,200,80,.65);
  --glow-text-soft:rgba(255,200,80,.45);
  --glow-kpi:rgba(255,120,60,.35);
  --glow-panel:rgba(255,200,80,.35);
  --glow-radial:rgba(255,140,60,.15);
  --glow-focus:rgba(250,173,20,.2);
  --glow-btn:rgba(250,173,20,.25);
  --gm-fee:var(--red);
  --gm-fee-total:var(--gold);
  --gm-fee-bg:transparent;
  --gm-fee-bg:rgba(255,107,107,.14);
  --gm-fee-bg-strong:rgba(255,197,61,.18);
  --gm-stat-fee:var(--gold2);
  --gm-stat-accent:var(--gold);
  --gm-stat-bar-bg:linear-gradient(90deg,rgba(185,28,28,.1),transparent 68%);
  --gm-stat-card-bg:var(--surface-soft);
  --gm-stat-card-border:var(--line-mid);
  --gm-stat-head-bg:var(--surface-thead);
  --gm-stat-panel-bg:var(--surface-soft);
  --gm-detail-head:var(--gold);
  --glow-rank:rgba(255,140,60,.15);
  --glow-rank-bar:rgba(255,140,60,.5);
  --glow-top1:rgba(255,214,102,.15);
  --glow-tab:rgba(255,140,60,.15);
  --glow-seg:rgba(255,214,102,.5);
  --shadow-expand:0 -12px 48px rgba(0,0,0,.55),0 0 0 1px rgba(255,180,80,.25);
  --grad-kpi-bar:linear-gradient(180deg,#ffd666,#ff4d4f,#c41e3a);
  --grad-head-bar:linear-gradient(180deg,#ff4d4f,#ffd666);
  --grad-rank-bar:linear-gradient(90deg,#c41e3a,#ff6b35,#ffd666);
  --grad-score-bar:linear-gradient(90deg,#c41e3a,#ffd666);
  --grad-btn:linear-gradient(135deg,#ffd666,#faad14,#c41e3a);
  --grad-tab-active:linear-gradient(180deg,rgba(196,30,30,.45),rgba(55,14,10,.9));
  --grad-tab-panel:linear-gradient(180deg,rgba(28,8,8,.98),rgba(16,4,4,.99));
  --grad-sparkline:linear-gradient(180deg,#ffd666,#c41e3a);
  --body-radial-1:rgba(230,50,40,.32);
  --body-radial-2:rgba(255,160,40,.18);
  --body-grad-top:#2a0a0a;
  --body-grad-mid:#3a1210;
  --body-grad-bot:#1a0808;
  --grid-line:rgba(255,180,80,.07);
  --float-icon:rgba(255,180,80,.15);
  --particle-warm:rgba(255,210,120,.4);
  --particle-cool:rgba(255,100,80,.28);
  --chart-1:#ffd666;
  --chart-2:#faad14;
  --chart-3:#ff6b35;
  --chart-4:#ff4d4f;
  --chart-5:#c41e3a;
  --chart-6:#ffc069;
  --chart-7:#ff9800;
  --chart-8:#8b0000;
  --chart-bg:rgba(45,10,8,.92);
  --chart-text:#fff5e6;
  --chart-label:#ffd666;
  --chart-axis:#c9a080;
  --chart-line:rgba(255,180,80,.4);
  --chart-split:rgba(255,140,60,.08);
  --chart-axis-line:rgba(255,140,60,.2);
  --chart-bar-bg:rgba(196,30,30,.15);
  --chart-bar-grad-top:rgba(255,214,102,.85);
  --chart-bar-grad-bot:rgba(196,30,58,.75);
  --chart-pie-border:#1a0505;
  --chart-line-shadow:rgba(255,180,80,.4);
  --chart-heat-1:#2a0a0a;
  --chart-heat-2:#8b2500;
  --chart-heat-3:#ff6b35;
  --chart-heat-4:#ffd666;
  --plaque-inner-a:rgba(60,12,8,.92);
  --plaque-inner-b:rgba(25,6,4,.96);
  --plaque-border-top:rgba(255,220,140,.35);
  --plaque-border-bot:rgba(255,160,60,.45);
  --plaque-inset:rgba(255,120,40,.08);
  --title-shadow-1:rgba(180,120,20,.9);
  --title-shadow-2:rgba(120,60,10,.8);
  --title-sep-color:rgba(255,220,140,.45);
  --tag-1:#ffb366;
  --tag-1-bg:rgba(255,140,60,.12);
  --tag-2-bg:rgba(250,173,20,.12);
  --tag-3:#ff9a76;
  --tag-3-bg:rgba(255,107,53,.12);
  --tag-4-bg:rgba(255,214,102,.1);
  --tag-5-bg:rgba(255,77,79,.12);
  --tag-6-bg:rgba(255,192,105,.1);
  --rank-top1:#ffd666;
  --rank-top2:#ffc069;
  --rank-top3:#ff8c00;
  --rank-bar-track:rgba(255,140,60,.1);
  --score-bar-track:rgba(255,140,60,.15);
  --scrollbar:rgba(255,180,80,.35);
  --table-hover:rgba(250,173,20,.2);
  --table-expand-border:rgba(255,214,102,.55);
  --table-expand-bg:rgba(196,30,30,.35);
  --table-row-hover:rgba(250,173,20,.22);
  --table-row-hover2:rgba(250,173,20,.28);
  --table-row-text:#fff5e6;
  --table-row-h:34px;
  --fs-table:13px;
  --fs-body:13px;
  --fs-hint:12px;
  --fs-small:11px;
}

/* ===== 02-base.css ===== */
* {
  box-sizing:border-box;
  margin:0;
  padding:0
}

/* 原生 button 重置 — 避免 CSS 分片晚到时出现白底黑边系统样式 */
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  -webkit-appearance:none;
  appearance:none;
  font:inherit;
  line-height:inherit;
  color:inherit;
  background:transparent;
  border:none;
  cursor:pointer;
}

/* 场景切换 / Tab — 提前加载（不依赖 07-tabs-pages.css 导入顺序） */
.persona-bar {
  display:flex;
  gap:10px;
  flex-shrink:0;
  padding:8px 6px 4px;
  margin-top:0;
}

.persona-btn {
  flex:1;
  max-width:none;
  padding:12px 16px;
  font-size:15px;
  font-weight:700;
  letter-spacing:.06em;
  border:1px solid var(--line-tab-btn, rgba(255,140,60,.25));
  border-radius:8px;
  background:var(--surface-input, rgba(30,8,6,.7));
  color:var(--muted, #f0d4b8);
  cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.persona-btn:hover {
  color:var(--accent-text, #ffe566);
  background:var(--surface-hover2, rgba(196,30,30,.12));
  border-color:var(--border, rgba(255,210,120,.68));
}

.persona-btn.active {
  background:var(--grad-tab-active, linear-gradient(180deg, rgba(196,30,30,.45), rgba(55,14,10,.9)));
  color:var(--accent-text, #ffe566);
  border-color:var(--accent, #ffd666);
  box-shadow:0 0 16px var(--glow-tab, rgba(255,140,60,.15));
}

.tab-bar-sub .tab-btn,
.tab-btn {
  -webkit-appearance:none;
  appearance:none;
}


html,body {
  width:100%;
  height:100%;
  overflow:hidden;
  font-family:"Microsoft YaHei","PingFang SC",sans-serif;
  font-size:var(--fs-body);
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}


body::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background:
    radial-gradient(ellipse 90% 60% at 50% 0%, var(--body-radial-1), transparent 55%),
    radial-gradient(ellipse 70% 50% at 80% 100%, var(--body-radial-2), transparent),
    linear-gradient(180deg, var(--body-grad-top) 0%, var(--body-grad-mid) 40%, var(--body-grad-bot) 100%);
  pointer-events:none
}


body::after {
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:52px 52px;
  pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at center,black 30%,transparent 100%);
  mask-image:radial-gradient(ellipse 80% 70% at center,black 30%,transparent 100%)
}


#app {
  position:relative;
  z-index:1;
  width:100vw;
  height:100vh;
  display:flex;
  flex-direction:column;
  padding:10px 14px;
  gap:8px
}


#particles,
#particles2,
#particles3 {
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none
}


#particles2,
#particles3 {
  display: none;
}

.data-banner {
  flex-shrink: 0;
  margin: 0 0 8px;
  padding: 8px 14px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
  border: 1px solid rgba(250, 173, 20, 0.45);
  background: linear-gradient(90deg, rgba(250, 173, 20, 0.12), rgba(196, 30, 30, 0.18), rgba(250, 173, 20, 0.12));
  color: #ffe58f;
  box-shadow: 0 0 16px rgba(250, 173, 20, 0.12);
}
.data-banner.hidden { display: none; }
#app > .data-banner { position: relative; z-index: 3; }

/* ===== 03-header.css ===== */
/* ── 顶部大屏 Header ── */

.header {
  position: relative;
  flex-shrink: 0;
  min-height: 110px;
  height: 110px;
  display: grid;
  grid-template-columns: minmax(230px, 270px) minmax(280px, 1fr) minmax(240px, 320px);
  align-items: center;
  gap: 16px;
  padding: 0 16px;
  background: linear-gradient(180deg, var(--header-bg1) 0%, var(--header-bg2) 100%);
  border: 1px solid var(--border);
  border-radius: 4px;
  box-shadow:
    0 0 24px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  overflow: visible;
}

.header::before,
.header::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  pointer-events: none;
  z-index: 3;
}

.header::before {
  top: 6px;
  left: 6px;
  border-top: 2px solid var(--header-accent);
  border-left: 2px solid var(--header-accent);
  box-shadow: -1px -1px 8px var(--glow);
}

.header::after {
  bottom: 6px;
  right: 6px;
  border-bottom: 2px solid var(--header-accent);
  border-right: 2px solid var(--header-accent);
  box-shadow: 1px 1px 8px var(--glow);
}

.header-inner-corners {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
}

.header-inner-corners::before,
.header-inner-corners::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
}

.header-inner-corners::before {
  top: 6px;
  right: 6px;
  border-top: 2px solid var(--header-accent2);
  border-right: 2px solid var(--header-accent2);
  opacity: 0.7;
}

.header-inner-corners::after {
  bottom: 6px;
  left: 6px;
  border-bottom: 2px solid var(--header-accent2);
  border-left: 2px solid var(--header-accent2);
  opacity: 0.7;
}

/* ── 左侧品牌：Logo + 站名一体化 ── */
.header-brand {
  display: flex;
  align-items: center;
  min-width: 0;
  z-index: 2;
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  text-decoration: none;
  padding: 4px 6px 4px 4px;
  border-radius: 12px;
  transition: background 0.25s ease, transform 0.25s ease;
}

.brand-lockup:hover {
  background: rgba(255, 255, 255, 0.04);
  transform: translateY(-1px);
}

.brand-mark {
  position: relative;
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
}

.brand-mark-orbit {
  position: absolute;
  inset: -2px;
  border-radius: 14px;
  border: 1px dashed var(--brand-orbit);
}

.brand-mark-core {
  position: relative;
  z-index: 1;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow:
    0 0 0 1px var(--brand-mark-ring),
    0 4px 16px rgba(0, 0, 0, 0.4),
    0 0 20px var(--brand-mark-glow);
}

.brand-mark-core svg {
  display: block;
  width: 100%;
  height: 100%;
}

.brand-mark-core img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.brand-mark-shine {
  display: none;
}

.brand-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.brand-name {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background: var(--brand-name-grad);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 8px var(--glow-text-soft));
}

.brand-domain {
  font-size: 12px;
  font-weight: 700;
  font-family: Consolas, "Segoe UI", monospace;
  letter-spacing: 0.06em;
  color: var(--header-accent2);
  text-shadow: 0 0 10px var(--glow);
  opacity: 0.92;
}

@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(0.85); }
}

/* ── 中间大标题：SVG 底图 + 广告字 + 鸿蒙开机动效 ── */
.header-center {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  z-index: 2;
  padding: 0 8px;
}

.title-banner {
  position: relative;
  width: min(780px, 98%);
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 0;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.4) 5%,
    #000 16%,
    #000 84%,
    rgba(0, 0, 0, 0.4) 95%,
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.4) 5%,
    #000 16%,
    #000 84%,
    rgba(0, 0, 0, 0.4) 95%,
    transparent 100%
  );
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.title-banner-glow {
  position: absolute;
  inset: -4% 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0.82;
  background:
    radial-gradient(ellipse 68% 100% at 50% 42%, var(--banner-glow-a) 0%, transparent 62%),
    radial-gradient(ellipse 82% 120% at 50% 50%, var(--banner-glow-b) 0%, transparent 78%);
}

.title-banner-particles,
.title-banner-streaks,
.title-banner-burst,
.title-glint {
  display: none !important;
}

.title-banner-plate {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--banner-plate-bg);
}

.title-banner-plate::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 10%;
  height: 2px;
  background: var(--banner-line);
  opacity: 0.85;
  filter: drop-shadow(0 0 6px var(--glow));
}

html[data-theme="legend"] .title-banner-plate {
  display: none;
}

html:not([data-theme="legend"]) .title-banner-bg {
  display: none;
}

.title-banner-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
  z-index: 0;
  filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.28));
  opacity: 1;
  transform: none;
  animation: none;
}

.title-banner-text {
  position: relative;
  z-index: 4;
  margin: 0;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  line-height: 1;
  text-align: center;
  opacity: 1;
  filter: none;
  animation: none;
}

.title-banner-sweep {
  position: absolute;
  inset: 8% 4%;
  border-radius: 2px;
  overflow: hidden;
  pointer-events: none;
  z-index: 2;
  mix-blend-mode: overlay;
}

.title-banner-sweep::before {
  content: "";
  position: absolute;
  inset: -50% -80%;
  background: linear-gradient(
    105deg,
    transparent 46%,
    rgba(255, 255, 255, 0.12) 49%,
    rgba(255, 255, 255, 0.7) 50%,
    rgba(255, 255, 255, 0.12) 51%,
    transparent 54%
  );
  animation: harmony-sweep 5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  animation-delay: 1.2s;
}

.title-banner-sweep-2::before {
  background: linear-gradient(
    75deg,
    transparent 47%,
    rgba(255, 255, 255, 0.08) 49.5%,
    rgba(255, 255, 255, 0.4) 50.5%,
    rgba(255, 255, 255, 0.08) 52%,
    transparent 55%
  );
  animation: harmony-sweep-2 6.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  animation-delay: 2.8s;
}

@keyframes harmony-sweep {
  0% { transform: translateX(-70%); opacity: 0; }
  6% { opacity: 1; }
  42% { transform: translateX(70%); opacity: 1; }
  52% { opacity: 0; }
  100% { transform: translateX(95%); opacity: 0; }
}

@keyframes harmony-sweep-2 {
  0% { transform: translateX(70%); opacity: 0; }
  6% { opacity: 0.7; }
  42% { transform: translateX(-70%); opacity: 0.7; }
  52% { opacity: 0; }
  100% { transform: translateX(-95%); opacity: 0; }
}

.title-main-wrap {
  position: relative;
  display: inline-block;
  padding: 0 0.04em;
}

.title-main-wrap,
.title-main-shadow,
.title-main-face {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", Arial, Helvetica, sans-serif;
  font-size: clamp(26px, 3.1vw, 38px);
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.15;
}

html[data-theme="legend"] .title-banner-bg {
  display: block;
}

.title-main-shadow {
  position: absolute;
  left: 0;
  top: 0.1em;
  z-index: 0;
  color: var(--title-main-shadow-deep);
  -webkit-text-fill-color: var(--title-main-shadow);
  text-shadow:
    0 1px 0 var(--title-main-shadow-deep),
    0 2px 4px rgba(0, 0, 0, 0.55);
  pointer-events: none;
  opacity: 0.85;
}

.title-main-face {
  position: relative;
  z-index: 1;
  display: inline-block;
  background: var(--title-main-grad);
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter:
    drop-shadow(0 0 10px var(--title-main-glow))
    drop-shadow(0 0 22px var(--title-main-glow-soft))
    drop-shadow(0 2px 3px rgba(0, 0, 0, 0.55));
}

.title-main-sweep {
  position: absolute;
  inset: -8% -4%;
  overflow: hidden;
  pointer-events: none;
  z-index: 2;
  border-radius: 2px;
}

.title-main-sweep::after {
  content: "";
  position: absolute;
  top: -30%;
  bottom: -30%;
  left: 0;
  width: 38%;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.05) 38%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 220, 140, 0.35) 58%,
    rgba(255, 255, 255, 0.05) 62%,
    transparent 100%
  );
  transform: skewX(-16deg) translateX(-160%);
  animation: title-text-sweep 5.5s ease-in-out infinite;
  animation-delay: 1s;
}

@keyframes title-text-sweep {
  0%, 68%, 100% {
    transform: skewX(-16deg) translateX(-160%);
    opacity: 0;
  }
  8% { opacity: 1; }
  42% {
    transform: skewX(-16deg) translateX(280%);
    opacity: 0.95;
  }
  52% { opacity: 0; }
}

/* 兼容旧类名（隐藏） */
.title-brush-wrap,
.title-brush-main,
.title-depth,
.title-face {
  display: none !important;
}

.title-glint {
  position: absolute;
  width: 36px;
  height: 36px;
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  animation: title-glint-flash 3.6s ease-in-out infinite;
}

.title-glint::before,
.title-glint::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #fffef8;
  box-shadow:
    0 0 12px 4px rgba(255, 250, 210, 0.98),
    0 0 24px 8px rgba(255, 180, 60, 0.65),
    0 0 40px 12px rgba(255, 100, 80, 0.28);
}

.title-glint::before {
  width: 100%;
  height: 2px;
  border-radius: 1px;
}

.title-glint::after {
  width: 2px;
  height: 100%;
  border-radius: 1px;
}

.title-glint-a {
  left: 7%;
  top: 22%;
  animation-delay: 1.4s;
}

.title-glint-b {
  right: 5%;
  top: 24%;
  animation-delay: 2.4s;
}

.title-glint-c {
  left: 18%;
  top: 58%;
  width: 24px;
  height: 24px;
  animation-delay: 0.8s;
}

.title-glint-d {
  right: 14%;
  top: 56%;
  width: 28px;
  height: 28px;
  animation-delay: 3.1s;
}

@keyframes title-glint-flash {
  0%, 78%, 100% { opacity: 0; transform: scale(0.35) rotate(0deg); }
  86% { opacity: 1; transform: scale(1.05) rotate(18deg); }
  93% { opacity: 0.75; transform: scale(1.2) rotate(18deg); }
}

.title-dot {
  position: relative;
  z-index: 1;
  color: var(--title-sep-color);
  opacity: 0.8;
  -webkit-text-fill-color: var(--title-sep-color);
  background: none;
  filter: drop-shadow(0 0 6px rgba(255, 180, 60, 0.35));
  animation: none;
}

/* 隐藏旧标题结构 */
.title-hero,
.title-hero-halo,
.title-hero-crest,
.title-hero-plate,
.title-hero-body,
.title-hero-wing,
.title-sweep,
.title-lens,
.title-hero-beam,
.title-shadow,
.title-layer,
.title-part,
.title-plaque {
  display: none !important;
}

/* ── 右侧状态 ── */
.header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  z-index: 2;
}

/* 顶部右侧配色主题 */
.theme-bar-header {
  justify-content: flex-end;
  gap: 4px;
  padding: 2px 8px;
  max-width: 100%;
}

.theme-bar-header .theme-bar-label {
  font-size: 9px;
  margin-right: 0;
  white-space: nowrap;
}

.theme-bar-header .theme-pill {
  padding: 1px 7px;
  font-size: 9px;
}

.header-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  justify-content: flex-end;
  max-width: 100%;
}

.meta-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.12);
  white-space: nowrap;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.meta-chip.live {
  border-color: var(--live-border);
  max-width: none;
}

.meta-chip.live .dot {
  flex-shrink: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--live-dot);
  box-shadow: 0 0 6px var(--live-dot-glow);
  animation: pulse-dot 1.5s ease-in-out infinite;
}

.meta-chip.sync.is-live {
  border-color: rgba(82, 196, 26, 0.5);
  color: #b7eb8f;
}

.meta-chip.sync.is-stale {
  border-color: rgba(250, 173, 20, 0.5);
  color: #ffe58f;
}

.meta-chip.sync.is-mock {
  border-color: rgba(255, 77, 79, 0.55);
  color: #ffccc7;
}

.meta-chip.live.is-refreshing {
  opacity: 0.65;
}

.meta-chip.sync {
  border-color: rgba(255, 255, 255, 0.15);
  font-family: Consolas, monospace;
  max-width: 220px;
}

.header-clock {
  font-size: 12px;
  font-weight: 700;
  font-family: Consolas, "Segoe UI", monospace;
  letter-spacing: 0.04em;
  color: var(--header-accent2);
  text-shadow: 0 0 10px var(--glow);
  white-space: nowrap;
}

/* 配色主题切换 */
.theme-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 3px 10px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.theme-bar-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: 0.06em;
  margin-right: 2px;
}

.theme-pill {
  padding: 2px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(0, 0, 0, 0.25);
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}

.theme-pill:hover {
  border-color: var(--header-accent);
  color: var(--text);
}

.theme-pill.active {
  border-color: var(--header-accent);
  color: var(--header-accent2);
  background: var(--surface-active);
  box-shadow: 0 0 12px var(--glow);
}

.theme-pill[data-theme="legend"].active,
.theme-pill[data-theme="classic"].active,
.theme-pill[data-theme="heat"].active,
.theme-pill[data-theme="cyan"].active,
.theme-pill[data-theme="violet"].active,
.theme-pill[data-theme="emerald"].active {
  background: var(--surface-active);
}

.auth-badge,
.brand-auth,
.title-watermark,
.subtitle,
.theme-switcher {
  display: none !important;
}

/* ===== 04-kpi.css ===== */
.kpi-row {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:8px;
  min-height:82px;
  height:auto
}


.kpi {
  position:relative;
  border:1px solid var(--border);
  background:linear-gradient(145deg,var(--kpi-a),var(--kpi-b));
  padding:10px 14px;
  overflow:hidden;
  animation:panelIn .6s ease backwards;
  box-shadow:var(--kpi-shadow)
}


.kpi:nth-child(1) { animation-delay:.1s }
.kpi:nth-child(2) { animation-delay:.2s }
.kpi:nth-child(3) { animation-delay:.3s }
.kpi:nth-child(4) { animation-delay:.4s }
.kpi:nth-child(5) { animation-delay:.5s }
.kpi:nth-child(6) { animation-delay:.6s }


@keyframes panelIn {
  from { opacity: 0; transform: translateY(16px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}


.kpi::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:var(--grad-kpi-bar)
}


.kpi::after {
  content:"";
  position:absolute;
  top:-50%;
  right:-20%;
  width:80px;
  height:80px;
  background:radial-gradient(circle,var(--glow-radial),transparent);
  pointer-events:none
}


.kpi-label {
  font-size:var(--fs-hint);
  color:var(--muted);
  margin-bottom:4px
}


.kpi-value {
  font-size:28px;
  font-weight:700;
  color:var(--accent-text);
  font-family:Consolas,monospace;
  text-shadow:0 0 14px var(--glow-text),0 0 28px var(--glow-kpi)
}


.kpi-sub {
  font-size:var(--fs-small);
  margin-top:3px;
  color:var(--accent-text2)
}

/* ===== 05-layout.css ===== */
.main {
  flex:1;
  display:grid;
  grid-template-columns:26fr 48fr 26fr;
  gap:8px;
  min-height:0
}


.panel {
  border:1px solid var(--border);
  background:linear-gradient(160deg,var(--surface-a),var(--surface-b));
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
  position:relative;
  animation:panelIn .8s ease backwards;
  box-shadow:var(--panel-shadow)
}


.panel::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--scan-line),transparent);
  z-index:2
}


.panel::after {
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid var(--inner-border);
  pointer-events:none;
  border-radius:2px
}


.panel .corner-bracket {
  position:absolute;
  width:14px;
  height:14px;
  border:2px solid var(--gold2);
  opacity:.9;
  z-index:2;
  box-shadow:0 0 8px var(--glow-panel)
}


.panel .corner-bracket.tl { top:3px; left:3px; border-right:none; border-bottom:none }
.panel .corner-bracket.tr { top:3px; right:3px; border-left:none; border-bottom:none }
.panel .corner-bracket.bl { bottom:3px; left:3px; border-right:none; border-top:none }
.panel .corner-bracket.br { bottom:3px; right:3px; border-left:none; border-top:none }


@keyframes panelScan {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}


.panel-head {
  padding:7px 12px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-shrink:0;
  background:linear-gradient(90deg,var(--panel-head-bg),transparent);
  position:relative;
  overflow:hidden
}


.panel-head::after {
  display: none;
}


.panel-head h3 {
  font-size:14px;
  color:var(--accent-text);
  letter-spacing:1px;
  display:flex;
  align-items:center;
  gap:6px;
  text-shadow:0 0 10px var(--glow-text-soft)
}


.panel-head h3::before {
  content:"";
  width:4px;
  height:14px;
  background:var(--grad-head-bar);
  box-shadow:0 0 8px var(--gold2)
}


.panel-body {
  flex:1;
  min-height:0;
  position:relative
}


.chart {
  width:100%;
  height:100%;
  min-height:140px
}


.chart-hourly { min-height:180px }
.center-bottom .chart-hourly { min-height:150px }
.chart-bar { min-height:150px }


.word-chart {
  flex:1;
  min-height:120px;
  min-width:0;
  width:100%
}


.col-left,.col-right {
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0
}


.col-left .panel:first-child { flex:1.1 }
.col-left .panel:last-child { flex:.9 }
.col-right .panel:first-child { flex:1 }
.col-right .panel:last-child { flex:1.15; min-height:200px }


.center-col {
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0
}


.center-top { flex:1.05; min-height:0 }
.center-bottom { flex:1; min-height:0 }

.center-top .ticker-wrap {
  min-height:160px;
}

#hourlyPanel .panel-body {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
}

#hourlyPanel .chart-hourly {
  flex:1;
  min-height:150px;
}

.ticker-wrap {
  height:100%;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.ticker-viewport {
  flex:1;
  min-height:0;
  overflow:hidden;
  position:relative;
  isolation:isolate;
  -webkit-mask-image:linear-gradient(180deg,transparent,black 6%,black 92%,transparent);
  mask-image:linear-gradient(180deg,transparent,black 6%,black 92%,transparent);
}

.ticker {
  will-change:transform;
  transform:translateZ(0);
}

.ticker.is-css-scroll {
  animation:scrollUp 25s linear infinite;
}

.ticker-viewport:hover .ticker.is-css-scroll {
  animation-play-state:paused;
}

@keyframes scrollUp {
  from { transform:translate3d(0,0,0); }
  to { transform:translate3d(0,-50%,0); }
}


.ticker-row {
  display:grid;
  grid-template-columns:64px minmax(90px,1.1fr) 118px 76px 44px 68px;
  gap:6px;
  padding:7px 12px;
  font-size:11px;
  border-bottom:1px solid var(--line-soft);
  transition:background .2s, font-size .2s, padding .2s;
  align-items:center;
}

.ticker-row .t-col-line,
.ticker-row .t-col-qq {
  display:none;
}

.ticker-head {
  display:none;
  grid-template-columns:64px minmax(90px,1.1fr) 118px 76px 44px 68px;
  gap:6px;
  padding:8px 12px;
  font-size:11px;
  font-weight:600;
  color:var(--muted);
  border-bottom:1px solid var(--line);
  background:var(--surface-hover2);
  flex-shrink:0;
  position:relative;
  z-index:3;
}

.overview-charts.is-ticker-expanded .ticker-head {
  display:grid;
  grid-template-columns:72px minmax(140px,1.2fr) minmax(110px,1fr) 136px 88px 48px minmax(72px,0.8fr) 76px;
  gap:10px;
  padding:10px 18px;
  font-size:12px;
  background:linear-gradient(160deg,rgb(75,20,14),rgb(45,12,8));
  box-shadow:0 1px 0 var(--line),0 8px 18px rgba(0,0,0,.45);
}

.overview-charts.is-ticker-expanded .ticker-row {
  grid-template-columns:72px minmax(140px,1.2fr) minmax(110px,1fr) 136px 88px 48px minmax(72px,0.8fr) 76px;
  gap:10px;
  padding:10px 18px;
  font-size:13px;
}

.overview-charts.is-ticker-expanded .ticker-row .t-col-line,
.overview-charts.is-ticker-expanded .ticker-row .t-col-qq {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.t-col-name,
.t-col-line,
.t-col-qq {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.t-col-go {
  text-align:center;
}

.link-btn-ticker {
  font-size:inherit;
  font-weight:600;
  white-space:nowrap;
}

.overview-charts.is-ticker-expanded .link-btn-ticker {
  font-size:13px;
}


.ticker-row:hover {
  background:var(--surface-hover);
}

/* ===== 06-rank-tags.css ===== */
.tag {
  display:inline-block;
  padding:1px 7px;
  border-radius:3px;
  font-size:10px;
  border:1px solid;
  font-weight:600
}


.tag-8xf { color:var(--tag-1); border-color:var(--tag-1); background:var(--tag-1-bg) }
.tag-kcq { color:var(--gold); border-color:var(--gold); background:var(--tag-2-bg) }
.tag-haosf { color:var(--tag-3); border-color:var(--tag-3); background:var(--tag-3-bg) }
.tag-cq8 { color:var(--accent-text); border-color:var(--accent-text); background:var(--tag-4-bg) }
.tag-ffpk { color:var(--danger); border-color:var(--danger); background:var(--tag-5-bg) }
.tag-9pk { color:var(--accent-warm); border-color:var(--accent-warm); background:var(--tag-6-bg) }

/* 广告类型标签（PC） */
.type-th,
.type-wd,
.type-jp,
.type-tx {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 600;
  border: 1px solid;
  line-height: 1.35;
  white-space: nowrap;
}

.type-th { color: var(--warning); border-color: var(--warning-border); background: var(--warning-bg2); }
.type-wd { color: var(--accent-warm); border-color: rgba(185,28,28,.35); background: var(--danger-bg); }
.type-jp { color: var(--tag-3); border-color: var(--tag-3); background: var(--tag-3-bg); }
.type-tx { color: var(--tag-1); border-color: var(--tag-1); background: var(--tag-1-bg); }


.rank-list {
  padding:6px 10px;
  overflow:auto;
  height:100%
}


.rank-item {
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px;
  margin-bottom:3px;
  background:var(--surface-rank);
  border-radius:4px;
  font-size:11px;
  transition:transform .2s,background .2s,box-shadow .2s
}


.rank-item:hover {
  transform:translateX(4px);
  background:var(--surface-rank-hover);
  box-shadow:0 0 12px var(--glow-rank)
}


.rank-item.top1 {
  border-left:3px solid var(--rank-top1);
  box-shadow:inset 4px 0 12px var(--glow-top1)
}


.rank-item.top2 { border-left:3px solid var(--rank-top2) }
.rank-item.top3 { border-left:3px solid var(--rank-top3) }


.rank-no {
  width:20px;
  height:20px;
  border-radius:4px;
  background:var(--surface-rank-no);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:11px;
  color:var(--accent-text)
}


.rank-name {
  flex:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}


.rank-bar-wrap {
  width:70px;
  height:5px;
  background:var(--rank-bar-track);
  border-radius:3px;
  overflow:hidden
}


.rank-bar {
  height:100%;
  background:var(--grad-rank-bar);
  border-radius:3px;
  transition:width 1.4s cubic-bezier(.4,0,.2,1);
  box-shadow:0 0 6px var(--glow-rank-bar)
}


.rank-count {
  width:42px;
  text-align:right;
  color:var(--accent-text);
  font-family:Consolas,monospace;
  font-size:11px
}


.rank-pct {
  width:38px;
  text-align:right;
  color:var(--accent-warm);
  font-size:10px;
  font-family:Consolas,monospace
}


.rank-panel {
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:8px
}


.rank-table-wrap {
  flex:1;
  overflow:auto;
  min-height:0
}


.rank-toolbar {
  display:flex;
  gap:8px;
  align-items:center;
  padding:8px 12px;
  border-bottom:1px solid var(--line-mid);
  flex-wrap:wrap
}


.rank-toolbar select,.rank-toolbar input {
  background:var(--surface-soft);
  border:1px solid var(--line-strong);
  color:var(--text);
  padding:5px 10px;
  font-size:11px;
  border-radius:3px
}


.score-bar {
  display:inline-block;
  width:48px;
  height:4px;
  background:var(--score-bar-track);
  border-radius:2px;
  vertical-align:middle;
  margin-left:6px;
  overflow:hidden
}


.score-bar i {
  display:block;
  height:100%;
  background:var(--grad-score-bar);
  border-radius:2px
}

/* ===== 07-tabs-pages.css ===== */
.tab-bar {
  display:flex;
  gap:4px;
  flex-shrink:0;
  padding:0 2px;
  border-bottom:1px solid var(--line-tab);
  align-items:flex-end;
  flex-wrap:wrap
}

.persona-bar {
  display:flex;
  gap:10px;
  flex-shrink:0;
  padding:8px 6px 4px;
  margin-top:0
}

.persona-btn {
  flex:1;
  max-width:none;
  padding:12px 16px;
  font-size:15px;
  font-weight:700;
  letter-spacing:.06em;
  -webkit-appearance:none;
  appearance:none;
  font-family:inherit;
  border:1px solid var(--line-tab-btn, rgba(255,140,60,.25));
  border-radius:8px;
  background:var(--surface-input, rgba(30,8,6,.7));
  color:var(--muted, #f0d4b8);
  cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.persona-btn:hover {
  color:var(--accent-text, #ffe566);
  background:var(--surface-hover2, rgba(196,30,30,.12));
  border-color:var(--border, rgba(255,210,120,.68));
}

.persona-btn.active {
  background:var(--grad-tab-active, linear-gradient(180deg, rgba(196,30,30,.45), rgba(55,14,10,.9)));
  color:var(--accent-text, #ffe566);
  border-color:var(--accent, #ffd666);
  box-shadow:0 0 16px var(--glow-tab, rgba(255,140,60,.15));
}

.tab-bar-sub {
  gap:10px;
  padding:10px 12px 12px;
  margin:0 4px 6px;
  border-bottom:none;
  border-radius:12px;
  align-items:center;
  background:linear-gradient(180deg,rgba(0,0,0,.22),rgba(0,0,0,.08));
  border:1px solid rgba(255,160,60,.14);
  box-shadow:inset 0 1px 0 rgba(255,220,140,.06),0 4px 16px rgba(0,0,0,.25)
}

.tab-bar-label {
  font-size:13px;
  font-weight:700;
  color:rgba(255,214,140,.75);
  letter-spacing:.14em;
  padding:0 10px 0 6px;
  flex-shrink:0
}

.tab-bar-sub .tab-btn {
  padding:11px 22px;
  font-size:14px;
  font-weight:600;
  letter-spacing:.06em;
  border-radius:9px;
  border:1px solid rgba(255,160,60,.18);
  border-bottom:1px solid rgba(255,160,60,.18);
  background:linear-gradient(180deg,rgba(58,18,12,.92) 0%,rgba(32,8,6,.96) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,220,140,.08),
    0 3px 10px rgba(0,0,0,.32),
    0 1px 2px rgba(0,0,0,.4);
  transform:translateY(0);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,color .18s ease,background .18s ease
}

.tab-bar-sub .tab-btn:hover {
  color:var(--accent-text);
  border-color:rgba(255,190,90,.32);
  background:linear-gradient(180deg,rgba(72,24,16,.95) 0%,rgba(40,12,8,.98) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,220,140,.12),
    0 5px 14px rgba(0,0,0,.38),
    0 0 0 1px rgba(255,160,60,.08);
  transform:translateY(-1px)
}

.tab-bar-sub .tab-btn.active {
  color:#ffe4a8;
  border-color:rgba(255,200,100,.42);
  background:linear-gradient(180deg,rgba(110,38,18,.98) 0%,rgba(68,20,10,.99) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,230,160,.18),
    0 6px 20px rgba(255,100,40,.12),
    0 4px 12px rgba(0,0,0,.42);
  transform:translateY(-2px)
}

.tab-bar-more {
  display:inline-flex;
  gap:4px;
  margin-left:auto
}

.tab-btn-muted {
  opacity:.82;
  font-size:14px;
  padding:11px 22px
}

.tab-btn-muted:hover,
.tab-btn-muted.active {
  opacity:1
}

.tab-btn-link {
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:4px;
  cursor:pointer;
}
.tab-btn-link::after {
  content:"→";
  font-size:11px;
  opacity:.75;
}

.gm-panel .gm-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--line-soft);
}

#tabGm.active .gm-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}

.gm-search-zone {
  flex-shrink: 0;
  transition: opacity 0.28s ease, transform 0.28s ease, max-height 0.32s ease;
}

.gm-results-zone {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.gm-results-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--line-mid);
  background: var(--gm-stat-bar-bg);
  flex-shrink: 0;
}

.gm-results-bar-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  flex: 1;
  min-width: 0;
  font-size: 13px;
  color: var(--text);
}

.gm-bar-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 2px 10px;
  border-radius: 999px;
  border: 1px solid var(--gm-stat-card-border);
  background: var(--gm-stat-card-bg);
  white-space: nowrap;
}

.gm-bar-chip b {
  color: var(--gm-stat-accent);
  font-size: 15px;
  font-weight: 800;
  font-family: Consolas, monospace;
}

.gm-bar-chip.is-fee b,
.gm-bar-chip.is-fee .gm-fee {
  color: var(--gm-fee);
}

.gm-bar-chip.is-kw {
  max-width: 42vw;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gm-stats-zone {
  flex-shrink: 0;
  padding: 8px 12px 0;
  border-bottom: 1px solid var(--line-soft);
}

.gm-stats-zone.hidden {
  display: none;
}

.gm-stat-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(108px, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

.gm-stat-card {
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid var(--gm-stat-card-border);
  background: var(--gm-stat-card-bg);
  text-align: center;
}

.gm-stat-card-label {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-bottom: 3px;
  letter-spacing: 0.04em;
}

.gm-stat-card-val {
  display: block;
  font-size: 18px;
  font-weight: 800;
  color: var(--gm-stat-accent);
  font-family: Consolas, "Microsoft YaHei UI", monospace;
  line-height: 1.2;
}

.gm-stat-card.is-fee .gm-stat-card-val,
.gm-stat-card.is-fee .gm-fee {
  color: var(--gm-fee);
  font-size: 20px;
}

.gm-stat-card.is-kw .gm-stat-kw {
  font-size: 12px;
  font-weight: 700;
  color: var(--accent-text);
  word-break: break-all;
}

.gm-stat-panels {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(220px, 0.75fr);
  gap: 8px;
  margin-bottom: 8px;
}

.gm-stat-panel {
  border: 1px solid var(--gm-stat-card-border);
  border-radius: 6px;
  background: var(--gm-stat-panel-bg);
  overflow: hidden;
}

.gm-stat-panel-head {
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--gm-detail-head);
  border-bottom: 1px solid var(--line-soft);
  background: var(--gm-stat-head-bg);
}

.gm-stat-table-wrap {
  max-height: min(28vh, 240px);
  overflow: auto;
}

.gm-panel.is-expanded .gm-stat-table-wrap {
  max-height: min(32vh, 280px);
}

.gm-stat-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}

.gm-stat-table th,
.gm-stat-table td {
  padding: 6px 8px;
  border-bottom: 1px solid var(--line-soft);
  vertical-align: middle;
}

.gm-stat-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--gm-stat-head-bg);
  color: var(--muted);
  font-weight: 600;
  white-space: nowrap;
}

.gm-stat-table tfoot td {
  background: var(--gm-stat-head-bg);
  font-weight: 700;
  border-top: 1px solid var(--line-mid);
}

.gm-stat-count {
  display: block;
  font-weight: 700;
  color: var(--text);
  line-height: 1.2;
}

.gm-stat-fee {
  display: block;
  font-size: 10px;
  color: var(--gm-stat-fee, var(--gm-fee));
  font-weight: 700;
  font-family: Consolas, monospace;
}

.gm-stat-zero {
  color: var(--muted);
  opacity: 0.45;
}

.gm-stat-total-row .gm-fee-total {
  font-size: 14px;
  font-weight: 800;
  color: var(--gm-fee-total);
}

.gm-rank-row.gm-rank-top1 .gm-fee { color: var(--gm-fee-total); font-size: 13px; }
.gm-rank-row.gm-rank-top1 td:first-child { color: var(--gold); font-weight: 800; }

.gm-detail-head {
  padding: 6px 4px 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--gm-detail-head);
  letter-spacing: 0.06em;
}

.gm-detail-head span {
  margin-left: 8px;
  font-size: 11px;
  font-weight: 500;
  color: var(--muted);
}

.gm-detail-wrap {
  border-top: 1px solid var(--line-soft);
}

.gm-search-table .gm-fee,
.gm-stat-table .gm-fee {
  color: var(--gm-fee);
  background: var(--gm-fee-bg);
  font-weight: 800;
  font-family: Consolas, "Microsoft YaHei UI", monospace;
  font-size: 13px;
  letter-spacing: -0.02em;
  padding: 2px 6px;
  border-radius: 3px;
}

.gm-search-table .gm-fee-total,
.gm-group-total .gm-fee {
  color: var(--gm-fee-total);
  font-size: 14px;
  background: var(--gm-fee-bg-strong, var(--gm-fee-bg));
}

.gm-search-table .gm-col-name strong {
  color: var(--text);
  font-weight: 700;
}

.gm-search-table .gm-data-row:nth-child(even) {
  background: var(--surface-hover2);
}

.gm-search-table .gm-data-row:hover {
  background: var(--table-hover);
}

.gm-summary b {
  color: var(--gm-stat-accent);
  font-size: 20px;
  font-weight: 800;
  font-family: Consolas, monospace;
  margin: 0 4px;
  letter-spacing: -0.02em;
}

.gm-summary.is-result {
  color: var(--text);
  background: var(--gm-stat-bar-bg);
  border-left: 3px solid var(--gm-stat-accent);
  padding-left: 13px;
}

.gm-results-bar.hidden {
  display: none;
}

.gm-summary-compact {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  flex: 1;
  min-width: 0;
  font-size: 13px;
  line-height: 1.4;
}

.gm-panel.is-expanded .gm-search-zone {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateY(-8px);
}

body.gm-fullscreen-open {
  overflow: hidden;
}

.gm-panel.is-expanded {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: 100dvh;
  margin: 0;
  border-radius: 0;
  border: none;
  background: var(--bg2, var(--bg));
  box-shadow: none;
  animation: panelExpandIn 0.28s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.gm-panel.is-expanded .gm-results-zone {
  position: static;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  background: transparent;
  box-shadow: none;
  border-top: none;
  animation: none;
}

.gm-panel.is-expanded .gm-results-bar {
  display: flex;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 12;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line-mid);
}

.gm-panel.is-expanded .gm-stat-cards {
  display: none;
}

.gm-stats-collapse {
  border: 1px solid var(--gm-stat-card-border);
  border-radius: 6px;
  margin-bottom: 8px;
  background: var(--gm-stat-panel-bg);
  overflow: hidden;
}

.gm-stats-collapse-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--gm-detail-head);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.gm-stats-collapse-summary::-webkit-details-marker {
  display: none;
}

.gm-stats-collapse-summary::after {
  content: "▾";
  color: var(--gm-detail-head);
  font-size: 12px;
  transition: transform 0.2s;
}

.gm-stats-collapse:not([open]) .gm-stats-collapse-summary::after {
  transform: rotate(-90deg);
}

.gm-stats-collapse[open] .gm-stat-panels,
.gm-stats-collapse[open] .gm-stat-cards {
  padding-bottom: 4px;
}

.gm-panel.is-expanded .gm-stats-zone {
  flex-shrink: 0;
  max-height: none;
  overflow: visible;
  padding: 6px 12px 0;
}

.gm-panel.is-expanded .gm-stat-table-wrap {
  max-height: none;
  overflow: visible;
}

.gm-panel.is-expanded .gm-detail-head {
  flex-shrink: 0;
  position: sticky;
  top: 46px;
  z-index: 8;
  background: var(--gm-stat-head-bg);
  margin: 0;
  padding: 8px 12px;
  border-top: 1px solid var(--line-mid);
  border-bottom: 1px solid var(--line-soft);
}

.gm-panel.is-expanded .gm-detail-wrap {
  flex: none;
  min-height: 0;
  overflow: visible;
}

.gm-panel.is-expanded .gm-detail-wrap.gm-table-wrap {
  max-height: none;
  overflow: visible;
}

.gm-panel:not(.is-expanded) .gm-table-wrap {
  max-height: min(42vh, 520px);
}

.gm-panel.is-results:not(.is-expanded) .gm-table-wrap {
  max-height: min(48vh, 560px);
}

.btn-gm-toggle {
  flex-shrink: 0;
  padding: 6px 14px !important;
  font-size: 12px !important;
  letter-spacing: 0.04em;
  border-color: var(--table-expand-border, rgba(255, 160, 60, 0.35)) !important;
  color: var(--accent-text) !important;
  background: var(--table-expand-bg, rgba(0, 0, 0, 0.25)) !important;
}

#btnGmExpand {
  display: none;
}

.gm-panel.is-expanded .btn-gm-toggle {
  background: var(--table-row-hover2, rgba(255, 160, 60, 0.12)) !important;
}

.gm-panel.is-results #btnGmExpand {
  display: inline-flex;
}

.gm-site-label {
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
}

.gm-summary {
  margin: 0;
  padding: 10px 16px 12px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid var(--line-mid);
  background: transparent;
  color: var(--muted);
  font-size: var(--fs-body);
  line-height: 1.5;
}

.gm-empty {
  text-align:center;
  color:var(--muted);
  padding:24px 8px
}

.gm-hot-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  padding:0 16px 12px;
  border-bottom:1px solid var(--line-soft);
}

.gm-hot-label {
  font-size:var(--fs-caption);
  color:var(--muted);
  white-space:nowrap;
}

.gm-hot-keys {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.gm-hot-key {
  border:1px solid var(--line-mid);
  background:rgba(255,255,255,.04);
  color:var(--text-soft);
  border-radius:999px;
  padding:4px 12px;
  font-size:var(--fs-caption);
  cursor:pointer;
  transition:border-color .15s,color .15s,background .15s;
}

.gm-hot-key:hover {
  border-color:var(--gold);
  color:var(--gold);
  background:rgba(212,168,75,.08);
}

.gm-search-input {
  min-width:min(320px,100%);
  flex:1 1 220px;
}

.gm-table-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
}

.gm-search-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--table-head-bg, var(--surface-soft));
  box-shadow: 0 1px 0 var(--line-mid);
}

.gm-search-table .gm-th-fee,
.gm-search-table .gm-fee {
  text-align: right;
  white-space: nowrap;
}

.gm-search-table .gm-col-name,
.gm-search-table .gm-col-ver,
.gm-search-table .gm-col-route {
  max-width: 140px;
}

.gm-panel.is-expanded .gm-search-table .gm-col-name {
  max-width: 200px;
}

.gm-panel.is-expanded .gm-search-table .gm-col-ver {
  max-width: 180px;
}

.gm-search-table .gm-col-url {
  max-width: 180px;
}

.gm-group-head td {
  background: linear-gradient(90deg, rgba(212, 168, 75, 0.12), transparent 70%);
  color: var(--gold);
  font-weight: 700;
  border-top: 1px solid var(--line-mid);
}

.gm-group-total td {
  background: rgba(0, 0, 0, 0.18);
  color: var(--text-soft);
  font-size: var(--fs-caption);
  border-bottom: 1px solid var(--line-mid);
}

.gm-group-total .gm-fee {
  font-size: var(--fs-body);
  font-weight: 800;
}

@media (max-width: 960px) {
  .gm-stat-panels {
    grid-template-columns: 1fr;
  }
}


.tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding:8px 18px;
  font-size:var(--fs-body);
  border:1px solid var(--line-tab-btn);
  border-bottom:none;
  background:var(--surface-input);
  color:var(--muted);
  cursor:pointer;
  border-radius:6px 6px 0 0;
  transition:all .2s;
  letter-spacing:1px
}


.tab-btn:hover {
  color:var(--accent-text);
  background:var(--surface-hover2)
}


.tab-btn.active {
  background:var(--grad-tab-active);
  color:var(--accent-text);
  border-color:var(--border);
  box-shadow:0 -2px 14px var(--glow-tab)
}

/* 推荐网站 Tab：悬停强调 */
.tab-btn-recommend {
  position: relative;
  overflow: hidden;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.tab-btn-recommend::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  background: radial-gradient(ellipse 80% 120% at 50% 100%, var(--glow-text-soft) 0%, transparent 70%);
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.tab-btn-recommend::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 45%;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.06) 42%,
    rgba(255, 255, 255, 0.35) 50%,
    rgba(255, 255, 255, 0.06) 58%,
    transparent 100%
  );
  transform: skewX(-18deg) translateX(-80%);
  opacity: 0;
  pointer-events: none;
}

.tab-btn-recommend:hover {
  color: var(--header-accent2);
  border-color: var(--header-accent);
  background: linear-gradient(180deg, rgba(255, 200, 80, 0.16) 0%, var(--surface-input) 100%);
  box-shadow:
    0 -3px 18px var(--glow-tab),
    0 0 22px var(--glow-text-soft),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
  text-shadow: 0 0 14px var(--glow-text-soft);
}

.tab-btn-recommend:hover::before {
  opacity: 1;
}

.tab-btn-recommend:hover::after {
  animation: tab-recommend-sweep 0.65s ease-out;
}

.tab-btn-recommend.active {
  background: var(--grad-tab-active);
  color: var(--header-accent2);
  border-color: var(--header-accent);
  box-shadow:
    0 -3px 20px var(--glow-tab),
    0 0 16px var(--glow-text-soft);
  text-shadow: 0 0 10px var(--glow-text-soft);
}

@keyframes tab-recommend-sweep {
  0% { transform: skewX(-18deg) translateX(-80%); opacity: 0; }
  15% { opacity: 1; }
  100% { transform: skewX(-18deg) translateX(130%); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .tab-btn-recommend:hover {
    transform: none;
  }
  .tab-btn-recommend:hover::after {
    animation: none;
  }
}


.tab-body {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:hidden
}


.tab-panel {
  display:none !important;
  flex:1;
  min-height:0;
  flex-direction:column;
  gap:8px;
  overflow:hidden;
  visibility:hidden;
  pointer-events:none;
  position:relative;
  z-index:1
}


.tab-panel.active {
  display:flex !important;
  visibility:visible;
  pointer-events:auto;
  z-index:5;
  background:var(--grad-tab-panel)
}


#tabRank .panel-fill,
#tabAnalysis .analysis-panel,
#tabSites .panel-fill,
#tabHistory .history-panel,
#tabCompare .compare-panel,
#tabRecommend .recommend-panel,
#tabGm .gm-panel {
  flex:1;
  min-height:0
}


#tabRecommend .recommend-panel {
  display:flex;
  flex-direction:column;
  min-height:0
}


.recommend-stream-panel {
  display:flex;
  flex-direction:column;
  min-height:0
}


.recommend-stream-panel .panel-body {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:0
}


.recommend-ticker-wrap {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden
}


.recommend-ticker-head {
  display:grid !important;
  grid-template-columns:72px minmax(140px,1.2fr) minmax(110px,1fr) 136px 88px 48px minmax(72px,0.8fr) 76px;
  gap:10px;
  padding:10px 18px;
  font-size:12px;
  font-weight:600;
  color:var(--muted);
  border-bottom:1px solid var(--line);
  background:linear-gradient(160deg,rgb(75,20,14),rgb(45,12,8));
  box-shadow:0 1px 0 var(--line),0 8px 18px rgba(0,0,0,.45);
  flex-shrink:0
}


.recommend-section-bar {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:10px 18px 8px;
  border-top:1px solid var(--line-soft);
  background:linear-gradient(90deg,rgba(212,160,23,.1),transparent 70%)
}

.recommend-section-featured .recommend-section-bar {
  border-top:none;
  background:linear-gradient(90deg,rgba(212,160,23,.16),transparent 70%)
}

.recommend-section-bar strong {
  color:var(--accent-text);
  font-size:14px;
  letter-spacing:.04em
}

.recommend-section-hint {
  color:var(--muted);
  font-size:12px;
  white-space:nowrap
}

.recommend-empty-inline {
  padding:24px 18px;
  text-align:center;
  color:var(--muted);
  font-size:13px
}

.recommend-section-live .recommend-section-bar {
  margin-top:4px;
  border-top:1px solid var(--line)
}


.recommend-layout {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:0;
  overflow:hidden
}

.btn-recommend-other {
  flex-shrink: 0;
  margin-left: auto;
  font-size: 12px;
  padding: 4px 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  border: none !important;
  background: transparent !important;
  color: rgba(255, 248, 232, 0.9) !important;
  box-shadow: none !important;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.btn-recommend-other:hover {
  color: var(--header-accent2) !important;
  background: transparent !important;
  text-decoration: underline;
  transform: none;
}

.recommend-stream-panel.is-live-open .btn-recommend-other {
  color: var(--header-accent2) !important;
}

.recommend-stream-panel.is-live-open .recommend-section-live {
  animation: sectionReveal 0.36s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.recommend-stream-panel.is-live-open .recommend-section-featured {
  animation: sectionFadeOut 0.28s ease forwards;
}

@keyframes sectionReveal {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes sectionFadeOut {
  from { opacity: 1; }
  to { opacity: 0.92; }
}

.recommend-stream-panel .recommend-section-live {
  display:none
}

.recommend-stream-panel.is-live-open .recommend-section-live {
  display:flex;
  flex-direction:column;
  min-height:0
}

.recommend-stream-panel.is-live-open .recommend-section-featured {
  flex:0 0 auto
}

.recommend-scroll-viewport {
  flex:1;
  min-height:260px;
  max-height:52vh;
  overflow-x:hidden;
  overflow-y:auto;
  position:relative;
  isolation:isolate;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:rgba(201,162,39,.35) transparent;
  -webkit-mask-image:linear-gradient(180deg,transparent,black 5%,black 92%,transparent);
  mask-image:linear-gradient(180deg,transparent,black 5%,black 92%,transparent)
}

.recommend-scroll-viewport::-webkit-scrollbar {
  width:6px
}

.recommend-scroll-viewport::-webkit-scrollbar-thumb {
  background:rgba(201,162,39,.35);
  border-radius:3px
}

.recommend-stream-panel.is-live-open .recommend-section-featured .recommend-scroll-viewport {
  min-height:168px;
  max-height:168px;
  flex:0 0 168px
}

.recommend-stream-panel.is-live-open .recommend-section-live {
  flex:1 1 0;
  min-height:0
}

.recommend-stream-panel.is-live-open .recommend-section-live .recommend-scroll-viewport {
  min-height:360px;
  max-height:none;
  flex:1 1 auto;
  -webkit-mask-image:linear-gradient(180deg,transparent,black 2%,black 96%,transparent);
  mask-image:linear-gradient(180deg,transparent,black 2%,black 96%,transparent)
}

.recommend-section {
  display:flex;
  flex-direction:column;
  min-height:0;
  flex:1
}

.recommend-scroll-viewport.is-auto-scroll {
  overflow-y:hidden
}

.recommend-scroll-viewport.is-manual-scroll {
  overflow-y:auto
}

.recommend-scroll-viewport:hover .recommend-ticker.is-css-scroll {
  animation-play-state:paused
}

.recommend-ticker.is-css-scroll {
  will-change:transform;
  transform:translateZ(0);
  animation:scrollUp 25s linear infinite
}

.recommend-ticker .ticker-row {
  grid-template-columns:72px minmax(140px,1.2fr) minmax(110px,1fr) 136px 88px 48px minmax(72px,0.8fr) 76px;
  gap:12px;
  padding:13px 20px;
  font-size:14px;
  line-height:1.5;
  min-height:46px;
  animation:none
}

.recommend-ticker .ticker-row:nth-child(even) {
  background:rgba(255,255,255,.02)
}

.recommend-stream-panel .panel-head {
  padding:12px 18px;
  gap:12px
}

.recommend-stream-panel .panel-head h3 {
  font-size:16px;
  letter-spacing:.06em
}

.recommend-stream-panel .panel-hint {
  font-size:12px;
  opacity:.85
}


.recommend-ticker .ticker-row .t-col-line,
.recommend-ticker .ticker-row .t-col-qq {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}


.recommend-ticker .link-btn-ticker {
  font-size:12px;
  padding:4px 10px
}


.recommend-empty {
  padding:48px 20px;
  text-align:center;
  color:var(--muted);
  font-size:13px
}


.seg-btn {
  padding:4px 12px;
  font-size:11px;
  border:1px solid var(--line-strong);
  background:var(--surface-input2);
  color:var(--muted);
  cursor:pointer;
  border-radius:3px
}


.seg-btn.active {
  background:var(--surface-seg);
  color:var(--accent-text);
  border-color:var(--glow-seg)
}


.analysis-panel {
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:280px 1fr;
  gap:8px
}


.analysis-side {
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0
}


.analysis-stat-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding:10px
}


.analysis-stat {
  border:1px solid var(--line-tab-btn);
  background:var(--surface-analysis);
  padding:10px;
  border-radius:4px;
  text-align:center
}


.analysis-stat b {
  display:block;
  font-size:20px;
  color:var(--accent-text);
  font-family:Consolas,monospace;
  margin-top:4px
}


.analysis-stat span {
  font-size:10px;
  color:var(--muted)
}


.analysis-charts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  min-height:0
}


.analysis-charts .panel { min-height:0 }


.sites-panel {
  flex:1;
  min-height:0;
  overflow:auto;
  padding:8px
}


.sites-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px
}


.site-card {
  border:1px solid var(--line-strong);
  background:linear-gradient(145deg,var(--kpi-a),var(--surface-b));
  padding:12px;
  border-radius:6px;
  transition:transform .2s,box-shadow .2s;
  cursor:pointer
}


.site-card:hover {
  transform:translateY(-2px);
  box-shadow:0 6px 20px var(--glow-rank)
}


.site-card-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px
}


.site-card-head h4 {
  font-size:14px;
  color:var(--accent-text)
}


.site-status {
  font-size:10px;
  padding:2px 8px;
  border-radius:10px
}


.site-status.online {
  background:var(--success-bg);
  color:var(--success);
  border:1px solid var(--success-border)
}


.site-status.warn {
  background:var(--warning-bg);
  color:var(--warning);
  border:1px solid var(--warning-border)
}


.site-card-meta {
  font-size:10px;
  color:var(--muted);
  line-height:1.8
}


.site-card-meta em {
  color:var(--accent-text);
  font-style:normal;
  font-weight:700
}


.history-panel {
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,52fr) minmax(400px,48fr);
  gap:8px
}


.history-chart-panel .panel-body { min-height:300px }


.chart-history { min-height:280px }


.history-toolbar {
  display:flex;
  gap:6px;
  align-items:center;
  flex-shrink:0
}


.history-toolbar select {
  background:var(--surface-soft);
  border:1px solid var(--line-strong);
  color:var(--text);
  padding:4px 8px;
  font-size:11px;
  border-radius:3px;
  max-width:140px
}


.btn-sm {
  padding:4px 10px;
  font-size:11px
}


.word-panel-body {
  display:flex;
  gap:8px;
  min-height:0;
  flex:1;
  padding:6px 8px 8px;
  overflow:hidden
}


.word-main {
  flex:1;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column
}


.word-side {
  width:118px;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  border-left:1px solid var(--line);
  padding-left:8px;
  overflow:hidden;
  min-height:0
}


.word-side-title {
  font-size:10px;
  color:var(--accent-warm);
  margin-bottom:4px;
  letter-spacing:.5px
}


.word-links {
  list-style:none;
  overflow:auto;
  flex:1;
  font-size:10px;
  line-height:1.45;
  scrollbar-width:thin;
  scrollbar-color:var(--scrollbar) transparent
}


.word-links::-webkit-scrollbar { width:4px }


.word-links::-webkit-scrollbar-thumb {
  background:var(--scrollbar);
  border-radius:2px
}


.word-links li {
  padding:3px 0;
  border-bottom:1px solid var(--line-soft);
  color:var(--muted)
}


.word-links li b {
  color:var(--accent-text);
  font-weight:600
}


.word-links li em {
  color:var(--accent-orange);
  font-style:normal;
  font-size:9px
}


.history-daily {
  font-size:11px;
  color:var(--text);
  line-height:1.55
}


.history-daily em {
  color:var(--accent-text);
  font-style:normal;
  font-weight:600
}


.trend-up { color:var(--success) }
.trend-down { color:var(--danger) }
.trend-flat { color:var(--warning) }


.mini-spark {
  display:inline-flex;
  gap:2px;
  align-items:flex-end;
  height:16px;
  vertical-align:middle;
  margin-left:4px
}


.mini-spark i {
  display:block;
  width:3px;
  background:var(--grad-sparkline);
  border-radius:1px
}


#tabCompare .compare-panel {
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,54fr) minmax(420px,46fr);
  gap:8px
}


.compare-chart-panel .panel-body { min-height:260px }


.compare-chart-panel .panel-body {
  padding:4px 8px 8px;
  background:var(--surface-soft)
}


.chart-compare {
  min-height:240px;
  border-radius:4px
}
.chart-compare-trend { min-height:180px }


.compare-toolbar {
  display:flex;
  gap:6px;
  align-items:center;
  flex-shrink:0
}


.compare-hour-label {
  font-size:11px;
  color:var(--muted);
  white-space:nowrap
}


.compare-toolbar select {
  background:var(--surface-soft);
  border:1px solid var(--line-strong);
  color:var(--text);
  padding:4px 8px;
  font-size:11px;
  border-radius:3px;
  max-width:120px
}


.compare-summary {
  display:flex;
  gap:8px;
  padding:6px 12px 0;
  flex-wrap:wrap
}


.compare-legend {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding:6px 12px 0;
  font-size:12px;
  color:var(--muted);
  line-height:1.5
}


.compare-legend-focus {
  color:var(--accent-text);
  font-weight:600
}


.compare-legend-focus em {
  font-style:normal;
  color:var(--accent-warm);
  letter-spacing:.5px;
  font-weight:700
}


.compare-legend-focus i,
.compare-legend-ref i {
  font-style:normal;
  opacity:.92;
  margin-left:4px;
  color:var(--accent-text2,var(--muted))
}


.compare-legend-ref {
  opacity:1;
  color:var(--text)
}


.compare-legend-sep { opacity:.35 }


.compare-legend-tag {
  margin-left:auto;
  font-size:10px;
  padding:2px 8px;
  border-radius:3px;
  border:1px solid var(--line-strong);
  color:var(--accent-warm);
  background:rgba(250,173,20,.06)
}


.compare-stat {
  flex:1;
  min-width:120px;
  padding:10px 12px;
  background:var(--surface-soft);
  border:1px solid var(--line);
  border-radius:4px
}


.compare-stat.is-focus {
  border-color:rgba(250,173,20,.45);
  background:var(--surface-soft);
  box-shadow:inset 0 0 0 1px rgba(250,173,20,.12)
}


.compare-stat.is-ref {
  opacity:1;
  border-style:solid;
  background:var(--surface-soft)
}


.compare-stat.is-delta { min-width:100px }


.compare-stat span {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:3px
}


.compare-stat.is-focus span em {
  font-style:normal;
  color:var(--accent-warm);
  margin-right:4px;
  font-weight:700
}


.compare-stat b {
  font-size:20px;
  color:var(--accent-text);
  font-weight:700
}


.compare-stat.is-focus b {
  font-size:24px;
  color:var(--accent-warm)
}


.compare-stat i {
  display:block;
  font-size:10px;
  font-style:normal;
  color:var(--accent-text2,var(--muted));
  margin-top:3px;
  opacity:1
}


.compare-stat em {
  font-size:11px;
  font-style:normal;
  margin-left:4px
}


.compare-stat .up { color:var(--success) }
.compare-stat .down { color:var(--danger) }
.compare-stat .flat { color:var(--warning) }


.compare-th-focus {
  color:var(--header-accent2,#FFD666) !important;
  font-weight:700
}


.compare-table-wrap thead th {
  color:rgba(255,248,232,.95)
}


.compare-table-wrap th.compare-th-focus {
  color:var(--header-accent2,#FFD666) !important
}


.compare-table-wrap th.compare-th-ref {
  color:rgba(255,248,232,.9) !important;
  font-weight:600
}


.compare-th-focus small,
.compare-th-ref small {
  display:block;
  font-size:10px;
  font-weight:500;
  opacity:1;
  margin-top:2px;
  color:rgba(255,248,232,.78)
}


.compare-table-wrap th.compare-th-focus small {
  color:rgba(255,230,150,.88)
}


.compare-table-wrap th.compare-th-ref small {
  color:rgba(255,248,232,.72)
}


.compare-th-ref {
  color:rgba(255,248,232,.9) !important;
  font-weight:600
}


.compare-td-focus {
  color:var(--accent-warm);
  font-weight:700;
  font-size:13px
}


.compare-td-ref {
  color:var(--muted);
  font-size:12px;
  font-weight:600
}


.compare-table-wrap {
  max-height:220px;
  border-top:1px solid var(--line)
}


.compare-badge {
  display:inline-block;
  font-size:9px;
  padding:1px 5px;
  border-radius:2px;
  margin-left:4px;
  vertical-align:middle
}


.compare-badge.live {
  color:var(--success);
  border:1px solid rgba(82,196,26,.35);
  background:rgba(82,196,26,.08)
}


.compare-badge.frozen {
  color:var(--accent-warm);
  border:1px solid rgba(250,173,20,.35);
  background:rgba(250,173,20,.08)
}


.hourly-site-select {
  background:var(--surface-soft);
  border:1px solid var(--line-strong);
  color:var(--text);
  padding:4px 8px;
  font-size:11px;
  border-radius:3px;
  max-width:120px;
  flex-shrink:0
}


.center-bottom .panel-head-actions {
  flex-wrap:wrap;
  gap:6px
}

/* ===== 08-table-footer.css ===== */
/* 表格、筛选栏、按钮、页脚 */
.table-panel {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}

.table-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
}

.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--line-mid);
  align-items: center;
  flex-shrink: 0;
}

.filters select,
.filters input {
  background: var(--surface-soft);
  border: 1px solid var(--line-strong);
  color: var(--text);
  padding: 6px 11px;
  font-size: var(--fs-body);
  border-radius: 3px;
  outline: none;
}

.filters select:focus,
.filters input:focus {
  border-color: var(--gold2);
  box-shadow: 0 0 10px var(--glow-focus);
}

.filters input { min-width: 160px; }
.filters input[type="date"] { color-scheme: dark; }

.btn {
  padding: 6px 15px;
  font-size: var(--fs-body);
  font-weight: 700;
  cursor: pointer;
  border: none;
  border-radius: 3px;
  transition: transform 0.15s, box-shadow 0.15s;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px var(--glow-btn);
}

.btn-primary {
  background: var(--grad-btn);
  color: var(--accent-btn-text);
}

.btn-ghost {
  background: transparent;
  border: 1px solid var(--border) !important;
  color: var(--gold);
}

.result-tip {
  margin-left: auto;
  font-size: var(--fs-hint);
  color: var(--muted);
}

.result-tip em {
  color: var(--accent-text);
  font-style: normal;
  font-size: 16px;
  font-weight: 700;
  text-shadow: 0 0 8px var(--glow-rank);
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-table);
}

thead {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--surface-thead);
}

th {
  padding: 8px 10px;
  text-align: left;
  font-weight: 700;
  color: var(--accent-text);
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}

td {
  padding: 6px 10px;
  border-bottom: 1px solid var(--line-soft);
  height: var(--table-row-h);
  vertical-align: middle;
}

tbody tr:hover {
  background: var(--table-hover);
}

tbody tr:nth-child(even) {
  background: var(--surface-hover2);
}

tbody tr.table-data-row.is-alt {
  background: var(--surface-hover2);
}

tbody tr.table-data-row:not(.is-alt) {
  background: transparent;
}

tbody tr.table-data-row:hover {
  background: var(--table-hover);
}

tbody tr.table-data-row.is-alt:hover {
  background: var(--table-row-hover);
}

tbody tr.table-v-pad,
tbody tr.table-v-pad:hover,
tbody tr.table-v-pad td {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  pointer-events: none;
}

.table-wrap.is-virtual {
  overflow-anchor: none;
}

tbody tr:nth-child(even):hover {
  background: var(--table-row-hover);
}

.td-go {
  white-space: nowrap;
  text-align: center;
}

.link-btn-go {
  cursor: pointer;
  color: var(--accent-warm);
  text-decoration: none;
  font-size: var(--fs-hint);
  font-weight: 600;
}

.link-btn-go:hover {
  color: var(--accent-text);
  text-decoration: underline;
}

.weight-badge {
  display: inline-block;
  min-width: 22px;
  text-align: center;
  padding: 1px 6px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 11px;
}

.weight-10 { background: var(--warning-bg3); color: var(--accent-text); }
.weight-9 { background: var(--warning-bg2); color: var(--accent-text); }
.weight-8 { background: var(--warning-bg); color: var(--warning); }
.weight-low { background: var(--danger-bg); color: var(--danger-text); }

.footer {
  flex-shrink: 0;
  margin-top: 6px;
  padding: 0;
  border-top: none;
  background: linear-gradient(180deg, var(--header-bg1) 0%, var(--header-bg2) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 230, 150, 0.12);
}

.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 10px 16px 12px;
  max-width: 100%;
}

.footer-bottom {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  font-size: 11px;
  line-height: 1.5;
  color: rgba(255, 248, 232, 0.78);
  letter-spacing: 0.02em;
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  flex: 1 1 auto;
  min-width: 0;
}

.footer-copy-text {
  color: rgba(255, 248, 232, 0.78);
  white-space: nowrap;
  font-weight: 500;
}

.footer-sep {
  color: rgba(255, 214, 102, 0.35);
  user-select: none;
  opacity: 1;
}

.footer-icp {
  color: rgba(255, 248, 232, 0.72);
  text-decoration: none;
  white-space: nowrap;
}

.footer-icp:hover {
  color: var(--header-accent2);
  text-decoration: underline;
}

.footer-support {
  color: rgba(255, 248, 232, 0.65);
  white-space: nowrap;
}

.footer-link {
  color: var(--header-accent2);
  text-decoration: none;
  white-space: nowrap;
  font-weight: 600;
}

.footer-link:hover {
  color: #fff;
  text-decoration: underline;
}

.footer-meta {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px 8px;
  margin-left: auto;
  font-size: 10px;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.footer-stat {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 214, 102, 0.18);
  color: rgba(255, 248, 232, 0.88);
  font-family: Consolas, "Segoe UI", monospace;
  white-space: nowrap;
}

.footer-stat.is-live {
  color: #86efac;
  border-color: rgba(21, 128, 61, 0.45);
  background: rgba(21, 128, 61, 0.15);
}

.footer-stat.is-warn {
  color: #fcd34d;
  border-color: rgba(251, 191, 36, 0.35);
  background: rgba(251, 191, 36, 0.1);
}

.site-analytics {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* ===== 09-effects.css ===== */
.floating-icons,
#particles {
  display: none !important;
}

.floating-icons {
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden
}


.floating-icons span {
  position:absolute;
  font-size:18px;
  opacity:0;
  animation:floatIcon 12s linear infinite;
  color:var(--float-icon)
}


@keyframes floatIcon {
  0% { opacity: 0; transform: translateY(100vh) rotate(0deg); }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { opacity: 0; transform: translateY(-20vh) rotate(360deg); }
}

/* ===== 10-layout-utils.css ===== */
/* layout helpers + UI polish */
.panel-hint {
  font-size: var(--fs-hint);
  color: var(--muted);
  white-space: nowrap;
}

.panel-fill {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.panel-nested { min-height: 0; }

.filters-stack {
  border: none;
  flex-direction: column;
  align-items: stretch;
}

.data-badge {
  font-size: 10px;
  color: var(--accent-warm);
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-input);
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


.ticker-weight {
  color: var(--accent-warm);
  font-weight: 600;
}

.table-panel { height: auto; }
.overview-table { margin-top: 0; }

.panel-fill > .table-wrap,
.panel-fill > .rank-panel {
  flex: 1;
  min-height: 0;
}

.empty-row td {
  text-align: center;
  color: var(--muted);
  padding: 24px;
}

.tag-default {
  color: var(--accent-warm);
  border-color: var(--accent-warm);
  background: var(--tag-6-bg);
}

.th-tip {
  cursor: help;
  text-decoration: underline dotted var(--glow-seg);
  text-underline-offset: 3px;
}

.sub-count {
  margin-left: 3px;
  font-size: 9px;
  color: var(--accent-warm);
  font-weight: 600;
}

.table-wrap::-webkit-scrollbar,
.rank-list::-webkit-scrollbar,
.rank-table-wrap::-webkit-scrollbar,
.sites-panel::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.table-wrap::-webkit-scrollbar-thumb,
.rank-list::-webkit-scrollbar-thumb,
.rank-table-wrap::-webkit-scrollbar-thumb,
.sites-panel::-webkit-scrollbar-thumb {
  background: var(--scrollbar);
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  #particles,
  .floating-icons,
  .title-banner-particles {
    display: none !important;
  }

  .ticker.is-css-scroll {
    animation-duration: 40s !important;
  }
}

/* ===== 11-overview-table.css ===== */
/* 总览页：明细表折叠/展开 + 可读性 */
.overview-layout {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  position: relative;
  gap: 8px;
}

.overview-charts {
  flex: 1;
  min-height: 0;
  position: relative;
  transition: opacity 0.32s ease, visibility 0.32s ease;
}

.overview-charts.is-ticker-expanded,
.overview-charts.is-hourly-expanded {
  position: absolute;
  inset: 0;
  z-index: 35;
  flex: 1;
  min-height: 0;
}

#tabOverview.active:has(.overview-charts.is-ticker-expanded) .overview-table,
#tabOverview.active:has(.overview-charts.is-hourly-expanded) .overview-table {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.32s ease, visibility 0.32s ease;
}

.overview-table {
  flex-shrink: 0;
  z-index: 10;
  transition: box-shadow 0.32s ease, transform 0.32s ease, opacity 0.32s ease;
}

#tabOverview:not(.active) .overview-layout,
#tabOverview:not(.active) .overview-charts,
#tabOverview:not(.active) .overview-table {
  display: none !important;
}

.overview-table:not(.is-expanded) .table-wrap {
  max-height: calc(var(--table-row-h) * 3);
  overflow: hidden;
}

.overview-table:not(.is-expanded) .filters {
  display: none;
}

.overview-table:not(.is-expanded) .panel-head .panel-hint {
  display: none;
}

#tabOverview.active {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

#tabOverview.active:has(.overview-table.is-expanded) .overview-layout,
#tabOverview.active:has(.overview-charts.is-ticker-expanded) .overview-layout,
#tabOverview.active:has(.overview-charts.is-hourly-expanded) .overview-layout {
  position: absolute;
  inset: 0;
  top: 0;
  gap: 0;
}

.overview-layout.is-table-expanded .overview-charts {
  visibility: hidden;
  pointer-events: none;
  position: absolute;
  inset: 0;
  flex: none;
  height: 0;
  min-height: 0;
  overflow: hidden;
  opacity: 0;
}

.overview-layout.is-table-expanded {
  flex: 1;
  min-height: 0;
  position: relative;
}

.overview-table.is-expanded {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: none;
  background: var(--surface, rgb(42, 12, 10));
  box-shadow: var(--shadow-expand, 0 12px 40px rgba(0, 0, 0, 0.55));
  border-top: 1px solid rgba(255, 160, 60, 0.22);
  animation: panelExpandIn 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

#tabOverview:not(.active) .overview-table.is-expanded {
  position: static;
  z-index: auto;
  box-shadow: none;
}

.overview-table.is-expanded .filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 16px;
  align-items: center;
}

.overview-table.is-expanded .filters select,
.overview-table.is-expanded .filters input[type="text"],
.overview-table.is-expanded .filters input[type="date"] {
  min-width: 140px;
  flex: 1 1 160px;
  font-size: 13px;
  padding: 8px 10px;
}

.overview-table.is-expanded .filters input[type="text"] {
  flex: 2 1 220px;
  min-width: 200px;
}

.overview-table.is-expanded .filters .btn-primary {
  min-width: 88px;
  padding: 8px 20px !important;
  font-size: 13px !important;
}

.overview-table.is-expanded .panel-head .panel-hint {
  display: block;
}

.overview-charts.is-ticker-expanded .col-left,
.overview-charts.is-ticker-expanded .col-right,
.overview-charts.is-ticker-expanded .center-bottom {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.32s ease, visibility 0.32s ease;
}

.overview-charts.is-ticker-expanded #tickerPanel {
  position: absolute;
  inset: 0;
  z-index: 35;
  display: flex;
  flex-direction: column;
  min-height: 0;
  box-shadow: var(--shadow-expand);
  animation: panelExpandIn 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.overview-charts.is-ticker-expanded #tickerPanel .ticker-wrap {
  min-height: 0;
}

.overview-charts.is-ticker-expanded #tickerPanel .ticker-viewport {
  -webkit-mask-image: none;
  mask-image: none;
}

.btn-ticker-toggle {
  flex-shrink: 0;
  padding: 4px 12px !important;
  font-size: 12px !important;
  letter-spacing: 0.5px;
  border-color: var(--table-expand-border) !important;
  color: var(--accent-text) !important;
  background: var(--table-expand-bg) !important;
}

.btn-ticker-toggle:hover {
  background: var(--table-row-hover) !important;
  color: var(--table-row-text) !important;
}

.overview-charts.is-ticker-expanded .btn-ticker-toggle {
  background: var(--table-row-hover2) !important;
}

/* 明日开服时刻分布 — 展开铺满图表区 */
.overview-charts.is-hourly-expanded .col-left,
.overview-charts.is-hourly-expanded .col-right,
.overview-charts.is-hourly-expanded .center-top {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.32s ease, visibility 0.32s ease;
}

.overview-charts.is-hourly-expanded #hourlyPanel {
  position: absolute;
  inset: 0;
  z-index: 35;
  display: flex;
  flex-direction: column;
  min-height: 0;
  box-shadow: var(--shadow-expand);
  animation: panelExpandIn 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.overview-charts.is-hourly-expanded #hourlyPanel .panel-body {
  flex: 1;
  min-height: 0;
}

.overview-charts.is-hourly-expanded .chart-hourly {
  min-height: 320px !important;
  height: 100% !important;
}

.btn-hourly-toggle {
  flex-shrink: 0;
  padding: 4px 12px !important;
  font-size: 12px !important;
  letter-spacing: 0.5px;
  border-color: var(--table-expand-border) !important;
  color: var(--accent-text) !important;
  background: var(--table-expand-bg) !important;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-hourly-toggle:hover {
  background: var(--table-row-hover) !important;
  color: var(--table-row-text) !important;
}

.overview-charts.is-hourly-expanded .btn-hourly-toggle {
  background: var(--table-row-hover2) !important;
}

.overview-table.is-expanded .table-wrap {
  max-height: none;
  flex: 1;
  min-height: 0;
}

.panel-head-actions {
  gap: 10px;
}

.panel-head-actions .panel-hint {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.btn-table-toggle,
.btn-ticker-toggle {
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-table-toggle {
  flex-shrink: 0;
  padding: 6px 16px !important;
  font-size: 12px !important;
  letter-spacing: 0.5px;
  border-color: var(--table-expand-border) !important;
  color: var(--accent-text) !important;
  background: var(--table-expand-bg) !important;
}

.btn-table-toggle:hover {
  background: var(--table-row-hover) !important;
  color: var(--table-row-text) !important;
}

.overview-table.is-expanded .btn-table-toggle {
  background: var(--table-row-hover2) !important;
}

@keyframes panelExpandIn {
  from {
    opacity: 0;
    transform: scale(0.985) translateY(10px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .overview-table.is-expanded,
  .overview-charts.is-ticker-expanded #tickerPanel,
  .overview-charts.is-hourly-expanded #hourlyPanel {
    animation: none;
  }
}

.panel-head-actions h3 {
  flex-shrink: 0;
}

.table-more-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px 12px;
  border-top: 1px solid var(--line-soft);
  background: var(--surface-soft);
  animation: fadeSlideUp 0.32s ease forwards;
}

.table-more-hint {
  font-size: 12px;
  color: var(--muted);
  letter-spacing: 0.02em;
}

.table-more-bar .btn {
  flex-shrink: 0;
  min-width: 108px;
  padding: 7px 16px !important;
  font-size: 12px !important;
  font-weight: 700;
  border: none !important;
  color: var(--accent-btn-text) !important;
  background: var(--grad-btn) !important;
  box-shadow: 0 2px 10px var(--glow-btn);
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.table-more-bar .btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px var(--glow-btn);
  filter: brightness(1.04);
}

@keyframes fadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.panel-chart-drill .panel-head {
  flex-wrap: wrap;
  gap: 4px 10px;
}

.panel-chart-drill .panel-head h3 {
  flex-shrink: 0;
}

.panel-chart-drill .panel-head .panel-hint {
  flex: 1;
  min-width: 0;
  text-align: right;
  font-size: 10px;
}

.chart-site-share {
  min-height: 168px;
  cursor: pointer;
}

.panel-chart-drill .chart-bar {
  cursor: pointer;
}

/* ===== 12-themes.css ===== */
/* ── 科技青蓝 ── */
html[data-theme="cyan"] {
  --bg:#061018;
  --bg2:#0c1a28;
  --panel:rgba(8,40,62,.78);
  --panel2:rgba(12,52,78,.72);
  --gold:#7ee8ff;
  --gold2:#22d3ee;
  --gold3:#06b6d4;
  --red:#38bdf8;
  --red2:#0ea5e9;
  --red3:#0369a1;
  --text:#ecfeff;
  --muted:#a5f3fc;
  --border:rgba(34,211,238,.55);
  --glow:rgba(34,211,238,.45);
  --header-bg1:rgba(6,40,62,.95);
  --header-bg2:rgba(4,22,36,.92);
  --header-accent:#22d3ee;
  --header-accent2:#67e8f9;
  --theme-color:#06283e;
  --live-dot:#4ade80;
  --live-dot-glow:rgba(74,222,128,.85);
  --live-text:#86efac;
  --live-border:rgba(74,222,128,.45);
  --banner-glow-a:rgba(34,211,238,.28);
  --banner-glow-b:rgba(14,116,144,.38);
  --banner-plate-bg:radial-gradient(ellipse 70% 105% at 50% 42%, rgba(8,145,178,.48) 0%, rgba(4,55,78,.32) 50%, rgba(4,22,36,0) 76%);
  --banner-line:linear-gradient(90deg, transparent 0%, rgba(103,232,249,.5) 50%, transparent 100%);
  --title-main-grad:linear-gradient(180deg,#ecfeff 0%,#67e8f9 42%,#0891b2 78%,#22d3ee 100%);
  --title-main-shadow:#0369a1;
  --title-main-shadow-deep:#042f3a;
  --title-main-glow:rgba(34,211,238,.42);
  --title-main-glow-soft:rgba(14,165,233,.2);
  --brand-name-grad:linear-gradient(90deg,#ecfeff 0%,#67e8f9 35%,#0ea5e9 70%,#67e8f9 100%);
  --brand-orbit:rgba(34,211,238,.32);
  --brand-mark-ring:rgba(34,211,238,.26);
  --brand-mark-glow:rgba(14,165,233,.16);
  --surface-footer-bar:rgba(0,0,0,.22);
  --success:#4ade80;
  --success-bg:rgba(34,197,94,.15);
  --success-border:rgba(34,197,94,.3);
  --warning:#fcd34d;
  --warning-bg:rgba(250,204,21,.15);
  --warning-border:rgba(250,204,21,.3);
  --warning-bg2:rgba(250,204,21,.2);
  --warning-bg3:rgba(250,204,21,.28);
  --danger:#f87171;
  --danger-bg:rgba(248,113,113,.12);
  --danger-text:#fca5a5;
  --table-row-h:34px;
  --fs-table:13px;
  --fs-body:13px;
  --fs-hint:12px;
  --fs-small:11px;
  --title-grad1:#ecfeff;
  --title-grad2:#67e8f9;
  --title-grad3:#0891b2;
  --title-deep:#0369a1;
  --surface-a:rgba(8,36,58,.92);
  --surface-b:rgba(4,22,36,.95);
  --kpi-a:rgba(6,44,68,.92);
  --kpi-b:rgba(4,28,44,.95);
  --surface-soft:rgba(4,18,30,.6);
  --surface-input:rgba(6,24,38,.7);
  --surface-input2:rgba(4,18,30,.5);
  --surface-thead:rgba(4,20,32,.98);
  --surface-tab:rgba(4,18,30,.98);
  --surface-tab2:rgba(2,10,18,.99);
  --surface-hover:rgba(14,116,144,.18);
  --surface-hover2:rgba(14,116,144,.12);
  --surface-active:rgba(8,145,178,.35);
  --surface-tab-active-a:rgba(8,145,178,.4);
  --surface-tab-active-b:rgba(4,28,44,.9);
  --surface-seg:rgba(34,211,238,.18);
  --surface-rank:rgba(8,145,178,.08);
  --surface-rank-hover:rgba(34,211,238,.1);
  --surface-rank-no:rgba(8,145,178,.35);
  --surface-bar-bg:rgba(8,145,178,.15);
  --surface-analysis:rgba(8,145,178,.1);
  --line:rgba(34,211,238,.18);
  --line-soft:rgba(34,211,238,.06);
  --line-mid:rgba(34,211,238,.12);
  --line-strong:rgba(34,211,238,.3);
  --line-tab:rgba(34,211,238,.15);
  --line-tab-btn:rgba(34,211,238,.25);
  --inner-border:rgba(103,232,249,.18);
  --scan-line:rgba(165,243,252,.85);
  --scan-head:rgba(165,243,252,.12);
  --panel-head-bg:rgba(8,145,178,.12);
  --accent-text:#7ee8ff;
  --accent-text2:#a5f3fc;
  --accent-warm:#67e8f9;
  --accent-orange:#38bdf8;
  --accent-btn-text:#042f3a;
  --panel-shadow:inset 0 1px 0 rgba(165,243,252,.08),inset 0 0 30px rgba(8,145,178,.1),0 0 18px rgba(34,211,238,.1),0 4px 20px rgba(0,0,0,.2);
  --kpi-shadow:inset 0 1px 0 rgba(165,243,252,.1),inset 0 0 24px rgba(8,145,178,.12),0 4px 18px rgba(0,0,0,.25),0 0 16px rgba(34,211,238,.08);
  --glow-text:rgba(126,232,255,.65);
  --glow-text-soft:rgba(126,232,255,.45);
  --glow-kpi:rgba(34,211,238,.35);
  --glow-panel:rgba(126,232,255,.35);
  --glow-radial:rgba(34,211,238,.15);
  --glow-focus:rgba(34,211,238,.2);
  --glow-btn:rgba(34,211,238,.25);
  --glow-rank:rgba(34,211,238,.15);
  --glow-rank-bar:rgba(34,211,238,.5);
  --glow-top1:rgba(103,232,249,.15);
  --glow-tab:rgba(34,211,238,.15);
  --glow-seg:rgba(103,232,249,.5);
  --shadow-expand:0 -12px 48px rgba(0,0,0,.55),0 0 0 1px rgba(34,211,238,.25);
  --grad-kpi-bar:linear-gradient(180deg,#7ee8ff,#0ea5e9,#0369a1);
  --grad-head-bar:linear-gradient(180deg,#0ea5e9,#7ee8ff);
  --grad-rank-bar:linear-gradient(90deg,#0369a1,#0ea5e9,#7ee8ff);
  --grad-score-bar:linear-gradient(90deg,#0369a1,#7ee8ff);
  --grad-btn:linear-gradient(135deg,#7ee8ff,#22d3ee,#0369a1);
  --grad-tab-active:linear-gradient(180deg,rgba(8,145,178,.4),rgba(4,28,44,.9));
  --grad-tab-panel:linear-gradient(180deg,rgba(4,18,30,.98),rgba(2,10,18,.99));
  --grad-sparkline:linear-gradient(180deg,#7ee8ff,#0369a1);
  --body-radial-1:rgba(6,182,212,.22);
  --body-radial-2:rgba(14,165,233,.12);
  --body-grad-top:#061018;
  --body-grad-mid:#0c1a28;
  --body-grad-bot:#040a10;
  --grid-line:rgba(255,255,255,.04);
  --float-icon:rgba(34,211,238,.15);
  --particle-warm:rgba(126,232,255,.4);
  --particle-cool:rgba(14,165,233,.28);
  --chart-1:#7ee8ff;
  --chart-2:#22d3ee;
  --chart-3:#38bdf8;
  --chart-4:#0ea5e9;
  --chart-5:#0369a1;
  --chart-6:#67e8f9;
  --chart-7:#0284c7;
  --chart-8:#164e63;
  --chart-bg:rgba(4,18,30,.92);
  --chart-text:#ecfeff;
  --chart-axis:#7dd3fc;
  --chart-line:rgba(34,211,238,.4);
  --chart-split:rgba(34,211,238,.08);
  --chart-axis-line:rgba(34,211,238,.2);
  --chart-bar-bg:rgba(8,145,178,.15);
  --chart-bar-grad-top:rgba(126,232,255,.85);
  --chart-bar-grad-bot:rgba(8,145,178,.75);
  --chart-pie-border:#041018;
  --chart-line-shadow:rgba(34,211,238,.4);
  --chart-heat-1:#041018;
  --chart-heat-2:#0c4a6e;
  --chart-heat-3:#0ea5e9;
  --chart-heat-4:#7ee8ff;
  --plaque-inner-a:rgba(8,40,62,.92);
  --plaque-inner-b:rgba(4,18,30,.96);
  --plaque-border-top:rgba(103,232,249,.35);
  --plaque-border-bot:rgba(34,211,238,.45);
  --plaque-inset:rgba(34,211,238,.08);
  --title-shadow-1:rgba(8,145,178,.9);
  --title-shadow-2:rgba(3,105,161,.8);
  --title-sep-color:rgba(165,243,252,.45);
  --tag-1:#67e8f9;
  --tag-1-bg:rgba(34,211,238,.12);
  --tag-2-bg:rgba(14,165,233,.12);
  --tag-3:#38bdf8;
  --tag-3-bg:rgba(56,189,248,.12);
  --tag-4-bg:rgba(126,232,255,.1);
  --tag-5-bg:rgba(3,105,161,.12);
  --tag-6-bg:rgba(103,232,249,.1);
  --rank-top1:#7ee8ff;
  --rank-top2:#67e8f9;
  --rank-top3:#22d3ee;
  --rank-bar-track:rgba(34,211,238,.1);
  --score-bar-track:rgba(34,211,238,.15);
  --scrollbar:rgba(34,211,238,.35);
  --table-hover:rgba(34,211,238,.18);
  --table-expand-border:rgba(103,232,249,.55);
  --table-expand-bg:rgba(8,145,178,.35);
  --table-row-hover:rgba(34,211,238,.18);
  --table-row-hover2:rgba(34,211,238,.24);
  --table-row-text:#ecfeff;
}

/* ── 赛博紫 ── */
html[data-theme="violet"] {
  --bg:#0c0618;
  --bg2:#160c28;
  --panel:rgba(42,18,68,.78);
  --panel2:rgba(52,22,82,.72);
  --gold:#e9d5ff;
  --gold2:#c084fc;
  --gold3:#a855f7;
  --red:#d8b4fe;
  --red2:#9333ea;
  --red3:#6b21a8;
  --text:#faf5ff;
  --muted:#ddd6fe;
  --border:rgba(192,132,252,.55);
  --glow:rgba(168,85,247,.45);
  --header-bg1:rgba(46,16,72,.95);
  --header-bg2:rgba(22,8,38,.92);
  --header-accent:#c084fc;
  --header-accent2:#e9d5ff;
  --theme-color:#160c28;
  --live-dot:#4ade80;
  --live-dot-glow:rgba(74,222,128,.85);
  --live-text:#86efac;
  --live-border:rgba(74,222,128,.45);
  --banner-glow-a:rgba(168,85,247,.28);
  --banner-glow-b:rgba(107,33,168,.38);
  --banner-plate-bg:radial-gradient(ellipse 70% 105% at 50% 42%, rgba(126,34,206,.48) 0%, rgba(76,22,112,.32) 50%, rgba(22,8,38,0) 76%);
  --banner-line:linear-gradient(90deg, transparent 0%, rgba(216,180,254,.5) 50%, transparent 100%);
  --title-main-grad:linear-gradient(180deg,#faf5ff 0%,#d8b4fe 42%,#9333ea 78%,#c084fc 100%);
  --title-main-shadow:#6b21a8;
  --title-main-shadow-deep:#3b0764;
  --title-main-glow:rgba(168,85,247,.42);
  --title-main-glow-soft:rgba(147,51,234,.2);
  --brand-name-grad:linear-gradient(90deg,#faf5ff 0%,#d8b4fe 35%,#a855f7 70%,#d8b4fe 100%);
  --brand-orbit:rgba(192,132,252,.32);
  --brand-mark-ring:rgba(192,132,252,.26);
  --brand-mark-glow:rgba(147,51,234,.16);
  --surface-footer-bar:rgba(0,0,0,.22);
  --success:#86efac;
  --success-bg:rgba(34,197,94,.15);
  --success-border:rgba(34,197,94,.3);
  --warning:#fde047;
  --warning-bg:rgba(250,204,21,.15);
  --warning-border:rgba(250,204,21,.3);
  --warning-bg2:rgba(250,204,21,.2);
  --warning-bg3:rgba(250,204,21,.28);
  --danger:#fb7185;
  --danger-bg:rgba(244,63,94,.12);
  --danger-text:#fda4af;
  --table-row-h:34px;
  --fs-table:13px;
  --fs-body:13px;
  --fs-hint:12px;
  --fs-small:11px;
  --title-grad1:#faf5ff;
  --title-grad2:#d8b4fe;
  --title-grad3:#9333ea;
  --title-deep:#6b21a8;
  --surface-a:rgba(42,18,68,.92);
  --surface-b:rgba(28,10,48,.95);
  --kpi-a:rgba(52,22,82,.92);
  --kpi-b:rgba(36,12,58,.95);
  --surface-soft:rgba(18,6,32,.6);
  --surface-input:rgba(28,10,48,.7);
  --surface-input2:rgba(18,6,32,.5);
  --surface-thead:rgba(22,8,38,.98);
  --surface-tab:rgba(18,6,32,.98);
  --surface-tab2:rgba(10,4,18,.99);
  --surface-hover:rgba(147,51,234,.18);
  --surface-hover2:rgba(147,51,234,.12);
  --surface-active:rgba(126,34,206,.35);
  --surface-tab-active-a:rgba(126,34,206,.4);
  --surface-tab-active-b:rgba(36,12,58,.9);
  --surface-seg:rgba(192,132,252,.18);
  --surface-rank:rgba(126,34,206,.08);
  --surface-rank-hover:rgba(192,132,252,.1);
  --surface-rank-no:rgba(126,34,206,.35);
  --surface-bar-bg:rgba(126,34,206,.15);
  --surface-analysis:rgba(126,34,206,.1);
  --line:rgba(192,132,252,.18);
  --line-soft:rgba(192,132,252,.06);
  --line-mid:rgba(192,132,252,.12);
  --line-strong:rgba(192,132,252,.3);
  --line-tab:rgba(192,132,252,.15);
  --line-tab-btn:rgba(192,132,252,.25);
  --inner-border:rgba(216,180,254,.18);
  --scan-line:rgba(233,213,255,.85);
  --scan-head:rgba(233,213,255,.12);
  --panel-head-bg:rgba(126,34,206,.12);
  --accent-text:#e9d5ff;
  --accent-text2:#ddd6fe;
  --accent-warm:#d8b4fe;
  --accent-orange:#c084fc;
  --accent-btn-text:#2e1065;
  --panel-shadow:inset 0 1px 0 rgba(233,213,255,.08),inset 0 0 30px rgba(126,34,206,.1),0 0 18px rgba(168,85,247,.1),0 4px 20px rgba(0,0,0,.2);
  --kpi-shadow:inset 0 1px 0 rgba(233,213,255,.1),inset 0 0 24px rgba(126,34,206,.12),0 4px 18px rgba(0,0,0,.25),0 0 16px rgba(168,85,247,.08);
  --glow-text:rgba(233,213,255,.65);
  --glow-text-soft:rgba(233,213,255,.45);
  --glow-kpi:rgba(168,85,247,.35);
  --glow-panel:rgba(216,180,254,.35);
  --glow-radial:rgba(168,85,247,.15);
  --glow-focus:rgba(168,85,247,.2);
  --glow-btn:rgba(168,85,247,.25);
  --glow-rank:rgba(168,85,247,.15);
  --glow-rank-bar:rgba(168,85,247,.5);
  --glow-top1:rgba(216,180,254,.15);
  --glow-tab:rgba(168,85,247,.15);
  --glow-seg:rgba(216,180,254,.5);
  --shadow-expand:0 -12px 48px rgba(0,0,0,.55),0 0 0 1px rgba(192,132,252,.25);
  --grad-kpi-bar:linear-gradient(180deg,#e9d5ff,#9333ea,#6b21a8);
  --grad-head-bar:linear-gradient(180deg,#9333ea,#e9d5ff);
  --grad-rank-bar:linear-gradient(90deg,#6b21a8,#9333ea,#e9d5ff);
  --grad-score-bar:linear-gradient(90deg,#6b21a8,#e9d5ff);
  --grad-btn:linear-gradient(135deg,#e9d5ff,#c084fc,#6b21a8);
  --grad-tab-active:linear-gradient(180deg,rgba(126,34,206,.4),rgba(36,12,58,.9));
  --grad-tab-panel:linear-gradient(180deg,rgba(18,6,32,.98),rgba(10,4,18,.99));
  --grad-sparkline:linear-gradient(180deg,#e9d5ff,#6b21a8);
  --body-radial-1:rgba(147,51,234,.22);
  --body-radial-2:rgba(168,85,247,.12);
  --body-grad-top:#0c0618;
  --body-grad-mid:#160c28;
  --body-grad-bot:#080410;
  --grid-line:rgba(255,255,255,.04);
  --float-icon:rgba(168,85,247,.15);
  --particle-warm:rgba(216,180,254,.4);
  --particle-cool:rgba(147,51,234,.28);
  --chart-1:#e9d5ff;
  --chart-2:#c084fc;
  --chart-3:#a855f7;
  --chart-4:#9333ea;
  --chart-5:#6b21a8;
  --chart-6:#d8b4fe;
  --chart-7:#7e22ce;
  --chart-8:#3b0764;
  --chart-bg:rgba(18,6,32,.92);
  --chart-text:#faf5ff;
  --chart-axis:#c4b5fd;
  --chart-line:rgba(192,132,252,.4);
  --chart-split:rgba(192,132,252,.08);
  --chart-axis-line:rgba(192,132,252,.2);
  --chart-bar-bg:rgba(126,34,206,.15);
  --chart-bar-grad-top:rgba(216,180,254,.85);
  --chart-bar-grad-bot:rgba(126,34,206,.75);
  --chart-pie-border:#0c0618;
  --chart-line-shadow:rgba(168,85,247,.4);
  --chart-heat-1:#0c0618;
  --chart-heat-2:#581c87;
  --chart-heat-3:#9333ea;
  --chart-heat-4:#e9d5ff;
  --plaque-inner-a:rgba(46,16,72,.92);
  --plaque-inner-b:rgba(18,6,32,.96);
  --plaque-border-top:rgba(216,180,254,.35);
  --plaque-border-bot:rgba(168,85,247,.45);
  --plaque-inset:rgba(168,85,247,.08);
  --title-shadow-1:rgba(126,34,206,.9);
  --title-shadow-2:rgba(107,33,168,.8);
  --title-sep-color:rgba(216,180,254,.45);
  --tag-1:#d8b4fe;
  --tag-1-bg:rgba(168,85,247,.12);
  --tag-2-bg:rgba(147,51,234,.12);
  --tag-3:#c084fc;
  --tag-3-bg:rgba(192,132,252,.12);
  --tag-4-bg:rgba(216,180,254,.1);
  --tag-5-bg:rgba(107,33,168,.12);
  --tag-6-bg:rgba(233,213,255,.1);
  --rank-top1:#e9d5ff;
  --rank-top2:#d8b4fe;
  --rank-top3:#c084fc;
  --rank-bar-track:rgba(168,85,247,.1);
  --score-bar-track:rgba(168,85,247,.15);
  --scrollbar:rgba(192,132,252,.35);
  --table-hover:rgba(168,85,247,.18);
  --table-expand-border:rgba(216,180,254,.55);
  --table-expand-bg:rgba(126,34,206,.35);
  --table-row-hover:rgba(168,85,247,.18);
  --table-row-hover2:rgba(168,85,247,.24);
  --table-row-text:#faf5ff;
}

/* ── 数据绿 ── */
html[data-theme="emerald"] {
  --bg:#061210;
  --bg2:#0c1f18;
  --panel:rgba(8,48,38,.78);
  --panel2:rgba(12,58,46,.72);
  --gold:#a7f3d0;
  --gold2:#34d399;
  --gold3:#10b981;
  --red:#6ee7b7;
  --red2:#059669;
  --red3:#047857;
  --text:#ecfdf5;
  --muted:#bbf7d0;
  --border:rgba(52,211,153,.55);
  --glow:rgba(16,185,129,.45);
  --header-bg1:rgba(6,44,34,.95);
  --header-bg2:rgba(4,24,18,.92);
  --header-accent:#34d399;
  --header-accent2:#a7f3d0;
  --theme-color:#061210;
  --live-dot:#4ade80;
  --live-dot-glow:rgba(74,222,128,.85);
  --live-text:#86efac;
  --live-border:rgba(74,222,128,.45);
  --banner-glow-a:rgba(16,185,129,.26);
  --banner-glow-b:rgba(4,120,87,.36);
  --banner-plate-bg:radial-gradient(ellipse 70% 105% at 50% 42%, rgba(5,150,105,.46) 0%, rgba(4,88,68,.3) 50%, rgba(4,24,18,0) 76%);
  --banner-line:linear-gradient(90deg, transparent 0%, rgba(167,243,208,.5) 50%, transparent 100%);
  --title-main-grad:linear-gradient(180deg,#ecfdf5 0%,#6ee7b7 42%,#059669 78%,#34d399 100%);
  --title-main-shadow:#047857;
  --title-main-shadow-deep:#022c22;
  --title-main-glow:rgba(16,185,129,.4);
  --title-main-glow-soft:rgba(5,150,105,.2);
  --brand-name-grad:linear-gradient(90deg,#ecfdf5 0%,#6ee7b7 35%,#10b981 70%,#6ee7b7 100%);
  --brand-orbit:rgba(52,211,153,.3);
  --brand-mark-ring:rgba(52,211,153,.24);
  --brand-mark-glow:rgba(5,150,105,.15);
  --surface-footer-bar:rgba(0,0,0,.22);
  --success:#4ade80;
  --success-bg:rgba(34,197,94,.15);
  --success-border:rgba(34,197,94,.3);
  --warning:#facc15;
  --warning-bg:rgba(250,204,21,.15);
  --warning-border:rgba(250,204,21,.3);
  --warning-bg2:rgba(250,204,21,.2);
  --warning-bg3:rgba(250,204,21,.28);
  --danger:#f87171;
  --danger-bg:rgba(248,113,113,.12);
  --danger-text:#fca5a5;
  --table-row-h:34px;
  --fs-table:13px;
  --fs-body:13px;
  --fs-hint:12px;
  --fs-small:11px;
  --title-grad1:#ecfdf5;
  --title-grad2:#6ee7b7;
  --title-grad3:#059669;
  --title-deep:#047857;
  --surface-a:rgba(8,48,38,.92);
  --surface-b:rgba(4,28,22,.95);
  --kpi-a:rgba(6,58,44,.92);
  --kpi-b:rgba(4,36,28,.95);
  --surface-soft:rgba(4,18,14,.6);
  --surface-input:rgba(6,28,22,.7);
  --surface-input2:rgba(4,18,14,.5);
  --surface-thead:rgba(4,24,18,.98);
  --surface-tab:rgba(4,18,14,.98);
  --surface-tab2:rgba(2,10,8,.99);
  --surface-hover:rgba(5,150,105,.18);
  --surface-hover2:rgba(5,150,105,.12);
  --surface-active:rgba(4,120,87,.35);
  --surface-tab-active-a:rgba(4,120,87,.4);
  --surface-tab-active-b:rgba(4,36,28,.9);
  --surface-seg:rgba(52,211,153,.18);
  --surface-rank:rgba(4,120,87,.08);
  --surface-rank-hover:rgba(52,211,153,.1);
  --surface-rank-no:rgba(4,120,87,.35);
  --surface-bar-bg:rgba(4,120,87,.15);
  --surface-analysis:rgba(4,120,87,.1);
  --line:rgba(52,211,153,.18);
  --line-soft:rgba(52,211,153,.06);
  --line-mid:rgba(52,211,153,.12);
  --line-strong:rgba(52,211,153,.3);
  --line-tab:rgba(52,211,153,.15);
  --line-tab-btn:rgba(52,211,153,.25);
  --inner-border:rgba(167,243,208,.18);
  --scan-line:rgba(209,250,229,.85);
  --scan-head:rgba(209,250,229,.12);
  --panel-head-bg:rgba(4,120,87,.12);
  --accent-text:#a7f3d0;
  --accent-text2:#bbf7d0;
  --accent-warm:#6ee7b7;
  --accent-orange:#34d399;
  --accent-btn-text:#022c22;
  --panel-shadow:inset 0 1px 0 rgba(209,250,229,.08),inset 0 0 30px rgba(4,120,87,.1),0 0 18px rgba(16,185,129,.1),0 4px 20px rgba(0,0,0,.2);
  --kpi-shadow:inset 0 1px 0 rgba(209,250,229,.1),inset 0 0 24px rgba(4,120,87,.12),0 4px 18px rgba(0,0,0,.25),0 0 16px rgba(16,185,129,.08);
  --glow-text:rgba(167,243,208,.65);
  --glow-text-soft:rgba(167,243,208,.45);
  --glow-kpi:rgba(16,185,129,.35);
  --glow-panel:rgba(167,243,208,.35);
  --glow-radial:rgba(16,185,129,.15);
  --glow-focus:rgba(16,185,129,.2);
  --glow-btn:rgba(16,185,129,.25);
  --glow-rank:rgba(16,185,129,.15);
  --glow-rank-bar:rgba(16,185,129,.5);
  --glow-top1:rgba(167,243,208,.15);
  --glow-tab:rgba(16,185,129,.15);
  --glow-seg:rgba(167,243,208,.5);
  --shadow-expand:0 -12px 48px rgba(0,0,0,.55),0 0 0 1px rgba(52,211,153,.25);
  --grad-kpi-bar:linear-gradient(180deg,#a7f3d0,#059669,#047857);
  --grad-head-bar:linear-gradient(180deg,#059669,#a7f3d0);
  --grad-rank-bar:linear-gradient(90deg,#047857,#059669,#a7f3d0);
  --grad-score-bar:linear-gradient(90deg,#047857,#a7f3d0);
  --grad-btn:linear-gradient(135deg,#a7f3d0,#34d399,#047857);
  --grad-tab-active:linear-gradient(180deg,rgba(4,120,87,.4),rgba(4,36,28,.9));
  --grad-tab-panel:linear-gradient(180deg,rgba(4,18,14,.98),rgba(2,10,8,.99));
  --grad-sparkline:linear-gradient(180deg,#a7f3d0,#047857);
  --body-radial-1:rgba(16,185,129,.2);
  --body-radial-2:rgba(52,211,153,.1);
  --body-grad-top:#061210;
  --body-grad-mid:#0c1f18;
  --body-grad-bot:#040c08;
  --grid-line:rgba(255,255,255,.04);
  --float-icon:rgba(16,185,129,.15);
  --particle-warm:rgba(167,243,208,.4);
  --particle-cool:rgba(5,150,105,.28);
  --chart-1:#a7f3d0;
  --chart-2:#34d399;
  --chart-3:#10b981;
  --chart-4:#059669;
  --chart-5:#047857;
  --chart-6:#6ee7b7;
  --chart-7:#0d9488;
  --chart-8:#134e4a;
  --chart-bg:rgba(4,18,14,.92);
  --chart-text:#ecfdf5;
  --chart-axis:#86efac;
  --chart-line:rgba(52,211,153,.4);
  --chart-split:rgba(52,211,153,.08);
  --chart-axis-line:rgba(52,211,153,.2);
  --chart-bar-bg:rgba(4,120,87,.15);
  --chart-bar-grad-top:rgba(167,243,208,.85);
  --chart-bar-grad-bot:rgba(4,120,87,.75);
  --chart-pie-border:#061210;
  --chart-line-shadow:rgba(16,185,129,.4);
  --chart-heat-1:#061210;
  --chart-heat-2:#065f46;
  --chart-heat-3:#059669;
  --chart-heat-4:#a7f3d0;
  --plaque-inner-a:rgba(6,44,34,.92);
  --plaque-inner-b:rgba(4,18,14,.96);
  --plaque-border-top:rgba(167,243,208,.35);
  --plaque-border-bot:rgba(52,211,153,.45);
  --plaque-inset:rgba(16,185,129,.08);
  --title-shadow-1:rgba(4,120,87,.9);
  --title-shadow-2:rgba(4,88,68,.8);
  --title-sep-color:rgba(167,243,208,.45);
  --tag-1:#6ee7b7;
  --tag-1-bg:rgba(16,185,129,.12);
  --tag-2-bg:rgba(5,150,105,.12);
  --tag-3:#34d399;
  --tag-3-bg:rgba(52,211,153,.12);
  --tag-4-bg:rgba(167,243,208,.1);
  --tag-5-bg:rgba(4,120,87,.12);
  --tag-6-bg:rgba(209,250,229,.1);
  --rank-top1:#a7f3d0;
  --rank-top2:#6ee7b7;
  --rank-top3:#34d399;
  --rank-bar-track:rgba(16,185,129,.1);
  --score-bar-track:rgba(16,185,129,.15);
  --scrollbar:rgba(52,211,153,.35);
  --table-hover:rgba(16,185,129,.18);
  --table-expand-border:rgba(167,243,208,.55);
  --table-expand-bg:rgba(4,120,87,.35);
  --table-row-hover:rgba(16,185,129,.18);
  --table-row-hover2:rgba(16,185,129,.24);
  --table-row-text:#ecfdf5;
}

/* ── 发布站经典（传奇红金 · 浅色开服表） ── */
html[data-theme="classic"] {
  --bg:#FFFAF2;
  --bg2:#FFF3E0;
  --panel:rgba(255,252,245,.98);
  --panel2:rgba(255,248,235,.96);
  --gold:#D4AF37;
  --gold2:#C9A227;
  --gold3:#A67C00;
  --red:#B91C1C;
  --red2:#DC2626;
  --red3:#7F1D1D;
  --text:#1A0A08;
  --muted:#5C4033;
  --border:rgba(185,28,28,.55);
  --accent:#D4AF37;
  --glow:rgba(212,175,55,.28);
  --header-bg1:#9B1C1C;
  --header-bg2:#6B1414;
  --header-accent:#FFD666;
  --header-accent2:#FFE08A;
  --theme-color:#8B1A1A;
  --live-dot:#15803D;
  --live-dot-glow:rgba(21,128,61,.55);
  --live-text:#166534;
  --live-border:rgba(21,128,61,.4);
  --banner-glow-a:rgba(185,28,28,.14);
  --banner-glow-b:rgba(212,175,55,.18);
  --banner-plate-bg:radial-gradient(ellipse 70% 105% at 50% 42%, rgba(185,28,28,.16) 0%, rgba(212,175,55,.1) 50%, transparent 76%);
  --banner-line:linear-gradient(90deg, transparent 0%, rgba(255,214,102,.55) 50%, transparent 100%);
  --title-main-grad:linear-gradient(180deg,#FFF9E6 0%,#FFD666 38%,#E85D04 72%,#FFD666 100%);
  --title-main-shadow:#5C1010;
  --title-main-shadow-deep:#3A0808;
  --title-main-glow:rgba(255,180,60,.35);
  --title-main-glow-soft:rgba(185,28,28,.15);
  --brand-name-grad:linear-gradient(90deg,#FFF5E6 0%,#FFD666 35%,#E85D04 70%,#FFD666 100%);
  --brand-orbit:rgba(212,175,55,.32);
  --brand-mark-ring:rgba(212,175,55,.35);
  --brand-mark-glow:rgba(185,28,28,.12);
  --surface-footer-bar:rgba(185,28,28,.08);
  --success:#15803D;
  --success-bg:rgba(21,128,61,.1);
  --success-border:rgba(21,128,61,.35);
  --warning:#D97706;
  --warning-bg:rgba(251,191,36,.18);
  --warning-border:rgba(217,119,6,.35);
  --warning-bg2:rgba(255,243,199,.9);
  --warning-bg3:rgba(254,240,138,.95);
  --danger:#B91C1C;
  --danger-bg:rgba(185,28,28,.08);
  --danger-text:#DC2626;
  --table-row-h:34px;
  --table-row-a:#FFF8DC;
  --table-row-b:#FFFFFF;
  --table-row-c:#FFF3CC;
  --table-row-hover:#FFE8B8;
  --fs-table:13px;
  --fs-body:13px;
  --fs-hint:12px;
  --fs-small:11px;
  --title-grad1:#FFF9E6;
  --title-grad2:#FFD666;
  --title-grad3:#E85D04;
  --title-deep:#5C1010;
  --surface-a:rgba(255,252,245,.98);
  --surface-b:rgba(255,245,230,.96);
  --kpi-a:rgba(255,252,245,.98);
  --kpi-b:rgba(255,248,235,.96);
  --surface-soft:rgba(255,250,240,.9);
  --surface-input:rgba(255,255,255,.96);
  --surface-input2:rgba(255,248,235,.92);
  --surface-thead:linear-gradient(180deg,#A82020 0%,#7A1515 100%);
  --surface-tab:rgba(255,252,245,.98);
  --surface-tab2:rgba(255,243,220,.98);
  --surface-hover:#FFE8B8;
  --surface-hover2:#FFF3CC;
  --surface-active:rgba(185,28,28,.12);
  --surface-tab-active-a:rgba(185,28,28,.18);
  --surface-tab-active-b:rgba(255,243,220,.95);
  --surface-seg:rgba(255,243,199,.92);
  --surface-rank:rgba(255,248,220,.85);
  --surface-rank-hover:rgba(255,236,179,.9);
  --surface-rank-no:rgba(185,28,28,.2);
  --surface-bar-bg:rgba(255,243,199,.75);
  --surface-analysis:rgba(255,252,245,.95);
  --line:rgba(185,28,28,.35);
  --line-soft:rgba(212,175,55,.28);
  --line-mid:rgba(185,28,28,.45);
  --line-strong:rgba(185,28,28,.65);
  --line-tab:rgba(212,175,55,.35);
  --line-tab-btn:rgba(185,28,28,.35);
  --inner-border:rgba(212,175,55,.28);
  --scan-line:rgba(255,214,102,.45);
  --scan-head:rgba(255,214,102,.1);
  --panel-head-bg:linear-gradient(180deg,#A82020 0%,#7A1515 100%);
  --accent-text:#7F1D1D;
  --accent-text2:#92400E;
  --accent-warm:#B91C1C;
  --accent-orange:#D97706;
  --accent-btn-text:#FFF8E8;
  --panel-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 2px 12px rgba(92,16,16,.08),0 0 0 1px rgba(212,175,55,.22);
  --kpi-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 4px 14px rgba(92,16,16,.1),0 0 0 1px rgba(212,175,55,.18);
  --glow-text:rgba(185,28,28,.15);
  --glow-text-soft:rgba(212,175,55,.2);
  --glow-kpi:rgba(212,175,55,.2);
  --glow-panel:rgba(212,175,55,.15);
  --glow-radial:rgba(185,28,28,.08);
  --glow-focus:rgba(212,175,55,.25);
  --glow-btn:rgba(212,175,55,.22);
  --gm-fee:#991B1B;
  --gm-fee-total:#7F1D1D;
  --gm-fee-bg:rgba(254,226,226,.95);
  --gm-fee-bg-strong:rgba(254,202,202,.98);
  --gm-stat-fee:#B91C1C;
  --gm-stat-accent:#B91C1C;
  --gm-stat-bar-bg:linear-gradient(90deg,rgba(185,28,28,.08),transparent 68%);
  --gm-stat-card-bg:#FFFFFF;
  --gm-stat-card-border:rgba(185,28,28,.2);
  --gm-stat-head-bg:#FFF8EF;
  --gm-stat-panel-bg:#FFFCF8;
  --gm-detail-head:#7F1D1D;
  --glow-rank:rgba(185,28,28,.1);
  --glow-rank-bar:rgba(212,175,55,.35);
  --glow-top1:rgba(255,236,179,.75);
  --glow-tab:rgba(185,28,28,.1);
  --glow-seg:rgba(255,214,102,.55);
  --shadow-expand:0 -10px 40px rgba(92,16,16,.15),0 0 0 2px rgba(212,175,55,.35);
  --grad-kpi-bar:linear-gradient(180deg,#FFD666,#E85D04,#B91C1C);
  --grad-head-bar:linear-gradient(180deg,#B91C1C,#FFD666);
  --grad-rank-bar:linear-gradient(90deg,#7F1D1D,#E85D04,#FFD666);
  --grad-score-bar:linear-gradient(90deg,#B91C1C,#FFD666);
  --grad-btn:linear-gradient(135deg,#FFD666,#E85D04,#B91C1C);
  --grad-tab-active:linear-gradient(180deg,rgba(185,28,28,.16),rgba(255,243,220,.98));
  --grad-tab-panel:linear-gradient(180deg,rgba(255,252,245,.98),rgba(255,243,220,.98));
  --grad-sparkline:linear-gradient(180deg,#FFD666,#B91C1C);
  --body-radial-1:rgba(185,28,28,.06);
  --body-radial-2:rgba(255,214,102,.12);
  --body-grad-top:#FFFAF2;
  --body-grad-mid:#FFF5E6;
  --body-grad-bot:#FFF0D6;
  --grid-line:rgba(185,28,28,.05);
  --float-icon:rgba(212,175,55,.12);
  --particle-warm:rgba(255,214,102,.3);
  --particle-cool:rgba(185,28,28,.12);
  --chart-1:#FFD666;
  --chart-2:#E85D04;
  --chart-3:#B91C1C;
  --chart-4:#15803D;
  --chart-5:#D97706;
  --chart-6:#C2410C;
  --chart-7:#92400E;
  --chart-8:#7F1D1D;
  --chart-bg:rgba(255,252,245,.96);
  --chart-text:#1A0A08;
  --chart-label:#5C1010;
  --chart-axis:#5C4033;
  --chart-line:rgba(185,28,28,.35);
  --chart-split:rgba(212,175,55,.1);
  --chart-axis-line:rgba(185,28,28,.25);
  --chart-bar-bg:rgba(255,243,199,.85);
  --chart-bar-grad-top:rgba(255,214,102,.9);
  --chart-bar-grad-bot:rgba(185,28,28,.75);
  --chart-pie-border:#FFF3CC;
  --chart-line-shadow:rgba(212,175,55,.25);
  --chart-heat-1:#FFF8DC;
  --chart-heat-2:#FFE8B8;
  --chart-heat-3:#E85D04;
  --chart-heat-4:#B91C1C;
  --plaque-inner-a:rgba(255,252,245,.95);
  --plaque-inner-b:rgba(255,243,220,.98);
  --plaque-border-top:rgba(255,214,102,.45);
  --plaque-border-bot:rgba(185,28,28,.35);
  --plaque-inset:rgba(212,175,55,.08);
  --title-shadow-1:rgba(127,29,29,.35);
  --title-shadow-2:rgba(92,16,16,.25);
  --title-sep-color:rgba(212,175,55,.45);
  --tag-1:#92400E;
  --tag-1-bg:rgba(255,243,199,.95);
  --tag-2-bg:rgba(255,236,179,.95);
  --tag-3:#B91C1C;
  --tag-3-bg:rgba(254,226,226,.9);
  --tag-4-bg:rgba(255,248,220,.9);
  --tag-5-bg:rgba(185,28,28,.1);
  --tag-6-bg:rgba(255,243,199,.85);
  --rank-top1:#FFD666;
  --rank-top2:#E85D04;
  --rank-top3:#B91C1C;
  --rank-bar-track:rgba(255,243,199,.85);
  --score-bar-track:rgba(255,236,179,.85);
  --scrollbar:rgba(185,28,28,.35);
  --table-hover:#FFE8B8;
  --table-expand-border:rgba(212,175,55,.55);
  --table-expand-bg:rgba(255,243,199,.9);
  --table-row-hover2:#FFE8B8;
  --table-row-text:#1A0A08;
}

html[data-theme="classic"] body::before {
  background: linear-gradient(180deg, #FFFAF2 0%, #FFF0D6 100%);
}

html[data-theme="classic"] body::after {
  opacity: .1;
}

html[data-theme="classic"] .header {
  box-shadow: inset 0 1px 0 rgba(255,230,150,.2), 0 4px 20px rgba(92,16,16,.18);
  border: 1px solid rgba(185,28,28,.28);
}

html[data-theme="classic"] .header::before,
html[data-theme="classic"] .header::after,
html[data-theme="classic"] .header-inner-corners::before,
html[data-theme="classic"] .header-inner-corners::after {
  box-shadow: none;
}

html[data-theme="classic"] .header-inner-corners::before,
html[data-theme="classic"] .header-inner-corners::after {
  display: none;
}

html[data-theme="classic"] .header::before,
html[data-theme="classic"] .header::after {
  width: 11px;
  height: 11px;
  border-width: 1px;
  border-color: rgba(255,214,102,.42);
  opacity: .75;
}

html[data-theme="classic"] .title-main-face {
  background: var(--title-main-grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  filter: drop-shadow(0 2px 8px rgba(185,28,28,.2));
  font-weight: 800;
}

html[data-theme="classic"] .title-main-shadow {
  display: block;
  opacity: .35;
}

html[data-theme="classic"] .brand-name {
  background: var(--brand-name-grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

html[data-theme="classic"] .panel {
  border: 1px solid rgba(185,28,28,.14);
  box-shadow: 0 2px 10px rgba(92,16,16,.05);
  background: #FFFCF5;
}

html[data-theme="classic"] .panel::before {
  display: none;
}

html[data-theme="classic"] .panel .corner-bracket {
  display: none;
}

html[data-theme="classic"] .panel::after {
  display: none;
}

html[data-theme="classic"] .theme-bar {
  background: rgba(0,0,0,.18);
  border-color: rgba(212,175,55,.28);
}

html[data-theme="classic"] .theme-pill {
  border-color: rgba(255,230,150,.28);
  background: rgba(0,0,0,.22);
  color: rgba(255,248,232,.82);
}

html[data-theme="classic"] .theme-pill:hover {
  border-color: rgba(255,214,102,.55);
  color: #FFF8E8;
}

html[data-theme="classic"] .theme-pill.active {
  background: rgba(185,28,28,.35);
  color: #FFD666;
  border-color: rgba(255,214,102,.55);
  box-shadow: 0 0 0 1px rgba(212,175,55,.22);
}

html[data-theme="classic"] .meta-chip {
  color: rgba(255,248,232,.88);
  border-color: rgba(212,175,55,.35);
  background: rgba(0,0,0,.18);
}

html[data-theme="classic"] .meta-chip.live {
  color: #86EFAC;
  border-color: rgba(21,128,61,.45);
}

html[data-theme="classic"] .header-clock {
  color: #FFE08A;
  text-shadow: 0 1px 2px rgba(0,0,0,.25);
}

html[data-theme="classic"] .panel-head h3 {
  color: #FFF8E8;
  text-shadow: 0 1px 2px rgba(0,0,0,.28);
}

html[data-theme="classic"] .panel-head .panel-hint {
  color: rgba(255,248,232,.92);
  font-weight: 500;
}

html[data-theme="classic"] .recommend-ticker-head,
html[data-theme="classic"] .overview-charts.is-ticker-expanded .ticker-head {
  color: #FFF8E8;
  background: linear-gradient(180deg, #A82020 0%, #7A1515 100%);
  border-bottom: 1px solid rgba(212,175,55,.4);
  box-shadow: inset 0 1px 0 rgba(255,230,150,.12);
}

html[data-theme="classic"] .recommend-ticker .ticker-row:nth-child(even) {
  background: var(--table-row-c);
}

html[data-theme="classic"] .recommend-section-bar {
  background: linear-gradient(90deg, rgba(255,243,199,.65), rgba(255,252,245,.4) 72%);
  border-top-color: rgba(212,175,55,.28);
}

html[data-theme="classic"] .recommend-section-bar strong {
  color: #7F1D1D;
}

html[data-theme="classic"] .recommend-section-hint {
  color: #92400E;
}

html[data-theme="classic"] .ticker-weight {
  color: #7F1D1D;
  font-weight: 700;
}

html[data-theme="classic"] .rank-no {
  color: #FFF8E8;
  background: rgba(185,28,28,.75);
}

html[data-theme="classic"] .rank-count {
  color: #7F1D1D;
  font-weight: 700;
}

html[data-theme="classic"] .rank-name {
  color: #1A0A08;
}

html[data-theme="classic"] .rank-item {
  background: rgba(255,252,245,.92);
  border: 1px solid rgba(212,175,55,.22);
}

html[data-theme="classic"] .rank-item:hover {
  background: #FFF3CC;
  box-shadow: 0 2px 10px rgba(185,28,28,.08);
}

html[data-theme="classic"] .type-th {
  color: #92400E;
  border-color: rgba(217,119,6,.45);
  background: rgba(255,243,199,.95);
}

html[data-theme="classic"] .type-wd {
  color: #991B1B;
  border-color: rgba(185,28,28,.35);
  background: rgba(254,226,226,.85);
}

html[data-theme="classic"] .type-jp {
  color: #6D28D9;
  border-color: rgba(109,40,217,.35);
  background: rgba(237,233,254,.9);
}

html[data-theme="classic"] .type-tx {
  color: #0369A1;
  border-color: rgba(3,105,161,.35);
  background: rgba(224,242,254,.9);
}

html[data-theme="classic"] .weight-10,
html[data-theme="classic"] .weight-9 {
  color: #7F1D1D;
  background: rgba(255,236,179,.95);
  border: 1px solid rgba(212,175,55,.35);
}

html[data-theme="classic"] .weight-8 {
  color: #92400E;
  background: rgba(255,243,199,.9);
}

html[data-theme="classic"] .weight-low {
  color: #991B1B;
  background: rgba(254,226,226,.85);
}

html[data-theme="classic"] .sub-count {
  color: #B91C1C;
}

html[data-theme="classic"] .data-badge {
  color: #92400E;
  background: rgba(255,252,245,.95);
  border-color: rgba(212,175,55,.35);
}

html[data-theme="classic"] .gm-summary.is-result {
  border-left-color: var(--gm-stat-accent);
  background: var(--gm-stat-bar-bg);
}

html[data-theme="classic"] .gm-summary b {
  color: var(--gm-stat-accent);
}

html[data-theme="classic"] .gm-search-table .gm-data-row:nth-child(even) {
  background: rgba(255, 243, 220, 0.55);
}

html[data-theme="classic"] .gm-stat-table thead th,
html[data-theme="classic"] .gm-stat-table tfoot td {
  color: #5C4033;
}

html[data-theme="classic"] .gm-bar-chip {
  background: #FFFFFF;
  color: #5C4033;
}

html[data-theme="classic"] .compare-legend {
  color: #5C4033;
}

html[data-theme="classic"] .compare-legend-focus {
  color: #7F1D1D;
}

html[data-theme="classic"] .compare-legend-focus em {
  color: #B91C1C;
}

html[data-theme="classic"] .compare-legend-focus i,
html[data-theme="classic"] .compare-legend-ref i {
  color: #92400E;
  opacity: 1;
}

html[data-theme="classic"] .compare-legend-ref {
  color: #5C4033;
}

html[data-theme="classic"] .compare-legend-tag {
  color: #B91C1C;
  background: rgba(255, 243, 199, 0.95);
  border-color: rgba(185, 28, 28, 0.35);
}

html[data-theme="classic"] .compare-stat.is-focus {
  background: rgba(255, 252, 245, 0.98);
  border-color: rgba(185, 28, 28, 0.35);
  box-shadow: inset 0 0 0 1px rgba(212, 175, 55, 0.18);
}

html[data-theme="classic"] .compare-stat.is-ref {
  background: rgba(255, 248, 235, 0.96);
  border-color: rgba(185, 28, 28, 0.22);
}

html[data-theme="classic"] .compare-stat.is-focus b {
  color: #B91C1C;
}

html[data-theme="classic"] .compare-chart-panel .panel-body {
  background: rgba(255, 252, 245, 0.98);
}

html[data-theme="classic"] .compare-table-wrap th.compare-th-focus {
  color: #FFD666 !important;
}

html[data-theme="classic"] .compare-table-wrap th.compare-th-ref {
  color: rgba(255, 248, 232, 0.92) !important;
}

html[data-theme="classic"] .compare-td-focus {
  color: #B91C1C;
}

html[data-theme="classic"] .compare-td-ref {
  color: #5C4033;
}

html[data-theme="classic"] .compare-stat span,
html[data-theme="classic"] .compare-stat i {
  color: #5C4033;
}

html[data-theme="classic"] .compare-stat.is-focus span em {
  color: #B91C1C;
}

html[data-theme="classic"] .history-daily {
  color: #1A0A08;
}

html[data-theme="classic"] .history-daily em {
  color: #B91C1C;
}

html[data-theme="classic"] .seg-btn {
  color: #5C4033;
  background: #FFFFFF;
  border-color: rgba(185,28,28,.22);
}

html[data-theme="classic"] .seg-btn.active {
  color: #7F1D1D;
  background: rgba(255,243,199,.85);
  border-color: rgba(185,28,28,.35);
}

html[data-theme="classic"] .analysis-stat b {
  color: #7F1D1D;
}

html[data-theme="classic"] .analysis-stat span {
  color: #92400E;
}

html[data-theme="classic"] .score-bar {
  background: rgba(255,243,199,.85);
}

html[data-theme="classic"] .score-bar i {
  background: linear-gradient(90deg, #B91C1C, #E85D04);
}

html[data-theme="classic"] .panel-head {
  background: linear-gradient(180deg, #A82020 0%, #7A1515 100%);
  border-bottom: 1px solid rgba(212,175,55,.4);
}

html[data-theme="classic"] .panel-head h3::before {
  background: #FFD666;
}

html[data-theme="classic"] th {
  color: #FFF8E8;
  font-weight: 700;
  text-shadow: 0 1px 2px rgba(0,0,0,.2);
  background: linear-gradient(180deg, #A82020 0%, #7A1515 100%);
  border-bottom: 1px solid rgba(212,175,55,.45);
  border-right: 1px solid rgba(212,175,55,.3);
}

html[data-theme="classic"] thead {
  background: linear-gradient(180deg, #A82020 0%, #7A1515 100%);
}

html[data-theme="classic"] td {
  color: #1A0A08;
  border-bottom: 1px solid rgba(185,28,28,.22);
  border-right: 1px solid rgba(185,28,28,.18);
}

html[data-theme="classic"] table {
  border: 1px solid rgba(185,28,28,.35);
}

html[data-theme="classic"] tbody tr.table-data-row:not(.is-alt) {
  background: var(--table-row-a);
}

html[data-theme="classic"] tbody tr.table-data-row.is-alt {
  background: var(--table-row-c);
}

html[data-theme="classic"] tbody tr.table-data-row:hover,
html[data-theme="classic"] tbody tr:nth-child(even):hover {
  background: #FFE8B8;
}

html[data-theme="classic"] tbody tr.table-data-row.is-alt:hover {
  background: #FFE8B8;
}

html[data-theme="classic"] tbody tr:nth-child(even) {
  background: var(--table-row-b);
}

html[data-theme="classic"] .filters input[type="date"] {
  color-scheme: light;
}

html[data-theme="classic"] .persona-btn {
  color: #5C4033;
  border-color: rgba(185,28,28,.28);
  background: linear-gradient(180deg, #FFFCF5, #FFF3CC);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 2px 8px rgba(92,16,16,.06);
}

html[data-theme="classic"] .persona-btn.active {
  color: #FFF8E8;
  border-color: rgba(212,175,55,.45);
  background: linear-gradient(180deg, #C62828 0%, #8B1A1A 100%);
  box-shadow: inset 0 1px 0 rgba(255,230,150,.2), 0 4px 12px rgba(185,28,28,.15);
}

html[data-theme="classic"] .tab-bar-sub {
  background: linear-gradient(180deg, rgba(255,243,220,.95), rgba(255,248,235,.88));
  border-color: rgba(212,175,55,.35);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 3px 12px rgba(92,16,16,.06);
}

html[data-theme="classic"] .tab-bar-label {
  color: #92400E;
}

html[data-theme="classic"] .tab-bar-sub .tab-btn {
  color: #5C4033;
  border-color: rgba(185,28,28,.22);
  background: linear-gradient(180deg, #FFFCF5 0%, #FFF3CC 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 2px 8px rgba(92,16,16,.06);
}

html[data-theme="classic"] .tab-bar-sub .tab-btn:hover {
  color: #7F1D1D;
  border-color: rgba(185,28,28,.35);
  background: linear-gradient(180deg, #FFF8E8 0%, #FFE8B8 100%);
}

html[data-theme="classic"] .tab-bar-sub .tab-btn.active {
  color: #FFF8E8;
  border-color: rgba(212,175,55,.45);
  background: linear-gradient(180deg, #C62828 0%, #8B1A1A 100%);
  box-shadow: inset 0 1px 0 rgba(255,230,150,.2), 0 4px 14px rgba(185,28,28,.18);
}

/* 主 Tab / 推荐 Tab — 与「更多」栏统一红金激活态 */
html[data-theme="classic"] .tab-btn {
  color: #5C4033;
  border-color: rgba(185,28,28,.28);
  background: linear-gradient(180deg, #FFFCF5 0%, #FFF3CC 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 2px 8px rgba(92,16,16,.06);
}

html[data-theme="classic"] .tab-btn:hover {
  color: #7F1D1D;
  background: linear-gradient(180deg, #FFF8E8 0%, #FFE8B8 100%);
  border-color: rgba(185,28,28,.35);
}

html[data-theme="classic"] .tab-btn.active,
html[data-theme="classic"] .tab-btn-recommend.active {
  color: #FFF8E8;
  border-color: rgba(212,175,55,.45);
  background: linear-gradient(180deg, #C62828 0%, #8B1A1A 100%);
  box-shadow: inset 0 1px 0 rgba(255,230,150,.2), 0 -2px 14px rgba(185,28,28,.15);
  text-shadow: 0 1px 2px rgba(0,0,0,.2);
}

html[data-theme="classic"] .tab-btn-recommend:hover {
  color: #7F1D1D;
  border-color: rgba(185,28,28,.35);
  background: linear-gradient(180deg, #FFF8E8 0%, #FFE8B8 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 0 18px rgba(212,175,55,.15);
}

html[data-theme="classic"] .filters select,
html[data-theme="classic"] .filters input,
html[data-theme="classic"] .rank-toolbar select,
html[data-theme="classic"] .rank-toolbar input,
html[data-theme="classic"] .history-toolbar select,
html[data-theme="classic"] .compare-toolbar select {
  color-scheme: light;
  background: #FFFFFF;
  border-color: rgba(185,28,28,.28);
  color: #1A0A08;
}

html[data-theme="classic"] .filters select:focus,
html[data-theme="classic"] .filters input:focus {
  border-color: rgba(185,28,28,.55);
  box-shadow: 0 0 0 2px rgba(212,175,55,.22);
}

html[data-theme="classic"] .btn-secondary {
  color: #7F1D1D;
  border-color: rgba(185,28,28,.35);
  background: linear-gradient(180deg, #FFFCF5, #FFF3CC);
}

html[data-theme="classic"] .footer {
  background: linear-gradient(180deg, #8B1A1A 0%, #5C1010 100%);
  box-shadow: inset 0 1px 0 rgba(255, 230, 150, 0.15);
}

html[data-theme="classic"] .footer-bottom,
html[data-theme="classic"] .footer-legal,
html[data-theme="classic"] .footer-copy-text,
html[data-theme="classic"] .footer-icp,
html[data-theme="classic"] .footer-support {
  color: rgba(255, 248, 232, 0.82);
}

html[data-theme="classic"] .footer-sep {
  color: rgba(255, 214, 102, 0.35);
}

html[data-theme="classic"] .footer-link {
  color: #FFD666;
}

html[data-theme="classic"] .footer-stat {
  background: rgba(0, 0, 0, 0.22);
  border-color: rgba(255, 214, 102, 0.2);
  color: rgba(255, 248, 232, 0.9);
}

html[data-theme="classic"] .footer-stat.is-live {
  color: #86efac;
  background: rgba(21, 128, 61, 0.2);
  border-color: rgba(21, 128, 61, 0.35);
}

html[data-theme="classic"] .table-more-bar {
  background: rgba(255, 252, 245, 0.98);
  border-top-color: rgba(185, 28, 28, 0.12);
}

html[data-theme="classic"] .table-more-hint {
  color: #5C4033;
}

html[data-theme="classic"] .btn-recommend-other {
  color: rgba(255, 248, 232, 0.92) !important;
}

html[data-theme="classic"] .btn-recommend-other:hover,
html[data-theme="classic"] .recommend-stream-panel.is-live-open .btn-recommend-other {
  color: #FFD666 !important;
}

html[data-theme="classic"] .btn-hourly-toggle,
html[data-theme="classic"] .btn-ticker-toggle,
html[data-theme="classic"] .btn-table-toggle {
  color: #FFF8E8 !important;
  border-color: rgba(212, 175, 55, 0.35) !important;
  background: rgba(185, 28, 28, 0.35) !important;
}

html[data-theme="classic"] ::-webkit-scrollbar-thumb {
  background: rgba(185,28,28,.35);
}

html[data-theme="classic"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(185,28,28,.5);
}

html[data-theme="classic"] .title-banner-plate {
  filter: drop-shadow(0 4px 14px rgba(185,28,28,.22));
  opacity: 1;
}

html[data-theme="classic"] .kpi {
  border: 1px solid rgba(185,28,28,.12);
  background: linear-gradient(165deg, #FFFCF5, #FFF8E8);
}

html[data-theme="classic"] .tag-kcq {
  color: #92400E;
  border-color: rgba(217,119,6,.45);
  background: rgba(255,243,199,.92);
}

html[data-theme="classic"] .tag-cq8 {
  color: #7F1D1D;
  border-color: rgba(185,28,28,.35);
  background: rgba(254,226,226,.85);
}

html[data-theme="classic"] .kpi-value,
html[data-theme="classic"] .kpi-label {
  color: #7F1D1D;
}

html[data-theme="classic"] .kpi-value {
  text-shadow: none;
}

html[data-theme="classic"] .kpi-sub {
  color: #92400E;
}

html[data-theme="classic"] .ticker-head {
  background: linear-gradient(180deg, #A82020, #7A1515);
  color: #FFF8E8;
  border-bottom: 1px solid rgba(212,175,55,.4);
}

html[data-theme="classic"] .ticker-row:nth-child(odd) {
  background: var(--table-row-a);
}

html[data-theme="classic"] .ticker-row:nth-child(even) {
  background: var(--table-row-c);
}

html[data-theme="classic"] .ticker-row:hover {
  background: #FFE8B8 !important;
}

html[data-theme="classic"] .ticker-row {
  color: #1A0A08;
  border-bottom: 1px solid rgba(185,28,28,.18);
}

html[data-theme="classic"] .link-btn-go,
html[data-theme="classic"] .go-link {
  color: #B91C1C;
  font-weight: 700;
}

html[data-theme="classic"] .link-btn-go:hover {
  color: #DC2626;
}

html[data-theme="classic"] .result-tip em {
  color: #B91C1C;
  text-shadow: none;
}

html[data-theme="classic"] .btn-primary {
  color: #FFF8E8;
  background: var(--grad-btn);
  border-color: rgba(212,175,55,.45);
}

html[data-theme="classic"] .m-ticker-item:nth-child(odd) {
  background: var(--table-row-a);
}

html[data-theme="classic"] .m-ticker-item:nth-child(even) {
  background: var(--table-row-c);
}

html[data-theme="classic"] .m-ticker-item:hover {
  background: #FFE8B8;
}

html[data-theme="classic"] .m-ticker-item {
  color: #1A0A08;
  border-bottom: 1px solid rgba(185,28,28,.18);
}

/* ── 经典深色（heat 主题） ── */
html[data-theme="heat"] {
  --bg:#181620;
  --bg2:#201e28;
  --panel:rgba(40,36,50,.92);
  --panel2:rgba(50,46,62,.88);
  --gold:#f0c868;
  --gold2:#d89830;
  --gold3:#f5d278;
  --red:#7ec8ff;
  --red2:#5a9fd4;
  --red3:#2a4060;
  --text:#faf6f0;
  --muted:#d4ccc2;
  --glow:rgba(240,200,104,.35);
  --header-bg1:rgba(36,42,58,.96);
  --header-bg2:rgba(24,22,30,.94);
  --header-accent:#7ec8ff;
  --header-accent2:#f0c868;
  --theme-color:#201e28;
  --live-dot:#6ee7a0;
  --live-dot-glow:rgba(110,231,160,.85);
  --live-text:#6ee7a0;
  --live-border:rgba(110,231,160,.45);
  --banner-glow-a:rgba(126,200,255,.28);
  --banner-glow-b:rgba(42,64,96,.42);
  --banner-plate-bg:radial-gradient(ellipse 70% 105% at 50% 42%, rgba(42,64,96,.55) 0%, rgba(28,26,36,.38) 50%, rgba(20,18,26,0) 76%);
  --banner-line:linear-gradient(90deg, transparent 0%, rgba(240,200,104,.5) 50%, transparent 100%);
  --title-main-grad:linear-gradient(180deg,#fff6dc 0%,#f0c868 42%,#d89830 78%,#f5d278 100%);
  --title-main-shadow:#342e40;
  --title-main-shadow-deep:#201e28;
  --title-main-glow:rgba(240,200,104,.42);
  --title-main-glow-soft:rgba(126,200,255,.2);
  --brand-name-grad:linear-gradient(90deg,#faf6f0 0%,#f0c868 35%,#7ec8ff 70%,#f0c868 100%);
  --brand-orbit:rgba(240,200,104,.32);
  --brand-mark-ring:rgba(126,200,255,.28);
  --brand-mark-glow:rgba(240,200,104,.16);
  --surface-footer-bar:rgba(0,0,0,.16);
  --success:#6ee7a0;
  --success-bg:rgba(110,231,160,.14);
  --success-border:rgba(110,231,160,.32);
  --warning:#f0c868;
  --warning-bg:rgba(240,200,104,.14);
  --warning-border:rgba(240,200,104,.32);
  --warning-bg2:rgba(240,200,104,.2);
  --warning-bg3:rgba(240,200,104,.26);
  --danger:#f08078;
  --danger-bg:rgba(240,128,120,.14);
  --danger-text:#f08078;
  --table-row-h:34px;
  --fs-table:13px;
  --fs-body:13px;
  --fs-hint:12px;
  --fs-small:11px;
  --title-grad1:#fff6dc;
  --title-grad2:#f0c868;
  --title-grad3:#d89830;
  --title-deep:#342e40;
  --surface-a:rgba(40,36,50,.96);
  --surface-b:rgba(28,26,36,.96);
  --kpi-a:rgba(48,44,58,.96);
  --kpi-b:rgba(32,30,40,.96);
  --surface-soft:rgba(32,30,40,.72);
  --surface-input:rgba(48,44,58,.88);
  --surface-input2:rgba(40,36,50,.78);
  --surface-thead:rgba(44,46,58,.98);
  --surface-tab:rgba(32,30,40,.98);
  --surface-tab2:rgba(26,24,32,.99);
  --surface-hover:rgba(126,200,255,.14);
  --surface-hover2:rgba(126,200,255,.1);
  --surface-active:rgba(42,64,96,.46);
  --surface-tab-active-a:rgba(42,64,96,.52);
  --surface-tab-active-b:rgba(32,30,40,.94);
  --surface-seg:rgba(240,200,104,.16);
  --surface-rank:rgba(42,64,96,.14);
  --surface-rank-hover:rgba(126,200,255,.12);
  --surface-rank-no:rgba(42,64,96,.42);
  --surface-bar-bg:rgba(42,64,96,.22);
  --surface-analysis:rgba(42,64,96,.16);
  --line:rgba(110,100,124,.28);
  --line-soft:rgba(110,100,124,.1);
  --line-mid:rgba(110,100,124,.18);
  --line-strong:rgba(240,200,104,.32);
  --line-tab:rgba(110,100,124,.22);
  --line-tab-btn:rgba(78,72,92,.58);
  --inner-border:rgba(126,200,255,.12);
  --scan-line:rgba(126,200,255,.38);
  --scan-head:rgba(126,200,255,.14);
  --panel-head-bg:rgba(42,64,96,.26);
  --accent-text:#f0c868;
  --accent-text2:#8ed4ff;
  --accent-warm:#f5d278;
  --accent-orange:#d89830;
  --accent-btn-text:#201e28;
  --panel-shadow:inset 0 1px 0 rgba(240,200,104,.08),inset 0 0 30px rgba(42,64,96,.14),0 0 18px rgba(0,0,0,.16),0 4px 20px rgba(0,0,0,.22);
  --kpi-shadow:inset 0 1px 0 rgba(240,200,104,.1),inset 0 0 24px rgba(42,64,96,.16),0 4px 18px rgba(0,0,0,.2);
  --glow-text:rgba(240,200,104,.6);
  --glow-text-soft:rgba(126,200,255,.4);
  --glow-kpi:rgba(240,200,104,.32);
  --glow-panel:rgba(126,200,255,.26);
  --glow-radial:rgba(126,200,255,.16);
  --glow-focus:rgba(126,200,255,.22);
  --glow-btn:rgba(240,200,104,.26);
  --gm-fee:#ffb84d;
  --gm-fee-total:#ffe08a;
  --gm-fee-bg:rgba(255,184,77,.14);
  --gm-fee-bg-strong:rgba(255,184,77,.22);
  --gm-stat-fee:#ffc857;
  --gm-stat-accent:#f0c868;
  --gm-stat-bar-bg:linear-gradient(90deg,rgba(42,64,96,.36),transparent 68%);
  --gm-stat-card-bg:rgba(40,36,50,.84);
  --gm-stat-card-border:#4e485c;
  --gm-stat-head-bg:rgba(32,30,40,.96);
  --gm-stat-panel-bg:rgba(36,32,44,.88);
  --gm-detail-head:#f0c868;
  --glow-rank:rgba(126,200,255,.14);
  --glow-rank-bar:rgba(126,200,255,.5);
  --glow-top1:rgba(240,200,104,.14);
  --glow-tab:rgba(126,200,255,.14);
  --glow-seg:rgba(240,200,104,.44);
  --shadow-expand:0 -12px 48px rgba(0,0,0,.4),0 0 0 1px rgba(110,100,124,.38);
  --grad-kpi-bar:linear-gradient(180deg,#f0c868,#d89830,#2a4060);
  --grad-head-bar:linear-gradient(180deg,#2a4060,#7ec8ff);
  --grad-rank-bar:linear-gradient(90deg,#2a4060,#7ec8ff,#f0c868);
  --grad-score-bar:linear-gradient(90deg,#2a4060,#f0c868);
  --grad-btn:linear-gradient(135deg,#f0c868,#d89830,#2a4060);
  --grad-tab-active:linear-gradient(180deg,rgba(42,64,96,.5),rgba(32,30,40,.94));
  --grad-tab-panel:linear-gradient(180deg,rgba(32,30,40,.98),rgba(26,24,32,.99));
  --grad-sparkline:linear-gradient(180deg,#f0c868,#2a4060);
  --body-radial-1:rgba(126,200,255,.16);
  --body-radial-2:rgba(240,200,104,.1);
  --table-row-a:rgba(255,255,255,.035);
  --table-row-c:rgba(255,255,255,.055);
  --table-row-hover:rgba(126,200,255,.1);
  --table-row-hover2:rgba(126,200,255,.16);
  --table-row-text:#faf6f0;
  --table-hover:rgba(126,200,255,.12);
  --table-expand-border:rgba(240,200,104,.38);
  --table-expand-bg:rgba(42,64,96,.32);
  --table-border:rgba(110,100,124,.22);
  --body-grad-top:#201e28;
  --body-grad-mid:#1c1a24;
  --body-grad-bot:#181620;
  --grid-line:rgba(126,200,255,.05);
  --float-icon:rgba(126,200,255,.16);
  --particle-warm:rgba(240,200,104,.26);
  --particle-cool:rgba(126,200,255,.2);
  --rank-bar-track:rgba(42,64,96,.32);
  --score-bar-track:rgba(42,64,96,.26);
  --scrollbar:rgba(126,200,255,.28);
  --tag-1:#f0c868;
  --tag-1-bg:rgba(240,200,104,.14);
  --tag-2-bg:rgba(126,200,255,.12);
  --tag-3:#7ec8ff;
  --tag-3-bg:rgba(126,200,255,.12);
  --tag-4-bg:rgba(240,200,104,.1);
  --tag-5-bg:rgba(240,128,120,.12);
  --tag-6-bg:rgba(110,231,160,.1);
  --border:rgba(78,72,92,.78);
  --compare-focus:#f0c868;
  --compare-ref:#7ec8ff;
  --chart-1:#f0c868;
  --chart-2:#f5d278;
  --chart-3:#7ec8ff;
  --chart-4:#5a9fd4;
  --chart-5:#2a4060;
  --chart-6:#d89830;
  --chart-7:#6ee7a0;
  --chart-8:#4e485c;
  --chart-bg:rgba(32,30,40,.96);
  --chart-text:#faf6f0;
  --chart-label:#d4ccc2;
  --chart-axis:#b8aea4;
  --chart-line:rgba(126,200,255,.4);
  --chart-split:rgba(110,100,124,.16);
  --chart-axis-line:rgba(110,100,124,.32);
  --chart-bar-bg:rgba(42,64,96,.26);
  --chart-bar-grad-top:rgba(240,200,104,.9);
  --chart-bar-grad-bot:rgba(42,64,96,.86);
  --chart-pie-border:#201e28;
  --chart-line-shadow:rgba(126,200,255,.32);
  --chart-heat-1:#201e28;
  --chart-heat-2:#2a4060;
  --chart-heat-3:#7ec8ff;
  --chart-heat-4:#f0c868;
  --dlg-trigger-bg:linear-gradient(180deg,rgba(42,64,96,.88),rgba(36,32,44,.96));
  --dlg-trigger-border:rgba(126,200,255,.42);
  --dlg-trigger-text:#c8e8ff;
  --dlg-trigger-ring:rgba(126,200,255,.18);
  --dlg-trigger-shadow:rgba(42,64,96,.38);
  --dlg-trigger-border-hover:rgba(126,200,255,.68);
  --dlg-trigger-ring-hover:rgba(126,200,255,.26);
  --dlg-trigger-shadow-hover:rgba(42,64,96,.48);
}

html[data-theme="heat"] body {
  background: #181620;
}

html[data-theme="heat"] body::before {
  background:
    radial-gradient(ellipse 90% 60% at 50% 0%, var(--body-radial-1), transparent 55%),
    radial-gradient(ellipse 70% 50% at 80% 100%, var(--body-radial-2), transparent),
    linear-gradient(180deg, var(--body-grad-top) 0%, var(--body-grad-mid) 42%, var(--body-grad-bot) 100%);
}

html[data-theme="heat"] body::after {
  opacity: 0.26;
}

html[data-theme="heat"] .screen-header,
html[data-theme="heat"] .header {
  border-bottom-color: #4e485c;
  box-shadow: 0 1px 0 rgba(240,200,104,.08), 0 8px 24px rgba(0,0,0,.22);
}

html[data-theme="heat"] .title-banner-plate::after {
  opacity: 0.55;
}

html[data-theme="heat"] .theme-pill {
  color: #b8aea4;
  background: rgba(40,36,50,.82);
  border-color: #4e485c;
}

html[data-theme="heat"] .theme-pill:hover {
  color: var(--gold);
  border-color: rgba(240,200,104,.35);
  background: rgba(42,64,96,.28);
}

html[data-theme="heat"] .theme-pill.active {
  color: var(--accent-btn-text);
  background: linear-gradient(180deg, #f0c868, #d89830);
  border-color: transparent;
  box-shadow: 0 0 12px rgba(240,200,104,.25);
}

html[data-theme="heat"] .persona-btn {
  color: var(--muted);
  background: rgba(40,36,50,.86);
  border-color: rgba(110,100,124,.48);
}

html[data-theme="heat"] .persona-btn:hover {
  color: var(--gold);
  border-color: rgba(240,200,104,.28);
  background: rgba(42,64,96,.22);
}

html[data-theme="heat"] .persona-btn.active {
  color: var(--gold);
  background: linear-gradient(180deg, rgba(42,64,96,.52), rgba(32,30,40,.94));
  border-color: rgba(240,200,104,.38);
  box-shadow: inset 3px 0 0 var(--gold), 0 0 18px rgba(126,200,255,.12);
}

html[data-theme="heat"] .tab-bar-sub {
  background: rgba(40,36,50,.78);
  border: 1px solid #4e485c;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 4px 18px rgba(0,0,0,.18);
}

html[data-theme="heat"] .tab-bar-label {
  color: #9a92a8;
}

html[data-theme="heat"] .tab-bar-sub .tab-btn {
  color: #d4ccc2;
  border-color: #4e485c;
  background: linear-gradient(180deg, rgba(48,44,58,.94), rgba(32,30,40,.96));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 2px 8px rgba(0,0,0,.18);
}

html[data-theme="heat"] .tab-bar-sub .tab-btn:hover {
  color: var(--gold);
  border-color: rgba(240,200,104,.28);
  background: linear-gradient(180deg, rgba(42,64,96,.36), rgba(40,36,50,.96));
}

html[data-theme="heat"] .tab-bar-sub .tab-btn.active {
  color: var(--gold);
  border-color: rgba(240,200,104,.35);
  background: linear-gradient(180deg, rgba(42,64,96,.46), rgba(32,30,40,.94));
  box-shadow: inset 0 1px 0 rgba(240,200,104,.1), 0 0 12px rgba(126,200,255,.14);
}

html[data-theme="heat"] .dlg-trigger.tab-guide-btn:not(.tab-traffic-btn) {
  animation: none;
}

html[data-theme="heat"] a.dlg-trigger.tab-traffic-btn,
html[data-theme="heat"] button.dlg-trigger.tab-traffic-btn {
  --dlg-trigger-bg: linear-gradient(180deg, #f0c868, #d89830);
  --dlg-trigger-border: rgba(240,200,104,.45);
  --dlg-trigger-text: #14121a;
  --dlg-trigger-ring: rgba(240,200,104,.18);
  --dlg-trigger-shadow: rgba(240,200,104,.22);
  --dlg-trigger-border-hover: rgba(245,210,120,.75);
  --dlg-trigger-ring-hover: rgba(240,200,104,.28);
  --dlg-trigger-shadow-hover: rgba(240,200,104,.32);
}

html[data-theme="heat"] .tab-traffic-badge {
  color: #14121a;
  background: rgba(20,18,26,.22);
  box-shadow: none;
}

html[data-theme="heat"] .tab-btn.active,
html[data-theme="heat"] .tab-btn-recommend.active {
  color: var(--gold);
  background: var(--grad-tab-active);
  border-color: rgba(240,200,104,.35);
  box-shadow: inset 0 1px 0 rgba(240,200,104,.1);
}

html[data-theme="heat"] .kpi {
  border-color: #4e485c;
  background: linear-gradient(145deg, rgba(48,44,58,.96), rgba(32,30,40,.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 4px 16px rgba(0,0,0,.18);
}

html[data-theme="heat"] .kpi-label {
  color: #b8aea4;
}

html[data-theme="heat"] .kpi-value {
  color: var(--gold);
  text-shadow: 0 0 12px rgba(240,200,104,.28);
}

html[data-theme="heat"] .kpi-sub {
  color: var(--accent-text2);
}

html[data-theme="heat"] .panel {
  border-color: #4e485c;
  background: linear-gradient(160deg, rgba(48,44,58,.96), rgba(32,30,40,.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 4px 20px rgba(0,0,0,.2);
}

html[data-theme="heat"] .panel::after {
  border-color: rgba(126,200,255,.06);
}

html[data-theme="heat"] .panel .corner-bracket {
  border-color: rgba(240,200,104,.42);
  opacity: 0.62;
  box-shadow: none;
}

html[data-theme="heat"] .panel-head {
  background: linear-gradient(180deg, rgba(42,64,96,.22), rgba(40,36,50,.78));
  border-bottom-color: #4e485c;
}

html[data-theme="heat"] .panel-head h3,
html[data-theme="heat"] .compare-legend-focus em {
  color: var(--gold);
}

html[data-theme="heat"] .panel-hint,
html[data-theme="heat"] .tab-bar-label,
html[data-theme="heat"] .recommend-stream-panel .panel-hint {
  color: #9a92a8;
}

html[data-theme="heat"] .recommend-ticker-head,
html[data-theme="heat"] .overview-charts.is-ticker-expanded .ticker-head {
  color: #d4ccc2;
  background: linear-gradient(180deg, #262230 0%, #201e28 100%);
  border-bottom: 1px solid #4e485c;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

html[data-theme="heat"] .recommend-section-bar {
  background: linear-gradient(90deg, rgba(42,64,96,.22), transparent 72%);
  border-top-color: rgba(90,80,104,.22);
}

html[data-theme="heat"] .recommend-section-featured .recommend-section-bar {
  background: linear-gradient(90deg, rgba(240,200,104,.1), transparent 72%);
}

html[data-theme="heat"] .recommend-section-bar strong {
  color: var(--gold);
}

html[data-theme="heat"] .recommend-section-hint {
  color: #9a92a8;
}

html[data-theme="heat"] .recommend-ticker .ticker-row:nth-child(even) {
  background: rgba(255,255,255,.04);
}

html[data-theme="heat"] .recommend-ticker .ticker-row:hover {
  background: rgba(126,200,255,.06);
}

html[data-theme="heat"] .ticker-weight {
  color: var(--gold);
}

html[data-theme="heat"] .recommend-ticker .link-btn-ticker,
html[data-theme="heat"] .link-btn-ticker {
  color: var(--accent-text2);
}

html[data-theme="heat"] .recommend-ticker .link-btn-ticker:hover,
html[data-theme="heat"] .link-btn-ticker:hover {
  color: var(--gold);
}

html[data-theme="heat"] .btn-recommend-other {
  color: var(--accent-text2) !important;
}

html[data-theme="heat"] .type-th {
  color: #14121a;
  background: rgba(240,200,104,.88);
  border-color: rgba(240,200,104,.35);
}

html[data-theme="heat"] .weight-10,
html[data-theme="heat"] .weight-9 {
  color: #14121a;
  background: rgba(240,200,104,.88);
  border-color: rgba(240,200,104,.35);
}

html[data-theme="heat"] .meta-chip.live {
  color: var(--live-text);
  border-color: var(--live-border);
  background: rgba(110,231,160,.08);
}

html[data-theme="heat"] .meta-chip.sync {
  color: var(--accent-text2);
  border-color: rgba(126,200,255,.28);
  background: rgba(42,64,96,.22);
}

html[data-theme="heat"] .header-clock {
  color: var(--gold);
  text-shadow: 0 0 10px var(--glow-text-soft);
}

html[data-theme="heat"] .btn-primary {
  color: var(--accent-btn-text);
  background: linear-gradient(180deg, #f0c868, #d89830);
  border-color: rgba(240,200,104,.35);
  box-shadow: 0 4px 14px rgba(240,200,104,.16);
}

html[data-theme="heat"] .btn-ghost {
  color: var(--accent-text2);
  border-color: rgba(126,200,255,.28);
  background: rgba(42,64,96,.16);
}

html[data-theme="heat"] .btn-ghost:hover {
  color: var(--gold);
  border-color: rgba(240,200,104,.35);
  background: rgba(42,64,96,.28);
}

html[data-theme="heat"] .rank-no {
  color: var(--accent-btn-text);
  background: linear-gradient(180deg, #f0c868, #d89830);
}

html[data-theme="heat"] .rank-count,
html[data-theme="heat"] .sub-count,
html[data-theme="heat"] .analysis-stat b {
  color: var(--gold);
}

html[data-theme="heat"] .rank-name,
html[data-theme="heat"] .history-daily em {
  color: var(--accent-text2);
}

html[data-theme="heat"] .compare-legend-focus {
  color: var(--gold);
}

html[data-theme="heat"] .compare-legend-ref {
  color: var(--compare-ref);
}

html[data-theme="heat"] .compare-stat.is-focus {
  border-color: rgba(240,200,104,.32);
  background: rgba(42,64,96,.18);
}

html[data-theme="heat"] .compare-stat.is-ref {
  border-color: rgba(126,200,255,.22);
  background: rgba(40,36,50,.78);
}

html[data-theme="heat"] .compare-stat.is-focus b {
  color: var(--gold);
}

html[data-theme="heat"] .compare-stat.is-ref b {
  color: var(--compare-ref);
}

html[data-theme="heat"] .compare-td-focus {
  color: var(--gold);
}

html[data-theme="heat"] .compare-td-ref {
  color: var(--compare-ref);
}

html[data-theme="heat"] .seg-btn {
  color: #d4ccc2;
  border-color: #4e485c;
  background: rgba(40,36,50,.78);
}

html[data-theme="heat"] .seg-btn.active {
  color: var(--accent-btn-text);
  background: linear-gradient(180deg, #f0c868, #d89830);
  border-color: rgba(240,200,104,.35);
}

html[data-theme="heat"] .score-bar i {
  background: var(--grad-score-bar);
}

html[data-theme="heat"] .site-footer {
  border-top-color: #4e485c;
  background: rgba(24,22,30,.76);
}

html[data-theme="heat"] .site-footer a {
  color: var(--accent-text2);
}

html[data-theme="heat"] .site-footer a:hover {
  color: var(--gold);
}

html[data-theme="heat"] .persona-bar {
  margin: 0 2px;
  padding: 8px 8px 4px;
  border-radius: 10px;
  background: rgba(32,30,40,.56);
  border: 1px solid rgba(78,72,92,.42);
}

html[data-theme="heat"] .tab-panel.active {
  background: linear-gradient(180deg, rgba(28,26,36,.9), rgba(24,22,30,.94));
}

html[data-theme="heat"] .ticker-head {
  background: linear-gradient(180deg, #262230 0%, #201e28 100%);
  color: #b8aea4;
  border-bottom-color: #4e485c;
}

html[data-theme="heat"] .ticker-row:hover {
  background: rgba(126,200,255,.06);
}

html[data-theme="heat"] .btn-ticker-toggle,
html[data-theme="heat"] .btn-hourly-toggle,
html[data-theme="heat"] .btn-table-toggle {
  color: var(--gold) !important;
  border-color: rgba(240,200,104,.32) !important;
  background: rgba(42,64,96,.28) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

html[data-theme="heat"] .btn-ticker-toggle:hover,
html[data-theme="heat"] .btn-hourly-toggle:hover,
html[data-theme="heat"] .btn-table-toggle:hover {
  color: var(--accent-btn-text) !important;
  background: rgba(240,200,104,.85) !important;
  border-color: rgba(240,200,104,.45) !important;
}

html[data-theme="heat"] .overview-charts.is-ticker-expanded .btn-ticker-toggle,
html[data-theme="heat"] .overview-charts.is-hourly-expanded .btn-hourly-toggle,
html[data-theme="heat"] .overview-table.is-expanded .btn-table-toggle {
  background: rgba(42,64,96,.42) !important;
  color: var(--accent-text2) !important;
}

html[data-theme="heat"] .filters select,
html[data-theme="heat"] .filters input,
html[data-theme="heat"] .rank-toolbar select,
html[data-theme="heat"] .rank-toolbar input {
  background: rgba(40,36,50,.86);
  border-color: #4e485c;
  color: var(--text);
}

html[data-theme="heat"] .filters select:focus,
html[data-theme="heat"] .filters input:focus {
  border-color: rgba(240,200,104,.38);
  box-shadow: 0 0 10px rgba(126,200,255,.12);
}

html[data-theme="heat"] thead th {
  background: linear-gradient(180deg, #262230 0%, #201e28 100%);
  color: #d4ccc2;
  border-bottom-color: #4e485c;
}

html[data-theme="heat"] .data-banner {
  border-color: rgba(240,200,104,.28);
  background: linear-gradient(90deg, rgba(42,64,96,.24), rgba(240,200,104,.08), rgba(42,64,96,.24));
  color: var(--gold);
  box-shadow: 0 0 14px rgba(126,200,255,.08);
}

html[data-theme="heat"] .rank-item {
  background: rgba(40,36,50,.78);
  border-color: #4e485c;
}

html[data-theme="heat"] .rank-item:hover {
  background: rgba(42,64,96,.18);
  box-shadow: none;
}

html[data-theme="heat"] ::-webkit-scrollbar-thumb {
  background: rgba(126,200,255,.18);
}

html[data-theme="heat"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(126,200,255,.28);
}

/* ===== 13-splash.css ===== */
/* Entry splash — glass panel, minimal motion */
body.splash-active {
  overflow: hidden;
}
body.splash-active #app,
body.splash-active #mApp {
  visibility: hidden;
}

.splash {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 24px;
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, rgba(120, 32, 18, 0.45), transparent 58%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(0, 0, 0, 0.55), transparent 70%),
    linear-gradient(168deg, #0a0303 0%, #160808 48%, #0c0404 100%);
  transition: opacity 0.55s ease, transform 0.55s ease;
}

.splash-out {
  opacity: 0;
  transform: scale(1.02);
  pointer-events: none;
}

.splash-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.splash-bg-glow {
  position: absolute;
  left: 50%;
  top: 42%;
  width: min(560px, 88vw);
  height: min(560px, 88vw);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 160, 60, 0.1) 0%, transparent 70%);
  opacity: 0.85;
}

.splash-bg-grid {
  position: absolute;
  inset: 0;
  opacity: 0.14;
  background-image:
    linear-gradient(rgba(255, 200, 100, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 200, 100, 0.05) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 65% 55% at 50% 45%, #000 15%, transparent 78%);
  mask-image: radial-gradient(ellipse 65% 55% at 50% 45%, #000 15%, transparent 78%);
}

.splash-panel {
  position: relative;
  width: min(560px, 100%);
  padding: 1px;
  border-radius: 22px;
  background: linear-gradient(165deg, rgba(255, 210, 120, 0.28), rgba(255, 120, 40, 0.08) 40%, rgba(255, 200, 100, 0.12));
  box-shadow:
    0 28px 80px rgba(0, 0, 0, 0.62),
    0 0 0 1px rgba(255, 200, 100, 0.06);
}

.splash-core {
  position: relative;
  padding: 40px 44px 34px;
  border-radius: 21px;
  text-align: center;
  background: linear-gradient(168deg, rgba(48, 14, 10, 0.96) 0%, rgba(24, 7, 6, 0.98) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 220, 150, 0.12),
    inset 0 -16px 32px rgba(0, 0, 0, 0.35);
}

.splash-brand-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 26px;
}

.splash-mark {
  position: relative;
  width: 60px;
  height: 60px;
  flex-shrink: 0;
}

.splash-mark-glow {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 180, 60, 0.22) 0%, transparent 72%);
  box-shadow: 0 0 24px rgba(255, 140, 40, 0.2);
}

.splash-mark-core {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(70, 18, 12, 0.95), rgba(35, 8, 6, 0.98));
  border: 1px solid rgba(255, 200, 100, 0.22);
  box-shadow:
    0 8px 20px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(255, 220, 140, 0.15);
}

.splash-mark-core svg {
  width: 36px;
  height: 36px;
  filter: drop-shadow(0 2px 6px rgba(255, 160, 40, 0.35));
}

.splash-brand-copy {
  text-align: left;
}

.splash-brand-name {
  display: block;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #ffe8a8;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.splash-brand-domain {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(240, 212, 184, 0.65);
}

.splash-title {
  margin: 0 0 12px;
  font-size: clamp(24px, 4.8vw, 34px);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.3;
  background: linear-gradient(180deg, #fff8dc 0%, #ffd56a 42%, #ff9a4d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 14px rgba(255, 100, 40, 0.22));
}

.splash-sub {
  margin: 0 0 32px;
  font-size: 14px;
  line-height: 1.75;
  color: rgba(240, 212, 184, 0.78);
  letter-spacing: 0.04em;
}

.splash-progress {
  position: relative;
  height: 5px;
  margin: 0 auto 20px;
  max-width: 360px;
  border-radius: 99px;
  background: rgba(255, 200, 100, 0.1);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35);
  overflow: hidden;
}

.splash-progress-bar {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #ffb84d, #ffd666, #ffb84d);
  box-shadow: 0 0 12px rgba(255, 180, 60, 0.45);
  animation: splashProgressFill 2.4s cubic-bezier(0.45, 0, 0.25, 1) infinite;
}

.splash-status {
  min-height: 24px;
  margin: 0 0 24px;
  font-size: 15px;
  font-weight: 500;
  color: rgba(255, 245, 230, 0.9);
  letter-spacing: 0.08em;
  transition: opacity 0.3s ease;
}

.splash-status::before {
  content: "●";
  display: inline-block;
  margin-right: 8px;
  font-size: 10px;
  color: #ffb84d;
  animation: splashStatusPulse 1.6s ease-in-out infinite;
}

.splash-status-fade {
  opacity: 0.4;
}

.splash-tip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 22px;
  border-radius: 12px;
  border: 1px solid rgba(255, 200, 100, 0.2);
  background: linear-gradient(180deg, rgba(255, 200, 100, 0.08), rgba(0, 0, 0, 0.28));
  box-shadow:
    0 4px 16px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 220, 140, 0.1);
  font-size: 14px;
  line-height: 1.5;
  color: rgba(240, 212, 184, 0.92);
}

.splash-tip kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 32px;
  padding: 4px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255, 214, 102, 0.35);
  background: linear-gradient(180deg, rgba(255, 214, 102, 0.16), rgba(40, 10, 8, 0.5));
  color: #ffd666;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow:
    0 2px 0 rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 240, 200, 0.12);
}

@keyframes splashProgressFill {
  0% { width: 0; opacity: 0.85; }
  70% { width: 88%; opacity: 1; }
  100% { width: 88%; opacity: 0.85; }
}

@keyframes splashStatusPulse {
  0%, 100% { opacity: 0.45; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1); }
}

@media (max-width: 768px) {
  .splash-core { padding: 32px 24px 28px; }
  .splash-tip kbd { min-width: 36px; min-height: 28px; font-size: 12px; }
  .splash-title { letter-spacing: 0.04em; }
}

/* ===== 14-dialogue.css ===== */
/* 三角色对话剧场 — 纯 CSS 动画 */

.dlg-open {
  overflow: hidden;
}

.dlg-trigger {
  flex-shrink: 0;
  padding: 11px 20px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 9px;
  border: 1px solid var(--dlg-trigger-border, rgba(255, 214, 102, 0.55));
  background: var(--dlg-trigger-bg, linear-gradient(180deg, rgba(196, 30, 30, 0.85) 0%, rgba(92, 16, 16, 0.95) 100%));
  color: var(--dlg-trigger-text, #ffe566);
  cursor: pointer;
  box-shadow:
    inset 0 1px 0 rgba(255, 230, 150, 0.25),
    0 0 0 2px var(--dlg-trigger-ring, rgba(255, 214, 102, 0.15)),
    0 4px 16px var(--dlg-trigger-shadow, rgba(255, 100, 40, 0.2));
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
  animation: dlgTriggerBounce 2s ease-in-out infinite;
}

.tab-bar-sub .dlg-trigger.tab-guide-btn {
  margin-left: 4px;
  padding: 11px 18px 11px 14px;
}

a.dlg-trigger.tab-traffic-btn,
button.dlg-trigger.tab-traffic-btn {
  text-decoration: none;
  margin-left: 6px;
  padding: 11px 16px 11px 14px;
  white-space: nowrap;
  font: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.tab-traffic-badge {
  display: inline-block;
  margin-left: 8px;
  margin-bottom: 0;
  padding: 1px 7px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.4;
  vertical-align: middle;
  color: #fff8e8;
  background: linear-gradient(135deg, #2a4060, #5a9fd4);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(126, 200, 255, 0.35);
  animation: dlgIconBlink 1.6s ease-in-out infinite;
}

.dlg-trigger-icon {
  display: inline-block;
  margin-right: 6px;
  font-size: 10px;
  opacity: 0.9;
  animation: dlgIconBlink 1.6s ease-in-out infinite;
}

.dlg-trigger.is-guide-target {
  z-index: 8102;
  position: relative;
  animation: dlgTriggerBounce 0.85s ease-in-out infinite;
  box-shadow:
    inset 0 1px 0 rgba(255, 230, 150, 0.35),
    0 0 0 3px rgba(255, 214, 102, 0.45),
    0 0 24px 6px rgba(255, 180, 60, 0.35);
}

@keyframes dlgTriggerBounce {
  0%, 100% { transform: translateY(0); }
  15% { transform: translateY(-4px); }
  30% { transform: translateY(0); }
  45% { transform: translateY(-2px); }
  60% { transform: translateY(0); }
}

@keyframes dlgIconBlink {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
}

.dlg-trigger:hover {
  transform: translateY(-2px);
  border-color: var(--dlg-trigger-border-hover, rgba(255, 230, 150, 0.75));
  box-shadow:
    inset 0 1px 0 rgba(255, 230, 150, 0.3),
    0 0 0 2px var(--dlg-trigger-ring-hover, rgba(255, 214, 102, 0.3)),
    0 8px 22px var(--dlg-trigger-shadow-hover, rgba(255, 100, 40, 0.35));
  animation: none;
}

.dlg-entry-guide {
  position: fixed;
  inset: 0;
  z-index: 8100;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s;
}

.dlg-entry-guide.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.dlg-entry-guide-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 2, 2, 0.55);
  backdrop-filter: blur(2px);
}

.dlg-entry-guide-pop {
  position: fixed;
  z-index: 8101;
  min-width: 260px;
  max-width: 320px;
  padding: 16px 18px 14px;
  border-radius: 12px;
  border: 2px solid rgba(255, 214, 102, 0.45);
  background: linear-gradient(165deg, #fffdf5, #fff3cc);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
  color: #1a0a08;
  animation: dlgGuidePopIn 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.dlg-entry-guide-pop::before {
  content: "";
  position: absolute;
  top: -10px;
  left: var(--guide-arrow-x, 50%);
  margin-left: -10px;
  width: 18px;
  height: 18px;
  background: #fff3cc;
  border-left: 2px solid rgba(255, 214, 102, 0.45);
  border-top: 2px solid rgba(255, 214, 102, 0.45);
  transform: rotate(45deg);
}

@keyframes dlgGuidePopIn {
  from { opacity: 0; transform: translateY(10px) scale(0.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.dlg-entry-guide-badge {
  display: inline-block;
  margin-bottom: 6px;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #fff8e8;
  background: linear-gradient(135deg, #b91c1c, #7f1d1d);
  border-radius: 999px;
}

.dlg-entry-guide-pop strong {
  display: block;
  font-size: 16px;
  color: #7f1d1d;
  margin-bottom: 6px;
}

.dlg-entry-guide-pop p {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.6;
  color: #5c4033;
}

.dlg-entry-guide-actions {
  display: flex;
  gap: 10px;
  flex-wrap: nowrap;
}

/* 浅色弹窗内按钮：不用全局 ghost（深色主题变量在浅底上几乎看不见） */
.dlg-entry-guide-actions .btn {
  flex: 1;
  min-height: 36px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
  border-radius: 8px;
  box-shadow: none;
}

.dlg-entry-guide-actions .btn:hover {
  transform: translateY(-1px);
}

.dlg-entry-guide-actions .btn-primary {
  border: 1px solid rgba(185, 28, 28, 0.4);
  background: linear-gradient(135deg, #dc2626, #991b1b);
  color: #fff8e8;
  box-shadow: 0 4px 14px rgba(185, 28, 28, 0.32);
}

.dlg-entry-guide-actions .btn-primary:hover {
  background: linear-gradient(135deg, #ef4444, #b91c1c);
  box-shadow: 0 6px 18px rgba(185, 28, 28, 0.4);
}

.dlg-entry-guide-actions .btn-ghost {
  background: #fff;
  border: 1.5px solid rgba(92, 64, 51, 0.55) !important;
  color: #4a2e22;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.dlg-entry-guide-actions .dlg-guide-later {
  flex: 1;
  min-height: 36px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
  border-radius: 8px;
  cursor: pointer;
  background: #fff;
  border: 2px solid #5c4033 !important;
  color: #3d2518;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.95), 0 2px 8px rgba(92, 64, 51, 0.12);
  transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.15s;
}

.dlg-entry-guide-actions .dlg-guide-later:hover {
  background: #fff3e0;
  border-color: #7f1d1d !important;
  color: #7f1d1d;
  transform: translateY(-1px);
  box-shadow: 0 3px 12px rgba(127, 29, 29, 0.18);
}

.dlg-entry-guide-actions .btn-ghost:hover {
  background: #fff8eb;
  border-color: rgba(127, 29, 29, 0.6) !important;
  color: #7f1d1d;
  box-shadow: 0 2px 10px rgba(92, 64, 51, 0.14);
}

.dlg-overlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(8, 2, 2, 0.72);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.35s ease, visibility 0.35s;
}

.dlg-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.dlg-overlay.is-open .dlg-panel {
  animation: dlgPanelIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes dlgPanelIn {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.dlg-panel {
  width: min(920px, 100%);
  max-height: min(92vh, 720px);
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255, 214, 102, 0.28);
  border-radius: 12px;
  background: linear-gradient(165deg, var(--surface-a, rgba(42, 12, 10, 0.98)), var(--surface-b, rgba(28, 8, 6, 0.98)));
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 230, 150, 0.12);
  overflow: hidden;
}

.dlg-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line-soft, rgba(255, 140, 60, 0.15));
  background: var(--panel-head-bg, linear-gradient(180deg, #8b1a1a, #5c1010));
}

.dlg-head-title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--header-accent2, #ffe08a);
  letter-spacing: 0.06em;
}

.dlg-head-sub {
  font-size: 11px;
  color: rgba(255, 248, 232, 0.72);
  flex: 1;
  min-width: 120px;
}

.dlg-head-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}

.dlg-mode-btn {
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 600;
  border-radius: 4px;
  border: 1px solid rgba(255, 214, 102, 0.25);
  background: rgba(0, 0, 0, 0.2);
  color: rgba(255, 248, 232, 0.85);
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.dlg-mode-btn.is-active {
  background: rgba(255, 214, 102, 0.2);
  border-color: rgba(255, 214, 102, 0.5);
  color: #ffe566;
}

.dlg-btn-close {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.25);
  color: rgba(255, 248, 232, 0.9);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s;
}

.dlg-btn-close:hover {
  background: rgba(185, 28, 28, 0.5);
}

.dlg-scene-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 16px;
  border-bottom: 1px solid var(--line-soft);
  background: rgba(0, 0, 0, 0.12);
}

.dlg-scene-chip {
  padding: 4px 10px;
  font-size: 11px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
  color: var(--muted);
  cursor: pointer;
  transition: all 0.2s;
}

.dlg-scene-chip:hover {
  border-color: var(--gold2);
  color: var(--accent-text);
}

.dlg-scene-chip.is-active {
  border-color: var(--gold2);
  background: rgba(255, 214, 102, 0.12);
  color: var(--accent-warm);
  font-weight: 700;
}

.dlg-stage-wrap {
  position: relative;
  flex: 1;
  min-height: 280px;
  overflow: hidden;
  cursor: pointer;
}

.dlg-stage-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(255, 214, 102, 0.08), transparent 70%),
    linear-gradient(180deg, rgba(255, 252, 245, 0.04) 0%, transparent 40%);
  pointer-events: none;
}

.dlg-stage-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    90deg,
    transparent,
    transparent 48px,
    rgba(255, 214, 102, 0.03) 48px,
    rgba(255, 214, 102, 0.03) 49px
  );
  animation: dlgStageScan 8s linear infinite;
}

@keyframes dlgStageScan {
  from { transform: translateX(0); }
  to { transform: translateX(49px); }
}

.dlg-stage {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  height: 100%;
  min-height: 260px;
  padding: 16px 20px 12px;
}

.dlg-char {
  flex: 1;
  max-width: 32%;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s, filter 0.35s;
}

.dlg-char.is-idle {
  opacity: 0.55;
  transform: scale(0.88) translateY(8px);
  filter: saturate(0.7);
}

.dlg-char.is-active {
  opacity: 1;
  transform: scale(1.05) translateY(0);
  filter: saturate(1);
  z-index: 2;
}

.dlg-char.is-speaking .dlg-char-body {
  animation: dlgCharTalk 0.55s ease-in-out infinite;
}

@keyframes dlgCharTalk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

.dlg-char--pose-lean-left.is-active .dlg-char-body {
  transform: rotate(-4deg);
}

.dlg-char--pose-lean-right.is-active .dlg-char-body {
  transform: rotate(4deg);
}

.dlg-char--pose-point.is-active .dlg-char-body {
  animation: dlgCharPoint 0.8s ease-in-out infinite;
}

@keyframes dlgCharPoint {
  0%, 100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(6px) rotate(2deg); }
}

.dlg-char--slot-left { align-self: flex-end; }
.dlg-char--slot-center { align-self: flex-end; }
.dlg-char--slot-right { align-self: flex-end; }

.dlg-char-body {
  width: 100%;
  max-width: 155px;
  transition: transform 0.4s ease;
  position: relative;
  z-index: 1;
}

.dlg-char-svg {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.25));
}

.dlg-char.is-active .dlg-char-svg {
  animation: dlgCharEnter 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes dlgCharEnter {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.dlg-char-name {
  margin-top: 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--muted);
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.15);
}

.dlg-char.is-active .dlg-char-name {
  color: var(--accent-warm);
  background: rgba(255, 214, 102, 0.12);
}

.dlg-bubble-host {
  position: absolute;
  left: 0;
  right: 0;
  top: 8px;
  z-index: 20;
  display: flex;
  justify-content: center;
  padding: 0 12px;
  pointer-events: none;
}

.dlg-bubble-host .dlg-bubble-link {
  pointer-events: auto;
}

.dlg-stage-wrap.is-narrator .dlg-char {
  opacity: 0.45;
  transform: scale(0.9) translateY(6px);
  filter: saturate(0.6);
}

.dlg-stage-wrap.is-narrator .dlg-char.is-active {
  opacity: 0.45;
}

.dlg-stage-wrap.is-all-speak .dlg-char {
  opacity: 1;
  transform: scale(1);
  filter: saturate(1);
}

.dlg-stage-wrap.is-all-speak .dlg-char.is-active {
  animation: dlgCharTalk 0.55s ease-in-out infinite;
}

.dlg-bubble {
  max-width: min(560px, 94%);
  opacity: 0;
  transform: translateY(12px) scale(0.92);
  transition: opacity 0.35s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.dlg-bubble.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  animation: dlgBubblePop 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes dlgBubblePop {
  0% {
    opacity: 0;
    transform: translateY(16px) scale(0.85);
  }
  60% {
    transform: translateY(-2px) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.dlg-bubble-inner {
  position: relative;
  padding: 14px 18px;
  border-radius: 14px;
  border: 2px solid rgba(255, 214, 102, 0.45);
  background: #fff8eb;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 1);
}

.dlg-bubble-inner--cta {
  border-color: rgba(185, 28, 28, 0.45);
  background: linear-gradient(180deg, #fffdf5 0%, #fff3cc 100%);
  animation: dlgCtaGlow 2.4s ease-in-out infinite;
}

@keyframes dlgCtaGlow {
  0%, 100% { box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22), 0 0 0 0 rgba(255, 214, 102, 0); }
  50% { box-shadow: 0 10px 32px rgba(185, 28, 28, 0.18), 0 0 20px 4px rgba(255, 214, 102, 0.25); }
}

.dlg-bubble-label {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #b91c1c;
  text-transform: uppercase;
}

.dlg-bubble-cta {
  margin: 10px 0 0;
  text-align: center;
}

.dlg-bubble-link {
  display: inline-block;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  color: #fff8e8;
  text-decoration: none;
  background: linear-gradient(135deg, #b91c1c, #7f1d1d);
  border: 1px solid rgba(255, 214, 102, 0.4);
  box-shadow: 0 4px 14px rgba(185, 28, 28, 0.35);
  transition: transform 0.2s, box-shadow 0.2s;
}

.dlg-bubble-link:hover {
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(185, 28, 28, 0.45);
}

.dlg-bubble--narrator {
  max-width: min(620px, 96%);
}

.dlg-bubble--narrator .dlg-bubble-text {
  font-size: 15px;
  line-height: 1.7;
  font-weight: 600;
}

.dlg-bubble-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: #1a0a08;
  font-weight: 500;
}

.dlg-bubble-tail {
  position: absolute;
  bottom: -10px;
  left: 50%;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  background: rgba(255, 243, 220, 0.96);
  border-right: 2px solid rgba(255, 214, 102, 0.35);
  border-bottom: 2px solid rgba(255, 214, 102, 0.35);
  transform: rotate(45deg);
  border-radius: 0 0 4px 0;
}

.dlg-bubble--left {
  margin-right: auto;
  margin-left: 8%;
}

.dlg-bubble--left .dlg-bubble-tail {
  left: 28%;
}

.dlg-bubble--right {
  margin-left: auto;
  margin-right: 8%;
}

.dlg-bubble--right .dlg-bubble-tail {
  left: 72%;
}

.dlg-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 10px 16px 14px;
  border-top: 1px solid var(--line-soft);
  background: rgba(0, 0, 0, 0.15);
}

.dlg-foot-hint {
  font-size: 10px;
  color: var(--muted);
  flex: 1;
  min-width: 100px;
}

.dlg-progress {
  font-size: 11px;
  font-weight: 700;
  color: var(--accent-warm);
  font-family: Consolas, monospace;
}

.dlg-foot-btns {
  display: flex;
  gap: 6px;
}

.dlg-foot-btns .btn {
  min-width: 72px;
}

.dlg-import {
  display: none !important;
}

.dlg-import summary {
  font-size: 11px;
  color: var(--muted);
  cursor: pointer;
  user-select: none;
}

.dlg-import summary:hover {
  color: var(--accent-warm);
}

.dlg-import-body {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dlg-import-text {
  width: 100%;
  min-height: 72px;
  padding: 8px;
  font-size: 11px;
  font-family: Consolas, monospace;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface-input);
  color: var(--text);
  resize: vertical;
}

.dlg-import-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.dlg-import-hint {
  font-size: 10px;
  color: var(--muted);
}

html[data-theme="classic"] .dlg-panel {
  border-color: rgba(185, 28, 28, 0.35);
}

html[data-theme="classic"] .dlg-bubble-inner {
  border-color: rgba(185, 28, 28, 0.3);
}

html[data-theme="classic"] .dlg-trigger {
  color: #fff8e8;
  background: linear-gradient(180deg, #c62828, #8b1a1a);
  border-color: rgba(212, 175, 55, 0.55);
}

html[data-theme="classic"] .dlg-entry-guide-pop {
  border-color: rgba(185, 28, 28, 0.35);
}

@media (max-width: 640px) {
  .dlg-stage {
    min-height: 220px;
    padding: 12px 8px 8px;
  }

  .dlg-char-body {
    max-width: 100px;
  }

  .dlg-bubble-text {
    font-size: 13px;
  }

  .dlg-scene-bar {
    max-height: 72px;
    overflow-y: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dlg-trigger,
  .dlg-char.is-speaking .dlg-char-body,
  .dlg-stage-bg::after {
    animation: none;
  }

  .dlg-bubble,
  .dlg-char.is-active .dlg-char-svg {
    animation: none;
    transition: none;
  }
}

.traffic-overlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  flex-direction: column;
  background: #181620;
}

.traffic-overlay.hidden {
  display: none;
}

body.traffic-overlay-open {
  overflow: hidden;
}

.traffic-overlay-close {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 9002;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(240, 200, 104, 0.45);
  background: rgba(32, 30, 40, 0.92);
  color: #f0c868;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  backdrop-filter: blur(8px);
}

.traffic-overlay-close:hover {
  border-color: rgba(245, 210, 120, 0.75);
  background: rgba(32, 28, 38, 0.96);
}

.traffic-overlay-frame {
  flex: 1;
  width: 100%;
  border: 0;
  background: #181620;
}
