    /* 字体大小适配：尊重用户浏览器设置，但限制最大字体避免布局错乱 */
    html{font-size:clamp(14px, 1vw + 12px, 18px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
    @media (max-width: 768px) { html{font-size:clamp(14px, 3.5vw, 16px)} }
    :root {
      /* ===== 统一色彩系统 ===== */
      --brand-primary: #0d9488;
      --brand-primary-light: #ccfbf1;
      --brand-primary-dark: #0f766e;
      
      --brand-secondary: #14b8a6;
      --brand-secondary-light: #f0fdfa;
      --brand-secondary-dark: #0f766e;
      
      --brand-accent: #f97316;
      --brand-accent-light: #ffedd5;
      --brand-accent-dark: #ea580c;
      
      /* ===== 语义化色彩 ===== */
      --text-primary: #2e2a24;
      --text-secondary: #5e584d;
      --text-muted: #8c8578;
      --text-disabled: #b8b2a8;
      
      --bg-page: #f7f3ec;
      --bg-surface: #ffffff;
      --bg-surface-hover: #faf8f5;
      
      --border-subtle: rgba(60, 45, 20, 0.08);
      --border-default: #eee8dc;
      --border-strong: rgba(60, 45, 20, 0.15);
      
      /* ===== 阴影系统 ===== */
      --shadow-xs: 0 2px 8px rgba(60, 45, 20, 0.04);
      --shadow-sm: 0 4px 12px rgba(60, 45, 20, 0.06);
      --shadow-md: 0 8px 24px rgba(60, 45, 20, 0.08);
      --shadow-lg: 0 16px 40px rgba(60, 45, 20, 0.12);
      --shadow-xl: 0 24px 60px rgba(60, 45, 20, 0.16);
      
      /* ===== 圆角系统 ===== */
      --radius-sm: 12px;
      --radius-md: 16px;
      --radius-lg: 20px;
      --radius-xl: 24px;
      --radius-full: 999px;
      
      /* ===== 间距系统 ===== */
      --space-xs: 4px;
      --space-sm: 8px;
      --space-md: 12px;
      --space-lg: 16px;
      --space-xl: 20px;
      --space-2xl: 24px;
      --space-3xl: 32px;
      
      /* ===== 字体系统 ===== */
      --font-xs: 12px;
      --font-sm: 13px;
      --font-base: 15px;
      --font-lg: 17px;
      --font-xl: 20px;
      --font-2xl: 24px;
      
      --weight-normal: 400;
      --weight-medium: 500;
      --weight-semibold: 600;
      --weight-bold: 700;
      --weight-extrabold: 800;
      
      /* ===== 布局 ===== */
      --phone: 480px;
      --content-max-width: var(--phone);
      
      /* ===== 过渡 ===== */
      --transition-fast: 0.15s ease;
      --transition-base: 0.25s ease;
      --transition-slow: 0.35s ease;
    }
    
    /* ===== 兼容旧变量 ===== */
    --orange: #f97316;
    --orange-deep: #ea580c;
    --orange-soft: #ffedd5;
    --teal: var(--brand-primary);
    --teal-deep: var(--brand-secondary-dark);
    --teal-soft: var(--brand-secondary-light);
    --blue: var(--brand-accent);
    --blue-deep: var(--brand-accent-dark);
    --blue-soft: var(--brand-accent-light);
    --rose: #e96b58;
    --rose-soft: #fce3de;
    --gold: #dda83a;
    --gold-soft: #fdf6e9;
    --ink: var(--text-primary);
    --body: var(--text-secondary);
    --muted: var(--text-muted);
    --line: var(--border-default);
    --bg: var(--bg-page);
    --card: var(--bg-surface);
    --shadow: var(--shadow-md);
    --shadow-soft: var(--shadow-sm);
    --radius: var(--radius-lg);

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      min-height: 100vh;
      font-family: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", Arial, sans-serif;
      color: var(--body);
      background: #e7e2d8;
      -webkit-font-smoothing: antialiased;
    }
    a { color: inherit; text-decoration: none; }
    button, input { font: inherit; }
    button { cursor: pointer; }

    .shell {
      width: min(100%, var(--phone));
      min-height: 100vh;
      margin: 0 auto;
      position: relative;
      overflow-x: clip;
      background: var(--bg-page);
      box-shadow: 0 0 0 1px var(--border-subtle), var(--shadow-xl);
    }

    .app {
      display: flex;
      flex-direction: column;
      gap: var(--space-lg);
      padding: var(--space-lg) var(--space-md) calc(100px + env(safe-area-inset-bottom, 0));
    }

    .topline {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--space-md);
      margin-bottom: 0;
      position: relative;
      padding-right: 108px;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      min-width: 0;
      flex: 1 1 auto;
      overflow: hidden;
    }

    .brand > span {
      min-width: 0;
      overflow: hidden;
    }

    .brand img {
      width: 50px;
      height: 50px;
      border-radius: var(--radius-md);
      object-fit: contain;
      background: var(--bg-surface);
      box-shadow: var(--shadow-sm);
      flex: 0 0 auto;
    }

    h1 {
      margin: 0;
      color: var(--text-primary);
      font-size: var(--font-xl);
      line-height: 1.15;
      font-weight: var(--weight-bold);
      white-space: nowrap;
      letter-spacing: -0.02em;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brand-sub {
      margin-top: var(--space-xs);
      color: var(--text-muted);
      font-size: var(--font-sm);
      font-weight: var(--weight-medium);
      white-space: nowrap;
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .profile {
      min-width: 64px;
      height: 42px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-xs);
      padding: var(--space-xs) var(--space-sm) var(--space-xs) var(--space-xs);
      border-radius: var(--radius-full);
      background: var(--brand-primary-light);
      box-shadow: var(--shadow-sm);
      color: var(--brand-primary-dark);
      flex: 0 0 auto;
    }

    .profile-face {
      width: 34px;
      height: 34px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: linear-gradient(135deg, #fff, #f5cf9a);
      font-size: 20px;
    }
    .profile i { width: 15px; height: 15px; stroke-width: 2.6; }

    .header-auth {
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      justify-content: flex-end;
      gap: 5px;
      position: absolute;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
    }

    .header-auth-btn {
      min-width: 46px;
      height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 9px;
      border-radius: 999px;
      border: 1px solid rgba(196,116,10,.18);
      background: rgba(255,255,255,.9);
      color: var(--orange-deep);
      box-shadow: var(--shadow-soft);
      font-size: 14px;
      font-weight: 950;
      line-height: 1;
      white-space: nowrap;
      touch-action: manipulation;
    }

    .header-auth-register {
      border-color: rgba(196,116,10,.28);
      background: linear-gradient(135deg, #f3a51d, #c97807);
      color: #fff;
      box-shadow: 0 9px 18px rgba(196,116,10,.22);
    }

    /* 会员标签：登录后右上角「会员」按钮金色高亮（auth.js 加 auth-member） */
    .header-auth-btn.auth-member {
      border-color: rgba(196,116,10,.35);
      background: linear-gradient(135deg, #f5b32e, #d48a0a);
      color: #fff;
      box-shadow: 0 9px 18px rgba(196,116,10,.28);
    }

    .header-auth-btn:active {
      transform: translateY(1px);
    }

    /* ===== 今日工作台样式（参考首页美化稿 hero 布局）===== */
    .welcome-hero {
      margin: 0 0 12px;
      border-radius: var(--radius-lg);
      padding: 16px 16px 14px;
      background: linear-gradient(150deg, #fdefce, #fbe1ac 60%, #f6d69e);
      position: relative;
      overflow: hidden;
    }

    .welcome-hero::after {
      content: "";
      position: absolute;
      right: -34px;
      bottom: -46px;
      width: 140px;
      height: 140px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.28);
      pointer-events: none;
    }

    .hero-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      position: relative;
      z-index: 1;
      margin-bottom: 12px;
    }

    .welcome-greeting {
      margin: 0;
      font-size: 18px;
      font-weight: var(--weight-bold);
      color: var(--text-primary);
      line-height: 1.3;
    }

    .welcome-greeting .wave {
      display: inline-block;
      animation: wave-anim 2.5s ease-in-out infinite;
      transform-origin: 70% 70%;
    }

    @keyframes wave-anim {
      0%, 60%, 100% { transform: rotate(0deg); }
      10%, 30% { transform: rotate(14deg); }
      20% { transform: rotate(-8deg); }
      40% { transform: rotate(10deg); }
      50% { transform: rotate(-4deg); }
    }

    .hero-stat-badge {
      flex-shrink: 0;
      display: grid;
      gap: 3px;
      width: min(390px, 55%);
      max-width: min(390px, 55%);
      background: rgba(255, 255, 255, 0.85);
      font-size: 11px;
      font-weight: var(--weight-bold);
      color: var(--brand-primary-dark);
      padding: 8px 12px;
      border-radius: 16px;
      margin-top: 2px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.08);
      border: 1px solid rgba(255,255,255,0.5);
    }

    .hero-stat-badge svg {
      width: 15px;
      height: 15px;
      flex-shrink: 0;
    }

    .hero-stat-badge strong {
      color: var(--brand-primary-dark);
      font-weight: var(--weight-bold);
    }

    .hero-stat-main,
    .hero-stat-detail,
    .hero-stat-detail > span {
      display: inline-flex;
      min-width: 0;
      align-items: baseline;
      gap: 2px;
      white-space: nowrap;
    }

    .hero-stat-main {
      color: #9d5700;
      font-size: 12px;
      line-height: 1.25;
    }

    .hero-stat-main strong {
      font-size: 16px;
      font-weight: 950;
    }

    .hero-stat-detail {
      color: #8a6530;
      font-size: 10px;
      line-height: 1.25;
    }

    .hero-stat-popular {
      overflow: hidden;
    }

    .hero-stat-popular strong {
      display: block;
      min-width: 0;
      overflow: hidden;
      color: #704512;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .hero-stat-badge .hero-stat-divider {
      width: 1px;
      height: 11px;
      margin: 0 2px;
      background: rgba(196, 116, 10, 0.24);
      align-self: center;
    }

    .resume-row {
      position: relative;
      z-index: 1;
      display: flex;
      align-items: center;
      gap: 10px;
      background: rgba(255, 255, 255, 0.72);
      border-radius: var(--radius-md);
      padding: 10px 10px 10px 12px;
      margin-bottom: 10px;
      text-decoration: none;
      cursor: pointer;
      transition: all var(--transition-base);
    }

    .resume-row:hover {
      background: rgba(255, 255, 255, 0.88);
      transform: translateY(-1px);
    }

    .resume-row:active {
      transform: translateY(0);
    }

    .resume-icon {
      flex-shrink: 0;
      width: 34px;
      height: 34px;
      border-radius: 11px;
      background: var(--brand-primary-dark);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .resume-icon i {
      width: 15px;
      height: 15px;
    }

    .resume-text {
      flex: 1;
      min-width: 0;
    }

    .resume-title {
      display: block;
      font-size: 13px;
      font-weight: var(--weight-bold);
      color: var(--text-primary);
    }

    .resume-sub {
      display: block;
      font-size: 10.5px;
      color: var(--text-secondary);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      margin-top: 1px;
    }

    .resume-arrow {
      flex-shrink: 0;
      width: 26px;
      height: 26px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.9);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--brand-primary-dark);
    }

    .resume-arrow i {
      width: 14px;
      height: 14px;
    }

    .quicklinks {
      position: relative;
      z-index: 1;
      display: flex;
      gap: 8px;
    }

    .qlink {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      background: rgba(255, 255, 255, 0.42);
      border: none;
      border-radius: var(--radius-full);
      padding: 7px 4px;
      font-size: 11px;
      color: #7a5c22;
      font-weight: var(--weight-semibold);
      white-space: nowrap;
      cursor: pointer;
      text-decoration: none;
      transition: all var(--transition-base);
    }

    .qlink:hover {
      background: rgba(255, 255, 255, 0.65);
      color: var(--brand-primary-dark);
    }

    .qlink:active {
      transform: translateY(1px);
    }

    .qlink i {
      width: 13px;
      height: 13px;
      flex-shrink: 0;
    }

    @media (max-width: 600px) {
      .welcome-hero {
        padding: 12px 12px 10px;
      }
      .welcome-greeting {
        font-size: 16px;
      }
      .hero-stat-badge {
        max-width: 205px;
        font-size: 10px;
        padding: 6px 9px;
        border-radius: 14px;
      }
      .hero-stat-main {
        font-size: 10px;
      }
      .hero-stat-main strong {
        font-size: 14px;
      }
      .hero-stat-detail {
        font-size: 9px;
      }
      .resume-row {
        padding: 8px 8px 8px 10px;
        gap: 8px;
      }
      .resume-icon {
        width: 30px;
        height: 30px;
      }
      .resume-title {
        font-size: 12px;
      }
      .resume-sub {
        font-size: 10px;
      }
      .qlink {
        font-size: 10px;
        padding: 6px 4px;
      }
	    }

	    @keyframes btn-wiggle {
      0%, 85%, 100% { transform: rotate(0deg); }
      88% { transform: rotate(2.5deg); }
      91% { transform: rotate(-2.5deg); }
      94% { transform: rotate(1.5deg); }
      97% { transform: rotate(-1deg); }
    }

    .hero-contact-btn { animation: btn-wiggle 4s ease-in-out infinite; }
    .hero-contact-btn.tool-group { animation-delay: 0.45s; }
    .hero-contact-btn.manual { animation-delay: 0.9s; }
    .hero-contact-btn.downloads { animation-delay: 1.35s; }
    .hero-contact-btn.paused { animation: none !important; }

    @media (prefers-reduced-motion: reduce) {
      .hero-contact-btn { animation: none !important; }
    }

    .hero-contact-btn i {
      width: 15px;
      height: 15px;
      stroke-width: 2.7;
    }

    .daily-modal {
      position: fixed;
      inset: 0;
      z-index: 40;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 22px;
      background: rgba(18,23,34,.28);
      backdrop-filter: blur(10px);
    }

    .daily-modal.show {
      display: flex;
    }

    .daily-card {
      width: min(100%, 360px);
      max-height: 90vh;
      overflow: auto;
      position: relative;
      padding: 22px;
      border-radius: 24px;
      border: 1px solid rgba(255,153,15,.28);
      background:
        radial-gradient(circle at right bottom, rgba(255,179,31,.25), transparent 35%),
        linear-gradient(135deg, #fffdf8, #fff4df);
      box-shadow: 0 26px 60px rgba(18,23,34,.22);
    }

    .daily-card h3 {
      margin: 0 0 10px;
      color: var(--ink);
      font-size: 22px;
      line-height: 1.2;
      font-weight: 950;
    }

    .daily-card p {
      margin: 0;
      color: #586274;
      font-size: 15px;
      line-height: 1.75;
      font-weight: 750;
    }

    .daily-tip {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 16px;
      padding: 10px 12px;
      border-radius: 14px;
      background: rgba(255,255,255,.78);
      color: #9c5d0a;
      font-size: 13px;
      font-weight: 900;
    }

    .daily-tip i { width: 17px; height: 17px; }

    .daily-close {
      position: absolute;
      right: 14px;
      top: 14px;
      width: 34px;
      height: 34px;
      display: grid;
      place-items: center;
      border: 0;
      border-radius: 50%;
      background: rgba(255,255,255,.86);
      color: #7a8392;
    }

    .daily-close i { width: 18px; height: 18px; }

    /* ===== 核心工具入口 ===== */
.entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
  margin: 0;
  scroll-margin-top: 60px;
}

    /* ===== 统一卡片基础样式 ===== */
    .entry-card,
    .skill-upgrade-link,
    .case-card,
    .download-card,
    .member-card,
    .section-card {
      border-radius: var(--radius-lg);
      background: var(--bg-surface);
      border: 1px solid var(--border-subtle);
      box-shadow: var(--shadow-sm);
      transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
    }
    
    .entry-card:hover,
    .skill-upgrade-link:hover,
    .case-card:hover,
    .download-card:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
      border-color: var(--border-default);
    }

    .entry-card {
      min-height: 106px;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: var(--space-md);
      background: var(--bg-surface);
      -webkit-tap-highlight-color: transparent;
    }
    .entry-card:active { transform: scale(0.97); }

    .entry-card::after {
      display: none;
    }
    .entry-new-badge {
      position: absolute;
      top: 12px;
      right: 12px;
      z-index: 2;
      display: inline-flex;
      align-items: center;
      min-height: 20px;
      padding: 0 7px;
      border-radius: var(--radius-full);
      background: linear-gradient(135deg, #ff7a45, #e9502d);
      color: #fff;
      box-shadow: 0 4px 10px rgba(217, 67, 36, .22);
      font-size: 9px;
      font-weight: 900;
      letter-spacing: .08em;
      line-height: 1;
      pointer-events: none;
    }

        .entry-icon {
      position: relative;
      z-index: 1;
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      margin-bottom: var(--space-md);
      border-radius: var(--radius-md);
      color: #fff;
      background: linear-gradient(135deg, var(--entry), var(--entry-deep));
      box-shadow: var(--shadow-xs);
    }
    .entry-icon i { width: 25px; height: 25px; stroke-width: 2.5; }

    .entry-title {
      position: relative;
      z-index: 1;
      color: var(--text-primary);
      font-size: var(--font-base);
      line-height: 1.2;
      font-weight: var(--weight-bold);
      white-space: nowrap;
    }

    .entry-desc {
      position: relative;
      z-index: 1;
      margin-top: var(--space-xs);
      color: var(--text-muted);
      font-size: var(--font-xs);
      line-height: 1.35;
      font-weight: var(--weight-medium);
    }

    .entry-arrow {
      position: absolute;
      right: 14px;
      bottom: 16px;
      z-index: 1;
      width: 26px;
      height: 26px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: rgba(255,255,255,.72);
      color: var(--entry-deep);
    }
    .entry-arrow i { width: 16px; height: 16px; }

    .entry-card.assess {
      --entry: #dd8a16;
      --entry-deep: #0f766e;
      --entry-soft: #fff4e2;
      --entry-line: rgba(221,138,22,.2);
      --entry-halo: rgba(221,138,22,.11);
      --entry-shadow: rgba(196,116,10,.18);
    }
    .entry-card.hearing,
    .entry-card.speech {
      --entry: #219e88;
      --entry-deep: #0f766e;
      --entry-soft: #f0fdfa;
      --entry-line: rgba(33,158,136,.2);
      --entry-halo: rgba(33,158,136,.12);
      --entry-shadow: rgba(33,158,136,.18);
    }
    .entry-card.social-3d {
      --entry: #6b65d8;
      --entry-deep: #4d47b7;
      --entry-soft: #f1efff;
      --entry-line: rgba(107,101,216,.2);
      --entry-halo: rgba(107,101,216,.12);
      --entry-shadow: rgba(77,71,183,.18);
    }
    .entry-card.social-3d .entry-title {
      max-width: calc(100% - 34px);
      white-space: normal;
    }
    .entry-card.project-map {
      --entry: #219e88;
      --entry-deep: #4482c9;
      --entry-soft: #eaf7f7;
      --entry-line: rgba(47,139,166,.22);
      --entry-halo: rgba(47,139,166,.12);
      --entry-shadow: rgba(47,110,164,.18);
      grid-column: span 2;
      display: grid;
      grid-template-columns: 48px minmax(0, 1fr) auto 30px;
      align-items: center;
      justify-content: initial;
      gap: 12px;
      min-height: 126px;
      padding: 17px 16px;
      border-color: rgba(31, 133, 128, .20);
      background:
        linear-gradient(120deg, rgba(237, 249, 244, .98), rgba(237, 244, 252, .98)),
        var(--bg-surface);
      box-shadow: 0 12px 30px rgba(41, 101, 111, .09);
    }
    .entry-card.project-map::after {
      content: "";
      position: absolute;
      inset: 0 auto 0 0;
      width: 5px;
      display: block;
      background: linear-gradient(180deg, #1e9a80, #4482c9);
    }
    .entry-card.project-map .entry-icon {
      width: 48px;
      height: 48px;
      margin: 0;
      border-radius: 15px;
      box-shadow: 0 9px 22px rgba(42, 117, 139, .18);
    }
    .project-map-copy {
      position: relative;
      z-index: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }
    .project-map-kicker {
      margin-bottom: 5px;
      color: #25746f;
      font-size: 10px;
      line-height: 1.2;
      font-weight: 900;
      letter-spacing: .08em;
    }
    .entry-card.project-map .entry-title {
      max-width: none;
      font-size: 18px;
      white-space: nowrap;
    }
    .entry-card.project-map .entry-desc {
      max-width: none;
      margin-top: 6px;
      color: #62727d;
      font-size: 11px;
      line-height: 1.4;
    }
    .project-map-index {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      color: #2f687f;
      line-height: 1;
    }
    .project-map-index strong {
      font-size: 25px;
      letter-spacing: -.05em;
    }
    .project-map-index span {
      margin-top: 4px;
      color: #78909d;
      font-size: 7px;
      font-weight: 900;
      letter-spacing: .10em;
    }
    .entry-card.project-map .entry-arrow {
      position: static;
      width: 30px;
      height: 30px;
      color: #2d7695;
      background: rgba(255, 255, 255, .82);
    }
    .entry-card.project-map .entry-new-badge {
      min-height: 19px;
      padding: 0 6px;
      border: 1px solid #b8d8d1;
      border-radius: 6px;
      color: #176f68;
      background: #eaf5f2;
      box-shadow: none;
      letter-spacing: .06em;
    }
    .entry-card.language {
      --entry: #4482c9;
      --entry-deep: #ea580c;
      --entry-soft: #ffedd5;
      --entry-line: rgba(68,130,201,.2);
      --entry-halo: rgba(68,130,201,.12);
      --entry-shadow: rgba(68,130,201,.18);
    }
    .entry-card.material {
      --entry: var(--brand-accent);
      --entry-deep: var(--brand-accent-dark);
      --entry-soft: var(--brand-accent-light);
      --entry-line: rgba(68,130,201,.2);
      --entry-halo: rgba(68,130,201,.12);
      --entry-shadow: rgba(68,130,201,.18);
    }
    .entry-card.homework {
      --entry: var(--brand-secondary);
      --entry-deep: var(--brand-secondary-dark);
      --entry-soft: var(--brand-secondary-light);
      --entry-line: rgba(33,158,136,.2);
      --entry-halo: rgba(33,158,136,.12);
      --entry-shadow: rgba(33,158,136,.18);
    }
    .entry-card.students {
      --entry: var(--brand-accent);
      --entry-deep: var(--brand-accent-dark);
      --entry-soft: var(--brand-accent-light);
      --entry-line: rgba(68,130,201,.2);
      --entry-halo: rgba(68,130,201,.12);
      --entry-shadow: rgba(68,130,201,.18);
    }

    .search-bar { display: none; }

    /* ===== 今日工作台全站搜索 ===== */
    body.search-modal-open { overflow: hidden; }

    .workbench-search-trigger {
      position: relative;
      z-index: 1;
      width: 100%;
      min-height: 48px;
      display: grid;
      grid-template-columns: 34px minmax(0, 1fr) auto;
      align-items: center;
      gap: 10px;
      margin-bottom: 10px;
      padding: 7px 10px;
      border: 1px solid rgba(196,116,10,.14);
      border-radius: var(--radius-md);
      background: rgba(255,255,255,.78);
      color: var(--text-primary);
      text-align: left;
      box-shadow: var(--shadow-xs);
      transition: background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
    }
    .workbench-search-trigger:hover {
      background: rgba(255,255,255,.94);
      border-color: rgba(196,116,10,.28);
      box-shadow: var(--shadow-sm);
    }
    .workbench-search-trigger:active { transform: translateY(1px); }
    .workbench-search-icon {
      width: 34px;
      height: 34px;
      display: grid;
      place-items: center;
      border-radius: 11px;
      background: var(--brand-primary-light);
      color: var(--brand-primary-dark);
    }
    .workbench-search-icon i { width: 18px; height: 18px; stroke-width: 2.5; }
    .workbench-search-copy { min-width: 0; display: grid; gap: 1px; }
    .workbench-search-copy strong { font-size: 13px; line-height: 1.25; }
    .workbench-search-copy span {
      overflow: hidden;
      color: var(--text-muted);
      font-size: 11px;
      line-height: 1.3;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .workbench-search-trigger kbd,
    .global-search-field kbd,
    .global-search-help kbd {
      border: 1px solid var(--border-default);
      border-bottom-color: var(--border-strong);
      border-radius: 7px;
      background: var(--bg-surface);
      color: var(--text-muted);
      font: 600 11px/1 "PingFang SC", "Microsoft YaHei", sans-serif;
      box-shadow: 0 1px 0 rgba(60,45,20,.08);
    }
    .workbench-search-trigger > kbd { padding: 5px 7px; }

    .global-search-dialog {
      position: fixed;
      inset: 0;
      z-index: 10020;
      display: grid;
      place-items: start center;
      overflow-y: auto;
      padding: max(7vh, 28px) 18px 28px;
      background: rgba(34,31,27,.46);
      backdrop-filter: blur(8px);
    }
    .global-search-dialog[hidden] { display: none; }
    .global-search-panel {
      width: min(100%, 600px);
      overflow: hidden;
      border: 1px solid rgba(255,255,255,.7);
      border-radius: 26px;
      background: var(--bg-surface);
      box-shadow: 0 28px 80px rgba(35,30,22,.28);
      animation: global-search-enter .18s ease-out;
    }
    @keyframes global-search-enter {
      from { opacity: 0; transform: translateY(-8px) scale(.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }
    .global-search-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
      padding: 22px 22px 14px;
    }
    .global-search-eyebrow {
      margin: 0 0 3px;
      color: var(--brand-primary-dark);
      font-size: 11px;
      font-weight: var(--weight-bold);
      letter-spacing: .08em;
    }
    .global-search-head h2 {
      margin: 0;
      color: var(--text-primary);
      font-size: 21px;
      line-height: 1.25;
    }
    .global-search-close {
      width: 36px;
      height: 36px;
      display: grid;
      flex: 0 0 auto;
      place-items: center;
      border: 0;
      border-radius: 50%;
      background: var(--bg-page);
      color: var(--text-muted);
    }
    .global-search-close:hover { background: var(--brand-primary-light); color: var(--brand-primary-dark); }
    .global-search-close i { width: 18px; height: 18px; }
    .global-search-field {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 10px;
      margin: 0 22px;
      padding: 0 12px;
      border: 1.5px solid var(--border-default);
      border-radius: 16px;
      background: var(--bg-page);
      transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
    }
    .global-search-field:focus-within {
      border-color: var(--brand-primary);
      background: var(--bg-surface);
      box-shadow: 0 0 0 3px rgba(221,138,22,.12);
    }
    .global-search-field > i { width: 20px; height: 20px; color: var(--brand-primary-dark); }
    .global-search-field input {
      min-width: 0;
      min-height: 50px;
      padding: 0;
      border: 0;
      outline: 0;
      background: transparent;
      color: var(--text-primary);
      font-size: 16px;
    }
    .global-search-field input::placeholder { color: var(--text-disabled); }
    .global-search-field > kbd { padding: 5px 7px; }
    .global-search-status {
      margin: 15px 22px 7px;
      color: var(--text-muted);
      font-size: 12px;
      font-weight: var(--weight-semibold);
    }
    .global-search-results {
      display: grid;
      gap: 4px;
      max-height: min(54vh, 480px);
      overflow-y: auto;
      padding: 0 12px 12px;
    }
    .global-search-results[data-empty="true"]::after {
      content: "可尝试输入“评估”“构音”或“备课”";
      padding: 28px 12px 34px;
      color: var(--text-muted);
      font-size: 13px;
      text-align: center;
    }
    .global-search-result {
      display: grid;
      grid-template-columns: 42px minmax(0, 1fr) auto;
      align-items: center;
      gap: 12px;
      padding: 10px;
      border: 1px solid transparent;
      border-radius: 15px;
      color: inherit;
      transition: background var(--transition-fast), border-color var(--transition-fast);
    }
    .global-search-result:hover,
    .global-search-result:focus-visible {
      border-color: var(--border-default);
      background: var(--bg-surface-hover);
      color: inherit;
      outline: none;
    }
    .global-search-result-icon {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border-radius: 13px;
      background: var(--brand-primary-light);
      color: var(--brand-primary-dark);
    }
    .global-search-result-icon i { width: 21px; height: 21px; }
    .global-search-result-copy { min-width: 0; display: grid; gap: 3px; }
    .global-search-result-copy strong {
      overflow: hidden;
      color: var(--text-primary);
      font-size: 14px;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .global-search-result-copy span {
      overflow: hidden;
      color: var(--text-muted);
      font-size: 11px;
      line-height: 1.35;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .global-search-result-arrow { width: 17px; height: 17px; color: var(--text-muted); }
    .global-search-help {
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 10px 22px 14px;
      border-top: 1px solid var(--border-subtle);
      color: var(--text-muted);
      font-size: 11px;
    }
    .global-search-help span { display: inline-flex; align-items: center; gap: 4px; }
    .global-search-help kbd { padding: 4px 5px; }

    @media (max-width: 600px) {
      .global-search-dialog { padding: 16px 10px; }
      .global-search-panel { border-radius: 22px; }
      .global-search-head { padding: 18px 16px 12px; }
      .global-search-field { margin: 0 16px; }
      .global-search-status { margin-left: 16px; margin-right: 16px; }
      .global-search-results { max-height: 55vh; padding-left: 7px; padding-right: 7px; }
      .global-search-help { display: none; }
    }

    @media (prefers-reduced-motion: reduce) {
      .global-search-panel { animation: none; }
    }

    /* ===== 案例分析卡片 ===== */
    .case-section { margin-bottom: 0; padding: var(--space-lg); border-radius: var(--radius-lg); background: var(--bg-surface); content-visibility: auto; contain-intrinsic-size: 500px; }
    .case-section .section-title::before { background: var(--brand-secondary); }
    .case-grid { display: flex; flex-direction: column; gap: var(--space-md); }
    .case-card {
      border: 1.5px solid var(--border-default);
      border-radius: var(--radius-md);
      overflow: hidden;
      background: var(--bg-surface-hover);
    }
    .case-card:hover { border-color: var(--brand-secondary); }
    .case-card-header {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      padding: var(--space-md);
      cursor: pointer;
      user-select: none;
    }
    .case-icon {
      width: 40px; height: 40px;
      border-radius: var(--radius-md);
      display: flex; align-items: center; justify-content: center;
      font-size: var(--font-lg);
      flex-shrink: 0;
    }
    .case-icon.teal { background: rgba(33,158,136,.1); }
    .case-icon.orange { background: rgba(221,138,22,.1); }
    .case-icon.purple,
    .case-icon.blue { background: rgba(68,130,201,.1); }
    .case-title { flex: 1; min-width: 0; }
    .case-title h4 { font-size: var(--font-base); font-weight: var(--weight-semibold); color: var(--text-primary); margin: 0; }
    .case-title p { font-size: var(--font-xs); color: var(--text-muted); margin: var(--space-xs) 0 0; }
    .case-arrow {
      width: 28px; height: 28px;
      display: flex; align-items: center; justify-content: center;
      color: var(--text-muted);
      transition: transform var(--transition-base);
      flex-shrink: 0;
    }
    .case-card.open .case-arrow { transform: rotate(180deg); }
    .case-body {
      max-height: 0;
      overflow: hidden;
      transition: max-height var(--transition-slow) ease;
    }
    .case-card.open .case-body { max-height: 600px; }
    .case-steps {
      padding: 0 var(--space-md) var(--space-md);
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
    }
    .case-step {
      display: flex;
      gap: var(--space-sm);
      align-items: flex-start;
      padding: var(--space-md);
      background: var(--bg-surface);
      border-radius: var(--radius-md);
      border: 1px solid var(--border-subtle);
    }
    .case-step-num {
      width: 24px; height: 24px;
      border-radius: var(--radius-full);
      display: flex; align-items: center; justify-content: center;
      font-size: var(--font-xs); font-weight: var(--weight-bold);
      color: #fff;
      flex-shrink: 0;
      margin-top: var(--space-xs);
    }
    .case-step-num.s1 { background: var(--brand-secondary); }
    .case-step-num.s2 { background: var(--brand-primary); }
    .case-step-num.s3,
    .case-step-num.s4 { background: var(--brand-accent); }
    .case-step-content { flex: 1; min-width: 0; }
    .case-step-content h5 { font-size: var(--font-sm); font-weight: var(--weight-semibold); color: var(--text-primary); margin: 0; }
    .case-step-content p { font-size: var(--font-xs); color: var(--text-muted); margin: var(--space-xs) 0 0; line-height: 1.5; }
    .case-step-link {
      display: inline-flex;
      align-items: center;
      gap: var(--space-xs);
      font-size: var(--font-xs);
      font-weight: var(--weight-semibold);
      color: var(--brand-secondary);
      text-decoration: none;
      margin-top: var(--space-xs);
    }
    .case-step-link:hover { text-decoration: underline; }

    .section-card {
      margin-bottom: 0;
      padding: var(--space-lg);
      border-radius: var(--radius-lg);
      background: var(--bg-surface);
    }

    #downloads, #caseAnalysis { content-visibility: auto; contain-intrinsic-size: 400px; }

    .section-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--space-md);
      margin-bottom: var(--space-md);
    }

    .section-title {
      display: flex;
      align-items: center;
      gap: var(--space-sm);
      color: var(--text-primary);
      font-size: var(--font-lg);
      line-height: 1.2;
      font-weight: var(--weight-bold);
    }

    .section-title::before {
      content: "";
      width: 4px;
      height: 20px;
      border-radius: var(--radius-full);
      background: var(--brand-primary);
    }

    .skill-upgrade {
      background: linear-gradient(135deg, #fffdf8 0%, #f5fbf8 100%);
      border: 1px solid rgba(33,158,136,.12);
    }

    .skill-upgrade .section-title::before {
      background: var(--brand-secondary);
    }

    .skill-upgrade-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-sm);
    }

    .skill-upgrade-link {
      min-height: 56px;
      display: grid;
      grid-template-columns: 38px minmax(0, 1fr) auto;
      align-items: center;
      gap: var(--space-sm);
      padding: var(--space-md);
      color: var(--text-primary);
      text-decoration: none;
    }
    .skill-upgrade-link:active { transform: scale(0.98); }

    .skill-upgrade-icon {
      width: 38px;
      height: 38px;
      display: grid;
      place-items: center;
      border-radius: var(--radius-md);
      background: var(--skill-soft);
      color: var(--skill);
    }
    .skill-upgrade-icon i {
      width: 20px;
      height: 20px;
      stroke-width: 2.5;
    }

    .skill-upgrade-name {
      display: block;
      color: var(--text-primary);
      font-size: var(--font-base);
      font-weight: var(--weight-bold);
      line-height: 1.2;
    }

    .skill-upgrade-desc {
      display: block;
      margin-top: var(--space-xs);
      color: var(--text-muted);
      font-size: var(--font-xs);
      font-weight: var(--weight-medium);
      line-height: 1.3;
    }

    .skill-upgrade-arrow {
      width: 22px;
      height: 22px;
      color: var(--skill);
    }

    .skill-upgrade-link.course {
      --skill: #d98213;
      --skill-soft: #fff3df;
    }
    .skill-upgrade-link.supervision {
      --skill: #219e88;
      --skill-soft: #e8f7f2;
    }
    .skill-upgrade-link.case {
      --skill: #4f79a8;
      --skill-soft: #ffedd5;
    }

    .manage-link,
    .more-link {
      min-height: 32px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-xs);
      padding: 0 var(--space-md);
      border-radius: var(--radius-full);
      background: var(--brand-primary-light);
      color: var(--brand-primary-dark);
      font-size: var(--font-xs);
      font-weight: var(--weight-bold);
      white-space: nowrap;
    }
    .manage-link i,
    .more-link i { width: 15px; height: 15px; }

    /* ===== 最近常用 - 参考稿 chip 卡片横向滚动布局 ===== */
    .common-tools {
      display: flex;
      gap: 10px;
      overflow-x: auto;
      padding: 0 0 4px;
      margin: 0 -16px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    .common-tools::-webkit-scrollbar { display: none; }

    .tool-shortcut {
      flex: 0 0 auto;
      width: 106px;
      background: var(--bg-surface);
      border-radius: 16px;
      padding: 12px 11px;
      box-shadow: 0 8px 22px rgba(60,45,20,.08);
      text-decoration: none;
      transition: transform var(--transition-fast), box-shadow var(--transition-fast);
      -webkit-tap-highlight-color: transparent;
    }
    .tool-shortcut:active { transform: scale(0.96); }

    .tool-bubble {
      width: 30px;
      height: 30px;
      border-radius: 9px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 9px;
      color: #fff;
    }
    .tool-bubble i { width: 14px; height: 14px; stroke-width: 2; }

    .tool-shortcut span:last-child {
      display: block;
      font-size: 11px;
      font-weight: var(--weight-semibold);
      color: var(--text-primary);
      line-height: 1.35;
    }

    /* chip 配色 - 参考稿：sage(绿)、terracotta(橙红)、denim(蓝)、olive(橄榄) */
    .tool-shortcut:nth-child(1) .tool-bubble { background: #4f8567; }
    .tool-shortcut:nth-child(2) .tool-bubble { background: #c1654a; }
    .tool-shortcut:nth-child(3) .tool-bubble { background: #45719a; }
    .tool-shortcut:nth-child(4) .tool-bubble { background: #8b7a2e; }
    .tool-shortcut:nth-child(5) .tool-bubble { background: #4f8567; }
    .tool-shortcut:nth-child(6) .tool-bubble { background: #c1654a; }
    .tool-shortcut:nth-child(7) .tool-bubble { background: #45719a; }
    .download-limit-note {
      display: block;
      width: 100%;
      color: var(--text-muted);
      font-size: var(--font-xs);
      font-weight: var(--weight-semibold);
      line-height: 1.35;
      text-align: center;
      white-space: normal;
    }

    .download-total-count {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      width: 100%;
      justify-content: center;
      color: var(--brand-secondary);
      font-size: var(--font-xs);
      font-weight: var(--weight-bold);
      line-height: 1.35;
      margin-top: 2px;
    }

    .download-total-count i {
      width: 14px;
      height: 14px;
    }

    .download-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      align-items: start;
      justify-content: stretch;
      justify-items: stretch;
      gap: var(--space-sm);
    }

    .download-title-row {
      min-width: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-sm);
      flex-wrap: wrap;
    }

    .download-action-row {
      width: 100%;
      display: flex;
      justify-content: center;
    }

    .group-join-btn {
      min-height: 38px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-xs);
      padding: 0 var(--space-md);
      border: 1px solid rgba(196,110,0,.30);
      border-radius: var(--radius-full);
      background: linear-gradient(135deg, #ffb12f, #fff1c8 52%, #ff9812);
      color: #5a2c00;
      font-size: var(--font-sm);
      font-weight: var(--weight-bold);
      white-space: nowrap;
      cursor: pointer;
      box-shadow: 0 10px 24px rgba(244,151,22,.25), inset 0 0 0 1px rgba(255,255,255,.42);
      animation: groupJoinWiggle 2.6s ease-in-out infinite;
      transition: transform var(--transition-fast);
    }
    .group-join-btn:active { transform: scale(0.97); }
    .group-join-btn i { width: 18px; height: 18px; stroke-width: 2.6; }
    .group-join-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(244,151,22,.30); }

    @keyframes groupJoinWiggle {
      0%, 72%, 100% { transform: translateX(0) rotate(0deg); }
      76% { transform: translateX(-2px) rotate(-1.5deg); }
      80% { transform: translateX(2px) rotate(1.5deg); }
      84% { transform: translateX(-1px) rotate(-.8deg); }
      88% { transform: translateX(1px) rotate(.8deg); }
    }

    @media (prefers-reduced-motion: reduce) {
      .group-join-btn { animation: none; }
    }

    .group-modal[hidden] {
      display: none !important;
    }

    .group-modal {
      position: fixed;
      inset: 0;
      z-index: 1400;
      display: grid;
      place-items: center;
      padding: 22px;
      background: rgba(19,26,38,.52);
      opacity: 0;
      visibility: hidden;
      transition: opacity .22s ease, visibility .22s ease;
    }

    .group-modal.show {
      opacity: 1;
      visibility: visible;
    }

    .group-card {
      width: min(92vw, 390px);
      max-height: calc(100vh - 44px);
      overflow: auto;
      position: relative;
      padding: 18px;
      border-radius: 24px;
      background: #fff;
      box-shadow: 0 28px 80px rgba(18,23,34,.26);
      text-align: center;
    }

    .group-card h3 {
      margin: 8px 42px 6px;
      color: var(--ink);
      font-size: 20px;
      line-height: 1.25;
      font-weight: 950;
    }

    .group-card p {
      margin: 0 0 14px;
      color: #7b8492;
      font-size: 13px;
      line-height: 1.5;
      font-weight: 800;
    }

    .group-qr {
      width: 100%;
      display: block;
      border-radius: 18px;
      border: 1px solid #edf0f5;
      background: #fff;
    }

    .group-close {
      position: absolute;
      right: 14px;
      top: 14px;
      width: 34px;
      height: 34px;
      display: grid;
      place-items: center;
      border: 0;
      border-radius: 50%;
      background: #f4f6f9;
      color: #7a8392;
      cursor: pointer;
    }
    .group-close i { width: 18px; height: 18px; }

    .download-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-md);
    }

    .download-card {
      min-width: 0;
      display: grid;
      grid-template-columns: 44px minmax(0, 1fr);
      gap: var(--space-md);
      padding: var(--space-md);
      background: #fffdf9;
    }

    .download-icon {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      border-radius: var(--radius-md);
      background: var(--brand-secondary-light);
      color: var(--brand-secondary);
    }
    .download-icon i { width: 23px; height: 23px; stroke-width: 2.4; }

    .download-info {
      min-width: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 4px 10px;
    }

    .download-title {
      color: var(--text-primary);
      grid-column: 1;
      font-size: var(--font-base);
      line-height: 1.3;
      font-weight: var(--weight-bold);
      word-break: break-all;
      overflow-wrap: anywhere;
    }

    .download-desc {
      grid-column: 1;
      min-height: 0;
      color: var(--text-muted);
      font-size: var(--font-xs);
      line-height: 1.3;
      font-weight: var(--weight-medium);
      display: -webkit-box;
      -webkit-line-clamp: 2;
      line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .download-meta {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: var(--space-xs);
      grid-column: 1;
      color: var(--text-disabled);
      font-size: var(--font-xs);
      font-weight: var(--weight-semibold);
      min-width: 0;
    }
    .download-meta span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .download-meta .download-count {
      flex: 0 0 auto;
      color: var(--brand-secondary-dark);
      font-variant-numeric: tabular-nums;
    }

    .download-action {
      min-height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-xs);
      grid-column: 2;
      grid-row: 1 / span 3;
      min-width: 72px;
      width: auto;
      border: 0;
      border-radius: var(--radius-full);
      background: var(--brand-primary-light);
      color: var(--brand-primary-dark);
      font-size: 13px;
      font-weight: var(--weight-bold);
      cursor: pointer;
      transition: transform var(--transition-fast);
    }
    .download-action:active { transform: scale(0.97); }
    .download-action i { width: 15px; height: 15px; }
    .download-action:disabled { cursor: wait; opacity: .72; }
    .download-action.downloaded {
      background: #e3f2e6 !important;
      color: #2a7a3a !important;
      cursor: default;
      opacity: .85;
    }
    .download-action.downloaded i { color: #2a7a3a; }

    .manual-download {
      border-color: rgba(63,111,182,.22);
      background: linear-gradient(135deg, #fffdf9 0%, #f5f9ff 100%);
    }

    .manual-download .download-icon {
      background: #eef4ff;
      color: #3f6fb6;
    }

    .download-manual-actions {
      grid-column: 2;
      grid-row: 1 / span 3;
      min-width: 78px;
      display: grid;
      gap: 7px;
      align-content: center;
    }

    .download-manual-link {
      min-height: 36px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      padding: 0 12px;
      border-radius: 999px;
      background: #eaf2ff;
      color: #245a9b;
      font-size: 12px;
      font-weight: 950;
      text-decoration: none;
      white-space: nowrap;
    }

    .download-manual-link.pdf {
      background: #fff1dc;
      color: var(--orange-deep);
    }

    .download-manual-link i { width: 14px; height: 14px; }

    .download-empty {
      grid-column: 1 / -1;
      min-height: 72px;
      display: grid;
      place-items: center;
      border-radius: 16px;
      border: 1px dashed #ddd3c4;
      color: var(--muted);
      font-size: 13px;
      font-weight: 850;
      text-align: center;
      background: #fffdf9;
    }

    .download-more-card {
      min-height: 46px;
      display: grid;
      place-items: center;
      border-radius: 18px;
      border: 1px dashed rgba(221,138,22,.26);
      background: #fff8ec;
    }

    .download-more-btn {
      min-height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 0 16px;
      border: 0;
      border-radius: 999px;
      background: #fff;
      color: var(--orange-deep);
      font-size: 13px;
      font-weight: 950;
      box-shadow: 0 7px 16px rgba(221,138,22,.12);
    }
    .download-more-btn i { width: 16px; height: 16px; stroke-width: 2.5; }

    /* ===== 康复师会员卡片（参考稿 member-card 样式）===== */
    .member-card {
      position: relative;
      overflow: hidden;
      border-radius: 22px;
      padding: 17px;
      background: linear-gradient(135deg, #fdf0d2, #fce2ae);
      box-shadow: var(--shadow-sm);
    }

    .member-card::before {
      content: "";
      position: absolute;
      right: -24px;
      top: -24px;
      width: 110px;
      height: 110px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.4);
      pointer-events: none;
    }

    .member-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 9px;
      position: relative;
      z-index: 1;
      gap: 10px;
    }

    .member-title {
      display: flex;
      align-items: center;
      gap: 7px;
      font-size: 14.5px;
      font-weight: var(--weight-bold);
      color: var(--brand-primary-dark);
      white-space: nowrap;
    }
    .member-title i {
      width: 17px;
      height: 17px;
      flex-shrink: 0;
    }

    .pro {
      background: var(--text-primary);
      color: #fff;
      font-size: 10px;
      font-weight: var(--weight-bold);
      padding: 2px 7px;
      border-radius: 6px;
    }

    .member-cta {
      background: var(--brand-primary-dark);
      color: #fff;
      font-size: 12px;
      font-weight: var(--weight-bold);
      padding: 8px 15px;
      border-radius: var(--radius-full);
      white-space: nowrap;
      flex-shrink: 0;
      text-decoration: none;
      transition: all var(--transition-fast);
    }
    .member-cta:hover {
      background: var(--brand-primary);
      transform: translateY(-1px);
    }
    .member-cta:active { transform: translateY(0); }

    .member-desc {
      font-size: 11.5px;
      color: #7a5c22;
      margin-bottom: 14px;
      position: relative;
      z-index: 1;
      line-height: 1.4;
    }

    .member-benefits {
      display: flex;
      justify-content: space-between;
      position: relative;
      z-index: 1;
      gap: 8px;
    }

    .benefit {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      flex: 1;
      min-width: 0;
    }

    .benefit i {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.55);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--brand-primary-dark);
      padding: 0;
    }

    .benefit span {
      font-size: 9.5px;
      color: #7a5c22;
      font-weight: var(--weight-semibold);
      text-align: center;
      white-space: nowrap;
    }

    .snail {
      display: none;
      font-size: 28px;
      font-weight: 950;
    }

    .snail::before {
      content: "";
      position: absolute;
      left: 10px;
      top: 21px;
      width: 26px;
      height: 22px;
      border-radius: 50% 50% 42% 42%;
      background: #fff8dc;
    }

    .snail::after {
      content: "小";
      position: relative;
      z-index: 1;
      font-size: 13px;
      color: #e08a00;
    }

    .bottom-nav {
      position: fixed;
      left: 50%;
      bottom: 0;
      transform: translateX(-50%);
      z-index: 20;
      width: min(100%, var(--phone));
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      padding: var(--space-sm) var(--space-xs) calc(var(--space-sm) + env(safe-area-inset-bottom, 0));
      border-top: 1px solid var(--border-default);
      border-radius: var(--radius-xl) var(--radius-xl) 0 0;
      background: rgba(255,255,255,.97);
      backdrop-filter: blur(18px);
      box-shadow: var(--shadow-lg);
    }

    .nav-item {
      display: grid;
      justify-items: center;
      gap: var(--space-xs);
      color: var(--text-muted);
      font-size: var(--font-xs);
      line-height: 1;
      font-weight: var(--weight-semibold);
      transition: color .2s, transform .2s;
    }
    .nav-item.active { color: var(--brand-primary-dark); }
    .nav-item i { width: 25px; height: 25px; stroke-width: 2.2; transition: transform .2s; }
    .nav-item:active i { transform: scale(1.2); }

    /* 5个导航项各自的颜色 */
    .nav-item[href="index.html"], .nav-item[href="index.html"].active { color: #e8590c; }
    .nav-item[href="index.html"].active i { color: #e8590c; }
    .nav-item[href*="rehab-workstation"] { color: #1971c2; }
    .nav-item[href*="rehab-workstation"].active { color: #1971c2; }
    .nav-item[href*="rehab-workstation"]:active i { transform: scale(1.25) rotate(-5deg); }
    .nav-item[href*="成长营"] { color: #2f9e44; }
    .nav-item[href*="成长营"].active { color: #2f9e44; }
    /* 成长营动效 */
    .nav-item[href*="成长营"] i {
      animation: campBounce 2.5s ease-in-out infinite;
    }
    .nav-item[href*="成长营"]:hover i {
      animation: campWiggle .6s ease-in-out;
    }
    .nav-item[href*="成长营"]:active i { transform: scale(1.3); }
    @keyframes campBounce {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-3px); }
    }
    @keyframes campWiggle {
      0%, 100% { transform: rotate(0); }
      25% { transform: rotate(-8deg) scale(1.1); }
      75% { transform: rotate(8deg) scale(1.1); }
    }
    .nav-item[href*="parent.html"] { color: #9c36b5; }
    .nav-item[href*="parent.html"].active { color: #9c36b5; }
    .nav-item[href*="parent.html"]:active i { transform: scale(1.2); }
    .nav-item[href*="会员中心"] { color: #e8590c; }
    .nav-item[href*="会员中心"].active { color: #e8590c; }
    .nav-item[href*="会员中心"]:active i { transform: scale(1.2); }

    .hidden-results {
      display: none;
      margin-bottom: 16px;
    }

    .hidden-results.show {
      display: block;
    }

    .result-list {
      display: grid;
      gap: 8px;
    }

    .result-item {
      min-height: 52px;
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px;
      border-radius: 14px;
      border: 1px solid var(--line);
      background: #fff;
    }

    .result-icon {
      width: 34px;
      height: 34px;
      display: grid;
      place-items: center;
      border-radius: 11px;
      background: var(--orange-soft);
      color: var(--orange);
      flex: 0 0 auto;
    }
    .result-icon i { width: 18px; height: 18px; }

    .result-title {
      display: block;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.2;
      font-weight: 900;
    }
    .result-meta {
      display: block;
      margin-top: 2px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 700;
    }

/* ===== 公告条 ===== */
.announcement-bar {
max-width: 760px;
margin: 0 auto 12px;
background: linear-gradient(90deg, #dbeafe, #fef3c7);
border-radius: 16px;
padding: 0 16px;
height: 44px;
display: flex;
align-items: center;
gap: 10px;
overflow: hidden;
font-size: 15px;
font-weight: 600;
color: #78350f;
border: 1.5px solid rgba(217, 119, 6, 0.3);
box-shadow: 0 2px 8px rgba(217, 119, 6, 0.12);
cursor: pointer;
transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.announcement-bar:hover {
box-shadow: 0 4px 14px rgba(217, 119, 6, 0.2);
transform: translateY(-1px);
}
.announcement-icon {
flex-shrink: 0;
font-size: 18px;
}
.announcement-scroll {
flex: 1;
overflow: hidden;
white-space: nowrap;
position: relative;
mask-image: linear-gradient(90deg,transparent 0,#000 20px,#000 90%,transparent 100%);
-webkit-mask-image: linear-gradient(90deg,transparent 0,#000 20px,#000 90%,transparent 100%);
}
.announcement-text {
display: inline-block;
white-space: nowrap;
padding-right: 50px;
animation: announcement-scroll 10s linear infinite;
}
.announcement-bar:hover .announcement-text {
animation-play-state: paused;
}
@keyframes announcement-scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.announcement-action {
flex-shrink: 0;
color: #9a6509;
font-weight: 700;
font-size: 14px;
}

.inspiration { order: 1; }
.announcement-bar { order: 3; }
#searchResults { order: 5; }
.entry-grid { order: 6; }
#commonTools { order: 7; }
#skillUpgrade { order: 8; }
#caseAnalysis { order: 9; }
#downloads { order: 10; }
.member-card { order: 11; }

@media (max-width: 979px) {
.announcement-bar { margin: 4px 12px 8px; border-radius: 12px; height: 38px; font-size: 13px; padding: 0 12px; }
}

@media (max-width: 979px) {
.inspiration { order: 1; }
.announcement-bar { order: 3; }
#searchResults { order: 5; }
.entry-grid { order: 6; }
#commonTools { order: 7; }
#skillUpgrade { order: 8; }
#caseAnalysis { order: 9; }
#downloads { order: 10; }
.member-card { order: 11; }
}

    @media (min-width: 760px) and (max-width: 979px) {
      :root { --phone: 720px; }
      body { padding: 24px 0; }
      .shell {
        min-height: calc(100vh - 48px);
        border-radius: 32px;
      }
      .entry-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
      .bottom-nav {
        border-radius: 24px 24px 32px 32px;
      }
    }

    @media (min-width: 980px) {
      :root { --phone: 1120px; }
      body { padding: 28px 24px 40px; }
      .shell {
        min-height: calc(100vh - 68px);
        border-radius: 28px;
      }
      .app { gap: 22px; padding: 28px 40px 48px; }
      .topline { margin-bottom: 22px; }
      .brand img { width: 58px; height: 58px; }
      h1 { font-size: 31px; }
      .brand-sub { font-size: 16px; }
      .profile { min-width: 92px; height: 54px; }
      .profile-face { width: 44px; height: 44px; }
      .header-auth { gap: 8px; }
      .header-auth-btn { min-width: 72px; height: 46px; padding: 0 18px; font-size: 16px; }
      .inspiration { min-height: 240px; padding: 36px 42px; border-radius: 30px; }
      .greeting { font-size: 40px; }
      .greeting-note { font-size: 20px; }
      .hero-contact-actions { right: 34px; bottom: 28px; gap: 12px; }
      .hero-contact-btn { min-width: 104px; min-height: 46px; padding: 0 18px; gap: 8px; font-size: 16px; }
      .hero-contact-btn i { width: 20px; height: 20px; }
      .entry-grid { gap: 24px; margin: 10px 0 4px; }
      .entry-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
      .entry-card { min-height: 156px; padding: 22px; border-radius: 24px; }
      .entry-icon { width: 58px; height: 58px; margin-bottom: 14px; }
      .entry-icon i { width: 32px; height: 32px; }
      .entry-title { font-size: 20px; }
      .entry-desc { font-size: 14px; }
      .entry-arrow { right: 20px; bottom: 22px; width: 36px; height: 36px; }
      .entry-card.assess,
      .entry-card.speech {
        grid-column: span 3;
      }
      .entry-card.material,
      .entry-card.students {
        grid-column: span 4;
      }
      .entry-card.project-map {
        grid-column: span 6;
        grid-template-columns: 60px minmax(0, 1fr) auto 38px;
        gap: 18px;
        min-height: 156px;
        padding: 24px 22px;
      }
      .entry-card.project-map .entry-icon {
        width: 60px;
        height: 60px;
        border-radius: 19px;
      }
      .project-map-kicker { font-size: 12px; }
      .entry-card.project-map .entry-title { font-size: 24px; }
      .entry-card.project-map .entry-desc { font-size: 13px; }
      .project-map-index strong { font-size: 38px; }
      .project-map-index span { font-size: 8px; }
      .entry-card.project-map .entry-arrow {
        width: 38px;
        height: 38px;
      }
      .section-card { padding: 28px; border-radius: 28px; margin-bottom: 22px; }
      .section-title { font-size: 26px; }
      .skill-upgrade-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
      .skill-upgrade-link { min-height: 86px; grid-template-columns: 46px minmax(0, 1fr) auto; padding: 16px; border-radius: 22px; }
      .skill-upgrade-icon { width: 46px; height: 46px; border-radius: 16px; }
      .skill-upgrade-icon i { width: 25px; height: 25px; }
      .skill-upgrade-name { font-size: 17px; }
      .skill-upgrade-desc { font-size: 12px; }
      #aiAssistant { width: 100%; max-width: none; }
      .common-tools { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
      .tool-bubble { width: 68px; height: 68px; border-radius: 24px; }
      .tool-bubble i { width: 36px; height: 36px; }
      .tool-shortcut { font-size: 16px; }
      .download-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
      .download-card { grid-template-columns: 58px minmax(0, 1fr); gap: 14px; padding: 17px; border-radius: 22px; }
      .download-icon { width: 58px; height: 58px; border-radius: 20px; }
      .download-icon i { width: 31px; height: 31px; }
      .download-title { font-size: 18px; }
      .download-desc { min-height: 42px; font-size: 14px; }
      .download-meta { font-size: 12px; }
      .download-action { min-height: 42px; font-size: 15px; }

      /* Desktop download summary: keep community, limits, and total centered as one group. */
      #downloads .download-head {
        justify-items: center;
        text-align: center;
      }
      #downloads .download-title-row {
        width: 100%;
        justify-content: center;
      }
      #downloads .section-title {
        justify-content: center;
      }
      #downloads .download-action-row {
        width: 100%;
        place-self: center stretch;
        justify-content: center;
      }

      #downloads .download-limit-note {
        text-align: center;
      }
      #downloads .download-total-count {
        justify-content: center;
        text-align: center;
        white-space: nowrap;
      }
      .member-card { min-height: 174px; padding: 26px 30px; border-radius: 28px; }
      .member-title { font-size: 28px; }
      .member-desc { font-size: 17px; }
      .member-cta { min-height: 54px; padding: 0 36px; font-size: 20px; }
      .member-benefits { padding-right: 150px; }
      .benefit { font-size: 14px; }
      .benefit i { width: 31px; height: 31px; }
      .snail { width: 128px; height: 92px; right: 36px; bottom: 15px; }
      .nav-item { font-size: 17px; gap: 7px; }
      .nav-item i { width: 33px; height: 33px; }

      /* 桌面端优化：底部导航移到顶部，作为 fixed 导航栏 */
      .bottom-nav {
        display: grid;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: auto;
        transform: none;
        z-index: 30;
        order: 0;
        width: 100%;
        max-width: none;
        min-width: 0;
        padding: var(--space-xs) var(--space-md);
        border-radius: 0;
        border-top: none;
        border-bottom: 1px solid var(--border-default);
        box-shadow: 0 2px 12px rgba(45,42,38,.06);
        background: rgba(255,255,255,.96);
        backdrop-filter: blur(20px);
        margin: 0;
      }
      .bottom-nav .nav-item { font-size: 14px; }
      .bottom-nav .nav-item i { width: 22px; height: 22px; }
      .app { padding-bottom: calc(48px + env(safe-area-inset-bottom, 0)); }
      .announcement-bar { max-width: 100%; }
      .case-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
      .case-section { padding: 28px; border-radius: 28px; }
      .toast-container { bottom: 32px; }
    }

    @media (max-width: 390px) {
      .app { padding-left: 14px; padding-right: 14px; }
      .topline { gap: 8px; padding-right: 96px; }
      .brand { gap: 8px; }
      .brand img { width: 42px; height: 42px; border-radius: 14px; }
      h1 { font-size: 21px; }
      .brand-sub { font-size: 12px; }
      .header-auth { gap: 4px; }
      .header-auth-btn { min-width: 42px; height: 38px; padding: 0 7px; font-size: 12px; }
            .inspiration { min-height: 92px; padding: 10px 14px; }
      .greeting { font-size: 24px; margin-bottom: 2px; }
      .greeting-note { font-size: 12px; line-height: 1.4; }
      .hero-contact-actions { right: 52px; bottom: 12px; gap: 6px; }
      .inspiration-content { width: 52%; }
      .hero-contact-btn { width: 58px; min-height: 40px; padding: 0 6px; gap: 4px; font-size: 11px; }
      .hero-contact-btn.manual { width: 62px; }
      .manual-label-full { display: none; }
      .manual-label-short { display: inline; }
      .hero-contact-btn i { width: 13px; height: 13px; }
      .entry-grid { gap: 9px; }
      .entry-card { padding: 11px; }
      .entry-title { font-size: 15px; }
      .entry-desc { font-size: 12px; }
      .common-tools { gap: 13px 6px; }
      .tool-bubble { width: 46px; height: 46px; }
      .tool-shortcut { font-size: 12px; }
      .download-list { grid-template-columns: 1fr; }
      .download-card { grid-template-columns: 40px minmax(0, 1fr); }
      .download-icon { width: 40px; height: 40px; }
      .download-info { grid-template-columns: minmax(0, 1fr); }
      .download-manual-actions {
        grid-column: 1;
        grid-row: auto;
        display: flex;
        flex-wrap: wrap;
        margin-top: 4px;
      }
      .download-limit-note { font-size: 12px; }
      .group-join-btn { min-height: 36px; padding: 0 14px; font-size: 12.5px; }
      .group-card { padding: 16px; border-radius: 22px; }
      .group-card h3 { font-size: 18px; }
    }

    @media (max-width: 360px) {
      .app { padding-left: 10px; padding-right: 10px; }
      .topline { gap: 6px; padding-right: 86px; }
      .brand { gap: 7px; }
      .brand img { width: 36px; height: 36px; border-radius: 11px; }
      h1 { font-size: 17px; }
      .brand-sub { display: none; }
      .header-auth { gap: 3px; }
      .header-auth-btn { min-width: 40px; height: 34px; padding: 0 6px; font-size: 11px; }
      .entry-card.project-map {
        grid-template-columns: 44px minmax(0, 1fr) 28px;
        gap: 10px;
        padding: 15px 13px;
      }
      .entry-card.project-map .entry-icon {
        width: 44px;
        height: 44px;
      }
      .project-map-index { display: none; }
      .entry-card.project-map .entry-title { font-size: 17px; }
      .workbench-search-trigger { grid-template-columns: 32px minmax(0, 1fr); padding: 7px 8px; }
      .workbench-search-trigger > kbd { display: none; }
      .workbench-search-copy span { max-width: 190px; }
    }

    /* ===== Toast 通知 ===== */
    .toast-container {
      position: fixed;
      left: 50%;
      bottom: calc(80px + env(safe-area-inset-bottom, 0));
      transform: translateX(-50%);
      z-index: 2000;
      display: flex;
      flex-direction: column;
      gap: 8px;
      align-items: center;
      pointer-events: none;
      width: min(92%, 420px);
    }
    .toast-item {
      width: 100%;
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 12px 18px;
      border-radius: 16px;
      background: rgba(35, 35, 35, .96);
      color: #fff;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.4;
      box-shadow: 0 12px 36px rgba(0,0,0,.22);
      backdrop-filter: blur(10px);
      opacity: 0;
      transform: translateY(12px);
      transition: opacity .28s ease, transform .28s ease;
    }
    .toast-item.show { opacity: 1; transform: translateY(0); }
    .toast-item.success { background: rgba(22, 101, 52, .96); }
    .toast-item.error { background: rgba(185, 28, 28, .96); }
    .toast-item.warn { background: rgba(180, 83, 9, .96); }
    .toast-item i { width: 20px; height: 20px; flex: 0 0 auto; }
    .toast-item span { flex: 1; min-width: 0; }

    /* ===== 骨架屏 ===== */
    .skeleton-card {
      display: grid;
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 11px;
      padding: 12px;
      border-radius: 18px;
      border: 1px solid var(--line);
      background: #fffdf9;
    }
    .skeleton-icon {
      width: 44px; height: 44px;
      border-radius: 15px;
      background: linear-gradient(90deg, #f0ebe0 25%, #e8e2d4 50%, #f0ebe0 75%);
      background-size: 200% 100%;
      animation: skeleton-shimmer 1.4s ease-in-out infinite;
    }
    .skeleton-lines { display: flex; flex-direction: column; gap: 6px; padding-top: 4px; }
    .skeleton-line {
      height: 13px;
      border-radius: 7px;
      background: linear-gradient(90deg, #f0ebe0 25%, #e8e2d4 50%, #f0ebe0 75%);
      background-size: 200% 100%;
      animation: skeleton-shimmer 1.4s ease-in-out infinite;
    }
    .skeleton-line.w70 { width: 70%; }
    .skeleton-line.w40 { width: 40%; }
    @keyframes skeleton-shimmer {
      0% { background-position: 200% 0; }
      100% { background-position: -200% 0; }
    }

    /* ===== 返回顶部按钮 ===== */
    .back-to-top {
      position: fixed;
      right: 18px;
      bottom: calc(82px + env(safe-area-inset-bottom, 0));
      z-index: 18;
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      border: 0;
      border-radius: var(--radius-full);
      background: rgba(255,255,255,.95);
      color: var(--brand-primary-dark);
      box-shadow: var(--shadow-md);
      backdrop-filter: blur(10px);
      opacity: 0;
      visibility: hidden;
      transform: translateY(8px);
      transition: opacity var(--transition-base), transform var(--transition-base), visibility var(--transition-base);
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    .back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
    .back-to-top:active { transform: scale(0.92); }
    .back-to-top i { width: 22px; height: 22px; stroke-width: 2.6; }

    @media (max-width: 768px) {
            #aiAssistant .ai-compose textarea {
        font-size: 16px;
      }
    }

    /* ===== AI搜索次数限制样式 ===== */
    .ai-search-counter {
        margin: 12px 0;
        padding: 12px 16px;
        background: linear-gradient(135deg, var(--bg-surface) 0%, var(--brand-primary-light) 100%);
        border: 1px solid var(--border-default);
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-sm);
    }
    
    .ai-search-limit-text {
        display: flex;
        align-items: center;
        gap: 8px;
        font-weight: 600;
        font-size: 13px;
        color: var(--text-secondary);
    }
    
    .ai-search-icon {
        width: 16px;
        height: 16px;
        color: var(--brand-primary);
    }
    
    .ai-search-low {
        background: linear-gradient(135deg, #fff5f5 0%, #ffe6e6 100%);
        border-color: #fed7d7;
        color: #c53030;
        animation: aiSearchPulse 2s ease-in-out infinite;
    }
    
    .ai-search-low .ai-search-icon {
        color: #c53030;
    }
    
    @keyframes aiSearchPulse {
        0%, 100% { box-shadow: 0 2px 4px rgba(197, 48, 48, 0.1); }
        50% { box-shadow: 0 2px 12px rgba(197, 48, 48, 0.2); }
    }
    
    /* ===== AI消息复制按钮 ===== */
    .ai-message {
        position: relative;
        transition: all 0.2s ease;
    }
    
    #aiAssistant .ai-message-assistant {
        background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
        border-radius: var(--radius-md);
        border: 1px solid var(--border-default);
        padding: 16px 50px 16px 16px;
        margin: 8px 0;
        box-shadow: var(--shadow-sm);
    }
    
    .ai-copy-btn {
        position: absolute;
        top: 12px;
        right: 12px;
        background: rgba(255,255,255,0.9);
        border: 1px solid var(--border-default);
        border-radius: var(--radius-sm);
        color: var(--text-secondary);
        cursor: pointer;
        padding: 6px;
        width: 32px;
        height: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        transition: all 0.2s ease;
        backdrop-filter: blur(4px);
    }
    
    .ai-message:hover .ai-copy-btn {
        opacity: 0.7;
    }
    
    .ai-copy-btn:hover {
        opacity: 1 !important;
        background: #ffffff;
        border-color: var(--brand-primary);
        color: var(--brand-primary);
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(221, 138, 22, 0.2);
    }
    
    .ai-copy-btn.copied {
        opacity: 1 !important;
        background: #d4edda;
        border-color: #28a745;
        color: #28a745;
    }
    
    /* 会员升级提示 */
    .ai-upgrade-hint {
        margin: 12px 0;
        padding: 12px 16px;
        background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
        border: 1px solid #ffeeba;
        border-radius: var(--radius-md);
        color: #856404;
        font-size: 13px;
        text-align: center;
    }
    
    .ai-upgrade-link {
        color: var(--brand-primary);
        text-decoration: none;
        font-weight: 700;
        margin-left: 8px;
    }
    
    .ai-upgrade-link:hover {
        text-decoration: underline;
    }
    
    /* 移动端适配 */
    @media (max-width: 600px) {
        .ai-search-counter {
            margin: 10px 0;
            padding: 10px 14px;
            font-size: 12px;
        }
        
        .ai-search-limit-text {
            font-size: 12px;
            gap: 6px;
        }
        
        .ai-copy-btn {
            top: 8px;
            right: 8px;
            width: 28px;
            height: 28px;
            padding: 4px;
        }
        
        #aiAssistant .ai-message-assistant {
            padding: 14px 46px 14px 14px;
        }
    }

    @media (min-width: 980px) {
      .back-to-top { right: 32px; bottom: 100px; width: 50px; height: 50px; }
      .back-to-top i { width: 26px; height: 26px; }
    }

    /* ===== 统一交互反馈 ===== */
    a:hover { color: var(--brand-primary); }
    .tool-shortcut:hover .tool-bubble { transform: scale(1.08); }
    .member-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-xl); }
    
    /* ===== 焦点状态（无障碍） ===== */
    button:focus-visible,
    a:focus-visible {
      outline: 2px solid var(--brand-primary);
      outline-offset: 2px;
    }
    
    /* ===== 选择文本样式 ===== */
    ::selection {
      background: var(--brand-primary-light);
      color: var(--brand-primary-dark);
    }
    
    /* ===== 滚动条样式 ===== */
    ::-webkit-scrollbar {
      width: 6px;
      height: 6px;
    }
    ::-webkit-scrollbar-track {
      background: var(--bg-page);
    }
    ::-webkit-scrollbar-thumb {
      background: var(--border-strong);
      border-radius: var(--radius-full);
    }
    ::-webkit-scrollbar-thumb:hover {
      background: var(--text-muted);
    }

    /* ===== 首页 AI 助手模块 ===== */
    .ai-kicker { display:block; color: #b48a59; font-size: 9px; letter-spacing: .16em; font-weight: 800; }
	    #aiAssistant { order: 9; border: 1px solid #ede6d8; }
	    #aiAssistant .ai-solution-total-count { display:inline-flex; align-items:center; gap:3px; color:#8a7554; font-size:10px; white-space:nowrap; }
	    #aiAssistant .ai-solution-total-count svg { width:13px; height:13px; color:#b8860b; }
	    #aiAssistant .ai-solution-total-count strong { color:#9b6f16; font-size:12px; }
	    #aiAssistant .ai-question-count { display:inline-flex; align-items:baseline; gap:3px; color:#806a46; white-space:nowrap; }
	    #aiAssistant .ai-question-count strong { color:#9b6f16; font-size:12px; }
	    #aiAssistant .ai-service-summary { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 8px; padding:6px 10px; border-radius:8px; background:#f8f5ef; color:#756b5e; font-size:10px; }
    #aiAssistant .ai-service-summary > span { display:inline-flex; align-items:center; gap:5px; }
    #aiAssistant .ai-service-summary svg { width:14px; height:14px; color:#b8860b; }
    #aiAssistant .ai-service-summary strong { color:#8a6417; font-size:13px; }
	    #aiAssistant .ai-topic-row { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 0 8px; overflow-x: auto; scrollbar-width: none; }
	    @media (max-width: 600px) { #aiAssistant .ai-topic-row { flex-wrap: nowrap; } }
    #aiAssistant .ai-topic-row::-webkit-scrollbar { display: none; }
    #aiAssistant .ai-topic-row button { display:inline-flex; align-items:center; gap:4px; min-height: 44px; white-space: nowrap; padding: 7px 12px; border: 1px solid #e8e0d2; border-radius: 999px; background: #faf8f4; color: #5a554d; font: inherit; font-size: 11px; cursor: pointer; transition: all .2s ease; }
    #aiAssistant .ai-topic-row button:hover { border-color: #d4a843; background: #fdf9ef; color: #8a6d2b; }
    #aiAssistant .ai-frequent-panel { display:flex; align-items:center; gap:8px; margin:-2px 0 10px; overflow:hidden; }
    #aiAssistant .ai-frequent-panel[hidden] { display:none; }
    #aiAssistant .ai-frequent-label { display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; color:#8b7b64; font-size:10px; font-weight:700; }
    #aiAssistant .ai-frequent-label svg { width:13px; height:13px; color:#b8860b; }
    #aiAssistant .ai-frequent-list { display:flex; gap:6px; min-width:0; overflow-x:auto; scrollbar-width:none; }
    #aiAssistant .ai-frequent-list::-webkit-scrollbar { display:none; }
    #aiAssistant .ai-frequent-list button { flex:0 0 auto; padding:5px 8px; border:0; border-radius:999px; background:#f3ede2; color:#665a49; font:inherit; font-size:10px; cursor:pointer; }
    #aiAssistant .ai-frequent-list button:hover { background:#eadbbf; color:#805f20; }
	    #aiAssistant .ai-message-list { position:relative; width: 100%; max-height: 360px; min-height: 100px; overflow-y: auto; padding: 2px 0; display: grid; gap: 12px; align-content: start; }
    #aiAssistant .ai-message { position: relative; min-width: 0; max-width: 88%; animation: aiMsgIn .25s ease-out; }
    #aiAssistant .ai-message-assistant { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: start; gap: 10px; width: 100%; max-width: 100%; padding: 0; margin: 4px 0; border: 0; background: transparent; box-shadow: none; }
    #aiAssistant .ai-message-user { display: flex; margin-left: auto; }
    #aiAssistant .ai-message-content { min-width: 0; padding: 11px 14px; border-radius: 14px 14px 14px 4px; background: #f3f0ea; color: #3d3630; font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; word-break: normal; }
    #aiAssistant .ai-message-assistant .ai-message-content { grid-column: 2; width: 100%; background: #fff; border: 1px solid #e9e2d7; box-shadow: 0 5px 18px rgba(79, 62, 38, .06); }
    #aiAssistant .ai-message-user .ai-message-content { border-radius: 14px 14px 4px 14px; background: linear-gradient(135deg,#1d5a62,#174a56); color: #fff; white-space: pre-wrap; }
    #aiAssistant .ai-message-content > :first-child { margin-top: 0; }
    #aiAssistant .ai-message-content > :last-child { margin-bottom: 0; }
    #aiAssistant .ai-message-content p { margin: 0 0 10px; padding: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; line-height: inherit; white-space: normal; }
    #aiAssistant .ai-message-content h2,
    #aiAssistant .ai-message-content h3 { margin: 14px 0 7px; color: #2f514f; font-weight: 800; line-height: 1.4; }
    #aiAssistant .ai-message-content h2 { font-size: 16px; }
    #aiAssistant .ai-message-content h3 { font-size: 15px; }
    #aiAssistant .ai-message-content ul,
    #aiAssistant .ai-message-content ol { margin: 6px 0 12px; padding-left: 1.4em; }
    #aiAssistant .ai-message-content li { margin: 4px 0; padding-left: 2px; }
    #aiAssistant .ai-message-content strong { color: #235e5b; font-weight: 800; }
    #aiAssistant .ai-message-content a { color: #9a6719; text-decoration: underline; text-underline-offset: 2px; }
    #aiAssistant .ai-message-content blockquote { margin: 9px 0; padding: 8px 11px; border-left: 3px solid #d7aa5b; border-radius: 0 8px 8px 0; background: #faf6ed; color: #675c4d; }
    #aiAssistant .ai-message-content code { padding: 2px 5px; border-radius: 5px; background: #eee8de; color: #7b4f18; font: 12px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; }
    #aiAssistant .ai-message-content pre { max-width: 100%; margin: 9px 0; padding: 11px 12px; overflow-x: auto; border-radius: 10px; background: #263433; color: #f7f5ef; white-space: pre; }
    #aiAssistant .ai-message-content pre code { padding: 0; background: transparent; color: inherit; }
    #aiAssistant .ai-message { display: flex; gap: 10px; align-items: flex-start; max-width: 92%; animation: aiMsgIn .25s ease-out; }
    @keyframes aiMsgIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
    #aiAssistant .ai-message-user { margin-left: auto; flex-direction: row-reverse; }
    #aiAssistant .ai-message p { margin: 0; padding: 10px 14px; border-radius: 14px 14px 14px 4px; background: #f3f0ea; color: #3d3630; font-size: 13px; line-height: 1.6; white-space: pre-wrap; }
    #aiAssistant .ai-answer-source { grid-column: 2; display: block; margin: -3px 2px 0; color: #927543; font-size: 10px; line-height: 1.45; }

    #aiAssistant .ai-message-mark { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 9px; background: linear-gradient(135deg,#dca964,#b8860b); color: #fff; margin-top: 2px; box-shadow: 0 2px 6px rgba(184,134,11,.2); }
    #aiAssistant .ai-compose { display: flex; align-items: flex-end; gap: 8px; padding: 8px 8px 8px 14px; border: 1.5px solid #e8e0d2; border-radius: 14px; background: #fcfaf7; margin-top: 10px; transition: border-color .2s ease, box-shadow .2s ease; }
    #aiAssistant .ai-compose:focus-within { border-color: #d4a843; box-shadow: 0 0 0 3px rgba(212,168,67,.12); }
    #aiAssistant .ai-compose textarea { flex: 1; resize: none; border: 0; outline: 0; background: transparent; color: #3d3630; font: inherit; font-size: 16px; line-height: 1.5; max-height: 80px; }
    #aiAssistant .ai-compose textarea::placeholder { color: #b0a69a; }
    #aiAssistant .ai-compose button { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 10px; background: #dca964; color: #fff; cursor: pointer; transition: background .2s ease, transform .15s ease; }
    #aiAssistant .ai-compose button:hover { background: #b8860b; transform: scale(1.05); }
    #aiAssistant .ai-compose button:active { transform: scale(0.93); }
    #aiAssistant .ai-compose button i { width: 16px; stroke-width: 2.6; }
	    #aiAssistant .ai-disclaimer { margin: 8px 0 0; color: #b0a69a; font-size: 10px; line-height: 1.45; text-align: center; }
	    /* 打字动画指示器 */
	    #aiAssistant .ai-typing { display: flex; gap: 4px; padding: 8px 0 4px; }
	    #aiAssistant .ai-typing-dot { width: 7px; height: 7px; border-radius: 50%; background: #d4a843; animation: aiTypingBounce 1.2s infinite ease-in-out; }
	    #aiAssistant .ai-typing-dot:nth-child(2) { animation-delay: .2s; }
	    #aiAssistant .ai-typing-dot:nth-child(3) { animation-delay: .4s; }
	    @keyframes aiTypingBounce { 0%,60%,100% { transform: translateY(0); opacity: .4; } 30% { transform: translateY(-6px); opacity: 1; } }
	    /* 重试按钮 */
	    #aiAssistant .ai-retry-btn { display: inline-flex; align-items: center; gap: 3px; margin-top: 6px; padding: 4px 10px; border: 1px solid #e8d5a0; border-radius: 8px; background: #fef9ee; color: #9a6719; font: inherit; font-size: 11px; cursor: pointer; transition: all .2s; }
	    #aiAssistant .ai-retry-btn:hover { background: #fdf0d0; border-color: #d4a843; }
	    #aiAssistant .ai-retry-btn:active { transform: scale(.96); }
	    /* 滚到底部 */
	    #aiAssistant .ai-scroll-bottom { position: sticky; bottom: 0; left: 50%; transform: translateX(-50%); z-index: 5; display: none; align-items: center; justify-content: center; width: 36px; height: 36px; margin: 0 auto; border: 1px solid #e8e0d2; border-radius: 50%; background: #fff; color: #8a7554; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.08); transition: all .2s; }
	    #aiAssistant .ai-scroll-bottom.show { display: flex; }
	    #aiAssistant .ai-scroll-bottom:hover { background: #f8f5ef; border-color: #d4a843; }
	    #aiAssistant .ai-scroll-bottom svg { width: 16px; height: 16px; }
	    /* 时间戳 */
	    #aiAssistant .ai-message-time { font-size: 10px; color: #b0a69a; margin-top: 3px; text-align: right; }
	    #aiAssistant .ai-message-user .ai-message-time { color: rgba(255,255,255,.55); text-align: left; }
	    /* 新对话按钮 */
	    #aiAssistant .ai-new-chat-btn { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; padding: 3px 10px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #b0a69a; font: inherit; font-size: 11px; cursor: pointer; transition: all .2s; white-space: nowrap; }
	    #aiAssistant .ai-new-chat-btn:hover { border-color: #e8e0d2; background: #faf8f4; color: #8a7554; }
		    #aiAssistant .ai-new-chat-btn svg { width: 14px; height: 14px; }
		    /* 折叠面板 */
		    #aiAssistant .ai-toggle-head { cursor: pointer; user-select: none; }
		    #aiAssistant .ai-toggle-head:hover { background: rgba(0,0,0,.02); border-radius: 12px; }
		    #aiAssistant .ai-toggle-icon { transition: transform .25s; color: #b0a69a; }
		    #aiAssistant .ai-toggle-icon svg { width: 18px; height: 18px; }
		    #aiAssistant.expanded .ai-toggle-icon { transform: rotate(180deg); }
		    #aiAssistant .ai-body { }
    #caseAnalysis { display: none !important; }
    @media (max-width: 600px) {
      #aiAssistant { padding: 16px; border-radius: 20px; background: linear-gradient(145deg,#fffdf9,#f8f2e7); }
      #aiAssistant .section-head { align-items: flex-start; gap: 8px; margin-bottom: 6px; }
      #aiAssistant .section-title { font-size: 18px; line-height: 1.3; }
      #aiAssistant .section-head > span { padding-top: 4px; font-size: 10px !important; white-space: nowrap; }
      #aiAssistant .ai-solution-total-count { padding-top:3px; font-size:10px !important; }
      #aiAssistant .ai-service-summary { align-items:flex-start; flex-direction:column; gap:4px; padding:8px 10px; }
      #aiAssistant .ai-frequent-panel { align-items:flex-start; flex-direction:column; gap:6px; }
      #aiAssistant .ai-frequent-list { width:100%; }
      #aiAssistant > p { font-size: 12px !important; line-height: 1.55; margin-bottom: 10px !important; }
      #aiAssistant .ai-topic-row { gap: 7px; padding: 3px 0 12px; margin-right: -4px; }
      #aiAssistant .ai-topic-row button { min-height: 44px; padding: 7px 11px; font-size: 12px; background: #fff; }
      #aiAssistant .ai-message-list { min-height: 112px; max-height: 360px; gap: 10px; margin: 0 -2px; padding: 2px; }
      #aiAssistant .ai-message { max-width: 92%; }
      #aiAssistant .ai-message-assistant { grid-template-columns: 24px minmax(0, 1fr); gap: 8px; width: 100%; max-width: 100%; }
      #aiAssistant .ai-message-mark { flex-basis: 24px; width: 24px; height: 24px; border-radius: 8px; font-size: 8px; }
      #aiAssistant .ai-message-content { padding: 11px 12px; font-size: 15px; line-height: 1.72; }
      #aiAssistant .ai-message-content h2 { font-size: 16px; }
      #aiAssistant .ai-message-content h3 { font-size: 15px; }
      #aiAssistant .ai-message-content ul,
      #aiAssistant .ai-message-content ol { padding-left: 1.25em; }
      #aiAssistant .ai-answer-source { grid-column: 2; margin: -3px 2px 0; font-size: 10px; }
      #aiAssistant .ai-message-assistant .ai-copy-btn { top: 30px; left: 0; right: auto; opacity: .65; }
      #aiAssistant .ai-compose { min-height: 50px; margin-top: 10px; padding: 7px 7px 7px 12px; border-radius: 13px; }
      #aiAssistant .ai-compose textarea { min-height: 32px; padding: 6px 0; font-size: 16px; }
      #aiAssistant .ai-compose button { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 11px; }
      #aiAssistant .ai-disclaimer { font-size: 9px; text-align: left; }
    }

/* ===== AI 助手窄屏可读性修复 ===== */
#aiAssistant .ai-message-assistant {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  gap: 10px;
  align-items: start;
}
#aiAssistant .ai-message-assistant .ai-message-content {
  width: auto;
  min-width: 0;
  max-width: none;
}
#aiAssistant .ai-message-content {
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: .01em;
  overflow-wrap: break-word;
  word-break: normal;
}
#aiAssistant .ai-message-content p {
  margin: 0 0 12px;
  padding: 0;
  background: transparent;
  font-size: inherit;
  line-height: inherit;
  white-space: normal;
}
#aiAssistant .ai-message-content li {
  line-height: 1.8;
}
@media (max-width: 600px) {
  #aiAssistant .ai-message-assistant {
    grid-template-columns: 24px minmax(0, 1fr);
    width: 100%;
    max-width: 100%;
    gap: 8px;
  }
  #aiAssistant .ai-message-content {
    padding: 13px 14px;
    font-size: 16px;
    line-height: 1.9;
  }
  #aiAssistant .ai-message-content p {
    margin-bottom: 13px;
  }
}
/* desktop-topnav-fix-20260718 */

/* desktop-topnav-fixed-20260718b */

/* pcnav-fix-v2 */
