    * { box-sizing: border-box; }
    :root {
      --page: #f5f5f7;
      --panel: rgba(255, 255, 255, .92);
      --panel-strong: #ffffff;
      --text: #1d1d1f;
      --muted: #6e6e73;
      --line: rgba(0, 0, 0, .08);
      --blue: #0071e3;
      --blue-dark: #0066cc;
      --blue-soft: #e8f2ff;
      --green: #168a45;
      --orange: #b85d00;
      --red: #c72c2c;
      --shadow: 0 6px 18px rgba(0, 0, 0, .045);
      --radius: 6px;
    }
    body {
      margin: 0;
      color: var(--text);
      background: var(--page);
      font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
    }
    .app {
      min-height: 100vh;
      display: block;
    }
    .sidebar {
      position: sticky;
      top: 0;
      z-index: 10;
      display: flex;
      align-items: center;
      gap: 18px;
      height: 48px;
      padding: 0 24px;
      color: var(--text);
      background: rgba(245, 245, 247, .82);
      border-bottom: 1px solid var(--line);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
    }
    .brand {
      flex: 0 0 auto;
      padding: 0;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 15px;
      line-height: 1;
      font-weight: 800;
      letter-spacing: 0;
      white-space: nowrap;
    }
    .brand img {
      width: 28px;
      height: 28px;
      border-radius: 7px;
      display: block;
      box-shadow: 0 6px 16px rgba(0, 91, 200, .18);
    }
    .brand br { display: none; }
    .nav {
      display: flex;
      align-items: center;
      gap: 4px;
      overflow-x: auto;
      scrollbar-width: none;
    }
    .nav::-webkit-scrollbar { display: none; }
    .nav button {
      width: auto;
      height: 30px;
      margin: 0;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: var(--muted);
      text-align: center;
      padding: 0 10px;
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      white-space: nowrap;
    }
    .nav button.active,
    .nav button:hover {
      background: #ffffff;
      color: var(--text);
      box-shadow: 0 1px 8px rgba(0, 0, 0, .06);
    }
    .sidebar-note {
      margin-left: auto;
      width: auto;
      color: var(--muted);
      font-size: 12px;
      line-height: 1;
      white-space: nowrap;
    }
    .sidebar-note br { display: none; }
    main {
      max-width: 1280px;
      margin: 0 auto;
      padding: 16px 20px 40px;
      overflow: auto;
    }
    .header {
      display: flex;
      justify-content: space-between;
      align-items: end;
      gap: 12px;
      margin: 0 auto 12px;
      text-align: left;
    }
    .header-main {
      display: flex;
      align-items: center;
      gap: 10px;
      min-width: 0;
    }
    .page-back {
      flex: 0 0 auto;
      min-height: 34px;
      padding: 0 11px;
      border: 1px solid var(--line);
      border-radius: 9px;
      background: #fff;
      color: var(--ink);
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }
    .page-back:hover {
      border-color: rgba(0, 113, 227, .28);
      color: var(--blue);
      background: var(--blue-soft);
    }
    h1 {
      margin: 0;
      font-size: 22px;
      line-height: 1.15;
      font-weight: 800;
      letter-spacing: 0;
    }
    .sub {
      max-width: 820px;
      margin: 3px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
    }
    .badge {
      display: inline-flex;
      align-items: center;
      height: 28px;
      margin-top: 0;
      padding: 0 10px;
      border-radius: 999px;
      background: rgba(255, 255, 255, .7);
      color: var(--blue);
      line-height: 28px;
      font-size: 12px;
      font-weight: 800;
      white-space: nowrap;
      border: 1px solid var(--line);
      box-shadow: 0 8px 30px rgba(0, 0, 0, .04);
    }
    .header-status { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
    .service-badge {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 0 9px;
      border-radius: 999px;
      background: #f1f8f5;
      color: #176045;
      border: 1px solid rgba(17,132,93,.18);
      font-size: 11px;
      font-weight: 760;
      white-space: nowrap;
    }
    .service-badge::before {
      content: "";
      width: 7px;
      height: 7px;
      margin-right: 6px;
      border-radius: 50%;
      background: currentColor;
      box-shadow: 0 0 0 3px rgba(40,116,84,.1);
    }
    .service-badge.is-attention { border-color: #ead7b4; background: #fbf6eb; color: #8c621c; }
    .service-badge.is-attention::before { box-shadow: 0 0 0 3px rgba(140,98,28,.1); }
    .header-status .badge {
      min-width: 0;
      max-width: 84px;
      justify-content: center;
    }
    .card-title-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 14px;
    }
    .card-title-row .card-title { margin-bottom: 0; }
    .inquiry-clear-button {
      min-height: 34px;
      padding: 0 12px;
      flex: 0 0 auto;
    }
    .page { display: none; }
    .page.active {
      display: block;
      animation: pageEnter .28s cubic-bezier(.2,.72,.25,1) both;
    }
    .page.active > * {
      animation: contentRise .34s cubic-bezier(.2,.72,.25,1) both;
    }
    .page.active > *:nth-child(2) { animation-delay: .035s; }
    .page.active > *:nth-child(3) { animation-delay: .07s; }
    .page.active > *:nth-child(4) { animation-delay: .105s; }
    .is-hidden { display: none !important; }
    .grid-2 {
      display: grid;
      grid-template-columns: minmax(360px, 1fr) minmax(360px, 1fr);
      gap: 12px;
    }
    .grid-3 {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }
    .member-grid {
      display: grid;
      grid-template-columns: minmax(360px, .85fr) minmax(420px, 1.15fr);
      gap: 12px;
      align-items: start;
    }
    .plan-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
      gap: 12px;
      margin-top: 12px;
    }
    .card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--panel);
      padding: 12px;
      box-shadow: var(--shadow);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    }
    .btn,
    .nav button,
    .gpt-send,
    .gpt-upload,
    .page-back,
    .home-daily-metric {
      transition: transform .16s ease, background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
    }
    .btn:active,
    .nav button:active,
    .gpt-send:active,
    .gpt-upload:active,
    .page-back:active,
    .home-daily-metric:active {
      transform: scale(.975);
    }
    tr td { transition: background-color .18s ease; }
    .card-title {
      margin-bottom: 8px;
      font-size: 16px;
      font-weight: 800;
      letter-spacing: 0;
    }
    .ask-ai-card {
      border-color: rgba(0, 113, 227, .24);
      background: linear-gradient(180deg, #ffffff, #f7fbff);
      box-shadow: 0 16px 38px rgba(0, 113, 227, .09);
    }
    .ask-ai-card .card-title {
      font-size: 20px;
      margin-bottom: 6px;
    }
    .ask-ai-card textarea {
      min-height: 112px;
      font-size: 14px;
      border-color: rgba(0, 113, 227, .22);
      background: #fff;
    }
    .plain-guide {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin: 10px 0;
    }
    .plain-step {
      border: 1px solid #e6edf7;
      border-radius: 8px;
      background: #fff;
      padding: 10px;
      min-height: 76px;
      line-height: 1.35;
    }
    .plain-step span {
      display: block;
      color: var(--blue);
      font-size: 12px;
      font-weight: 900;
      margin-bottom: 4px;
    }
    .plain-step strong {
      display: block;
      font-size: 14px;
      margin-bottom: 3px;
    }
    .plain-step em {
      display: block;
      color: var(--muted);
      font-size: 12px;
      font-style: normal;
    }
    .simple-actions {
      display: grid;
      grid-template-columns: 1.15fr .85fr .85fr;
      gap: 8px;
      margin-top: 10px;
    }
    .simple-actions .btn {
      min-height: 42px;
    }
    .gpt-home {
      --home-composer-height: 220px;
      min-height: calc(100vh - 100px);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      padding: 68px 0 30px;
    }
    .home-workbench {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 16px;
      align-items: start;
    }
    .home-workbench-main { min-width: 0; }
    .home-customer-rail,
    .home-customer-context-panel {
      display: none;
      position: sticky;
      top: 18px;
      max-height: calc(100vh - 116px);
      overflow: hidden;
      border: 1px solid #e1e7ef;
      border-radius: 16px;
      background: rgba(255,255,255,.9);
      box-shadow: 0 14px 34px rgba(24,34,48,.07);
    }
    .home-workbench.has-multiple {
      grid-template-columns: 230px minmax(0, 1fr) 230px;
    }
    .home-workbench.has-multiple .home-customer-rail,
    .home-workbench.has-multiple .home-customer-context-panel { display: block; }
    .home-workbench.has-multiple .gpt-home { padding-top: 34px; }
    .home-workbench.has-multiple .gpt-shell { width: min(760px, 100%); }
    .home-workbench.has-multiple .home-new-customer { display: none; }
    .home-workbench.has-multiple .home-customer-context {
      grid-template-columns: auto minmax(150px, .8fr) minmax(190px, 1.2fr);
    }
    .home-rail-head,
    .home-context-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      padding: 14px;
      border-bottom: 1px solid #edf0f4;
    }
    .home-rail-head strong,
    .home-context-head strong { font-size: 13px; }
    .home-rail-head span { color: var(--muted); font-size: 10px; }
    .home-rail-new,
    .home-mobile-back {
      min-height: 30px;
      border: 1px solid #d9e5f3;
      border-radius: 9px;
      background: #edf5ff;
      color: #1459b8;
      padding: 0 9px;
      cursor: pointer;
      font-size: 11px;
      font-weight: 820;
    }
    .home-mobile-back { display: none; }
    .home-session-search { padding: 10px 12px; border-bottom: 1px solid #edf0f4; }
    .home-session-search input { width: 100%; height: 34px; border-radius: 9px; font-size: 11px; }
    .home-session-list { max-height: calc(100vh - 240px); overflow: auto; padding: 7px; }
    .home-session-item {
      position: relative;
      width: 100%;
      display: grid;
      grid-template-columns: minmax(0,1fr) auto;
      gap: 5px 8px;
      border: 1px solid transparent;
      border-radius: 11px;
      background: transparent;
      min-height: 70px;
      padding: 10px 44px 10px 10px;
      text-align: left;
      cursor: pointer;
    }
    .home-session-item:hover { background: #f6f9fd; }
    .home-session-item.active { border-color: rgba(23,105,220,.2); background: #edf5ff; }
    .home-session-item strong,
    .home-session-item span,
    .home-session-item em { display: block; min-width: 0; }
    .home-session-item strong { overflow: hidden; color: #182230; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
    .home-session-item span { margin-top: 3px; overflow: hidden; color: #697586; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
    .home-session-item em { grid-column: 1; color: #8a95a3; font-size: 9px; font-style: normal; }
    .home-session-badge { align-self: start; border-radius: 999px; background: #fff3d8; color: #9b6400; padding: 3px 6px; font-size: 8px; font-weight: 850; white-space: nowrap; }
    .home-session-badge.processing { background:#e8f2ff; color:#1769c7; }
    .home-session-badge.processing::before { content:""; display:inline-block; width:6px; height:6px; margin-right:4px; border:1.5px solid currentColor; border-right-color:transparent; border-radius:50%; vertical-align:-1px; animation:home-session-spin .8s linear infinite; }
    .home-session-badge.completed { background:#e6f8ee; color:#087a43; }
    .home-session-badge.failed { background:#fff0ee; color:#b83b32; }
    @keyframes home-session-spin { to { transform:rotate(360deg); } }
    .home-session-delete {
      position: absolute;
      z-index: 4;
      top: 50%;
      right: 8px;
      display: grid;
      place-items: center;
      width: 30px;
      height: 30px;
      padding: 0;
      transform: translateY(-50%);
      border: 1px solid transparent;
      border-radius: 999px;
      background: transparent;
      color: #8793a2;
      cursor: pointer;
      font-size: 18px;
      line-height: 1;
    }
    .home-session-delete:hover { border-color: #f4c8c3; background: #fff1ef; color: #c23c31; }
    .home-session-delete:focus-visible { outline: 3px solid rgba(23,105,220,.22); outline-offset: 1px; }
    .home-context-body { padding: 14px; }
    .home-context-customer { padding-bottom: 12px; border-bottom: 1px solid #edf0f4; }
    .home-context-customer strong,
    .home-context-customer span { display: block; }
    .home-context-customer strong { font-size: 15px; }
    .home-context-customer span { margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.45; }
    .home-context-progress { display: grid; gap: 8px; margin-top: 12px; }
    .home-context-step { display: grid; grid-template-columns: 8px minmax(0,1fr); gap: 8px; align-items: start; }
    .home-context-step i { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: #cbd3dd; }
    .home-context-step.done i { background: #11845d; }
    .home-context-step.active i { background: #1769dc; box-shadow: 0 0 0 4px rgba(23,105,220,.1); }
    .home-context-step strong,
    .home-context-step span { display: block; }
    .home-context-step strong { font-size: 11px; }
    .home-context-step span { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.35; }
    .home-context-actions { display: grid; gap: 7px; margin-top: 14px; }
    .home-context-actions .btn { width: 100%; min-height: 34px; padding: 7px 9px; font-size: 10px; box-shadow: none; }
    .home-conversation-mobile-bar { display: none; }
    .gpt-shell {
      width: min(760px, 100%);
      margin: 0 auto;
      animation: homeEnter .55s cubic-bezier(.2,.75,.25,1) both;
    }
    .gpt-heading {
      position: relative;
      text-align: center;
      margin-bottom: 26px;
    }
    .home-help-button {
      position: absolute;
      top: -38px;
      right: 0;
      border: 0;
      background: transparent;
      color: var(--muted);
      cursor: pointer;
      font-size: 11px;
      font-weight: 750;
    }
    .home-help-button:hover { color: var(--blue); }
    .home-help-button.is-first-use {
      padding: 7px 11px;
      border: 1px solid rgba(0, 113, 227, .2);
      border-radius: 999px;
      background: #eef6ff;
      color: var(--blue);
      box-shadow: 0 6px 18px rgba(0, 113, 227, .1);
    }
    .gpt-kicker {
      display: block;
      margin-bottom: 10px;
      color: var(--blue);
      font-size: 12px;
      font-weight: 850;
    }
    .gpt-heading h2 {
      margin: 0 0 9px;
      font-size: 36px;
      line-height: 1.12;
      letter-spacing: 0;
    }
    .gpt-heading p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.6;
      transition: opacity .2s ease, transform .2s ease;
    }
    .gpt-heading p.is-changing {
      opacity: 0;
      transform: translateY(4px);
    }
    .gpt-composer {
      border: 1px solid #d5d5da;
      border-radius: 8px;
      background: #fff;
      box-shadow: 0 14px 42px rgba(15, 23, 42, .09);
      padding: 12px;
      transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    }
    .gpt-composer:focus-within {
      border-color: #a5a5ab;
      box-shadow: 0 18px 48px rgba(15, 23, 42, .13);
      transform: translateY(-1px);
    }
    .home-customer-context {
      display: grid;
      grid-template-columns: auto minmax(150px, .65fr) minmax(190px, 1.35fr) auto;
      align-items: center;
      gap: 8px;
      padding: 0 7px 9px;
      border-bottom: 1px solid #ededf0;
      color: var(--muted);
      font-size: 12px;
    }
    .home-customer-context label {
      color: #3a3a3c;
      font-weight: 820;
      white-space: nowrap;
    }
    .home-customer-context input {
      min-width: 0;
      height: 34px;
      padding: 0 10px;
      border: 1px solid #d9d9de;
      border-radius: 8px;
      background: #f8f8fa;
      font-size: 13px;
      font-weight: 760;
    }
    .home-memory-status {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .home-memory-status.is-saved { color: #067647; }
    .home-new-customer {
      border: 0;
      background: transparent;
      color: var(--blue);
      cursor: pointer;
      font-size: 12px;
      font-weight: 820;
      white-space: nowrap;
    }
    .home-chat-record-actions {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 9px 7px 10px;
      border-bottom: 1px solid #ededf0;
      background: linear-gradient(90deg, rgba(247,250,254,.9), rgba(255,255,255,.45));
    }
    .home-chat-record-copy {
      min-width: 0;
      display: flex;
      align-items: baseline;
      gap: 7px;
    }
    .home-chat-record-copy strong {
      flex: 0 0 auto;
      color: #3a3a3c;
      font-size: 11px;
      font-weight: 850;
    }
    .home-chat-record-copy em {
      min-width: 0;
      overflow: hidden;
      color: #718096;
      font-size: 10px;
      font-style: normal;
      line-height: 1.4;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .home-chat-record-buttons {
      display: flex;
      align-items: center;
      gap: 7px;
      flex: 0 0 auto;
    }
    .home-chat-record-button {
      min-height: 31px;
      border: 1px solid #d9e5f3;
      border-radius: 9px;
      background: #edf5ff;
      color: #1459b8;
      padding: 0 10px;
      cursor: pointer;
      font-size: 10px;
      font-weight: 830;
      white-space: nowrap;
      transition: border-color .18s ease, background .18s ease, color .18s ease;
    }
    .home-chat-record-button:hover { border-color: #b9d8fb; background: #e5f1ff; }
    .home-chat-record-button.is-saved { border-color: #b9e3d2; background: #eaf8f1; color: #067647; }
    .home-chat-record-button.is-danger { border-color: #e2e7ee; background: #fff; color: #687588; }
    .home-chat-record-button.is-danger:hover { border-color: #f0c7c3; background: #fff4f2; color: #b42318; }
    .home-chat-record-button:disabled { cursor: wait; opacity: .58; }
    .gpt-composer textarea {
      width: 100%;
      min-height: 140px;
      max-height: 250px;
      padding: 8px 8px 12px;
      border: 0;
      outline: none;
      resize: none;
      box-shadow: none;
      background: transparent;
      font-size: 15px;
      line-height: 1.55;
    }
    .home-image-modes {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 10px;
      margin: 2px 6px 10px;
    }
    .home-image-mode {
      min-width: 0;
      min-height: 86px;
      display: grid;
      grid-template-columns: 38px minmax(0, 1fr);
      align-items: center;
      gap: 10px;
      padding: 12px;
      border: 1px solid #e0e5ec;
      border-radius: 14px;
      background: #f8fafc;
      color: #263244;
      text-align: left;
      cursor: pointer;
      transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
    }
    .home-image-mode:hover {
      border-color: #b9cbe1;
      background: #f3f8ff;
      transform: translateY(-1px);
    }
    .home-image-mode.active {
      border-color: #1769dc;
      background: #edf5ff;
      box-shadow: 0 0 0 3px rgba(23,105,220,.08);
    }
    .home-image-mode-icon {
      width: 38px;
      height: 38px;
      display: grid;
      place-items: center;
      border-radius: 11px;
      background: #fff;
      color: #1769dc;
      box-shadow: inset 0 0 0 1px rgba(23,105,220,.12);
      font-size: 17px;
      font-style: normal;
      font-weight: 900;
    }
    .home-image-mode-copy { min-width: 0; }
    .home-image-mode-copy strong,
    .home-image-mode-copy span { display: block; }
    .home-image-mode-copy strong { font-size: 13px; font-weight: 880; line-height: 1.3; }
    .home-image-mode-copy span { margin-top: 4px; color: #6b7789; font-size: 10px; line-height: 1.4; }
    .home-image-mode.active .home-image-mode-copy strong { color: #1459b8; }
    .home-image-mode-status {
      display: flex;
      align-items: center;
      gap: 7px;
      margin: 0 7px;
      color: #526273;
      font-size: 11px;
      font-weight: 720;
      line-height: 1.45;
    }
    .home-image-mode-status::before {
      content: "";
      width: 6px;
      height: 6px;
      flex: 0 0 6px;
      border-radius: 50%;
      background: #1769dc;
    }
    .gpt-home .home-daily-brief,
    .gpt-home .home-demo-teaser,
    .gpt-home .home-demo-panel,
    .gpt-home .home-help-button,
    .gpt-home .home-share-hint { display:none; }
    .home-workbench.image-studio-only,
    .home-workbench.image-studio-only.has-multiple {
      display: block;
    }
    .image-studio-only .home-customer-rail,
    .image-studio-only .home-conversation-mobile-bar,
    .image-studio-only .home-customer-context-panel,
    .image-studio-only .home-customer-context,
    .image-studio-only .home-chat-record-actions,
    .image-studio-only .home-customer-match,
    .image-studio-only .home-privacy-note,
    .image-studio-only .home-share-hint,
    .image-studio-only .home-retained-file,
    .image-studio-only .chat-history,
    .image-studio-only .chat-user-row,
    .image-studio-only .chat-assistant-avatar,
    .image-studio-only .chat-assistant-name,
    .image-studio-only .home-next-decision,
    .image-studio-only .home-secondary { display:none !important; }
    .home-workbench.image-studio-only .gpt-home { padding-top: 54px; }
    .home-workbench.image-studio-only.has-multiple .gpt-shell { width: min(920px, 100%); }
    .image-studio-only .chat-assistant-row { display:block; }
    .image-studio-only .chat-assistant-content { width:100%; }
    .gpt-composer-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding-top: 5px;
    }
    .home-privacy-note {
      display: flex;
      align-items: center;
      gap: 7px;
      margin: 7px 7px 0;
      color: #067647;
      font-size: 11px;
      font-weight: 720;
      line-height: 1.45;
    }
    .home-privacy-note i {
      width: 17px;
      height: 17px;
      display: inline-grid;
      flex: 0 0 17px;
      place-items: center;
      border-radius: 50%;
      background: #e8f7ef;
      font-style: normal;
      font-size: 10px;
    }
    .gpt-left-tools,
    .gpt-right-tools {
      display: flex;
      align-items: center;
      gap: 9px;
      min-width: 0;
    }
    .gpt-upload,
    .gpt-send {
      width: 38px;
      height: 38px;
      flex: 0 0 38px;
      display: inline-grid;
      place-items: center;
      padding: 0;
      border-radius: 50%;
      cursor: pointer;
    }
    .gpt-upload {
      border: 1px solid var(--line);
      background: #fff;
      color: #1d1d1f;
      font-size: 22px;
      font-weight: 400;
      transition: background .2s ease, border-color .2s ease;
    }
    .gpt-upload:hover {
      border-color: #b8b8be;
      background: #f5f5f7;
    }
    .gpt-upload.is-disabled {
      border-color: #e4e7eb;
      background: #f4f5f7;
      color: #a1a8b2;
      cursor: default;
      pointer-events: none;
    }
    .gpt-file-name {
      max-width: 220px;
      overflow: hidden;
      color: var(--muted);
      font-size: 12px;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .home-composer-shortcuts { display: none; }
    .home-composer-shortcuts button {
      height: 30px;
      flex: 0 0 auto;
      padding: 0 10px;
      border: 1px solid #e2e2e7;
      border-radius: 999px;
      background: #f8f8fa;
      color: #4b4b52;
      cursor: pointer;
      font-size: 11px;
      font-weight: 780;
      white-space: nowrap;
      transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
    }
    .home-composer-shortcuts button:hover {
      border-color: #b9d8fb;
      background: #eef6ff;
      color: var(--blue);
      transform: translateY(-1px);
    }
    .home-composer-shortcuts button.active {
      border-color: rgba(0, 113, 227, .42);
      background: #eaf4ff;
      color: #0567c7;
      box-shadow: 0 0 0 3px rgba(0, 113, 227, .06);
    }
    .home-intent-hint {
      display: flex;
      align-items: center;
      gap: 7px;
      margin: 9px 4px 0;
      color: #526273;
      font-size: 11px;
      font-weight: 680;
      line-height: 1.5;
    }
    .home-intent-hint::before {
      content: "✓";
      width: 17px;
      height: 17px;
      flex: 0 0 17px;
      display: inline-grid;
      place-items: center;
      border-radius: 50%;
      background: #eaf4ff;
      color: #0567c7;
      font-size: 10px;
      font-weight: 900;
    }
    .home-retained-file {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin: 9px 4px 0;
      padding: 8px 10px;
      border: 1px solid rgba(5, 103, 199, .18);
      border-radius: 10px;
      background: #f4f9ff;
      color: #294968;
      font-size: 11px;
      font-weight: 720;
      line-height: 1.45;
    }
    .home-retained-file span {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .home-retained-file button {
      flex: 0 0 auto;
      padding: 2px 0;
      border: 0;
      background: transparent;
      color: var(--blue);
      cursor: pointer;
      font: inherit;
      font-weight: 820;
    }
    .home-customer-match {
      display: flex;
      align-items: center;
      gap: 9px;
      margin: 9px 4px 0;
      border: 1px solid rgba(17,132,93,.2);
      border-radius: 10px;
      background: #f3fbf7;
      padding: 9px 10px;
      color: #315b49;
      font-size: 11px;
      line-height: 1.45;
    }
    .home-customer-match span { min-width: 0; flex: 1; }
    .home-customer-match strong { color: #0b6b46; }
    .home-customer-match button {
      flex: 0 0 auto;
      min-height: 28px;
      border: 1px solid #cfe8dc;
      border-radius: 8px;
      background: #fff;
      color: #0b6b46;
      padding: 0 8px;
      cursor: pointer;
      font-size: 10px;
      font-weight: 820;
    }
    .home-customer-match button.primary { border-color: #11845d; background: #11845d; color: #fff; }
    .gpt-send {
      width: auto;
      min-width: 124px;
      min-height: 42px;
      padding: 0 17px;
      border-radius: 12px;
      border: 0;
      color: #fff;
      background: #1d1d1f;
      font-size: 12px;
      font-weight: 850;
      line-height: 1;
      transition: transform .18s ease, background .18s ease;
    }
    .gpt-send:hover {
      background: var(--blue);
      transform: translateY(-1px);
    }
    .gpt-send:disabled {
      cursor: wait;
      opacity: .55;
      transform: none;
    }
    .gpt-right-tools .gpt-send { width: auto; flex: 0 0 auto; }
    .home-deep-analysis {
      min-height: 34px;
      padding: 0 12px;
      border: 1px solid #d7dce5;
      border-radius: 999px;
      background: #f7f8fa;
      color: #465366;
      cursor: pointer;
      font-size: 11px;
      font-weight: 820;
      white-space: nowrap;
      transition: border-color .18s ease, background .18s ease, color .18s ease;
    }
    .home-deep-analysis:hover,
    .home-deep-analysis.active {
      border-color: rgba(0, 113, 227, .42);
      background: #eaf4ff;
      color: #0567c7;
    }
    .home-deep-analysis.is-unavailable,
    .home-deep-analysis:disabled {
      border-color: #e3e6eb;
      background: #f3f4f6;
      color: #9aa2ad;
      cursor: not-allowed;
      opacity: .78;
    }
    .home-detail-package {
      min-height: 34px;
      padding: 0 12px;
      border: 1px solid rgba(209, 113, 22, .28);
      border-radius: 999px;
      background: #fff7ed;
      color: #a14f08;
      cursor: pointer;
      font-size: 11px;
      font-weight: 850;
      white-space: nowrap;
      transition: border-color .18s ease, background .18s ease, color .18s ease;
    }
    .home-detail-package:hover {
      border-color: rgba(209, 113, 22, .52);
      background: #ffedd5;
      color: #8b3d00;
    }
    .home-detail-package:disabled { cursor: wait; opacity: .55; }
    .gpt-suggestions {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin: 16px 0 0;
      color: #77777d;
      font-size: 12px;
    }
    .gpt-suggestions-label { grid-column: 1 / -1; color: #6e6e73; font-size: 11px; font-weight: 760; }
    .home-daily-brief {
      margin-top: 20px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: rgba(255,255,255,.82);
      box-shadow: 0 10px 28px rgba(15,23,42,.05);
      overflow: hidden;
    }
    .home-daily-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: center;
      padding: 11px 13px 8px;
    }
    .home-daily-head strong { font-size: 13px; }
    .home-daily-head span { color: var(--muted); font-size: 11px; }
    .home-daily-metrics {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      border-top: 1px solid var(--line);
    }
    .home-daily-metric {
      padding: 11px 13px;
      border-right: 1px solid var(--line);
      cursor: pointer;
    }
    .home-daily-metric:last-child { border-right: 0; }
    .home-daily-metric span,
    .home-daily-metric strong { display: block; }
    .home-daily-metric span { color: var(--muted); font-size: 11px; }
    .home-daily-metric strong { margin-top: 3px; font-size: 18px; }
    .home-daily-next {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 10px 13px;
      border-top: 1px solid var(--line);
      background: #f9fafb;
      color: var(--muted);
      font-size: 11px;
    }
    .home-daily-next strong { color: var(--ink); font-size: 12px; }
    .home-priority-three { border-top:1px solid var(--line); background:#f9fafb; }
    .home-priority-row { display:grid; grid-template-columns:22px minmax(0,1fr) auto; align-items:center; gap:9px; padding:9px 13px; border-bottom:1px solid #eceff3; }
    .home-priority-row:last-child { border-bottom:0; }
    .home-priority-rank { width:22px; height:22px; display:grid; place-items:center; border-radius:7px; background:#17202d; color:#fff; font-size:9px; font-weight:900; }
    .home-priority-copy strong, .home-priority-copy span { display:block; }
    .home-priority-copy strong { font-size:11px; line-height:1.35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .home-priority-copy span { margin-top:2px; color:var(--muted); font-size:9px; line-height:1.35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .home-priority-row .btn { min-height:28px; padding:5px 8px; font-size:9px; box-shadow:none; }
    .home-daily-empty {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 13px;
      border-top: 1px solid var(--line);
      background: linear-gradient(135deg, #f7fbff, #fff);
    }
    .home-daily-empty strong,
    .home-daily-empty span { display: block; }
    .home-daily-empty strong { font-size: 13px; }
    .home-daily-empty span { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.5; }
    .home-business-pulse {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-top: 10px;
    }
    .home-pulse-item {
      min-height: 72px;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: rgba(255,255,255,.78);
      padding: 10px 11px;
    }
    .home-pulse-item span,
    .home-pulse-item strong,
    .home-pulse-item em { display: block; }
    .home-pulse-item span { color: var(--muted); font-size: 10px; }
    .home-pulse-item strong { margin-top: 4px; font-size: 17px; }
    .home-pulse-item em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.35; }
    .report-studio-page { max-width: 1180px; margin: 0 auto; }
    .business-report-shell { display: grid; gap: 14px; }
    .business-report-toolbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px 20px;
      border: 1px solid #dce4ee;
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 12px 32px rgba(24,34,48,.06);
    }
    .business-report-intro span,
    .business-report-intro strong,
    .business-report-intro em { display: block; }
    .business-report-intro span { color: #1769dc; font-size: 11px; font-weight: 850; }
    .business-report-intro strong { margin-top: 4px; font-size: 22px; letter-spacing: -.02em; }
    .business-report-intro em { margin-top: 5px; color: #6b7789; font-size: 12px; font-style: normal; line-height: 1.5; }
    .business-report-controls { display: flex; align-items: center; gap: 9px; }
    .business-report-tabs { display: flex; gap: 4px; padding: 4px; border-radius: 11px; background: #eef2f7; }
    .business-report-tabs button {
      min-height: 36px;
      padding: 0 15px;
      border: 0;
      border-radius: 8px;
      background: transparent;
      color: #667085;
      cursor: pointer;
      font: inherit;
      font-size: 12px;
      font-weight: 800;
    }
    .business-report-tabs button.active { background: #fff; color: #1459b8; box-shadow: 0 3px 10px rgba(30,53,85,.1); }
    .business-report-hero {
      display: grid;
      grid-template-columns: minmax(0,1.35fr) minmax(250px,.65fr);
      gap: 14px;
      padding: 20px;
      border: 1px solid #d9e4f0;
      border-radius: 18px;
      background: linear-gradient(135deg,#f3f8ff,#fff 62%);
    }
    .business-report-hero span,
    .business-report-hero strong,
    .business-report-hero em { display: block; }
    .business-report-hero span { color: #1769dc; font-size: 11px; font-weight: 850; }
    .business-report-hero strong { margin-top: 7px; font-size: 24px; line-height: 1.35; }
    .business-report-hero em { margin-top: 7px; color: #647287; font-size: 12px; font-style: normal; line-height: 1.65; }
    .business-report-period { align-self: center; padding: 14px 16px; border-radius: 13px; background: rgba(255,255,255,.86); text-align: right; }
    .business-report-period strong { margin-top: 0; font-size: 17px; }
    .business-report-period em { margin-top: 4px; font-size: 11px; }
    .business-report-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
    .business-report-metric { min-height: 112px; padding: 16px; border: 1px solid #dfe6ef; border-radius: 15px; background: #fff; }
    .business-report-metric span,
    .business-report-metric strong,
    .business-report-metric em { display: block; }
    .business-report-metric span { color: #748196; font-size: 11px; font-weight: 700; }
    .business-report-metric strong { margin-top: 8px; color: #17202d; font-size: 25px; line-height: 1.1; }
    .business-report-metric em { margin-top: 7px; color: #8290a3; font-size: 10px; font-style: normal; line-height: 1.45; }
    .business-report-metric[data-tone="danger"] { border-color: #f0c4bf; background: #fff7f5; }
    .business-report-metric[data-tone="danger"] strong { color: #b42318; }
    .business-report-metric[data-tone="success"] { border-color: #c7e5d2; background: #f5fbf7; }
    .business-report-metric[data-tone="success"] strong { color: #197345; }
    .business-report-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); gap: 12px; align-items: start; }
    .business-report-panel { overflow: hidden; border: 1px solid #dfe6ef; border-radius: 16px; background: #fff; }
    .business-report-panel-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 15px 16px; border-bottom: 1px solid #e8edf3; }
    .business-report-panel-head strong { font-size: 15px; }
    .business-report-panel-head span { color: #748196; font-size: 11px; }
    .business-report-list { display: grid; }
    .business-report-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; min-height: 66px; padding: 11px 16px; border-bottom: 1px solid #edf0f4; }
    .business-report-row:last-child { border-bottom: 0; }
    .business-report-row-copy strong,
    .business-report-row-copy span { display: block; }
    .business-report-row-copy strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
    .business-report-row-copy span { margin-top: 4px; color: #748196; font-size: 11px; line-height: 1.45; }
    .business-report-row .btn { min-height: 32px; padding: 0 10px; font-size: 10px; box-shadow: none; }
    .business-report-empty { padding: 24px 16px; color: #748196; text-align: center; font-size: 12px; line-height: 1.6; }
    .business-report-actions { display: grid; gap: 8px; padding: 14px; }
    .business-report-action { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 12px; border-radius: 11px; background: #f7f9fc; }
    .business-report-action strong,
    .business-report-action span { display: block; }
    .business-report-action strong { font-size: 12px; }
    .business-report-action span { margin-top: 3px; color: #748196; font-size: 10px; line-height: 1.45; }
    .business-report-action .btn { min-height: 32px; padding: 0 10px; font-size: 10px; box-shadow: none; }
    @media (max-width: 800px) {
      .business-report-toolbar { align-items: stretch; flex-direction: column; padding: 15px; }
      .business-report-controls { align-items: stretch; flex-direction: column; }
      .business-report-tabs { display: grid; grid-template-columns: 1fr 1fr; }
      .business-report-controls > .btn { width: 100%; }
      .business-report-hero { grid-template-columns: 1fr; padding: 16px; }
      .business-report-period { text-align: left; }
      .business-report-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
      .business-report-grid { grid-template-columns: 1fr; }
    }
    @media (max-width: 520px) {
      .business-report-metrics { grid-template-columns: 1fr; }
      .business-report-metric { min-height: 94px; }
      .business-report-row { align-items: stretch; grid-template-columns: 1fr; }
      .business-report-row .btn { width: 100%; }
    }
    .gpt-suggestion-item {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      align-items: start;
      gap: 8px;
      min-height: 62px;
      border: 1px solid #dedee3;
      border-radius: 10px;
      background: rgba(255,255,255,.78);
      padding: 10px;
      text-align: left;
      color: #515158;
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      user-select: none;
      transition: border-color .18s ease, background .18s ease, transform .18s ease;
    }
    .gpt-suggestion-item:hover,
    .gpt-suggestion-item.active { border-color: rgba(0,113,227,.32); background: #f4f9ff; transform: translateY(-1px); }
    .gpt-suggestion-item span,
    .gpt-suggestion-item strong,
    .gpt-suggestion-item em { display: block; }
    .gpt-suggestion-item strong { color: var(--ink); font-size: 12px; line-height: 1.35; }
    .gpt-suggestion-item em { margin-top: 3px; color: var(--muted); font-size: 10px; font-style: normal; font-weight: 650; line-height: 1.35; }
    .gpt-suggestion-item i {
      width: 8px;
      height: 8px;
      margin-top: 4px;
      border-radius: 50%;
      background: var(--blue);
    }
    .gpt-suggestion-item[data-capability="quote"] i { background: #15845d; }
    .gpt-suggestion-item[data-capability="visual"] i { background: #a46a00; }
    .gpt-suggestion-item[data-capability="detail"] i { background: #7b61c9; }
    .gpt-suggestion-item[data-capability="task"] i { background: #cf4f42; }
    .home-demo-teaser {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-top: 10px;
      border: 1px solid rgba(0, 113, 227, .2);
      border-radius: 9px;
      background: linear-gradient(135deg, #fff, #eef6ff);
      padding: 9px 10px 9px 12px;
    }
    .home-demo-teaser-copy { min-width: 0; }
    .home-demo-teaser-copy > span,
    .home-demo-teaser-copy > strong,
    .home-demo-teaser-copy > em { display: block; }
    .home-demo-teaser-copy > span { color: var(--blue); font-size: 9px; font-weight: 850; }
    .home-demo-teaser-copy > strong { margin-top: 2px; color: var(--ink); font-size: 11px; line-height: 1.4; }
    .home-demo-teaser-copy > em { margin-top: 2px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.4; }
    .home-demo-teaser-flow {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 4px;
      margin-top: 9px;
    }
    .home-demo-teaser-flow b {
      border: 1px solid rgba(0, 113, 227, .14);
      border-radius: 999px;
      background: rgba(255,255,255,.8);
      padding: 3px 7px;
      color: #334155;
      font-size: 9px;
      font-weight: 800;
      white-space: nowrap;
    }
    .home-demo-teaser-flow i { color: var(--blue); font-size: 9px; font-style: normal; font-weight: 850; }
    .home-demo-teaser-actions { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; }
    .home-demo-teaser .home-demo-start {
      flex: 0 0 auto;
      min-width: 92px;
      height: 34px;
      padding: 0 14px;
      border: 0;
      border-radius: 7px;
      background: var(--blue);
      color: #fff;
      cursor: pointer;
      font-size: 10px;
      font-weight: 850;
    }
    .home-demo-dismiss {
      width: 28px;
      height: 28px;
      border: 0;
      background: transparent;
      color: var(--muted);
      cursor: pointer;
      font-size: 17px;
    }
    .home-demo-panel {
      margin-top: 10px;
      border: 1px solid rgba(0, 113, 227, .22);
      border-radius: 12px;
      background: #fff;
      padding: 14px;
      box-shadow: 0 14px 40px rgba(15,23,42,.07);
      animation: resultEnter .28s ease both;
    }
    .home-demo-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
    .home-demo-head span,
    .home-demo-head strong { display: block; }
    .home-demo-head span { color: var(--blue); font-size: 10px; font-weight: 850; }
    .home-demo-head strong { margin-top: 3px; font-size: 14px; }
    .home-demo-head button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 20px; line-height: 1; }
    .home-demo-message { margin-top: 11px; border-radius: 10px; background: #f5f5f7; padding: 10px 12px; }
    .home-demo-message span { color: var(--muted); font-size: 10px; font-weight: 800; }
    .home-demo-message p { margin: 4px 0 0; color: var(--ink); font-size: 11px; line-height: 1.55; }
    .home-demo-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
    .home-demo-step {
      display: grid;
      grid-template-columns: auto minmax(0,1fr);
      gap: 7px;
      align-items: start;
      min-height: 58px;
      border: 1px solid var(--line);
      border-radius: 9px;
      padding: 9px;
      opacity: .45;
      transition: opacity .25s ease, border-color .25s ease, background .25s ease, transform .25s ease;
    }
    .home-demo-step i { display: grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; background: var(--soft); color: var(--muted); font-size: 10px; font-style: normal; font-weight: 850; }
    .home-demo-step strong,
    .home-demo-step em { display: block; }
    .home-demo-step strong { font-size: 11px; line-height: 1.35; }
    .home-demo-step em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.35; }
    .home-demo-step.is-active { opacity: 1; border-color: rgba(0,113,227,.36); background: #f2f8ff; transform: translateY(-2px); }
    .home-demo-step.is-active i { background: var(--blue); color: #fff; }
    .home-demo-step.is-done { opacity: 1; border-color: rgba(17,132,93,.24); background: #f4fbf8; }
    .home-demo-step.is-done i { background: #11845d; color: #fff; }
    .home-demo-result { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
    .home-demo-result > div { border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 9px 10px; }
    .home-demo-result span,
    .home-demo-result strong,
    .home-demo-result em { display: block; }
    .home-demo-result span { color: var(--muted); font-size: 9px; font-weight: 800; }
    .home-demo-result strong { margin-top: 3px; font-size: 11px; }
    .home-demo-result em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.35; }
    .home-demo-actions { display: flex; align-items: center; gap: 8px; margin-top: 11px; }
    .home-demo-actions .btn { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
    .home-demo-actions > span { margin-left: auto; max-width: 270px; color: var(--muted); font-size: 9px; line-height: 1.4; text-align: right; }
    .gpt-result {
      width: min(820px, 100%);
      margin-top: 20px;
      background: transparent;
    }
    .gpt-result.is-empty { display: none; }
    .gpt-result:not(.is-empty) { animation: resultEnter .35s ease both; }
    .gpt-result .output {
      min-height: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
      padding: 0;
      font-size: 14px;
      line-height: 1.7;
    }
    .chat-thread {
      width: 100%;
      padding: 8px 0 24px;
    }
    .chat-history .chat-assistant-row {
      margin-bottom: 40px;
    }
    .chat-history .chat-assistant-content .actions {
      display: none;
    }
    .historical-service-note {
      margin: 8px 0;
      border: 1px solid #e4e7ec;
      border-radius: 12px;
      background: #f8fafc;
      color: #667085;
      font-size: 12px;
    }
    .historical-service-note summary {
      padding: 10px 12px;
      cursor: pointer;
      font-weight: 800;
    }
    .historical-service-note > div { padding: 0 12px 12px; }
    .historical-service-note.stale-image-setup-note {
      border-color: #d9e6f5;
      background: #f6f9fd;
    }
    .historical-service-note.stale-image-setup-note summary { color: #52647a; }
    .stale-image-setup-recovery {
      margin: 10px 0 0;
      padding: 11px 12px;
      border: 1px solid #d7e4f3;
      border-radius: 12px;
      background: #fff;
      color: #526173;
      font-size: 12px;
      line-height: 1.55;
    }
    .stale-image-setup-recovery strong { display: block; margin-bottom: 3px; color: #243244; }
    .historical-service-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
    .chat-user-row {
      display: flex;
      justify-content: flex-end;
      margin: 0 0 28px;
    }
    .chat-user-row.is-hidden {
      display: none;
    }
    .chat-user-bubble {
      max-width: min(72%, 620px);
      border-radius: 18px;
      background: #f1f1f3;
      color: #242426;
      padding: 11px 16px;
      font-size: 14px;
      line-height: 1.6;
      white-space: pre-wrap;
      overflow-wrap: anywhere;
    }
    .chat-user-files {
      display: block;
      margin-top: 6px;
      color: #6e6e73;
      font-size: 12px;
    }
    .chat-user-attachments {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 7px;
      margin-top: 9px;
    }
    .chat-user-attachment {
      position: relative;
      width: 76px;
      height: 76px;
      padding: 0;
      overflow: hidden;
      border: 1px solid #d9dde5;
      border-radius: 12px;
      background: #e9edf3;
      color: #344054;
      cursor: zoom-in;
    }
    .chat-user-attachment img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
    }
    .chat-user-attachment-number,
    .chat-user-attachment-name {
      position: absolute;
      left: 5px;
      z-index: 1;
      max-width: calc(100% - 10px);
      border-radius: 7px;
      background: rgba(16, 24, 40, .78);
      color: #fff;
      font-size: 9px;
      line-height: 1.25;
    }
    .chat-user-attachment-number { top: 5px; padding: 3px 5px; font-weight: 800; }
    .chat-user-attachment-name {
      bottom: 5px;
      padding: 3px 5px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .chat-user-attachment-placeholder {
      width: 100%;
      height: 100%;
      display: grid;
      place-items: center;
      padding: 18px 7px 20px;
      font-size: 10px;
      line-height: 1.3;
      text-align: center;
    }
    .chat-user-attachment.is-not-image { cursor: default; }
    .chat-assistant-row {
      display: grid;
      grid-template-columns: 32px minmax(0, 1fr);
      align-items: start;
      gap: 13px;
    }
    .chat-assistant-avatar {
      width: 32px;
      height: 32px;
      display: grid;
      place-items: center;
      overflow: hidden;
      border: 1px solid #e1e1e5;
      border-radius: 9px;
      background: #fff;
      box-shadow: 0 4px 14px rgba(15, 23, 42, .08);
    }
    .chat-assistant-avatar img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .chat-assistant-content {
      min-width: 0;
      padding-top: 2px;
    }
    .chat-assistant-name {
      margin-bottom: 8px;
      color: #3f3f44;
      font-size: 13px;
      font-weight: 850;
    }
    .chat-assistant-content .actions {
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid #ececf0;
    }
    .home-next-decision {
      margin-top: 16px;
      border: 1px solid rgba(0, 113, 227, .2);
      border-radius: 12px;
      background: linear-gradient(145deg, #f4f9ff, #fff);
      padding: 13px;
    }
    .home-next-decision.is-hidden { display: none; }
    .home-next-copy > span,
    .home-next-copy > strong,
    .home-next-copy > em { display: block; }
    .home-next-copy > span { color: var(--blue); font-size: 10px; font-weight: 850; }
    .home-next-copy > strong { margin-top: 3px; font-size: 14px; line-height: 1.4; }
    .home-next-copy > em { margin-top: 4px; color: var(--muted); font-size: 10px; font-style: normal; line-height: 1.45; }
    .home-next-primary { margin-top: 10px; }
    .home-next-primary .btn { width: 100%; min-height: 42px; }
    .home-next-more { margin-top: 9px; }
    .home-next-more summary { cursor: pointer; color: var(--blue); font-size: 10px; font-weight: 800; }
    .home-next-more .actions { margin-top: 8px; padding-top: 8px; }
    .detail-package-workspace {
      display: grid;
      grid-column: 1 / -1;
      gap: 16px;
      margin-top: 18px;
    }
    .detail-package-workspace.is-hidden { display: none; }
    .detail-package-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
    }
    .detail-package-head span,
    .detail-package-head strong,
    .detail-package-head em { display: block; }
    .detail-package-head span { color: #b45309; font-size: 11px; font-weight: 850; }
    .detail-package-head strong { margin-top: 4px; font-size: 20px; }
    .detail-package-head em { margin-top: 5px; color: var(--muted); font-size: 12px; font-style: normal; line-height: 1.55; }
    .detail-package-progress {
      height: 8px;
      overflow: hidden;
      border-radius: 999px;
      background: #edf0f4;
    }
    .detail-package-progress i {
      display: block;
      width: 0;
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, #f59e0b, #e85d04);
      transition: width .35s ease;
    }
    .detail-package-status { color: #536071; font-size: 12px; line-height: 1.55; }
    .detail-package-result {
      display: grid;
      grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
      gap: 18px;
      align-items: start;
    }
    .detail-package-long-preview {
      overflow: auto;
      max-height: 680px;
      border: 1px solid #e1e6ed;
      border-radius: 14px;
      background: #eef1f5;
      padding: 10px;
    }
    .detail-package-long-preview img { display: block; width: 100%; height: auto; border-radius: 8px; background: #fff; }
    .detail-package-assets { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
    .detail-package-asset { min-width: 0; border: 1px solid #e1e6ed; border-radius: 12px; background: #fff; padding: 8px; }
    .detail-package-asset .generated-image-open { aspect-ratio: 1; min-height: 0; }
    .detail-package-asset strong { display: block; margin: 7px 2px 0; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
    .detail-package-copy {
      max-height: 290px;
      overflow: auto;
      margin-top: 12px;
      border: 1px solid #e1e6ed;
      border-radius: 12px;
      background: #f8fafc;
      padding: 12px;
      color: #4d5969;
      font-size: 11px;
      line-height: 1.65;
      white-space: pre-wrap;
    }
    .detail-package-actions { display: flex; flex-wrap: wrap; gap: 8px; }
    body.home-conversation-active { overflow: hidden; }
    body.home-conversation-active main {
      height: calc(100dvh - 48px);
      overflow: hidden;
      padding-bottom: 12px;
    }
    body.home-conversation-active [data-page="图片制作"].active,
    body.home-conversation-active .home-workbench,
    body.home-conversation-active .home-workbench-main {
      height: 100%;
      min-height: 0;
    }
    body.home-conversation-active .home-workbench { align-items: stretch; }
    body.home-conversation-active .home-customer-rail,
    body.home-conversation-active .home-customer-context-panel {
      position: static;
      height: 100%;
      max-height: none;
    }
    body.home-conversation-active .home-workbench.has-multiple .home-customer-rail {
      display: flex;
      min-height: 0;
      flex-direction: column;
    }
    body.home-conversation-active .home-session-list {
      min-height: 0;
      max-height: none;
      flex: 1;
    }
    .gpt-home.has-conversation {
      position: relative;
      height: 100%;
      min-height: 0;
      align-items: stretch;
      overflow: hidden;
      padding: 0;
    }
    .gpt-home.has-conversation .gpt-heading,
    .gpt-home.has-conversation .gpt-suggestions,
    .gpt-home.has-conversation .home-demo-teaser,
    .gpt-home.has-conversation .home-demo-panel,
    .gpt-home.has-conversation .home-daily-brief,
    .gpt-home.has-conversation .home-business-pulse,
    .gpt-home.has-conversation .home-secondary {
      display: none;
    }
    .gpt-home.has-conversation .home-composer-shortcuts { display: none; }
    .gpt-home.has-conversation .gpt-result {
      order: 1;
      width: 100%;
      min-height: 0;
      margin: 0;
      padding: 22px 12px calc(var(--home-composer-height, 220px) + 34px);
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      scroll-behavior: smooth;
      scrollbar-gutter: stable;
      scrollbar-width: thin;
    }
    .gpt-home.has-conversation .chat-thread {
      width: min(820px, 100%);
      margin: 0 auto;
    }
    .gpt-home.has-conversation .gpt-shell {
      position: absolute;
      z-index: 4;
      left: 50%;
      bottom: 0;
      order: 2;
      width: min(820px, calc(100% - 24px));
      margin: 0;
      padding: 14px 0 18px;
      background: linear-gradient(180deg, rgba(247,247,248,0), #f7f7f8 20%, #f7f7f8 100%);
      animation: none;
      transform: translateX(-50%);
      pointer-events: none;
    }
    .gpt-home.has-conversation.quote-workspace-open .gpt-result {
      scroll-padding-bottom: calc(var(--home-composer-height, 132px) + 28px);
    }
    .gpt-home.has-conversation.quote-workspace-open .gpt-shell {
      padding: 6px 0 10px;
    }
    .gpt-home.has-conversation.quote-workspace-open .gpt-composer {
      gap: 5px;
      margin-top: 0;
      padding: 10px 12px;
    }
    .gpt-home.has-conversation.quote-workspace-open .home-customer-context,
    .gpt-home.has-conversation.quote-workspace-open .home-chat-record-actions,
    .gpt-home.has-conversation.quote-workspace-open .home-privacy-note,
    .gpt-home.has-conversation.quote-workspace-open .home-share-hint {
      display: none;
    }
    .gpt-home.has-conversation.quote-workspace-open .home-inline-quote-workspace button,
    .gpt-home.has-conversation.quote-workspace-open .home-inline-quote-workspace input,
    .gpt-home.has-conversation.quote-workspace-open .home-inline-quote-workspace select,
    .gpt-home.has-conversation.quote-workspace-open .home-inline-quote-workspace summary {
      scroll-margin-block: 24px calc(var(--home-composer-height, 132px) + 28px);
    }
    .gpt-home.has-conversation .gpt-composer {
      border-radius: 16px;
      box-shadow: 0 8px 28px rgba(15, 23, 42, .12);
      pointer-events: auto;
    }
    .gpt-home.has-conversation .home-image-modes { margin-bottom:6px; }
    .gpt-home.has-conversation .home-image-mode {
      min-height:44px;
      grid-template-columns:28px minmax(0,1fr);
      gap:7px;
      padding:7px 9px;
      border-radius:10px;
    }
    .gpt-home.has-conversation .home-image-mode-icon { width:28px; height:28px; border-radius:8px; font-size:12px; }
    .gpt-home.has-conversation .home-image-mode-copy span,
    .gpt-home.has-conversation .home-image-mode-status { display:none; }
    .gpt-home.has-conversation .gpt-composer textarea {
      min-height: 46px;
      max-height: 140px;
      padding-bottom: 6px;
    }
    .home-secondary {
      width: min(820px, 100%);
      margin-top: 18px;
    }
    .home-secondary summary {
      cursor: pointer;
      color: #7d7d83;
      font-size: 12px;
      font-weight: 760;
      text-align: center;
      list-style: none;
    }
    .home-secondary summary::-webkit-details-marker {
      display: none;
    }
    .quote-field-error {
      border: 2px solid #d92d20 !important;
      background-color: #fff6f5 !important;
      box-shadow: 0 0 0 4px rgba(217, 45, 32, .14) !important;
    }
    .row:has(> .quote-field-error) > label { color:#b42318; font-weight:850; }
    @keyframes homeEnter {
      from { opacity: 0; transform: translateY(18px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes suggestionEnter {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes resultEnter {
      from { opacity: 0; transform: translateY(10px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes pageEnter {
      from { opacity: 0; transform: translateY(7px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes contentRise {
      from { opacity: 0; transform: translateY(12px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes panelReveal {
      from { opacity: 0; transform: translateY(10px) scale(.992); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }
    @keyframes resultReveal {
      from { opacity: 0; transform: translateX(16px) scale(.992); }
      to { opacity: 1; transform: translateX(0) scale(1); }
    }
    @keyframes dialogReveal {
      from { opacity: 0; transform: translateY(18px) scale(.975); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }
    body.clean-home .header {
      display: none;
    }
    .home-flow {
      display: grid;
      grid-template-columns: repeat(5, minmax(92px, 1fr));
      gap: 8px;
      margin-bottom: 10px;
    }
    .home-flow button {
      min-height: 38px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      color: var(--muted);
      padding: 6px;
      font-size: 12px;
      font-weight: 850;
      cursor: pointer;
    }
    .home-flow button.active,
    .home-flow button:hover {
      border-color: rgba(0, 113, 227, .28);
      background: var(--blue-soft);
      color: var(--blue);
    }
    .ai-report {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }
    .ai-report-card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      padding: 10px;
      min-height: 96px;
    }
    .ai-report-card.full {
      grid-column: 1 / -1;
    }
    .ai-report-card span {
      display: block;
      margin-bottom: 6px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 850;
    }
    .ai-report-card strong {
      display: block;
      font-size: 16px;
      line-height: 1.35;
    }
    .ai-report-card p,
    .ai-report-card ol {
      margin: 0;
      color: var(--ink);
      font-size: 13px;
      line-height: 1.5;
      padding-left: 0;
    }
    .ai-report-card ol {
      padding-left: 18px;
    }
    .ai-report-card li {
      margin: 2px 0;
    }
    .ai-answer-body {
      white-space: normal;
      padding: 2px 4px;
    }
    .ai-answer-lead {
      margin: 0;
      font-size: 17px;
      line-height: 1.55;
      font-weight: 800;
    }
    .ai-answer-section {
      padding: 14px 0;
      border-top: 1px solid #ececf0;
    }
    .ai-answer-lead + .ai-answer-section {
      margin-top: 14px;
    }
    .ai-answer-section h3 {
      margin: 0 0 7px;
      color: #6e6e73;
      font-size: 12px;
      line-height: 1.4;
      font-weight: 850;
    }
    .ai-answer-section p,
    .ai-answer-section ul {
      margin: 0;
      font-size: 14px;
      line-height: 1.65;
    }
    .ai-answer-section ul {
      padding-left: 20px;
    }
    .ai-answer-section li + li {
      margin-top: 4px;
    }
    .ai-facts {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px 20px;
      margin: 0;
    }
    .ai-facts div {
      min-width: 0;
    }
    .ai-facts dt {
      color: #85858b;
      font-size: 11px;
      font-weight: 800;
    }
    .ai-facts dd {
      margin: 3px 0 0;
      font-size: 14px;
      line-height: 1.5;
      overflow-wrap: anywhere;
    }
    .ai-confidence-tag {
      display: inline-flex;
      align-items: center;
      margin-left: 5px;
      border-radius: 999px;
      padding: 1px 5px;
      background: #eaf7f0;
      color: #18704d;
      font-size: 9px;
      font-weight: 800;
      vertical-align: middle;
    }
    .ai-confidence-tag.low { background: #fff2df; color: #9a5a08; }
    .ai-confidence-note {
      margin: 10px 0 0;
      border: 1px solid rgba(184, 93, 0, .22);
      border-radius: 9px;
      background: #fff8ef;
      padding: 9px 10px;
      color: #754607;
      font-size: 11px;
      line-height: 1.5;
    }
    .ai-loading {
      contain: layout paint;
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      align-items: center;
      gap: 12px;
      min-height: 76px;
      max-width: 560px;
      border: 1px solid #e7e7eb;
      border-radius: 14px;
      background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(247,247,249,.96));
      padding: 13px 15px;
      box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
    }
    .ai-loading-spinner {
      position: relative;
      width: 34px;
      height: 34px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 3px;
      flex: 0 0 34px;
      border-radius: 10px;
      background: #1d1d1f;
      box-shadow: 0 5px 14px rgba(29,29,31,.16);
      transform: translateZ(0);
      backface-visibility: hidden;
    }
    .ai-loading-spinner i {
      width: 4px;
      height: 4px;
      display: block;
      border-radius: 50%;
      background: #fff;
      opacity: .42;
      transform: translate3d(0, 1px, 0) scale(.86);
      will-change: transform, opacity;
      animation: aiThinkingDot 1.2s cubic-bezier(.4, 0, .2, 1) infinite;
    }
    .ai-loading-spinner i:nth-child(2) { animation-delay: .14s; }
    .ai-loading-spinner i:nth-child(3) { animation-delay: .28s; }
    .ai-loading-copy { min-width: 0; }
    .ai-loading-copy strong,
    .ai-loading-copy em { display: block; }
    .ai-loading-copy strong {
      min-height: 22px;
      color: #5f6068;
      font-size: 15px;
      font-weight: 760;
      line-height: 1.45;
    }
    .ai-loading-copy em {
      margin-top: 3px;
      color: #86868b;
      font-size: 11px;
      font-style: normal;
      line-height: 1.45;
    }
    @keyframes aiPulse {
      0%, 100% { opacity: .35; transform: scale(.78); box-shadow: 0 0 0 0 rgba(29,29,31,0); }
      50% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 5px rgba(29,29,31,.08); }
    }
    @keyframes aiThinkingDot {
      0%, 65%, 100% { opacity: .42; transform: translate3d(0, 1px, 0) scale(.86); }
      32% { opacity: 1; transform: translate3d(0, -2px, 0) scale(1); }
    }
    @media (prefers-reduced-motion: reduce) {
      .ai-loading-spinner i {
        animation: none;
        opacity: .72;
        transform: none;
      }
    }
    .home-todo-card {
      background: rgba(255, 255, 255, .72);
      box-shadow: none;
    }
    .home-todo-card .card-title {
      font-size: 14px;
      color: var(--muted);
    }
    .home-todo-card .priority-list {
      display: none;
    }
    .ops-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-bottom: 10px;
    }
    .ops-tile {
      min-height: 72px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--panel-strong);
      padding: 10px;
      box-shadow: var(--shadow);
    }
    .home-todo-card .ops-tile {
      min-height: 58px;
      box-shadow: none;
      background: #fff;
    }
    .home-todo-card .ops-tile strong {
      font-size: 20px;
    }
    .ops-tile span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }
    .ops-tile strong {
      display: block;
      margin-top: 5px;
      font-size: 24px;
      line-height: 1;
    }
    .ops-tile em {
      display: block;
      margin-top: 5px;
      color: var(--muted);
      font-size: 11px;
      font-style: normal;
      line-height: 1.35;
    }
    .quick-panel {
      display: grid;
      grid-template-columns: minmax(360px, .85fr) minmax(520px, 1.15fr);
      gap: 10px;
      align-items: start;
    }
    .dashboard-lists {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 10px;
    }
    .priority-list {
      display: grid;
      gap: 8px;
      margin-top: 10px;
    }
    .proof-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      margin-bottom: 10px;
    }
    .proof-item {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      padding: 10px;
      box-shadow: var(--shadow);
    }
    .proof-item span {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-weight: 850;
    }
    .proof-item strong {
      display: block;
      margin-top: 4px;
      font-size: 21px;
      line-height: 1;
    }
    .deal-demo {
      margin-bottom: 10px;
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: var(--radius);
      background: linear-gradient(180deg, #ffffff, #f2f8ff);
      padding: 12px;
      box-shadow: var(--shadow);
    }
    .deal-demo-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 10px;
      align-items: center;
      margin-bottom: 10px;
    }
    .deal-demo-head strong {
      display: block;
      font-size: 17px;
      margin-bottom: 4px;
    }
    .deal-demo-head span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }
    .deal-demo-steps {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
    }
    .deal-demo-steps span {
      min-height: 54px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: rgba(255, 255, 255, .78);
      padding: 8px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
    }
    .deal-demo-steps strong {
      display: block;
      color: var(--text);
      margin-bottom: 3px;
      font-size: 13px;
    }
    .section-kicker {
      margin: 12px 0 6px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 850;
    }
    .industry-strip {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin: 8px 0 10px;
    }
    .industry-chip {
      min-height: 48px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      padding: 8px;
      text-align: left;
      color: var(--text);
      cursor: pointer;
      font-weight: 850;
    }
    .industry-chip span {
      display: block;
      margin-top: 3px;
      color: var(--muted);
      font-size: 11px;
      font-weight: 700;
      line-height: 1.25;
    }
    .industry-chip.active,
    .industry-chip:hover {
      border-color: rgba(0, 113, 227, .3);
      background: var(--blue-soft);
      color: var(--blue);
    }
    .setup-guide {
      display: none;
      margin-bottom: 10px;
      border: 1px solid rgba(0, 113, 227, .22);
      border-radius: var(--radius);
      background: #fff;
      padding: 12px;
      box-shadow: var(--shadow);
    }
    .setup-guide.show {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 12px;
      align-items: center;
    }
    .setup-guide strong {
      display: block;
      font-size: 15px;
      margin-bottom: 4px;
    }
    .setup-guide span {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }
    .urgency-panel {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin: 10px 0;
    }
    .urgency-card {
      min-height: 68px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      padding: 9px;
    }
    .urgency-card.danger {
      border-color: rgba(199, 44, 44, .28);
      background: rgba(199, 44, 44, .06);
    }
    .urgency-card.warn {
      border-color: rgba(184, 93, 0, .28);
      background: rgba(184, 93, 0, .06);
    }
    .urgency-card span {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-weight: 850;
    }
    .urgency-card strong {
      display: block;
      margin-top: 4px;
      font-size: 22px;
      line-height: 1;
    }
    .urgency-card em {
      display: block;
      margin-top: 5px;
      color: var(--muted);
      font-size: 11px;
      font-style: normal;
      line-height: 1.3;
    }
    .priority-item {
      display: grid;
      grid-template-columns: auto 1fr auto;
      gap: 8px;
      align-items: center;
      min-height: 40px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(245, 245, 247, .72);
      padding: 8px 9px;
      font-size: 12px;
    }
    .priority-dot {
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--blue);
    }
    .priority-item strong {
      display: block;
      font-size: 13px;
    }
    .priority-item em {
      display: block;
      color: var(--muted);
      font-style: normal;
      margin-top: 2px;
    }
    .workflow {
      display: grid;
      grid-template-columns: repeat(8, minmax(86px, 1fr));
      gap: 6px;
      margin-bottom: 10px;
    }
    .workflow span {
      display: grid;
      place-items: center;
      min-height: 32px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
      text-align: center;
      padding: 4px;
    }
    .workflow span.active {
      background: var(--blue-soft);
      color: var(--blue);
      border-color: rgba(0, 113, 227, .25);
    }
    .workflow.compact {
      grid-template-columns: repeat(5, minmax(92px, 1fr));
    }
    .workflow.compact span {
      min-height: 38px;
      font-size: 12px;
    }
    .filter-tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 0 0 12px;
    }
    .filter-tabs button {
      min-height: 32px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #fff;
      color: var(--muted);
      padding: 0 11px;
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }
    .filter-tabs button.active,
    .filter-tabs button:hover {
      border-color: rgba(0, 113, 227, .3);
      background: var(--blue-soft);
      color: var(--blue);
    }
    .task-search {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 8px;
      align-items: center;
      margin: 0 0 12px;
    }
    .task-search input {
      height: 38px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 0 12px;
      font-size: 13px;
      font-weight: 700;
      color: var(--ink);
      background: #fff;
    }
    .task-search input:focus {
      outline: none;
      border-color: rgba(0, 113, 227, .45);
      box-shadow: 0 0 0 3px rgba(0, 113, 227, .08);
    }
    .task-reminder-summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin: 0 0 12px;
      padding: 12px 14px;
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: 10px;
      background: #f4f9ff;
      color: #23415f;
      font-size: 12px;
      line-height: 1.5;
    }
    .task-reminder-summary strong { display: block; color: var(--ink); font-size: 13px; }
    .task-reminder-summary.is-overdue {
      border-color: rgba(0, 113, 227, .18);
      background: #f4f9ff;
      color: #23415f;
    }
    .task-priority-badge {
      display: inline-block;
      margin-top: 4px;
      border-radius: 999px;
      background: #eef6ff;
      color: var(--blue);
      padding: 2px 7px;
      font-size: 10px;
      font-weight: 850;
    }
    .task-priority-badge.is-urgent { background: #fff0ee; color: #b42318; }
    .task-followup-card {
      margin: 12px 0;
      border: 1px solid rgba(0,113,227,.18);
      border-radius: 10px;
      background: #f6faff;
      padding: 12px;
    }
    .task-followup-card strong { display: block; margin-bottom: 6px; }
    .task-followup-script { white-space: pre-wrap; color: #273142; font-size: 14px; line-height: 1.7; }
    .task-list-priority {
      margin: 2px 0 10px;
      color: var(--muted);
      font-size: 11px;
    }
    .task-phase-tabs {
      display: grid !important;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px !important;
      overflow: visible !important;
    }
    .task-phase-tabs button {
      min-height: 48px !important;
      border-radius: 13px !important;
      font-size: 14px !important;
    }
    .task-phase-tabs button.active {
      box-shadow: inset 0 0 0 1px rgba(0,113,227,.12), 0 7px 18px rgba(0,113,227,.08);
    }
    .task-phase-substatus {
      display: block;
      margin-top: 5px;
      color: var(--muted);
      font-size: 10px;
      font-weight: 750;
    }
    .task-progress-compact { min-width: 170px; }
    .task-progress-compact strong { display: block; margin-bottom: 5px; font-size: 12px; color: var(--ink); }
    .task-progress-track,
    .production-progress-track {
      height: 7px;
      overflow: hidden;
      border-radius: 999px;
      background: #e8edf3;
    }
    .task-progress-track span,
    .production-progress-track span {
      display: block;
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg,#1769dc,#49a2ff);
      transition: width .2s ease;
    }
    .production-progress-card {
      margin: 14px 0;
      padding: 15px;
      border: 1px solid #dce6f2;
      border-radius: 14px;
      background: #fbfdff;
    }
    .task-execution-bridge {
      display: grid;
      grid-template-columns: minmax(0,1fr) auto;
      gap: 16px;
      align-items: center;
      padding: 18px;
      border: 1px solid #dce6f2;
      border-radius: 16px;
      background: linear-gradient(135deg,#f7fbff,#fff);
    }
    .task-execution-bridge-copy { min-width: 0; }
    .task-execution-bridge-copy span,
    .task-execution-bridge-copy strong,
    .task-execution-bridge-copy em { display: block; }
    .task-execution-bridge-copy span { color: #1769dc; font-size: 11px; font-weight: 850; }
    .task-execution-bridge-copy strong { margin-top: 5px; color: var(--ink); font-size: 16px; }
    .task-execution-bridge-copy em { margin-top: 5px; color: var(--muted); font-size: 12px; font-style: normal; line-height: 1.55; }
    .task-execution-bridge-progress { margin-top: 11px; }
    .task-execution-bridge-progress .production-progress-track { height: 7px; margin: 0; }
    .task-execution-bridge-progress small { display: block; margin-top: 6px; color: #657287; font-size: 11px; }
    .task-execution-bridge .btn { min-width: 132px; }
    .production-progress-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
    }
    .production-progress-head strong { display: block; font-size: 14px; }
    .production-progress-count { color: var(--blue); font-size: 12px; font-weight: 850; white-space: nowrap; }
    .production-progress-track { height: 9px; margin-bottom: 13px; }
    .production-step-list { display: grid; gap: 8px; }
    .production-step {
      display: grid;
      grid-template-columns: 36px minmax(0,1fr) auto;
      gap: 10px;
      align-items: center;
      min-height: 47px;
      padding: 8px 10px;
      border: 1px solid #e3e9f1;
      border-radius: 11px;
      background: #fff;
    }
    .production-step.is-completed { border-color: #bddfc8; background: #f3fbf5; }
    .production-step.is-locked { opacity: .58; }
    .production-step-check {
      width: 34px;
      height: 34px;
      border: 1px solid #b8c5d5;
      border-radius: 8px;
      background: #fff;
      color: transparent;
      font-size: 16px;
      font-weight: 900;
      cursor: pointer;
    }
    .production-step-check.is-completed { border-color: #3e9d5d; background: #3e9d5d; color: #fff; }
    .production-step-check:disabled { cursor: not-allowed; }
    .production-step-label { min-width: 0; font-size: 12px; font-weight: 800; color: var(--ink); }
    .production-step-meta { margin-top: 2px; color: var(--muted); font-size: 10px; font-weight: 650; }
    .production-step-outsource-status {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      margin-top: 5px;
      padding: 3px 7px;
      border: 1px solid #c9daef;
      border-radius: 999px;
      background: #f0f6ff;
      color: #1769c7;
      font-size: 10px;
      font-weight: 800;
      line-height: 1.35;
    }
    .production-step-outsource-status::before {
      content: "";
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: currentColor;
    }
    .production-step-outsource-status.is-risk {
      border-color: #efc0b9;
      background: #fff4f2;
      color: #b42318;
    }
    .production-step-outsource-status.is-done {
      border-color: #b9dec5;
      background: #f0faf3;
      color: #27814a;
    }
    .production-step-undo {
      border: 0;
      background: transparent;
      color: #b54708;
      font-size: 11px;
      font-weight: 850;
      cursor: pointer;
    }
    .production-step-actions {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 5px;
    }
    .production-step-order { display: inline-flex; gap: 5px; }
    .production-step-move {
      min-height: 30px;
      padding: 0 9px;
      border: 1px solid #c9daef;
      border-radius: 8px;
      background: #f5f9ff;
      color: #1769c7;
      font-size: 11px;
      font-weight: 800;
      cursor: pointer;
      white-space: nowrap;
    }
    .production-step-move:hover:not(:disabled) { background: #eaf3ff; }
    .production-step-move:disabled { opacity: .4; cursor: not-allowed; }
    .production-step-remove,
    .production-reset {
      min-height: 30px;
      padding: 0 9px;
      border: 1px solid #e4b9b4;
      border-radius: 8px;
      background: #fff;
      color: #b42318;
      font-size: 11px;
      font-weight: 800;
      cursor: pointer;
    }
    .production-step-remove:hover { background: #fff2f0; }
    .production-progress-head-actions {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      flex-wrap: wrap;
    }
    .production-reset {
      border-color: #c9daef;
      background: #f5f9ff;
      color: #1769c7;
    }
    .production-reset:hover { background: #eaf3ff; }
    .production-step-add {
      display: grid;
      grid-template-columns: minmax(0,1fr) auto;
      gap: 8px;
      margin-top: 12px;
    }
    .production-step-add input { min-width: 0; height: 40px; }
    .production-step-note { margin-top: 9px; color: var(--muted); font-size: 11px; line-height: 1.55; }
    .task-create-details,
    .customer-editor-details {
      margin-top: 14px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      padding: 12px 14px;
    }
    .task-create-details summary,
    .customer-editor-details summary {
      cursor: pointer;
      color: var(--blue);
      font-size: 13px;
      font-weight: 850;
    }
    .customer-editor-details { margin-top: 0; }
    .deal-review-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px solid var(--line);
    }
    .deal-review-grid .row { grid-template-columns: 112px minmax(0, 1fr); margin: 0; }
    .quote-tiers {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin: 10px 0;
    }
    .quote-tier {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      padding: 10px;
    }
    .quote-tier strong {
      display: block;
      font-size: 18px;
      margin-top: 4px;
    }
    .quote-tier span,
    .quote-tier em {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-style: normal;
      line-height: 1.35;
    }
    .quote-decision-strip {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      margin: 10px 0 12px;
    }
    .quote-decision-strip > div {
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: 9px;
      background: #f6faff;
      padding: 10px;
    }
    .quote-decision-strip span,
    .quote-decision-strip strong { display: block; }
    .quote-decision-strip span { color: var(--muted); font-size: 10px; }
    .quote-decision-strip strong { margin-top: 4px; font-size: 13px; line-height: 1.35; }
    .quote-decision-strip .is-warning { border-color: rgba(217, 45, 32, .22); background: #fff7f6; }
    .quote-approval-panel {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin: 10px 0 12px;
      padding: 11px 12px;
      border: 1px solid rgba(17, 132, 93, .22);
      border-radius: 10px;
      background: #f4fbf8;
      color: #18543f;
      font-size: 12px;
      line-height: 1.5;
    }
    .quote-approval-panel.is-pending {
      border-color: rgba(184, 93, 0, .25);
      background: #fff8ef;
      color: #7b4808;
    }
    .quote-approval-panel strong { display: block; color: var(--ink); }
    .quote-field-missing { border-color:#efb463 !important; background:#fffaf2 !important; }
    .quote-field-inferred { border-color:#f2c98f !important; background:#fff8ed !important; }
    .quote-field-inferred::after { content:"AI建议 · 客户尚未确认"; display:block; margin-top:4px; color:#a25a0b; font-size:10px; font-weight:800; }
    .quote-day-input { position:relative; min-width:0; }
    .quote-day-input input { width:100%; padding-right:42px; }
    .quote-day-input > span { position:absolute; right:13px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:12px; font-weight:800; pointer-events:none; }
    .quote-approval-fields {
      display: grid;
      grid-template-columns: minmax(120px,.55fr) minmax(180px,1fr) auto;
      gap: 7px;
      align-items: center;
      min-width: min(560px, 100%);
    }
    .quote-approval-fields input { height: 34px; background: #fff; }
    .customer-main strong,
    .customer-main span,
    .customer-summary span { display: block; }
    .customer-main span,
    .customer-summary span { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.45; }
    .customer-status-select { min-width: 92px; height: 32px; font-size: 11px; }
    .customer-list-tools { display:flex; align-items:center; gap:8px; margin:10px 0 12px; }
    .customer-list-tools input { flex:1; min-width:180px; }
    .customer-list-tools select { width:140px; }
    .customer-list-tools span { margin-left:auto; color:var(--muted); font-size:11px; white-space:nowrap; }
    .customer-assets-card { display:flex; flex-direction:column; min-height:420px; }
    .customer-assets-head strong,
    .customer-assets-head span { display:block; }
    .customer-assets-head strong { font-size:15px; }
    .customer-assets-head span { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.5; }
    .customer-assets-upload { margin-top:12px; padding:14px; border:1px dashed #b8c9dc; border-radius:12px; background:#f8fbff; }
    .customer-assets-upload-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,.55fr); gap:10px; }
    .customer-assets-upload .actions { margin-top:10px; }
    .customer-assets-list { display:grid; gap:8px; margin-top:12px; }
    .customer-asset-item { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px; border:1px solid var(--line); border-radius:10px; background:#fff; }
    .customer-asset-icon { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:10px; background:#eef5ff; color:#1769c7; font-size:10px; font-weight:900; }
    .customer-asset-copy strong,
    .customer-asset-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .customer-asset-copy strong { font-size:12px; }
    .customer-asset-copy span { margin-top:3px; color:var(--muted); font-size:10px; }
    .customer-asset-actions { display:flex; gap:6px; }
    .customer-asset-actions button { min-height:32px; padding:5px 9px; }
    .customer-assets-empty { padding:24px 14px; border:1px solid var(--line); border-radius:10px; background:#fafbfc; color:var(--muted); text-align:center; font-size:11px; line-height:1.6; }
    .price-import-card {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
      gap: 14px 20px;
      align-items: stretch;
      max-width: 920px;
      margin: 0 auto 12px;
      border-color: rgba(0, 113, 227, .22);
      background: linear-gradient(135deg, #fff, #f3f8ff);
    }
    .price-setup-choice {
      max-width: 920px;
      margin: 0 auto 12px;
      border-color: rgba(0, 113, 227, .2);
      background: linear-gradient(145deg, #fff, #f6f9ff);
      text-align: center;
    }
    .price-setup-choice > span,
    .price-setup-choice > strong { display: block; }
    .price-setup-choice > span { color: var(--blue); font-size: 11px; font-weight: 850; }
    .price-setup-choice > strong { margin-top: 5px; font-size: 22px; }
    .price-quick-edit { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); text-align:left; }
    .price-quick-edit > strong,.price-quick-edit > span { display:block; }
    .price-quick-edit > span { margin-top:3px; color:var(--muted); font-size:11px; }
    .price-quick-edit input[type="search"] { margin-top:9px; }
    .price-quick-results { display:grid; gap:6px; margin-top:8px; }
    .price-quick-row { display:grid; grid-template-columns:minmax(120px,1fr) 110px auto; gap:7px; align-items:center; padding:7px; border:1px solid var(--line); border-radius:9px; background:#fff; }
    .price-quick-row span { font-size:12px; font-weight:800; }
    .price-quick-row em { display:block; margin-top:2px; color:var(--muted); font-size:10px; font-style:normal; font-weight:600; }
    .visual-reference-confirm { display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px; margin:10px 0; padding:10px; border:1px solid var(--line); border-radius:12px; background:#f8fafc; }
    .visual-reference-preview { display:flex; align-items:center; justify-content:center; min-height:88px; border:1px dashed #cbd5e1; border-radius:9px; background:#fff; color:var(--muted); font-size:10px; text-align:center; overflow:hidden; }
    .visual-reference-preview img { width:100%; height:88px; object-fit:contain; }
    .visual-confirm-options { display:grid; gap:6px; }
    .visual-confirm-options label { display:flex; align-items:center; gap:7px; color:var(--ink); font-size:11px; }
    .visual-confirm-options input { width:auto; }
    .visual-confirm-options select { height:32px; }
    .price-setup-choice > p { margin: 7px auto 16px; max-width: 620px; color: var(--muted); font-size: 12px; line-height: 1.55; }
    .price-setup-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; text-align: left; }
    .price-setup-option {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 11px;
      align-items: start;
      min-height: 108px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #fff;
      padding: 15px;
      color: var(--ink);
      cursor: pointer;
      text-align: left;
    }
    .price-setup-option:hover { border-color: rgba(0, 113, 227, .42); transform: translateY(-1px); }
    .price-setup-option.recommended { border-color: rgba(0, 113, 227, .34); background: #f1f7ff; }
    .price-setup-option > i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 12px; font-style: normal; font-weight: 850; }
    .price-setup-option strong,
    .price-setup-option span,
    .price-setup-option em { display: block; }
    .price-setup-option strong { font-size: 14px; }
    .price-setup-option span { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.45; }
    .price-setup-option em { margin-top: 7px; color: var(--blue); font-size: 10px; font-style: normal; font-weight: 800; }
    .price-setup-back { display: flex; align-items: center; max-width: 920px; margin: 0 auto 10px; }
    .price-setup-back button { border: 0; background: transparent; color: var(--blue); cursor: pointer; font-size: 11px; font-weight: 800; }
    .price-import-copy > strong,
    .price-import-copy > span { display: block; }
    .price-import-copy > strong { margin-top: 4px; font-size: 18px; }
    .price-import-copy > span { margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.55; }
    .price-import-kicker { color: var(--blue) !important; font-size: 10px !important; font-weight: 850; }
    .price-import-steps { display: flex; flex-wrap: wrap; gap: 7px 12px; margin-top: 12px; }
    .price-import-steps span { display: inline-flex; align-items: center; gap: 5px; color: #4d4d52; font-size: 10px; font-weight: 760; }
    .price-import-steps b { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--blue-soft); color: var(--blue); font-size: 10px; }
    .price-import-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
    .price-import-primary,
    .price-template-button {
      min-height: 76px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      border: 1px solid rgba(0, 113, 227, .24);
      border-radius: 10px;
      padding: 12px;
      text-align: left;
      cursor: pointer;
    }
    .price-import-primary { background: var(--blue); color: #fff; }
    .price-template-button { background: #fff; color: var(--blue); }
    .price-import-primary strong,
    .price-template-button strong { display: block; font-size: 12px; line-height: 1.35; }
    .price-import-primary span,
    .price-template-button span { display: block; margin-top: 4px; font-size: 10px; line-height: 1.4; }
    .price-import-primary span { color: rgba(255,255,255,.82); }
    .price-template-button span { color: var(--muted); }
    .price-import-primary:hover { background: #005fbd; }
    .price-template-button:hover { border-color: rgba(0, 113, 227, .42); background: #f8fbff; }
    .price-import-status {
      grid-column: 1 / -1;
      padding-top: 9px;
      border-top: 1px solid rgba(0, 113, 227, .12);
      color: var(--muted);
      font-size: 11px;
    }
    .price-import-status.is-success { color: #11613f; font-weight: 760; }
    .price-import-status.is-error { color: #9f2920; font-weight: 760; }
    .cost-library-card { margin-top: 14px; }
    .cost-library-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
    .cost-library-head strong,.cost-library-head span { display:block; }
    .cost-library-head > div > strong { font-size:18px; }
    .cost-library-head > div > span { margin-top:5px; color:var(--muted); font-size:13px; line-height:1.6; }
    .cost-library-badges { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
    .cost-library-badges span { padding:6px 9px; border-radius:999px; background:#eef5ff; color:#1769dc; font-size:12px; font-weight:750; white-space:nowrap; }
    .cost-library-badges .warning { background:#fff4d9; color:#8a5a00; }
    .cost-library-toolbar { display:grid; grid-template-columns:minmax(180px,1fr) 135px 145px repeat(3,auto); gap:8px; margin-top:14px; align-items:center; }
    .cost-library-toolbar input,.cost-library-toolbar select { min-height:40px; }
    .cost-library-table-wrap { margin-top:12px; max-height:520px; overflow:auto; border:1px solid var(--line); border-radius:12px; background:#fff; }
    .cost-library-table { width:100%; min-width:1230px; border-collapse:separate; border-spacing:0; }
    .cost-library-table th { position:sticky; top:0; z-index:2; padding:10px 8px; background:#f5f7fa; color:#5d6674; font-size:12px; text-align:left; white-space:nowrap; border-bottom:1px solid var(--line); }
    .cost-library-table td { padding:7px 5px; border-bottom:1px solid #eef1f5; vertical-align:middle; }
    .cost-library-table tr:last-child td { border-bottom:0; }
    .cost-library-table tr.incomplete { background:#fffaf0; }
    .cost-library-table input,.cost-library-table select { width:100%; min-height:38px; padding:7px 8px; border-radius:8px; font-size:13px; }
    .cost-library-table .col-type { width:100px; }
    .cost-library-table .col-category { width:125px; }
    .cost-library-table .col-name { width:175px; }
    .cost-library-table .col-spec { width:155px; }
    .cost-library-table .col-unit { width:90px; }
    .cost-library-table .col-number { width:100px; }
    .cost-library-table .col-date { width:120px; }
    .cost-library-table .col-note { width:180px; }
    .cost-library-remove { width:30px; height:30px; border:0; border-radius:8px; background:#f4f5f7; color:#7b8491; cursor:pointer; font-size:16px; }
    .cost-library-remove:hover { background:#ffe9e7; color:#b42318; }
    .cost-library-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:12px; }
    .cost-library-actions .effective { display:flex; align-items:center; gap:7px; margin-left:auto; color:var(--muted); font-size:13px; font-weight:650; }
    .cost-library-actions .effective input { width:150px; min-height:38px; }
    .cost-library-foot { margin-top:10px; padding:11px 12px; border-radius:10px; background:#f7f9fc; color:#5f6875; font-size:13px; line-height:1.6; }
    .quote-view {
      display: none;
    }
    .quote-view.active {
      display: block;
    }
    .advanced-settings.is-hidden {
      display: none;
    }
    .quote-advanced.is-hidden {
      display: none;
    }
    .quote-reply-details,
    .quote-history-details {
      margin: 0 auto 12px;
      max-width: 980px;
      padding: 12px 16px;
    }
    .quote-reply-details summary,
    .quote-history-details summary,
    .quote-cost-details summary {
      cursor: pointer;
      color: var(--ink);
      font-size: 13px;
      font-weight: 800;
    }
    .quote-reply-details .output {
      min-height: 0;
      margin-top: 10px;
    }
    .quote-guide-layout {
      grid-template-columns: minmax(0, 860px);
      justify-content: center;
      align-items: start;
    }
    .quote-linked-context {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      max-width: 860px;
      margin: 0 auto 12px;
      padding: 13px 15px;
      border: 1px solid rgba(17,132,93,.2);
      border-radius: 13px;
      background: #f5fbf8;
      color: #1d4d3d;
    }
    .quote-linked-context.is-hidden { display: none; }
    .quote-linked-context strong,
    .quote-linked-context span { display: block; }
    .quote-linked-context strong { font-size: 13px; }
    .quote-linked-context span { margin-top: 3px; color: #527267; font-size: 11px; line-height: 1.45; }
    .quote-linked-context button {
      flex: 0 0 auto;
      border: 0;
      background: transparent;
      color: var(--blue);
      font-weight: 800;
      cursor: pointer;
    }
    .quote-guide-card {
      padding: 18px;
      scroll-margin-top: 24px;
      outline: none;
      transition: border-color .2s ease, box-shadow .2s ease;
    }
    .quote-result-page { padding-bottom: 44px; }
    .quote-result-page-shell { width: min(980px, 100%); margin: 0 auto; }
    .quote-result-page-head {
      display: flex;
      align-items: center;
      gap: 13px;
      margin-bottom: 12px;
    }
    .quote-result-page-head button {
      flex: 0 0 auto;
      min-height: 40px;
      border: 1px solid #d8e0eb;
      border-radius: 11px;
      background: #fff;
      padding: 0 14px;
      color: #1c5baf;
      cursor: pointer;
      font-size: 12px;
      font-weight: 850;
    }
    .quote-result-page-head strong,
    .quote-result-page-head span { display: block; }
    .quote-result-page-head strong { font-size: 17px; }
    .quote-result-page-head span { margin-top: 3px; color: var(--muted); font-size: 11px; }
    .quote-result-card {
      padding: 24px;
      scroll-margin-top: 24px;
      outline: none;
      transition: border-color .2s ease, box-shadow .2s ease;
    }
    .quote-result-primary-section {
      margin-top: 14px;
      border: 1px solid #dbe4f0;
      border-radius: 14px;
      background: #fff;
      padding: 18px;
    }
    .quote-result-primary-section.quote-cost-first {
      border-color: rgba(23, 32, 45, .24);
      background: linear-gradient(145deg, #f5f8fc, #fff);
    }
    .quote-result-primary-section h2 { margin: 5px 0 0; font-size: 20px; }
    .quote-result-primary-section p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
    .quote-result-step { color: var(--blue); font-size: 10px; font-weight: 900; letter-spacing: .02em; }
    .quote-cost-first .quote-decision-strip > div:first-child {
      border-color: #17202d;
      background: #17202d;
      color: #fff;
    }
    .quote-cost-first .quote-decision-strip > div:first-child span { color: rgba(255,255,255,.68); }
    .quote-cost-first .quote-decision-strip > div:first-child strong { font-size: 20px; }
    .quote-price-second .quote-tier:first-child {
      border-color: rgba(0,113,227,.35);
      background: #f2f7ff;
    }
    .quote-price-second .quote-tier:first-child strong { color: #075fca; font-size: 22px; }
    .quote-result-details {
      margin-top: 12px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #fff;
      padding: 12px 14px;
    }
    .quote-result-details > summary { cursor: pointer; color: #315f9d; font-size: 12px; font-weight: 850; }
    .quote-result-more-actions { margin-top: 12px; }
    .quote-result-card:not(.is-hidden) {
      animation: resultReveal .36s cubic-bezier(.2,.72,.25,1) both;
    }
    .quote-result-card.is-new-result {
      border-color: rgba(0, 113, 227, .58);
      box-shadow: 0 0 0 4px rgba(0, 113, 227, .11), 0 18px 45px rgba(22, 72, 135, .14);
    }
    .quote-result-arrival {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 14px;
      padding: 11px 13px;
      border: 1px solid rgba(17, 132, 93, .22);
      border-radius: 11px;
      background: #f3fbf7;
      color: #146b4b;
    }
    .quote-result-arrival strong { font-size: 13px; }
    .quote-result-arrival span { color: #4d7264; font-size: 11px; line-height: 1.45; }
    .quote-next-block {
      margin: 13px 0;
      border: 1px solid rgba(0, 113, 227, .2);
      border-radius: 12px;
      background: linear-gradient(145deg, #f8fbff, #fff);
      padding: 13px;
    }
    .quote-next-block > span,
    .quote-next-block > strong { display: block; }
    .quote-next-block > span { color: var(--blue); font-size: 10px; font-weight: 850; }
    .quote-next-block > strong { margin-top: 3px; font-size: 14px; }
    .quote-next-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
    .quote-next-action {
      min-height: 74px;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: #fff;
      padding: 10px;
      color: var(--ink);
      cursor: pointer;
      text-align: left;
    }
    .quote-next-action.primary { border-color: var(--blue); background: var(--blue); color: #fff; }
    .quote-next-action.quiet { background: #f7f9fc; }
    .quote-next-action strong,
    .quote-next-action span { display: block; }
    .quote-next-action strong { font-size: 11px; line-height: 1.35; }
    .quote-next-action span { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.4; }
    .quote-next-action.primary span { color: rgba(255,255,255,.78); }
    .quote-outcome-block {
      margin: 13px 0;
      border: 1px solid rgba(17,132,93,.2);
      border-radius: 12px;
      background: #f7fcfa;
      padding: 13px;
    }
    .quote-outcome-head strong,
    .quote-outcome-head span { display: block; }
    .quote-outcome-head strong { font-size: 13px; }
    .quote-outcome-head span { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
    .quote-outcome-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
    .quote-outcome-actions button {
      min-height: 34px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
      padding: 0 11px;
      color: var(--ink);
      cursor: pointer;
      font-size: 10px;
      font-weight: 800;
    }
    .quote-outcome-actions button:first-child { border-color: #11845d; color: #0b6b4a; }
    .quote-outcome-form { margin-top: 10px; border-top: 1px solid rgba(17,132,93,.14); padding-top: 10px; }
    .quote-outcome-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .quote-outcome-fields label { display: block; margin-bottom: 4px; color: var(--muted); font-size: 9px; font-weight: 750; }
    .quote-outcome-fields input { min-height: 36px; }
    .quote-outcome-status { margin-top: 8px; color: #0b6b4a; font-size: 10px; font-weight: 750; line-height: 1.45; }
    .quote-profit-preview { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 10px; border-radius: 9px; background: #fff; border: 1px solid rgba(17,132,93,.18); }
    .quote-profit-preview span,.quote-profit-preview strong { display:block; }
    .quote-profit-preview span { color:var(--muted); font-size:9px; }
    .quote-profit-preview strong { margin-top:3px; font-size:13px; }
    .quote-profit-preview .warning strong { color:#a04c13; }
    .quote-professional-record { margin: 11px 0; border: 1px solid rgba(28,48,78,.14); border-radius: 12px; background: linear-gradient(135deg,#17202d,#25334a); color:#fff; padding: 13px; }
    .quote-record-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .quote-record-head strong,.quote-record-head span { display:block; }
    .quote-record-head strong { font-size:13px; }
    .quote-record-head span { margin-top:3px; color:rgba(255,255,255,.66); font-size:9px; }
    .quote-record-badge { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:rgba(255,255,255,.12); color:#dceaff; font-size:9px; font-weight:850; }
    .quote-record-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:11px; }
    .quote-record-grid div { padding:8px 9px; border-radius:8px; background:rgba(255,255,255,.075); }
    .quote-record-grid span,.quote-record-grid strong { display:block; }
    .quote-record-grid span { color:rgba(255,255,255,.58); font-size:8px; }
    .quote-record-grid strong { margin-top:3px; font-size:10px; line-height:1.35; }
    .quote-document-center { margin: 11px 0; padding: 12px; border:1px solid var(--line); border-radius:11px; background:#fff; }
    .quote-document-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
    .quote-document-head strong,.quote-document-head span { display:block; }
    .quote-document-head strong { font-size:12px; }
    .quote-document-head span { margin-top:3px; color:var(--muted); font-size:9px; }
    .quote-document-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; margin-top:10px; }
    .quote-document-grid button { min-height:54px; padding:8px; border:1px solid var(--line); border-radius:9px; background:#f8fafc; color:var(--ink); cursor:pointer; text-align:left; font-size:9px; font-weight:800; line-height:1.4; }
    .quote-document-grid button:first-child { border-color:var(--blue); background:#eff6ff; color:var(--blue); }
    .quote-trust-summary {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 7px;
      margin: 10px 0 12px;
    }
    .quote-safety-head {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: auto minmax(0,1fr) auto;
      align-items: center;
      gap: 10px;
      padding: 11px 12px;
      border: 1px solid rgba(0,113,227,.18);
      border-radius: 10px;
      background: linear-gradient(135deg,#f3f8ff,#fff);
    }
    .quote-safety-score { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:#17202d; color:#fff; font-size:15px; font-weight:900; }
    .quote-safety-copy strong, .quote-safety-copy span { display:block; }
    .quote-safety-copy strong { font-size:12px; }
    .quote-safety-copy span { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.4; }
    .quote-safety-gate { padding:5px 8px; border-radius:999px; background:#e8f8f0; color:#126344; font-size:9px; font-weight:900; }
    .quote-safety-gate.warning { background:#fff0dc; color:#8a5107; }
    .quote-trust-item {
      border: 1px solid rgba(17, 132, 93, .2);
      border-radius: 9px;
      background: #f4fbf8;
      padding: 9px;
    }
    .quote-trust-item.warning { border-color: rgba(184, 93, 0, .24); background: #fff8ef; }
    .quote-trust-item strong,
    .quote-trust-item span { display: block; }
    .quote-trust-item strong { color: #176045; font-size: 10px; }
    .quote-trust-item.warning strong { color: #8a5107; }
      .quote-trust-item span { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
    .quote-guide-head {
      display: flex;
      justify-content: space-between;
      gap: 14px;
      align-items: flex-start;
      margin-bottom: 14px;
    }
    .quote-guide-kicker {
      display: block;
      margin-bottom: 4px;
      color: var(--blue);
      font-size: 12px;
      font-weight: 800;
    }
    .quote-guide-required {
      color: var(--muted);
      font-size: 11px;
      white-space: nowrap;
    }
    .quote-guide-progress {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 8px;
      margin-bottom: 14px;
    }
    .quote-guide-progress span {
      display: flex;
      align-items: center;
      gap: 6px;
      min-height: 38px;
      padding: 6px 8px;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: #fff;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
    }
    .quote-guide-progress i {
      display: grid;
      place-items: center;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: var(--soft);
      color: var(--muted);
      font-style: normal;
    }
    #ruleGuideProgress { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .home-share-hint { margin-top:7px; color:#627083; font-size:9px; line-height:1.45; text-align:center; }
    .home-share-hint strong { color:#1769c7; }
    .quote-guide-progress span.active,
    .quote-guide-progress span.done {
      border-color: rgba(0, 113, 227, .25);
      background: var(--blue-soft);
      color: var(--blue);
    }
    .quote-guide-progress span.active i,
    .quote-guide-progress span.done i {
      background: var(--blue);
      color: #fff;
    }
    .quote-page-viewport {
      position: relative;
      min-height: 430px;
      overflow: hidden;
      perspective: 1100px;
    }
    .quote-guide-step {
      display: none;
      min-height: 410px;
      padding: 6px 2px 12px;
      transform-origin: center center;
    }
    .quote-guide-step.active {
      display: block;
      animation: quotePageForward .3s cubic-bezier(.2,.75,.25,1) both;
    }
    .quote-page-viewport.turn-prev .quote-guide-step.active {
      animation-name: quotePageBackward;
    }
    @keyframes quotePageForward {
      from { opacity: 0; transform: translateX(54px) rotateY(-5deg) scale(.985); }
      to { opacity: 1; transform: translateX(0) rotateY(0) scale(1); }
    }
    @keyframes quotePageBackward {
      from { opacity: 0; transform: translateX(-54px) rotateY(5deg) scale(.985); }
      to { opacity: 1; transform: translateX(0) rotateY(0) scale(1); }
    }
    @media (prefers-reduced-motion: reduce) {
      .quote-guide-step.active { animation: none; }
    }
    .quote-step-note {
      margin: 0 0 12px;
      padding: 10px 12px;
      border-radius: 10px;
      background: var(--soft);
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }
    .quote-intake-section.is-linked-collapsed { display: none; }
    .quote-ai-intake {
      padding: 16px;
      border: 1px solid rgba(0, 113, 227, .22);
      border-radius: 14px;
      background: linear-gradient(180deg, #fff, #f5f9ff);
    }
    .quote-ai-intake textarea {
      min-height: 132px;
      margin-top: 7px;
      border-color: rgba(0, 113, 227, .22);
      background: #fff;
    }
    .quote-ai-upload-row {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 9px;
      margin: 10px 0;
    }
    .quote-ai-button {
      width: 100%;
      min-height: 44px;
    }
    #quoteAiRecognitionStatus {
      margin-top: 10px;
    }
    #quoteAiRecognitionSummary {
      margin-top: 10px;
      margin-bottom: 0;
    }
    .quote-manual-details {
      margin-top: 12px;
      padding: 11px 12px;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: #fff;
    }
    .quote-manual-details summary {
      cursor: pointer;
      color: var(--blue);
      font-size: 12px;
      font-weight: 800;
    }
    .quote-manual-details[open] summary { margin-bottom: 10px; }
    .quote-customer-memory {
      margin: 0 0 12px;
      padding: 12px 14px;
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: 11px;
      background: #f5f9ff;
    }
    .quote-customer-memory:not(.is-hidden),
    .quote-missing-costs:not(.is-hidden),
    .member-purchase:not(.is-hidden) {
      animation: panelReveal .3s cubic-bezier(.2,.72,.25,1) both;
    }
    .quote-customer-memory strong,
    .quote-customer-memory span { display: block; }
    .quote-customer-memory strong { color: var(--ink); font-size: 13px; }
    .quote-customer-memory span { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.55; }
    .quote-single-viewport {
      min-height: 0;
      overflow: visible;
      perspective: none;
    }
    .quote-single-section {
      min-height: 0;
      padding: 0;
    }
    .quote-single-section + .quote-single-section {
      margin-top: 16px;
    }
    .quote-customer-strip {
      display: grid;
      grid-template-columns: auto minmax(220px, 420px) minmax(0, 1fr);
      align-items: center;
      gap: 10px;
      padding: 11px 12px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #f8fafc;
    }
    .quote-customer-strip > label { color: var(--ink); font-size: 12px; font-weight: 850; }
    .quote-customer-strip > input { min-height: 38px; background: #fff; }
    .quote-customer-strip > span { color: var(--muted); font-size: 10px; }
    .quote-customer-strip .quote-customer-memory { grid-column: 2 / -1; margin: 0; }
    .quote-flow-heading {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0 0 11px;
    }
    .quote-flow-heading > span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      flex: 0 0 28px;
      border-radius: 9px;
      background: #17202d;
      color: #fff;
      font-size: 12px;
      font-weight: 900;
    }
    .quote-flow-heading strong,
    .quote-flow-heading small { display: block; }
    .quote-flow-heading strong { color: var(--ink); font-size: 15px; }
    .quote-flow-heading small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.4; }
    .quote-flow-step-card {
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 13px;
      background: #fff;
    }
    .quote-section-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 9px;
    }
    .quote-section-head strong {
      color: var(--ink);
      font-size: 14px;
    }
    .quote-section-head span {
      color: var(--muted);
      font-size: 11px;
    }
    .quote-form-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 18px;
    }
    .quote-catalog-builder {
      margin-bottom: 14px;
      padding: 14px;
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: 14px;
      background: linear-gradient(180deg, #fbfdff, #f6f9fd);
    }
    .quote-catalog-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
    }
    .quote-catalog-head strong,
    .quote-catalog-head span { display: block; }
    .quote-catalog-head strong { font-size: 14px; }
    .quote-catalog-head span { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
    .quote-catalog-count { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; background: var(--blue-soft); color: var(--blue); font-size: 9px; font-weight: 850; }
    .quote-category-manager { margin: 0 0 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
    .quote-category-manager-body { padding: 10px 12px 12px; }
    .quote-category-manager-note { margin-bottom: 9px; color: var(--muted); font-size: 12px; line-height: 1.5; }
    .quote-category-manager-list { display:grid; gap:6px; max-height:430px; overflow:auto; padding:6px; border:1px solid #e4ebf3; border-radius:10px; background:#f8fafc; scrollbar-width:thin; }
    .quote-category-manager-row { display: grid; grid-template-columns: 34px minmax(130px,1fr) auto; gap: 8px; align-items: center; padding: 8px 9px; border: 1px solid #edf0f4; border-radius: 9px; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
    .quote-category-manager-row.is-hidden-category { background: #f6f7f9; opacity: .78; }
    .quote-category-manager-row.is-pending-category { border-color: #8ebdff; background: #eef6ff; opacity: 1; box-shadow: 0 0 0 2px rgba(23,105,220,.08); }
    .quote-category-manager-row.is-dragging { z-index: 5; border-color: var(--blue); background: #eef6ff; box-shadow: 0 10px 28px rgba(0,113,227,.18); transform: scale(1.01); opacity: .96; }
    .quote-category-drag-handle { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid var(--line); border-radius:8px; background:#f8fafc; color:#526579; cursor:grab; font-size:16px; font-weight:900; touch-action:none; user-select:none; -webkit-user-select:none; }
    .quote-category-manager-row.is-dragging .quote-category-drag-handle { cursor:grabbing; color:var(--blue); }
    body.quote-category-dragging { cursor:grabbing; user-select:none; -webkit-user-select:none; }
    .quote-category-manager-row strong,.quote-category-manager-row small { display: block; }
    .quote-category-manager-row strong { font-size: 13px; }
    .quote-category-manager-row small { margin-top: 2px; color: var(--muted); font-size: 11px; }
    .quote-category-manager-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
    .quote-category-manager-actions button { min-height: 30px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); cursor: pointer; font-size: 11px; }
    .quote-category-confirm-bar { position: sticky; bottom: 8px; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; padding: 10px 12px; border: 1px solid #8ebdff; border-radius: 10px; background: #eef6ff; box-shadow: 0 10px 26px rgba(23,105,220,.16); }
    .quote-category-confirm-copy strong,.quote-category-confirm-copy span { display: block; }
    .quote-category-confirm-copy strong { color: #124f9e; font-size: 12px; }
    .quote-category-confirm-copy span { margin-top: 2px; color: #526579; font-size: 11px; }
    .quote-category-confirm-actions { display: flex; gap: 6px; flex: 0 0 auto; }
    .quote-category-confirm-actions button { min-height: 34px; padding: 0 12px; border: 1px solid #b9cbe2; border-radius: 8px; background: #fff; color: #35506f; font-size: 11px; font-weight: 800; cursor: pointer; }
    .quote-category-confirm-actions .primary { border-color: #1769dc; background: #1769dc; color: #fff; }
    .quote-category-add { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr) auto; gap: 7px; margin-top: 10px; align-items:start; }
    .quote-category-add input { min-height: 38px; }
    .quote-custom-category-product-builder { display:grid; gap:7px; }
    .quote-custom-category-product-list { display:grid; gap:7px; }
    .quote-custom-category-product-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
    .quote-custom-category-product-row button { min-height:38px; white-space:nowrap; }
    .quote-custom-category-product-help { color:var(--muted); font-size:10px; line-height:1.45; }
    .quote-category-product-editor { grid-column:1 / -1; display:grid; gap:8px; margin:8px 0 2px 50px; padding:10px; border:1px solid #d8e5f4; border-radius:10px; background:#f8fbff; }
    .quote-category-product-editor.is-hidden { display:none; }
    .quote-category-product-editor strong { color:var(--ink); font-size:11px; }
    .quote-category-product-editor-list { display:flex; flex-wrap:wrap; gap:6px; }
    .quote-category-product-editor-list span { display:inline-flex; align-items:center; gap:5px; padding:4px 5px 4px 9px; border:1px solid #d7e1ed; border-radius:999px; background:#fff; color:#4d5d70; font-size:10px; font-weight:750; }
    .quote-category-product-editor-list span em { font-style:normal; }
    .quote-category-product-editor-list span button { width:22px; min-width:22px; min-height:22px; padding:0; border:0; border-radius:50%; background:#eef2f7; color:#657387; font-size:15px; font-weight:850; line-height:1; cursor:pointer; }
    .quote-category-product-editor-list span button:hover { background:#fff0f0; color:#b42318; }
    .quote-category-product-editor-list span button:disabled { cursor:not-allowed; opacity:.45; }
    .quote-category-product-editor-add { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
    .quote-catalog-search { margin-bottom: 10px; }
    .quote-catalog-search input { min-height: 39px; background: #fff; }
    .quote-catalog-preserved-note {
      margin-bottom: 9px;
      color: #35506f;
      font-size: 12px;
      font-weight: 700;
      line-height: 1.5;
    }
    .quote-category-tabs {
      display: flex;
      gap: 6px;
      margin-bottom: 9px;
      padding-bottom: 5px;
      overflow-x: auto;
      scrollbar-width: thin;
    }
    .quote-category-tabs button {
      flex: 0 0 auto;
      min-height: 34px;
      padding: 0 10px;
      border: 1px solid var(--line);
      border-radius: 9px;
      background: #fff;
      color: var(--muted);
      cursor: pointer;
      font-size: 10px;
      font-weight: 800;
    }
    .quote-category-tabs button.active { border-color: var(--blue); background: var(--blue); color: #fff; }
    .quote-category-tabs button.quote-category-manage { border-color:#a9c9f4; background:#eef6ff; color:var(--blue-dark); }
    .quote-catalog-head-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
    .quote-catalog-head-actions .btn { min-height:34px; padding:0 12px; border-style:dashed; font-size:12px; }
    .quote-catalog-setup { max-width:1040px; margin:0 auto 18px; padding:24px; }
    .quote-catalog-setup-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px solid var(--line); }
    .quote-catalog-setup-head span { color:var(--blue); font-size:12px; font-weight:800; }
    .quote-catalog-setup-head h2 { margin:5px 0 6px; font-size:24px; }
    .quote-catalog-setup-head p { margin:0; color:var(--muted); line-height:1.65; }
    .quote-catalog-setup-head > strong { flex:0 0 auto; padding:8px 12px; border-radius:999px; background:var(--blue-soft); color:var(--blue-dark); font-size:13px; }
    .quote-catalog-setup-step { padding:20px 0; border-bottom:1px solid var(--line); }
    .quote-catalog-setup-tools { display:grid; grid-template-columns:minmax(260px,1fr) auto auto; gap:8px; margin:12px 0; }
    .quote-catalog-setup-tools input { min-height:42px; }
    .quote-catalog-setup-custom { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(220px,1fr) auto; gap:8px; align-items:center; margin:0 0 12px; padding:10px; border:1px dashed #a9c9f4; border-radius:11px; background:#f5f9ff; }
    .quote-catalog-setup-custom input { min-height:40px; }
    .quote-catalog-setup-custom button { min-height:40px; white-space:nowrap; }
    .quote-catalog-setup-products { display:grid; gap:10px; max-height:440px; overflow:auto; padding-right:4px; }
    .quote-catalog-setup-category { padding:12px; border:1px solid var(--line); border-radius:12px; background:#fbfdff; }
    .quote-catalog-setup-category > strong { display:block; margin-bottom:9px; font-size:14px; }
    .quote-catalog-setup-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
    .quote-catalog-setup-product { display:flex; align-items:center; gap:8px; min-height:40px; padding:7px 9px; border:1px solid #dbe3ed; border-radius:9px; background:#fff; cursor:pointer; font-size:12px; }
    .quote-catalog-setup-product:has(input:checked) { border-color:#7db0f2; background:#eef6ff; color:#124f9e; font-weight:700; }
    .quote-catalog-setup-product input { width:auto; margin:0; }
    .quote-catalog-setup-costs { display:grid; gap:12px; margin-top:12px; }
    .quote-catalog-setup-cost-card { padding:14px; border:1px solid var(--line); border-radius:12px; background:#fbfdff; }
    .quote-catalog-setup-cost-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:10px; }
    .quote-catalog-setup-cost-head strong { display:block; font-size:14px; }
    .quote-catalog-setup-cost-head small,
    .quote-catalog-setup-labor small { display:block; margin-top:4px; color:var(--muted); line-height:1.5; }
    .quote-catalog-setup-cost-head .btn { flex:none; min-height:36px; padding:0 12px; }
    .quote-catalog-setup-cost-rows { display:grid; gap:8px; }
    .quote-catalog-setup-cost-row { display:grid; grid-template-columns:minmax(180px,1.2fr) minmax(110px,.65fr) minmax(110px,.65fr) auto; gap:8px; align-items:end; padding:10px; border:1px solid #dbe3ed; border-radius:11px; background:#fff; }
    .quote-catalog-setup-cost-row.is-process { grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
    .quote-catalog-setup-cost-row.is-process .quote-catalog-setup-cost-delete { align-self:end; justify-self:start; }
    .quote-catalog-setup-cost-row label { display:flex; min-width:0; flex-direction:column; gap:5px; }
    .quote-catalog-setup-cost-row label > span { color:#667085; font-size:11px; font-weight:750; }
    .quote-catalog-setup-cost-row input,
    .quote-catalog-setup-cost-row select { width:100%; min-width:0; min-height:42px; }
    .quote-catalog-setup-cost-row label[hidden] { display:none !important; }
    .quote-catalog-setup-cost-mode-help {
      grid-column:1 / -1;
      margin:0;
      padding:10px 12px;
      border:1px solid #cfe0f6;
      border-radius:9px;
      background:#f5f9ff;
      color:#3f5f82;
      font-size:11px;
      line-height:1.6;
    }
    .quote-catalog-setup-cost-mode-help strong { color:#174f91; }
    .quote-catalog-setup-cost-delete { min-height:42px; padding:0 13px; border:1px solid #efb5ad; border-radius:10px; background:#fff; color:#c43226; cursor:pointer; font:inherit; font-size:12px; font-weight:750; }
    .quote-catalog-setup-cost-delete:hover { background:#fff3f1; }
    .quote-catalog-setup-labor { display:flex; flex-direction:column; gap:6px; padding:14px; border:1px solid var(--line); border-radius:12px; background:#fbfdff; }
    .quote-catalog-setup-labor > span { font-size:14px; font-weight:800; }
    .quote-catalog-setup-confirm { display:flex; align-items:flex-start; gap:9px; margin-top:14px; padding:12px; border-radius:10px; background:#f2f8ff; font-weight:700; }
    .quote-catalog-setup-confirm input { width:auto; margin:2px 0 0; }
    .quote-catalog-setup-actions { position:sticky; bottom:8px; z-index:6; display:flex; justify-content:flex-end; gap:9px; margin:0 -10px -10px; padding:14px 10px 10px; border-top:1px solid #dbe3ed; background:rgba(255,255,255,.96); box-shadow:0 -12px 28px rgba(34,53,84,.08); backdrop-filter:blur(12px); }
    .quote-catalog-access-notice { max-width:1040px; margin:0 auto 18px; padding:26px; border-color:#f0c680; background:#fffaf0; }
    .quote-catalog-access-notice span { color:#9a5b00; font-size:12px; font-weight:850; }
    .quote-catalog-access-notice h2 { margin:6px 0 8px; font-size:23px; }
    .quote-catalog-access-notice p { margin:0; color:#684b20; line-height:1.7; }
    .quote-product-picker {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 7px;
      max-height: 174px;
      margin-top: 9px;
      overflow: auto;
    }
    .quote-product-picker button {
      min-height: 42px;
      padding: 7px 9px;
      border: 1px solid var(--line);
      border-radius: 9px;
      background: #fff;
      color: var(--ink);
      cursor: pointer;
      text-align: left;
      font-size: 10px;
      font-weight: 800;
      line-height: 1.3;
    }
    .quote-product-picker button.active { border-color: var(--blue); background: var(--blue-soft); color: var(--blue-dark); box-shadow: inset 0 0 0 1px rgba(0,113,227,.12); }
    .quote-product-picker .quote-product-empty { grid-column: 1 / -1; padding: 10px; color: var(--muted); font-size: 10px; }
    .quote-configurator { margin-top: 13px; padding-top: 12px; border-top: 1px solid rgba(28,48,78,.1); }
    .quote-configurator-title { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 9px; }
    .quote-configurator-title > div { display: flex; align-items: center; gap: 8px; }
    .quote-configurator-title i { display:inline-flex; align-items:center; justify-content:center; width:25px; height:25px; border-radius:8px; background:#17202d; color:#fff; font-size:11px; font-style:normal; font-weight:900; }
    .quote-configurator-title strong { font-size: 13px; }
    .quote-configurator-title span { color: var(--muted); font-size: 9px; }
    .quote-option-group {
      display: grid;
      grid-template-columns: 120px minmax(0, 1fr);
      gap: 10px;
      align-items: start;
      padding: 9px 0;
      border-top: 1px solid rgba(28,48,78,.07);
    }
    .quote-option-group:first-of-type { border-top: 0; }
    .quote-option-label { padding-top: 7px; color: var(--ink); font-size: 10px; font-weight: 850; }
    .quote-option-label em { margin-left: 3px; color: #b25019; font-style: normal; }
    .quote-option-values { display: flex; flex-wrap: wrap; gap: 6px; }
    .quote-option-values label { position: relative; cursor: pointer; }
    .quote-option-values input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
    .quote-option-values span {
      display: inline-flex;
      align-items: center;
      min-height: 31px;
      padding: 5px 9px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
      color: var(--muted);
      font-size: 10px;
      font-weight: 750;
      line-height: 1.25;
    }
    .quote-option-values input:checked + span { border-color: #17202d; background: #17202d; color: #fff; }
    .quote-material-price-editor { margin-top:9px; border:1px solid #d7e4f4; border-radius:10px; background:#f8fbff; }
    .quote-material-price-editor > summary { padding:9px 11px; color:var(--blue-dark); cursor:pointer; font-size:12px; font-weight:750; }
    .quote-material-price-editor[open] > summary { border-bottom:1px solid #d7e4f4; }
    .quote-material-price-editor-note { padding:9px 11px 3px; color:var(--muted); font-size:11px; line-height:1.5; }
    .quote-material-price-list { display:grid; gap:6px; padding:8px 10px 10px; }
    .quote-material-price-row { display:grid; grid-template-columns:minmax(150px,1fr) 130px 105px auto; gap:7px; align-items:center; padding:7px; border:1px solid #e4ebf3; border-radius:9px; background:#fff; }
    .quote-material-price-row > span strong,.quote-material-price-row > span small { display:block; }
    .quote-material-price-row > span strong { color:var(--ink); font-size:12px; }
    .quote-material-price-row > span small { margin-top:2px; color:var(--muted); font-size:10px; }
    .quote-material-price-row input,.quote-material-price-row select { min-height:34px; background:#fff; font-size:12px; }
    .quote-material-price-row button { min-height:34px; white-space:nowrap; }
    .quote-material-price-row.is-price-outlier,
    .quote-operation-price-row.is-price-outlier { border-color:#e7a33b; background:#fff8ea; box-shadow:0 0 0 2px rgba(231,163,59,.12); }
    .quote-material-price-row.is-price-outlier > span small,
    .quote-operation-price-row.is-price-outlier > span small { color:#8a5107; font-weight:750; }
    .quote-price-row-actions { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
    .quote-price-row-actions .quote-price-delete { color:#b42318; border-color:#f1c9c4; background:#fff8f7; }
    .quote-price-row-actions .quote-price-delete:hover:not(:disabled) { border-color:#d92d20; background:#fff1ef; }
    .quote-operation-price-editor { margin-top:9px; border:1px solid #d9e3f0; border-radius:10px; background:#fbfcfe; }
    .quote-operation-price-editor > summary { padding:9px 11px; color:var(--blue-dark); cursor:pointer; font-size:12px; font-weight:750; }
    .quote-operation-price-editor[open] > summary { border-bottom:1px solid #d9e3f0; }
    .quote-product-price-workbench { margin-top:14px; border:1px solid #9fc5f5; border-radius:13px; background:#f5f9ff; overflow:hidden; }
    .quote-product-price-workbench > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; cursor:pointer; list-style-position:inside; color:#123a68; }
    .quote-product-price-workbench > summary span { display:inline-flex; flex-direction:column; gap:3px; vertical-align:middle; }
    .quote-product-price-workbench > summary strong { font-size:14px; }
    .quote-product-price-workbench > summary small { color:var(--muted); font-size:11px; font-weight:500; }
    .quote-product-price-workbench > summary em { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:#e4effe; color:#195ca9; font-size:11px; font-style:normal; font-weight:750; }
    .quote-product-price-workbench[open] > summary { border-bottom:1px solid #cfe1f7; }
    .quote-product-price-workbench-note { margin:11px 12px 0; padding:9px 10px; border-radius:9px; background:#fff; color:#4b607a; font-size:12px; line-height:1.55; }
    .quote-product-price-workbench > .quote-material-price-editor,
    .quote-product-price-workbench > .quote-operation-price-editor { margin:10px 12px 0; background:#fff; }
    .quote-product-price-library-button { margin:11px 12px 13px; }
    .quote-operation-price-note { padding:9px 11px 3px; color:var(--muted); font-size:11px; line-height:1.5; }
    .quote-operation-price-list { display:grid; gap:6px; padding:8px 10px 10px; }
    .quote-operation-price-row { display:block; min-width:0; padding:11px; border:1px solid #e4ebf3; border-radius:9px; background:#fff; }
    .quote-operation-price-row > span strong,.quote-operation-price-row > span small { display:block; }
    .quote-operation-price-row > span strong { color:var(--ink); font-size:12px; }
    .quote-operation-price-row > span small { margin-top:2px; color:var(--muted); font-size:10px; }
    .quote-operation-pricing-help { margin-top:7px; padding:7px 9px; border-radius:7px; background:#f5f8fc; color:#52657d; font-size:10px; line-height:1.55; }
    .quote-operation-price-primary { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:7px; margin-top:10px; }
    .quote-print-sheet-tier-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:12px; color:var(--ink); }
    .quote-print-sheet-tier-heading strong { font-size:13px; }
    .quote-print-sheet-tier-heading span { color:var(--muted); font-size:10px; line-height:1.45; text-align:right; }
    .quote-print-sheet-tier-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:8px; margin-top:8px; }
    .quote-print-sheet-tier-card { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; padding:10px; border:1px solid #dce7f4; border-radius:10px; background:#f8fbff; }
    .quote-print-sheet-tier-card > strong,.quote-print-sheet-tier-card > small { grid-column:1/-1; }
    .quote-print-sheet-tier-card > strong { color:var(--blue-dark); font-size:13px; }
    .quote-print-sheet-tier-card > small { margin-top:-4px; color:var(--muted); font-size:10px; }
    .quote-print-sheet-tier-card label { display:flex; min-width:0; flex-direction:column; gap:4px; color:#667085; font-size:10px; font-weight:750; }
    .quote-operation-price-primary label,
    .quote-operation-price-advanced label { display:flex; min-width:0; flex-direction:column; gap:4px; color:#667085; font-size:10px; font-weight:750; }
    .quote-operation-price-row input,.quote-operation-price-row select { width:100%; min-width:0; min-height:34px; background:#fff; font-size:12px; }
    .quote-operation-price-advanced { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:7px; margin-top:7px; }
    .quote-operation-price-row .quote-price-row-actions { justify-content:flex-end; margin-top:8px; }
    .quote-operation-price-row button { min-height:34px; white-space:nowrap; }
    .quote-option-custom { max-width: 320px; min-height: 34px; margin-top: 7px; background: #fff; }
    .quote-option-group.quote-field-error {
      margin: 0 -7px;
      padding: 9px 7px;
      border: 2px solid #d92d20 !important;
      border-radius: 9px;
      background: #fff1ee;
      box-shadow: 0 0 0 4px rgba(217, 45, 32, .12) !important;
    }
    .quote-option-group.quote-field-error .quote-option-label { color:#b42318; }
    .quote-option-group.quote-field-error .quote-option-label::after {
      content:"请补充";
      display:inline-flex;
      margin-left:7px;
      padding:2px 6px;
      border-radius:999px;
      background:#d92d20;
      color:#fff;
      font-size:10px;
      line-height:1.3;
      vertical-align:middle;
    }
    .quote-optional-groups { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(28,48,78,.08); }
    .quote-optional-groups summary { cursor:pointer; color:var(--blue); font-size:10px; font-weight:850; }
    .quote-optional-groups[open] summary { margin-bottom:4px; }
    .quote-calculation-heading { margin-top: 16px; }
    .quote-calculation-panel { padding:13px; border:1px solid rgba(28,48,78,.12); border-radius:12px; background:#f8fafc; }
    .quote-quantity-presets { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 10px; }
    .quote-quantity-presets button { min-height: 31px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); cursor: pointer; font-size: 10px; font-weight: 800; }
    .quote-quantity-presets button.active { border-color: var(--blue); background: var(--blue-soft); color: var(--blue); }
    .quote-quantity-input { margin:0; }
    .quote-quantity-input input { max-width:360px; background:#fff; }
    .quote-catalog-summary { margin-top: 11px; padding: 10px 11px; border-radius: 9px; background: #fff; color: var(--muted); font-size: 10px; line-height: 1.5; }
    .quote-catalog-summary strong { color: var(--ink); }
    .quote-manual-compat { margin-top: 10px; }
    .quote-manual-compat summary { cursor: pointer; color: var(--blue); font-size: 10px; font-weight: 800; }
    .quote-manual-compat .quote-form-grid { margin-top: 9px; }
    .quote-primary-terms { margin-bottom:8px; }
    .quote-freight-note { padding:8px 10px; border-radius:9px; background:#f4f8ff; color:#315a8a; font-size:10px; font-weight:800; }
    .quote-terms-more { margin-top:9px; }
    .quote-terms-more summary,
    .quote-review-details summary { cursor:pointer; color:var(--blue); font-size:10px; font-weight:850; }
    .quote-terms-more[open] .quote-form-grid { margin-top:10px; }
    .quote-review-details { margin-top:10px; }
    .quote-review-details[open] .quote-review { margin-top:9px; }
    .quote-freight-policy {
      min-height: 42px;
      padding: 10px 12px;
      border: 1px solid rgba(0, 113, 227, .2);
      border-radius: 10px;
      background: var(--blue-soft);
    }
    .quote-freight-policy strong,
    .quote-freight-policy span { display:block; }
    .quote-freight-policy strong { color:var(--blue-dark); font-size:13px; }
    .quote-freight-policy span { margin-top:3px; color:var(--muted); font-size:11px; line-height:1.4; }
    .quote-confirm-section {
      padding-top: 2px;
    }
    .quote-material-check {
      margin: 10px 0 12px;
      padding: 13px;
      border: 1px solid rgba(190, 115, 0, .28);
      border-radius: 12px;
      background: #fff9ef;
    }
    .quote-material-check-head strong,
    .quote-material-check-head span { display:block; }
    .quote-material-check-head strong { color:#7a4700; font-size:13px; }
    .quote-material-check-head span { margin-top:3px; color:#8b642d; font-size:11px; line-height:1.5; }
    .quote-material-check-fields {
      display:grid;
      grid-template-columns:minmax(150px, .42fr) minmax(0, 1fr);
      gap:12px;
      align-items:end;
      margin-top:10px;
    }
    .quote-material-purchase-grid {
      grid-column:1 / -1;
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:9px;
    }
    .quote-material-purchase-grid label { min-width:0; }
    .quote-material-purchase-grid input,
    .quote-material-purchase-grid select { width:100%; }
    .quote-material-conversion-result {
      grid-column:1 / -1;
      padding:10px 12px;
      border:1px solid #ead3ad;
      border-radius:10px;
      background:#fffdf8;
      color:#684418;
      font-size:11px;
      line-height:1.65;
    }
    .quote-material-conversion-result strong { color:#5a3404; }
    .quote-material-conversion-result.is-error { border-color:#e5b6ae; background:#fff8f7; color:#a33a2d; }
    .quote-material-check-fields label > span { display:block; margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:800; }
    .quote-material-confirm { display:flex; align-items:flex-start; gap:8px; padding:9px 10px; border-radius:9px; background:#fff; color:var(--ink); font-size:11px; line-height:1.45; cursor:pointer; }
    .quote-material-confirm input { width:auto; margin-top:2px; flex:0 0 auto; }
    .rule-cost-confirmation { margin-top:12px; padding:12px; border:1px solid rgba(190,115,0,.32); border-radius:10px; background:#fff8ec; }
    .rule-cost-confirmation label { display:flex; align-items:flex-start; gap:9px; color:#704100; font-size:12px; font-weight:800; line-height:1.5; cursor:pointer; }
    .rule-cost-confirmation input { width:auto; margin-top:3px; flex:0 0 auto; }
    .quote-single-actions .btn {
      width: 100%;
      min-height: 46px;
    }
    .quote-missing-costs {
      margin-top: 12px;
      padding: 14px;
      border: 1px solid rgba(190, 115, 0, .32);
      border-radius: 12px;
      background: #fff8ec;
    }
    .quote-missing-costs-head strong,
    .quote-missing-costs-head span {
      display: block;
    }
    .quote-missing-costs-head strong {
      color: #8a4d00;
      font-size: 14px;
    }
    .quote-missing-costs-head span {
      margin-top: 3px;
      color: #94611f;
      font-size: 12px;
    }
    .quote-missing-cost-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(160px, .7fr);
      gap: 12px;
      align-items: center;
      margin-top: 10px;
    }
    .quote-missing-cost-row label {
      color: var(--ink);
      font-size: 12px;
      font-weight: 800;
    }
    .quote-missing-cost-row label span {
      display: block;
      margin-top: 2px;
      color: var(--muted);
      font-size: 11px;
      font-weight: 500;
    }
    .quote-missing-costs .field-help {
      margin: 10px 0;
    }
    .quote-missing-costs .btn {
      width: 100%;
    }
    .quote-guide-nav {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid var(--line);
    }
    .quote-guide-spacer { flex: 1; }
    .quote-review {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin-bottom: 12px;
    }
    @media (max-width: 760px) {
      .quote-customer-strip { grid-template-columns: 1fr; }
      .quote-customer-strip .quote-customer-memory { grid-column: 1; }
      .quote-option-group { grid-template-columns: 1fr; gap:4px; }
      .quote-option-label { padding-top:0; }
    }
    .quote-review div {
      padding: 10px 12px;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: #fff;
    }
    .quote-review span,
    .quote-review strong {
      display: block;
    }
    .quote-review span {
      margin-bottom: 3px;
      color: var(--muted);
      font-size: 11px;
    }
    .quote-review strong {
      color: var(--ink);
      font-size: 13px;
      line-height: 1.45;
    }
    .quote-cost-details {
      margin: 10px 0;
      padding: 11px 12px;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: #fff;
    }
    .quote-cost-details[open] summary { margin-bottom: 10px; }
    .quote-basis-details {
      margin: 10px 0 12px;
      padding: 11px 12px;
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: 10px;
      background: #f6faff;
    }
    .quote-basis-details summary {
      cursor: pointer;
      color: var(--blue);
      font-size: 12px;
      font-weight: 800;
    }
    .quote-basis-details[open] summary { margin-bottom: 10px; }
    .quote-basis-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }
    .quote-basis-item {
      padding: 9px 10px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
    }
    .quote-basis-item span,
    .quote-basis-item strong { display: block; }
    .quote-basis-item span { color: var(--muted); font-size: 10px; }
    .quote-basis-item strong { margin-top: 3px; font-size: 13px; }
    .quote-basis-foot {
      grid-column: 1 / -1;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.55;
    }
    .quote-secondary-actions { margin-top: 12px; }
    .quote-history-details { margin-top: 14px; }
    .quote-history-details table { margin-top: 12px; }
    .rule-guide-header,
    .rule-guide-layout,
    .rule-guide-nav {
      max-width: 920px;
      margin-left: auto;
      margin-right: auto;
    }
    .rule-guide-header,
    .rule-guide-card {
      padding: 18px;
    }
    .rule-guide-layout {
      grid-template-columns: minmax(0, 1fr);
      perspective: 1100px;
    }
    .rule-guide-page { display: none; }
    .rule-guide-page.active {
      display: block;
      min-height: 390px;
      animation: quotePageForward .3s cubic-bezier(.2,.75,.25,1) both;
    }
    .rule-guide-layout.turn-prev .rule-guide-page.active {
      animation-name: quotePageBackward;
    }
    .rule-guide-nav {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 12px;
      padding: 14px 18px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--panel);
    }
    .rule-guide-card .industry-strip {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .rule-guide-review-note {
      margin-top: 10px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }
    .capacity-preview {
      margin-top: 10px;
    }
    .ask-ai-card textarea {
      min-height: 112px;
    }
    .more-actions {
      margin-top: 10px;
    }
    .more-actions summary {
      cursor: pointer;
      color: var(--blue);
      font-weight: 850;
      font-size: 13px;
      list-style: none;
    }
    .quick-questions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-top: 8px;
    }
    .quick-questions button {
      min-height: 30px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #fff;
      color: var(--blue);
      padding: 0 10px;
      font-size: 12px;
      font-weight: 850;
      cursor: pointer;
    }
    .visual-set {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 10px;
    }
    .visual-card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      padding: 10px;
      box-shadow: var(--shadow);
    }
    .visual-preview {
      height: 96px;
      border: 1px dashed rgba(0, 113, 227, .28);
      border-radius: 8px;
      background: #fbfbfd;
      display: grid;
      place-items: center;
      margin-bottom: 8px;
      color: var(--blue);
      font-size: 12px;
      font-weight: 850;
      text-align: center;
      padding: 8px;
    }
    .visual-card strong {
      display: block;
      margin-bottom: 5px;
      font-size: 14px;
    }
    .visual-card span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }
    .visual-card .btn {
      margin-top: 8px;
      box-shadow: none;
    }
    .generated-image-panel {
      margin-bottom: 12px;
      padding: 10px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
    }
    .generated-image-panel img {
      display: block;
      width: 100%;
      max-height: 520px;
      object-fit: contain;
      border-radius: 6px;
      background: #f5f5f7;
    }
    .generated-image-panel .actions { margin-top: 10px; }
    .home-inline-visual {
      max-width: 720px;
      margin-top: 14px;
      padding: 12px;
      border: 1px solid #e1e7ef;
      border-radius: 16px;
      background: #fff;
      box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
    }
    .home-inline-visual img {
      display: block;
      width: 100%;
      max-height: 420px;
      object-fit: contain;
      border-radius: 12px;
      background: #f5f7fa;
    }
    .generated-image-open {
      position: relative;
      display: block;
      width: 100%;
      margin: 0;
      padding: 0;
      overflow: hidden;
      border: 0;
      border-radius: inherit;
      background: #f5f7fa;
      color: inherit;
      cursor: zoom-in;
      text-align: left;
    }
    .generated-image-open img { transition: transform .2s ease, filter .2s ease; }
    .generated-image-open:hover img { filter: brightness(.96); transform: scale(1.008); }
    .generated-image-open:focus-visible { outline: 3px solid rgba(0,113,227,.42); outline-offset: 3px; }
    .generated-image-open-label {
      position: absolute;
      right: 10px;
      bottom: 10px;
      padding: 6px 9px;
      border-radius: 999px;
      background: rgba(17,22,29,.82);
      color: #fff;
      font-size: 10px;
      font-weight: 850;
      line-height: 1;
      pointer-events: none;
    }
    .home-inline-visual-meta {
      margin: 10px 2px 0;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.55;
    }
    .home-inline-visual .actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 11px;
    }
    .home-inline-quote-workspace {
      width: 100%;
      margin: 20px 0 8px;
      border: 1px solid rgba(0, 113, 227, .22);
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 14px 38px rgba(15, 23, 42, .09);
      overflow: hidden;
    }
    .home-inline-quote-workspace.is-hidden { display: none; }
    .home-inline-quote-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      padding: 14px 16px;
      border-bottom: 1px solid #e8edf5;
      background: linear-gradient(135deg, #f2f7ff, #fff);
    }
    .home-inline-quote-head strong,
    .home-inline-quote-head span { display: block; }
    .home-inline-quote-head strong { color: #17202d; font-size: 15px; }
    .home-inline-quote-head span { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.45; }
    .home-inline-quote-close {
      flex: 0 0 auto;
      min-height: 34px;
      padding: 7px 11px;
      border: 1px solid #d9e2ef;
      border-radius: 10px;
      background: #fff;
      color: #315f9d;
      cursor: pointer;
      font-size: 11px;
      font-weight: 850;
    }
    #homeInlineQuoteMount { padding: 14px; }
    #quoteWorkspaceRoot { min-width: 0; }
    .home-inline-quote-workspace .quote-linked-context,
    .home-inline-quote-workspace .quote-reply-details,
    .home-inline-quote-workspace .quote-guide-layout { max-width: none; }
    .home-inline-quote-workspace .quote-reply-details { display: none; }
    .home-inline-quote-workspace .quote-guide-layout {
      width: 100%;
      grid-template-columns: minmax(0, 1fr);
    }
    .home-inline-quote-workspace .quote-guide-card { box-shadow: none; }
    .visual-version-board { margin-top:18px; }
    .visual-version-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:12px; }
    .visual-version-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
    .visual-version-item { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#fff; }
    .visual-version-item.locked { border-color:rgba(17,132,93,.34); box-shadow:0 10px 24px rgba(17,132,93,.09); }
    .visual-version-item img { width:100%; height:150px; display:block; object-fit:contain; background:#f5f7fa; }
    .visual-version-body { padding:11px; }
    .visual-version-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .visual-version-top strong { font-size:12px; }
    .visual-version-status { padding:4px 7px; border-radius:999px; background:#eef2f7; color:#596579; font-size:9px; font-weight:900; }
    .visual-version-status.sent { background:#e8f2ff; color:#1769c7; }
    .visual-version-status.revision_requested { background:#fff0dc; color:#8a5107; }
    .visual-version-status.confirmed_locked { background:#e8f8f0; color:#126344; }
    .visual-version-meta { margin-top:6px; color:var(--muted); font-size:9px; line-height:1.45; }
    .visual-version-note { margin-top:7px; padding:7px 8px; border-radius:8px; background:#f7f9fc; color:#566273; font-size:9px; line-height:1.45; }
    .visual-version-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
    .visual-version-actions .btn { min-height:31px; padding:6px 9px; font-size:9px; box-shadow:none; }
    .visual-final-banner { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 12px; border-radius:10px; background:#edf9f3; color:#195e46; font-size:10px; line-height:1.5; }
    .visual-final-banner strong { display:block; color:#123d30; font-size:12px; }
    .btn:disabled {
      cursor: wait;
      opacity: .55;
      box-shadow: none;
    }
    .visual-use-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      margin: 10px 0;
    }
    .visual-use-grid span {
      min-height: 62px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
      padding: 9px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
    }
    .visual-use-grid strong {
      display: block;
      margin-bottom: 4px;
      color: var(--text);
      font-size: 13px;
    }
    .visual-customer-context { display:grid; grid-template-columns:auto minmax(120px,1fr) minmax(220px,1.5fr) auto; gap:10px; align-items:center; margin:12px 0; padding:12px 14px; border:1px solid #a8cdf7; border-radius:12px; background:#f1f7ff; }
    .visual-customer-context span { color:#526579; font-size:13px; font-weight:750; }
    .visual-customer-context strong { color:#124f9e; font-size:16px; }
    .visual-customer-context em { color:#526579; font-size:13px; font-style:normal; line-height:1.45; }
    .visual-customer-context.is-pending-customer { border-color:#efc078; background:#fff8eb; }
    .visual-customer-context.is-pending-customer strong { color:#8a5107; }
    .setup-hero {
      margin-bottom: 12px;
      display: grid;
      grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
      gap: 10px;
      align-items: stretch;
    }
    .setup-title {
      margin: 0 0 10px;
      font-size: 24px;
      line-height: 1.12;
      font-weight: 850;
    }
    .setup-step {
      margin-top: 10px;
      border: 1px solid var(--line);
      border-radius: 6px;
      background: rgba(255, 255, 255, .62);
      padding: 12px;
    }
    .step-head {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 8px;
      font-size: 15px;
      font-weight: 850;
    }
    .step-num {
      display: inline-grid;
      place-items: center;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: var(--blue);
      color: #fff;
      font-size: 12px;
      font-weight: 850;
      flex: 0 0 auto;
    }
    .step-num.wide {
      width: auto;
      min-width: 38px;
      padding: 0 8px;
      border-radius: 999px;
    }
    .mini-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }
    .field-label {
      display: block;
      margin: 0 0 4px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }
    .field-help {
      margin-top: 5px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.4;
    }
    .setup-quick-guide {
      margin-bottom: 4px;
    }
    .hint {
      margin-top: 6px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }
    .check-list {
      display: grid;
      gap: 6px;
    }
    .check-item {
      display: flex;
      align-items: center;
      gap: 8px;
      min-height: 32px;
      border-radius: 6px;
      background: rgba(245, 245, 247, .8);
      padding: 7px 9px;
      color: var(--muted);
      font-weight: 800;
      font-size: 12px;
    }
    .check-dot {
      display: inline-grid;
      place-items: center;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: #e8e8ed;
      color: var(--muted);
      font-size: 12px;
      flex: 0 0 auto;
    }
    .check-item.done {
      color: var(--text);
      background: var(--blue-soft);
    }
    .check-item.done .check-dot {
      background: var(--blue);
      color: #fff;
    }
    .content-grid {
      display: grid;
      grid-template-columns: minmax(390px, .85fr) minmax(520px, 1.15fr);
      gap: 22px;
      align-items: start;
    }
    .mode-panel {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 12px;
    }
    .mode-card {
      min-height: 86px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(245, 245, 247, .76);
      padding: 12px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }
    .mode-card strong {
      display: block;
      margin-bottom: 6px;
      color: var(--text);
      font-size: 14px;
    }
    .customer-tools {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 12px;
    }
    .action-primary {
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
      margin-top: 12px;
      padding: 10px;
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: var(--radius);
      background: var(--blue-soft);
    }
    .action-primary .btn {
      width: 100%;
      height: 40px;
      font-size: 15px;
    }
    .action-primary span {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }
    .inquiry-attachment-box {
      margin-top: 10px;
      border: 1px solid rgba(0, 113, 227, .2);
      border-radius: 12px;
      background: rgba(245, 249, 255, .78);
      overflow: hidden;
    }
    .inquiry-attachment-drop {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      min-height: 70px;
      padding: 12px 14px;
      cursor: pointer;
      transition: background .16s ease, border-color .16s ease;
    }
    .inquiry-attachment-drop:hover,
    .inquiry-attachment-box.is-dragging {
      background: rgba(0, 113, 227, .08);
      box-shadow: inset 0 0 0 2px rgba(0, 113, 227, .18);
    }
    .inquiry-attachment-drop strong,
    .inquiry-attachment-drop span { display: block; }
    .inquiry-attachment-drop strong { color: var(--text); font-size: 14px; }
    .inquiry-attachment-drop span { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.45; }
    .inquiry-attachment-drop b {
      flex: 0 0 auto;
      min-width: 94px;
      min-height: 34px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(0, 113, 227, .26);
      border-radius: 9px;
      background: #fff;
      color: var(--blue);
      font-size: 13px;
    }
    .inquiry-attachment-list {
      display: grid;
      gap: 6px;
      padding: 0 10px 10px;
    }
    .inquiry-attachment-list:empty { display: none; }
    .inquiry-attachment-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 10px;
      min-height: 42px;
      padding: 7px 8px 7px 10px;
      border: 1px solid var(--line);
      border-radius: 9px;
      background: #fff;
    }
    .inquiry-attachment-item span { min-width: 0; }
    .inquiry-attachment-item strong {
      display: block;
      overflow: hidden;
      color: var(--text);
      font-size: 12px;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .inquiry-attachment-item small { color: var(--muted); font-size: 11px; }
    .inquiry-attachment-item button {
      width: 28px;
      height: 28px;
      border: 0;
      border-radius: 50%;
      background: var(--soft);
      color: var(--muted);
      cursor: pointer;
      font-size: 17px;
    }
    .inquiry-attachment-status {
      padding: 0 12px 10px;
      color: var(--muted);
      font-size: 11px;
    }
    .inquiry-ai-progress {
      display: none;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 12px;
      margin: 0 0 14px;
      padding: 14px 15px;
      border: 1px solid rgba(0, 113, 227, .22);
      border-radius: 13px;
      background: linear-gradient(135deg, rgba(239, 247, 255, .98), rgba(248, 251, 255, .98));
      box-shadow: 0 8px 24px rgba(0, 84, 170, .06);
    }
    .inquiry-ai-progress.is-visible { display: grid; }
    .inquiry-quote-preview {
      margin-top: 14px;
      padding: 16px;
      border: 1px solid #bfdbfe;
      border-radius: 16px;
      background: linear-gradient(135deg, #eff6ff 0%, #f8fbff 100%);
      color: var(--text);
    }
    .inquiry-quote-preview.is-hidden { display: none; }
    .inquiry-quote-preview-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
    }
    .inquiry-quote-preview-head strong { display: block; font-size: 16px; }
    .inquiry-quote-preview-head span { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; line-height: 1.6; }
    .inquiry-quote-price { flex: 0 0 auto; text-align: right; }
    .inquiry-quote-price b { display: block; color: var(--primary); font-size: 23px; }
    .inquiry-quote-price em { color: var(--muted); font-size: 12px; font-style: normal; }
    .inquiry-quote-fields { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
    .inquiry-quote-fields span {
      padding: 6px 9px;
      border: 1px solid #dbeafe;
      border-radius: 999px;
      background: #fff;
      color: #334155;
      font-size: 12px;
    }
    .inquiry-quote-next { margin-top: 12px; color: #475569; font-size: 13px; line-height: 1.65; }
    .inquiry-quote-next strong { color: #b45309; }
    @media (max-width: 720px) {
      .inquiry-quote-preview-head { display: block; }
      .inquiry-quote-price { margin-top: 10px; text-align: left; }
    }
    .inquiry-ai-spinner {
      width: 24px;
      height: 24px;
      border: 3px solid rgba(0, 113, 227, .16);
      border-top-color: var(--blue);
      border-radius: 50%;
      animation: inquiry-ai-spin .8s linear infinite;
    }
    @keyframes inquiry-ai-spin { to { transform: rotate(360deg); } }
    .inquiry-ai-progress-copy { min-width: 0; }
    .inquiry-ai-progress-copy strong,
    .inquiry-ai-progress-copy > span { display: block; }
    .inquiry-ai-progress-copy strong { color: var(--text); font-size: 14px; }
    .inquiry-ai-progress-copy > span {
      margin-top: 3px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }
    .inquiry-ai-progress-steps {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 9px;
    }
    .inquiry-ai-progress-steps i {
      padding: 3px 8px;
      border-radius: 999px;
      background: rgba(105, 119, 137, .09);
      color: var(--muted);
      font-size: 10px;
      font-style: normal;
      font-weight: 700;
    }
    .inquiry-ai-progress-steps i.is-active {
      background: rgba(0, 113, 227, .12);
      color: var(--blue);
    }
    .inquiry-ai-progress-steps i.is-done {
      background: rgba(20, 148, 91, .11);
      color: #0f8a55;
    }
    .inquiry-ai-elapsed {
      align-self: start;
      min-width: 54px;
      padding: 5px 8px;
      border-radius: 999px;
      background: #fff;
      color: var(--blue);
      font-size: 11px;
      text-align: center;
      white-space: nowrap;
    }
    .secondary-actions {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      margin-top: 10px;
    }
    .utility-actions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-top: 10px;
    }
    .muted {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
    }
    textarea, input, select {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: rgba(255, 255, 255, .74);
      color: var(--text);
      font: inherit;
      outline: none;
      transition: border-color .2s, box-shadow .2s, background .2s;
    }
    textarea:focus, input:focus, select:focus {
      border-color: rgba(0, 113, 227, .55);
      box-shadow: 0 0 0 4px rgba(0, 113, 227, .12);
      background: #ffffff;
    }
    textarea {
      min-height: 170px;
      padding: 10px;
      line-height: 1.45;
      resize: vertical;
      font-size: 14px;
    }
    textarea.compact-area {
      min-height: 104px;
      font-size: 13px;
    }
    input, select {
      height: 34px;
      padding: 0 9px;
    }
    .row {
      display: grid;
      grid-template-columns: 92px 1fr;
      gap: 8px;
      align-items: center;
      margin: 7px 0;
    }
    .row label {
      color: var(--muted);
      font-size: 12px;
      font-weight: 700;
    }
    .upload-box {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 12px;
      align-items: center;
      margin-top: 10px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(245, 245, 247, .78);
      padding: 12px;
    }
    .upload-copy strong {
      display: block;
      margin-bottom: 4px;
      font-size: 14px;
    }
    .upload-copy span,
    .upload-name {
      display: block;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }
    .upload-name {
      grid-column: 1 / -1;
      min-height: 18px;
      color: var(--blue);
      font-weight: 800;
    }
    .preflight-layout { display:grid; grid-template-columns:minmax(320px,.82fr) minmax(440px,1.18fr); gap:18px; align-items:start; }
    .preflight-form-card { position:sticky; top:12px; }
    .preflight-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; margin-top:12px; }
    .preflight-field label { display:block; margin-bottom:5px; color:var(--muted); font-size:13px; font-weight:700; }
    .preflight-field-wide { grid-column:1 / -1; }
    .preflight-file-note { margin-top:9px; color:var(--muted); font-size:13px; line-height:1.6; }
    .preflight-output { min-height:430px; padding:0; border:0; background:transparent; white-space:normal; }
    .preflight-empty { display:flex; min-height:390px; align-items:center; justify-content:center; padding:28px; border:1px dashed #cfd8e6; border-radius:14px; background:#f8fafc; color:var(--muted); text-align:center; line-height:1.7; }
    .preflight-summary { padding:16px; border:1px solid var(--line); border-radius:14px; background:#f8fafc; }
    .preflight-summary-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
    .preflight-summary-head strong { display:block; color:var(--ink); font-size:16px; }
    .preflight-summary-head span { display:block; margin-top:4px; color:var(--muted); font-size:13px; }
    .preflight-status { display:inline-flex !important; align-items:center; min-height:32px; margin:0 !important; padding:0 10px; border-radius:999px; font-size:12px !important; font-weight:800; white-space:nowrap; }
    .preflight-status.passed { background:#e8f7ef; color:#16764a; }
    .preflight-status.warning { background:#fff3d8; color:#9a6411; }
    .preflight-status.blocked { background:#fee9e7; color:#b6312b; }
    .preflight-status.pending { background:#eef3fa; color:#516176; }
    .preflight-review-line { margin-top:10px; padding-top:10px; border-top:1px solid rgba(28,48,78,.1); color:#4b5b70; font-size:13px; line-height:1.6; }
    .preflight-confirmation-line { margin-top:8px; padding:10px 12px; border:1px solid #d8e1ee; border-radius:10px; background:#fff; color:#4b5b70; font-size:13px; line-height:1.6; }
    .preflight-confirmation-line.confirmed { border-color:#b7e2ca; background:#f3fbf7; color:#176a47; }
    .preflight-confirmation-line.revision_requested { border-color:#f0cf97; background:#fff9ee; color:#855611; }
    .preflight-version-badge { display:inline-flex; align-items:center; min-height:26px; padding:0 8px; border-radius:999px; background:#edf4ff; color:var(--blue); font-size:12px; font-weight:800; }
    .preflight-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:10px; }
    .preflight-metric { padding:10px; border:1px solid rgba(28,48,78,.1); border-radius:10px; background:#fff; }
    .preflight-metric span,.preflight-metric strong { display:block; }
    .preflight-metric span { color:var(--muted); font-size:12px; }
    .preflight-metric strong { margin-top:4px; color:var(--ink); font-size:14px; word-break:break-word; }
    .preflight-section-title { margin:16px 0 8px; color:var(--ink); font-size:14px; font-weight:800; }
    .preflight-issues { display:grid; gap:8px; }
    .preflight-issue { padding:11px 12px; border:1px solid var(--line); border-left-width:4px; border-radius:10px; background:#fff; }
    .preflight-issue.blocked { border-left-color:#d9463e; background:#fff8f7; }
    .preflight-issue.warning { border-left-color:#e4a52d; background:#fffaf1; }
    .preflight-issue strong { display:block; color:var(--ink); font-size:14px; }
    .preflight-issue p { margin:4px 0 0; color:#4d5b6c; font-size:13px; line-height:1.6; }
    .preflight-issue em { display:block; margin-top:5px; color:var(--blue); font-size:13px; font-style:normal; font-weight:650; }
    .preflight-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
    .preflight-check { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; }
    .preflight-check i { width:8px; height:8px; margin-top:4px; border-radius:50%; background:#8a96a5; }
    .preflight-check.passed i { background:#22a06b; }
    .preflight-check.warning i { background:#e2a72e; }
    .preflight-check.blocked i { background:#dc4a42; }
    .preflight-check strong,.preflight-check span,.preflight-check small { display:block; }
    .preflight-check strong { font-size:10px; }
    .preflight-check span { margin-top:2px; color:#44546a; font-size:10px; }
    .preflight-check small { margin-top:2px; color:var(--muted); font-size:9px; line-height:1.4; }
    .preflight-decision-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
    .preflight-history-card { margin-top:18px; }
    .preflight-history { display:grid; gap:8px; margin-top:10px; }
    .preflight-history-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; }
    .preflight-history-item strong,.preflight-history-item span { display:block; }
    .preflight-history-item strong { font-size:11px; }
    .preflight-history-item span { margin-top:3px; color:var(--muted); font-size:9px; }
    .preflight-history-item button { min-height:30px; }
    @media (max-width:980px) {
      .preflight-layout { grid-template-columns:1fr; }
      .preflight-form-card { position:static; }
      .preflight-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    }
    @media (max-width:620px) {
      .preflight-fields,.preflight-checks { grid-template-columns:1fr; }
      .preflight-field-wide { grid-column:auto; }
      .preflight-summary-head { display:block; }
      .preflight-status { margin-top:9px !important; }
      .preflight-history-item { grid-template-columns:1fr; }
    }
    .file-preview {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 10px;
    }
    .file-card {
      position: relative;
      border: 1px solid rgba(0, 113, 227, .18);
      border-radius: var(--radius);
      background: #fff;
      padding: 8px;
      min-width: 0;
      min-height: 74px;
      overflow: hidden;
      box-shadow: 0 4px 14px rgba(15, 23, 42, .04);
    }
    .file-card-remove {
      position: absolute;
      top: 7px;
      right: 7px;
      z-index: 3;
      width: 26px;
      height: 26px;
      border: 1px solid var(--line);
      border-radius: 50%;
      background: #fff;
      color: #667085;
      cursor: pointer;
      font-size: 17px;
      line-height: 22px;
    }
    .file-card-remove:hover { border-color: #ef4444; color: #dc2626; background: #fff5f5; }
    .file-card-preview {
      position: relative;
      display: block;
      width: 100%;
      aspect-ratio: 4 / 3;
      padding: 0;
      overflow: hidden;
      border: 0;
      border-radius: 10px;
      background: #eef1f5;
      cursor: zoom-in;
    }
    .file-card-preview img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: contain;
      transition: transform .2s ease;
    }
    .file-card-preview:hover img { transform: scale(1.025); }
    .file-card-number,
    .file-card-open {
      position: absolute;
      z-index: 2;
      border-radius: 999px;
      background: rgba(17, 24, 39, .78);
      color: #fff;
      font-size: 10px;
      font-weight: 820;
      line-height: 1;
      backdrop-filter: blur(7px);
    }
    .file-card-number { top: 8px; left: 8px; padding: 6px 8px; }
    .file-card-open { right: 8px; bottom: 8px; padding: 6px 8px; }
    .file-card-placeholder {
      min-height: 80px;
      display: grid;
      place-items: center;
      border-radius: 10px;
      background: #f3f5f7;
      color: #5f6b78;
      font-size: 12px;
      font-weight: 820;
    }
    .file-card-meta { padding: 8px 2px 1px; }
    .file-card-meta strong {
      display: block;
      font-size: 12px;
      line-height: 1.25;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .file-card-meta span {
      display: block;
      margin-top: 5px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.3;
    }
    #homeFilePreview {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      max-height: 172px;
      margin-top: 7px;
      padding: 2px 2px 7px;
      overflow-x: auto;
      overflow-y: hidden;
      overscroll-behavior-x: contain;
      scrollbar-width: thin;
    }
    #homeFilePreview:empty { display: none; }
    #homeFilePreview .file-card {
      width: 156px;
      min-width: 156px;
      min-height: 0;
      flex: 0 0 156px;
      padding: 6px;
      border-radius: 12px;
    }
    #homeFilePreview .file-card-preview {
      width: 100%;
      height: 106px;
      aspect-ratio: auto;
      border-radius: 8px;
    }
    #homeFilePreview .file-card .chat-user-attachment {
      width: 100%;
      height: 106px;
      border-radius: 8px;
    }
    #homeFilePreview .file-card-placeholder { min-height: 106px; }
    #homeFilePreview .file-card-remove {
      top: 5px;
      right: 5px;
      width: 24px;
      height: 24px;
      font-size: 15px;
      line-height: 20px;
    }
    #homeFilePreview .file-card-number { top: 6px; left: 6px; padding: 5px 7px; }
    #homeFilePreview .file-card-open { right: 6px; bottom: 6px; padding: 5px 7px; }
    #homeFilePreview .file-card-meta { padding: 6px 2px 0; }
    #homeFilePreview .file-card-meta strong { font-size: 10px; }
    #homeFilePreview .file-card-meta span { margin-top: 3px; font-size: 9px; }
    .home-file-lightbox {
      position: fixed;
      z-index: 120;
      inset: 0;
      display: none;
      place-items: center;
      padding: 24px;
      background: rgba(8, 12, 18, .78);
      backdrop-filter: blur(12px);
    }
    .home-file-lightbox.show { display: grid; }
    .home-file-lightbox-dialog {
      width: min(100%, 980px);
      max-height: min(90vh, 820px);
      display: grid;
      grid-template-rows: auto minmax(0, 1fr) auto;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, .2);
      border-radius: 18px;
      background: #11161d;
      color: #fff;
      box-shadow: 0 30px 90px rgba(0, 0, 0, .42);
    }
    .home-file-lightbox-head {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 14px 16px;
      border-bottom: 1px solid rgba(255, 255, 255, .12);
    }
    .home-file-lightbox-head strong { flex: 0 0 auto; font-size: 14px; }
    .home-file-lightbox-head span {
      min-width: 0;
      flex: 1;
      overflow: hidden;
      color: rgba(255,255,255,.68);
      font-size: 12px;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .home-file-lightbox-close {
      width: 34px;
      height: 34px;
      border: 1px solid rgba(255, 255, 255, .18);
      border-radius: 50%;
      background: rgba(255, 255, 255, .08);
      color: #fff;
      cursor: pointer;
      font-size: 22px;
    }
    .home-file-lightbox-stage {
      position: relative;
      min-height: 260px;
      display: grid;
      place-items: center;
      overflow: auto;
      padding: 16px;
      background: #090d12;
    }
    .home-file-lightbox-stage.is-loading::after {
      content: "正在载入高清图片…";
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      background: rgba(9, 13, 18, .86);
      color: rgba(255,255,255,.82);
      font-size: 13px;
      font-weight: 760;
      letter-spacing: .02em;
    }
    .home-file-lightbox-stage img {
      max-width: 100%;
      max-height: calc(90vh - 150px);
      display: block;
      object-fit: contain;
    }
    .home-file-lightbox-nav {
      display: flex;
      justify-content: center;
      gap: 10px;
      padding: 12px 16px;
      border-top: 1px solid rgba(255, 255, 255, .12);
    }
    .home-file-lightbox-nav button {
      min-width: 108px;
      height: 36px;
      border: 1px solid rgba(255, 255, 255, .18);
      border-radius: 9px;
      background: rgba(255, 255, 255, .08);
      color: #fff;
      cursor: pointer;
      font-weight: 760;
    }
    .home-file-lightbox-nav button:disabled { opacity: .35; cursor: default; }
    body.home-file-preview-open { overflow: hidden; }
    .upload-action {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 34px;
      border-radius: 8px;
      border: 1px solid rgba(0, 113, 227, .22);
      background: #fff;
      color: var(--blue);
      padding: 0 12px;
      font-size: 13px;
      font-weight: 800;
      cursor: pointer;
      white-space: nowrap;
    }
    .upload-action:hover {
      background: var(--blue-soft);
    }
    .file-input {
      position: absolute;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }
    .actions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-top: 8px;
    }
    .btn {
      height: 34px;
      border: 0;
      border-radius: 8px;
      padding: 0 11px;
      background: var(--blue);
      color: #fff;
      font-weight: 800;
      cursor: pointer;
      box-shadow: 0 10px 26px rgba(0, 113, 227, .22);
    }
    .btn:hover { background: var(--blue-dark); }
    .btn.dark {
      background: #1d1d1f;
      box-shadow: 0 10px 26px rgba(0, 0, 0, .15);
    }
    .btn.light {
      background: #ffffff;
      color: var(--blue);
      border: 1px solid var(--line);
      box-shadow: none;
    }
    .output {
      min-height: 280px;
      white-space: pre-wrap;
      border-radius: 8px;
      background: rgba(245, 245, 247, .8);
      padding: 12px;
      color: var(--text);
      line-height: 1.48;
      font-size: 13px;
      border: 1px solid var(--line);
    }
    .metric {
      min-height: 64px;
      border-radius: 6px;
      background: rgba(245, 245, 247, .8);
      padding: 10px;
    }
    .metric strong {
      display: block;
      font-size: 22px;
      color: var(--text);
    }
    .risk {
      margin-top: 10px;
      border: 1px solid rgba(255, 149, 0, .22);
      border-radius: 8px;
      background: #fff8ed;
      color: #8a4b00;
      padding: 10px 12px;
      line-height: 1.45;
      font-size: 12px;
    }
    .app-toast {
      position: fixed;
      right: 22px;
      bottom: 22px;
      z-index: 100;
      max-width: min(380px, calc(100vw - 32px));
      border: 1px solid #d8d8dc;
      border-radius: 8px;
      background: #1d1d1f;
      color: #fff;
      padding: 12px 14px;
      box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
      font-size: 13px;
      line-height: 1.5;
      opacity: 0;
      transform: translateY(12px) scale(.98);
      pointer-events: none;
      transition: opacity .2s ease, transform .2s ease;
    }
    .app-toast.show {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
    .quote-setup-mask {
      position: fixed;
      inset: 0;
      z-index: 80;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(17, 24, 39, .34);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }
    .quote-setup-mask.show {
      display: flex;
    }
    .quote-setup-mask.show .quote-setup-dialog {
      animation: dialogReveal .3s cubic-bezier(.2,.72,.25,1) both;
    }
    details[open] > :not(summary) {
      animation: contentRise .24s ease both;
    }
    .quote-setup-dialog {
      position: relative;
      width: min(620px, 100%);
      max-height: min(760px, calc(100vh - 32px));
      overflow: auto;
      border: 1px solid rgba(0, 0, 0, .08);
      border-radius: 20px;
      background: #fff;
      padding: 28px;
      box-shadow: 0 30px 90px rgba(15, 23, 42, .24);
    }
    .quote-setup-close {
      position: absolute;
      top: 16px;
      right: 16px;
      width: 34px;
      height: 34px;
      border: 0;
      border-radius: 50%;
      background: #f3f3f5;
      color: #55555b;
      font-size: 20px;
      cursor: pointer;
    }
    .quote-setup-icon {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      margin-bottom: 18px;
      border-radius: 13px;
      background: #1d1d1f;
      color: #fff;
      font-size: 22px;
      font-weight: 850;
    }
    .quote-setup-eyebrow {
      margin-bottom: 8px;
      color: var(--blue);
      font-size: 12px;
      font-weight: 850;
    }
    .quote-setup-dialog h2 {
      margin: 0 42px 10px 0;
      font-size: 25px;
      line-height: 1.24;
    }
    .quote-setup-dialog > p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.7;
    }
    .work-order-dialog {
      width: min(520px, 100%);
      padding: 26px;
    }
    .work-order-dialog h2 {
      margin-bottom: 6px;
      font-size: 21px;
    }
    .work-order-dialog > p {
      margin: 0 0 20px;
      color: var(--muted);
      font-size: 13px;
    }
    .work-order-form {
      display: grid;
      gap: 14px;
    }
    .work-order-field {
      display: grid;
      gap: 7px;
      color: #4f5563;
      font-size: 12px;
      font-weight: 800;
    }
    .work-order-field input,
    .work-order-field textarea {
      width: 100%;
      min-height: 44px;
      border: 1px solid #d8dde7;
      border-radius: 10px;
      background: #fff;
      padding: 10px 12px;
      color: var(--text);
      font: inherit;
      font-weight: 500;
    }
    .work-order-field input[type="date"] {
      cursor: pointer;
      color-scheme: light;
    }
    .work-order-field textarea {
      min-height: 80px;
      resize: vertical;
    }
    .work-order-date-line {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 8px;
    }
    .work-order-date-line button {
      min-width: 84px;
      border: 1px solid #d8dde7;
      border-radius: 10px;
      background: #f7f8fa;
      color: #5d6574;
      font-weight: 750;
      cursor: pointer;
    }
    .work-order-dialog .actions {
      justify-content: flex-end;
      margin-top: 20px;
    }
    .quote-setup-note {
      margin: 18px 0;
      border: 1px solid #e6e6ea;
      border-radius: 12px;
      background: #f7f7f8;
      padding: 13px 14px;
      color: #47474d;
      font-size: 13px;
      line-height: 1.6;
    }
    .quote-setup-label {
      margin-bottom: 10px;
      font-size: 13px;
      font-weight: 850;
    }
    .quote-setup-industries {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }
    .quote-setup-industries button {
      min-height: 54px;
      border: 1px solid #e1e1e5;
      border-radius: 11px;
      background: #fff;
      color: #2b2b2e;
      padding: 10px 12px;
      text-align: left;
      cursor: pointer;
    }
    .quote-setup-industries button strong,
    .quote-setup-industries button span {
      display: block;
    }
    .quote-setup-industries button span {
      margin-top: 3px;
      color: var(--muted);
      font-size: 11px;
    }
    .quote-setup-industries button.active {
      border-color: rgba(0, 113, 227, .46);
      background: var(--blue-soft);
      color: var(--blue-dark);
      box-shadow: 0 0 0 2px rgba(0, 113, 227, .08);
    }
    .quote-setup-actions {
      display: flex;
      justify-content: flex-end;
      gap: 9px;
      margin-top: 20px;
    }
    #visualOutput {
      max-height: 320px;
      overflow: auto;
    }
    .flow {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;
      margin-top: 8px;
    }
    .step {
      min-height: 42px;
      border-radius: 6px;
      background: var(--blue-soft);
      color: var(--blue);
      padding: 8px;
      font-weight: 800;
      font-size: 13px;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      overflow: hidden;
      border-radius: 6px;
      background: var(--panel-strong);
    }
    .table-scroll {
      width: 100%;
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      -webkit-overflow-scrolling: touch;
    }
    th, td {
      border-bottom: 1px solid var(--line);
      padding: 8px;
      text-align: left;
      font-size: 12px;
      vertical-align: top;
    }
    th {
      background: #fbfbfd;
      color: var(--muted);
      font-weight: 800;
    }
    tr:hover td { background: #f5f5f7; }
    .status {
      display: inline-block;
      border-radius: 999px;
      padding: 4px 9px;
      background: var(--blue-soft);
      color: var(--blue);
      font-size: 12px;
      font-weight: 800;
    }
    .status.warn {
      background: #fff3df;
      color: var(--orange);
    }
    .status.done {
      background: #e8f6ee;
      color: var(--green);
    }
    .status.danger {
      background: #ffecec;
      color: var(--red);
    }
    .member-hero {
      margin-bottom: 12px;
      display: grid;
      grid-template-columns: 1.1fr .9fr;
      gap: 12px;
      align-items: center;
    }
    .member-title {
      margin: 0 0 10px;
      font-size: 24px;
      line-height: 1.12;
      font-weight: 850;
      letter-spacing: 0;
    }
    .member-summary {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }
    .summary-tile {
      min-height: 66px;
      border-radius: 6px;
      background: rgba(245, 245, 247, .78);
      border: 1px solid var(--line);
      padding: 10px;
    }
    .summary-tile span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }
    .summary-tile strong {
      display: block;
      margin-top: 5px;
      font-size: 18px;
      line-height: 1.15;
    }
    .plan-card {
      min-height: 162px;
      border: 1px solid var(--line);
      border-radius: 6px;
      background: rgba(255, 255, 255, .72);
      padding: 12px;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .plan-card.featured {
      border-color: rgba(0, 113, 227, .32);
      background: linear-gradient(180deg, #ffffff, #eef6ff);
    }
    .plan-card.current {
      border-color: var(--blue);
      box-shadow: 0 0 0 3px rgba(0, 113, 227, .09);
    }
    .plan-card.current::before {
      content: "当前套餐";
      align-self: flex-start;
      border-radius: 999px;
      padding: 3px 8px;
      background: var(--blue);
      color: #fff;
      font-size: 10px;
      font-weight: 800;
    }
    .plan-name {
      font-size: 15px;
      font-weight: 850;
    }
    .price {
      font-size: 22px;
      line-height: 1;
      font-weight: 850;
    }
    .price small {
      color: var(--muted);
      font-size: 13px;
      font-weight: 700;
    }
    .plan-card ul {
      margin: 0;
      padding-left: 18px;
      color: var(--muted);
      line-height: 1.35;
      font-size: 12px;
    }
    .plan-card .btn {
      width: 100%;
      margin-top: auto;
    }
    .plan-promo {
      display: inline-flex;
      align-self: flex-start;
      border-radius: 999px;
      padding: 4px 8px;
      background: #fff1e8;
      color: #b44b12;
      font-size: 11px;
      font-weight: 850;
    }
    .member-purchase {
      margin-top: 14px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      border-color: rgba(0, 113, 227, .26);
      background: linear-gradient(135deg, #ffffff, #f1f7ff);
    }
    .member-purchase.is-hidden { display: none; }
    .member-purchase .card-title { margin: 7px 0 4px; }
    .member-purchase-actions {
      display: flex;
      gap: 8px;
      flex: 0 0 auto;
    }
    .member-payment-methods { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0; }
    .member-payment-method {
      display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:0 12px;
      border:1px solid #d9dfe6; border-radius:10px; background:#fff; color:#3f4b59;
      font-size:12px; font-weight:750; cursor:pointer;
    }
    .member-payment-method:has(input:checked) { border-color:#8fa8bf; background:#edf3f8; color:#244b73; }
    .member-payment-method input { width:auto; margin:0; }
    .member-payment-output { min-width:260px; max-width:420px; color:#667085; font-size:11px; line-height:1.6; }
    .member-payment-qr { display:flex; align-items:center; gap:13px; margin-top:12px; padding:12px; border:1px solid #dbe2e8; border-radius:14px; background:#fff; }
    .member-payment-qr.is-hidden { display:none; }
    .member-payment-qr img { width:148px; height:148px; padding:6px; border:1px solid #edf0f2; border-radius:10px; background:#fff; object-fit:contain; }
    .member-payment-qr span { color:#526579; font-size:11px; line-height:1.7; }
    .member-points-card { margin-bottom: 12px; }
    .member-points-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
      margin-bottom: 10px;
    }
    .member-points-head strong { display: block; font-size: 15px; }
    .member-points-head span { display: block; margin-top: 3px; color: var(--muted); font-size: 13px; }
    .member-point-rules {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 7px;
    }
    .member-point-rule {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fafafa;
      padding: 9px;
    }
    .member-point-rule span,
    .member-point-rule strong { display: block; }
    .member-point-rule span { color: var(--muted); font-size: 13px; line-height: 1.45; }
    .member-point-rule strong { margin-top: 4px; font-size: 15px; }
    .member-usage-details { margin-top: 10px; }
    .member-usage-details summary { cursor: pointer; color: var(--blue); font-size: 13px; font-weight: 700; }
    .member-usage-list { margin-top: 8px; border-top: 1px solid var(--line); }
    .member-usage-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      gap: 10px;
      padding: 8px 2px;
      border-bottom: 1px solid var(--line);
      font-size: 13px;
    }
    .member-usage-row span { color: var(--muted); }
    .member-usage-row strong { color: #a04400; }
    .progress {
      height: 7px;
      margin-top: 7px;
      border-radius: 999px;
      background: #e8e8ed;
      overflow: hidden;
    }
    .progress span {
      display: block;
      height: 100%;
      width: 0;
      border-radius: inherit;
      background: var(--blue);
      transition: width .25s ease;
    }
    .member-note {
      border-radius: 6px;
      background: #f5f5f7;
      border: 1px solid var(--line);
      padding: 10px 12px;
      color: var(--muted);
      line-height: 1.4;
      font-size: 12px;
    }
    .business-sync-panel {
      margin-top:10px;
      padding:14px;
      border:1px solid #d8e3f0;
      border-radius:10px;
      background:#f9fbfe;
    }
    .business-sync-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
    .business-sync-head strong { font-size:14px; }
    .business-sync-state { padding:5px 9px; border-radius:999px; background:#eef2f7; color:#58677a; font-size:11px; font-weight:800; white-space:nowrap; }
    .business-sync-state.is-ok { background:#e8f7ef; color:#13704d; }
    .business-sync-state.is-syncing { background:#eaf3ff; color:#145cab; }
    .business-sync-state.is-error { background:#fff0ed; color:#b33a2e; }
    .business-sync-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
    .business-sync-item { padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .business-sync-item span,.business-sync-item strong { display:block; }
    .business-sync-item span { color:var(--muted); font-size:10px; font-weight:750; }
    .business-sync-item strong { margin-top:4px; color:var(--ink); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
    .business-sync-error { grid-column:1 / -1; }
    .business-sync-error strong { color:#a13a30; }
    .business-sync-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
    .business-sync-actions .btn { min-height:38px; }
    .service-badge[role="button"] { cursor:pointer; }
    .service-badge[role="button"]:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
    .knowledge {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }
    .rule {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--panel);
      padding: 14px;
      line-height: 1.45;
      box-shadow: var(--shadow);
    }
    .rule h3 { margin: 0 0 8px; }
    @media (max-width: 980px) {
      .app { grid-template-columns: 1fr; }
      .sidebar {
        position: sticky;
        top: 0;
        z-index: 2;
        padding: 8px 10px;
      }
      .brand { padding-bottom: 0; font-size: 15px; }
      .nav { display: flex; overflow-x: auto; }
      .nav button { flex: 0 0 auto; width: auto; }
      .sidebar-note { display: none; }
      .grid-2, .grid-3, .knowledge, .member-grid, .member-hero, .plan-grid, .setup-hero, .mini-grid, .ops-grid, .quick-panel, .dashboard-lists, .content-grid, .mode-panel, .customer-tools, .urgency-panel, .secondary-actions, .setup-guide.show, .quote-tiers, .proof-grid, .industry-strip, .visual-set, .visual-use-grid, .deal-demo-head, .deal-demo-steps, .home-flow, .file-preview, .ai-report, .plain-guide, .simple-actions, .quote-material-purchase-grid { grid-template-columns: 1fr; }
      .quote-guide-layout { grid-template-columns:minmax(0, 1fr); width:100%; }
      .workflow { grid-template-columns: repeat(2, 1fr); }
      .flow { grid-template-columns: repeat(2, 1fr); }
      main { padding: 14px 12px 34px; }
      .header { display: block; }
      .header-main { align-items: flex-start; }
      h1 { font-size: 21px; }
      .sub { font-size: 12px; }
      .header-status { justify-content: flex-start; margin-top: 8px; }
      .badge { margin-top: 0; }
      .gpt-home { min-height: auto; padding-top: 34px; }
      .home-workbench.has-multiple { display: block; }
      .home-workbench.has-multiple .home-customer-context { grid-template-columns: auto minmax(0, 1fr); }
      .home-workbench.has-multiple .home-customer-context-panel { display: none; }
      .home-workbench.has-multiple .home-customer-rail { display: none; }
      .home-workbench.mobile-conversations-open .home-customer-rail {
        display: block;
        position: fixed;
        z-index: 50;
        inset: 0;
        max-height: none;
        border: 0;
        border-radius: 0;
        background: #f7f8fa;
        overflow: auto;
      }
      .home-workbench.mobile-conversations-open .home-session-list { max-height: none; }
      .home-mobile-back { display: inline-flex; align-items: center; }
      .home-conversation-mobile-bar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 10px;
        border: 1px solid #e1e7ef;
        border-radius: 12px;
        background: #fff;
        padding: 9px 11px;
        box-shadow: 0 8px 22px rgba(24,34,48,.05);
      }
      .home-conversation-mobile-bar button { border: 0; background: transparent; color: #1769dc; font-size: 11px; font-weight: 820; cursor: pointer; }
      .home-conversation-mobile-bar span { overflow: hidden; font-size: 11px; font-weight: 780; text-overflow: ellipsis; white-space: nowrap; }
      .home-customer-context .home-new-customer { display:none; }
      .quote-material-check-fields { grid-template-columns:1fr; }
      .quote-product-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .quote-option-group { grid-template-columns: 1fr; gap: 5px; }
      .quote-option-label { padding-top: 0; }
      .quote-quantity-presets { margin-left: 0; }
      .home-workbench.has-draft .gpt-heading { margin-bottom: 13px; }
      .home-workbench.has-draft .gpt-heading .gpt-kicker,
      .home-workbench.has-draft .gpt-heading .home-help-button { display: none; }
      .home-workbench.has-draft .gpt-heading h2 { margin-bottom: 6px; font-size: 22px; line-height: 1.18; }
      .home-workbench.has-draft .gpt-heading h2 br { display: none; }
      .home-workbench.has-draft .gpt-heading p { font-size: 11px; }
      .home-workbench.is-experienced .gpt-suggestions,
      .home-workbench.is-experienced .home-share-hint { display:none; }
      .gpt-composer textarea { min-height: 82px; max-height: 190px; }
      .gpt-heading h2 { font-size: 30px; }
      .gpt-composer-bar { align-items: center; flex-flow: row wrap; }
      .deal-review-grid { grid-template-columns: 1fr; }
      .detail-package-result { grid-template-columns: 1fr; }
      .detail-package-assets { grid-template-columns: 1fr; }
      .detail-package-long-preview { max-height: 560px; }
      .home-customer-context { grid-template-columns: auto minmax(0, 1fr) auto; }
      .home-memory-status { grid-column: 1 / -1; grid-row: 2; }
      .home-chat-record-actions { align-items: stretch; flex-direction: column; gap: 7px; }
      .home-chat-record-copy { display: block; }
      .home-chat-record-copy strong,
      .home-chat-record-copy em { display: block; }
      .home-chat-record-copy em { margin-top: 2px; white-space: normal; }
      .home-chat-record-buttons { width: 100%; }
      .home-chat-record-button { flex: 1 1 0; min-height: 36px; }
      .gpt-left-tools { min-width: 0; }
      .gpt-right-tools { width: auto; }
      .gpt-upload, .gpt-send { width: 38px; }
      .gpt-file-name { max-width: 100%; }
      .home-composer-shortcuts {
        order: 3;
        flex: 1 0 100%;
        justify-content: flex-start;
        overflow-x: auto;
        padding-top: 4px;
        scrollbar-width: none;
      }
      .home-composer-shortcuts::-webkit-scrollbar { display: none; }
      .ai-facts { grid-template-columns: 1fr; }
      body.home-conversation-active main { height: calc(100dvh - 48px); padding-bottom: 6px; }
      .gpt-home.has-conversation { padding: 0; }
      .gpt-home.has-conversation .gpt-result { padding: 14px 5px calc(var(--home-composer-height, 200px) + 22px); }
      .gpt-home.has-conversation .gpt-shell {
        bottom: 0;
        width: calc(100% - 12px);
        padding: 12px 0 8px;
      }
      .chat-thread { padding-bottom: 16px; }
      .chat-user-bubble { max-width: 88%; }
      .chat-assistant-row { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; }
      .chat-assistant-avatar { width: 28px; height: 28px; border-radius: 8px; }
      .chat-assistant-content .actions { gap: 6px; }
      .chat-assistant-content .actions .btn { flex: 1 1 120px; }
      .quote-setup-mask { padding: 12px; }
      .quote-setup-dialog { padding: 22px 18px 18px; border-radius: 16px; }
      .quote-setup-dialog h2 { font-size: 22px; }
      .quote-setup-industries { grid-template-columns: 1fr; }
      .quote-setup-actions { flex-direction: column-reverse; }
      .quote-setup-actions .btn { width: 100%; }
      .quote-guide-progress,
      .quote-review { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      #ruleGuideProgress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .quote-form-grid { grid-template-columns: 1fr; }
      .quote-basis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .quote-decision-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .quote-approval-panel { align-items: stretch; flex-direction: column; }
      .quote-approval-fields { grid-template-columns: 1fr; min-width: 0; }
      .price-import-card { grid-template-columns: 1fr; }
      .price-import-actions { grid-template-columns: 1fr; }
      .cost-library-toolbar { grid-template-columns: 1fr 1fr; }
      .cost-library-toolbar > input:first-child { grid-column: 1 / -1; }
      .price-setup-options { grid-template-columns: 1fr; }
      .price-quick-row { grid-template-columns:minmax(0,1fr) 92px auto; }
      .visual-reference-confirm { grid-template-columns:1fr; }
      .price-setup-choice > strong { font-size: 18px; }
      .quote-next-grid { grid-template-columns: 1fr; }
      .quote-outcome-fields { grid-template-columns: 1fr; }
      .quote-profit-preview,.quote-record-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .quote-document-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .quote-trust-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .gpt-suggestions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .home-demo-teaser { align-items: stretch; flex-direction: column; }
      .home-demo-teaser .home-demo-start { width: 100%; }
      .home-demo-teaser-actions { width: 100%; }
      .home-demo-dismiss { flex: 0 0 32px; }
      .home-help-button { position: static; display: block; margin: 0 0 10px auto; }
      .home-demo-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .home-demo-result { grid-template-columns: 1fr; }
      .home-demo-actions { align-items: stretch; flex-direction: column; }
      .home-demo-actions .btn { width: 100%; }
      .home-demo-actions > span { margin-left: 0; max-width: none; text-align: left; }
      .quote-missing-cost-row { grid-template-columns: 1fr; gap: 5px; }
      .quote-section-head { display: block; }
      .quote-section-head span { display: block; margin-top: 3px; }
      .member-purchase { display: block; }
      .member-purchase-actions { margin-top: 12px; flex-direction: column; }
      .member-point-rules { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .home-daily-metrics { grid-template-columns: 1fr; }
      .home-business-pulse { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .home-daily-metric { border-right: 0; border-bottom: 1px solid var(--line); }
      .home-daily-metric:last-child { border-bottom: 0; }
      .home-daily-next { align-items: flex-start; flex-direction: column; }
      .home-daily-empty { align-items: stretch; flex-direction: column; }
      .home-daily-empty .btn { width: 100%; }
      .quote-guide-head { display: block; }
      .quote-guide-required { display: block; margin-top: 4px; }
      .quote-guide-nav .btn { min-width: 0; }
      .rule-guide-card .industry-strip { grid-template-columns: 1fr; }
      .rule-guide-nav { flex-wrap: wrap; }
      .rule-guide-nav .quote-guide-spacer { display: none; }
      .rule-guide-nav .btn { flex: 1 1 150px; }
    }
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
      }
    }
    .header-alert-button { position:relative; border:1px solid var(--line); background:#fff; border-radius:999px; padding:10px 14px; font-weight:800; cursor:pointer; }
    .header-alert-count { position:absolute; top:-6px; right:-5px; min-width:20px; height:20px; padding:0 5px; display:none; align-items:center; justify-content:center; border-radius:999px; background:#dc2626; color:#fff; font-size:11px; }
    .header-alert-count.show { display:flex; }
    .team-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr); gap:18px; }
    .team-list { display:grid; gap:10px; margin-top:14px; }
    .team-member { display:grid; grid-template-columns:1fr auto; gap:14px; padding:16px; border:1px solid var(--line); border-radius:16px; background:#fff; }
    .team-member.is-disabled { opacity:.58; }
    .team-member-main strong { display:block; font-size:16px; }
    .team-member-main span { color:var(--muted); font-size:13px; }
    .team-member-permissions { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
    .team-member-permissions i { font-style:normal; background:#f1f5f9; color:#334155; padding:4px 8px; border-radius:999px; font-size:12px; }
    .permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:10px 0 16px; }
    .permission-grid label,.notice-setting { display:flex; gap:8px; align-items:flex-start; padding:10px; border:1px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; }
    .owner-lock { padding:14px; border-radius:14px; background:#ecfdf5; color:#166534; font-weight:750; margin-bottom:14px; }
    .audit-list,.notification-list { display:grid; gap:10px; margin-top:12px; }
    .audit-list { max-height:520px; overflow:auto; padding-right:5px; scrollbar-width:thin; }
    .notification-channel-grid { display:grid; gap:8px; margin-top:12px; }
    .notification-channel { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; min-height:64px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; }
    .notification-channel strong, .notification-channel span { display:block; }
    .notification-channel strong { font-size:14px; }
    .notification-channel span { margin-top:4px; color:var(--muted); font-size:13px; line-height:1.5; }
    .notification-channel em { padding:5px 8px; border-radius:999px; background:#e8f8f0; color:#126344; font-size:12px; font-style:normal; font-weight:750; }
    .notification-channel em.pending { background:#fff0dc; color:#8a5107; }
    .audit-item,.notification-item { padding:14px; border:1px solid var(--line); border-radius:14px; background:#fff; }
    .notification-item.unread { border-color:#93c5fd; background:#eff6ff; }
    .notification-item-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
    .notification-item-head strong { font-size:14px; line-height:1.5; }
    .notification-item .notification-kind { font-size:13px; line-height:1.5; }
    .notification-item > .muted { font-size:13px; line-height:1.55; }
    .notification-kind { color:#0756a3; font-size:12px; font-weight:850; }
    .notification-empty { padding:34px 16px; text-align:center; color:var(--muted); border:1px dashed var(--line); border-radius:14px; }
    .notification-center-shell { display:grid; gap:16px; max-width:1120px; margin:0 auto; }
    .notification-inbox-card { padding:0; overflow:hidden; }
    .notification-inbox-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:22px 24px 18px; border-bottom:1px solid var(--line); }
    .notification-inbox-head .member-note { max-width:680px; margin-top:5px; }
    .notification-inbox-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
    .notification-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:16px 24px; background:#f8fafc; border-bottom:1px solid var(--line); }
    .notification-tab { display:grid; grid-template-columns:1fr auto; gap:4px 12px; min-height:76px; padding:13px 15px; border:1px solid #dfe5ec; border-radius:12px; background:#fff; color:var(--text); text-align:left; cursor:pointer; transition:border-color .18s ease,background .18s ease,box-shadow .18s ease; }
    .notification-tab:hover { border-color:#a9c5ef; }
    .notification-tab.active { border-color:#6d9fe8; background:#f1f7ff; box-shadow:0 0 0 3px rgba(37,99,235,.08); }
    .notification-tab strong { font-size:15px; line-height:1.35; }
    .notification-tab small { grid-column:1 / -1; color:var(--muted); font-size:12px; line-height:1.45; }
    .notification-tab-count { min-width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; padding:0 8px; border-radius:999px; background:#edf1f6; color:#475467; font-size:12px; font-style:normal; font-weight:800; }
    .notification-tab.active .notification-tab-count { background:#2563eb; color:#fff; }
    .notification-list-panel { padding:18px 24px 24px; }
    .notification-list-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:28px; color:var(--muted); font-size:13px; }
    .notification-list-summary strong { color:var(--text); font-size:15px; }
    .notification-item { position:relative; width:100%; color:inherit; font:inherit; text-align:left; cursor:pointer; }
    .notification-item::before { content:""; position:absolute; top:18px; left:12px; width:7px; height:7px; border-radius:50%; background:#cbd5e1; }
    .notification-item.unread::before { background:#2563eb; box-shadow:0 0 0 4px rgba(37,99,235,.1); }
    .notification-item-content { padding-left:14px; }
    .notification-item-content > .muted { font-size:13px; line-height:1.55; }
    .notification-item-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; color:var(--muted); font-size:12px; }
    .notification-item-action { color:#2563eb; font-weight:700; }
    .notification-control-panel { padding:0; overflow:hidden; }
    .notification-control-panel > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; cursor:pointer; list-style:none; }
    .notification-control-panel > summary::-webkit-details-marker { display:none; }
    .notification-control-panel > summary strong { display:block; font-size:16px; }
    .notification-control-panel > summary span { display:block; margin-top:3px; color:var(--muted); font-size:13px; }
    .notification-control-panel > summary::after { content:"展开设置"; flex:0 0 auto; color:#2563eb; font-size:13px; font-weight:700; }
    .notification-control-panel[open] > summary::after { content:"收起设置"; }
    .notification-control-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.72fr); gap:18px; padding:0 22px 22px; border-top:1px solid var(--line); }
    .notification-control-section { padding-top:18px; }
    .notification-control-section h3 { margin:0 0 5px; font-size:15px; }
    .notification-control-section > .member-note { margin-bottom:12px; }
    @media (max-width:760px) {
      .notification-inbox-head { align-items:stretch; flex-direction:column; padding:18px; }
      .notification-inbox-actions { justify-content:flex-start; }
      .notification-tabs { grid-template-columns:1fr; padding:12px 18px; }
      .notification-list-panel { padding:16px 18px 20px; }
      .notification-control-body { grid-template-columns:1fr; padding:0 18px 18px; }
      .notification-item-head { align-items:flex-start; flex-direction:column; gap:5px; }
    }
    /* 2026 visual system: one consistent product language from home to workbench */
    :root {
      --page: #f3f6fa;
      --panel: rgba(255,255,255,.96);
      --panel-strong: #ffffff;
      --text: #182230;
      --ink: #182230;
      --muted: #667085;
      --line: #e2e8f0;
      --blue: #1769dc;
      --blue-dark: #0d52b5;
      --blue-soft: #edf5ff;
      --green: #11845d;
      --orange: #b25a09;
      --red: #c9362b;
      --shadow: 0 12px 34px rgba(24,34,48,.07);
      --radius: 16px;
    }
    body {
      background:
        radial-gradient(circle at 12% -8%, rgba(35,126,255,.09), transparent 30%),
        radial-gradient(circle at 94% 4%, rgba(93,211,177,.07), transparent 26%),
        var(--page);
      font-size: 14px;
      letter-spacing: -.005em;
    }
    .sidebar {
      height: 60px;
      padding: 0 28px;
      gap: 24px;
      background: rgba(250,251,253,.88);
      border-color: rgba(218,225,234,.9);
      box-shadow: 0 1px 0 rgba(255,255,255,.8);
    }
    .brand { gap: 10px; font-size: 16px; font-weight: 860; letter-spacing: -.02em; }
    .brand img { width: 34px; height: 34px; border-radius: 10px; box-shadow: 0 8px 22px rgba(23,105,220,.2); }
    .nav { gap: 6px; }
    .nav button {
      height: 36px;
      padding: 0 14px;
      border-radius: 10px;
      color: #606b7a;
      font-size: 13px;
      font-weight: 760;
    }
    .nav button:hover { background: #edf2f7; color: #182230; box-shadow: none; }
    .nav button.active {
      background: #182230;
      color: #fff;
      box-shadow: 0 8px 20px rgba(24,34,48,.16);
    }
    .sidebar-note { color: #7b8794; font-size: 12px; font-weight: 650; }
    main { max-width: 1440px; padding: 26px 30px 64px; }
    .header { align-items: center; margin-bottom: 22px; }
    .header-main { gap: 14px; }
    h1 { font-size: 28px; letter-spacing: -.035em; }
    .sub { margin-top: 5px; font-size: 13px; line-height: 1.55; }
    .page-back {
      min-height: 40px;
      padding: 0 14px;
      border-radius: 11px;
      color: #4a5565;
      font-size: 13px;
      box-shadow: 0 4px 14px rgba(24,34,48,.04);
    }
    .badge, .service-badge, .header-alert-button { min-height: 36px; height: 36px; padding: 0 13px; font-size: 12px; }
    .card {
      padding: 20px;
      border-color: rgba(218,225,234,.94);
      border-radius: 16px;
      box-shadow: var(--shadow);
      backdrop-filter: blur(22px);
      -webkit-backdrop-filter: blur(22px);
    }
    .card-title { margin-bottom: 12px; font-size: 18px; letter-spacing: -.02em; }
    .member-note {
      border-color: #e7ecf2;
      border-radius: 12px;
      background: #f7f9fc;
      padding: 12px 14px;
      font-size: 13px;
      line-height: 1.55;
    }
    textarea, input, select { border-color: #dce3eb; border-radius: 11px; background: #fff; }
    textarea { padding: 14px; font-size: 14px; line-height: 1.6; }
    input, select { height: 44px; padding: 0 12px; }
    textarea:focus, input:focus, select:focus {
      border-color: rgba(23,105,220,.58);
      box-shadow: 0 0 0 4px rgba(23,105,220,.11);
    }
    .actions { gap: 9px; margin-top: 14px; }
    .btn, .upload-action {
      min-height: 42px;
      height: auto;
      padding: 9px 15px;
      border-radius: 10px;
      font-size: 13px;
      line-height: 1.25;
      box-shadow: 0 9px 22px rgba(23,105,220,.18);
    }
    .btn.dark { background: #182230; box-shadow: 0 9px 22px rgba(24,34,48,.16); }
    .btn.dark:hover { background: #0e1621; }
    .btn.light { color: #245ea9; border-color: #dce3eb; box-shadow: 0 3px 10px rgba(24,34,48,.03); }
    .btn.light:hover { background: #f3f7fc; border-color: #b9c9dc; }
    .upload-box { margin-top: 14px; padding: 15px; border-radius: 14px; background: #f7f9fc; }
    .output { border-color: #e2e8f0; border-radius: 14px; background: #f7f9fc; padding: 16px; font-size: 13px; line-height: 1.62; }
    .filter-tabs { gap: 9px; }
    .filter-tabs button { min-height: 38px; padding: 0 14px; border-color: #dfe5ec; font-size: 12px; }
    .filter-tabs button.active, .filter-tabs button:hover { border-color: rgba(23,105,220,.34); background: #edf5ff; color: #1459b8; }
    table { border: 1px solid #e3e9f0; border-radius: 13px; border-collapse: separate; border-spacing: 0; }
    th, td { padding: 12px 11px; border-color: #edf0f4; font-size: 12px; line-height: 1.45; }
    th { background: #f7f9fc; color: #697586; font-size: 11px; letter-spacing: .02em; }
    tr:hover td { background: #f8fbff; }
    button:focus-visible, [role="button"]:focus-visible, .upload-action:focus-visible { outline: 3px solid rgba(23,105,220,.22); outline-offset: 2px; }
    /* Home: confident, spacious, but keeps the daily work above the fold. */
    .gpt-home { padding: 50px 0 34px; }
    .gpt-shell { width: min(860px,100%); }
    .gpt-heading { margin-bottom: 28px; }
    .gpt-kicker {
      display: inline-flex;
      min-height: 28px;
      align-items: center;
      margin-bottom: 13px;
      padding: 0 11px;
      border: 1px solid rgba(23,105,220,.16);
      border-radius: 999px;
      background: rgba(237,245,255,.78);
      font-size: 11px;
      letter-spacing: .02em;
    }
    .gpt-heading h2 { margin-bottom: 12px; font-size: 43px; line-height: 1.1; letter-spacing: -.045em; }
    .gpt-heading p { font-size: 15px; }
    .gpt-composer {
      padding: 16px;
      border-color: rgba(193,203,216,.95);
      border-radius: 22px;
      box-shadow: 0 22px 60px rgba(24,34,48,.12), 0 2px 6px rgba(24,34,48,.04);
    }
    .gpt-composer:focus-within { border-color: rgba(23,105,220,.48); box-shadow: 0 24px 68px rgba(24,34,48,.15), 0 0 0 4px rgba(23,105,220,.07); }
    .home-customer-context { gap: 10px; padding: 0 6px 12px; }
    .home-customer-context input { height: 38px; border-radius: 10px; background: #f7f9fc; }
    .gpt-composer textarea { min-height: 150px; padding: 13px 7px 16px; font-size: 16px; line-height: 1.6; }
    .gpt-upload, .gpt-send { width: 42px; height: 42px; flex-basis: 42px; }
    .gpt-send { background: #182230; }
    .home-composer-shortcuts button { height: 34px; padding: 0 12px; background: #f7f9fc; }
    .home-privacy-note { margin-top: 10px; }
    .gpt-suggestions { gap: 10px; margin-top: 18px; }
    .gpt-suggestion-item { min-height: 72px; border-radius: 13px; padding: 12px; }
    .home-daily-brief { margin-top: 18px; border-radius: 16px; box-shadow: 0 12px 32px rgba(24,34,48,.06); }
    .home-daily-head { padding: 14px 16px 11px; }
    .home-daily-head strong { font-size: 14px; }
    .home-daily-metric { padding: 14px 16px; }
    .home-daily-metric strong { margin-top: 5px; font-size: 21px; }
    .home-daily-next, .home-daily-empty { padding: 13px 16px; }
    /* Price hub: remove the unfinished empty-page feeling. */
    .price-studio-page .price-setup-choice {
      max-width: 1040px;
      margin: 0 auto;
      padding: 34px;
      border-color: #dbe5f1;
      background:
        radial-gradient(circle at 94% 0, rgba(23,105,220,.11), transparent 30%),
        linear-gradient(145deg,#fff,#f8fbff);
    }
    .price-setup-choice > span { font-size: 11px; letter-spacing: .05em; }
    .price-setup-choice > strong { margin-top: 9px; font-size: 30px; letter-spacing: -.035em; }
    .price-setup-choice > p { max-width: 700px; margin: 10px auto 0; font-size: 13px; line-height: 1.65; }
    .price-setup-options { gap: 16px; margin-top: 24px; }
    .price-setup-option { min-height: 132px; padding: 22px; border-radius: 16px; background: rgba(255,255,255,.9); box-shadow: 0 8px 24px rgba(24,34,48,.05); }
    .price-setup-option:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(24,34,48,.1); }
    .price-setup-option > i { width: 42px; height: 42px; font-size: 15px; }
    .price-setup-option strong { font-size: 16px; }
    .price-confidence-strip {
      max-width: 1040px;
      display: grid;
      grid-template-columns: repeat(3,minmax(0,1fr));
      gap: 12px;
      margin: 14px auto 0;
    }
    .price-confidence-strip > div { display: flex; align-items: center; gap: 12px; min-height: 82px; padding: 15px 17px; border: 1px solid #e1e7ef; border-radius: 14px; background: rgba(255,255,255,.82); box-shadow: 0 8px 22px rgba(24,34,48,.04); }
    .price-confidence-strip i { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 12px; background: #edf5ff; color: #1769dc; font-size: 13px; font-style: normal; font-weight: 900; }
    .price-confidence-strip span, .price-confidence-strip strong, .price-confidence-strip em { display: block; }
    .price-confidence-strip strong { font-size: 13px; }
    .price-confidence-strip em { margin-top: 4px; color: var(--muted); font-size: 11px; font-style: normal; line-height: 1.4; }
    .price-import-card, .rule-guide-header, .rule-guide-card, .rule-guide-nav { border-radius: 16px; }
    .rule-guide-nav { padding: 15px 18px; }
    /* Follow-up workspace: larger scan targets and calmer table density. */
    .task-studio-page { max-width: 1380px; margin: 0 auto; }
    .task-board-card { padding: 24px; }
    .task-board-card > .card-title { margin-bottom: 16px; font-size: 21px; }
    .task-reminder-summary { margin-bottom: 14px; padding: 15px 17px; border-radius: 14px; background: linear-gradient(135deg,#edf5ff,#f8fbff); }
    .task-reminder-summary strong { font-size: 14px; }
    .task-search { grid-template-columns: minmax(0,1fr) auto; margin-bottom: 14px; }
    .task-search input { height: 46px; border-radius: 12px; padding: 0 15px; font-size: 13px; }
    .task-search .btn { min-width: 70px; }
    .task-studio-page .filter-tabs { margin-bottom: 10px; padding: 2px 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .task-studio-page .filter-tabs button { flex: 0 0 auto; }
    .task-list-priority { margin-bottom: 14px; color: #7a8696; font-size: 11px; }
    .task-studio-page .table-scroll { border-radius: 14px; }
    .task-studio-page th, .task-studio-page td { padding: 13px 12px; }
    .task-create-details { margin-top: 14px; padding: 14px 16px; border: 1px solid #e2e8f0; border-radius: 13px; background: #fbfcfe; }
    .task-create-details summary { cursor: pointer; color: #1769dc; font-size: 13px; font-weight: 850; }
    .task-detail-page { max-width: 1180px; margin: 0 auto; }
    body.task-detail-active .header { max-width: 1180px; margin-bottom: 14px; }
    body.task-detail-active .header-status { display: none; }
    body.task-detail-active .header-main { width: 100%; }
    .task-detail-shell {
      display: grid;
      gap: 14px;
      min-height: 0;
      white-space: normal;
      color: var(--ink);
    }
    .task-detail-context {
      display: flex;
      align-items: center;
      gap: 10px;
      min-height: 44px;
      padding: 7px 10px;
      border: 1px solid #dce5f0;
      border-radius: 12px;
      background: #fff;
      color: #657287;
      font-size: 12px;
    }
    .task-detail-context span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .task-detail-context strong { margin-left: auto; color: #17202d; white-space: nowrap; }
    .task-detail-empty {
      padding: 34px;
      border: 1px dashed #cfd8e5;
      border-radius: 16px;
      background: #fff;
      color: var(--muted);
      text-align: center;
    }
    .task-detail-overview {
      padding: 20px;
      border: 1px solid #dce5f0;
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 12px 34px rgba(22, 41, 70, .06);
    }
    .task-detail-overview-head {
      display: grid;
      grid-template-columns: minmax(150px, auto) minmax(260px, 1fr) auto;
      gap: 22px;
      align-items: center;
    }
    .task-detail-current span,
    .task-detail-current strong,
    .task-detail-current em { display: block; }
    .task-detail-current span,
    .task-detail-progress-label,
    .task-detail-next > span,
    .task-detail-fact span {
      color: #748196;
      font-size: 12px;
      font-weight: 600;
    }
    .task-detail-current strong { margin-top: 3px; font-size: 24px; line-height: 1.2; }
    .task-detail-current em { margin-top: 4px; color: #1769dc; font-size: 13px; font-style: normal; font-weight: 650; }
    .task-detail-progress-copy { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
    .task-detail-progress-value { color: #1769dc; font-size: 15px; font-weight: 700; }
    .task-detail-progress-track { height: 10px; overflow: hidden; border-radius: 999px; background: #e8edf4; }
    .task-detail-progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#1769dc,#54a7ff); }
    .task-detail-urgency {
      display: inline-flex;
      align-items: center;
      min-height: 34px;
      padding: 0 12px;
      border-radius: 999px;
      background: #eef6ff;
      color: #1769dc;
      font-size: 13px;
      font-weight: 650;
      white-space: nowrap;
    }
    .task-detail-urgency.is-urgent { background: #fff0ee; color: #b42318; }
    .task-detail-phase-rail { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 18px; }
    .task-detail-phase {
      position: relative;
      min-height: 68px;
      padding: 12px 14px 12px 46px;
      border: 1px solid #e0e6ee;
      border-radius: 13px;
      background: #f8fafc;
    }
    .task-detail-phase::before {
      content: attr(data-step);
      position: absolute;
      top: 14px;
      left: 14px;
      width: 24px;
      height: 24px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: #e5eaf1;
      color: #748196;
      font-size: 11px;
      font-weight: 800;
    }
    .task-detail-phase strong,
    .task-detail-phase span { display: block; }
    .task-detail-phase strong { font-size: 14px; font-weight: 650; }
    .task-detail-phase span { margin-top: 3px; color: #748196; font-size: 12px; }
    .task-detail-phase.is-current { border-color: #8bbcff; background: #edf5ff; }
    .task-detail-phase.is-current::before { background: #1769dc; color: #fff; }
    .task-detail-phase.is-current strong { color: #115cad; }
    .task-detail-phase.is-done { border-color: #c8e5d1; background: #f4fbf6; }
    .task-detail-phase.is-done::before { content: "✓"; background: #3e9d5d; color: #fff; }
    .task-detail-next {
      display: grid;
      grid-template-columns: 74px minmax(0,1fr);
      gap: 12px;
      align-items: start;
      margin-top: 14px;
      padding: 13px 15px;
      border-left: 4px solid #1769dc;
      border-radius: 10px;
      background: #f5f9ff;
    }
    .task-detail-next > span { padding-top: 2px; }
    .task-detail-next strong { display: block; font-size: 15px; font-weight: 650; line-height: 1.5; }
    .task-detail-next em { display: block; margin-top: 3px; color: #748196; font-size: 12px; font-style: normal; }
    .task-detail-primary-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
    .task-detail-primary-actions .btn { min-height: 40px; padding: 0 15px; font-size: 13px; font-weight: 650; }
    .task-detail-content-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.8fr); gap: 14px; align-items: start; }
    .task-detail-panel { padding: 18px; border: 1px solid #dfe6ef; border-radius: 16px; background: #fff; }
    .task-detail-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
    .task-detail-panel-head strong { font-size: 16px; font-weight: 650; }
    .task-detail-panel-head span { color: #748196; font-size: 12px; }
    .task-detail-shell .task-followup-card { margin: 0; padding: 18px; border-radius: 16px; }
    .task-detail-shell .task-followup-script { font-size: 14px; line-height: 1.65; }
    .task-detail-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .task-detail-fact { min-height: 68px; padding: 11px 12px; border-radius: 11px; background: #f7f9fc; }
    .task-detail-fact strong { display: block; margin-top: 4px; overflow-wrap: anywhere; font-size: 14px; font-weight: 650; line-height: 1.4; }
    .task-detail-fact.is-risk strong { color: #a43d32; }
    .task-detail-shell .production-progress-card { margin: 0; background: #fff; }
    .industry-workflow-card { padding: 18px; border: 1px solid #cfe0f4; border-radius: 16px; background: linear-gradient(135deg,#f7fbff,#fff); }
    .industry-workflow-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
    .industry-workflow-head strong { display: block; color: #17202d; font-size: 17px; }
    .industry-workflow-head span { display: block; margin-top: 4px; color: #69778c; font-size: 12px; line-height: 1.5; }
    .industry-workflow-badge { flex: none; padding: 6px 10px; border-radius: 999px; background: #e9f3ff; color: #1769dc; font-size: 11px; font-weight: 750; }
    .industry-workflow-stages { display: flex; gap: 6px; margin-top: 14px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
    .industry-workflow-stage { flex: none; padding: 7px 10px; border: 1px solid #dfe7f0; border-radius: 9px; background: #fff; color: #748196; font-size: 11px; white-space: nowrap; }
    .industry-workflow-stage.is-done { border-color: #cae7d3; background: #f2faf4; color: #388954; }
    .industry-workflow-stage.is-current { border-color: #78adf5; background: #eaf4ff; color: #115cad; font-weight: 750; }
    .industry-workflow-current { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); gap: 12px; margin-top: 12px; }
    .industry-workflow-action,
    .industry-workflow-check { padding: 13px 14px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px #e6ebf2; }
    .industry-workflow-action span,
    .industry-workflow-check > span { display: block; color: #748196; font-size: 11px; font-weight: 650; }
    .industry-workflow-action strong { display: block; margin-top: 5px; font-size: 14px; line-height: 1.55; }
    .industry-workflow-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
    .industry-workflow-tags em { padding: 5px 8px; border-radius: 8px; background: #f1f4f8; color: #526177; font-size: 11px; font-style: normal; }
    .industry-workflow-tags em.is-quality { background: #fff4e7; color: #9b5b11; }
    .task-detail-secondary { border:1px solid #dfe6ef; border-radius:16px; background:#fff; overflow:hidden; }
    .task-detail-secondary > summary {
      display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:66px; padding:0 18px;
      cursor:pointer; list-style:none; background:#fff;
    }
    .task-detail-secondary > summary::-webkit-details-marker { display:none; }
    .task-detail-secondary > summary > div { min-width:0; }
    .task-detail-secondary > summary strong { display:block; color:#28384c; font-size:15px; }
    .task-detail-secondary > summary span { display:block; margin-top:4px; overflow:hidden; color:#748196; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
    .task-detail-secondary > summary em { flex:none; padding:5px 9px; border-radius:999px; background:#f0f3f6; color:#667085; font-size:10px; font-style:normal; font-weight:800; }
    .task-detail-secondary > summary em.is-risk { background:#fff0ed; color:#b42318; }
    .task-detail-secondary[open] > summary { border-bottom:1px solid #edf0f4; background:#fbfcfd; }
    .task-detail-support > .task-detail-content-grid { padding:16px; }
    .factory-operations-card { padding:0; }
    .factory-operations-body { padding:16px; }
    .factory-operations-summary::after { flex:none; color:#1769dc; font-size:12px; font-weight:850; content:"展开"; }
    .factory-operations-card[open] > .factory-operations-summary::after { content:"收起"; }
    .factory-operations-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
    .factory-operations-head strong { display:block; font-size:16px; }
    .factory-operations-head span { display:block; margin-top:4px; color:#748196; font-size:12px; line-height:1.5; }
    .factory-operations-head em { flex:none; padding:5px 9px; border-radius:999px; background:#edf5ff; color:#1769dc; font-size:11px; font-style:normal; font-weight:800; }
    .factory-flow { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; }
    .factory-flow-item { position:relative; min-height:76px; padding:10px; border:1px solid #e2e8f0; border-radius:11px; background:#f7f9fc; }
    .factory-flow-item::after { position:absolute; top:50%; right:-7px; width:7px; border-top:1px solid #cbd5e1; content:""; }
    .factory-flow-item:last-child::after { display:none; }
    .factory-flow-item span,.factory-flow-item strong,.factory-flow-item em { display:block; }
    .factory-flow-item span { color:#7a8696; font-size:10px; font-weight:750; }
    .factory-flow-item strong { margin-top:5px; overflow:hidden; color:#28384c; font-size:12px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
    .factory-flow-item em { margin-top:4px; color:#7a8696; font-size:9px; font-style:normal; line-height:1.35; }
    .factory-flow-item.is-done { border-color:#bcdcca; background:#f2faf5; }
    .factory-flow-item.is-risk { border-color:#efc2bd; background:#fff5f4; }
    .factory-operations-editors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:12px; }
    .factory-operation-editor { border:1px solid #e2e8f0; border-radius:11px; background:#fff; overflow:hidden; }
    .factory-operation-editor > summary { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:46px; padding:0 13px; cursor:pointer; list-style:none; color:#344054; font-size:12px; font-weight:800; }
    .factory-operation-editor > summary::-webkit-details-marker { display:none; }
    .factory-operation-editor > summary::after { color:#1769dc; content:"填写"; font-size:10px; }
    .factory-operation-editor[open] > summary::after { content:"收起"; }
    .factory-operation-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:12px; border-top:1px solid #edf0f4; background:#f8fafc; }
    .factory-operation-field { min-width:0; }
    .factory-operation-field.is-wide { grid-column:1 / -1; }
    .factory-operation-field span { display:block; margin-bottom:5px; color:#667085; font-size:10px; font-weight:750; }
    .factory-operation-field input,.factory-operation-field select { width:100%; height:38px; min-width:0; font-size:12px; }
    .factory-operation-field textarea { width:100%; min-height:72px; padding:10px; font-size:12px; }
    .factory-operation-check { padding:8px 10px; border:1px solid #d8e4f5; border-radius:10px; background:#fff; }
    .factory-operation-check input { width:22px; height:22px; }
    .factory-operation-check em { display:block; margin-top:4px; color:#667085; font-size:10px; font-style:normal; }
    .factory-operation-alert { display:flex; gap:12px; align-items:center; margin-top:12px; padding:11px 12px; border:1px solid #f6c28b; border-radius:10px; background:#fff7ed; color:#9a4d00; }
    .factory-operation-alert span { font-size:11px; }
    .factory-payment-history,.factory-payment-entry,.factory-shipment-history,.factory-shipment-entry,.factory-after-sales-history,.factory-after-sales-entry { grid-column:1 / -1; display:grid; gap:7px; padding:10px; border:1px solid #dfe7f2; border-radius:10px; background:#fff; }
    .factory-payment-history span,.factory-shipment-history span,.factory-after-sales-history span { color:#526174; font-size:11px; }
    .factory-payment-entry { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .factory-shipment-entry,.factory-after-sales-entry { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .factory-payment-entry label,.factory-shipment-entry label,.factory-after-sales-entry label { color:#667085; font-size:10px; font-weight:750; }
    .factory-payment-entry input,.factory-payment-entry select,.factory-shipment-entry input,.factory-shipment-entry select,.factory-after-sales-entry input,.factory-after-sales-entry select { width:100%; min-height:38px; margin-top:5px; }
    .factory-record-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 9px; border-radius:8px; background:#f7f9fc; }
    .factory-record-row > span { min-width:0; overflow-wrap:anywhere; line-height:1.5; }
    .factory-record-row-actions { display:flex; flex:none; flex-wrap:wrap; gap:6px; }
    .factory-record-row-actions button { min-height:30px; padding:0 9px; border:1px solid #d7e2f0; border-radius:8px; background:#fff; color:#1769dc; font-size:10px; font-weight:800; cursor:pointer; }
    .factory-record-row-actions button.is-danger { color:#b42318; }
    .factory-operation-actions { grid-column:1 / -1; display:flex; align-items:center; justify-content:flex-end; gap:8px; }
    .factory-profit-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:12px; padding-top:12px; border-top:1px solid #edf0f4; }
    .factory-profit-strip div { padding:9px 10px; border-radius:9px; background:#f7f9fc; }
    .factory-profit-strip span,.factory-profit-strip strong { display:block; }
    .factory-profit-strip span { color:#7a8696; font-size:9px; }
    .factory-profit-strip strong { margin-top:4px; color:#344054; font-size:12px; }
    .factory-profit-strip em { display:block; margin-top:3px; color:#7a8696; font-size:9px; font-style:normal; }
    .factory-profit-strip .is-risk { background:#fff0ed; }
    .factory-profit-strip .is-risk strong,.factory-profit-strip .is-risk em { color:#b42318; }
    .task-detail-history { border: 1px solid #dfe6ef; border-radius: 14px; background: #fff; overflow: hidden; }
    .task-detail-history summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 50px; padding: 0 16px; cursor: pointer; list-style: none; font-size: 14px; font-weight: 650; }
    .task-detail-history summary::-webkit-details-marker { display: none; }
    .task-detail-history summary span { color: #748196; font-size: 12px; font-weight: 500; }
    .task-detail-history-list { display: grid; gap: 8px; padding: 0 16px 16px; color: #5f6c7f; font-size: 13px; line-height: 1.55; }
    .task-detail-history-list div { padding: 9px 11px; border-radius: 9px; background: #f7f9fc; }
    .task-detail-notice { padding: 11px 14px; border: 1px solid #f0c7c3; border-radius: 11px; background: #fff5f4; color: #a33128; font-size: 13px; font-weight: 650; }
    .task-detail-confirm { max-width: 620px; padding: 22px; border: 1px solid #dce5f0; border-radius: 16px; background: #fff; box-shadow: 0 12px 34px rgba(22,41,70,.06); }
    .task-detail-confirm > strong { display: block; font-size: 18px; }
    .task-detail-confirm-copy { margin: 9px 0 14px; color: #657287; font-size: 13px; line-height: 1.65; }
    .task-recycle-card {
      margin-top: 12px;
      overflow: hidden;
      border: 1px solid #c7d9f2;
      border-radius: 12px;
      background: linear-gradient(145deg, #f4f8fe, #fff);
      box-shadow: 0 5px 16px rgba(23, 105, 220, .055);
    }
    .task-recycle-card > summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      min-height: 52px;
      padding: 9px 12px;
      cursor: pointer;
      list-style: none;
    }
    .task-recycle-card > summary::-webkit-details-marker { display: none; }
    .task-recycle-card[open] > summary { border-bottom: 1px solid #dbe6f4; }
    .task-recycle-title { display: flex; align-items: center; gap: 9px; min-width: 0; }
    .task-recycle-icon {
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      width: 30px;
      height: 30px;
      border-radius: 9px;
      background: #1769dc;
      color: #fff;
      font-size: 14px;
    }
    .task-recycle-title strong,
    .task-recycle-title em { display: block; }
    .task-recycle-title strong { color: #17202d; font-size: 14px; line-height: 1.25; }
    .task-recycle-title em { margin-top: 2px; color: #66758a; font-size: 10px; font-style: normal; line-height: 1.35; }
    .task-recycle-count {
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      min-width: 26px;
      height: 26px;
      padding: 0 7px;
      border-radius: 999px;
      background: #1769dc;
      color: #fff;
      font-size: 11px;
      font-weight: 900;
    }
    .task-recycle-body { padding: 0 12px 12px; }
    .task-recycle-policy {
      margin: 8px 0 2px;
      padding: 8px 10px;
      border-radius: 9px;
      background: #fff;
      color: #536277;
      font-size: 11px;
      line-height: 1.45;
    }
    .task-recycle-policy strong { color: #1f4f8c; }
    .task-recycle-card .notification-list { gap: 6px; margin-top: 8px; }
    .task-recycle-card .notification-item { padding: 10px 12px; border-radius: 10px; }
    .task-recycle-card .notification-empty { padding: 14px 12px; }
    .task-recycle-expiry {
      display: inline-flex;
      margin-right: 4px;
      padding: 3px 7px;
      border-radius: 999px;
      background: #fff0dc;
      color: #8a5107;
      font-size: 10px;
      font-style: normal;
      font-weight: 850;
    }
    #quoteIndustryWarning { align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; }
    .quote-industry-warning-copy { min-width: 0; }
    .quote-industry-warning-copy strong, .quote-industry-warning-copy span { display: block; }
    .quote-industry-warning-copy strong { margin-bottom: 4px; color: #8b4a08; font-size: 13px; }
    .quote-industry-warning-copy span { color: #7a4a16; font-size: 12px; line-height: 1.5; }
    #quoteIndustryWarning .btn { flex: 0 0 auto; border-color: rgba(178,90,9,.24); color: #8b4a08; }
    /* Visual studio: a brief on the left, a real preview canvas on the right. */
    .visual-studio-page > .grid-2 { grid-template-columns: minmax(470px,.88fr) minmax(520px,1.12fr); gap: 20px; align-items: start; }
    .visual-studio-page .card { padding: 22px; }
    .visual-studio-page .card-title { font-size: 21px; }
    .visual-use-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
    .visual-use-grid span { min-height: 82px; padding: 10px; border-radius: 12px; background: #f9fbfd; font-size: 11px; }
    .visual-use-grid strong { font-size: 13px; }
    .visual-brief-card #visualText { min-height: 150px; }
    .visual-brief-card .mini-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .visual-brief-card > .actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .visual-brief-card > .actions .btn { width: 100%; }
    .visual-primary-actions { margin-top: 14px; }
    .visual-secondary-actions { margin-top: 10px; }
    .visual-preview-card { position: sticky; top: 82px; min-height: 680px; overflow: hidden; }
    .visual-preview-card::after { content: ""; position: absolute; right: -90px; bottom: -110px; width: 260px; height: 260px; border-radius: 50%; background: rgba(23,105,220,.05); pointer-events: none; }
    #visualOutput { max-height: none; min-height: 560px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed #cbd7e5; border-radius: 16px; background: radial-gradient(circle at 50% 42%,#fff,#f4f8fc 72%); padding: 70px 44px; color: #697586; text-align: center; line-height: 1.7; }
    #visualSetCards:empty + #visualOutput::before { content: "✦"; width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 16px; border-radius: 18px; background: linear-gradient(145deg,#1769dc,#74a9f3); color: #fff; font-size: 25px; box-shadow: 0 16px 30px rgba(23,105,220,.24); }
    #visualSetCards:not(:empty) + #visualOutput { min-height: 180px; display: block; padding: 18px; background: #f7f9fc; color: var(--text); text-align: left; }
    .visual-set { gap: 12px; }
    .visual-card { padding: 13px; border-radius: 14px; }
    .visual-preview { height: 122px; border-radius: 11px; background: linear-gradient(145deg,#f7fbff,#edf5ff); }
    /* Related tools live inside their real workflow instead of a duplicate function hub. */
    .workflow-nav { width:max-content; max-width:100%; display:flex; align-items:center; gap:5px; margin:0 0 18px; padding:5px; overflow-x:auto; border:1px solid var(--line); border-radius:14px; background:#eef1f4; scrollbar-width:none; }
    .workflow-nav::-webkit-scrollbar { display:none; }
    .workflow-nav button { min-height:39px; padding:0 16px; border:0; border-radius:10px; background:transparent; color:#667085; font-size:13px; font-weight:850; white-space:nowrap; cursor:pointer; }
    .workflow-nav button:hover { background:#f8fafb; color:var(--ink); }
    .workflow-nav button.is-active { background:#fff; color:var(--ink); box-shadow:0 3px 10px rgba(24,34,48,.08); }
    .more-hub-page > .more-management-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch; }
    .more-hub-card { position: relative; min-height: 282px; overflow: hidden; padding: 25px; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
    .more-hub-card:hover { transform: translateY(-4px); border-color: #cad6e3; box-shadow: 0 20px 44px rgba(24,34,48,.1); }
    .more-hub-card::before { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 15px; color: #fff; font-size: 17px; font-weight: 900; box-shadow: 0 12px 24px rgba(24,34,48,.14); }
    .factory-hub-card::before { content: "¥"; background: linear-gradient(145deg,#1769dc,#62a2f7); }
    .production-hub-card::before { content: "✦"; background: linear-gradient(145deg,#7b4ce2,#a986f4); }
    .service-hub-card::before { content: "↗"; background: linear-gradient(145deg,#11845d,#52bc91); }
    .team-hub-card::before { content: "人"; background: linear-gradient(145deg,#c85c19,#ed9b48); }
    .channel-hub-card::before { content: "渠"; background: linear-gradient(145deg,#6e45d8,#a477ef); }
    .account-hub-card { grid-column: 1 / -1; }
    .account-hub-card::before { content: "账"; background: linear-gradient(145deg,#315f9d,#6c8fc2); }
    .more-hub-card .card-title { margin-bottom: 8px; font-size: 21px; }
    .more-hub-card .member-note { min-height: 58px; padding: 0; border: 0; background: transparent; font-size: 13px; }
    .more-hub-card .actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 22px; }
    .more-hub-card .actions > :first-child { grid-column: 1 / -1; }
    .more-hub-card .actions .btn { width: 100%; display: inline-flex; align-items: center; justify-content: center; text-align: center; }
    .more-hub-card.account-hub-card { display:grid; grid-template-columns:56px minmax(180px,.42fr) minmax(0,1fr); grid-template-rows:auto auto; gap:4px 18px; align-items:center; min-height:0; padding:22px 25px; }
    .more-hub-card.account-hub-card::before { grid-column:1; grid-row:1 / 3; margin:0; }
    .more-hub-card.account-hub-card .card-title { grid-column:2; grid-row:1; margin:0; }
    .more-hub-card.account-hub-card .member-note { grid-column:2; grid-row:2; min-height:0; }
    .more-hub-card.account-hub-card .actions { grid-column:3; grid-row:1 / 3; grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(150px,.62fr); align-items:center; margin:0; }
    .more-hub-card.account-hub-card .actions > :first-child { grid-column:auto; }
    .more-hub-card.account-hub-card .actions input { width:100%; min-width:0; }
    .more-management-grid.without-team #serviceAdminCard { grid-column:1 / -1; min-height:0; }
    .channel-center-page { --channel-purple:#6841d9; --channel-navy:#17202d; --channel-blue:#246bfd; }
    .channel-hero { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr); gap:18px; margin-bottom:18px; }
    .channel-hero-main {
      position:relative;
      min-height:310px;
      overflow:hidden;
      padding:32px 34px;
      border:1px solid rgba(255,255,255,.1);
      border-radius:20px;
      color:#fff;
      background:#17202d linear-gradient(135deg,#111827 0%,#1d3158 58%,#296ff2 100%) !important;
      box-shadow:0 24px 60px rgba(27,55,103,.2);
    }
    .channel-hero-main::before { content:""; position:absolute; right:46px; top:36px; width:128px; height:128px; border:1px solid rgba(255,255,255,.18); border-radius:30px; transform:rotate(14deg); }
    .channel-hero-main::after { content:""; position:absolute; right:-70px; bottom:-120px; width:330px; height:330px; border-radius:50%; background:radial-gradient(circle,rgba(106,165,255,.52),rgba(106,165,255,0) 68%); }
    .channel-hero-main > * { position:relative; z-index:1; }
    .channel-kicker { display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.1); color:#fff; font-size:11px; font-weight:900; letter-spacing:.04em; }
    .channel-kicker::before { content:""; width:7px; height:7px; border-radius:50%; background:#76e7b0; box-shadow:0 0 0 4px rgba(118,231,176,.13); }
    .channel-hero-main h2 { max-width:720px; margin:20px 0 11px; color:#fff; font-size:35px; line-height:1.2; letter-spacing:-.04em; }
    .channel-hero-main p { max-width:700px; margin:0; color:rgba(255,255,255,.76); font-size:14px; line-height:1.75; }
    .channel-policy-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; max-width:700px; margin:24px 0 0; padding:0; list-style:none; }
    .channel-policy-list li { display:flex; align-items:center; gap:9px; color:#fff; font-size:12px; }
    .channel-policy-list li::before { content:"✓"; width:22px; height:22px; display:grid; flex:0 0 auto; place-items:center; border-radius:50%; background:rgba(255,255,255,.14); color:#8ff0c1; font-weight:900; }
    .channel-status-card { min-height:310px; padding:26px; display:flex; flex-direction:column; background:linear-gradient(180deg,#fff,#fbfcff); }
    .channel-status-pill { display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border-radius:999px; background:#fff3dd; color:#8a5107; font-size:11px; font-weight:900; }
    .channel-status-pill.is-active { background:#eaf8ef; color:#168153; }
    .channel-status-pill.is-rejected,.channel-status-pill.is-suspended { background:#fff0f0; color:#b42318; }
    .channel-status-card h3 { margin:18px 0 8px; font-size:22px; }
    .channel-status-card p { margin:0; color:#687386; font-size:12px; line-height:1.65; }
    .channel-status-card .btn { margin-top:auto; width:100%; }
    .channel-progress { display:grid; gap:11px; margin:21px 0 20px; }
    .channel-progress-item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; align-items:center; color:#6d788a; font-size:11px; }
    .channel-progress-item i { width:28px; height:28px; display:grid; place-items:center; border:1px solid #dfe6ef; border-radius:9px; background:#f7f9fc; color:#45617f; font-style:normal; font-size:10px; font-weight:900; }
    .channel-progress-item strong { display:block; color:#27364a; font-size:12px; }
    .channel-value-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
    .channel-value-card { position:relative; min-height:160px; overflow:hidden; padding:22px; border:1px solid #e1e7ef; border-radius:18px; background:#fff; box-shadow:0 10px 28px rgba(24,34,48,.055); }
    .channel-value-card::after { content:attr(data-index); position:absolute; right:18px; top:10px; color:#edf2f8; font-size:52px; font-weight:950; letter-spacing:-.08em; }
    .channel-value-icon { position:relative; z-index:1; width:38px; height:38px; display:grid; place-items:center; border-radius:12px; color:#fff; background:#246bfd; font-size:13px; font-weight:950; box-shadow:0 10px 22px rgba(36,107,253,.22); }
    .channel-value-card:nth-child(2) .channel-value-icon { background:#13a06f; box-shadow:0 10px 22px rgba(19,160,111,.2); }
    .channel-value-card:nth-child(3) .channel-value-icon { background:#6c45d9; box-shadow:0 10px 22px rgba(108,69,217,.2); }
    .channel-value-card h3 { position:relative; z-index:1; margin:16px 0 7px; font-size:17px; }
    .channel-value-card p { position:relative; z-index:1; margin:0; color:#6e798a; font-size:12px; line-height:1.65; }
    .channel-layout { display:grid; grid-template-columns:minmax(330px,.7fr) minmax(0,1.3fr); gap:18px; align-items:start; }
    .channel-panel { padding:24px; }
    .channel-panel .card-title { margin-bottom:6px; }
    .channel-onboarding-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr); gap:18px; align-items:start; }
    .channel-apply-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px; }
    .channel-apply-heading .card-title { margin:0 0 6px; }
    .channel-apply-badge { flex:0 0 auto; padding:7px 10px; border-radius:999px; background:#edf4ff; color:#1765cf; font-size:10px; font-weight:900; }
    .channel-guide-card { padding:24px; background:linear-gradient(180deg,#f8fbff,#fff); }
    .channel-guide-card h3 { margin:0; font-size:18px; }
    .channel-guide-card > p { margin:7px 0 0; color:#6d788a; font-size:12px; line-height:1.65; }
    .channel-step-list { display:grid; gap:0; margin:20px 0 0; }
    .channel-step { position:relative; display:grid; grid-template-columns:36px minmax(0,1fr); gap:12px; padding:0 0 20px; }
    .channel-step:not(:last-child)::after { content:""; position:absolute; left:17px; top:34px; bottom:2px; width:1px; background:#dbe4f0; }
    .channel-step i { position:relative; z-index:1; width:36px; height:36px; display:grid; place-items:center; border-radius:11px; background:#17202d; color:#fff; font-style:normal; font-size:11px; font-weight:900; }
    .channel-step strong,.channel-step span { display:block; }
    .channel-step strong { margin:1px 0 4px; font-size:13px; }
    .channel-step span { color:#778296; font-size:11px; line-height:1.55; }
    .channel-fit-box { margin-top:4px; padding:16px; border:1px solid #e0e7ef; border-radius:14px; background:#fff; }
    .channel-fit-box strong { display:block; margin-bottom:9px; font-size:12px; }
    .channel-fit-tags { display:flex; flex-wrap:wrap; gap:7px; }
    .channel-fit-tags span { padding:6px 8px; border-radius:8px; background:#f1f5f9; color:#526174; font-size:10px; font-weight:800; }
    .channel-form { display:grid; gap:11px; margin-top:18px; }
    .channel-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
    .channel-form label { display:grid; gap:6px; color:#556173; font-size:11px; font-weight:800; }
    .channel-form label.wide { grid-column:1 / -1; }
    .channel-form textarea { min-height:90px; }
    .channel-form .btn { min-height:44px; }
    .channel-message { min-height:18px; margin:8px 0 0; color:#b42318; font-size:11px; line-height:1.5; }
    .channel-message.success { color:#168153; }
    .channel-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
    .channel-stat { padding:17px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:0 8px 20px rgba(24,34,48,.05); }
    .channel-stat span,.channel-stat strong { display:block; }
    .channel-stat span { color:#778196; font-size:10px; font-weight:800; }
    .channel-stat strong { margin-top:7px; font-size:20px; }
    .channel-referral-card { display:grid; grid-template-columns:120px minmax(0,1fr); gap:18px; align-items:center; padding:20px; border:1px solid #d8cef8; border-radius:18px; background:linear-gradient(145deg,#fbf9ff,#f1ecff); }
    .channel-referral-card img { width:120px; height:120px; padding:7px; border-radius:14px; background:#fff; object-fit:contain; }
    .channel-code { display:inline-flex; margin:7px 0; color:#5d35cc; font-size:22px; font-weight:950; letter-spacing:.08em; }
    .channel-referral-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
    .channel-data-card { margin-top:18px; padding:22px; }
    .channel-data-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .channel-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:14px; }
    .channel-table { width:100%; min-width:720px; border-collapse:collapse; font-size:11px; }
    .channel-table th,.channel-table td { padding:11px 12px; border-bottom:1px solid #edf0f4; text-align:left; vertical-align:middle; }
    .channel-table th { color:#778196; background:#f8fafc; font-weight:900; white-space:nowrap; }
    .channel-table tr:last-child td { border-bottom:0; }
    .channel-empty { padding:28px !important; color:#8a94a6; text-align:center !important; }
    .channel-state-tag { display:inline-flex; padding:5px 8px; border-radius:999px; background:#edf3fb; color:#315f9d; font-size:10px; font-weight:900; white-space:nowrap; }
    .channel-state-tag.good { background:#eaf8ef; color:#168153; }
    .channel-state-tag.warn { background:#fff3dd; color:#8a5107; }
    .channel-settlement-box { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:end; margin-top:18px; padding:18px; border:1px solid #dce4ed; border-radius:16px; background:#f8fafc; }
    .channel-settlement-box .channel-form-grid { margin-top:10px; }
    .channel-settlement-box .btn { min-width:150px; min-height:44px; }
    @media (max-width:1100px) {
      .channel-hero,.channel-layout,.channel-onboarding-grid { grid-template-columns:1fr; }
      .channel-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
      .channel-value-grid { grid-template-columns:1fr 1fr; }
    }
    @media (max-width:700px) {
      .channel-hero-main { padding:23px; }
      .channel-hero-main h2 { font-size:27px; }
      .channel-policy-list,.channel-value-grid { grid-template-columns:1fr; }
      .channel-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .channel-form-grid,.channel-referral-card,.channel-settlement-box { grid-template-columns:1fr; }
      .channel-referral-card img { width:108px; height:108px; }
    }
    /* Vector work is deliberately human-in-the-loop: submit, claim, verify, deliver. */
    .vector-studio-page .vector-intro-grid { display:grid; grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr); gap:18px; align-items:stretch; }
    .vector-submit-card, .vector-guide-card, .vector-queue-card { padding:24px; }
    .vector-eyebrow { display:inline-flex; align-items:center; gap:7px; margin-bottom:10px; padding:6px 10px; border-radius:999px; background:#eaf3ff; color:#1162c2; font-size:11px; font-weight:900; letter-spacing:.04em; }
    .vector-submit-card .card-title { margin-bottom:7px; font-size:23px; }
    .vector-submit-card .member-note { margin:0 0 16px; padding:0; border:0; background:transparent; }
    .vector-consent { display:flex; align-items:flex-start; gap:9px; margin-top:13px; padding:12px 14px; border:1px solid #dbe5f0; border-radius:12px; background:#f8fbff; color:#566273; font-size:12px; line-height:1.55; }
    .vector-consent input { width:17px; height:17px; margin-top:1px; flex:0 0 auto; }
    .vector-submit-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px; }
    .vector-submit-actions .btn { min-height:44px; }
    .vector-charge-note { color:#718096; font-size:11px; }
    .vector-steps { display:grid; gap:0; margin-top:14px; }
    .vector-step { position:relative; display:grid; grid-template-columns:34px 1fr; gap:11px; padding:0 0 18px; }
    .vector-step:not(:last-child)::after { content:""; position:absolute; left:16px; top:30px; bottom:2px; width:1px; background:#d8e2ee; }
    .vector-step i { position:relative; z-index:1; width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:#17202d; color:#fff; font-style:normal; font-size:12px; font-weight:900; }
    .vector-step strong, .vector-step span { display:block; }
    .vector-step strong { margin:2px 0 3px; font-size:13px; }
    .vector-step span { color:#718096; font-size:11px; line-height:1.5; }
    .vector-guide-card .btn { width:100%; display:flex; align-items:center; justify-content:center; }
    .vector-privacy-tip { margin-top:12px; color:#667085; font-size:11px; line-height:1.55; }
    .vector-queue-card { margin-top:18px; }
    .vector-queue-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:14px; }
    .vector-queue-head .card-title { margin-bottom:2px; }
    .vector-job-list { display:grid; gap:11px; }
    .vector-job { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; padding:16px; border:1px solid #e1e7ef; border-radius:14px; background:#fff; }
    .vector-job-main { min-width:0; }
    .vector-job-top { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:8px; }
    .vector-job-top strong { font-size:14px; }
    .vector-job-status { display:inline-flex; align-items:center; min-height:24px; padding:3px 8px; border-radius:999px; background:#fff4d8; color:#986300; font-size:10px; font-weight:900; }
    .vector-job-status.processing { background:#e8f2ff; color:#1769c7; }
    .vector-job-status.completed { background:#e8f8f0; color:#14724f; }
    .vector-job-meta { color:#647184; font-size:11px; line-height:1.65; word-break:break-word; }
    .vector-job-note { margin-top:7px; padding:8px 10px; border-radius:9px; background:#f7f9fc; color:#566273; font-size:11px; line-height:1.5; }
    .vector-job-actions { min-width:260px; display:flex; flex-wrap:wrap; align-content:flex-start; justify-content:flex-end; gap:8px; }
    .vector-job-actions .btn { min-height:36px; padding:8px 11px; font-size:11px; }
    .vector-result-upload { width:100%; max-width:310px; padding:8px; border:1px dashed #bdc9d8; border-radius:9px; background:#f9fbfd; font-size:11px; }
    .vector-empty { padding:28px; border:1px dashed #cbd7e5; border-radius:14px; background:#fafcff; color:#748196; text-align:center; font-size:12px; line-height:1.7; }
    /* 阅读舒适版：提高关键文字尺寸、减少过重字形，并让高频工作区更容易扫读。 */
    :root {
      --page: #f7f8fa;
      --panel: rgba(255,255,255,.98);
      --text: #182230;
      --ink: #182230;
      --muted: #667085;
      --line: #e4e7ec;
      --blue: #2563eb;
      --blue-dark: #1d4ed8;
      --blue-soft: #eff4ff;
      --shadow: 0 8px 26px rgba(16,24,40,.055);
      --radius: 14px;
    }
    body {
      color: #344054;
      background: var(--page);
      font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
      font-size: 15px;
      line-height: 1.55;
      letter-spacing: 0;
    }
    button,
    input,
    select,
    textarea {
      font-family: inherit;
    }
    .sidebar {
      height: 64px;
      padding: 0 28px;
      background: rgba(255,255,255,.94);
      border-color: #e7eaf0;
    }
    .brand { font-size: 17px; font-weight: 700; }
    .nav button {
      height: 38px;
      padding: 0 15px;
      font-size: 14px;
      font-weight: 600;
    }
    .sidebar-note { font-size: 13px; font-weight: 500; }
    main { max-width: 1480px; padding: 28px 30px 64px; }
    .header { margin-bottom: 24px; }
    h1 { font-size: 28px; font-weight: 700; line-height: 1.25; }
    .sub { font-size: 14px; line-height: 1.6; }
    .page-back,
    .badge,
    .service-badge,
    .header-alert-button { min-height: 38px; height: 38px; padding: 0 15px; font-size: 14px; font-weight: 600; }
    .header-alert-count { min-width: 22px; height: 22px; padding: 0 6px; font-size: 12px; line-height: 22px; }
    .card { padding: 22px; border-radius: 14px; box-shadow: var(--shadow); }
    .card-title { font-size: 19px; font-weight: 700; }
    .member-note,
    .output { font-size: 14px; line-height: 1.65; }
    textarea,
    input,
    select { font-size: 14px; line-height: 1.55; }
    input,
    select { min-height: 44px; }
    .row label,
    .field-label { font-size: 13px; font-weight: 600; }
    .field-help { font-size: 12px; line-height: 1.55; }
    .btn,
    .upload-action {
      min-height: 42px;
      font-size: 14px;
      font-weight: 600;
      box-shadow: none;
    }
    .btn.dark { box-shadow: 0 7px 18px rgba(37,99,235,.16); }
    th,
    td { padding: 15px 14px; font-size: 14px; line-height: 1.55; }
    th { color: #667085; font-size: 13px; font-weight: 600; letter-spacing: 0; }
    /* 提醒设置：复选框不得继承通用输入框的全宽和 44px 高度。 */
    #notificationSettings { display: grid; gap: 10px; }
    .notification-settings-card .member-note { margin-bottom: 14px; }
    .notice-setting {
      align-items: center;
      min-height: 54px;
      gap: 12px;
      padding: 12px 14px;
      border-color: #e4e7ec;
      color: #344054;
      font-size: 15px;
      font-weight: 600;
      line-height: 1.4;
      transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
    }
    .notice-setting:hover { border-color: #b8cdf8; background: #f8fbff; }
    .notice-setting:has(input:focus-visible) { border-color: #84adff; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
    .notice-setting input[type="checkbox"] {
      width: 20px;
      height: 20px;
      min-height: 20px;
      flex: 0 0 20px;
      margin: 0;
      padding: 0;
      accent-color: var(--blue);
      box-shadow: none;
      cursor: pointer;
    }
    .notice-setting span { min-width: 0; overflow-wrap: anywhere; }
    .notification-settings-card .actions .btn { width: 100%; }
    /* 团队权限：小屏桌面不再把编辑区塞进窄侧栏，权限复选框保持横向易读。 */
    .permission-grid label {
      align-items: center;
      min-height: 54px;
      gap: 12px;
      padding: 12px 14px;
      color: #344054;
      font-size: 14px;
      font-weight: 600;
      line-height: 1.4;
      transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
    }
    .permission-grid label:hover { border-color: #b8cdf8; background: #f8fbff; }
    .permission-grid label:has(input:focus-visible) { border-color: #84adff; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
    .permission-grid input[type="checkbox"] {
      width: 20px;
      height: 20px;
      min-height: 20px;
      flex: 0 0 20px;
      margin: 0;
      padding: 0;
      accent-color: var(--blue);
      box-shadow: none;
      cursor: pointer;
    }
    .permission-grid label span { min-width: 0; overflow-wrap: anywhere; }
    /* 首页：会话文字不再缩成脚注，窄屏时收起右侧进度栏。 */
    .home-workbench.has-multiple { grid-template-columns: 260px minmax(0,1fr) 260px; gap: 20px; }
    .home-workbench.has-multiple .gpt-shell { width: min(820px,100%); }
    .home-rail-head,
    .home-context-head { padding: 16px; }
    .home-rail-head strong,
    .home-context-head strong { font-size: 15px; font-weight: 650; }
    .home-rail-head span { font-size: 12px; }
    .home-rail-new,
    .home-mobile-back { min-height: 34px; font-size: 12px; font-weight: 600; }
    .home-session-search { padding: 12px; }
    .home-session-search input { height: 40px; font-size: 13px; }
    .home-session-list { padding: 8px; }
    .home-session-item { min-height: 82px; padding: 12px 48px 12px 12px; border-radius: 12px; }
    .home-session-item strong { font-size: 14px; font-weight: 600; }
    .home-session-item span { margin-top: 5px; font-size: 12px; line-height: 1.45; }
    .home-session-item em { font-size: 11px; }
    .home-session-badge { padding: 3px 7px; font-size: 10px; font-weight: 600; }
    .home-context-body { padding: 16px; }
    .home-context-customer strong { font-size: 17px; font-weight: 650; }
    .home-context-customer span { font-size: 12px; line-height: 1.55; }
    .home-context-progress { gap: 12px; margin-top: 16px; }
    .home-context-step { gap: 10px; }
    .home-context-step strong { font-size: 13px; font-weight: 600; }
    .home-context-step span { margin-top: 3px; font-size: 12px; line-height: 1.45; }
    .home-context-actions .btn { min-height: 40px; font-size: 13px; }
    .gpt-heading h2 { font-size: 40px; font-weight: 700; }
    .gpt-kicker { font-size: 12px; font-weight: 600; }
    .gpt-heading p { font-size: 15px; }
    .home-help-button { font-size: 12px; font-weight: 600; }
    .home-customer-context { font-size: 13px; }
    .home-customer-context label { font-weight: 600; }
    .home-customer-context input { font-size: 14px; font-weight: 500; }
    .home-chat-record-copy strong { font-size: 13px; font-weight: 600; }
    .home-chat-record-copy em { font-size: 12px; }
    .home-chat-record-button { min-height: 34px; font-size: 12px; font-weight: 600; }
    .gpt-composer textarea { font-size: 16px; }
    .gpt-suggestions-label,
    .home-privacy-note,
    .home-share-hint { font-size: 12px; line-height: 1.55; }
    .gpt-suggestion-item strong { font-size: 14px; font-weight: 600; }
    .gpt-suggestion-item em { font-size: 12px; line-height: 1.45; }
    body.home-conversation-active main { height: calc(100dvh - 64px); }
    .gpt-home.has-conversation .gpt-result { padding-top: 14px; }
    .gpt-home.has-conversation .chat-thread,
    .gpt-home.has-conversation .gpt-shell { width: min(880px,calc(100% - 24px)); }
    .chat-user-bubble { font-size: 15px; }
    .chat-assistant-name { font-size: 14px; font-weight: 600; }
    .ai-answer-lead { font-size: 18px; font-weight: 650; }
    .ai-answer-section h3 { font-size: 14px; font-weight: 600; }
    .ai-answer-section p,
    .ai-answer-section ul { font-size: 15px; }
    .ai-facts dt { font-size: 12px; font-weight: 500; }
    .ai-facts dd { font-size: 15px; }
    .ai-confidence-tag { font-size: 10px; font-weight: 600; }
    .ai-confidence-note { font-size: 13px; }
    .home-next-copy > span { font-size: 12px; font-weight: 600; }
    .home-next-copy > strong { font-size: 16px; font-weight: 650; }
    .home-next-copy > em { font-size: 12px; }
    .home-next-more summary { font-size: 12px; font-weight: 600; }
    /* 跟单：三个阶段清晰可见，正文达到舒适阅读尺寸。 */
    .task-board-card { padding: 26px; }
    .task-board-card > .card-title { font-size: 22px; font-weight: 700; }
    .task-reminder-summary { padding: 17px 18px; font-size: 14px; }
    .task-reminder-summary strong { font-size: 15px; font-weight: 650; }
    .task-search input { height: 46px; font-size: 14px; font-weight: 400; }
    .task-phase-tabs button { min-height: 56px !important; font-size: 16px !important; font-weight: 600 !important; }
    .task-phase-substatus { margin-top: 4px; font-size: 12px; font-weight: 500; }
    .task-list-priority { margin: 4px 0 16px; font-size: 13px; line-height: 1.55; }
    .task-studio-page th,
    .task-studio-page td { padding: 16px 14px; font-size: 14px; line-height: 1.55; vertical-align: top; }
    .task-studio-page th { font-size: 13px; font-weight: 600; }
    .task-studio-page .status { font-size: 13px; font-weight: 600; }
    .task-priority-badge { margin-top: 6px; font-size: 12px; font-weight: 600; }
    .task-progress-compact strong { margin-bottom: 7px; font-size: 14px; font-weight: 600; }
    .task-create-details summary { font-size: 14px; font-weight: 600; }
    .production-progress-head strong { font-size: 16px; font-weight: 650; }
    .production-progress-count { font-size: 13px; font-weight: 600; }
    .production-step { min-height: 58px; padding: 10px 12px; }
    .production-step-label { font-size: 14px; font-weight: 600; }
    .production-step-meta,
    .production-step-note { font-size: 13px; font-weight: 400; }
    .production-step-undo { min-height: 32px; font-size: 13px; font-weight: 600; }
    .production-step-move,
    .production-step-remove,
    .production-reset { min-height: 34px; font-size: 12px; font-weight: 600; }
    /* 报价：扩大主工作区和产品参数，说明文字不再低于 12px。 */
    .quote-reply-details,
    .quote-history-details { max-width: 1040px; padding: 15px 18px; }
    .quote-guide-layout { grid-template-columns: minmax(0,980px); }
    .quote-guide-card,
    .quote-result-card { padding: 26px; }
    .quote-guide-head .card-title { font-size: 21px; }
    .quote-guide-kicker,
    .quote-guide-required { font-size: 12px; font-weight: 600; }
    .quote-step-note { padding: 13px 14px; font-size: 14px; }
    .quote-ai-intake { padding: 20px; }
    .quote-section-head { margin-bottom: 12px; }
    .quote-section-head strong { font-size: 17px; font-weight: 650; }
    .quote-section-head span { font-size: 13px; }
    .quote-catalog-builder { padding: 18px; }
    .quote-catalog-head strong { font-size: 15px; font-weight: 650; }
    .quote-catalog-head span { font-size: 12px; }
    .quote-catalog-count { font-size: 11px; font-weight: 600; }
    .quote-category-tabs button { min-height: 38px; padding: 0 12px; font-size: 12px; font-weight: 600; }
    .quote-product-picker { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; max-height: 216px; }
    .quote-product-picker button { min-height: 48px; padding: 9px 11px; font-size: 13px; font-weight: 600; }
    .quote-product-picker .quote-product-empty { font-size: 13px; }
    .quote-configurator-title strong { font-size: 15px; font-weight: 650; }
    .quote-configurator-title span { font-size: 12px; }
    .quote-option-group { grid-template-columns: 130px minmax(0,1fr); padding: 11px 0; }
    .quote-option-label { font-size: 13px; font-weight: 600; }
    .quote-option-values span { min-height: 36px; padding: 7px 10px; font-size: 12px; font-weight: 500; }
    .quote-quantity-presets { margin-left: 140px; }
    .quote-quantity-presets button { min-height: 36px; font-size: 12px; font-weight: 600; }
    .quote-catalog-summary { padding: 12px 13px; font-size: 12px; }
    .quote-manual-compat summary,
    .quote-manual-details summary { font-size: 12px; font-weight: 600; }
    .quote-material-check-head strong,
    .quote-freight-policy strong { font-size: 14px; font-weight: 650; }
    .quote-material-check-head span,
    .quote-material-check-fields label > span,
    .quote-material-confirm,
    .quote-freight-policy span { font-size: 12px; }
    @media (min-width: 621px) and (max-width: 1500px) {
      .task-studio-page th:nth-child(7),
      .task-studio-page th:nth-child(8),
      .task-studio-page td[data-label="金额"],
      .task-studio-page td[data-label="风险"] { display: none; }
    }
    @media (max-width: 1350px) {
      .home-workbench.has-multiple { grid-template-columns: 260px minmax(0,1fr); }
      .home-workbench.has-multiple .home-customer-context-panel { display: none; }
      .home-workbench.has-multiple .gpt-shell { width: min(880px,100%); }
    }
    @media (max-width: 1100px) {
      .team-layout { grid-template-columns: 1fr; }
      .visual-studio-page > .grid-2 { grid-template-columns: 1fr; }
      .visual-preview-card { position: static; min-height: 520px; }
      #visualOutput { min-height: 400px; }
      .more-hub-page > .more-management-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
      .vector-studio-page .vector-intro-grid { grid-template-columns:1fr; }
      .visual-version-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
    }
    @media (max-width: 900px) {
      .team-layout { grid-template-columns:1fr; }
      .permission-grid { grid-template-columns:1fr; }
      .sidebar { height: 56px; padding: 0 12px; gap: 12px; }
      body.home-conversation-active main { height: calc(100dvh - 56px); }
      .brand img { width: 32px; height: 32px; }
      .nav { gap: 3px; }
      .nav button { height: 34px; padding: 0 11px; }
      main { padding: 20px 14px 46px; }
      .header { margin-bottom: 18px; }
      .card { padding: 16px; }
      .gpt-home { padding-top: 34px; }
      .gpt-heading h2 { font-size: 34px; }
      .gpt-composer { padding: 13px; border-radius: 18px; }
      .gpt-composer textarea { min-height: 110px; font-size: 15px; }
      .price-studio-page .price-setup-choice { padding: 24px 18px; }
      .price-setup-choice > strong { font-size: 24px; }
      .price-confidence-strip { grid-template-columns: 1fr; }
      .visual-brief-card .mini-grid { grid-template-columns: 1fr; }
      .visual-use-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
      .visual-preview-card { min-height: 0; }
      #visualOutput { min-height: 340px; padding: 44px 24px; }
      .more-hub-page > .more-management-grid { grid-template-columns: 1fr; }
      .more-hub-card { min-height: 0; }
      .more-hub-card.account-hub-card { grid-template-columns:48px minmax(150px,.42fr) minmax(0,1fr); }
      .more-hub-card.account-hub-card .actions { grid-template-columns:1fr; }
      .vector-job { grid-template-columns:1fr; }
      .vector-job-actions { min-width:0; justify-content:flex-start; }
    }
    @media (max-width: 620px) {
      .brand span { display: none; }
      .sidebar-note { display: none; }
      .sidebar { padding-right: 8px; }
      .nav button { padding: 0 9px; font-size: 12px; }
      h1 { font-size: 24px; }
      .header-status { gap: 6px; }
      .badge, .service-badge { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
      .gpt-heading h2 { font-size: 30px; }
      .gpt-heading p { font-size: 13px; }
      .home-customer-context { grid-template-columns: auto minmax(0,1fr) auto; }
      .visual-use-grid { grid-template-columns: 1fr; }
      .visual-brief-card > .actions { grid-template-columns: 1fr; }
      .visual-version-list { grid-template-columns:1fr; }
      .more-hub-card .actions { grid-template-columns: 1fr; }
      .more-hub-card .actions > :first-child { grid-column: auto; }
      .more-hub-card.account-hub-card { display:block; }
      .more-hub-card.account-hub-card::before { margin-bottom:18px; }
      .more-hub-card.account-hub-card .card-title { margin-bottom:8px; }
      .more-hub-card.account-hub-card .member-note { min-height:0; }
      .more-hub-card.account-hub-card .actions { margin-top:16px; }
      .workflow-nav { width:100%; }
      .workflow-nav button { flex:1 0 auto; }
      .task-board-card { padding: 15px; }
      .task-search { grid-template-columns: 1fr; }
      .task-search .btn { width: 100%; }
      #quoteIndustryWarning { align-items: stretch; flex-direction: column; }
      #quoteIndustryWarning .btn { width: 100%; }
      .task-studio-page .table-scroll { overflow: visible; }
      .task-studio-page table { border: 0; background: transparent; }
      .task-studio-page thead { display: none; }
      .task-studio-page tbody, .task-studio-page tr { display: block; width: 100%; }
      .task-studio-page tbody tr { margin-bottom: 12px; border: 1px solid #e2e8f0; border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(24,34,48,.05); overflow: hidden; }
      .task-studio-page tbody td { width: 100%; display: grid; grid-template-columns: 84px minmax(0,1fr); gap: 10px; padding: 10px 12px; border-bottom: 1px solid #eef1f5; font-size: 12px; }
      .task-studio-page tbody td[data-label]::before { content: attr(data-label); color: #7a8696; font-size: 11px; font-weight: 800; }
      .task-studio-page tbody td[data-label="客户/产品"] { padding-top: 14px; font-size: 13px; font-weight: 760; }
      .task-studio-page tbody td[data-label="操作"] { display: flex; flex-wrap: wrap; gap: 7px; padding: 12px; border-bottom: 0; }
      .task-studio-page tbody td[data-label="操作"]::before { width: 100%; }
      .task-studio-page tbody td[data-label="操作"] .btn { flex: 1 1 88px; }
      .task-studio-page tbody td:not([data-label]) { display: block; padding: 22px 14px; text-align: center; }
    }
    @media (max-width: 980px) {
      body.home-conversation-active main { height: calc(100dvh - 56px); }
      .home-workbench.has-multiple { display: block; }
      .home-workbench.has-multiple .home-customer-rail,
      .home-workbench.has-multiple .home-customer-context-panel { display: none; }
      .home-workbench.has-multiple .gpt-shell { width: min(860px,100%); }
      .quote-guide-card,
      .quote-result-card { padding: 20px; }
      .quote-product-picker { grid-template-columns: repeat(2,minmax(0,1fr)); }
      .quote-option-group { grid-template-columns: 1fr; }
      .quote-option-label { padding-top: 0; }
      .quote-quantity-presets { margin-left: 0; }
      .quote-catalog-setup { padding:20px; }
      .quote-catalog-setup-head { flex-direction:column; }
      .quote-catalog-setup-tools { grid-template-columns:1fr 1fr; }
      .quote-catalog-setup-tools input { grid-column:1 / -1; }
      .quote-catalog-setup-custom { grid-template-columns:1fr 1fr; }
      .quote-catalog-setup-custom button { grid-column:1 / -1; }
      .quote-catalog-setup-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
      .task-detail-content-grid { grid-template-columns: 1fr; }
      .task-execution-bridge { grid-template-columns: 1fr; }
      .task-execution-bridge .btn { width: 100%; }
    }
    @media (max-width: 620px) {
      body { font-size: 14px; }
      .nav button { font-size: 13px; }
      .sub { font-size: 13px; }
      .task-studio-page tbody td { padding: 12px 13px; font-size: 13px; }
      .task-studio-page tbody td[data-label]::before { font-size: 12px; font-weight: 600; }
      .quote-guide-card,
      .quote-result-card { padding: 16px; }
      .quote-catalog-setup { padding:16px; }
      .quote-catalog-setup-head h2 { font-size:21px; }
      .quote-catalog-setup-tools,
      .quote-catalog-setup-costs,
      .quote-catalog-setup-custom { grid-template-columns:1fr; }
      .quote-catalog-setup-tools input,
      .quote-catalog-setup-custom button { grid-column:auto; }
      .quote-catalog-setup-cost-head { align-items:stretch; flex-direction:column; }
      .quote-catalog-setup-cost-head .btn { width:100%; }
      .quote-catalog-setup-cost-row { grid-template-columns:1fr 1fr; }
      .quote-catalog-setup-cost-row.is-process { grid-template-columns:1fr; }
      .quote-catalog-setup-cost-row label:first-child { grid-column:1 / -1; }
      .quote-catalog-setup-cost-delete { width:100%; }
      .quote-catalog-setup-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .quote-catalog-setup-products { max-height:390px; }
      .quote-catalog-setup-actions { flex-direction:column-reverse; }
      .quote-catalog-setup-actions .btn { width:100%; }
      .business-sync-grid { grid-template-columns:1fr; }
      .business-sync-error { grid-column:1; }
      .business-sync-actions .btn,.business-sync-actions label.btn { width:100%; }
      .quote-catalog-head { align-items:flex-start; }
      .quote-catalog-head-actions { width:100%; justify-content:space-between; }
      .quote-category-tabs button { min-height:44px; }
      .quote-category-manager-row { grid-template-columns:44px minmax(0,1fr); }
      .quote-category-manager-row .quote-category-manager-actions { grid-column:1 / -1; }
      .quote-category-add { grid-template-columns: 1fr; }
      .quote-category-manager-actions { justify-content: flex-start; }
      .quote-category-drag-handle { width:44px; height:44px; }
      .quote-category-manager-actions button { min-height:44px; }
      .quote-category-confirm-bar { position:static; flex-direction:column; align-items:stretch; }
      .quote-category-confirm-actions { width:100%; }
      .quote-category-confirm-actions button { flex:1; min-height:44px; }
      .quote-material-price-row { grid-template-columns:minmax(0,1fr) 100px; }
      .quote-material-price-row > span { grid-column:1 / -1; }
      .quote-material-price-row .quote-price-row-actions { grid-column:1 / -1; }
      .quote-operation-price-primary,
      .quote-operation-price-advanced,
      .quote-print-sheet-tier-grid { grid-template-columns:1fr; }
      .quote-print-sheet-tier-card { grid-template-columns:1fr; }
      .quote-print-sheet-tier-card > strong,.quote-print-sheet-tier-card > small { grid-column:auto; }
      .quote-print-sheet-tier-heading { align-items:flex-start; flex-direction:column; }
      .quote-print-sheet-tier-heading span { text-align:left; }
      .task-detail-overview { padding: 15px; border-radius: 14px; }
      .task-detail-overview-head { grid-template-columns: 1fr auto; gap: 12px; }
      .task-detail-progress { grid-column: 1 / -1; grid-row: 2; }
      .task-detail-current strong { font-size: 21px; }
      .task-detail-phase-rail { grid-template-columns: 1fr; }
      .task-detail-phase { min-height: 60px; }
      .task-detail-next { grid-template-columns: 1fr; gap: 4px; }
      .task-detail-primary-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
      .task-detail-primary-actions .btn { width: 100%; }
      .task-detail-panel,
      .task-detail-shell .task-followup-card { padding: 15px; }
      .task-detail-facts { grid-template-columns: 1fr; }
      .industry-workflow-current { grid-template-columns: 1fr; }
    }
    /* Readability baseline: important factory actions must remain legible on long forms. */
    .quote-catalog-head span,
    .quote-catalog-summary,
    .quote-manual-compat summary,
    .quote-freight-note,
    .quote-terms-more summary,
    .quote-review-details summary,
    .quote-product-picker button,
    .quote-product-picker .quote-product-empty,
    .quote-configurator-title span,
    .quote-option-label,
    .quote-option-values span,
    .quote-material-price-row > span small,
    .quote-operation-price-row > span small,
    .quote-safety-copy span,
    .quote-trust-item span { font-size:13px; line-height:1.5; }
    .quote-catalog-head strong,
    .quote-configurator-title strong,
    .quote-material-price-row > span strong,
    .quote-operation-price-row > span strong { font-size:14px; }
    .quote-category-tabs button,
    .quote-category-manager-actions button,
    .quote-category-confirm-actions button { font-size:13px; min-height:38px; }
    .quote-option-values span { min-height:38px; padding:7px 11px; }
    .quote-material-price-row input,
    .quote-material-price-row select,
    .quote-operation-price-row input,.quote-operation-price-row select { min-height:40px; font-size:14px; }
    .visual-version-meta,
    .visual-version-note,
    .visual-version-actions .btn,
    .visual-final-banner { font-size:13px; }
    .visual-version-actions .btn { min-height:38px; }
    .audit-item .muted { margin-top:5px; font-size:13px; line-height:1.55; }
    .gpt-home:not(.has-conversation) .gpt-composer textarea { min-height:74px; }
    @media (max-width:760px) {
      .visual-customer-context { grid-template-columns:1fr auto; }
      .visual-customer-context em { grid-column:1 / -1; }
      .home-image-modes { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
      .home-image-mode { min-height:58px; display:block; padding:9px 6px; text-align:center; }
      .home-image-mode-icon,
      .home-image-mode-copy span { display:none; }
      .home-image-mode-copy strong { font-size:11px; }
      .gpt-composer-bar { align-items:stretch; }
      .gpt-left-tools { flex:1 1 auto; }
      .gpt-right-tools { flex:0 0 auto; }
      .gpt-right-tools .gpt-send { min-width:108px; padding:0 12px; }
    }
    /* IMAGE_STUDIO_LAYOUT_BEGIN */
    .home-workbench.image-studio-only .gpt-home,
    .home-workbench.image-studio-only .gpt-home.has-conversation {
      width: min(1240px, 100%);
      min-height: calc(100vh - 132px);
      height: auto;
      display: grid;
      grid-template-columns: minmax(420px, 450px) minmax(0, 1fr);
      align-items: start;
      column-gap: 20px;
      row-gap: 18px;
      margin: 0 auto;
      padding: 24px 0 36px;
      overflow: visible;
    }
    .home-workbench.image-studio-only .gpt-shell,
    .home-workbench.image-studio-only.has-multiple .gpt-shell,
    .home-workbench.image-studio-only .gpt-home.has-conversation .gpt-shell {
      position: static;
      grid-column: 1;
      order: 0;
      z-index: auto;
      left: auto;
      bottom: auto;
      width: 100%;
      margin: 0;
      padding: 0;
      overflow: hidden;
      border: 1px solid #e3e5e9;
      border-radius: 16px;
      background: #fff;
      box-shadow: 0 8px 24px rgba(22,29,37,.055);
      animation: none;
      transform: none;
      pointer-events: auto;
    }
    .home-workbench.image-studio-only .gpt-heading,
    .home-workbench.image-studio-only .gpt-home.has-conversation .gpt-heading {
      display: block;
      margin: 0;
      padding: 20px 22px 17px;
      text-align: left;
    }
    .home-workbench.image-studio-only .gpt-kicker { margin-bottom: 4px; color: #6d7280; font-size: 11px; }
    .home-workbench.image-studio-only .gpt-heading h2 { margin: 0 0 4px; font-size: 24px; line-height: 1.25; }
    .home-workbench.image-studio-only .gpt-heading p { font-size: 12px; line-height: 1.5; }
    .home-workbench.image-studio-only .gpt-result {
      border: 1px solid #e1e3e8;
      border-radius: 16px;
      background: #fff;
      box-shadow: 0 5px 16px rgba(22,29,37,.05);
    }
    .image-studio-upload-card {
      margin: 0;
      padding: 17px 22px 19px;
      border: 0;
      border-top: 1px solid #eef0f3;
      border-bottom: 1px solid #eef0f3;
      border-radius: 0;
      background: #fff;
      box-shadow: none;
    }
    .image-studio-card-head,
    .image-studio-result-head {
      display: grid;
      grid-template-columns: 36px minmax(0,1fr) auto;
      align-items: center;
      gap: 10px;
    }
    .image-studio-card-head strong,
    .image-studio-card-head em,
    .image-studio-result-head strong,
    .image-studio-result-head em { display: block; }
    .image-studio-card-head strong,
    .image-studio-result-head strong { color: #20242c; font-size: 13px; }
    .image-studio-card-head em,
    .image-studio-result-head em { margin-top: 2px; color: #858996; font-size: 10px; font-style: normal; line-height: 1.4; }
    .image-studio-card-head b { color: #777b87; font-size: 12px; font-weight: 700; }
    .image-studio-card-icon {
      width: 36px;
      height: 36px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: #f4f4f6;
      color: #777b87;
      font-size: 17px;
    }
    .image-studio-dropzone {
      min-height: 126px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 7px;
      margin-top: 15px;
      border: 2px dashed #dedfe4;
      border-radius: 14px;
      background: #fbfbfc;
      color: #31353d;
      cursor: pointer;
      padding: 18px;
      text-align: center;
      transition: border-color .18s ease, background .18s ease;
    }
    .image-studio-dropzone:hover { border-color: #aeb2bc; background: #fafafa; }
    .image-studio-upload-card.is-dragging .image-studio-dropzone {
      border-color: #0071e3;
      background: #eef6ff;
      box-shadow: inset 0 0 0 1px rgba(0,113,227,.12);
    }
    .image-studio-upload-card.is-dragging .image-studio-dropzone i { background: #0071e3; color: #fff; }
    .image-studio-dropzone i {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: #f3f3f5;
      color: #707581;
      font-size: 24px;
      font-style: normal;
    }
    .image-studio-dropzone strong { max-width: 100%; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
    .image-studio-dropzone span { color: #858996; font-size: 10px; line-height: 1.45; }
    .image-studio-upload-card.is-disabled .image-studio-dropzone { border-style: solid; background: #f7f7f8; color: #969aa4; cursor: default; pointer-events: none; }
    .image-studio-upload-card .file-preview { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 12px; }
    .home-workbench.image-studio-only .gpt-composer,
    .home-workbench.image-studio-only .gpt-home.has-conversation .gpt-composer {
      display: block;
      padding: 18px 22px 22px;
      border: 0;
      border-radius: 0;
      background: #fff;
      box-shadow: none;
      transform: none;
    }
    .home-workbench.image-studio-only .gpt-composer:focus-within { border-color: transparent; box-shadow: none; transform: none; }
    .image-studio-section-label { margin: 0 0 8px; color: #777b87; font-size: 11px; font-weight: 760; }
    .image-studio-section-label.is-secondary { margin-top: 15px; }
    .home-workbench.image-studio-only .home-image-modes,
    .home-workbench.image-studio-only .gpt-home.has-conversation .home-image-modes { gap: 8px; margin: 0; }
    .home-workbench.image-studio-only .commerce-modes { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .home-workbench.image-studio-only .creative-modes { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .home-workbench.image-studio-only .home-image-mode,
    .home-workbench.image-studio-only .gpt-home.has-conversation .home-image-mode {
      position: relative;
      min-height: 43px;
      display: grid;
      grid-template-columns: 1fr;
      place-items: center;
      gap: 0;
      padding: 8px 9px;
      border: 1px solid #dedfe4;
      border-radius: 12px;
      background: #fff;
      color: #22262e;
      box-shadow: none;
      text-align: center;
      transform: none;
    }
    .home-workbench.image-studio-only .home-image-mode.active,
    .home-workbench.image-studio-only .gpt-home.has-conversation .home-image-mode.active { border-color: #181b22; background: #181b22; color: #fff; }
    .home-workbench.image-studio-only .home-image-mode-copy strong { color: inherit; font-size: 12px; }
    .home-workbench.image-studio-only .home-image-mode.active .home-image-mode-copy strong { color: #fff; }
    .image-studio-new { position:absolute; top:-8px; right:-4px; border-radius:999px; background:#ff4d58; color:#fff; padding:2px 6px; font-size:7px; font-style:normal; font-weight:900; }
    .home-workbench.image-studio-only .home-image-mode-status,
    .home-workbench.image-studio-only .gpt-home.has-conversation .home-image-mode-status {
      display:flex;
      align-items:center;
      flex-wrap:wrap;
      gap:6px;
      margin:14px 0 0;
      color:#747985;
      font-size:10px;
      font-weight:650;
      line-height:1.45;
    }
    .home-workbench.image-studio-only .home-image-mode-status::before { display:none; }
    .home-image-status-chip {
      display:inline-flex;
      align-items:center;
      min-height:24px;
      padding:3px 8px;
      border-radius:999px;
      background:#181b22;
      color:#fff;
      font-size:9px;
      font-weight:820;
    }
    .home-image-status-chip.is-model { background:#eef4fb; color:#1769dc; }
    .home-image-status-hint { flex:1 1 100%; color:#777c87; font-style:normal; }
    .image-studio-field { display:block; min-width:0; }
    .image-studio-field > span { display:block; margin-bottom:7px; color:#727783; font-size:11px; font-weight:760; }
    .image-studio-requirement { margin-top:17px; }
    .image-studio-requirement-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:7px; }
    .image-studio-requirement-head label { color:#727783; font-size:11px; font-weight:760; }
    .image-studio-prompt-assist { min-height:32px; padding:0 12px; border:1px solid #cdd8e3; border-radius:999px; background:#fff; color:var(--blue); font-size:11px; font-weight:850; cursor:pointer; }
    .image-studio-prompt-assist:hover { border-color:#9fb4c8; background:var(--blue-soft); color:var(--blue-dark); }
    .image-studio-prompt-assist:disabled { cursor:wait; opacity:.62; }
    .home-workbench.image-studio-only .gpt-composer textarea,
    .home-workbench.image-studio-only .gpt-home.has-conversation .gpt-composer textarea {
      min-height: 112px;
      max-height: 220px;
      padding: 12px;
      border: 1px solid #dedfe4;
      border-radius: 13px;
      background: #f7f7f8;
      font-size: 12px;
      line-height: 1.55;
      resize: vertical;
    }
    .image-studio-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:15px; }
    .image-studio-options .image-studio-field.is-wide { grid-column:1 / -1; }
    .image-studio-field select {
      width:100%;
      height:42px;
      border:1px solid #dedfe4;
      border-radius:12px;
      background:#f7f7f8;
      color:#292d35;
      padding:0 10px;
      font-size:11px;
      outline:none;
    }
    .home-image-point-cost { margin-top:10px; color:#667085; font-size:10px; font-weight:720; text-align:right; }
    .home-image-point-cost strong { color:#181b22; font-weight:880; }
    .home-workbench.image-studio-only .gpt-composer-bar { justify-content:flex-end; margin-top:17px; padding:0; }
    .home-workbench.image-studio-only .gpt-right-tools { width:100%; }
    .home-workbench.image-studio-only .gpt-right-tools .gpt-send { width:100%; min-height:46px; border-radius:13px; font-size:13px; }
    .home-workbench.image-studio-only .gpt-result,
    .home-workbench.image-studio-only .gpt-result.is-empty,
    .home-workbench.image-studio-only .gpt-home.has-conversation .gpt-result {
      grid-column: 2;
      width:100%;
      min-height:480px;
      max-height:none;
      display:block;
      order:initial;
      margin:0;
      padding:18px;
      overflow:auto;
      scroll-padding-bottom:20px;
      animation:none;
    }
    .image-studio-result-head { position:sticky; z-index:2; top:-18px; margin:-18px -18px 0; padding:18px; border-bottom:1px solid #eceef1; background:rgba(255,255,255,.96); backdrop-filter:blur(10px); }
    .image-studio-result-head { grid-template-columns:36px minmax(0,1fr); }
    .home-workbench.image-studio-only .chat-thread,
    .home-workbench.image-studio-only .gpt-home.has-conversation .chat-thread { width:100%; min-height:390px; margin:0; padding:18px 4px 8px; }
    .home-workbench.image-studio-only .gpt-result:not(.is-empty) { min-height:700px; max-height:calc(100vh - 132px); }
    .home-workbench.image-studio-only .gpt-result:not(.is-empty) .chat-thread { min-height:610px; }
    .home-workbench.image-studio-only .gpt-result.is-empty .chat-thread { display:grid; place-items:center; text-align:center; color:#8a8e98; }
    .home-workbench.image-studio-only .gpt-result.is-empty .output { max-width:520px; margin:0 auto; color:#6f7480; line-height:1.6; }
    .home-workbench.image-studio-only .gpt-result.is-empty .output::before { content:"✦"; width:50px; height:50px; display:grid; place-items:center; margin:0 auto 12px; border-radius:50%; background:#f5f5f6; color:#777b87; font-size:23px; }
    .home-workbench.image-studio-only .gpt-result.is-empty .output::after {
      content:"1  选择图片类型    2  上传素材并填写要求    3  点击生成";
      display:block;
      margin-top:18px;
      padding:11px 14px;
      border-radius:12px;
      background:#f7f8fa;
      color:#747985;
      font-size:10px;
      font-weight:720;
      white-space:normal;
    }
    .home-workbench.image-studio-only .gpt-result .output { font-size:13px; }
    .home-workbench.image-studio-only .home-business-pulse {
      grid-column:1 / -1;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:10px;
      width:100%;
      margin:0;
      padding-top:2px;
    }
    .home-workbench.image-studio-only .home-pulse-item { min-height:82px; border-radius:14px; background:#fff; padding:13px 14px; }
    @media (max-width: 1080px) {
      .home-workbench.image-studio-only .gpt-home,
      .home-workbench.image-studio-only .gpt-home.has-conversation { grid-template-columns:minmax(390px,420px) minmax(0,1fr); column-gap:16px; padding:18px 0 28px; }
      .home-workbench.image-studio-only .home-business-pulse { grid-template-columns:repeat(3,minmax(0,1fr)); }
    }
    @media (max-width: 940px) {
      .home-workbench.image-studio-only .gpt-home,
      .home-workbench.image-studio-only .gpt-home.has-conversation { display:block; width:min(680px,100%); padding:16px 0 28px; }
      .home-workbench.image-studio-only .gpt-result,
      .home-workbench.image-studio-only .gpt-result.is-empty,
      .home-workbench.image-studio-only .gpt-home.has-conversation .gpt-result { grid-column:1; min-height:420px; max-height:none; margin-top:16px; }
      .home-workbench.image-studio-only .chat-thread,
      .home-workbench.image-studio-only .gpt-home.has-conversation .chat-thread { min-height:330px; }
      .home-workbench.image-studio-only .home-business-pulse { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:16px; }
    }
    @media (max-width: 520px) {
      .home-workbench.image-studio-only .gpt-home,
      .home-workbench.image-studio-only .gpt-home.has-conversation { padding-top:8px; }
      .home-workbench.image-studio-only .gpt-result { border-radius:17px; }
      .home-workbench.image-studio-only .gpt-shell { border-radius:15px; }
      .image-studio-upload-card { padding:15px; }
      .home-workbench.image-studio-only .gpt-composer { padding:15px; }
      .image-studio-dropzone { min-height:150px; }
      .image-studio-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .image-studio-options .image-studio-field.is-wide { grid-column:1 / -1; }
      .home-workbench.image-studio-only .commerce-modes { grid-template-columns:repeat(3,minmax(0,1fr)); }
      .home-workbench.image-studio-only .creative-modes { grid-template-columns:repeat(2,minmax(0,1fr)); }
    }
    /* IMAGE_STUDIO_LAYOUT_END */
    /* HOME_COMMAND_CENTER_BEGIN: one-page daily workbench for first-time factory users. */
    .home-command-page { max-width:1180px; margin:0 auto; }
    .home-command-center { display:grid; gap:12px; padding-bottom:24px; }
    .home-command-lead {
      min-height:88px;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:22px;
      padding:18px 20px;
      border:1px solid #cfdbe6;
      border-radius:17px;
      background:linear-gradient(135deg,#edf3f8 0%,#fff 72%);
      box-shadow:var(--shadow);
    }
    .home-command-lead-copy span,
    .home-command-lead-copy strong,
    .home-command-lead-copy em { display:block; }
    .home-command-lead-copy span { color:var(--blue); font-size:11px; font-weight:850; letter-spacing:.04em; }
    .home-command-lead-copy strong { margin-top:5px; color:var(--ink); font-size:20px; line-height:1.25; }
    .home-command-lead-copy em { margin-top:5px; color:var(--muted); font-size:11px; font-style:normal; }
    .home-command-lead .btn { min-width:112px; min-height:42px; padding:10px 16px; }
    .home-command-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .home-command-metric {
      min-height:82px;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      grid-template-rows:auto auto;
      align-items:center;
      column-gap:14px;
      padding:13px 16px;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      box-shadow:var(--shadow);
      cursor:pointer;
    }
    .home-command-metric span,
    .home-command-metric strong,
    .home-command-metric em { display:block; }
    .home-command-metric span { color:var(--ink); font-size:12px; font-weight:800; }
    .home-command-metric strong { grid-column:2; grid-row:1 / 3; color:var(--ink); font-size:27px; line-height:1; }
    .home-command-metric em { margin-top:4px; color:#7a8593; font-size:10px; font-style:normal; line-height:1.35; }
    .home-command-metric:hover { border-color:#b8c7d5; background:var(--surface-subtle); }
    .home-command-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); gap:12px; align-items:stretch; }
    .home-command-card { padding:16px; }
    .home-command-card-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
    .home-command-card-head span,
    .home-command-card-head strong { display:block; }
    .home-command-card-head span { color:var(--ink); font-size:14px; font-weight:850; }
    .home-command-card-head strong { margin-top:3px; color:var(--muted); font-size:10px; font-weight:600; }
    .home-command-more { flex:0 0 auto; border:0; background:transparent; color:var(--blue); padding:7px 0; font-size:10px; font-weight:800; cursor:pointer; }
    .home-command-more:hover { color:var(--blue-dark); }
    .home-command-today .home-daily-brief { margin:0; border-radius:12px; box-shadow:none; }
    .home-command-today .home-daily-head { display:none; }
    .home-command-list { display:grid; gap:7px; }
    .home-command-customer {
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:12px;
      min-height:54px;
      padding:8px 10px;
      border:1px solid #e5e9ee;
      border-radius:11px;
      background:var(--surface-subtle);
    }
    .home-command-customer strong,
    .home-command-customer span { display:block; }
    .home-command-customer strong { color:var(--ink); font-size:12px; }
    .home-command-customer span { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.4; }
    .home-command-customer-actions button { min-width:64px; min-height:30px; border:1px solid var(--ink); border-radius:8px; background:var(--ink); color:#fff; padding:5px 9px; font-size:10px; font-weight:800; cursor:pointer; }
    .home-command-empty { min-height:92px; display:grid; place-items:center; padding:15px; border:1px dashed #d6dde5; border-radius:12px; background:var(--surface-subtle); color:var(--muted); font-size:11px; text-align:center; line-height:1.6; }
    .home-command-pipeline-card { padding-bottom:14px; }
    .home-command-pipeline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
    .home-command-stage {
      min-width:0; min-height:72px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-content:center;
      gap:5px 8px; border:1px solid #e1e6eb; border-radius:11px; background:var(--surface-subtle);
      color:var(--ink); padding:11px 12px; text-align:left; cursor:pointer;
    }
    .home-command-stage:hover { border-color:#b8c7d5; background:var(--blue-soft); }
    .home-command-stage span,.home-command-stage strong,.home-command-stage em { display:block; }
    .home-command-stage span { font-size:10px; font-weight:800; }
    .home-command-stage strong { grid-column:2; grid-row:1 / 3; align-self:center; font-size:21px; line-height:1; }
    .home-command-stage em { color:var(--muted); font-size:9px; font-style:normal; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .home-command-lower { grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); }
    .home-command-business { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
    .home-command-business-item { min-width:0; min-height:70px; display:flex; flex-direction:column; justify-content:center; gap:4px; border:1px solid #e2e7ec; border-radius:11px; background:var(--surface-subtle); padding:10px 11px; }
    .home-command-business-item span,.home-command-business-item strong,.home-command-business-item em { display:block; }
    .home-command-business-item span { color:var(--muted); font-size:9px; font-weight:750; }
    .home-command-business-item strong { color:var(--ink); font-size:16px; line-height:1.2; }
    .home-command-business-item em { color:var(--muted); font-size:8px; font-style:normal; line-height:1.35; }
    .home-command-source { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; color:var(--muted); font-size:9px; line-height:1.4; }
    .home-command-source button { border:0; background:transparent; color:var(--blue); padding:4px 0; font-size:9px; font-weight:800; cursor:pointer; }
    /* 首页与报价、跟单、生产页共用同一套中文 UI 字体和标准字重。 */
    .home-command-page,
    .home-command-page button,
    .home-command-page input,
    .home-command-page select,
    .home-command-page textarea {
      font-family: inherit;
    }
    .home-command-lead-copy span { font-size:12px; font-weight:600; letter-spacing:0; }
    .home-command-lead-copy strong { font-size:19px; font-weight:700; }
    .home-command-lead-copy em { font-size:12px; font-weight:400; }
    .home-command-metric span { font-size:13px; font-weight:600; }
    .home-command-metric strong { font-weight:700; }
    .home-command-metric em { font-size:12px; font-weight:400; }
    .home-command-card-head span { font-size:15px; font-weight:700; }
    .home-command-card-head strong { font-size:12px; font-weight:400; }
    .home-command-more { font-size:12px; font-weight:600; }
    .home-command-customer strong { font-size:13px; font-weight:600; }
    .home-command-customer span { font-size:12px; }
    .home-command-customer-actions button { font-size:12px; font-weight:600; }
    .home-command-empty { font-size:12px; }
    .home-command-stage span { font-size:12px; font-weight:600; }
    .home-command-stage strong { font-weight:700; }
    .home-command-stage em { font-size:11px; }
    .home-command-business-item span { font-size:11px; font-weight:500; }
    .home-command-business-item strong { font-size:18px; font-weight:700; }
    .home-command-business-item em { font-size:10px; }
    .home-command-source { font-size:11px; }
    .home-command-source button { font-size:11px; font-weight:600; }
    @media (max-width:1050px) {
      .home-command-grid { grid-template-columns:1fr; }
      .home-command-lower { grid-template-columns:1fr; }
    }
    @media (max-width:720px) {
      .home-command-lead { grid-template-columns:1fr; gap:12px; }
      .home-command-lead .btn { width:100%; }
      .home-command-metrics { grid-template-columns:1fr; }
      .home-command-metric { min-height:72px; padding:12px 14px; }
      .home-command-metric strong { font-size:22px; }
      .home-command-pipeline { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .home-command-card { padding:15px; }
      .home-command-card-head { align-items:flex-start; }
    }
    @media (max-width:520px) {
      .home-command-pipeline { grid-template-columns:1fr; }
      .home-command-business { grid-template-columns:1fr; }
    }
    /* HOME_COMMAND_CENTER_END */
    /* APP_TONE_SYSTEM_BEGIN: one restrained palette across home, tasks, quotes and reports. */
    :root {
      --page: #f4f6f8;
      --panel: #ffffff;
      --panel-strong: #ffffff;
      --text: #182230;
      --ink: #182230;
      --muted: #667085;
      --line: #dfe4ea;
      --blue: #315f8f;
      --blue-dark: #274c73;
      --blue-soft: #eef3f8;
      --green: #287454;
      --orange: #996515;
      --red: #b23b35;
      --shadow: 0 8px 24px rgba(24,34,48,.055);
      --radius: 14px;
      --surface-subtle: #f7f8fa;
      --surface-tint: #f1f5f8;
    }
    body {
      color: var(--text);
      background: linear-gradient(180deg, #f7f8fa 0, var(--page) 210px);
    }
    .sidebar {
      border-color: var(--line);
      background: rgba(255,255,255,.92);
    }
    .nav button { color:#667085; }
    .nav button.active {
      background: var(--ink);
      color: #fff;
      box-shadow: 0 6px 16px rgba(24,34,48,.14);
    }
    .nav button:not(.active):hover { background:var(--blue-soft); color:var(--blue); box-shadow:none; }
    .header h1,
    .card-title,
    .business-report-intro strong,
    .business-report-hero strong { color:var(--ink); }
    .page-back,
    .header-alert-button,
    .badge { border-color:var(--line); background:#fff; color:var(--blue); box-shadow:0 4px 14px rgba(24,34,48,.035); }
    .page-back:hover,
    .header-alert-button:hover,
    .badge:hover { border-color:#bcc9d6; background:var(--blue-soft); color:var(--blue-dark); }
    .service-badge { border-color:#cfe1d7; background:#f3f8f5; color:var(--green); }
    .card,
    .home-workbench.image-studio-only .gpt-shell,
    .home-workbench.image-studio-only .gpt-result,
    .business-report-toolbar,
    .business-report-panel,
    .business-report-metric {
      border-color: var(--line);
      background: var(--panel);
      box-shadow: var(--shadow);
    }
    textarea,
    input,
    select,
    .task-search input,
    .image-studio-field select {
      border-color:#d9dfe6;
      background:#fbfcfd;
      color:var(--ink);
    }
    textarea:focus,
    input:focus,
    select:focus,
    .task-search input:focus {
      border-color:#8fa8bf;
      box-shadow:0 0 0 4px rgba(49,95,143,.1);
    }
    .btn,
    .btn.dark,
    .gpt-send { background:var(--ink); color:#fff; box-shadow:0 7px 18px rgba(24,34,48,.13); }
    .btn:hover,
    .btn.dark:hover,
    .gpt-send:hover { background:#101925; }
    .btn.light { border-color:var(--line); background:#fff; color:var(--blue); box-shadow:0 3px 10px rgba(24,34,48,.025); }
    .btn.light:hover { border-color:#bcc9d6; background:var(--blue-soft); color:var(--blue-dark); }
    .status { background:var(--blue-soft); color:var(--blue); }
    .status.warn { background:#fbf4e8; color:var(--orange); }
    .status.done { background:#eef7f1; color:var(--green); }
    .status.danger { background:#fbefee; color:var(--red); }
    /* Home uses the same navy primary and blue-grey supporting tone. */
    .home-workbench.image-studio-only .gpt-kicker {
      border-color:#cdd9e4;
      background:var(--blue-soft);
      color:var(--blue);
    }
    .image-studio-card-icon,
    .home-workbench.image-studio-only .gpt-result.is-empty .output::before { background:var(--surface-tint); color:var(--blue); }
    .image-studio-upload-card { border-color:#e8ebef; }
    .image-studio-dropzone,
    .home-workbench.image-studio-only .gpt-composer textarea,
    .home-workbench.image-studio-only .gpt-result.is-empty .output::after { border-color:#d9dfe6; background:var(--surface-subtle); }
    .home-workbench.image-studio-only .home-image-mode { border-color:#d9dfe6; color:var(--ink); }
    .home-workbench.image-studio-only .home-image-mode:hover { border-color:#aebdcb; background:var(--blue-soft); }
    .home-workbench.image-studio-only .home-image-mode.active,
    .home-workbench.image-studio-only .gpt-home.has-conversation .home-image-mode.active { border-color:var(--ink); background:var(--ink); color:#fff; }
    .home-image-status-chip { background:var(--ink); }
    .home-image-status-chip.is-model { background:var(--blue-soft); color:var(--blue); }
    .home-workbench.image-studio-only .gpt-right-tools .gpt-send { background:var(--ink); }
    /* Task tracking: blue-grey for selection, semantic colors only for real status. */
    .task-reminder-summary,
    .task-reminder-summary.is-overdue { border-color:#cbd8e4; background:var(--blue-soft); color:#425b73; }
    .task-priority-badge { background:var(--blue-soft); color:var(--blue); }
    .task-phase-tabs button { border-color:var(--line) !important; background:#fff; color:#667085; }
    .task-phase-tabs button:hover { border-color:#bcc9d6 !important; background:var(--surface-subtle); color:var(--ink); }
    .task-phase-tabs button.active {
      border-color:#9fb4c8 !important;
      background:var(--blue-soft) !important;
      color:var(--blue-dark) !important;
      box-shadow:inset 0 0 0 1px rgba(49,95,143,.08), 0 6px 16px rgba(24,34,48,.045);
    }
    .task-studio-page table { border-color:var(--line); background:#fff; }
    .task-studio-page th { background:#f5f7f9; color:#667085; }
    .task-studio-page tr:hover td { background:#f8fafb; }
    .task-progress-track span,
    .production-progress-track span { background:linear-gradient(90deg,var(--blue-dark),#6e95b8); }
    /* Quote workspace: informational panels stop looking like warnings. */
    .quote-guide-card { border-color:var(--line); background:#fff; }
    .quote-guide-kicker,
    .quote-result-step { color:var(--blue); }
    #quoteCostWarning {
      border-color:#cbd8e4;
      background:var(--blue-soft);
      color:#425b73;
    }
    .quote-customer-strip,
    .quote-catalog-builder { border-color:#d9e2ea; background:linear-gradient(180deg,#fbfcfd,var(--surface-subtle)); }
    .quote-catalog-count { background:var(--blue-soft); color:var(--blue); }
    .quote-category-tabs button { border-color:var(--line); color:#667085; }
    .quote-category-tabs button:hover { border-color:#b8c7d5; background:var(--blue-soft); color:var(--blue); }
    .quote-category-tabs button.active { border-color:var(--ink); background:var(--ink); color:#fff; }
    .quote-category-tabs button.quote-category-manage { border-color:#bdcddd; background:var(--blue-soft); color:var(--blue-dark); }
    .quote-product-picker button.active,
    .quote-option-values span.active { border-color:#9fb4c8; background:var(--blue-soft); color:var(--blue-dark); box-shadow:none; }
    .quote-flow-heading > span { background:var(--ink); }
    /* Reports share the same surfaces and accent instead of a separate blue theme. */
    .business-report-intro span,
    .business-report-hero span { color:var(--blue); }
    .business-report-tabs { background:#edf1f4; }
    .business-report-tabs button { color:#667085; }
    .business-report-tabs button.active { background:#fff; color:var(--blue-dark); box-shadow:0 3px 10px rgba(24,34,48,.08); }
    .business-report-hero {
      border-color:#d6e0e8;
      background:linear-gradient(135deg,var(--blue-soft),#fff 64%);
    }
    .business-report-period { border:1px solid #e2e7ec; background:rgba(255,255,255,.88); }
    .business-report-metric span,
    .business-report-metric em,
    .business-report-panel-head span,
    .business-report-row-copy span,
    .business-report-empty,
    .business-report-action span { color:#718096; }
    .business-report-action { background:var(--surface-subtle); }
    /* PRINT_PRODUCTION_CENTER_BEGIN */
    .production-center-page { max-width:1560px; margin:0 auto; }
    .production-center-shell { display:grid; gap:14px; }
    .production-center-toolbar {
      display:flex; align-items:center; justify-content:space-between; gap:18px;
      padding:20px 22px; border:1px solid var(--line); border-radius:20px; background:#fff;
      box-shadow:0 12px 34px rgba(24,34,48,.055);
    }
    .production-center-heading { min-width:0; }
    .production-center-heading span { display:block; margin-bottom:5px; color:var(--blue); font-size:12px; font-weight:850; letter-spacing:.08em; }
    .production-center-heading strong { display:block; color:var(--ink); font-size:24px; line-height:1.25; }
    .production-center-heading em { display:block; margin-top:6px; color:#718096; font-size:13px; font-style:normal; }
    .production-center-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
    .production-center-metrics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
    .production-metric {
      position:relative; width:100%; min-width:0; appearance:none; padding:16px 17px; border:1px solid var(--line); border-radius:16px; background:#fff;
      color:inherit; font:inherit; text-align:left; box-shadow:0 8px 24px rgba(24,34,48,.035); cursor:pointer;
      transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
    }
    .production-metric::after { position:absolute; right:16px; bottom:15px; color:#55718f; font-size:10px; font-weight:850; content:"进入 →"; }
    .production-metric:hover { transform:translateY(-1px); border-color:#b7cadc; box-shadow:0 11px 28px rgba(24,34,48,.075); }
    .production-metric:focus-visible { outline:3px solid rgba(32,113,229,.22); outline-offset:2px; border-color:#87b5ed; }
    .production-metric:active { transform:translateY(0); }
    .production-metric span { display:block; color:#718096; font-size:12px; font-weight:750; }
    .production-metric strong { display:block; margin-top:7px; color:var(--ink); font-size:25px; line-height:1; }
    .production-metric em { display:block; margin-top:7px; padding-right:52px; overflow:hidden; color:#8a94a3; font-size:11px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
    .production-metric.is-risk { border-color:#ead7cb; background:#fffaf6; }
    .production-metric.is-risk strong { color:#a5522f; }
    .production-metric.is-risk::after { color:#a5522f; }
    .production-board-card { padding:18px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(24,34,48,.045); }
    .production-board-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:14px; }
    .production-board-title strong { display:block; color:var(--ink); font-size:17px; }
    .production-board-title span { display:block; margin-top:5px; color:#7a8696; font-size:12px; }
    .production-board-filters { display:flex; align-items:center; gap:8px; }
    .production-board-filters input,
    .production-board-filters select { min-height:38px; padding:0 12px; border:1px solid var(--line); border-radius:11px; background:#f8fafb; color:var(--ink); font-size:12px; }
    .production-board-filters input { width:230px; }
    .production-example-note {
      display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; padding:10px 12px;
      border:1px solid #d8e3ed; border-radius:12px; background:var(--blue-soft); color:#526579; font-size:12px;
    }
    .production-example-note strong { color:var(--blue-dark); }
    .production-kanban { display:grid; grid-template-columns:repeat(5,minmax(210px,1fr)); gap:10px; overflow-x:auto; padding-bottom:3px; }
    .production-lane { min-width:210px; padding:10px; border:1px solid #e2e7ec; border-radius:15px; background:#f6f8fa; }
    .production-lane.is-focus-target,
    .production-support-card.is-focus-target { border-color:#62a0eb; box-shadow:0 0 0 4px rgba(32,113,229,.12),0 12px 30px rgba(24,34,48,.08); }
    .production-lane:focus-visible,
    .production-support-card:focus-visible { outline:3px solid rgba(32,113,229,.2); outline-offset:3px; }
    .production-lane-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:30px; margin-bottom:9px; }
    .production-lane-head strong { display:flex; align-items:center; gap:7px; color:#3e4b5a; font-size:13px; }
    .production-lane-head strong::before { width:7px; height:7px; border-radius:50%; background:#7b8a9a; content:""; }
    .production-lane[data-stage="印刷"] .production-lane-head strong::before { background:var(--blue); }
    .production-lane[data-stage="后道加工"] .production-lane-head strong::before { background:#7667a8; }
    .production-lane[data-stage="质检交付"] .production-lane-head strong::before { background:#378368; }
    .production-lane-head span { min-width:24px; padding:3px 7px; border-radius:99px; background:#e7ebef; color:#667085; font-size:11px; font-weight:800; text-align:center; }
    .production-lane-list { display:grid; align-content:start; gap:8px; min-height:224px; }
    .production-work-card {
      width:100%; padding:12px; border:1px solid #dde4ea; border-radius:13px; background:#fff; color:inherit; text-align:left;
      box-shadow:0 6px 16px rgba(24,34,48,.045); cursor:pointer; transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
    }
    .production-work-card:hover { transform:translateY(-1px); border-color:#b9cad9; box-shadow:0 9px 22px rgba(24,34,48,.075); }
    .production-work-card.is-demo { cursor:default; }
    .production-work-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .production-work-top span { overflow:hidden; color:#667085; font-size:10px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
    .production-work-top em { flex:none; padding:2px 6px; border-radius:7px; background:#eef2f5; color:#6f7c8c; font-size:9px; font-style:normal; font-weight:850; }
    .production-work-card h3 { margin:8px 0 3px; overflow:hidden; color:var(--ink); font-size:14px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
    .production-work-card p { margin:0; overflow:hidden; color:#7a8696; font-size:11px; line-height:1.45; text-overflow:ellipsis; white-space:nowrap; }
    .production-work-current { margin-top:10px; padding:8px 9px; border-radius:9px; background:#f4f7f9; }
    .production-work-current span { display:block; color:#8893a1; font-size:9px; font-weight:800; }
    .production-work-current strong { display:block; margin-top:3px; overflow:hidden; color:#405062; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
    .production-progress-track { height:5px; margin-top:9px; overflow:hidden; border-radius:99px; background:#e8edf1; }
    .production-progress-track span { display:block; height:100%; border-radius:inherit; background:var(--blue); }
    .production-work-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; color:#7d8998; font-size:10px; }
    .production-work-meta .is-risk { color:#a5522f; font-weight:800; }
    .production-lane-empty { display:grid; place-items:center; min-height:102px; padding:12px; border:1px dashed #d5dce3; border-radius:11px; color:#9aa4b1; font-size:11px; text-align:center; }
    .production-support-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .production-support-card { min-width:0; padding:17px; border:1px solid var(--line); border-radius:17px; background:#fff; }
    .production-support-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:12px; }
    .production-support-head strong { display:block; color:var(--ink); font-size:14px; }
    .production-support-head span { display:block; margin-top:3px; color:#8a94a3; font-size:10px; }
    .production-support-head em { flex:none; padding:4px 7px; border-radius:8px; background:#f0f3f6; color:#718096; font-size:9px; font-style:normal; font-weight:800; }
    .production-support-list { display:grid; gap:8px; }
    .production-support-row { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; padding:9px 10px; border:0; border-radius:10px; background:#f7f9fa; color:inherit; text-align:left; }
    .production-support-row strong { overflow:hidden; color:#465465; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
    .production-support-row span { color:#718096; font-size:10px; }
    .production-support-row .production-load-bar { grid-column:1 / -1; height:4px; overflow:hidden; border-radius:99px; background:#e5eaee; }
    .production-load-bar i { display:block; height:100%; border-radius:inherit; background:#718ba4; }
    .production-support-empty { padding:15px 10px; border:1px dashed #d9e0e6; border-radius:10px; color:#8b96a3; font-size:11px; line-height:1.6; text-align:center; }
    @media (max-width:1180px) {
      .production-center-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
      .production-support-grid { grid-template-columns:1fr 1fr; }
      .production-support-card:first-child { grid-column:auto; }
    }
    @media (max-width:760px) {
      .production-center-toolbar,.production-board-head { align-items:stretch; flex-direction:column; }
      .production-center-actions { justify-content:flex-start; }
      .production-center-metrics { grid-template-columns:1fr 1fr; }
      .production-board-filters { align-items:stretch; flex-direction:column; }
      .production-board-filters input { width:100%; }
      .production-support-grid { grid-template-columns:1fr; }
      .production-support-card:first-child { grid-column:auto; }
      .factory-flow { grid-template-columns:repeat(3,minmax(0,1fr)); }
      .factory-flow-item:nth-child(3n)::after,.factory-flow-item:last-child::after { display:none; }
      .factory-operations-editors { grid-template-columns:1fr; }
      .factory-profit-strip { grid-template-columns:1fr 1fr; }
      .factory-payment-entry,.factory-shipment-entry,.factory-after-sales-entry { grid-template-columns:1fr; }
    }
    /* PRINT_PRODUCTION_CENTER_END */
    /* APP_TONE_SYSTEM_END */
    /* FORMAL_ACCOUNT_GATE_BEGIN */
    body.auth-required { overflow:hidden; }
    .auth-gate {
      position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:22px;
      background:linear-gradient(145deg,rgba(238,243,248,.98),rgba(255,255,255,.99));
      backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    }
    .auth-gate.is-hidden { display:none; }
    .auth-card {
      width:min(100%,460px); max-height:min(92vh,760px); overflow:auto; padding:30px;
      border:1px solid #dbe2e8; border-radius:22px; background:#fff;
      box-shadow:0 34px 100px rgba(24,34,48,.18);
    }
    .auth-brand { display:flex; align-items:center; gap:12px; margin-bottom:22px; }
    .auth-brand img { width:42px; height:42px; border-radius:11px; box-shadow:0 8px 22px rgba(0,91,200,.2); }
    .auth-brand strong,.auth-brand span { display:block; }
    .auth-brand strong { color:#182230; font-size:17px; }
    .auth-brand span { margin-top:4px; color:#7a8696; font-size:11px; }
    .auth-card h2 { margin:0; color:#182230; font-size:27px; line-height:1.2; }
    .auth-card > p { margin:9px 0 20px; color:#718096; font-size:13px; line-height:1.65; }
    .auth-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; margin-bottom:18px; padding:4px; border-radius:12px; background:#eef2f5; }
    .auth-tabs button { min-height:38px; border:0; border-radius:9px; background:transparent; color:#667085; font-size:12px; font-weight:800; }
    .auth-tabs button.active { background:#fff; color:#182230; box-shadow:0 4px 12px rgba(24,34,48,.08); }
    .auth-fields { display:grid; gap:13px; }
    .auth-fields.is-hidden { display:none; }
    .auth-field span { display:block; margin-bottom:6px; color:#465465; font-size:11px; font-weight:800; }
    .auth-field input { width:100%; min-height:46px; padding:0 13px; border:1px solid #d9dfe6; border-radius:11px; background:#fbfcfd; font-size:14px; }
    .auth-field input:focus { outline:0; border-color:#8fa8bf; box-shadow:0 0 0 4px rgba(49,95,143,.1); }
    .auth-code-row { display:grid; grid-template-columns:minmax(0,1fr) 128px; gap:8px; align-items:end; }
    .auth-code-row .auth-field { min-width:0; }
    .auth-code-button { min-height:46px; padding:0 12px; border:1px solid #b9c9d8; border-radius:11px; background:#f4f8fb; color:#315f8f; font-size:11px; font-weight:850; }
    .auth-code-button:disabled { opacity:.55; cursor:not-allowed; }
    .auth-secondary-action { width:max-content; margin-left:auto; padding:2px 0; border:0; background:transparent; color:#315f8f; font-size:11px; font-weight:800; }
    .auth-legal-consent { display:grid; grid-template-columns:18px 1fr; gap:8px; align-items:start; color:#667384; font-size:10px; line-height:1.55; }
    .auth-legal-consent input { width:16px; height:16px; margin:1px 0 0; }
    .auth-legal-consent a { color:#315f8f; font-weight:750; text-decoration:none; }
    .auth-submit { width:100%; min-height:46px; margin-top:17px; border:0; border-radius:11px; background:#182230; color:#fff; font-size:13px; font-weight:850; }
    .auth-submit:disabled { opacity:.6; cursor:wait; }
    .auth-message { min-height:20px; margin-top:12px; color:#a5522f; font-size:11px; line-height:1.55; }
    .auth-trust { margin-top:16px; padding-top:14px; border-top:1px solid #edf0f2; color:#8792a0; font-size:10px; line-height:1.6; }
    .account-security { grid-column:1 / -1; margin-top:10px; padding-top:10px; border-top:1px solid #e7ebef; }
    .account-security summary { color:#315f8f; font-size:11px; font-weight:800; cursor:pointer; }
    .account-security-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
    .account-security-fields input { width:100%; min-width:0; }
    .account-security-actions { display:flex; gap:8px; margin-top:9px; }
    @media (max-width:760px) {
      .auth-card { padding:24px 20px; border-radius:18px; }
      .auth-card h2 { font-size:23px; }
      .auth-code-row { grid-template-columns:minmax(0,1fr) 112px; }
      .account-security-fields { grid-template-columns:1fr; }
      .member-payment-output { min-width:0; max-width:none; }
      .member-payment-qr { flex-direction:column; align-items:flex-start; }
      .member-payment-qr img { width:min(148px, 60vw); height:min(148px, 60vw); align-self:center; }
    }
    /* FORMAL_ACCOUNT_GATE_END */
    /* MAIN_NAV_CLARITY_BEGIN: active page must remain obvious after the pointer leaves. */
    .nav button {
      transition: background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
    }
    .nav button.active {
      background: #1769dc !important;
      color: #fff !important;
      box-shadow: 0 7px 18px rgba(23,105,220,.28) !important;
    }
    .nav button.active:hover {
      background: #0d58c5 !important;
      color: #fff !important;
      transform: translateY(-1px);
    }
    .nav button:focus-visible {
      outline: 3px solid rgba(23,105,220,.28);
      outline-offset: 3px;
    }
    /* MAIN_NAV_CLARITY_END */
