/* =====================================================
   电商热点雷达 — THEME SYSTEM
   Dark = :root defaults · Light = [data-resolved-theme=light]
   ===================================================== */

:root {
  /* ── Dark (default) ── */
  --bg:           #07111f;
  --bg-card:      #0d1728;
  --bg-card-2:    #111c2e;
  --bg-sidebar:   #060e1a;
  --bg-topbar:    #0a1322;
  --border:       rgba(148,163,184,0.14);
  --border-glow:  rgba(53,191,245,0.28);
  --accent:       #35bff5;
  --accent-dim:   rgba(53,191,245,0.10);
  --blue:         #35bff5;
  --blue-dim:     rgba(53,191,245,0.08);
  --text:         #b8c4d4;
  --text-bright:  #d8e2f0;
  --text-muted:   #6b7a8f;
  --text-secondary: #8899ad;
  --score-high:   #2dd4bf;
  --score-mid:    #f59e0b;
  --score-low:    #f97373;
  --red:          #f97373;
  --red-dim:      rgba(249,115,115,.08);
  --green:        #2dd4bf;
  --purple:       #8b5cf6;
  --sidebar-w:    232px;
  --right-w:      272px;
  --topbar-h:     64px;
  --radius:       10px;
  --radius-lg:    14px;
  --glow-card:    0 0 0 1px rgba(53,191,245,0.08), 0 4px 20px rgba(0,0,0,0.30);
  --shadow-card:  none;
}

/* ── Light theme ── */
html[data-resolved-theme="light"] {
  --bg:           #f4f7fa;
  --bg-card:      #ffffff;
  --bg-card-2:    #f8fafc;
  --bg-sidebar:   #f0f4f8;
  --bg-topbar:    #ffffff;
  --border:       #dfe7ef;
  --border-glow:  rgba(14,165,200,0.25);
  --accent:       #0ea5c8;
  --accent-dim:   #e7f8fc;
  --blue:         #0ea5c8;
  --blue-dim:     #e7f8fc;
  --text:         #3a4a5c;
  --text-bright:  #152033;
  --text-muted:   #65758b;
  --text-secondary: #4a5c70;
  --score-high:   #0d9488;
  --score-mid:    #d97706;
  --score-low:    #dc2626;
  --red:          #dc2626;
  --red-dim:      rgba(220,38,38,.06);
  --green:        #0d9488;
  --purple:       #7c3aed;
  --glow-card:    none;
  --shadow-card:  0 1px 3px rgba(0,0,0,0.06), 0 0 0 1px var(--border);
}

/* ── System auto: light when OS prefers light ── */
@media (prefers-color-scheme: light) {
  html:not([data-theme="dark"]) {
    --bg:           #f4f7fa;
    --bg-card:      #ffffff;
    --bg-card-2:    #f8fafc;
    --bg-sidebar:   #f0f4f8;
    --bg-topbar:    #ffffff;
    --border:       #dfe7ef;
    --border-glow:  rgba(14,165,200,0.25);
    --accent:       #0ea5c8;
    --accent-dim:   #e7f8fc;
    --blue:         #0ea5c8;
    --blue-dim:     #e7f8fc;
    --text:         #3a4a5c;
    --text-bright:  #152033;
    --text-muted:   #65758b;
    --text-secondary: #4a5c70;
    --score-high:   #0d9488;
    --score-mid:    #d97706;
    --score-low:    #dc2626;
    --red:          #dc2626;
    --red-dim:      rgba(220,38,38,.06);
    --green:        #0d9488;
    --purple:       #7c3aed;
    --glow-card:    none;
    --shadow-card:  0 1px 3px rgba(0,0,0,0.06), 0 0 0 1px var(--border);
  }
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{font-size:14px;scroll-behavior:smooth}
body{
  font-family:'PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font:inherit}
input,textarea,select{font:inherit}

/* ── App Shell ── */
.app-shell{display:flex;min-height:100vh;position:relative;z-index:1}

/* subtle dark ambient glow (hidden in light mode via transparent) */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 70% 50% at 15% 10%, rgba(53,191,245,.03) 0%, transparent 70%),
    radial-gradient(ellipse 50% 40% at 85% 85%, rgba(139,92,246,.02) 0%, transparent 70%);
}
html[data-resolved-theme="light"] body::before{background:none}
@media(prefers-color-scheme:light){html:not([data-theme="dark"]) body::before{background:none}}

/* =====================================================
   SIDEBAR
   ===================================================== */
.sidebar{
  width:var(--sidebar-w);
  min-height:100vh;
  background:var(--bg-sidebar);
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;height:100vh;
  overflow-y:auto;
  flex-shrink:0;z-index:100;
}

.brand{
  display:flex;align-items:center;gap:10px;
  padding:14px 13px 12px;border-bottom:1px solid var(--border);
}
.brand-logo{width:32px;height:32px;border-radius:8px;flex-shrink:0}
.brand-text strong{
  display:block;font-size:12px;font-weight:700;
  color:var(--text-bright);letter-spacing:.2px;line-height:1.3;
}
.brand-text span{font-size:9.5px;color:var(--text-muted);letter-spacing:.4px}

.nav-list{
  display:flex;flex-direction:column;
  padding:8px 7px;gap:1px;flex:1;
}
.nav-list > a,
.nav-group-label{
  display:flex;align-items:center;gap:9px;
  padding:8px 10px;border-radius:var(--radius);
  min-height:34px;font-size:13px;font-weight:500;line-height:18px;color:var(--text);
  transition:all .18s ease;position:relative;
}
.nav-icon{width:16px;height:16px;flex-shrink:0;opacity:.72;transition:opacity .18s}
.nav-list a::before{
  content:'';position:absolute;left:0;top:50%;
  transform:translateY(-50%);width:3px;height:0;
  background:var(--accent);border-radius:2px;
  transition:height .18s ease;
}
.nav-list a:hover{color:var(--text);background:rgba(56,189,248,.06)}
.nav-list a:hover .nav-icon{opacity:.85}
.nav-list a.active{
  color:var(--accent);background:rgba(56,189,248,.10);font-weight:700;
  box-shadow:0 0 0 1px rgba(56,189,248,.20) inset;
}
.nav-list a.active .nav-icon{opacity:1}
.nav-list a.active::before{height:65%}

/* Nav group: parent label + indented sub-items */
.nav-group{display:flex;flex-direction:column;gap:0}
.nav-group-label{
  cursor:pointer;background:none;border:none;width:100%;text-align:left;font-family:inherit;
  /* Explicit font props prevent browser button defaults from overriding the shared rule */
  font-size:13px;font-weight:500;line-height:18px;
  box-sizing:border-box;appearance:none;-webkit-appearance:none;margin:0;
}
.nav-group-label:hover{color:var(--text-bright);background:rgba(56,189,248,.06)}
.nav-group-label .nav-icon{opacity:.72}
.nav-group-label.active{
  color:var(--accent);background:rgba(56,189,248,.10);font-weight:700;
  box-shadow:0 0 0 1px rgba(56,189,248,.20) inset;
}
.nav-group-label.active .nav-icon{opacity:1}
.nav-group-label.active::before{
  content:'';position:absolute;left:0;top:50%;
  transform:translateY(-50%);width:3px;height:65%;
  background:var(--accent);border-radius:2px;
}
.nav-group-chevron{
  width:14px;height:14px;margin-left:auto;flex-shrink:0;
  opacity:.4;transition:transform .2s ease;
}
.nav-group-label[aria-expanded="false"] .nav-group-chevron{
  transform:rotate(-90deg);
}
.nav-group-items{display:flex;flex-direction:column;gap:1px;padding-left:16px}
.nav-group.nav-group--collapsed .nav-group-items{display:none}
.nav-group-items a{
  display:flex;align-items:center;gap:9px;
  padding:6px 10px;border-radius:var(--radius);
  min-height:30px;font-size:12px;font-weight:500;line-height:18px;color:var(--text-secondary);
  transition:all .18s ease;position:relative;
}
.nav-group-items a::before{
  content:'';position:absolute;left:0;top:50%;
  transform:translateY(-50%);width:3px;height:0;
  background:var(--accent);border-radius:2px;
  transition:height .18s ease;
}
.nav-group-items a:hover{color:var(--text);background:rgba(56,189,248,.06)}
.nav-group-items a.active{
  color:var(--accent);background:rgba(56,189,248,.10);font-weight:700;
  box-shadow:0 0 0 1px rgba(56,189,248,.20) inset;
}
.nav-group-items a.active::before{height:65%}

/* Sidebar radar box */
.sidebar-radar-box{
  margin:8px 10px 12px;padding:12px 10px;
  background:rgba(56,189,248,.04);
  border:1px solid rgba(56,189,248,.12);
  border-radius:var(--radius-lg);text-align:center;
}
.sidebar-radar-title{font-size:11px;font-weight:700;color:var(--text);margin-bottom:2px}
.sidebar-radar-sub{font-size:10px;color:var(--text-muted);margin-bottom:8px}
.sidebar-radar-anim{display:flex;justify-content:center}
.radar-svg{width:72px;height:72px}

/* =====================================================
   MAIN SHELL
   ===================================================== */
.shell{
  flex:1;min-width:0;
  display:flex;flex-direction:column;height:100vh;overflow:hidden;
}

/* ── Topbar ── */
.topbar{
  height:var(--topbar-h);
  background:var(--bg-topbar);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;
  padding:0 18px;gap:12px;
  position:sticky;top:0;z-index:90;
  box-shadow:0 1px 0 rgba(0,0,0,.24);
  flex-shrink:0;
}
/* new: search bar centered */
.topbar-search-wrap{
  flex:1;max-width:420px;
  display:flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--border);
  border-radius:var(--radius);padding:6px 11px;
  transition:border-color .2s;
}
.topbar-search-wrap:focus-within{border-color:var(--border-glow);background:rgba(255,255,255,.08)}
.topbar-search-icon{width:14px;height:14px;color:var(--text-muted);flex-shrink:0}
#searchInput{
  flex:1;background:none;border:none;outline:none;
  color:var(--text);font-size:12px;
}
#searchInput::placeholder{color:var(--text-muted)}
.topbar-kb{
  font-size:10px;color:var(--text-muted);
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:4px;padding:1px 5px;letter-spacing:.3px;flex-shrink:0;
}
.topbar-right{display:flex;align-items:center;gap:6px;margin-left:auto}
/* ── Topbar unified height: all chips/pills/user card = 32px ── */
.topbar-live{
  display:flex;align-items:center;gap:5px;
  height:32px;box-sizing:border-box;
  font-size:11px;color:var(--text-muted);
  background:rgba(45,212,191,.06);border:1px solid rgba(45,212,191,.2);
  border-radius:14px;padding:0 10px;
  white-space:nowrap;flex-shrink:0;
}
.topbar-live-sep{color:var(--text-muted);opacity:.6}
.topbar-icon-btn{
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius);color:var(--text-muted);
  border:1px solid transparent;transition:all .18s;position:relative;
}
.topbar-icon-btn svg{width:16px;height:16px}
.topbar-icon-btn:hover{color:var(--text-bright);border-color:var(--border);background:rgba(56,189,248,.08)}
.topbar-icon-dot{
  position:absolute;top:4px;right:4px;width:6px;height:6px;
  background:#F97373;border-radius:50%;border:2px solid var(--bg-topbar);
}
.topbar-ai-btn{
  display:inline-flex;align-items:center;gap:5px;
  height:32px;box-sizing:border-box;
  background:linear-gradient(135deg,rgba(56,189,248,.12),rgba(56,189,248,.07));
  border:1px solid rgba(56,189,248,.25);
  border-radius:14px;padding:0 12px;
  font-size:12px;color:var(--accent);font-weight:600;
  transition:all .18s;white-space:nowrap;
}
.topbar-ai-btn svg{width:14px;height:14px}
.topbar-ai-btn:hover{background:linear-gradient(135deg,rgba(56,189,248,.18),rgba(56,189,248,.12))}

.live-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--green);box-shadow:0 0 6px var(--green);
  animation:pulse-dot 2.2s ease-in-out infinite;
}
@keyframes pulse-dot{
  0%,100%{opacity:1;box-shadow:0 0 7px var(--green)}
  50%{opacity:.45;box-shadow:0 0 2px var(--green)}
}
.live-badge{font-size:10px;font-weight:700;color:var(--green);letter-spacing:.6px}
.topbar-live-label{font-size:11px;color:var(--text-muted);white-space:nowrap}
.topbar-updated{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
/* 采集中断状态 */
.topbar-live--interrupted{background:rgba(249,115,115,.08);border-color:rgba(249,115,115,.3)}
.topbar-live--interrupted .live-dot{background:var(--red,#f47373);box-shadow:0 0 6px var(--red,#f47373);animation:none}
.topbar-live--interrupted .live-badge{color:var(--red,#f47373);letter-spacing:0}
.topbar-live--interrupted .topbar-live-label{color:var(--red,#f47373)}
/* 部分异常状态（非核心步骤失败） */
.topbar-live--partial{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.3)}
.topbar-live--partial .live-dot{background:#f59e0b;box-shadow:0 0 6px #f59e0b}
.topbar-live--partial .live-badge{color:#f59e0b}
.topbar-live--partial .topbar-live-label{color:#f59e0b}
/* AI 主池状态标签（partial_success 但 AI 池已更新时显示） */
.topbar-ai-pool-status{font-size:.75rem;color:#34d399;margin-left:.25rem;font-weight:500}
.topbar-ai-pool-status::before{content:"·";margin-right:.25rem;color:rgba(255,255,255,.25)}
/* 采集异常状态（核心步骤失败） */
.topbar-live--failed{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.3)}
.topbar-live--failed .live-dot{background:var(--red,#f47373);box-shadow:0 0 6px var(--red,#f47373);animation:none}
.topbar-live--failed .live-badge{color:var(--red,#f47373);letter-spacing:0}
.topbar-live--failed .topbar-live-label{color:var(--red,#f47373)}

/* Topbar user profile */
.topbar-user{
  display:inline-flex;align-items:center;gap:8px;
  height:32px;box-sizing:border-box;
  padding:0 10px 0 4px;border-radius:14px;
  border:1px solid var(--border);cursor:pointer;transition:background .15s;
  background:rgba(255,255,255,.04);white-space:nowrap;
}
.topbar-user:hover{background:rgba(255,255,255,.08)}
.topbar-avatar{
  width:28px;height:28px;border-radius:50%;
  background:linear-gradient(135deg,#0d1b3e,#1460f5);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#fff;flex-shrink:0;
}
.topbar-user-info{display:flex;flex-direction:column;gap:1px}
.topbar-user-name{font-size:12px;font-weight:700;color:var(--text-bright);line-height:1.2}
.topbar-user-role{font-size:10px;color:var(--text-muted);line-height:1.2}

/* ── Hero strip ── */
.hero{padding:13px 18px 0;flex-shrink:0}
.hero-main{display:none}
.hero-meta{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.status-pill{
  display:inline-flex;align-items:center;gap:5px;
  font-size:10px;font-weight:700;color:var(--green);
  background:rgba(34,197,94,.1);
  border:1px solid rgba(34,197,94,.25);
  padding:3px 8px;border-radius:20px;letter-spacing:.5px;
}
.status-pill::before{
  content:'';width:5px;height:5px;border-radius:50%;
  background:var(--green);box-shadow:0 0 5px var(--green);
  animation:pulse-dot 2.2s ease-in-out infinite;
}
.updated-label{display:none}
.updated{font-size:11px;color:var(--text-muted)}

/* ── Stats Row ── */
.stats{display:flex;gap:7px;flex-wrap:wrap;padding-bottom:0}
.stat-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:13px 15px;min-width:86px;
  position:relative;overflow:hidden;transition:box-shadow .2s,border-color .2s;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.stat-card:hover{
  border-color:color-mix(in srgb,var(--metric-accent,var(--accent)) 32%,var(--border));
  box-shadow:0 4px 20px color-mix(in srgb,var(--metric-accent,var(--accent)) 12%,transparent);
}
.stat-card::after{display:none}

/* KPI icon badge — colored circle in top-right */
.stat-icon-badge{
  position:absolute;top:12px;right:12px;
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  background:color-mix(in srgb,var(--metric-accent,var(--accent)) 14%,transparent);
  border:1px solid color-mix(in srgb,var(--metric-accent,var(--accent)) 18%,transparent);
}
.stat-icon-badge svg{width:16px;height:16px}
.stat-icon-badge{color:var(--metric-accent,var(--accent))}
.stat-label{font-size:10px;color:var(--text-muted);letter-spacing:.4px;margin-bottom:3px}
.stat-value{
  font-size:20px;font-weight:800;color:var(--metric-accent,var(--accent));
  line-height:1;font-variant-numeric:tabular-nums;
}
.stat-meta{font-size:10px;color:var(--text-muted)}
.stat-spark{display:block;width:100%;height:26px;margin:5px 0 1px;color:var(--metric-accent,var(--accent));opacity:.65}
.stat-footer{display:flex;align-items:center;justify-content:space-between;margin-top:2px}
.stat-trend{font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;white-space:nowrap}
.stat-trend.delta-up{color:var(--red);background:color-mix(in srgb,var(--red) 11%,transparent)}
.stat-trend.delta-down{color:var(--green);background:color-mix(in srgb,var(--green) 11%,transparent)}
.stat-trend.delta-flat{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 10%,transparent)}

/* legacy .stat */
.stat{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:9px 13px;min-width:84px;
}
.stat .k{font-size:10px;color:var(--text-muted);margin-bottom:3px}
.stat .v{font-size:19px;font-weight:800;color:var(--text-bright);line-height:1}

/* ── Primary Controls ── */
.primary-controls{
  display:flex;align-items:center;gap:8px;
  padding:9px 18px;border-bottom:1px solid var(--border);
  flex-wrap:wrap;flex-shrink:0;
}
#searchInput{
  background:rgba(0,140,255,.05);border:1px solid var(--border);
  border-radius:var(--radius);padding:6px 11px;
  color:var(--text);font-size:13px;width:240px;outline:none;
  transition:border-color .2s,background .2s;
}
#searchInput:focus{border-color:var(--border-glow);background:rgba(0,140,255,.08)}
#searchInput::placeholder{color:var(--text-muted)}

.mode-switch{
  display:flex;gap:2px;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
  border-radius:var(--radius);padding:3px;
}
.mode-btn{
  padding:5px 11px;border-radius:5px;
  font-size:12px;color:var(--text-muted);transition:all .18s;
}
.mode-btn.active{background:rgba(255,255,255,.08);color:var(--accent);font-weight:600;box-shadow:0 0 0 1px rgba(56,189,248,.2)}
.mode-btn:hover:not(.active){color:var(--text-bright);background:rgba(56,189,248,.06)}
.mode-hint{font-size:11px;color:var(--text-muted);margin-left:auto}
.all-dedupe{
  display:none;align-items:center;gap:5px;
  font-size:12px;color:var(--text-muted);cursor:pointer;
}
.all-dedupe.show{display:flex}
.all-dedupe input{accent-color:var(--accent)}
.all-dedupe-dot{display:none}

/* ── Filter Tabs ── */
.filter-tabs{
  display:flex;gap:4px;padding:7px 18px;
  border-bottom:1px solid var(--border);
  overflow-x:auto;flex-shrink:0;
}
.filter-tab{
  padding:4px 13px;border-radius:20px;
  font-size:12px;color:var(--text-muted);
  border:1px solid transparent;white-space:nowrap;transition:all .18s;
}
.filter-tab:hover{color:var(--text-bright);background:rgba(56,189,248,.06)}
.filter-tab.active{
  background:rgba(56,189,248,.12);
  border-color:rgba(56,189,248,.35);
  color:var(--accent);font-weight:600;
}

/* =====================================================
   DASHBOARD GRID
   ===================================================== */
.dashboard-grid{display:flex;gap:0;flex:1;min-height:0}
.main-column{
  flex:1;min-width:0;
  padding:15px 18px;
  display:flex;flex-direction:column;gap:16px;
  border-right:1px solid var(--border);
  overflow-y:auto;
}
.insight-column{
  width:var(--right-w);flex-shrink:0;
  padding:13px 11px;
  display:flex;flex-direction:column;gap:12px;
  overflow-y:auto;
}

/* =====================================================
   SECTION HEADERS
   ===================================================== */
.section-eyebrow{
  font-size:10px;font-weight:700;
  letter-spacing:1.5px;color:var(--text-muted);margin-bottom:2px;
}
.hot-topics-head,.bole-picks-head,.ai-radar-head,
.list-head,.section-head,.insight-head{
  display:flex;align-items:flex-end;
  justify-content:space-between;margin-bottom:11px;gap:8px;
}
.hot-topics-head h2,.bole-picks-head h2,.ai-radar-head h2,
.list-head h2,.section-head h2,.insight-head h2{
  font-size:15px;font-weight:700;
  color:var(--text-bright);letter-spacing:-.3px;
}
.hot-topics-meta,#bolePicksMeta,#resultCount,#featuredMeta,#featuredCount{
  font-size:11px;color:var(--text-muted);
}
.hot-topics-sub,.bole-picks-sub,.ai-radar-sub{
  font-size:12px;color:var(--text-muted);
  margin-bottom:11px;line-height:1.6;
}

/* =====================================================
   HOT TOPICS
   ===================================================== */
.hot-topics-list{display:flex;flex-direction:column;gap:5px}
.hot-topic-cluster{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px 14px;
  transition:border-color .2s,box-shadow .2s;
}
.hot-topic-cluster:hover{border-color:var(--border-glow);box-shadow:var(--glow-card)}
.hot-cluster-head{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.hot-cluster-rank{font-size:11px;font-weight:700;color:var(--text-muted);min-width:18px}
.hot-cluster-tags{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.hot-cluster-heat{font-size:10px;color:var(--score-mid);font-weight:600}
.hot-item-title-row{display:flex;align-items:flex-start;gap:7px}
.hot-item-title{
  font-size:13px;font-weight:600;color:var(--text-bright);
  line-height:1.5;transition:color .15s;display:block;
}
.hot-topic-cluster:hover .hot-item-title,
.hot-item:hover .hot-item-title{color:var(--accent)}
.hot-item-meta{font-size:11px;color:var(--text-muted);margin-top:4px}
.hot-items-sub{display:flex;flex-direction:column;gap:3px;margin-top:7px}
.hot-item{
  list-style:none;display:flex;align-items:flex-start;gap:7px;
  padding:7px 10px;
  background:rgba(56,189,248,.04);
  border:1px solid rgba(56,189,248,.10);
  border-radius:var(--radius);transition:border-color .2s;
}
.hot-item:hover{border-color:var(--border-glow)}

/* Hot topic cards (dashboard panel new style) */
.hot-topic-card{
  padding:10px 12px;border-radius:var(--radius);
  background:rgba(148,163,184,.04);border:1px solid var(--border);
  transition:border-color .2s,box-shadow .15s;
}
.hot-topic-card:hover{border-color:var(--border-glow);box-shadow:0 2px 12px rgba(56,189,248,.06)}
.hot-topic-head{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.hot-rank{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:800;
  background:rgba(56,189,248,.10);color:var(--accent);border:1px solid rgba(56,189,248,.22);
}
.hot-rank.rank-1{background:rgba(249,115,115,.15);color:#F97373;border-color:rgba(249,115,115,.32)}
.hot-rank.rank-2{background:rgba(245,158,11,.14);color:#F59E0B;border-color:rgba(245,158,11,.28)}
.hot-rank.rank-3{background:rgba(139,92,246,.14);color:#8B5CF6;border-color:rgba(139,92,246,.28)}
.hot-topic-info{flex:1;min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hot-topic-name{font-size:12px;font-weight:700;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.heat-bar-track{height:4px;flex:1;min-width:24px;background:rgba(255,255,255,.07);border-radius:2px;overflow:hidden}
.heat-bar{height:4px;border-radius:2px;background:var(--accent);transition:width .4s ease}
.hot-item-list{list-style:none;display:flex;flex-direction:column;gap:2px;margin:0;padding:0}

/* =====================================================
   BOLE PICKS / 精选
   ===================================================== */
.bole-board{display:flex;flex-direction:column;gap:4px}
.bole-lead-card{
  display:block;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:14px 15px;
  transition:border-color .2s,box-shadow .2s;
  position:relative;overflow:hidden;
}
.bole-lead-card::before{
  content:'';position:absolute;
  top:0;left:0;bottom:0;width:3px;
  background:var(--accent);border-radius:2px 0 0 2px;
  opacity:0;transition:opacity .2s;
}
.bole-lead-card:hover{border-color:var(--border-glow);box-shadow:var(--glow-card)}
.bole-lead-card:hover::before{opacity:1}
.bole-lead-card.featured{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.03)}
.bole-lead-card.featured::before{background:var(--red);opacity:1}
.bole-lead-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.bole-kicker{font-size:11px;color:var(--text-muted)}

/* ── Score Orb ── */
.bole-score-orb{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;border:2px solid;
  flex-direction:column;line-height:1;flex-shrink:0;
}
.bole-score-orb span{font-size:14px;font-weight:800;line-height:1}
.bole-score-orb small{font-size:9px;font-weight:400;opacity:.7}
.bole-score-orb.hot{border-color:var(--red);color:var(--red);background:rgba(239,68,68,.08)}
.bole-score-orb.strong{border-color:var(--score-mid);color:var(--score-mid);background:rgba(245,158,11,.08)}
.bole-score-orb.watch{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}

.bole-lead-title{font-size:14px;font-weight:700;color:var(--text-bright);line-height:1.5;margin-bottom:4px}
.bole-lead-reason{font-size:12px;color:var(--text-muted);line-height:1.6;margin-bottom:6px}
.bole-lead-foot{display:flex;gap:9px;font-size:11px;color:var(--text-muted)}

/* ── Timeline row ── */
.bole-row{
  display:flex;gap:8px;align-items:flex-start;
  padding:10px 12px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius);
  transition:border-color .2s,box-shadow .2s;
}
.bole-row:hover{border-color:var(--border-glow);box-shadow:0 0 12px rgba(0,140,255,.08)}
.bole-row-time{font-size:10px;color:var(--text-muted);min-width:40px;margin-top:2px;font-variant-numeric:tabular-nums}
.bole-row-body{flex:1;min-width:0}
.bole-row-meta{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);margin-bottom:3px;flex-wrap:wrap}
.bole-row-meta strong{color:var(--accent)}
.bole-row-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.5;transition:color .15s}
.bole-row:hover .bole-row-title{color:var(--accent)}
.bole-row-reason{font-size:11px;color:var(--text-muted);margin-top:2px;line-height:1.5}
.bole-head-tools{display:flex;align-items:center;gap:8px}
.bole-view-toggle{
  display:flex;gap:2px;background:rgba(255,255,255,.04);
  border:1px solid var(--border);border-radius:var(--radius);padding:3px;
}

/* =====================================================
   NEWS CARDS
   ===================================================== */
.news-list{display:flex;flex-direction:column;gap:4px}
.news-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:10px 13px;
  transition:border-color .2s,box-shadow .2s;position:relative;
}
.news-card:hover{border-color:var(--border-glow);box-shadow:0 2px 12px rgba(56,189,248,.08)}
.meta-row{display:flex;align-items:center;gap:5px;margin-bottom:4px;flex-wrap:wrap}
.meta-row .site{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.3px}
.meta-row .category{
  font-size:10px;background:var(--accent-dim);color:var(--accent);
  border:1px solid rgba(56,189,248,.22);padding:1px 7px;border-radius:10px;
}
.meta-row .source{font-size:10px;color:var(--text-muted)}
.meta-row .time{font-size:10px;color:var(--text-muted);margin-left:auto;font-variant-numeric:tabular-nums}
.news-card .title{
  display:block;font-size:13px;font-weight:600;
  color:var(--text);line-height:1.5;transition:color .15s;
  padding-right:46px;
}
.news-card:hover .title{color:var(--accent)}

/* ── Score badge on news cards ── */
.card-score-badge{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  display:inline-flex;align-items:center;justify-content:center;
  width:33px;height:33px;border-radius:50%;
  border:1.5px solid;font-size:10px;font-weight:800;flex-shrink:0;
}
.card-score-badge.hot{border-color:var(--red);color:var(--red);background:rgba(239,68,68,.08)}
.card-score-badge.strong{border-color:var(--score-mid);color:var(--score-mid);background:rgba(245,158,11,.08)}
.card-score-badge.watch{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.card-score-badge.none{display:none}

/* ── Tag chips ── */
.platform-badge{font-size:10px;padding:1px 7px;border-radius:10px;font-weight:600;border:1px solid}
.platform-badge.xhs{color:#ff2442;background:rgba(255,36,66,.08);border-color:rgba(255,36,66,.22)}
.platform-badge.douyin{color:#00f2ea;background:rgba(0,242,234,.07);border-color:rgba(0,242,234,.22)}
.platform-badge.taobao{color:#ff6700;background:rgba(255,103,0,.07);border-color:rgba(255,103,0,.22)}
.source-hit{
  font-size:10px;padding:1px 7px;border-radius:10px;
  background:var(--blue-dim);color:var(--accent);border:1px solid rgba(56,189,248,.22);
}
.mini-badge{
  font-size:10px;padding:2px 8px;border-radius:10px;
  background:var(--accent-dim);color:var(--accent);
  border:1px solid rgba(56,189,248,.22);font-weight:600;
}

/* =====================================================
   INSIGHT COLUMN / RIGHT PANEL
   ===================================================== */
.insight-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px;
}
.insight-head h2{font-size:13px;font-weight:700;color:var(--text-bright)}
.risk-list{display:flex;flex-direction:column;gap:7px}
.risk-list > div{
  display:flex;flex-direction:column;gap:2px;padding:7px 9px;
  background:rgba(56,189,248,.04);border:1px solid var(--border);border-radius:var(--radius);
}
.risk-list strong{font-size:12px;color:var(--text)}
.risk-list span{font-size:11px;color:var(--text-muted);line-height:1.5}
.advanced-panel{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;
}
.advanced-panel summary{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;font-size:12px;font-weight:600;color:var(--text);
  cursor:pointer;list-style:none;
  border-bottom:1px solid transparent;transition:border-color .2s;
}
.advanced-panel[open] summary{border-bottom-color:var(--border)}
.advanced-summary{font-size:10px;color:var(--text-muted);font-weight:400}
.advanced-content{padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.advanced-controls .field{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted)}
.advanced-controls select{
  background:var(--bg);border:1px solid var(--border);border-radius:5px;
  color:var(--text);padding:3px 6px;font-size:11px;outline:none;
}
.source-health{font-size:11px;color:var(--text-muted);line-height:1.6}
.source-ok{color:var(--green)}
.source-warn{color:var(--score-mid)}
.source-err{color:var(--red)}
.source-health-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:3px 0;border-bottom:1px solid rgba(56,189,248,.08);
}
.source-health-row:last-child{border-bottom:none}
.coverage-strip{display:flex;flex-direction:column;gap:5px}
.coverage-card{
  background:rgba(56,189,248,.04);border:1px solid var(--border);
  border-radius:var(--radius);padding:6px 9px;
  display:flex;justify-content:space-between;align-items:flex-start;gap:5px;
}
.coverage-label{font-size:10px;color:var(--text-muted);flex-shrink:0}
.coverage-value{font-size:12px;font-weight:700;color:var(--text-bright)}
.coverage-value.ok{color:var(--green)}
.coverage-value.warn{color:var(--score-mid)}
.coverage-value.signal{color:var(--accent)}
.coverage-meta{font-size:10px;color:var(--text-muted);text-align:right}
.site-pills{display:flex;flex-wrap:wrap;gap:4px}
.pill{
  padding:3px 9px;border-radius:20px;font-size:11px;
  color:var(--text-muted);border:1px solid var(--border);transition:all .15s;background:transparent;
}
.pill:hover{color:var(--text);border-color:var(--border-glow)}
.pill.active{background:var(--accent-dim);color:var(--accent);border-color:rgba(56,189,248,.35)}
.agent-daily-panel{
  background:rgba(56,189,248,.04);border:1px solid var(--border);
  border-radius:var(--radius);padding:7px 9px;
  font-size:11px;color:var(--text-muted);
  display:flex;flex-direction:column;gap:3px;
}
.agent-daily-panel strong{font-size:12px;color:var(--text)}
.web-source-panel{font-size:11px;color:var(--text-muted)}

/* =====================================================
   PLAIN SECTIONS
   ===================================================== */
.plain-section{padding:16px;display:none}
.plain-section.active{display:block}

/* ── Daily report ── */
.daily-report-list{display:flex;flex-direction:column;gap:6px}
.daily-brief-head{
  display:flex;align-items:flex-start;gap:13px;margin-bottom:13px;
  padding:12px 14px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius-lg);
}
.daily-date-circle{
  width:58px;height:58px;border-radius:50%;border:2px solid var(--accent);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--accent-dim);flex-shrink:0;
}
.daily-date-month{font-size:10px;color:var(--accent);font-weight:600;letter-spacing:.5px}
.daily-date-day{font-size:20px;font-weight:800;color:var(--text-bright);line-height:1}
.daily-brief-meta{flex:1}
.daily-brief-title{font-size:14px;font-weight:700;color:var(--text-bright);margin-bottom:3px}
.daily-brief-desc{font-size:12px;color:var(--text-muted);line-height:1.6}
.daily-no-content{
  padding:20px;text-align:center;color:var(--text-muted);font-size:13px;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);
}
.story-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px 14px;
  transition:border-color .2s,box-shadow .2s;
}
.story-card:hover{border-color:var(--border-glow);box-shadow:var(--glow-card)}
.story-card-head{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.story-rank{font-size:11px;font-weight:700;color:var(--text-muted);min-width:18px}
.story-importance-badge{
  font-size:10px;padding:1px 7px;border-radius:10px;
  background:var(--red-dim);color:var(--red);
  border:1px solid rgba(239,68,68,.2);font-weight:600;
}
.story-importance-badge.official{background:rgba(167,139,250,.1);color:var(--purple);border-color:rgba(167,139,250,.22)}
.story-importance-badge.strong{background:rgba(245,158,11,.1);color:var(--score-mid);border-color:rgba(245,158,11,.22)}
.story-score-orb{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;border:2px solid;
  font-size:11px;font-weight:800;margin-left:auto;flex-shrink:0;
}
.story-score-orb.hot{border-color:var(--red);color:var(--red);background:rgba(239,68,68,.08)}
.story-score-orb.official{border-color:var(--purple);color:var(--purple);background:rgba(167,139,250,.08)}
.story-score-orb.strong{border-color:var(--score-mid);color:var(--score-mid);background:rgba(245,158,11,.08)}
.story-score-orb.watch{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.story-card-title{font-size:13px;font-weight:700;color:var(--text-bright);line-height:1.5;margin-bottom:4px}
.story-card-summary{font-size:12px;color:var(--text-muted);line-height:1.6;margin-bottom:6px}
.story-card-foot{display:flex;gap:8px;font-size:11px;color:var(--text-muted);align-items:center}
.story-source-count{
  background:var(--blue-dim);color:#7eb8ff;
  border:1px solid rgba(100,160,255,.2);padding:1px 7px;border-radius:10px;font-size:10px;
}
.story-card a{color:inherit;text-decoration:none}
.story-card a:hover .story-card-title{color:var(--accent)}

/* =====================================================
   SOURCE NAV
   ===================================================== */
.source-nav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.source-nav-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px;
  display:flex;flex-direction:column;gap:6px;
  transition:border-color .2s,box-shadow .2s;cursor:pointer;
}
.source-nav-card:hover{border-color:var(--border-glow);box-shadow:var(--glow-card)}
.source-nav-icon{
  width:32px;height:32px;border-radius:7px;
  background:var(--accent-dim);
  display:flex;align-items:center;justify-content:center;font-size:15px;
}
.source-nav-name{font-size:13px;font-weight:600;color:var(--text)}
.source-nav-desc{font-size:11px;color:var(--text-muted);line-height:1.5}
.source-nav-meta{font-size:10px;color:var(--text-muted);display:flex;gap:5px;align-items:center}
.source-status-dot{width:5px;height:5px;border-radius:50%;background:var(--green);display:inline-block}
.source-status-dot.warn{background:var(--score-mid)}
.source-status-dot.err{background:var(--red)}
.source-tag-candidate{
  font-size:9px;padding:1px 5px;border-radius:5px;
  background:rgba(245,158,11,.1);color:var(--score-mid);border:1px solid rgba(245,158,11,.2);
}
.source-tag-headless{
  font-size:9px;padding:1px 5px;border-radius:5px;
  background:rgba(167,139,250,.1);color:var(--purple);border:1px solid rgba(167,139,250,.2);
}

/* =====================================================
   SOURCE SUBMIT
   ===================================================== */
.source-submit-form{
  display:flex;flex-direction:column;gap:10px;
  max-width:560px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;
}
.source-submit-form label{display:flex;flex-direction:column;gap:4px}
.source-submit-form label span{font-size:11px;color:var(--text-muted);font-weight:600;letter-spacing:.3px}
.source-submit-form input,.source-submit-form textarea{
  background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
  color:var(--text);padding:7px 10px;font-size:13px;outline:none;transition:border-color .2s;
}
.source-submit-form input:focus,.source-submit-form textarea:focus{border-color:var(--border-glow)}
.source-submit-form textarea{min-height:72px;resize:vertical}
.source-submit-form button[type="submit"]{
  background:linear-gradient(135deg,#1e55ff,#00c8ff);color:#fff;
  font-size:13px;font-weight:600;padding:9px 17px;
  border-radius:var(--radius);align-self:flex-start;transition:opacity .2s;
}
.source-submit-form button[type="submit"]:hover{opacity:.85}
.submitted-sources{margin-top:13px;display:flex;flex-direction:column;gap:6px}

/* =====================================================
   ABOUT
   ===================================================== */
.section-copy{font-size:13px;color:var(--text-muted);line-height:1.8;margin-bottom:13px;max-width:640px}
.info-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:8px;margin-bottom:16px;
}
.info-grid > div{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px;
  display:flex;flex-direction:column;gap:4px;
}
.info-grid strong{font-size:13px;color:var(--text)}
.info-grid span{font-size:12px;color:var(--text-muted);line-height:1.6}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:10px}
.contact-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px;
  display:flex;flex-direction:column;gap:8px;
}
.contact-card strong{font-size:13px;color:var(--text);display:block;margin-bottom:3px}
.contact-card span{font-size:12px;color:var(--text-muted)}
.contact-card img{width:100%;max-width:105px;border-radius:var(--radius);display:block;margin:0 auto}
/* About page — scoped product-page visual system */
#aboutWrap{background:#f5f8fc}
.about-page-v2{
  --about-ink:#17243a;--about-text:#56657a;--about-muted:#8a98aa;
  --about-blue:#2583d8;--about-blue-soft:#edf6ff;--about-line:#dfe7f0;
  --about-card:#fff;--about-radius:18px;
  width:min(100%,1440px);margin:0 auto;padding:12px 16px 28px;color:var(--about-ink);
}
.about-page-heading{margin:0 0 22px}
.about-eyebrow{display:block;font-size:12px;font-weight:750;letter-spacing:.18em;color:#8191a7;margin-bottom:6px}
.about-page-heading h2{font-size:30px;line-height:1.2;letter-spacing:-.04em;font-weight:800;margin:0;color:var(--about-ink)}
.about-heading-line{display:block;width:48px;height:2px;margin-top:15px;border-radius:2px;background:var(--about-blue)}
.about-hero{
  min-height:235px;display:grid;grid-template-columns:minmax(420px,.95fr) minmax(460px,1.05fr);
  align-items:stretch;overflow:hidden;border:1px solid var(--about-line);border-radius:var(--about-radius);
  background:linear-gradient(120deg,#fff 0%,#fbfdff 58%,#f5f9fd 100%);box-shadow:0 14px 42px rgba(45,72,108,.055);
}
.about-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:38px 18px 38px 44px;position:relative;z-index:2;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.about-hero-copy h3{font-size:26px;line-height:1.35;letter-spacing:-.025em;font-weight:800;color:var(--about-ink);margin:0 0 18px}
.about-hero-copy p{max-width:660px;font-size:14px;line-height:1.85;color:var(--about-text);margin:0}
.about-hero-copy p+p{margin-top:2px}
.about-hero-visual{min-width:0;min-height:235px;position:relative;overflow:hidden;background:#f7faff}
.about-hero-visual::before{content:"";position:absolute;inset:0 0 0 -90px;z-index:1;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.78) 20%,rgba(255,255,255,0) 58%);pointer-events:none}
.about-hero-visual img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.about-section-block{margin-top:24px}
.about-section-heading{position:relative;display:flex;align-items:center;margin:0 0 13px}
.about-section-heading h3{font-size:15px;line-height:1.3;font-weight:800;color:var(--about-ink);margin:0}
.about-section-heading span{position:absolute;left:0;bottom:-7px;width:15px;height:2px;border-radius:2px;background:#64afe7}
.about-capability-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.about-capability-card{
  min-height:132px;padding:20px 20px 18px;background:var(--about-card);border:1px solid var(--about-line);
  border-radius:15px;box-shadow:0 6px 22px rgba(43,68,99,.045);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.about-capability-card:hover{transform:translateY(-2px);border-color:#b8d7ef;box-shadow:0 12px 30px rgba(43,90,133,.09)}
.about-capability-icon{width:34px;height:34px;display:grid;place-items:center;color:#3775ad;margin-bottom:13px}
.about-capability-icon svg{width:30px;height:30px;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.about-capability-card h4{font-size:14px;line-height:1.4;font-weight:750;color:var(--about-ink);margin:0 0 8px}
.about-capability-card p{font-size:12px;line-height:1.7;color:#758398;margin:0}
.about-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.about-contact-card{
  min-height:224px;display:grid;grid-template-columns:minmax(0,1fr) 184px;gap:26px;align-items:center;
  padding:22px 28px 22px 34px;background:var(--about-card);border:1px solid var(--about-line);
  border-radius:var(--about-radius);box-shadow:0 8px 26px rgba(43,68,99,.05);transition:border-color .2s ease,box-shadow .2s ease;
}
.about-contact-card:hover{border-color:#bad8ee;box-shadow:0 13px 32px rgba(43,90,133,.09)}
.about-contact-copy{min-width:0;height:100%;display:flex;flex-direction:column}
.about-contact-copy h4{font-size:14px;font-weight:800;color:var(--about-ink);margin:0 0 16px}
.about-person{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid #e8edf3}
.about-person>img{width:58px;height:58px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 3px #f2f6fa}
.about-person div{min-width:0;display:flex;flex-direction:column;gap:6px}
.about-person strong{font-size:14px;line-height:1.25;font-weight:750;color:var(--about-ink);white-space:nowrap}
.about-person span{font-size:12px;color:#8794a5}
.about-contact-note{display:flex;flex-direction:column;gap:5px;margin-top:14px}
.about-contact-note strong{font-size:12.5px;color:#2a3a51}
.about-contact-note span{font-size:11.5px;line-height:1.55;color:#8996a7}
.about-qr-frame{width:184px;height:184px;display:grid;place-items:center;padding:8px;border:1px solid #edf1f5;border-radius:14px;background:#fff}
.about-qr-frame img{display:block;width:100%;height:100%;object-fit:contain;border-radius:7px}
.about-qr-frame-feishu{padding:5px}
.about-brand-footer{display:flex;align-items:center;justify-content:center;gap:9px;margin:32px 0 4px;color:#a1adbc;font-size:12px;letter-spacing:.02em}
.about-brand-footer img{width:18px;height:18px;opacity:.48}
@media(max-width:1100px){
  .about-hero{grid-template-columns:1fr 1fr}
  .about-hero-copy{padding-left:30px}
  .about-capability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .about-contact-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
  .about-hero{grid-template-columns:1fr;min-height:0}
  .about-hero-copy{padding:32px 28px 12px}
  .about-hero-visual{height:210px;min-height:0}
  .about-hero-visual::before{inset:-30px 0 auto;height:90px;background:linear-gradient(180deg,#fff,rgba(255,255,255,0))}
}
@media(max-width:680px){
  #aboutWrap{padding:0}
  .about-page-v2{padding:18px 12px 26px}
  .about-page-heading h2{font-size:25px}
  .about-hero-copy{padding:28px 22px 10px}
  .about-hero-copy h3{font-size:22px}
  .about-hero-visual{height:178px}
  .about-capability-grid{grid-template-columns:1fr}
  .about-capability-card{min-height:0}
  .about-contact-card{grid-template-columns:1fr;padding:22px;gap:18px}
  .about-qr-frame{width:min(100%,220px);height:auto;aspect-ratio:1;margin:0 auto}
  .about-person strong{white-space:normal}
}
@media(prefers-reduced-motion:reduce){.about-capability-card,.about-contact-card{transition:none}}

/* =====================================================
   DETAIL VIEW
   ===================================================== */
.detail-view{
  position:fixed;inset:0;z-index:200;
  background:var(--bg);
  display:flex;flex-direction:column;overflow:hidden;
}
.detail-scroll{flex:1;overflow-y:auto;padding:20px;max-width:760px;margin:0 auto;width:100%}
.detail-back{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;color:var(--text-muted);margin-bottom:16px;padding:5px 10px;
  border-radius:var(--radius);border:1px solid var(--border);
  background:var(--bg-card);transition:all .2s;
}
.detail-back:hover{color:var(--accent);border-color:var(--border-glow)}
.detail-article{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:24px;
}
.detail-source-row{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.detail-source{
  font-size:11px;font-weight:700;color:var(--accent);
  background:var(--accent-dim);border:1px solid rgba(0,200,255,.2);
  padding:2px 8px;border-radius:10px;
}
.detail-score{
  font-size:11px;color:var(--text-muted);
  background:var(--bg);border:1px solid var(--border);padding:2px 8px;border-radius:10px;
}
.detail-title{font-size:20px;font-weight:800;color:var(--text-bright);line-height:1.4;margin-bottom:7px}
.detail-time{font-size:12px;color:var(--text-muted);margin-bottom:14px}
.detail-ai-box{
  background:rgba(56,189,248,.05);border:1px solid rgba(56,189,248,.18);
  border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:17px;
}
.detail-ai-label{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.5px;margin-bottom:7px}
.detail-ai-label::before{content:'✦ ';opacity:.7}
.detail-ai-summary{font-size:13px;color:var(--text);line-height:1.7;margin-bottom:10px}
.detail-ai-extra{display:flex;flex-direction:column;gap:5px}
.detail-extra-row{
  display:flex;align-items:flex-start;gap:9px;
  font-size:12px;color:var(--text-muted);line-height:1.6;
}
.detail-extra-row strong{color:var(--accent);flex-shrink:0;font-size:11px;padding-top:2px}
.detail-media{margin-bottom:14px}
.detail-media img{max-width:100%;border-radius:var(--radius);display:block}
.detail-body{font-size:13px;color:var(--text);line-height:1.8;margin-bottom:17px}
.detail-body-label{
  font-size:10px;font-weight:700;color:var(--text-muted);
  letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;
}
.detail-tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:17px}
.detail-tag{
  font-size:11px;padding:3px 9px;border-radius:20px;
  background:var(--accent-dim);color:var(--accent);border:1px solid rgba(0,200,255,.2);
}
.detail-readmore{
  display:inline-flex;align-items:center;gap:7px;padding:9px 17px;
  background:linear-gradient(135deg,#0ea5e9,#38BDF8);
  color:#fff;font-size:13px;font-weight:600;border-radius:var(--radius);transition:opacity .2s;
}
.detail-readmore:hover{opacity:.85}
.detail-readmore-host{font-size:11px;opacity:.75}

/* =====================================================
   AI RADAR / WAYTOAGI
   ===================================================== */
.waytoagi-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.waytoagi-meta{font-size:11px;color:var(--text-muted);flex:1}
.waytoagi-mode-toggle{
  display:flex;gap:2px;background:rgba(255,255,255,.04);
  border:1px solid var(--border);border-radius:var(--radius);padding:3px;
}
.waytoagi-list{display:flex;flex-direction:column;gap:4px}
.wta-category-head{
  font-size:11px;font-weight:700;color:var(--text-muted);
  letter-spacing:.8px;text-transform:uppercase;
  padding:8px 0 4px;border-bottom:1px solid var(--border);margin-bottom:5px;
}
.wta-item{
  display:flex;gap:8px;align-items:flex-start;padding:8px 10px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);transition:border-color .2s;
}
.wta-item:hover{border-color:var(--border-glow)}

/* =====================================================
   DASHBOARD HOME
   ===================================================== */
.db-home{flex:1;padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-width:0;overflow-y:auto}

/* Hero */
.db-hero{
  min-height:112px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,42%);
  align-items:center;
  background:
    radial-gradient(circle at 82% 44%,rgba(14,165,233,.20),transparent 34%),
    linear-gradient(120deg,rgba(248,251,255,.98) 0%,rgba(240,248,255,.94) 50%,rgba(230,244,255,.88) 100%);
  border:1px solid rgba(148,184,211,.34);border-radius:20px;
  padding:18px 24px 18px 28px;gap:14px;overflow:hidden;position:relative;
  box-shadow:0 18px 48px rgba(15,23,42,.07);
}
.db-hero::before{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.82),rgba(255,255,255,.34) 52%,rgba(255,255,255,0)),
    radial-gradient(circle at 92% 46%,rgba(99,102,241,.10),transparent 30%);
  pointer-events:none;
}
.db-hero::after{
  content:'';position:absolute;right:18px;top:18px;width:7px;height:7px;border-radius:999px;
  background:#22d3ee;box-shadow:0 0 0 7px rgba(34,211,238,.10),-38px 38px 0 -1px rgba(99,102,241,.28);
  opacity:.7;pointer-events:none;
}
.db-hero-text{position:relative;z-index:2;min-width:0;align-self:center}
.db-hero-title{font-size:clamp(25px,1.9vw,31px);font-weight:850;color:#0f172a;line-height:1.12;margin-bottom:8px;letter-spacing:-.035em}
.db-hero-sub{max-width:650px;font-size:13px;color:#536579;line-height:1.58;letter-spacing:.01em}
.db-hero-art{position:relative;z-index:1;min-width:0;height:112px;pointer-events:none;overflow:visible;opacity:1;align-self:center}
.db-hero-globe{width:118%;height:112%;display:block;transform:translate(-8%, -5%)}
.db-hero-chip{
  position:absolute;z-index:2;
  padding:4px 9px;border-radius:999px;
  border:1px solid rgba(14,165,233,.20);
  background:rgba(255,255,255,.72);
  color:#0f6f9d;font-size:11px;font-weight:700;line-height:1;
  box-shadow:0 8px 22px rgba(14,165,233,.10);
  backdrop-filter:blur(8px);
}
.db-hero-chip--rule{right:8%;top:18px}
.db-hero-chip--ai{right:31%;top:48px;color:#3730a3;border-color:rgba(99,102,241,.20)}
.db-hero-chip--ad{right:14%;bottom:18px;color:#047857;border-color:rgba(16,185,129,.20)}

/* KPI Row */
.db-kpi-row{display:flex;gap:8px;flex-wrap:nowrap}
.db-kpi-row .stat-card{flex:1;min-width:0;padding:11px 14px}
.db-kpi-row .stat-value{font-size:22px}

/* Dashboard top row: 3-column layout, height driven by left column */
.dashboard-top-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,300px) minmax(240px,300px);
  gap:12px;align-items:start;
}
/* Right column panels: flex column, overflow hidden on panel, scroll on list */
.db-panel-ai-stream{display:flex;flex-direction:column;min-height:0}
.db-panel-ai-stream .ai-mini-list{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}
#bolePicksWrap{min-height:0}
#bolePicksWrap .bole-board{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}

/* JS-synced height: right panels locked to left panel height */
.dashboard-side-synced{
  height:var(--dashboard-side-height);
  min-height:280px;
  max-height:none;
  overflow:hidden;
  display:flex !important;
  flex-direction:column;
}
.dashboard-side-synced .ai-mini-list,
.dashboard-side-synced .bole-board,
.dashboard-side-synced #bolePicksList{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}

/* Panel base */
.db-panel{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:14px;
  display:flex;flex-direction:column;gap:8px;
}
.db-panel-hd{
  display:flex;align-items:center;justify-content:space-between;
  gap:6px;flex-wrap:wrap;min-height:28px;
}
.db-panel-hd-left{display:flex;align-items:center;gap:5px;flex:1;min-width:0;flex-wrap:wrap}
.db-panel-fire{font-size:14px;flex-shrink:0}
.db-panel-icon-txt{font-size:13px;flex-shrink:0}
.db-panel-title{font-size:13px;font-weight:700;color:var(--text-bright);white-space:nowrap}
.db-panel-dot{color:var(--text-muted);opacity:.4;font-size:11px}
.db-panel-badge{
  font-size:10px;color:var(--text-muted);
  background:rgba(56,189,248,.05);border:1px solid var(--border);
  border-radius:10px;padding:2px 7px;white-space:nowrap;
}
.db-more-link{
  font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0;
  transition:color .15s;
}
.db-more-link:hover{color:var(--accent)}
.db-see-all{
  font-size:11px;color:var(--accent);display:block;
  text-align:center;padding:6px;border-top:1px solid var(--border);
  margin:-2px -2px -2px;transition:background .15s;border-radius:0 0 var(--radius-lg) var(--radius-lg);
}
.db-see-all:hover{background:rgba(56,189,248,.05)}

/* Inline filter tabs inside panel header */
.db-inline-tabs{
  display:flex;gap:3px;flex-wrap:wrap;
  border:none;padding:0;overflow:visible;
}
.db-inline-tabs .filter-tab{
  padding:2px 8px;font-size:11px;border-radius:12px;
}

/* Hot topics meta row */
#hotTopicsMeta{font-size:10px}

/* Bole picks in priority mode */
.bole-picks-meta-row{font-size:11px;color:var(--text-muted)}
.priority-mode .bole-lead-card{padding:10px 12px}
.priority-mode .bole-lead-card .bole-card-title{font-size:12px}

/* Impact panel */
.db-panel-impact{}
.impact-radar-wrap{display:flex;justify-content:center;padding:4px 0}
.impact-radar-svg{width:100%;max-width:260px;height:220px}
.impact-items{display:flex;flex-direction:column;gap:5px}
.impact-item{
  display:flex;align-items:flex-start;gap:7px;
  padding:7px 9px;border-radius:var(--radius);
  background:rgba(56,189,248,.04);border:1px solid var(--border);
  font-size:11px;line-height:1.5;
}
.impact-item-label{
  font-size:10px;font-weight:700;white-space:nowrap;padding:2px 6px;
  border-radius:8px;flex-shrink:0;margin-top:1px;
}
.impact-label-high{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.25)}
.impact-label-mid{background:rgba(245,158,11,.12);color:#fbbf24;border:1px solid rgba(245,158,11,.2)}
.impact-label-low{background:rgba(20,96,245,.08);color:var(--accent);border:1px solid rgba(20,96,245,.18)}

/* Bottom 3-column */
.db-bottom-3col{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
}

/* AI mini list */
.ai-mini-list{display:flex;flex-direction:column;gap:4px;flex:1}
.ai-mini-item{
  display:flex;align-items:flex-start;gap:7px;
  padding:7px 8px;border-radius:var(--radius);
  background:rgba(56,189,248,.04);border:1px solid var(--border);
  transition:border-color .15s;
}
.ai-mini-item:hover{border-color:var(--border-glow)}
.ai-mini-icon{
  width:22px;height:22px;border-radius:5px;flex-shrink:0;
  background:var(--blue-dim);border:1px solid rgba(56,189,248,.18);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;color:var(--accent);font-weight:700;
}
.ai-mini-title{font-size:11px;color:var(--text);line-height:1.5;flex:1}
.ai-mini-meta{font-size:10px;color:var(--text-muted);margin-top:2px}
.ai-mini-tag{
  font-size:9px;padding:1px 5px;border-radius:6px;
  border:1px solid;white-space:nowrap;flex-shrink:0;
}

/* ── Priority Compact Index (right sidebar) ── */
.priority-index-list{display:flex;flex-direction:column;gap:4px}
.priority-compact-item{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 34px;
  gap:6px 8px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--bg-card-2);
  color:inherit;
  min-height:52px;
  max-height:68px;
  overflow:hidden;
  text-decoration:none;
  min-height:72px;
  box-sizing:border-box;
  align-items:start;
  transition:border-color .15s;
}
.priority-compact-item:hover{border-color:var(--border-glow)}
.priority-rank{
  font-size:11px;font-weight:800;color:var(--text-muted);
  line-height:1.4;padding-top:1px;text-align:center;
}
.priority-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.priority-title{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;font-size:12px;line-height:1.45;font-weight:600;
  color:var(--text-bright);
}
.priority-meta{
  display:flex;align-items:center;gap:5px;flex-wrap:nowrap;
  font-size:10px;color:var(--text-muted);overflow:hidden;
}
.priority-cat{
  background:var(--accent-dim);color:var(--accent);
  padding:0 5px;border-radius:4px;font-weight:600;white-space:nowrap;
  font-size:9px;
}
.priority-src{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.priority-time{white-space:nowrap;flex-shrink:0}
.priority-reason{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-size:10px;color:var(--text-muted);font-style:italic;
  opacity:.8;line-height:1.4;
}
.priority-score{
  font-size:13px;font-weight:800;color:var(--accent);
  text-align:center;line-height:1;padding-top:2px;
}
.priority-timeline-item .priority-meta{flex-wrap:nowrap;overflow:hidden}
/* Light mode priority items */
html[data-resolved-theme="light"] .priority-compact-item{
  background:#ffffff;border-color:#dfe7ef;
}
@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .priority-compact-item{
    background:#ffffff;border-color:#dfe7ef;
  }
}

/* Live small dot */
.db-live-sm{
  display:flex;align-items:center;gap:4px;
  font-size:10px;color:var(--green);flex-shrink:0;
}
.live-dot-sm{
  width:5px;height:5px;border-radius:50%;background:var(--green);
  animation:pulse-dot 2.2s ease-in-out infinite;
}

/* Brief display */
.brief-display{display:flex;align-items:flex-start;gap:12px;padding:4px 0}
.brief-cal-block{
  background:linear-gradient(135deg,rgba(56,189,248,.12),rgba(45,212,191,.08));
  border:1px solid rgba(56,189,248,.22);border-radius:var(--radius);
  padding:10px 14px;text-align:center;flex-shrink:0;min-width:70px;
}
.brief-date-num{font-size:26px;font-weight:800;color:var(--text-bright);line-height:1}
.brief-date-label{font-size:9px;color:var(--accent);letter-spacing:.5px;margin-top:2px}
.brief-week{font-size:9px;color:var(--text-muted)}
.brief-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding-top:4px}
.brief-status-text{font-size:11px;color:var(--text);line-height:1.5}
.brief-count-row{font-size:10px;color:var(--text-muted)}
.brief-wave{padding:4px 0;overflow:hidden}
.brief-wave-svg{width:100%;height:36px}

/* Brief section stats chips */
.brief-section-stats{display:flex;gap:4px;flex-wrap:wrap;padding:0 0 2px}
.brief-sec-chip{
  font-size:10px;color:var(--text-muted);
  background:var(--accent-dim);border:1px solid var(--border);
  border-radius:8px;padding:2px 7px;white-space:nowrap;
}
.brief-sec-chip strong{color:var(--accent);font-weight:700}

/* Brief preview list */
.brief-preview-list{display:flex;flex-direction:column;gap:3px}
.brief-preview-scroll{max-height:120px;overflow-y:auto;padding-right:4px}
.brief-preview-item{
  display:flex;align-items:flex-start;gap:6px;
  padding:4px 6px;border-radius:6px;
  font-size:11px;line-height:1.4;
}
.brief-preview-rank{
  font-size:10px;font-weight:800;color:var(--text-muted);
  flex-shrink:0;width:18px;text-align:center;padding-top:1px;
}
.brief-preview-title{
  color:var(--text);overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;
}
.brief-preview-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:1px}
.brief-preview-meta{font-size:9px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-resolved-theme="light"] .brief-preview-item{background:rgba(14,165,200,.03)}
html[data-resolved-theme="light"] .brief-sec-chip{background:rgba(14,165,200,.06);border-color:rgba(14,165,200,.15)}

/* Health section */
.health-section{display:flex;align-items:flex-start;gap:12px;padding:4px 0}
.health-donut-wrap{
  position:relative;width:100px;height:100px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.health-donut-svg{width:100px;height:100px;position:absolute;top:0;left:0}
.health-donut-center{
  position:relative;z-index:1;text-align:center;
}
.health-pct-big{font-size:18px;font-weight:800;color:var(--green);line-height:1}
.health-pct-sub{font-size:9px;color:var(--text-muted);margin-top:2px;white-space:nowrap}
.health-cats{flex:1;display:flex;flex-direction:column;gap:4px;padding-top:4px;min-width:0}
.health-cat-row{
  display:flex;align-items:center;gap:6px;font-size:10px;
  padding:4px 0;border-bottom:1px solid var(--border);
}
.health-cat-row:last-child{border-bottom:none}
.health-cat-name{color:var(--text-muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.health-cat-count{color:var(--text-muted);font-size:9px;flex-shrink:0}
.health-cat-pct{
  font-size:10px;font-weight:700;flex-shrink:0;
  color:var(--green);min-width:36px;text-align:right;
}
.health-cat-bar-wrap{flex-shrink:0;width:40px;height:3px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.health-cat-bar{height:3px;border-radius:2px;background:var(--green);transition:width .4s ease;max-width:100%}
.health-cat-pct.warn{color:var(--score-mid)}
.health-cat-bar.warn{background:var(--score-mid)}

/* Plain sections */
.plain-section{padding:18px 20px;flex:1;overflow-y:auto}
.plain-section .section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:14px;gap:8px;
  padding-bottom:12px;border-bottom:1px solid var(--border);
}
.plain-section .section-head h2{font-size:16px;font-weight:700;color:var(--text-bright)}

/* ── Feishu tutorial library: minimal first-pass view ── */
.tutorials-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.tutorial-card{display:flex;flex-direction:column;gap:9px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow-card)}
.tutorial-card-meta{display:flex;gap:6px;flex-wrap:wrap}
.tutorial-card-meta span{padding:3px 7px;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:11px}
.tutorial-card h3{color:var(--text-bright);font-size:15px;line-height:1.5}
.tutorial-summary,.tutorial-action{color:var(--text-secondary);font-size:12px;line-height:1.65;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.tutorial-summary{-webkit-line-clamp:3}.tutorial-action{-webkit-line-clamp:2}
.tutorial-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:4px;color:var(--text-muted);font-size:11px}
.tutorial-source-link{flex:none;padding:6px 10px;border:1px solid var(--border-glow);border-radius:6px;color:var(--accent)}
.tutorial-empty{grid-column:1/-1;min-height:240px;display:grid;place-content:center;gap:8px;text-align:center;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted)}
.tutorial-empty strong{color:var(--text-bright);font-size:15px}
/* tutorial category bar */
.tutorial-category-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tutorial-category-tab{padding:5px 13px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.tutorial-category-tab:hover{border-color:var(--accent);color:var(--accent)}
.tutorial-category-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
/* 2-col at desktop */
@media(min-width:900px){.tutorials-list{grid-template-columns:repeat(2,1fr)}}
/* card action row */
.tutorial-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.tutorial-detail-btn{padding:5px 12px;border:1px solid var(--border-glow,var(--border));border-radius:6px;background:transparent;color:var(--accent);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
.tutorial-detail-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
/* source button — compact, width auto */
.tutorial-source-btn{padding:5px 12px;border:1px solid var(--accent);border-radius:6px;color:var(--accent);font-size:12px;font-weight:500;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.tutorial-source-btn:hover{background:var(--accent);color:#fff}
.tutorial-card-info{flex:1;min-width:0;color:var(--text-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ── Tutorial detail drawer ── */
.tutorial-detail-drawer{position:fixed;right:0;top:0;bottom:0;width:min(720px,92vw);background:var(--bg-card);border-left:1px solid var(--border);z-index:900;transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);overflow-y:auto;display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.3)}
.tutorial-detail-drawer[hidden]{display:none!important}
.tutorial-detail-drawer.is-open{transform:translateX(0)}
.tutorial-detail-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:899;cursor:pointer}
.tutorial-detail-backdrop[hidden]{display:none!important}
.tutorial-drawer-header{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 12px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:1}
.tutorial-drawer-title{flex:1;font-size:17px;font-weight:700;color:var(--text-bright);line-height:1.45;margin:0}
.tutorial-drawer-close{flex-shrink:0;width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;border-radius:4px;display:grid;place-content:center}
.tutorial-drawer-close:hover{color:var(--text-bright);background:var(--accent-dim)}
.tutorial-drawer-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border)}
.tutorial-drawer-meta span{padding:3px 7px;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:11px}
.tutorial-drawer-meta .tutorial-score-chip{font-weight:inherit}
.tutorial-drawer-info{padding:0!important;background:transparent!important;color:var(--text-muted)!important;border-radius:0!important}
.tutorial-drawer-link{padding:5px 12px!important;border:1px solid var(--accent);border-radius:6px;color:var(--accent)!important;font-size:12px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;background:transparent!important}
.tutorial-drawer-link:hover{background:var(--accent)!important;color:#fff!important}
.tutorial-drawer-body{padding:16px 20px 40px;display:flex;flex-direction:column;gap:16px}
.tutorial-drawer-section{}
.tutorial-drawer-section-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px}
.tutorial-drawer-section-body{color:var(--text-secondary);font-size:13px;line-height:1.75;white-space:pre-wrap;margin:0}
.tutorial-drawer-transcript{white-space:pre-wrap;font-size:12px;line-height:1.75;color:var(--text-secondary)}
.tutorial-drawer-transcript--collapsed{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tutorial-drawer-transcript-toggle{font-size:12px;color:var(--accent);background:none;border:none;cursor:pointer;padding:4px 0;display:block;margin-top:4px}
/* tutorial note: 大标题 + 预览 + 展开收起 */
.tutorial-note-big-title{font-size:14px;font-weight:700;color:var(--text-bright);margin:0 0 8px;letter-spacing:.01em}
.tutorial-note-preview{color:var(--text-secondary);font-size:13px;line-height:1.75;margin:0}
.tutorial-note-toggle{font-size:12px;color:var(--accent);background:none;border:none;cursor:pointer;padding:4px 0;display:block;margin-top:6px}
.tutorial-note-full{margin-top:4px}
@media(max-width:600px){.tutorial-detail-drawer{width:100vw;top:auto;height:90vh;transform:translateY(100%)}.tutorial-detail-drawer.is-open{transform:translateY(0)}}
/* tutorial sub-bars */
.tutorial-score-bar{margin-top:-6px}
.tutorial-month-bar{margin-top:-6px}
/* tutorial score chip — 浅色底深色字，按分段配色（默认暗色模式） */
/* tutorial score chip — 半透明风格，与素材/平台标签等大等重，仅色调区分 */
/* 深色模式默认：越高分色调越暖越鲜，越低分越灰淡 */
.tutorial-score-chip.score-90{background:rgba(245,158,11,.18);color:#FCD34D}
.tutorial-score-chip.score-80{background:rgba(16,185,129,.16);color:#34D399}
.tutorial-score-chip.score-70{background:rgba(99,102,241,.16);color:#A5B4FC}
.tutorial-score-chip.score-60{background:rgba(148,163,184,.15);color:#94A3B8}
.tutorial-score-chip.score-low{background:rgba(71,85,105,.12);color:#64748B}
/* 亮色模式 */
html[data-resolved-theme="light"] .tutorial-score-chip.score-90{background:rgba(245,158,11,.15);color:#B45309}
html[data-resolved-theme="light"] .tutorial-score-chip.score-80{background:rgba(16,185,129,.15);color:#065F46}
html[data-resolved-theme="light"] .tutorial-score-chip.score-70{background:rgba(99,102,241,.15);color:#4338CA}
html[data-resolved-theme="light"] .tutorial-score-chip.score-60{background:rgba(148,163,184,.25);color:#475569}
html[data-resolved-theme="light"] .tutorial-score-chip.score-low{background:rgba(241,245,249,.9);color:#94A3B8}
@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .tutorial-score-chip.score-90{background:rgba(245,158,11,.15);color:#B45309}
  html:not([data-theme="dark"]) .tutorial-score-chip.score-80{background:rgba(16,185,129,.15);color:#065F46}
  html:not([data-theme="dark"]) .tutorial-score-chip.score-70{background:rgba(99,102,241,.15);color:#4338CA}
  html:not([data-theme="dark"]) .tutorial-score-chip.score-60{background:rgba(148,163,184,.25);color:#475569}
  html:not([data-theme="dark"]) .tutorial-score-chip.score-low{background:rgba(241,245,249,.9);color:#94A3B8}
}
/* tutorial recommend chip — 实心 badge，白字，font-weight 与其他 chip 一致 */
/* 深色模式（默认） */
.tutorial-recommend-chip{color:#fff!important}
.tutorial-recommend-chip.level-s{background:#D97706!important}
.tutorial-recommend-chip.level-a{background:#EF4444!important}
.tutorial-recommend-chip.level-b{background:#3B82F6!important}
.tutorial-recommend-chip.level-c{background:#9CA3AF!important}
/* 亮色模式覆盖 */
html[data-resolved-theme="light"] .tutorial-recommend-chip.level-s{background:#B45309!important}
html[data-resolved-theme="light"] .tutorial-recommend-chip.level-a{background:#DC2626!important}
html[data-resolved-theme="light"] .tutorial-recommend-chip.level-b{background:#2563EB!important}
html[data-resolved-theme="light"] .tutorial-recommend-chip.level-c{background:#6B7280!important}
@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .tutorial-recommend-chip.level-s{background:#B45309!important}
  html:not([data-theme="dark"]) .tutorial-recommend-chip.level-a{background:#DC2626!important}
  html:not([data-theme="dark"]) .tutorial-recommend-chip.level-b{background:#2563EB!important}
  html:not([data-theme="dark"]) .tutorial-recommend-chip.level-c{background:#6B7280!important}
}
/* ── 教程总结笔记卡片 ── */
.tutorial-note-block{
  background:var(--bg-soft,rgba(255,255,255,.03));
  border-left:3px solid var(--accent);
  border-radius:0 var(--radius,10px) var(--radius,10px) 0;
  padding:12px 16px;
}
.tutorial-note-content{display:flex;flex-direction:column;gap:2px}
.tutorial-note-heading{
  font-size:13px;font-weight:700;
  color:var(--text-bright);
  margin:8px 0 2px;line-height:1.5;
}
.tutorial-note-heading:first-child{margin-top:0}
.tutorial-note-p{color:var(--text-secondary);font-size:13px;line-height:1.75;margin:0}
.tutorial-note-list{
  color:var(--text-secondary);font-size:13px;line-height:1.75;
  margin:0 0 0 16px;padding:0;list-style:disc;
}
.tutorial-note-list--ol{list-style:decimal}
.tutorial-note-list li{margin-bottom:2px}
/* timeline layout */
.tutorials-timeline-wrap{display:block!important}
.tutorial-timeline{position:relative;padding-left:64px}
.tutorial-timeline::before{content:"";position:absolute;left:30px;top:8px;bottom:8px;width:1px;background:var(--border)}
.tutorial-tl-item{position:relative;margin-bottom:14px}
.tutorial-tl-date{position:absolute;left:-64px;width:56px;text-align:right;color:var(--text-muted);font-size:10px;line-height:1.4;padding-top:5px;white-space:nowrap}
.tutorial-tl-dot{position:absolute;left:-38px;top:9px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:2px solid var(--bg)}
.tutorial-tl-card{width:100%}

/* =====================================================
   HOT-FOCUS MODE — 当前热点独立视图
   ===================================================== */
/* P2.3.1 后 hot-focus 布局：
   db-3col = hotTopicsWrap(1fr) | db-panel-ai-stream | bolePicksWrap
   hot-focus 是 2列 grid，db-panel-ai-stream 会跑到第3行撑高布局，必须隐藏。
   今日影响(impactSection) P2.3.1 后已在 db-bottom-3col，不再隐藏 db-bottom-3col。 */
.hot-focus .db-hero,
.hot-focus .db-kpi-row { display:none !important; }
.hot-focus .db-panel-ai-stream { display:none !important; }
/* 隐藏主榜面板自带的小标题/筛选标签/查看全部（由注入的 hf-header 接管）*/
.hot-focus #hotTopicsWrap > .db-panel-hd,
.hot-focus #hotTopicsWrap > .db-see-all { display:none !important; }
/* 主榜面板去掉卡片边框，融入工作台背景 */
.hot-focus #hotTopicsWrap {
  background:transparent;border:none;padding:0;
  grid-column:1;grid-row:1;
}
/* 图一：右栏（今日热点优先级/候选）拉伸到与主榜等长，预留约10条的展示长度 */
.hot-focus #bolePicksWrap {
  grid-column:2;grid-row:1;display:flex !important;
  align-self:stretch;
}
.hot-focus #bolePicksList{
  max-height:none !important;flex:1 1 auto;min-height:0;
  overflow-y:auto;overflow-x:hidden;
}
.hot-focus .dashboard-top-row {
  grid-template-columns: minmax(0,1fr) 320px;
  align-items:start;
  gap:16px;
}
/* hot-focus 专属内容（默认隐藏，仅当前热点视图显示）*/
.hf-header, .hf-only { display:none }
.hot-focus .hf-header { display:block }
.hot-focus .hf-only { display:flex }
.hot-focus .hot-foldbox--empty { display:block }
/* 普通仪表盘视图下，空折叠条不出现 */
.hot-foldbox--empty { display:none }

/* 右栏减重：面板更轻 */
.hot-focus #bolePicksWrap { padding:12px;gap:6px }
@media(max-width:1000px){
  .hot-focus .dashboard-top-row { grid-template-columns:1fr }
  .hot-focus #hotTopicsWrap,
  .hot-focus #bolePicksWrap { grid-column:1 }
  .hot-focus #hotTopicsWrap { grid-row:auto }
  .hot-focus #bolePicksWrap { grid-row:auto }
}

/* =====================================================
   P2.2 全站视觉统一
   ===================================================== */

/* ── 信源导航 renderSourceNav() 实际输出类 ── */
.source-nav-categories{display:flex;flex-direction:column;gap:22px}

.source-nav-cat-head{
  display:flex;align-items:center;gap:8px;
  padding:0 0 10px;margin-bottom:10px;
  border-bottom:1px solid var(--border);
}
.source-nav-cat-icon{font-size:15px;flex-shrink:0}
.source-nav-cat-name{font-size:13px;font-weight:700;color:var(--text-bright)}
.source-nav-cat-count{
  font-size:10px;font-weight:600;color:var(--accent);
  background:var(--accent-dim);border:1px solid rgba(56,189,248,.22);
  padding:1px 7px;border-radius:10px;
}
.source-nav-cat-desc{font-size:11px;color:var(--text-muted);margin-left:auto}

/* source-nav-grid 已有：grid auto-fill minmax(170px,1fr) gap:8px */
/* 覆盖为适合深色主题的间距 */
.source-nav-grid{gap:10px}

.source-nav-item{
  display:flex;align-items:flex-start;gap:9px;
  padding:10px 11px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius-lg);
  transition:border-color .2s,box-shadow .2s;
  position:relative;overflow:hidden;color:inherit;
}
.source-nav-item:hover{border-color:var(--border-glow);box-shadow:var(--glow-card)}

/* getBgColor 返回浅色 — 在深色页面显示突兀，强制覆盖为深色方案 */
.source-nav-logo{
  width:34px;height:34px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;background:var(--blue-dim) !important;
}
.source-nav-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.source-nav-item-name{
  font-size:12px;font-weight:600;color:var(--text-bright);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.source-nav-item-desc{
  font-size:11px;color:var(--text-muted);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.source-nav-item-tag{
  align-self:flex-start;font-size:9px;padding:1px 6px;border-radius:6px;
  background:rgba(56,189,248,.06);color:var(--text-muted);border:1px solid var(--border);
}
.source-nav-item-tag.tag-auto{
  background:rgba(45,212,191,.08);color:var(--green);border-color:rgba(45,212,191,.22);
}
.source-nav-item-tag.tag-official{
  background:rgba(139,92,246,.08);color:var(--purple);border-color:rgba(139,92,246,.22);
}
.source-nav-hot-badge{
  position:absolute;top:8px;right:8px;
  width:6px;height:6px;border-radius:50%;
  background:var(--red);box-shadow:0 0 5px var(--red);
  animation:pulse-dot 2.2s ease-in-out infinite;
}

/* ── AI 情报 waytoagi-item（app.js 实际渲染类）── */
.waytoagi-item{
  display:flex;gap:9px;align-items:flex-start;
  padding:8px 10px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius);
  transition:border-color .2s;color:inherit;text-decoration:none;
}
.waytoagi-item:hover{border-color:var(--border-glow)}
.waytoagi-item .d{
  font-size:10px;color:var(--text-muted);min-width:42px;
  flex-shrink:0;margin-top:2px;font-variant-numeric:tabular-nums;
}
.waytoagi-item .t{font-size:12px;color:var(--text);line-height:1.55;flex:1}
.waytoagi-item:hover .t{color:var(--accent)}

.waytoagi-empty,.waytoagi-error{
  padding:20px;text-align:center;color:var(--text-muted);font-size:12px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);line-height:1.7;
}
.waytoagi-error{color:var(--red);border-color:rgba(249,115,115,.2)}

/* ── 信源提报：提交表单升级 ── */
.source-submit-wrap-inner{
  max-width:620px;display:flex;flex-direction:column;gap:14px;
}
/* 表单顶部信息条 */
.source-submit-tip{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 13px;
  background:rgba(56,189,248,.04);border:1px solid rgba(56,189,248,.14);
  border-radius:var(--radius);font-size:12px;color:var(--text-muted);line-height:1.6;
}
.source-submit-tip-icon{font-size:16px;flex-shrink:0;margin-top:1px}

/* 已提报列表项 */
.submitted-source-item{
  display:flex;align-items:flex-start;gap:9px;
  padding:9px 11px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius);
  font-size:12px;color:var(--text-muted);
}
.submitted-source-item strong{color:var(--text);display:block;margin-bottom:2px}
.submitted-source-item a{color:var(--accent);word-break:break-all}
.submitted-source-item time{font-size:10px}

/* ── 关于页面卡片增强 ── */
.about-section-copy{
  font-size:13px;color:var(--text-muted);line-height:1.8;
  max-width:640px;margin-bottom:16px;
  padding:12px 14px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);
}
/* info-grid 子项悬停效果 */
.info-grid > div{transition:border-color .2s}
.info-grid > div:hover{border-color:var(--border-glow)}
/* contact-card 悬停 */
.contact-card{transition:border-color .2s}
.contact-card:hover{border-color:var(--border-glow)}

/* ── 电商动态 / plain-section 通用视觉增强 ── */
/* 各平面页面顶部间距统一 */
.plain-section > .section-head{margin-bottom:16px}
/* 「section-eyebrow」上方描述文字 */
.plain-section-desc{
  font-size:12px;color:var(--text-muted);line-height:1.7;
  margin-bottom:13px;max-width:600px;
}

/* =====================================================
   SCROLLBAR
   ===================================================== */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(56,189,248,.20);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:rgba(56,189,248,.38)}

/* =====================================================
   HOT TOPICS P2.1 — 低刺激情报工作台
   ===================================================== */

/* ── 工作台头部 + KPI 条（hf-header，仅 hot-focus 显示）─────────────── */
.hf-header{margin-bottom:14px}
.hf-title-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.hf-title{font-size:21px;font-weight:800;color:var(--text-bright);line-height:1.1}
.hf-sub{font-size:12px;color:var(--text-muted)}
.hf-kpi-strip{
  display:flex;gap:10px;flex-wrap:wrap;
  border:1px solid var(--border);border-radius:var(--radius-lg);
  background:var(--bg-card);padding:12px 16px;
}
.hf-kpi{display:flex;flex-direction:column;gap:1px;padding-right:20px;
  border-right:1px solid var(--border);min-width:60px}
.hf-kpi:last-child{border-right:none;padding-right:0}
.hf-kpi b{font-size:22px;font-weight:800;color:var(--text-bright);line-height:1.1;letter-spacing:-.01em}
.hf-kpi span{font-size:11px;color:var(--text-muted)}
.hf-kpi--window{margin-left:auto;text-align:right;align-items:flex-end}
.hf-kpi--window b{color:var(--accent)}
.hf-kpi--window span{font-size:10px;opacity:.8}

/* ── 时间分组标题 ─────────────────────────────────────────────────────── */
.hot-bucket-group{margin-bottom:16px}
.hot-bucket-header{
  display:flex;align-items:baseline;gap:8px;margin-bottom:2px;
}
.hbh-label{font-size:13px;font-weight:800;letter-spacing:.01em}
.hbh-count{
  font-size:10px;font-weight:700;color:var(--text-muted);
  background:rgba(255,255,255,.05);border-radius:8px;padding:1px 7px;
}
.hot-bucket-sub{font-size:11px;color:var(--text-muted);opacity:.7;margin-bottom:8px}
.bucket--burst     .hbh-label{color:#F97373}
.bucket--today     .hbh-label{color:#F59E0B}
.bucket--yesterday .hbh-label{color:var(--text-muted)}
.hot-bucket-group > .hot-topic-card{margin-bottom:7px}
.hot-bucket-group > .hot-topic-card:last-child{margin-bottom:0}

/* 空分组：弱化折叠条 */
.hot-bucket-empty{
  align-items:center;gap:8px;justify-content:flex-start;
  padding:8px 12px;margin-bottom:8px;
  border:1px dashed var(--border);border-radius:var(--radius);
  background:rgba(255,255,255,.015);opacity:.5;
}
.hot-bucket-empty .hbh-label{font-size:12px}

/* ── 主榜卡片：横向信息卡 ─────────────────────────────────────────────── */
.hot-topic-card{
  display:flex;gap:11px;align-items:flex-start;
  padding:12px 14px;border-radius:var(--radius-lg);
  background:var(--bg-card);border:1px solid var(--border);
  transition:border-color .18s,box-shadow .18s,background .18s;
  text-decoration:none;
}
.hot-topic-card:hover{
  border-color:var(--border-glow);
  box-shadow:0 2px 14px rgba(0,0,0,.22);
  background:var(--bg-card-2);
}
.priority-compact-item.is-unlinked{cursor:default}
.hot-topic-card--policy{border-left:2px solid rgba(249,115,115,.4)}

.htc-left{display:flex;align-items:center;gap:7px;flex-shrink:0;padding-top:1px}
.hot-rank{
  width:22px;height:22px;border-radius:6px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;
  background:rgba(56,189,248,.10);color:var(--accent);border:1px solid rgba(56,189,248,.20);
}
.hot-rank.rank-1{background:rgba(249,115,115,.15);color:#F97373;border-color:rgba(249,115,115,.30)}
.hot-rank.rank-2{background:rgba(245,158,11,.14);color:#F59E0B;border-color:rgba(245,158,11,.26)}
.hot-rank.rank-3{background:rgba(139,92,246,.14);color:#8B5CF6;border-color:rgba(139,92,246,.26)}
.hot-ava{
  width:26px;height:26px;border-radius:7px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;color:var(--text);
  background:rgba(148,163,184,.10);border:1px solid var(--border);
}

.htc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.htc-row1{display:flex;align-items:center;gap:8px}
.hot-topic-name{
  font-size:13px;font-weight:700;color:var(--text-bright);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.htc-cat{
  margin-left:auto;flex-shrink:0;font-size:11px;color:var(--text-muted);
  white-space:nowrap;transition:color .15s;
}
.hot-topic-card:hover .htc-cat{color:var(--accent)}
.htc-title{
  font-size:13px;font-weight:500;color:var(--text);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.hot-topic-card:hover .htc-title{color:var(--text-bright)}

/* 标签：克制 */
.htc-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:1px}
.hot-badge{
  display:inline-flex;align-items:center;
  font-size:10px;font-weight:600;padding:1px 6px;
  border-radius:5px;line-height:1.6;white-space:nowrap;flex-shrink:0;
}
.hot-badge--official{background:rgba(45,212,191,.10);color:#2DD4BF;border:1px solid rgba(45,212,191,.18)}
.hot-badge--hipolicy{background:rgba(249,115,115,.10);color:#F97373;border:1px solid rgba(249,115,115,.20)}
.hmt-soft{border:1px solid transparent}
.hmt-direct {background:rgba(249,115,115,.10);color:#F97373}
.hmt-op     {background:rgba(245,158,11,.10) ;color:#F59E0B}
.hmt-signal {background:rgba(56,189,248,.07) ;color:var(--accent)}
.hmt-strong {background:rgba(45,212,191,.08) ;color:#2DD4BF}
.hmt-medium {background:rgba(56,189,248,.06) ;color:var(--accent)}
.hmt-weak   {background:rgba(107,114,128,.08);color:var(--text-muted)}

/* 指标行 */
.htc-metrics{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:2px}
.htc-m{font-size:11px;color:var(--text-muted);white-space:nowrap}
.htc-m-heat{color:var(--text);font-weight:700}

/* reason 弱化：一行省略 */
.htc-reason{
  font-size:10px;color:var(--text-muted);opacity:.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:100%;cursor:help;margin-top:1px;
}

/* ── 折叠区（候选 + 规则动态，并排）─────────────────────────────────── */
.hf-collapsed-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
@media(max-width:760px){.hf-collapsed-row{grid-template-columns:1fr}}
.hot-foldbox{
  border:1px solid var(--border);border-radius:var(--radius);
  background:rgba(148,163,184,.035);overflow:hidden;
}
.hot-foldbox--cand[open], .hot-foldbox--policy[open]{background:rgba(148,163,184,.05)}
.hot-foldbox-summary{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  padding:9px 12px;cursor:pointer;user-select:none;list-style:none;
}
.hot-foldbox-summary::-webkit-details-marker{display:none}
.hot-foldbox-summary.is-empty{cursor:default;opacity:.5}
.hfs-mark{font-size:12px;opacity:.8}
.hfs-title{font-size:12px;font-weight:700;color:var(--text)}
.hfs-count{
  font-size:10px;font-weight:700;color:var(--text-muted);
  background:rgba(255,255,255,.05);border-radius:8px;padding:1px 7px;
}
.hfs-hint{font-size:10px;color:var(--text-muted);opacity:.7;flex-basis:100%}
.hot-foldbox[open] > .hot-foldbox-summary{border-bottom:1px solid var(--border)}
.hot-foldbox-body{padding:6px 12px 10px;display:flex;flex-direction:column;gap:7px}

/* 候选卡片：轻 */
.hot-cand-card{
  padding:7px 9px;border-radius:var(--radius);
  background:rgba(56,130,180,.05);border:1px solid rgba(96,140,180,.14);
}
.hcc-title{font-size:12px;font-weight:600;color:var(--text);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hcc-summary{font-size:11.5px;line-height:1.6;color:var(--text-muted);margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 候选卡片：胶囊标签 */
.hcc-pills{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:4px}
.hcc-pill{
  font-size:10px;line-height:1;padding:2px 7px;
  border-radius:10px;white-space:nowrap;
  border:1px solid rgba(148,163,184,.18);
  color:var(--text-muted);background:rgba(148,163,184,.06);
}
.hcc-pill-reason{
  background:rgba(56,189,248,.08);border-color:rgba(56,189,248,.20);
  color:var(--accent);
}
/* 查看原文按钮 */
.hcc-view-btn{
  display:inline-flex;align-items:center;
  font-size:10px;font-weight:600;color:var(--accent);
  margin-top:5px;padding:2px 8px;border-radius:8px;
  background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.18);
  text-decoration:none;transition:all .15s ease;
}
.hcc-view-btn:hover{background:rgba(56,189,248,.15);border-color:rgba(56,189,248,.30)}

/* 规则动态条目 */
.hot-policy-item{display:flex;flex-direction:column;gap:2px;padding:5px 0;border-bottom:1px solid var(--border)}
.hot-policy-item:last-child{border-bottom:0;padding-bottom:0}
.hot-policy-item .hot-item-title{font-size:12px;font-weight:500;color:var(--text);text-decoration:none}
.hot-policy-item .hot-item-title:hover{color:var(--accent)}
.hot-item-meta{font-size:10px;color:var(--text-muted)}

/* =====================================================
   P2.2.2 全站页面视觉补齐
   ===================================================== */

/* ── 电商动态页：信息卡片增强 ── */
.news-list{gap:7px}
.news-card{padding:12px 14px 11px}

/* ai-tag 评分/分类芯片 */
.ai-tag{
  font-size:10px;padding:1px 7px;border-radius:10px;
  font-weight:600;border:1px solid;
}
.ai-tag.hot{color:var(--red);background:rgba(249,115,115,.08);border-color:rgba(249,115,115,.25)}
.ai-tag.strong{color:var(--score-mid);background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.22)}
.ai-tag.watch{color:var(--accent);background:var(--accent-dim);border-color:rgba(56,189,248,.25)}

/* category badge 来源类型色（.category.kind-* 加在 renderItemNode 里）*/
.category.kind-official{color:var(--purple);background:rgba(139,92,246,.08);border-color:rgba(139,92,246,.22)}
.category.kind-newsletter{color:var(--green);background:rgba(45,212,191,.08);border-color:rgba(45,212,191,.22)}
.category.kind-builders{color:var(--score-mid);background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.22)}
.category.kind-aggregate{color:var(--text-muted);background:rgba(148,163,184,.07);border-color:rgba(148,163,184,.2)}
.category.kind-aihub{color:var(--accent);background:var(--accent-dim);border-color:rgba(56,189,248,.22)}
.category.kind-blogs{color:var(--green);background:rgba(45,212,191,.06);border-color:rgba(45,212,191,.18)}
.category.kind-default{color:var(--text-muted);background:rgba(148,163,184,.06);border-color:rgba(148,163,184,.16)}

/* 英文副标题（双语标题下的 en 行） */
.title-sub{
  display:block;font-size:11px;color:var(--text-muted);
  font-weight:400;margin-top:2px;line-height:1.45;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* LLM 摘要段落（renderItemNode 追加） */
.card-summary,.item-summary{
  font-size:13px;color:var(--text-muted);line-height:1.7;
  margin-top:6px;padding-right:46px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* 业务价值提示块 */
.card-value-hint{
  margin-top:6px;padding:5px 9px;
  background:rgba(56,189,248,.04);border:1px solid rgba(56,189,248,.10);
  border-radius:7px;font-size:11px;line-height:1.65;padding-right:46px;
}
.card-impact{color:var(--green);display:block}
.card-action{color:var(--text-muted);display:block}

/* 评分徽章固定到顶部，避免卡片有摘要时徽章居中悬浮 */
.card-score-badge{top:12px;transform:none}

/* ── 电商日报：空状态 & 低内容提示 ── */
.empty-note{
  display:flex;flex-direction:column;align-items:center;
  gap:8px;padding:28px 20px;text-align:center;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);color:var(--text-muted);
  font-size:13px;line-height:1.7;
}
.empty-note::before{content:'📡';font-size:28px;line-height:1;opacity:.6}

.low-content-note{
  padding:10px 14px;margin-bottom:10px;
  background:rgba(245,158,11,.05);border:1px solid rgba(245,158,11,.18);
  border-radius:var(--radius);font-size:12px;color:var(--score-mid);line-height:1.6;
}

/* 日报区块与卡片（renderDailyReport 实际输出） */
.daily-report-section{margin-bottom:16px}
.daily-report-section > h3{
  font-size:11px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:7px;
}
.daily-report-card{
  display:flex;align-items:flex-start;gap:12px;
  padding:11px 13px;margin-bottom:6px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);
  text-decoration:none;color:inherit;
  transition:border-color .2s,box-shadow .2s;
}
.daily-report-card:last-child{margin-bottom:0}
.daily-report-card:hover{border-color:var(--border-glow);box-shadow:0 2px 10px rgba(56,189,248,.07)}
.daily-report-card > span{
  font-size:15px;font-weight:800;color:var(--text-muted);
  min-width:22px;flex-shrink:0;margin-top:2px;font-variant-numeric:tabular-nums;
}
.daily-report-card > div{flex:1;min-width:0}
.daily-report-card strong{
  display:block;font-size:13px;font-weight:700;
  color:var(--text-bright);line-height:1.5;margin-bottom:4px;
}
.daily-report-card p{font-size:12px;color:var(--text-muted);line-height:1.6;margin-bottom:2px}
.daily-report-card > em{
  font-style:normal;font-size:15px;font-weight:800;
  color:var(--accent);min-width:26px;text-align:right;
  flex-shrink:0;margin-top:2px;
}

/* ── 信源提报：已提报列表头部 & 行项目 ── */
.submitted-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 12px;margin-bottom:8px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);
}
.submitted-head strong{font-size:12px;color:var(--text)}
.submitted-head button{
  font-size:11px;padding:4px 11px;
  border:1px solid var(--border);border-radius:var(--radius);
  background:var(--bg-card-2);color:var(--accent);
  transition:border-color .18s;
}
.submitted-head button:hover{border-color:var(--border-glow)}

.submitted-row{
  display:flex;flex-direction:column;gap:3px;
  padding:9px 12px;margin-bottom:5px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);
  color:inherit;text-decoration:none;
  transition:border-color .18s;
}
.submitted-row:last-child{margin-bottom:0}
.submitted-row:hover{border-color:var(--border-glow)}
.submitted-row strong{font-size:12px;color:var(--text-bright);display:block}
.submitted-row span{font-size:11px;color:var(--text-muted);line-height:1.55}
.submitted-row em{font-style:normal;font-size:10px;color:var(--text-muted);display:block;margin-top:1px}

/* =====================================================
   P2.2.3 富空状态 & 信源提报双栏
   ===================================================== */

/* ── AI 情报页空状态卡 ── */
.ai-empty-state{
  display:flex;flex-direction:column;align-items:center;
  gap:13px;padding:36px 24px;text-align:center;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);
}
.aes-icon{color:var(--accent)}
.aes-title{font-size:15px;font-weight:700;color:var(--text-bright)}
.aes-desc{font-size:12px;color:var(--text-muted);line-height:1.7;max-width:340px}
.aes-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.aes-btn{
  padding:7px 16px;border-radius:var(--radius);font-size:12px;
  font-weight:600;border:1px solid var(--border);cursor:pointer;transition:all .18s;
}
.aes-btn-primary{
  background:linear-gradient(135deg,#0ea5e9,#38BDF8);
  color:#fff;border-color:transparent;
}
.aes-btn-primary:hover{opacity:.88}
.aes-btn-secondary{background:var(--bg-card-2);color:var(--text)}
.aes-btn-secondary:hover{border-color:var(--border-glow);color:var(--text-bright)}
.aes-hint-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.aes-hint{
  font-size:10px;padding:3px 10px;border-radius:20px;
  background:var(--accent-dim);color:var(--accent);
  border:1px solid rgba(56,189,248,.22);
}

/* ── 电商日报空状态卡 ── */
.daily-empty-state{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:18px 20px;
}
.des-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:14px}
.des-date-circle{
  width:58px;height:58px;border-radius:50%;border:2px solid var(--accent);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--accent-dim);flex-shrink:0;
}
.des-date-month{font-size:10px;color:var(--accent);font-weight:600;letter-spacing:.5px}
.des-date-day{font-size:22px;font-weight:800;color:var(--text-bright);line-height:1}
.des-content{flex:1;min-width:0}
.des-status{font-size:14px;font-weight:700;color:var(--text-bright);margin-bottom:5px}
.des-desc{font-size:12px;color:var(--text-muted);line-height:1.6;margin-bottom:10px}
.des-actions{display:flex;gap:7px;flex-wrap:wrap}
.des-btn{
  padding:6px 14px;border-radius:var(--radius);font-size:12px;
  font-weight:600;border:1px solid var(--border);cursor:pointer;transition:all .18s;
}
.des-btn-secondary{background:var(--bg-card-2);color:var(--text)}
.des-btn-secondary:hover{border-color:var(--border-glow);color:var(--text-bright)}
.des-stats{
  display:flex;
  border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;
}
.des-stat{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:9px 10px;border-right:1px solid var(--border);
  font-size:11px;color:var(--text-muted);
}
.des-stat:last-child{border-right:none}
.des-stat strong{font-size:13px;font-weight:700;color:var(--text-bright)}
.des-stat-active{color:var(--green) !important}

/* ── 信源提报：双栏布局 ── */
.source-submit-grid{
  display:grid;
  grid-template-columns:1fr 280px;
  gap:14px;
  align-items:start;
}
.source-submit-left .source-submit-form{max-width:none}
.source-submit-right{display:flex;flex-direction:column;gap:10px}
.submitted-sources{margin-top:0}

/* 提报规范卡 */
.submit-guide-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px 14px;
}
.sgc-head{
  font-size:10px;font-weight:700;color:var(--text-muted);
  letter-spacing:.9px;text-transform:uppercase;margin-bottom:8px;
}
.sgc-list{list-style:none;display:flex;flex-direction:column;gap:6px}
.sgc-list li{
  font-size:12px;color:var(--text-muted);line-height:1.55;
  padding-left:14px;position:relative;
}
.sgc-list li::before{content:'·';position:absolute;left:0;color:var(--accent);font-weight:700}

/* 填写进度卡 */
.submit-validate-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px 14px;
}
.svc-head{
  font-size:10px;font-weight:700;color:var(--text-muted);
  letter-spacing:.9px;text-transform:uppercase;margin-bottom:8px;
}
.svc-rows{display:flex;flex-direction:column;gap:1px}
.svc-row{
  display:flex;align-items:center;justify-content:space-between;
  font-size:12px;padding:5px 0;
  border-bottom:1px solid rgba(148,163,184,.07);
}
.svc-row:last-child{border-bottom:none}
.svc-row span{color:var(--text-muted)}
.svc-row em{font-style:normal;font-size:11px;color:var(--text-muted)}
.svc-row.svc-filled em{color:var(--green)}

@media(max-width:860px){
  .source-submit-grid{grid-template-columns:1fr}
}

/* =====================================================
   P2.2.4 精选独立页
   ===================================================== */
.featured-stats-row{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;
}
.featured-stat{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--surface2,rgba(255,255,255,.06));
  border:1px solid var(--border,rgba(255,255,255,.08));
  border-radius:20px;padding:4px 12px;font-size:.78rem;
}
.featured-stat em{font-style:normal;opacity:.7;}
.featured-stat strong{font-weight:700;color:var(--accent,#00c8ff);}
.featured-stat-zero strong{color:var(--text-muted,rgba(255,255,255,.4));}
.featured-stat-candidate strong{color:#f0a500;}
.featured-candidate-note{
  font-size:.8rem;color:var(--text-muted,rgba(255,255,255,.5));
  background:rgba(240,165,0,.08);border:1px solid rgba(240,165,0,.2);
  border-radius:8px;padding:8px 14px;margin-bottom:14px;
}

/* =====================================================
   P2.3.1 仪表盘布局优化
   ===================================================== */
/* 下方行三栏：等高对齐，内容不足时撑满，内容过多时内部滚动 */
.db-bottom-3col{align-items:stretch}
.db-bottom-3col>.db-panel{min-height:280px;height:100%}
.db-bottom-3col>.db-panel .impact-items,
.db-bottom-3col>.db-panel .brief-preview-list,
.db-bottom-3col>.db-panel .health-section{flex:1;min-height:0;overflow-y:auto}
.db-panel-impact .impact-radar-svg{height:160px}
.result-count-badge{
  font-size:11px;color:var(--text-muted);white-space:nowrap;
  background:rgba(56,189,248,.06);border:1px solid var(--border);
  border-radius:12px;padding:3px 10px;
}

/* =====================================================
   P2.3.2 电商动态时间线
   ===================================================== */
.tl-filter-bar{
  display:flex;flex-direction:column;align-items:stretch;gap:8px;
  padding:10px 14px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:var(--radius-lg);
  margin-bottom:14px;
}
.tl-filter-group{display:flex;flex-wrap:wrap;align-items:center;gap:5px 6px;min-width:0}
.tl-filter-label{
  flex:0 0 auto;min-width:34px;
  font-size:11px;font-weight:700;color:var(--text);
  opacity:.72;letter-spacing:.04em;
}
/* 分类筛选行（按钮多时允许横向滚动） */
.tl-filter-group--cats{
  flex-wrap:wrap;overflow:visible;gap:5px 6px;padding-bottom:0;
}
.tl-filter-group--cats::-webkit-scrollbar{display:none}
.tl-filter-sep{display:none}
.tl-filter-btn{
  font-size:11px;padding:3px 10px;border-radius:12px;cursor:pointer;
  background:transparent;border:1px solid var(--border);
  color:var(--text-muted);transition:all .15s;white-space:normal;
}
.tl-filter-btn:hover{border-color:var(--accent);color:var(--accent)}
.tl-filter-btn.active{
  background:rgba(0,200,255,.12);border-color:var(--accent);
  color:var(--accent);font-weight:600;
}
/* 筛选按钮上的真实条数徽章 */
.tl-cnt{
  display:inline-block;margin-left:5px;font-size:10px;font-weight:700;
  color:var(--text-muted);opacity:.7;
}
.tl-filter-btn.active .tl-cnt{color:var(--accent);opacity:1}
.tl-filter-btn--empty{opacity:.45}
.tl-filter-btn--empty .tl-cnt{color:var(--text-muted)}

/* 空结果状态：明确告诉用户是"没数据"而非"按钮失效" */
.tl-empty{
  text-align:center;padding:40px 20px;background:var(--bg-card);
  border:1px dashed var(--border);border-radius:var(--radius-lg);
}
.tl-empty-icon{font-size:32px;margin-bottom:10px;opacity:.6}
.tl-empty-title{font-size:14px;font-weight:700;color:var(--text-bright);margin-bottom:6px}
.tl-empty-sub{font-size:12px;color:var(--text-muted);max-width:420px;margin:0 auto 14px;line-height:1.6}
.tl-empty-reset{
  font-size:12px;padding:6px 16px;border-radius:10px;cursor:pointer;
  background:rgba(56,189,248,.1);border:1px solid var(--accent);color:var(--accent);
  transition:background .15s;
}
.tl-empty-reset:hover{background:rgba(56,189,248,.2)}

/* 电商动态当前窗口标题 */
.commerce-current-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:16px 0 10px}
.commerce-current-head>div{display:flex;align-items:center;gap:8px}
.commerce-current-head span{padding:3px 7px;border-radius:999px;background:rgba(56,189,248,.1);color:var(--accent);font-size:10px}
.commerce-current-head h3{margin:0;color:var(--text-bright);font-size:14px;font-weight:700}
.commerce-current-head p{margin:0;color:var(--text-muted);font-size:10px}

/* 电商动态历史归档：独立于当前 24h 数据池，仅作为次级阅读区 */
.commerce-archive{margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}
.commerce-archive-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}
.commerce-archive-kicker{display:inline-flex;padding:3px 8px;margin-bottom:7px;border:1px solid rgba(148,163,184,.25);border-radius:999px;color:var(--text-muted);font-size:10px;letter-spacing:.12em}
.commerce-archive-head h3{margin:0;color:var(--text-bright);font-size:14px;font-weight:700}
.commerce-archive-head p{margin:5px 0 0;color:var(--text-muted);font-size:11px}
.commerce-archive-count{flex:0 0 auto;color:var(--text-muted);font-size:11px}
.commerce-archive-groups{border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--bg-card) 72%,transparent);overflow:hidden}
.commerce-archive-day+.commerce-archive-day{border-top:1px solid var(--border)}
.commerce-archive-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:0;background:transparent;color:var(--text);cursor:pointer;text-align:left}
.commerce-archive-toggle:hover{background:rgba(56,189,248,.04)}
.commerce-archive-toggle>span:first-child{display:flex;align-items:center;gap:10px}
.commerce-archive-toggle strong{font-size:12px;font-weight:650;color:var(--text-bright)}
.commerce-archive-toggle em{font-size:11px;font-style:normal;color:var(--text-muted)}
.commerce-archive-arrow{color:var(--text-muted);font-size:18px;line-height:1}
.commerce-archive-body{padding:2px 14px 12px;background:rgba(15,23,42,.08)}
.commerce-archive-body .tl-item:last-child{margin-bottom:0}
.commerce-archive-empty{padding:18px 14px;color:var(--text-muted);font-size:11px;text-align:center}
@media(max-width:720px){
  .commerce-current-head{align-items:flex-start;flex-direction:column;gap:5px}
  .commerce-archive{margin-top:22px}
  .commerce-archive-head{align-items:flex-start}
  .commerce-archive-toggle{padding:11px 12px}
  .commerce-archive-body{padding:2px 10px 10px}
}

.tl-search-wrap{margin-left:4px;flex:1 1 180px;min-width:160px;max-width:260px}
.tl-search-input{
  background:rgba(255,255,255,.04);border:1px solid var(--border);
  border-radius:8px;padding:4px 10px;font-size:11px;
  color:var(--text);width:100%;outline:none;
}
.tl-search-input:focus{border-color:var(--accent)}
.tl-container{display:flex;flex-direction:column;gap:0}
.tl-day{margin-bottom:4px}
.tl-day-head{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;cursor:pointer;
  border-radius:var(--radius);transition:background .12s;
  border-bottom:1px solid var(--border);
  margin-bottom:2px;
}
.tl-day-head:hover{background:rgba(56,189,248,.04)}
.tl-day-label{font-size:13px;font-weight:700;color:var(--text-bright)}
.tl-day-count{font-size:11px;color:var(--text-muted);margin-left:6px}
.tl-day-toggle{margin-left:auto;font-size:12px;color:var(--text-muted);opacity:.5}
.tl-day-body{display:flex;flex-direction:column;padding-left:20px;position:relative}
.tl-day-body::before{
  content:"";position:absolute;left:8px;top:0;bottom:0;
  width:1px;background:var(--border);
}
.tl-item{display:flex;gap:0;align-items:flex-start;padding:6px 0;position:relative}
.tl-time-col{
  display:flex;flex-direction:column;align-items:center;
  width:52px;flex-shrink:0;padding-top:3px;gap:4px;
}
.tl-time{font-size:10px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.tl-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--accent);opacity:.6;flex-shrink:0;
}
.tl-card{
  flex:1;background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:10px 12px;
  margin-bottom:4px;transition:border-color .15s;min-width:0;
}
.tl-card:hover{border-color:var(--border-glow)}
.tl-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.tl-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;flex-shrink:0}
.tl-card-badges{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
  flex:1;
  min-width:0;
}
.tl-src{font-size:11px;color:var(--text-muted);font-weight:500}
.tl-src-kind{
  font-size:9px;padding:1px 5px;border-radius:8px;
  background:rgba(56,189,248,.08);border:1px solid var(--border);
  color:var(--text-muted);
}
.tl-score{font-size:10px;font-weight:700;margin-left:auto;padding:2px 6px;border-radius:8px}
.tl-card-score{flex-shrink:0;align-self:flex-start;margin-left:auto}
.score-hot{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.2)}
.score-warm{background:rgba(245,158,11,.12);color:#fbbf24;border:1px solid rgba(245,158,11,.2)}
.score-cool{background:rgba(0,200,255,.1);color:var(--accent);border:1px solid rgba(0,200,255,.2)}
.tl-card-title{
  font-size:13px;color:var(--text);line-height:1.5;display:block;
  font-weight:500;text-decoration:none;
}
.tl-card-title:hover{color:var(--accent)}
.tl-card-hint{font-size:11px;color:var(--text-muted);margin-top:5px;line-height:1.5}
.tl-card-action{
  margin-top:6px;padding:6px 8px;border-radius:8px;
  background:rgba(56,189,248,.05);border:1px solid rgba(56,189,248,.12);
  color:var(--text-muted);font-size:11px;line-height:1.6;
}
.tl-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.tl-card-status-tags{margin-top:6px}
.tl-tag{
  font-size:10px;padding:1px 7px;border-radius:8px;
  background:rgba(56,189,248,.06);border:1px solid var(--border);
  color:var(--text-muted);
}
.tl-tag-wx{background:rgba(7,193,96,.08);border-color:rgba(7,193,96,.2);color:#4ade80}
.tl-tag-muted{background:rgba(148,163,184,.08);border-color:rgba(148,163,184,.18);color:var(--text-faint)}
.tl-tag-priority{background:rgba(245,158,11,.10);border-color:rgba(245,158,11,.24);color:#f59e0b}
.tl-tag-bucket{background:rgba(139,92,246,.09);border-color:rgba(139,92,246,.22);color:#a78bfa}
.tl-tag-score{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.20);color:#10b981}
.tl-tag-type{background:rgba(56,189,248,.10);border-color:rgba(56,189,248,.28);color:#0891b2}
.tl-tag-priority-p0{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.32);color:#dc2626}
.tl-tag-priority-p1{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.34);color:#d97706}
.tl-tag-priority-p2{background:rgba(14,165,233,.12);border-color:rgba(14,165,233,.30);color:#0284c7}
.tl-tag-priority-p3{background:rgba(100,116,139,.12);border-color:rgba(100,116,139,.26);color:#64748b}
.tl-tag-priority-archive,
.tl-tag-priority-unknown{background:rgba(107,114,128,.10);border-color:rgba(107,114,128,.24);color:#6b7280}
.tl-tag-bucket-high{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.30);color:#059669}
.tl-tag-bucket-observation{background:rgba(139,92,246,.12);border-color:rgba(139,92,246,.30);color:#7c3aed}
.tl-tag-bucket-low{background:rgba(100,116,139,.10);border-color:rgba(100,116,139,.24);color:#64748b}
.tl-tag-bucket-noise,
.tl-tag-bucket-default{background:rgba(107,114,128,.10);border-color:rgba(107,114,128,.24);color:#6b7280}
.tl-tag-score-high{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.34);color:#16a34a}
.tl-tag-score-mid{background:rgba(20,184,166,.13);border-color:rgba(20,184,166,.32);color:#0f766e}
.tl-tag-score-low{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.30);color:#2563eb}
.tl-tag-score-muted{background:rgba(100,116,139,.10);border-color:rgba(100,116,139,.22);color:#64748b}
.tl-tag-review{background:rgba(168,85,247,.12);border-color:rgba(168,85,247,.32);color:#9333ea}
.tl-tag-ai-muted{background:rgba(59,130,246,.08);border-color:rgba(59,130,246,.20);color:#3b82f6}
@media (max-width: 760px){
  .tl-card-top{flex-direction:column;align-items:stretch;gap:6px}
  .tl-card-badges{justify-content:flex-start;max-width:none}
  .tl-card-score{margin-left:0;align-self:flex-start}
}
.tl-pagination{
  display:flex;align-items:center;justify-content:center;gap:12px;
  padding:16px 0;margin-top:8px;
}
.tl-page-btn{
  font-size:12px;padding:6px 16px;border-radius:8px;cursor:pointer;
  background:var(--bg-card);border:1px solid var(--border);
  color:var(--text);transition:all .15s;
}
.tl-page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.tl-page-btn:disabled{opacity:.35;cursor:not-allowed}
.tl-page-info{font-size:11px;color:var(--text-muted)}

/* =====================================================
   P2.3.3 电商日报归档页
   ===================================================== */
.dr-layout{display:grid;grid-template-columns:210px 1fr;gap:22px;align-items:start}
.dr-sidebar{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:16px;
  position:sticky;top:14px;
}
.dr-sidebar-head{margin-bottom:12px}
.dr-archive-nav{display:flex;flex-direction:column;gap:3px}
.dr-archive-loading{font-size:11px;color:var(--text-muted);padding:8px 0;text-align:center}
.dr-archive-latest{
  display:flex;align-items:center;gap:10px;padding:10px 12px;
  border-radius:var(--radius);background:rgba(56,189,248,.06);
  border:1px solid rgba(56,189,248,.15);cursor:pointer;
  margin-bottom:8px;transition:all .18s ease;
}
.dr-archive-latest:hover{background:rgba(56,189,248,.10);border-color:rgba(56,189,248,.25)}
.dr-archive-latest.active{border-color:var(--accent);background:rgba(56,189,248,.10)}
.dr-archive-icon{font-size:16px;flex-shrink:0}
.dr-archive-label{font-size:10px;color:var(--text-muted);letter-spacing:.03em}
.dr-archive-date{font-size:12px;font-weight:600;color:var(--text-bright);font-variant-numeric:tabular-nums}
.dr-archive-section{margin-top:10px;padding-top:6px;border-top:1px solid rgba(148,163,184,.08)}
.dr-archive-section:first-of-type{border-top:none;padding-top:0}
.dr-archive-month{font-size:10px;color:#7B8794;font-weight:700;padding:3px 6px;margin-bottom:4px;letter-spacing:.04em;text-transform:uppercase}
.dr-archive-day{
  font-size:11px;color:var(--text-muted);padding:6px 8px;border-radius:8px;
  cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:8px;
}
.dr-archive-day:hover{background:rgba(56,189,248,.06);color:var(--text)}
.dr-archive-day:active{transform:scale(.98)}
.dr-archive-day.active{color:var(--accent);font-weight:600;background:rgba(56,189,248,.08);border-left:3px solid var(--accent);padding-left:5px}
.dr-archive-day.muted{opacity:.4;cursor:default;font-size:10px}
.dr-archive-day.empty{opacity:.5}
.dr-archive-day-num{font-weight:600;min-width:28px;font-variant-numeric:tabular-nums}
.dr-archive-day-meta{font-size:10px;color:var(--text-muted);opacity:.65}
.dr-archive-day-count{font-size:9px;color:var(--text-muted);opacity:.5;margin-left:auto;font-variant-numeric:tabular-nums}
.dr-archive-day.active .dr-archive-day-meta{opacity:1}
.dr-fallback-note{font-size:10px;color:var(--score-mid);margin-top:6px;opacity:.85;padding:4px 8px;background:rgba(245,158,11,.06);border-radius:6px;border:1px solid rgba(245,158,11,.12)}
.dr-content{min-width:0}
.dr-masthead{
  padding:26px 28px 20px;margin-bottom:22px;
  border:1px solid var(--border);border-top:3px solid rgba(56,189,248,.55);
  background:linear-gradient(145deg,rgba(17,28,43,.98),rgba(10,18,30,.96));
  box-shadow:0 18px 50px rgba(0,0,0,.18);
}
.dr-masthead-top{margin-bottom:12px}
.dr-title{
  font-family:Georgia,"Noto Serif SC","Songti SC",serif;
  font-size:clamp(2rem,5vw,3.6rem);font-weight:700;letter-spacing:-.045em;
  color:var(--text-bright);margin:4px 0 6px;
}
.dr-date-line{font-size:12px;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase}
.dr-kpi-row{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:1px;margin-top:18px;background:var(--border)}
.dr-kpi{display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:var(--bg-card-2)}
.dr-kpi span{font-size:10px;color:var(--text-muted);letter-spacing:.08em}
.dr-kpi strong{font-size:1.5rem;font-weight:750;color:var(--text-bright)}
.daily-front-page{display:flex;flex-direction:column;gap:26px}
.daily-front-page .daily-report-section{margin:0}
.dr-chapter-head{
  display:flex;align-items:center;gap:12px;
  padding:4px 0 13px;border-bottom:1px solid rgba(148,163,184,.2);margin-bottom:12px;
}
.dr-chapter-num{
  font-family:Georgia,serif;font-size:2.8rem;font-weight:700;color:var(--accent);
  opacity:.92;min-width:2ch;line-height:.9;
}
.dr-chapter-cand{font-size:1.4rem}
.dr-chapter-title-wrap{flex:1}
.dr-chapter-title{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:1.25rem;font-weight:700;color:var(--text-bright);display:block}
.dr-chapter-sub{font-size:9px;color:var(--text-muted);letter-spacing:.16em;margin-top:3px}
.dr-chapter-count{font-size:11px;color:var(--text-muted);white-space:nowrap}
.dr-watch-section > summary{cursor:pointer;list-style:none}
.dr-watch-section > summary::-webkit-details-marker{display:none}
.dr-watch-section > summary::after{content:"展开";font-size:10px;color:var(--accent);margin-left:8px}
.dr-watch-section[open] > summary::after{content:"收起"}
.dr-watch-note{font-size:11px;color:var(--text-muted);margin:-3px 0 10px}
.daily-front-page .daily-report-card{
  display:block;position:relative;padding:14px 16px;margin:0 0 8px;
  background:rgba(14,24,38,.72);border:1px solid rgba(148,163,184,.13);
  border-radius:3px;color:inherit;text-decoration:none;overflow:hidden;
}
.daily-front-page .daily-report-card:hover{border-color:rgba(56,189,248,.32);background:rgba(17,29,45,.9)}
.dr-card-meta{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:7px;font-size:10px}
.dr-card-source-type{padding:2px 7px;border:1px solid rgba(56,189,248,.24);color:var(--accent);letter-spacing:.04em;white-space:nowrap}
.dr-card-src{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-card-time{margin-left:auto;color:#68778b;white-space:nowrap;font-variant-numeric:tabular-nums}
.dr-card-title{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:16px;line-height:1.45;color:var(--text-bright);display:block;margin-bottom:7px;padding-right:40px}
.dr-card-summary{font-size:12px;color:#91a0b5;line-height:1.6;margin:0 0 7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dr-card-impact,.dr-card-action{display:flex;gap:8px;align-items:flex-start;font-size:11px;line-height:1.5;margin:4px 0;padding:5px 8px;background:rgba(148,163,184,.04);color:var(--text-muted)}
.dr-card-impact span,.dr-card-action span{font-size:9px;letter-spacing:.08em;white-space:nowrap;padding-top:2px;color:#7f8da0}
.dr-card-action{color:#b8d9e9;border-left:2px solid rgba(56,189,248,.55);background:rgba(56,189,248,.05)}
.dr-card-action span{color:var(--accent)}
.dr-card-footer{display:flex;align-items:center;gap:10px;margin-top:7px;min-height:18px}
.dr-card-tags{display:flex;gap:5px;flex-wrap:wrap;flex:1}
.dr-card-tags span{font-size:9px;color:#718096;border:1px solid rgba(148,163,184,.12);padding:2px 6px}
.dr-card-score{
  font-size:10px;font-weight:600;color:#6f8194;white-space:nowrap;
}
html[data-resolved-theme="light"] .dr-masthead{
  background:linear-gradient(145deg,#ffffff,#f3f7fb);
  border-color:#d8e4ee;border-top-color:#4a9dc7;
  box-shadow:0 12px 32px rgba(36,71,94,.08);
}
html[data-resolved-theme="light"] .daily-front-page .daily-report-card{
  background:#ffffff;border-color:#dfe7ef;
}
html[data-resolved-theme="light"] .daily-front-page .daily-report-card:hover{
  background:#f6f9fc;border-color:#a9c9dc;
}
@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .dr-masthead{
    background:linear-gradient(145deg,#ffffff,#f3f7fb);
    border-color:#d8e4ee;border-top-color:#4a9dc7;
    box-shadow:0 12px 32px rgba(36,71,94,.08);
  }
  html:not([data-theme="dark"]) .daily-front-page .daily-report-card{background:#ffffff;border-color:#dfe7ef}
  html:not([data-theme="dark"]) .daily-front-page .daily-report-card:hover{background:#f6f9fc;border-color:#a9c9dc}
}
.dr-candidate-note{font-size:11px;color:var(--text-muted);margin-bottom:10px}
.dr-candidate-list{display:flex;flex-direction:column;gap:5px}
.dr-candidate-row{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  transition:border-color .15s;text-decoration:none;
}
.dr-candidate-row:hover{border-color:var(--border-glow)}
.dr-cand-src{font-size:10px;color:var(--text-muted);flex-shrink:0;width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-cand-title{font-size:11px;color:var(--text);flex:1;line-height:1.4}
.dr-cand-score{font-size:10px;color:var(--accent);font-weight:700;flex-shrink:0}
@media(max-width:768px){.dr-layout{grid-template-columns:1fr}.dr-sidebar{position:static}.dr-masthead{padding:20px}.dr-kpi-row{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 720px){
  .daily-front-page .daily-report-card{padding:15px 14px}
  .dr-card-meta{align-items:flex-start;flex-wrap:wrap}
  .dr-card-time{margin-left:0;width:100%}
  .dr-card-title{font-size:16px;padding-right:0}
  .dr-card-impact,.dr-card-action{display:block}
  .dr-card-impact span,.dr-card-action span{display:block;margin-bottom:3px}
  .dr-chapter-num{font-size:2.2rem}
}

/* AIHOT 日报：仅属于 AI 情报页，不复用电商日报数据。 */
.aihot-daily-wrap{max-height:75vh;overflow-y:auto;padding-right:3px}
.aihot-daily-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px;align-items:start}
.aihot-archive-nav{position:sticky;top:0;max-height:75vh;overflow-y:auto;border:1px solid var(--border);background:var(--bg-card);padding:10px;display:flex;flex-direction:column;gap:4px}
.aihot-archive-latest,.aihot-archive-date{border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit}
.aihot-archive-latest{display:flex;justify-content:space-between;align-items:baseline;padding:10px;border-bottom:1px solid var(--border);margin-bottom:4px}
.aihot-archive-latest strong{color:var(--text-bright);font-size:12px}.aihot-archive-latest span{font-size:9px;color:var(--text-muted)}
.aihot-archive-month{padding:10px 8px 3px;color:var(--text-muted);font-size:9px;letter-spacing:.12em}
.aihot-archive-date{display:grid;grid-template-columns:34px minmax(0,1fr);gap:7px;padding:7px 8px;border-left:2px solid transparent}
.aihot-archive-date span{font-size:11px;color:var(--text-bright);font-variant-numeric:tabular-nums}.aihot-archive-date small{font-size:9px;line-height:1.45;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aihot-archive-latest.active,.aihot-archive-date.active{background:var(--accent-dim);border-left-color:var(--accent)}
.aihot-report-stage{min-width:0}.aihot-archive-empty{min-height:260px;border:1px solid var(--border);background:var(--bg-card);display:grid;place-content:center;gap:8px;text-align:center;color:var(--text-muted)}.aihot-archive-empty strong{color:var(--text-bright)}
.aihot-report{border-top:3px solid rgba(56,189,248,.58);background:linear-gradient(155deg,#101b2a,#0a1320 72%);border-left:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.aihot-report-hero{padding:28px 30px 22px;border-bottom:1px solid rgba(148,163,184,.17)}
.aihot-kicker{font-size:9px;color:var(--accent);letter-spacing:.24em;font-weight:700}
.aihot-report-hero h2{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.04em;margin:5px 0 10px;color:var(--text-bright)}
.aihot-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-muted);font-size:10px}
.aihot-skill-note{display:grid;gap:7px;margin:18px 30px 0;padding:14px 16px;border:1px solid rgba(56,189,248,.22);background:rgba(56,189,248,.06);color:var(--text-muted);font-size:11px;line-height:1.55}
.aihot-skill-note strong{color:var(--text-bright);font-size:12px}
.aihot-skill-note code{display:block;overflow-wrap:anywhere;color:#7dd3fc;font-size:10px}
.aihot-sections{padding:8px 30px 30px}
.aihot-section{padding:22px 0 4px}
.aihot-section-head{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.16)}
.aihot-section-num{font-family:Georgia,serif;font-size:2.4rem;color:var(--accent);line-height:1}
.aihot-section-head>div{flex:1;min-width:0}
.aihot-section-head h3{font-family:Georgia,"Noto Serif SC","Songti SC",serif;color:var(--text-bright);font-size:18px;margin:0}
.aihot-section-head p{color:var(--text-muted);font-size:9px;letter-spacing:.12em;margin-top:2px}
.aihot-section-count{font-size:10px;color:var(--text-muted);white-space:nowrap}
.aihot-story-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(148,163,184,.1);margin-top:1px}
.aihot-story-card{display:block;min-width:0;padding:16px;background:var(--bg-card);text-decoration:none;color:inherit;transition:background .18s ease}
.aihot-story-card:hover{background:var(--bg-card-2)}
.aihot-story-meta{display:flex;justify-content:space-between;gap:8px;color:#708096;font-size:9px;margin-bottom:8px}
.aihot-story-card h4{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:15px;line-height:1.55;color:var(--text-bright);margin:0 0 7px}
.aihot-story-card p{font-size:11px;line-height:1.7;color:#8796aa;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
html[data-resolved-theme="light"] .aihot-report{background:linear-gradient(155deg,#fff,#f7fafc 72%)}
html[data-resolved-theme="light"] .aihot-story-card p,html[data-resolved-theme="light"] .ai-card-summary{color:var(--text-muted)}
@media (max-width: 720px){.aihot-daily-layout{grid-template-columns:1fr}.aihot-archive-nav{position:static;max-height:none;overflow-x:auto;flex-direction:row;align-items:stretch}.aihot-archive-month{display:none}.aihot-archive-latest,.aihot-archive-date{min-width:130px;margin:0;border-bottom:0}.aihot-report-hero,.aihot-sections{padding-left:16px;padding-right:16px}.aihot-skill-note{margin-left:16px;margin-right:16px}.aihot-story-list{grid-template-columns:1fr}.aihot-section-num{font-size:2rem}}

/* =====================================================
   P2.3.4 Agent Skill 接入页
   ===================================================== */
.agent-page{max-width:860px;margin:0 auto;padding:0 0 40px}
.agent-hero{padding:32px 0 24px;border-bottom:1px solid var(--border);margin-bottom:28px}
.agent-hero-title{
  font-size:1.8rem;font-weight:800;color:var(--text-bright);
  margin:6px 0 10px;line-height:1.2;
}
.agent-hero-sub{font-size:13px;color:var(--text-muted);max-width:560px;line-height:1.6}
.agent-caps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px}
.agent-cap-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:18px 16px;
  display:flex;flex-direction:column;gap:8px;
}
.agent-cap-icon{font-size:1.6rem}
.agent-cap-title{font-size:13px;font-weight:700;color:var(--text-bright)}
.agent-cap-desc{font-size:11px;color:var(--text-muted);line-height:1.6}
.agent-cap-desc code{
  font-size:10px;background:rgba(0,200,255,.08);
  border:1px solid var(--border);border-radius:4px;padding:1px 4px;
  color:var(--accent);
}
.agent-install-block{
  background:rgba(0,200,255,.04);border:1px solid rgba(0,200,255,.15);
  border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:28px;
}
.agent-install-label{font-size:10px;color:var(--accent);font-weight:700;letter-spacing:.08em;margin-bottom:10px}
.agent-install-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.agent-install-code{
  flex:1;font-size:12px;color:var(--text);
  background:rgba(0,0,0,.25);border:1px solid var(--border);
  border-radius:6px;padding:8px 12px;min-width:0;word-break:break-all;
}
.agent-copy-btn{
  font-size:11px;padding:6px 14px;border-radius:8px;cursor:pointer;
  background:var(--accent);color:#000;font-weight:700;border:none;
  transition:opacity .15s;white-space:nowrap;
}
.agent-copy-btn:hover{opacity:.85}
.agent-install-hint{font-size:11px;color:var(--text-muted);margin-top:8px;line-height:1.6}
.agent-steps{margin-bottom:28px}
.agent-steps-title,.agent-actions-title,.agent-files-title{
  font-size:10px;color:var(--text-muted);font-weight:700;
  letter-spacing:.1em;margin-bottom:12px;
}
.agent-steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.agent-step{
  display:flex;align-items:flex-start;gap:10px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:14px;
}
.agent-step-num{
  font-size:1.4rem;font-weight:900;color:var(--accent);
  opacity:.6;line-height:1;flex-shrink:0;
}
.agent-step strong{font-size:12px;color:var(--text-bright);display:block;margin-bottom:4px}
.agent-step p{font-size:11px;color:var(--text-muted);line-height:1.5}
.agent-actions-block,.agent-files-block{margin-bottom:28px}
.agent-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.agent-action-item{
  display:flex;align-items:center;gap:8px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:10px 12px;
  font-size:12px;color:var(--text);
}
.agent-files-list{display:flex;flex-direction:column;gap:8px}
.agent-file-row{
  display:flex;align-items:center;gap:12px;
  padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);
}
.agent-file-row code{
  font-size:11px;color:var(--accent);background:rgba(0,200,255,.08);
  border:1px solid rgba(0,200,255,.15);border-radius:4px;padding:2px 7px;
  flex-shrink:0;
}
.agent-file-row span{font-size:11px;color:var(--text-muted)}
@media(max-width:768px){
  .agent-caps-grid,.agent-steps-grid,.agent-actions-grid{grid-template-columns:1fr}
}

/* =====================================================
   THEME TOGGLE — sidebar footer
   ===================================================== */
.theme-toggle{
  display:flex;gap:4px;padding:8px 12px;margin:0 7px 8px;
  border-top:1px solid var(--border);
}
.theme-toggle-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:4px;
  padding:5px 6px;border-radius:8px;
  font-size:11px;color:var(--text-muted);
  background:transparent;border:1px solid transparent;
  cursor:pointer;transition:all .18s ease;
}
.theme-toggle-btn:hover{color:var(--text);background:rgba(53,191,245,.06)}
.theme-toggle-btn.active{
  color:var(--accent);background:var(--accent-dim);
  border-color:var(--border);font-weight:600;
}
.theme-toggle-btn svg{width:14px;height:14px;flex-shrink:0}

/* ── Light mode: card shadows + panel tweaks ── */
html[data-resolved-theme="light"] .db-panel{box-shadow:var(--shadow-card)}
html[data-resolved-theme="light"] .stat-card{box-shadow:var(--shadow-card)}
html[data-resolved-theme="light"] .sidebar{border-right-color:var(--border)}
html[data-resolved-theme="light"] .topbar{box-shadow:0 1px 2px rgba(0,0,0,.04)}
html[data-resolved-theme="light"] .brand-text strong{color:var(--text-bright)}
html[data-resolved-theme="light"] .nav-list a:hover{background:rgba(14,165,200,.06)}
html[data-resolved-theme="light"] .nav-list a.active{
  background:rgba(14,165,200,.08);box-shadow:0 0 0 1px rgba(14,165,200,.18) inset;
}
html[data-resolved-theme="light"] .nav-group-items a:hover{background:rgba(14,165,200,.06)}
html[data-resolved-theme="light"] .nav-group-items a.active{
  background:rgba(14,165,200,.08);box-shadow:0 0 0 1px rgba(14,165,200,.18) inset;
}
html[data-resolved-theme="light"] .hcc-pill{
  border-color:rgba(14,165,200,.18);background:rgba(14,165,200,.05);
}
html[data-resolved-theme="light"] .hcc-pill-reason{
  background:rgba(14,165,200,.08);border-color:rgba(14,165,200,.22);
}
html[data-resolved-theme="light"] .hcc-view-btn{
  background:rgba(14,165,200,.06);border-color:rgba(14,165,200,.18);
}
html[data-resolved-theme="light"] .hcc-view-btn:hover{
  background:rgba(14,165,200,.12);border-color:rgba(14,165,200,.30);
}
html[data-resolved-theme="light"] .sidebar-radar-box{
  background:rgba(14,165,200,.04);border-color:rgba(14,165,200,.15);
}
html[data-resolved-theme="light"] .radar-svg circle,
html[data-resolved-theme="light"] .radar-svg line{stroke:rgba(14,165,200,.15)}
html[data-resolved-theme="light"] .db-hero-sub{color:var(--text-muted)}
html[data-resolved-theme="light"] .db-hero{
  background:
    radial-gradient(circle at 82% 44%,rgba(14,165,233,.20),transparent 34%),
    linear-gradient(120deg,rgba(248,251,255,.98) 0%,rgba(240,248,255,.94) 50%,rgba(230,244,255,.88) 100%);
  border-color:rgba(148,184,211,.34);
}
html[data-resolved-theme="light"] .db-hero-art{opacity:1}
html[data-resolved-theme="light"] .db-hero-globe circle{stroke:rgba(14,165,200,.2)}
html[data-resolved-theme="light"] .db-hero-globe line{stroke:rgba(14,165,200,.15)}
/* Light scrollbar */
html[data-resolved-theme="light"] #hotTopicsList::-webkit-scrollbar-thumb,
html[data-resolved-theme="light"] #bolePicksList::-webkit-scrollbar-thumb,
html[data-resolved-theme="light"] .db-panel-ai-stream .ai-mini-list::-webkit-scrollbar-thumb{
  background:rgba(14,165,200,.15);
}
html[data-resolved-theme="light"] #hotTopicsList:hover::-webkit-scrollbar-thumb,
html[data-resolved-theme="light"] #bolePicksList:hover::-webkit-scrollbar-thumb,
html[data-resolved-theme="light"] .db-panel-ai-stream .ai-mini-list:hover::-webkit-scrollbar-thumb{
  background:rgba(14,165,200,.30);
}
@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .db-panel{box-shadow:var(--shadow-card)}
  html:not([data-theme="dark"]) .stat-card{box-shadow:var(--shadow-card)}
  html:not([data-theme="dark"]) .sidebar{border-right-color:var(--border)}
  html:not([data-theme="dark"]) .topbar{box-shadow:0 1px 2px rgba(0,0,0,.04)}
  html:not([data-theme="dark"]) .nav-list a:hover{background:rgba(14,165,200,.06)}
  html:not([data-theme="dark"]) .nav-list a.active{
    background:rgba(14,165,200,.08);box-shadow:0 0 0 1px rgba(14,165,200,.18) inset;
  }
  html:not([data-theme="dark"]) .nav-group-items a:hover{background:rgba(14,165,200,.06)}
  html:not([data-theme="dark"]) .nav-group-items a.active{
    background:rgba(14,165,200,.08);box-shadow:0 0 0 1px rgba(14,165,200,.18) inset;
  }
  html:not([data-theme="dark"]) .hcc-pill{
    border-color:rgba(14,165,200,.18);background:rgba(14,165,200,.05);
  }
  html:not([data-theme="dark"]) .hcc-pill-reason{
    background:rgba(14,165,200,.08);border-color:rgba(14,165,200,.22);
  }
  html:not([data-theme="dark"]) .hcc-view-btn{
    background:rgba(14,165,200,.06);border-color:rgba(14,165,200,.18);
  }
  html:not([data-theme="dark"]) .hcc-view-btn:hover{
    background:rgba(14,165,200,.12);border-color:rgba(14,165,200,.30);
  }
  html:not([data-theme="dark"]) .sidebar-radar-box{
    background:rgba(14,165,200,.04);border-color:rgba(14,165,200,.15);
  }
  html:not([data-theme="dark"]) .db-hero{
    background:
      radial-gradient(circle at 82% 44%,rgba(14,165,233,.20),transparent 34%),
      linear-gradient(120deg,rgba(248,251,255,.98) 0%,rgba(240,248,255,.94) 50%,rgba(230,244,255,.88) 100%);
    border-color:rgba(148,184,211,.34);
  }
  html:not([data-theme="dark"]) .db-hero-art{opacity:1}
  html:not([data-theme="dark"]) .brief-preview-item{background:rgba(14,165,200,.03)}
  html:not([data-theme="dark"]) .brief-sec-chip{background:rgba(14,165,200,.06);border-color:rgba(14,165,200,.15)}
}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media(max-width:1100px){.insight-column{display:none}}
@media(max-width:860px){
  .db-hero{grid-template-columns:1fr;min-height:98px;padding:18px 22px}
  .db-hero-art{position:absolute;right:-44px;top:0;bottom:0;width:290px;height:110px;opacity:.38}
  .db-hero-text{max-width:calc(100% - 96px)}
  .db-hero-chip{display:none}
  .dashboard-top-row{grid-template-columns:1fr;gap:10px}
  .dashboard-side-synced{height:auto !important;max-height:320px}
  .db-panel-ai-stream,.db-panel#bolePicksWrap{max-height:320px}
}
@media(max-width:768px){
  .sidebar{width:44px;overflow:hidden}
  .brand > div,.nav-list a{font-size:0}
  .brand-logo{margin:0 auto}
  .theme-toggle{flex-direction:column;gap:2px;padding:4px 2px}
  .theme-toggle-btn{font-size:0;padding:6px 2px;justify-content:center}
  .theme-toggle-btn svg{width:16px;height:16px}
  .sidebar-radar-box{display:none}
}

/* =====================================================
   REDUCED MOTION — respect system preference
   ===================================================== */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}

/* ── 细滚动条：内部列表滚动低刺激 ── */
#hotTopicsList::-webkit-scrollbar,
#bolePicksList::-webkit-scrollbar,
.db-panel-ai-stream .ai-mini-list::-webkit-scrollbar,
.waytoagi-list::-webkit-scrollbar{width:3px}
#hotTopicsList::-webkit-scrollbar-track,
#bolePicksList::-webkit-scrollbar-track,
.db-panel-ai-stream .ai-mini-list::-webkit-scrollbar-track,
.waytoagi-list::-webkit-scrollbar-track{background:transparent}
#hotTopicsList::-webkit-scrollbar-thumb,
#bolePicksList::-webkit-scrollbar-thumb,
.db-panel-ai-stream .ai-mini-list::-webkit-scrollbar-thumb,
.waytoagi-list::-webkit-scrollbar-thumb{background:rgba(56,189,248,.12);border-radius:3px}
#hotTopicsList:hover::-webkit-scrollbar-thumb,
#bolePicksList:hover::-webkit-scrollbar-thumb,
.db-panel-ai-stream .ai-mini-list:hover::-webkit-scrollbar-thumb,
.waytoagi-list:hover::-webkit-scrollbar-thumb{background:rgba(56,189,248,.3)}

/* ── 信源健康监控小型运维面板 ── */
.hmini-sect{margin-bottom:7px}
.hmini-sect:last-child{margin-bottom:0}
.hmini-title{
  font-size:9px;font-weight:700;color:var(--text-muted);
  letter-spacing:.7px;text-transform:uppercase;
  margin-bottom:4px;padding-bottom:3px;
  border-bottom:1px solid var(--border);
}
.hmini-grid{
  display:grid;grid-template-columns:auto 1fr;
  gap:2px 8px;font-size:10.5px;
}
.hmini-k{color:var(--text-muted);white-space:nowrap;padding:1px 0;line-height:1.5}
.hmini-v{
  color:var(--text);text-align:right;
  font-variant-numeric:tabular-nums;padding:1px 0;line-height:1.5;
}
.hmini-v.ok{color:var(--green)}
.hmini-v.warn{color:#f59e0b}

/* ── AI 情报 fallback 来源标注 ── */
.waytoagi-fallback-note{font-size:10px;color:var(--text-muted);opacity:.7}

/* ── 精选页候选信号标注 ── */
.featured-candidate-note{
  font-size:11px;color:var(--text-muted);
  padding:8px 12px;border-radius:var(--radius);
  background:rgba(56,189,248,.04);border:1px solid var(--border);
  margin-bottom:8px;
}

/* ══════════════════════════════════════════════════════════
   源状态看板  Source Status Dashboard
   ══════════════════════════════════════════════════════════ */

/* ── 概览卡片 ── */
.sd-summary{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));
  gap:10px;margin-bottom:16px;
}
.sd-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:16px 10px;border-radius:var(--radius-lg);border:1px solid;
  text-align:center;transition:border-color .2s;
}
.sd-card:hover{border-color:var(--border-glow)}
.sd-card-val{font-size:28px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.sd-card-label{font-size:11px;color:var(--text-muted);margin-top:4px;letter-spacing:.5px}

/* ── 筛选栏 ── */
.sd-filters{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;
  padding-bottom:14px;border-bottom:1px solid var(--border);
}
.sd-filter-btn{
  display:inline-flex;align-items:center;gap:4px;
  font-size:12px;padding:4px 12px;border-radius:20px;cursor:pointer;
  background:transparent;border:1px solid var(--border);color:var(--text-secondary);
  transition:all .15s;
}
.sd-filter-btn:hover{border-color:var(--accent);color:var(--accent)}
.sd-filter-btn.active{background:rgba(56,189,248,.12);border-color:var(--accent);color:var(--accent)}
.sd-filter-cnt{
  font-size:10px;min-width:16px;text-align:center;padding:0 4px;
  border-radius:8px;background:rgba(148,163,184,.12);color:var(--text-muted);
}
.sd-filter-btn.active .sd-filter-cnt{background:rgba(56,189,248,.2);color:var(--accent)}

/* ── 表格 ── */
.sd-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}
.sd-table{width:100%;border-collapse:collapse;font-size:12px}
.sd-table th{
  text-align:left;padding:8px 10px;font-weight:600;font-size:11px;
  color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;
  background:var(--bg-card-2);border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:1;white-space:nowrap;
}
.sd-table td{
  padding:7px 10px;border-bottom:1px solid rgba(148,163,184,.07);
  vertical-align:middle;
}
.sd-table tr:hover td{background:rgba(56,189,248,.03)}
.sd-table tr:last-child td{border-bottom:none}

/* 源名称 */
.sd-name{
  max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-weight:500;color:var(--text-primary);
}

/* 类型标签 */
.sd-type-badge{
  display:inline-block;font-size:10px;padding:1px 7px;border-radius:8px;
  background:rgba(148,163,184,.1);color:var(--text-secondary);border:1px solid var(--border);
  white-space:nowrap;
}

/* 状态徽章 */
.sd-status-badge{
  display:inline-block;font-size:10px;font-weight:600;
  padding:2px 8px;border-radius:8px;border:1px solid;white-space:nowrap;
}

/* 时间列 */
.sd-time{font-size:11px;color:var(--text-muted);white-space:nowrap}

/* 原因列 */
.sd-reason{
  max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:11px;color:var(--text-muted);
}

/* 动作徽章 */
.sd-action-badge{
  display:inline-block;font-size:10px;font-weight:600;
  padding:2px 8px;border-radius:8px;white-space:nowrap;
}
.sd-action-badge.sd-keep{color:#2DD4BF;background:rgba(45,212,191,.1);border:1px solid rgba(45,212,191,.25)}
.sd-action-badge.sd-watch{color:#F59E0B;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25)}
.sd-action-badge.sd-fix{color:#F97373;background:rgba(249,115,115,.1);border:1px solid rgba(249,115,115,.25)}

/* 截断提示 */
.sd-truncated{
  text-align:center;color:var(--text-muted);font-size:12px;
  padding:12px !important;background:rgba(56,189,248,.03) !important;
}

/* ── 响应式 ── */

/* ── AI 情报页 tab 栏 ── */
.ai-tab-bar{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap}
.ai-tab-btn{font-size:11px;padding:4px 10px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s;white-space:nowrap}
.ai-tab-btn:hover{border-color:var(--accent);color:var(--text)}
.ai-tab-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}

.ai-src-filter{display:flex;gap:3px;align-items:center;flex-wrap:wrap;margin-left:6px}
.ai-src-btn{font-size:10px;padding:3px 9px;border-radius:6px;border:1px solid transparent;background:rgba(148,163,184,.06);color:var(--text-muted);cursor:pointer;transition:all .18s ease;letter-spacing:.01em}
.ai-src-btn:hover{background:rgba(56,189,248,.08);color:var(--text)}
.ai-src-btn.active{background:var(--accent-dim);color:var(--accent);border-color:rgba(56,189,248,.25);font-weight:600}
.ai-merge-warn{color:#f59e0b;font-weight:500}
.ai-merge-ok{color:#34d399}
.ai-pager{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:12px}
.ai-pager--bottom{margin-top:0;padding:12px 0;border-top:1px solid var(--border);margin-bottom:4px}
.ai-page-btn{font-size:11px;padding:4px 11px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}
.ai-page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text);background:rgba(56,189,248,.05)}
.ai-page-btn:active:not(:disabled){transform:scale(.95)}
.ai-page-btn:disabled{opacity:.3;cursor:default}
.ai-page-info{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:32px;text-align:center}

.ai-intel-meta{display:flex;gap:6px;align-items:center;font-size:11px;color:#7B8794;margin-bottom:10px;flex-wrap:wrap}
.ai-intel-meta>span{white-space:nowrap}
.ai-intel-list{display:flex;flex-direction:column;gap:8px;max-height:75vh;overflow-y:auto;padding-right:2px}
.ai-intel-list::-webkit-scrollbar{width:3px}
.ai-intel-list::-webkit-scrollbar-track{background:transparent}
.ai-intel-list::-webkit-scrollbar-thumb{background:rgba(56,189,248,.12);border-radius:3px}
.ai-intel-list:hover::-webkit-scrollbar-thumb{background:rgba(56,189,248,.3)}

/* ── AI 情报卡片（升级版 v2）── */
.ai-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:inherit;transition:border-color .22s ease,box-shadow .22s ease,background .22s ease;position:relative}
.ai-card::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:transparent;transition:background .22s ease}
.ai-card.hot::before{background:rgba(248,113,113,.45)}
.ai-card.strong::before{background:rgba(251,191,36,.35)}
.ai-card:hover{border-color:var(--border-glow);box-shadow:0 2px 16px rgba(56,189,248,.07),0 0 0 1px rgba(56,189,248,.06);background:var(--bg-card-2)}
.ai-card:hover .ai-card-title{color:var(--accent)}
.ai-card:active{transform:scale(.997);box-shadow:0 1px 8px rgba(56,189,248,.05)}
.ai-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.ai-card-time-col{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:52px;flex-shrink:0;padding-top:3px}
.ai-card-dot{width:8px;height:8px;border-radius:50%;border:2px solid var(--border);background:transparent;transition:border-color .2s,background .2s}
.ai-card-dot.time-published{border-color:var(--accent);background:var(--accent)}
.ai-card-dot.time-unknown{border-color:var(--text-muted);opacity:.35}
.ai-card-dot.time-collected{border-color:var(--score-mid);background:var(--score-mid)}
.ai-card-time{font-size:10px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;text-align:center;letter-spacing:.02em}

.ai-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.ai-card-source-row{display:flex;align-items:center;gap:8px;font-size:10px}
.ai-card-source{color:#8899AE;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;letter-spacing:.01em}
.ai-card-source.aihot{color:var(--accent);font-weight:600}
.ai-card-source.official{color:#c084fc}
.ai-card-source.wechat{color:#4ade80}
.ai-card-source.public_web{color:#60a5fa}
.ai-card-source.rss{color:#a78bfa}
.ai-card-source.social{color:#38bdf8}
.ai-card-source.aggregator{color:#67e8f9}
.ai-card-source.builder{color:#fbbf24}
.ai-card-source.newsletter{color:#f472b6}
.ai-card-source.paper{color:#e879f9}
.ai-card-source.other{color:#94a3b8}
.ai-card-time-text{color:var(--text-muted);font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto}
.ai-card-time-text.time-unknown{opacity:.45;font-style:italic}

.ai-card-title{font-size:14px;font-weight:600;color:var(--text-bright);line-height:1.55;letter-spacing:-.005em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .18s ease}
.ai-card-summary,.ai-item-summary{font-size:13px;color:#8899AE;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.ai-card-tags{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:3px}
.ai-card-tag{font-size:10px;padding:2px 7px;border-radius:6px;border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;background:rgba(148,163,184,.04);transition:border-color .15s,color .15s}
.ai-card.hot .ai-card-tag:first-child{border-color:rgba(248,113,113,.25);color:#f87171}
.ai-card.strong .ai-card-tag:first-child{border-color:rgba(251,191,36,.25);color:#fbbf24}

.ai-card-score{font-size:13px;font-weight:700;min-width:36px;text-align:center;padding:5px 8px;border-radius:10px;flex-shrink:0;font-variant-numeric:tabular-nums;letter-spacing:-.02em;transition:background .18s ease}
.ai-card-score--unscored{color:var(--text-muted);background:rgba(148,163,184,.08);border:1px solid rgba(148,163,184,.15);font-size:11px;letter-spacing:0}
.ai-card-score.hot{color:#f87171;background:rgba(248,113,113,.10)}
.ai-card-score.strong{color:#fbbf24;background:rgba(251,191,36,.10)}
.ai-card-score.watch{color:#7B8794;background:rgba(148,163,184,.06)}

.ai-card-ecom{font-size:10px;padding:2px 7px;border-radius:6px;background:rgba(45,212,191,.08);color:var(--green);border:1px solid rgba(45,212,191,.18);white-space:nowrap}
/* P2: ecommerce tier badges */
.ai-card-tier{font-size:10px;padding:2px 6px;border-radius:5px;font-weight:700;white-space:nowrap;border:1px solid}
.ai-card-tier.tier-p0{color:#f87171;background:rgba(248,113,113,.10);border-color:rgba(248,113,113,.28)}
.ai-card-tier.tier-p1{color:#fbbf24;background:rgba(251,191,36,.10);border-color:rgba(251,191,36,.28)}
.ai-card-tier.tier-p2{color:#38bdf8;background:rgba(56,189,248,.08);border-color:rgba(56,189,248,.25)}
.ai-card-tier.tier-obs{color:var(--text-muted);background:rgba(148,163,184,.06);border-color:rgba(148,163,184,.18)}

/* ── P3.3: LLM overlay AI精读区 ── */
.ecom-overlay{border-top:1px solid var(--border);margin-top:8px;padding-top:7px}
.ecom-overlay-head{display:flex;align-items:center;gap:7px}
.ecom-overlay-label{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;opacity:.9}
.ecom-overlay-preview{font-size:11px;color:var(--text-muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ecom-overlay-toggle{font-size:10px;color:var(--accent);background:transparent;border:1px solid rgba(53,191,245,.22);border-radius:4px;padding:1px 7px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s,border-color .15s;line-height:1.6}
.ecom-overlay-toggle:hover{background:rgba(53,191,245,.09);border-color:rgba(53,191,245,.42)}
.ecom-overlay-body{margin-top:7px;display:flex;flex-direction:column;gap:5px;background:rgba(53,191,245,.03);border-radius:6px;padding:8px 10px;border:1px solid rgba(53,191,245,.08)}
.ecom-overlay-summary{font-size:12px;color:var(--text);line-height:1.72;margin:0 0 2px}
.ecom-overlay-row{display:flex;gap:8px;font-size:12px;color:var(--text-secondary);line-height:1.65}
.ecom-overlay-row-lbl{font-size:10px;font-weight:600;color:var(--text-muted);white-space:nowrap;padding-top:2px;min-width:44px;flex-shrink:0}
.ecom-overlay-action{color:var(--accent);font-weight:500}
.ecom-overlay-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.ecom-overlay-tag{font-size:10px;padding:1px 6px;border-radius:4px;background:rgba(53,191,245,.06);border:1px solid rgba(53,191,245,.16);color:var(--accent)}
.ecom-overlay-confidence{font-size:10px;color:var(--text-muted);margin-top:3px}
html[data-resolved-theme="light"] .ecom-overlay-body{background:rgba(14,165,200,.03);border-color:rgba(14,165,200,.09)}
html[data-resolved-theme="light"] .ecom-overlay-tag{background:rgba(14,165,200,.06);border-color:rgba(14,165,200,.18)}

/* ── 精选页情报卡片（Featured Cards）── */
.featured-hot-view{display:flex;flex-direction:column;gap:12px}
.featured-load-more{
  display:block;width:100%;padding:10px;margin-top:8px;
  background:rgba(56,189,248,.05);border:1px dashed var(--border);
  border-radius:var(--radius);color:var(--accent);font-size:12px;
  cursor:pointer;text-align:center;transition:background .15s;
}
.featured-load-more:hover{background:rgba(56,189,248,.12)}
.featured-list{display:flex;flex-direction:column;gap:10px;max-height:none;overflow:visible;padding-right:0}
.featured-list::-webkit-scrollbar{width:3px}
.featured-list::-webkit-scrollbar-track{background:transparent}
.featured-list::-webkit-scrollbar-thumb{background:rgba(56,189,248,.12);border-radius:3px}
.featured-list:hover::-webkit-scrollbar-thumb{background:rgba(56,189,248,.3)}

/* 精选页历史归档：共享 30 天历史池，不参与当前精选与 24h 热点统计 */
.featured-archive-wrap{margin-top:26px;padding-top:18px;border-top:1px solid var(--border)}
.featured-archive-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}
.featured-archive-kicker{display:inline-flex;padding:3px 8px;margin-bottom:7px;border:1px solid rgba(139,92,246,.22);border-radius:999px;background:rgba(139,92,246,.07);color:#9f8df1;font-size:10px;letter-spacing:.08em}
.featured-archive-head h3{margin:0;color:var(--text-bright);font-size:14px;font-weight:700}
.featured-archive-head p{margin:5px 0 0;color:var(--text-muted);font-size:11px}
.featured-archive-count{flex:0 0 auto;color:var(--text-muted);font-size:11px}
.featured-archive-groups{border:1px solid var(--border);border-radius:12px;background:rgba(148,163,184,.025);overflow:hidden}
.featured-archive-day+.featured-archive-day{border-top:1px solid var(--border)}
.featured-archive-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:0;background:transparent;color:var(--text);cursor:pointer;text-align:left}
.featured-archive-toggle:hover{background:rgba(139,92,246,.045)}
.featured-archive-toggle>span:first-child{display:flex;align-items:center;gap:10px}
.featured-archive-toggle strong{font-size:12px;font-weight:650;color:var(--text-bright)}
.featured-archive-toggle em{font-size:11px;font-style:normal;color:var(--text-muted)}
.featured-archive-arrow{color:#9f8df1;font-size:18px;line-height:1}
.featured-archive-body{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;background:rgba(15,23,42,.06)}
.featured-archive-body .ai-card{opacity:.9;box-shadow:none}
.featured-archive-empty{padding:18px 14px;color:var(--text-muted);font-size:11px;text-align:center}
@media(max-width:720px){
  .featured-archive-head{align-items:flex-start}
  .featured-archive-toggle{padding:11px 12px}
  .featured-archive-body{padding:8px 9px 10px}
}

.featured-card{padding:14px 16px}
.featured-card .ai-card-title{font-size:14.5px;line-height:1.6}
.featured-card .ai-card-summary{font-size:12px;line-height:1.75;-webkit-line-clamp:3}

.featured-rank{font-size:10px;color:var(--text-muted);font-weight:600;font-variant-numeric:tabular-nums;margin-left:auto;opacity:.6}

.featured-meta-row{display:flex;gap:8px;align-items:center;font-size:10px;flex-wrap:wrap;margin-top:2px}

.featured-importance{font-size:9px;padding:2px 8px;border-radius:6px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.featured-importance.hot{color:#f87171;background:rgba(248,113,113,.10);border:1px solid rgba(248,113,113,.2)}
.featured-importance.official{color:#c084fc;background:rgba(192,132,252,.08);border:1px solid rgba(192,132,252,.18)}
.featured-importance.strong{color:#fbbf24;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18)}
.featured-importance.watch{color:var(--text-muted);background:rgba(148,163,184,.06);border:1px solid var(--border)}

.featured-source-count{color:var(--text-muted);white-space:nowrap}

.featured-topic{font-size:9px;padding:2px 7px;border-radius:6px;color:var(--accent);background:rgba(56,189,248,.06);border:1px solid rgba(56,189,248,.15);white-space:nowrap}

.featured-value-hint{margin-top:6px;padding:8px 10px;border-radius:8px;background:rgba(56,189,248,.03);border:1px solid rgba(56,189,248,.08);display:flex;flex-direction:column;gap:4px;font-size:11px;line-height:1.6}
.featured-impact{color:#34d399;font-weight:500}
.featured-action{color:var(--text-muted)}

/* ── 精选页内容分类筛选栏 ── */
.featured-category-bar{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0;margin-bottom:4px;overflow-x:auto;scrollbar-width:none}
.featured-category-bar::-webkit-scrollbar{display:none}
.featured-cat-btn{font-size:11px;padding:4px 12px;border-radius:14px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .2s ease}
.featured-cat-btn:hover{border-color:var(--accent);color:var(--accent)}
.featured-cat-btn.active{background:rgba(56,189,248,.12);border-color:var(--accent);color:var(--accent);font-weight:600}

/* ── 精选卡片内容分类标签 ── */
.featured-content-type{font-size:9px;padding:2px 8px;border-radius:6px;color:#a78bfa;background:rgba(167,139,250,.08);border:1px solid rgba(167,139,250,.18);white-space:nowrap;font-weight:500}

/* ── 精选卡片分数球（含层级标签）── */
.featured-score-orb{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:42px;padding:4px 6px}
.featured-score-tier{font-size:8px;letter-spacing:.04em;opacity:.7;text-transform:uppercase;line-height:1}
.featured-score-num{font-size:14px;font-weight:700;line-height:1.2}

/* ── 精选卡片推荐理由 ── */
.featured-reason-text{color:var(--text-secondary);font-size:11px;line-height:1.5}

/* Legacy compat (kept for other code paths that may reference old classes) */
.ai-intel-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .2s}
.ai-intel-row:hover{border-color:var(--border-glow)}
.ai-intel-title{font-size:12px;color:var(--text);line-height:1.5;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-intel-source{font-size:10px;color:var(--text-muted);white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis}
.ai-intel-time{font-size:10px;color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}
.ai-intel-time.time-collected{color:var(--text-muted);opacity:.7}
.ai-intel-tag{font-size:9px;padding:1px 5px;border-radius:6px;border:1px solid;white-space:nowrap}
.ai-intel-ecom{font-size:9px;padding:1px 5px;border-radius:6px;background:rgba(45,212,191,.1);color:var(--green);border:1px solid rgba(45,212,191,.2);white-space:nowrap}

/* ── 统一时间组件 ── */
.time-block{display:inline-flex;flex-direction:column;gap:1px;font-variant-numeric:tabular-nums}
.time-primary{font-size:10px;color:var(--text-secondary)}
.time-secondary{font-size:9px;color:var(--text-muted);opacity:.7}
.time-published .time-primary{color:var(--text-secondary)}
.time-collected .time-primary{color:var(--text-muted)}
.time-effective .time-primary{color:var(--score-mid)}
.time-unknown .time-primary{color:var(--text-muted);opacity:.5}
.time-effective-upcoming{color:var(--score-mid);font-weight:600}

@media(max-width:768px){
  .sd-summary{grid-template-columns:repeat(3,1fr)}
  .sd-name{max-width:120px}
  .sd-reason{max-width:140px}
  .sd-table{font-size:11px}
  .sd-table th,.sd-table td{padding:5px 6px}
}

/* priority-score variants */
.priority-score-unit{display:block;font-size:9px;font-weight:600;line-height:1;margin-top:1px;opacity:.75}
.priority-score-pending{font-size:10px!important;font-weight:600!important;color:var(--text-muted)!important}
/* timeline items: wider right column, split into 3 rows */
.priority-timeline-item{grid-template-columns:28px minmax(0,1fr) 38px}
.priority-score-time{
  display:flex;flex-direction:column;align-items:flex-end;
  gap:1px;padding-top:1px;color:var(--text-muted);
}
.priority-score-timelabel{font-size:9px;font-weight:600;opacity:.7;line-height:1.2;white-space:nowrap}
.priority-score-date{font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;color:var(--text-secondary,var(--text-muted))}
.priority-score-hm{font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap;opacity:.8}

/* =====================================================
   FORBIDDEN TERMS CHECKER
   ===================================================== */
.forbidden-page{max-width:1040px;margin:0 auto;padding:24px 20px 40px}
.forbidden-header{margin-bottom:24px}
.forbidden-header h2{font-size:22px;font-weight:800;color:var(--text-bright);margin:4px 0 6px}
.forbidden-header-sub{font-size:13px;color:var(--text-muted);line-height:1.65;max-width:720px}
.forbidden-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px}
.forbidden-input-panel,.forbidden-result-card,.forbidden-summary-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--glow-card)
}
.forbidden-input-panel{padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.forbidden-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.forbidden-panel-head>span:first-child{font-size:14px;font-weight:700;color:var(--text-bright)}
.forbidden-panel-meta{font-size:11px;color:var(--text-muted)}
.forbidden-field{display:flex;flex-direction:column;gap:6px}
.forbidden-label{font-size:12px;font-weight:600;color:var(--text-secondary,var(--text))}
.forbidden-field select,.forbidden-field textarea{
  width:100%;box-sizing:border-box;padding:10px 12px;font-size:14px;border:1px solid var(--border);
  border-radius:10px;background:var(--bg-card-2);color:var(--text)
}
.forbidden-field textarea{resize:vertical;min-height:184px;line-height:1.7}
.forbidden-field select:focus,.forbidden-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(14,165,200,.12)}
.forbidden-actions{display:flex;gap:8px;flex-wrap:wrap}
.forbidden-btn{
  font-size:12px;font-weight:600;padding:7px 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg-card-2);color:var(--text);cursor:pointer;transition:all .15s
}
.forbidden-btn:hover{border-color:var(--accent);color:var(--accent)}
.forbidden-btn-primary{border-color:rgba(14,165,200,.3);color:var(--accent)}
.forbidden-btn-primary:hover{background:rgba(14,165,200,.08)}
.forbidden-note{font-size:11px;color:var(--text-muted);line-height:1.6;margin:0}
.forbidden-result-panel{display:flex;flex-direction:column;gap:12px}
.forbidden-summary-card{padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.forbidden-summary-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}
.forbidden-summary-value{font-size:28px;font-weight:800;color:var(--text-bright);line-height:1.2}
.forbidden-summary-note{font-size:11px;color:var(--text-muted)}
.forbidden-summary-card.is-low{border-color:rgba(45,212,191,.28);background:rgba(45,212,191,.05)}
.forbidden-summary-card.is-medium{border-color:rgba(245,158,11,.28);background:rgba(245,158,11,.06)}
.forbidden-summary-card.is-high{border-color:rgba(249,115,115,.32);background:rgba(249,115,115,.06)}
.forbidden-summary-card.is-low .forbidden-summary-value{color:var(--green)}
.forbidden-summary-card.is-medium .forbidden-summary-value{color:var(--score-mid)}
.forbidden-summary-card.is-high .forbidden-summary-value{color:var(--red)}
.forbidden-result-card{padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-height:320px}
.forbidden-result-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--text-muted)}
.forbidden-result-list{display:flex;flex-direction:column;gap:10px}
.forbidden-empty{min-height:220px;display:grid;place-content:center;gap:8px;text-align:center;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted)}
.forbidden-empty strong{color:var(--text-bright);font-size:15px}
.forbidden-hit{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card-2);display:flex;flex-direction:column;gap:8px}
.forbidden-hit.is-low{border-color:rgba(45,212,191,.2)}
.forbidden-hit.is-medium{border-color:rgba(245,158,11,.24)}
.forbidden-hit.is-high{border-color:rgba(249,115,115,.28)}
.forbidden-hit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.forbidden-hit-term{font-size:15px;font-weight:700;color:var(--text-bright)}
.forbidden-hit-risk{font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;border:1px solid currentColor}
.forbidden-hit-risk.is-low{color:var(--green)}
.forbidden-hit-risk.is-medium{color:var(--score-mid)}
.forbidden-hit-risk.is-high{color:var(--red)}
.forbidden-hit-meta{display:flex;gap:6px;flex-wrap:wrap}
.forbidden-hit-meta span{padding:3px 7px;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:11px}
.forbidden-hit-copy{font-size:12px;line-height:1.7;color:var(--text-secondary)}
.forbidden-hit-copy strong{display:block;margin-bottom:3px;color:var(--text-bright);font-size:11px}
.forbidden-clean-state{padding:14px;border-radius:12px;border:1px solid rgba(45,212,191,.24);background:rgba(45,212,191,.05);color:var(--text)}
.forbidden-clean-state strong{display:block;margin-bottom:4px;color:var(--green)}
html[data-resolved-theme="light"] .forbidden-input-panel,
html[data-resolved-theme="light"] .forbidden-result-card,
html[data-resolved-theme="light"] .forbidden-summary-card{box-shadow:var(--shadow-card)}
html[data-resolved-theme="light"] .forbidden-field select,
html[data-resolved-theme="light"] .forbidden-field textarea,
html[data-resolved-theme="light"] .forbidden-btn{background:#fff;border-color:#dfe7ef}
@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .forbidden-input-panel,
  html:not([data-theme="dark"]) .forbidden-result-card,
  html:not([data-theme="dark"]) .forbidden-summary-card{box-shadow:var(--shadow-card)}
  html:not([data-theme="dark"]) .forbidden-field select,
  html:not([data-theme="dark"]) .forbidden-field textarea,
  html:not([data-theme="dark"]) .forbidden-btn{background:#fff;border-color:#dfe7ef}
}
@media(max-width:760px){
  .forbidden-layout{grid-template-columns:1fr}
}

/* =====================================================
   ROI CALCULATOR
   ===================================================== */
.roi-page{max-width:960px;margin:0 auto;padding:24px 20px 40px}
.roi-header{margin-bottom:24px}
.roi-header h2{font-size:22px;font-weight:800;color:var(--text-bright);margin:4px 0 6px}
.roi-header-sub{font-size:13px;color:var(--text-muted);line-height:1.5}
.roi-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;margin-bottom:28px}

/* Input panel */
.roi-input-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--glow-card)}
.roi-input-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.roi-input-head > span{font-size:14px;font-weight:700;color:var(--text-bright)}
.roi-input-actions{display:flex;gap:8px}
.roi-btn{font-size:11px;font-weight:600;padding:5px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card-2);color:var(--text);cursor:pointer;transition:all .15s}
.roi-btn:hover{border-color:var(--accent);color:var(--accent)}
.roi-btn-demo{border-color:rgba(14,165,200,.3);color:var(--accent)}
.roi-btn-demo:hover{background:rgba(14,165,200,.08)}

.roi-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.roi-field{display:flex;flex-direction:column;gap:3px}
.roi-field-wide{grid-column:1/-1}
.roi-label{font-size:12px;font-weight:600;color:var(--text-secondary,var(--text))}
.roi-hint{font-size:10px;color:var(--text-muted);line-height:1.3}
.roi-field input{
  width:100%;box-sizing:border-box;padding:8px 10px;font-size:14px;font-weight:600;
  border:1px solid var(--border);border-radius:8px;background:var(--bg-card-2);
  color:var(--text-bright);outline:none;transition:border-color .15s;
  -moz-appearance:textfield;
}
.roi-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(14,165,200,.12)}
.roi-field input::-webkit-inner-spin-button,.roi-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Result panel */
.roi-result-panel{display:flex;flex-direction:column;gap:10px}
.roi-result-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--glow-card);
}
.roi-result-primary{border-color:var(--accent);border-width:1.5px}
.roi-result-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}
.roi-result-value{font-size:26px;font-weight:800;color:var(--text-bright);line-height:1.2}
.roi-result-primary .roi-result-value{color:var(--accent)}
.roi-result-unit{font-size:11px;color:var(--text-muted)}
.roi-result-note{font-size:10px;color:var(--text-muted);line-height:1.3}

/* Verdict */
.roi-verdict{
  margin-top:4px;padding:14px 16px;border-radius:var(--radius);
  background:var(--bg-card-2);border:1px solid var(--border);
  display:flex;align-items:flex-start;gap:10px;
}
.roi-verdict-icon{font-size:18px;flex-shrink:0;line-height:1.3}
.roi-verdict-text{font-size:13px;font-weight:600;line-height:1.5;color:var(--text)}
.roi-verdict-ok{border-color:rgba(45,212,191,.3);background:rgba(45,212,191,.06)}
.roi-verdict-ok .roi-verdict-text{color:var(--green)}
.roi-verdict-danger{border-color:rgba(249,115,115,.3);background:rgba(249,115,115,.06)}
.roi-verdict-danger .roi-verdict-text{color:var(--red)}
.roi-verdict-warn{border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.06)}
.roi-verdict-warn .roi-verdict-text{color:var(--score-mid)}

/* Footer: formulas + risk */
.roi-footer{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.roi-formula-block,.roi-risk-block{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 18px;box-shadow:var(--glow-card);
}
.roi-formula-block h3,.roi-risk-block h3{font-size:13px;font-weight:700;color:var(--text-bright);margin:0 0 10px}
.roi-formula-grid{display:flex;flex-direction:column;gap:6px}
.roi-formula-grid div{font-size:12px;color:var(--text);line-height:1.5}
.roi-formula-grid strong{color:var(--text-bright);font-weight:700}
.roi-risk-block p{font-size:12px;color:var(--text-muted);line-height:1.6;margin:0}

/* Light mode */
html[data-resolved-theme="light"] .roi-input-panel,
html[data-resolved-theme="light"] .roi-result-card,
html[data-resolved-theme="light"] .roi-formula-block,
html[data-resolved-theme="light"] .roi-risk-block{box-shadow:var(--shadow-card)}
html[data-resolved-theme="light"] .roi-btn{background:#fff;border-color:#dfe7ef}
html[data-resolved-theme="light"] .roi-field input{background:#f8fafc}
@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .roi-input-panel,
  html:not([data-theme="dark"]) .roi-result-card,
  html:not([data-theme="dark"]) .roi-formula-block,
  html:not([data-theme="dark"]) .roi-risk-block{box-shadow:var(--shadow-card)}
  html:not([data-theme="dark"]) .roi-btn{background:#fff;border-color:#dfe7ef}
  html:not([data-theme="dark"]) .roi-field input{background:#f8fafc}
}

/* Responsive */
@media(max-width:760px){
  .roi-body{grid-template-columns:1fr}
  .roi-footer{grid-template-columns:1fr}
}

/* =====================================================
   经营画像 + 规则速读卡 — Phase 1
   ===================================================== */

/* ── Topbar chip ── */
.op-profile-chip{
  display:inline-flex;align-items:center;gap:4px;
  height:32px;box-sizing:border-box;
  padding:0 11px;border-radius:14px;
  background:var(--accent-dim);border:1px solid var(--border-glow);
  color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;
  white-space:nowrap;transition:background .15s,border-color .15s;
  max-width:220px;overflow:hidden;
}
#opProfileChipLabel{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.op-profile-chip:hover{background:rgba(53,191,245,.18);border-color:var(--accent)}
.op-profile-chip-icon{font-size:13px}
html[data-resolved-theme="light"] .op-profile-chip{
  background:#e7f8fc;border-color:rgba(14,165,200,.3);color:#0ea5c8
}

/* ── Profile drawer ── */
.op-profile-drawer{
  position:fixed;right:0;top:0;bottom:0;width:min(480px,92vw);
  background:var(--bg-card);border-left:1px solid var(--border);
  z-index:900;transform:translateX(100%);
  transition:transform .25s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;display:flex;flex-direction:column;
  box-shadow:-4px 0 24px rgba(0,0,0,.3);
}
.op-profile-drawer[hidden]{display:none!important}
.op-profile-drawer.is-open{transform:translateX(0)}
.op-profile-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:899;cursor:pointer
}
.op-profile-backdrop[hidden]{display:none!important}
@media(max-width:600px){
  .op-profile-drawer{width:100vw;top:auto;height:90vh;transform:translateY(100%)}
  .op-profile-drawer.is-open{transform:translateY(0)}
}

/* ── Profile panel content ── */
.op-profile-panel{padding:24px 20px;display:flex;flex-direction:column;gap:20px;flex:1}
.op-profile-header{border-bottom:1px solid var(--border);padding-bottom:16px}
.op-profile-title{font-size:18px;font-weight:700;color:var(--text-bright);margin:0 0 4px}
.op-profile-desc{font-size:13px;color:var(--text-muted);margin:0}
.op-profile-privacy{font-size:11px;color:var(--text-muted);opacity:.7;margin:6px 0 0;line-height:1.5;border-left:2px solid var(--border);padding-left:8px}
.op-field-group{display:flex;flex-direction:column;gap:8px}
.op-field-label{font-size:13px;font-weight:600;color:var(--text-bright)}
.op-field-hint{font-size:11px;color:var(--text-muted);font-weight:400}
.op-chip-group{display:flex;flex-wrap:wrap;gap:7px}
.op-chip{
  padding:5px 12px;border-radius:16px;font-size:12px;font-weight:500;cursor:pointer;
  background:var(--bg-card-2);border:1px solid var(--border);color:var(--text);
  transition:background .12s,border-color .12s,color .12s;line-height:1.4;
}
.op-chip:hover{border-color:var(--accent);color:var(--accent)}
.op-chip.is-active{
  background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600
}
.op-profile-actions{display:flex;gap:10px;margin-top:8px;padding-top:16px;border-top:1px solid var(--border)}
.op-save-btn{
  flex:1;padding:9px 0;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;
  background:var(--accent);border:none;color:#fff;transition:opacity .15s
}
.op-save-btn:hover{opacity:.88}
.op-clear-btn{
  padding:9px 16px;border-radius:8px;font-size:13px;cursor:pointer;
  background:transparent;border:1px solid var(--border);color:var(--text-muted);
  transition:border-color .12s,color .12s
}
.op-clear-btn:hover{border-color:var(--red);color:var(--red)}

/* ── Rule brief card (in news stream) ── */
.rule-brief-card{
  margin-top:8px;padding:8px 10px;border-radius:7px;
  background:var(--bg-card-2);border:1px solid var(--border);
  display:flex;flex-direction:column;gap:5px;
}
.rule-brief-top{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.rule-brief-platforms{font-size:11px;color:var(--text-muted)}
.rule-brief-action{font-size:12px;color:var(--text-secondary);line-height:1.45}
.rule-brief-why{font-size:11px;color:var(--text-muted);line-height:1.4}
.rule-brief-impact{font-size:11px;color:var(--text-secondary);line-height:1.45;margin-top:3px}
.rule-brief-consequence{font-size:11px;color:var(--red);opacity:.72;line-height:1.4;margin-top:2px}
.rule-type-tag{font-size:10px;padding:1px 5px;border-radius:3px;background:var(--bg-alt);color:var(--text-secondary);border:1px solid var(--border)}

/* ── Promo Risk Calculator — redesigned layout ── */
.promo-page{max-width:960px;margin:0 auto;padding:24px 20px 40px}
.promo-page-hdr{margin-bottom:20px}
.promo-page-hdr h2{font-size:22px;font-weight:800;color:var(--text-bright);margin:4px 0 6px}
.promo-vs-roi-note{
  font-size:12px;color:var(--text-secondary);line-height:1.5;
  padding:8px 12px;margin-top:10px;
  border-radius:7px;border-left:3px solid var(--accent);
  background:rgba(53,191,245,.06)
}
.promo-tool-wrap{display:flex;flex-direction:column;gap:14px}

/* Input panel */
.promo-input-section{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--glow-card)
}
.promo-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.promo-section-head > span{font-size:14px;font-weight:700;color:var(--text-bright)}
.promo-input-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.promo-col-group{display:flex;flex-direction:column;gap:10px}
.promo-col-label{
  font-size:10.5px;font-weight:700;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.06em;
  padding-bottom:7px;border-bottom:1px solid var(--border)
}
.promo-field{display:flex;flex-direction:column;gap:3px}
.promo-field-label{font-size:11.5px;font-weight:600;color:var(--text-secondary)}
.promo-input{
  width:100%;box-sizing:border-box;
  background:var(--bg-card-2);border:1px solid var(--border);
  border-radius:6px;padding:6px 9px;
  font-size:13px;color:var(--text-bright);font-family:inherit;
  transition:border-color .15s, box-shadow .15s;outline:none
}
.promo-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(53,191,245,.12)}
.promo-input::-webkit-inner-spin-button,.promo-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.promo-cta-row{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}
.promo-calc-btn{
  font-size:13px;font-weight:700;padding:8px 22px;border-radius:8px;
  border:none;background:var(--accent);color:#021020;
  cursor:pointer;transition:opacity .15s;letter-spacing:.01em
}
.promo-calc-btn:hover{opacity:.88}

/* Compat: old roi-calc-btn in legacy HTML */
.roi-calc-btn{
  font-size:13px;font-weight:700;padding:8px 22px;border-radius:8px;
  border:none;background:var(--accent);color:#021020;
  cursor:pointer;transition:opacity .15s;margin-top:14px;display:block
}
.roi-calc-btn:hover{opacity:.88}

/* Result panel */
.promo-result-section{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--glow-card)
}
.promo-risk-badge{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;border-radius:10px;margin-bottom:16px;
  font-size:15px;font-weight:700;line-height:1.2
}
.promo-risk-badge--high{background:rgba(249,115,115,.1);color:var(--red);border:1px solid rgba(249,115,115,.25)}
.promo-risk-badge--medium{background:rgba(245,158,11,.1);color:#f59e0b;border:1px solid rgba(245,158,11,.22)}
.promo-risk-badge--low{background:rgba(45,212,191,.1);color:var(--green);border:1px solid rgba(45,212,191,.22)}
.promo-risk-badge-icon{font-size:18px;line-height:1}

.promo-metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.promo-metric-card{background:var(--bg-card-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}
.promo-metric-label{font-size:11px;color:var(--text-muted);margin-bottom:4px;font-weight:500}
.promo-metric-value{font-size:18px;font-weight:800;color:var(--text-bright);line-height:1.2}
.promo-metric--ok .promo-metric-value{color:var(--green)}
.promo-metric--warn .promo-metric-value{color:var(--red)}
.promo-metric--neutral .promo-metric-value{color:var(--text)}

.promo-actions-block{
  background:var(--bg-card-2);border:1px solid var(--border);
  border-radius:8px;padding:12px 14px;margin-bottom:10px
}
.promo-actions-title{font-size:12px;font-weight:700;color:var(--text-bright);margin-bottom:8px}
.promo-actions-list{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:5px}
.promo-actions-list li{font-size:12px;color:var(--text);line-height:1.5}
.promo-crosslink-row{display:flex;align-items:center;gap:10px;margin:10px 0 6px;flex-wrap:wrap}
.promo-crosslink-btn{
  font-size:12px;font-weight:600;padding:6px 14px;border-radius:7px;cursor:pointer;
  background:transparent;border:1px solid var(--accent);color:var(--accent);
  transition:background .14s,color .14s;white-space:nowrap
}
.promo-crosslink-btn:hover{background:var(--accent);color:#021020}
.promo-crosslink-hint{font-size:11px;color:var(--text-muted);line-height:1.45}
.promo-disclaimer{font-size:11px;color:var(--text-muted);text-align:center;margin:0;line-height:1.6}

/* Legacy compat */
.promo-risk-level{font-size:15px;font-weight:700;padding:10px 14px;border-radius:8px;margin-bottom:12px}
.promo-risk--high{background:var(--red-dim);color:var(--red)}
.promo-risk--medium{background:rgba(245,158,11,.12);color:#d97706}
.promo-risk--low{background:rgba(34,197,94,.1);color:#16a34a}
.promo-action-hint{font-size:12px;color:var(--text-secondary);line-height:1.5;margin-top:10px;padding:10px 12px;border-radius:6px;background:var(--bg-card-2)}

@media(max-width:640px){
  .promo-input-cols{grid-template-columns:1fr}
  .promo-metrics-grid{grid-template-columns:repeat(2,1fr)}
}

/* ── Operation Calendar ── */
.op-calendar-wrap{margin:8px 16px 4px}
.op-cal-summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.op-cal-header{display:flex;align-items:center;gap:6px}
.op-cal-title{font-size:13px;font-weight:600;color:var(--text)}
.op-cal-summary{font-size:12px;color:var(--text-secondary);flex:1}
/* Calendar Drawer — time-grouped sections */
.cal-date-group{margin-bottom:18px}
.cal-date-group:last-child{margin-bottom:0}
.cal-date-group-label{
  display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:700;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px
}
.cal-date-group-label::after{content:'';flex:1;height:1px;background:var(--border)}
.cal-date-group--past{opacity:.68}
.cal-date-group--past .cal-date-group-label{color:var(--text-muted)}
.cal-date-group--past .cal-event-card{border-color:rgba(255,255,255,.06);box-shadow:none}
.cal-date-group--past .cal-event-card.cal-risk--high{border-left-color:rgba(249,115,115,.35)}
.cal-date-group--past .cal-event-card.cal-risk--medium{border-left-color:rgba(245,158,11,.3)}
.cal-date-group-hint{font-size:11px;color:var(--text-muted);margin:-2px 0 10px;line-height:1.5;font-style:italic}
.cal-drawer-empty-block--has-past .cal-drawer-empty-sub{color:var(--text-muted)}
/* Calendar event card */
.cal-event-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:8px}
.cal-event-card.cal-risk--high{border-left:3px solid var(--red)}
.cal-event-card.cal-risk--medium{border-left:3px solid #f59e0b}
.cal-event-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.cal-event-date{font-size:11px;font-weight:700;color:var(--text-secondary);font-variant-numeric:tabular-nums}
.cal-event-rel-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;line-height:1.5}
.cal-rel--match{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.cal-rel--watch{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}
.cal-event-type{font-size:10px;padding:1px 5px;border-radius:3px;background:var(--bg-alt);color:var(--text-muted);border:1px solid var(--border)}
.cal-event-title{font-size:13px;color:var(--text);line-height:1.4;margin-bottom:4px}
.cal-event-title a{color:inherit;text-decoration:none}
.cal-event-title a:hover{text-decoration:underline}
.rule-risk-tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px}
.rule-risk--high{background:var(--red-dim);color:var(--red)}
.rule-risk--medium{background:rgba(245,158,11,.1);color:#f59e0b}

/* ── Relevance badges ── */
.rule-rel-badge{
  display:inline-block;font-size:10px;font-weight:700;
  padding:1px 7px;border-radius:4px;white-space:nowrap;vertical-align:middle;cursor:default
}
.rule-rel--match  {background:rgba(45,212,191,.15);color:#2dd4bf}
.rule-rel--watch  {background:rgba(245,158,11,.12);color:#f59e0b}
.rule-rel--skip   {background:rgba(107,122,143,.12);color:var(--text-muted)}
.rule-rel--generic{background:var(--blue-dim);color:var(--blue)}
html[data-resolved-theme="light"] .rule-rel--match  {background:rgba(13,148,136,.1);color:#0d9488}
html[data-resolved-theme="light"] .rule-rel--watch  {background:rgba(217,119,6,.1);color:#d97706}
html[data-resolved-theme="light"] .rule-rel--skip   {background:#f1f5f9;color:#64748b}
html[data-resolved-theme="light"] .rule-rel--generic{background:#e7f8fc;color:#0ea5c8}

/* ── Rule hint banner ── */
.rule-hint-banner{
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;border-radius:8px;margin-bottom:12px;
  background:var(--blue-dim);border:1px solid var(--border-glow);
  font-size:12px;color:var(--text-secondary);
}
.rule-hint-link{
  background:none;border:none;padding:0;cursor:pointer;
  color:var(--accent);font-weight:600;font-size:12px;text-decoration:underline;
}
.rule-hint-link:hover{opacity:.8}

/* ── Drawer close button strip ── */
.op-drawer-close-strip{
  display:flex;justify-content:flex-end;
  padding:10px 14px 0;position:sticky;top:0;
  background:var(--bg-card);z-index:2;
}
.op-drawer-close-btn{
  width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-card-2);
  color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,color .12s;
}
.op-drawer-close-btn:hover{background:var(--red-dim);color:var(--red)}

/* Chip active (profile set) state */
.op-profile-chip.is-set{
  background:rgba(53,191,245,.15);border-color:var(--accent);
  max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
html[data-resolved-theme="light"] .op-profile-chip.is-set{
  background:rgba(14,165,200,.12);border-color:#0ea5c8
}

/* ── 运营工作台 nav link active state handled by generic .nav-link.active ── */

/* ── 运营工作台 chip (legacy, kept for CSS safety) ── */
.workbench-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 12px;border-radius:20px;
  background:var(--bg-card-2);border:1px solid var(--border);
  color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;
  white-space:nowrap;transition:background .15s,border-color .15s,color .15s;
  line-height:1.4;
}
.workbench-chip:hover{
  background:rgba(53,191,245,.12);border-color:var(--accent);color:var(--accent)
}
html[data-resolved-theme="light"] .workbench-chip{
  background:var(--bg-card);border-color:var(--border);color:var(--text-secondary)
}
html[data-resolved-theme="light"] .workbench-chip:hover{
  background:rgba(14,165,200,.1);border-color:#0ea5c8;color:#0ea5c8
}
.workbench-chip-icon{
  width:14px;height:14px;flex-shrink:0;opacity:.85
}
.workbench-chip-label{flex:1 1 auto}
.workbench-chip.has-actions{
  background:rgba(53,191,245,.1);border-color:rgba(53,191,245,.5);color:var(--accent)
}

/* =====================================================
   今日行动清单 — P1
   ===================================================== */

.today-action-wrap{margin:0 0 20px;padding:0}

.al-header{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  margin-bottom:14px;flex-wrap:wrap;
}
.al-title-row{display:flex;flex-direction:column;gap:3px}
.al-module-title{font-size:17px;font-weight:700;color:var(--text-bright);margin:0}
.al-module-sub{font-size:12px;color:var(--text-muted);margin:0}
.al-controls{display:flex;gap:8px;align-items:center;padding-top:2px}
.al-hide-done-btn{
  font-size:11px;padding:4px 10px;border-radius:14px;cursor:pointer;
  background:transparent;border:1px solid var(--border);color:var(--text-muted);
  transition:border-color .12s,color .12s;line-height:1.4;
}
.al-hide-done-btn:hover,.al-hide-done-btn.is-active{border-color:var(--accent);color:var(--accent)}

.al-list{display:flex;flex-direction:column;gap:10px}

.al-item{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:13px 15px;
  display:flex;flex-direction:column;gap:7px;
  transition:border-color .15s,opacity .15s;
}
.al-item--match{border-left:3px solid var(--accent)}
.al-item--watch{border-left:3px solid #f59e0b}
.al-item--done{opacity:.5}

.al-item-hdr{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.al-priority-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap}
.al-tag--match{background:rgba(53,191,245,.15);color:var(--accent)}
.al-tag--watch{background:rgba(245,158,11,.12);color:#f59e0b}
.al-platforms{font-size:11px;color:var(--text-secondary)}
.al-time{font-size:11px;color:var(--text-muted)}
.al-risk-tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px}
.al-risk--high{background:var(--red-dim);color:var(--red)}
.al-risk--medium{background:rgba(245,158,11,.1);color:#f59e0b}

.al-title{font-size:13px;font-weight:600;color:var(--text-bright);line-height:1.45;text-decoration:none;display:block}
.al-title:hover{color:var(--accent)}
.al-title.is-unlinked{cursor:default}

.al-action{font-size:12px;color:var(--text-secondary);line-height:1.5}
.al-affected{font-size:11px;color:var(--text-muted);line-height:1.4}
.al-reasons{font-size:11px;color:var(--text-muted);line-height:1.4}

.al-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:2px}
.al-readmore{font-size:11px;color:var(--accent);text-decoration:none;transition:opacity .12s}
.al-readmore:hover{opacity:.75}
.al-done-btn{
  font-size:11px;padding:3px 10px;border-radius:12px;cursor:pointer;
  background:transparent;border:1px solid var(--border);color:var(--text-muted);
  transition:border-color .12s,color .12s,background .12s;line-height:1.4;
}
.al-done-btn:hover{border-color:var(--green);color:var(--green)}
.al-done-btn.is-done{background:rgba(45,212,191,.1);border-color:var(--green);color:var(--green)}
.al-done-label{font-size:11px;color:var(--green);font-weight:600}

.al-load-more-btn{
  width:100%;margin-top:8px;padding:9px 0;border-radius:8px;cursor:pointer;
  background:transparent;border:1px solid var(--border);color:var(--text-muted);
  font-size:12px;transition:border-color .12s,color .12s;
}
.al-load-more-btn:hover{border-color:var(--accent);color:var(--accent)}

.al-no-profile-hint{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:11px 15px;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  font-size:12px;color:var(--text-muted);
}
.al-go-set-btn{
  padding:4px 12px;border-radius:14px;cursor:pointer;
  background:var(--accent-dim);border:1px solid var(--border-glow);
  color:var(--accent);font-size:12px;font-weight:600;line-height:1.4;
}
.al-go-set-btn:hover{background:rgba(53,191,245,.2)}

html[data-resolved-theme="light"] .al-tag--match{background:rgba(14,165,200,.1);color:#0ea5c8}
html[data-resolved-theme="light"] .al-done-btn.is-done{background:rgba(13,148,136,.08);border-color:#0d9488;color:#0d9488}
html[data-resolved-theme="light"] .al-item{box-shadow:var(--shadow-card)}

/* ── P1.1: Summary card (homepage entry) ── */
.al-summary-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:10px;
  padding:14px 16px;display:flex;flex-direction:column;gap:10px
}
.al-summary-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.al-summary-title{font-size:15px;font-weight:700;color:var(--text-bright)}
.al-collapse-btn,.al-expand-btn{
  background:none;border:1px solid var(--border);color:var(--text-muted);
  font-size:11px;padding:2px 9px;border-radius:4px;cursor:pointer;white-space:nowrap;
  transition:border-color .12s,color .12s
}
.al-collapse-btn:hover,.al-expand-btn:hover{border-color:var(--accent);color:var(--accent)}
.al-summary-chips{display:flex;gap:6px;flex-wrap:wrap}
.al-summary-chip{
  background:var(--accent-dim);color:var(--accent);
  border:1px solid transparent;font-size:11px;padding:3px 10px;border-radius:999px;
  cursor:pointer;transition:background .12s,border-color .12s
}
.al-summary-chip:hover{border-color:var(--accent)}
.al-summary-body{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.al-summary-stats-text{font-size:13px;color:var(--text-secondary);flex:1;margin:0}
.al-view-btn{
  background:var(--accent);color:#fff;border:none;
  font-size:12px;font-weight:600;padding:5px 14px;border-radius:6px;cursor:pointer;
  white-space:nowrap;transition:opacity .12s
}
.al-view-btn:hover{opacity:.82}

/* ── P1.1: Mini entry (collapsed state) ── */
.al-mini-entry{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--bg-card);border:1px solid var(--border);border-radius:8px;
  padding:8px 14px
}
.al-mini-text{font-size:12px;color:var(--text-secondary)}

/* ── P1.1: Action list drawer ── */
.al-drawer{
  position:fixed;right:0;top:0;bottom:0;width:min(520px,92vw);
  background:var(--bg-card);border-left:1px solid var(--border);
  z-index:900;transform:translateX(100%);
  transition:transform .25s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;display:flex;flex-direction:column;
  box-shadow:-4px 0 24px rgba(0,0,0,.3)
}
.al-drawer[hidden]{display:none!important}
.al-drawer.is-open{transform:translateX(0)}
.al-drawer-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:899;cursor:pointer
}
.al-drawer-backdrop[hidden]{display:none!important}
@media(max-width:600px){
  .al-drawer{width:100vw;top:auto;height:92vh;transform:translateY(100%)}
  .al-drawer.is-open{transform:translateY(0)}
}
.al-drawer-close-strip{display:flex;justify-content:flex-end;padding:10px 12px 0}
.al-drawer-close-btn{
  width:28px;height:28px;border:none;background:transparent;
  color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;
  border-radius:4px;display:grid;place-content:center
}
.al-drawer-close-btn:hover{background:var(--red-dim);color:var(--red)}
.al-drawer-inner{padding:0 16px 32px;display:flex;flex-direction:column;gap:14px}
.al-drawer-header{padding:2px 0}
.al-drawer-title{font-size:17px;font-weight:700;color:var(--text-bright);margin:0}
.al-drawer-tabs{
  display:flex;gap:6px;flex-wrap:wrap;
  border-bottom:1px solid var(--border);padding-bottom:10px
}
.al-drawer-tab{
  background:none;border:1px solid var(--border);color:var(--text-muted);
  font-size:11px;padding:4px 12px;border-radius:999px;cursor:pointer;
  transition:border-color .12s,color .12s,background .12s
}
.al-drawer-tab:hover{border-color:var(--accent);color:var(--accent)}
.al-drawer-tab.is-active{
  background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600
}
.al-drawer-content{display:flex;flex-direction:column;gap:14px}
.al-drawer-empty{
  font-size:13px;color:var(--text-muted);padding:24px 0;text-align:center;margin:0
}

/* ── P1.1: Grouped sections ── */
.al-section{display:flex;flex-direction:column;gap:8px}
.al-section-title{
  font-size:11px;font-weight:700;color:var(--text-bright);
  text-transform:uppercase;letter-spacing:.05em;margin:0
}
.al-section-hint{
  font-size:11px;color:var(--text-muted);margin:0;padding:6px 10px;
  background:rgba(245,158,11,.07);border-radius:5px;border-left:2px solid #f59e0b
}
.al-done-section{margin-top:4px}
.al-done-section-toggle{
  background:none;border:none;color:var(--text-muted);font-size:12px;
  font-weight:600;cursor:pointer;padding:4px 0;text-align:left;
  transition:color .12s
}
.al-done-section-toggle:hover{color:var(--text-bright)}
.al-done-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}

/* ── P1.1: Expiring item tag ── */
.al-expiring-tag{
  font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;
  background:rgba(245,158,11,.15);color:#f59e0b;white-space:nowrap
}
.al-item--expiring{border-left-color:#f59e0b!important}

/* P1.1 light theme overrides */
html[data-resolved-theme="light"] .al-summary-chip{background:rgba(14,165,200,.1);color:#0ea5c8}
html[data-resolved-theme="light"] .al-summary-card,
html[data-resolved-theme="light"] .al-mini-entry{box-shadow:var(--shadow-card)}
html[data-resolved-theme="light"] .al-view-btn{background:#0ea5c8}
html[data-resolved-theme="light"] .al-drawer-tab.is-active{background:#0ea5c8;border-color:#0ea5c8}

/* ── KPI trend semantic colors ─────────────────────────────────────────────── */
/* Default (inverse): up=risk/bad=red, down=good=green — for 平台规则 */
/* .delta-up / .delta-down already defined above */

/* Positive: health/quality going up = green */
.stat-trend.delta-up-positive{color:var(--green);background:color-mix(in srgb,var(--green) 11%,transparent)}
.stat-trend.delta-down-positive{color:var(--red);background:color-mix(in srgb,var(--red) 11%,transparent)}
/* Neutral: signal/source count — neither good nor bad */
.stat-trend.delta-up-neutral,.stat-trend.delta-down-neutral{
  color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,transparent)
}

/* ── Promo risk source explanation ─────────────────────────────────────────── */
.promo-risk-source{
  border-radius:8px;padding:10px 14px;margin-bottom:12px;
  font-size:12px;line-height:1.6;
}
.promo-risk-source--high{background:rgba(249,115,115,.07);border:1px solid rgba(249,115,115,.18)}
.promo-risk-source--medium{background:rgba(245,158,11,.07);border:1px solid rgba(245,158,11,.18)}
.promo-risk-source--low{background:rgba(45,212,191,.06);border:1px solid rgba(45,212,191,.16)}
.promo-risk-source-title{
  font-size:10px;font-weight:700;color:var(--text-muted);
  letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px
}
.promo-risk-source-list{margin:0;padding-left:14px;color:var(--text)}
.promo-risk-source-list li{margin-bottom:2px}
.promo-risk-source-ok{color:var(--text-muted);font-style:normal;list-style:none;padding-left:0}

/* ── Topbar responsive no-wrap breakpoints ──────────────────────────────────── */
@media(max-width:1140px){
  .topbar-user-info{display:none}
  .topbar-ai-btn-text{display:none}
  .topbar-ai-btn{padding:5px 8px}
}
@media(max-width:960px){
  #opProfileChipLabel{display:none}
  .op-profile-chip{padding:0 8px}
  .topbar{gap:8px;padding:0 12px}
}

/* ── Calendar drawer empty state ───────────────────────────────────────────── */
.cal-drawer-empty-block{text-align:center;padding:32px 20px}
.cal-drawer-empty-title{font-size:14px;font-weight:700;color:var(--text);margin:0 0 6px}
.cal-drawer-empty-sub{font-size:12px;color:var(--text-muted);margin:0}

/* ── Promo page light theme ─────────────────────────────────────────────────── */
html[data-resolved-theme="light"] .promo-input-section,
html[data-resolved-theme="light"] .promo-result-section,
html[data-resolved-theme="light"] .promo-metric-card,
html[data-resolved-theme="light"] .promo-actions-block{box-shadow:var(--shadow-card)}
html[data-resolved-theme="light"] .promo-input{background:#f8fafc}

@media(prefers-color-scheme:light){
  html:not([data-theme="dark"]) .promo-input-section,
  html:not([data-theme="dark"]) .promo-result-section,
  html:not([data-theme="dark"]) .promo-metric-card,
  html:not([data-theme="dark"]) .promo-actions-block{box-shadow:var(--shadow-card)}
  html:not([data-theme="dark"]) .promo-input{background:#f8fafc}
}

/* =====================================================
   运营工作台 Drawer (wb-*)
   ===================================================== */
/* Inherits .al-drawer slide-in mechanics; wb-drawer overrides width and adds inner layout */
.wb-drawer{display:flex;flex-direction:column;width:min(720px,92vw)}


.wb-drawer-header{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:14px 16px 10px;border-bottom:1px solid var(--border);
  position:sticky;top:0;background:var(--bg-card);z-index:2;
}
.wb-drawer-title{
  font-size:16px;font-weight:700;color:var(--text-bright);margin:0;
}

/* tab strip */
.wb-tabs{
  display:flex;gap:0;border-bottom:2px solid var(--border);
  margin:0;padding:0;
}
.wb-tab{
  flex:1;padding:9px 0;font-size:13px;font-weight:500;
  background:none;border:none;color:var(--text-muted);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-2px;
  transition:color .15s,border-color .15s;white-space:nowrap;
}
.wb-tab:hover{color:var(--text)}
.wb-tab.is-active{
  color:var(--accent);font-weight:700;border-bottom-color:var(--accent);
}
html[data-resolved-theme="light"] .wb-tab.is-active{color:#0ea5c8;border-bottom-color:#0ea5c8}

/* scrollable content area */
.wb-content-area{
  flex:1;overflow-y:auto;padding:14px 16px 32px;
  display:flex;flex-direction:column;gap:12px;
}

/* empty states */
.wb-tab-empty{
  text-align:center;padding:40px 20px;
  font-size:13px;color:var(--text-muted);
}
.wb-tab-empty-icon{font-size:28px;margin-bottom:8px}
.wb-tab-empty-msg{font-size:13px;font-weight:600;color:var(--text);margin:0 0 4px}
.wb-tab-empty-hint{font-size:12px;color:var(--text-muted);margin:0}

/* promo result summary */
.wb-promo-empty{text-align:center;padding:36px 20px}
.wb-promo-empty-icon{font-size:28px;margin-bottom:8px}
.wb-promo-empty-msg{font-size:13px;font-weight:600;color:var(--text);margin:0 0 4px}
.wb-promo-empty-hint{font-size:12px;color:var(--text-muted);margin:0 0 16px}
.wb-promo-go-btn{
  font-size:12px;padding:6px 16px;border-radius:8px;cursor:pointer;
  background:rgba(53,191,245,.12);border:1px solid var(--accent);color:var(--accent);
  transition:background .15s;
}
.wb-promo-go-btn:hover{background:rgba(53,191,245,.22)}

.wb-promo-summary{
  background:var(--bg-card-2);border:1px solid var(--border);
  border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;
}
.wb-promo-meta{
  display:flex;align-items:center;justify-content:space-between;
  font-size:12px;color:var(--text-muted);
}
.wb-promo-meta-label{font-weight:600;color:var(--text)}
.wb-promo-risk-badge{
  font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;
}
.wb-promo-risk-badge.risk-low{background:rgba(52,211,153,.15);color:#34d399}
.wb-promo-risk-badge.risk-mid{background:rgba(251,191,36,.15);color:#fbbf24}
.wb-promo-risk-badge.risk-high{background:rgba(239,68,68,.15);color:#ef4444}
.wb-promo-metrics{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
}
.wb-promo-metric{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;
}
.wb-promo-metric-label{font-size:10px;color:var(--text-muted)}
.wb-promo-metric-val{font-size:14px;font-weight:700;color:var(--text-bright)}
.wb-promo-sync-btn{
  font-size:11px;padding:5px 12px;border-radius:8px;cursor:pointer;align-self:flex-end;
  background:rgba(53,191,245,.1);border:1px solid var(--accent);color:var(--accent);
  transition:background .15s;
}
.wb-promo-sync-btn:hover{background:rgba(53,191,245,.2)}

/* ── 运营工作台 Page-level layout ── */
.wb-overview-cards{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;margin-bottom:20px;
}
.wb-ov-card{
  background:var(--bg-card-2);border:1px solid var(--border);
  border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:3px;
}
.wb-ov-card--warn{border-left:3px solid #f59e0b}
.wb-ov-label{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.wb-ov-value{font-size:22px;font-weight:700;color:var(--text-bright);line-height:1.2}
.wb-ov-sub{font-size:11px;color:var(--text-muted)}

.workbench-page-tabs{
  display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:0;
}
.wb-page-tab{
  flex:1;padding:10px 0;font-size:13px;font-weight:500;
  background:none;border:none;color:var(--text-muted);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-2px;
  transition:color .15s,border-color .15s;white-space:nowrap;
}
.wb-page-tab:hover{color:var(--text)}
.wb-page-tab.is-active{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}
html[data-resolved-theme="light"] .wb-page-tab.is-active{color:#0ea5c8;border-bottom-color:#0ea5c8}
.workbench-page-body{padding:16px 0}

/* calendar in drawer */
.wb-calendar-wrap{display:flex;flex-direction:column;gap:8px}
.wb-calendar-group-title{
  font-size:11px;font-weight:700;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.06em;margin:8px 0 4px;padding-left:4px;
}

/* light theme adjustments */
html[data-resolved-theme="light"] .wb-promo-summary{
  background:var(--bg-card);box-shadow:var(--shadow-card)
}
html[data-resolved-theme="light"] .wb-promo-metric{
  background:#f8fafc;box-shadow:none
}

/* ── 全站媒体预览 ──────────────────────────────────────────────────────────── */
.media-preview{
  display:block;margin-top:10px;
  border-radius:14px;overflow:hidden;
  border:1px solid var(--border-soft,var(--border));
  background:var(--bg-soft,var(--bg-card-2,var(--bg-card)));
}
/* plain-section 页面预览图左对齐，不强拉满整张卡片 */
.plain-section .media-preview{max-width:460px;margin-left:0;margin-right:auto}
/* 仪表盘首页保持居中 */
#dashboardHome .media-preview{max-width:none;margin-left:auto;margin-right:auto}
.media-preview.is-hidden{display:none!important}
.media-preview__img{
  display:block;width:100%;height:auto;
  object-fit:contain;
  background:var(--bg-soft,var(--bg-card-2,var(--bg-card)));
  border-radius:inherit;
}
.media-preview--compact .media-preview__img{max-height:220px}
.media-preview--normal  .media-preview__img{max-height:320px}
.media-preview--detail  .media-preview__img{max-height:520px}
/* Multi-image grid */
.media-preview--grid{display:grid;gap:4px;border-radius:inherit}
.media-preview--grid-2{grid-template-columns:1fr 1fr}
.media-preview--grid-3{grid-template-columns:repeat(3,1fr)}
.media-preview--grid-4{grid-template-columns:1fr 1fr}
.media-preview--grid-n{grid-template-columns:repeat(3,1fr)}
.media-preview--grid .media-preview__img{
  height:140px;max-height:140px;object-fit:cover;border-radius:10px;
}
.media-preview__caption{
  font-size:11px;color:var(--text-muted);
  padding:4px 8px 6px;margin:0;line-height:1.4;
}
.media-preview--video{cursor:pointer}
.media-preview__video-link{
  display:block;position:relative;text-decoration:none;
}
.media-preview__play{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:36px;height:36px;line-height:36px;text-align:center;
  background:rgba(0,0,0,.55);border-radius:50%;
  color:#fff;font-size:14px;pointer-events:none;
}
.media-preview__link{
  display:inline-flex;align-items:center;gap:4px;
  font-size:12px;color:var(--accent);text-decoration:none;
  padding:6px 10px;
}
.media-preview__link:hover{text-decoration:underline}

/* ── 回到顶部按钮 ─────────────────────────────────────────────────────────── */
#back-to-top{
  position:fixed;bottom:88px;right:20px;z-index:900;
  width:36px;height:36px;border-radius:50%;
  background:var(--bg-card-2,var(--bg-card));
  border:1px solid var(--border);color:var(--text-muted);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;cursor:pointer;
  opacity:0;pointer-events:none;
  transition:opacity .2s,border-color .2s,color .2s;
  box-shadow:0 2px 8px rgba(0,0,0,.28);
  line-height:1;
}
#back-to-top.visible{opacity:1;pointer-events:auto}
#back-to-top:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:600px){#back-to-top{bottom:72px;right:12px}}
