/* ========================================
   旺财简历 — Design System
   橙色主题：渐变 #FF8C42 → #FF6B1A · 暖调中性灰 · 克制阴影
   （编辑器页面 builder.html 通过 .editor-page 作用域将紫色令牌 --g-blue 覆写为橙色）
   ======================================== */

/* === Design Tokens === */
:root {
  /* 品牌红紫渐变体系 */
  --grad-brand:         linear-gradient(135deg, #FF8C42 0%, #FF6B1A 100%);
  --grad-brand-soft:    linear-gradient(135deg, #FFF4EB 0%, #FFECD6 100%);

  /* 主页淡橙（生成 / 模板 / 范文页统一品牌色） */
  --brand-orange:        #FF8C42;
  --brand-orange-deep:   #FF6B1A;
  --brand-orange-soft:   #FFF1E6;
  --brand-orange-line:   #FFD9BE;

  /* 语义色（成熟版 · 替代 Google 四色） */
  --g-blue:        #A21CAF;   /* 主品牌 · 红紫（实色代表，用于文字/边框/小面积） */
  --g-blue-hover:  #8E1AA0;
  --g-blue-light:  #FBE7F3;   /* 浅红紫底 */

  /* v6.3: 模块/索引图标专用橙（与 editor workspace 内的 --g-blue 重定义解耦，确保 light/dark 一致） */
  --g-orange:        #FF6B1A;
  --g-orange-hover:  #E85F12;
  --g-orange-light:  #FFF1E6;

  /* 旧 Telegram 蓝令牌（保留变量名以兼容引用，值已改为红紫） */
  --tg-blue:        #A21CAF;
  --tg-blue-hover:  #8E1AA0;
  --tg-blue-active: #8E1AA0;
  --tg-blue-light:  #FBE7F3;
  --tg-blue-dark:   #6E127E;

  --g-red:         #e34646;
  --g-red-hover:   #cf3a3a;
  --g-red-light:   #fdecec;

  --g-yellow:      #f2c94c;
  --g-yellow-hover:#e0b73a;
  --g-yellow-light:#fdf3d6;

  --g-green:       #4dcd5e;
  --g-green-hover: #43ba53;
  --g-green-light: #e7f7ea;

  /* 语义映射 */
  --color-primary:   var(--g-blue);
  --color-danger:    var(--g-red);
  --color-warning:   var(--g-yellow);
  --color-success:   var(--g-green);

  /* 中性色（冷调，Telegram 风格） */
  --gray-50:  #f4f5f7;
  --gray-100: #eceef1;
  --gray-200: #e1e5ea;
  --gray-300: #cfd6dd;
  --gray-500: #8a94a3;
  --gray-700: #5c6b7a;
  --gray-900: #17212b;

  --color-bg:       #ffffff;
  --color-bg-alt:   var(--gray-50);
  --color-surface:  #ffffff;
  --color-surface-2: #fafbfc;
  --color-border:   var(--gray-200);
  --color-text:     var(--gray-700);
  --color-heading:  var(--gray-900);
  --color-muted:    #707991;

  /* 字体（Telegram 用 Roboto） */
  --font-display: 'Roboto', 'Noto Sans SC', system-ui, -apple-system, sans-serif;
  --font-body:    'Roboto', 'Noto Sans SC', system-ui, -apple-system, sans-serif;

  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  1.875rem;
  --text-4xl:  2.25rem;
  --text-5xl:  3rem;

  /* 间距 */
  --space-1:  .25rem;
  --space-2:  .5rem;
  --space-3:  .75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-7:  1.75rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;

  /* 圆角 — 适度，避免幼稚 */
  --radius-btn:   10px;
  --radius-sm:   8px;
  --radius-md:   12px;
  --radius-lg:   16px;
  --radius-xl:   20px;
  --radius-full: 9999px;
  --radius-xs:   6px;

  /* 阴影 — 克制、低透明 */
  --shadow-1: 0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.05);
  --shadow-2: 0 2px 6px rgba(16,24,40,.06),0 4px 12px rgba(16,24,40,.06);
  --shadow-3: 0 4px 12px rgba(16,24,40,.07),0 8px 24px rgba(16,24,40,.08);
  --shadow-4: 0 8px 24px rgba(16,24,40,.10),0 16px 40px rgba(16,24,40,.10);

  /* 布局 */
  --max-width: 1120px;
  --nav-height: 56px;
  --transition: 0.2s cubic-bezier(.4,0,.2,1);
  --transition-slow: 0.35s cubic-bezier(.4,0,.2,1);
}

/* ========================================
   Reset & Base
   ======================================== */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

html{
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
}

body{
  font-family:var(--font-body);
  font-size:var(--text-base);
  line-height:1.6;
  color:var(--color-text);
  background:var(--color-bg);
}

img{max-width:100%;display:block}
a{color:var(--color-primary);text-decoration:none}
a:hover{color:var(--g-blue-hover)}
strong{font-weight:600}

/* ========================================
   Container
   ======================================== */

.container{
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 var(--space-6);
}

/* ========================================
   Section 通用
   ======================================== */

section{padding:var(--space-20) 0}
/* 简历预览中的 section 不继承通用 section padding */
.resume-paper section,
.resume-col section{padding:0}
.section-alt{background:var(--color-bg-alt)}

.section-header{
  text-align:center;
  margin-bottom:var(--space-12);
}

.section-eyebrow{
  display:inline-block;
  font-family:var(--font-display);
  font-size:var(--text-xs);
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:var(--space-3);
  color:var(--color-primary);
  background:var(--g-blue-light);
  padding:4px 12px;
  border-radius:var(--radius-full);
}

.section-header h2{
  font-family:var(--font-display);
  font-size:var(--text-4xl);
  font-weight:700;
  color:var(--color-heading);
  line-height:1.2;
  margin-bottom:var(--space-3);
}

.section-header p{
  font-size:var(--text-lg);
  color:var(--color-muted);
  max-width:560px;
  margin:0 auto;
}

/* ========================================
   Navigation (WonderCV 风格深色顶部导航)
   ======================================== */

.gnb{
  position:sticky;
  top:0;
  z-index:100;
  background:#ffffff;
  border-bottom:1px solid var(--color-border);
}

.gnb-inner{
  max-width:1280px;
  margin:0 auto;
  padding:0 var(--space-5);
  height:56px;
  display:flex;
  align-items:center;
  gap:var(--space-4);
}

.gnb-logo{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--color-heading);
  margin-right:var(--space-6);
}

.gnb-logo:hover{color:var(--color-heading)}

.gnb-logo .logo-mark{
  width:28px;height:28px;
  border-radius:var(--radius-sm);
  background:var(--g-blue);
  display:flex;
  align-items:center;
  justify-content:center;
  color:white;
  font-size:14px;
  font-weight:700;
}

.gnb-links{
  display:flex;
  align-items:center;
  gap:var(--space-1);
  flex:1;
}

.gnb-links a{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:500;
  color:var(--color-muted);
  padding:8px 14px;
  border-radius:var(--radius-full);
  transition:all var(--transition);
  white-space:nowrap;
}

.gnb-links a:hover{
  color:var(--color-heading);
  background:var(--color-bg-alt);
}

.gnb-links a.active{
  color:#FF6B1A;
  background:rgba(255,107,26,.12);
  font-weight:600;
}

.gnb-links .nav-highlight{
  color:#FF6B1A;
  background:rgba(255,107,26,.12);
  font-weight:600;
}

.gnb-links .nav-highlight:hover{
  color:#fff;
  background:var(--primary);
}

.gnb-actions{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  margin-left:auto;
}

.gnb-actions a{
  font-size:14px;
  color:var(--color-muted);
}

.gnb-actions a:hover{color:var(--color-heading)}

.gnb-btn{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:500;
  padding:6px 16px;
  border-radius:var(--radius-btn);
  border:1px solid var(--color-border);
  color:var(--color-heading);
  background:transparent;
  cursor:pointer;
  transition:all var(--transition);
}

.gnb-btn:hover{
  background:var(--color-bg-alt);
  color:var(--color-heading);
}

.gnb-btn-primary{
  background:var(--g-red);
  border-color:var(--g-red);
  color:white;
}

.gnb-btn-primary:hover{
  background:var(--g-red-hover);
  border-color:var(--g-red-hover);
}

.gnb-divider{
  width:1px;
  height:18px;
  background:var(--color-border);
  margin:0 var(--space-2);
}

/* 顶部工具栏（简历生成页用） */
.top-bar{
  height:56px;
  background:#17212b;
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 var(--space-6);
  position:sticky;
  top:0;
  z-index:90;
}

.top-bar-back{
  color:rgba(255,255,255,.85);
  text-decoration:none;
  font-size:13px;
  font-weight:500;
  padding:6px 12px;
  border-radius:var(--radius-sm);
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.05);
  transition:all var(--transition);
  white-space:nowrap;
}
.top-bar-back:hover{
  background:rgba(255,255,255,.12);
  color:white;
}

.top-bar-title{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  color:white;
  font-size:14px;
}

.top-bar-title .resume-name{
  font-family:var(--font-display);
  font-weight:500;
  padding:4px 10px;
  background:rgba(255,255,255,.1);
  border-radius:var(--radius-sm);
  border:1px solid rgba(255,255,255,.1);
}

.top-bar-actions{display:flex;gap:var(--space-3);align-items:center}

.top-bar-btn{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:500;
  padding:8px 18px;
  border-radius:var(--radius-btn);
  border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.05);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  transition:all var(--transition);
}

.top-bar-btn:hover{
  background:rgba(255,255,255,.12);
  color:white;
}

.top-bar-btn-primary{
  background:var(--g-blue);
  border-color:var(--g-blue);
  color:white;
}

.top-bar-btn-primary:hover{background:var(--g-blue-hover)}

/* 导出下拉菜单 */
.top-bar-export-dropdown{position:relative}
.top-bar-export-menu{
  position:absolute;
  top:calc(100% + 4px);
  right:0;
  background:#17212b;
  border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-4);
  z-index:100;
  min-width:120px;
  padding:4px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.top-bar-export-menu[hidden]{display:none}
.export-menu-item{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:500;
  padding:8px 14px;
  border:none;
  background:transparent;
  color:rgba(255,255,255,.85);
  cursor:pointer;
  text-align:left;
  border-radius:var(--radius-sm);
  display:flex;
  align-items:center;
  gap:var(--space-2);
  transition:all var(--transition);
  white-space:nowrap;
}
.export-menu-item:hover{
  background:rgba(255,255,255,.12);
  color:white;
}

/* v4.9.12: 顶栏 / 导出菜单图标统一为 monochrome 线框（替换原 emoji 彩色图标）。
   SVG 用 currentColor，自动继承按钮的灰白文字色；chev 为下拉箭头，不占右侧间距。 */
.top-bar-btn > svg,
.export-menu-item > svg{
  width:15px;
  height:15px;
  flex-shrink:0;
}
.top-bar-btn .chev{
  width:13px;
  height:13px;
  margin-left:1px;
  margin-right:0;
}
.wc-module-index-manage svg{
  width:14px;
  height:14px;
  flex-shrink:0;
}

/* 顶栏主题切换：直接沿用全局 .gnb-theme-toggle 的传统样式（v7.4 回退）
   —— 亮色显示太阳☀ / 暗色显示月亮☾，圆角图标按钮 + hover 轻微高亮；
   不再叠加发光阴影，也不再在 hover 时切到月亮（之前那套被用户认为"奇奇怪怪"）。
   太阳/月亮的显隐由 base 规则 [data-theme="dark"] .gnb-theme-toggle .theme-icon-* 控制。 */

/* ========================================
   设计面板 & 模块面板（slide-down）
   ======================================== */

.design-panel{
  background:white;
  border-bottom:1px solid var(--color-border);
  box-shadow:var(--shadow-3);
  position:relative;
  z-index:80;
  overflow:hidden;
  animation:designPanelSlideDown .2s ease-out;
}

@keyframes designPanelSlideDown{
  from{opacity:0;transform:translateY(-8px)}
  to{opacity:1;transform:translateY(0)}
}

.design-panel[hidden]{display:none}

.design-panel-inner{
  padding:var(--space-6) var(--space-8);
  max-height:60vh;
  overflow-y:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.design-panel-inner::-webkit-scrollbar{display:none}

.design-panel-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:var(--space-5);
}

.design-panel-title{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--color-heading);
}

.design-panel-close{
  width:32px;height:32px;
  border-radius:var(--radius-full);
  border:none;
  background:var(--gray-100);
  color:var(--color-muted);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  transition:all var(--transition);
}
.design-panel-close:hover{background:var(--gray-200);color:var(--color-heading)}

/* 设计面板内部网格 */
.design-panel-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:var(--space-6);
}

.design-panel-section{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
}

.design-panel-section-title{
  font-size:12px;
  font-weight:600;
  color:var(--color-muted);
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:var(--space-1);
}

/* 模块面板内部 */
.module-panel-list{
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  max-width:600px;
}

/* ========================================
   Buttons
   ======================================== */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:500;
  padding:12px 28px;
  border-radius:var(--radius-btn);
  border:2px solid transparent;
  cursor:pointer;
  transition:all var(--transition);
  text-decoration:none;
  white-space:nowrap;
}

.btn-sm{font-size:var(--text-sm);padding:8px 20px}
.btn-lg{font-size:var(--text-lg);padding:14px 36px}

.btn-blue{
  background:var(--g-blue);color:white;border-color:var(--g-blue);
}
.btn-blue:hover{background:var(--g-blue-hover);box-shadow:var(--shadow-2);color:white}

.btn-red{
  background:var(--g-red);color:white;border-color:var(--g-red);
}
.btn-red:hover{background:var(--g-red-hover);box-shadow:var(--shadow-2);color:white}

.btn-green{
  background:var(--g-green);color:white;border-color:var(--g-green);
}
.btn-green:hover{background:var(--g-green-hover);box-shadow:var(--shadow-2);color:white}

.btn-outline{
  background:transparent;color:var(--g-blue);border-color:var(--color-border);
}
.btn-outline:hover{background:var(--g-blue-light);border-color:var(--g-blue);color:var(--g-blue)}

.btn-outline-dark{
  background:transparent;color:var(--color-heading);border-color:var(--color-border);
}
.btn-outline-dark:hover{background:var(--gray-100);border-color:var(--gray-300)}

.btn-white{
  background:white;color:var(--color-heading);border-color:white;
}
.btn-white:hover{background:var(--gray-100);box-shadow:var(--shadow-3)}

/* ========================================
   Chip & Tag
   ======================================== */

.chip{
  display:inline-flex;
  align-items:center;
  padding:4px 14px;
  font-size:var(--text-xs);
  font-weight:500;
  color:var(--gray-700);
  background:var(--gray-100);
  border-radius:var(--radius-full);
  white-space:nowrap;
}

.tag{
  display:inline-flex;
  align-items:center;
  padding:6px 16px;
  font-family:var(--font-display);
  font-size:var(--text-sm);
  font-weight:500;
  border-radius:var(--radius-full);
  transition:all var(--transition);
  cursor:default;
}

.tag-blue{color:var(--g-blue);background:var(--g-blue-light)}
.tag-blue:hover{background:var(--g-blue);color:white}

.tag-red{color:var(--g-red);background:var(--g-red-light)}
.tag-red:hover{background:var(--g-red);color:white}

.tag-green{color:var(--g-green);background:var(--g-green-light)}
.tag-green:hover{background:var(--g-green);color:white}

/* v4.9.2: 模块分类 tag（紫色调，对应 category 字段） */
.tag-purple{color:#E85F12;background:#FFF1E6}
.tag-purple:hover{background:#A21CAF;color:white}

.tag-yellow{color:#9a7b00;background:var(--g-yellow-light)}
.tag-yellow:hover{background:var(--g-yellow);color:white}

.tag-sm{
  font-size:var(--text-xs);
  padding:3px 10px;
  color:var(--gray-700);
  background:var(--gray-100);
  border-radius:var(--radius-full);
  display:inline-flex;
  font-weight:500;
}

/* ========================================
   Page Header (子页面通用 Hero)
   ======================================== */

.page-hero{
  padding:var(--space-16) 0 var(--space-12);
  text-align:center;
  position:relative;
  overflow:hidden;
}

.page-hero::before{
  content:'';
  position:absolute;
  top:-50%;
  left:-20%;
  width:140%;
  height:200%;
  background:
    radial-gradient(ellipse 800px 400px at 18% 40%, rgba(255,140,66,.10) 0%, transparent 70%),
    radial-gradient(ellipse 700px 360px at 82% 70%, rgba(255,107,26,.07) 0%, transparent 70%);
  z-index:0;
  pointer-events:none;
}

.page-hero > *{position:relative;z-index:1}

.page-hero .section-eyebrow{margin-bottom:var(--space-4)}

.page-hero h1{
  font-family:var(--font-display);
  font-size:var(--text-5xl);
  font-weight:700;
  color:var(--color-heading);
  line-height:1.1;
  margin-bottom:var(--space-4);
}

.page-hero p{
  font-size:var(--text-lg);
  color:var(--color-muted);
  max-width:560px;
  margin:0 auto var(--space-6);
}

/* Google 彩色装饰条 */
.color-bar{
  display:flex;
  height:4px;
  border-radius:2px;
  overflow:hidden;
  max-width:240px;
  margin:0 auto var(--space-6);
}

.color-bar span{flex:1}
.color-bar span:nth-child(1){background:var(--g-blue)}
.color-bar span:nth-child(2){background:var(--g-red)}
.color-bar span:nth-child(3){background:var(--g-yellow)}
.color-bar span:nth-child(4){background:var(--g-green)}

/* ========================================
   Home Hero (首页专用)
   ======================================== */

.home-hero{
  padding:var(--space-16) 0 var(--space-12);
  text-align:center;
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, #fdeef7 0%, #f4f5f7 60%, #ffffff 100%);
}

.home-hero-inner{
  max-width:720px;
  margin:0 auto;
  padding:0 var(--space-6);
  position:relative;
  z-index:1;
}

.home-hero-avatar{margin-bottom:var(--space-6)}

.home-hero-avatar img{
  width:112px;height:112px;
  border-radius:var(--radius-full);
  border:4px solid white;
  box-shadow:var(--shadow-3);
  margin:0 auto;
}

.home-hero h1{
  font-family:var(--font-display);
  font-size:var(--text-5xl);
  font-weight:700;
  color:var(--color-heading);
  line-height:1.1;
}

.home-hero h1 span.color-dot{display:inline}

.home-hero .hero-title{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  font-weight:500;
  color:var(--g-blue);
  margin:var(--space-3) 0;
}

.home-hero .hero-bio{
  font-size:var(--text-lg);
  color:var(--color-text);
  max-width:520px;
  margin:0 auto var(--space-8);
  line-height:1.7;
}

.home-hero-stats{
  display:flex;
  justify-content:center;
  gap:var(--space-12);
  margin-bottom:var(--space-8);
}

.home-stat{
  text-align:center;
}

.home-stat-num{
  display:block;
  font-family:var(--font-display);
  font-size:var(--text-4xl);
  font-weight:700;
  color:var(--color-heading);
  line-height:1;
}

.home-stat-label{
  display:block;
  font-size:var(--text-sm);
  color:var(--color-muted);
  margin-top:var(--space-1);
}

.home-hero-actions{
  display:flex;
  justify-content:center;
  gap:var(--space-4);
}

/* ========================================
   Quick Links (首页快捷入口)
   ======================================== */

.quick-links-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-6);
  margin-top:var(--space-12);
}

.quick-link-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  padding:var(--space-8);
  text-align:center;
  transition:all var(--transition);
  text-decoration:none;
  display:block;
}

.quick-link-card:hover{
  box-shadow:var(--shadow-3);
  transform:translateY(-4px);
}

.quick-link-icon{
  width:64px;height:64px;
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto var(--space-5);
  font-size:28px;
}

.quick-link-icon.blue{background:var(--g-blue-light);color:var(--g-blue)}
.quick-link-icon.red{background:var(--g-red-light);color:var(--g-red)}
.quick-link-icon.green{background:var(--g-green-light);color:var(--g-green)}

.quick-link-card h3{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  font-weight:600;
  color:var(--color-heading);
  margin-bottom:var(--space-2);
}

.quick-link-card p{
  font-size:var(--text-sm);
  color:var(--color-muted);
  margin-bottom:var(--space-4);
}

.quick-link-arrow{
  font-family:var(--font-display);
  font-size:var(--text-sm);
  font-weight:500;
  color:var(--g-blue);
  display:inline-flex;
  align-items:center;
  gap:var(--space-1);
}

/* ========================================
   Service Cards (首页服务概览)
   ======================================== */

.service-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:var(--space-6);
}

.service-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  padding:var(--space-8);
  display:flex;
  flex-direction:column;
  transition:all var(--transition);
}

.service-card:hover{
  box-shadow:var(--shadow-3);
  transform:translateY(-2px);
}

.service-card-icon{
  width:56px;height:56px;
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:var(--space-6);
  font-size:28px;
}

.service-card-icon.blue{background:var(--g-blue-light);color:var(--g-blue)}
.service-card-icon.red{background:var(--g-red-light);color:var(--g-red)}
.service-card-icon.yellow{background:var(--g-yellow-light);color:#9a7b00}
.service-card-icon.green{background:var(--g-green-light);color:var(--g-green)}

.service-card h3{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  font-weight:600;
  color:var(--color-heading);
  margin-bottom:var(--space-3);
}

.service-card>p{
  font-size:var(--text-sm);
  color:var(--color-text);
  line-height:1.7;
  flex:1;
  margin-bottom:var(--space-5);
}

.service-features{
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  margin-bottom:var(--space-5);
  font-size:var(--text-xs);
  color:var(--color-muted);
}

.service-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:var(--space-4);
  border-top:1px solid var(--color-border);
}

.service-price{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  font-weight:700;
  color:var(--color-heading);
}

/* ========================================
   Mentor Cards (导师)
   ======================================== */

.mentor-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
  gap:var(--space-6);
}

.mentor-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  padding:var(--space-6);
  display:flex;
  gap:var(--space-5);
  transition:all var(--transition);
}

.mentor-card:hover{box-shadow:var(--shadow-3)}

.mentor-avatar img{
  width:56px;height:56px;
  border-radius:var(--radius-full);
}

.mentor-info{flex:1;min-width:0}

.mentor-name-row{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  margin-bottom:var(--space-1);
}

.mentor-name-row h4{
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:500;
  color:var(--color-heading);
}

.mentor-rating{font-size:var(--text-xs);color:var(--g-yellow);font-weight:500}

.mentor-bg{
  font-size:var(--text-xs);
  color:var(--color-muted);
  margin-bottom:var(--space-3);
}

.mentor-tags{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-1);
  margin-bottom:var(--space-3);
}

.mentor-stats-row{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4);
  font-size:var(--text-xs);
}

.mentor-stat-good{color:var(--g-green)}
.mentor-stat-rate{color:var(--g-yellow);font-weight:500}

.mentor-card-right{
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:space-between;
}

.mentor-price{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:700;
  color:var(--g-blue);
}

/* ========================================
   Filter Bar
   ======================================== */

.filter-bar{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:var(--space-2);
  margin-bottom:var(--space-8);
}

.filter-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 18px;
  font-family:var(--font-display);
  font-size:var(--text-sm);
  font-weight:500;
  color:var(--gray-700);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-full);
  cursor:pointer;
  transition:all var(--transition);
  user-select:none;
}

.filter-chip:hover,.filter-chip.active{
  background:var(--primary);color:white;border-color:var(--primary);
}

/* ========================================
   Review Cards
   ======================================== */

.review-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:var(--space-6);
}

.review-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  padding:var(--space-8);
  transition:all var(--transition);
}

.review-card:hover{box-shadow:var(--shadow-2)}

.review-stars{font-size:var(--text-lg);margin-bottom:var(--space-4)}

.review-text{
  font-size:var(--text-base);
  color:var(--color-text);
  line-height:1.8;
  margin-bottom:var(--space-6);
}

.review-author strong{
  display:block;
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:500;
  color:var(--color-heading);
}

.review-author span{
  font-size:var(--text-sm);
  color:var(--color-muted);
}

/* ========================================
   CTA Section
   ======================================== */

.cta-section{padding:var(--space-16) 0}

.cta-card{
  background:linear-gradient(135deg, var(--g-blue) 0%, var(--g-blue-hover) 100%);
  border-radius:var(--radius-xl);
  padding:var(--space-16) var(--space-8);
  text-align:center;
  color:white;
}

.cta-card h2{
  font-family:var(--font-display);
  font-size:var(--text-3xl);
  font-weight:700;
  margin-bottom:var(--space-4);
}

.cta-card p{
  font-size:var(--text-lg);
  opacity:.92;
  margin-bottom:var(--space-8);
}

.cta-actions{
  display:flex;
  justify-content:center;
  gap:var(--space-4);
}

/* ========================================
   Process Steps
   ======================================== */

.process-steps{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:0;
  flex-wrap:wrap;
}

.process-step{text-align:center;max-width:180px;padding:var(--space-4)}

.process-step-num{
  width:48px;height:48px;
  border-radius:var(--radius-full);
  color:white;
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto var(--space-4);
}

.process-step:nth-child(1) .process-step-num{background:var(--g-blue)}
.process-step:nth-child(3) .process-step-num{background:var(--g-red)}
.process-step:nth-child(5) .process-step-num{background:var(--g-yellow)}
.process-step:nth-child(7) .process-step-num{background:var(--g-green)}

.process-step h4{
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:500;
  color:var(--color-heading);
  margin-bottom:var(--space-2);
}

.process-step p{font-size:var(--text-sm);color:var(--color-muted);line-height:1.6}

.process-arrow{
  display:flex;
  align-items:center;
  padding-top:var(--space-4);
  color:var(--color-border);
  font-size:24px;
}

/* ========================================
   Guarantee Cards
   ======================================== */

.guarantee-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--space-6);
}

.guarantee-card{
  text-align:center;
  padding:var(--space-8);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  transition:all var(--transition);
}

.guarantee-card:hover{box-shadow:var(--shadow-2)}

.guarantee-card .guarantee-icon{font-size:40px;margin-bottom:var(--space-4)}
.guarantee-card:nth-child(1) .guarantee-icon{color:var(--g-blue)}
.guarantee-card:nth-child(2) .guarantee-icon{color:var(--g-red)}
.guarantee-card:nth-child(3) .guarantee-icon{color:var(--g-green)}

.guarantee-card h4{
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:500;
  color:var(--color-heading);
  margin-bottom:var(--space-2);
}

.guarantee-card p{font-size:var(--text-sm);color:var(--color-muted)}

/* ========================================
   Match Banner
   ======================================== */

.match-banner{
  display:flex;
  align-items:center;
  gap:var(--space-5);
  background:var(--color-surface);
  border:2px dashed var(--color-border);
  border-radius:var(--radius-xl);
  padding:var(--space-6) var(--space-8);
  margin-top:var(--space-8);
}

.match-banner .match-icon{font-size:36px;color:var(--g-blue);flex-shrink:0}

.match-banner strong{
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:500;
  color:var(--color-heading);
  margin-bottom:var(--space-1);
  display:block;
}

.match-banner p{font-size:var(--text-sm)}

.match-banner .match-text{flex:1}

/* ========================================
   Template Cards (简历模板页)
   ======================================== */

.template-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:var(--space-6);
}

.template-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  overflow:hidden;
  transition:all var(--transition);
}

.template-card:hover{
  box-shadow:var(--shadow-3);
  transform:translateY(-4px);
}

.template-preview{
  height:200px;
  background:var(--gray-50);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.template-preview-blue{background:linear-gradient(135deg,var(--g-blue-light),white)}
.template-preview-red{background:linear-gradient(135deg,var(--g-red-light),white)}
.template-preview-green{background:linear-gradient(135deg,var(--g-green-light),white)}
.template-preview-mix{background:linear-gradient(135deg,var(--g-blue-light),var(--g-yellow-light))}

.template-preview-inner{
  width:70%;
  background:white;
  border-radius:var(--radius-sm);
  padding:var(--space-4);
  box-shadow:var(--shadow-2);
}

.template-preview-line{
  height:6px;
  border-radius:3px;
  margin-bottom:6px;
  background:var(--gray-200);
}

.template-preview-line.short{width:60%}
.template-preview-line.blue{background:var(--g-blue-light)}
.template-preview-line.red{background:var(--g-red-light)}
.template-preview-line.green{background:var(--g-green-light)}

/* ===== A4 简历预览缩略图（templates.html / samples.html 共用）=====
   用 transform:scale 把真实 A4 纸张（210mm×297mm）缩进固定比例框，
   overflow:hidden 只显示第 1 页，比例恒为标准 A4。 */
.wc-a4-thumb{
  --a4s:.36;
  width:calc(210mm * var(--a4s));
  height:calc(297mm * var(--a4s));
  margin:0 auto;
  overflow:hidden;
  background:#fff;
  border-radius:8px;
  border:1px solid var(--color-border);
  box-shadow:0 6px 18px rgba(15,23,42,.10);
  position:relative;
}
.wc-a4-thumb .resume-paper{
  transform:scale(var(--a4s));
  transform-origin:top left;
}
@media (min-width:640px){
  .wc-a4-thumb{ --a4s:.42; }
}

/* 侧栏 rail 视图内 A4 预览：缩小适配卡片宽度 */
.editor-overlay-body .wc-a4-thumb{
  --a4s:.20;
}
.editor-overlay-body .wc-sample-card .wc-a4-thumb{
  --a4s:.22;
}
.editor-overlay-body .wc-tpl-card .wc-a4-thumb,
.editor-overlay-body .wc-sample-card .wc-a4-thumb{
  border-radius:var(--radius-sm);
  border:1px solid var(--color-border);
  transition:all var(--transition);
}
.editor-overlay-body .wc-tpl-card:hover .wc-a4-thumb,
.editor-overlay-body .wc-sample-card:hover .wc-a4-thumb{
  border-color:var(--g-blue);
  transform:translateY(-2px);
  box-shadow:var(--shadow-2);
}
.editor-overlay-body .wc-tpl-card.active .wc-a4-thumb{
  border-color:var(--g-blue);
  box-shadow:0 0 0 3px var(--g-blue-light);
}

.template-card-body{padding:var(--space-5)}

.template-card-body h3{
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:600;
  color:var(--color-heading);
  margin-bottom:var(--space-1);
}

.template-card-body p{
  font-size:var(--text-sm);
  color:var(--color-muted);
  margin-bottom:var(--space-3);
}

.template-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-4)}

.template-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.template-card-footer .btn{font-size:var(--text-sm);padding:6px 18px}

.template-badge{
  font-size:var(--text-xs);
  font-weight:500;
  padding:2px 10px;
  border-radius:var(--radius-full);
  color:white;
}

.template-badge.hot{background:var(--g-red)}
.template-badge.new{background:var(--g-green)}
.template-badge.free{background:var(--g-blue)}

/* ========================================
   Sample Cards (简历范文页)
   ======================================== */

.sample-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:var(--space-6);
}

.sample-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  overflow:hidden;
  transition:all var(--transition);
}

.sample-card:hover{
  box-shadow:var(--shadow-3);
  transform:translateY(-4px);
}

.sample-cover{
  height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}

.sample-cover.it{background:linear-gradient(135deg,var(--g-blue-light),#C6DAFC)}
.sample-cover.finance{background:linear-gradient(135deg,var(--g-green-light),#B8E8C8)}
.sample-cover.market{background:linear-gradient(135deg,var(--g-red-light),#FAD2CF)}
.sample-cover.design{background:linear-gradient(135deg,var(--g-yellow-light),#FDE9A8)}
.sample-cover.edu{background:linear-gradient(135deg,#E0E7FF,#C7D2FE)}
.sample-cover.medical{background:linear-gradient(135deg,#D1FAE5,#A7F3D0)}

.sample-cover-badge{
  position:absolute;
  top:var(--space-3);
  right:var(--space-3);
}

.sample-body{padding:var(--space-5)}

.sample-body h3{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--color-heading);
  margin-bottom:var(--space-1);
}

.sample-meta{
  font-size:var(--text-xs);
  color:var(--color-muted);
  margin-bottom:var(--space-3);
}

.sample-body p{
  font-size:var(--text-sm);
  color:var(--color-text);
  line-height:1.6;
  margin-bottom:var(--space-4);
}

/* ========================================
   Builder Editor v2 — 三栏编辑器布局
   ======================================== */

.editor-page{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  /* v4.9.3：编辑器整体配色统一为主页淡橙（原红紫令牌在此作用域覆写为橙） */
  --g-blue:        #FF6B1A;
  --g-blue-hover:  #E85F12;
  --g-blue-light:  #FFF1E6;
  --color-primary: var(--g-blue);
  --tg-blue:        #FF6B1A;
  --tg-blue-hover:  #E85F12;
  --tg-blue-active: #E85F12;
  --tg-blue-light:  #FFF1E6;
  --tg-blue-dark:   #C44E0E;
}

.editor-workspace{
  flex:1;
  display:grid;
  /* v4.9.5: 恢复 .editor-rail（56px 图标导航栏），索引条 (.wc-module-index)
     保留在 .editor-form 内最左，自然落在 rail 与表单内容的空隙中。 */
  grid-template-columns:56px 1fr 6px 1fr;
  min-height:calc(100vh - 56px);
  background:#F4F5F7;
}

/* --- 左侧图标导航栏（v4.9.4 曾 display:none，现已恢复显示） --- */
.editor-rail{
  background:#17212b;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:var(--space-3) 0;
  gap:var(--space-1);
  z-index:10;
}

.rail-btn{
  width:48px;
  padding:10px 4px;
  border:none;
  background:transparent;
  color:rgba(255,255,255,.55);
  cursor:pointer;
  border-radius:var(--radius-md);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  transition:all var(--transition);
  font-family:var(--font-display);
}

.rail-btn:hover{
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.9);
}

.rail-btn.active{
  background:rgba(255,107,26,.16);
  color:var(--g-blue);
}

.rail-btn.active::before{
  content:'';
  position:absolute;
  left:0;
  width:3px;
  height:24px;
  background:var(--g-blue);
  border-radius:0 2px 2px 0;
}

.rail-btn{position:relative}

/* 左侧导航栏图标（v4.9.6: 默认灰白，选中才橙色，与其它面板选中效果统一） */
.rail-icon{
  font-size:20px;
  line-height:1;
  color:rgba(255,255,255,.55);
  transition:color .15s;
}
.rail-icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.rail-btn:hover .rail-icon{ color:rgba(255,255,255,.9); }
/* v4.9.11: 删掉此前 .rail-btn-ai 的 :hover/:active 覆写（1551-1554），
   让 AI 按钮完全继承通用 .rail-btn 的 hover/active 样式，
   与编辑/模板/设计/范文 4 个按钮选中态完全一致。 */
.rail-btn.active .rail-icon{ color:var(--brand-orange); }

.rail-label{
  font-size:10px;
  font-weight:500;
  letter-spacing:.02em;
}

/* v4.9.14: 左侧导航底部「我的 / 数据」按钮组，用 margin-top:auto 顶到底部 */
.rail-bottom{
  margin-top:auto;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--space-1);
  padding-top:var(--space-2);
  border-top:1px solid rgba(255,255,255,.08);
}

/* --- 拖拽分隔条 --- */
.editor-splitter{
  background:transparent;
  cursor:col-resize;
  position:relative;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  user-select:none;
  flex-shrink:0;
}
.editor-splitter::before{
  content:'';
  position:absolute;
  inset:0;
  left:2px;
  right:2px;
  background:transparent;
  transition:background var(--transition);
  border-radius:3px;
}
.editor-splitter:hover::before,
.editor-splitter.dragging::before{
  background:var(--g-blue);
}
.editor-splitter-handle{
  width:2px;
  height:40px;
  background:var(--gray-300);
  border-radius:1px;
  pointer-events:none;
  transition:background var(--transition);
}
.editor-splitter:hover .editor-splitter-handle,
.editor-splitter.dragging .editor-splitter-handle{
  background:var(--g-blue);
}

/* --- 覆盖面板（模板/设计覆盖编辑区） --- */
.editor-overlay{
  position:absolute;
  inset:0;
  background:var(--color-bg,#fff);
  z-index:15;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  animation:overlayFadeIn .15s ease-out;
}
.editor-overlay[hidden]{display:none}
@keyframes overlayFadeIn{
  from{opacity:0;transform:translateY(-8px)}
  to{opacity:1;transform:translateY(0)}
}
/* v4.9 改造：顶栏变两行（主标题行 + 子分类 nav 行），底下细线分隔 */
.editor-overlay-header{
  display:flex;
  flex-direction:column;
  padding:0;
  border-bottom:1px solid var(--color-border);
  flex-shrink:0;
  background:var(--color-bg,#fff);
}
.editor-overlay-header-row{
  display:flex;
  align-items:baseline;
  gap:var(--space-2);
  padding:var(--space-3) var(--space-6) var(--space-2);
  min-height:36px;
}
.editor-overlay-title{
  font-family:var(--font-display);
  font-size:18px;
  font-weight:700;
  color:var(--color-heading);
  letter-spacing:.01em;
  line-height:1.2;
}
.editor-overlay-subtitle{
  font-size:18px;
  line-height:1.2;
  color:var(--color-muted,#8a94a3);
  filter:saturate(1.1);
}
.editor-overlay-subtitle svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.editor-overlay-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:var(--space-2);
}
.editor-overlay-subnav{
  display:flex;
  align-items:center;
  gap:var(--space-5);
  padding:0 var(--space-6);
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
  min-height:34px;
}
.editor-overlay-subnav::-webkit-scrollbar{display:none}
.editor-overlay-subnav[hidden]{display:none}
.editor-overlay-subnav-btn{
  position:relative;
  padding:6px 0;
  font-size:13.5px;
  font-weight:500;
  color:var(--color-muted,#6b7280);
  background:transparent;
  border:none;
  cursor:pointer;
  white-space:nowrap;
  transition:color .15s ease;
  font-family:var(--font-body);
}
.editor-overlay-subnav-btn:hover{
  color:var(--color-heading);
}
.editor-overlay-subnav-btn.active{
  color:var(--g-blue,#4285F4);
  font-weight:600;
}
.editor-overlay-subnav-btn.active::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  background:var(--g-blue,#4285F4);
  border-radius:2px 2px 0 0;
}
/* v4.9.8 合并子导航：模板组 + 竖线分隔 + 设计组 */
.editor-overlay-subnav-group{
  display:flex;
  align-items:center;
  gap:var(--space-5);
}
.editor-overlay-subnav-sep{
  display:inline-block;
  width:1px;
  height:14px;
  margin:0 var(--space-2);
  background:var(--color-border);
  color:transparent;
  font-size:0;
  user-select:none;
  flex-shrink:0;
}
.editor-overlay-close{
  width:28px;
  height:28px;
  border:none;
  border-radius:var(--radius-md);
  background:transparent;
  color:var(--color-muted);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  transition:all var(--transition);
}
.editor-overlay-close:hover{
  background:var(--gray-100);
  color:var(--color-heading);
}
.editor-overlay-reset{
  font-family:var(--font-display);
  font-size:12px;
  font-weight:500;
  padding:4px 10px;
  border:none;
  border-radius:var(--radius-md);
  background:transparent;
  color:var(--g-blue);
  cursor:pointer;
  transition:all var(--transition);
  white-space:nowrap;
}
.editor-overlay-reset:hover{
  background:var(--g-blue-light);
}
.editor-overlay-reset[hidden]{display:none}
.editor-overlay-body{
  flex:1;
  overflow-y:auto;
  padding:var(--space-5) var(--space-6);
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.editor-overlay-body::-webkit-scrollbar{display:none}

.sidebar-section{padding:var(--space-5) var(--space-5) 0}

.sidebar-title{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:600;
  color:var(--color-heading);
  margin-bottom:var(--space-3);
  text-transform:uppercase;
  letter-spacing:.05em;
}

.module-list{flex:1;overflow-y:auto;padding:0 var(--space-3)}

.module-item{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  padding:10px 12px;
  border-radius:var(--radius-md);
  cursor:pointer;
  transition:all var(--transition);
  margin-bottom:var(--space-1);
  position:relative;
}

.module-item:hover{background:var(--gray-100)}

.module-item.active{
  background:var(--g-blue-light);
  color:var(--g-blue);
}

.module-item .module-icon{
  width:32px;height:32px;
  border-radius:var(--radius-md);
  background:var(--gray-100);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  color:var(--g-orange);
  transition:all var(--transition);
}
/* v5.5: lucide SVG 尺寸（<i data-lucide> 由 lucide.createIcons() 替换为 svg）。
   覆盖 emoji 自适应字符框导致的不同模块行高不一致问题 → 全部统一 18×18
   v6.4 关键：尺寸需直接打到 svg 上（i 被 lucide 替换后选择器失效） */
.module-item .module-icon > svg{
  width:18px;height:18px;
  stroke-width:1.75;
  display:block;
}
/* v6.3: 替换完成前不显示 <i> 的文字内容（lucide 名字如 "user"），避免图标闪烁 */
.module-item .module-icon i[data-lucide]:empty{font-size:0;color:transparent}
.module-item.active .module-icon{background:var(--g-orange);color:#fff}
/* 列表内 emoji 描述：兜底处理——若 icon 字段仍是 emoji（遗留数据），保持 16px 字号 */
.module-item .module-icon > *:not([data-lucide]):not(svg){
  font-size:16px;line-height:1;
}

/* v6.3：全局防闪烁 —— <i data-lucide="x"> 在被 lucide.createIcons() 替换成 <svg> 之前，
   会先以裸文本 "x" 显示一帧 → 视觉上闪一下"briefcase"之类的字。
   解决：未渲染时（内容还是 lucide 名）把字色/字号设为透明，
   SVG 一旦插入就自动生效（因为 SVG 不受 text/font-size 影响）。*/
i[data-lucide]{font-size:0;color:transparent;line-height:0}
i[data-lucide] svg{font-size:initial;color:initial;line-height:initial}

.module-item .module-label{
  flex:1;
  font-size:14px;
  font-weight:500;
  color:var(--color-heading);
}

.module-item.active .module-label{color:var(--g-orange)}

.module-toggle{
  width:32px;height:18px;
  border-radius:var(--radius-full);
  background:var(--gray-300);
  position:relative;
  cursor:pointer;
  transition:all var(--transition);
  flex-shrink:0;
}

.module-toggle::after{
  content:'';
  position:absolute;
  top:2px;left:2px;
  width:14px;height:14px;
  border-radius:50%;
  background:white;
  transition:all var(--transition);
}

.module-toggle.on{
  background:var(--g-green);
}

.module-toggle.on::after{
  left:16px;
}

.module-toggle.disabled{
  background:var(--g-green);
  opacity:.5;
  cursor:not-allowed;
}

.module-actions{
  display:flex;
  align-items:center;
  gap:var(--space-1);
  opacity:1;
}

.module-action-btn{
  width:22px;height:22px;
  border-radius:var(--radius-full);
  border:none;
  background:transparent;
  color:var(--color-muted);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
}

.module-action-btn:hover{background:var(--gray-200);color:var(--color-heading)}

/* v7.2：基本信息行的锁定 icon —— 槽位占位（不点击），
   视觉柔和（淡橙描边 + 浅橙底），与下方删除 ✕ 区分清晰 */
.module-action-locked{
  cursor:default;
  color:var(--g-orange, #FF6B1A);
  background:rgba(255,107,26,.10);
  border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
}
.module-action-locked:hover{background:rgba(255,107,26,.18);color:var(--g-orange, #FF6B1A)}
.module-action-locked > svg{ width:12px; height:12px; stroke-width:2; display:block; }

.add-module-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  padding:10px;
  margin:var(--space-3) 0 var(--space-5);
  border:1px dashed var(--gray-300);
  border-radius:var(--radius-md);
  background:transparent;
  color:var(--color-muted);
  font-size:13px;
  cursor:pointer;
  transition:all var(--transition);
}
.add-module-btn .add-module-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:inherit;
}
.add-module-btn .add-module-icon i[data-lucide]{
  width:14px;height:14px;stroke-width:1.75;
}
.add-module-btn:hover{
  border-color:var(--g-blue);
  color:var(--g-blue);
  background:var(--g-blue-light);
}

/* ===== 内联模块管理面板（编辑区最顶端，默认折叠）===== */
.module-panel{
  margin-bottom:var(--space-5);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  background:var(--color-surface);
  overflow:hidden;
}
/* v5.5: openModulePanel 调用后 1.5s 蓝色边框闪烁——给"点击之后已打开"的强视觉反馈 */
@keyframes wc-panel-flash {
  0%   { box-shadow:0 0 0 0 rgba(66,133,244,0); border-color:var(--color-border); }
  25%  { box-shadow:0 0 0 4px rgba(66,133,244,.28); border-color:var(--g-blue); }
  60%  { box-shadow:0 0 0 4px rgba(66,133,244,.16); border-color:var(--g-blue); }
  100% { box-shadow:0 0 0 0 rgba(66,133,244,0); border-color:var(--color-border); }
}
.module-panel.wc-panel-flash{ animation: wc-panel-flash 1.5s ease-out; }
/* 暗黑模式下面板闪烁用更亮的蓝 */
[data-theme="dark"] .module-panel.wc-panel-flash{
  animation-name: wc-panel-flash;
}
/* 模块管理面板顶栏 */
.module-panel-header{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  padding:10px 14px;
  cursor:pointer;
}
.module-panel-title{
  flex:1 1 auto;
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
}
.module-panel-count{
  font-size:12px;
  font-weight:500;
  font-family:var(--font-body);
  color:var(--color-muted);
}
.module-panel-reset,
.module-panel-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  padding:0;
  border:none;
  border-radius:var(--radius-md);
  background:transparent;
  color:var(--color-muted);
  cursor:pointer;
  font-size:14px;
  line-height:1;
  transition:background var(--transition),color var(--transition);
}
.module-panel-reset:hover,
.module-panel-toggle:hover{background:var(--gray-100);color:var(--g-blue)}
.module-panel-reset:focus-visible,
.module-panel-toggle:focus-visible{outline:2px solid var(--g-blue);outline-offset:-2px}
.module-panel-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;height:16px;
  font-size:11px;
  color:var(--color-muted);
  transition:transform var(--transition);
  transform:rotate(0deg);
}
.module-panel[data-collapsed="false"] .module-panel-chevron{transform:rotate(90deg)}
.module-panel-body{
  padding:2px 14px 14px;
  border-top:1px solid var(--color-border);
}
.module-panel-body[hidden]{display:none}
/* 面板内复用设置组/模块列表，做白底边距微调 */
.module-panel .setting-group{margin-bottom:0}
.module-panel .setting-group-header{margin:var(--space-3) 0 var(--space-2)}

/* 左侧底部设置 */
.sidebar-settings{
  border-top:1px solid var(--color-border);
  padding:var(--space-5);
  background:#FAFBFC;
}

/* v4.9 设计面板分类容器：扁平化，分类标题作为锚点目标 */
.design-category{
  position:relative;
  margin-bottom:var(--space-6);
  scroll-margin-top:var(--space-7);
}
.design-category:last-child{margin-bottom:0}
.design-category-title{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
  padding:var(--space-2) 0 var(--space-1);
  margin-bottom:var(--space-3);
  /* 不再 sticky、不再 border-bottom、不再蓝竖条 ::before —— 视觉权重交给顶栏 subnav */
  background:transparent;
  letter-spacing:.01em;
}
/* 删除蓝竖条 ::before（小标题只承担锚点定位，标题视觉在顶栏） */
.design-category-title::before{
  content:none;
}

.setting-group{margin-bottom:var(--space-5)}
.setting-group:last-child{margin-bottom:0}

.setting-label{
  font-size:12px;
  font-weight:500;
  color:var(--color-muted);
  margin-bottom:var(--space-2);
  display:block;
}

.setting-group-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:var(--space-2);
}
.setting-group-header .setting-label{margin-bottom:0}
.setting-group-reset{
  width:24px;
  height:24px;
  border:none;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--color-muted);
  cursor:pointer;
  font-size:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all var(--transition);
}
.setting-group-reset:hover{
  background:var(--gray-100);
  color:var(--g-blue);
}

.color-options{
  display:flex;
  gap:var(--space-2);
  flex-wrap:wrap;
}

.color-option{
  width:26px;height:26px;
  border-radius:50%;
  cursor:pointer;
  border:2px solid transparent;
  transition:all var(--transition);
}

.color-option:hover{transform:scale(1.1)}

.color-option.active{box-shadow:0 0 0 2px white,0 0 0 4px var(--gray-300)}

.layout-options{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--space-2);
}

.layout-option{
  border:2px solid var(--color-border);
  border-radius:var(--radius-sm);
  padding:var(--space-2);
  cursor:pointer;
  background:white;
  transition:all var(--transition);
}

.layout-option:hover{border-color:var(--g-blue)}
.layout-option.active{border-color:var(--g-blue);background:var(--g-blue-light)}

.layout-mini{
  height:28px;
  background:var(--gray-100);
  border-radius:3px;
  display:flex;
  gap:3px;
  padding:3px;
}

.layout-mini .layout-col{background:white;border-radius:2px}
.layout-mini.layout-single .layout-col{flex:1}
.layout-mini.layout-left .layout-col:first-child{width:35%}
.layout-mini.layout-left .layout-col:last-child{flex:1}
.layout-mini.layout-top .layout-col{width:100%;height:30%}
.layout-mini.layout-top{flex-direction:column}
.layout-mini.layout-top .layout-col:last-child{flex:1;height:auto}
.layout-mini.layout-dual .layout-col:first-child{width:34%}
.layout-mini.layout-dual .layout-col:last-child{flex:1}

.layout-option-label{
  text-align:center;
  font-size:11px;
  font-weight:500;
  color:var(--color-muted);
  margin-top:var(--space-1);
  line-height:1;
}

.font-select{
  width:100%;
  padding:8px 10px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-size:13px;
  background:white;
  cursor:pointer;
  outline:none;
}

/* --- 中间表单区 --- */
.editor-form{
  position:relative;
  display:flex;
  gap:14px;
  align-items:flex-start;
  /* v4.9.6: 左右对称 padding，让表单两侧、rail 到索引条、索引条到表单 三处视觉对称 */
  padding:var(--space-6);
  overflow-y:auto;
  max-height:calc(100vh - 56px);
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.editor-form-main{
  flex:1 1 auto;
  min-width:0;
}
.editor-form::-webkit-scrollbar{display:none}

/* 当覆盖面板打开时，锁定编辑区滚动 */
.editor-form.overlay-active{
  overflow:hidden;
}

/* --- v4.9.10 编辑区左侧索引条（圆点 + 固定不滚动 + 左右间距对称）---
   v4.9.10:
     • 索引条改 position:fixed（脱离 flex 流 + 不随 .editor-form 内部滚动），
       让卡片左右两侧间距对称（24px = 24px）。原本 sticky 占 16+14=30px 槽位，
       把卡片右挤 30px，使左侧 rail→card=54px、右侧 card→form右缘=24px，不对称。
     • left:62px = rail 右缘(56) + 6px 内边距；固定浮在卡片外的灰白区。
     • 默认态：小圆点列，垂直居中；hover 时弹出「模块管理 + 模块列表」面板。*/
.wc-module-index{
  position:fixed;
  left:62px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-start;
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
  padding:0;
  margin:0;
  z-index:8;
}

/* 覆盖面板打开时隐藏索引条（保持原行为） */
.editor-form.overlay-active .wc-module-index{ display:none; }

/* 折叠态：每个 item 是一个 16×16 圆形点击区，承载一个 6×6 的小灰圆点（v4.9.9：条→点） */
.wc-module-index-item{
  width:16px;
  height:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:none;
  background:transparent;
  padding:0;
  cursor:pointer;
  border-radius:50%;
}
/* v4.9.9：圆点样式（替代 v4.9.7 的 22×3 细长沙条） */
.wc-module-index-item .wc-index-bar{
  display:block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d8dbe0;
  transition:background .15s, transform .15s, width .15s, height .15s;
}
/* v4.9.4: 默认态只显小圆点——隐藏 icon/title（hover 弹出面板内仍可见） */
.wc-module-index-list .wc-module-index-item{ overflow:hidden; }
.wc-module-index-list .wc-index-icon,
.wc-module-index-list .wc-index-title{ display:none; }
/* v5.5: lucide SVG 在 索引条/pop 中的尺寸；v6.5：图标改为橙色（与品牌强调色一致）
   注：lucide 会把 <i data-lucide> 替换成 <svg>，故尺寸/颜色规则必须同时命中 > svg */
.wc-index-icon i[data-lucide],
.wc-index-icon > svg{
  width:14px;height:14px;
  stroke-width:1.75;
  display:block;
  color:var(--g-orange);
}
.wc-index-icon > *:not([data-lucide]):not(svg){
  font-size:14px;line-height:1;
}
/* v4.9.9：active 圆点稍微变大 + 橙色 */
.wc-module-index-item.active .wc-index-bar{ background:var(--brand-orange); width:8px; height:8px; }
.wc-module-index-item:hover .wc-index-bar{ background:#aab1ba; }
.wc-module-index-item.active:hover .wc-index-bar{ background:var(--brand-orange-deep); }

/* 悬浮展开面板：hover 时出现，覆盖在内容右侧，布局零位移 */
.wc-module-index-pop{
  position:absolute;
  left:38px;
  top:0;
  width:224px;
  z-index:30;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:10px;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  padding:10px;
  display:none;
  flex-direction:column;
  gap:4px;
}
.wc-module-index-pop[hidden]{ display:none; }
.wc-module-index.is-open .wc-module-index-pop{ display:flex; }

.wc-module-index-manage{
  border:1px dashed var(--color-border);
  border-radius:6px;
  background:#FAFBFC;
  color:var(--color-heading);
  font-size:12.5px;
  font-weight:500;
  cursor:pointer;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0;
  margin-bottom:6px;
  transition:all .15s;
}
.wc-module-index-manage:hover{ color:var(--brand-orange); border-color:var(--brand-orange); }

/* 展开面板内的模块列表：图标 + 标题横卡 */
.wc-module-index-pop-list .wc-module-index-item{
  width:100%;
  height:34px;
  justify-content:flex-start;
  gap:9px;
  padding:0 9px;
  border-radius:6px;
  background:transparent;
}
.wc-module-index-pop-list .wc-module-index-item:hover{ background:rgba(255,107,26,.08); }
.wc-module-index-pop-list .wc-module-index-item.active{ background:rgba(255,107,26,.14); }
.wc-module-index-pop-list .wc-module-index-item.active .wc-index-title{ color:var(--brand-orange); font-weight:600; }
.wc-module-index-pop-list .wc-index-bar{ display:none; }
.wc-module-index-pop-list .wc-index-icon{ font-size:14px; line-height:1; }
.wc-module-index-pop-list .wc-index-title{ font-size:12.5px; font-weight:500; color:var(--color-heading); }

.form-card{
  background:white;
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:var(--space-6);
  margin-bottom:var(--space-5);
  box-shadow:var(--shadow-1);
}

.form-card-title{
  display:flex;
  align-items:center;
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--color-heading);
  /* v5-r4: 去掉叠加的 margin-bottom + padding-bottom，只保留 padding-bottom，
     让 .form-card-body 的 padding-top 接续。统一所有模块卡片的标题→内容间距 */
  margin-bottom:0;
  padding-bottom:var(--space-3);
  border-bottom:1px solid var(--color-border);
  cursor:pointer;
  user-select:none;
}

.form-card-title .icon{
  width:36px;height:36px;
  margin-right:10px;
  border-radius:var(--radius-md);
  background:var(--g-blue-light);
  color:var(--g-blue);
  display:flex;
  align-items:center;
  justify-content:center;
}
/* v5.5: 卡片标题内的 lucide SVG 统一样式（22×22 略大，与 36 容器保持视觉居中） */
.form-card-title .icon i[data-lucide]{
  width:22px;height:22px;
  stroke-width:1.75;
  display:block;
}
/* v6：标题 icon 内部多了 .wc-module-icon 包装层（可点击切换） */
.form-card-title .icon .wc-module-icon{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;
  border-radius:6px;
  cursor:pointer;
  transition:background .15s,color .15s;
}
.form-card-title .icon .wc-module-icon:hover{background:rgba(255,255,255,.5)}
.form-card-title .icon .wc-module-icon:focus-visible{outline:2px solid var(--g-blue);outline-offset:2px}
/* v6：标题右侧灰色编辑按钮（仅 hover 显示，点击原地重命名模块标题） */
.form-card-title-text{
  min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
/* v6.4：编辑（铅笔）按钮紧贴标题文字（取消 text 的 flex:1，让 actions 整体 margin-left:auto 推到右端） */
/* v6.10·改：align-items 从 flex-end 改为 baseline，让铅笔和"标题文字"基线对齐（之前 flex-end
   会把图标底部对齐到整行 padding-bottom 下沿、与文字视觉错位；现在的效果是"图标底沿≈文字底沿"） */
.form-card-title-textwrap{
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  min-width:0;
  vertical-align:baseline;
}
.form-card-title-edit{
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; padding:0;
  border:none; background:transparent;
  color:var(--gray-500,#6b7280);
  opacity:1; cursor:pointer; border-radius:4px;
  transition:opacity .15s, background .15s, color .15s;
  flex-shrink:0;
  vertical-align:baseline;
  position:relative;
  top:-2px; /* v6.10·微调：把 16×16 图标视觉中心推到文字 x-height 中线 */
}
.form-card-title-edit i[data-lucide],
.form-card-title-edit > svg{width:11px;height:11px;stroke-width:1.75;display:block}
/* v6.5：编辑态绿色 ✓（替代铅笔，点此保存）
   v6.10·改：与 pencil 共用 baseline 对齐（见 .form-card-title-textwrap） */
.form-card-title-check{
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; padding:0;
  border:none; background:transparent;
  color:var(--g-green,#16a34a); cursor:pointer; border-radius:4px;
  flex-shrink:0;
  transition:background .15s;
  vertical-align:baseline;
  position:relative;
  top:-2px;
}
.form-card-title-check i[data-lucide],
.form-card-title-check > svg{width:13px;height:13px;stroke-width:2.5;display:block}
.form-card-title-check:hover{background:rgba(22,163,74,.14)}
.form-card:hover .form-card-title-edit,
.form-card-title-edit:focus-visible{opacity:1}
.form-card-title-edit:hover{background:var(--gray-100,#f5f5f5);color:var(--gray-700,#374151)}
/* v6.4：标题右侧操作按钮组容器（折叠 + 删除）——margin-left:auto 把它推到右端 */
.form-card-title-actions{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto}
.form-card-title-input{
  flex:1; min-width:0;
  border:1px solid var(--g-blue,#4285F4);
  border-radius:4px;
  padding:2px 8px; margin:0;
  font-family:inherit; font-size:inherit; font-weight:inherit; color:inherit;
  background:transparent; outline:none;
}
[data-theme="dark"] .form-card-title-edit{color:#9ca3af}
[data-theme="dark"] .form-card-title-edit:hover{background:rgba(255,255,255,.08);color:#e5e7eb}
/* 兜底：emoji 字形路径（历史数据） */
.form-card-title .icon > *:not([data-lucide]):not(svg){
  font-size:20px;line-height:1;
}

/* ===== v6：表单字段前 lucide icon + icon picker ===== */
/* v6.3: icon 不再 absolute 在 input 内，改放在 label 前（label 文本左侧，紧凑 inline-flex） */
/* v6.4: 缩小到 13px 与 label 文字中线对齐（vertical-align:-2px + line-height:1 配合）；
   lucide.createIcons 把 <i data-lucide> 替换为 <svg>，故尺寸需直接打在 svg 上而非 i 上 */
.wc-field-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--gray-500);
  cursor:pointer;
  padding:0 3px 0 0;
  margin-right:2px;
  border-radius:4px;
  transition:color .15s,background .15s;
  vertical-align:-2px;
  line-height:1;
}
.wc-field-icon:hover{color:var(--g-orange);background:rgba(255,107,26,.08)}
.wc-field-icon:focus-visible{outline:2px solid var(--g-orange);outline-offset:1px}
/* v6.4 关键：lucide.createIcons 把 <i data-lucide> 替换为 <svg>，原 i 选择器不再命中；
   v6.3 之前的 15px 其实从未生效（一直是 lucide 默认 24px），这里直接给 svg 设尺寸 */
.wc-field-icon > svg{width:13px;height:13px;stroke-width:1.75;display:block}
/* QR 行：input + QR 按钮并排，QR 在 input 内右对齐 */
.form-input-with-qr{position:relative;display:block}
.form-input-with-qr .form-input{padding-right:38px}
.website-qr-icon{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  padding:0;
  border:none;
  background:transparent;
  color:var(--color-muted,#999);
  border-radius:6px;
  cursor:pointer;
  transition:color .15s, background .15s;
}
.website-qr-icon i[data-lucide]{width:15px;height:15px;stroke-width:1.75}
.website-qr-icon:hover{background:var(--gray-100,#f5f5f5);color:var(--g-orange,#FF6B1A)}
.website-qr-icon.is-on{color:var(--g-orange,#FF6B1A)}
.website-qr-icon.is-on:hover{color:var(--g-orange-hover,#E85F12);background:rgba(255,107,26,.10)}
[data-theme="dark"] .website-qr-icon{color:#9ca3af}
[data-theme="dark"] .website-qr-icon:hover{background:rgba(255,255,255,.08);color:#e5e7eb}
[data-theme="dark"] .website-qr-icon.is-on{color:var(--g-orange,#FF8B4D)}

/* icon picker 弹窗（字段 / 模块共用） */
.wc-icon-pick-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(64px,1fr));
  gap:6px;
  padding:4px 2px;
}
.wc-icon-pick-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:12px 6px;
  border:1px solid var(--color-border);
  border-radius:10px;
  background:var(--color-surface);
  color:var(--color-muted);
  cursor:pointer;
  transition:all .15s;
}
.wc-icon-pick-card:hover{
  border-color:var(--g-blue);
  color:var(--g-blue);
  background:rgba(66,133,244,.04);
}
.wc-icon-pick-card.is-active{
  border-color:var(--g-blue);
  background:rgba(66,133,244,.1);
  color:var(--g-blue);
}
.wc-icon-pick-card i[data-lucide]{width:24px;height:24px;stroke-width:1.5}
.wc-icon-pick-card .wc-icon-pick-name{font-size:10.5px;font-weight:500;letter-spacing:.02em}
[data-theme="dark"] .wc-icon-pick-card{background:#1a2332;border-color:#273344;color:#9fb0c4}
[data-theme="dark"] .wc-icon-pick-card:hover{background:rgba(66,133,244,.15);color:#d0d8e4}
[data-theme="dark"] .wc-icon-pick-card.is-active{background:rgba(66,133,244,.2);color:#fff}

/* ===== v6.2b: QR 设置弹窗表单 ===== */
.wc-qr-settings{display:flex;flex-direction:column;gap:14px;padding:6px 2px}
.wc-qr-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wc-qr-row-toggle{justify-content:space-between}
.wc-qr-row-label{
  font-size:13px;font-weight:500;color:var(--color-text,#222);
  display:flex;align-items:center;gap:6px;flex-shrink:0;
}
.wc-qr-row-value{
  font-size:12px;color:var(--g-blue,#4285F4);font-weight:600;
  font-variant-numeric:tabular-nums;
  margin-left:4px;
}
.wc-qr-input{
  flex:1;min-width:160px;font-size:13px;padding:6px 10px;
  border:1px solid var(--color-border);border-radius:var(--radius-sm);
  background:var(--color-surface,#fff);color:var(--color-text,#222);
}
.wc-qr-input:focus{outline:none;border-color:var(--g-blue);box-shadow:0 0 0 3px rgba(66,133,244,.12)}

/* 开关 */
.wc-qr-switch{
  position:relative;display:inline-block;
  width:38px;height:22px;
  background:var(--gray-300,#d1d5db);
  border:none;border-radius:999px;
  cursor:pointer;
  transition:background .2s;
  flex-shrink:0;padding:0;
}
.wc-qr-switch .wc-qr-switch-knob{
  position:absolute;top:2px;left:2px;
  width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);
  transition:left .2s ease;
}
.wc-qr-switch.is-on{background:var(--g-blue,#4285F4)}
.wc-qr-switch.is-on .wc-qr-switch-knob{left:18px}
[data-theme="dark"] .wc-qr-switch{background:#3a4556}

/* 滑杆 */
.wc-qr-slider{
  flex:1;min-width:140px;
  height:24px;
  -webkit-appearance:none;appearance:none;
  background:transparent;
  cursor:pointer;
}
.wc-qr-slider::-webkit-slider-runnable-track{
  height:4px;background:var(--gray-200,#e5e7eb);border-radius:2px;
}
.wc-qr-slider::-moz-range-track{height:4px;background:var(--gray-200,#e5e7eb);border-radius:2px}
.wc-qr-slider::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:16px;height:16px;border-radius:50%;
  background:var(--g-blue,#4285F4);
  border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2);
  margin-top:-6px;cursor:pointer;
}
.wc-qr-slider::-moz-range-thumb{
  width:14px;height:14px;border-radius:50%;
  background:var(--g-blue,#4285F4);
  border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2);
  cursor:pointer;
}

/* 对齐按钮组 */
.wc-qr-align-group{display:flex;gap:4px;flex-shrink:0}
.wc-qr-align-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:32px;padding:0;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  background:var(--color-surface,#fff);
  color:var(--color-muted,#666);
  cursor:pointer;
  transition:all .15s;
}
.wc-qr-align-btn i[data-lucide]{width:16px;height:16px;stroke-width:1.75}
.wc-qr-align-btn:hover{border-color:var(--g-blue);color:var(--g-blue)}
.wc-qr-align-btn.is-active{
  border-color:var(--g-blue);background:rgba(66,133,244,.10);color:var(--g-blue);
}
[data-theme="dark"] .wc-qr-align-btn{background:#1a2332;border-color:#273344;color:#9fb0c4}
[data-theme="dark"] .wc-qr-align-btn.is-active{background:rgba(66,133,244,.2);color:#fff}

/* v6.4：滑杆右侧「重置」按钮——默认灰、非默认（值≠默认）时变橙提示用户当前非默认 */
.wc-qr-reset{
  flex-shrink:0;
  height:24px;padding:0 10px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  background:var(--color-surface,#fff);
  color:var(--color-muted,#666);
  font-size:12px;cursor:pointer;
  transition:all .15s;
  white-space:nowrap;
}
.wc-qr-reset:hover{
  background:var(--color-surface-2,#f1f2f4);
  color:var(--color-heading);
  border-color:var(--gray-400,#9ca3af);
}
.wc-qr-reset.is-non-default{
  border-color:var(--g-orange,#FF6B1A);
  color:var(--g-orange,#FF6B1A);
  background:rgba(255,107,26,.06);
}
.wc-qr-reset.is-non-default:hover{background:rgba(255,107,26,.12);border-color:var(--g-orange-hover,#E85F12)}
[data-theme="dark"] .wc-qr-reset{background:#1a2332;border-color:#273344;color:#9fb0c4}
[data-theme="dark"] .wc-qr-reset:hover{background:#1e2836;color:#e8ecf1;border-color:#3a4a5e}
[data-theme="dark"] .wc-qr-reset.is-non-default{background:rgba(255,107,26,.18);border-color:var(--g-orange,#FF8B4D);color:var(--g-orange,#FF8B4D)}

/* 卡片折叠按钮 */
.form-card-collapse{
  margin-left:auto;
  width:24px;
  height:24px;
  border:none;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--color-muted);
  font-size:14px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all var(--transition);
  flex-shrink:0;
}
.form-card-collapse i[data-lucide],
.form-card-collapse > svg{width:15px;height:15px;stroke-width:1.75}
.form-card-collapse:hover{
  background:var(--gray-100);
  color:var(--color-heading);
}
/* v6.2b: 删除按钮（lucide trash-2 红色） */
.form-card-del{
  width:24px;
  height:24px;
  color:var(--g-red,#EA4335);
  opacity:1;
}
.form-card-del i[data-lucide],
.form-card-del > svg{width:15px;height:15px;stroke-width:1.85}
.form-card-del:hover{
  background:rgba(234,67,53,.10)!important;
  color:var(--g-red,#c62828)!important;
}
/* 卡片标题右侧操作按钮常驻显示 */
.form-card-title .module-action-btn{
  opacity:1;
}
.form-card-body[hidden]{display:none}
/* v5-r4: 标题→内容的统一间距，与 .form-card-title 的 padding-bottom 接力 */
.form-card-body{padding-top:var(--space-5)}
.form-card.is-collapsed .form-card-title{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:none;
}

/* 网站输入框 + 二维码设置入口（v6.2b：合并到 lucide icon 按钮 → 弹窗） */
.website-input-group{
  display:flex;
  align-items:center;
  gap:0;
}
.website-input-group .form-input{
  flex:1;
  border-top-right-radius:0;
  border-bottom-right-radius:0;
}
/* 标签右侧的小图标按钮（已并入 .wc-field-icon 块下，此处保留兼容占位） */

.form-section-title{
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:600;
  color:var(--color-heading);
  margin:var(--space-6) 0 var(--space-4);
}

.form-subsection{
  background:var(--gray-50);
  border-radius:var(--radius-md);
  padding:var(--space-5);
  margin-bottom:var(--space-4);
}

.form-group{margin-bottom:var(--space-4)}
.form-group:last-child{margin-bottom:0}

.form-group label{
  display:block;
  font-size:13px;
  font-weight:500;
  color:var(--color-heading);
  margin-bottom:var(--space-2);
}

.form-group label .required{color:var(--g-red);margin-left:2px}

.form-input,.form-textarea{
  width:100%;
  font-family:var(--font-body);
  font-size:14px;
  padding:10px 12px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  color:var(--color-heading);
  background:var(--color-surface);
  transition:all var(--transition);
  outline:none;
}

.form-input:focus,.form-textarea:focus{
  border-color:var(--g-blue);
  box-shadow:0 0 0 3px var(--g-blue-light);
}

.form-input::placeholder,.form-textarea::placeholder{color:var(--gray-300)}

.form-textarea{min-height:90px;resize:vertical;line-height:1.6}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}

.form-hint{
  font-size:12px;
  color:var(--color-muted);
  margin-top:var(--space-1);
}
.form-hint-warn{
  font-size:12px;
  color:var(--g-orange,#E8920C);
  margin-top:var(--space-1);
}

/* 模块局部样式：强调色控件行（色块 + 默认按钮 + 自定义取色） */
.module-style-color-foot{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  margin-top:6px;
  flex-wrap:wrap;
}
.module-style-color-foot .color-option-pick{
  margin:0;
}

.avatar-upload{
  display:flex;
  align-items:center;
  gap:var(--space-4);
}

.avatar-preview{
  width:72px;height:96px;
  border-radius:2px;
  background:var(--gray-100);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--color-border);
}

.avatar-preview img{width:100%;height:100%;object-fit:cover}
/* v4.9.1 编辑器头像预览：始终矩形全显示，不被 avatarShape 设置裁剪；
   形状效果由右侧 A4 预览反映，这里仅做"上传前/上传后"对比。 */
.avatar-preview img.avatar-preview-img{border-radius:2px}

.avatar-actions{display:flex;flex-direction:column;gap:var(--space-2)}

.avatar-btn{
  font-size:12px;
  padding:6px 12px;
  border-radius:var(--radius-full);
  border:1px solid var(--color-border);
  background:white;
  cursor:pointer;
  transition:all var(--transition);
}

.avatar-btn:hover{border-color:var(--g-blue);color:var(--g-blue)}

.btn-add-item{
  display:inline-flex;
  align-items:center;
  gap:var(--space-1);
  padding:8px 16px;
  font-size:13px;
  font-weight:500;
  color:var(--g-blue);
  background:var(--g-blue-light);
  border:none;
  border-radius:var(--radius-full);
  cursor:pointer;
  transition:all var(--transition);
}

.btn-add-item:hover{background:var(--g-blue);color:white}

/* --- 右侧预览区 --- */
.editor-preview{
  background:#E8EAED;
  padding:var(--space-6);
  overflow-y:auto;
  overflow-x:hidden;
  max-height:calc(100vh - 56px);
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
  scrollbar-gutter:auto;
}
.editor-preview::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
  -webkit-appearance:none;
}

.resume-paper{
  width:210mm;
  min-height:297mm;
  background:white;
  border-radius:0;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  padding:var(--resume-margin,18mm) var(--resume-margin,18mm);
  position:relative;
  font-family:var(--resume-font,'Roboto','Noto Sans SC',sans-serif);
  font-size:var(--resume-font-size,14px);
  line-height:var(--resume-line-height,1.6);
  color:var(--color-text);
}

/* v4.8 纸张风格 */
.resume-paper[data-paper-style="clean"]{
  background:white;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  border-radius:0;
}
.resume-paper[data-paper-style="warm"]{
  background:#FFFDF6;
  box-shadow:0 2px 12px rgba(180,150,80,.1);
  border-radius:2px;
}
.resume-paper[data-paper-style="minimal"]{
  background:white;
  box-shadow:none;
  border:1px solid var(--color-border, #e0e0e0);
  border-radius:0;
}
/* v6.3: 新增 dotted（创意点状）和 grid（技术网格）纸张风格 */
.resume-paper[data-paper-style="dotted"]{
  background:
    radial-gradient(circle, rgba(0,0,0,.06) 1px, transparent 1.2px) 0 0 / 18px 18px,
    #FFFDF6;
  box-shadow:0 4px 14px rgba(180,100,40,.10);
  border-radius:3px;
}
.resume-paper[data-paper-style="grid"]{
  background:
    linear-gradient(to right, rgba(0,0,0,.05) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(to bottom, rgba(0,0,0,.05) 1px, transparent 1px) 0 0 / 24px 24px,
    #FCFCFD;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
  border-radius:2px;
}

/* 预览样式 */
.preview-header{
  margin-bottom:var(--resume-section-gap,1em);
}

.preview-photo{
  width:72px;height:96px;
  object-fit:cover;
  border:1px solid var(--color-border);
}

.preview-header-content{flex:1}

.preview-name{
  font-family:var(--font-display);
  font-size:2em;
  font-weight:700;
  color:var(--color-heading);
  line-height:1.2;
  margin-bottom:0.15em;
}

.preview-title{
  font-size:1em;
  color:var(--color-muted);
  margin-bottom:0.2em;
}

.preview-section{margin-bottom:var(--resume-section-gap,1em)}
.preview-section:last-child{margin-bottom:0}

.preview-section-title{
  font-family:var(--font-display);
  font-size:1em;
  font-weight:700;
  color:var(--preview-theme,var(--g-blue));
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:calc(var(--resume-section-gap,1em) * 0.15);
  /* v7.5·改回 flex：图标容器 + 文字同一 flex 行，align-items:center 保证图标与文字中线对齐；
     图标容器设 flex-shrink:0 且尺寸严格 1em（与文字同高），行高由文字 line-height:1.6 决定，
     不再被图标撑大 —— 这是比"去 flex"更标准的做法（参考用户另一项目的 flexShrink:0 + inline-flex 方案）。 */
  display:flex;
  align-items:center;
  gap:0.35em;
}

.preview-block-link{font-size:.86em;color:var(--preview-theme,var(--g-blue));text-decoration:none}
.preview-block-link:hover{text-decoration:underline}
.preview-block{margin-bottom:calc(var(--resume-section-gap,1em) * 0.25)}
.preview-block:last-child{margin-bottom:0}

.preview-block-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:calc(var(--resume-section-gap,1em) * 0.08);
  flex-wrap:wrap;
  gap:0.1em;
}

.preview-block-title{
  font-weight:700;
  font-size:1em;
  color:var(--color-heading);
}

.preview-block-subtitle{
  font-size:0.929em;
  color:var(--color-muted);
}

.preview-block-time{
  font-size:0.857em;
  color:var(--color-muted);
  white-space:nowrap;
}

.preview-list{
  list-style:disc;
  padding-left:1.5em;
  margin-top:0.15em;
}

.preview-list li{
  font-size:0.929em;
  color:var(--color-text);
  line-height:var(--resume-line-height,1.6);
  margin-bottom:calc(var(--resume-section-gap,1em) * 0.1);
}

.preview-skills{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-2)}

/* 可编辑内容区光标提示（v7.3：之前用硬编码紫色 rgba(162,28,175,.04)，与基本信息
   [data-edit-field]:hover 的橙色不一致，现在统一改橙色） */
[data-content-field]{cursor:text;transition:background .12s}
[data-content-field]:hover{background:rgba(255,107,26,.06);border-radius:3px}

/* ========================================
   内联内容编辑器（预览区点击 bullet/技能 原地编辑）
   v6.10·统一：data-edit-field / data-content-field / rename-input 三种 inline edit
   全部复用同一套环框与配色（浅橙色细线 + 浅橙底），不再各自一套。
   ======================================== */
.wc-inline-editing,
.wc-content-editing{
  outline:1px solid rgba(255,107,26,.32);
  outline-offset:2px;
  border-radius:4px;
  background:rgba(255,107,26,.03);
  cursor:text;
  animation:wcedFadeIn .15s ease;
  transition:outline-color .12s ease, background-color .12s ease;
}
.wc-inline-editing:focus,
.wc-inline-editing:focus-within,
.wc-content-editing:focus,
.wc-content-editing:focus-within{
  outline-color:rgba(255,107,26,.55);
  background-color:rgba(255,107,26,.06);
}
[data-theme="dark"] .wc-inline-editing,
[data-theme="dark"] .wc-content-editing{
  outline-color:rgba(255,107,26,.5);
  background-color:rgba(255,107,26,.05);
  color:inherit;
}
@keyframes wcedFadeIn{from{opacity:.4}to{opacity:1}}

/* 浮动工具条 — 紧贴元素，承载 AI药丸 + 取消/保存 */
.wc-content-edit-bar{position:absolute;z-index:46;pointer-events:none}
.wc-content-edit-bar > *{pointer-events:auto}

/* AI 优化药丸 — 紧贴输入框右上角 */
.wc-content-edit-pill{position:absolute;top:0;right:0;transform:translateY(calc(-100% - 2px));height:24px;border:none;border-radius:12px;
  background:var(--g-blue);color:#fff;cursor:pointer;display:flex;align-items:center;gap:4px;
  padding:0 10px;font-size:11.5px;font-weight:700;letter-spacing:.3px;transition:all .15s;
  box-shadow:0 2px 8px rgba(162,28,175,.25);white-space:nowrap}
.wc-content-edit-pill:hover:not(:disabled){background:var(--g-blue-hover);transform:translateY(calc(-100% - 2px)) scale(1.05);box-shadow:0 3px 12px rgba(255,107,26,.30)}
.wc-content-edit-pill:disabled{opacity:.55;cursor:not-allowed;transform:translateY(calc(-100% - 2px))}

/* 「应用到简历」药丸 — 置于左上角，绿色区分 */
.wc-content-edit-apply{right:auto;left:0;transform:translateY(calc(-100% - 2px));background:var(--g-green,#22c55e)}
.wc-content-edit-apply:hover{background:#1aa84e;transform:translateY(calc(-100% - 2px)) scale(1.05)}
[data-theme="dark"] .wc-content-edit-apply{background:var(--g-green,#22c55e)}

/* 暗色模式 — v7.2：统一为橙色（此前误用紫色 rgba(162,28,175)，与浅色不一致） */
[data-theme="dark"] .wc-content-editing{outline-color:rgba(255,107,26,.6);background:rgba(255,107,26,.05)}
[data-theme="dark"] .wc-content-edit-pill{background:var(--g-blue);box-shadow:0 2px 8px rgba(255,107,26,.30)}

/* ========================================
   v4.2 简历模块样式系统
   data 属性驱动的样式切换
   ======================================== */

/* --- 头部布局风格 --- */

/* 居中经典 */
.preview-header.centered{
  text-align:center;
}
.preview-header.centered .preview-header-photo{
  margin:0 auto var(--space-2);
}
.preview-header.centered .preview-header-photo .preview-photo{
  margin:0 auto;
}

/* 左图右文 */
.preview-header.side-photo{
  display:flex;
  gap:var(--space-4);
  align-items:flex-start;
}

/* 顶部横幅 */
.preview-header.banner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--space-4);
  background:var(--preview-theme,var(--g-blue));
  color:white;
  padding:var(--space-4) var(--space-5);
  margin-left:calc(var(--resume-margin,18mm) * -1);
  margin-right:calc(var(--resume-margin,18mm) * -1);
  margin-top:calc(var(--resume-margin,18mm) * -1);
  margin-bottom:var(--resume-section-gap,1em);
}
.preview-header.banner .preview-name,
.preview-header.banner .preview-title,
.preview-header.banner .preview-contact,
.preview-header.banner .preview-contact span{color:white}
.preview-header.banner .preview-title{opacity:.85}
.preview-header.banner .preview-contact{justify-content:flex-start}
.preview-header.banner .preview-photo{border-color:rgba(255,255,255,.3)}

/* 极简横排 */
.preview-header.minimal{
  padding-bottom:var(--space-2);
  border-bottom:2px solid var(--preview-theme,var(--g-blue));
}
.preview-header.minimal .preview-header-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--space-3);
}
.preview-header.minimal .preview-name{font-size:1.6em}
.preview-header.minimal .preview-contact{
  justify-content:flex-end;
  margin-top:var(--space-1);
}

/* --- 头像形状 --- */
.preview-photo[data-shape="rect"]{border-radius:2px}
.preview-photo[data-shape="circle"]{border-radius:50%}

.preview-header.side-photo .preview-photo,
.preview-header.banner .preview-photo,
.preview-header.minimal .preview-photo{
  width:72px;height:96px;
  object-fit:cover;
  border:2px solid var(--color-border);
  flex-shrink:0;
}
.preview-header.centered .preview-photo{
  width:72px;height:96px;
  object-fit:cover;
  border:2px solid var(--color-border);
}
/* 圆形头像统一正方形尺寸 */
.preview-photo[data-shape="circle"]{
  width:96px !important;
  height:96px !important;
}

/* --- 联系方式风格 --- */
.preview-contact{
  display:flex;
  flex-wrap:wrap;
  gap:0.15em 0.8em;
  font-size:0.857em;
  color:var(--color-muted);
}
.preview-contact span{display:flex;align-items:center;gap:4px}

/* 胶囊标签风格 */
[data-contact-style="pill"] .preview-contact-pill{
  display:inline-flex;
  align-items:center;
  padding:2px 10px;
  border-radius:var(--radius-full);
  background:var(--preview-theme-light,var(--g-blue-light));
  color:var(--preview-theme,var(--g-blue));
  font-size:0.85em;
  font-weight:500;
}

/* --- 章节标题装饰风格 --- */
/* v6.9·修：图标垂直对齐——html2canvas 对 inline-flex 子元素的 baseline 对齐不友好，
   导出 PDF/图片时图标上偏显形。
   v6.10·改：用 em 单位（跟随父字号）+ vertical-align 替代 padding 偏移，对齐更稳。
   ★ 关键：必须写 `> svg`（lucide.createIcons 后 <i> 已变 <svg>） */
.preview-section-icon{
  display:inline-flex;                   /* v7.5·改：图标容器与文字同一 flex 行，align-items:center 自动中线对齐 */
  align-items:center;justify-content:center;
  flex-shrink:0;                         /* 关键：flex 中图标永不被压缩/拉伸（参考用户另一项目方案） */
  width:1em;height:1em;box-sizing:border-box;   /* 严格 1em，与文字同高，不撑大行 */
  text-align:center;line-height:1;
  color:var(--preview-theme,var(--g-blue));
  cursor:pointer;                        /* v6.9·增：提示点击换图标 */
  border-radius:50%;
  transition:transform .25s ease, background-color .25s ease;
}
.preview-section-icon:hover{
  transform:scale(1.18) rotate(-6deg); /* v6.9·增：hover 动效（与 basic 一致） */
  background-color:rgba(255,107,26,.10);
}
.preview-section-icon svg, .preview-section-icon i[data-lucide]{
  width:1em;height:1em;stroke-width:1.75; /* v7.5·改：0.85em→1em，图标恢复与文字相称大小；flex 容器内 block 即可 */
  display:block;                         /* flex 容器居中，无需 vertical-align */
}
/* v6.9·增：标题 hover 动效 + 行内重命名 input */
.preview-section-text{
  cursor:text;
  border-radius:4px;
  padding:0 4px;
  /* v7.5·删 vertical-align：flex 容器内文字由 align-items:center 居中，不再需要 */
  transition:background-color .25s ease, box-shadow .25s ease;
}
.preview-section-text:hover{
  background-color:rgba(255,107,26,.06);
  box-shadow:inset 0 -1px 0 0 rgba(255,107,26,.45);
}
.preview-section-text:focus{
  outline:none;
  background-color:rgba(255,107,26,.10);
}
/* v6.10·改：input 尺寸跟随字符数（JS 设 size=currentTitle.length）——
   不再固定 max-width:18ch 撑到 18 字符（这是之前「输入框变大了」的原因）。
   width:auto 由 size 属性决定；font:inherit 让渲染和 span 完全一致。 */
.preview-section-rename-input{
  font:inherit;
  font-weight:inherit;
  font-size:inherit;
  color:inherit;
  text-transform:inherit;
  letter-spacing:inherit;
  background:transparent;
  border:none;
  border-bottom:2px solid var(--primary,#FF6B1A);
  padding:0 2px;
  margin:0;
  outline:none;
  font-family:inherit;
  width:auto;
  min-width:1ch;
  max-width:100%;
  /* v6.10·统一：与其他 inline edit 一致的环框 */
  border-radius:3px;
  background-color:rgba(255,107,26,.06);
}
.preview-section-rename-input:focus{
  border-bottom-color:var(--primary-700,#CC4D00);
  background-color:rgba(255,107,26,.10);
}
.preview-section-text{display:inline}

/* 全局默认值：写在「纸(paper)」上，每个维度的值由 applySettings 注入到 #resume-paper。
   下面每条默认规则通过 .preview-section:not([data-xxx]) 限定为「未单独覆盖该维度」的章节——
   这样当某个 section 自带 data-xxx（积木化局部覆盖）时，不会同时继承纸级默认 + 自身覆盖。
   章节级覆盖规则复用同一组 [data-xxx="X"] 选择器（section 自带属性即命中，无需重复写）。
   强调色覆盖：section 上内联 --preview-theme / --preview-theme-light 自动级联到下列 var()，无需额外规则。 */

/* 下划线风格（默认） */
[data-title-deco="underline"] .preview-section:not([data-title-deco]) .preview-section-title{
  border-bottom:1.5px solid var(--preview-theme-light,var(--g-blue-light));
  padding-bottom:0.1em;
}

/* 左侧竖条风格 */
[data-title-deco="bar"] .preview-section:not([data-title-deco]) .preview-section-title{
  border-left:3px solid var(--preview-theme,var(--g-blue));
  padding-left:0.5em;
}

/* 色块底色风格 */
[data-title-deco="block"] .preview-section:not([data-title-deco]) .preview-section-title{
  background:var(--preview-theme,var(--g-blue));
  color:white;
  padding:0.2em 0.6em;
  border-radius:var(--radius-sm);
}

/* 纯文字风格 */
[data-title-deco="plain"] .preview-section:not([data-title-deco]) .preview-section-title{
  border:none;
  padding:0;
}

/* 图标圆圈风格 */
[data-title-deco="icon-circle"] .preview-section:not([data-title-deco]) .preview-section-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.6em;height:1.6em;
  border-radius:50%;
  background:var(--preview-theme-light,var(--g-blue-light));
  color:var(--preview-theme,var(--g-blue));
  font-size:0.85em;
  flex-shrink:0;
}
[data-title-deco="icon-circle"] .preview-section:not([data-title-deco]) .preview-section-title{
  gap:0.4em;
}

/* --- 标题对齐 --- */
[data-title-align="center"] .preview-section:not([data-title-align]) .preview-section-title{
  justify-content:center;
  text-align:center;
}

/* --- 项目符号风格 --- */
[data-bullet-style="dot"] .preview-section:not([data-bullet-style]) .preview-list{list-style:disc}
[data-bullet-style="square"] .preview-section:not([data-bullet-style]) .preview-list{list-style:square}
[data-bullet-style="dash"] .preview-section:not([data-bullet-style]) .preview-list{list-style:none}
[data-bullet-style="dash"] .preview-section:not([data-bullet-style]) .preview-list li::before{content:'–';margin-right:0.4em;color:var(--preview-theme,var(--g-blue))}
[data-bullet-style="arrow"] .preview-section:not([data-bullet-style]) .preview-list{list-style:none}
[data-bullet-style="arrow"] .preview-section:not([data-bullet-style]) .preview-list li::before{content:'▸';margin-right:0.4em;color:var(--preview-theme,var(--g-blue))}
[data-bullet-style="check"] .preview-section:not([data-bullet-style]) .preview-list{list-style:none}
[data-bullet-style="check"] .preview-section:not([data-bullet-style]) .preview-list li::before{content:'✓';margin-right:0.4em;color:var(--preview-theme,var(--g-blue))}
[data-bullet-style="none"] .preview-section:not([data-bullet-style]) .preview-list{list-style:none;padding-left:0}

/* --- 章节级「局部覆盖」规则（积木化 v4.7）---
   与上面 :not(...) 默认规则互斥：section 自带 data-xxx 即命中本组，纸级默认被 :not 排除。
   强调色由 section 内联 --preview-theme/--preview-theme-light 级联，无需在此重复。 */
.preview-section[data-title-deco="underline"] .preview-section-title{ border-bottom:1.5px solid var(--preview-theme-light,var(--g-blue-light)); padding-bottom:0.1em; }
.preview-section[data-title-deco="bar"] .preview-section-title{ border-left:3px solid var(--preview-theme,var(--g-blue)); padding-left:0.5em; }
.preview-section[data-title-deco="block"] .preview-section-title{ background:var(--preview-theme,var(--g-blue)); color:white; padding:0.2em 0.6em; border-radius:var(--radius-sm); }
.preview-section[data-title-deco="plain"] .preview-section-title{ border:none; padding:0; }
.preview-section[data-title-deco="icon-circle"] .preview-section-icon{ display:inline-flex; align-items:center; justify-content:center; width:1.6em;height:1.6em; border-radius:50%; background:var(--preview-theme-light,var(--g-blue-light)); color:var(--preview-theme,var(--g-blue)); font-size:0.85em; flex-shrink:0; }
.preview-section[data-title-deco="icon-circle"] .preview-section-title{ gap:0.4em; }
.preview-section[data-title-align="center"] .preview-section-title{ justify-content:center; text-align:center; }
.preview-section[data-bullet-style="dot"] .preview-list{list-style:disc}
.preview-section[data-bullet-style="square"] .preview-list{list-style:square}
.preview-section[data-bullet-style="dash"] .preview-list{list-style:none}
.preview-section[data-bullet-style="dash"] .preview-list li::before{content:'–';margin-right:0.4em;color:var(--preview-theme,var(--g-blue))}
.preview-section[data-bullet-style="arrow"] .preview-list{list-style:none}
.preview-section[data-bullet-style="arrow"] .preview-list li::before{content:'▸';margin-right:0.4em;color:var(--preview-theme,var(--g-blue))}
.preview-section[data-bullet-style="check"] .preview-list{list-style:none}
.preview-section[data-bullet-style="check"] .preview-list li::before{content:'✓';margin-right:0.4em;color:var(--preview-theme,var(--g-blue))}
.preview-section[data-bullet-style="none"] .preview-list{list-style:none;padding-left:0}

/* ========================================
   §D — 双栏布局（v4.3）
   ======================================== */

/* 双栏容器 */
.resume-body.dual-col{
  display:flex;
  gap:calc(var(--resume-section-gap,1em) * 1.5);
  align-items:flex-start;
}

/* 侧栏（左列）：技能 / 教育 / 自定义模块 */
.resume-col-side{
  flex:0 0 34%;
  min-width:0;
}

/* 主栏（右列）：工作 / 项目经历 */
.resume-col-main{
  flex:1;
  min-width:0;
}

/* 双栏模式下列间距内部不需要额外 margin-bottom */
.resume-col .preview-section:last-child{
  margin-bottom:0;
}

/* 双栏模式下侧栏标题可以稍小 */
.resume-col-side .preview-section-title{
  font-size:0.93em;
}

/* 双栏模式侧栏项目列表更紧凑 */
.resume-col-side .preview-list{
  font-size:0.93em;
}
.resume-col-side .preview-block{
  margin-bottom:calc(var(--resume-section-gap,1em) * 0.2);
}

/* 打印时双栏保持 */
@media print{
  .resume-body.dual-col{
    gap:calc(var(--resume-section-gap,1em) * 1.2);
  }
}

/* ========================================
   §E — 拖拽排序动画（v4.3）
   ======================================== */

/* 正在拖拽的项：半透明 + 缩放 + 阴影 */
.wc-dnd-dragging{
  opacity:0.4;
  transform:scale(0.97);
  transition:opacity .15s ease,transform .15s ease;
}

/* 拖拽悬停目标：高亮边框 + 浅色背景 */
.wc-dnd-over{
  border-top:3px solid var(--g-blue) !important;
  background:var(--g-blue-light,#e8f0fe) !important;
  transition:border-top-color .12s ease,background .12s ease;
}

/* 占位条：显示插入位置 */
.wc-dnd-placeholder{
  opacity:0.3;
  background:repeating-linear-gradient(
    45deg,
    var(--g-blue-light,#e8f0fe),
    var(--g-blue-light,#e8f0fe) 4px,
    transparent 4px,
    transparent 8px
  );
  border:2px dashed var(--g-blue);
  border-radius:var(--radius-sm);
}

/* FLIP 动画：拖拽排序后所有项目平滑过渡到新位置 */
.wc-dnd-flip{
  transition:transform .28s cubic-bezier(.4,0,.2,1);
}

/* 空状态 */
.empty-preview{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:500px;
  color:var(--color-muted);
  text-align:center;
}

.empty-preview-icon{
  width:80px;height:80px;
  border-radius:var(--radius-full);
  background:var(--gray-100);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:36px;
  margin-bottom:var(--space-4);
  color:var(--gray-300);
}

/* ========================================
   统计区
   ======================================== */

.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--space-6);
}

.stat-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  padding:var(--space-8);
  text-align:center;
  transition:all var(--transition);
}

.stat-card:hover{box-shadow:var(--shadow-2)}

.stat-card:nth-child(1) .stat-num{color:var(--g-blue)}
.stat-card:nth-child(2) .stat-num{color:var(--g-red)}
.stat-card:nth-child(3) .stat-num{color:var(--g-yellow)}
.stat-card:nth-child(4) .stat-num{color:var(--g-green)}

.stat-num{
  font-family:var(--font-display);
  font-size:var(--text-5xl);
  font-weight:700;
  line-height:1;
  margin-bottom:var(--space-2);
}

.stat-label{
  font-size:var(--text-sm);
  color:var(--color-muted);
}

/* ========================================
   Footer
   ======================================== */

footer{
  background:var(--gray-900);
  color:var(--gray-500);
  padding:var(--space-16) 0 var(--space-8);
  margin-top:var(--space-16);
}

.footer-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:var(--space-10);
  margin-bottom:var(--space-12);
}

.footer-brand h4{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  font-weight:500;
  color:white;
  margin-bottom:var(--space-2);
}

.footer-brand p{font-size:var(--text-sm);color:var(--gray-500)}

.footer-links h5{
  font-family:var(--font-display);
  font-size:var(--text-sm);
  font-weight:500;
  color:white;
  margin-bottom:var(--space-4);
}

.footer-links a{
  display:block;
  font-size:var(--text-sm);
  color:var(--gray-500);
  margin-bottom:var(--space-3);
  transition:color var(--transition);
}

.footer-links a:hover{color:var(--gray-300)}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding-top:var(--space-6);
  text-align:center;
  font-size:var(--text-sm);
  color:var(--gray-500);
}

/* ========================================
   Responsive
   ======================================== */

@media(max-width:768px){
  :root{
    --text-4xl:2rem;
    --text-5xl:2.25rem;
  }

  .gnb-links{display:none}
  .gnb-inner{gap:var(--space-4)}

  .quick-links-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  /* v7.0：builder 编辑页禁响应式 —— 用户明确要求"缩小窗口就只显示左边那部分窗口大小，
     不要调整布局"。其他页仍按 1 列塌缩以适配小屏。 */
  body:not(.builder-page) .builder-layout{grid-template-columns:1fr}
  body:not(.builder-page) .builder-preview{position:static}
  .process-steps{flex-direction:column;align-items:center}
  .process-arrow{transform:rotate(90deg);padding:var(--space-2) 0}
  .footer-grid{grid-template-columns:1fr;gap:var(--space-6)}

  .form-row{grid-template-columns:1fr}
  .template-grid{grid-template-columns:1fr}
  .sample-grid{grid-template-columns:1fr}
  .service-grid{grid-template-columns:1fr}
  .mentor-grid{grid-template-columns:1fr}
  .mentor-card{flex-wrap:wrap}
  .mentor-card-right{flex-direction:row;width:100%;margin-top:var(--space-4)}

  .match-banner{flex-direction:column;text-align:center}

  .home-hero-stats{gap:var(--space-6)}
  .home-stat-num{font-size:var(--text-2xl)}
  .cta-actions{flex-direction:column;align-items:center}

  /* v7.0：editor-workspace / form / preview / splitter 在 builder 上不响应式塌缩——
     用户要求"缩小窗口就只显示左边那部分窗口大小，不要调整布局"。
     在 builder 页（body.builder-page）上全部屏蔽掉，其他页保持原响应式。 */
  body:not(.builder-page) .editor-workspace{grid-template-columns:1fr}
  body:not(.builder-page) .editor-form{max-height:auto;padding:var(--space-4)}
  body:not(.builder-page) .editor-preview{display:none}
  body:not(.builder-page) .editor-splitter{display:none}
  .top-bar{top:56px}
  .form-card{padding:var(--space-4)}
}

/* ========================================
   §A — Modal / Toast / Drawer / Slider / Ring
   ======================================== */

/* --- Modal --- */
/* ===== v6.3 Popover（原地弹出小浮层，无遮罩） ===== */
.wc-popover{
  position:absolute;
  background:var(--color-surface,#fff);
  border:1px solid var(--color-border);
  border-radius:10px;
  box-shadow:0 6px 24px rgba(0,0,0,.12),0 2px 6px rgba(0,0,0,.06);
  min-width:220px;
  max-width:min(420px,90vw);
  max-height:min(60vh,560px);
  overflow:auto;
  animation:wc-popover-in .14s ease-out;
}
@keyframes wc-popover-in{
  from{opacity:0;transform:translateY(-4px) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.wc-popover-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 14px;
  font-size:13px;
  font-weight:600;
  color:var(--color-heading);
  border-bottom:1px solid var(--color-border);
}
.wc-popover-close{
  background:transparent;
  border:none;
  cursor:pointer;
  width:22px;height:22px;
  border-radius:4px;
  color:var(--color-muted);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;
}
.wc-popover-close:hover{background:var(--gray-100);color:var(--color-heading)}
.wc-popover-close-abs{
  position:absolute;
  top:6px;right:6px;
  z-index:2;
}
.wc-popover-body{padding:10px}
[data-theme="dark"] .wc-popover{
  background:#1a2332;
  border-color:#273344;
  box-shadow:0 6px 24px rgba(0,0,0,.4);
}
[data-theme="dark"] .wc-popover-close:hover{background:rgba(255,255,255,.08)}

.wc-modal-mask{
  position:fixed;
  inset:0;
  background:rgba(32,33,36,.48);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:10000;
  opacity:0;
  transition:opacity var(--transition);
  padding:var(--space-6);
}

.wc-modal-mask.wc-modal-show{opacity:1}
.wc-modal-mask.wc-modal-closing{opacity:0}

.wc-modal-panel{
  background:var(--color-surface);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-4);
  max-height:90vh;
  display:flex;
  flex-direction:column;
  transform:scale(.96);
  transition:transform var(--transition);
}

.wc-modal-mask.wc-modal-show .wc-modal-panel{transform:scale(1)}
.wc-modal-mask.wc-modal-closing .wc-modal-panel{transform:scale(.96)}

.wc-modal-sm{width:400px;max-width:100%}
.wc-modal-md{width:560px;max-width:100%}
.wc-modal-lg{width:760px;max-width:100%}

.wc-modal-title{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--color-heading);
  padding:var(--space-5) var(--space-6);
  border-bottom:1px solid var(--color-border);
  flex-shrink:0;
}

.wc-modal-title .icon{
  width:32px;height:32px;
  border-radius:var(--radius-sm);
  background:var(--g-blue-light);
  color:var(--g-blue);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
}

.wc-modal-close{
  margin-left:auto;
  width:28px;height:28px;
  border:none;
  background:transparent;
  color:var(--color-muted);
  cursor:pointer;
  border-radius:var(--radius-sm);
  font-size:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all var(--transition);
}

.wc-modal-close:hover{background:var(--gray-100);color:var(--color-heading)}

.wc-modal-body{
  padding:var(--space-6);
  overflow-y:auto;
  flex:1;
}

.wc-modal-footer{
  padding:var(--space-4) var(--space-6);
  border-top:1px solid var(--color-border);
  display:flex;
  justify-content:flex-end;
  gap:var(--space-3);
  flex-shrink:0;
}

/* --- Confirm --- */
.wc-confirm-message{
  font-size:var(--text-base);
  color:var(--color-text);
  line-height:1.7;
  margin:0;
}

/* --- Prompt --- */
.wc-prompt-label{
  display:block;
  font-size:13px;
  font-weight:500;
  color:var(--color-heading);
  margin-bottom:var(--space-2);
}

.wc-prompt-input{
  margin-bottom:var(--space-2);
}

.wc-prompt-error{
  font-size:12px;
  color:var(--g-red);
  min-height:16px;
  margin-bottom:var(--space-2);
}

/* --- Toast --- */
.wc-toast-stack{
  position:fixed;
  bottom:var(--space-6);
  right:var(--space-6);
  z-index:10001;
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  pointer-events:none;
}

.wc-toast{
  background:var(--gray-900);
  color:white;
  padding:10px 18px;
  border-radius:var(--radius-md);
  font-size:14px;
  font-weight:500;
  box-shadow:var(--shadow-3);
  opacity:0;
  transform:translateX(20px);
  transition:all var(--transition);
  pointer-events:auto;
  max-width:360px;
}

.wc-toast.wc-toast-show{opacity:1;transform:translateX(0)}

.wc-toast-success{background:var(--g-green)}
.wc-toast-error{background:var(--g-red)}
.wc-toast-info{background:var(--gray-900)}

/* --- Drawer --- */
.wc-drawer-mask{
  position:fixed;
  inset:0;
  background:rgba(32,33,36,.48);
  z-index:10000;
  opacity:0;
  transition:opacity var(--transition);
}

.wc-drawer-mask.wc-drawer-show{opacity:1}
.wc-drawer-mask.wc-drawer-closing{opacity:0}

.wc-drawer-panel{
  position:fixed;
  top:0;
  right:0;
  height:100vh;
  width:360px;
  max-width:90vw;
  background:var(--color-surface);
  box-shadow:var(--shadow-4);
  z-index:10001;
  display:flex;
  flex-direction:column;
  transform:translateX(100%);
  transition:transform var(--transition-slow);
}

.wc-drawer-mask.wc-drawer-show .wc-drawer-panel{transform:translateX(0)}
.wc-drawer-mask.wc-drawer-closing .wc-drawer-panel{transform:translateX(100%)}

/* 左侧抽屉：覆盖默认 right/translateX，从左侧滑入 */
.wc-drawer-panel.wc-drawer-left{
  right:auto;
  left:0;
  transform:translateX(-100%);
}
.wc-drawer-mask.wc-drawer-show .wc-drawer-panel.wc-drawer-left{transform:translateX(0)}
.wc-drawer-mask.wc-drawer-closing .wc-drawer-panel.wc-drawer-left{transform:translateX(-100%)}

.wc-drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--space-5) var(--space-6);
  border-bottom:1px solid var(--color-border);
  flex-shrink:0;
}

.wc-drawer-title{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--color-heading);
}

.wc-drawer-close{
  width:28px;height:28px;
}

.wc-drawer-body{
  padding:var(--space-6);
  overflow-y:auto;
  flex:1;
}

/* --- 范例语料库 --- */
.wc-corpus{display:flex;flex-direction:column;gap:var(--space-3)}

.wc-corpus-tabs{
  display:flex;
  gap:var(--space-5);
  border-bottom:1px solid var(--color-border);
  margin-bottom:var(--space-3);
  padding-bottom:0;
}
.wc-corpus-tab{
  padding:8px 2px;
  position:relative;
  border:none;
  background:transparent;
  color:var(--color-muted);
  font-size:13.5px;
  font-weight:500;
  cursor:pointer;
  white-space:nowrap;
  transition:color .15s ease;
  font-family:var(--font-body);
}
.wc-corpus-tab:hover{color:var(--color-heading)}
.wc-corpus-tab.is-active{
  color:var(--g-blue);
  font-weight:600;
}
.wc-corpus-tab.is-active::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  background:var(--g-blue);
}

.wc-corpus-filter{
  display:flex;
  gap:var(--space-2);
  margin-bottom:var(--space-2);
}
.wc-corpus-filter select{
  flex:0 0 auto;
  padding:6px 10px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  background:var(--color-surface);
  font-size:13px;
  cursor:pointer;
}
.wc-corpus-filter input{
  flex:1;
  padding:6px 10px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-size:13px;
}

.wc-corpus-count{
  font-size:12px;
  color:var(--color-muted);
  margin-bottom:var(--space-2);
}

.wc-corpus-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}

.wc-corpus-item{
  padding:var(--space-3);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface);
  transition:all var(--transition);
}
.wc-corpus-item:hover{
  border-color:var(--g-blue);
  box-shadow:var(--shadow-1);
}

.wc-corpus-text{
  margin:0 0 var(--space-2);
  font-size:13px;
  line-height:1.6;
  color:var(--color-text);
}

.wc-corpus-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-2);
}

.wc-corpus-role{
  font-size:11px;
  color:var(--color-muted);
  background:var(--gray-100);
  padding:2px 8px;
  border-radius:var(--radius-full);
}

.wc-corpus-insert{
  border:none;
  background:var(--g-blue);
  color:white;
  font-size:12px;
  font-weight:500;
  padding:4px 12px;
  border-radius:var(--radius-sm);
  cursor:pointer;
  transition:all var(--transition);
  font-family:var(--font-display);
}
.wc-corpus-insert:hover{background:var(--g-blue-hover)}

.wc-corpus-empty{
  text-align:center;
  color:var(--color-muted);
  padding:var(--space-6);
  font-size:13px;
}

.wc-corpus-title{
  margin:0 0 var(--space-1);
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
}

.wc-corpus-desc{
  margin:0 0 var(--space-2);
  font-size:12px;
  color:var(--color-muted);
}

.wc-corpus-pre{
  background:var(--gray-50);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  padding:var(--space-3);
  font-size:12px;
  line-height:1.6;
  color:var(--color-text);
  white-space:pre-wrap;
  margin:0 0 var(--space-2);
  overflow-x:auto;
}

.wc-corpus-skills{display:flex;flex-direction:column;gap:var(--space-3)}

.wc-corpus-group{
  padding:var(--space-2) 0;
}

.wc-corpus-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.wc-corpus-tag{
  border:1px solid var(--color-border);
  background:var(--color-surface);
  color:var(--color-text);
  font-size:12px;
  padding:4px 10px;
  border-radius:var(--radius-full);
  cursor:pointer;
  transition:all var(--transition);
  font-family:var(--font-display);
}
.wc-corpus-tag:hover{
  border-color:var(--g-blue);
  background:var(--g-blue-light);
  color:var(--g-blue);
}

/* --- Slider --- */
.wc-slider{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:4px;
  background:var(--gray-200);
  border-radius:var(--radius-full);
  outline:none;
  cursor:pointer;
}

.wc-slider::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:16px;height:16px;
  border-radius:50%;
  background:var(--g-blue);
  cursor:pointer;
  border:2px solid white;
  box-shadow:var(--shadow-1);
  transition:all var(--transition);
}

.wc-slider::-webkit-slider-thumb:hover{
  background:var(--g-blue-hover);
  transform:scale(1.15);
}

.wc-slider::-moz-range-thumb{
  width:16px;height:16px;
  border-radius:50%;
  background:var(--g-blue);
  cursor:pointer;
  border:2px solid white;
  box-shadow:var(--shadow-1);
}

/* --- Progress Ring --- */
.wc-ring{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.wc-ring svg{
  transform:rotate(-90deg);
}

.wc-ring-center{
  position:absolute;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.wc-ring-score{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  font-weight:700;
  line-height:1;
}

.wc-ring-label{
  font-size:11px;
  color:var(--color-muted);
  margin-top:2px;
}

/* --- Progress Bar --- */
.wc-progress-bar{
  display:flex;
  align-items:center;
  gap:var(--space-2);
}

.wc-progress-track{
  flex:1;
  height:6px;
  background:var(--gray-200);
  border-radius:var(--radius-full);
  overflow:hidden;
}

.wc-progress-fill{
  height:100%;
  border-radius:var(--radius-full);
  transition:width var(--transition-slow);
}

.wc-progress-text{
  font-size:12px;
  font-weight:500;
  color:var(--color-muted);
  white-space:nowrap;
}

/* --- Body scroll lock --- */
body.wc-modal-open,
body.wc-drawer-open{
  overflow:hidden;
}

/* ========================================
   §B — A4 Preview & Pagination
   ======================================== */

/* Paper viewport — clips scaled content */
.paper-viewport{
  width:100%;
  overflow:hidden;
  display:flex;
  justify-content:center;
  align-items:flex-start;
}

/* Paper scaler — applies transform:scale() */
.paper-scaler{
  transform-origin:top center;
  transform:scale(var(--preview-scale,1));
  transition:transform .15s ease-out;
}

/* Page guide — dashed line at A4 page boundary */
.page-guide{
  position:absolute;
  left:0;
  right:0;
  height:0;
  border-top:1px dashed var(--g-red);
  pointer-events:none;
  z-index:5;
}

/* Page badge — "第 N 页" label */
.page-badge{
  position:absolute;
  right:4px;
  z-index:5;
  background:var(--g-red);
  color:white;
  pointer-events:none;
}

/* QR code — bottom-right of each page */
.page-qrcode{
  position:absolute;
  z-index:5;
  pointer-events:auto;
  cursor:pointer;
}

/* 联系图标 — 可点击切换（v6.4：图标改为 lucide SVG，需给 <svg> 显式尺寸）
   v6.10·修：导出 PDF/图片对齐——
     ① 用 em 单位跟随父字号，避免 13px 硬码在 0.857em 字号下偏大
     ② 加 line-height:1 让 svg baseline 与文字 cap-height 视觉对齐
     ③ vertical-align: -0.08em 微调描边到文字 midline（html2canvas 渲染稳定） */
.preview-contact-icon{
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;                         /* v7.5·增：联系信息行是 flex，图标不被压缩（参考用户方案） */
  color:var(--g-text-secondary, #555);
  transition:all var(--transition);
  border-radius:var(--radius-sm);
  padding:1px 2px;
  line-height:1;
  vertical-align:middle;
}
.preview-contact-icon > svg{
  width:1em;height:1em;stroke-width:1.75;display:inline-block;vertical-align:middle; /* v7.4·改：0.85em→1em 与标题图标统一大小 */
}
.preview-contact-icon:hover{
  background:var(--gray-100);
  color:var(--g-orange, #FF6B1A);
  transform:scale(1.15);
}
.preview-contact-icon:focus-visible{
  outline:2px solid var(--g-orange, #FF6B1A);
  outline-offset:1px;
}

/* 预览可编辑文本 — v6.10·统一：与 .wc-inline-editing 共用同一套环框 */
[data-edit-field]{
  cursor:text;
  border-radius:var(--radius-xs);
  padding:0 2px;
  margin:0 -2px;
  transition:outline-color .12s ease, background-color .12s ease, outline-offset .12s ease;
}
[data-edit-field]:hover{
  background:rgba(255,107,26,.05);
  outline:1px solid rgba(255,107,26,.40);
  outline-offset:2px;
}
[data-edit-field]:focus{
  background:rgba(255,107,26,.06);
  outline:1px solid rgba(255,107,26,.60);
  outline-offset:2px;
}

/* v6.4：旧的 .wc-icon-picker 已被 WC.ui.popover 替代，样式移除（不再使用） */

/* v7.2：导出遮罩 —— 盖住截图时预览「移除缩放」的跳动 */
.wc-export-mask{
  position:fixed; inset:0; z-index:9999;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  background:rgba(255,255,255,.85);
  opacity:0; visibility:hidden;
  transition:opacity .15s ease, visibility .15s ease;
}
.wc-export-mask-show{ opacity:1; visibility:visible; }
.wc-export-mask-spinner{
  width:34px; height:34px; border-radius:50%;
  border:3px solid rgba(255,107,26,.25);
  border-top-color:var(--g-orange,#FF6B1A);
  animation:wc-export-spin .8s linear infinite;
}
.wc-export-mask-text{ font-size:14px; color:#444; font-weight:600; letter-spacing:.3px; }
[data-theme="dark"] .wc-export-mask{ background:rgba(15,21,28,.85); }
[data-theme="dark"] .wc-export-mask-text{ color:#ddd; }
@keyframes wc-export-spin{ to{ transform:rotate(360deg); } }

/* Preview photo sizing within em context */
.preview-photo{
  width:72px;height:96px;
  object-fit:cover;
  border:1px solid var(--color-border);
  flex-shrink:0;
}

/* Section gap between header and first section */
.preview-header{
  margin-bottom:var(--resume-section-gap,1em);
}

/* Preview block spacing — use variable so sectionGap slider has full effect */
.preview-block{
  margin-bottom:calc(var(--resume-section-gap,1em) * 0.25);
}

.preview-block-header{
  margin-bottom:calc(var(--resume-section-gap,1em) * 0.08);
}

/* v6：preview-skills 内的 tag 跟随当前预览主题色（之前用 .tag-blue 写死 Google 蓝）。
   基础 .tag 默认灰底，这里用 --preview-theme / --preview-theme-light override 掉。 */
.preview-skills .tag-sm{
  color:var(--preview-theme,var(--g-blue));
  background:var(--preview-theme-light,var(--g-blue-light));
  border-color:transparent;
  font-size:0.857em;
}

/* Empty section in preview */
.preview-section:empty{
  display:none;
}

/* ========================================
   §C — Form Item Cards & Sidebar Extension
   ======================================== */

/* --- Item card head (experience/projects/education items) --- */
.item-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:var(--space-4);
  padding-bottom:var(--space-2);
  border-bottom:1px solid var(--color-border);
}

.item-card-title{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.item-actions{
  display:flex;
  align-items:center;
  gap:var(--space-1);
  flex-shrink:0;
  opacity:0;
  transition:opacity var(--transition);
}

.form-subsection:hover .item-actions{opacity:1}

/* --- Empty inline state --- */
.empty-inline{
  padding:var(--space-4);
  text-align:center;
  color:var(--color-muted);
  font-size:13px;
  background:var(--gray-50);
  border-radius:var(--radius-sm);
  border:1px dashed var(--gray-200);
}

/* --- Field flash animation --- */
.wc-field-flash{
  animation:wc-field-flash-anim 1.2s ease-out;
}

@keyframes wc-field-flash-anim{
  0%{box-shadow:0 0 0 3px var(--g-blue-light)}
  30%{box-shadow:0 0 0 3px var(--g-blue)}
  100%{box-shadow:0 0 0 0 transparent}
}

/* --- Sidebar slider row --- */
/* 设计面板内的滑杆和分段按钮优化 */
.design-panel .setting-select-row{
  flex-direction:column;
  align-items:flex-start;
  gap:var(--space-1);
}
.design-panel .wc-seg{width:100%}
.design-panel .wc-seg-btn{flex:1;text-align:center}
.design-panel .form-input-sm{width:100%}
.design-panel .font-select{width:100% !important}
.design-panel .wc-slider{width:100%}
.design-panel .color-options{gap:var(--space-2)}
.design-panel .wc-tpl-strip{flex-wrap:wrap}

.setting-slider-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:var(--space-2);
}

.setting-slider-row .setting-label{
  margin-bottom:0;
}

.setting-value{
  font-family:var(--font-display);
  font-size:12px;
  font-weight:600;
  color:var(--g-blue);
  min-width:36px;
  text-align:right;
}

/* --- Module hidden state --- */
.module-item.module-hidden{
  opacity:.45;
}

.module-item.module-hidden .module-label{
  text-decoration:line-through;
}

/* --- Preset grid (add module dialog) --- */
.wc-preset-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-3);
}

.wc-preset-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--space-2);
  padding:var(--space-5) var(--space-3);
  border:2px solid var(--color-border);
  border-radius:var(--radius-md);
  cursor:pointer;
  transition:all var(--transition);
  background:white;
  text-align:center;
}

.wc-preset-card:hover{
  border-color:var(--g-blue);
  background:var(--g-blue-light);
  transform:translateY(-2px);
}

.wc-preset-card.wc-preset-disabled{
  cursor:not-allowed;
  opacity:.45;
  background:var(--color-bg);
}
.wc-preset-card.wc-preset-disabled:hover{
  border-color:var(--color-border);
  background:var(--color-bg);
  transform:none;
}

.wc-preset-icon{
  font-size:28px;
  line-height:1;
  color:var(--g-blue);
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
}
/* v5.5: lucide SVG 在预设卡片中的尺寸（28px 略大于卡片标题的 22px，更有视觉冲击力） */
.wc-preset-icon i[data-lucide]{
  width:28px;height:28px;
  stroke-width:1.75;
  display:block;
}
/* 兜底 emoji 字符（历史数据） */
.wc-preset-icon > *:not([data-lucide]):not(svg){
  font-size:28px;line-height:1;
}

.wc-preset-title{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:500;
  color:var(--color-heading);
}

/* --- Resume manager --- */
.wc-resume-manager{
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}

.wc-resume-toolbar{
  display:flex;
  gap:var(--space-3);
  flex-wrap:wrap;
}

.wc-resume-list{
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}

.wc-resume-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--space-3) var(--space-4);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  transition:all var(--transition);
  gap:var(--space-3);
}

.wc-resume-row:hover{border-color:var(--g-blue);box-shadow:var(--shadow-1)}

.wc-resume-row.active{
  border-color:var(--g-blue);
  background:var(--g-blue-light);
}

.wc-resume-info{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  flex:1;
  min-width:0;
}

.wc-resume-name{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.wc-resume-date{
  font-size:12px;
  color:var(--color-muted);
  white-space:nowrap;
}

.wc-resume-actions{
  display:flex;
  gap:var(--space-1);
  flex-shrink:0;
}

/* --- Data manager --- */
.wc-usage-bar{
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}

.wc-usage-track{
  height:8px;
  background:var(--gray-200);
  border-radius:var(--radius-full);
  overflow:hidden;
}

.wc-usage-fill{
  height:100%;
  border-radius:var(--radius-full);
  transition:width var(--transition-slow);
}

.wc-usage-text{
  font-size:12px;
  color:var(--color-muted);
}

/* --- Top bar responsive: allow button scroll --- */
@media(max-width:768px){
  .top-bar{
    flex-direction:column;
    height:auto;
    padding:var(--space-2) var(--space-4);
    gap:var(--space-2);
  }
  .top-bar-actions{
    flex-wrap:wrap;
    justify-content:center;
  }
  .top-bar-btn{
    font-size:12px;
    padding:6px 12px;
  }
}

/* ========================================
   §D — Audit & JD Panel
   ======================================== */

/* --- Audit header --- */
.audit-header{
  display:flex;
  align-items:center;
  gap:var(--space-6);
  margin-bottom:var(--space-6);
  flex-wrap:wrap;
}

.audit-stats{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3) var(--space-5);
  flex:1;
}

.audit-stat-item{
  font-size:13px;
  color:var(--color-muted);
}

.audit-stat-item strong{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:700;
  color:var(--color-heading);
  margin-left:var(--space-1);
}

/* --- Stats grid 3-column --- */
.stats-grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-4);
  margin-bottom:var(--space-6);
}

.stat-card-sm{
  padding:var(--space-4);
  text-align:center;
}

.stat-card-sm .stat-num{
  font-size:var(--text-2xl);
}

.stat-card-sm .stat-num[data-level="good"]{color:var(--g-green)}
.stat-card-sm .stat-num[data-level="warn"]{color:var(--g-yellow)}
.stat-card-sm .stat-num[data-level="bad"]{color:var(--g-red)}

.stat-sub{
  font-size:11px;
  color:var(--color-muted);
  margin-top:var(--space-1);
}

/* --- Audit issues --- */
.audit-issues{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
}

.audit-issue{
  display:flex;
  gap:var(--space-3);
  padding:var(--space-4);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  background:var(--color-surface);
}

.audit-issue.error{border-left:3px solid var(--g-red)}
.audit-issue.warn{border-left:3px solid var(--g-yellow)}
.audit-issue.info{border-left:3px solid var(--g-blue)}

.audit-issue-dot{
  width:8px;height:8px;
  border-radius:50%;
  margin-top:6px;
  flex-shrink:0;
}

.audit-issue.error .audit-issue-dot{background:var(--g-red)}
.audit-issue.warn .audit-issue-dot{background:var(--g-yellow)}
.audit-issue.info .audit-issue-dot{background:var(--g-blue)}

.audit-issue-body{
  flex:1;
  min-width:0;
}

.audit-issue-title{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
  margin-bottom:var(--space-1);
  display:flex;
  align-items:center;
  gap:var(--space-2);
  flex-wrap:wrap;
}

.audit-issue-detail{
  font-size:13px;
  color:var(--color-text);
  margin-bottom:var(--space-1);
  line-height:1.6;
}

.audit-issue-suggestion{
  font-size:13px;
  color:var(--color-muted);
  line-height:1.6;
}

.audit-issue-action{
  flex-shrink:0;
  display:flex;
  align-items:flex-start;
}

/* --- Disclaimer --- */
.disclaimer{
  margin-top:var(--space-4);
  padding:var(--space-3);
  background:var(--gray-50);
  border-radius:var(--radius-sm);
  text-align:center;
}

/* --- JD result --- */
.wc-jd-result{
  margin-top:var(--space-4);
}

.jd-result-bar{
  margin-bottom:var(--space-3);
}

.jd-stats{
  font-size:13px;
  color:var(--color-muted);
  margin-bottom:var(--space-4);
}

.jd-tags{
  margin-bottom:var(--space-4);
}

.jd-tags-label{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:600;
  color:var(--color-heading);
  margin-bottom:var(--space-2);
}

.jd-tags-list{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-1);
}

/* --- Print guide --- */
.wc-print-guide{
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}

.wc-guide-step{
  display:flex;
  align-items:flex-start;
  gap:var(--space-3);
  font-size:14px;
  color:var(--color-text);
  line-height:1.6;
}

.wc-guide-num{
  width:24px;height:24px;
  border-radius:50%;
  background:var(--g-blue);
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  flex-shrink:0;
}

.wc-guide-checkbox{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  font-size:13px;
  color:var(--color-muted);
  cursor:pointer;
}

/* ========================================
   §E — Print Styles (must be last section)
   ======================================== */

@media print{
  /* Hide everything */
  body *{visibility:hidden}

  /* Show only the paper */
  .resume-paper,
  .resume-paper *{visibility:visible}

  /* Reset transform & positioning for print */
  .paper-viewport{
    overflow:visible;
    display:block;
    height:auto !important;
  }

  .paper-scaler{
    transform:none !important;
  }

  .resume-paper{
    position:absolute;
    left:0;
    top:0;
    width:210mm;
    min-height:auto;
    box-shadow:none;
    border-radius:0;
    margin:0;
    padding:var(--resume-margin,18mm) var(--resume-margin,18mm);
  }

  /* Hide page guides in print */
  .page-guide,
  .page-badge{display:none !important}

  /* Hide GNB, top bar, sidebar, form, splitter */
  .gnb,
  .top-bar,
  .editor-sidebar,
  .editor-form,
  .editor-splitter,
  .editor-overlay{display:none !important}

  /* Reset editor layout */
  .editor-workspace{
    display:block;
    background:white;
  }

  .editor-preview{
    background:white;
    padding:0;
    overflow:visible;
    max-height:none;
    display:block;
  }

  /* Page setup */
  @page{
    size:A4;
    margin:0;
  }

  /* Prevent page break inside sections */
  .preview-section,
  .preview-block{
    page-break-inside:avoid;
  }

  /* Force colors to print */
  *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}

/* ============================================================
   旺财简历 v4.1 — 新增组件样式（仅复用上方 Design Tokens，
   不引入新颜色 / 字体 / 圆角 / 阴影，除 @media print 外不用 !important）
   ============================================================ */

/* 顶栏撤销/重做与右侧功能按钮之间的分隔线（深色顶栏沿用 rgba 白描边） */
.top-bar-sep{
  width:1px;
  height:22px;
  background:rgba(255,255,255,.15);
  margin:0 var(--space-2);
  flex-shrink:0;
}

/* 设置区：标签 + 控件 一行两列 */
.setting-select-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  margin-bottom:var(--space-3);
}
.setting-select-row:last-child{margin-bottom:0}
.setting-sub-label{
  font-size:13px;
  color:var(--color-text);
  flex-shrink:0;
}
.form-input-sm{
  width:auto;
  min-width:140px;
  padding:6px 10px;
  font-size:13px;
}

/* 分段按钮（标题对齐 / 头像形状 等） */
.wc-seg{
  display:inline-flex;
  background:var(--gray-100);
  border:1px solid var(--color-border);
  border-radius:var(--radius-full);
  padding:2px;
  gap:2px;
  flex-wrap:wrap;
}
.wc-seg-btn{
  border:none;
  background:transparent;
  font-family:var(--font-display);
  font-size:12px;
  font-weight:500;
  color:var(--color-muted);
  padding:5px 12px;
  border-radius:var(--radius-full);
  cursor:pointer;
  transition:all var(--transition);
  white-space:nowrap;
}
.wc-seg-btn:hover{color:var(--color-heading);background:var(--gray-50)}
.wc-seg-btn.active{
  background:var(--g-blue);
  color:white;
}

/* v4.9 模板分类已迁移到顶栏 editor-overlay-subnav，body 内不再绘制分类条 */

/* 模板缩略图条（T09） */
.wc-tpl-strip{
  display:flex;
  gap:var(--space-3);
  flex-wrap:wrap;
  padding:var(--space-1) 0 var(--space-2);
}
.editor-overlay-body .wc-tpl-strip{flex-wrap:wrap}
.wc-tpl-card{
  flex:1 1 30%;
  min-width:120px;
  max-width:200px;
  background:transparent;
  border:none;
  cursor:pointer;
  text-align:center;
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
}
.wc-tpl-thumb{
  width:100%;
  height:160px;
  border-radius:var(--radius-sm);
  border:2px solid var(--color-border);
  background:var(--gray-100);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 8px 8px;
  transition:all var(--transition);
}
.wc-tpl-thumb::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:5px;
  background:var(--tpl-accent,var(--g-blue));
}
.wc-tpl-thumb-bar{
  width:50%;
  height:8px;
  border-radius:2px;
  background:var(--tpl-accent,var(--g-blue));
  opacity:.9;
  margin-bottom:2px;
}
.wc-tpl-thumb-line{
  width:100%;
  height:5px;
  border-radius:2px;
  background:var(--gray-300);
}
.wc-tpl-thumb-line.short{width:65%}
.wc-tpl-thumb-line.tiny{width:40%}
.wc-tpl-card:hover .wc-tpl-thumb{border-color:var(--g-blue);transform:translateY(-2px)}
.wc-tpl-card.active .wc-tpl-thumb{
  border-color:var(--g-blue);
  box-shadow:0 0 0 3px var(--g-blue-light);
}
.wc-tpl-name{
  font-size:12px;
  color:var(--color-heading);
  line-height:1.3;
  font-weight:500;
}
.wc-tpl-card.active .wc-tpl-name{color:var(--g-blue);font-weight:600}
.wc-tpl-tags{
  font-size:10px;
  color:var(--color-muted);
}

/* 范文模板卡片 */
.wc-sample-grid{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4);
}
.wc-sample-card{
  flex:1 1 30%;
  min-width:140px;
  max-width:220px;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:var(--space-3);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  transition:all var(--transition);
  background:var(--color-surface);
}
.wc-sample-card:hover{
  border-color:var(--g-blue);
  transform:translateY(-2px);
  box-shadow:var(--shadow-2);
}
.wc-sample-thumb{
  width:100%;
  height:120px;
  border-radius:var(--radius-sm);
  background:var(--gray-100);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:10px 6px 6px;
}
.wc-sample-thumb::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--sample-accent,var(--g-blue));
}
.wc-sample-thumb-bar{
  width:50%;
  height:6px;
  border-radius:2px;
  background:var(--sample-accent,var(--g-blue));
  opacity:.9;
  margin-bottom:2px;
}
.wc-sample-thumb-line{
  width:100%;
  height:4px;
  border-radius:2px;
  background:var(--gray-300);
}
.wc-sample-thumb-line.short{width:65%}
.wc-sample-thumb-line.tiny{width:40%}
.wc-sample-name{
  font-size:13px;
  font-weight:600;
  color:var(--color-heading);
  text-align:center;
  line-height:1.3;
}
/* v4.9.2: 卡片底部标签容器（模块分类 + 行业） */
.wc-sample-tags{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  justify-content:center;
  margin-top:6px;
}
.wc-sample-tags .tag{padding:2px 8px; font-size:11px}

/* 自定义主题色取色器（未选 = 彩色色盘预览；已选 = 当前色块） */
.color-option-pick{
  padding:0;
  overflow:hidden;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  /* 圆环 + 4 角 4 色 = 真正的「色盘」视觉，提示用户「这是颜色工具」而非「+ 加号」 */
  background:
    radial-gradient(circle at 30% 30%, #EA4335 0 14%, transparent 16%),
    radial-gradient(circle at 70% 30%, #FBBC04 0 14%, transparent 16%),
    radial-gradient(circle at 30% 70%, #34A853 0 14%, transparent 16%),
    radial-gradient(circle at 70% 70%, #4285F4 0 14%, transparent 16%),
    radial-gradient(circle at 50% 50%, #fff 0 4%, transparent 6%),
    conic-gradient(from 45deg, #A21CAF, #06B6D4, #34A853, #FBBC04, #EA4335, #A21CAF);
  background-size:100% 100%;
  background-color:#f1f2f4;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);
}
.color-option-pick.is-custom-picked{
  /* 已选自定义色：纯色块 */
  background-image:none;
  background-color:inherit; /* 由内联 style 覆盖 */
  box-shadow:inset 0 0 0 2px #fff, 0 0 0 1.5px var(--g-blue);
}
/* 滴管 icon：未选时显示在色盘中央（白底圆环），提示「取色器」 */
.color-option-pick-palette{
  position:relative;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 1px 3px rgba(0,0,0,.18);
  pointer-events:none;
  z-index:1;
}
.color-option-pick-pipette{color:var(--g-blue);display:inline-flex}
.color-option-pick-pipette i[data-lucide]{width:11px;height:11px;stroke-width:2}
/* 已选时隐藏色盘元素 */
.color-option-pick.is-custom-picked .color-option-pick-palette{display:none}
.wc-color-picker{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:none;
  padding:0;
  background:transparent;
  cursor:pointer;
  opacity:0;
}

/* 写作助手提示框（T08，仅写 .wc-assist-hints 的 innerHTML） */
.wc-assist-hints{
  margin-top:var(--space-2);
  padding:var(--space-3);
  background:var(--gray-50);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-size:12px;
}
.wc-assist-hints[hidden]{display:none}
.wc-assist-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}
.wc-assist-item{
  display:flex;
  align-items:flex-start;
  gap:var(--space-2);
  padding:var(--space-2) var(--space-3);
  background:white;
  border:1px solid var(--color-border);
  border-left:3px solid var(--gray-300);
  border-radius:var(--radius-sm);
}
.wc-assist-item.is-error{border-left-color:var(--g-red)}
.wc-assist-item.is-warn{border-left-color:var(--g-yellow)}
.wc-assist-item.is-info{border-left-color:var(--g-blue)}
.wc-assist-item.is-ok{border-left-color:var(--g-green)}
.wc-assist-badge{
  flex-shrink:0;
  width:18px;height:18px;
  border-radius:var(--radius-full);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:700;
  color:white;
  background:var(--gray-500);
}
.is-error .wc-assist-badge{background:var(--g-red)}
.is-warn .wc-assist-badge{background:var(--g-yellow)}
.is-info .wc-assist-badge{background:var(--g-blue)}
.is-ok .wc-assist-badge{background:var(--g-green)}
.wc-assist-line{
  flex-shrink:0;
  color:var(--color-muted);
  font-size:11px;
}
.wc-assist-msg{flex:1;min-width:0;color:var(--color-text);line-height:1.5}
.wc-assist-fix{
  flex-shrink:0;
  border:none;
  background:var(--g-blue-light);
  color:var(--g-blue);
  font-size:11px;
  font-weight:600;
  padding:3px 10px;
  border-radius:var(--radius-full);
  cursor:pointer;
  transition:all var(--transition);
}
.wc-assist-fix:hover{background:var(--g-blue);color:white}

/* 小型胶囊按钮（技能词库 / 范例语料 / 折叠全部） */
.wc-mini-btn{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-family:var(--font-display);
  font-size:12px;
  font-weight:500;
  color:var(--g-blue);
  background:var(--g-blue-light);
  border:1px solid transparent;
  border-radius:var(--radius-full);
  padding:4px 10px;
  cursor:pointer;
  transition:all var(--transition);
  white-space:nowrap;
}
.wc-mini-btn:hover{background:var(--g-blue);color:white}

/* 标签行按钮组（范例 + AI优化） */
.form-label-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.wc-mini-btn-ai{color:var(--g-blue);border-color:rgba(162,28,175,.3);font-weight:600}
.wc-mini-btn-ai:hover{background:var(--g-blue);color:#fff;border-color:var(--g-blue)}
.wc-mini-btn-ai:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}

/* 编辑区列表项内的辅助按钮：默认隐藏，hover / 聚焦时显现，减少视觉重复 */
.form-subsection .wc-mini-btn{
  opacity:0;
  transition:opacity var(--transition);
}
.form-subsection:hover .wc-mini-btn,
.form-subsection:focus-within .wc-mini-btn{
  opacity:1;
}

/* 描述字数提示 */
.wc-char-count{
  display:block;
  margin-top:4px;
  font-size:12px;
  color:var(--color-muted);
  font-family:var(--font-body);
}
.wc-char-count.is-warn{color:var(--g-yellow)}

/* 字段校验错误（邮箱 / 电话） */
.form-input.is-invalid{
  border-color:var(--g-red);
  box-shadow:0 0 0 2px rgba(234,67,53,.15);
}
.form-group.is-invalid .form-label-row label{color:var(--g-red)}

/* 表单标签行（标签 + 右侧胶囊按钮） */
.form-label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-2);
  margin-bottom:var(--space-2);
}
.form-label-row label{margin-bottom:0}

/* 列表项头部的副标题（折叠态展示起止时间等） */
.item-card-sub{
  flex:1 1 auto;
  min-width:0;
  margin-left:var(--space-2);
  font-size:12px;
  color:var(--color-muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.form-subsection .item-card-title{
  flex:0 1 auto;
  max-width:42%;
  margin-right:var(--space-2);
}

/* 拖拽手柄（模块列表 / 列表卡片） */
.wc-drag-handle{
  flex-shrink:0;
  cursor:grab;
  color:var(--color-muted);
  font-size:14px;
  line-height:1;
  padding:2px 4px;
  user-select:none;
  border-radius:var(--radius-sm);
  transition:all var(--transition);
  /* v7.0：所有拖拽手柄固定 22px 宽，保证 basic(is-locked)/其他行槽位对齐 */
  display:inline-flex; align-items:center; justify-content:center;
  width:22px;
}
.wc-drag-handle:hover{background:var(--gray-200);color:var(--color-heading)}
.wc-drag-handle:active{cursor:grabbing}
.wc-drag-handle.is-locked{cursor:not-allowed;opacity:.4}
.wc-drag-handle.is-locked:hover{background:transparent;color:var(--color-muted)}

/* 拖拽时模块项过渡 */
.module-item,.form-subsection{
  transition:transform .15s ease,opacity .15s ease,border-color .12s ease,background .12s ease;
}

/* 列表卡片折叠态 */
.form-subsection-body{margin-top:var(--space-4)}
.form-subsection-body[hidden]{display:none}
.form-subsection.is-collapsed{padding-bottom:var(--space-3)}
.form-subsection.is-collapsed .item-card-head{margin-bottom:0;border-bottom:none}

/* 列表批量折叠/展开工具条 */
.wc-list-toolbar{
  display:flex;
  justify-content:flex-end;
  gap:var(--space-2);
  margin-bottom:var(--space-2);
}

/* 年月选择器触发输入（只读，点击弹 WC.datepicker） */
.form-input[data-wc-datepicker],
.form-textarea[data-wc-datepicker]{
  cursor:pointer;
  background-color:var(--gray-50);
}

/* 打印态：export.js 在 window.print() 前后给 body 切换 .wc-printing。
   此处给一个非 !important 的规则，确保打印时编辑区外壳收起、仅留白底纸张
   （@media print 已负责隐藏顶栏/侧栏/表单；这条作为保底，避免 class 切换沦为 no-op）。 */
body.wc-printing{background:white}
body.wc-printing .editor-workspace{background:white}
body.wc-printing .editor-form,
body.wc-printing .editor-splitter,
body.wc-printing .editor-overlay{display:none}
body.wc-printing .design-panel{display:none !important}

/* ==========================================================================
   site.js（T11）配套样式 —— 站点级通用交互
   约定：
   · 全部新增规则追加在文件末尾，不修改上方任何既有规则；
   · 只使用本文件已声明的 CSS 变量，不写死色值 / 间距；
   · .wc-site-* 前缀专供 site.js 的**降级** toast / 弹窗使用（页面未引入
     ui.js 时才会出现）；引入了 ui.js 的页面走 .wc-toast / .wc-modal-*，
     这批规则不会被命中，纯冗余零副作用。
   ========================================================================== */

/* ---------- 可点击卡片（F 类 data-wc-goto） ---------- */
[data-wc-goto]{cursor:pointer}
[data-wc-goto]:focus-visible{
  outline:2px solid var(--g-blue);
  outline-offset:2px;
}

/* ---------- 筛选（G 类）计数与空态 ---------- */
.wc-filter-count{
  margin-top:var(--space-3);
  color:var(--color-muted);
  font-size:var(--text-sm);
}
.wc-filter-count span{
  color:var(--color-heading);
  font-weight:600;
}
.wc-filter-empty{
  text-align:center;
  padding:var(--space-10) var(--space-6);
  color:var(--color-muted);
}
.wc-filter-empty-icon{
  font-size:40px;
  line-height:1;
  margin-bottom:var(--space-3);
  opacity:.6;
}
.wc-filter-empty p{
  margin-bottom:var(--space-4);
  font-size:var(--text-base);
}

/* 筛选条改用 <button> 后，抹掉浏览器默认按钮外观，保持与原 <span> 一致 */
button.filter-chip{
  font-family:inherit;
  font-size:var(--text-sm);
  line-height:inherit;
  appearance:none;
  -webkit-appearance:none;
}

/* ---------- 降级 toast ---------- */
.wc-site-toast-stack{
  position:fixed;
  left:50%;
  bottom:var(--space-8);
  transform:translateX(-50%);
  z-index:6000;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--space-2);
  pointer-events:none;
}
.wc-site-toast{
  max-width:min(90vw,420px);
  padding:var(--space-3) var(--space-5);
  border-radius:var(--radius-full);
  background:var(--gray-900);
  color:white;
  font-size:var(--text-sm);
  line-height:1.5;
  box-shadow:var(--shadow-3);
  opacity:0;
  transform:translateY(8px);
  transition:opacity var(--transition),transform var(--transition);
}
.wc-site-toast.is-show{opacity:1;transform:translateY(0)}
.wc-site-toast-success{background:var(--g-green)}
.wc-site-toast-error{background:var(--g-red)}

/* ---------- 降级弹窗 ---------- */
.wc-site-mask{
  position:fixed;
  inset:0;
  background:rgba(32,33,36,.5);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:var(--space-6);
  opacity:0;
  transition:opacity var(--transition);
}
.wc-site-mask.is-show{opacity:1}
.wc-site-mask.is-closing{opacity:0}
.wc-site-panel{
  width:100%;
  max-height:82vh;
  display:flex;
  flex-direction:column;
  background:white;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-4);
  overflow:hidden;
  transform:translateY(12px);
  transition:transform var(--transition);
}
.wc-site-mask.is-show .wc-site-panel{transform:translateY(0)}
.wc-site-panel-sm{max-width:440px}
.wc-site-panel-md{max-width:600px}
.wc-site-panel-lg{max-width:800px}
.wc-site-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  padding:var(--space-5) var(--space-6);
  border-bottom:1px solid var(--gray-200);
  flex-shrink:0;
}
.wc-site-panel-title{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  margin:0;
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--color-heading);
}
.wc-site-panel-icon{font-size:var(--text-xl);line-height:1}
.wc-site-panel-x{
  border:none;
  background:transparent;
  cursor:pointer;
  font-size:var(--text-2xl);
  line-height:1;
  color:var(--color-muted);
  padding:0 var(--space-1);
  border-radius:var(--radius-sm);
  transition:all var(--transition);
}
.wc-site-panel-x:hover{background:var(--gray-100);color:var(--color-heading)}
.wc-site-panel-body{
  padding:var(--space-6);
  overflow-y:auto;
  flex:1;
  color:var(--color-text);
  font-size:var(--text-sm);
  line-height:1.75;
}
.wc-site-panel-foot{
  display:flex;
  justify-content:flex-end;
  gap:var(--space-3);
  padding:var(--space-4) var(--space-6);
  border-top:1px solid var(--gray-200);
  background:var(--gray-50);
  flex-shrink:0;
}

/* ---------- 弹窗内正文元素 ---------- */
.wc-site-text{margin:0 0 var(--space-4);line-height:1.75}
.wc-site-text:last-child{margin-bottom:0}
.wc-site-legal{line-height:1.9;color:var(--color-text)}
.wc-site-field{
  display:block;
  margin-bottom:var(--space-2);
}
.wc-site-field-label{
  display:block;
  margin-bottom:var(--space-1);
  font-size:var(--text-xs);
  font-weight:600;
  color:var(--color-heading);
}
.wc-site-input{
  width:100%;
  padding:var(--space-2) var(--space-3);
  border:1px solid var(--gray-300);
  border-radius:var(--radius-md);
  font-family:inherit;
  font-size:var(--text-sm);
  color:var(--color-text);
  background:white;
  transition:border-color var(--transition),box-shadow var(--transition);
}
.wc-site-input:focus{
  outline:none;
  border-color:var(--g-blue);
  box-shadow:0 0 0 3px var(--g-blue-light);
}
.wc-site-hint{
  margin:0;
  font-size:var(--text-xs);
  color:var(--color-muted);
  line-height:1.6;
}

/* ========================================
   ★ 市场前沿优化 — 暗色模式 (Dark Mode)
   通过 [data-theme="dark"] 切换 CSS 变量
   ======================================== */

[data-theme="dark"]{
  /* 中性色 — Telegram 暗色梯度（深蓝黑） */
  --gray-50:  #0e1621;
  --gray-100: #17212b;
  --gray-200: #1d2a39;
  --gray-300: #2b3a4d;
  --gray-500: #708499;
  --gray-700: #aebfce;
  --gray-900: #e9edf0;

  /* 语义色覆盖 */
  --color-bg:       #0e1621;
  --color-bg-alt:   #17212b;
  --color-surface:  #17212b;
  --color-border:   #232e3c;
  --color-text:     #c7d0d9;
  --color-heading:  #e9edf0;
  --color-muted:    #6d7f8f;

  /* 主色在暗色下适当提亮 */
  --g-blue-light:  rgba(162,28,175,.16);
  --g-red-light:   rgba(227,70,70,.16);
  --g-yellow-light:rgba(242,201,76,.14);
  --g-green-light: rgba(77,205,94,.16);

  /* 阴影 — 暗色下用更深的黑 */
  --shadow-1: 0 1px 2px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.45);
  --shadow-2: 0 2px 6px rgba(0,0,0,.4),0 4px 12px rgba(0,0,0,.45);
  --shadow-3: 0 4px 12px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.5);
  --shadow-4: 0 8px 24px rgba(0,0,0,.5),0 16px 40px rgba(0,0,0,.55);

  color-scheme:dark;
}

/* 暗色模式 — 需要手动覆盖的硬编码色 */
[data-theme="dark"] body{background:var(--color-bg);color:var(--color-text)}
[data-theme="dark"] .wc-site-panel{background:var(--color-surface)}
[data-theme="dark"] .wc-site-panel-head{border-color:var(--color-border)}
[data-theme="dark"] .wc-site-panel-foot{background:var(--gray-100);border-color:var(--color-border)}
[data-theme="dark"] .wc-site-panel-x:hover{background:var(--gray-200)}
[data-theme="dark"] .wc-site-input{background:var(--gray-100);border-color:var(--gray-300);color:var(--color-text)}
[data-theme="dark"] .wc-site-toast{background:rgba(20,28,38,.92); color:#E9EDF0; border:1px solid rgba(255,255,255,.08); backdrop-filter:blur(8px);}
[data-theme="dark"] .wc-site-mask{background:rgba(0,0,0,.6)}

/* 导航在暗色下保持深色（Telegram 深蓝黑 #0e1621） */
[data-theme="dark"] .gnb{background:#0e1621}

/* 编辑器 UI 暗色覆盖 — 硬编码 white 背景的组件 */
[data-theme="dark"] .editor-form{background:var(--color-bg)}
[data-theme="dark"] .editor-preview{background:var(--gray-100)}
[data-theme="dark"] .editor-workspace{background:var(--gray-100)}
[data-theme="dark"] .top-bar{background:#17212b}
[data-theme="dark"] .template-preview-inner{background:var(--color-surface)}
[data-theme="dark"] .module-item.active .module-icon{background:var(--g-orange);color:#fff}
[data-theme="dark"] .wc-form-field,
[data-theme="dark"] .wc-input,
[data-theme="dark"] .wc-textarea,
[data-theme="dark"] .wc-select,
[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="tel"],
[data-theme="dark"] input[type="url"],
[data-theme="dark"] input[type="date"],
[data-theme="dark"] textarea,
[data-theme="dark"] select{
  background:var(--gray-100);
  border-color:var(--gray-300);
  color:var(--color-text);
}
[data-theme="dark"] .wc-form-field:focus,
[data-theme="dark"] .wc-input:focus,
[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus{
  border-color:var(--g-blue);
  box-shadow:0 0 0 3px var(--g-blue-light);
}
/* 表单标签和标题 */
[data-theme="dark"] .form-section-title,
[data-theme="dark"] .sidebar-title{color:var(--color-heading)}
/* 模块列表项 */
[data-theme="dark"] .module-item{background:var(--color-surface);border-color:var(--color-border)}
[data-theme="dark"] .module-item:hover{background:var(--gray-100)}
[data-theme="dark"] .module-item.active{background:var(--g-blue-light);border-color:var(--g-blue)}
/* 卡片 */
[data-theme="dark"] .quick-link-card,
[data-theme="dark"] .service-card,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .review-card,
[data-theme="dark"] .tool-card{background:var(--color-surface);border-color:var(--color-border)}
/* CTA */
[data-theme="dark"] .cta-card{background:var(--color-surface)}
/* ★ 简历纸张始终白色 — 即使暗色模式也保持白纸黑字 */
[data-theme="dark"] .resume-paper{background:white;color:#202124}

/* ========================================
   ★ 无障碍 (a11y) 增强
   ======================================== */

/* 跳过导航链接 — 键盘用户专用 */
.skip-link{
  position:absolute;
  top:-100px;
  left:0;
  z-index:9999;
  padding:var(--space-3) var(--space-5);
  background:var(--g-blue);
  color:white !important;
  font-size:var(--text-sm);
  font-weight:500;
  border-radius:0 0 var(--radius-md) 0;
  text-decoration:none;
  transition:top var(--transition);
}
.skip-link:focus{
  top:0;
  outline:2px solid var(--g-yellow);
  outline-offset:2px;
}

/* focus-visible — 只在键盘导航时显示焦点环 */
:focus-visible{
  outline:2px solid var(--g-blue);
  outline-offset:2px;
  border-radius:2px;
}
[data-theme="dark"] :focus-visible{
  outline-color:var(--g-blue);
  outline-width:3px;
}

/* 按钮/链接 focus-visible 覆盖 */
.gnb-links a:focus-visible,
.gnb-btn:focus-visible,
.top-bar-btn:focus-visible,
.btn:focus-visible{
  outline:2px solid var(--g-yellow);
  outline-offset:2px;
}

/* 尊重用户的减少动画偏好 */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ========================================
   ★ 暗色模式切换按钮
   ======================================== */
.gnb-theme-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  padding:0;
  border-radius:var(--radius-full);
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05);
  cursor:pointer;
  transition:all var(--transition);
  line-height:1;
}
.gnb-theme-toggle:hover{
  background:rgba(255,255,255,.12);
}
.gnb-theme-toggle .theme-icon-dark{display:none}
.gnb-theme-toggle svg{width:18px;height:18px;display:block;flex-shrink:0}
[data-theme="dark"] .gnb-theme-toggle .theme-icon-light{display:none}
[data-theme="dark"] .gnb-theme-toggle .theme-icon-dark{display:inline}

/* ========================================
   ★ 滚动揭示动画 (Scroll Reveal)
   IntersectionObserver 驱动，GPU 加速
   ======================================== */
/* 仅在 JS 可用时默认隐藏，做滚动揭示动画；无 JS 时内容直接可见 */
html.js .reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 0.6s cubic-bezier(.16,1,.3,1),
             transform 0.6s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}
html.js .reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
/* 依次延迟 */
.reveal:nth-child(2){transition-delay:0.08s}
.reveal:nth-child(3){transition-delay:0.16s}
.reveal:nth-child(4){transition-delay:0.24s}

/* 不支持 IO 的浏览器直接显示 */
.no-io .reveal{opacity:1;transform:none}

/* ========================================
   ★ 骨架屏 (Skeleton Loading)
   builder 页数据加载时展示
   ======================================== */
.skeleton{
  background:linear-gradient(
    90deg,
    var(--gray-100) 25%,
    var(--gray-200) 50%,
    var(--gray-100) 75%
  );
  background-size:200% 100%;
  animation:skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius:var(--radius-sm);
}
@keyframes skeleton-shimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
[data-theme="dark"] .skeleton{
  background:linear-gradient(
    90deg,
    var(--gray-100) 25%,
    var(--gray-200) 50%,
    var(--gray-100) 75%
  );
  background-size:200% 100%;
}

/* 骨架屏占位条 */
.skeleton-line{height:14px;margin-bottom:var(--space-2)}
.skeleton-line:last-child{margin-bottom:0;width:60%}
.skeleton-title{height:24px;width:50%;margin-bottom:var(--space-4)}
.skeleton-block{height:120px;margin-bottom:var(--space-4)}

/* ========================================
   §DP — 日期选择器面板样式
   ======================================== */

.wc-datepicker{
  background:white;
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-4);
  padding:var(--space-3);
  z-index:10000;
  user-select:none;
  font-family:var(--font-display);
}

/* 头部：年份导航 */
.wc-dp-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:var(--space-2);
  padding:0 var(--space-1);
}

.wc-dp-nav{
  width:28px;
  height:28px;
  border:none;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--color-muted);
  font-size:18px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all var(--transition);
}
.wc-dp-nav:hover:not(:disabled){
  background:var(--gray-100);
  color:var(--color-heading);
}
.wc-dp-nav:disabled{
  opacity:.3;
  cursor:not-allowed;
}

.wc-dp-year{
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
}
.wc-dp-year-btn{
  border:none;
  background:transparent;
  font-size:14px;
  font-weight:600;
  color:var(--color-heading);
  cursor:pointer;
  padding:4px 12px;
  border-radius:var(--radius-sm);
  transition:all var(--transition);
  font-family:var(--font-display);
}
.wc-dp-year-btn:hover{
  background:var(--gray-100);
  color:var(--g-blue);
}
.wc-dp-grid-year{
  grid-template-columns:repeat(4,1fr);
}

/* 月份网格 */
.wc-dp-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:4px;
}

.wc-dp-cell{
  border:none;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--color-text);
  font-size:13px;
  font-weight:500;
  padding:8px 4px;
  cursor:pointer;
  transition:all var(--transition);
  font-family:var(--font-display);
}
.wc-dp-cell:hover:not(:disabled):not(.is-selected){
  background:var(--g-blue-light);
  color:var(--g-blue);
}
.wc-dp-cell.is-selected{
  background:var(--g-blue);
  color:white;
  font-weight:600;
}
.wc-dp-cell:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* 底部：快捷操作 */
.wc-dp-foot{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-3);
  margin-top:var(--space-2);
  padding-top:var(--space-2);
  border-top:1px solid var(--color-border);
}

.wc-dp-link{
  border:none;
  background:transparent;
  color:var(--color-muted);
  font-size:12px;
  font-weight:500;
  cursor:pointer;
  padding:4px 8px;
  border-radius:var(--radius-sm);
  transition:all var(--transition);
  font-family:var(--font-display);
}
.wc-dp-link:hover{
  background:var(--gray-100);
  color:var(--color-heading);
}

/* 暗色模式 */
[data-theme="dark"] .wc-datepicker{
  background:var(--color-surface);
  border-color:var(--color-border);
}
[data-theme="dark"] .wc-dp-nav{color:var(--color-muted)}
[data-theme="dark"] .wc-dp-nav:hover:not(:disabled){background:var(--gray-200);color:var(--color-text)}
[data-theme="dark"] .wc-dp-year{color:var(--color-text)}
[data-theme="dark"] .wc-dp-cell{color:var(--color-text)}
[data-theme="dark"] .wc-dp-cell:hover:not(:disabled):not(.is-selected){background:var(--gray-200)}
[data-theme="dark"] .wc-dp-link{color:var(--color-muted)}
[data-theme="dark"] .wc-dp-link:hover{background:var(--gray-200);color:var(--color-text)}

/* ============================================================
   AI 设置面板（js/ai.js）
   ============================================================ */
.wc-ai{display:flex;gap:var(--space-5);align-items:flex-start}
.wc-ai-list{flex:0 0 190px;display:flex;flex-direction:column;gap:var(--space-2)}
.wc-ai-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}
.wc-ai-list-head>span{font-size:13px;font-weight:600;color:var(--color-heading)}
.wc-ai-list-items{display:flex;flex-direction:column;gap:var(--space-2);max-height:460px;overflow-y:auto}
.wc-ai-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);
  padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  background:var(--color-surface);cursor:pointer;transition:all var(--transition)}
.wc-ai-item:hover{border-color:var(--g-blue);background:var(--g-blue-light)}
.wc-ai-item.is-selected{border-color:var(--g-blue);box-shadow:0 0 0 2px var(--g-blue-light)}
.wc-ai-item-main{display:flex;flex-direction:column;min-width:0}
.wc-ai-item-name{font-size:13px;font-weight:500;color:var(--color-heading);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-ai-item-vendor{font-size:11px;color:var(--color-muted)}
.wc-ai-empty-list{font-size:12px;color:var(--color-muted);padding:var(--space-3) 0;line-height:1.6}

.wc-ai-editor{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}
.wc-ai-editor-empty{color:var(--color-muted);font-size:14px;padding:var(--space-6) 0;text-align:center}
.wc-ai-editor-head{display:flex;align-items:center;gap:var(--space-2)}
.wc-ai-editor-head .wc-ai-name{flex:1}
.wc-ai-field{display:flex;flex-direction:column;gap:var(--space-1)}
.wc-ai-field .setting-label{font-size:13px;font-weight:500;color:var(--color-heading)}
.wc-ai-key{display:flex;gap:var(--space-2);align-items:stretch}
.wc-ai-key .form-input{flex:1}
.wc-ai-key-toggle{flex:0 0 auto;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  background:var(--gray-100);font-size:12px;color:var(--color-text);cursor:pointer;transition:all var(--transition)}
.wc-ai-key-toggle:hover{border-color:var(--g-blue);color:var(--g-blue)}
.wc-ai-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}
.wc-ai-test{font-size:12px;min-height:18px}
.wc-ai-test.is-loading{color:var(--color-muted)}
.wc-ai-test.is-ok{color:var(--g-green)}
.wc-ai-test.is-err{color:var(--g-red);max-width:420px;word-break:break-word}
.wc-ai-cors{margin-top:var(--space-1);border:1px solid rgba(234,68,53,.35);background:rgba(234,68,53,.06);
  border-radius:10px;padding:10px 12px}
.wc-ai-cors-head{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--g-red,#e5484d);margin-bottom:4px}
.wc-ai-cors-head svg{flex-shrink:0}
.wc-ai-cors-body{font-size:12px;line-height:1.6;color:var(--color-text);opacity:.92}
.wc-ai-cors-body strong{color:var(--g-blue)}
.wc-ai-cors-copy{margin-top:8px;width:100%;border:1px dashed var(--g-blue);background:none;color:var(--g-blue);
  font-size:12px;font-weight:600;padding:6px 8px;border-radius:8px;cursor:pointer;transition:all .14s}
.wc-ai-cors-copy:hover{background:rgba(162,28,175,.08)}
[data-theme="dark"] .wc-ai-cors{background:rgba(234,68,53,.12)}

.wc-ai-footnote{margin-right:auto;font-size:12px;color:var(--color-muted);max-width:62%;line-height:1.5}

/* 窄屏：上下堆叠 */
@media (max-width:680px){
  .wc-ai{flex-direction:column}
  .wc-ai-list{flex:0 0 auto;width:100%}
  .wc-ai-list-items{flex-direction:row;flex-wrap:wrap;max-height:none}
  .wc-ai-item{flex:1 1 140px}
  .wc-ai-footnote{max-width:100%;margin-bottom:var(--space-2)}
}

/* 暗色模式 */
[data-theme="dark"] .wc-ai-item{background:var(--color-surface)}
[data-theme="dark"] .wc-ai-item:hover{background:var(--g-blue-light)}
[data-theme="dark"] .wc-ai-key-toggle{background:var(--gray-200);color:var(--color-text)}
[data-theme="dark"] .wc-dp-foot{border-color:var(--color-border)}

/* ============================================================
   AI 聊天助手 —— WonderAI 风格（js/ai.js renderChat）
   ============================================================ */

/* ---- 根容器 ---- */
.wc-aichat{display:flex;flex-direction:column;height:100%;background:var(--color-surface,#fff);position:relative}

/* ===== overlay 顶栏注入的 AI 工具按钮（sidebar.js） ===== */
.wc-ai-tools{display:flex;gap:2px;align-items:center}
.wc-ai-tool{width:32px;height:32px;border:none;border-radius:8px;background:none;color:#8a94a3;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.wc-ai-tool:hover{background:rgba(127,127,127,.12);color:#4b5563}
.wc-ai-tool[data-ai-overlay-action="settings"]:hover{color:var(--brand-orange);background:rgba(255,107,26,.10)}

/* ===== 内嵌工具栏（drawer 回退模式保留，overlay 模式下隐藏） ===== */
.wc-aichat-toolbar{display:none;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}
.wc-aichat-title{font-size:16px;font-weight:700;color:var(--color-heading);letter-spacing:.3px}
.wc-aichat-tools{display:flex;gap:2px}
.wc-aichat-tool{width:32px;height:32px;border:none;border-radius:8px;background:none;color:#8a94a3;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.wc-aichat-tool:hover{background:var(--color-surface-2,#f1f2f4);color:var(--color-heading)}
.wc-aichat-settings-btn:hover{color:var(--g-blue);background:rgba(162,28,175,.08)}
.wc-aichat-tool[data-aichat-action="close"]:hover{background:#fee2e2;color:#dc2626}

/* ===== 内容区（首页态 / 聊天态） ===== */
.wc-aichat-body{
  /* v6：去掉 padding-top 20px，避免顶栏下出现一道空白色块。
       顶栏已经画了 1px 分割线，这里从 0 开始让对话紧贴顶栏。 */
  flex:1;
  overflow-y:auto;
  padding:0 24px 8px;
  min-height:0;
}

/* ----- 首页态 ----- */
.wc-aichat-home{display:flex;flex-direction:column;align-items:center;padding-top:24px}
.wc-aichat-greet{font-size:22px;font-weight:700;color:var(--color-heading);margin-bottom:4px}
.wc-aichat-subtitle{font-size:13px;color:var(--color-muted);margin-bottom:28px}

/* 快捷卡片 */
.wc-aichat-cards{display:flex;flex-direction:column;width:100%;max-width:520px;gap:10px}
.wc-aichat-card{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border:1px solid var(--color-border);border-radius:12px;
  background:var(--color-surface,#fff);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s;position:relative}
.wc-aichat-card:hover{border-color:var(--g-blue);box-shadow:0 2px 8px rgba(162,28,175,.1)}
.wc-aichat-card-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  background:var(--color-surface-2,#f5f6f7);border-radius:10px;flex-shrink:0;color:#8a94a3}
.wc-aichat-card-info{flex:1;min-width:0}
.wc-aichat-card-title{display:block;font-size:14px;font-weight:600;color:var(--color-heading)}
.wc-aichat-card-desc{display:block;font-size:12px;color:var(--color-muted);margin-top:2px}
.wc-aichat-badge{padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;flex-shrink:0}
.wc-aichat-badge-primary{background:#fef3c7;color:#b45309}
.wc-aichat-badge-warn{background:#ede9fe;color:#7c3aed}
.wc-aichat-card-setup:hover{border-color:var(--g-blue);box-shadow:0 2px 8px rgba(162,28,175,.12)}

/* ----- 聊天态消息列表 ----- */
.wc-aichat-messages{display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;padding:18px 18px 8px}
/* v4.9.13: wrap 承载「气泡 + 操作栏」整体，hover wrap 才显示 actions（不依赖 bubble） */
.wc-aichat-msg-wrap{display:flex;flex-direction:column;max-width:85%;min-width:0}
.wc-aichat-msg-wrap.user{align-self:flex-end}
.wc-aichat-msg-wrap.bot{align-self:flex-start}
.wc-aichat-msg{padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.68;white-space:pre-wrap;word-break:break-word;position:relative}
.wc-aichat-msg strong{font-weight:700}
.wc-aichat-msg em{font-style:italic}
.wc-aichat-msg.user{background:var(--g-blue);color:#fff;border-bottom-right-radius:4px}
.wc-aichat-msg.bot{background:var(--color-surface-2,#f1f2f4);color:var(--color-text);border:1px solid var(--color-border);border-bottom-left-radius:4px}
.wc-aichat-msg.is-thinking{opacity:1}
/* v6.2c: AI 流式输出时去掉气泡背景/边框/色块，只显排版本身；
   用户感觉"还没发送完就不该有气泡"，因此视觉上让流式内容以纯排版呈现，
   完成后再被气泡包裹。 */
.wc-aichat-msg.bot.is-thinking{
  background:transparent;
  border-color:transparent;
  border-bottom-left-radius:14px;
  padding-left:4px;padding-right:4px;
  color:var(--color-text);
}
.wc-aichat-msg.is-thinking:empty::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--color-muted);box-shadow:11px 0 0 var(--color-muted),22px 0 0 var(--color-muted);animation:wc-typing 1.1s ease-in-out infinite;margin:3px 26px 3px 2px}
/* 流式过程中，bot 气泡不显背景；结束时通过去掉 .is-thinking 让背景色回归 */
[data-theme="dark"] .wc-aichat-msg.bot.is-thinking{background:transparent;border-color:transparent}
@keyframes wc-typing{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-4px);opacity:1}}
/* v4.9.13: 复制+编辑/重新生成+应用 三个按钮——独立出气泡外，hover wrap 整体才显；颜色统一跟聊天背景板（不跟气泡色） */
.wc-aichat-msg-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px;margin-top:4px;padding:0 2px;opacity:0;transition:opacity .18s}
.wc-aichat-msg-wrap:hover .wc-aichat-msg-actions,.wc-aichat-msg-wrap:focus-within .wc-aichat-msg-actions{opacity:1}
/* 图标按钮（复制 / 编辑 / 重新生成 / 应用到简历）— 纯图标 */
.wc-aichat-msg-ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;background:none;color:var(--color-muted,#999);border-radius:6px;cursor:pointer;transition:color .15s,background .15s,border-color .15s;flex-shrink:0}
.wc-aichat-msg-ico:hover{color:var(--g-blue);background:rgba(66,133,244,.08);border-color:rgba(66,133,244,.2)}
/* v4.9.13: 移除 .user/.bot 各自覆盖 actions 颜色的旧规则——actions 统一跟聊天背景，不再跟气泡色变 */
/* 触屏设备无真正 hover，操作图标始终可见 */
@media (hover:none) and (pointer:coarse){.wc-aichat-msg-actions{opacity:1}}
/* v4.9.14: 操作栏随气泡侧对齐——AI(左) 操作靠左，用户(右) 操作靠右 */
.wc-aichat-msg-wrap.bot .wc-aichat-msg-actions{justify-content:flex-start}
.wc-aichat-msg-wrap.user .wc-aichat-msg-actions{justify-content:flex-end}
/* v6.3：消息底部「全部应用（替换）」主按钮 */
.wc-aichat-msg-btn-apply-all{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;
  color:#fff;background:var(--g-orange,#FF6B1A);border:none;border-radius:8px;padding:5px 12px;cursor:pointer;transition:background .15s,transform .1s}
.wc-aichat-msg-btn-apply-all:hover{background:var(--g-orange-hover,#E85F12)}
.wc-aichat-msg-btn-apply-all:active{transform:scale(.97)}
[data-theme="dark"] .wc-aichat-msg-btn-apply-all{background:var(--g-orange,#FF8B4D)}
[data-theme="dark"] .wc-aichat-msg-btn-apply-all:hover{background:var(--g-orange-hover,#E85F12)}
[data-theme="dark"] .wc-aichat-msg-ico{color:#6b7a8c}
[data-theme="dark"] .wc-aichat-msg-ico:hover{color:var(--g-blue);background:rgba(66,133,244,.12);border-color:rgba(66,133,244,.25)}
[data-theme="dark"] .wc-aichat-msg.user .wc-aichat-msg-ico{color:rgba(255,255,255,.6)}
[data-theme="dark"] .wc-aichat-msg.user .wc-aichat-msg-ico:hover{color:#fff;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.2)}

/* ============ v4.9.14：「我的简历」GPT 风格管理（多选 / 批量） ============ */
.wc-rm2{display:flex;flex-direction:column;gap:14px}
.wc-rm2-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wc-rm2-selall{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-muted);cursor:pointer;user-select:none}
.wc-rm2-selall input{width:16px;height:16px;accent-color:var(--brand-orange);cursor:pointer}
.wc-rm2-count{font-size:12px;color:var(--color-muted)}
.wc-rm2-spacer{flex:1}
.wc-rm2-batch{display:flex;align-items:center;gap:8px;background:var(--g-blue-light,#eef3ff);border:1px solid rgba(66,133,244,.25);padding:4px 10px;border-radius:10px}
.wc-rm2-batch-count{font-size:12px;font-weight:600;color:var(--g-blue)}
.wc-rm2-new{display:flex;gap:8px}
.wc-rm2-list{display:flex;flex-direction:column;gap:10px;max-height:54vh;overflow-y:auto;padding:2px}
.wc-rm2-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface,#fff);transition:border-color .15s,box-shadow .15s,background .15s}
.wc-rm2-row:hover{border-color:var(--g-blue);box-shadow:0 2px 10px rgba(66,133,244,.10)}
.wc-rm2-row.is-active{border-color:var(--brand-orange);background:rgba(255,107,26,.04)}
.wc-rm2-row.is-checked{background:var(--g-blue-light,#eef3ff);border-color:rgba(66,133,244,.4)}
.wc-rm2-checkwrap{flex-shrink:0;display:inline-flex;cursor:pointer}
.wc-rm2-check{width:18px;height:18px;accent-color:var(--brand-orange);cursor:pointer}
.wc-rm2-main{flex:1;min-width:0}
.wc-rm2-name{font-size:14px;font-weight:600;color:var(--color-heading);display:flex;align-items:center;gap:8px}
.wc-rm2-date{font-size:12px;color:var(--color-muted);margin-top:2px}
.wc-rm2-actions{display:flex;gap:6px;flex-shrink:0}
.wc-rm2-danger{color:var(--g-red)!important}
.wc-rm2-danger:hover{border-color:var(--g-red)!important;color:var(--g-red)!important;background:rgba(229,72,77,.06)}
[data-theme="dark"] .wc-rm2-row{background:#1a2332;border-color:#273344}
[data-theme="dark"] .wc-rm2-row:hover{border-color:var(--g-blue);box-shadow:0 2px 12px rgba(0,0,0,.3)}
[data-theme="dark"] .wc-rm2-row.is-active{border-color:var(--brand-orange);background:rgba(255,107,26,.10)}
[data-theme="dark"] .wc-rm2-row.is-checked{background:rgba(66,133,244,.12);border-color:rgba(66,133,244,.5)}
[data-theme="dark"] .wc-rm2-batch{background:rgba(66,133,244,.14);border-color:rgba(66,133,244,.4)}
[data-theme="dark"] .wc-rm2-batch-count{color:#9cc2ff}
/* 编辑态：输入框描边提示 */
.wc-aichat.is-editing [data-aichat-input]{box-shadow:0 0 0 2px var(--g-blue);border-color:var(--g-blue)}

/* 应用到简历浮层 */
.wc-aichat-apply-wrap{position:absolute;bottom:calc(100% + 6px);left:0;z-index:30}
.wc-aichat-apply-pop{background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:6px;min-width:168px;max-height:min(60vh,320px);overflow-y:auto}
.wc-aichat-apply-title{font-size:11px;color:var(--color-muted);padding:3px 8px}
.wc-aichat-apply-item{display:block;width:100%;text-align:left;border:none;background:none;color:var(--color-text);font-size:13px;padding:7px 8px;border-radius:7px;cursor:pointer}
.wc-aichat-apply-item:hover{background:rgba(162,28,175,.08);color:var(--g-blue)}
[data-theme="dark"] .wc-aichat-apply-pop{background:#16202e;border-color:#273344}
[data-theme="dark"] .wc-aichat-apply-item{color:#d0d8e4}
[data-theme="dark"] .wc-aichat-apply-item:hover{background:rgba(162,28,175,.18);color:var(--g-blue)}
@keyframes wc-pulse{0%,100%{opacity:.35}50%{opacity:.85}}

/* ===== AI 消息内 Markdown 渲染 ===== */
.wc-aichat-msg .wc-md-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;background:rgba(127,127,127,.14);padding:1px 5px;border-radius:5px;white-space:normal}
/* 围栏代码块：带语言标签的容器（内部 pre 不再单独描边） */
.wc-aichat-msg .wc-md-block{margin:8px 0;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background:rgba(127,127,127,.1)}
.wc-aichat-msg .wc-md-code-head{display:flex;align-items:center;padding:5px 12px;background:rgba(127,127,127,.16);border-bottom:1px solid var(--color-border)}
.wc-aichat-msg .wc-md-code-lang{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted)}
.wc-aichat-msg .wc-md-pre{margin:0;padding:10px 12px;background:none;border:none;border-radius:0;overflow:auto;font-size:12px;line-height:1.55}
.wc-aichat-msg .wc-md-pre code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;background:none;padding:0;font-size:12px}
.wc-aichat-msg .wc-md-h1,.wc-aichat-msg .wc-md-h2,.wc-aichat-msg .wc-md-h3,.wc-aichat-msg .wc-md-h4{margin:10px 0 6px;font-weight:700;line-height:1.35}
.wc-aichat-msg .wc-md-h1{font-size:17px}
.wc-aichat-msg .wc-md-h2{font-size:15.5px}
.wc-aichat-msg .wc-md-h3{font-size:14px}
.wc-aichat-msg .wc-md-h4{font-size:13px}
.wc-aichat-msg .wc-md-quote{margin:8px 0;padding:4px 12px;border-left:3px solid var(--g-blue);background:rgba(162,28,175,.06);color:var(--color-muted);border-radius:0 8px 8px 0}
.wc-aichat-msg .wc-md-ul,.wc-aichat-msg .wc-md-ol{margin:6px 0;padding-left:22px}
.wc-aichat-msg .wc-md-ul{list-style:disc}
.wc-aichat-msg .wc-md-ol{list-style:decimal}
.wc-aichat-msg .wc-md-ul li,.wc-aichat-msg .wc-md-ol li{margin:3px 0}
.wc-aichat-msg .wc-md-hr{border:none;border-top:1px solid var(--color-border);margin:10px 0}
.wc-aichat-msg .wc-md-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:12.5px;line-height:1.5;overflow:auto;display:block}
.wc-aichat-msg .wc-md-table th,.wc-aichat-msg .wc-md-table td{border:1px solid var(--color-border);padding:6px 9px;text-align:left;vertical-align:top}
.wc-aichat-msg .wc-md-table th{background:rgba(162,28,175,.07);font-weight:700;white-space:nowrap}
.wc-aichat-msg .wc-md-table tbody tr:nth-child(even) td{background:rgba(127,127,127,.04)}
/* v6.3：AI 输出中可「替换原文」的特殊块（不同样式标记 + hover 浮出应用按钮） */
.wc-aichat-msg .wc-md-replace{position:relative;margin:10px 0;padding:10px 12px 12px;border:1px dashed rgba(255,107,26,.55);border-radius:10px;background:rgba(255,107,26,.06)}
.wc-aichat-msg .wc-md-replace-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.wc-aichat-msg .wc-md-replace-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--g-orange,#FF6B1A);background:rgba(255,107,26,.12);padding:2px 8px;border-radius:999px}
.wc-aichat-msg .wc-md-replace-body{font-size:13px;line-height:1.6}
.wc-aichat-msg .wc-md-replace-body p{margin:4px 0}
/* hover / 聚焦时浮出「应用到简历」按钮（位于块顶部右上方） */
.wc-aichat-msg .wc-md-replace-btn{position:absolute;top:-12px;right:12px;display:inline-flex;align-items:center;gap:4px;
  font-size:12px;font-weight:600;color:#fff;background:var(--g-orange,#FF6B1A);border:none;border-radius:999px;padding:4px 10px;cursor:pointer;
  box-shadow:0 4px 12px rgba(255,107,26,.35);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .15s,transform .15s}
.wc-aichat-msg .wc-md-replace-btn:hover{background:var(--g-orange-hover,#E85F12)}
.wc-aichat-msg .wc-md-replace:hover .wc-md-replace-btn,
.wc-aichat-msg .wc-md-replace:focus-within .wc-md-replace-btn{opacity:1;transform:translateY(0);pointer-events:auto}
[data-theme="dark"] .wc-aichat-msg .wc-md-replace{border-color:rgba(255,139,77,.55);background:rgba(255,107,26,.1)}
[data-theme="dark"] .wc-aichat-msg .wc-md-replace-badge{color:var(--g-orange,#FF8B4D);background:rgba(255,107,26,.18)}
[data-theme="dark"] .wc-aichat-msg .wc-md-replace-btn{background:var(--g-orange,#FF8B4D)}
[data-theme="dark"] .wc-aichat-msg .wc-md-replace-btn:hover{background:var(--g-orange-hover,#E85F12)}
[data-theme="dark"] .wc-aichat-msg .wc-md-code{background:rgba(255,255,255,.1)}
[data-theme="dark"] .wc-aichat-msg .wc-md-block{background:rgba(255,255,255,.05);border-color:#273344}
[data-theme="dark"] .wc-aichat-msg .wc-md-code-head{background:rgba(255,255,255,.08);border-color:#273344}
[data-theme="dark"] .wc-aichat-msg .wc-md-pre{background:none;border:none}
[data-theme="dark"] .wc-aichat-msg .wc-md-quote{background:rgba(162,28,175,.1);color:#9fb0c4}
[data-theme="dark"] .wc-aichat-msg .wc-md-table th,.wc-aichat-msg .wc-md-table td{border-color:#273344}
[data-theme="dark"] .wc-aichat-msg .wc-md-table th{background:rgba(162,28,175,.18)}
[data-theme="dark"] .wc-aichat-msg .wc-md-table tbody tr:nth-child(even) td{background:rgba(255,255,255,.03)}
[data-theme="dark"] .wc-aichat-attach-row{padding:8px 10px 0}
[data-theme="dark"] .wc-aichat-chip{background:#1b2735;border-color:#2a3a4d;color:#d0d8e4}
[data-theme="dark"] .wc-aichat-chip-ic,[data-theme="dark"] .wc-aichat-chip-size{color:#7d8da0}
[data-theme="dark"] .wc-aichat-chip-cmp{color:#5fd39a;background:rgba(26,138,74,.16)}
[data-theme="dark"] .wc-aichat-chip.is-err{background:rgba(229,72,77,.12);border-color:rgba(229,72,77,.45)}
[data-theme="dark"] .wc-aichat-bubble-chip{background:rgba(255,255,255,.16)}
[data-theme="dark"] .wc-aichat-msg.bot .wc-aichat-bubble-chip{background:#1b2735;color:#d0d8e4}

/* ===== 底部输入区（ChatGPT / WorkBuddy 风格） ===== */
.wc-aichat-input-area{padding:12px 16px 2px;border-top:1px solid var(--color-border);flex-shrink:0}

/* 输入框包裹：圆角容器，所有按钮内置 */
.wc-aichat-input-wrap{border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface,#fff);
  display:flex;flex-direction:column;transition:border-color .18s,box-shadow .18s;overflow:visible}
.wc-aichat-input-wrap:focus-within{border-color:var(--g-blue);box-shadow:0 0 0 3px rgba(162,28,175,.10)}

/* 多行文本框：去边框，填入 wrap */
.wc-aichat-textarea{display:block;width:100%;resize:none;min-height:56px;max-height:160px;padding:13px 14px 2px;
  border:none;border-radius:15px 15px 0 0;font:inherit;font-size:14.5px;line-height:1.55;
  background:transparent;color:var(--color-text);outline:none;box-sizing:border-box}
.wc-aichat-textarea::placeholder{color:var(--color-muted)}
.wc-aichat-textarea::-webkit-scrollbar{width:5px}
.wc-aichat-textarea::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}

/* 底部工具栏（输入框内部） */
.wc-aichat-input-bar{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:4px 8px 8px}
.wc-aichat-bar-left,.wc-aichat-bar-right{display:flex;align-items:center;gap:2px}

/* 工具栏按钮（Skill / 附件） */
.wc-aichat-bar-btn{height:30px;border:none;border-radius:8px;background:none;color:#8a94a3;
  cursor:pointer;display:flex;align-items:center;gap:4px;padding:0 8px;font-size:12.5px;font-weight:500;
  transition:all .15s;flex-shrink:0}
.wc-aichat-bar-btn:hover{background:var(--color-surface-2,#f1f2f4);color:var(--color-heading)}
.wc-aichat-bar-btn[aria-expanded="true"]{background:rgba(162,28,175,.08);color:var(--g-blue)}
.wc-aichat-bar-btn:disabled{opacity:.4;cursor:not-allowed}
.wc-aichat-bar-btn:disabled:hover{background:none;color:#8a94a3}

/* 「滚动到最新」悬浮按钮 */
.wc-aichat-scrollbtn{position:absolute;right:18px;bottom:86px;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--color-border);background:var(--color-surface,#fff);color:var(--color-heading);
  box-shadow:0 4px 14px rgba(0,0,0,.16);cursor:pointer;display:flex;align-items:center;justify-content:center;
  z-index:6;transition:transform .15s,box-shadow .15s}
.wc-aichat-scrollbtn:hover{transform:translateY(1px);box-shadow:0 6px 18px rgba(0,0,0,.22)}
.wc-aichat-scrollbtn[hidden]{display:none}

/* 选区「应用到简历」悬浮工具条 */
.wc-aichat-selbar{position:fixed;z-index:30;display:flex;pointer-events:auto;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.22));animation:wc-selbar-in .14s ease-out}
@keyframes wc-selbar-in{from{opacity:0}to{opacity:1}}
.wc-aichat-selbar[hidden]{display:none}
.wc-aichat-selbar-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border:none;border-radius:999px;
  background:var(--g-blue,#4285F4);color:#fff;font-size:13px;font-weight:600;line-height:1;cursor:pointer;
  white-space:nowrap;transition:background .15s,transform .12s}
.wc-aichat-selbar-btn:hover{background:#3367d6;transform:translateY(-1px)}
.wc-aichat-selbar-btn svg{flex-shrink:0}

/* 模型选择器 */
.wc-aichat-model-selector{position:relative}
.wc-aichat-model-btn{height:30px;border:none;border-radius:8px;background:none;color:#8a94a3;
  cursor:pointer;display:flex;align-items:center;gap:5px;padding:0 8px;font-size:12.5px;font-weight:500;
  transition:all .15s}
.wc-aichat-model-btn:hover{background:var(--color-surface-2,#f1f2f4);color:var(--color-heading)}
.wc-aichat-model-dot{width:7px;height:7px;border-radius:50%;background:#c8ccd0;flex-shrink:0;transition:background .2s}
.wc-aichat-model-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* v6.4：chevron 默认向上（已在 HTML 中改 polyline 坐标为 18 15 12 9 6 15），
   打开时 .is-open 让其旋转 180° 变向下，给用户"展开/折叠"视觉反馈 */
.wc-aichat-model-chevron{flex-shrink:0;color:#8a94a3;transition:transform .18s}
.wc-aichat-model-btn.is-open .wc-aichat-model-chevron{transform:rotate(180deg)}
.wc-aichat-model-btn:hover .wc-aichat-model-chevron{color:var(--color-heading)}

/* 模型浮层（v6.4：position 由 JS 改 fixed 定位，bottom 由 JS 设置为"输入框上方"） */
.wc-aichat-model-pop{width:220px;max-width:calc(100vw - 40px);
  background:var(--color-surface,#fff);border:1px solid var(--color-border);
  border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.16);z-index:30;overflow:hidden;
  animation:wcSkillPop .14s ease}
/* v6.4：模型项统一最小高度（即使 model 名长短不一，整列对齐），文字左对齐，去掉 ✓ 后的视觉留白 */
.wc-aichat-model-item{display:flex;align-items:center;gap:8px;width:100%;
  min-height:38px;padding:8px 12px;
  border:none;border-radius:0;background:none;cursor:pointer;text-align:left;transition:background .12s}
.wc-aichat-model-item:hover{background:var(--color-surface-2,#f1f2f4)}
.wc-aichat-model-item.is-active{background:rgba(162,28,175,.08);color:var(--g-blue,#4285F4)}
.wc-aichat-model-item-name{font-size:13px;font-weight:600;color:var(--color-heading);text-align:left;flex:0 0 auto}
.wc-aichat-model-item-vendor{font-size:11px;color:var(--color-muted);margin-left:auto;text-align:right;flex-shrink:0}
.wc-aichat-model-item-check{display:none}  /* v6.4：active 态只用背景色，不再画 ✓ */
.wc-aichat-model-empty{padding:14px 12px;text-align:center;font-size:12.5px;color:var(--color-muted)}

/* 发送按钮：深色圆形（仅在有文字时高亮） */
.wc-aichat-send{width:32px;height:32px;border:none;border-radius:50%;background:var(--gray-900);color:#fff;
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;z-index:2;
  padding:0;flex-shrink:0;opacity:.45}
.wc-aichat-send:not(:disabled){opacity:1;background:var(--gray-900)}
.wc-aichat-send:not(:disabled):hover{background:#000;transform:scale(1.06)}
.wc-aichat-send:disabled{cursor:not-allowed;opacity:.35}

/* 停止生成按钮（流式时替代发送） */
.wc-aichat-stop{width:32px;height:32px;border:none;border-radius:50%;background:var(--g-red,#e5484d);color:#fff;
  cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.wc-aichat-stop:hover{background:#c93b40;transform:scale(1.06)}

/* 附件预览条（输入框顶部） */
.wc-aichat-attach-row{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0}
.wc-aichat-attach-row[hidden]{display:none}
.wc-aichat-chip{display:inline-flex;align-items:center;gap:5px;max-width:220px;padding:4px 6px 4px 8px;
  border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-2,#f1f2f4);
  font-size:12px;color:var(--color-text);flex-shrink:0}
.wc-aichat-chip-ic{display:inline-flex;color:var(--color-muted);flex-shrink:0}
.wc-aichat-chip-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.wc-aichat-chip-size{color:var(--color-muted);font-size:11px;flex-shrink:0}
.wc-aichat-chip-cmp{color:#1a8a4a;font-size:10px;font-weight:600;background:rgba(26,138,74,.1);border-radius:4px;padding:1px 4px;flex-shrink:0}
.wc-aichat-chip-err{color:var(--g-red,#e5484d);font-size:11px;flex-shrink:0}
.wc-aichat-chip-spin{display:inline-flex;animation:wcSpin 1s linear infinite;color:var(--color-muted)}
.wc-aichat-chip.is-err{border-color:rgba(229,72,77,.4);background:rgba(229,72,77,.06)}
.wc-aichat-chip-x{border:none;background:none;color:var(--color-muted);cursor:pointer;font-size:15px;line-height:1;
  padding:0 2px;margin-left:1px;flex-shrink:0;border-radius:50%}
.wc-aichat-chip-x:hover{color:#fff;background:var(--g-red,#e5484d)}
@keyframes wcSpin{to{transform:rotate(360deg)}}

/* 消息气泡内的附件 chip */
.wc-aichat-bubble-attach{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.wc-aichat-bubble-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;
  font-size:11.5px;font-weight:500;background:rgba(255,255,255,.18);color:#fff;flex-shrink:0}
.wc-aichat-msg.bot .wc-aichat-bubble-chip{background:var(--color-surface-2,#eef0f3);color:var(--color-text)}
/* v6.3：用户气泡中「已附简历数据」上下文标记 */
.wc-aichat-bubble-chip.is-context{background:rgba(255,107,26,.12);color:var(--g-orange,#FF6B1A);font-weight:600}
[data-theme="dark"] .wc-aichat-bubble-chip.is-context{background:rgba(255,107,26,.18);color:var(--g-orange,#FF8B4D)}
.wc-aichat-stop[hidden]{display:none}
/* v4.9.15: 同样需要让 send 在 hidden 时真正隐藏——.wc-aichat-send{display:flex} 优先级高于 UA [hidden]{display:none} */
.wc-aichat-send[hidden]{display:none}

/* 模型浮层底部「配置模型」入口（与列表分割线区分） */
.wc-aichat-model-config{padding:4px;border-top:1px solid var(--color-border);background:var(--color-surface,#fff)}
.wc-aichat-model-config-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;
  padding:8px 10px;border:none;border-radius:8px;background:none;color:var(--color-muted);
  cursor:pointer;font-size:12px;font-weight:500;transition:all .12s}
.wc-aichat-model-config-btn:hover{background:var(--color-surface-2,#f1f2f4);color:var(--color-heading)}
.wc-aichat-model-config-btn svg{flex-shrink:0}
[data-theme="dark"] .wc-aichat-model-config{background:#131920;border-color:#232d3b}
[data-theme="dark"] .wc-aichat-model-config-btn:hover{background:#1e2836;color:#e8ecf1}

/* 免责声明 */
/* v4.9.13: 免责声明离底近一点、不占视觉空间 */
.wc-aichat-disclaimer{text-align:center;font-size:10px;color:var(--color-muted);margin-top:4px;padding-bottom:6px;letter-spacing:.15px;line-height:1.2;opacity:.75}

/* ===== Skill 选择浮层（紧凑小浮层，隐藏滚动条） ===== */
.wc-aichat-skill-selector{position:relative}
.wc-aichat-skill-pop{position:absolute;left:0;bottom:calc(100% + 6px);width:200px;max-width:calc(100vw - 40px);
  max-height:236px;overflow-y:auto;
  background:var(--color-surface,#fff);border:1px solid var(--color-border);
  border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.14);z-index:30;
  animation:wcSkillPop .14s ease;padding:5px;
  scrollbar-width:none;-ms-overflow-style:none}
.wc-aichat-skill-pop::-webkit-scrollbar{display:none}
@keyframes wcSkillPop{from{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:none}}
.wc-aichat-skill-list{display:flex;flex-direction:column;gap:1px}
.wc-aichat-skill-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:none;border-radius:7px;
  background:transparent;cursor:pointer;text-align:left;transition:background .12s}
.wc-aichat-skill-item:hover{background:var(--color-surface-2,#f5f6f7)}
.wc-aichat-skill-ic{flex:0 0 auto;width:24px;height:24px;border-radius:6px;background:var(--color-bg-alt);
  color:var(--g-blue);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wc-aichat-skill-info{display:flex;flex-direction:column;gap:0;min-width:0;overflow:hidden}
.wc-aichat-skill-name{font-size:12px;font-weight:600;color:var(--color-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-aichat-skill-desc{font-size:10.5px;color:var(--color-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-aichat-skill-empty{text-align:center;padding:10px 8px;font-size:11.5px;color:var(--color-muted)}


/* ===== 历史面板（右侧滑出） ===== */
.wc-aichat-history{position:absolute;inset:0;z-index:50;display:flex;justify-content:flex-end}
.wc-aichat-history-mask{position:absolute;inset:0;background:rgba(0,0,0,.25)}
.wc-aichat-history-panel{position:relative;width:300px;max-width:85vw;height:100%;background:var(--color-surface,#fff);
  border-left:1px solid var(--color-border);display:flex;flex-direction:column;z-index:1;animation:wc-slideInRight .2s ease-out}
@keyframes wc-slideInRight{from{transform:translateX(100%)}to{transform:translateX(0)}}
.wc-aichat-history-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border)}
.wc-aichat-history-title{font-size:15px;font-weight:700;color:var(--color-heading)}
.wc-aichat-history-close{width:30px;height:30px;border:none;border-radius:8px;background:none;color:#8a94a3;cursor:pointer;display:flex;align-items:center;justify-content:center}
.wc-aichat-history-close:hover{background:var(--color-surface-2);color:var(--color-heading)}
.wc-aichat-history-new{margin:12px 16px 8px;padding:9px 14px;border:1px dashed var(--color-border);border-radius:10px;
  background:none;color:var(--color-heading);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}
.wc-aichat-history-new:hover{border-color:var(--g-blue);color:var(--g-blue);background:rgba(162,28,175,.04)}
.wc-aichat-history-list{flex:1;overflow-y:auto;padding:4px 8px 12px}
.wc-aichat-history-empty{text-align:center;color:var(--color-muted);padding:32px 16px;font-size:13px}
.wc-aichat-history-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .12s;margin-bottom:2px}
.wc-aichat-history-item:hover{background:var(--color-surface-2)}
.wc-aichat-history-item.active{background:rgba(162,28,175,.06);border:1px solid rgba(162,28,175,.18)}
.wc-aichat-history-item-info{flex:1;min-width:0}
.wc-aichat-history-item-title{display:block;font-size:13px;font-weight:600;color:var(--color-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-aichat-history-item-preview{display:block;font-size:11.5px;color:var(--color-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-aichat-history-item-time{display:block;font-size:11px;color:var(--color-muted);margin-top:2px}
.wc-aichat-history-del{flex:0 0 auto;width:28px;height:28px;border:none;border-radius:6px;background:none;color:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s}
.wc-aichat-history-item:hover .wc-aichat-history-del{color:var(--color-muted)}
.wc-aichat-history-del:hover{background:#fef2f2;color:#dc2626}

/* busy 状态 */
.wc-aichat.is-busy .wc-aichat-send{opacity:.55}

/* ===== 暗色模式适配 ===== */
[data-theme="dark"] .wc-aichat{background:var(--color-surface,#131920)}
/* v6：让 .wc-aichat 抵消 .editor-overlay-body 的 padding-top（20px），
   避免 AI 顶栏下出现一道 20+20=40px 的空白色块。
   AI 顶栏已自带 1px border-bottom 分割线，body 顶端紧贴即可。 */
.editor-overlay .wc-aichat{margin-top:calc(-1 * var(--space-5))}
[data-theme="dark"] .wc-aichat-toolbar{border-color:#232d3b}
[data-theme="dark"] .wc-aichat-title{color:#e8ecf1}
[data-theme="dark"] .wc-aichat-tool:hover{background:#1e2836;color:#e8ecf1}
[data-theme="dark"] .wc-aichat-tool[data-aichat-action="close"]:hover{background:rgba(220,38,38,.15);color:#f87171}
[data-theme="dark"] .wc-ai-tool:hover{background:#1e2836;color:#e8ecf1}
[data-theme="dark"] .wc-ai-tool[data-ai-overlay-action="settings"]:hover{color:var(--g-blue);background:rgba(162,28,175,.15)}
[data-theme="dark"] .wc-aichat-greet{color:#e8ecf1}
[data-theme="dark"] .wc-aichat-card{background:#1a2332;border-color:#273344}
[data-theme="dark"] .wc-aichat-card:hover{border-color:var(--g-blue);box-shadow:0 2px 10px rgba(162,28,175,.15)}
[data-theme="dark"] .wc-aichat-card-icon{background:#222e3f;color:#8a94a3}
[data-theme="dark"] .wc-aichat-card-title{color:#e8ecf1}
[data-theme="dark"] .wc-aichat-msg.bot{background:#1a2332;border-color:#273344;color:#d0d8e4}
[data-theme="dark"] .wc-aichat-input-wrap{background:#1a2332;border-color:#273344}
[data-theme="dark"] .wc-aichat-input-wrap:focus-within{border-color:var(--g-blue);box-shadow:0 0 0 3px rgba(162,28,175,.15)}
[data-theme="dark"] .wc-aichat-textarea{color:#e8ecf1}
[data-theme="dark"] .wc-aichat-input-area{border-color:#232d3b}
[data-theme="dark"] .wc-aichat-bar-btn:hover{background:#1e2836;color:#e8ecf1}
[data-theme="dark"] .wc-aichat-bar-btn[aria-expanded="true"]{background:rgba(162,28,175,.15);color:var(--g-blue)}
[data-theme="dark"] .wc-aichat-bar-btn:disabled:hover{background:none;color:#8a94a3}
[data-theme="dark"] .wc-aichat-scrollbtn{background:#1a2332;border-color:#273344;color:#e8ecf1;box-shadow:0 4px 14px rgba(0,0,0,.4)}
[data-theme="dark"] .wc-aichat-selbar-btn{background:var(--g-blue,#4285F4);color:#fff}
[data-theme="dark"] .wc-aichat-model-btn:hover{background:#1e2836;color:#e8ecf1}
[data-theme="dark"] .wc-aichat-model-pop{background:#131920;border-color:#232d3b;box-shadow:0 8px 28px rgba(0,0,0,.4)}
[data-theme="dark"] .wc-aichat-model-item:hover{background:#1a2332}
[data-theme="dark"] .wc-aichat-model-item.is-active{background:rgba(162,28,175,.1)}
[data-theme="dark"] .wc-aichat-model-item-name{color:#e8ecf1}
[data-theme="dark"] .wc-aichat-send:not(:disabled){background:#e8ecf1;color:#131920}
[data-theme="dark"] .wc-aichat-send:not(:disabled):hover{background:#fff;color:#131920}
[data-theme="dark"] .wc-aichat-skill-pop{background:#131920;border-color:#232d3b;box-shadow:0 8px 28px rgba(0,0,0,.4)}
[data-theme="dark"] .wc-aichat-skill-item:hover{background:#1a2332}
[data-theme="dark"] .wc-aichat-skill-ic{background:#1e2836}
[data-theme="dark"] .wc-aichat-skill-name{color:#e8ecf1}
[data-theme="dark"] .wc-aichat-skill-desc{color:#8a94a3}
[data-theme="dark"] .wc-aichat-history-panel{background:#131920;border-color:#232d3b}
[data-theme="dark"] .wc-aichat-history-head{border-color:#232d3b}
[data-theme="dark"] .wc-aichat-history-new{border-color:#2a3648;color:#c8d1de}
[data-theme="dark"] .wc-aichat-history-new:hover{background:rgba(162,28,175,.08);color:var(--g-blue)}
[data-theme="dark"] .wc-aichat-history-item:hover{background:#1a2332}
[data-theme="dark"] .wc-aichat-history-item.active{background:rgba(162,28,175,.1);border-color:rgba(162,28,175,.25)}
[data-theme="dark"] .wc-aichat-history-item-title{color:#e8ecf1}
[data-theme="dark"] .wc-aichat-history-close:hover{background:#1e2836;color:#e8ecf1}

/* v4.9.11: 删掉此前 .rail-btn-ai 的独立 !important 覆写（dark 块内 5745-5747）。
   让 AI 按钮继承 .rail-btn.active 的通用样式（浅橙半透 + 蓝边 + 橙 icon），
   与编辑/模板/设计/范文 4 个按钮选中态完全一致。 */
