/* ============================================================
   2026 AI 生态智能报价平台 · 8 页式流程
   定制化线上化全年陪跑方案
   ============================================================ */

   :root {
    --primary: #070707;
    --primary-soft: #1a1a1a;
    --secondary: #c9ff85;
    --secondary-deep: #7ac943;
    --accent: #4a90e2;
    --accent-soft: #eff6ff;
    --warm: #ffb547;
    --warm-soft: #fff7e6;
    --pink: #ff6b9d;
    --pink-soft: #ffe9f1;
    --light-bg: #fafbf9;
    --grey-50: #f8f8f6;
    --grey-100: #f0f1ed;
    --grey-200: #e5e5e0;
    --grey-300: #d0d0cc;
    --grey-500: #8a8a85;
    --grey-700: #4a4a45;
    --shadow-sm: 0 0.104vw 0.416vw rgba(7, 7, 7, 0.04);
    --shadow-md: 0 0.416vw 1.25vw rgba(7, 7, 7, 0.08);
    --shadow-lg: 0 1.041vw 3.125vw rgba(7, 7, 7, 0.12);
    --radius-sm: 0.625vw;
    --radius-md: 0.937vw;
    --radius-lg: 1.25vw;
    --radius-xl: 1.666vw;
  }
  
  * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  
  html,
  body {
    font-family: "Noto Sans SC", "Segoe UI", "PingFang SC", "Microsoft YaHei",
      "Source Han Sans", sans-serif;
    background: linear-gradient(180deg, #f6f7f4 0%, #fafbf9 100%);
    color: var(--primary);
    line-height: 1.65;
    font-size: 0.833vw;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  
  /* ============== 顶部导航 ============== */
  .ai-topbar {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: saturate(180%) blur(0.937vw);
    -webkit-backdrop-filter: saturate(180%) blur(0.937vw);
    z-index: 100;
  }
  
  .ai-topbar-inner {
    margin: 0 auto;
    /* padding: 3.645vw 4.27vw 3.645vw 0; */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25vw;
    flex-wrap: wrap;
    transition: all ease .6s;
  }
  
  .ai-topbar-inner {
    padding: 1.041vw 4.27vw 1.041vw 0;
  }
  
  .ai-stepnav {
    display: flex;
    align-items: center;
    gap: 0.208vw;
    flex-wrap: wrap;
    pointer-events: none;
  }
  
  .ai-logo {
    width: 7.968vw;
  }
  
  .ai-logo img {
    display: block;
    width: 100%;
  }
  
  .ai-step {
    font-size: 0.729vw;
    font-weight: 300;
    padding: 0.364vw 1.041vw;
    color: #000;
    cursor: pointer;
    user-select: none;
    transition: all 0.2s;
    white-space: nowrap;
    border: none;
    background: transparent;
    font-family: inherit;
  }
  
  .ai-step:hover {
    color: var(--primary);
    background: var(--grey-100);
  }
  
  .ai-step.done {
    color: var(--secondary-deep);
  }
  
  .ai-step.active {
    background: var(--primary);
    color: var(--secondary);
    box-shadow: 0 0.104vw 0.416vw rgba(7, 7, 7, 0.15);
  }
  
  .ai-stepnav .jt {
    color: #D4D4D4;
    font-size: 0.625vw;
    text-align: center;
    margin: 0 0.625vw;
  }
  
  .ai-topbar-right {
    display: flex;
    align-items: center;
    gap: 0.833vw;
    flex-wrap: wrap;
    justify-content: flex-end;
    flex: 1;
    min-width: 0;
  }
  
  /* ============== 主体 ============== */
  .ai-main {
    max-width: 88.541vw;
    margin: 0 auto;
    padding: 0 1.25vw 4.166vw;
  }
  
  .ai-main:has(.page-chat.active) {
    max-width: 102.083vw;
  }
  
  .page {
    display: none;
    animation: pageFadeIn 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  
  .page.active {
    display: block;
  }
  
  @keyframes pageFadeIn {
    from {
      opacity: 0;
      transform: translateY(0.833vw);
    }
  
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  /* ============== 页头 ============== */
  .page-header {
    text-align: center;
    margin-bottom: 1.666vw;
  }
  
  .page-title {
    font-size: 1.875vw;
    font-weight: 700;
    margin-bottom: 0.52vw;
    color: var(--primary);
  }
  
  .page-subtitle {
    font-size: 0.937vw;
    font-weight: 300;
    color: var(--grey-500);
    max-width: 33.333vw;
    margin: 0 auto;
  }
  
  /* ============== 通用按钮 ============== */
  .cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.416vw;
    padding: 0.729vw 1.666vw;
    border-radius: 52.031vw;
    background: var(--primary);
    color: #fff;
    font-size: 0.781vw;
    font-weight: 600;
    border: none;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.25s cubic-bezier(0.22, 0.61, 0.36, 1);
    box-shadow: 0 0.208vw 0.833vw rgba(7, 7, 7, 0.15);
  }
  
  .cta-btn:hover:not(:disabled) {
    transform: translateY(-0.104vw);
    box-shadow: 0 0.416vw 1.25vw rgba(7, 7, 7, 0.22);
  }
  
  .cta-btn:active:not(:disabled) {
    transform: translateY(0);
  }
  
  .cta-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
  }
  
  .cta-btn-lg {
    padding: 0.937vw 2.291vw;
    font-size: 0.833vw;
  }
  
  .cta-btn-arrow {
    display: inline-block;
    transition: transform 0.25s;
  }
  
  .cta-btn:hover .cta-btn-arrow {
    transform: translateX(0.208vw);
  }
  
  .ghost-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.312vw;
    padding: 0.625vw 1.041vw;
    border-radius: 52.031vw;
    background: transparent;
    color: var(--grey-700);
    font-size: 0.729vw;
    font-weight: 600;
    border: 0.052vw solid var(--grey-300);
    cursor: pointer;
    font-family: inherit;
    transition: all 0.2s;
  }
  
  .ghost-btn:hover {
    border-color: var(--primary);
    color: var(--primary);
    background: var(--grey-50);
  }
  
  .page-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.833vw;
    margin: 1.666vw auto 0;
    flex-wrap: wrap;
    max-width: 71.145vw;
  }
  
  .page-actions-end {
    justify-content: center;
  }
  
  /* ============== 第 1 页：欢迎页 ============== */
  .welcome-card {
    position: relative;
    margin: 1.25vw auto 0;
    background: #fff;
    padding: 0 2.5vw 2.5vw;
    text-align: center;
    overflow: hidden;
  }
  
  .welcome-card>*:not(.welcome-glow) {
    position: relative;
    z-index: 1;
  }
  
  .welcome-glow {
    position: absolute;
    top: -10.416vw;
    left: 50%;
    transform: translateX(-50%);
    width: 31.25vw;
    height: 31.25vw;
    background: radial-gradient(circle,
        rgba(201, 255, 133, 0.5) 0%,
        rgba(201, 255, 133, 0) 70%);
    pointer-events: none;
    z-index: 0;
  }
  
  .welcome-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.416vw;
    padding: 0.312vw 0.833vw;
    background: rgba(7, 7, 7, 0.04);
    border: 0.052vw solid var(--grey-200);
    border-radius: 52.031vw;
    font-size: 0.625vw;
    font-weight: 600;
    color: var(--grey-700);
    margin-bottom: 1.458vw;
  }
  
  .welcome-dot {
    width: 0.312vw;
    height: 0.312vw;
    background: var(--secondary-deep);
    border-radius: 50%;
    box-shadow: 0 0 0 0.156vw rgba(122, 201, 67, 0.2);
    animation: pulseDot 2s ease-in-out infinite;
  }
  
  @keyframes pulseDot {
  
    0%,
    100% {
      box-shadow: 0 0 0 0.156vw rgba(122, 201, 67, 0.2);
    }
  
    50% {
      box-shadow: 0 0 0 0.364vw rgba(122, 201, 67, 0);
    }
  }
  
  .welcome-title {
    font-size: 1.875vw;
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -0.052vw;
    margin-bottom: 0.937vw;
    color: var(--primary);
  }
  
  .grad-text {
    background: linear-gradient(135deg, #2a2a2a 0%, #5a8a30 50%, #7ac943 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  
  .welcome-subtitle {
    font-size: 0.937vw;
    color: var(--grey-500);
    font-weight: 300;
    margin: 0 auto 1.875vw;
    line-height: 1.8;
  }
  
  /* AI 机器人对话 */
  .welcome-bot {
    display: flex;
    align-items: flex-end;
    gap: 0.729vw;
    max-width: 30.208vw;
    margin: 0 auto 1.875vw;
    text-align: left;
  }
  
  .welcome-bot-avatar {
    width: 2.916vw;
    height: 2.916vw;
    border-radius: 50%;
    background: linear-gradient(135deg,
        var(--secondary) 0%,
        var(--secondary-deep) 100%);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.312vw;
    position: relative;
    box-shadow: 0 0.208vw 0.833vw rgba(122, 201, 67, 0.4);
  }
  
  .welcome-bot-avatar::before,
  .welcome-bot-avatar::after {
    content: "";
    position: absolute;
    bottom: -0.156vw;
    width: 0.729vw;
    height: 0.312vw;
    background: linear-gradient(135deg,
        var(--secondary) 0%,
        var(--secondary-deep) 100%);
    border-radius: 0 0 0.416vw 0.416vw;
  }
  
  .welcome-bot-avatar::before {
    left: 0.416vw;
    transform: rotate(-15deg);
  }
  
  .welcome-bot-avatar::after {
    right: 0.416vw;
    transform: rotate(15deg);
  }
  
  .welcome-bot-eye {
    width: 0.416vw;
    height: 0.416vw;
    background: var(--primary);
    border-radius: 50%;
    animation: blinkEye 4s ease-in-out infinite;
  }
  
  @keyframes blinkEye {
  
    0%,
    92%,
    100% {
      transform: scaleY(1);
    }
  
    94%,
    98% {
      transform: scaleY(0.1);
    }
  }
  
  .welcome-bot-bubble {
    flex: 1;
    background: var(--light-bg);
    border: 0.052vw solid var(--grey-200);
    border-bottom-left-radius: 0.208vw;
    border-radius: 0.937vw;
    padding: 0.729vw 0.937vw;
    font-size: 0.729vw;
    color: var(--primary);
    line-height: 1.7;
    position: relative;
  }
  
  /* 流程示意 */
  .welcome-flow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625vw;
    margin: 0 auto 3.281vw;
    flex-wrap: wrap;
  }
  
  .flow-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.208vw;
    padding: 0.52vw 0.833vw;
    background: rgba(255, 255, 255, 0.6);
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-sm);
    transition: all 0.25s;
    min-width: 15.625vw;
    min-height: 6.458vw;
  }
  
  .flow-step:hover {
    border-color: var(--primary);
    transform: translateY(-0.104vw);
    box-shadow: var(--shadow-sm);
  }
  
  .flow-num {
    font-size: 0.729vw;
    font-weight: 300;
    color: var(--grey-500);
    letter-spacing: 0.052vw;
  }
  
  .flow-label {
    font-size: 0.937vw;
    font-weight: 300;
    color: var(--primary);
  }
  
  .flow-arrow {
    color: var(--grey-300);
    font-size: 0.729vw;
  }
  
  .welcome-foot {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.52vw;
    margin-top: 1.458vw;
    font-size: 0.625vw;
    color: var(--grey-500);
    flex-wrap: wrap;
  }
  
  /* ============== 第 2 页：AI 对话问诊 ============== */
  .chat-progress {
    max-width: 25vw;
    margin: 1.041vw auto 0;
    height: 0.312vw;
    background: var(--grey-100);
    border-radius: 52.031vw;
    overflow: hidden;
    position: relative;
  }
  
  .chat-progress-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg,
        var(--secondary) 0%,
        var(--secondary-deep) 100%);
    border-radius: 52.031vw;
    transition: width 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  
  .chat-progress-text {
    position: absolute;
    top: -1.145vw;
    right: 0;
    font-size: 0.625vw;
    font-weight: 700;
    color: var(--grey-500);
    font-family: -apple-system, "SF Mono", "Menlo", monospace;
  }
  
  .chat-frame {
    max-width: 51.041vw;
    margin: 0 auto;
    background: #fff;
    border-radius: var(--radius-lg);
    border: none;
    box-shadow: none;
    padding: 1.25vw;
    min-height: 0;
    overflow: visible;
  }
  
  /* 对话式问诊：保持适中宽度，营造贴近真实对话的体验 */
  .page-chat .chat-frame {
    max-width: 42.708vw;
    padding: 1.458vw 1.458vw 1.25vw;
  }
  
  /* 对话式问诊：整体文字小一档 */
  .page-chat .page-title {
    font-size: 1.354vw;
  }
  
  .page-chat .page-subtitle {
    font-size: 0.937vw;
  }
  
  .page-chat .chat-progress-text {
    font-size: 0.572vw;
  }
  
  .page-chat .chat-avatar {
    font-size: 0.937vw;
    width: 2.187vw;
    height: 2.187vw;
  }
  
  .page-chat .chat-bubble {
    font-size: 0.937vw;
    padding: 0.52vw 0.729vw;
  }
  
  .page-chat .chat-option {
    font-size: 0.833vw;
    padding: 0.364vw 0.625vw 0.364vw 0.416vw;
  }
  
  .page-chat .chat-option::before {
    width: 0.833vw;
    height: 0.833vw;
  }
  
  .page-chat .chat-input-row input,
  .page-chat .chat-input-row button {
    font-size: 0.625vw;
  }
  
  .page-chat .chat-customer-input {
    font-size: 0.833vw;
    padding: 0.468vw 0.572vw;
  }
  
  .page-chat .chat-customer-form-submit {
    font-size: 0.625vw;
  }
  
  .page-chat .chat-actions .cta-btn,
  .page-chat .chat-actions .ghost-btn {
    font-size: 0.833vw;
    padding: 0.572vw 1.354vw;
  }
  
  .chat-list {
    display: flex;
    flex-direction: column;
    gap: 0.937vw;
  }
  
  .chat-msg {
    display: flex;
    gap: 0.52vw;
    animation: msgFadeIn 0.4s ease-out;
  }
  
  @keyframes msgFadeIn {
    from {
      opacity: 0;
      transform: translateY(0.416vw);
    }
  
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  .chat-msg.user {
    flex-direction: row-reverse;
  }
  
  .chat-avatar {
    width: 1.875vw;
    height: 1.875vw;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.833vw;
    font-weight: 700;
  }
  
  .chat-msg.ai .chat-avatar {
    background: linear-gradient(135deg,
        var(--secondary) 0%,
        var(--secondary-deep) 100%);
    color: var(--primary);
  }
  
  .chat-msg.user .chat-avatar {
    background: linear-gradient(135deg, #b3d9ff 0%, #4a90e2 100%);
    color: #fff;
  }
  
  .chat-content {
    max-width: 78%;
  }
  
  .chat-bubble {
    padding: 0.625vw 0.833vw;
    border-radius: 0.729vw;
    font-size: 0.781vw;
    line-height: 1.7;
  }
  
  .chat-msg.ai .chat-bubble {
    background: var(--light-bg);
    border: 0.052vw solid var(--grey-200);
    border-top-left-radius: 0.208vw;
    color: var(--primary);
  }
  
  .chat-msg.user .chat-bubble {
    background: var(--primary);
    color: #fff;
    border-top-right-radius: 0.208vw;
  }
  
  .chat-bubble strong {
    font-weight: 700;
  }
  
  /* 单页问诊：6 题同屏 */
  .survey-all-wrap {
    max-width: 100%;
    margin: 0.625vw auto 0;
    padding-bottom: 0.416vw;
  }
  
  .survey-block {
    margin-bottom: 0.937vw;
    padding: 0.937vw 0.937vw 1.041vw;
    background: #fff;
    border-radius: var(--radius-lg);
    border: none;
    box-shadow: none;
  }
  
  .survey-block-title {
    font-size: 0.781vw;
    font-weight: 700;
    color: var(--grey-800);
    line-height: 1.45;
    margin-bottom: 0.625vw;
  }
  
  .survey-block--customer {
    border-radius: 0;
  }
  
  .survey-block--error {
    border: 0.052vw solid #e53935;
    box-shadow: none;
  }
  
  .chat-options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.416vw;
    margin-top: 0.52vw;
  }
  
  .chat-options .chat-input-row {
    flex-basis: 100%;
    width: 100%;
  }
  
  /* 选项：参考极简慕枫联系页 — 左侧方框 + 文案（未选：线框；选中：实心 + 中心白方块） */
  .chat-option {
    display: inline-flex;
    align-items: center;
    gap: 0.52vw;
    padding: 0.416vw 0.729vw 0.416vw 0.416vw;
    border-radius: 0;
    border: none;
    background: transparent;
    color: var(--primary);
    font-size: 0.729vw;
    font-weight: 400;
    cursor: pointer;
    font-family: inherit;
    transition:
      background 0.15s ease,
      color 0.15s ease;
    line-height: 1.45;
    text-align: left;
  }
  
  .chat-option::before {
    content: "";
    display: block;
    width: 0.729vw;
    height: 0.729vw;
    flex-shrink: 0;
    border: 0.052vw solid var(--primary);
    background: #fff;
    box-sizing: border-box;
  }
  
  .chat-option:hover {
    background: rgba(7, 7, 7, 0.05);
  }
  
  .chat-option.selected {
    font-weight: 600;
    background: transparent;
    color: var(--primary);
  }
  
  .chat-option.selected::before {
    border-color: var(--primary);
    background:
      linear-gradient(#fff, #fff) center / 42% 42% no-repeat,
      var(--primary);
  }
  
  .chat-input-row {
    margin-top: 0.416vw;
    display: flex;
    align-items: center;
    gap: 0.416vw;
  }
  
  .chat-input-row input {
    flex: 1;
    padding: 0.52vw 0.729vw;
    border-radius: 52.031vw;
    border: 0.052vw solid var(--grey-200);
    font-family: inherit;
    font-size: 0.729vw;
    outline: none;
    transition: border-color 0.2s;
  }
  
  .chat-input-row input:focus {
    border-color: var(--primary);
  }
  
  .chat-input-row button {
    padding: 0.416vw 0.937vw;
    border-radius: 52.031vw;
    background: var(--primary);
    color: #fff;
    border: none;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.729vw;
  }
  
  /* 问诊最后一题：客户资料（2×3） */
  .chat-options--form {
    display: block;
    width: 100%;
    max-width: 70.833vw;
  }
  
  .chat-customer-form {
    width: 100%;
    max-width: 70.833vw;
    background: #fff;
    border-radius: 0;
    padding: 0.104vw 0 0.208vw;
  }
  
  .chat-customer-form-heading {
    font-size: 0.833vw;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 0.625vw;
    letter-spacing: 0.02em;
  }
  
  .chat-customer-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.52vw 1.25vw;
  }
  
  .chat-customer-cell {
    min-width: 0;
  }
  
  .chat-customer-input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.52vw 0.625vw;
    border-radius: 0;
    border: 0.052vw solid var(--grey-300);
    background: #fff;
    font-family: inherit;
    font-size: 0.677vw;
    color: var(--primary);
    outline: none;
    transition: border-color 0.15s;
  }
  
  .chat-customer-input::placeholder {
    color: var(--grey-400);
  }
  
  .chat-customer-input:focus {
    border-color: var(--primary);
  }
  
  .chat-customer-input:disabled {
    background: var(--grey-50);
    color: var(--grey-600);
  }
  
  .chat-customer-form-submit {
    margin-top: 0.729vw;
    width: 100%;
    padding: 0.52vw 0.833vw;
    border-radius: 52.031vw;
    border: none;
    background: var(--primary);
    color: #fff;
    font-weight: 800;
    font-size: 0.729vw;
    cursor: pointer;
    font-family: inherit;
  }
  
  .chat-customer-form-submit:disabled {
    opacity: 0.55;
    cursor: default;
  }
  
  .chat-actions {
    max-width: 51.041vw;
    margin: 1.25vw auto 0;
    display: flex;
    justify-content: space-between;
    gap: 0.833vw;
  }
  
  .page-chat .chat-actions {
    max-width: 42.708vw;
  }
  
  /* AI typing 三点动效 */
  .chat-typing {
    display: inline-flex;
    gap: 0.208vw;
    padding: 0.208vw 0;
  }
  
  .chat-typing span {
    width: 0.364vw;
    height: 0.364vw;
    background: var(--grey-300);
    border-radius: 50%;
    animation: typingDot 1.2s infinite ease-in-out;
  }
  
  .chat-typing span:nth-child(2) {
    animation-delay: 0.2s;
  }
  
  .chat-typing span:nth-child(3) {
    animation-delay: 0.4s;
  }
  
  @keyframes typingDot {
  
    0%,
    60%,
    100% {
      transform: scale(1);
      opacity: 0.5;
    }
  
    30% {
      transform: scale(1.3);
      opacity: 1;
    }
  }
  
  /* ============== 对话式问诊：AI 提问头部 + 选项面板 ============== */
  .chat-msg.ai .chat-bubble .qhead {
    font-size: 0.625vw;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--grey-500);
    margin-bottom: 0.26vw;
    text-transform: uppercase;
  }
  
  .chat-msg.ai .chat-bubble .qtitle {
    font-size: 0.937vw;
    font-weight: 600;
    line-height: 1.55;
    color: var(--primary);
  }
  
  .chat-msg.ai .chat-bubble .qtitle strong {
    font-weight: 700;
  }
  
  .chat-msg.ai .chat-bubble .qhint {
    margin-top: 0.26vw;
    font-size: 0.625vw;
    color: var(--grey-500);
    line-height: 1.5;
  }
  
  /* 用户回答前的交互面板（紧跟在 AI 提问下） */
  .qa-panel {
    width: max-content;
    max-width: 100%;
    margin-left: 2.395vw;
    padding: 0.729vw 0.833vw;
    background: #fff;
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    animation: qaPanelIn 0.35s ease-out;
  }
  
  @keyframes qaPanelIn {
    from {
      opacity: 0;
      transform: translateY(0.312vw);
    }
  
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  .qa-panel .chat-options {
    margin-top: 0;
  }
  
  .qa-panel--locked {
    opacity: 0;
    pointer-events: none;
    height: 0;
    margin: 0;
    padding: 0;
    border: none;
    overflow: hidden;
    transition:
      opacity 0.25s ease,
      height 0.25s ease,
      padding 0.25s ease,
      margin 0.25s ease;
  }
  
  .qa-panel--form {
    padding: 0.833vw 0.937vw 0.937vw;
  }
  
  .qa-panel--form .chat-customer-form-grid {
    margin-top: 0;
  }
  
  .qa-panel-foot {
    margin-top: 0.625vw;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.52vw;
  }
  
  .qa-next-btn {
    padding: 0.364vw 0.833vw;
    border-radius: 52.031vw;
    background: var(--primary);
    color: #fff;
    border: none;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.729vw;
    letter-spacing: 0.02em;
    transition:
      background 0.2s ease,
      transform 0.2s ease,
      opacity 0.2s ease;
  }
  
  .qa-next-btn:hover:not(:disabled) {
    background: var(--primary-soft);
    transform: translateX(0.104vw);
  }
  
  .qa-next-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
  }
  
  /* AI typing 占位气泡（自身气泡缩小一些） */
  .chat-typing-msg .chat-bubble {
    padding: 0.52vw 0.729vw;
    min-width: 2.916vw;
  }
  
  /* ============== 第 3 页：AI 诊断中（加载页） ============== */
  .loading-wrap {
    max-width: 33.333vw;
    margin: 3.125vw auto 0;
    text-align: center;
    background: #fff;
  }
  .page-loading   .loading-wrap{
    margin: 0 auto;
  }
  
  .loading-orb {
    position: relative;
    width: 8.333vw;
    height: 8.333vw;
    margin: 0 auto 1.458vw;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .orb-ring {
    position: absolute;
    border-radius: 50%;
    border: 0.104vw solid transparent;
    border-top-color: var(--secondary-deep);
    border-right-color: var(--secondary);
    animation: orbSpin 2s linear infinite;
  }
  
  .orb-ring-1 {
    width: 100%;
    height: 100%;
  }
  
  .orb-ring-2 {
    width: 75%;
    height: 75%;
    border-top-color: var(--accent);
    border-right-color: #b3d9ff;
    animation-direction: reverse;
    animation-duration: 1.6s;
  }
  
  .orb-ring-3 {
    width: 50%;
    height: 50%;
    border-top-color: var(--warm);
    border-right-color: #ffe0aa;
    animation-duration: 1.2s;
  }
  
  @keyframes orbSpin {
    to {
      transform: rotate(360deg);
    }
  }
  
  .orb-core {
    width: 36%;
    height: 36%;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary) 0%, #2a2a2a 100%);
    color: var(--secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 0.937vw;
    box-shadow: 0 0.208vw 0.833vw rgba(7, 7, 7, 0.2);
    z-index: 1;
  }
  
  .loading-title {
    font-size: 1.25vw;
    font-weight: 700;
    margin-bottom: 0.416vw;
    letter-spacing: -0vw;
  }
  
  .loading-subtitle {
    font-size: 0.937vw;
    font-weight: 300;
    color: var(--grey-500);
    margin-bottom: 1.666vw;
  }
  
  .loading-steps {
    list-style: none;
    text-align: left;
    margin-bottom: 1.25vw;
  }
  
  .loading-steps li {
    display: flex;
    align-items: center;
    gap: 0.625vw;
    padding: 0.729vw 0.937vw;
    margin-bottom: 0.416vw;
    background: var(--light-bg);
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-sm);
    transition: all 0.4s;
    opacity: 0.5;
  }
  
  .loading-steps li.active {
    opacity: 1;
    background: #fff;
    border-color: var(--secondary);
    box-shadow: 0 0.208vw 0.833vw rgba(122, 201, 67, 0.15);
  }
  
  .loading-steps li.done {
    opacity: 1;
    background: rgba(122, 201, 67, 0.06);
    border-color: rgba(122, 201, 67, 0.3);
  }
  
  .loading-steps .ls-icon {
    font-size: 1.145vw;
    flex-shrink: 0;
  }
  
  .loading-steps .ls-text {
    flex: 1;
    font-size: 0.937vw;
    font-weight: 300;
  }
  
  .loading-steps .ls-status {
    font-size: 0.625vw;
    color: var(--grey-500);
    font-weight: 700;
    font-family: -apple-system, "SF Mono", "Menlo", monospace;
  }
  
  .loading-steps li.active .ls-status {
    color: var(--accent);
  }
  
  .loading-steps li.active .ls-status::after {
    content: "";
    display: inline-block;
    margin-left: 0.208vw;
    width: 0.625vw;
    text-align: left;
    animation: dotsAnim 1.2s infinite steps(4, end);
    overflow: hidden;
    vertical-align: bottom;
  }
  
  @keyframes dotsAnim {
    0% {
      content: "";
    }
  
    25% {
      content: ".";
    }
  
    50% {
      content: "..";
    }
  
    75% {
      content: "...";
    }
  
    100% {
      content: "";
    }
  }
  
  .loading-steps li.done .ls-status {
    color: var(--secondary-deep);
  }
  
  .loading-steps li.done .ls-status::before {
    content: "✓";
  }
  
  .loading-foot {
    font-size: 0.833vw;
    color: var(--grey-500);
    font-style: italic;
  }
  
  /* ============== 第 4 页：网站定位与全年角色 ============== */
  .position-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 1.041vw;
    max-width: 71.145vw;
    margin: 0 auto;
  }
  
  .info-card {
    width: 34.375vw;
    background: #fff;
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-lg);
    padding: 1.25vw;
    box-shadow: var(--shadow-sm);
  }
  
  .info-card-primary {
    background: linear-gradient(135deg, #fff 0%, #fafef3 100%);
    border-color: rgba(122, 201, 67, 0.4);
  }
  
  .info-card-head {
    display: flex;
    align-items: center;
    gap: 0.52vw;
    margin-bottom: 1.041vw;
    padding-bottom: 0.729vw;
    border-bottom: 0.052vw dashed var(--grey-200);
  }
  
  .info-card-icon {
    font-size: 1.145vw;
  }
  
  .info-card-title {
    flex: 1;
    font-size: 1.041vw;
    font-weight: 800;
    color: var(--primary);
  }
  
  .info-card-tag {
    padding: 0.156vw 0.52vw;
    border-radius: 52.031vw;
    background: var(--grey-100);
    color: var(--grey-700);
    font-size: 0.729vw;
    font-weight: 700;
  }
  
  .info-card-tag.tag-ai {
    background: var(--primary);
    color: var(--secondary);
  }
  
  .info-list {
    list-style: none;
  }
  
  .info-list li {
    display: flex;
    justify-content: space-between;
    padding: 0.312vw 0;
    font-size: 0.833vw;
    border-bottom: 0.052vw dashed var(--grey-100);
  }
  
  .info-list li:last-child {
    border-bottom: none;
  }
  
  .info-k {
    color: var(--grey-500);
    font-weight: 600;
    flex-shrink: 0;
  }
  
  .info-v {
    color: var(--primary);
    font-weight: 700;
    text-align: right;
    margin-left: 0.729vw;
  }
  
  .role-block {
    margin-bottom: 0.937vw;
  }
  
  .role-block:last-child {
    margin-bottom: 0;
  }
  
  .role-title {
    font-size: 0.833vw;
    font-weight: 700;
    color: var(--grey-700);
    margin-bottom: 0.52vw;
    letter-spacing: 0vw;
  }
  
  .role-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.416vw;
  }
  
  .role-tag {
    padding: 0.312vw 0.729vw;
    background: var(--primary);
    color: var(--secondary);
    border-radius: 52.031vw;
    font-size: 0.729vw;
    font-weight: 700;
    letter-spacing: 0vw;
  }
  
  .value-list {
    list-style: none;
  }
  
  .value-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.52vw;
    font-size: 0.833vw;
    line-height: 1.7;
    padding: 0.312vw 0;
    color: var(--grey-700);
  }
  
  .check-dot {
    width: 0.937vw;
    height: 0.937vw;
    border-radius: 50%;
    background: var(--secondary);
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.572vw;
    font-weight: 800;
    flex-shrink: 0;
    margin-top: 0.104vw;
  }
  
  .check-dot::before {
    content: "✓";
  }
  
  .strategy-bar {
    max-width: 71.145vw;
    margin: 1.25vw auto 0;
    background: linear-gradient(135deg, var(--primary) 0%, #1a1a1a 100%);
    color: #fff;
    padding: 1.25vw 1.458vw;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
  }
  
  .strategy-label {
    color: #fff;
    font-size: 1.041vw;
    font-weight: 700;
    margin-bottom: 0.937vw;
  }
  
  .strategy-text {
    font-size: 0.833vw;
    line-height: 1.85;
    color: #F0F0F0;
  }
  
  .strategy-text strong {
    color: var(--secondary);
    font-weight: 800;
  }
  
  /* ============== 第 5 页：年度增长目标 ============== */
  .goals-stack {
    max-width: 71.145vw;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1.041vw;
  }
  
  .goal-card {
    position: relative;
    background: #fff;
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-lg);
    padding: 1.458vw 1.666vw;
    box-shadow: var(--shadow-sm);
    transition: all 0.3s;
    overflow: hidden;
  }
  
  .goal-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0.312vw;
    height: 100%;
    background: var(--grey-300);
  }
  
  .goal-card:hover {
    transform: translateY(-0.104vw);
    box-shadow: var(--shadow-md);
  }
  
  .goal-card-1::before {
    background: var(--accent);
  }
  
  .goal-card-2::before {
    background: linear-gradient(180deg,
        var(--secondary) 0%,
        var(--secondary-deep) 100%);
  }
  
  .goal-card-3::before {
    background: linear-gradient(180deg, var(--warm) 0%, var(--pink) 100%);
  }
  
  .goal-card-2 {
    border-color: rgba(122, 201, 67, 0.4);
    background: linear-gradient(135deg, #fff 0%, #fafef3 100%);
  }
  
  .goal-card .pr {
    position: absolute;
    top: 1.25vw;
    right: 1.666vw;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
  
  .goal-num {
    display: inline-block;
    padding: 0.208vw 0.625vw;
    background: var(--grey-100);
    color: var(--grey-700);
    border-radius: 52.031vw;
    font-size: 0.833vw;
    font-weight: 400;
    letter-spacing: 0vw;
  }
  
  .goal-card-1 .goal-num {
    background: var(--accent-soft);
    color: var(--accent);
  }
  
  .goal-card-2 .goal-num {
    background: var(--secondary);
    color: var(--primary);
  }
  
  .goal-card-3 .goal-num {
    background: var(--warm-soft);
    color: #c68a1f;
  }
  
  .goal-recommend {
    padding: 0.208vw 0.625vw;
    background: var(--primary);
    color: var(--secondary);
    border-radius: 52.031vw;
    font-size: 0.833vw;
    font-weight: 400;
  }
  
  .goal-head {
    display: flex;
    align-items: baseline;
    gap: 0.729vw;
    margin-bottom: 0.833vw;
    flex-wrap: wrap;
  }
  
  .goal-title {
    font-size: 1.145vw;
    font-weight: 600;
    letter-spacing: -0vw;
  }
  
  .goal-vs {
    padding: 0.208vw 0.625vw;
    background: var(--light-bg);
    color: var(--grey-700);
    border-radius: 52.031vw;
    font-size: 0.833vw;
    font-weight: 400;
    border: 0.052vw solid var(--grey-200);
  }
  
  .goal-row {
    display: flex;
    gap: 0.729vw;
    padding: 0.416vw 0;
    font-size: 0.937vw;
    font-weight: 300;
    line-height: 1.7;
  }
  
  .goal-row-k {
    flex-shrink: 0;
    width: 5.208vw;
    color: var(--grey-500);
    font-weight: 300;
    font-size: 0.937vw;
  }
  
  .goal-row-v {
    flex: 1;
    color: var(--primary);
  }
  
  .goal-row-v strong {
    color: var(--accent);
    font-weight: 800;
  }
  
  .goal-card-2 .goal-row-v strong {
    color: var(--secondary-deep);
  }
  
  .goal-card-3 .goal-row-v strong {
    color: #c68a1f;
  }
  
  .goal-link {
    font-size: 0.677vw;
    font-weight: 700;
    color: var(--grey-700);
  }
  
  /* ============== 第 6 页：方案与报价详情 ============== */
  .plans-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.937vw;
    max-width: 62.5vw;
    margin: 0 auto;
    align-items: stretch;
  }
  
  .plan-card {
    position: relative;
    background: #fff;
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-lg);
    padding: 1.458vw 1.25vw;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-sm);
    transition: all 0.3s;
    cursor: pointer;
  }
  
.plan-card:hover:not(.plan-selected) {
  border-color: var(--grey-300);
  box-shadow: 0 0.52vw 1.458vw rgba(7, 7, 7, 0.12);
  transform: translateY(-0.208vw);
}
  
  .plan-recommended {
    padding-top: 3.125vw;
  }
  
.plan-recommended:hover:not(.plan-selected) {
  transform: translateY(-0.208vw);
}
  
  .plan-recommend-bar {
    position: absolute;
    top: -0.052vw;
    left: -0.052vw;
    right: -0.052vw;
    background: var(--primary);
    color: var(--secondary);
    text-align: center;
    padding: 0.416vw 0.729vw;
    font-size: 0.625vw;
    font-weight: 800;
    letter-spacing: 0vw;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  }
  
  .plan-tag {
    display: inline-block;
    align-self: flex-start;
    padding: 0.208vw 0.625vw;
    background: var(--grey-100);
    color: var(--grey-700);
    border-radius: 52.031vw;
    font-size: 0.625vw;
    font-weight: 700;
    margin-bottom: 0.625vw;
  }
  
  .plan-a .plan-tag {
    background: var(--accent-soft);
    color: var(--accent);
  }
  
  .plan-b .plan-tag {
    background: var(--secondary);
    color: var(--primary);
  }
  
  .plan-c .plan-tag {
    background: linear-gradient(135deg,
        var(--warm-soft) 0%,
        var(--pink-soft) 100%);
    color: #c68a1f;
  }
  
  .plan-title {
    font-size: 1.354vw;
    font-weight: 800;
    letter-spacing: -0vw;
    margin-bottom: 0.208vw;
  }
  
  .plan-target {
    font-size: 0.625vw;
    color: var(--grey-500);
    font-weight: 600;
    margin-bottom: 0.937vw;
  }
  
  .plan-price {
    display: flex;
    align-items: baseline;
    gap: 0.208vw;
    margin-bottom: 0.208vw;
  }
  
  .plan-price-num {
    font-size: 2.5vw;
    font-weight: 800;
    letter-spacing: -0.104vw;
    color: var(--primary);
    line-height: 1;
    font-family: -apple-system, "SF Pro Display", sans-serif;
  }
  
  .plan-recommended .plan-price-num {
    background: linear-gradient(135deg,
        var(--primary) 0%,
        var(--secondary-deep) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  
  .plan-price-unit {
    font-size: 0.729vw;
    font-weight: 700;
    color: var(--grey-500);
  }
  
  .plan-monthly {
    font-size: 0.625vw;
    color: var(--grey-500);
    margin-bottom: 1.145vw;
    padding-bottom: 0.937vw;
    border-bottom: 0.052vw dashed var(--grey-200);
  }
  
  .plan-features {
    list-style: none;
    margin-bottom: 0.937vw;
  }
  
  .plan-features li {
    display: flex;
    align-items: flex-start;
    gap: 0.52vw;
    font-size: 0.677vw;
    line-height: 1.7;
    padding: 0.26vw 0;
    color: var(--grey-700);
  }
  
  .feat-dot {
    width: 0.833vw;
    height: 0.833vw;
    border-radius: 50%;
    background: var(--secondary);
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.52vw;
    font-weight: 800;
    flex-shrink: 0;
    margin-top: 0.104vw;
  }
  
  .feat-dot::before {
    content: "✓";
  }
  
  .plan-list-title {
    font-size: 0.625vw;
    font-weight: 700;
    color: var(--grey-500);
    margin-bottom: 0.416vw;
    letter-spacing: 0vw;
  }
  
  .plan-checklist {
    list-style: none;
    margin-bottom: 1.145vw;
    padding: 0.625vw 0.729vw;
    background: var(--grey-50);
    border-radius: var(--radius-sm);
    border: 0.052vw dashed var(--grey-200);
  }
  
  .plan-checklist li {
    font-size: 0.625vw;
    color: var(--grey-700);
    line-height: 1.8;
    padding: 0.104vw 0;
  }
  
  .plan-btn {
    margin-top: auto;
    padding: 0.729vw 1.041vw;
    border-radius: 52.031vw;
    background: #fff;
    color: var(--primary);
    border: 0.052vw solid var(--primary);
    font-size: 0.729vw;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.2s;
    width: 100%;
  }
  
  .plan-btn:hover {
    background: var(--primary);
    color: #fff;
  }
  
  .plan-btn-primary {
    background: var(--primary);
    color: var(--secondary);
  }
  
  .plan-btn-primary:hover {
    background: #1a1a1a;
    color: var(--secondary);
    box-shadow: 0 0.416vw 1.25vw rgba(7, 7, 7, 0.25);
  }
  
  /* 单项增购 */
  .addon-section {
    max-width: 62.5vw;
    margin: 2.083vw auto 0;
    padding: 1.458vw;
    background: #fff;
    border: 0.052vw dashed var(--grey-300);
    border-radius: var(--radius-lg);
  }
  
  /* 第 6 页：与方案栅格同宽对齐 */
  .addon-section--after-plans {
    max-width: 62.5vw;
    margin: 1.458vw auto 0;
  }
  
  .addon-title {
    font-size: 0.937vw;
    font-weight: 800;
    margin-bottom: 0.208vw;
  }
  
  .addon-subtitle {
    font-size: 0.677vw;
    color: var(--grey-500);
    margin-bottom: 0.937vw;
  }
  
  .addon-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.625vw;
  }
  
  button.addon-card {
    cursor: pointer;
    font-family: inherit;
    text-align: center;
    position: relative;
    padding: 0.833vw 0.729vw 0.833vw;
    padding-top: 1.458vw;
  }
  
  .addon-card {
    padding: 0.833vw;
    background: var(--light-bg);
    border-radius: var(--radius-sm);
    border: 0.104vw solid var(--grey-200);
    transition: all 0.2s;
  }
  
  .addon-card:hover {
    border-color: var(--primary);
    background: #fff;
    transform: translateY(-0.104vw);
  }
  
  .addon-card.selected {
    border-color: var(--primary);
    background: linear-gradient(135deg, #fff 0%, var(--light-bg) 100%);
    box-shadow: 0 0.208vw 0.729vw rgba(7, 7, 7, 0.08);
  }
  
  .addon-check {
    position: absolute;
    top: 0.416vw;
    right: 0.416vw;
    width: 1.041vw;
    height: 1.041vw;
    border-radius: 0.312vw;
    border: 0.104vw solid var(--grey-300);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.625vw;
    font-weight: 800;
    color: transparent;
    transition: all 0.2s;
  }
  
  .addon-card.selected .addon-check {
    border-color: var(--primary);
    background: var(--secondary);
    color: var(--primary);
  }
  
  .addon-card.selected .addon-check::after {
    content: "✓";
  }
  
  .addon-hint {
    margin-top: 0.729vw;
    font-size: 0.677vw;
    color: var(--grey-700);
    text-align: center;
  }
  
  .addon-hint strong {
    color: var(--primary);
    font-size: 0.781vw;
  }
  
  .addon-submit-row {
    margin-top: 0.833vw;
    display: flex;
    justify-content: center;
  }
  
  .summary-addon-note {
    font-size: 0.625vw;
    color: var(--grey-500);
    margin: 0.52vw 0 0;
    line-height: 1.6;
  }
  
  .plan-card.plan-selected {
    border-color: var(--primary);
    background: linear-gradient(180deg, #fff 0%, #fafef3 100%);
    box-shadow:
      0 0 0 0.104vw var(--primary),
      0 0.625vw 1.666vw rgba(7, 7, 7, 0.12);
    transform: translateY(-0.312vw);
  }
  
  .addon-icon {
    font-size: 1.354vw;
    margin-bottom: 0.416vw;
  }
  
  .addon-name {
    font-size: 0.677vw;
    font-weight: 700;
    margin-bottom: 0.208vw;
  }
  
  .addon-price {
    font-size: 0.625vw;
    color: var(--grey-500);
    font-weight: 600;
  }
  
  /* ============== 第 7 页：报价汇总 ============== */
  .summary-card {
    max-width: 45.833vw;
    margin: 0 auto;
    background: #fff;
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-md);
  }
  
  .summary-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.458vw 1.666vw;
    background: linear-gradient(135deg, var(--primary) 0%, #1a1a1a 100%);
    color: #fff;
    flex-wrap: wrap;
    gap: 1.041vw;
  }
  
  .summary-tag {
    display: inline-block;
    padding: 0.156vw 0.52vw;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 52.031vw;
    font-size: 0.729vw;
    font-weight: 700;
    margin-bottom: 0.416vw;
  }
  
  .summary-plan-name {
    font-size: 1.354vw;
    font-weight: 800;
    margin-bottom: 0.312vw;
    color: var(--secondary);
  }
  
  .summary-plan-desc {
    font-size: 0.729vw;
    opacity: 0.7;
  }
  
  .summary-price {
    display: flex;
    align-items: baseline;
    gap: 0.208vw;
  }
  
  .summary-price-num {
    font-size: 2.5vw;
    font-weight: 800;
    letter-spacing: -0.104vw;
    color: var(--secondary);
    line-height: 1;
    font-family: -apple-system, "SF Pro Display", sans-serif;
  }
  
  .summary-price-unit {
    font-size: 0.729vw;
    font-weight: 700;
    opacity: 0.7;
    color: #fff;
  }
  
  .summary-section {
    padding: 1.25vw 1.666vw;
    border-bottom: 0.052vw solid var(--grey-200);
  }
  
  .summary-section:last-child {
    border-bottom: none;
  }
  
  .summary-section-title {
    font-size: 0.833vw;
    font-weight: 800;
    margin-bottom: 0.729vw;
    letter-spacing: 0vw;
  }
  
  .summary-table {
    width: 100%;
    border-collapse: collapse;
  }
  
  .summary-table tr {
    border-bottom: 0.052vw dashed var(--grey-200);
  }
  
  .summary-table tr:last-child {
    border-bottom: none;
  }
  
  .summary-table td {
    padding: 0.729vw 0;
    font-size: 0.833vw;
    vertical-align: top;
  }
  
  .summary-table td strong {
    font-weight: 700;
    color: var(--primary);
  }
  
  .td-desc {
    font-size: 0.729vw;
    color: var(--grey-500);
    font-weight: 500;
  }
  
  .td-price {
    text-align: right;
    font-weight: 800;
    font-size: 0.937vw;
    color: var(--primary);
    white-space: nowrap;
    font-family: -apple-system, "SF Pro Display", sans-serif;
  }
  
  .td-price-optional {
    color: var(--grey-500);
    font-size: 0.729vw;
  }
  
  .summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.937vw;
    padding: 0.937vw 1.145vw;
    background: linear-gradient(135deg,
        var(--secondary) 0%,
        var(--secondary-deep) 100%);
    border-radius: var(--radius-md);
  }
  
  .total-label {
    font-size: 0.833vw;
    font-weight: 700;
    color: var(--primary);
  }
  
  .total-num {
    font-size: 1.354vw;
    font-weight: 800;
    color: #fff;
    font-family: -apple-system, "SF Pro Display", sans-serif;
    letter-spacing: -0vw;
  }
  
  .summary-section-info {
    background: var(--light-bg);
  }
  
  .info-line {
    display: flex;
    align-items: center;
    gap: 0.625vw;
    padding: 0.416vw 0;
    font-size: 0.729vw;
  }
  
  .info-line-icon {
    font-size: 0.937vw;
    flex-shrink: 0;
  }
  
  .info-line-k {
    width: 4.375vw;
    color: var(--grey-500);
    font-weight: 700;
    font-size: 0.729vw;
    flex-shrink: 0;
  }
  
  .info-line-v {
    flex: 1;
    color: var(--primary);
    font-weight: 600;
  }
  
  .deliverables {
    list-style: none;
  }
  
  .deliverables li {
    padding: 0.416vw 0;
    font-size: 0.833vw;
    line-height: 1.6;
    color: var(--grey-700);
  }
  
  /* ============== 第 8 页：品牌顾问对接 ============== */
  .consultant-card {
    max-width: 50vw;
    margin: 0 auto;
    background: #fff;
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    display: grid;
    grid-template-columns: 1fr 1.6fr;
  }
  
  .consultant-left {
    padding: 1.875vw 1.458vw;
    background: linear-gradient(135deg, var(--primary) 0%, #1a1a1a 100%);
    color: #fff;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  
  .consultant-left-main {
    width: 100%;
  }
  
  .consultant-qr-block {
    margin-top: auto;
    padding-top: 1.458vw;
    width: 100%;
  }
  
  .consultant-qr-img {
    display: block;
    width: 100%;
    max-width: 10.416vw;
    height: auto;
    margin: 0 auto;
    border-radius: 0.625vw;
    background: #fff;
    padding: 0.52vw;
    box-sizing: border-box;
  }
  
  .consultant-qr-hint {
    margin-top: 0.625vw;
    font-size: 0.625vw;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.62);
    font-weight: 500;
  }
  
  .page-consultant .page-title,
  .page-consultant .page-subtitle {
    outline: none;
  }
  
  /* .consultant-avatar {
    width: 5.729vw;
    height: 5.729vw;
    margin: 0 auto 1.041vw;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--secondary) 0%, var(--secondary-deep) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.291vw;
    font-weight: 800;
    color: var(--primary);
    border: none;
    outline: none;
    box-shadow: none;
  } */
  
  .consultant-name {
    font-size: 1.25vw;
    font-weight: 800;
    margin-bottom: 0.208vw;
  }
  
  .consultant-title {
    font-size: 0.677vw;
    color: var(--secondary);
    margin-bottom: 1.145vw;
    opacity: 0.9;
  }
  
  .consultant-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.416vw;
    padding: 0.833vw;
    background: rgba(255, 255, 255, 0.05);
    border-radius: var(--radius-md);
    border: 0.052vw solid rgba(255, 255, 255, 0.08);
  }
  
  .stat-item {
    display: flex;
    flex-direction: column;
  }
  
  .stat-num {
    font-size: 1.145vw;
    font-weight: 800;
    color: var(--secondary);
    font-family: -apple-system, "SF Pro Display", sans-serif;
  }
  
  .stat-label {
    font-size: 0.625vw;
    opacity: 0.7;
    margin-top: 0.104vw;
  }
  
  .consultant-right {
    padding: 1.666vw;
  }
  
  .cons-block {
    margin-bottom: 1.145vw;
  }
  
  .cons-block:last-child {
    margin-bottom: 0;
  }
  
  .cons-block-title {
    font-size: 0.677vw;
    font-weight: 800;
    color: var(--grey-700);
    margin-bottom: 0.52vw;
    letter-spacing: 0vw;
  }
  
  .cons-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.312vw;
  }
  
  .cons-tag {
    padding: 0.364vw 0.729vw;
    background: var(--grey-100);
    color: var(--primary);
    border-radius: 52.031vw;
    font-size: 0.833vw;
    font-weight: 400;
  }
  
  .cons-advantages {
    list-style: none;
  }
  
  .cons-advantages li {
    padding-left: 1.041vw;
    position: relative;
    font-size: 0.833vw;
    color: var(--grey-700);
    line-height: 1.8;
    padding-top: 0.208vw;
    padding-bottom: 0.208vw;
  }
  
  .cons-advantages li::before {
    content: "◆";
    position: absolute;
    left: 0.208vw;
    top: 0.312vw;
    color: var(--secondary-deep);
    font-size: 0.52vw;
  }
  
  .promise-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.416vw;
  }
  
  .promise-item {
    display: flex;
    align-items: center;
    gap: 0.416vw;
    padding: 0.52vw 0.729vw;
    background: var(--light-bg);
    border: 0.052vw solid var(--grey-200);
    border-radius: var(--radius-sm);
    font-size: 0.833vw;
    font-weight: 700;
    color: var(--primary);
  }
  
  .promise-icon {
    font-size: 0.833vw;
  }
  
  /* 联系卡片 */
  .contact-card {
    max-width: 50vw;
    margin: 1.562vw auto 2.187vw;
    border-radius: var(--radius-xl);
  }
  
  .contact-info {
    line-height: 1.8;
    max-width: 33.333vw;
    margin: 0 auto;
    text-align: center;
  }
  
  .contact-text {
    font-size: 0.833vw;
    color: var(--grey-700);
  }
  
  .contact-text strong {
    color: var(--primary);
    font-weight: 800;
    background: var(--secondary);
    padding: 0 0.208vw;
    border-radius: 0.208vw;
  }
  
  .page-consultant .ghost-btn {
    width: 16.666vw;
    justify-content: center;
  }
  
  .page-consultant .cta-btn {
    width: 16.666vw;
    justify-content: center;
  }
  
  /* ============== 底部 ============== */
  .ai-foot {
    text-align: center;
    padding: 1.666vw 0.833vw;
    font-size: 0.625vw;
    color: var(--grey-500);
  }
  
  /* ============================================================
  极简商务主题（固定启用）
  参考 mfsunny 联系页：白底、高对比、细线、克制动效
  ============================================================ */
  
  html[data-theme="mfsunny"] {
    --primary: #0a0a0a;
    --primary-soft: #1a1a1a;
    --secondary: #f0f0f0;
    --secondary-deep: #0a0a0a;
    --accent: #0a0a0a;
    --accent-soft: #f5f5f5;
    --light-bg: #ffffff;
    --grey-50: #fafafa;
    --grey-100: #f5f5f5;
    --grey-200: #e5e5e5;
    --grey-300: #d4d4d4;
    --grey-500: #737373;
    --grey-700: #404040;
    --radius-sm: 0.104vw;
    --radius-md: 0.208vw;
    --radius-lg: 0.312vw;
    --radius-xl: 0.416vw;
    --shadow-sm: 0 0.052vw 0 rgba(0, 0, 0, 0.06);
    --shadow-md: 0 0.104vw 0.416vw rgba(0, 0, 0, 0.06);
    --shadow-lg: 0 0.416vw 1.666vw rgba(0, 0, 0, 0.08);
  }
  
  html[data-theme="mfsunny"],
  html[data-theme="mfsunny"] body {
    background: #ffffff;
  }
  
  html[data-theme="mfsunny"] .ai-topbar {
    background: #fff;
    border-bottom-color: #e5e5e5;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  
  html[data-theme="mfsunny"] .ai-step {
    border-radius: 0.104vw;
  }
  
  html[data-theme="mfsunny"] .ai-step.done {
    color: #525252;
  }
  
  html[data-theme="mfsunny"] .ai-step.active {
    background: #0a0a0a;
    color: #fff;
    box-shadow: none;
  }
  
  html[data-theme="mfsunny"] .welcome-glow {
    display: none;
  }
  
  html[data-theme="mfsunny"] .grad-text {
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: currentColor;
    color: #0a0a0a;
  }
  
  html[data-theme="mfsunny"] .welcome-bot-avatar {
    background: #f5f5f5;
    box-shadow: none;
    border: 0.052vw solid #e5e5e5;
  }
  
  html[data-theme="mfsunny"] .welcome-bot-avatar::before,
  html[data-theme="mfsunny"] .welcome-bot-avatar::after {
    background: #e5e5e5;
  }
  
  html[data-theme="mfsunny"] .welcome-dot {
    background: #0a0a0a;
    box-shadow: none;
    animation: none;
  }
  
  html[data-theme="mfsunny"] .flow-step {
    border-radius: 0.104vw;
    border-color: #e5e5e5;
  }
  
  html[data-theme="mfsunny"] .cta-btn {
    border-radius: 0.104vw;
    box-shadow: none;
    background: #0a0a0a;
  }
  
  html[data-theme="mfsunny"] .cta-btn:hover:not(:disabled) {
    transform: none;
    background: #262626;
    box-shadow: none;
  }
  
  html[data-theme="mfsunny"] .ghost-btn {
    border-radius: 0.104vw;
  }
  
  html[data-theme="mfsunny"] .chat-progress {
    border-radius: 0;
    height: 0.208vw;
  }
  
  html[data-theme="mfsunny"] .chat-progress-fill {
    background: #0a0a0a;
    border-radius: 0;
  }
  
  html[data-theme="mfsunny"] .chat-frame {
    border-radius: 0.104vw;
    box-shadow: var(--shadow-sm);
  }
  
  html[data-theme="mfsunny"] .chat-msg.ai .chat-avatar {
    background: #f0f0f0;
    color: #0a0a0a;
    border: 0.052vw solid #e5e5e5;
  }
  
  html[data-theme="mfsunny"] .chat-msg.user .chat-avatar {
    background: #0a0a0a;
    color: #fff;
  }
  
  html[data-theme="mfsunny"] .chat-option {
    border-radius: 0;
    background: transparent;
  }
  
  html[data-theme="mfsunny"] .chat-option::before {
    border-color: #0a0a0a;
  }
  
  html[data-theme="mfsunny"] .chat-option:hover {
    background: rgba(10, 10, 10, 0.04);
  }
  
  html[data-theme="mfsunny"] .chat-option.selected {
    background: transparent;
    color: #0a0a0a;
  }
  
  html[data-theme="mfsunny"] .chat-option.selected::before {
    border-color: #0a0a0a;
    background:
      linear-gradient(#fff, #fff) center / 42% 42% no-repeat,
      #0a0a0a;
  }
  
  html[data-theme="mfsunny"] .survey-block {
    border-radius: 0.104vw;
    box-shadow: var(--shadow-sm);
  }
  
  html[data-theme="mfsunny"] .survey-block--customer {
    border-radius: 0;
  }
  
  html[data-theme="mfsunny"] .chat-customer-form,
  html[data-theme="mfsunny"] .chat-customer-input {
    border-radius: 0;
  }
  
  html[data-theme="mfsunny"] .chat-input-row input {
    border-radius: 0.104vw;
  }
  
  html[data-theme="mfsunny"] .qa-panel {
    border-radius: 0.104vw;
    box-shadow: var(--shadow-sm);
    border-color: #e5e5e5;
  }
  
  html[data-theme="mfsunny"] .qa-next-btn {
    border-radius: 0.104vw;
    background: #0a0a0a;
  }
  
  html[data-theme="mfsunny"] .qa-next-btn:hover:not(:disabled) {
    background: #262626;
    transform: none;
  }
  
  html[data-theme="mfsunny"] .loading-orb {
    filter: grayscale(1);
    opacity: 0.85;
  }
  
  html[data-theme="mfsunny"] .summary-head,
  html[data-theme="mfsunny"] .plan-card,
  html[data-theme="mfsunny"] .consultant-card,
  html[data-theme="mfsunny"] .contact-card,
  html[data-theme="mfsunny"] .goal-card {
    border-radius: 0.104vw;
  }
  
  html[data-theme="mfsunny"] .plan-recommended .plan-tag,
  html[data-theme="mfsunny"] .plan-b .plan-tag {
    background: #0a0a0a;
    color: #fff;
  }
  
  html[data-theme="mfsunny"] .plan-card.plan-selected {
    box-shadow:
      inset 0 0 0 0.052vw #0a0a0a,
      var(--shadow-sm);
  }
  
  html[data-theme="mfsunny"] .addon-card.selected {
    border-color: #0a0a0a;
    box-shadow: inset 0 0 0 0.052vw #0a0a0a;
  }
  
  html[data-theme="mfsunny"] .ai-foot {
    border-top: 0.052vw solid #e5e5e5;
    color: #737373;
  }