/* ===== 版全街公共样式 - 蓝色商务风 ===== */
:root {
  /* ===== 设计系统 DS v1.0 令牌（2026-09-30，何总拍板）===== */
  --ds-blue:#1A5DB4; --ds-blue-d:#134A92; --ds-blue-l:#E8F1FC;
  --ds-green:#16A34A; --ds-green-l:#E7F6EC;
  --ds-amber:#D97706; --ds-amber-l:#FEF3E2;
  --ds-red:#DC2626; --ds-red-l:#FDECEC;
  --ds-purple:#5046C9; --ds-purple-l:#EEF0FF;
  --ds-ink:#1F2733; --ds-ink2:#5A6573; --ds-ink3:#6B7585;
  --ds-line:#EAECEF; --ds-bg:#F4F6F9; --ds-card:#FFFFFF;
  --ds-fs-xs:11px; --ds-fs-sm:12.5px; --ds-fs-base:13.5px; --ds-fs-md:15px;
  --ds-fs-lg:17px; --ds-fs-xl:20px; --ds-fs-2xl:24px; --ds-fs-3xl:30px;
  --ds-sp-1:4px; --ds-sp-2:8px; --ds-sp-3:12px; --ds-sp-4:16px;
  --ds-sp-5:20px; --ds-sp-6:24px; --ds-sp-8:32px;
  --ds-r-sm:8px; --ds-r-md:11px; --ds-r:14px; --ds-r-lg:20px; --ds-r-pill:999px;
  --ds-sh-sm:0 1px 3px rgba(20,45,90,.06);
  --ds-sh:0 4px 16px rgba(20,45,90,.07);
  --ds-sh-lg:0 12px 32px rgba(20,45,90,.12);
  --ds-sh-blue:0 8px 22px rgba(26,93,180,.28);
  --ds-font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  /* ===== 旧变量名兼容映射：不改名即可获得新观感（换肤核心）===== */
  --primary:var(--ds-blue);
  --primary-light:#2B7DE9;
  --primary-lighter:var(--ds-blue-l);
  --primary-dark:var(--ds-blue-d);
  --success:var(--ds-green);
  --warning:var(--ds-amber);
  --danger:var(--ds-red);
  --info:#3B82F6;
  --text-primary:var(--ds-ink);
  --text-secondary:var(--ds-ink2);
  --text-muted:var(--ds-ink3);
  --border:var(--ds-line);
  --bg:var(--ds-bg);
  --white:#FFFFFF;
  --shadow-sm:var(--ds-sh-sm);
  --shadow:var(--ds-sh);
  --shadow-lg:var(--ds-sh-lg);
  --radius:var(--ds-r-sm);
  --radius-sm:6px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html, body { overflow-x: clip; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif; color:var(--text-primary); background:var(--bg); line-height:1.6; -webkit-font-smoothing:antialiased; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
img { max-width:100%; }

/* Header */
.header { position:fixed; top:0; left:0; right:0; background:var(--white); box-shadow:0 2px 8px rgba(26,93,180,0.10); z-index:1000; height:64px; border-bottom:2px solid var(--primary); }
.header-inner { max-width:1280px; margin:0 auto; display:flex; align-items:center; height:100%; padding:0 24px; }
.logo { font-size:24px; font-weight:800; color:var(--primary); margin-right:40px; letter-spacing:1px; }
.logo span { color:var(--text-primary); }
.nav { display:flex; gap:4px; flex:1; }
.nav a { font-size:15px; font-weight:500; color:var(--text-secondary); padding:8px 16px; border-radius:var(--radius-sm); transition:all .2s; }
.nav a:hover { color:var(--primary); }
.nav a.active { color:#1A5DB4!important; font-weight:600; background:rgba(26,93,180,0.08); }
.header-actions { display:flex; gap:10px; align-items:center; }
.btn-login { padding:7px 20px; border:1.5px solid var(--primary); color:var(--primary); border-radius:var(--radius-sm); font-size:14px; font-weight:600; transition:all .2s; }
.btn-login:hover { background:var(--primary-lighter); }
.btn-register { padding:7px 20px; background:var(--primary); color:var(--white); border-radius:var(--radius-sm); font-size:14px; font-weight:600; transition:all .2s; }
.btn-register:hover { background:var(--primary-dark); }

/* Footer */
.footer { background:#1A1A2E; color:#A0AEC0; padding:48px 0 24px; margin-top:48px; }
.footer-inner { max-width:1280px; margin:0 auto; padding:0 24px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:32px; }
.footer-brand h3 { color:var(--primary-light); font-size:22px; margin-bottom:12px; }
.footer-brand p { font-size:13px; line-height:1.8; }
.footer-col h4 { color:var(--white); font-size:15px; font-weight:600; margin-bottom:14px; }
.footer-col a { display:block; font-size:13px; color:#A0AEC0; margin-bottom:8px; transition:color .2s; }
.footer-col a:hover { color:var(--primary-light); }
.footer-bottom { border-top:1px solid #2D3748; padding-top:20px; text-align:center; font-size:12px; color:#718096; }

/* ===== 移动端页脚精简（何总10-01：PC不动，手机不拉长） ===== */
@media (max-width:640px) {
  .footer { padding:24px 0 16px; margin-top:28px; }
  .footer-inner { padding:0 16px; }
  .footer-grid { display:block; margin-bottom:16px; }
  .footer-brand { margin-bottom:12px; }
  .footer-brand h3 { font-size:18px; margin-bottom:6px; }
  .footer-brand p { font-size:12px; line-height:1.6; margin:0; }
  /* 三列链接收成两行高频链接 */
  .footer-col { display:flex; flex-wrap:wrap; gap:0 16px; margin-bottom:10px; }
  .footer-col h4 { display:none; }
  .footer-col a { font-size:13px; margin-bottom:8px; }
  /* 联系我们列：只留公司名 */
  .footer-grid > .footer-col:last-of-type a:not(:first-child) { display:none; }
  .footer-bottom { padding-top:14px; font-size:11px; line-height:1.7; }
}


/* Container */
.container { max-width:1280px; margin:0 auto; padding:0 24px; }

/* Section */
.section { padding:40px 0; }
.section-title { font-size:22px; font-weight:700; margin-bottom:6px; color:var(--text-primary); }
.section-sub { font-size:13px; color:var(--text-muted); margin-bottom:24px; }

/* Card */
.card { background:var(--white); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--border); transition:all .25s; }
.card:hover { box-shadow:var(--shadow-lg); transform:translateY(-2px); border-color:var(--primary-lighter); }

/* Tag */
.tag { display:inline-block; padding:3px 10px; background:var(--primary-lighter); color:var(--primary); border-radius:4px; font-size:12px; font-weight:500; }
.tag-green { background:#E6F9F1; color:var(--success); }
.tag-orange { background:#FEF3C7; color:var(--warning); }
.tag-red { background:#FEE2E2; color:var(--danger); }
.tag-gray { background:#F1F5F9; color:var(--text-secondary); }

/* Button */
.btn { display:inline-block; padding:10px 24px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; cursor:pointer; transition:all .2s; border:none; text-align:center; }
.btn-primary { background:var(--primary); color:var(--white); }
.btn-primary:hover { background:var(--primary-dark); box-shadow:0 2px 8px rgba(26,93,180,0.3); }
.btn-outline { border:1.5px solid var(--primary); color:var(--primary); background:var(--white); }
.btn-outline:hover { background:var(--primary-lighter); }
.btn-success { background:var(--success); color:var(--white); }
.btn-success:hover { background:#0B8A5E; }
.btn-warning { background:var(--warning); color:var(--white); }
.btn-danger { background:var(--danger); color:var(--white); }
.btn-sm { padding:6px 14px; font-size:13px; }
.btn-lg { padding:12px 32px; font-size:16px; }
.btn-block { display:block; width:100%; }

/* Form */
.form-group { margin-bottom:20px; }
.form-label { display:block; font-size:14px; font-weight:600; color:var(--text-primary); margin-bottom:6px; }
.form-label .required { color:var(--danger); }
.form-input, .form-select, .form-textarea { width:100%; padding:10px 14px; border:1.5px solid var(--border); border-radius:var(--radius-sm); font-size:14px; color:var(--text-primary); transition:border .2s; outline:none; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(26,93,180,0.1); }
.form-textarea { min-height:100px; resize:vertical; }
.form-hint { font-size:12px; color:var(--text-muted); margin-top:4px; }

/* ===== v4.9.3 说明文字图标化（何总09-27立）：问号悬停/点击弹出，不占位 ===== */
.bq-qwrap{position:relative;display:inline-block;vertical-align:middle;}
.bq-q{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:5px;border-radius:50%;background:#1A5DB4;color:#fff;font-size:10px;font-weight:700;font-family:Arial,sans-serif;cursor:pointer;vertical-align:middle;line-height:1;user-select:none;transition:background .15s;font-style:normal;}
.bq-q:hover{background:#134a92;}
.bq-pop{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:#1f2d3d;color:#eef4fb;font-size:12px;font-weight:400;line-height:1.7;padding:9px 11px;border-radius:8px;box-shadow:0 6px 20px rgba(15,35,70,.24);width:240px;z-index:9999;display:none;text-align:left;}
.bq-pop::after{content:'';position:absolute;top:100%;left:50%;margin-left:-6px;border-width:6px;border-style:solid;border-color:#1f2d3d transparent transparent transparent;}
.bq-pop.wide{width:300px;}
.bq-qwrap.show .bq-pop{display:block;}

.form-error { font-size:12px; color:var(--danger); margin-top:4px; }

/* Breadcrumb */
.breadcrumb { font-size:13px; color:var(--text-muted); padding:16px 0; }
.breadcrumb a { color:var(--text-secondary); }
.breadcrumb a:hover { color:var(--primary); }
.breadcrumb span { margin:0 8px; }

/* Pagination */
.pagination { display:flex; justify-content:center; gap:6px; margin-top:32px; }
.pagination a, .pagination span { display:inline-block; padding:8px 14px; border:1px solid var(--border); border-radius:var(--radius-sm); font-size:13px; color:var(--text-secondary); transition:all .2s; }
.pagination a:hover { border-color:var(--primary); color:var(--primary); background:var(--primary-lighter); }
.pagination .active { background:var(--primary); color:var(--white); border-color:var(--primary); }

/* Badge */
.badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:600; }
.badge-success { background:#E6F9F1; color:var(--success); }
.badge-warning { background:#FEF3C7; color:var(--warning); }
.badge-danger { background:#FEE2E2; color:var(--danger); }
.badge-info { background:var(--primary-lighter); color:var(--primary); }

/* Table */
.data-table { width:100%; border-collapse:collapse; background:var(--white); }
.data-table th { background:#F8FAFC; padding:14px 16px; text-align:left; font-size:13px; font-weight:700; color:var(--text-primary); border-bottom:2px solid var(--border); }
.data-table td { padding:14px 16px; font-size:13px; color:var(--text-secondary); border-bottom:1px solid var(--border); }
.data-table tr:hover td { background:var(--primary-lighter); }

/* Stat Card */
.stat-card { background:var(--white); border-radius:var(--radius); padding:24px; border:1px solid var(--border); box-shadow:var(--shadow-sm); }
.stat-card .stat-value { font-size:32px; font-weight:800; color:var(--primary); line-height:1.2; }
.stat-card .stat-label { font-size:13px; color:var(--text-muted); margin-top:4px; }
.stat-card .stat-trend { font-size:12px; margin-top:8px; }

/* Admin Layout — 壳层基线：品牌只在侧栏；顶栏仅内容区；页内勿再写 top:56px/left:0 顶栏 */
.admin-body { display:flex; min-height:100vh; }
.admin-sidebar { width:220px; background:#001529; color:#CBD5E0; flex-shrink:0; position:fixed; top:0; left:0; bottom:0; overflow:hidden; z-index:1001; display:flex; flex-direction:column; box-sizing:border-box; }
.admin-sidebar .sidebar-brand { display:flex; align-items:baseline; gap:8px; padding:18px 20px; font-size:16px; font-weight:700; color:#fff; border-bottom:1px solid #2D3748; flex-shrink:0; }
.admin-sidebar .sidebar-brand > span { font-size:13px; font-weight:500; color:rgba(255,255,255,.55); }
.admin-sidebar .sidebar-menu { padding:12px 0; flex:1; overflow-y:auto; min-height:0; }
.admin-sidebar .sidebar-menu a { display:flex; align-items:center; gap:10px; padding:12px 20px; font-size:14px; color:#A0AEC0; transition:all .2s; border-left:3px solid transparent; }
.admin-sidebar .sidebar-menu a:hover { background:#2D3748; color:var(--white); }
.admin-sidebar .sidebar-menu a.active { background:rgba(26,93,180,0.15); color:var(--primary-light); border-left-color:var(--primary-light); }
.admin-main { margin-left:220px; flex:1; min-height:100vh; }
.admin-topbar { background:var(--white); height:56px; display:flex; align-items:center; justify-content:flex-end; padding:0 24px; box-shadow:var(--shadow-sm); position:fixed; top:0; left:220px; right:0; z-index:900; box-sizing:border-box; border-bottom:1px solid #eef0f4; }
.admin-topbar .logo,
.admin-topbar .subtitle,
.admin-topbar .topbar-left,
.admin-topbar .hamburger { display:none !important; }
.admin-content { margin-left:220px; margin-top:56px; padding:24px; }

/* Toast */
.toast-container { position:fixed; top:80px; right:24px; z-index:9999; }
.toast { padding:12px 20px; border-radius:var(--radius-sm); font-size:14px; color:var(--white); margin-bottom:8px; box-shadow:var(--shadow-lg); animation:slideIn .3s; }
.toast-success { background:var(--success); }
.toast-error { background:var(--danger); }
.toast-info { background:var(--primary); }
.toast-warning { background:var(--warning); }
@keyframes slideIn { from{transform:translateX(100%);opacity:0;} to{transform:translateX(0);opacity:1;} }

/* Modal */
.modal-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:2000; display:flex; align-items:center; justify-content:center; }
.modal { background:var(--white); border-radius:var(--radius); max-width:500px; width:90%; max-height:85vh; overflow-y:auto; box-shadow:var(--shadow-lg); }
.modal-header { padding:20px 24px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; }
.modal-header h3 { font-size:18px; font-weight:700; }
.modal-close { background:none; border:none; font-size:24px; cursor:pointer; color:var(--text-muted); }
.modal-body { padding:24px; }
.modal-footer { padding:16px 24px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:10px; }

/* Grid Helpers */
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.grid-5 { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }

/* Responsive */
@media (max-width:1024px) {
  .grid-4 { grid-template-columns:repeat(3,1fr); }
  .grid-5 { grid-template-columns:repeat(3,1fr); }
  .grid-3 { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); gap:32px; }
  /* 后台侧栏 ≤1024 统一抽屉式（60px窄条菜单文字消失不可用） */
  .admin-sidebar { width:220px; transform:translateX(-100%); transition:transform .3s ease; z-index:1100; }
  .admin-sidebar.open { transform:translateX(0); }
  .admin-main { margin-left:0 !important; }
  .admin-content { margin-left:0 !important; }
}
@media (max-width:768px) {
  .nav { display:none; }
  .grid-4, .grid-5, .grid-3, .grid-2 { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  /* 后台侧栏：抽屉式（统一兜底，覆盖各后台页；展开靠 .open） */
  .admin-sidebar { display:block; transform:translateX(-100%); transition:transform .3s ease; z-index:1100; }
  .admin-sidebar.open { transform:translateX(0); width:220px !important; }
  .admin-main, .admin-content { margin-left:0 !important; padding-left:14px; padding-right:14px; }
}

/* ===== 版本号徽章 ===== */
.version-badge {
  display:inline-flex; align-items:center;
  margin-left:8px;
  padding:2px 8px;
  font-size:11px; font-weight:600; line-height:1.4;
  color:#fff;
  background:linear-gradient(135deg,#1A5DB4,#2B7DE9);
  border-radius:10px;
  letter-spacing:.3px;
  white-space:nowrap;
  box-shadow:0 1px 3px rgba(26,93,180,.35);
  cursor:help;
}
.version-badge::before {
  content:''; display:inline-block;
  width:5px; height:5px; border-radius:50%;
  background:#4ADE80; margin-right:5px;
  box-shadow:0 0 0 2px rgba(74,222,128,.25);
}
.sidebar-version {
  display:block;
  margin-top:4px;
  font-style:normal;
  font-size:11px; font-weight:600;
  color:#7DD3FC;
  letter-spacing:.5px;
}
.sidebar-brand { position:relative; }
@media (max-width:1024px) {
  .version-badge { font-size:10px; padding:1px 6px; }
}

/* ===== API 状态徽章（双版本显示） ===== */
.version-badge.fe-ver {
  background:linear-gradient(135deg,#1A5DB4,#2B7DE9);
}
.api-badge {
  display:inline-flex; align-items:center;
  margin-left:6px;
  padding:2px 8px;
  font-size:11px; font-weight:600; line-height:1.4;
  color:#fff; border-radius:10px;
  letter-spacing:.3px; white-space:nowrap;
  cursor:help;
  box-shadow:0 1px 3px rgba(0,0,0,.18);
  transition:background .3s;
}
.api-badge::before {
  content:''; display:inline-block;
  width:6px; height:6px; border-radius:50%;
  margin-right:5px;
  background:currentColor;
  box-shadow:0 0 0 2px rgba(255,255,255,.25);
  animation:api-pulse 1.6s infinite;
}
.api-badge.api-loading { background:#64748B; }
.api-badge.api-online  { background:#0E9F6E; }
.api-badge.api-offline { background:#DC2626; animation:none; }
.api-badge.api-offline::before { animation:none; }
@keyframes api-pulse {
  0%,100% { opacity:1; transform:scale(1); }
  50% { opacity:.55; transform:scale(.8); }
}
.sidebar-api {
  display:block;
  margin-top:3px;
  font-style:normal;
  font-size:11px; font-weight:600;
  letter-spacing:.4px;
  padding:2px 6px; border-radius:4px;
  width:fit-content;
}
.sidebar-api-online  { color:#A7F3D0; background:rgba(14,159,110,.18); }
.sidebar-api-offline { color:#FCA5A5; background:rgba(220,38,38,.22); }
.footer-api-online  { color:#0E9F6E; font-weight:600; }
.footer-api-offline { color:#DC2626; font-weight:600; }

/* ===== 后台侧边栏底部版本信息 ===== */
.admin-sidebar { display:flex; flex-direction:column; }
.admin-sidebar .sidebar-menu { flex:1; overflow-y:auto; }
.sidebar-footer {
  margin-top:auto;
  padding:12px 16px;
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.25);
  font-size:12px;
  color:#94A3B8;
}
.sidebar-ver-line {
  display:flex; justify-content:space-between; align-items:center;
  padding:3px 0;
}
.sidebar-ver-line span { color:#64748B; }
.sidebar-ver-line b { font-weight:600; color:#CBD5E1; letter-spacing:.3px; }
.sidebar-ver-line b.api-online  { color:#4ADE80; }
.sidebar-ver-line b.api-offline { color:#F87171; }
.sidebar-ver-line b.api-loading { color:#FBBF24; }

/* ===== v1.0.9 新增样式 ===== */
/* Header 发布按钮和下拉菜单 */
.header-publish-dropdown { position: relative; display: inline-block; }
.btn-publish-main {
  background: linear-gradient(135deg, #1A5DB4, #2B7DE9);
  color: #fff; border: none; padding: 6px 16px; border-radius: 6px;
  font-size: 13px; cursor: pointer; display: flex; align-items: center; gap: 4px;
  font-weight: 500; transition: all .2s;
}
.btn-publish-main:hover { background: linear-gradient(135deg, #134A8F, #1A5DB4); transform: translateY(-1px); box-shadow: 0 2px 8px rgba(26,93,180,0.3); }
.publish-menu {
  position: absolute; top: calc(100% + 8px); right: 0; background: #fff;
  border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.12); min-width: 180px;
  z-index: 1001; overflow: hidden; padding: 4px 0;
}
.publish-menu a {
  display: flex; align-items: center; gap: 8px; padding: 10px 16px;
  font-size: 14px; color: #1A1A2E; transition: background .15s;
}
.publish-menu a:hover { background: #E8F1FC; color: #1A5DB4; }


/* bqj-ic SVG 图标基础尺寸 */
.bqj-ic { width: 1em; height: 1em; vertical-align: -0.125em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bqj-ic-12 { width: 12px; height: 12px; }
.bqj-ic-14 { width: 14px; height: 14px; }
.bqj-ic-15 { width: 15px; height: 15px; }
.bqj-ic-16 { width: 16px; height: 16px; }
.bqj-ic-18 { width: 18px; height: 18px; }
.bqj-ic-20 { width: 20px; height: 20px; }
.bqj-ic-22 { width: 22px; height: 22px; }
.bqj-ic-24 { width: 24px; height: 24px; }
.bqj-ic-40 { width: 40px; height: 40px; }
.bqj-ic-nav { width: 16px; height: 16px; margin-right: 4px; vertical-align: -2px; }
.bqj-ic-btn { width: 14px; height: 14px; margin-right: 4px; vertical-align: -2px; }
.bqj-ic-inline { vertical-align: -0.15em; }
.bqj-ic.fill, .bqj-ic.fill path { fill: currentColor; }

/* Header 消息按钮 */
.header-msg-btn { position: relative; display: flex; align-items: center; padding: 4px 8px; }
.msg-badge {
  position: absolute; top: -4px; right: -4px; background: #f44336; color: #fff;
  font-size: 9px; min-width: 14px; height: 14px; border-radius: 7px;
  display: flex; align-items: center; justify-content: center; padding: 0 3px;
  line-height: 1;
}

/* 实名认证标识 */
.cert-badge { display: inline-flex; align-items: center; gap: 2px; background: #e8f5e9; color: #2e7d32; font-size: 11px; padding: 1px 6px; border-radius: 3px; }
.vip-badge { background: linear-gradient(135deg,#FFD700,#FFA500); color: #fff; font-size: 10px; padding: 1px 6px; border-radius: 3px; font-weight: 500; }

/* 权限提示遮罩（用于未认证用户看到受保护内容时） */
.auth-lock-overlay {
  position: relative;
}
.auth-lock-overlay::after {
  content: '🔒 完成实名认证后查看';
  position: absolute; inset: 0; background: rgba(255,255,255,0.92);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: #1A5DB4; font-weight: 500; border-radius: inherit;
}

/* 表情选择器 */
.emoji-picker {
  position: absolute; bottom: 100%; left: 0; background: #fff;
  border: 1px solid #e0e0e0; border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  padding: 10px; width: 300px; max-height: 200px; overflow-y: auto; z-index: 100;
  display: none;
}
.emoji-picker.show { display: block; }
.emoji-picker-grid { display: grid; grid-template-columns: repeat(10,1fr); gap: 2px; }
.emoji-picker-grid span { font-size: 20px; cursor: pointer; padding: 4px; text-align: center; border-radius: 4px; }
.emoji-picker-grid span:hover { background: #E8F1FC; }

/* 文件消息 */
.msg-file { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: rgba(0,0,0,0.04); border-radius: 6px; margin: 4px 0; }
.msg-row.mine .msg-file { background: rgba(255,255,255,0.15); }
.msg-file-icon { font-size: 28px; }
.msg-file-info { flex: 1; }
.msg-file-name { font-size: 13px; font-weight: 500; word-break: break-all; }
.msg-file-size { font-size: 11px; opacity: 0.7; }
.msg-image { max-width: 240px; border-radius: 6px; margin: 4px 0; cursor: pointer; display: block; }

/* 升级引导卡片 */
.upgrade-cta-card {
  background: linear-gradient(135deg, #1A5DB4 0%, #2B7DE9 100%);
  color: #fff; border-radius: 10px; padding: 20px 24px; display: flex;
  align-items: center; justify-content: space-between; margin: 16px 0;
}
.upgrade-cta-card h3 { font-size: 18px; margin-bottom: 4px; }
.upgrade-cta-card p { font-size: 13px; opacity: 0.9; }
.upgrade-cta-card .btn { background: #fff; color: #1A5DB4; font-weight: 600; }

/* 首页快捷入口栏 */
.quick-action-bar {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
  padding: 20px 0;
}
.quick-action-item {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 16px 24px; background: #fff; border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06); cursor: pointer; transition: all .2s;
  min-width: 110px; text-decoration: none; color: inherit;
}
.quick-action-item:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(26,93,180,0.15); }
.quick-action-icon { font-size: 32px; }
.quick-action-label { font-size: 13px; font-weight: 500; color: #1A1A2E; }
.quick-action-sub { font-size: 11px; color: #718096; }

/* 身份选择卡片（注册/入驻） */
.identity-cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin: 20px 0; }
.identity-card {
  background: #fff; border: 2px solid #e8e8e8; border-radius: 10px; padding: 24px;
  cursor: pointer; transition: all .2s; text-align: center;
}
.identity-card:hover { border-color: #2B7DE9; box-shadow: 0 4px 16px rgba(26,93,180,0.1); }
.identity-card.selected { border-color: #1A5DB4; background: #E8F1FC; }
.identity-card .icon { font-size: 40px; margin-bottom: 8px; }
.identity-card h4 { font-size: 16px; margin-bottom: 4px; }
.identity-card p { font-size: 12px; color: #718096; }

/* 用户中心管理入口网格 */
.manage-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: 12px; }
.manage-grid-item {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 20px 12px; background: #fff; border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06); cursor: pointer; transition: all .2s;
  text-decoration: none; color: inherit; text-align: center;
}
.manage-grid-item:hover { background: #E8F1FC; transform: translateY(-2px); }
.manage-grid-item .m-icon { font-size: 28px; }
.manage-grid-item .m-label { font-size: 13px; font-weight: 500; }

/* ===== 移动端汉堡菜单（v1.3.0 / v4.1.4 视觉收口） ===== */
.mobile-menu-btn { display:none; width:38px; height:38px; margin-left:6px; padding:0; background:none; border:none; cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.mobile-menu-btn span { display:block; width:22px; height:2.5px; background:var(--primary,#1A5DB4); border-radius:2px; transition:all .25s; }
.mobile-menu-mask { display:none; position:fixed; inset:0; background:rgba(15,23,42,.4); z-index:1100; opacity:0; transition:opacity .28s ease; backdrop-filter:blur(1px); -webkit-backdrop-filter:blur(1px); }
.mobile-menu-mask.show { display:block; opacity:1; }
.mobile-menu {
  position:fixed; top:0; right:0; bottom:0; width:86%; max-width:300px;
  background:var(--bg,#F7F8FA); z-index:1200; transform:translateX(100%);
  visibility:hidden; pointer-events:none;
  transition:transform .28s cubic-bezier(.22,.61,.36,1),visibility 0s linear .28s;
  box-shadow:-8px 0 28px rgba(26,93,180,.12);
  display:flex; flex-direction:column; overflow:hidden;
}
.mobile-menu.open { transform:translateX(0); visibility:visible; pointer-events:auto; transition:transform .28s cubic-bezier(.22,.61,.36,1); }
.mobile-menu-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px; min-height:56px; flex-shrink:0;
  background:var(--white); border-bottom:1px solid var(--border,#E2E8F0);
}
.mobile-menu-head .logo { margin-right:0; }
.mobile-menu-close {
  width:36px; height:36px; border-radius:8px; color:var(--text-muted,#718096);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .15s, color .15s;
}
.mobile-menu-close:active { background:var(--primary-lighter,#E8F1FC); color:var(--primary,#1A5DB4); }
.mobile-menu-body {
  flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:12px 14px 8px;
}
.mm-user-card {
  display:flex; align-items:center; gap:12px;
  padding:12px 14px; margin-bottom:12px;
  background:var(--white); border:1px solid var(--border,#E2E8F0);
  border-radius:var(--radius,8px); text-decoration:none; color:inherit;
  box-shadow:var(--shadow-sm);
}
.mm-user-card:active { border-color:rgba(26,93,180,.28); background:var(--primary-lighter,#E8F1FC); }
.mm-user-card .mm-avatar {
  width:42px; height:42px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(145deg, var(--primary,#1A5DB4), var(--primary-light,#2B7DE9));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:700; letter-spacing:0;
}
.mm-user-card .mm-uname {
  display:block; font-size:15px; font-weight:600; line-height:1.35;
  color:var(--text-primary,#1A1A2E); word-break:break-all;
}
.mm-user-card .mm-usub {
  display:block; font-size:12px; color:var(--primary,#1A5DB4); margin-top:3px; font-weight:500;
}
.mm-section-title {
  font-size:12px; font-weight:600; color:var(--text-muted,#718096);
  margin:2px 4px 8px;
}
.mobile-menu-nav {
  display:flex; flex-direction:column; padding:0; margin:0 0 12px;
  background:var(--white); border:1px solid var(--border,#E2E8F0);
  border-radius:var(--radius,8px); overflow:hidden; box-shadow:var(--shadow-sm);
}
.mobile-menu-nav a {
  padding:13px 16px; font-size:15px; font-weight:500;
  color:var(--text-secondary,#4A5568); border-bottom:1px solid var(--border,#E2E8F0);
  display:flex; align-items:center; transition:background .12s, color .12s;
}
.mobile-menu-nav a:last-child { border-bottom:none; }
.mobile-menu-nav a:active { background:var(--primary-lighter,#E8F1FC); color:var(--primary,#1A5DB4); }
.mm-publish {
  display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:4px;
}
.mm-publish a {
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:14px 8px 12px; background:var(--white);
  border:1px solid var(--border,#E2E8F0); border-radius:var(--radius,8px);
  font-size:12px; font-weight:500; color:var(--text-secondary,#4A5568);
  text-decoration:none; box-shadow:var(--shadow-sm);
  transition:border-color .12s, background .12s, color .12s;
}
.mm-publish a .mm-pub-ic {
  width:36px; height:36px; border-radius:10px;
  background:var(--primary-lighter,#E8F1FC); color:var(--primary,#1A5DB4);
  display:flex; align-items:center; justify-content:center;
}
.mm-publish a .mm-pub-ic .bqj-ic { width:18px; height:18px; }
.mm-publish a:active {
  border-color:rgba(26,93,180,.35); background:var(--primary-lighter,#E8F1FC); color:var(--primary,#1A5DB4);
}
.mobile-menu-actions {
  display:flex; gap:10px; flex-shrink:0; margin-top:auto;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom, 0px));
  background:var(--white); border-top:1px solid var(--border,#E2E8F0);
}
.mm-btn {
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  text-align:center; padding:11px 8px; border-radius:var(--radius,8px);
  font-size:14px; font-weight:600; line-height:1.2; text-decoration:none;
}
.mm-login { border:1.5px solid var(--primary,#1A5DB4); color:var(--primary,#1A5DB4); background:var(--white); }
.mm-login:active { background:var(--primary-lighter,#E8F1FC); }
.mm-register { background:var(--primary,#1A5DB4); color:#fff; border:1.5px solid var(--primary,#1A5DB4); }
.mm-register:active { background:var(--primary-dark,#134A8F); }
.mobile-menu-actions .mm-logout {
  background:var(--white); color:var(--danger,#DC2626);
  border:1.5px solid #FECACA; border-radius:var(--radius,8px); font-weight:600;
}
.mobile-menu-actions .mm-logout:active { background:#FEF2F2; }

/* v4.1.3：手机端顶栏收「发布」进汉堡菜单；v6.7.21：手机端顶栏只留头像（昵称易挤偏，空间不足） */
.header-username .hu-avatar { display:none; }
.header-username .hu-name { display:inline; }
.header-logout-btn {
  display:none; align-items:center; justify-content:center;
  width:32px; height:32px; padding:0; border:none; background:transparent;
  color:#DC2626; cursor:pointer; flex-shrink:0;
}
.header-logout-btn:active { color:#B91C1C; }
@media (max-width:640px) {
  .header-publish-dropdown { display:none !important; }
  .header-logout-btn { display:none; }
  .header-username {
    padding:0 !important; gap:0 !important;
    background:transparent !important; border:none !important;
    border-radius:50% !important; max-width:none; min-width:0; flex:0 0 auto;
    width:32px; height:32px; overflow:hidden;
  }
  .header-username .hu-name { display:none !important; }
  .header-username .hu-avatar {
    display:inline-flex; align-items:center; justify-content:center; flex:none;
    width:32px; height:32px; border-radius:50%;
    background:#1A5DB4; color:#fff; font-size:13px; font-weight:700;
  }
  .header-username .hu-avatar img { width:100%; height:100%; border-radius:50%; object-fit:cover; }
}

@media (max-width:768px) {
  .nav { display:none !important; }
  .mobile-menu-btn { display:flex; }
  .header-inner { padding:0 14px; }
  .logo { margin-right:0; font-size:21px; }
  .header-actions { gap:6px; margin-left:auto; }
  /* 登录态操作项在手机端适当压缩，保留核心入口 */
  .header-publish-dropdown .btn-publish-main { padding:6px 10px; font-size:13px; }
  .header-actions .btn-login, .header-actions .btn-register { padding:6px 12px; font-size:13px; }
  .header-msg-btn { padding:4px 5px; }
  /* admin 后台手机端给汉堡遮罩让位（后台本身另设 sidebar，此处不影响） */
}

/* ===== 首页广告位轮播（v1.3.0） ===== */
.hero-carousel { position:relative; width:100%; margin:0; height:360px; overflow:hidden; }
.hero-slide { position:absolute; inset:0; display:flex; align-items:center; justify-content:flex-start; text-align:left; color:#fff; text-decoration:none; opacity:0; transition:opacity .8s ease; padding:20px 56px; background-size:cover; background-position:center; }
/* 遮罩只压左半文字区，右半图形不压暗（何总10-01要求，banner主体全靠右） */
.hero-slide::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,24,56,.62) 0%,rgba(8,24,56,.30) 38%,rgba(8,24,56,0) 60%); z-index:0; }
.hero-slide.active { opacity:1; z-index:1; }
.hero-slide-content { max-width:760px; width:100%; min-width:0; position:relative; z-index:1; }
.hsc-slogan { display:inline-block; padding:5px 16px; border:1px solid rgba(255,255,255,.65); border-radius:20px; font-size:13px; font-weight:600; letter-spacing:2px; margin-bottom:14px; background:rgba(255,255,255,.12); backdrop-filter:blur(2px); }
.hsc-title { font-size:32px; font-weight:800; margin:0 0 14px; text-shadow:0 2px 12px rgba(0,0,0,.5); letter-spacing:1px; line-height:1.25; }
.hsc-sub { font-size:18px; line-height:1.7; margin:0; opacity:.97; text-shadow:0 1px 8px rgba(0,0,0,.5); }
.hsc-btn { display:inline-block; padding:11px 30px; background:#fff; color:#134A8F; border-radius:24px; font-size:15px; font-weight:700; box-shadow:0 4px 14px rgba(0,0,0,.2); }
.hero-dots { position:absolute; bottom:18px; right:26px; z-index:3; display:flex; justify-content:flex-end; gap:8px; }
.hero-dot { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; transition:all .25s; }
.hero-dot.active { background:#fff; width:24px; border-radius:5px; }
@media (max-width:768px) {
  .hero-carousel { height:300px; }
  .hero-slide { padding:18px 16px; }
  .hsc-title { font-size:24px; margin-bottom:14px; line-height:1.32; letter-spacing:.5px; }
  .hsc-sub { font-size:14px; margin-bottom:0; line-height:1.6; opacity:.95; }
  .hsc-btn { padding:8px 20px; font-size:13px; }
}

/* ===== 智能联想下拉 v1.3.1 ===== */
.bqj-suggest-box{position:absolute;z-index:3000;background:#fff;border:1px solid #e3e8ef;border-radius:8px;box-shadow:0 8px 28px rgba(26,93,180,.16);max-height:280px;overflow-y:auto;padding:4px 0;display:none;}
.bqj-suggest-item{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:14px;color:#1A1A2E;cursor:pointer;line-height:1.4;}
.bqj-suggest-item .bqj-suggest-icon{color:#2B7DE9;font-size:13px;flex-shrink:0;}
.bqj-suggest-item .bqj-suggest-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bqj-suggest-item b{color:#1A5DB4;font-weight:600;}
.bqj-suggest-item:hover,.bqj-suggest-item.active{background:#E8F1FC;}
@media(max-width:768px){.bqj-suggest-item{padding:11px 14px;font-size:15px;}}

/* ===== v1.3.2 首页快捷入口 & 品类网格响应式 ===== */
.cat-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.quick-action-bar { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.quick-action-item { min-width:0; padding:18px 8px; }
.quick-action-item .quick-action-label { font-size:14px; }
.quick-action-item .quick-action-sub { font-size:11px; text-align:center; }
@media (max-width:1024px) {
  .cat-grid { grid-template-columns:repeat(3,1fr); }
  .quick-action-bar { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px) {
  .cat-grid { grid-template-columns:repeat(3,1fr); gap:10px; }
  .cat-card { padding:18px 6px !important; border-radius:10px; }
  .cat-card div:first-child { font-size:30px !important; margin-bottom:6px !important; }
  .cat-card div:last-child { font-size:13px !important; }
  .quick-action-bar { grid-template-columns:repeat(3,1fr); gap:10px; padding:14px 0; }
  .quick-action-item { padding:14px 4px; border-radius:10px; gap:4px; }
  .quick-action-icon { font-size:26px; }
  .quick-action-label { font-size:13px; }
  .quick-action-sub { display:none; }
}
/* 发布类页面移动端优化 */
@media (max-width:768px) {
  .steps { flex-wrap:nowrap; padding:14px 8px; margin-bottom:18px; gap:0; }
  .step { flex-direction:column; gap:2px; }
  .step-num { width:26px; height:26px; font-size:12px; }
  .step-text { font-size:11px; }
  .step-line { width:16px; margin:0 4px; align-self:flex-start; margin-top:13px; }
  .gallery-upload { grid-template-columns:repeat(2,1fr) !important; }
  .upload-area { padding:24px 12px; }
  .price-input { flex-wrap:wrap; }
  .price-input input { width:100%; }
  .form-actions { flex-direction:column-reverse; gap:10px; }
  .form-actions .btn-next, .form-actions .btn-draft { width:100%; text-align:center; }
}


/* ===== v2.6.1 顶栏flex加固：防中文逐字竖排（v2.5.4 logo放大后header空间临界，flex压缩致菜单/按钮文字竖排）===== */
.logo { white-space: nowrap; }
.nav { gap: 4px; min-width: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a { white-space: nowrap; flex-shrink: 0; padding: 8px 9px; }
.header-actions { min-width: 0; }
.header-actions .btn-login,
.header-actions .btn-register,
.header-publish-dropdown .btn-publish-main,
.header-msg-btn { white-space: nowrap; }
.header-publish-dropdown { flex-shrink: 0; }
.header-msg-btn { flex-shrink: 0; }
.mobile-menu-btn { flex-shrink: 0; }
/* v2.6.3 P3：桌面端右侧操作组保完整不被挤出视口，导航区弹性收缩横滑 */
@media (min-width: 769px) {
  .header .header-actions { flex-shrink: 0; }
  .nav { flex: 1 1 auto; }
}
@media (max-width: 768px) {
  .logo { flex-shrink: 0; margin-right: 0; padding: 4px 10px; border-radius: 6px; }
  .header-actions { flex-shrink: 1; min-width: 0; gap: 4px; }
  .header-publish-dropdown { flex-shrink: 0; }
  .header-publish-dropdown .btn-publish-main { padding: 6px 9px; font-size: 13px; flex-shrink: 0; white-space: nowrap; }
  .header .header-actions a.btn-login { flex: 0 0 auto; max-width: none; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .header-actions .btn-register { padding: 6px 8px; }
  .header-msg-btn { padding: 4px 3px; flex-shrink: 0; }
}

/* ===== v3.9.1 B风格：首页快捷入口彩色渐变圆底 + 品类图标放大 ===== */
.quick-action-icon {
  width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: #fff;
  transition: transform .2s, box-shadow .2s;
}
.quick-action-icon .bqj-ic { width: 26px; height: 26px; }
.quick-action-icon.c1 { background: linear-gradient(135deg, #1A5DB4, #2f80ed); }
.quick-action-icon.c2 { background: linear-gradient(135deg, #0e9f8e, #13b8a6); }
.quick-action-icon.c3 { background: linear-gradient(135deg, #e8862a, #f5a623); }
.quick-action-icon.c4 { background: linear-gradient(135deg, #7c5cd6, #9b7ef0); }
.quick-action-icon.c5 { background: linear-gradient(135deg, #e0556f, #f2738c); }
.quick-action-icon.c6 { background: linear-gradient(135deg, #0f766e, #14b8a6); }
.quick-action-item:hover .quick-action-icon {
  transform: scale(1.1);
  box-shadow: 0 4px 14px rgba(26,93,180,0.25);
}
/* 品类卡片图标放大 + 蓝色 */
.cat-card .cat-icon-wrap {
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: var(--primary-lighter);
  color: var(--primary);
  margin: 0 auto 10px;
  transition: transform .2s;
}
.cat-card .cat-icon-wrap .bqj-ic { width: 28px; height: 28px; }
.cat-card:hover .cat-icon-wrap { transform: scale(1.08); }
@media (max-width:768px) {
  .quick-action-icon { width: 44px; height: 44px; }
  .quick-action-icon .bqj-ic { width: 22px; height: 22px; }
  .cat-card .cat-icon-wrap { width: 40px; height: 40px; }
  .cat-card .cat-icon-wrap .bqj-ic { width: 24px; height: 24px; }
}

/* ===== v3.9.1 白色LOGO图（右缘渐变消失，不呆板） ===== */
.logo {
  display: inline-flex !important;
  align-items: center !important;
  background: linear-gradient(90deg, #134A8F 0%, #1A5DB4 40%, #2f80ed 100%) !important;
  border-radius: 8px 0 0 8px !important;
  padding: 5px 18px 5px 14px !important;
  font-size: 0 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  color: transparent !important;
  white-space: nowrap !important;
  flex-shrink: 0;
  padding-right: 36px !important;
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 75%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, #000 75%, transparent 100%);
}
.logo span { display: none !important; }
.logo::before {
  content: "" !important;
  display: block !important;
  width: 112px !important;
  height: 28px !important;
  background: url("../images/logo-white.png?v=v3.9.1") center/contain no-repeat !important;
  flex-shrink: 0;
}
@media (max-width:768px) {
  .logo { padding: 4px 12px 4px 10px !important; padding-right: 28px !important; }
  .logo::before { width: 90px !important; height: 24px !important; }
}

/* ===== v4.0.0 IP衍生共创 新增样式 ===== */
/* 共创广场卡片 */
.cc-card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:all .25s;cursor:pointer;display:flex;flex-direction:column;}
.cc-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.cc-card-cover{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--primary-lighter);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:32px;}
.cc-card-cover img{width:100%;height:100%;object-fit:cover;}
.cc-card-body{padding:16px;flex:1;display:flex;flex-direction:column;}
.cc-card-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cc-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.cc-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-muted);margin-top:auto;padding-top:10px;border-top:1px solid #f0f0f0;}
.cc-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;}
.cc-badge-open{background:#e6f4ff;color:#1677ff;}
.cc-badge-brief{background:#fff7e6;color:#fa8c16;}
.cc-badge-status{background:#f6ffed;color:#52c41a;}
.cc-badge-closed{background:#f5f5f5;color:#999;}

/* 共创任务详情 */
.cc-task-hero{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:40px 20px;text-align:center;}
.cc-task-hero h1{font-size:28px;margin-bottom:8px;}
.cc-task-hero p{font-size:15px;opacity:.9;}
.cc-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:20px 0;}
.cc-info-item{background:var(--primary-lighter);border-radius:8px;padding:14px;text-align:center;}
.cc-info-item .label{font-size:12px;color:var(--text-muted);margin-bottom:4px;}
.cc-info-item .value{font-size:18px;font-weight:700;color:var(--primary);}

/* 投稿表单 */
.cc-submit-form{background:var(--white);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm);}
.cc-submit-form .form-group{margin-bottom:18px;}
.cc-submit-form label{display:block;font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:6px;}
.cc-source-hint{background:#fff7e6;border:1px solid #ffe4b5;border-radius:6px;padding:10px 14px;font-size:13px;color:#ad6800;margin-top:8px;}

/* 衍生共创专区(work-detail注入) */
.cc-section{margin-top:30px;padding-top:24px;border-top:2px solid var(--primary-lighter);}
.cc-section-title{font-size:18px;font-weight:700;color:var(--primary);margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.cc-deriv-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.cc-deriv-card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:all .2s;}
.cc-deriv-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
.cc-deriv-cover{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--primary-lighter);}
.cc-deriv-cover img{width:100%;height:100%;object-fit:cover;}
.cc-deriv-info{padding:12px;}
.cc-deriv-name{font-size:14px;font-weight:600;margin-bottom:4px;color:var(--text-primary);}
.cc-deriv-meta{font-size:12px;color:var(--text-muted);}

/* 授权链信息 */
.cc-license-info{background:var(--primary-lighter);border-radius:8px;padding:16px;margin:16px 0;font-size:13px;line-height:1.8;}
.cc-license-info .lic-row{display:flex;gap:8px;align-items:baseline;}
.cc-license-info .lic-label{color:var(--text-muted);min-width:70px;flex-shrink:0;}
.cc-license-info .lic-value{color:var(--text-primary);font-weight:500;}

/* 水印预览 */
.cc-watermark{position:relative;overflow:hidden;}
.cc-watermark::after{content:'版全街 · 预览';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-30deg);font-size:24px;color:rgba(26,93,180,0.2);font-weight:700;pointer-events:none;white-space:nowrap;letter-spacing:8px;}

/* 合作意向表单 */
.cc-intent-form{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);margin-top:16px;}
.cc-intent-form h3{font-size:16px;font-weight:600;margin-bottom:16px;color:var(--primary);}
.cc-intent-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.cc-intent-note{font-size:12px;color:var(--text-muted);margin-top:8px;padding:10px;background:#fafafa;border-radius:6px;}

/* 共创开关 */
.cc-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.cc-toggle-switch{width:44px;height:24px;border-radius:12px;background:#ddd;position:relative;transition:background .2s;}
.cc-toggle-switch.on{background:var(--primary);}
.cc-toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.cc-toggle-switch.on::after{transform:translateX(20px);}

/* 创作者/IP方工作台 */
.studio-tabs{display:flex;gap:0;border-bottom:2px solid #f0f0f0;margin-bottom:24px;}
.studio-tab{padding:12px 24px;font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;}
.studio-tab:hover{color:var(--primary);}
.studio-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;}
.studio-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px;}
.studio-stat{background:var(--white);border-radius:var(--radius);padding:16px;text-align:center;box-shadow:var(--shadow-sm);}
.studio-stat .num{font-size:24px;font-weight:700;color:var(--primary);}
.studio-stat .lbl{font-size:12px;color:var(--text-muted);margin-top:4px;}

/* 变现服务大厅 */
.mz-hero{background:linear-gradient(135deg,#1A5DB4 0%,#134A8F 100%);padding:50px 20px;text-align:center;color:#fff;}
.mz-hero h1{font-size:28px;margin-bottom:10px;}
.mz-hero p{font-size:15px;opacity:.9;}
.mz-service-card{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);transition:all .2s;height:100%;display:flex;flex-direction:column;}
.mz-service-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
.mz-type-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;margin-bottom:10px;}
.mz-type-mcn{background:#f0f5ff;color:#2f54eb;}
.mz-type-media{background:#f6ffed;color:#52c41a;}
.mz-type-live{background:#fff7e6;color:#fa8c16;}
.mz-type-content{background:#fff0f6;color:#eb2f96;}
.mz-provider{font-size:13px;color:var(--text-muted);margin-top:auto;padding-top:12px;border-top:1px solid #f0f0f0;}
.mz-join-banner{background:linear-gradient(135deg,var(--primary-lighter),#f6faff);border:1px solid #c7ddf5;border-radius:10px;padding:20px 24px;margin:24px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}

/* 审核操作 */
.cc-review-actions{display:flex;gap:8px;flex-wrap:wrap;}
.cc-reject-reason{margin-top:10px;}
.cc-reject-reason textarea{width:100%;min-height:80px;border:1px solid #d9d9d9;border-radius:6px;padding:10px;font-size:13px;resize:vertical;}

/* 台账 */
.cc-ledger-table{width:100%;border-collapse:collapse;font-size:13px;}
.cc-ledger-table th{background:var(--primary-lighter);color:var(--primary);padding:10px 12px;text-align:left;font-weight:600;}
.cc-ledger-table td{padding:10px 12px;border-bottom:1px solid #f0f0f0;color:var(--text-primary);}
.cc-ledger-table tr:hover{background:#fafafa;}

/* 移动端适配 */
@media(max-width:768px){
  .cc-info-grid{grid-template-columns:1fr 1fr;}
  .cc-deriv-list{grid-template-columns:repeat(2,1fr);}
  .cc-intent-form .form-row{grid-template-columns:1fr;}
  .studio-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .studio-tab{white-space:nowrap;flex-shrink:0;padding:10px 16px;font-size:13px;}
  .studio-stat-grid{grid-template-columns:repeat(2,1fr);}
  .cc-task-hero h1{font-size:22px;}
  .mz-hero h1{font-size:22px;}
}
@media(max-width:375px){
  .cc-deriv-list{grid-template-columns:1fr;}
  .cc-info-grid{grid-template-columns:1fr;}
}

/* ============================================================
   DS v1.0 组件类（增强，不覆盖既有同名样式；供重构页使用）
   ============================================================ */
.ds-card{background:#fff;border-radius:var(--ds-r);box-shadow:var(--ds-sh);padding:18px;}
.ds-card-h{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;margin-bottom:14px;}
.ds-card-h .ds-more{margin-left:auto;font-size:12px;font-weight:400;color:var(--ds-ink3);}
.ds-btn{border:0;border-radius:var(--ds-r-sm);padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}
.ds-btn-primary{background:var(--ds-blue);color:#fff;}
.ds-btn-bluegrad{background:linear-gradient(135deg,#1F6FD0,#1A5DB4);color:#fff;box-shadow:var(--ds-sh-blue);}
.ds-btn-ghost{background:var(--ds-blue-l);color:var(--ds-blue);}
.ds-btn-outline{background:#fff;border:1px solid var(--ds-line);color:var(--ds-ink2);}
.ds-btn-lg{width:100%;padding:14px;font-size:15.5px;border-radius:var(--ds-r-md);}
.ds-tag{font-size:11px;padding:3px 9px;border-radius:6px;background:var(--ds-blue-l);color:var(--ds-blue);font-weight:600;}
.ds-tag-gray{background:#F1F4F8;color:var(--ds-ink2);}
.ds-tag-green{background:var(--ds-green-l);color:var(--ds-green);}
.ds-tag-amber{background:var(--ds-amber-l);color:var(--ds-amber);}
.ds-input{width:100%;height:40px;border:1px solid var(--ds-line);border-radius:var(--ds-r-sm);padding:0 12px;font-size:13.5px;font-family:inherit;color:var(--ds-ink);background:#fff;}
.ds-input:focus{outline:none;border-color:var(--ds-blue);box-shadow:0 0 0 3px var(--ds-blue-l);}
.ds-label{font-size:12.5px;font-weight:600;color:var(--ds-ink2);display:block;margin-bottom:5px;}
.ds-todo{background:linear-gradient(135deg,#1F6FD0,#1A5DB4);border-radius:var(--ds-r-md);padding:16px 20px;color:#fff;display:flex;align-items:center;gap:15px;box-shadow:var(--ds-sh-blue);}
.ds-todo .ds-todo-ic{width:46px;height:46px;border-radius:var(--ds-r-md);background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:23px;flex:none;}
.ds-todo .ds-todo-who{font-size:12px;opacity:.85;}
.ds-todo .ds-todo-what{font-size:16px;font-weight:700;margin-top:3px;}
.ds-milestones{display:flex;align-items:flex-start;position:relative;}
.ds-ms{flex:1;text-align:center;position:relative;z-index:2;}
.ds-ms .ds-ms-ball{width:36px;height:36px;border-radius:50%;background:#E4E8EE;color:var(--ds-ink3);display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-size:15px;font-weight:700;border:4px solid #fff;}
.ds-ms.done .ds-ms-ball{background:var(--ds-green);color:#fff;}
.ds-ms.cur .ds-ms-ball{background:var(--ds-blue);color:#fff;box-shadow:0 0 0 5px var(--ds-blue-l);}
.ds-ms .ds-ms-lbl{font-size:12.5px;color:var(--ds-ink3);}
.ds-ms.done .ds-ms-lbl,.ds-ms.cur .ds-ms-lbl{color:var(--ds-ink);font-weight:600;}
.ds-ms-line{position:absolute;top:18px;left:12.5%;right:12.5%;height:3px;background:#E4E8EE;z-index:1;border-radius:2px;}
.ds-ms-line i{display:block;height:100%;background:var(--ds-green);border-radius:2px;}
.ds-assure{display:flex;gap:8px;background:var(--ds-green-l);border-radius:var(--ds-r-sm);padding:10px 12px;font-size:11.5px;color:#1c6b3c;line-height:1.55;}
.ds-help{display:inline-flex;width:15px;height:15px;border-radius:50%;background:#C3CBD5;color:#fff;font-size:9.5px;align-items:center;justify-content:center;cursor:pointer;flex:none;}
