/* ==========================================================================
   繁地智库 FandiHub —— 全站共享样式表 fandi.css
   --------------------------------------------------------------------------
   视觉总原则：简约大气——留白疏朗、装饰做减法、配色克制。
   【改配色只改这里】所有颜色都定义在 :root 变量里：
   --blue  智库蓝 #0A2F5C —— 导航、页脚、Hero 深蓝底
   --gold  繁地金 #F0A020 —— 只用于主按钮、价格/关键数字、悬停与极少数强调
   --bg    浅灰底 #F5F7FA —— 内容区背景；白/灰为内容承载色。
   双主题：:root 为默认浅色主题；html[data-theme="dark"] 覆盖同名变量，
   深色为“高端银行/商务深色”观感（墨蓝黑底 + 繁地金点缀），不使用荧光色。
   ========================================================================== */

:root{
  color-scheme:light;    /* 原生控件（滚动条/下拉）跟随浅色 */
  --maxw:1140px;         /* 内容最大宽度：刻意收窄，不把屏塞满 */
  --blue:#0A2F5C;        /* 智库蓝（主色，用于深蓝底区域） */
  --blue-light:#1E4E86;  /* 深蓝悬停浅一档 */
  --text-blue:#0A2F5C;   /* 内容区标题/强调文字（深色主题下转亮白） */
  --link-blue:#0A2F5C;   /* 正文链接色（深色主题下提亮） */
  --gold:#F0A020;        /* 繁地金（辅色，克制使用） */
  --gold-dark:#D98C0F;   /* 金色按钮按下态/金色文字 */
  --bg:#F5F7FA;          /* 内容区浅灰底 */
  --surface:#FFFFFF;     /* 卡片/面板/表格/弹窗底色 */
  --surface-2:#F3F6FA;   /* 表头浅底 */
  --surface-hover:#F8FAFC;/* 表格行悬停底 */
  --surface-gray:#F1F4F8;/* 灰按钮底 */
  --surface-gray-hover:#E6EBF2;
  --line:#E4E9F0;        /* 分隔线/卡片描边（极细） */
  --line-soft:rgba(10,47,92,.10); /* 虚线分隔 */
  --text:#1F2937;        /* 正文深灰字 */
  --text-mid:#5D6878;    /* 次要文字 */
  --text-light:#94A0B0;  /* 辅助/说明小字（弱化，不抢正文） */
  --green:#1A9E6B;       /* 在售/通过/完成等正向状态 */
  --red:#C0392B;         /* 驳回/禁用等负向状态 */
  /* 说明条（极浅底） */
  --notice-bg:#F0F5FB;  --notice-line:#DCE7F3;  --notice-text:#23507F;
  --notice-warn-bg:#FBF5E6; --notice-warn-line:#EEDFB8; --notice-warn-text:#8A6115;
  /* 深蓝底区域上的浅字 */
  --on-dark-text:#C2D0E2;   /* Hero/横幅描述字 */
  --on-dark-link:#D5DFEC;   /* 深蓝底导航链接 */
  --footer-text:#9FB2CA;    /* 页脚文字 */
  --input-bg:#FFFFFF;
  --shadow:0 1px 3px rgba(10,47,92,.05);   /* 卡片最轻投影，描边为主 */
  --shadow-hover:0 6px 18px rgba(10,47,92,.09);
  --radius:10px;         /* 卡片统一圆角 */
}

/* ==========================================================================
   深色主题（商务墨蓝黑 + 繁地金点缀；高端银行 App 深色观感，非赛博风）
   启用方式：<html data-theme="dark">，选择记忆于 localStorage(fandi_theme)
   红线：不使用荧光青蓝（cyan/aqua）、不使用霓虹发光、不用纯黑底。
   ========================================================================== */
html[data-theme="dark"]{
  color-scheme:dark;
  --blue:#0D1B2E;        /* 深蓝底区域在深色下再沉一档（导航/Hero/页脚/侧栏） */
  --blue-light:#23508A;
  --text-blue:#F2F6FC;   /* 内容区标题：近白亮色（金色只留给价格/数字/按钮） */
  --link-blue:#7FB2E8;   /* 正文链接：提亮的智库蓝（非荧光青） */
  --gold:#F0A020;        /* 繁地金保持不变 */
  --gold-dark:#F5B443;   /* 金色文字在深底上提亮一档 */
  --bg:#0B1220;          /* 墨蓝黑内容底 */
  --surface:#16202F;     /* 卡片深灰蓝 */
  --surface-2:#1C2839;   /* 表头 */
  --surface-hover:#1A2536;
  --surface-gray:#223046;
  --surface-gray-hover:#2C3D57;
  --line:#28364A;        /* 分隔线：深蓝灰细边 */
  --line-soft:rgba(255,255,255,.12); /* 虚线分隔：半透明白 */
  --text:#E4EAF3;        /* 正文浅灰白 */
  --text-mid:#A9B7CA;    /* 次要文字降一档 */
  --text-light:#78879D;  /* 辅助小字再降一档 */
  --green:#4DC591;
  --red:#E87468;
  --notice-bg:rgba(127,178,232,.08);  --notice-line:rgba(127,178,232,.24);  --notice-text:#B9D4F0;
  --notice-warn-bg:rgba(240,160,32,.09); --notice-warn-line:rgba(240,160,32,.28); --notice-warn-text:#F0C379;
  --on-dark-text:#B6C6DA;
  --on-dark-link:#CBD7E6;
  --footer-text:#8FA3BC;
  --input-bg:#111A28;
  --shadow:0 1px 3px rgba(0,0,0,.30);
  --shadow-hover:0 6px 20px rgba(0,0,0,.42);
}

/* ---------- 基础重置 ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  color:var(--text);background:var(--bg);line-height:1.65;font-size:15px;
  transition:background-color .2s,color .2s;
}
a{color:var(--link-blue);text-decoration:none;}
a:hover{color:var(--gold);}
img{max-width:100%;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* ==========================================================================
   顶部三级页头（v5；PC 平铺；≤1024px 汉堡菜单；定稿效果图 01:59 版）
   --------------------------------------------------------------------------
   一级·前台（front）：智库蓝深蓝底；LOGO 图形（等比缩放不裁切，高 34px）+
     「繁地智库」粗体字标 + 金色 FANDIHUB。
   二级·我的智库（console）/三级·管理后台（admin）：深色页头条（双主题均深蓝黑），
     智库左=圆形头像+正下方“我的智库”小字；后台左=白字“繁地智库·管理后台”（无图形）；
     右=返回首页｜铃铛（金角标）｜昵称▾下拉｜换UI（图标+主题名：☀ 浅色 / 🌙 深色）。
   ========================================================================== */
.site-header{position:sticky;top:0;z-index:100;background:var(--blue);}
/* 两个内场页头（智库/后台）：定稿=深色页头条，双主题均为深蓝黑（浅色 #0A2441 / 深色 #0D1B2E） */
.site-header-console,
.site-header-admin{background:#0A2441;}
html[data-theme="dark"] .site-header-console,
html[data-theme="dark"] .site-header-admin{background:#0D1B2E;}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:0 24px;height:66px;
  display:flex;align-items:center;justify-content:space-between;}
/* 内场页头不套居中容器：左侧与侧栏对齐、右侧贴边（定稿效果图口径） */
.site-header-console .header-inner,
.site-header-admin .header-inner{max-width:none;padding:0 40px;}

/* ---- LOGO 组件：图形标等比缩放（1.35:1，高 34px 宽自适应，禁止裁切） ---- */
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap;line-height:1;}
.brand:hover{opacity:.92;}
.logo-img{display:block;height:30px;width:auto;flex-shrink:0;}
/* 整横标图（繁地智库+图形+FANDIHUB 一体）：等高 30px 与 v6.4 一致，宽度等比自适应（比例 8.5:1，约 255×30，禁止拉伸变形） */
.brand-logo{display:block;width:230px;height:auto;max-width:62vw;flex-shrink:0;}
/* 横排锁版：中文 ▦ logo ▦ 英文 同一行（图标夹中间） */
.brand-text{display:flex;flex-direction:row;align-items:center;gap:10px;}
.brand-cn{color:#fff;font-size:20px;font-weight:800;letter-spacing:1px;line-height:1;}
.brand-en{color:var(--gold);font-size:15px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;line-height:1;}
/* 管理后台左侧：白字“繁地智库·管理后台”（无 LOGO 图形） */
.brand-admin-txt{color:#fff;font-size:17px;font-weight:700;letter-spacing:.5px;white-space:nowrap;}
/* 我的智库左侧：金色圆环头像 + 右侧“我的智库”白字（横向排列，对齐效果图） */
.console-brand{display:flex;flex-direction:row;align-items:center;gap:9px;line-height:1;padding:2px 0;
  margin-left:0;width:auto;}
.console-brand .avatar{border:2px solid var(--gold);box-shadow:0 0 0 1px rgba(240,160,32,.25);}
.console-brand-txt{color:#fff;font-size:16px;letter-spacing:1px;font-weight:700;white-space:nowrap;}
.console-brand:hover{opacity:.9;}

.nav-pc{display:flex;align-items:center;gap:26px;}
.nav-pc>a{color:var(--on-dark-link);font-size:15px;white-space:nowrap;}
.nav-pc>a:hover{color:var(--gold);}
.nav-pc>a.active{color:var(--gold);font-weight:600;}

/* ---- 换 UI：日/月图标 + 当前主题名文字（定稿：☀ 浅色 / 🌙 深色） ---- */
.theme-icon{
  display:inline-flex;align-items:center;gap:4px;
  background:transparent;border:none;color:var(--on-dark-link);
  font-size:15px;font-family:inherit;line-height:1;padding:7px 10px;
  border-radius:6px;cursor:pointer;white-space:nowrap;opacity:.92;
  transition:color .15s,background .15s,opacity .15s;
}
.theme-icon .theme-ic{font-size:15px;line-height:1;}
.theme-icon .theme-name{font-size:14px;}
.theme-icon:hover{color:var(--gold);background:rgba(255,255,255,.08);opacity:1;}

/* ---- 通知铃铛（数据源按角色：前台/智库=个人通知+平台公告；admin=平台待办） ---- */
.nav-bell{position:relative;background:transparent;border:none;color:var(--on-dark-link);
  font-size:16px;font-family:inherit;line-height:1;padding:6px 8px;border-radius:6px;
  cursor:pointer;white-space:nowrap;opacity:.92;transition:color .15s,background .15s,opacity .15s;}
.nav-bell:hover{color:var(--gold);background:rgba(255,255,255,.08);opacity:1;}
.nav-bell .bell-badge{position:absolute;top:-1px;right:-2px;min-width:16px;height:16px;padding:0 4px;
  border-radius:8px;background:var(--gold);color:#1A1408;font-size:10.5px;font-weight:700;
  line-height:16px;text-align:center;}
.mobile-menu .nav-bell{display:block;width:calc(100% - 48px);margin:10px 24px 4px;text-align:left;
  padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:8px;font-size:15px;}
.mobile-menu .nav-bell .bell-badge{top:6px;right:auto;left:64px;}

/* ---- 昵称下拉 ---- */
.nav-dropdown{position:relative;}
.nav-nick-btn{background:transparent;border:none;font-family:inherit;cursor:pointer;
  display:flex;align-items:center;gap:4px;color:#fff;font-size:15px;font-weight:600;
  padding:6px 8px;border-radius:6px;white-space:nowrap;max-width:170px;
  transition:background .15s,color .15s;}
.nav-nick-btn .nick-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nav-nick-btn:hover{background:rgba(255,255,255,.08);color:var(--gold);}
.nav-nick-btn .caret{font-size:11px;color:var(--gold);margin-left:1px;}
.dropdown-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:152px;
  background:var(--surface);border:1px solid var(--line);border-radius:9px;
  box-shadow:0 10px 30px rgba(5,12,24,.22);padding:6px;display:none;z-index:120;}
.nav-dropdown.open .dropdown-menu{display:block;}
.dropdown-menu a{display:block;padding:9px 14px;border-radius:6px;font-size:14px;color:var(--text);
  white-space:nowrap;}
.dropdown-menu a:hover{background:var(--surface-2);color:var(--link-blue);}

/* ---- 头像（圆形；字母兜底 + 上传图） ---- */
.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;
  overflow:hidden;flex-shrink:0;vertical-align:middle;
  border:1.5px solid rgba(255,255,255,.55);box-shadow:0 0 0 1px rgba(10,47,92,.12);}
.avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.avatar-letter{color:#fff;font-weight:700;line-height:1;text-align:center;user-select:none;}
/* 卡片底部“头像 + 节点名”一行 */
.node-line{display:inline-flex;align-items:center;gap:7px;color:var(--text-light);
  font-size:12.5px;max-width:60%;}
.node-line .avatar{border-color:var(--line);box-shadow:none;}
.node-line>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.card-foot .node-line{color:var(--text-light);}
/* 卡片场景行里的头像行（定制采购卡片采购方） */
.card-scene .node-line{color:var(--text-mid);font-size:12.5px;}

/* 汉堡按钮：PC 隐藏，手机显示 */
.hamburger{display:none;background:none;border:none;color:#fff;font-size:24px;cursor:pointer;line-height:1;padding:6px 8px;}
.mobile-menu{display:none;background:var(--blue);border-top:1px solid rgba(255,255,255,.10);}
.site-header-console .mobile-menu,
.site-header-admin .mobile-menu{background:#0A2441;}
html[data-theme="dark"] .site-header-console .mobile-menu,
html[data-theme="dark"] .site-header-admin .mobile-menu{background:#0D1B2E;}
.mobile-menu a{display:block;color:var(--on-dark-link);padding:14px 24px;font-size:15px;border-bottom:1px solid rgba(255,255,255,.05);}
.mobile-menu a:hover{color:var(--gold);}
.mobile-menu.show{display:block;}
.mobile-menu .theme-icon{margin:12px 24px 18px;font-size:17px;}

/* ==========================================================================
   按钮体系：主按钮金色实心 / 次按钮描边 / 小号按钮
   ========================================================================== */
.btn{display:inline-block;padding:11px 26px;border-radius:6px;font-size:15px;
  border:1px solid transparent;cursor:pointer;text-align:center;
  font-family:inherit;transition:all .15s;white-space:nowrap;}
.btn:hover{opacity:.92;color:#fff;}
.btn-gold{background:var(--gold);color:#fff;border-color:var(--gold);font-weight:600;}
.btn-gold:hover{background:var(--gold-dark);border-color:var(--gold-dark);color:#fff;}
html[data-theme="dark"] .btn-gold:hover{color:#1A1206;}
/* 描边次按钮（浅色内容区使用） */
.btn-blue{background:transparent;color:var(--link-blue);border-color:var(--link-blue);}
.btn-blue:hover{background:var(--link-blue);color:#fff;}
/* 白色描边按钮（Hero 深蓝底上使用） */
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.8);}
.btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff;}
.btn-gray{background:var(--surface-gray);color:var(--text-mid);border-color:var(--line);}
.btn-gray:hover{background:var(--surface-gray-hover);color:var(--text);}
.btn-sm{padding:6px 14px;font-size:13px;border-radius:5px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn-block{display:block;width:100%;}

/* ==========================================================================
   首页 Hero 区（深蓝底）
   --------------------------------------------------------------------------
   视觉层级（自上而下）：三组平台数据 → 英文小眉题 → 中文主标题（最大最粗）
   → 描述段 → 两个 CTA。数据与文字直接落在深蓝底上，无卡片框/重投影。
   ========================================================================== */
.hero{position:relative;color:#fff;padding:128px 20px 84px;text-align:center;
  background-color:#0A1733;overflow:hidden;}
/* 双图缓慢交叉淡变（纯 CSS，约 12s 一轮，内容层完全不动） */
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center center;}
.hero-bg-2{z-index:0;background-image:url('assets/hero-b2.jpg');}
.hero-bg-1{z-index:1;background-image:url('assets/hero-b1.jpg');animation:heroFade 12s ease-in-out infinite;}
.hero-veil{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,12,26,.72) 0%,rgba(8,16,32,.42) 42%,rgba(6,12,26,.66) 100%);}
.hero-inner{position:relative;z-index:3;max-width:960px;margin:0 auto;}
@keyframes heroFade{0%,46%{opacity:1;}50%,96%{opacity:0;}100%{opacity:1;}}
@media (prefers-reduced-motion:reduce){.hero-bg-1{animation:none;}}
/* 首页首屏：导航透明叠于大图之上；滚动后加实色底（JS 切 .home-scrolled） */
.site-header.is-transparent{position:fixed;left:0;right:0;top:0;background:transparent;
  border-bottom-color:transparent;box-shadow:none;}
.site-header.home-scrolled{background:var(--blue);
  border-bottom-color:var(--line-soft);box-shadow:0 2px 14px rgba(8,20,40,.18);}

/* Hero 顶部三组数据：金色大数字 + 浅色标签，细分隔线，直接落深蓝底 */
.hero-stats{display:flex;justify-content:center;margin:0 auto 46px;max-width:760px;}
.hstat{flex:1;padding:6px 28px;text-align:center;
  border-right:1px solid rgba(255,255,255,.16);}
.hstat:last-child{border-right:none;}
.hstat-num{font-size:clamp(26px,4vw,40px);font-weight:800;color:var(--gold);line-height:1.15;}
.hstat-label{color:var(--on-dark-link);font-size:13.5px;margin-top:8px;letter-spacing:1px;}

/* 英文眉题：小字号、大字距，低调点缀，不与中文主标题争抢 */
.hero-en{color:var(--gold);font-size:clamp(11px,1.1vw,13px);font-weight:600;
  letter-spacing:.2em;text-indent:.2em;line-height:1.7;margin-bottom:22px;
  opacity:.85;text-transform:uppercase;overflow-wrap:break-word;}
.hero h1{font-size:clamp(30px,5vw,52px);font-weight:800;line-height:1.32;margin-bottom:18px;
  letter-spacing:1px;overflow-wrap:break-word;}
.hero-desc{color:var(--on-dark-text);font-size:16px;line-height:1.9;max-width:780px;margin:0 auto 34px;}
.hero-cta{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.hero-cta .btn{padding:14px 38px;font-size:16px;}

/* ==========================================================================
   Slogan 居中横幅（v4 定稿；v6.1 回退）：hero 双按钮之下、定制采购橱窗之上。
   透明背景、限宽居中、靠大留白与金色短横线成段——不铺全宽色块，
   首页深浅主题都只有 hero 一道深蓝，不额外引入色阶。
   ========================================================================== */
.slogan-band{max-width:var(--maxw);margin:0 auto;padding:70px 24px 6px;text-align:center;}
.slogan-line{width:44px;height:2px;background:var(--gold);margin:0 auto 26px;opacity:.85;}
.slogan-text{font-size:clamp(22px,3vw,32px);font-weight:700;color:var(--text-blue);
  letter-spacing:1px;line-height:1.5;}

/* ==========================================================================
   内页顶部横幅（市场/插件/登录等内页的深蓝色页头）
   ========================================================================== */
.page-banner{background:var(--blue);color:#fff;padding:60px 20px;text-align:center;}
.page-banner h1{font-size:clamp(24px,3.2vw,32px);margin-bottom:12px;font-weight:700;}
.page-banner p{color:var(--on-dark-text);font-size:15px;max-width:700px;margin:0 auto;line-height:1.9;}
/* 市场页搜索横幅（照效果图：深蓝底上的半透明玻璃条 + 分类白字 + 白色输入 + 右侧金色圆角搜索钮，小圆角） */
.page-banner-search{padding:64px 20px 58px;}
.page-banner-search .banner-sub{font-size:17px;color:var(--on-dark-text);margin-bottom:30px;max-width:860px;}
.page-banner-search .banner-search{display:flex;align-items:stretch;gap:0;max-width:860px;margin:0 auto;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);
  border-radius:8px;overflow:hidden;box-shadow:0 6px 22px rgba(0,0,0,.18);backdrop-filter:blur(2px);}
.page-banner-search .search-cat{appearance:none;-webkit-appearance:none;background:transparent;color:#fff;
  border:none;border-right:1px solid rgba(255,255,255,.22);padding:0 34px 0 18px;font-size:15px;
  font-family:inherit;cursor:pointer;min-width:150px;font-weight:500;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;}
.page-banner-search .search-cat option{color:#1f2a3d;background:#fff;}
.page-banner-search .search-input-wrap{flex:1;display:flex;align-items:center;background:transparent;min-width:0;}
.page-banner-search .search-icon{display:flex;align-items:center;padding-left:18px;color:rgba(255,255,255,.75);pointer-events:none;line-height:1;}
.page-banner-search #search-kw{flex:1;border:none;outline:none;padding:15px 12px;font-size:15px;
  font-family:inherit;color:#fff;background:transparent;min-width:0;}
.page-banner-search #search-kw::placeholder{color:rgba(255,255,255,.62);}
.page-banner-search #search-go{align-self:stretch;display:flex;align-items:center;justify-content:center;
  background:var(--gold);color:#fff;border:none;margin:0;padding:0 52px;
  font-size:18px;font-weight:700;font-family:inherit;cursor:pointer;letter-spacing:6px;white-space:nowrap;
  border-radius:0;border-top-right-radius:8px;border-bottom-right-radius:8px;
  transition:background .2s;}
.page-banner-search #search-go:hover{background:var(--gold-dark,#d98c14);}
.page-banner-search .banner-rule{font-size:13.5px;color:var(--on-dark-text);margin-top:22px;max-width:860px;opacity:.92;line-height:1.9;}
@media (max-width:640px){
  .page-banner-search{padding:40px 16px 38px;}
  .page-banner-search .search-cat{min-width:118px;padding:0 28px 0 12px;font-size:14px;}
  .page-banner-search #search-go{padding:0 26px;font-size:16px;letter-spacing:2px;margin:0;}
}

/* ==========================================================================
   通用内容区块（留白疏朗：区块间纵向间距刻意拉大）
   ========================================================================== */
.section{max-width:var(--maxw);margin:0 auto;padding:76px 24px;}
.section-head{display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:30px;flex-wrap:wrap;gap:10px;}
.section-title{font-size:22px;font-weight:700;color:var(--text-blue);letter-spacing:.5px;}
.section-sub{color:var(--text-light);font-size:13px;margin-left:10px;font-weight:400;}
.more-link{font-size:14px;color:var(--link-blue);white-space:nowrap;}
.more-link:hover{color:var(--gold);}

/* 说明条（市场真实性规则、仪表盘本地资产提示等，极浅底） */
.notice-bar{background:var(--notice-bg);border:1px solid var(--notice-line);color:var(--notice-text);
  border-radius:var(--radius);padding:15px 18px;font-size:13.5px;line-height:1.85;
  margin-bottom:28px;}
.notice-bar strong{color:var(--notice-text);}
.notice-warn{background:var(--notice-warn-bg);border-color:var(--notice-warn-line);color:var(--notice-warn-text);}
.notice-warn strong{color:var(--notice-warn-text);}

/* ==========================================================================
   卡片网格：PC 4 列 / 平板 2 列 / 手机 1 列
   --------------------------------------------------------------------------
   装饰做减法：极细描边 + 最轻投影；无渐变、无重底色。
   ========================================================================== */
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;
  transition:transform .15s,box-shadow .15s,border-color .15s;}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--line);}
.card h3{font-size:16.5px;color:var(--text-blue);margin-bottom:9px;line-height:1.45;font-weight:700;}
.card .card-scene{font-size:12.5px;color:var(--text-light);font-weight:500;margin-bottom:10px;letter-spacing:.3px;}
.card .card-desc{font-size:13.5px;color:var(--text-mid);line-height:1.8;
  flex:1;margin-bottom:16px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.card .card-meta{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;font-size:13px;}
.card .card-price{color:var(--gold);font-weight:700;font-size:16px;}
.card .card-foot{display:flex;justify-content:space-between;align-items:center;
  border-top:1px dashed var(--line-soft);padding-top:14px;font-size:12.5px;color:var(--text-light);}

/* ==========================================================================
   极简数据卡片（v8 定稿）：封面通栏 → 分类·维度·标签小字 → 标题(≤2行)
   → 核心指标行 → 复购率(有才显示) → 分割线 → 头像·名称 · 查看详情
   ========================================================================== */
.mcard{padding:0;overflow:hidden;}
.mc-cover{position:relative;width:100%;aspect-ratio:16/10;background:#0E2240;overflow:hidden;}
.mc-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.mc-cover-ph{display:flex;align-items:center;justify-content:center;}
.mc-cover-ph span{font-size:40px;font-weight:800;color:rgba(255,255,255,.9);
  text-shadow:0 2px 12px rgba(0,0,0,.25);letter-spacing:2px;}
.mc-body{padding:16px 18px 16px;display:flex;flex-direction:column;flex:1;}
.mc-line1{font-size:12px;color:var(--text-light);letter-spacing:.2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px;}
.mc-title{font-size:16px;font-weight:700;color:var(--text-blue);line-height:1.45;margin:0 0 12px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:46px;}
.mc-meta{display:flex;justify-content:space-between;align-items:baseline;
  gap:10px;font-size:13px;margin-bottom:4px;}
.mc-price{color:var(--gold);font-weight:700;font-size:16px;white-space:nowrap;}
.mc-stat{color:var(--text-light);white-space:nowrap;}
.mc-extra{font-size:12px;color:var(--text-light);margin-bottom:6px;}
.mc-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;
  border-top:1px solid var(--line-soft);margin-top:auto;padding-top:12px;}
.mc-foot .node-line{font-size:12.5px;max-width:62%;}
.mc-detail{color:var(--link-blue);font-size:12.5px;white-space:nowrap;}

/* 详情页封面大图（与卡片库同一 cover 数据源） */
.detail-cover{width:100%;aspect-ratio:21/9;border-radius:10px;overflow:hidden;
  background:#0E2240;margin-bottom:20px;border:1px solid var(--line-soft);}
.detail-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.detail-cover-ph{display:flex;align-items:center;justify-content:center;}
.detail-cover-ph span{font-size:72px;font-weight:800;color:rgba(255,255,255,.9);
  text-shadow:0 2px 16px rgba(0,0,0,.28);letter-spacing:4px;}

/* 平台规则卡：横向长图在上（贴边满宽），标题正文在下 */
.rule-card{padding:0;overflow:hidden;}
.rule-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border:0;}
.rule-body{padding:22px 24px 24px;}
.rule-body h3{margin-bottom:10px;}

/* 标签：中性细描边，弱化不抢（每张卡片最多 3 个） */
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.tag{background:transparent;border:1px solid var(--line);color:var(--text-light);
  font-size:12px;padding:2px 9px;border-radius:4px;}
/* 状态徽章：去底色，彩色文字即状态（简约、双主题皆清晰） */
.badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:4px;font-weight:600;line-height:1.7;}
.badge-green{color:var(--green);}
.badge-gold{color:var(--gold-dark);}
.badge-gray{color:var(--text-light);}
.badge-blue{color:var(--link-blue);}
.badge-red{color:var(--red);}

/* ==========================================================================
   Tab 切换（市场/插件/订单/登录等页面共用）
   ========================================================================== */
.tabs{display:flex;gap:4px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:30px;flex-wrap:wrap;width:100%;}
.market-tabs{width:100%;max-width:1140px;margin-left:auto;margin-right:auto;display:flex;flex-wrap:wrap;align-items:center;}
.tab-btn{background:none;border:none;padding:12px 22px;font-size:15px;color:var(--text-mid);
  cursor:pointer;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:600;}
.tab-btn.active{color:var(--text-blue);border-bottom-color:var(--gold);}
.tab-link-publish{font-size:13px;color:var(--gold);padding:0 2px 0 18px;
  text-decoration:none;font-weight:600;white-space:nowrap;}
.tab-link-publish:hover{color:var(--gold-dark);text-decoration:underline;}
.tab-pane{display:none;}
.tab-pane.active{display:block;}

/* 市场页筛选条 */
.filter-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:26px;}
.filter-bar select,.filter-bar input{padding:8px 12px;border:1px solid var(--line);
  border-radius:6px;font-size:14px;font-family:inherit;background:var(--input-bg);color:var(--text);}
.filter-bar label{font-size:13.5px;color:var(--text-mid);}

/* ==========================================================================
   表单（挂牌、发需求、登录注册、新增素材等）
   ========================================================================== */
.form-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px;box-shadow:var(--shadow);max-width:560px;margin:0 auto;}
.form-row{margin-bottom:20px;}
.form-row label{display:block;font-size:14px;font-weight:600;color:var(--text);margin-bottom:7px;}
.form-row .hint{font-weight:400;color:var(--text-light);font-size:12.5px;margin-left:6px;}
.form-row input,.form-row select,.form-row textarea{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:6px;
  font-size:14px;font-family:inherit;background:var(--input-bg);color:var(--text);}
.form-row textarea{resize:vertical;min-height:80px;}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(240,160,32,.12);}
.form-row input::placeholder,.form-row textarea::placeholder{color:var(--text-light);opacity:.85;}
select option{background:var(--input-bg);color:var(--text);}
.form-error{color:var(--red);font-size:13px;margin-top:8px;min-height:18px;}
.form-tip{text-align:center;font-size:13px;color:var(--text-light);margin-top:18px;}
.radio-line{display:flex;gap:20px;flex-wrap:wrap;}
.radio-line label{display:flex;align-items:center;gap:6px;font-weight:400;font-size:14px;cursor:pointer;}

/* ==========================================================================
   表格（后台列表统一使用）
   ========================================================================== */
.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);}
table.data-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:720px;}
.data-table th{background:var(--surface-2);color:var(--text-mid);text-align:left;padding:14px 16px;
  font-size:12.5px;white-space:nowrap;font-weight:600;letter-spacing:.3px;}
.data-table td{padding:14px 16px;border-top:1px solid var(--line);vertical-align:top;color:var(--text);}
.data-table tr:hover td{background:var(--surface-hover);}
.data-table .td-actions{white-space:nowrap;}
.empty-tip{text-align:center;color:var(--text-light);padding:56px 20px;font-size:14px;
  background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);}

/* ==========================================================================
   后台框架（console 我的智库 / admin 管理后台共用）：左侧菜单 + 右侧内容
   ========================================================================== */
.console-layout{display:flex;min-height:calc(100vh - 66px);}
.sidebar{width:216px;background:var(--blue);flex-shrink:0;padding:22px 0;}
.sidebar .side-title{color:#fff;font-size:12px;letter-spacing:2px;
  padding:4px 24px 16px;font-weight:700;}
.sidebar a{display:block;color:var(--on-dark-text);padding:12px 24px;font-size:14.5px;
  border-left:3px solid transparent;cursor:pointer;}
.sidebar a:hover{color:#fff;background:rgba(255,255,255,.05);}
.sidebar a.active{color:var(--gold);background:rgba(255,255,255,.10);
  border-left-color:var(--gold);font-weight:700;}
.console-main{flex:1;padding:36px 40px;min-width:0;max-width:100%;}
.console-main h2{font-size:20px;color:var(--text-blue);margin-bottom:22px;font-weight:700;}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;box-shadow:var(--shadow);margin-bottom:24px;}
.panel h3{font-size:16px;color:var(--text-blue);margin-bottom:16px;font-weight:700;}

/* 仪表盘小卡片 */
.dash-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-bottom:26px;}
.dash-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;box-shadow:var(--shadow);}
.dash-card .dc-num{font-size:28px;font-weight:800;color:var(--gold);line-height:1.2;}
.dash-card .dc-label{font-size:13px;color:var(--text-mid);margin-top:6px;}

/* ==========================================================================
   资产详情页
   ========================================================================== */
.detail-layout{display:grid;grid-template-columns:1fr 320px;gap:28px;align-items:start;}
.detail-main{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:32px;box-shadow:var(--shadow);}
.detail-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;box-shadow:var(--shadow);position:sticky;top:88px;}
.detail-main h1{font-size:23px;color:var(--text-blue);margin-bottom:14px;line-height:1.45;font-weight:700;}
.detail-section{margin-top:26px;padding-top:22px;border-top:1px dashed var(--line-soft);}
.detail-section h4{font-size:15px;color:var(--text-blue);margin-bottom:9px;}
.detail-section p{font-size:14px;color:var(--text-mid);line-height:1.95;}
.kv-list{font-size:14px;}
.kv-list .kv{display:flex;padding:9px 0;border-bottom:1px dashed var(--line-soft);}
.kv-list .kv:last-child{border-bottom:none;}
.kv .k{width:88px;color:var(--text-light);flex-shrink:0;}
.kv .v{color:var(--text);}
.price-big{font-size:30px;color:var(--gold);font-weight:800;margin:12px 0 18px;}
.price-big small{font-size:14px;color:var(--text-mid);font-weight:400;}

/* ==========================================================================
   弹窗（modal）与轻提示（toast）
   ========================================================================== */
.modal-mask{display:none;position:fixed;inset:0;background:rgba(5,12,24,.62);
  z-index:1000;align-items:center;justify-content:center;padding:20px;}
.modal-mask.show{display:flex;}
.modal-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  width:100%;max-width:560px;
  max-height:88vh;overflow-y:auto;padding:30px;box-shadow:0 12px 40px rgba(0,0,0,.35);}
.modal-box h3{color:var(--text-blue);font-size:18px;margin-bottom:20px;font-weight:700;}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;}
.toast{position:fixed;left:50%;top:80px;transform:translateX(-50%);
  background:var(--blue);color:#fff;padding:12px 26px;border-radius:8px;
  font-size:14px;z-index:2000;box-shadow:0 6px 24px rgba(0,0,0,.25);
  opacity:0;transition:opacity .25s;pointer-events:none;max-width:90vw;text-align:center;}
.toast.show{opacity:1;}
.toast.toast-warn{background:#8A6115;}

/* ==========================================================================
   页脚（深蓝底，全站一致）
   ========================================================================== */
.site-footer{background:var(--blue);color:var(--footer-text);text-align:center;
  padding:30px 20px 34px;font-size:14px;line-height:2;margin-top:80px;}
.site-footer a{color:var(--on-dark-link);}
.site-footer a:hover{color:var(--gold);}
/* 页脚：版权行 ｜ 链接，备案独立居中下一行 */
.foot-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;}
.foot-copy{color:var(--on-dark-link);white-space:nowrap;}
.foot-sep{opacity:.45;margin:0 4px;color:var(--on-dark-link);}
.foot-links{display:inline-flex;align-items:center;white-space:nowrap;}
.foot-links a{margin:0 8px;}

/* ==========================================================================
   我的智库 / 管理后台 v4 增补组件（驾驶舱/计划/产品包/配置卡等）
   全部引用主题变量，双主题自动适配；不新增任何硬编码颜色。
   ========================================================================== */

/* 小节标题（面板内分组） */
.sub-title{font-size:14px;font-weight:700;color:var(--text-blue);margin:18px 0 10px;
  display:flex;align-items:center;gap:8px;}
.sub-title:first-child{margin-top:0;}
.muted{color:var(--text-light);font-size:12.5px;font-weight:400;}
.small-note{font-size:12.5px;color:var(--text-light);line-height:1.8;margin-top:10px;}
.small-note b{color:var(--text-mid);font-weight:600;}

/* 计划状态横幅（驾驶舱顶部：待审批/执行中/待验收） */
.plan-banner{display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow);margin-bottom:22px;}
.plan-banner .pb-name{font-size:17px;font-weight:700;color:var(--text-blue);}
.plan-banner .pb-meta{font-size:12.5px;color:var(--text-light);margin-top:4px;}
.plan-banner .pb-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;}

/* 统计小卡网格（驾驶舱/看板 3~4 列） */
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px;}
.mini-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.mini-grid.cols-2{grid-template-columns:repeat(2,1fr);}
.mini-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--shadow);}
.mini-card .mc-num{font-size:24px;font-weight:800;color:var(--gold);line-height:1.2;}
.mini-card .mc-num.mc-blue{color:var(--text-blue);}
.mini-card .mc-label{font-size:12.5px;color:var(--text-mid);margin-top:5px;}
.mini-card .mc-sub{font-size:12px;color:var(--text-light);margin-top:3px;}

/* 进度条（任务目标进度） */
.progress-row{padding:13px 0;border-bottom:1px dashed var(--line-soft);}
.progress-row:last-child{border-bottom:none;}
.progress-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:13.5px;margin-bottom:7px;flex-wrap:wrap;}
.progress-top .p-name{color:var(--text);font-weight:600;}
.progress-top .p-val{color:var(--text-mid);font-size:12.5px;white-space:nowrap;}
.progress-track{height:7px;background:var(--surface-2);border-radius:4px;overflow:hidden;}
.progress-fill{height:100%;background:var(--gold);border-radius:4px;
  transition:width .3s;min-width:2px;}
.progress-fill.done{background:var(--green);}

/* 待办提醒列表 */
.todo-list .todo-item{display:flex;align-items:center;gap:12px;padding:12px 2px;
  border-bottom:1px dashed var(--line-soft);font-size:14px;flex-wrap:wrap;}
.todo-list .todo-item:last-child{border-bottom:none;}
.todo-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);flex-shrink:0;}
.todo-dot.green{background:var(--green);}
.todo-dot.gray{background:var(--text-light);}
.todo-item .todo-text{flex:1;color:var(--text);min-width:200px;}
.todo-item .todo-time{color:var(--text-light);font-size:12.5px;}

/* 月节奏 / 三级放行 步骤卡 */
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.step-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;}
.step-card .step-no{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:1px;margin-bottom:6px;}
.step-card h4{font-size:14.5px;color:var(--text-blue);margin-bottom:6px;}
.step-card p{font-size:12.5px;color:var(--text-mid);line-height:1.8;margin:0;}

/* 状态行（连接状态等） */
.status-line{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-mid);}
.status-dot{width:9px;height:9px;border-radius:50%;background:var(--green);display:inline-block;}
.status-dot.off{background:var(--text-light);}
.status-dot.gold{background:var(--gold);}

/* 产品包图形占位 */
.pack-visual{width:100%;height:170px;border-radius:var(--radius);
  background:var(--blue);color:#fff;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;margin-bottom:18px;}
.pack-visual .pv-logo{font-size:34px;font-weight:800;letter-spacing:2px;color:var(--gold);}
.pack-visual .pv-name{font-size:14px;color:var(--on-dark-text);letter-spacing:1px;}
.pack-visual .pv-ver{font-size:12px;color:var(--on-dark-link);}

/* 插件图占位 */
.plugin-thumb{width:44px;height:44px;border-radius:8px;background:var(--surface-2);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  font-size:20px;flex-shrink:0;}

/* 置灰留位卡（作战室等二期入口） */
.phase2-card{opacity:.62;position:relative;background:var(--surface-2);}
.phase2-tag{display:inline-block;font-size:11px;color:var(--gold-dark);border:1px solid var(--gold);
  border-radius:4px;padding:1px 8px;margin-left:8px;vertical-align:middle;letter-spacing:.5px;}

/* 开关占位（接口设置 Agent 配置） */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 0;border-bottom:1px dashed var(--line-soft);}
.switch-row:last-child{border-bottom:none;}
.switch-row .sw-name{font-size:14px;font-weight:600;color:var(--text);}
.switch-row .sw-desc{font-size:12.5px;color:var(--text-light);margin-top:2px;}
.switch{position:relative;width:42px;height:23px;border-radius:12px;background:var(--line);
  cursor:pointer;flex-shrink:0;transition:background .2s;border:none;padding:0;}
.switch::after{content:'';position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;
  background:#fff;transition:left .2s;box-shadow:0 1px 2px rgba(0,0,0,.2);}
.switch.on{background:var(--gold);}
.switch.on::after{left:22px;}
.switch.disabled{opacity:.5;cursor:not-allowed;}

/* 机器初检报告（挂牌审核） */
.check-report{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;
  padding:14px 16px;margin:12px 0;font-size:13px;line-height:2;}
.check-report .cr-item{display:flex;gap:8px;align-items:baseline;}
.check-report .cr-mark{font-weight:700;}
.cr-pass{color:var(--green);}
.cr-warn{color:var(--gold-dark);}
.cr-fail{color:var(--red);}

/* 后台布局微调：两个后台共用 */
.console-main .page-actions{margin-bottom:18px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.console-main .table-wrap{margin-bottom:24px;}
.pill{display:inline-block;font-size:11.5px;padding:1px 8px;border-radius:10px;
  background:var(--surface-2);color:var(--text-mid);border:1px solid var(--line);margin-left:6px;}

/* ==========================================================================
   v5 增补：登录页（微信扫码/找回密码/协议）、账户设置页、资产详情卖方头像
   全部引用主题变量，双主题自动适配。
   ========================================================================== */

/* 登录页：辅助行（注册账户 / 找回密码） */
.form-alt-row{display:flex;justify-content:space-between;align-items:center;
  margin:-6px 0 16px;font-size:13.5px;flex-wrap:wrap;gap:8px;}
.form-alt-row a{cursor:pointer;}
.link-btn{background:none;border:none;color:var(--link-blue);font-family:inherit;
  font-size:13.5px;cursor:pointer;padding:0;}
.link-btn:hover{color:var(--gold);}
/* 协议勾选行（注册） */
.agree-line{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-mid);
  margin:2px 0 16px;line-height:1.6;}
.agree-line input{margin-top:3px;flex-shrink:0;}
.agree-line a{cursor:pointer;}
/* 微信扫码登录区（PC）/ 微信一键登录（手机） */
.wechat-box{max-width:560px;margin:22px auto 0;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:26px;text-align:center;}
.wechat-title{font-size:15px;font-weight:700;color:var(--text-blue);margin-bottom:16px;}
.qrcode{width:148px;height:148px;margin:0 auto 14px;border-radius:10px;
  background:
    linear-gradient(45deg,var(--surface-2) 25%,transparent 25%,transparent 75%,var(--surface-2) 75%),
    linear-gradient(45deg,var(--surface-2) 25%,transparent 25%,transparent 75%,var(--surface-2) 75%);
  background-size:18px 18px;background-position:0 0,9px 9px;
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  cursor:pointer;position:relative;}
.qrcode .qr-mid{font-size:40px;filter:grayscale(1);opacity:.8;}
.qrcode:hover{border-color:var(--gold);}
.wechat-tip{font-size:12.5px;color:var(--text-light);line-height:1.8;}
.wechat-onekey{display:none;width:100%;max-width:560px;margin:18px auto 0;
  background:#1A9E6B;color:#fff;border:none;padding:12px;border-radius:6px;
  font-size:15px;font-family:inherit;font-weight:600;cursor:pointer;}
.wechat-onekey:hover{opacity:.92;color:#fff;}
/* 验证码行（找回密码） */
.code-row{display:flex;gap:10px;}
.code-row input{flex:1;}
.code-row .btn{white-space:nowrap;padding:11px 16px;}

/* ---- 账户设置页 ---- */
.account-wrap{max-width:760px;margin:0 auto;}
.uid-line{font-size:13.5px;color:var(--text-mid);margin-bottom:6px;}
.uid-line b{color:var(--text-blue);font-weight:700;letter-spacing:.5px;}
.avatar-edit{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.avatar-big{width:72px;height:72px;font-size:32px;}
.avatar-big img{width:100%;height:100%;object-fit:cover;}
.avatar-presets{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.avatar-pick{width:42px;height:42px;border-radius:50%;border:2px solid transparent;
  cursor:pointer;padding:0;position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px;
  transition:transform .12s,border-color .12s;}
.avatar-pick:hover{transform:scale(1.08);}
.avatar-pick.sel{border-color:var(--gold);box-shadow:0 0 0 2px rgba(240,160,32,.25);}
.avatar-upload-btn{margin-top:10px;}
.verify-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.verify-badge{display:inline-block;font-size:13px;font-weight:700;padding:3px 12px;border-radius:20px;}
.verify-badge.none{color:var(--text-light);background:var(--surface-2);border:1px solid var(--line);}
.verify-badge.reviewing{color:var(--gold-dark);background:var(--notice-warn-bg);border:1px solid var(--notice-warn-line);}
.verify-badge.done{color:var(--green);background:var(--notice-bg);border:1px solid var(--notice-line);}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
.account-actions{margin-top:8px;}

/* 资产详情：卖方节点头像行 */
.seller-line{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text);}
.seller-line .node-line{color:var(--text);font-size:14px;max-width:none;}

@media(max-width:1024px){
  .mini-grid{grid-template-columns:repeat(2,1fr);}
  .mini-grid.cols-3{grid-template-columns:repeat(2,1fr);}
  .step-grid{grid-template-columns:1fr;}
}
@media(max-width:640px){
  /* 手机端：隐藏 PC 扫码区，显示一键登录按钮（JS 按 UA 宽度也会兜底） */
  .wechat-box{display:none;}
  .wechat-onekey{display:block;}
  .form-grid-2{grid-template-columns:1fr;}
  .avatar-edit{gap:14px;}
}
@media(max-width:640px){
  .mini-grid,.mini-grid.cols-3,.mini-grid.cols-2{grid-template-columns:repeat(2,1fr);gap:12px;}
  .plan-banner .pb-actions{margin-left:0;width:100%;}
}

/* ==========================================================================
   响应式断点
   --------------------------------------------------------------------------
   ≤1024px：PC 导航隐藏→汉堡菜单；卡片网格 4列→2列；后台侧栏改为顶部横向
   ≤640px ：卡片 2列→1列；统计数字缩小；详情页单栏；间距字号自适应保疏朗
   ========================================================================== */
@media(max-width:1024px){
  .nav-pc{display:none;}
  .hamburger{display:block;}
  /* 内场页头移动端恢复普通边距；智库品牌头像复位为左对齐 */
  .site-header-console .header-inner,
  .site-header-admin .header-inner{padding:0 16px;}
  .console-brand{margin-left:0;width:auto;flex-direction:row;gap:8px;padding:2px 0;}
  .console-brand-txt{font-size:14px;letter-spacing:1px;}
  .card-grid,.card-grid.cols-3{grid-template-columns:repeat(2,1fr);}
  .dash-grid{grid-template-columns:repeat(3,1fr);}
  .detail-layout{grid-template-columns:1fr;}
  .detail-side{position:static;}
  /* 后台：侧栏变为顶部横向菜单 */
  .console-layout{flex-direction:column;}
  .sidebar{width:100%;display:flex;overflow-x:auto;padding:10px 12px;gap:2px;}
  .sidebar .side-title{display:none;}
  .sidebar a{white-space:nowrap;border-left:none;border-bottom:3px solid transparent;
    padding:10px 14px;}
  .sidebar a.active{border-left:none;border-bottom-color:var(--gold);}
  .console-main{padding:28px 24px;}
}
@media(max-width:640px){
  .header-inner{padding:0 16px;}
  .card-grid,.card-grid.cols-3{grid-template-columns:1fr;}
  .card-grid{gap:18px;}
  .dash-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .hero{padding:52px 16px 60px;}
  .hero-stats{margin-bottom:32px;max-width:100%;}
  .hstat{padding:4px 10px;}
  .hstat-num{font-size:clamp(22px,7vw,28px);}
  .hstat-label{font-size:11.5px;margin-top:5px;letter-spacing:.5px;}
  .hero h1{font-size:clamp(25px,7.2vw,34px);letter-spacing:.5px;}
  .hero-en{letter-spacing:.18em;text-indent:.18em;font-size:11px;margin-bottom:16px;}
  .slogan-band{padding:48px 18px 0;}
  .slogan-line{margin-bottom:20px;}
  .slogan-text{letter-spacing:.5px;}
  .page-banner{padding:44px 18px;}
  .section{padding:52px 18px;}
  .section-head{margin-bottom:22px;}
  .console-main{padding:22px 16px;}
  .form-wrap{padding:24px 18px;}
  .panel{padding:20px;}
  .card{padding:22px;}
  .detail-main{padding:22px;}
  .detail-side{padding:22px;}
  .hero-cta .btn{width:100%;}
  .site-footer{margin-top:56px;padding:36px 16px;}
}

/* ===== 公共渲染函数配套样式（FH.tripleHtml / FH.compareHtml，双主题 CSS 变量） ===== */
.triple-box{margin-top:4px}
.triple-row{padding:14px 16px;border-radius:8px;background:var(--bg);
  border-left:3px solid var(--gold);margin-bottom:10px;font-size:14px;line-height:1.9}
.triple-row b{color:var(--text-blue);margin-right:4px}
.triple-row span{color:var(--text-mid)}
.compare-box{margin-top:8px}
.compare-row{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px;
  background:var(--surface);border-left-width:3px;font-size:13.5px;line-height:1.8}
.compare-row b{font-size:13.5px}
.compare-full{border-left-color:var(--green)}
.compare-full b{color:var(--green)}
.compare-partial{border-left-color:var(--gold)}
.compare-partial b{color:var(--gold-dark)}
.compare-none{border-left-color:var(--red)}
.compare-none b{color:var(--red)}


/* ==================================================================
   v6.2 增补样式（2026-09）—— 三级词表/按次价/登录验证码/备案区/需求详情
   全部使用现有 CSS 变量，双主题自动适配；保持 v4 透明底、描边为主风格。
   ================================================================== */

/* —— 管理员导航项：金色文字突出 —— */
.nav-pc > a.nav-admin,
.mobile-menu a.nav-admin {
  color: var(--gold);
  font-weight: 700;
}
.nav-pc > a.nav-admin:hover,
.mobile-menu a.nav-admin:hover {
  color: var(--gold-dark);
}

/* —— 游客态主转化 CTA：金色实心圆角按钮「我要建库」—— */
.nav-pc > a.nav-cta,
.mobile-menu a.nav-cta {
  background: var(--gold);
  color: #fff;
  font-weight: 700;
  padding: 7px 18px;
  border-radius: 999px;
  line-height: 1.5;
  white-space: nowrap;
}
.nav-pc > a.nav-cta:hover,
.mobile-menu a.nav-cta:hover {
  background: var(--gold-dark);
  color: #fff;
}
.nav-pc > a.nav-cta.active,
.mobile-menu a.nav-cta.active {
  color: #fff;
}
html[data-theme="dark"] .nav-pc > a.nav-cta:hover,
html[data-theme="dark"] .mobile-menu a.nav-cta:hover {
  color: #1A1206;
}

/* —— 数据市场分类 Tab 栏 —— */
.market-cat-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 18px;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--line-soft);
}
.market-cat-tabs .cat-tab {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 15px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text-mid);
  font-size: 13.5px;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
}
.market-cat-tabs .cat-tab:hover {
  border-color: var(--gold);
  color: var(--gold);
}
.market-cat-tabs .cat-tab.active {
  background: var(--gold);
  border-color: var(--gold);
  color: #1A1408;
  font-weight: 600;
}
.market-cat-tabs .cat-tab .tab-count {
  font-size: 12px;
  opacity: .8;
}
/* 「发布定制需求」虚链接右置：推到整行最右；定制采购 tab 保留在正常序列 */
.market-cat-tabs .tab-link-publish {
  margin-left: auto;
  align-self: center;
}
.market-cat-tabs .tab-sep {
  width: 1px;
  align-self: stretch;
  margin: 2px 4px;
  background: var(--line);
}

/* —— 公安备案徽标 —— */
.police-badge {
  display: inline-block;
  margin-right: 4px;
  padding: 0 3px;
  border-radius: 3px;
  background: var(--red);
  color: #fff;
  font-size: 10px;
  line-height: 15px;
  font-weight: 700;
  vertical-align: 1px;
}

/* —— 页脚备案区 —— */
.footer-beian {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.08);
  text-align: center;
  font-size: 12px;
  color: var(--footer-text);
  line-height: 1.9;
}
.footer-beian a,
.footer-beian a:visited {
  color: var(--footer-text);
  text-decoration: none;
}
.footer-beian a:hover { color: var(--gold); }
.footer-beian .beian-sep { opacity: .5; margin: 0 6px; }

/* —— 登录：图形验证码行 / 短信码行 —— */
.captcha-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.captcha-row input { flex: 1; }
.captcha-img {
  flex: none;
  width: 108px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-2);
  cursor: pointer;
  vertical-align: middle;
}
.captcha-tip { font-size: 12px; color: var(--text-light); margin-top: 4px; }
.sms-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sms-row input { flex: 1; }
.sms-send-btn {
  flex: none;
  min-width: 118px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--gold);
  border-radius: 8px;
  background: transparent;
  color: var(--gold);
  font-size: 13.5px;
  cursor: pointer;
  white-space: nowrap;
}
.sms-send-btn:hover:not(:disabled) { background: var(--gold); color: #1A1408; }
.sms-send-btn:disabled {
  border-color: var(--line);
  color: var(--text-light);
  cursor: not-allowed;
  background: var(--surface-gray);
}
.login-tabs {
  display: flex;
  gap: 22px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.login-tabs .login-tab {
  padding: 8px 2px;
  font-size: 15px;
  color: var(--text-mid);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: none;
  border-left: 0; border-right: 0; border-top: 0;
}
.login-tabs .login-tab.active {
  color: var(--gold);
  font-weight: 600;
  border-bottom-color: var(--gold);
}

/* —— 后台分类管理：三级栏（分类 / 维度 / 标签） —— */
.taxonomy-layout {
  display: grid;
  grid-template-columns: 200px 1fr 1.4fr;
  gap: 16px;
  align-items: start;
}
.taxo-col {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px;
  min-height: 220px;
}
.taxo-col-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-mid);
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--line-soft);
}
.taxo-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-bottom: 8px;
  background: var(--surface);
  cursor: pointer;
  font-size: 13.5px;
  transition: border-color .15s;
}
.taxo-item:hover { border-color: var(--gold); }
.taxo-item.active {
  border-color: var(--gold);
  background: var(--notice-warn-bg);
  font-weight: 600;
}
.taxo-item .taxo-name { flex: 1; min-width: 0; word-break: break-all; }
.taxo-item .taxo-meta { font-size: 11.5px; color: var(--text-light); }
.taxo-item.disabled {
  opacity: .55;
  background: var(--surface-gray);
  border-style: dashed;
}
.taxo-item.disabled .taxo-name { text-decoration: line-through; color: var(--text-light); }
.taxo-item-ops { display: flex; gap: 6px; flex: none; }
.taxo-item-ops button {
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--text-mid);
  border-radius: 6px;
  font-size: 12px;
  padding: 2px 8px;
  cursor: pointer;
}
.taxo-item-ops button:hover { border-color: var(--gold); color: var(--gold); }
.taxo-item-ops button.danger:hover { border-color: var(--red); color: var(--red); }
.taxo-add {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.taxo-add input {
  flex: 1;
  min-width: 0;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--input-bg);
  color: var(--text);
  font-size: 13px;
}
.taxo-add button {
  flex: none;
  height: 34px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  background: var(--gold);
  color: #1A1408;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

/* —— 需求详情 —— */
.dd-spec {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px 18px;
  margin: 14px 0;
}
.dd-spec h4 { margin: 0 0 10px; font-size: 14.5px; }
.dd-deliverable {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 12px 0;
}
.dd-deliverable h3 { margin: 0; font-size: 16px; }
.dd-deliverable .dlv-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.dd-deliverable .dlv-chip {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px 12px;
  text-align: center;
}
.dd-deliverable .dlv-chip .dlv-num {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: var(--gold-dark);
  line-height: 1.2;
}
.dd-deliverable .dlv-chip .dlv-label {
  display: block;
  font-size: 12px;
  color: var(--text-light);
  margin-top: 3px;
}
.bid-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px 18px;
  margin-bottom: 12px;
}
.bid-card.win { border-color: var(--green); background: rgba(26,158,107,.06); }
.bid-card.lose { opacity: .6; }
.bid-card .bid-main { flex: 1; min-width: 0; }
.bid-card .bid-seller { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
/* 投标审核弹窗：四数量（字/维度/标签/切片）2×2 */
.bid-card .dlv-chips {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin: 10px 0 2px;
}
.bid-card .dlv-chips .dlv-chip {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  text-align: center;
}
.bid-card .dlv-chips .dlv-num { display: block; font-size: 18px; font-weight: 700; color: var(--gold-dark); line-height: 1.2; }
.bid-card .dlv-chips .dlv-label { display: block; font-size: 12px; color: var(--text-light); margin-top: 2px; }
.bid-card .dlv-chips .dlv-chip-wide { grid-column: 1 / -1; background: transparent; border: none; padding: 2px 0; text-align: left; }
.bid-card .bid-compare { width: 100%; box-sizing: border-box; }
.bid-actions {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
  width: 100%;
}
.bid-actions .btn { flex: none; }

/* —— 三段式三个 textarea 区 —— */
.form-three {
  display: grid;
  gap: 12px;
}
.form-three .three-field label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-mid);
  margin-bottom: 5px;
}
.form-three .three-field label .three-tag {
  display: inline-block;
  margin-right: 6px;
  padding: 0 7px;
  border-radius: 5px;
  background: var(--notice-bg);
  color: var(--notice-text);
  font-size: 11.5px;
  font-weight: 600;
}
.form-three textarea {
  width: 100%;
  min-height: 76px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--input-bg);
  color: var(--text);
  font-size: 13.5px;
  line-height: 1.6;
  resize: vertical;
  font-family: inherit;
}
.form-three textarea:focus { outline: none; border-color: var(--gold); }

/* —— 移动端响应式：三级栏单列 —— */
@media (max-width: 760px) {
  .taxonomy-layout {
    grid-template-columns: 1fr;
  }
  .market-cat-tabs .tab-cat-custom { margin-left: 0; }
  .market-cat-tabs .tab-link-publish { margin-left: 0; align-self: auto; }
  .market-cat-tabs .tab-sep { display: none; }
  .captcha-img { width: 96px; }
}
.banner-publish-link { margin-left: 16px; font-size: 14px; color: var(--gold); text-decoration: none; font-weight: 600; white-space: nowrap; align-self: center; }
.banner-publish-link:hover { opacity: 0.85; }

/* ==========================================================================
   智库驾驶仓 · 仪表盘（Dashboard）
   结构：顶栏状态条 → KPI 磁贴带 → 卡片网格（动议/计划跨两列，例会/资产两列，连接跨两列）
   ========================================================================== */

/* —— 状态圆点（绿=正常，黄=忙/待，灰=未接） —— */
.agent-dot, .pc-dot, .me-dot, .conn-dot {
  width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: none;
}
.dot-ok { background: var(--green); box-shadow: 0 0 0 3px rgba(26,158,107,.15); }
.dot-busy { background: #E8B020; box-shadow: 0 0 0 3px rgba(232,176,32,.18); }
.dot-off { background: var(--text-light); box-shadow: none; }

/* —— 顶栏状态条 —— */
.cockpit-topbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
  padding: 12px 18px; margin-bottom: 18px;
}
.cockpit-topbar .ctx-left { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ctx-capsule {
  font-size: 13px; font-weight: 600; color: var(--text-blue);
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 20px; padding: 4px 14px;
}
.meeting-cd { font-size: 13px; color: var(--text-mid); }
.meeting-cd b { color: var(--gold-dark); font-size: 15px; }
.agent-status-line { display: flex; align-items: center; gap: 10px; }
.agent-pill {
  display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text);
  padding: 4px 12px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface-2);
}
.topbar-actions { display: flex; gap: 8px; }

/* —— KPI 指标磁贴带 —— */
.kpi-strip {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 20px;
}
.kpi-tile {
  text-align: left; cursor: pointer; background: var(--surface); border: 1px solid var(--line);
  border-radius: 12px; padding: 16px 18px; position: relative; overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.kpi-tile::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--line);
}
.kpi-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(10,47,92,.10); border-color: var(--line); }
.kpi-tile .kpi-label { font-size: 13px; color: var(--text-mid); margin-bottom: 8px; }
.kpi-tile .kpi-value { font-size: 26px; font-weight: 700; color: var(--text-blue); line-height: 1.1; }
.kpi-tile .kpi-sub { font-size: 12px; color: var(--text-light); margin-top: 6px; }
.kpi-ok::before { background: var(--green); }
.kpi-warn::before { background: #E8B020; }
.kpi-warn .kpi-value { color: var(--gold-dark); }
.kpi-gold::before { background: var(--gold); }
.kpi-gold .kpi-value { color: var(--gold-dark); }
.kpi-normal::before { background: var(--blue-light); }

/* —— 卡片网格 —— */
.cockpit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.cockpit-panel { padding: 18px 20px; border-radius: 12px; }
.cockpit-panel.span-2 { grid-column: 1 / -1; }
.cockpit-panel .cp-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px;
}
.cockpit-panel .cs-title { font-size: 16px; font-weight: 700; color: var(--text-blue); margin: 0; display: flex; align-items: center; gap: 8px; }
.cs-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 6px; font-size: 12.5px; font-weight: 700;
  background: var(--blue); color: #fff; flex: none;
}
html[data-theme="dark"] .cs-num { background: var(--blue-light); }
.cs-tag { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 14px; }
.tag-warn { color: var(--gold-dark); background: rgba(240,160,32,.12); }
.tag-ok { color: var(--green); background: rgba(26,158,107,.12); }
.cs-hint { font-size: 12px; color: var(--text-light); }

/* —— 动议卡 —— */
.motion-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.motion-card {
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px;
  display: flex; flex-direction: column; gap: 9px;
}
.motion-card .mc-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.mc-type-badge {
  font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 6px;
  background: var(--blue); color: #fff;
}
html[data-theme="dark"] .mc-type-badge { background: var(--blue-light); }
.mc-type-badge.mc-budget { background: var(--gold-dark); }
.mc-type-badge.mc-bidaward { background: var(--green); }
.mc-time { font-size: 12px; color: var(--text-light); }
.motion-card .mc-title { font-size: 15px; font-weight: 700; color: var(--text-blue); line-height: 1.4; }
.motion-card .mc-basis, .motion-card .mc-advice {
  font-size: 13px; color: var(--text-mid); line-height: 1.55; display: flex; gap: 8px;
}
.motion-card .mc-label {
  flex: none; font-size: 11.5px; font-weight: 600; color: var(--text-blue);
  background: var(--surface); border: 1px solid var(--line); border-radius: 5px; padding: 1px 7px; height: fit-content; margin-top: 1px;
}
.motion-card .mc-advice { color: var(--text); }
.motion-card .mc-actions { display: flex; gap: 8px; margin-top: 2px; }
.motion-empty {
  display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--text-mid);
  background: var(--surface-2); border: 1px dashed var(--line); border-radius: 10px; padding: 16px 18px;
}

/* —— 计划完成率总条 —— */
.plan-completion-bar { margin-bottom: 16px; }
.plan-completion-bar .pcb-top { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 7px; }
.plan-completion-bar .pcb-top span { font-size: 13px; color: var(--text-mid); }
.plan-completion-bar .pcb-top b { font-size: 22px; color: var(--gold-dark); }
.pcb-track { height: 9px; background: var(--surface-2); border-radius: 5px; overflow: hidden; border: 1px solid var(--line); }
.pcb-fill { height: 100%; background: linear-gradient(90deg, var(--gold), var(--gold-dark)); border-radius: 5px; transition: width .4s ease; }
.pcb-fill.done { background: var(--green); }

/* —— 计划双栏 —— */
.plan-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.plan-col {
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px;
}
.plan-col .pc-sub-head {
  display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--text-blue);
  padding-bottom: 10px; margin-bottom: 4px; border-bottom: 1px solid var(--line);
}
/* 驾驶舱内进度行：覆盖旧的上下留白样式 */
.plan-col .progress-row { padding: 10px 0; border-bottom: 1px dashed var(--line-soft); }
.plan-col .progress-row:last-child { border-bottom: none; }
.plan-col .progress-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.plan-col .p-name { font-size: 13px; color: var(--text); display: inline-flex; align-items: center; gap: 5px; }
.plan-warn { color: var(--gold-dark); }
.plan-col .p-val { font-size: 12.5px; color: var(--text-mid); }
.plan-col .progress-track { height: 6px; }
.plan-col .progress-fill { min-width: 0; }
.plan-gateway-note {
  margin-top: 14px; font-size: 12.5px; color: var(--text-mid); line-height: 1.6;
  background: var(--surface-2); border-left: 3px solid var(--gold); border-radius: 0 8px 8px 0; padding: 10px 14px;
}

/* —— 月度例会 —— */
.meeting-card {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px;
}
.meeting-when { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.meeting-when .mw-label { font-size: 12px; color: var(--text-light); }
.meeting-when b { font-size: 14.5px; color: var(--text-blue); }
.meeting-cd-pill { font-size: 12px; font-weight: 600; color: var(--gold-dark); background: rgba(240,160,32,.12); border-radius: 12px; padding: 2px 10px; }
.meeting-card .meeting-btns { display: flex; gap: 8px; }
.meeting-flow { margin-top: 10px; font-size: 12.5px; color: var(--text-light); }

/* —— 资产与经营 —— */
.asset-business { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ab-item {
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px;
}
.ab-item .ab-num { font-size: 24px; font-weight: 700; color: var(--text-blue); line-height: 1.1; }
.ab-item .ab-label { font-size: 12.5px; color: var(--text-mid); margin-top: 5px; }
.ab-item.ab-income .ab-num { color: var(--gold-dark); }

/* —— 连接管理 —— */
.conn-list { display: flex; flex-direction: column; gap: 10px; }
.conn-row {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 11px 16px;
}
.conn-type {
  font-size: 12.5px; font-weight: 600; color: var(--text-blue);
  background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 2px 10px; min-width: 64px; text-align: center;
}
.conn-name { font-size: 13.5px; color: var(--text); flex: 1; min-width: 120px; }
.conn-state { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--text-mid); min-width: 72px; }

/* —— 驾驶舱响应式 —— */
@media (max-width: 1080px) {
  .kpi-strip { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .cockpit-grid, .motion-grid, .plan-cols { grid-template-columns: 1fr; }
  .cockpit-panel.span-2 { grid-column: auto; }
  .asset-business { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .kpi-strip { grid-template-columns: 1fr; }
  .cockpit-topbar { align-items: flex-start; }
}

/* ============================================================
   V9.2 · 首页 / 数据市场 / 能力市场 三页全屏宽（仅这三页；登录页顶部导航与其统一满宽）
   - 通过 body[data-page] 限定作用域，其余页面维持 --maxw:1140 居中不变
   - 只解除“居中定宽”，不改卡片网格列数/间距/配色
   - 页眉内容与内容区距左右边各留 40px 安全边距（手机 16px），不贴死屏幕边
   - 登录页仅顶部导航满宽与三页统一，其左主视觉+右登录卡布局本就满宽、不改动
   - hero / 横幅内的标题、搜索框按原设计保持居中，不铺满
   ============================================================ */
body[data-page="home"]   .header-inner,
body[data-page="market"] .header-inner,
body[data-page="plugins"] .header-inner,
body[data-page="login"] .header-inner,
body[data-page="search"] .header-inner,
body[data-page="home"]   .section,
body[data-page="market"] .section,
body[data-page="plugins"] .section,
body[data-page="search"] .section,
body[data-page="home"]   .slogan-band,
.container-fluid {
  max-width: none;
  padding-left: 40px;
  padding-right: 40px;
}
/* 市场 Tab 条在已加宽的 .section 内：取消自身 1140 居中，与下方卡片网格对齐（不加内边距） */
body[data-page="market"] .market-tabs {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
@media (max-width: 640px) {
  body[data-page="home"]   .header-inner,
  body[data-page="market"] .header-inner,
  body[data-page="plugins"] .header-inner,
  body[data-page="login"] .header-inner,
  body[data-page="search"] .header-inner,
  body[data-page="home"]   .section,
  body[data-page="market"] .section,
  body[data-page="plugins"] .section,
  body[data-page="search"] .section,
  body[data-page="home"]   .slogan-band,
  .container-fluid {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* ============================================================
   V9.2 · 首页首屏 Hero 占满整屏 + 文案随屏放大（仅首页、仅 ≥641px）
   - .hero 高度占满视口(min-height:100vh)、flex 垂直水平居中；背景图原已 cover/center 铺满
   - 放开原 h1/英文眉题/三组数字被 clamp 封死的字号上限，随屏宽同步放大
   - “AI时代的数据油田”等第二屏内容本就在 hero 之外，hero 占满后自动落到折叠线以下，滚动才见（不改 HTML）
   - 透明导航仍 position:fixed 悬浮贴顶；≤640px 手机沿用原移动端样式，不套用本块
   ============================================================ */
@media (min-width: 641px) {
  body[data-page="home"] .hero {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(96px, 12vh, 132px) 24px clamp(56px, 8vh, 90px);
  }
  body[data-page="home"] .hero-inner { width: 100%; max-width: min(1500px, 92vw); margin: 0 auto; }
  body[data-page="home"] .hero-stats { max-width: 880px; margin-bottom: clamp(40px, 7vh, 78px); }
  body[data-page="home"] .hstat-num { font-size: clamp(40px, 4.2vw, 68px); }
  body[data-page="home"] .hstat-label { font-size: clamp(15px, 1.2vw, 19px); margin-top: 10px; }
  body[data-page="home"] .hero-en { font-size: clamp(14px, 1.25vw, 21px); margin-bottom: clamp(20px, 2.6vh, 30px); }
  body[data-page="home"] .hero h1 {
    font-size: clamp(40px, 5.4vw, 88px);
    line-height: 1.22;
    margin-bottom: clamp(18px, 2.8vh, 30px);
    text-wrap: balance;   /* 中等屏若需折行，浏览器均衡断行，避免单字掉队 */
  }
  body[data-page="home"] .hero-desc {
    max-width: 920px;
    font-size: clamp(17px, 1.5vw, 23px);
    margin-bottom: clamp(32px, 5vh, 52px);
  }
  body[data-page="home"] .hero-cta .btn {
    padding: clamp(15px, 1.7vh, 20px) clamp(40px, 3.4vw, 60px);
    font-size: clamp(17px, 1.35vw, 21px);
  }
}

/* 宽屏（≥1280px）：主标题整句一排居中。
   文字框放宽到 96vw，字号系数 3.9vw —— 全句约 22.5 个字宽 ≈ 88vw，留出标点/字重余量，
   任意主流宽屏(1280~3000+)都恰好一行；white-space:nowrap 锁死，绝不折出单字。 */
@media (min-width: 1280px) {
  body[data-page="home"] .hero-inner { max-width: 96vw; }
  body[data-page="home"] .hero h1 {
    font-size: clamp(46px, 3.9vw, 118px);
    white-space: nowrap;
  }
}
