._content_bu4lj_1 {
  white-space: normal;
  overflow-wrap: anywhere;
}

._content_bu4lj_1 > :first-child { margin-top: 0; }
._content_bu4lj_1 > :last-child { margin-bottom: 0; }
._content_bu4lj_1 p { margin: 0 0 .7em; }
._content_bu4lj_1 h1, ._content_bu4lj_1 h2, ._content_bu4lj_1 h3, ._content_bu4lj_1 h4, ._content_bu4lj_1 h5, ._content_bu4lj_1 h6 {
  margin: 1em 0 .45em;
  line-height: 1.35;
  font-weight: 700;
}
._content_bu4lj_1 h1 { font-size: 1.35em; }
._content_bu4lj_1 h2 { font-size: 1.22em; }
._content_bu4lj_1 h3 { font-size: 1.1em; }
._content_bu4lj_1 ul, ._content_bu4lj_1 ol { margin: .45em 0 .75em; padding-left: 1.35em; }
._content_bu4lj_1 li + li { margin-top: .22em; }
._content_bu4lj_1 blockquote {
  margin: .65em 0;
  padding-left: .8em;
  border-left: 3px solid currentColor;
  opacity: .82;
}
._content_bu4lj_1 pre {
  margin: .65em 0;
  padding: .7em .85em;
  overflow-x: auto;
  border-radius: 8px;
  background: rgba(0, 0, 0, .07);
  white-space: pre;
}
._content_bu4lj_1 code {
  padding: .1em .3em;
  border-radius: 4px;
  background: rgba(0, 0, 0, .07);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .9em;
}
._content_bu4lj_1 pre code { padding: 0; background: transparent; }
._content_bu4lj_1 a { color: inherit; text-decoration: underline; }
._content_bu4lj_1 hr { margin: .8em 0; border: 0; border-top: 1px solid currentColor; opacity: .25; }
._entry_1fh0u_1 { width: 100%; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 10px; border: 0; border-radius: 8px; background: transparent; color: var(--c-text); font: inherit; text-align: left; }
._entry_1fh0u_1:hover:not(:disabled) { background: var(--c-green-light); }
._entry_1fh0u_1:focus-visible { outline: 2px solid var(--c-green); outline-offset: -2px; }
._entry_1fh0u_1:disabled { cursor: default; opacity: .65; }
._entryIcon_1fh0u_5 { color: var(--c-green); flex: none; }
._entryText_1fh0u_6 { flex: 1; min-width: 0; display: grid; gap: 2px; }
._entryText_1fh0u_6 > span { font-size: var(--fs-sm); }
._entryText_1fh0u_6 small { color: #748379; font-size: var(--fs-xs); overflow-wrap: anywhere; }
._entryArrow_1fh0u_9 { color: var(--c-muted); flex: none; }
._sidebarEntry_1fh0u_10 { flex-shrink: 0; margin-top: 6px; border-top: 1px solid var(--c-line-soft); }
._entryCollapsed_1fh0u_11 { justify-content: center; min-height: 40px; padding: 9px; }
._entryCollapsed_1fh0u_11 ._entryText_1fh0u_6, ._entryCollapsed_1fh0u_11 ._entryArrow_1fh0u_9 { display: none; }
._profileEntry_1fh0u_13 { display: none; }
._notice_1fh0u_14 { position: fixed; right: 20px; bottom: calc(var(--compliance-footer-h, 34px) + 16px); z-index: 11000; max-width: min(420px, calc(100vw - 32px)); display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid #dce7df; border-radius: 10px; background: var(--c-surface); box-shadow: var(--shadow-pop); color: #52665a; font-size: 12px; line-height: 1.65; }
._notice_1fh0u_14 > button { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; min-height: 28px; flex: none; padding: 0; margin: -4px -5px -4px 0; background: transparent; color: #748379; border-radius: 5px; }
._notice_1fh0u_14 > button:focus-visible { outline: 2px solid var(--c-green); }
@media (max-width: 768px) {
  ._sidebarEntry_1fh0u_10 { display: none; }
  ._profileEntry_1fh0u_13 { display: flex; min-height: 76px; padding: 16px; gap: 12px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 16px; box-shadow: var(--shadow-card); }
  ._profileEntry_1fh0u_13 ._entryText_1fh0u_6 > span { font-size: 15px; font-weight: 600; }
  ._profileEntry_1fh0u_13 ._entryText_1fh0u_6 small { font-size: 12px; }
  ._notice_1fh0u_14 { right: 12px; bottom: calc(68px + var(--compliance-footer-h, 38px) + 12px); max-width: calc(100vw - 24px); }
  ._notice_1fh0u_14 > button { min-width: 44px; min-height: 44px; margin-top: -8px; margin-bottom: -8px; }
}
._overlay_1fh0u_25 { position: fixed; inset: 0; z-index: 12000; background: rgba(27, 35, 30, .22); display: flex; justify-content: flex-end; }
._panel_1fh0u_26 { width: 464px; max-width: 100%; height: 100dvh; background: var(--c-surface); color: var(--c-text); box-shadow: -5px 0 24px #18282012; border-left: 1px solid var(--c-line); display: flex; flex-direction: column; font-size: 13px; line-height: 1.65; }
._panel_1fh0u_26 button { font: inherit; }
._panel_1fh0u_26 button:focus-visible, ._panel_1fh0u_26 summary:focus-visible { outline: 2px solid var(--c-green); outline-offset: 3px; }
._header_1fh0u_29 { min-height: 65px; margin: 0 24px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--c-line); flex-shrink: 0; }
._header_1fh0u_29 h2 { font-size: 16px; font-weight: 600; color: #202823; }
._iconButton_1fh0u_31 { display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; padding: 0; flex-shrink: 0; border-radius: 8px; background: transparent; color: #737c76; }
._header_1fh0u_29 ._iconButton_1fh0u_31 { margin-right: -12px; }
._iconButton_1fh0u_31:hover, ._recordButton_1fh0u_33:hover, ._rulesButton_1fh0u_33:hover { background: #f6f8f6; }
._iconButton_1fh0u_31:disabled { opacity: .45; cursor: wait; }
._scrollArea_1fh0u_35 { padding: 21px 24px 20px; overflow-y: auto; overscroll-behavior: contain; flex: 1; min-height: 0; scrollbar-gutter: stable; }
._eyebrow_1fh0u_36 { color: #505b54; font-size: 14px; }
._eyebrow_1fh0u_36 span { margin-left: 6px; color: #828982; font-size: 13px; }
._balance_1fh0u_38 { display: flex; align-items: baseline; gap: 7px; margin: 11px 0 12px; white-space: nowrap; }
._balance_1fh0u_38 strong { font-size: 58px; line-height: 1.18; font-weight: 600; letter-spacing: -2px; font-variant-numeric: tabular-nums; color: var(--c-green); margin-right: 2px; }
._balance_1fh0u_38 > span { font-size: 16px; }
._balance_1fh0u_38 ._allowance_1fh0u_41 { color: #838a84; font-size: 14px; margin-left: 3px; }
._infinity_1fh0u_42 { width: 66px; height: 66px; color: var(--c-green); align-self: center; stroke-width: 1.7; }
._progress_1fh0u_43 { display: flex; width: 100%; height: 10px; border-radius: 8px; background: #eff0ee; overflow: hidden; }
._progress_1fh0u_43 > span { display: block; background: var(--c-green); border-radius: 8px; }
._progress_1fh0u_43 > ._reserved_1fh0u_45 { background: #c3d6c8; border-radius: 0; }
._quotaMeta_1fh0u_46 { display: flex; justify-content: space-between; gap: 8px; margin-top: 7px; color: #828982; font-size: 12px; }
._pendingHint_1fh0u_47, ._specialHint_1fh0u_47 { font-size: 12px; color: #69796e; margin-top: 10px; }
._pendingHint_1fh0u_47 { color: #926820; }
._assurance_1fh0u_49 { background: #f3f8f5; border: 1px solid #e6eee8; border-radius: 7px; padding: 11px 12px; margin-top: 25px; font-size: 12px; color: #43564a; }
._assurance_1fh0u_49 p { display: flex; gap: 9px; align-items: flex-start; }
._assurance_1fh0u_49 p + p { margin-top: 6px; }
._assurance_1fh0u_49 svg { width: 15px; height: 15px; margin-top: 3px; flex-shrink: 0; color: var(--c-green); stroke-width: 1.65; }
._history_1fh0u_53 { margin-top: 20px; }
._historyHeading_1fh0u_54 { display: flex; align-items: center; justify-content: space-between; min-height: 43px; }
._historyHeading_1fh0u_54 h3 { font-size: 14px; font-weight: 600; color: #27322b; }
._historyHeading_1fh0u_54 ._iconButton_1fh0u_31 { margin-right: -12px; }
._record_1fh0u_33 { border-bottom: 1px solid var(--c-line); }
._record_1fh0u_33:last-child { border-bottom: 0; }
._recordButton_1fh0u_33 { width: 100%; min-height: 64px; text-align: left; display: grid; align-items: center; grid-template-columns: 17px 78px minmax(70px, 1fr) auto 36px 16px; gap: 10px; background: transparent; color: #39453c; padding: 10px 0; border-radius: 3px; }
._recordButton_1fh0u_33 time { font-size: 12px; font-variant-numeric: tabular-nums; }
._recordButton_1fh0u_33 > svg { color: #879087; }
._kind_1fh0u_62 { font-size: 13px; overflow-wrap: anywhere; }
._muted_1fh0u_63 { color: #69716b; font-size: 12px; }
._pending_1fh0u_47 { color: #966a25; font-size: 12px; }
._failed_1fh0u_65 { color: #c54d49; font-size: 12px; }
._success_1fh0u_66 { color: var(--c-green); font-size: 12px; }
._charge_1fh0u_67 { color: #848d85; font-size: 11px; text-align: right; }
._rotated_1fh0u_68 { transform: rotate(180deg); }
._savedContent_1fh0u_69 { padding: 2px 0 18px; }
._savedHint_1fh0u_70 { color: #7b867d; font-size: 12px; margin-bottom: 12px; }
._savedModule_1fh0u_71 { padding: 14px; background: #f7f9f7; border: 1px solid var(--c-line); border-radius: 8px; margin-top: 10px; font-size: 13px; line-height: 1.75; overflow-wrap: anywhere; }
._savedModule_1fh0u_71 h4 { font-size: 13px; color: var(--c-green-dark); font-weight: 600; margin-bottom: 10px; }
._savedExplanation_1fh0u_73 { border-top: 1px solid var(--c-line-soft, #e5ebe6); }
._savedExplanation_1fh0u_73 > summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 6px 0; padding: 9px 12px; border-radius: 6px; cursor: pointer; list-style: none; background: var(--c-green); color: #fff; font-size: 12px; font-weight: 600; }
._savedExplanation_1fh0u_73 > summary::-webkit-details-marker { display: none; }
._savedExplanation_1fh0u_73 > summary:hover { background: #176a4e; }
._savedExplanation_1fh0u_73 > summary > svg { flex-shrink: 0; color: currentColor; }
._savedExplanation_1fh0u_73[open] > summary > svg { transform: rotate(90deg); }
._explanationBody_1fh0u_79 { padding: 0 0 12px; color: var(--c-text); }
._savedScope_1fh0u_80 + ._savedScope_1fh0u_80 { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--c-line); }
._savedScopeTitle_1fh0u_81 { font-size: 12px; color: var(--c-green-dark); font-weight: 600; }
._savedVariant_1fh0u_82 + ._savedVariant_1fh0u_82 { margin-top: 10px; }
._adjustedDose_1fh0u_83 { color: var(--c-green-dark); font-weight: 500; }
._prescriptionField_1fh0u_84 h5 { color: var(--c-green-dark); font-size: 14px; font-weight: 600; margin-bottom: 8px; }
._prescriptionField_1fh0u_84 { margin: 10px 0; }
._prescriptionField_1fh0u_84 h6 { color: var(--c-green-dark); font-size: 12px; font-weight: 600; margin-bottom: 7px; }
._herbPreview_1fh0u_87 { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0 0 10px; list-style: none; }
._herbPreview_1fh0u_87 > li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px; max-width: 100%; padding: 4px 8px; border: 1px solid #e3eae4; border-radius: 5px; background: var(--c-surface); font-size: 12px; }
._herbPreview_1fh0u_87 small { font-size: 11px; color: #67766c; }
._moduleError_1fh0u_90 { color: #a3453e; margin-top: 10px; }
._contentState_1fh0u_91 { padding: 20px 0; font-size: 13px; color: #6f7b72; }
._empty_1fh0u_92 { text-align: center; color: #7c877e; padding: 35px 8px; font-size: 13px; }
._empty_1fh0u_92 svg { margin: 0 auto 8px; }
._empty_1fh0u_92 span { display: block; margin-top: 6px; font-size: 12px; }
._error_1fh0u_95 { margin-top: 12px; padding: 10px 12px; border-radius: 6px; background: #fcf4f0; color: #a14e3b; font-size: 12px; }
._textButton_1fh0u_96 { display: block; background: transparent; color: var(--c-green); padding: 6px 0; text-align: left; text-decoration: underline; }
._footer_1fh0u_97 { border-top: 1px solid var(--c-line); padding: 0 24px env(safe-area-inset-bottom, 0px); flex-shrink: 0; }
._rulesButton_1fh0u_33 { width: 100%; min-height: 62px; display: flex; align-items: center; gap: 10px; color: #6e7970; background: transparent; text-align: left; }
._rulesButton_1fh0u_33 span { flex: 1; }
._rules_1fh0u_33 { max-height: 32dvh; overflow-y: auto; overscroll-behavior: contain; padding-top: 16px; color: #647368; font-size: 12px; }
._rules_1fh0u_33 p + p { margin-top: 10px; }
._handle_1fh0u_102 { display: none; }
@media (max-width: 600px) {
  ._panel_1fh0u_26 { width: 100%; height: calc(100dvh - 10px); margin-top: 10px; border: 0; border-radius: 16px 16px 0 0; }
  ._handle_1fh0u_102 { display: block; width: 48px; height: 4px; border-radius: 4px; background: #e2e5e1; align-self: center; margin-top: 9px; flex-shrink: 0; }
  ._header_1fh0u_29 { margin: 0 22px; min-height: 57px; border-bottom: 0; }
  ._scrollArea_1fh0u_35 { padding: 11px 22px 16px; scrollbar-gutter: auto; }
  ._balance_1fh0u_38 strong { font-size: 56px; }
  ._balance_1fh0u_38 { margin-top: 12px; margin-bottom: 14px; }
  ._assurance_1fh0u_49 { margin-top: 25px; padding: 12px 11px; }
  ._history_1fh0u_53 { margin-top: 19px; }
  ._recordButton_1fh0u_33 { gap: 8px; grid-template-columns: 17px 76px minmax(64px, 1fr) auto 33px 16px; min-height: 64px; }
  ._footer_1fh0u_97 { padding-left: 22px; padding-right: 22px; }
  ._rulesButton_1fh0u_33 { min-height: 63px; }
}
@media (max-width: 370px) {
  ._header_1fh0u_29 { margin: 0 16px; }
  ._scrollArea_1fh0u_35, ._footer_1fh0u_97 { padding-left: 16px; padding-right: 16px; }
  ._recordButton_1fh0u_33 { grid-template-columns: 16px 1fr auto 38px 16px; gap: 5px 8px; }
  ._recordButton_1fh0u_33 time { grid-column: 2; grid-row: 1; }
  ._recordButton_1fh0u_33 ._kind_1fh0u_62 { grid-column: 2; grid-row: 2; }
  ._recordButton_1fh0u_33 > svg:first-child { grid-row: 1 / 3; }
  ._recordButton_1fh0u_33 > span:not(._kind_1fh0u_62), ._recordButton_1fh0u_33 > svg:last-child { grid-row: 1 / 3; }
}

._structured_1fh0u_126 { margin: 8px 0; }
._structured_1fh0u_126 > div { margin: 8px 0; }
._structured_1fh0u_126 dt { color: #78837a; font-size: 12px; }
._structured_1fh0u_126 dd { margin: 2px 0 0; }
._structuredList_1fh0u_130 { padding-left: 16px; }
._structuredList_1fh0u_130 > li + li { margin-top: 8px; }


._savedPrescription_1fh0u_134 { padding: 12px 0 6px; border-top: 1px solid var(--c-line-soft, #e5ebe6); }
._savedNameRow_1fh0u_135 { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 10px; align-items: baseline; margin-bottom: 12px; }
._savedNameRow_1fh0u_135 > span, ._savedPrescription_1fh0u_134 > h5 { color: #78837a; font-size: 12px; font-weight: 400; }
._savedNameRow_1fh0u_135 > strong { color: var(--c-green-dark); font-size: 13px; font-weight: 600; }
._savedPrescription_1fh0u_134 > h5 { margin: 0 0 7px; }

._savedSupplement_1fh0u_140 > h5 { color: var(--c-green-dark); font-size: 12px; font-weight: 600; margin: 10px 0 7px; }
._entry_eee2v_1 { display: flex; align-items: center; gap: 10px; color: #35604e; text-decoration: none; font-size: 13px; border-radius: 10px; box-sizing: border-box; }
._entry_eee2v_1:hover { background: #eaf2ed; }
._entry_eee2v_1:focus-visible { outline: 3px solid #89bca6; outline-offset: 3px; }
._entry_eee2v_1 > svg { flex-shrink: 0; }
._sidebar_eee2v_5 { margin: 8px 12px; padding: 12px; }
._collapsed_eee2v_6 { margin: 8px; padding: 12px 4px; justify-content: center; }
._profile_eee2v_7 { background: #fff; border: 1px solid #dce6df; padding: 16px 18px; margin-bottom: 16px; }
._profile_eee2v_7 > span { flex: 1; font-weight: 600; }
._profile_eee2v_7 small { display: block; font-size: 11px; font-weight: 400; color: #708477; margin-top: 5px; }
@media (max-width: 768px) { ._sidebar_eee2v_5 { display: none; } }
._sidebar_1n0kj_1 {
  position: sticky; top: 0;
  width: 222px; min-width: 222px; height: 100vh;
  background: var(--c-surface);
  border-right: 1px solid var(--c-line);
  display: flex; flex-direction: column;
  /* 底部多留 40px，为常驻合规栏让位，使底部用户名片（.userSection）完整显示、不被遮挡（REQ-04）；
     顶部加宽（22px），让 logo 与系统名与页面上方留出呼吸空间 */
  padding: 22px 8px 40px;
  gap: 6px;
  transition: width .2s, min-width .2s;
  overflow: hidden;
  z-index: 90;
}
/* 侧边栏顶部绿色渐变装饰 */
._sidebar_1n0kj_1::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--grad-green);
  z-index: 1;
}
._collapsed_1n0kj_24 { width: 56px; min-width: 56px; }
/* 可滚动内容区：占满剩余高度，内容多时纵向滚动；邀请码面板与用户区固定在抽屉底部始终可见 */
._scrollArea_1n0kj_26 {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  display: flex; flex-direction: column;
  gap: 6px;
}

/* 顶部 Logo 行 —— 点击可展开/收起菜单 */
._logoRow_1n0kj_35 {
  display: flex; align-items: center; justify-content: space-between;
  gap: 6px; padding: 4px 2px 6px;
  border-radius: var(--r-md);
  transition: background 0.15s;
  cursor: pointer;
}
._logoRow_1n0kj_35:hover {
  background: var(--c-green-light);
}
._collapsed_1n0kj_24 ._logoRow_1n0kj_35 { flex-direction: column; gap: 8px; padding: 6px 4px; }
._logo_1n0kj_35 {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  cursor: pointer; min-width: 0; flex: 1 1 auto;
}
._logoImg_1n0kj_50 { width: 32px; height: 32px; -o-object-fit: contain; object-fit: contain; flex: none; }
/* 品牌名分两行（中医智能 / 学习参考平台）：「中医智能」居中于较宽的「学习参考平台」之上，
   行间紧凑（line-height 收窄、列间距 0）；「医生端」标签借 .logo 的 align-items:center 落在两行纵向中线 */
._logoBrand_1n0kj_53 { display: flex; flex-direction: column; align-items: center; gap: 0; min-width: 0; }
._logoTextLine_1n0kj_54 {
  font-size: var(--fs-sm); font-weight: 700; color: var(--c-green);
  white-space: nowrap; line-height: 1.1;
}
/* 工作栏标题：灰色居中，提示下方导航为工作区 */
._workTitle_1n0kj_59 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  text-align: center;
  letter-spacing: 1px;
  padding: 2px 0 4px;
}
._roleTag_1n0kj_66 {
  flex: none;
  font-size: 10px; font-weight: 600;
  color: var(--c-green); background: var(--c-green-light);
  padding: 1px 5px; border-radius: 5px;
}

/* 折叠按钮（辅助触发，主触发为点击 Logo 区域） */
._toggleBtn_1n0kj_74 {
  flex: none;
  display: flex; align-items: center; justify-content: center;
  width: 26px; height: 26px;
  background: transparent; color: var(--c-muted);
  border-radius: 6px;
  transition: background 0.15s, color 0.15s, transform 0.2s;
}
._toggleBtn_1n0kj_74:hover { background: rgba(26, 122, 90, 0.1); color: var(--c-green); }
._collapsed_1n0kj_24 ._toggleBtn_1n0kj_74 { transform: rotate(180deg); }

/* 所属诊所 */
._clinicSection_1n0kj_86 {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px;
  background: linear-gradient(135deg, rgba(26,122,90,.1) 0%, rgba(46,158,107,.04) 100%);
  border-radius: 8px;
  margin-bottom: 2px;
  border: 1px solid rgba(26,122,90,.08);
}
._clinicIcon_1n0kj_94 { color: var(--c-green); display: flex; align-items: center; flex: none; }
._clinicName_1n0kj_95 { font-size: var(--fs-sm); font-weight: 600; color: var(--c-green); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 主导航 */
._nav_1n0kj_98 { display: flex; flex-direction: column; gap: 2px; }
._navItem_1n0kj_99 {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 9px 10px;
  background: none; color: var(--c-muted);
  font-size: var(--fs-sm); border-radius: 8px;
  text-align: left; transition: all .12s;
  position: relative;
}
._navItem_1n0kj_99:hover { background: var(--c-bg); color: var(--c-text); }
._navIcon_1n0kj_108 { display: flex; align-items: center; opacity: .6; flex: none; }
._navItem_1n0kj_99:hover ._navIcon_1n0kj_108, ._navActive_1n0kj_109 ._navIcon_1n0kj_108 { opacity: 1; }
._navActive_1n0kj_109 {
  background: linear-gradient(135deg, var(--c-green-light) 0%, rgba(26,122,90,.06) 100%);
  color: var(--c-green);
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--c-green);
}
._navLabel_1n0kj_116 { white-space: nowrap; }

/* 分隔线 */
._divider_1n0kj_119 {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--c-green) 20%, var(--c-green-light) 50%, transparent 100%);
  opacity: .35;
  margin: 6px 6px;
}

/* 今日概览（纯统计展示，不可点） */
._sectionLabel_1n0kj_127 { font-size: var(--fs-xs); color: var(--c-faint); padding: 4px 10px 2px; font-weight: 600; letter-spacing: .5px; }
._sectionLabel_1n0kj_127::before {
  content: '';
  display: inline-block;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--c-green);
  margin-right: 5px;
  vertical-align: middle;
  opacity: .45;
}
._overviewSection_1n0kj_138 { display: flex; flex-direction: column; gap: 2px; }
._statItem_1n0kj_139 {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 9px 10px;
  color: var(--c-text); font-size: var(--fs-sm);
  border-radius: 8px; cursor: default;
}

/* 快捷入口 */
._quickSection_1n0kj_147 { display: flex; flex-direction: column; gap: 2px; }
._quickItem_1n0kj_148 {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 9px 10px;
  background: none; color: var(--c-muted);
  font-size: var(--fs-sm); border-radius: 8px;
  text-align: left; transition: all .12s;
  position: relative;
}
._quickItem_1n0kj_148:hover { background: var(--c-bg); color: var(--c-text); }
._quickIcon_1n0kj_157 { display: flex; align-items: center; opacity: .6; flex: none; }
._quickItem_1n0kj_148:hover ._quickIcon_1n0kj_157 { opacity: 1; }
._quickActive_1n0kj_159 {
  background: linear-gradient(135deg, var(--c-green-light) 0%, rgba(26,122,90,.06) 100%);
  color: var(--c-green);
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--c-green);
}
._quickActive_1n0kj_159 ._quickIcon_1n0kj_157 { color: var(--c-green); opacity: 1; }
._quickLabel_1n0kj_166 { flex: 1; white-space: nowrap; text-align: left; }

._badge_1n0kj_168 {
  padding: 1px 7px; border-radius: 10px;
  font-size: var(--fs-xs); font-weight: 600;
  background: var(--c-green-light); color: var(--c-green);
  white-space: nowrap;
}
._badgeWarn_1n0kj_174 { background: var(--c-amber-light); color: var(--c-amber); }

._newPatient_1n0kj_176 { color: var(--c-green); font-weight: 500; }
._newPatient_1n0kj_176 ._quickIcon_1n0kj_157 { color: var(--c-green); opacity: 1; }
._newPatient_1n0kj_176:hover { background: var(--c-green-light); color: var(--c-green); }

/* 底部：用户身份 + 退出 */
._userSection_1n0kj_7 {
  margin-top: auto;
  display: flex; align-items: center; gap: 8px;
  padding: 8px 6px 2px;
  border-top: 1px solid var(--c-line);
}
/* 邀请码面板展开时，用户区上方圆角抹平，形成一体 */
._userSectionWithPanel_1n0kj_188 {
  border-radius: 0 0 8px 8px;
  border-top: 1px solid var(--c-line-soft, #e8e8e8);
}
._collapsed_1n0kj_24 ._userSection_1n0kj_7 { justify-content: center; }
._userInfo_1n0kj_193 { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; }
._collapsed_1n0kj_24 ._userInfo_1n0kj_193 { flex: none; }
._userAvatar_1n0kj_195 {
  flex: none;
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--c-green-light); color: var(--c-green);
  display: flex; align-items: center; justify-content: center;
}
._userMeta_1n0kj_201 { display: flex; flex-direction: column; min-width: 0; }
._userName_1n0kj_202 { font-size: var(--fs-sm); font-weight: 600; color: var(--c-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
._userTitle_1n0kj_203 { font-size: var(--fs-xs); color: var(--c-muted); }
._logoutBtn_1n0kj_204 {
  flex: none;
  font-size: var(--fs-xs); color: var(--c-muted);
  padding: 5px 10px; border-radius: 6px;
  background: var(--c-bg);
}
._logoutBtn_1n0kj_204:hover { background: var(--c-red-light); color: var(--c-red); }

/* 邀请码面板 — 紧贴用户区上方 */
._invitePanel_1n0kj_213 {
  padding: 8px 10px;
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  /* 限制浮层最大高度并内部滚动，确保下方用户区（头像/名字/退出）始终完整可见，不被视口底部裁切 */
  max-height: calc(100vh - 110px);
  overflow-y: auto;
  flex-shrink: 0;
}
._inviteLabel_1n0kj_224 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  margin-bottom: 4px;
}
._inviteCode_1n0kj_229 {
  font-size: var(--fs-sm);
  font-weight: 700;
  font-family: monospace;
  color: var(--c-green-dark);
  letter-spacing: 1px;
  padding: 2px 0 6px;
  -webkit-user-select: all;
     -moz-user-select: all;
          user-select: all;
}
._inviteActions_1n0kj_238 {
  display: flex;
  gap: 6px;
}
._inviteCopyBtn_1n0kj_242 {
  flex: 1;
  padding: 4px 8px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  background: var(--c-surface);
  font-size: var(--fs-xs);
  color: var(--c-text);
  cursor: pointer;
  transition: all .15s;
}
._inviteCopyBtn_1n0kj_242:hover { background: var(--c-green-light); color: var(--c-green); }
._inviteRefreshBtn_1n0kj_254 {
  flex: 1;
  padding: 4px 8px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  background: var(--c-surface);
  font-size: var(--fs-xs);
  color: var(--c-primary, #3b6fe0);
  cursor: pointer;
  transition: all .15s;
}
._inviteRefreshBtn_1n0kj_254:hover:not(:disabled) { background: #e8f0ff; }
._inviteRefreshBtn_1n0kj_254:disabled { opacity: .5; cursor: not-allowed; }

/* 用户浮层（邀请码 / 我的签名 / 账号绑定） */
._popTabs_1n0kj_269 {
  display: flex;
  gap: 4px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--c-line);
  padding-bottom: 6px;
}
._popTab_1n0kj_269 {
  flex: 1;
  padding: 4px 6px;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  transition: all .15s;
}
._popTab_1n0kj_269:hover { background: var(--c-bg); color: var(--c-text); }
._popTabActive_1n0kj_288 {
  color: var(--c-green);
  background: var(--c-green-light);
  border-color: var(--c-line);
  font-weight: 600;
}

/* 我的签名 */
._sigWrap_1n0kj_296 { display: flex; flex-direction: column; gap: 6px; }
._sigHint_1n0kj_297 { font-size: var(--fs-xs); color: var(--c-muted); }
._sigPreview_1n0kj_298 {
  width: 100%;
  max-height: 120px;
  -o-object-fit: contain;
     object-fit: contain;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  padding: 4px;
  box-sizing: border-box;
}
._sigActions_1n0kj_308 { display: flex; gap: 6px; }
._sigBtn_1n0kj_309 {
  flex: 1;
  padding: 5px 8px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  background: var(--c-surface);
  font-size: var(--fs-xs);
  color: var(--c-text);
  cursor: pointer;
  transition: all .15s;
}
._sigBtn_1n0kj_309:hover:not(:disabled) { background: var(--c-green-light); color: var(--c-green); }
._sigBtnPrimary_1n0kj_321 {
  background: var(--c-green);
  color: #fff;
  border-color: var(--c-green);
}
._sigBtnPrimary_1n0kj_321:hover:not(:disabled) { background: var(--c-green-dark); color: #fff; }
._sigBtnDanger_1n0kj_327:hover:not(:disabled) { background: var(--c-red-light); color: var(--c-red); }
._sigBtn_1n0kj_309:disabled { opacity: .5; cursor: not-allowed; }
._sigMsg_1n0kj_329 { font-size: var(--fs-xs); margin-top: 2px; }
._sigMsgOk_1n0kj_330 { color: #2e9e6b; }
._sigMsgErr_1n0kj_331 { color: #e0445a; }
._signedBadge_1n0kj_332 {
  display: inline-block;
  font-size: var(--fs-xs);
  color: var(--c-green);
  background: var(--c-green-light);
  padding: 1px 6px;
  border-radius: 4px;
  margin-left: 4px;
}

/* 账号绑定 */
._accountBinding_1n0kj_343 { display: flex; flex-direction: column; gap: 8px; }
._accountBindingBlock_1n0kj_344 {
  padding: 9px;
  border: 1px solid var(--c-line);
  border-radius: 7px;
  background: var(--c-surface);
}
._accountBindingTitle_1n0kj_350 { font-size: var(--fs-sm); font-weight: 600; color: var(--c-text); }
._accountBindingHint_1n0kj_351 { margin: 4px 0 8px; font-size: var(--fs-xs); line-height: 1.5; color: var(--c-muted); }
._boundAccount_1n0kj_352 {
  padding: 6px 7px;
  border-radius: 5px;
  background: var(--c-green-light);
  color: var(--c-green);
  font-size: var(--fs-xs);
  word-break: break-all;
}
._bindingInput_1n0kj_360 {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--c-line);
  border-radius: 5px;
  background: var(--c-bg);
  color: var(--c-text);
  font-size: var(--fs-xs);
}
._bindingInput_1n0kj_360:focus { outline: none; border-color: var(--c-green); }
._bindingCodeRow_1n0kj_373 { display: flex; gap: 6px; margin-top: 6px; }
._bindingCodeRow_1n0kj_373 ._bindingInput_1n0kj_360 { flex: 1; }
._bindingActionRow_1n0kj_375 { display: flex; gap: 6px; margin-top: 7px; }
._bindingActionRow_1n0kj_375 > button { flex: 1; width: auto; margin-top: 0; }
._bindingMinorButton_1n0kj_377,
._bindingPrimaryButton_1n0kj_378,
._bindingWechatButton_1n0kj_379 {
  height: 30px;
  border-radius: 5px;
  font-size: var(--fs-xs);
  cursor: pointer;
  transition: all .15s;
}
._bindingMinorButton_1n0kj_377 {
  flex: none;
  padding: 0 7px;
  border: 1px solid var(--c-line);
  background: var(--c-bg);
  color: var(--c-green);
}
._bindingPrimaryButton_1n0kj_378,
._bindingWechatButton_1n0kj_379 {
  width: 100%;
  margin-top: 7px;
  border: 1px solid var(--c-green);
  background: var(--c-green);
  color: #fff;
}
._bindingMinorButton_1n0kj_377:hover:not(:disabled) { background: var(--c-green-light); }
._bindingPrimaryButton_1n0kj_378:hover:not(:disabled),
._bindingWechatButton_1n0kj_379:hover { background: var(--c-green-dark); }
._bindingMinorButton_1n0kj_377:disabled,
._bindingPrimaryButton_1n0kj_378:disabled { opacity: .55; cursor: not-allowed; }
._bindingMessage_1n0kj_406 { font-size: var(--fs-xs); line-height: 1.4; }
._bindingMessageOk_1n0kj_407 { color: #2e9e6b; }
._bindingMessageErr_1n0kj_408 { color: #e0445a; }

._mobileTutorialEntry_1n0kj_410 { display: none; }

/* 响应式：≤768 改为常驻底部 Tab 菜单 */
@media (max-width: 768px) {
  /* 输入时不把菜单栏顶到软键盘上方；键盘收起后由状态类自动恢复。 */
  body.soft-keyboard-open ._sidebar_1n0kj_1,
  body.soft-keyboard-open ._mobileTutorialEntry_1n0kj_410 {
    visibility: hidden;
    pointer-events: none;
  }

  ._sidebar_1n0kj_1 {
    position: fixed;
    top: auto;
    right: 0;
    bottom: var(--compliance-footer-h, 38px);
    left: 0;
    width: 100%;
    min-width: 0;
    height: 68px;
    padding: 4px 6px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: stretch;
    gap: 2px;
    overflow: visible;
    border: 0;
    border-top: 1px solid var(--c-line);
    border-radius: 0;
    box-shadow: 0 -6px 22px rgba(16, 40, 31, .1);
    z-index: 96;
  }
  ._sidebar_1n0kj_1::before { display: none; }
  ._collapsed_1n0kj_24 {
    width: 100%;
    min-width: 0;
    padding: 4px 6px;
  }
  ._scrollArea_1n0kj_26,
  ._nav_1n0kj_98,
  ._quickSection_1n0kj_147 { display: contents; }
  ._logoRow_1n0kj_35,
  ._workTitle_1n0kj_59,
  ._toggleBtn_1n0kj_74,
  ._logoutBtn_1n0kj_204 { display: none; }

  ._navItem_1n0kj_99,
  ._quickItem_1n0kj_148,
  ._userSection_1n0kj_7 {
    min-width: 0;
    min-height: 60px;
    margin: 0;
    padding: 5px 2px 4px;
    border: 0;
    border-radius: 10px;
    box-shadow: none;
  }
  ._navItem_1n0kj_99,
  ._quickItem_1n0kj_148,
  ._userInfo_1n0kj_193 {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    color: var(--c-muted);
  }
  ._navItem_1n0kj_99::after,
  ._quickItem_1n0kj_148::after,
  ._userInfo_1n0kj_193::after {
    content: attr(data-label);
    font-size: 10px;
    line-height: 1.15;
    white-space: nowrap;
  }
  ._navItem_1n0kj_99:nth-child(1) { order: 1; }
  ._navItem_1n0kj_99:nth-child(2) { order: 4; }
  /* 新手教程仅保留右侧可拖动的悬浮入口，不占用底部主导航。 */
  ._navItem_1n0kj_99:nth-child(3) { display: none; }
  ._quickItem_1n0kj_148:nth-child(1) { order: 2; }
  ._quickItem_1n0kj_148:nth-child(2) { order: 3; }
  ._userSection_1n0kj_7 { order: 5; display: flex; align-items: stretch; }
  ._userInfo_1n0kj_193 { width: 100%; flex: 1; }
  ._navLabel_1n0kj_116,
  ._quickLabel_1n0kj_166,
  ._userMeta_1n0kj_201 { display: none; }
  ._navIcon_1n0kj_108,
  ._quickIcon_1n0kj_157 { opacity: .78; }
  ._navActive_1n0kj_109,
  ._quickActive_1n0kj_159 {
    background: var(--c-green-light);
    box-shadow: none;
    color: var(--c-green);
  }
  ._newPatient_1n0kj_176,
  ._newPatient_1n0kj_176:hover,
  ._newPatient_1n0kj_176:active,
  ._newPatient_1n0kj_176:focus,
  ._newPatient_1n0kj_176:focus-visible {
    color: #fff;
    background: var(--c-green);
    border-radius: 16px;
  }
  ._newPatient_1n0kj_176 ._quickIcon_1n0kj_157,
  ._newPatient_1n0kj_176:hover ._quickIcon_1n0kj_157,
  ._newPatient_1n0kj_176:active ._quickIcon_1n0kj_157,
  ._newPatient_1n0kj_176:focus ._quickIcon_1n0kj_157,
  ._newPatient_1n0kj_176:focus-visible ._quickIcon_1n0kj_157 {
    color: #fff;
    opacity: 1;
  }
  ._userAvatar_1n0kj_195 {
    width: auto;
    height: auto;
    background: transparent;
    color: var(--c-muted);
  }
  ._userInfo_1n0kj_193::after { content: '我的'; }
  ._userSectionWithPanel_1n0kj_188 {
    background: var(--c-green-light);
    color: var(--c-green);
  }
  ._userSectionWithPanel_1n0kj_188 ._userAvatar_1n0kj_195 { color: var(--c-green); }
  ._profileActive_1n0kj_532 {
    background: var(--c-green-light);
    color: var(--c-green);
  }
  ._profileActive_1n0kj_532 ._userAvatar_1n0kj_195 { color: var(--c-green); }

  ._invitePanel_1n0kj_213 {
    position: fixed;
    right: 12px;
    bottom: calc(76px + var(--compliance-footer-h, 38px));
    left: 12px;
    max-height: min(62dvh, 520px);
    overflow-y: auto;
    border: 1px solid var(--c-line);
    border-radius: 14px;
    box-shadow: var(--shadow-pop);
    z-index: 97;
  }

  ._mobileTutorialEntry_1n0kj_410 {
    position: fixed;
    right: 14px;
    bottom: calc(84px + var(--compliance-footer-h, 38px));
    z-index: 95;
    width: 56px;
    height: 56px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--c-green);
    color: #fff;
    box-shadow: 0 5px 16px rgba(20, 95, 68, .35);
    touch-action: none;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }
  ._mobileTutorialEntry_1n0kj_410 span { font-size: 10px; line-height: 1; }
}
/* 全站常驻合规栏（REQ-04）— 固定底部，浮于弹窗之上，打印时隐藏 */
._footer_13wqf_2 {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 16px;
  background: var(--c-surface);
  border-top: 1px solid var(--c-line);
  box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.04);
}

._content_13wqf_17 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2px 12px;
}

._text_13wqf_25 {
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--c-muted);
  text-align: center;
  letter-spacing: 0.2px;
  white-space: nowrap;
}

._records_13wqf_34 {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 8px;
  font-size: var(--fs-xs);
  line-height: 1.45;
}

._records_13wqf_34 a {
  color: var(--c-muted);
  text-decoration: none;
}

._records_13wqf_34 a:hover,
._records_13wqf_34 a:focus-visible {
  color: var(--c-green);
  text-decoration: underline;
}

._separator_13wqf_55 {
  color: var(--c-line);
}

/* 采集页等全屏取景：半透明、极简，不遮挡快门/取景，但保持可见（不截断文案） */
._capture_13wqf_60 {
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(2px);
  padding: 4px 12px;
}

._capture_13wqf_60 ._text_13wqf_25 {
  font-size: 10px;
  white-space: normal;
}

/* 移动端窄屏：合规文案换行完整可见（不再裁断「仅供执业医师…」等段），
   并下探到 home 安全区；全站常驻，不可关闭（REQ-04）。 */
@media (max-width: 640px) {
  ._footer_13wqf_2 {
    /* 当前 H5 容器会把底部安全区单独留给宿主；这里不再重复叠加，避免空白过大。 */
    padding: 2px 8px;
  }
  ._content_13wqf_17 { gap: 0 8px; }
  ._text_13wqf_25 {
    font-size: 10px;
    line-height: 1.25;
    white-space: normal;
  }
  ._records_13wqf_34 {
    font-size: 10px;
    line-height: 1.25;
  }
}

/* 全局移动端会给所有 a 设 44px 最小触控尺寸；备案链接是纯文本声明，
   若不解除会把 records 容器撑高并造成底部大块留白。 */
@media (max-width: 768px) {
  ._records_13wqf_34 a {
    min-width: 0 !important;
    min-height: 0 !important;
  }

  /* 软键盘弹起时，固定栏应留在键盘后方，不占据输入区上方。 */
  body.soft-keyboard-open ._footer_13wqf_2 {
    visibility: hidden;
    pointer-events: none;
  }
}

/* 导出由专门水印负责：打印时隐藏屏幕态合规栏 */
@media print {
  ._footer_13wqf_2 {
    display: none !important;
  }
}
._backdrop_61l6a_1 {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 32px;
  background: rgba(20, 39, 31, .64);
  backdrop-filter: blur(4px);
}

._dialog_61l6a_12 {
  position: relative;
  display: flex;
  width: min(1100px, calc(100vw - 64px));
  height: min(760px, calc(100dvh - 96px));
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 26px 68px rgba(8, 28, 19, .4);
}
._backdropExpanded_61l6a_24 { padding: 0; backdrop-filter: none; }
._dialogExpanded_61l6a_25 { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }

._header_61l6a_27 { display: flex; justify-content: space-between; gap: 18px; flex: none; padding: 16px 22px 12px; border-bottom: 1px solid #e7eee9; }
._eyebrow_61l6a_28 { margin: 0 0 4px; color: #287a5d; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
._header_61l6a_27 h2 { margin: 0; color: #17352a; font-size: clamp(21px, 2.2vw, 27px); line-height: 1.25; }
._mobileTitle_61l6a_30, ._mobileInstruction_61l6a_30 { display: none; }
._headerActions_61l6a_31 { position: absolute; z-index: 2; top: 16px; right: 22px; display: flex; gap: 8px; }
._closeButton_61l6a_32 { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 9px; color: #668078; background: #f0f5f2; }
._closeButton_61l6a_32:hover { color: #176846; background: #e2f3e9; }
._zoomButton_61l6a_34,
._zoomButton_61l6a_34:hover,
._zoomButton_61l6a_34:active,
._zoomButton_61l6a_34:focus,
._zoomButton_61l6a_34:focus-visible {
  color: #7d8782;
  background: #f4f6f5;
}
._headerCollapseButton_61l6a_42 { display: none; }

._moduleMenu_61l6a_44 {
  display: flex;
  flex: none;
  justify-content: center;
  gap: 8px;
  padding: 8px 22px;
  border-bottom: 1px solid #e7eee9;
  background: #f7faf8;
}
._centeredModuleMenu_61l6a_53 { display: none; }
._moduleButton_61l6a_54 {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  padding: 0 13px;
  border: 1px solid #dce9e2;
  border-radius: 10px;
  color: #577066;
  background: #fff;
  font-size: 13px;
  font-weight: 650;
}
._moduleButton_61l6a_54:hover { border-color: #a8d1bd; background: #f1f8f4; }
._moduleButtonActive_61l6a_68 { border-color: #26815e; color: #fff; background: #26815e; box-shadow: 0 3px 9px rgba(38, 129, 94, .2); }
._moduleButtonActive_61l6a_68:hover { border-color: #207452; background: #207452; }
._moduleNumber_61l6a_70 { display: grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; color: #27795a; background: #e4f2eb; font-size: 11px; }
._moduleButtonActive_61l6a_68 ._moduleNumber_61l6a_70 { color: #267b59; background: #fff; }
._moduleCount_61l6a_72 { min-width: 18px; padding: 1px 5px; border-radius: 8px; color: #71877d; background: #edf3f0; font-size: 10px; text-align: center; }
._moduleButtonActive_61l6a_68 ._moduleCount_61l6a_72 { color: #fff; background: rgba(255, 255, 255, .2); }

/* 默认完整预览：整张页面等比显示，不裁切、不过度放大、没有镜头动画。 */
._media_61l6a_76 {
  position: relative;
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  margin: 0;
  overflow: hidden;
  background: #143126;
}
._posterFrame_61l6a_87 { position: relative; display: block; width: auto; height: 100%; max-width: 100%; line-height: 0; }
._media_61l6a_76 picture { display: block; width: auto; height: 100%; max-width: 100%; line-height: 0; }
._media_61l6a_76 img { display: block; width: auto; height: 100%; max-width: 100%; max-height: 100%; -o-object-fit: contain; object-fit: contain; image-rendering: auto; }
._mobileStepNavigation_61l6a_90 { display: none; }
._posterBadge_61l6a_91 {
  position: absolute;
  z-index: 3;
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  max-width: calc(100% - 28px);
  box-sizing: border-box;
  padding: 6px 10px;
  border: 1px solid rgba(254, 226, 226, .82);
  border-radius: 8px;
  color: #fff;
  background: rgba(220, 38, 38, .96);
  box-shadow: 0 4px 12px rgba(153, 27, 27, .34);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .01em;
  pointer-events: none;
}

._clickHint_61l6a_114 {
  position: absolute;
  z-index: 2;
  left: var(--hint-left);
  top: var(--hint-top);
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .12s ease;
}
._clickHintVisible_61l6a_125 { opacity: 1; }
._clickHint_61l6a_114 > span {
  position: absolute;
  left: 0;
  bottom: 38px;
  transform: translateX(calc(-50% + var(--hint-label-offset, 0px)));
  padding: 5px 8px;
  border-radius: 5px;
  color: #fff;
  background: #dc2626;
  box-shadow: 0 3px 8px rgba(153, 27, 27, .32);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
._clickHint_61l6a_114::after { content: ''; position: absolute; left: -2px; bottom: 11px; width: 4px; height: 24px; border-radius: 4px; background: #dc2626; }
._clickHint_61l6a_114::before { content: ''; position: absolute; left: -8px; bottom: 0; border-top: 12px solid #dc2626; border-right: 8px solid transparent; border-left: 8px solid transparent; }
._clickHintBelow_61l6a_143 > span { top: 38px; bottom: auto; }
._clickHintBelow_61l6a_143::after { top: 11px; bottom: auto; }
._clickHintBelow_61l6a_143::before { top: 0; bottom: auto; border-top: 0; border-bottom: 12px solid #dc2626; }
._mobileHintLabel_61l6a_146 { display: none; }

._guidePanel_61l6a_148 { flex: none; border-top: 1px solid #e7eee9; background: #fff; }
._infoToggle_61l6a_149 { display: none; }
._content_61l6a_150 { padding: 10px 22px 8px; }
._description_61l6a_151 { margin: 0; color: #405d52; font-size: 14px; line-height: 1.5; }
._instructions_61l6a_152 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 16px; padding: 0; margin: 9px 0 0; list-style: none; }
._instructions_61l6a_152 li { display: flex; align-items: flex-start; gap: 7px; color: #456156; font-size: 13px; line-height: 1.4; }
._instructions_61l6a_152 b { display: grid; place-items: center; width: 19px; height: 19px; flex: none; border-radius: 50%; color: #fff; background: #27815e; font-size: 11px; }
._warning_61l6a_155 { display: flex; align-items: flex-start; gap: 6px; margin: 8px 0 0; padding: 7px 9px; border-radius: 8px; color: #8a5b1e; background: #fff7e8; font-size: 12px; line-height: 1.4; }
._warning_61l6a_155 svg { margin-top: 1px; flex: none; }
._stepRow_61l6a_157 { display: grid; grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr); align-items: center; gap: 14px; margin-top: 10px; color: #82968d; font-size: 12px; }
._stepRow_61l6a_157 > span:first-child { color: #5f766c; }
._stepRow_61l6a_157 > span:first-child b { color: #287a5d; }
._totalProgress_61l6a_160 { text-align: right; }
._dots_61l6a_161 { display: flex; gap: 7px; }
._dots_61l6a_161 ._dot_61l6a_161 { width: 8px; min-width: 8px; height: 8px; min-height: 8px; padding: 0; border-radius: 50%; background: #d7e6de; transition: width .18s, background .18s; }
._dots_61l6a_161 ._dotActive_61l6a_163 { width: 24px; min-width: 24px; border-radius: 6px; background: #2d986d; }
._actions_61l6a_164 { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 22px 14px; }
._primaryActions_61l6a_165 { display: flex; gap: 10px; }
._textButton_61l6a_166, ._secondaryButton_61l6a_166, ._primaryButton_61l6a_166 { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 0 14px; border-radius: 9px; font-size: 14px; font-weight: 600; }
._textButton_61l6a_166 { color: #73877e; background: transparent; }
._textButton_61l6a_166:hover { color: #236e51; background: #f1f7f3; }
._secondaryButton_61l6a_166 { color: #466258; border: 1px solid #d8e6de; background: #fff; }
._secondaryButton_61l6a_166:hover:not(:disabled) { background: #f3f8f5; }
._secondaryButton_61l6a_166:disabled { cursor: not-allowed; opacity: .45; }
._primaryButton_61l6a_166 { color: #fff; background: linear-gradient(135deg, #1b805c, #3ca879); box-shadow: 0 5px 12px rgba(27,104,92,.2); }
._primaryButton_61l6a_166:hover { filter: brightness(.96); transform: translateY(-1px); }

/* 工作台的方剂参考悬浮按钮层级为 10001，教程打开时必须避免其穿透教程遮罩。 */
html[data-onboarding-tutorial-open] button[aria-label='查看方剂参考'] { display: none !important; }
html[data-onboarding-tutorial-open] [data-onboarding-workstation-sidebar],
html[data-onboarding-tutorial-open] [data-onboarding-workstation-sidebar-toggle],
html[data-onboarding-tutorial-open] [data-onboarding-candidate-prescription-modal] { display: none !important; }

/* 网页端全屏模式：将教程图片作为主画面，控制项悬浮在其上，避免继续压缩截图高度。 */
@media (min-width: 641px) {
  ._dialogExpanded_61l6a_25 { position: relative; display: block; }
  ._dialogExpanded_61l6a_25 ._header_61l6a_27 {
    position: absolute;
    z-index: 4;
    top: 16px;
    left: 50%;
    width: min(760px, calc(100% - 40px));
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, .52);
    border-radius: 13px;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 8px 22px rgba(8, 28, 19, .18);
    backdrop-filter: blur(10px);
    transform: translateX(-50%);
  }
  ._dialogExpanded_61l6a_25 ._header_61l6a_27 > div:first-child { width: 100%; text-align: center; }
  /* 覆盖截图内旧图标，并在同一位置提供真正可操作的缩放与退出控件。 */
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 {
    position: absolute;
    z-index: 6;
    top: 1.5%;
    right: 1.05%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 4.1%;
    height: 6.5%;
    min-width: 92px;
    min-height: 54px;
    border-radius: 8px;
    background: transparent;
  }
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 ._closeButton_61l6a_32 {
    width: 34px;
    height: 34px;
    color: #7d8782;
    background: #f4f6f5;
    box-shadow: inset 0 0 0 1px #dce4e0;
  }
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 ._closeButton_61l6a_32:hover { color: #4d5a54; background: #e8eeeb; }
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 ._zoomButton_61l6a_34,
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 ._zoomButton_61l6a_34:hover,
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 ._zoomButton_61l6a_34:active,
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 ._zoomButton_61l6a_34:focus,
  ._dialogExpanded_61l6a_25 ._headerActions_61l6a_31 ._zoomButton_61l6a_34:focus-visible {
    color: #7d8782;
    background: #f4f6f5;
  }
  ._dialogExpanded_61l6a_25 ._headerCollapseButton_61l6a_42 {
    position: absolute;
    z-index: 1;
    bottom: -14px;
    left: 50%;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    min-height: 27px;
    padding: 4px 11px;
    border: 1px solid #dcece3;
    border-radius: 0 0 10px 10px;
    color: #39735f;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 6px 14px rgba(31, 66, 49, .12);
    font-size: 12px;
    font-weight: 600;
    transform: translateX(-50%);
  }
  ._dialogExpanded_61l6a_25 ._headerCollapseButton_61l6a_42:hover { color: #176846; background: #f1faf5; }
  ._dialogExpanded_61l6a_25 ._headerCollapsed_61l6a_252 {
    top: 0;
    min-height: 0;
    height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
  }
  ._dialogExpanded_61l6a_25 ._headerCollapsed_61l6a_252 > div:first-child { display: none; }
  ._dialogExpanded_61l6a_25 ._headerCollapsed_61l6a_252 ._headerCollapseButton_61l6a_42 {
    top: 0;
    bottom: auto;
    border-radius: 0 0 10px 10px;
  }
  ._dialogExpanded_61l6a_25 ._centeredModuleMenu_61l6a_53 {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 8px;
  }
  ._dialogExpanded_61l6a_25 ._centeredModuleMenu_61l6a_53 ._moduleButton_61l6a_54 { min-height: 30px; padding: 0 10px; font-size: 12px; }
  ._dialogExpanded_61l6a_25 ._centeredModuleMenu_61l6a_53 ._moduleNumber_61l6a_70 { width: 17px; height: 17px; font-size: 10px; }
  ._dialogExpanded_61l6a_25 ._centeredModuleMenu_61l6a_53 ._moduleCount_61l6a_72 { font-size: 9px; }
  ._dialogExpanded_61l6a_25 ._moduleMenu_61l6a_44 {
    display: none;
  }
  ._dialogExpanded_61l6a_25 ._media_61l6a_76 {
    position: absolute;
    z-index: 1;
    inset: 0;
    height: 100dvh;
    min-height: 0;
  }
  ._guidePanelExpanded_61l6a_287 {
    position: absolute;
    z-index: 5;
    left: 20px;
    bottom: calc(var(--compliance-footer-h, 40px) + 16px);
    width: min(660px, calc(100% - 40px));
    border: 1px solid rgba(255, 255, 255, .54);
    border-radius: 12px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 24px rgba(8, 28, 19, .18);
    backdrop-filter: blur(10px);
  }
  ._guidePanelExpanded_61l6a_287 ._content_61l6a_150 { display: none; }
  ._guidePanelInfoExpanded_61l6a_300 ._content_61l6a_150 {
    display: block;
    max-height: min(42dvh, 410px);
    overflow-y: auto;
  }
  ._guidePanelInfoExpanded_61l6a_300 { bottom: calc(var(--compliance-footer-h, 40px) + 78px); }
  ._guidePanelExpanded_61l6a_287 ._infoToggle_61l6a_149 {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 38px;
    padding: 0 13px;
    border: 0;
    color: #315a49;
    background: transparent;
    font-size: 13px;
    font-weight: 650;
  }
  ._guidePanelExpanded_61l6a_287 ._infoToggle_61l6a_149:hover { color: #176846; background: rgba(226, 243, 233, .78); }
  ._actionsExpanded_61l6a_319 {
    position: absolute;
    z-index: 5;
    right: 20px;
    bottom: calc(var(--compliance-footer-h, 40px) + 16px);
    padding: 9px 11px;
    border: 1px solid rgba(255, 255, 255, .54);
    border-radius: 12px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 24px rgba(8, 28, 19, .18);
    backdrop-filter: blur(10px);
  }
  ._actionsExpanded_61l6a_319 ._textButton_61l6a_166 { padding: 0 7px; }
}


@media (max-width: 640px) {
  ._backdrop_61l6a_1 { padding: 24px 14px; }
  ._dialog_61l6a_12 { width: calc(100vw - 28px); height: min(740px, calc(100dvh - 80px)); border-radius: 16px; }
  ._backdropExpanded_61l6a_24 { padding: 0; }
  ._dialogExpanded_61l6a_25 { width: 100vw; height: 100dvh; border-radius: 0; }
  ._dialogExpanded_61l6a_25 ._media_61l6a_76 { touch-action: pan-y; }
  ._mobileStepNavigation_61l6a_90 {
    position: absolute;
    z-index: 5;
    top: 50%;
    right: 10px;
    left: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
    transform: translateY(-50%);
  }
  ._mobileStepNavigationButton_61l6a_353 {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .52);
    border-radius: 50%;
    color: #fff;
    background: rgba(30, 55, 44, .30);
    box-shadow: 0 5px 18px rgba(3, 20, 13, .22), inset 0 1px 0 rgba(255, 255, 255, .24);
    backdrop-filter: blur(12px) saturate(150%);
    -webkit-backdrop-filter: blur(12px) saturate(150%);
    pointer-events: auto;
  }
  ._mobileStepNavigationButton_61l6a_353:active:not(:disabled) { background: rgba(27, 104, 76, .55); transform: scale(.94); }
  ._mobileStepNavigationButton_61l6a_353:disabled { cursor: default; opacity: .36; }
  ._header_61l6a_27 { padding: 11px 14px 8px; }
  ._eyebrow_61l6a_28 { margin-bottom: 2px; font-size: 10px; }
  ._header_61l6a_27 h2 { font-size: 19px; }
  ._desktopTitle_61l6a_373, ._desktopInstruction_61l6a_373 { display: none; }
  ._mobileTitle_61l6a_30, ._mobileInstruction_61l6a_30 { display: inline; }
  ._closeButton_61l6a_32 { width: 30px; height: 30px; }
  ._moduleMenu_61l6a_44 { gap: 5px; padding: 6px 10px; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; }
  ._moduleMenu_61l6a_44::-webkit-scrollbar { display: none; }
  ._moduleButton_61l6a_54 { min-width: -moz-max-content; min-width: max-content; min-height: 30px; gap: 5px; padding: 0 8px; border-radius: 8px; font-size: 11px; }
  ._moduleNumber_61l6a_70 { width: 16px; height: 16px; font-size: 9px; }
  ._moduleCount_61l6a_72 { min-width: 16px; padding: 1px 4px; font-size: 9px; }
  ._clickHint_61l6a_114 > span { font-size: 11px; }
  ._posterBadge_61l6a_91 {
    top: 8px;
    left: 8px;
    min-height: 23px;
    max-width: calc(100% - 16px);
    padding: 4px 7px;
    border-radius: 6px;
    font-size: 10px;
  }
  ._desktopHintLabel_61l6a_391 { display: none; }
  ._mobileHintLabel_61l6a_146 { display: inline; }
  ._content_61l6a_150 { padding: 6px 14px 4px; }
  ._description_61l6a_151 { display: none; }
  ._instructions_61l6a_152 { gap: 4px; margin-top: 0; }
  ._instructions_61l6a_152 li { gap: 4px; font-size: 10px; line-height: 1.3; }
  ._instructions_61l6a_152 b { width: 15px; height: 15px; font-size: 9px; }
  ._warning_61l6a_155 { display: none; }
  ._stepRow_61l6a_157 { grid-template-columns: 1fr auto; gap: 6px; margin-top: 6px; }
  ._totalProgress_61l6a_160 { display: none; }
  ._actions_61l6a_164 { padding: 6px 14px 9px; }
  ._textButton_61l6a_166, ._secondaryButton_61l6a_166, ._primaryButton_61l6a_166 { min-height: 34px; font-size: 13px; }
  ._primaryActions_61l6a_165 { flex: 1; }
  ._primaryActions_61l6a_165 > * { flex: 1; }
  ._textButton_61l6a_166 { flex: none; padding: 0 2px; font-size: 13px; white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  ._dot_61l6a_161, ._primaryButton_61l6a_166 { transition: none; }
}
.auth-mode-switch {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 4px;
  border-radius: 12px;
  background: #f3f4f6;
  isolation: isolate;
}

.auth-mode-indicator {
  position: absolute;
  z-index: 0;
  top: 4px;
  bottom: 4px;
  left: 4px;
  width: calc(50% - 4px);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .12);
  transition: transform .24s cubic-bezier(.22, 1, .36, 1);
}

.auth-mode-switch[data-mode="code"] .auth-mode-indicator {
  transform: translateX(100%);
}

.auth-mode-option {
  position: relative;
  z-index: 1;
  min-height: 36px;
  padding: 8px 10px;
  border-radius: 9px;
  background: transparent;
  color: #6b7280;
  font-size: 14px;
  font-weight: 500;
  transition: color .2s ease;
}

.auth-mode-option.is-active { color: #111827; }

.auth-mode-panel {
  animation: authModeIn .2s cubic-bezier(.22, 1, .36, 1);
}

.guest-login-block { display: grid; gap: 8px; }
.guest-login-divider {
  display: flex; align-items: center; gap: 12px; color: #9ca3af; font-size: 12px;
}
.guest-login-divider::before, .guest-login-divider::after {
  content: ''; height: 1px; flex: 1; background: #e5e7eb;
}
.guest-login-button {
  min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 8px;
  border: 1px solid #d1d5db; border-radius: 14px; background: #fff;
  color: #1f2937; font-size: 14px; font-weight: 600; transition: .18s ease;
}
.guest-login-button:hover { border-color: #1a7a5a; background: #f0fdf8; color: #146348; }
.guest-login-block > p { margin: 0; text-align: center; color: #9ca3af; font-size: 12px; }
.mobile-login-entry-card { display: none; }

/* 邮箱继续后的独立验证页面：不复用旧的密码/验证码登录表单。 */
.email-verification-card {
  width: min(100%, 560px);
  display: grid;
  justify-items: center;
  gap: 14px;
  padding: 34px;
  border: 1px solid #d8e2db;
  border-radius: 28px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 20px 55px rgba(23, 52, 44, .10);
  text-align: center;
}

.email-verification-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #1d7f61;
  background: #edf7f1;
}

.email-verification-card h2 { margin: 2px 0 0; color: #18342d; font-size: 22px; }
.email-verification-copy { margin: 0; color: #61746b; font-size: 14px; line-height: 1.65; }
.email-verification-address { margin: -7px 0 3px; color: #18342d; font-size: 16px; font-weight: 700; overflow-wrap: anywhere; }
.email-verification-actions {
  display: grid;
  grid-template-columns: max-content max-content max-content;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #61746b;
  font-size: 13px;
  white-space: nowrap;
}
.email-verification-actions button {
  padding: 0;
  border: 0;
  color: #1b6550;
  background: transparent;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.email-verification-actions button:disabled { color: #9aa8a1; cursor: not-allowed; text-decoration: none; }
.email-verification-code-toggle { display: none; }
.email-verification-form { width: 100%; display: grid; gap: 12px; margin-top: 12px; }
.email-verification-form label { color: #61746b; font-size: 13px; }
.email-verification-form input {
  width: 100%;
  min-height: 50px;
  padding: 0 15px;
  border: 1px solid #ccd8d0;
  border-radius: 11px;
  outline: 0;
  color: #173931;
  font: inherit;
  text-align: center;
}
.email-verification-form input:focus { border-color: #1d7f61; box-shadow: 0 0 0 3px rgba(29, 127, 97, .13); }
.email-verification-error { margin: 0; color: #c2413b; font-size: 13px; }
.email-verification-submit {
  min-height: 50px;
  border: 1px solid #1d7f61 !important;
  border-radius: 11px !important;
  background: #1d7f61 !important;
  color: #fff !important;
  font-weight: 700 !important;
}
.email-verification-register {
  margin: 2px 0 0;
  color: #809087;
  font-size: 13px;
  text-align: center;
}
.email-verification-register button {
  margin-left: 3px;
  padding: 0;
  border: 0;
  color: #183f34;
  background: transparent;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 768px) {
  .email-verification-card {
    gap: 13px;
    padding: 34px 28px 28px;
    border-radius: 34px;
  }
  .email-verification-card h2 { font-size: 20px; }
  .email-verification-copy { font-size: 14px; }
}

.wechat-qr-backdrop {
  /* 必须压过全站合规栏（z-index: 9999），否则弹层按钮会被底栏挡住。 */
  position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center;
  padding: 20px; background: rgba(15, 23, 42, .58); backdrop-filter: blur(4px);
}
.wechat-qr-dialog {
  position: relative; width: min(100%, 380px); display: grid; gap: 14px;
  padding: 24px; border: 1px solid #d1fae5; border-radius: 22px; background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .30);
}
.wechat-qr-dialog h2 { margin: 0; color: #111827; font-size: 20px; text-align: center; }
.wechat-qr-hint { margin: 0; color: #4b5563; font-size: 13px; line-height: 1.6; text-align: center; }
.wechat-qr-close {
  position: absolute; top: 9px; right: 11px; width: 34px; height: 34px;
  border-radius: 50%; color: #6b7280; font-size: 28px; line-height: 1;
}
.wechat-qr-frame-wrap {
  overflow: hidden; min-height: 390px; border: 1px solid #e5e7eb; border-radius: 14px;
  background: #fff;
}
.wechat-qr-frame { width: 100%; height: 390px; border: 0; }
.wechat-qr-fallback {
  min-height: 42px; border: 1px solid #a7f3d0; border-radius: 12px;
  background: #ecfdf5; color: #146348; font-size: 13px; font-weight: 600;
}

.guest-risk-backdrop {
  position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center;
  padding: 20px; background: rgba(15, 23, 42, .54); backdrop-filter: blur(4px);
}
.guest-risk-dialog {
  width: min(100%, 480px); display: grid; gap: 16px; padding: 24px;
  border: 1px solid #fed7aa; border-radius: 20px; background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .26);
}
.guest-risk-icon {
  width: 46px; height: 46px; display: grid; place-items: center;
  border-radius: 14px; background: #fff7ed; color: #ea580c;
}
.guest-risk-dialog h2 { margin: 0; color: #111827; font-size: 21px; }
.guest-risk-intro { margin: 6px 0 0; color: #6b7280; font-size: 14px; line-height: 1.65; }
.guest-risk-dialog ul {
  margin: 0; padding: 14px 14px 14px 32px; border-radius: 14px;
  background: #fff7ed; color: #9a3412; font-size: 13px; line-height: 1.7;
}
.guest-risk-confirm {
  display: flex; align-items: center; gap: 10px; color: #374151;
  font-size: 13px; line-height: 1.55; cursor: pointer;
}
.guest-risk-actions { display: grid; grid-template-columns: 1fr 1.45fr; gap: 10px; }
.guest-risk-actions button {
  min-height: 44px; border: 1px solid #d1d5db; border-radius: 12px;
  background: #fff; color: #374151; font-size: 14px; font-weight: 600;
}
.guest-risk-actions button.is-primary { border-color: #111827; background: #111827; color: #fff; }
.guest-risk-actions button:disabled { opacity: .45; cursor: not-allowed; }

@keyframes authModeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .auth-mode-indicator { transition: none; }
  .auth-mode-panel { animation: none; }
}

@media (max-width: 768px) {
  /* 登录态采用屏幕高度驱动的紧凑布局，短屏不再因垂直居中裁掉标题。 */
  .auth-page--compact {
    height: 100svh !important;
    min-height: 100svh !important;
    overflow: hidden;
  }

  .auth-page--compact .auth-form-panel {
    flex: none;
    min-height: 0;
    height: calc(100svh - var(--compliance-footer-h, 38px));
    padding: max(16px, env(safe-area-inset-top)) clamp(16px, 5vw, 24px) max(12px, env(safe-area-inset-bottom));
    overflow: hidden;
  }

  .auth-page--compact .auth-form-content { max-width: 440px; }

  .auth-page--compact .auth-card {
    gap: clamp(14px, 2.3svh, 24px);
    padding: clamp(20px, 3.5svh, 30px) clamp(20px, 5.4vw, 30px);
  }

  .auth-page--compact .auth-card h1 {
    font-size: clamp(30px, 5.5vw, 36px);
    line-height: 1.15;
  }

  .auth-page--compact .auth-card h1 + p {
    font-size: clamp(12px, 3.1vw, 14px);
    line-height: 1.45;
  }

  .auth-page--compact .auth-card form.space-y-4 > :not([hidden]) ~ :not([hidden]) {
    margin-top: clamp(10px, 1.7svh, 16px) !important;
  }

  .auth-page--compact .guest-login-block { gap: 7px; }
  .auth-page--compact .guest-login-block > p { line-height: 1.45; }

  /* 文字维持 12px，只缩小勾选框和间距。 */
  .login-memory-options { -moz-column-gap: 8px; column-gap: 8px; row-gap: 4px; }
  .login-memory-options label { gap: 4px; }
  .login-memory-checkbox {
    margin: -4px;
    transform: scale(.5);
  }
  .guest-risk-confirm { gap: 6px; }
  .guest-risk-checkbox {
    margin: -4px;
    transform: scale(.5);
  }
}

@media (max-width: 768px) and (max-height: 700px) {
  .auth-page--compact .auth-form-panel {
    align-items: flex-start;
    padding-top: max(12px, env(safe-area-inset-top));
  }

  .auth-page--compact .auth-card {
    gap: 12px;
    padding: 18px 20px;
    border-radius: 16px;
  }

  .auth-page--compact .auth-card h1 {
    font-size: 30px;
    line-height: 1.08;
  }

  .auth-page--compact .auth-card h1 + p { margin-top: 5px; }

  .auth-page--compact .auth-mode-switch { padding: 3px; }
  .auth-page--compact .auth-mode-option { min-height: 34px; padding: 6px 8px; font-size: 13px; }
  .auth-page--compact .auth-mode-indicator { top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); }

  .auth-page--compact .auth-card label { margin-bottom: 4px; font-size: 12px; }
  .auth-page--compact .auth-card input { padding-top: 10px !important; padding-bottom: 10px !important; font-size: 13px; }

  .auth-page--compact .auth-card form.space-y-4 > :not([hidden]) ~ :not([hidden]) {
    margin-top: 9px !important;
  }

  .auth-page--compact .login-memory-options { font-size: 11px; }
  .auth-page--compact .guest-login-divider { font-size: 11px; }
  .auth-page--compact .guest-login-button { min-height: 42px; border-radius: 12px; }
  .auth-page--compact .guest-login-block > p { font-size: 11px; }
  .auth-page--compact .auth-form-content > p { margin-top: 10px; font-size: 10px; line-height: 1.35; }
}

@media (max-width: 768px) and (max-height: 600px) {
  .auth-page--compact .auth-form-panel { padding-top: max(8px, env(safe-area-inset-top)); }
  .auth-page--compact .auth-card { gap: 8px; padding: 12px 16px; border-radius: 14px; }
  .auth-page--compact .auth-card h1 { font-size: 27px; }
  .auth-page--compact .auth-card h1 + p { margin-top: 3px; font-size: 11px; }
  .auth-page--compact .auth-mode-option { min-height: 30px; padding: 4px 6px; font-size: 12px; }
  .auth-page--compact .auth-card label { margin-bottom: 2px; font-size: 11px; }
  .auth-page--compact .auth-card input { min-height: 38px; padding-top: 7px !important; padding-bottom: 7px !important; font-size: 12px; }
  .auth-page--compact .auth-card form.space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 6px !important; }
  .auth-page--compact .guest-login-divider { gap: 8px; font-size: 10px; }
  .auth-page--compact .guest-login-button { min-height: 38px; font-size: 12px; }
  .auth-page--compact .guest-login-block > p { font-size: 10px; }
  .auth-page--compact .auth-form-content > p { margin-top: 6px; font-size: 9px; }
}

@media (max-width: 640px) {
  .guest-risk-backdrop { align-items: end; padding: 0; }
  .guest-risk-dialog {
    width: 100%; max-height: calc(100dvh - 24px); overflow-y: auto;
    padding: 20px 18px calc(18px + env(safe-area-inset-bottom));
    border-radius: 22px 22px 0 0;
  }
  .guest-risk-actions { grid-template-columns: 1fr; }
  .guest-risk-actions .is-primary { grid-row: 1; }
  .wechat-qr-backdrop { align-items: end; padding: 0; }
  .wechat-qr-dialog {
    width: 100%; max-height: calc(100dvh - 16px); overflow-y: auto;
    padding: 20px 18px calc(18px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0;
  }
  .wechat-qr-frame-wrap { min-height: min(390px, 52dvh); }
  .wechat-qr-frame { height: min(390px, 52dvh); }
}

/* ──────────────────────────────────────────────────────────
   登录页布局：桌面端对齐“左侧内容 / 右侧视觉”参考构图；右侧视频区域不在此处改动。
   ────────────────────────────────────────────────────────── */
@media (min-width: 769px) {
  .auth-page > .auth-form-panel,
  .auth-page > section.hidden.md\:flex {
    flex: 0 0 50%;
    min-width: 0;
  }

  .auth-page .auth-form-panel {
    align-items: flex-start;
    justify-content: center;
    padding: 42px clamp(48px, 6.8vw, 108px) 32px;
    background: #fff !important;
  }

  .auth-page .auth-form-content {
    width: min(100%, 560px);
    max-width: 560px;
    padding-top: 4px;
  }

  .auth-page-heading {
    margin: 4px 0 38px;
    text-align: center;
  }

  .auth-page-heading h1 {
    margin: 0;
    color: #18342d;
    font-family: "Noto Serif SC", "Songti SC", SimSun, serif;
    font-size: clamp(42px, 3.95vw, 66px);
    font-weight: 600;
    letter-spacing: -.055em;
    line-height: 1.16;
  }

  .auth-page-heading-desktop {
    display: block;
    width: auto;
    max-width: none;
    margin-left: 0;
    text-align: center;
  }

  .auth-page-heading-mobile { display: none; }

  .auth-page-heading p {
    margin: 14px 0 0;
    color: #6b7d76;
    font-size: 16px;
    line-height: 1.7;
  }

  .auth-page .auth-card {
    gap: 22px;
    padding: 30px 34px 28px;
    border: 1px solid #d8e2db;
    border-radius: 28px;
    box-shadow: 0 20px 55px rgba(23, 52, 44, .10);
  }

  .auth-page .auth-card > form { margin-top: 0; }
  .auth-page .auth-card .guest-login-button { min-height: 50px; border-radius: 11px; }
}

@media (max-width: 768px) {
  /* 图一式移动端：页面标题独立置顶，登录能力完整保留在圆角卡片中。 */
  .auth-page--compact .auth-form-panel {
    align-items: flex-start;
    height: calc(100svh - var(--compliance-footer-h, 38px));
    padding: 27px 16px max(24px, env(safe-area-inset-bottom));
    overflow-y: auto;
    background: #fff !important;
  }

  .auth-page--compact .auth-form-content {
    width: min(100%, 500px);
    max-width: 500px;
    margin: 0 auto;
  }

  .auth-page-heading {
    margin: 0 0 36px;
    text-align: center;
  }

  .auth-page-heading h1 {
    margin: 0;
    color: #18342d;
    font-family: "Noto Serif SC", "Songti SC", SimSun, serif;
    font-size: 34px;
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: 1.15;
  }

  .auth-page-heading-desktop { display: none; }
  .auth-page-heading-mobile {
    display: inline-flex;
    align-items: center;
    gap: 9px;
  }

  .auth-page-heading-mobile img {
    width: 34px;
    height: 34px;
    -o-object-fit: contain;
       object-fit: contain;
  }

  .auth-page-heading p {
    margin: 10px 0 0;
    color: #6b7d76;
    font-size: 13px;
    line-height: 1.6;
  }

  .auth-page--compact .auth-card {
    gap: 18px;
    padding: 30px 28px 26px;
    border: 1px solid #d8e2db;
    border-radius: 34px;
    box-shadow: 0 18px 48px rgba(23, 52, 44, .10);
  }

  .auth-page--compact .auth-card .guest-login-button { min-height: 49px; border-radius: 11px; }
  .auth-page--compact .auth-card .guest-login-block > p { font-size: 12px; line-height: 1.55; }

  .auth-page--compact .auth-form-content > p { margin: 14px 4px 0; font-size: 11px; line-height: 1.5; }

  /* 图一的默认登录入口：不删功能，只将完整账号表单收起到“邮箱继续 / 密码登录”之后。 */
  .mobile-login-entry-card { display: none; }

  .auth-page--entry-start .mobile-login-entry-card {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 34px 32px 27px;
    border: 1px solid #d8e2db;
    border-radius: 34px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 18px 48px rgba(23, 52, 44, .10);
  }

  /* 保留二维码弹层可用：卡片本体不占位，只有完整表单内容暂时隐藏。 */
  .auth-page--entry-start .auth-card {
    display: contents;
  }

  .auth-page--entry-start .auth-card > :not(.wechat-qr-backdrop) {
    display: none;
  }

  .mobile-entry-wechat,
  .mobile-entry-primary,
  .mobile-entry-guest {
    width: 100%;
    min-height: 49px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 11px;
    font-size: 15px;
    font-weight: 700;
  }

  .mobile-entry-wechat,
  .mobile-entry-guest {
    border: 1px solid #ccd8d0;
    color: #193a31;
    background: #fff;
  }

  .mobile-entry-primary {
    margin-top: 20px;
    border: 1px solid #1d7f61;
    color: #fff;
    background: #1d7f61;
  }

  .mobile-entry-error { margin: 10px 0 -2px; color: #c2413b; font-size: 12px; text-align: center; }

  .mobile-entry-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 17px 0;
    color: #87948d;
    font-size: 12px;
  }

  .mobile-entry-divider::before,
  .mobile-entry-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #e1e7e3;
  }

  .mobile-email-field {
    min-height: 49px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 15px;
    border: 1px solid #ccd8d0;
    border-radius: 11px;
    color: #8a9891;
    background: #fff;
  }

  .mobile-email-field input {
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    outline: 0;
    color: #173931;
    background: transparent;
    font-size: 15px;
  }

  .mobile-entry-link {
    align-self: center;
    margin: 12px 0 8px;
    border: 0;
    color: #5f746b;
    background: transparent;
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .mobile-entry-guest { margin-top: 12px; }
  .mobile-entry-terms {
    margin: 12px 2px 0;
    color: #84918b;
    font-size: 12px;
    line-height: 1.65;
    text-align: center;
  }
  .mobile-entry-terms a { color: #183f34; text-decoration: underline; text-underline-offset: 3px; }
  .mobile-entry-guest-hint {
    margin: 8px 0 0;
    color: #8a9891;
    font-size: 12px;
    line-height: 1.55;
    text-align: center;
  }

  .mobile-entry-register {
    margin: 18px 0 0;
    color: #809087;
    font-size: 13px;
    text-align: center;
  }

  .mobile-entry-register button {
    margin-left: 3px;
    border: 0;
    color: #183f34;
    background: transparent;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

/* 网页端沿用参考图的单列登录卡片，右侧视频区保持现有实现。 */
@media (min-width: 769px) {
  .auth-page .auth-form-panel {
    align-items: center;
  }

  .auth-page--email-verification .auth-page-heading-desktop {
    width: auto;
    max-width: none;
    margin-left: 0;
    text-align: center;
  }

  .auth-page--entry-start .auth-page-heading {
    margin-bottom: 46px;
  }

  .auth-page--entry-start .auth-page-heading-desktop {
    width: auto;
    max-width: none;
    margin-left: 0;
    text-align: center;
  }

  .auth-page--entry-start .auth-page-heading p {
    margin-top: 13px;
    font-size: 15px;
  }

  .auth-page--entry-start .mobile-login-entry-card {
    width: min(100%, 484px);
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    padding: 34px 34px 29px;
    border: 1px solid #d8e2db;
    border-radius: 34px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 20px 55px rgba(23, 52, 44, .10);
  }

  /* 完整密码/验证码表单仍存在，点击入口后再显示；弹层不受影响。 */
  .auth-page--entry-start .auth-card { display: contents; }
  .auth-page--entry-start .auth-card > :not(.wechat-qr-backdrop) { display: none; }

  .auth-page--entry-start .mobile-entry-wechat,
  .auth-page--entry-start .mobile-entry-primary,
  .auth-page--entry-start .mobile-entry-guest {
    width: 100%;
    min-height: 49px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 11px;
    font-size: 15px;
    font-weight: 700;
  }

  .auth-page--entry-start .mobile-entry-wechat,
  .auth-page--entry-start .mobile-entry-guest {
    border: 1px solid #ccd8d0;
    color: #193a31;
    background: #fff;
  }

  .auth-page--entry-start .mobile-entry-primary {
    margin-top: 20px;
    border: 1px solid #1d7f61;
    color: #fff;
    background: #1d7f61;
  }

  .auth-page--entry-start .mobile-entry-error { margin: 10px 0 -2px; color: #c2413b; font-size: 12px; text-align: center; }

  .auth-page--entry-start .mobile-entry-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 17px 0;
    color: #87948d;
    font-size: 12px;
  }

  .auth-page--entry-start .mobile-entry-divider::before,
  .auth-page--entry-start .mobile-entry-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #e1e7e3;
  }

  .auth-page--entry-start .mobile-email-field {
    min-height: 49px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 15px;
    border: 1px solid #ccd8d0;
    border-radius: 11px;
    color: #8a9891;
    background: #fff;
  }

  .auth-page--entry-start .mobile-email-field input {
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    outline: 0;
    color: #173931;
    background: transparent;
    font-size: 15px;
  }

  .auth-page--entry-start .mobile-entry-terms {
    margin: 12px 2px 0;
    color: #84918b;
    font-size: 12px;
    line-height: 1.65;
    text-align: center;
  }

  .auth-page--entry-start .mobile-entry-terms a { color: #183f34; text-decoration: underline; text-underline-offset: 3px; }

  .auth-page--entry-start .mobile-entry-link {
    align-self: center;
    margin: 12px 0 8px;
    border: 0;
    color: #5f746b;
    background: transparent;
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .auth-page--entry-start .mobile-entry-guest { margin-top: 12px; }
  .auth-page--entry-start .mobile-entry-guest-hint {
    margin: 8px 0 0;
    color: #8a9891;
    font-size: 12px;
    line-height: 1.55;
    text-align: center;
  }

  .auth-page--entry-start .mobile-entry-register {
    margin: 18px 0 0;
    color: #809087;
    font-size: 13px;
    text-align: center;
  }

  .auth-page--entry-start .mobile-entry-register button {
    margin-left: 3px;
    border: 0;
    color: #183f34;
    background: transparent;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

/* 常规手机高度将登录组垂直居中；短屏沿用上方起始并允许滚动。 */
@media (max-width: 768px) and (min-height: 701px) {
  .auth-page--compact .auth-form-panel {
    align-items: center;
  }
}
/* ========== 脉诊V2：双手寸关尺（简化版） ========== */

._card_1ch97_3 {
  margin-bottom: 14px;
}

._cardHead_1ch97_7 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: var(--fs-md);
  color: var(--c-text);
  margin-bottom: 8px;
}

._headIcon_1ch97_17 {
  display: inline-flex;
  align-items: center;
  color: var(--c-green);
}

/* 语音录入按钮（脉诊模块标题行） */
._voiceBtn_1ch97_24 {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  color: var(--c-muted);
  background: var(--c-surface);
  font-size: var(--fs-xs);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.18s;
}

._voiceBtn_1ch97_24:hover:not(:disabled) {
  border-color: var(--c-green);
  color: var(--c-green);
  background: var(--c-green-light, #eef8f1);
}

._voiceBtn_1ch97_24:disabled {
  opacity: .5;
  cursor: not-allowed;
}

._voiceBtnActive_1ch97_51 {
  border-color: var(--c-danger, #e53935);
  color: #fff;
  background: var(--c-danger, #e53935);
  animation: _voicePulse_1ch97_1 1.4s ease-in-out infinite;
}

._voiceBtnActive_1ch97_51:hover:not(:disabled) {
  background: #c62828;
  color: #fff;
  border-color: #c62828;
}

@keyframes _voicePulse_1ch97_1 {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.65; }
}

._moduleClear_1ch97_69 {
  padding: 4px 10px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  color: var(--c-muted);
  background: var(--c-surface);
  font-size: var(--fs-xs);
  font-weight: 600;
  cursor: pointer;
}

._moduleClear_1ch97_69:hover:not(:disabled) {
  border-color: var(--c-green);
  color: var(--c-green);
  background: var(--c-green-light, #eef8f1);
}

._moduleClear_1ch97_69:disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* ========== 语音实时转写条（临时展示，不入库） ========== */

._transcriptBar_1ch97_93 {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  margin-bottom: 8px;
  border-radius: var(--r-md);
  background: var(--c-green-light, #eef8f1);
  border: 1px solid var(--c-green-light, #eef8f1);
}

._transcriptDot_1ch97_104 {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-danger, #e53935);
  flex-shrink: 0;
  animation: _transcriptPulse_1ch97_1 1s ease-in-out infinite;
}

@keyframes _transcriptPulse_1ch97_1 {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.8); }
}

._transcriptText_1ch97_118 {
  font-size: var(--fs-xs);
  color: var(--c-text);
  line-height: 1.4;
  word-break: break-all;
  flex: 1;
  min-width: 0;
}

/* ========== AI 识别结果 toast ========== */

._pulseToast_1ch97_129 {
  padding: 5px 12px;
  margin-bottom: 8px;
  border-radius: var(--r-md);
  background: var(--c-green-light, #eef8f1);
  color: var(--c-green-dark, #0f5c3e);
  font-size: var(--fs-xs);
  font-weight: 600;
  text-align: center;
}

._pulseToastErr_1ch97_140 {
  background: #fef0f0;
  color: var(--c-danger, #e53935);
}

/* ========== 单手板块 ========== */

._handSection_1ch97_147 {
  margin-bottom: 10px;
}

._handSection_1ch97_147:last-child {
  margin-bottom: 0;
}

._handTitle_1ch97_155 {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--c-green);
  text-align: center;
  padding: 5px 0;
  border-bottom: 2px solid var(--c-green-light);
  margin-bottom: 6px;
  letter-spacing: 2px;
}

/* 寸/关/尺 三个区域一行 */
._regionsRow_1ch97_167 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

/* ========== 寸/关/尺 区域 ========== */

._region_1ch97_167 {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1.5px solid var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-surface);
  padding: 8px 6px 10px;
  cursor: pointer;
  min-height: 78px;
  transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

._region_1ch97_167:hover,
._region_1ch97_167:focus-visible {
  border-color: var(--c-green);
  box-shadow: 0 0 0 2px var(--c-green-light);
}

._regionActive_1ch97_196 {
  border-color: var(--c-green);
  background: var(--c-green-light, #eef8f1);
}

._regionClear_1ch97_201 {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: var(--c-muted);
  font-size: var(--fs-xs);
  cursor: pointer;
  padding: 2px 4px;
  line-height: 1;
}

._regionClear_1ch97_201:hover {
  color: var(--c-danger, #e53935);
}

._regionHead_1ch97_219 {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-bottom: 4px;
}

._regionLabel_1ch97_227 {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--c-text);
  letter-spacing: 1px;
}

._regionBody_1ch97_234 {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
}

._regionPlaceholder_1ch97_242 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  opacity: .65;
}

._regionChips_1ch97_248 {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
}

._regionChip_1ch97_248 {
  /* 必须按内容宽度，否则会在 flex 容器里被拉满一行 */
  flex: 0 0 auto;
  width: -moz-max-content;
  width: max-content;
  display: inline-flex;
  align-items: center;
  padding: 0 4px 0 8px;
  border-radius: 8px;
  background: var(--c-green);
  color: #fff;
  white-space: nowrap;
  height: 26px;
}

._regionChipText_1ch97_271 {
  font-size: var(--fs-md);
  line-height: 1;
  font-weight: 500;
}

._regionChipRemove_1ch97_277 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}

._regionChipRemove_1ch97_277:hover {
  color: #fff;
  background: rgba(0, 0, 0, 0.18);
}

/* ========== 二十八脉选择弹窗 ========== */

._modalOverlay_1ch97_304 {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 12px;
}

._modal_1ch97_304 {
  background: var(--c-bg);
  border-radius: var(--r-lg);
  padding: 18px 16px 14px;
  max-width: 480px;
  width: 100%;
  max-height: 84vh;
  overflow-y: auto;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.22);
}

._modalTitle_1ch97_326 {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--c-text);
  text-align: center;
  margin-bottom: 4px;
}

._modalHint_1ch97_334 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  text-align: center;
  margin-bottom: 14px;
}

._modalGrid_1ch97_341 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}

._modalChip_1ch97_348 {
  padding: 9px 4px;
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-surface);
  cursor: pointer;
  font-size: var(--fs-sm);
  color: var(--c-text);
  text-align: center;
  transition: all 0.15s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

._modalChip_1ch97_348:hover:not(:disabled) {
  border-color: var(--c-green);
  color: var(--c-green);
  background: var(--c-green-light, #eef8f1);
}

._modalChipSelected_1ch97_367 {
  border-color: var(--c-green);
  color: #fff;
  background: var(--c-green);
}

._modalChipSelected_1ch97_367:hover:not(:disabled) {
  background: var(--c-green-dark);
  color: #fff;
}

._modalChipDisabled_1ch97_378 {
  opacity: .35;
  cursor: not-allowed;
  background: var(--c-bg);
  color: var(--c-muted);
  border-style: dashed;
}

._modalFooter_1ch97_386 {
  display: flex;
  justify-content: center;
}

._modalCloseBtn_1ch97_391 {
  padding: 8px 28px;
  border: none;
  border-radius: var(--r-md);
  background: var(--c-green);
  cursor: pointer;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #fff;
  transition: all 0.15s;
}

._modalCloseBtn_1ch97_391:hover {
  background: var(--c-green-dark);
}

/* ========== 响应式 ========== */
@media (max-width: 640px) {
  ._handTitle_1ch97_155 {
    font-size: 12px;
    padding: 4px 0;
    margin-bottom: 5px;
    letter-spacing: 1px;
  }
  ._regionsRow_1ch97_167 {
    gap: 6px;
  }
  ._region_1ch97_167 {
    padding: 6px 4px 8px;
    min-height: 62px;
    border-radius: 9px;
  }
  ._regionClear_1ch97_201 {
    padding: 2px 3px;
    font-size: 10px;
  }
  ._regionLabel_1ch97_227 {
    font-size: 12px;
  }
  ._regionPlaceholder_1ch97_242 {
    font-size: 10.5px;
  }
  ._regionChip_1ch97_248 {
    padding: 0 3px 0 6px;
    height: 22px;
    border-radius: 6px;
  }
  ._regionChipText_1ch97_271 {
    font-size: 12.5px;
  }
  ._regionChipRemove_1ch97_277 {
    width: 16px;
    height: 16px;
    min-width: 0;
    min-height: 0;
    margin-left: 1px;
    font-size: 13px;
    border-radius: 3px;
  }
  /* 覆盖 global.css 的 button/[role=button] { min-width/height: 44px }，
     否则 chip 内的 × 按钮会被撑成 44×44，把"数脉"两侧撑出大块空白。 */
  ._regionChip_1ch97_248 {
    min-width: 0;
    min-height: 0;
  }
  ._regionClear_1ch97_201 {
    min-width: 0;
    min-height: 0;
  }
  ._modal_1ch97_304 {
    max-width: 96vw;
    padding: 14px 12px 12px;
  }
  ._modalGrid_1ch97_341 {
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
  }
  ._modalChip_1ch97_348 {
    padding: 9px 2px;
    font-size: var(--fs-xs);
  }
}
/* 候选处方单选药弹窗（沿用本仓 modalOverlay/modalPanel 约定，双栏：左树 + 右编辑） */

._modalOverlay_1wwtl_3 {
  position: fixed;
  inset: 0;
  /* 处方参考抽屉/开关最高为 50000；选药弹窗必须盖住它们且不改变展开状态。 */
  z-index: 50010;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overscroll-behavior: none;
}

._modalPanel_1wwtl_16 {
  width: 100%;
  max-width: 880px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  background: var(--c-surface);
  border-radius: var(--r-lg);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
  padding: 18px 20px;
  overscroll-behavior: contain;
}

._modalHead_1wwtl_29 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

._modalTitle_1wwtl_36 {
  margin: 0;
  font-size: var(--fs-md);
  font-weight: 600;
}

/* 双栏主体 */
._body_1wwtl_43 {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 14px;
  min-height: 0;
  flex: 1;
}

._treeCol_1wwtl_51,
._editCol_1wwtl_52 {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--c-line);
  border-radius: 10px;
  background: var(--c-bg);
}

._treeCol_1wwtl_51 {
  padding: 10px;
  overflow-y: auto;
  overflow-x: hidden;
}

._editCol_1wwtl_52 {
  padding: 10px;
  overflow-y: auto;
}

/* 左树工具栏 */
._treeToolbar_1wwtl_74 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

._treeHint_1wwtl_81 {
  margin-left: auto;
  font-size: var(--fs-xs);
  color: var(--c-muted);
}

._tree_1wwtl_51 {
  flex: none;
  overflow: visible;
}

._empty_1wwtl_92 {
  color: var(--c-muted);
  font-size: var(--fs-sm);
  padding: 16px 4px;
  text-align: center;
}

/* 方剂节点 */
._formulaNode_1wwtl_100 {
  margin-bottom: 8px;
  padding: 10px;
  border: 1px solid var(--c-line);
  border-radius: 9px;
  background: var(--c-surface);
}

._formulaNode_1wwtl_100:last-child {
  margin-bottom: 0;
}

._formulaLocked_1wwtl_112 {
  opacity: 0.55;
}

._formulaHead_1wwtl_116 {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  grid-template-areas:
    "expand name action"
    ". meta action";
  align-items: start;
  -moz-column-gap: 8px;
       column-gap: 8px;
  row-gap: 5px;
  margin-bottom: 8px;
}

._expandBtn_1wwtl_128 {
  grid-area: expand;
  align-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 3px 2px;
}

._expandIcon_1wwtl_142 {
  display: block;
  width: 14px;
  height: 12px;
  -o-object-fit: contain;
     object-fit: contain;
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform 160ms ease;
}

._expandIconCollapsed_1wwtl_152 {
  transform: rotate(-90deg);
}

._formulaName_1wwtl_156 {
  grid-area: name;
  min-width: 0;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.45;
  color: var(--c-text);
  overflow-wrap: anywhere;
  word-break: break-word;
}

._formulaMeta_1wwtl_167 {
  grid-area: meta;
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 6px;
}

._miniBtnGhost_1wwtl_176._formulaAction_1wwtl_176 {
  grid-area: action;
  align-self: center;
  margin-left: 0;
  min-width: 72px;
  white-space: nowrap;
  text-align: center;
  font-size: 0;
}

._formulaAction_1wwtl_176::after {
  content: "全选该方";
  font-size: var(--fs-xs);
}

._formulaAction_1wwtl_176._formulaPicked_1wwtl_191::after {
  content: "取消全选";
}

._moduleBadge_1wwtl_195 {
  flex: none;
  white-space: nowrap;
  font-size: var(--fs-xs);
  color: var(--c-green-dark);
  background: var(--c-green-light);
  border-radius: 4px;
  padding: 1px 6px;
}

/* 方剂剂型标签统一（所有剂型均显示）：绿系用于汤，暖系用于丸/散/膏/酒/丹 */
._typeTag_1wwtl_206 {
  display: inline-flex;
  align-items: center;
  flex: none;
  white-space: nowrap;
  font-size: 10px;
  border-radius: 4px;
  padding: 0 5px;
  line-height: 18px;
  font-weight: 600;
}
._typeTagDecoction_1wwtl_217 { color: var(--c-green-dark); background: var(--c-green-light); }
._typeTagPill_1wwtl_218      { color: #92400e; background: #fef3c7; }
._typeTagPowder_1wwtl_219    { color: #92400e; background: #fef3c7; }
._typeTagPaste_1wwtl_220     { color: #92400e; background: #fef3c7; }
._typeTagWine_1wwtl_221      { color: #92400e; background: #fef3c7; }
._typeTagPellet_1wwtl_222    { color: #92400e; background: #fef3c7; }

._herbRowFixed_1wwtl_224 {
  opacity: 0.62;
  cursor: default;
}
._herbRowFixed_1wwtl_224:hover {
  background: transparent;
}

/* 固定制剂药材标记：— 未入围、✓ 已入方 */
._herbCheckFixed_1wwtl_233 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  min-height: 20px;
  font-size: 13px;
  color: var(--c-muted);
}

/* 方剂已全选状态 */
._formulaPicked_1wwtl_191 {
  color: var(--c-green-dark) !important;
  border-color: var(--c-green) !important;
  background: var(--c-green-light) !important;
}

._partialHint_1wwtl_250 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  margin-top: 2px;
  padding-left: 22px;
}

._conversionBadge_1wwtl_257 {
  font-size: var(--fs-xs);
  color: #9a5b00;
  background: #fff4d8;
  border: 1px solid #efcf86;
  border-radius: 4px;
  padding: 1px 5px;
}

._conversionNotice_1wwtl_266 {
  margin: 6px 12px 8px 34px;
  padding: 7px 9px;
  color: #7d4b00;
  background: #fffaf0;
  border-left: 3px solid #d99a28;
  border-radius: 3px;
  font-size: var(--fs-xs);
  line-height: 1.55;
}

._candidateSource_1wwtl_277 {
  margin: 6px 12px 8px 34px;
  color: var(--c-muted, #66756c);
  font-size: var(--fs-xs);
  line-height: 1.55;
  overflow-wrap: anywhere;
}

/* 药材行 */
._herbList_1wwtl_286 {
  padding-left: 6px;
}

._herbRow_1wwtl_224 {
  padding: 4px 0 4px 16px;
  border-radius: 6px;
}

._herbRow_1wwtl_224:hover {
  background: rgba(0, 0, 0, 0.03);
}
/* 勾选框调小（用户反馈"方框过大"）：覆盖 Checkbox 组件的 h-4 w-4(16px) + 图标 */
/* 选药勾选：Unicode 字符（与辨模块"使用该思路"一致），替代 Radix 方框控件——更轻、尺寸跟随字号 */
._herbCheck_1wwtl_233 {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  min-height: 20px;
}

._herbMain_1wwtl_315 {
  display: flex;
  align-items: center;
  gap: 8px;
}

._herbName_1wwtl_321 {
  font-size: var(--fs-sm);
  color: var(--c-text);
}

._procTag_1wwtl_326 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
}

._herbEffect_1wwtl_331 {
  margin: 2px 0 2px 30px;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  line-height: 1.4;
}

._miss_1wwtl_338 {
  color: #b45309;
}

/* 左下角来源声明 */
._sourceNote_1wwtl_343 {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--c-line);
  font-size: var(--fs-xs);
  color: var(--c-muted);
}

/* 右栏编辑区 */
._editHead_1wwtl_352 {
  font-weight: 600;
  font-size: var(--fs-sm);
  margin-bottom: 8px;
  color: var(--c-text);
}

._editList_1wwtl_359 {
  flex: 1;
  overflow-y: auto;
}

._editRow_1wwtl_364 {
  padding: 6px 4px;
  border-bottom: 1px solid var(--c-line);
}

._editRow_1wwtl_364:last-child {
  border-bottom: none;
}

/* 已选药材分组：汤剂 / 丸剂·方名 等 */
._editGroup_1wwtl_374 {
  margin-bottom: 10px;
}
._editGroupHead_1wwtl_377 {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 4px 4px 0;
  border-bottom: 1px solid var(--c-green);
  margin-bottom: 2px;
}
._editGroupLabel_1wwtl_385 {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--c-green-dark);
}
._editGroupBadge_1wwtl_390 {
  font-size: var(--fs-xs);
  color: #92400e;
  background: #fef3c7;
  border-radius: 4px;
  padding: 0 5px;
}

._editName_1wwtl_398 {
  font-size: var(--fs-sm);
  font-weight: 600;
  margin-bottom: 4px;
}

._refDose_1wwtl_404 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  margin-bottom: 6px;
}

._doseInputWrap_1wwtl_410 {
  display: flex;
  align-items: center;
  gap: 6px;
}

._doseInput_1wwtl_410 {
  width: 84px;
  padding: 5px 8px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  font-size: var(--fs-sm);
  background: var(--c-surface);
  outline: none;
  box-sizing: border-box;
}

._doseInput_1wwtl_410:focus {
  border-color: var(--c-green);
}

._unitInput_1wwtl_431 {
  width: 48px;
  padding: 5px 6px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  font-size: var(--fs-sm);
  background: var(--c-surface);
  outline: none;
  box-sizing: border-box;
}

/* 删除已选药材按钮（行末，红色描边圆形 X——与舌诊/面诊照片删除同款） */
._delBtn_1wwtl_443 {
  margin-left: auto;
  border: none;
  background: transparent;
  color: var(--c-red);
  font-size: 14px;
  line-height: 1;
  width: 20px;
  height: 20px;
  padding: 0;
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  -webkit-text-stroke: 1.5px var(--c-red);
  text-shadow: 0 0 2px #fff, 0 0 4px #fff, 0 0 6px rgba(255, 255, 255, 0.9);
}

._delBtn_1wwtl_443:hover {
  background: var(--c-red-light);
}

/* 添加药材：搜索框 + 匹配下拉 */
._searchBox_1wwtl_467 {
  position: relative;
  margin-bottom: 8px;
}

._searchInput_1wwtl_472 {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 10px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  font-size: var(--fs-sm);
  background: var(--c-surface);
  outline: none;
}

._searchInput_1wwtl_472:focus {
  border-color: var(--c-green);
}

._matchList_1wwtl_487 {
  margin-top: 4px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  background: var(--c-surface);
  max-height: 220px;
  overflow-y: auto;
}

._matchHint_1wwtl_496 {
  padding: 8px 10px;
  font-size: var(--fs-xs);
  color: var(--c-muted);
}

._matchItem_1wwtl_502 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  border: none;
  border-bottom: 1px solid var(--c-line);
  background: var(--c-surface);
  padding: 6px 10px;
  cursor: pointer;
  font-family: inherit;
}

._matchItem_1wwtl_502:last-of-type {
  border-bottom: none;
}

._matchItem_1wwtl_502:hover:not(:disabled) {
  background: var(--c-green-light);
}

._matchItem_1wwtl_502:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

._matchName_1wwtl_531 {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--c-text);
}

._matchPinyin_1wwtl_537 {
  font-size: var(--fs-xs);
  color: var(--c-green-dark);
  background: var(--c-green-light);
  border-radius: 3px;
  padding: 0 4px;
}

._matchRef_1wwtl_545 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
}

._matchEffect_1wwtl_550 {
  flex-basis: 100%;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  line-height: 1.4;
}

._matchItemCustom_1wwtl_557 {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  border: none;
  border-top: 1px dashed var(--c-line);
  background: var(--c-bg);
  color: var(--c-green-dark);
  font-size: var(--fs-xs);
  padding: 7px 10px;
  cursor: pointer;
  font-family: inherit;
}

._matchItemCustom_1wwtl_557:hover {
  background: var(--c-green-light);
}

/* 按钮 */
._miniBtn_1wwtl_176 {
  border: none;
  background: var(--c-green);
  color: #fff;
  font-size: var(--fs-xs);
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
}

._miniBtn_1wwtl_176:hover {
  filter: brightness(1.05);
}

._miniBtnGhost_1wwtl_176 {
  margin-left: auto;
  border: 1px solid var(--c-line);
  background: var(--c-surface);
  color: var(--c-text);
  font-size: var(--fs-xs);
  padding: 3px 8px;
  border-radius: 6px;
  cursor: pointer;
}

._miniBtnGhost_1wwtl_176:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

._actions_1wwtl_607 {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 14px;
}

._btnGhost_1wwtl_614 {
  border: 1px solid var(--c-line);
  background: var(--c-surface);
  color: var(--c-text);
  font-size: var(--fs-sm);
  padding: 8px 16px;
  border-radius: 8px;
  cursor: pointer;
}

._btnPrimary_1wwtl_624 {
  border: none;
  background: var(--c-green);
  color: #fff;
  font-size: var(--fs-sm);
  padding: 8px 16px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 600;
}

._btnPrimary_1wwtl_624:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ===== 移动端：底部抽屉 + 标签单栏切换（桌面 ≥720 双栏布局保持不变） =====
   参考 apple-design skill：底部抽屉(spatial consistency §7)、材料/深度(§12)、
   触控按下即响应(§1)、标签做 wayfinding(§16)、大触控目标、reduced-motion(§14)。 */
._sheetGrabber_1wwtl_643,
._tabBar_1wwtl_644 {
  display: none;
}

/* 加减化裁建议区（建议方剂底部，桌面+移动端共用） */
._modSection_1wwtl_649 { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--c-line); }
._modTitle_1wwtl_650 { font-size: var(--fs-sm); font-weight: 700; color: var(--c-text); margin-bottom: 6px; display: flex; align-items: center; gap: 5px; }
._modItem_1wwtl_651 { padding: 8px 10px; border: 1px solid var(--c-line); border-radius: 8px; margin-bottom: 6px; background: var(--c-bg); }
._modHead_1wwtl_652 { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
._modTarget_1wwtl_653 { font-size: var(--fs-xs); font-weight: 600; color: var(--c-text); }
._modHerbs_1wwtl_654 { font-size: var(--fs-xs); color: var(--c-text); line-height: 1.5; word-break: break-all; overflow-wrap: break-word; }
._modExplain_1wwtl_655 { font-size: var(--fs-xs); color: var(--c-muted); margin-top: 3px; line-height: 1.5; word-break: break-all; overflow-wrap: break-word; }

@media (max-width: 720px) {
  ._modalOverlay_1wwtl_3 {
    align-items: flex-end;
    padding: 0;
    background: rgba(0, 0, 0, 0.5);
  }
  ._modalPanel_1wwtl_16 {
    width: 100%;
    max-width: 100%;
    height: 88vh;
    max-height: 92vh;
    border-radius: 18px 18px 0 0;
    padding: 0;
    overflow: hidden;
    animation: _cpmSheetUp_1wwtl_1 0.34s cubic-bezier(0.22, 1, 0.36, 1);
    transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
  }
  /* 拖动中：禁用过渡，让抽屉实时跟手；松手后恢复过渡用于回弹/滑出 */
  ._modalPanel_1wwtl_16._dragging_1wwtl_675 {
    transition: none;
  }
  @keyframes _cpmSheetUp_1wwtl_1 {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
  }

  /* 顶部抓手（iOS 抽屉惯用 affordance） */
  ._sheetGrabber_1wwtl_643 {
    display: block;
    width: 38px;
    height: 5px;
    border-radius: 3px;
    background: var(--c-line);
    margin: 8px auto 2px;
    flex: none;
    cursor: grab;
    touch-action: none; /* 抓手区禁止页面滚动，pointer 全权接管下拉手势 */
  }

  ._modalHead_1wwtl_29 {
    padding: 4px 16px 0;
    margin-bottom: 10px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    touch-action: none; /* 头部整条作为下拉关闭的拖动区 */
  }
  ._modalTitle_1wwtl_36 { font-size: 16px; }
  /* 标签栏：建议方剂 ↔ 已选药材(N) */
  ._tabBar_1wwtl_644 {
    display: flex;
    gap: 6px;
    padding: 0 12px 10px;
    flex: none;
  }
  ._tabBtn_1wwtl_710 {
    flex: 1;
    border: none;
    background: var(--c-bg);
    color: var(--c-muted);
    font-size: 13px;
    font-weight: 600;
    padding: 10px 8px;
    border-radius: 10px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: background 0.15s, color 0.15s, transform 0.1s;
  }
  ._tabBtn_1wwtl_710:active { transform: scale(0.97); }
  ._tabBtnActive_1wwtl_727 {
    background: var(--c-green);
    color: #fff;
  }
  ._tabCount_1wwtl_731 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: rgba(0, 0, 0, 0.12);
    font-size: 11px;
    font-weight: 700;
  }
  ._tabBtnActive_1wwtl_727 ._tabCount_1wwtl_731 {
    background: rgba(255, 255, 255, 0.28);
  }

  /* 主体：单栏，按标签显隐（桌面有同 class 但无匹配规则，双栏不受影响） */
  ._body_1wwtl_43 {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 12px;
    flex: 1 1 auto;
    min-height: 0;
  }
  ._bodyTabFormulas_1wwtl_755 ._editCol_1wwtl_52 { display: none; }
  ._bodyTabSelected_1wwtl_756 ._treeCol_1wwtl_51 { display: none; }
  ._treeCol_1wwtl_51,
  ._editCol_1wwtl_52 {
    border: none;
    background: transparent;
    padding: 0;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  /* 左树工具栏 */
  ._treeToolbar_1wwtl_74 { gap: 6px; margin-bottom: 10px; }
  ._miniBtnGhost_1wwtl_176 { margin-left: 0; padding: 5px 9px; }

  /* 方剂头保持两行网格：长方名优先，剂型与来源在下一行横排 */
  ._formulaHead_1wwtl_116 {
    grid-template-columns: 18px minmax(0, 1fr) auto;
    -moz-column-gap: 7px;
         column-gap: 7px;
    row-gap: 4px;
  }
  ._formulaAction_1wwtl_176 {
    min-width: 68px;
    padding: 5px 8px;
  }
  ._moduleBadge_1wwtl_195 { font-size: 10px; }

  /* 药材行：卡片化 + 大触控目标 + 按压反馈 */
  ._herbList_1wwtl_286 { padding-left: 0; }
  ._herbRow_1wwtl_224 {
    padding: 6px 10px;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
    margin-bottom: 4px;
  }
  ._herbRow_1wwtl_224:active { background: var(--c-green-light); }
  ._herbMain_1wwtl_315 { gap: 10px; min-height: 28px; }
  ._herbName_1wwtl_321 { font-size: 14px; }
  ._herbEffect_1wwtl_331 { margin: 4px 0 0 34px; font-size: 11.5px; }

  /* 搜索 + 匹配 */
  ._searchBox_1wwtl_467 { margin-bottom: 10px; }
  ._searchInput_1wwtl_472 { padding: 10px 12px; font-size: 14px; border-radius: 10px; }
  ._matchList_1wwtl_487 { max-height: 42vh; border-radius: 10px; }
  ._matchItem_1wwtl_502 { padding: 10px 12px; }
  ._matchItem_1wwtl_502:active:not(:disabled) { background: var(--c-green-light); }
  ._matchItemCustom_1wwtl_557 { padding: 10px 12px; }
  ._matchItemCustom_1wwtl_557:active { background: var(--c-green-light); }

  /* 已选编辑行：卡片化 */
  ._editHead_1wwtl_352 { padding: 0 2px; }
  ._editRow_1wwtl_364 {
    padding: 12px;
    border-radius: 12px;
    background: var(--c-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    margin-bottom: 8px;
    border-bottom: none;
  }
  ._editName_1wwtl_398 { font-size: 14px; }
  ._doseInputWrap_1wwtl_410 { gap: 6px; flex-wrap: wrap; }
  ._doseInput_1wwtl_410 { width: 76px; padding: 8px 10px; font-size: 14px; }
  ._unitInput_1wwtl_431 { width: 46px; padding: 8px 6px; font-size: 14px; }

  ._sourceNote_1wwtl_343 { margin: 10px 2px 0; }

  /* 底部操作栏：主按钮占主、确定显眼 */
  ._actions_1wwtl_607 {
    gap: 8px;
    padding: 10px 12px calc(12px + var(--compliance-footer-h, 38px) + env(safe-area-inset-bottom, 0px));
    margin-top: 8px;
    background: var(--c-surface);
    border-top: 1px solid var(--c-line);
    flex: none;
  }
  ._btnGhost_1wwtl_614 { flex: 0 0 auto; padding: 12px 16px; border-radius: 10px; }
  ._btnPrimary_1wwtl_624 {
    flex: 1 1 auto;
    padding: 12px;
    font-size: 15px;
    border-radius: 10px;
  }
  ._btnPrimary_1wwtl_624:active { transform: scale(0.98); }

  /* 字体整体收紧、行更紧凑（用户反馈"字体缩小、体验更好"）—— 同 media query 内后置覆盖前置 */
  ._modalTitle_1wwtl_36 { font-size: 15px; }
  ._modalHead_1wwtl_29 { margin-bottom: 8px; }
  ._tabBar_1wwtl_644 { padding: 0 10px 8px; }
  ._tabBtn_1wwtl_710 { font-size: 12px; padding: 8px 6px; border-radius: 9px; }
  ._tabCount_1wwtl_731 { min-width: 16px; height: 16px; font-size: 10px; }
  ._treeToolbar_1wwtl_74 { margin-bottom: 8px; }
  ._treeHint_1wwtl_81,
  ._miniBtn_1wwtl_176,
  ._miniBtnGhost_1wwtl_176 { font-size: 11px; }
  ._formulaName_1wwtl_156 { font-size: 13.5px; line-height: 1.4; }
  ._moduleBadge_1wwtl_195 { font-size: 9.5px; padding: 1px 5px; }
  ._formulaNode_1wwtl_100 { margin-bottom: 6px; padding: 8px; }
  /* 建议方剂列整列可滚：让 tree 之后的「加减化裁建议」与来源声明可滚到
     （原先 tree flex:1 占满 + treeCol overflow:hidden 把它们裁掉，导致滑不到、看不到） */
  ._treeCol_1wwtl_51 { overflow-y: auto; overflow-x: hidden; }
  ._tree_1wwtl_51 { flex: none; overflow: visible; }
  ._herbRow_1wwtl_224 { padding: 3px 6px; margin-bottom: 3px; border-radius: 8px; background: transparent; box-shadow: none; cursor: pointer; }
  ._herbMain_1wwtl_315 { gap: 6px; min-height: 18px; }
  ._herbName_1wwtl_321 { font-size: 12.5px; }
  ._procTag_1wwtl_326 { font-size: 10px; }
  ._herbEffect_1wwtl_331 { margin: 3px 0 0 30px; font-size: 10.5px; line-height: 1.35; }

  /* 窄屏：药材行内联项可换行 */
  ._herbMain_1wwtl_315 { flex-wrap: wrap; }
  ._searchInput_1wwtl_472 { padding: 8px 10px; font-size: 12.5px; }
  ._matchItem_1wwtl_502 { padding: 8px 10px; }
  ._matchName_1wwtl_531 { font-size: 12.5px; }
  ._matchPinyin_1wwtl_537,
  ._matchRef_1wwtl_545,
  ._matchEffect_1wwtl_550 { font-size: 10px; }
  ._matchItemCustom_1wwtl_557 { padding: 8px 10px; font-size: 10.5px; }
  ._editHead_1wwtl_352 { font-size: 12px; }
  ._editRow_1wwtl_364 { padding: 6px 8px; margin-bottom: 4px; border-radius: 8px; background: transparent; box-shadow: none; }
  ._editName_1wwtl_398 { font-size: 12.5px; font-weight: 400; }
  ._refDose_1wwtl_404 { font-size: 10px; margin-bottom: 4px; }
  ._doseInput_1wwtl_410 { width: 64px; padding: 6px 8px; font-size: 12.5px; }
  ._unitInput_1wwtl_431 { width: 40px; padding: 6px 4px; font-size: 12.5px; }
  ._sourceNote_1wwtl_343 { font-size: 10px; }
  ._btnGhost_1wwtl_614 { padding: 9px 14px; font-size: 12.5px; }
  ._btnPrimary_1wwtl_624 { padding: 10px; font-size: 13.5px; }

  /* 已选药材：药名与剂量同行（紧凑，单屏显示更多药材） */
  ._editRow_1wwtl_364 { display: flex; align-items: center; gap: 6px; }
  ._editName_1wwtl_398 { flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
  ._refDose_1wwtl_404 { display: block; font-size: 10px; color: var(--c-muted); flex: 0 0 auto; white-space: nowrap; margin-bottom: 0; }
  ._doseInputWrap_1wwtl_410 { flex: none; flex-wrap: nowrap; }

  /* 加减化裁建议：移动端字号收紧 */
  ._modSection_1wwtl_649 { margin-top: 8px; padding-top: 6px; }
  ._modTitle_1wwtl_650 { font-size: 12px; margin-bottom: 5px; }
  ._modItem_1wwtl_651 { padding: 7px 8px; margin-bottom: 5px; }
  ._modTarget_1wwtl_653 { font-size: 11px; }
  ._modHerbs_1wwtl_654 { font-size: 11px; }
  ._modExplain_1wwtl_655 { font-size: 10px; }

  @media (prefers-reduced-motion: reduce) {
    ._modalPanel_1wwtl_16 { animation: none; }
  }
}
._overlay_1g7r6_1 {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 2;
}

/* 取景框：box-shadow 外扩实现「框外变暗、框内清晰」 */
._frame_1g7r6_13 {
  position: relative;
  border-radius: var(--r-lg, 14px);
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.42);
}
._frameTall_1g7r6_18 {
  width: 62vmin;
  height: 82vmin; /* 舌诊：竖向 */
}
._frameWide_1g7r6_22 {
  width: 80vmin;
  height: 80vmin; /* 面诊：近方 */
}

/* 极淡形状轮廓（舌/面对齐引导） */
._shape_1g7r6_28 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
._shapePath_1g7r6_34 {
  fill: none;
  stroke: #34d6a3;
  stroke-width: 1.5;
  stroke-dasharray: 5 5;
  opacity: 0.32;
}

/* 中心淡十字准星 */
._crossH_1g7r6_43,
._crossV_1g7r6_44 {
  position: absolute;
  top: 50%;
  left: 50%;
  background: rgba(255, 255, 255, 0.55);
}
._crossH_1g7r6_43 {
  width: 18px;
  height: 1px;
  transform: translate(-50%, -50%);
}
._crossV_1g7r6_44 {
  width: 1px;
  height: 18px;
  transform: translate(-50%, -50%);
}

/* 四角取景标记（动态收紧，暗示对准） */
._corner_1g7r6_62 {
  position: absolute;
  width: 22px;
  height: 22px;
  border: 2px solid #34d6a3;
  filter: drop-shadow(0 0 4px rgba(52, 214, 163, 0.35));
  opacity: 0.9;
  animation: _cornerTighten_1g7r6_1 2.6s ease-in-out infinite;
}
._cTL_1g7r6_71 {
  top: -1px;
  left: -1px;
  border-right: none;
  border-bottom: none;
  border-top-left-radius: var(--r-lg, 14px);
  transform-origin: top left;
}
._cTR_1g7r6_79 {
  top: -1px;
  right: -1px;
  border-left: none;
  border-bottom: none;
  border-top-right-radius: var(--r-lg, 14px);
  transform-origin: top right;
}
._cBL_1g7r6_87 {
  bottom: -1px;
  left: -1px;
  border-right: none;
  border-top: none;
  border-bottom-left-radius: var(--r-lg, 14px);
  transform-origin: bottom left;
}
._cBR_1g7r6_95 {
  bottom: -1px;
  right: -1px;
  border-left: none;
  border-top: none;
  border-bottom-right-radius: var(--r-lg, 14px);
  transform-origin: bottom right;
}
@keyframes _cornerTighten_1g7r6_1 {
  0%,
  100% {
    opacity: 0.75;
  }
  50% {
    opacity: 1;
    filter: drop-shadow(0 0 7px rgba(52, 214, 163, 0.6));
  }
}

/* 底部拍摄要点 */
._tips_1g7r6_115 {
  position: absolute;
  bottom: 13%;
  left: 0;
  right: 0;
  display: flex;
  gap: 6px;
  justify-content: center;
  flex-wrap: wrap;
  padding: 0 16px;
}
._tip_1g7r6_115 {
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(10, 14, 13, 0.5);
  border: 1px solid rgba(52, 214, 163, 0.3);
  color: #d6efe6;
  font-size: var(--fs-xs);
  letter-spacing: 0.02em;
  backdrop-filter: blur(6px);
}

/* 预留质量提示位（后续 useCaptureQuality 接入） */
._hint_1g7r6_139 {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  max-width: 80%;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(10, 14, 13, 0.6);
  color: #ffd9a8;
  font-size: var(--fs-xs);
  white-space: nowrap;
  backdrop-filter: blur(6px);
}

@media (prefers-reduced-motion: reduce) {
  ._corner_1g7r6_62 {
    animation: none;
  }
}
._page_pkfgr_1 {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; /* 与 height:100dvh 并存：旧浏览器（不支持 dvh）以 bottom:0 兜底撑满 */
  height: 100vh;
  height: 100dvh;
  background: #0c100f;
  display: flex;
  flex-direction: column;
  /* 必须高于全站常驻合规栏（z-index:9999），否则底部合规条会盖住快门按钮。
     取景页是全屏覆盖层，合规文案在采集态会自动降级为半透明极简条并让位，
     因此压过它不会造成合规信息丢失。 */
  z-index: 10001;
  overflow: hidden;
}

/* ===== 取景区 ===== */
._stage_pkfgr_20 {
  position: relative;
  flex: 1;
  background: #000;
  overflow: hidden;
}
._zoomBox_pkfgr_26 {
  width: 100%;
  height: 100%;
  transition: transform 0.2s ease;
}
._video_pkfgr_31 {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transform: scaleX(-1); /* 前置预览镜像，符合直觉 */
}

/* ===== 加载 / 错误 / 上传兜底 ===== */
._fallback_pkfgr_39 {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0c100f;
  padding: 24px;
}
._fallbackText_pkfgr_48 {
  color: #9aa5a0;
  font-size: var(--fs-sm);
}
._errorBox_pkfgr_52 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  max-width: 320px;
  text-align: center;
  color: #cfd4d1;
}
._errorBox_pkfgr_52 p {
  font-size: var(--fs-sm);
  line-height: 1.6;
  margin: 0;
}
._uploadBtn_pkfgr_66 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: 999px;
  background: #34d6a3;
  color: #06120e;
  border: none;
  font-size: var(--fs-sm);
  font-weight: 600;
  cursor: pointer;
}
._dragMask_pkfgr_79 {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(52, 214, 163, 0.15);
  border: 2px dashed #34d6a3;
  color: #d6efe6;
  font-size: var(--fs-md);
}

/* ===== 顶部栏 ===== */
._topbar_pkfgr_93 {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.5), transparent);
  z-index: 4;
}
._iconBtn_pkfgr_105 {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  border: none;
  color: #fff;
  cursor: pointer;
  transition: background 0.15s;
}
._iconBtn_pkfgr_105:hover {
  background: rgba(255, 255, 255, 0.2);
}
._title_pkfgr_121 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #f3f6f4;
  font-size: var(--fs-md);
  font-weight: 600;
  letter-spacing: 0.04em;
}
._liveDot_pkfgr_130 {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #34d6a3;
  box-shadow: 0 0 0 0 rgba(52, 214, 163, 0.55);
  animation: _livePulse_pkfgr_1 1.8s ease-out infinite;
}
@keyframes _livePulse_pkfgr_1 {
  0% {
    box-shadow: 0 0 0 0 rgba(52, 214, 163, 0.55);
  }
  70% {
    box-shadow: 0 0 0 7px rgba(52, 214, 163, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(52, 214, 163, 0);
  }
}

/* ===== 错误 toast ===== */
._errToast_pkfgr_151 {
  position: absolute;
  top: 72px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: 90%;
  padding: 8px 12px;
  background: rgba(192, 57, 43, 0.92);
  color: #fff;
  border-radius: 8px;
  font-size: var(--fs-xs);
  z-index: 6;
}
._errClose_pkfgr_167 {
  margin-left: 4px;
  background: none;
  border: none;
  color: #fff;
  opacity: 0.7;
  cursor: pointer;
  display: flex;
}

/* ===== 底部操作 ===== */
._actions_pkfgr_178 {
  display: flex;
  gap: 32px;
  align-items: center;
  justify-content: center;
  padding: 22px 16px calc(22px + env(safe-area-inset-bottom));
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.55), transparent);
  z-index: 4;
}
._sideBtn_pkfgr_187,
._sideBtnSpacer_pkfgr_188 {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
}
._sideBtn_pkfgr_187 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06);
  color: #cfd4d1;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}
._sideBtn_pkfgr_187:hover {
  border-color: #34d6a3;
  color: #34d6a3;
}
._zoomText_pkfgr_208 {
  font-size: var(--fs-sm);
  font-weight: 700;
}

._shutter_pkfgr_213 {
  position: relative;
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.85);
  background: transparent;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.12s ease;
}
._shutter_pkfgr_213:hover:not(:disabled) {
  transform: scale(1.04);
}
._shutter_pkfgr_213:active:not(:disabled) {
  transform: scale(0.94);
}
._shutter_pkfgr_213:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
._shutterCore_pkfgr_238 {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #34d6a3;
  box-shadow: 0 0 16px rgba(52, 214, 163, 0.5);
  transition: transform 0.12s ease;
}
._shutter_pkfgr_213:active:not(:disabled) ._shutterCore_pkfgr_238 {
  transform: scale(0.86);
}

/* ===== 识别中 ===== */
._processing_pkfgr_251 {
  position: absolute;
  inset: 0;
  z-index: 7;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background: rgba(8, 12, 11, 0.7);
  backdrop-filter: blur(4px);
  color: #d6efe6;
  font-size: var(--fs-sm);
}
._spinner_pkfgr_266 {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 3px solid rgba(52, 214, 163, 0.25);
  border-top-color: #34d6a3;
  animation: _spin_pkfgr_266 0.8s linear infinite;
}
@keyframes _spin_pkfgr_266 {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  ._liveDot_pkfgr_130,
  ._spinner_pkfgr_266 {
    animation: none;
  }
}
/* ============================================================
   中医智能学习参考平台 · 医生工作站
   ============================================================ */

._page_qnpki_5 {
  max-width: var(--page-w);
  margin: 0 auto;
  padding: 0 20px calc(32px + var(--compliance-footer-h, 38px));
  display: flex;
  flex-direction: column;
  gap: 14px;
}
/* 页面顶部绿色装饰条 */
._pageBanner_qnpki_14 {
  height: 4px;
  margin: 0 -20px;
  background: var(--grad-green);
  border-radius: 0 0 2px 2px;
  box-shadow: 0 2px 8px rgba(26,122,90,.12);
}
/* 移动端页面顶栏：桌面默认隐藏，640px 断点内显示 */
._mobileTopBar_qnpki_22 { display: none; }

/* ========== 全局 Toast（点击任意位置消失） ========== */
._toastOverlay_qnpki_25 {
  position: fixed;
  inset: 0;
  /* 必须高于模块详情浮层（40000），否则移动端在弹层内保存经验时提示会被遮住。 */
  z-index: 50000;
  pointer-events: none;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 60px;
}
._toastOverlay_qnpki_25 > * {
  pointer-events: auto;
}
._toastItem_qnpki_39 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 500;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  animation: _toastSlideIn_qnpki_1 0.25s ease-out;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
._toastSuccess_qnpki_52 { background: #e8f5e9; border: 1px solid #a5d6a7; color: #2e7d32; }
._toastError_qnpki_53   { background: #fdecec; border: 1px solid #f5c6cb; color: #c0392b; }
._toastInfo_qnpki_54    { background: #eef6f1; border: 1px solid #b7d7c5; color: #0f5c3e; }

@keyframes _toastSlideIn_qnpki_1 {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ========== 顶部操作栏 ========== */
._topBar_qnpki_62 {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, var(--c-surface) 0%, rgba(26,122,90,.015) 100%);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: 14px 18px;
  box-shadow: var(--shadow-card);
  margin-top: 14px;
  position: relative;
}
/* 顶部操作栏下方细绿线 */
._topBar_qnpki_62::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 18px;
  right: 18px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--c-green-light), var(--c-green), var(--c-green-light), transparent);
  opacity: 0.6;
}

._brand_qnpki_86 {
  font-weight: 700;
  color: var(--c-green);
  font-size: var(--fs-md);
  margin-right: auto;
  display: flex;
  align-items: center;
  gap: 6px;
}
._brandDot_qnpki_95 {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--c-green);
  animation: _pulse-dot_qnpki_1 2s infinite;
}
@keyframes _pulse-dot_qnpki_1 { 50% { opacity: .4; } }

._doctor_qnpki_103 {
  font-size: var(--fs-sm);
  color: var(--c-muted);
  display: flex;
  align-items: center;
  gap: 4px;
}

/* ========== 声线波动条 ========== */
._volumeBars_qnpki_112 {
  display: inline-flex;
  align-items: flex-end;
  gap: 2px;
  height: 24px;
  padding: 0 3px;
  vertical-align: middle;
  pointer-events: none;
}
._volumeBar_qnpki_112 {
  width: 4px;
  border-radius: 2px;
  background: var(--c-green);
  transition: height 0.06s ease;
  min-height: 3px;
}
._stopBtn_qnpki_128 ._volumeBar_qnpki_112 {
  background: #fff;
}
._btnVoiceRecording_qnpki_131 ._volumeBar_qnpki_112 {
  background: #fff;
}

/* ========== 按钮（重现） ========== */
._btn_qnpki_131 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 7px 15px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  background: var(--c-surface);
  color: var(--c-text);
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}
._btn_qnpki_131:hover { background: #f8f9f8; border-color: #d0d4d0; }
._btn_qnpki_131:disabled { opacity: .5; cursor: not-allowed; }

._btnPrimary_qnpki_155 {
  background: var(--c-green);
  border-color: var(--c-green);
  color: #fff;
  font-weight: 600;
}
._btnPrimary_qnpki_155:hover { background: var(--c-green-dark); }

._candidateOpenBtn_qnpki_163 {
  border-color: #b8d7c4;
  background: linear-gradient(180deg, #f7fcf8 0%, #edf8f0 100%);
  color: #176b48;
  box-shadow: 0 3px 10px rgba(23, 107, 72, .08);
}
._candidateOpenBtn_qnpki_163:hover {
  border-color: #76b693;
  background: #e5f5ea;
  color: #0f5b3c;
  box-shadow: 0 5px 14px rgba(23, 107, 72, .13);
  transform: translateY(-1px);
}
._candidateOpenBadge_qnpki_176,
._desktopCandidateOpenBadge_qnpki_177 {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 999px;
  background: #d9f1e1;
  color: #176b48;
  font-size: 11px;
  font-weight: 700;
}

._btnSuccess_qnpki_188 {
  background: var(--c-green);
  border-color: var(--c-green);
  color: #fff;
  cursor: default;
}

._btnGhost_qnpki_195 {
  border-color: transparent;
  background: transparent;
  color: var(--c-green);
}
._btnGhost_qnpki_195:hover { background: var(--c-green-light); }

/* ========== 患者信息条 ========== */
._patientBar_qnpki_203 {
  display: flex;
  gap: 8px;
  background: var(--grad-green-subtle);
  border: 1px solid rgba(26,122,90,.08);
  border-radius: var(--r-lg);
  padding: 10px 14px;
  align-items: center;
}
._patientField_qnpki_212 {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  background: var(--c-surface);
  transition: border-color .15s;
}
._patientField_qnpki_212:focus-within { border-color: var(--c-green); }
._patientLabel_qnpki_225 {
  flex: none;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--c-green-dark);
  white-space: nowrap;
}
._patientLabel_qnpki_225::after { content: '：'; color: var(--c-muted); font-weight: 400; }
._patientInput_qnpki_233 {
  flex: 1;
  min-width: 0;
  padding: 9px 0;
  border: none;
  font-size: var(--fs-sm);
  background: transparent;
  outline: none;
}
._fieldName_qnpki_242 { flex: 1.6; }
._fieldSex_qnpki_243 { flex: 0.5; }
._fieldAge_qnpki_244 { flex: 0.7; }
._patientSecondaryRow_qnpki_245 {
  display: flex;
  flex: 2;
  gap: 8px;
  align-items: center;
  min-width: 0;
}
._patientSecondaryRow_qnpki_245 ._fieldPhone_qnpki_252 { flex: 1; min-width: 0; }
._patientVisit_qnpki_253 {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  min-height: 34px;
  padding: 5px 10px;
  border: 1px solid var(--c-line);
  border-radius: var(--r-sm);
  background: var(--c-surface);
}
._patientVisitBadge_qnpki_264 {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 10px;
  border-radius: 999px;
  color: var(--c-green-dark);
  background: var(--c-green-light);
  font-size: var(--fs-sm);
  font-weight: 700;
}

/* ===== 上次就诊总结卡片（复诊识别命中后展示）===== */
._lastVisitCard_qnpki_277 {
  margin: 8px 0 16px;
  padding: 14px 16px;
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-green);
  border-radius: var(--r-md);
  background: linear-gradient(135deg, rgba(16, 124, 87, 0.04), rgba(16, 124, 87, 0.01));
}
._lastVisitHead_qnpki_285 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
._lastVisitTitle_qnpki_291 {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--c-text);
}
._lastVisitDate_qnpki_296 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
}
._lastVisitBody_qnpki_300 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 18px;
}
._lastVisitField_qnpki_305 {
  min-width: 0;
}
._lastVisitFieldFull_qnpki_308 {
  grid-column: 1 / -1;
}
._lastVisitLabel_qnpki_311 {
  display: inline-block;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  margin-right: 6px;
  flex-shrink: 0;
}
._lastVisitValue_qnpki_318 {
  font-size: var(--fs-sm);
  color: var(--c-text);
  word-break: break-word;
  line-height: 1.6;
}
._lastVisitLoading_qnpki_324 {
  margin: 8px 0 16px;
  padding: 10px 16px;
  font-size: var(--fs-sm);
  color: var(--c-muted);
  text-align: center;
}
._lastVisitError_qnpki_331 {
  margin: 8px 0 16px;
  padding: 10px 16px;
  font-size: var(--fs-sm);
  color: var(--c-red);
  background: var(--c-red-light);
  border-radius: var(--r-md);
}
._lastVisitPhotos_qnpki_339 {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--c-line);
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
._lastVisitPhotoGroup_qnpki_347 {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
._lastVisitPhotoLabel_qnpki_352 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
}
._lastVisitPhotoRow_qnpki_356 {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
._lastVisitPhoto_qnpki_339 {
  width: 72px;
  height: 72px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: var(--r-sm);
  border: 1px solid var(--c-line);
  cursor: pointer;
  transition: transform 0.15s;
}
._lastVisitPhoto_qnpki_339:hover {
  transform: scale(1.08);
}

._mensesInput_qnpki_374 {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 12px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  font-size: var(--fs-sm);
  font-family: inherit;
  resize: vertical;
  outline: none;
  background: var(--c-surface);
  margin-bottom: 8px;
}
._mensesInput_qnpki_374:focus { border-color: var(--c-green); }

/* ========== 卡片 ========== */
._card_qnpki_390 {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: 16px 18px;
  box-shadow: var(--shadow-card);
  position: relative;
  overflow: hidden;
}
/* 卡片左侧绿色细线装饰 */
._card_qnpki_390::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, var(--c-green) 0%, var(--c-green-light) 100%);
  opacity: 0.5;
  transition: opacity .2s;
}
._card_qnpki_390:hover::before { opacity: 0.85; }

._cardHead_qnpki_414 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 14px;
  font-size: var(--fs-md);
  font-weight: 600;
  color: var(--c-text);
}
._cardHeadIcon_qnpki_423 {
  display: inline-flex;
  align-items: center;
  color: var(--c-green);
}
._moduleClear_qnpki_428 {
  margin-left: auto;
  padding: 4px 10px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  color: var(--c-muted);
  background: var(--c-surface);
  font-size: var(--fs-xs);
  font-weight: 600;
  cursor: pointer;
}
._moduleClear_qnpki_428:hover:not(:disabled) {
  border-color: var(--c-green);
  color: var(--c-green);
  background: var(--c-green-light);
}
._moduleClear_qnpki_428:disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* 患者上传图片（舌/面）缩略图 + 删除 */
._patientImages_qnpki_450 { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; align-items: flex-start; }
._patientImageItem_qnpki_451 { position: relative; width: 72px; display: inline-flex; flex-direction: column; align-items: center; }
._patientImageItem_qnpki_451 img { width: 72px; height: 72px; -o-object-fit: cover; object-fit: cover; cursor: pointer; display: block; border-radius: 8px; border: 1px solid var(--c-line); }
._patientImageView_qnpki_453 { font-size: var(--fs-xs); color: var(--c-muted); margin-top: 2px; line-height: 1.2; }
._patientImageDel_qnpki_454 { position: absolute; top: -10px; right: -10px; width: 20px; height: 20px; border-radius: 50%; border: none; background: transparent; color: var(--c-red); font-size: 14px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; -webkit-text-stroke: 1.5px var(--c-red); text-shadow: 0 0 2px #fff, 0 0 4px #fff, 0 0 6px rgba(255,255,255,.9); }

/* 照片放大预览覆盖层 */
._imagePreviewOverlay_qnpki_457 { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.85); }
._imagePreviewImg_qnpki_458 { max-width: 92vw; max-height: 92vh; -o-object-fit: contain; object-fit: contain; border-radius: 6px; }
._imagePreviewClose_qnpki_459 { position: absolute; top: 16px; right: 20px; width: 36px; height: 36px; border-radius: 50%; border: none; background: rgba(255,255,255,.18); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
._imagePreviewClose_qnpki_459:hover { background: rgba(255,255,255,.3); }

/* 医生代传：拍照 / 上传入口 */
._uploadEntry_qnpki_463 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
._uploadBtn_qnpki_464 { padding: 5px 12px; font-size: var(--fs-sm); border: 1px solid var(--c-line); border-radius: 6px; background: var(--c-surface); color: var(--c-text); cursor: pointer; white-space: nowrap; }
._uploadBtn_qnpki_464:hover { background: var(--c-green-light); border-color: var(--c-green); }
._uploadBtn_qnpki_464:disabled { opacity: .5; cursor: not-allowed; }
._uploadHint_qnpki_467 { font-size: var(--fs-xs); color: var(--c-muted); }
._uploadCount_qnpki_468 { font-size: var(--fs-xs); color: var(--c-muted); }
._uploadCountMax_qnpki_469 { color: var(--c-red); font-weight: 600; }
._hiddenInput_qnpki_470 { display: none; }

/* 识别特征回填：按组「确认 / 取消」工具条（仅在该组有待确认回填时出现） */
._confirmBar_qnpki_473 { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 6px 8px; background: var(--c-green-light); border: 1px solid var(--c-green); border-radius: 6px; }
._confirmHint_qnpki_474 { font-size: var(--fs-xs); color: var(--c-muted); flex: 1; }
._confirmOk_qnpki_475 { padding: 3px 12px; font-size: var(--fs-sm); border: none; border-radius: 5px; background: var(--c-green); color: #fff; cursor: pointer; }
._confirmCancel_qnpki_476 { padding: 3px 12px; font-size: var(--fs-sm); border: 1px solid var(--c-line); border-radius: 5px; background: var(--c-surface); color: var(--c-text); cursor: pointer; }

/* ========== 两栏布局：四诊 + AI ========== */
._twocol_qnpki_479 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  position: relative;
}
._leftCol_qnpki_485 {
  display: flex; flex-direction: column; gap: 14px;
  min-height: 0;
  grid-column: 1;
}
._rightCol_qnpki_490 {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(50% - 7px);
  height: 100%;
  display: flex; flex-direction: column; gap: 14px;
  overflow: hidden;
}

/* ========== 问诊对话 ========== */
._dialogue_qnpki_501 {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 42px;
  overflow-y: auto;
  margin-bottom: 10px;
  font-size: var(--fs-sm);
}

/* 病情叙述：紧贴问诊对话下方，对话与输入框之间 */
._narrativeBox_qnpki_512 {
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  background: var(--c-green-faint, rgba(59, 111, 224, 0.04));
}
._narrativeLabel_qnpki_519 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-sm);
  font-weight: 600;
  margin-bottom: 6px;
}
._dialogueEmpty_qnpki_527 {
  color: var(--c-faint);
  padding: 2px 0 6px;
  font-size: var(--fs-xs);
  flex-shrink: 0;
  border-bottom: 1px dashed var(--c-line);
  margin-bottom: 4px;
}
._dimTags_qnpki_535 { color: var(--c-primary, #3b6fe0); font-weight: 500; }

._turn_qnpki_538 {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 8px;
  line-height: 1.5;
}
._turnBody_qnpki_546 { flex: 1; min-width: 0; word-break: break-word; }
._turnDelete_qnpki_547 {
  flex-shrink: 0;
  border: none;
  background: transparent;
  color: var(--c-faint);
  cursor: pointer;
  font-size: 16px;
  line-height: 1.3;
  padding: 0 4px;
  border-radius: 4px;
  opacity: 0.45;
  transition: opacity .15s ease, color .15s ease, background .15s ease;
}
._turn_qnpki_538:hover ._turnDelete_qnpki_547, ._turnDelete_qnpki_547:focus-visible { opacity: 1; }
._turnDelete_qnpki_547:hover { color: var(--c-red); background: var(--c-red-light); }
._turnDoc_qnpki_562 { background: var(--c-green-light); }
._turnPat_qnpki_563 { background: var(--c-bg); }
._turnRole_qnpki_564 { font-weight: 600; margin-right: 6px; color: var(--c-green-dark); font-size: var(--fs-xs); }

/* 输入行 */
._inputRow_qnpki_567 {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
._sel_qnpki_573 {
  padding: 7px 10px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  font-size: var(--fs-sm);
  background: var(--c-surface);
  color: var(--c-text);
}
._textInput_qnpki_581 {
  flex: 1;
  min-width: 120px;
  padding: 7px 11px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  font-size: var(--fs-sm);
  font-family: inherit;
  background: var(--c-surface);
  outline: none;
  resize: none;
  overflow: hidden;
  field-sizing: content;
  min-height: 34px;
  max-height: 600px;
  line-height: 1.5;
}
._textInput_qnpki_581:focus { border-color: var(--c-green); }

/* 主要症状 legacy 标签行已移除（病症统一到 symptomCards 卡片体系） */

/* ========== 舌/面 图像采集 ========== */
._analyzeHint_qnpki_603 {
  color: var(--c-green);
  font-size: var(--fs-xs);
  margin-left: 8px;
  animation: _pulse_qnpki_769 1.5s infinite;
}
@keyframes _pulse_qnpki_769 { 50% { opacity: .4; } }

._resultBox_qnpki_611 {
  display: flex;
  gap: 14px;
  margin-top: 10px;
}
._thumb_qnpki_616 {
  width: 72px; height: 72px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--c-line);
}
._thumbWrap_qnpki_622 {
  position: relative;
  flex-shrink: 0;
}
._thumbDel_qnpki_626 {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(229, 72, 77, 0.92);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}
._thumbDel_qnpki_626:hover {
  background: #d6393e;
}
._tags_qnpki_646 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: var(--fs-sm);
}
._featTag_qnpki_652 {
  display: inline-block;
  background: var(--c-green-light);
  color: var(--c-green);
  padding: 2px 10px;
  border-radius: 12px;
  font-size: var(--fs-xs);
  font-weight: 500;
  margin-right: 4px;
}
._featDiag_qnpki_662 {
  color: var(--c-muted);
  font-size: var(--fs-sm);
  margin-top: 4px;
  line-height: 1.5;
}

._faceFields_qnpki_669 { display: flex; flex-direction: column; gap: 5px; flex: 1; }
._faceFields_qnpki_669 label {
  font-size: var(--fs-sm);
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--c-text);
}
._faceFields_qnpki_669 input {
  flex: 1;
  padding: 4px 8px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  font-size: var(--fs-sm);
  outline: none;
}

/* 舌诊：舌面 / 舌底 两栏并列（窄屏退化为上下） */
._tongueColumns_qnpki_687 { display: flex; gap: 16px; align-items: flex-start; }
._tongueGroup_qnpki_688 { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
._tongueGroupTitle_qnpki_689 { font-size: var(--fs-sm); font-weight: 600; color: var(--c-muted); padding-left: 2px; }
@media (max-width: 560px) {
  ._tongueColumns_qnpki_687 { flex-direction: column; gap: 10px; }
}

/* 舌诊/面诊维度：多选 chip + 底部自定义输入 */
._diagFields_qnpki_695 { display: flex; flex-direction: column; gap: 8px; flex: 1; }
._diagField_qnpki_695 { display: flex; flex-direction: column; gap: 4px; }
._diagLabel_qnpki_697 { font-size: var(--fs-sm); color: var(--c-muted); padding-left: 1px; }
._diagChips_qnpki_698 { display: flex; flex-wrap: wrap; gap: 6px; }
._diagChip_qnpki_698 {
  padding: 3px 11px;
  border: 1px solid var(--c-line);
  border-radius: 14px;
  background: var(--c-surface);
  color: var(--c-muted);
  font-size: var(--fs-xs);
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
._diagChip_qnpki_698:hover { border-color: var(--c-green); color: var(--c-green); }
._diagChipActive_qnpki_710 {
  border-color: var(--c-green);
  background: var(--c-green-light);
  color: var(--c-green-dark);
  font-weight: 600;
}
._diagCustom_qnpki_716 {
  width: 100%;
  padding: 4px 8px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  font-size: var(--fs-sm);
  outline: none;
}
._diagCustom_qnpki_716:focus { border-color: var(--c-green); }

/* 特征重分析按钮 + 逐维度特征分析区块 */
._reanalyzeBtn_qnpki_727 {
  align-self: flex-start;
  padding: 3px 12px;
  margin-top: 2px;
  border: 1px solid var(--c-green);
  background: var(--c-green-light);
  color: var(--c-green);
  border-radius: 6px;
  font-size: var(--fs-xs);
  cursor: pointer;
}
._reanalyzeBtn_qnpki_727:disabled {
  opacity: .55;
  cursor: not-allowed;
}
._featureAnalysis_qnpki_742 {
  margin-top: 6px;
  padding: 8px 10px;
  background: #f6f8f5;
  border-left: 3px solid var(--c-green);
  border-radius: 4px;
  font-size: var(--fs-sm);
  color: var(--c-text);
  line-height: 1.6;
}
._featureAnalysisTitle_qnpki_752 {
  font-weight: 600;
  color: var(--c-green);
  margin-bottom: 4px;
  font-size: var(--fs-xs);
}
._featureAnalysisRow_qnpki_758 span {
  color: var(--c-muted);
  font-weight: 500;
}

/* ========== 脉象标签 ========== */
._tagGroup_qnpki_764 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
._pulseTag_qnpki_769 {
  padding: 5px 14px;
  border: 1px solid var(--c-line);
  border-radius: 16px;
  background: var(--c-surface);
  cursor: pointer;
  font-size: var(--fs-sm);
  color: var(--c-muted);
  transition: all .15s;
}
._pulseTag_qnpki_769:hover { border-color: var(--c-green); color: var(--c-green); }
._pulseTagActive_qnpki_780 {
  background: var(--c-green);
  color: #fff;
  border-color: var(--c-green);
}
._pulseTagActive_qnpki_780:hover { background: var(--c-green-dark); color: #fff; }
._pulseTag_qnpki_769:disabled { opacity: .4; cursor: not-allowed; }

/* 脉诊启用勾选框 */
._pulseCheckLabel_qnpki_789 {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
._pulseCheckbox_qnpki_796 {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--c-green);
}
._pulseBody_qnpki_802 {
  transition: opacity .2s;
}
._pulseBodyDisabled_qnpki_805 {
  opacity: .35;
  pointer-events: none;
}
._cardMuted_qnpki_809 {
  opacity: .75;
}
._pulseDisabled_qnpki_812 {
  font-size: var(--fs-sm);
  color: var(--c-muted);
  padding: 6px 0 2px;
  font-style: italic;
}

/* ========== 症状卡片 & 最想解决拖拽区 ========== */
._symptomSection_qnpki_820 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

._extractingHint_qnpki_826 {
  font-size: var(--fs-xs);
  color: var(--c-primary);
  margin-left: 8px;
  animation: _pulse_qnpki_769 1.5s infinite;
}

._symptomEmpty_qnpki_833 {
  font-size: var(--fs-sm);
  color: var(--c-muted);
  padding: 10px 0;
  font-style: italic;
}

._symptomCards_qnpki_840 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 6px 0;
}

._symptomCard_qnpki_840 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  box-sizing: border-box;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: grab;
  transition: all .15s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
._symptomCard_qnpki_840:active { cursor: grabbing; }
._symptomCardAi_qnpki_862 {
  background: #e8f0ff;
  color: #3b6fe0;
  border: 1.5px solid #3b6fe0;
}
._symptomCardManual_qnpki_867 {
  background: #fef9e7;
  color: #c7860e;
  border: 1.5px solid #c7860e;
}
._symptomCard_qnpki_840:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(59,111,224,.15);
}
._dragging_qnpki_876 {
  opacity: .5;
  transform: scale(.95);
}
/* 触屏拖拽：源卡片半透明 */
._touchDragSource_qnpki_881 {
  opacity: .4 !important;
}
/* 卡片就地编辑（病症识别 + 最想解决） */
._symptomCardEditing_qnpki_885 {
  cursor: text;
  background: var(--c-surface) !important;
  border-color: var(--c-primary, #3b6fe0) !important;
  color: var(--c-text) !important;
}
._cardEditInput_qnpki_891 {
  width: 92px;
  border: none;
  outline: none;
  background: transparent;
  font-size: var(--fs-sm);
  font-family: inherit;
  color: var(--c-text);
  padding: 0;
}
._cardEditBtn_qnpki_901 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: none;
  border-radius: 50%;
  background: var(--c-primary, #3b6fe0);
  color: #fff;
  cursor: pointer;
  padding: 0;
}
._cardEditBtn_qnpki_901:hover { opacity: .85; }
/* 病症识别「+」手动新增行 */
._symptomAddRow_qnpki_916 {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}
._cardAddBtn_qnpki_922 {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 1px dashed var(--c-line-soft);
  border-radius: 50%;
  background: transparent;
  color: var(--c-muted);
  cursor: pointer;
  padding: 0;
  transition: all .15s;
}
._cardAddBtn_qnpki_922:hover {
  border-color: var(--c-primary, #3b6fe0);
  color: var(--c-primary, #3b6fe0);
}
/* 卡片头部「操作按钮组」容器：把多个 cardAddBtn（如 删除/完成 + 加号）拢成一组紧挨排列。
   单独提取此 wrapper 承担 margin-left:auto（推到 cardHead 右端），按钮自身不再各自吸收剩余空间——
   否则 flex 容器内两个 margin-left:auto 会平分剩余空间，把删除与加号撑开一大块。 */
._cardAddBtnGroup_qnpki_944 {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
._symptomCardDel_qnpki_950 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,.15);
  color: #fff;
  cursor: pointer;
  font-size: 11px;
  line-height: 1;
  padding: 0;
  transition: background .15s;
}
._symptomCardDel_qnpki_950:hover { background: rgba(220,38,38,.7); }

/* 最想解决拖放区 */
._mostWantedCard_qnpki_969 {
  min-height: 120px;
}
._mostWantedDragOver_qnpki_972 {
  outline: 2px dashed var(--c-green);
  outline-offset: -2px;
  background: #e8f5e9;
}
._mostWantedCount_qnpki_977 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  margin-left: auto;
}
._mostWantedPlaceholder_qnpki_982 {
  font-size: var(--fs-sm);
  color: var(--c-muted);
  padding: 14px 0;
  font-style: italic;
  text-align: center;
}
._mostWantedCards_qnpki_989 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 8px 0;
}
._mostWantedCardItem_qnpki_995 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  box-sizing: border-box;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: var(--fs-sm);
  font-weight: 600;
  background: var(--c-green);
  color: #fff;
  border: 1.5px solid var(--c-green-dark);
}
._mostWantedRank_qnpki_1009 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(255,255,255,.3);
  font-size: var(--fs-xs);
  font-weight: 700;
}
._mostWantedCardDel_qnpki_1020 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,.3);
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  line-height: 1;
  padding: 0;
  transition: background .15s;
}
._mostWantedCardDel_qnpki_1020:hover { background: rgba(220,38,38,.8); }

/* ========== 识别按钮条 ========== */
._recognizeBar_qnpki_1039 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 4px 0;
}
._recognizeBtn_qnpki_1047 {
  padding: 10px 32px;
  border: none;
  border-radius: 10px;
  background: var(--c-green);
  color: #fff;
  font-size: var(--fs-md);
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 2px 8px rgba(26,122,90,.25);
  transition: all .15s;
}
._recognizeBtn_qnpki_1047:hover { background: var(--c-green-dark); transform: translateY(-1px); box-shadow: 0 4px 14px rgba(26,122,90,.3); }
._stopBtn_qnpki_128 {
  padding: 10px 32px;
  border: none;
  border-radius: 10px;
  background: #d9362b;
  color: #fff;
  font-size: var(--fs-md);
  font-weight: 600;
  cursor: pointer;
}
._stopBtn_qnpki_128:hover,
._stopBtn_qnpki_128:active,
._stopBtn_qnpki_128:focus,
._stopBtn_qnpki_128:focus-visible {
  background: #d9362b;
  color: #fff;
  transform: none;
}

/* 语音录音中按钮（绿色，区别于停止识别的红色） */
._btnVoiceRecording_qnpki_131 {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 15px;
  border: 1px solid var(--c-green);
  border-radius: 8px;
  background: var(--c-green);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
  animation: _pulse_qnpki_769 1s infinite;
}
._btnVoiceRecording_qnpki_131:hover {
  background: var(--c-green-dark);
  border-color: var(--c-green-dark);
}

/* 小话筒录音中：白底 + 绿色 mic 图标 + 声波扩散环（"正在收音"）。
   :hover/:active 显式同色，防止移动端 touch 后 .btn:hover 的 #f8f9f8 白色覆盖录音态高亮。 */
@keyframes _micRecRing_qnpki_1 {
  0%   { box-shadow: 0 0 0 0 rgba(26,122,90,.45); }
  70%  { box-shadow: 0 0 0 6px rgba(26,122,90,0); }
  100% { box-shadow: 0 0 0 0 rgba(26,122,90,0); }
}
._wenMicRec_qnpki_1111,
._wenMicRec_qnpki_1111:hover,
._wenMicRec_qnpki_1111:active {
  background: #fff;
  border-color: var(--c-green);
  color: var(--c-green);
  animation: _micRecRing_qnpki_1 1.3s ease-out infinite;
}

/* ========== 三模块结果 ========== */
._modules_qnpki_1121 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 1fr;
  gap: 12px;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

._moduleCard_qnpki_1131 {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: 0 16px 14px;
  box-shadow: var(--shadow-card);
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: border-color .2s, box-shadow .2s;
}
/* 模块卡片顶部绿线装饰 */
._moduleCard_qnpki_1131::before {
  content: '';
  position: absolute;
  top: 0;
  left: 14px;
  right: 14px;
  height: 2px;
  border-radius: 0 0 2px 2px;
  background: linear-gradient(90deg, transparent, var(--c-green), transparent);
  opacity: 0;
  transition: opacity .2s;
}
._moduleCard_qnpki_1131:hover {
  border-color: rgba(26,122,90,.15);
  box-shadow: var(--shadow-card-raised);
}
._moduleCard_qnpki_1131:hover::before { opacity: .25; }
._moduleHead_qnpki_1162 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  font-size: var(--fs-sm);
  margin-bottom: 8px;
  color: var(--c-text);
  position: sticky;
  top: 0;
  background: var(--c-surface);
  padding-top: 14px;
  z-index: 1;
}

._confBadge_qnpki_1177 {
  font-size: var(--fs-xs);
  color: var(--c-green);
  background: var(--c-green-light);
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
}

._confMid_qnpki_1186 {
  font-size: var(--fs-xs);
  color: #b8780f;
  background: #fdf0d9;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
}

._confLow_qnpki_1195 {
  font-size: var(--fs-xs);
  color: #c0392b;
  background: #fbe4e0;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
}

._headBadges_qnpki_1204 {
  display: flex;
  gap: 6px;
  align-items: center;
}

._schoolBadge_qnpki_1210 {
  font-size: var(--fs-xs);
  color: #6b4ba8;
  background: #efe8f7;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
  white-space: nowrap;
}

._moduleIdle_qnpki_1220 { color: var(--c-faint); font-size: var(--fs-sm); padding: 8px 0; }
._moduleStream_qnpki_1221 { color: var(--c-green); font-size: var(--fs-sm); padding: 8px 0; animation: _pulse_qnpki_769 1.5s infinite; }
._moduleErr_qnpki_1222 {
  color: var(--c-red);
  font-size: var(--fs-sm);
  line-height: 1.55;
  white-space: pre-wrap;
}

._synText_qnpki_1229 { font-weight: 600; margin-bottom: 2px; }
._pathText_qnpki_1230 { color: var(--c-muted); font-size: var(--fs-sm); line-height: 1.5; }

._planBox_qnpki_1232 {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--c-line-soft);
}
._planName_qnpki_1237 { font-weight: 600; font-size: var(--fs-sm); margin-bottom: 4px; }

._herbs_qnpki_1239 {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
._herb_qnpki_1239 {
  background: var(--c-bg);
  padding: 2px 8px;
  border-radius: 8px;
  font-size: var(--fs-xs);
  color: var(--c-muted);
}
._sourceBadge_qnpki_1251 {
  font-size: var(--fs-xs);
  color: var(--c-faint);
  padding: 2px 0;
  margin-left: 2px;
  font-style: italic;
}

._warnBox_qnpki_1259 {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--c-amber-light);
  font-size: var(--fs-xs);
  color: var(--c-amber);
  line-height: 1.6;
}

._streamRaw_qnpki_1269 {
  white-space: pre-wrap;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  max-height: 140px;
  overflow-y: auto;
  margin-top: 8px;
  font-family: inherit;
}

/* ========== 选方区 ========== */
._chips_qnpki_1280 {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
._chip_qnpki_1280 {
  padding: 8px 16px;
  border: 1.5px solid var(--c-line);
  border-radius: 10px;
  background: var(--c-surface);
  cursor: pointer;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--c-muted);
  display: flex;
  align-items: center;
  gap: 5px;
  transition: all .15s;
}
._chip_qnpki_1280:hover { border-color: var(--c-green); color: var(--c-green); }
._chip_qnpki_1280:disabled { opacity: .35; cursor: not-allowed; }
._chipActive_qnpki_1302 {
  border-color: var(--c-green);
  background: var(--c-green-light);
  color: var(--c-green-dark);
  font-weight: 600;
}

._prescriptionBox_qnpki_1309 {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  font-family: monospace;
  font-size: var(--fs-sm);
  resize: vertical;
  box-sizing: border-box;
  background: var(--c-bg);
  outline: none;
}
._prescriptionBox_qnpki_1309:focus { border-color: var(--c-green); background: #fff; }

/* ========== 风险提示面板 ========== */
._riskPanel_qnpki_1324 {
  margin-top: 10px;
  border: 1px solid var(--c-line);
  border-radius: 10px;
  overflow: hidden;
}
._riskTitle_qnpki_1330 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  font-size: var(--fs-sm);
  padding: 9px 14px;
  background: var(--c-bg);
}
._riskCount_qnpki_1339 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  font-weight: 400;
}
._riskList_qnpki_1344 { display: flex; flex-direction: column; }
._riskItem_qnpki_1345 {
  display: flex;
  gap: 8px;
  align-items: baseline;
  padding: 8px 14px;
  font-size: var(--fs-sm);
  border-top: 1px solid var(--c-line-soft);
  line-height: 1.5;
}
._riskBadge_qnpki_1354 {
  flex: none;
  font-size: var(--fs-xs);
  font-weight: 700;
  padding: 1px 8px;
  border-radius: 8px;
  border: 1px solid currentColor;
}
._riskTrigger_qnpki_1362 { flex: none; font-size: var(--fs-xs); opacity: .7; }

/* 移动端：风险条目标签(危急/脱症…)与长描述分行，避免长描述在右侧多行换行、左侧标签下方留白 */
@media (max-width: 640px) {
  ._riskItem_qnpki_1345 { flex-wrap: wrap; align-items: flex-start; }
  ._riskText_qnpki_1367 { flex: 1 1 100%; margin-top: 2px; }
}

._riskCritical_qnpki_1370 { background: var(--c-red-light); color: var(--c-red); }
._riskHigh_qnpki_1371     { background: var(--c-amber-light); color: var(--c-amber); }
._riskInfo_qnpki_1372     { background: var(--c-surface); color: var(--c-muted); }
._riskOk_qnpki_1373 {
  padding: 9px 14px;
  font-size: var(--fs-sm);
  color: var(--c-green);
  background: var(--c-green-light);
  display: flex;
  align-items: center;
  gap: 5px;
}

/* ========== 操作行 ========== */
._actions_qnpki_1384 {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid var(--c-line);
}
._materialPhotos_qnpki_1392 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
._materialPhoto_qnpki_1392 {
  position: relative;
  width: 58px;
  height: 58px;
}
._materialPhotoButton_qnpki_1403 {
  width: 58px;
  height: 58px;
  padding: 0;
  border: 1px solid var(--c-line-soft);
  border-radius: 7px;
  overflow: hidden;
  background: var(--c-surface);
  cursor: zoom-in;
}
._materialPhotoButton_qnpki_1403 img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
._materialPhotoDelete_qnpki_1419 {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 1px solid #fff;
  border-radius: 50%;
  background: var(--c-red, #d9534f);
  color: #fff;
  font-size: 14px;
  line-height: 16px;
  cursor: pointer;
}

/* 移动端全局 button 有 44px 最小触控尺寸，避免把图片删除红点撑大。 */
@media (max-width: 768px) {
  ._materialPhotoDelete_qnpki_1419 {
    width: 24px;
    height: 24px;
    min-width: 24px;
    min-height: 24px;
    font-size: 12px;
    line-height: 22px;
  }
}

/* ========== 生成结果 ========== */
._records_qnpki_1448 {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 10px;
  margin-bottom: 10px;
}
._recordCard_qnpki_1454 {
  background: var(--c-bg);
  border: 1px solid var(--c-line-soft);
  border-radius: 10px;
  padding: 12px 14px;
  max-height: 400px;
  overflow-y: auto;
  position: relative;
  transition: border-color .2s;
}
/* 记录卡片左侧细绿线 */
._recordCard_qnpki_1454::before {
  content: '';
  position: absolute;
  left: 0;
  top: 10px;
  bottom: 10px;
  width: 2px;
  border-radius: 0 2px 2px 0;
  background: linear-gradient(180deg, rgba(26,122,90,.35), rgba(26,122,90,.08));
}
._recordCard_qnpki_1454:hover {
  border-color: rgba(26,122,90,.12);
}
._recordLabel_qnpki_1478 {
  font-weight: 600;
  font-size: var(--fs-sm);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 5px;
}
._recordEditBtn_qnpki_1486 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-width: 24px;
  height: 24px;
  border: 1px solid var(--c-line-soft);
  border-radius: 5px;
  background: var(--c-surface);
  color: var(--c-muted);
  cursor: pointer;
  font-size: 12px;
  padding: 2px 6px;
  transition: all 0.15s;
  white-space: nowrap;
}
._recordEditBtn_qnpki_1486:hover {
  border-color: var(--c-primary);
  color: var(--c-primary);
  background: var(--c-accent-muted, #e8f0ff);
}
._recordTextarea_qnpki_1508 {
  width: 100%;
  min-height: 200px;
  padding: 10px 12px;
  border: 1px solid var(--c-primary, #3b6fe0);
  border-radius: 8px;
  font-size: var(--fs-xs);
  font-family: inherit;
  line-height: 1.7;
  resize: vertical;
  outline: none;
  background: var(--c-bg);
  color: var(--c-text);
}
._recordTextarea_qnpki_1508:focus {
  border-color: var(--c-primary);
  box-shadow: 0 0 0 2px rgba(59, 111, 224, 0.12);
}
._recordCard_qnpki_1454 pre {
  white-space: pre-wrap;
  font-size: var(--fs-xs);
  font-family: inherit;
  max-height: 180px;
  overflow-y: auto;
  color: var(--c-muted);
  margin: 0;
  line-height: 1.6;
}
/* 处方单：按方剂分组 */
._formulaGroup_qnpki_1537 {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--c-line-soft);
}
._formulaGroup_qnpki_1537:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
._formulaGroupHead_qnpki_1547 {
  font-weight: 600;
  font-size: var(--fs-xs);
  color: #1a7a5a;
  margin-bottom: 6px;
}
._herbGrid_qnpki_1553 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
._herbSections_qnpki_1558 { display: flex; flex-direction: column; gap: 8px; }
._herbSection_qnpki_1558 { /* 每个剂型分组 */ }
._herbSectionHead_qnpki_1560 {
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--c-green-dark);
  margin-bottom: 2px;
}
._herbChip_qnpki_1566 {
  font-size: var(--fs-xs);
  background: #f5f7f6;
  border: 1px solid var(--c-line-soft);
  border-radius: 6px;
  padding: 2px 8px;
  color: #1f2937;
}
._modificationBlock_qnpki_1574 {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--c-line-soft);
}
._modLine_qnpki_1579 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  line-height: 1.6;
  margin-bottom: 2px;
}
/* 病历医案：段内多行文本（与处方单分组共用 formulaGroup/formulaGroupHead） */
._medicalText_qnpki_1586 {
  font-size: var(--fs-xs);
  color: var(--c-text);
  line-height: 1.7;
  white-space: pre-wrap;
  margin: 0;
}

/* ========== 加减化裁建议（模块卡片内） ========== */
._modSection_qnpki_1595 {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--c-line);
}
._modTitle_qnpki_1600 {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--c-green-dark);
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 8px;
}
._modItem_qnpki_1609 {
  background: var(--c-bg);
  border: 1px solid var(--c-line-soft);
  border-radius: 8px;
  padding: 8px 10px;
  margin-bottom: 6px;
  font-size: var(--fs-xs);
  line-height: 1.5;
}
._modItem_qnpki_1609:last-child { margin-bottom: 0; }
._modTarget_qnpki_1619 {
  color: var(--c-amber);
  font-weight: 600;
  margin-bottom: 2px;
}
._modHerbs_qnpki_1624 {
  color: var(--c-text);
  font-weight: 500;
}
._modExplain_qnpki_1628 {
  color: var(--c-muted);
  font-style: italic;
  margin-top: 2px;
}
._modSummary_qnpki_1633 {
  color: var(--c-muted);
  margin-top: 2px;
  line-height: 1.45;
}
._modAddBtn_qnpki_1638 {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-top: 6px;
  padding: 3px 10px;
  border: 1px solid var(--c-green);
  border-radius: 6px;
  background: var(--c-green-light);
  color: var(--c-green-dark);
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  transition: all .15s;
}
._modAddBtn_qnpki_1638:hover {
  background: var(--c-green);
  color: #fff;
}

/* ========== 模块三 · 与 Agent 讨论 ========== */
._moduleChat_qnpki_1659 {
  margin-top: 10px;
  border-top: 1px dashed var(--c-line);
  padding-top: 8px;
}
._chatToggle_qnpki_1664 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: none;
  background: transparent;
  color: var(--c-green);
  font-size: var(--fs-xs);
  font-weight: 600;
  cursor: pointer;
  padding: 2px 0;
}
._chatToggle_qnpki_1664:hover { text-decoration: underline; }
._chatBox_qnpki_1677 {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-height: 220px;
  overflow-y: auto;
  margin: 8px 0;
  padding: 8px 6px;
}
._chatEmpty_qnpki_1686 {
  color: var(--c-faint);
  font-size: var(--fs-xs);
  line-height: 1.5;
  padding: 4px 0;
}
._chatTurn_qnpki_1692 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  min-width: 0;
}
._chatUser_qnpki_1699 { align-self: flex-end; align-items: flex-end; }
._chatAsst_qnpki_1700 { align-self: flex-start; align-items: flex-start; }
._chatRole_qnpki_1701 {
  display: block;
  font-size: 10px;
  color: var(--c-muted);
  margin-bottom: 2px;
  font-weight: 600;
}
._chatBubble_qnpki_1708 {
  margin: 0;
  padding: 12px 16px;
  max-width: 78%;
  min-width: 0;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  border-radius: 14px;
  font-size: var(--fs-sm);
  line-height: 1.7;
  white-space: pre-wrap;
}
._chatUser_qnpki_1699 ._chatBubble_qnpki_1708 { background: var(--c-green); color: #fff; border-bottom-right-radius: 4px; }
._chatAsst_qnpki_1700 ._chatBubble_qnpki_1708 { background: var(--c-bg); color: var(--c-text); border-bottom-left-radius: 4px; }
._chatThinking_qnpki_1722 {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 9px;
  border-radius: 8px;
  background: var(--c-green-light);
  color: var(--c-green-dark);
  font-size: var(--fs-xs);
  line-height: 1.5;
}
._chatThinkingDots_qnpki_1734 {
  display: inline-block;
  width: 12px;
  overflow: hidden;
  animation: _chatThinkingPulse_qnpki_1 1.15s steps(4, end) infinite;
}
@keyframes _chatThinkingPulse_qnpki_1 {
  from { opacity: .3; }
  50% { opacity: 1; }
  to { opacity: .3; }
}
._chatInputRow_qnpki_1745 { display: flex; gap: 5px; }
._chatInput_qnpki_1745 {
  flex: 1;
  min-width: 0;
  padding: 6px 9px;
  border: 1px solid var(--c-line);
  border-radius: 7px;
  font-size: var(--fs-xs);
  font-family: inherit;
  background: var(--c-bg);
  outline: none;
  resize: none;
  overflow: hidden;
  field-sizing: content;
  min-height: 30px;
  max-height: 180px;
  line-height: 1.5;
}
._chatInput_qnpki_1745:focus { border-color: var(--c-green); background: #fff; }
._chatSend_qnpki_1764 {
  padding: 6px 12px;
  border: none;
  border-radius: 7px;
  background: var(--c-green);
  color: #fff;
  font-size: var(--fs-xs);
  font-weight: 500;
  cursor: pointer;
}
._chatSend_qnpki_1764:disabled { opacity: .5; cursor: not-allowed; }

/* 语音输入按钮（问诊 + Agent讨论 共用） */
._voiceBtn_qnpki_1777 {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border: 1px solid var(--c-line);
  border-radius: 8px; background: var(--c-surface); color: var(--c-muted);
  cursor: pointer; font-size: var(--fs-sm); transition: all .15s; flex-shrink: 0;
}
._voiceBtn_qnpki_1777:hover { border-color: var(--c-green); color: var(--c-green); }
._voiceBtn_qnpki_1777:disabled { opacity: .4; cursor: not-allowed; }
._recording_qnpki_1785 { background: var(--c-green) !important; color: #fff !important; border-color: var(--c-green) !important; animation: _pulse_qnpki_769 1s infinite; }

._chatActions_qnpki_1787 {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  flex-wrap: wrap;
}
._chatActionBtn_qnpki_1793 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 10px;
  border: none;
  border-radius: 7px;
  background: var(--c-green);
  color: #fff;
  font-size: var(--fs-xs);
  font-weight: 500;
  cursor: pointer;
}
._chatActionBtn_qnpki_1793:hover:not(:disabled) { background: var(--c-green-dark); }
._chatActionBtn_qnpki_1793:disabled { opacity: .5; cursor: not-allowed; }
._chatActionGhost_qnpki_1808 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 10px;
  border: 1px solid var(--c-line);
  border-radius: 7px;
  background: var(--c-surface);
  color: var(--c-green-dark);
  font-size: var(--fs-xs);
  font-weight: 500;
  cursor: pointer;
}
._chatActionGhost_qnpki_1808:hover:not(:disabled) { border-color: var(--c-green); }
._chatActionGhost_qnpki_1808:disabled { opacity: .5; cursor: not-allowed; }

/* Agent 改方提议条：讨论中 Agent 调整方剂后征求医生确认，医生未确认前不改动任何数据 */
._rxProposal_qnpki_1825 {
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid var(--c-green);
  border-left-width: 3px;
  border-radius: 8px;
  background: var(--c-green-light);
}
._rxProposalText_qnpki_1833 {
  font-size: var(--fs-xs);
  line-height: 1.5;
  color: var(--c-text);
  word-break: break-word;
}
._rxProposalActions_qnpki_1839 {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  flex-wrap: wrap;
}
._rxProposalApply_qnpki_1845 {
  padding: 5px 12px;
  border: none;
  border-radius: 7px;
  background: var(--c-green);
  color: #fff;
  font-size: var(--fs-xs);
  font-weight: 500;
  cursor: pointer;
}
._rxProposalApply_qnpki_1845:hover { background: var(--c-green-dark); }
._rxProposalDismiss_qnpki_1856 {
  padding: 5px 12px;
  border: 1px solid var(--c-line);
  border-radius: 7px;
  background: var(--c-surface);
  color: var(--c-muted);
  font-size: var(--fs-xs);
  cursor: pointer;
}
._rxProposalDismiss_qnpki_1856:hover { color: var(--c-text); border-color: var(--c-muted); }

/* ========== 登记患者 / 计价 / 订单状态 ========== */
._patientHint_qnpki_1868 {
  display: flex;
  align-items: center;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  padding: 0 4px;
}
._doseField_qnpki_1875 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}
._doseInput_qnpki_1881 {
  width: 72px;
  padding: 7px 10px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  font-size: var(--fs-sm);
  background: var(--c-surface);
  outline: none;
}
._doseInput_qnpki_1881:focus { border-color: var(--c-green); }
._doseHint_qnpki_1891 { font-size: var(--fs-xs); color: var(--c-faint); }

._orderInfo_qnpki_1893 {
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--c-green-light);
  color: var(--c-green-dark);
  font-size: var(--fs-sm);
  line-height: 1.6;
}
._orderInfo_qnpki_1893 b { color: var(--c-green-dark); }
._orderWarn_qnpki_1903 {
  margin-top: 6px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--c-amber-light);
  color: var(--c-amber);
  font-size: var(--fs-xs);
  line-height: 1.5;
}
._orderHint_qnpki_1912 {
  margin-top: 8px;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  line-height: 1.5;
}

/* ========== 历史就诊面板 ========== */
._historyPanel_qnpki_1920 {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  margin-bottom: 12px;
  overflow: hidden;
}
._historyHead_qnpki_1927 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--c-text);
  background: var(--c-bg-muted);
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
._historyList_qnpki_1939 {
  max-height: 240px;
  overflow-y: auto;
  padding: 6px 0;
}
._historyItem_qnpki_1944 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 14px;
  border-bottom: 1px solid var(--c-border-light, #eee);
  transition: background 0.15s;
}
._historyItem_qnpki_1944:last-child { border-bottom: none; }
._historyItem_qnpki_1944:hover { background: var(--c-bg-hover, #f8f9fa); }
._historyItemActive_qnpki_1954 {
  background: var(--c-accent-muted, #e8f5e9);
}
._historyMeta_qnpki_1957 {
  display: flex;
  gap: 12px;
  align-items: center;
}
._historyDate_qnpki_1962 {
  font-size: var(--fs-sm);
  color: var(--c-text);
  font-weight: 500;
}
._historyDoctor_qnpki_1967 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
}
._historyDose_qnpki_1971 {
  font-size: var(--fs-xs);
  color: var(--c-primary);
  background: var(--c-accent-muted, #e8f5e9);
  padding: 1px 8px;
  border-radius: 10px;
}
._historyActions_qnpki_1978 {
  display: flex;
  gap: 6px;
}
._historyHint_qnpki_1982 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  padding: 4px 0 8px;
  white-space: nowrap;
}
._historyToggle_qnpki_1988 {
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── 回测面板：详情展开 / 操作按钮 ── */
._historyDetailBtn_qnpki_1994 {
  padding: 4px 6px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  cursor: pointer;
  color: var(--c-muted);
  display: flex;
  align-items: center;
  transition: all 0.15s;
}
._historyDetailBtn_qnpki_1994:hover { color: var(--c-primary); background: var(--c-accent-muted, #e8f5e9); }

._historyRemoveBtn_qnpki_2007 {
  padding: 4px 6px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  cursor: pointer;
  color: var(--c-faint);
  display: flex;
  align-items: center;
  transition: all 0.15s;
}
._historyRemoveBtn_qnpki_2007:hover { color: #e0445a; background: #fef0f2; }

._historyDetail_qnpki_1994 {
  padding: 10px 14px 14px;
  border-bottom: 1px solid var(--c-border-light, #eee);
  background: var(--c-bg-muted, #fafbfc);
  font-size: var(--fs-sm);
}
._historyDetailRow_qnpki_2026 {
  display: flex;
  gap: 8px;
  padding: 4px 0;
  line-height: 1.6;
}
._historyDetailLabel_qnpki_2032 {
  min-width: 72px;
  flex-shrink: 0;
  font-weight: 600;
  color: var(--c-text);
  font-size: var(--fs-xs);
}

/* ========== 脉诊五维度 ========== */
._pulseDimGroup_qnpki_2041 {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}
._pulseDimGroup_qnpki_2041:last-child { margin-bottom: 0; }
._pulseDimLabel_qnpki_2048 {
  min-width: 64px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--c-text);
  flex-shrink: 0;
}
._pulseDimTags_qnpki_2055 {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

/* ========== 保存确认消息 ========== */
._saveMsg_qnpki_2062 {
  display: flex;
  align-items: center;
  padding: 8px 14px;
  margin-bottom: 10px;
  background: #e8f5e9;
  border: 1px solid #a5d6a7;
  border-radius: var(--radius);
  color: #2e7d32;
  font-size: var(--fs-sm);
  font-weight: 500;
}

/* ========== 响应式 ========== */
@media (max-width: 900px) {
  ._modules_qnpki_1121 { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto; overflow: visible; }
  ._modules_qnpki_1121 ._moduleCard_qnpki_1131 { max-height: 60vh; }
  ._records_qnpki_1448 { grid-template-columns: repeat(2, 1fr); }
  ._twocol_qnpki_479 { grid-template-columns: 1fr; height: auto; min-height: auto; position: static; }
  ._leftCol_qnpki_485 { overflow: visible; padding-right: 0; grid-column: auto; }
  ._rightCol_qnpki_490 { position: static; width: auto; height: auto; overflow: visible; display: flex; flex-direction: column; gap: 14px; }
  ._symptomSection_qnpki_820 { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 640px) {
  ._page_qnpki_5 {
    padding: 10px 12px 28px;
    gap: 10px;
    /* 防止任何子元素超出视口产生水平滚动 */
    max-width: 100vw;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  /* 顶部装饰条：与 .page 12px 内边距对齐，避免负 margin 溢出 */
  ._pageBanner_qnpki_14 {
    margin: 0 -12px;
    max-width: calc(100% + 24px);
  }
  /* —— 患者信息条（移动端，对齐设计稿 doctor-apple-mobile.html 的 workstation 患者卡：姓名 / 性别 / 年龄 / 手机 横排紧凑输入框）—— */
  ._patientBar_qnpki_203 {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 13px;
    background: #fff;
    border: 1px solid #e8eae8;
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(16,24,20,.05), 0 1px 3px rgba(16,24,20,.06);
    align-items: stretch;
  }
  ._patientField_qnpki_212 {
    flex: 1;
    min-width: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    padding: 0;
    border: none;
    background: transparent;
  }
  ._patientField_qnpki_212:focus-within { border-color: transparent; }
  ._patientLabel_qnpki_225 {
    font-size: 10px;
    font-weight: 700;
    color: #8a8f8a;
    padding: 0 2px;
  }
  ._patientLabel_qnpki_225::after { content: ''; }
  ._patientInput_qnpki_233 {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid #e8eae8;
    border-radius: 9px;
    font-size: 14px;
    background: #fff;
    color: #2b2b2b;
    outline: none;
    transition: border-color .15s;
  }
  ._patientInput_qnpki_233:focus { border-color: #1a7a5a; }
  ._fieldName_qnpki_242 { flex: 1.6; }
  ._fieldSex_qnpki_243 { flex: 1; }
  ._fieldAge_qnpki_244 { flex: 1; }
  ._fieldPhone_qnpki_252 { flex: 1; }
  ._patientSecondaryRow_qnpki_245 {
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: 100%;
    flex: 1 1 100%;
    align-items: stretch;
  }
  ._patientSecondaryRow_qnpki_245 ._patientVisit_qnpki_253 { flex: 0 0 92px; }
  /* 上次就诊总结：移动端单列、padding 收紧 */
  ._lastVisitCard_qnpki_277 { padding: 12px; border-radius: 14px; }
  ._lastVisitBody_qnpki_300 { grid-template-columns: 1fr; gap: 6px; }
  ._lastVisitValue_qnpki_318 { font-size: var(--fs-xs); }
  ._patientVisit_qnpki_253 {
    flex: .9;
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
  }
  ._patientVisitBadge_qnpki_264 {
    justify-content: center;
    min-height: 36px;
    padding: 7px 8px;
    border: 1px solid #dfe5df;
    border-radius: 9px;
    background: #f7fbf8;
  }
  ._recognizeBtn_qnpki_1047, ._stopBtn_qnpki_128 { width: 100%; justify-content: center; }
  ._actions_qnpki_1384 { gap: 6px; }
  ._actions_qnpki_1384 button { flex: 1 1 calc(50% - 6px); justify-content: center; }
  ._resultBox_qnpki_611 { flex-direction: column; }
  ._records_qnpki_1448 { gap: 8px; grid-template-columns: 1fr; }
  ._modules_qnpki_1121 { grid-template-columns: 1fr; }
  ._symptomSection_qnpki_820 { gap: 8px; }
  ._card_qnpki_390 { padding: 12px; }
  ._symptomSection_qnpki_820 ._card_qnpki_390 { padding: 12px 14px; }
  ._symptomEmpty_qnpki_833, ._mostWantedPlaceholder_qnpki_982 { font-size: var(--fs-xs); }
  ._mostWantedCard_qnpki_969 { min-height: auto; }
  /* 语音按钮在移动端自适应填充 */
  ._inputRow_qnpki_567 ._btn_qnpki_131 {
    flex: 1 1 auto;
    min-width: 80px;
    justify-content: center;
    text-align: center;
  }
  ._inputRow_qnpki_567 ._textInput_qnpki_581 {
    flex: 1 1 100%;
    min-width: 0;
  }
  ._voiceBtnResponsive_qnpki_2198 {
    flex: 3 1 auto !important;
    min-width: 100px !important;
  }
  /* 对话记录区限高滚动，输入区固定在底部不压缩 */
  ._dialogue_qnpki_501 {
    max-height: 50vh;
    overflow-y: auto;
    flex-shrink: 0;
  }
  ._inputRow_qnpki_567 {
    flex-shrink: 0;
    flex-wrap: wrap;
  }
  /* 移动端 textarea 点击展开标记 */
  ._textInputExpandable_qnpki_2213 {
    cursor: pointer;
  }
  /* —— 阶段1：移动端原生感（顶栏 + 卡片风格）—— */
  ._mobileTopBar_qnpki_22 {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 14px 9px;
    margin: 0 -12px 10px;
    background: rgba(255,255,255,.76);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 1px solid rgba(232,234,232,.55);
    position: sticky;
    top: 0;
    z-index: 50;
  }
  ._mobileTopTitle_qnpki_2231 { font-size: 14px; font-weight: 700; letter-spacing: -.01em; color: var(--c-text); flex: 0 0 auto; }
  ._mobileTopSub_qnpki_2232 { font-size: 10.5px; color: var(--c-muted); margin-left: auto; }
  /* 移动端语音问诊 hero（设计稿 .voicehero 风格：绿色渐变 + 大麦克风按钮） */
  ._voiceHero_qnpki_2234 {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    margin-bottom: 12px;
    border-radius: var(--r-md, 12px);
    background: linear-gradient(135deg, #2e9e6b, #1a7a5a 60%, #0f5c3e);
    color: #fff;
    border: none;
    box-shadow: 0 1px 3px rgba(16, 24, 20, .12), 0 1px 2px rgba(16, 24, 20, .08);
  }
  ._voiceHeroIc_qnpki_2246 {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    border: none;
    background: rgba(255, 255, 255, .18);
    display: grid;
    place-items: center;
    flex: none;
    cursor: pointer;
    color: #fff;
    transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1);
  }
  ._voiceHeroIc_qnpki_2246:active { transform: scale(0.9); }
  ._voiceHeroIcRec_qnpki_2260 {
    background: rgba(255, 255, 255, .28);
    animation: _voiceHeroPulse_qnpki_1 1s infinite;
  }
  @keyframes _voiceHeroPulse_qnpki_1 {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .5); }
    50% { box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); }
  }
  ._voiceHeroTxt_qnpki_2268 { flex: 1; min-width: 0; }
  ._voiceHeroTitle_qnpki_2269 { font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
  ._voiceHeroSub_qnpki_2270 { font-size: 11px; opacity: .88; margin-top: 2px; line-height: 1.5; }
  /* —— 卡片（对齐设计稿 .card：圆角 16px、轻阴影、padding 14px、margin-bottom 12px）—— */
  ._card_qnpki_390 {
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(16,24,20,.05), 0 1px 3px rgba(16,24,20,.06);
    border: 1px solid #e8eae8;
    padding: 14px;
    margin-bottom: 12px;
  }
  /* 移动端隐藏卡片左侧绿条装饰，视觉更简洁 */
  ._card_qnpki_390::before { display: none; }
  /* —— 卡片头（对齐设计稿 .cardh：图标 24px 绿底圆角框、标题 13.5px 粗）—— */
  ._cardHead_qnpki_414 {
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin-bottom: 11px;
    gap: 8px;
    color: #2b2b2b;
  }
  ._cardHeadIcon_qnpki_423 {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: #eef6f1;
    color: #1a7a5a;
    display: inline-grid;
    place-items: center;
  }
  /* —— 输入框（对齐设计稿 .input：圆角 9px、聚焦绿边）—— */
  ._patientInput_qnpki_233,
  ._textInput_qnpki_581,
  ._mensesInput_qnpki_374,
  ._inputRow_qnpki_567 textarea,
  ._inputRow_qnpki_567 input,
  ._inputRow_qnpki_567 select {
    border-radius: 9px !important;
  }
  ._inputRow_qnpki_567 ._sel_qnpki_573,
  ._inputRow_qnpki_567 ._btn_qnpki_131 {
    border-radius: 9px;
  }
  /* —— chips（对齐设计稿 .cp：圆角 8px、padding 5px 10px、选中绿底绿字）—— */
  ._diagChip_qnpki_698,
  ._chip_qnpki_1280,
  button[class*='chip'] {
    border-radius: 8px;
    padding: 5px 10px;
    font-size: 11.5px;
    line-height: 1.3;
  }
  /* —— 灰色小字提示（对齐设计稿 .sectiontip）—— */
  ._sectionTip_qnpki_2322,
  ._dialogueEmpty_qnpki_527 {
    font-size: 10.5px;
    color: #8a8f8a;
    line-height: 1.5;
  }
  ._dimTags_qnpki_535 { color: #1a7a5a; font-size: 10.5px; }
  /* —— 对话记录：移除大留白，紧凑化 —— */
  ._dialogue_qnpki_501 { padding: 4px 0; gap: 6px; }
  ._turnBody_qnpki_546 { font-size: 12px; }
  /* —— 病史/生活多行 textarea：移动端紧凑 —— */
  ._mensesInput_qnpki_374 {
    font-size: 12px;
    padding: 9px 11px;
    margin-bottom: 7px;
  }
  /* —— 语音问诊 hero 在卡片内部留白对齐 —— */
  ._voiceHero_qnpki_2234 { margin-bottom: 12px; }
}

/* ========== 移动端输入全屏编辑弹层 ========== */
._inputExpandOverlay_qnpki_2343 {
  display: none;
}
@media (max-width: 640px) {
  ._inputExpandOverlay_qnpki_2343 {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 10000;
    flex-direction: column;
    background: rgba(0,0,0,.45);
    padding: env(safe-area-inset-top, 12px) 12px env(safe-area-inset-bottom, 12px);
  }
  ._inputExpandPanel_qnpki_2356 {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(0,0,0,.25);
  }
  ._inputExpandDialogue_qnpki_2365 {
    flex: 0 0 auto;
    max-height: 35vh;
    overflow-y: auto;
    padding: 12px 14px 6px;
    font-size: var(--fs-sm);
    border-bottom: 1px solid var(--c-line);
    background: var(--c-bg);
  }
  ._inputExpandDialogueTitle_qnpki_2374 {
    font-size: var(--fs-xs);
    color: var(--c-muted);
    margin-bottom: 6px;
    font-weight: 600;
  }
  ._inputExpandTextarea_qnpki_2380 {
    flex: 1;
    width: 100%;
    border: none;
    outline: none;
    padding: 14px;
    font-size: 16px;
    line-height: 1.6;
    font-family: inherit;
    resize: none;
    -webkit-appearance: none;
  }
  ._inputExpandActions_qnpki_2392 {
    display: flex;
    gap: 8px;
    padding: 10px 14px;
    border-top: 1px solid var(--c-line);
    flex-shrink: 0;
  }
  ._inputExpandAddBtn_qnpki_2399 {
    flex: 1;
    padding: 12px;
    border: none;
    border-radius: 10px;
    background: var(--c-green);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
  }
  ._inputExpandAddBtn_qnpki_2399:disabled {
    opacity: .5;
    cursor: not-allowed;
  }
}

/* ========== 移动端：处方单/医案 浮窗编辑 ==========
   仅 isMobile 渲染（TSX 已守卫）。底部保存/取消为正方形图标按钮，
   图标用 tick（纯勾，无圆框）与 x 对称——解决原 check 带 circle 导致的“圆形/长方形”观感。 */
._recordEditOverlay_qnpki_2419 {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  background: rgba(0,0,0,.45);
  padding: env(safe-area-inset-top, 12px) 12px env(safe-area-inset-bottom, 12px);
}
._recordEditPanel_qnpki_2428 {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,.25);
}
._recordEditHead_qnpki_2437 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border-bottom: 1px solid var(--c-line);
  flex-shrink: 0;
}
._recordEditTitle_qnpki_2445 {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--c-text);
}
._recordEditHeadClose_qnpki_2450 {
  border: none;
  background: transparent;
  color: var(--c-muted);
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  display: flex;
  align-items: center;
}
._recordEditHeadClose_qnpki_2450:hover {
  background: rgba(0,0,0,.06);
  color: var(--c-text);
}
._recordEditTextarea_qnpki_2464 {
  flex: 1;
  width: 100%;
  border: none;
  outline: none;
  padding: 14px;
  font-size: 16px;
  line-height: 1.7;
  font-family: inherit;
  resize: none;
  -webkit-appearance: none;
  background: var(--c-bg);
  color: var(--c-text);
}
._recordEditActions_qnpki_2478 {
  display: flex;
  gap: 12px;
  padding: 10px 14px;
  border-top: 1px solid var(--c-line);
  flex-shrink: 0;
  justify-content: center;
}
/* 勾/叉：正方形按钮（48×48），图标 tick/x 均为 24×24 viewBox 正方形 SVG */
._recordEditSaveBtn_qnpki_2487,
._recordEditCancelBtn_qnpki_2488 {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
._recordEditSaveBtn_qnpki_2487 {
  background: var(--c-green);
  color: #fff;
  border: none;
}
._recordEditSaveBtn_qnpki_2487:active {
  opacity: .85;
}
._recordEditCancelBtn_qnpki_2488 {
  background: var(--c-surface);
  color: var(--c-muted);
  border: 1px solid var(--c-line);
}
._recordEditCancelBtn_qnpki_2488:active {
  background: var(--c-bg);
}

/* ========== GraphRAG 方证判定 ========== */
._graphMatchSection_qnpki_2516 {
  margin: 10px 0;
  padding: 10px 12px;
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-sm, 8px);
}
._graphMatchTitle_qnpki_2523 {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--c-text);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 4px;
}
._graphMatchHint_qnpki_2532 {
  font-size: var(--fs-xs);
  color: var(--c-amber);
  font-weight: 400;
  margin-left: 4px;
}
._graphMatchPath_qnpki_2538 {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
._graphMatchRow_qnpki_2543 {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: var(--fs-xs);
  padding: 3px 6px;
  border-radius: 4px;
  flex-wrap: wrap;
}
._graphMatchHit_qnpki_2552 {
  background: var(--c-green-light, #e8f5e9);
  border-left: 3px solid var(--c-green);
}
._graphMatchMiss_qnpki_2556 {
  background: var(--c-bg-muted, #f8f9fa);
  border-left: 3px solid var(--c-faint);
}
._graphMatchTable_qnpki_2560 {
  font-weight: 600;
  color: var(--c-primary);
  min-width: 28px;
}
._graphMatchVerdict_qnpki_2565 {
  font-weight: 600;
  min-width: 48px;
}
._graphMatchHit_qnpki_2552 ._graphMatchVerdict_qnpki_2565 {
  color: var(--c-green-dark, #2e7d32);
}
._graphMatchMiss_qnpki_2556 ._graphMatchVerdict_qnpki_2565 {
  color: var(--c-muted);
}
._graphMatchReason_qnpki_2575 {
  color: var(--c-text);
  flex: 1;
  min-width: 120px;
}
._graphMatchSelected_qnpki_2580 {
  color: var(--c-green-dark, #2e7d32);
  font-weight: 600;
  width: 100%;
  margin-top: 2px;
  padding-left: 34px;
}
._graphMatchFinal_qnpki_2587 {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--c-line);
  font-size: var(--fs-sm);
  color: var(--c-text);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
._graphMatchFinal_qnpki_2587 strong {
  color: var(--c-primary);
}
._graphMatchConf_qnpki_2601 {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  background: var(--c-bg-muted, #f0f0f0);
  padding: 1px 8px;
  border-radius: 10px;
}

/* 移动端：推理路径竖向堆叠 */
@media (max-width: 640px) {
  ._graphMatchRow_qnpki_2543 {
    flex-direction: column;
    gap: 2px;
    align-items: flex-start;
  }
  ._graphMatchSelected_qnpki_2580 {
    padding-left: 0;
  }
}

/* ============================================================
   移动端分步向导样式（仅 isMobile 渲染时由 React 挂载）
   对齐设计稿 doctor-apple-mobile.html：.wizprogress / .actionbar
   桌面端 isMobile=false 时不渲染这些节点，零样式副作用。
   ============================================================ */

._wizProgress_qnpki_2627 {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 10px 12px 8px;
  margin: 0 -12px 10px;
  background: rgba(255, 255, 255, 0.76);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(232, 234, 232, 0.55);
  position: sticky;
  top: 0;
  z-index: 20;
}
._wizProgressInner_qnpki_2641 {
  display: flex;
  align-items: flex-start;
  flex: 1;
}
._wizLine_qnpki_2646 {
  flex: 0 0 8px;
  height: 2px;
  background: var(--c-line, #e8eae8);
  align-self: center;
  margin: 0 2px;
}
._wizLineDone_qnpki_2653 {
  background: #1a7a5a;
}
._wizStep_qnpki_2656 {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 2px 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
  opacity: 0.55;
}
._wizStep_qnpki_2656:disabled {
  cursor: default;
}
._wizStepCur_qnpki_2672 {
  opacity: 1;
}
._wizStepDone_qnpki_2675 {
  opacity: 1;
}
._wizDot_qnpki_2678 {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 9.5px;
  font-weight: 800;
  background: #f3f5f3;
  color: #aeb3ae;
  border: 2px solid #e8eae8;
  transition: all 140ms cubic-bezier(0.23, 1, 0.32, 1);
}
._wizStepCur_qnpki_2672 ._wizDot_qnpki_2678 {
  background: #eef6f1;
  color: #1a7a5a;
  border-color: #1a7a5a;
}
._wizStepDone_qnpki_2675 ._wizDot_qnpki_2678 {
  background: #1a7a5a;
  color: #fff;
  border-color: #1a7a5a;
}
._wizLabel_qnpki_2701 {
  font-size: 9px;
  color: #aeb3ae;
  font-weight: 600;
  line-height: 1;
}
._wizStepCur_qnpki_2672 ._wizLabel_qnpki_2701,
._wizStepDone_qnpki_2675 ._wizLabel_qnpki_2701 {
  color: #1a7a5a;
}

._actionBarMobile_qnpki_2712 {
  position: fixed;
  top: 50%;
  right: 10px;
  left: 10px;
  z-index: 95;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  pointer-events: none;
  transform: translateY(-50%);
}

/* 软键盘弹起时不显示在键盘上方，避免干扰正在输入的内容。 */
body.soft-keyboard-open ._actionBarMobile_qnpki_2712 {
  visibility: hidden;
  pointer-events: none;
}
._actionBarBtnGhost_qnpki_2731 {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.66);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.54);
  color: var(--c-green);
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(16, 40, 31, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1), background 140ms cubic-bezier(0.23, 1, 0.32, 1);
  pointer-events: auto;
}
._actionBarBtnGhost_qnpki_2731:active {
  transform: scale(0.97);
  background: rgba(232, 246, 238, 0.82);
}
._actionBarBtnGhost_qnpki_2731:disabled {
  opacity: 0.5;
  cursor: default;
}
._actionBarBtnPrimary_qnpki_2757 {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: 50%;
  background: rgba(26, 122, 90, 0.86);
  color: #fff;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 5px 16px rgba(15, 92, 62, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1), background 140ms cubic-bezier(0.23, 1, 0.32, 1);
  pointer-events: auto;
}
._actionBarBtnPrimary_qnpki_2757:active {
  transform: scale(0.97);
  background: rgba(15, 92, 62, 0.92);
}
._actionBarBtnPrimary_qnpki_2757:disabled {
  opacity: 0.6;
  cursor: default;
  box-shadow: none;
}

/* 教程式侧边翻页按钮不占据页面流，仅保留横向手势限制。 */
@media (max-width: 640px) {
  ._pageWithActionBar_qnpki_2787 {
    touch-action: pan-y;
  }
}

/* ===== 桌面问诊：单列采集 + 右侧方剂参考抽屉 ===== */
._desktopGenerateZone_qnpki_2793 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 20px;
  align-items: center;
  margin: 18px 0 22px;
  padding: 18px 20px;
  border: 1px solid #cfe6d8;
  border-radius: 16px;
  background: linear-gradient(135deg, #f7fcf8 0%, #eff8f2 100%);
}

._desktopGenerateZoneEmpty_qnpki_2805 {
  border-color: #e2e5e2;
  background: #f8faf8;
}

._desktopGenerateTitle_qnpki_2810 {
  margin: 0;
  color: #174c39;
  font-size: 16px;
  line-height: 1.45;
}

._desktopGenerateZoneEmpty_qnpki_2805 ._desktopGenerateTitle_qnpki_2810 { color: #6d766e; }

._desktopGenerateDesc_qnpki_2819,
._desktopGenerateNote_qnpki_2820 {
  margin: 4px 0 0;
  color: #657168;
  font-size: 12px;
  line-height: 1.6;
}

._desktopGenerateNote_qnpki_2820 {
  grid-column: 1 / -1;
  margin: -2px 0 0;
  color: #397257;
}

._desktopGenerateZoneEmpty_qnpki_2805 ._desktopGenerateNote_qnpki_2820 { color: #8b918c; }

._desktopGenerateActions_qnpki_2835 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}

._desktopGenerateActions_qnpki_2835 button { white-space: nowrap; }

._desktopGenerateBtn_qnpki_2845 {
  display: inline-flex;
  gap: 8px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border: 1px solid #176b48;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(180deg, #238159 0%, #176b48 100%);
  box-shadow: 0 5px 14px rgba(23, 107, 72, .2);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

._desktopGenerateBtn_qnpki_2845:hover:not(:disabled) {
  background: linear-gradient(180deg, #2a9063 0%, #176b48 100%);
  box-shadow: 0 7px 18px rgba(23, 107, 72, .26);
  transform: translateY(-1px);
}

._desktopGenerateBtn_qnpki_2845:active:not(:disabled) { transform: translateY(0); }

._desktopGenerateBtn_qnpki_2845:disabled {
  border-color: #cbd4ce;
  color: #909891;
  background: #e8ece9;
  box-shadow: none;
  cursor: not-allowed;
}

._desktopGenerateStopBtn_qnpki_2879 {
  border-color: #c62822;
  background: linear-gradient(180deg, #ef4b3f 0%, #d9362b 100%);
  color: #fff;
  box-shadow: 0 7px 18px rgba(217, 54, 43, .28);
}

._desktopGenerateBtn_qnpki_2845._desktopGenerateStopBtn_qnpki_2879:hover,
._desktopGenerateBtn_qnpki_2845._desktopGenerateStopBtn_qnpki_2879:active,
._desktopGenerateBtn_qnpki_2845._desktopGenerateStopBtn_qnpki_2879:focus,
._desktopGenerateBtn_qnpki_2845._desktopGenerateStopBtn_qnpki_2879:focus-visible {
  border-color: #c62822;
  background: linear-gradient(180deg, #ef4b3f 0%, #d9362b 100%);
  color: #fff;
  box-shadow: 0 7px 18px rgba(217, 54, 43, .28);
  transform: translateY(0);
}

/* 思考过程：预格式文本也必须受容器宽度约束，避免长链接、连续英文或模型输出撑破移动端。 */
._moduleThinkingCard_qnpki_2898,
._moduleThinkingBody_qnpki_2899 { min-width: 0; max-width: 100%; }
._moduleThinkingBody_qnpki_2899 pre {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 640px) {
  ._moduleThinkingCard_qnpki_2898 {
    margin-top: 8px;
    border: 1px solid #dce9df;
    border-radius: 9px;
    background: #fbfefc;
    overflow: hidden;
  }
  ._moduleThinkingCard_qnpki_2898 > summary {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    min-height: 32px;
    padding: 6px 8px;
    color: #2f6048;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
  }
  ._moduleThinkingCard_qnpki_2898 > summary::-webkit-details-marker { display: none; }
  ._moduleThinkingState_qnpki_2930 {
    min-width: 0;
    margin-left: auto;
    color: #7e9185;
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.25;
    text-align: right;
    overflow-wrap: anywhere;
  }
  ._moduleThinkingBody_qnpki_2899 {
    padding: 0 8px 8px;
    border-top: 1px solid #edf3ee;
    overflow: hidden;
  }
  ._moduleThinkingBody_qnpki_2899 pre {
    max-height: 180px;
    margin: 6px 0 0;
    overflow: auto;
    white-space: pre-wrap;
    color: #59675f;
    font: inherit;
    font-size: 11.5px;
    line-height: 1.35;
    letter-spacing: 0;
    -webkit-overflow-scrolling: touch;
  }
}

@media (min-width: 641px) {
  ._page_qnpki_5 {
    --fs-xs: 13px;
    --fs-sm: 14.5px;
    --fs-md: 16px;
    --fs-lg: 19px;
    font-size: 15px;
  }

  ._page_qnpki_5 input,
  ._page_qnpki_5 textarea,
  ._page_qnpki_5 select,
  ._page_qnpki_5 button {
    font-size: 14px;
  }

  ._desktopGenerateTitle_qnpki_2810 { font-size: 18px; }
  ._desktopGenerateDesc_qnpki_2819 { font-size: 14.5px; }
  ._desktopGenerateNote_qnpki_2820 { font-size: 13.5px; }
  ._page_qnpki_5 ._desktopGenerateBtn_qnpki_2845 { min-height: 46px; padding: 11px 22px; font-size: 15px; }

  ._desktopResultsToggle_qnpki_2980 {
    position: fixed;
    top: 15px;
    right: 18px;
    z-index: 10001;
    display: inline-grid;
    width: 40px;
    height: 40px;
    place-items: center;
    padding: 0;
    border: 1px solid #d6dfd9;
    border-radius: 10px;
    color: #4d5c53;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 5px 18px rgba(26, 50, 36, .12);
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: color .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
  }

  ._desktopResultsToggle_qnpki_2980:hover:not(:disabled) {
    border-color: #9bc6aa;
    color: #146a47;
    background: #f0f8f2;
    box-shadow: 0 7px 20px rgba(26, 80, 51, .16);
  }

  ._desktopResultsToggleOpen_qnpki_3007 {
    border-color: #9bc6aa;
    color: #146a47;
    background: #edf7f0;
  }

  ._desktopResultsToggle_qnpki_2980:disabled {
    color: #a7aea9;
    background: rgba(245, 247, 245, .94);
    box-shadow: none;
    cursor: not-allowed;
  }

  ._twocol_qnpki_479 { display: block; }

  ._leftCol_qnpki_485 {
    width: 100%;
    min-width: 0;
  }

  ._resultsScrim_qnpki_3027 {
    display: none;
  }

  ._resultsScrimOpen_qnpki_3031 {
    display: none;
  }

  ._rightCol_qnpki_490 {
    position: fixed;
    top: 0;
    right: 0;
  bottom: calc(var(--compliance-footer-h, 38px) + 8px);
    z-index: 10000;
    display: flex;
    flex-direction: column;
    width: min(66.666vw, calc(100vw - 222px));
    min-width: 460px;
    max-width: min(66.666vw, calc(100vw - 222px));
    height: auto;
  max-height: calc(100dvh - var(--compliance-footer-h, 38px) - 8px);
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-left: 1px solid #d9e5dc;
    border-radius: 0;
    background: #fff;
    box-shadow: -18px 0 48px rgba(21, 48, 34, .18);
    opacity: 0;
    visibility: hidden;
    transform: translateX(104%);
    transition: transform .3s cubic-bezier(.2, .8, .2, 1), opacity .2s ease, visibility 0s linear .3s;
  }

  ._rightColResizing_qnpki_3062 {
    transition: none;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }

  ._desktopDrawerResizeHandle_qnpki_3067 {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -5px;
    z-index: 3;
    width: 10px;
    cursor: col-resize;
    touch-action: none;
  }

  ._desktopDrawerResizeHandle_qnpki_3067::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 4px;
    width: 2px;
    height: 56px;
    border-radius: 99px;
    background: #b9d7c4;
    opacity: .75;
    transform: translateY(-50%);
    transition: height .16s ease, background .16s ease, opacity .16s ease;
  }

  ._desktopDrawerResizeHandle_qnpki_3067:hover::after,
  ._rightColResizing_qnpki_3062 ._desktopDrawerResizeHandle_qnpki_3067::after {
    height: 84px;
    background: #238156;
    opacity: 1;
  }

  ._rightColOpen_qnpki_3099 {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    transition-delay: 0s;
  }

  ._desktopDrawerHead_qnpki_3106 {
    min-height: 66px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 70px 0 20px;
    border-bottom: 1px solid #e6ece7;
    background: #fff;
  }

  ._desktopDrawerEyebrow_qnpki_3117 {
    margin-bottom: 4px;
    color: #238156;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
  }

  ._desktopDrawerTitle_qnpki_3125 {
    color: #23362a;
    font-size: 16px;
    font-weight: 750;
    line-height: 1.45;
  }

  ._desktopDrawerSub_qnpki_3132 { margin-top: 1px; font-size: 12.5px; color: #7b857e; }

  ._desktopDrawerStatus_qnpki_3134 {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    color: #176b48;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
  }

  ._desktopModuleTabs_qnpki_3145 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    padding: 12px 18px;
    border-bottom: 1px solid #e6ece7;
    background: #fbfdfb;
  }

  ._desktopModuleTab_qnpki_3145 {
    min-width: 0;
    min-height: 46px;
    padding: 6px 8px;
    border: 1px solid transparent;
    border-radius: 10px;
    color: #6d786f;
    background: transparent;
    text-align: center;
    cursor: pointer;
  }

  ._desktopModuleTab_qnpki_3145 b,
  ._desktopModuleTab_qnpki_3145 small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  ._desktopModuleTab_qnpki_3145 b { font-size: 13px; }
  ._desktopModuleTab_qnpki_3145 small { margin-top: 1px; font-size: 11px; opacity: .85; }

  ._desktopModuleTab_qnpki_3145:hover { color: #1b704c; background: #f0f8f2; }
  ._desktopModuleTabActive_qnpki_3172 { border-color: #bde0c8; color: #12633f; background: #eaf7ee; }

  ._desktopDrawerBody_qnpki_3174 {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 18px 20px 0;
  }

  ._rightCol_qnpki_490 ._modules_qnpki_1121 {
    display: block;
    min-height: 0;
    overflow: visible;
  }

  ._rightCol_qnpki_490 ._moduleCard_qnpki_1131 {
    min-height: 0;
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  ._rightCol_qnpki_490 ._moduleCard_qnpki_1131::before { display: none; }
  ._rightCol_qnpki_490 ._moduleCard_qnpki_1131:hover { border-color: transparent; box-shadow: none; }

  ._rightCol_qnpki_490 ._moduleHead_qnpki_1162 {
    position: static;
    min-height: 0;
    margin: 0 0 14px;
    padding: 0;
    background: transparent;
  }

  ._desktopModuleTitle_qnpki_3210 {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 4px;
    overflow: hidden;
  }

  ._desktopModuleTitle_qnpki_3210 strong {
    flex: 0 0 auto;
    color: #23362a;
    font-size: 14px;
  }

  ._desktopInlineFormula_qnpki_3224 {
    min-width: 0;
    overflow: hidden;
    color: #397257;
    font-size: 12px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  ._desktopModuleHeadStatus_qnpki_3234 {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
  }

  ._desktopAdoptBtn_qnpki_3241 {
    min-height: 24px;
    padding: 2px 9px;
    border: 1px solid #b8d8c5;
    border-radius: 999px;
    color: #276a48;
    background: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
  }

  ._desktopAdoptBtn_qnpki_3241:hover {
    border-color: #4b966c;
    background: #f2fbf5;
  }

  ._desktopAdoptBtnActive_qnpki_3259 {
    border-color: #397257;
    color: #fff;
    background: #397257;
  }

  ._desktopAdoptBtnActive_qnpki_3259:hover {
    border-color: #2d6048;
    background: #2d6048;
  }

  ._desktopResultStatusLabel_qnpki_3270 {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 9px;
    border-radius: 999px;
    color: #155f41;
    background: #eaf7ee;
    font-size: 12px;
    font-weight: 700;
  }
  ._desktopModuleStatusIcon_qnpki_3281 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    flex: 0 0 auto;
    border-radius: 50%;
  }
  ._desktopModuleStatusIconLoading_qnpki_3290 {
    color: #397257;
    background: #eaf7ee;
    animation: _drawerEmptyPulse_qnpki_1 1.4s ease-in-out infinite;
  }
  ._desktopModuleStatusIconDone_qnpki_3295 {
    color: #fff;
    background: #238156;
  }
  ._desktopModuleStatusIconError_qnpki_3299 {
    color: #fff;
    background: #c65c48;
  }

  ._rightCol_qnpki_490 ._synText_qnpki_1229 {
    padding: 14px 0;
    margin: 0;
    border-bottom: 1px solid #edf1ee;
    font-size: 15px;
    font-weight: 720;
  }

  ._rightCol_qnpki_490 ._pathText_qnpki_1230 {
    padding: 14px 0;
    border-bottom: 1px solid #edf1ee;
    color: #3f4844;
    font-size: 13px;
    line-height: 1.65;
  }

  ._planDetailLabel_qnpki_3320 {
    margin: 9px 0 5px;
    color: #397257;
    font-size: 11px;
    font-weight: 750;
  }

  ._planDetailRow_qnpki_3327 {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 7px;
    margin-top: 8px;
    color: #59665e;
    font-size: 12px;
    line-height: 1.6;
  }

  ._planDetailRow_qnpki_3327 > span {
    color: #397257;
    font-weight: 700;
  }

  ._planEmptyDetail_qnpki_3342 {
    color: #929a95;
    font-size: 12px;
    line-height: 1.6;
  }

  ._rightCol_qnpki_490 ._planBox_qnpki_1232 {
    margin-top: 14px;
    padding: 15px;
    border: 1px solid #cfe1d8;
    border-radius: 10px;
    background: #f3faf5;
  }

  ._rightCol_qnpki_490 ._planName_qnpki_1237 {
    margin-bottom: 10px;
    color: #155f41;
    font-size: 16px;
    font-weight: 760;
  }

  ._rightCol_qnpki_490 ._herbs_qnpki_1239 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px 12px;
  }

  ._rightCol_qnpki_490 ._herb_qnpki_1239 {
    padding: 0 0 5px;
    border-bottom: 1px dashed #d7e3dc;
    border-radius: 0;
    color: #32443c;
    background: transparent;
  }

  ._rightCol_qnpki_490 ._moduleChat_qnpki_1659 {
    margin-top: 14px;
    padding: 0;
    overflow: hidden;
    border: 1px solid #cfe1d8;
    border-radius: 10px;
    background: #fff;
  }

  ._rightCol_qnpki_490 ._chatToggle_qnpki_1664 {
    width: 100%;
    min-height: 46px;
    padding: 0 13px;
    background: #f3faf5;
    text-decoration: none;
  }

  ._rightCol_qnpki_490 ._chatToggle_qnpki_1664:hover { background: #eaf7ee; text-decoration: none; }
  ._rightCol_qnpki_490 ._chatBox_qnpki_1677,
  ._rightCol_qnpki_490 ._chatInputRow_qnpki_1745,
  ._rightCol_qnpki_490 ._chatActions_qnpki_1787,
  ._rightCol_qnpki_490 ._rxProposal_qnpki_1825 { margin-left: 12px; margin-right: 12px; }
  ._rightCol_qnpki_490 ._chatActions_qnpki_1787 { margin-bottom: 12px; }

  ._desktopDrawerEmpty_qnpki_3401 {
    width: min(100%, 500px);
    min-height: calc(100dvh - 132px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    padding: 34px 18px 44px;
    text-align: center;
  }

  ._desktopDrawerEmptyIcon_qnpki_3413 {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 16px;
    border: 1px solid #c9e2d3;
    border-radius: 18px;
    color: #176b48;
    background: linear-gradient(145deg, #f4fbf6, #e4f4e9);
    box-shadow: 0 9px 24px rgba(28, 101, 67, .12);
  }

  ._desktopDrawerEmptyIconLoading_qnpki_3426 svg { animation: _drawerEmptyPulse_qnpki_1 1.5s ease-in-out infinite; }

  ._desktopDrawerEmptyError_qnpki_3428 ._desktopDrawerEmptyIcon_qnpki_3413 {
    border-color: #efd3c9;
    color: #a94737;
    background: #fff4f1;
    box-shadow: 0 9px 24px rgba(145, 65, 47, .1);
  }

  ._desktopDrawerEmptyEyebrow_qnpki_3435 {
    color: #238156;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .08em;
  }

  ._desktopDrawerEmptyError_qnpki_3428 ._desktopDrawerEmptyEyebrow_qnpki_3435 { color: #a94737; }

  ._desktopDrawerEmptyTitle_qnpki_3444 {
    margin: 7px 0 0;
    color: #20352a;
    font-size: 21px;
    line-height: 1.45;
  }

  ._desktopDrawerEmptyDesc_qnpki_3451 {
    max-width: 440px;
    margin: 10px 0 0;
    color: #66736b;
    font-size: 14px;
    line-height: 1.75;
  }

  ._desktopDrawerReadiness_qnpki_3459,
  ._desktopDrawerProgressList_qnpki_3460 {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 24px;
  }

  ._desktopDrawerReadinessItem_qnpki_3468,
  ._desktopDrawerProgressItem_qnpki_3469 {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 11px;
    border: 1px solid #e3e9e5;
    border-radius: 10px;
    color: #536058;
    background: #fafcfb;
    font-size: 13px;
    text-align: left;
  }

  ._desktopDrawerReadinessItemDone_qnpki_3483 {
    border-color: #cbe2d3;
    color: #24583f;
    background: #f2faf4;
  }

  ._desktopDrawerReadinessIcon_qnpki_3489 {
    width: 25px;
    height: 25px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 8px;
    color: #7a867e;
    background: #edf1ee;
  }

  ._desktopDrawerReadinessItemDone_qnpki_3483 ._desktopDrawerReadinessIcon_qnpki_3489 { color: #176b48; background: #dff1e5; }

  ._desktopDrawerReadinessState_qnpki_3502,
  ._desktopDrawerProgressState_qnpki_3503 {
    margin-left: auto;
    color: #8a938d;
    font-size: 11.5px;
    white-space: nowrap;
  }

  ._desktopDrawerReadinessItemDone_qnpki_3483 ._desktopDrawerReadinessState_qnpki_3502 { color: #238156; font-weight: 650; }

  ._desktopDrawerProgressList_qnpki_3460 { grid-template-columns: 1fr; }
  ._desktopDrawerProgressItem_qnpki_3469 { min-height: 50px; }

  ._desktopDrawerProgressDot_qnpki_3515 {
    width: 9px;
    height: 9px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #cbd3ce;
  }

  ._desktopDrawerProgressDotActive_qnpki_3523 { background: #238156; box-shadow: 0 0 0 5px rgba(35, 129, 86, .12); animation: _drawerEmptyPulse_qnpki_1 1.25s ease-in-out infinite; }
  ._desktopDrawerProgressDotError_qnpki_3524 { background: #c65c48; }
  ._desktopDrawerProgressName_qnpki_3525 { color: #34453c; font-weight: 650; }

  ._desktopDrawerErrorDetails_qnpki_3527 {
    width: 100%;
    margin-top: 14px;
    padding: 10px 12px;
    border: 1px solid #efd9d1;
    border-radius: 9px;
    color: #815449;
    background: #fff9f7;
    font-size: 12px;
    text-align: left;
  }

  ._desktopDrawerErrorDetails_qnpki_3527 summary { cursor: pointer; font-weight: 650; }
  ._desktopDrawerErrorDetails_qnpki_3527 p { margin: 8px 0 0; line-height: 1.55; word-break: break-word; }

  ._desktopDrawerEmptyActions_qnpki_3542 {
    width: 100%;
    display: flex;
    gap: 9px;
    justify-content: center;
    margin-top: 24px;
  }

  ._desktopDrawerEmptyPrimary_qnpki_3550,
  ._desktopDrawerEmptySecondary_qnpki_3551 {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 18px;
    border-radius: 9px;
    font-weight: 700;
    cursor: pointer;
  }

  ._desktopDrawerEmptyPrimary_qnpki_3550 {
    flex: 1;
    border: 1px solid #176b48;
    color: #fff;
    background: #1d7650;
    box-shadow: 0 5px 14px rgba(23, 107, 72, .18);
  }

  ._desktopDrawerEmptyPrimary_qnpki_3550:hover:not(:disabled) { background: #155f41; }
  ._desktopDrawerEmptyPrimary_qnpki_3550:disabled { border-color: #cbd4ce; color: #909891; background: #e8ece9; box-shadow: none; cursor: not-allowed; }

  ._desktopDrawerStopButton_qnpki_3573 {
    border-color: #c62822;
    background: #d9362b;
    color: #fff;
    box-shadow: 0 6px 16px rgba(217, 54, 43, .24);
  }

  ._desktopDrawerEmptyPrimary_qnpki_3550._desktopDrawerStopButton_qnpki_3573:hover,
  ._desktopDrawerEmptyPrimary_qnpki_3550._desktopDrawerStopButton_qnpki_3573:active,
  ._desktopDrawerEmptyPrimary_qnpki_3550._desktopDrawerStopButton_qnpki_3573:focus,
  ._desktopDrawerEmptyPrimary_qnpki_3550._desktopDrawerStopButton_qnpki_3573:focus-visible {
    border-color: #c62822;
    background: #d9362b;
    color: #fff;
    box-shadow: 0 6px 16px rgba(217, 54, 43, .24);
    transform: none;
  }

  ._desktopDrawerEmptySecondary_qnpki_3551 {
    border: 1px solid #d9e3dc;
    color: #526158;
    background: #fff;
  }

  ._desktopDrawerEmptySecondary_qnpki_3551:hover { border-color: #a8cbb5; color: #176b48; background: #f5faf6; }

  ._desktopDrawerEmptyNote_qnpki_3599 {
    margin-top: 15px;
    color: #929a95;
    font-size: 11.5px;
    line-height: 1.55;
  }

  ._desktopThinkingList_qnpki_3606 {
    width: 100%;
    display: grid;
    gap: 8px;
    margin-top: 14px;
    text-align: left;
  }

  ._desktopThinkingItem_qnpki_3614 {
    border: 1px solid #dfe8e1;
    border-radius: 10px;
    background: #fbfdfb;
    overflow: hidden;
  }

  ._desktopThinkingItem_qnpki_3614 summary {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 9px 11px;
    color: #2f4939;
    font-size: 13px;
    font-weight: 650;
    cursor: pointer;
    list-style-position: inside;
  }

  ._desktopThinkingSummaryState_qnpki_3634 {
    margin-left: auto;
    color: #7a887f;
    font-size: 11.5px;
    font-weight: 500;
  }

  ._desktopThinkingBody_qnpki_3641 {
    padding: 0 11px 11px;
    border-top: 1px solid #edf2ee;
  }

  ._desktopThinkingSection_qnpki_3646 { margin-top: 10px; }
  ._desktopThinkingLabel_qnpki_3647 { color: #397257; font-size: 11.5px; font-weight: 700; }
  ._desktopThinkingSection_qnpki_3646 pre {
    max-height: 180px;
    margin: 4px 0 0;
    overflow: auto;
    white-space: pre-wrap;
    color: #59665e;
    font: inherit;
    font-size: 12px;
    line-height: 1.65;
  }
  ._desktopThinkingEmpty_qnpki_3658 { padding-top: 10px; color: #929a95; font-size: 12px; }

  ._desktopStreamingModules_qnpki_3660 {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin-top: 14px;
    text-align: left;
  }
  ._desktopStreamingModules_qnpki_3660 ._moduleCard_qnpki_1131 { display: block; padding: 12px; }
  ._desktopStreamingModules_qnpki_3660 ._moduleHead_qnpki_1162 { justify-content: flex-start; gap: 8px; }
  ._desktopStreamingModuleName_qnpki_3670 { margin-left: 0; color: #365d49; font-size: 12px; font-weight: 700; }
  ._desktopStreamingFormulaName_qnpki_3671 { min-width: 0; overflow: hidden; color: #397257; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
  ._desktopStreamingModules_qnpki_3660 ._desktopResultStatusLabel_qnpki_3270 { margin-left: auto; }
  ._moduleThinkingCard_qnpki_2898 {
    margin-top: 10px;
    border: 1px solid #dce9df;
    border-radius: 9px;
    background: #fbfefc;
    overflow: hidden;
  }
  ._moduleThinkingCard_qnpki_2898 summary {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 7px 9px;
    color: #2f6048;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    list-style-position: inside;
  }
  ._moduleThinkingState_qnpki_2930 { margin-left: auto; color: #7e9185; font-size: 11px; font-weight: 500; }
  ._moduleThinkingBody_qnpki_2899 { padding: 0 9px 9px; border-top: 1px solid #edf3ee; }
  ._moduleThinkingBody_qnpki_2899 pre {
    max-height: 170px;
    margin: 9px 0 0;
    overflow: auto;
    white-space: pre-wrap;
    color: #59675f;
    font: inherit;
    font-size: 12px;
    line-height: 1.6;
  }
  ._moduleThinkingEmpty_qnpki_3704 { padding-top: 9px; color: #929a95; font-size: 11px; }

  ._desktopCandidateOpenBtn_qnpki_3706 {
    min-height: 42px;
    border: 1px solid #4b9b70;
    background: linear-gradient(135deg, #238156 0%, #176b48 100%);
    color: #fff;
    box-shadow: 0 7px 17px rgba(23, 107, 72, .22);
  }
  ._desktopCandidateOpenBtn_qnpki_3706:hover {
    background: linear-gradient(135deg, #2c9a68 0%, #1b7851 100%);
    color: #fff;
    box-shadow: 0 9px 20px rgba(23, 107, 72, .28);
    transform: translateY(-1px);
  }
  ._desktopCandidateOpenBtn_qnpki_3706 ._desktopCandidateOpenBadge_qnpki_177 {
    background: rgba(255, 255, 255, .2);
    color: #fff;
  }

  ._rightCol_qnpki_490 ._moduleCardInactive_qnpki_3724 { display: none; }
  ._rightCol_qnpki_490 ._moduleCardActive_qnpki_3725 { display: block; animation: _drawerModuleIn_qnpki_1 .18s ease-out; }

  ._desktopDrawerFooter_qnpki_3727 {
    display: grid;
    gap: 8px;
    position: sticky;
    bottom: 0;
    margin: 8px -20px 0;
    padding: 8px 20px 4px;
    border-top: 1px solid #e6ece7;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(8px);
  }

  ._desktopDrawerFooter_qnpki_3727 ._btnPrimary_qnpki_155 { width: 100%; justify-content: center; }
  ._desktopDrawerFooter_qnpki_3727 ._desktopRegenerateBtn_qnpki_3740 {
    width: 100%;
    min-height: 38px;
    justify-content: center;
    border-color: #cfe0d4;
    background: #f6faf7;
    color: #397257;
    font-weight: 650;
  }
  ._desktopDrawerFooter_qnpki_3727 ._desktopRegenerateBtn_qnpki_3740:hover {
    border-color: #9dc6aa;
    background: #eaf6ed;
    color: #176b48;
    transform: translateY(-1px);
  }
}

@keyframes _drawerModuleIn_qnpki_1 {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes _drawerEmptyPulse_qnpki_1 {
  0%, 100% { opacity: .55; transform: scale(.92); }
  50% { opacity: 1; transform: scale(1); }
}

/* ===== 移动端「四诊合参·分步向导」概览页（仅 isMobile && currentStep==='overview'）=====
 *  对齐设计稿 doctor-apple-mobile.html 的 workstation 页:绿色 Hero + 四诊进度网格。 */
._overviewWrap_qnpki_3769 {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
}
._overviewHero_qnpki_3775 {
  background: linear-gradient(135deg, #2e9e6b, #1a7a5a 60%, #0f5c3e);
  color: #fff;
  border: none;
  border-radius: 16px;
  padding: 20px 16px 18px;
  box-shadow: 0 1px 2px rgba(16, 24, 20, 0.05), 0 1px 3px rgba(16, 24, 20, 0.06);
}
._overviewHeroHead_qnpki_3783 {
  display: flex;
  align-items: center;
  gap: 12px;
}
._overviewHeroIcon_qnpki_3788 {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.18);
  display: grid;
  place-items: center;
  flex: none;
  color: #fff;
}
._overviewHeroText_qnpki_3798 {
  flex: 1;
  min-width: 0;
}
._overviewHeroTitle_qnpki_3802 {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
._overviewHeroSub_qnpki_3807 {
  font-size: 11px;
  opacity: 0.88;
  margin-top: 2px;
  line-height: 1.5;
}
._overviewHeroBtn_qnpki_3813 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 13px;
  padding: 13px 12px;
  font-size: 14px;
  font-weight: 600;
  color: #0f5c3e;
  background: #fff;
  border: 1px solid #fff;
  border-radius: 12px;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(15, 92, 62, 0.18);
  transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1);
}
._overviewHeroBtn_qnpki_3813:active {
  transform: scale(0.97);
}
._overviewHeroFoot_qnpki_3835 {
  font-size: 10px;
  opacity: 0.82;
  margin-top: 9px;
  text-align: center;
  line-height: 1.5;
}
._overviewSectHead_qnpki_3842 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #2b2b2b;
  margin-top: 2px;
}
._overviewSectCnt_qnpki_3851 {
  font-size: 11px;
  font-weight: 500;
  color: #8a8f8a;
}
._overviewGrid_qnpki_3856 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
._overviewCard_qnpki_3861 {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 13px 12px;
  background: #fff;
  border: 1px solid #e8eae8;
  border-radius: 14px;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(16, 24, 20, 0.05);
  transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1), background 140ms cubic-bezier(0.23, 1, 0.32, 1);
}
._overviewCard_qnpki_3861:active {
  transform: scale(0.98);
}
._overviewCard_qnpki_3861:disabled {
  cursor: default;
  opacity: 0.92;
}
._overviewCardIcon_qnpki_3882 {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  flex: none;
  background: #f3f5f3;
  color: #8a8f8a;
}
._overviewCardDone_qnpki_3892 ._overviewCardIcon_qnpki_3882 {
  background: #eef6f1;
  color: #1a7a5a;
}
._overviewCardIconDanger_qnpki_3896 {
  background: #fdecec !important;
  color: #c0392b !important;
}
._overviewCardText_qnpki_3900 {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
._overviewCardName_qnpki_3907 {
  font-size: 13.5px;
  font-weight: 700;
  color: #2b2b2b;
}
._overviewCardStat_qnpki_3912 {
  font-size: 11px;
  color: #8a8f8a;
}
._overviewCardDone_qnpki_3892 ._overviewCardStat_qnpki_3912 {
  color: #1a7a5a;
}
._overviewCardStatDanger_qnpki_3919 {
  color: #c0392b !important;
}
._overviewCardCheck_qnpki_3922 {
  font-size: 13px;
  font-weight: 800;
  color: #1a7a5a;
}
._overviewCardWide_qnpki_3927 {
  grid-column: 1 / -1;
}

/* ===== 移动端 · 问诊步（对齐设计稿 wen 页） ===== */
._aitag_qnpki_3932 {
  margin-left: auto;
  font-size: 9.5px;
  font-weight: 700;
  color: #1a7a5a;
  background: #eef6f1;
  padding: 2px 7px;
  border-radius: 5px;
}
._btnPrimarySm_qnpki_3941 {
  background: #1a7a5a;
  border-color: #1a7a5a;
  color: #fff;
}
._cardHeadTitle_qnpki_3946 {
  flex: 0 1 auto;
}

@media (max-width: 640px) {
  ._wenMobile_qnpki_3951 {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  /* ① 参考维度 sectionTip */
  ._wenDimTip_qnpki_3957 {
    font-size: 10.5px;
    color: #8a8f8a;
    margin: 0 0 9px;
    line-height: 1.5;
  }
  ._wenDimTipLabel_qnpki_3963 {
    color: #8a8f8a;
  }

  /* ② voicehero：绿色渐变大卡 + 48px 圆角 mic + 白底绿字按钮（设计稿 .voicehero） */
  ._wenMobile_qnpki_3951 ._voiceHero_qnpki_2234 {
    display: block;
    padding: 16px;
    margin-bottom: 12px;
  }
  ._voiceHeroInner_qnpki_3973 {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  ._voiceHeroBtn_qnpki_3978 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    margin-top: 13px;
    padding: 13px;
    font-size: 14px;
    font-weight: 600;
    background: #fff;
    color: #0f5c3e;
    border: 1px solid #fff;
    border-radius: 10px;
  }
  ._voiceHeroBtn_qnpki_3978:active { transform: scale(0.97); }
  /* 录音中「停止」：对齐桌面 Web 端样式 —— 透明底 + 绿字 + 绿色波浪纹（VolumeBars .volumeBar 默认 var(--c-green)）。
     不再用绿底白字，让用户在录音态也能清晰看到声波波动条反馈。 */
  ._voiceHeroBtnRec_qnpki_3996 {
    background: rgba(15, 92, 62, 0.08);
    color: #0f5c3e;
    border-color: #1a7a5a;
    animation: _voiceHeroPulse_qnpki_1 1.4s ease-in-out infinite;
  }
  ._voiceHeroBtnRec_qnpki_3996 ._volumeBar_qnpki_112 {
    background: #0f5c3e;
  }
  @keyframes _voiceHeroPulse_qnpki_1 {
    0%, 100% { box-shadow: 0 0 0 0 rgba(15, 92, 62, 0.45); }
    50% { box-shadow: 0 0 0 6px rgba(15, 92, 62, 0); }
  }
  /* 问题 3：voicehero 按钮 + 分类中提示横排容器 */
  ._voiceHeroActionBar_qnpki_4010 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 13px;
  }
  ._voiceHeroActionBar_qnpki_4010 ._voiceHeroBtn_qnpki_3978 {
    flex: 1;
    margin-top: 0;
  }
  ._voiceHeroClassifying_qnpki_4020 {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
    padding: 0 10px;
    height: 40px;
    border-radius: 10px;
    background: #0f5c3e;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
  }
  ._voiceHeroClassifyingDot_qnpki_4034 {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
    animation: _voiceHeroClassifyingBlink_qnpki_1 1s ease-in-out infinite;
  }
  @keyframes _voiceHeroClassifyingBlink_qnpki_1 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
  }

  /* ③ 主诉卡：input + mic 横排 */
  ._wenInlineInput_qnpki_4047 {
    display: flex;
    gap: 6px;
    align-items: center;
  }
  ._wenInlineInput_qnpki_4047 ._textInput_qnpki_581 {
    flex: 1;
    padding: 9px 11px;
    border: 1px solid #e8eae8;
    border-radius: 9px;
    font-size: 14px;
    background: #fff;
    color: #2b2b2b;
  }
  ._wenInlineInput_qnpki_4047 ._textInput_qnpki_581:focus { border-color: #1a7a5a; outline: none; }
  ._wenSectionTip_qnpki_4062 {
    font-size: 10.5px;
    color: #8a8f8a;
    line-height: 1.5;
    margin: 2px 0 9px;
  }
  ._wenSectionTip_qnpki_4062 b { color: #2b2b2b; font-weight: 700; }

  /* ④ 病症卡 chips */
  ._wenMobile_qnpki_3951 ._diagChips_qnpki_698 { gap: 6px; margin-bottom: 7px; }
  ._wenMobile_qnpki_3951 ._diagChip_qnpki_698 {
    display: inline-flex;
    align-items: center;
    font-size: 11.5px;
    padding: 5px 10px;
    border-radius: 8px;
    background: #f3f5f3;
    color: #555;
    cursor: pointer;
    border: 1px solid transparent;
    min-height: 27px;
    box-sizing: border-box;
    line-height: 1.3;
  }
  ._wenMobile_qnpki_3951 ._diagChipActive_qnpki_710 {
    background: #eef6f1;
    color: #1a7a5a;
    font-weight: 600;
  }
  ._wenMobile_qnpki_3951 ._diagChip_qnpki_698:active { transform: scale(0.94); }
  ._wenCustRow_qnpki_4092 {
    display: flex;
    gap: 6px;
    margin-top: 7px;
  }
  ._wenCustRow_qnpki_4092 ._textInput_qnpki_581 {
    flex: 1;
    font-size: 12px;
    padding: 7px 10px;
    border-style: dashed;
    border: 1px dashed #e8eae8;
    border-radius: 9px;
  }
  ._wenCustRow_qnpki_4092 ._btn_qnpki_131 { flex: none; padding: 7px 10px; }

  /* 最想解决 wantchips（绿底白字 + ①②③） */
  ._wenWant_qnpki_4108 {
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px dashed #e8eae8;
  }
  ._wenWantLabel_qnpki_4113 {
    font-size: 11px;
    color: #8a8f8a;
    margin-bottom: 8px;
    line-height: 1.5;
  }
  ._wenWantChip_qnpki_4119 {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 27px;
    box-sizing: border-box;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.3;
    padding: 5px 10px;
    border: 1px solid #1a7a5a;
    border-radius: 8px;
    background: #1a7a5a;
    color: #fff;
    margin: 0 5px 5px 0;
  }
  ._wenWantStar_qnpki_4135 { opacity: 0.95; font-weight: 800; }
  ._wenWantBtn_qnpki_4136 {
    cursor: pointer;
    opacity: 0.85;
    font-size: 11px;
    width: 16px;
    height: 16px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    background: transparent;
    border: none;
    color: inherit;
    line-height: 1;
    min-width: 16px;
  }
  ._wenWantBtn_qnpki_4136:hover:not(:disabled) { opacity: 1; }
  ._wenWantBtn_qnpki_4136:active:not(:disabled) { transform: scale(0.92); }
  ._wenWantBtn_qnpki_4136:disabled { opacity: 0.32; cursor: not-allowed; }

  /* ⑤ 病史卡：dimfield 分块 */
  ._wenDimField_qnpki_4158 {
    margin-bottom: 13px;
  }
  ._wenDimFieldLast_qnpki_4161 {
    margin-bottom: 0;
  }
  ._wenDimLabel_qnpki_4164 {
    font-size: 11px;
    color: #8a8f8a;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 5px;
  }
  ._wenDimLabel_qnpki_4164 ._wenMicBtn_qnpki_4172,
  ._wenMobile_qnpki_3951 ._wenMicBtn_qnpki_4172 {
    margin-left: auto;
    padding: 3px 8px;
    font-size: 11px;
    border-radius: 8px;
  }

  /* 病史 textarea */
  ._wenMobile_qnpki_3951 ._mensesInput_qnpki_374 {
    width: 100%;
    font-size: 12px;
    padding: 9px 11px;
    border: 1px solid #e8eae8;
    border-radius: 9px;
    background: #fff;
    color: #2b2b2b;
    resize: vertical;
  }
  ._wenMobile_qnpki_3951 ._mensesInput_qnpki_374:focus { border-color: #1a7a5a; outline: none; }
  ._wenMobile_qnpki_3951 ._wenDimField_qnpki_4158 ._mensesInput_qnpki_374 { margin-bottom: 0; }

  /* ⑦ details 对话记录（设计稿折叠样式） */
  ._wenDetails_qnpki_4195 {
    padding: 13px 14px;
  }
  ._wenDetails_qnpki_4195 > summary {
    list-style: none;
    cursor: pointer;
    font-weight: 700;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: #2b2b2b;
  }
  ._wenDetails_qnpki_4195 > summary::-webkit-details-marker { display: none; }
  ._wenDetailsCount_qnpki_4209 {
    font-weight: 500;
    margin-left: auto;
    font-size: 11px;
    color: #8a8f8a;
    background: #f3f5f3;
    padding: 2px 7px;
    border-radius: 5px;
  }
  ._wenDetailsBody_qnpki_4218 { margin-top: 11px; }
  ._wenDlgBox_qnpki_4219 {
    background: #fafbfa;
    border-radius: 9px;
    padding: 10px 12px;
    margin-bottom: 9px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 36px;
  }
  ._wenDlgItem_qnpki_4229 {
    font-size: 11.5px;
    color: #555;
    line-height: 1.5;
    display: flex;
    align-items: flex-start;
    gap: 6px;
  }
  ._wenDlgText_qnpki_4237 { flex: 1; min-width: 0; word-break: break-word; }
  ._wenDlgRole_qnpki_4238 { color: #5b6b9a; }
  ._wenDlgDel_qnpki_4239 {
    flex: none;
    width: 18px;
    height: 18px;
    border: none;
    border-radius: 5px;
    background: transparent;
    color: #b0b4b0;
    font-size: 11px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    margin-top: 1px;
  }
  ._wenDlgDel_qnpki_4239:hover { background: rgba(15, 92, 62, 0.08); color: #1a7a5a; }
  ._wenDlgDel_qnpki_4239:active { transform: scale(0.9); }
  ._wenDlgActions_qnpki_4255 {
    display: inline-flex;
    flex: none;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 2px;
  }
  ._wenDlgActions_qnpki_4255 ._wenDlgDel_qnpki_4239 {
    width: 28px;
    height: 28px;
    min-width: 28px;
    min-height: 28px;
    margin-top: 0;
  }
  /* 内联编辑患者原话的输入框 */
  ._wenDlgEditInput_qnpki_4270 {
    flex: 1;
    min-width: 0;
    font-size: 11.5px;
    padding: 5px 8px;
    border: 1px solid #1a7a5a;
    border-radius: 6px;
    resize: vertical;
    line-height: 1.5;
    background: #fff;
    color: #2b2b2b;
  }
  ._wenFaint_qnpki_4282 {
    font-size: 11px;
    color: #aeb3ae;
    line-height: 1.5;
  }

  /* details 补充患者原话输入区：input 拉长占大头；语音按钮与"添加"等宽（小尺寸） */
  ._wenDetailsBody_qnpki_4218 ._wenInlineInput_qnpki_4047 {
    gap: 6px;
  }
  ._wenDetailsBody_qnpki_4218 ._wenInlineInput_qnpki_4047 ._textInput_qnpki_581 {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    padding: 8px 10px;
  }
  ._wenDetailsBody_qnpki_4218 ._wenInlineInput_qnpki_4047 ._voiceBtnResponsive_qnpki_2198,
  ._wenDetailsBody_qnpki_4218 ._wenInlineInput_qnpki_4047 ._btnPrimarySm_qnpki_3941 {
    flex: 0 0 auto !important;
    min-width: 44px !important;
    width: auto !important;
    padding: 7px 10px;
    font-size: 12px;
    justify-content: center;
  }

  /* voiceHeroIc 在 wenMobile 内为按钮，补充默认样式 */
  ._wenMobile_qnpki_3951 ._voiceHeroIc_qnpki_2246 {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    border: none;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    cursor: pointer;
  }

  /* ===== 移动端 bian 步：三派卡 + 单选采用 + 详情向上浮层（对齐设计稿 doctor-apple-mobile.html） ===== */
  ._bianMobile_qnpki_4320 {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  ._bianSchoolCard_qnpki_4325 {
    background: #fff;
    border: 1px solid #e7eae7;
    border-radius: 12px;
    padding: 11px 12px;
    box-shadow: 0 1px 2px rgba(15, 23, 20, 0.04);
  }
  ._bianSchoolHead_qnpki_4332 {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 7px;
    flex-wrap: wrap;
  }
  ._bianSchoolName_qnpki_4339 {
    font-size: 13px;
    font-weight: 700;
    color: #1f2924;
    margin-right: auto;
  }
  ._bianSchoolBadges_qnpki_4345 {
    display: inline-flex;
    align-items: center;
    gap: 5px;
  }
  ._bianLine_qnpki_4350 {
    font-size: 12px;
    color: #555;
    line-height: 1.55;
    margin-top: 3px;
  }
  ._bianLabel_qnpki_4356 {
    color: #1a7a5a;
    font-weight: 700;
    margin-right: 3px;
  }
  ._bianFangName_qnpki_4361 {
    font-size: 12.5px;
    color: #115c43;
    font-weight: 700;
    margin: 6px 0 5px;
  }
  ._bianActions_qnpki_4367 {
    display: flex;
    gap: 7px;
    margin-top: 8px;
    align-items: center;
  }
  ._bianActions_qnpki_4367 ._btn_qnpki_131 {
    font-size: 12px;
    padding: 7px 9px;
  }
  ._bianHintCard_qnpki_4377 {
    background: #f4f6f4;
    border-radius: 10px;
    padding: 9px 10px;
    font-size: 11.5px;
    color: #8a8f8a;
    line-height: 1.55;
    display: flex;
    gap: 7px;
    align-items: flex-start;
  }
  ._bianMobile_qnpki_4320 ._herbs_qnpki_1239 {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 5px;
    margin-bottom: 4px;
  }
  ._bianMobile_qnpki_4320 ._herb_qnpki_1239 {
    font-size: 11.5px;
    color: #2c332e;
    background: #eef4f0;
    padding: 2px 7px;
    border-radius: 7px;
  }
  ._bianMobile_qnpki_4320 ._sourceBadge_qnpki_1251 {
    font-size: 10px;
    color: #b9772a;
    background: #f7efe2;
    padding: 1px 6px;
    border-radius: 6px;
  }
  ._bianMobile_qnpki_4320 ._moduleIdle_qnpki_1220,
  ._bianMobile_qnpki_4320 ._moduleStream_qnpki_1221,
  ._bianMobile_qnpki_4320 ._moduleErr_qnpki_1222 {
    font-size: 12px;
    color: #8a8f8a;
    padding: 6px 0;
  }
  ._bianMobile_qnpki_4320 ._streamRaw_qnpki_1269 {
    font-size: 10.5px;
    line-height: 1.5;
    background: #f4f6f4;
    border-radius: 8px;
    padding: 7px 9px;
    margin-top: 6px;
    max-height: 140px;
    overflow-y: auto;
    white-space: pre-wrap;
    color: #555;
  }

  /* 详情居中浮层(modal 风格:屏幕正中垂直水平居中) */
  ._bianDetailScrim_qnpki_4429 {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 20, 0.42);
    /* 详情与 Agent 对话是阻断式浮层，必须高于底部导航和合规栏，避免遮住输入区。 */
    z-index: 40000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
    overscroll-behavior: contain;
  }
  ._bianDetailPop_qnpki_4441 {
    position: relative;
    max-width: 92vw;
    width: 560px;
    /* 使用动态视口：移动端地址栏收起/展开时不让底部操作区落到屏幕外。 */
    max-height: calc(100dvh - max(24px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 16px 48px rgba(15, 23, 20, 0.28);
    padding: 14px 16px 18px;
    z-index: 40001;
    animation: _bianPopCenter_qnpki_1 220ms cubic-bezier(0.16, 1, 0.3, 1);
  }
  @keyframes _bianPopCenter_qnpki_1 {
    from { transform: scale(0.94); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
  }
  ._bianDetailHead_qnpki_4461 {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 11px;
    padding-right: 34px;
    padding-bottom: 9px;
    border-bottom: 1px solid #e7eae7;
    font-size: 13.5px;
    font-weight: 700;
    color: #1f2924;
  }
  /* 关闭按钮直接挂在滚动容器上，详情内容再长也始终停留在右上角。 */
  ._bianDetailCloseDock_qnpki_4474 {
    position: sticky;
    top: 0;
    z-index: 4;
    height: 0;
    display: flex;
    justify-content: flex-end;
    pointer-events: none;
  }
  ._bianDetailClose_qnpki_4474 {
    margin: 6px 2px 0 0;
    cursor: pointer;
    background: #f4f6f4;
    border: none;
    border-radius: 8px;
    width: 28px;
    height: 28px;
    font-size: 14px;
    color: #555;
    display: grid;
    place-items: center;
    pointer-events: auto;
  }
  ._bianDetailBody_qnpki_4497 {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  ._bianDetailBody_qnpki_4497 ._planBox_qnpki_1232 {
    border: 1px dashed #e7eae7;
    border-radius: 10px;
    padding: 9px 10px;
    background: #fbfdfb;
  }
  ._bianDetailBody_qnpki_4497 ._planName_qnpki_1237 {
    font-size: 12.5px;
    font-weight: 700;
    color: #115c43;
    margin-bottom: 6px;
  }
  ._bianReasoning_qnpki_4514 {
    font-size: 11.5px;
    color: #8a8f8a;
    line-height: 1.6;
    margin-top: 6px;
    padding-top: 7px;
    border-top: 1px dashed #e7eae7;
    white-space: pre-wrap;
  }
  ._bianGraphSection_qnpki_4523 {
    background: #f7f9f7;
    border-radius: 9px;
    padding: 8px 10px;
    margin-top: 2px;
  }
  ._bianGraphTitle_qnpki_4529 {
    font-size: 11.5px;
    font-weight: 700;
    color: #1a7a5a;
    margin-bottom: 5px;
  }
  ._bianGraphPath_qnpki_4535 {
    display: flex;
    flex-direction: column;
    gap: 3px;
  }
  ._bianGraphRow_qnpki_4540 {
    font-size: 11px;
    color: #555;
    line-height: 1.5;
    display: flex;
    gap: 5px;
    align-items: flex-start;
    flex-wrap: wrap;
  }
  ._bianGraphTable_qnpki_4549 {
    background: #e6efe9;
    color: #115c43;
    padding: 0 6px;
    border-radius: 5px;
    font-weight: 600;
    font-size: 10.5px;
  }
  ._bianGraphVerdict_qnpki_4557 {
    color: #1a7a5a;
    font-weight: 700;
  }
  ._bianGraphReason_qnpki_4561 {
    color: #6a706a;
    /* 独占一整行：让「类别/表 + 符合」稳居第一行，长 reason 在下方整行换行，
       避免 reason(flex:1)与左侧 badge 错位时其下方留出大片空白。 */
    flex-basis: 100%;
  }
  ._bianGraphSelected_qnpki_4567 {
    color: #b9772a;
    font-size: 10.5px;
  }
  ._bianGraphFinal_qnpki_4571 {
    margin-top: 7px;
    padding-top: 6px;
    border-top: 1px dashed #e7eae7;
    font-size: 11.5px;
    color: #2c332e;
  }
  ._bianGraphConf_qnpki_4578 {
    margin-left: 8px;
    font-size: 10.5px;
    color: #8a8f8a;
  }
  ._bianDetailBody_qnpki_4497 ._warnBox_qnpki_1259 {
    font-size: 11px;
    color: #b45309;
    background: #fef6e9;
    border-radius: 8px;
    padding: 7px 9px;
    line-height: 1.5;
  }
  ._bianDetailBody_qnpki_4497 ._mobileModuleChat_qnpki_4591 {
    margin-top: 6px;
    padding-top: 10px;
  }
  ._bianDetailBody_qnpki_4497 ._mobileModuleChat_qnpki_4591 ._chatToggle_qnpki_1664 {
    min-height: 34px;
    padding: 4px 0;
  }
  ._bianDetailBody_qnpki_4497 ._mobileModuleChat_qnpki_4591 ._chatBox_qnpki_1677 {
    /* 对话展开后由详情浮层整体向下延展；内容超过安全视口时，统一由浮层滚动，
       避免聊天区域出现第二层滚动条而截断消息。 */
    max-height: none;
    overflow: visible;
    gap: 16px;
    padding: 18px 4px 14px;
  }
  /* 气泡直接沿用网页端 .chatBubble / .chatUser / .chatAsst：
     Agent 为浅底色实心气泡，医生为绿色实心气泡，统一尺寸、圆角和留白。 */
  ._bianDetailBody_qnpki_4497 ._mobileModuleChat_qnpki_4591 ._chatBubble_qnpki_1708 {
    max-width: 78%;
    padding: 12px 16px;
    border-radius: 14px;
    font-size: var(--fs-sm);
    line-height: 1.7;
  }
  ._bianDetailBody_qnpki_4497 ._mobileModuleChat_qnpki_4591 ._chatUser_qnpki_1699 ._chatBubble_qnpki_1708 {
    background: var(--c-green);
    color: #fff;
    border-bottom-right-radius: 4px;
  }
  ._bianDetailBody_qnpki_4497 ._mobileModuleChat_qnpki_4591 ._chatAsst_qnpki_1700 ._chatBubble_qnpki_1708 {
    background: var(--c-bg);
    color: var(--c-text);
    border-bottom-left-radius: 4px;
  }
  ._moduleChat_qnpki_1659 ._chatInputRow_qnpki_1745 {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 44px;
    gap: 6px;
    align-items: end;
    margin-top: 10px;
  }
  ._moduleChat_qnpki_1659 ._chatVoiceBtn_qnpki_4633 {
    display: grid;
    place-items: center;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px;
    height: 42px;
    padding: 0;
    border-radius: 10px;
    flex: none !important;
  }
  ._moduleChat_qnpki_1659 ._chatSend_qnpki_1764 {
    display: grid;
    place-items: center;
    width: 44px;
    min-width: 44px;
    height: 42px;
    padding: 0;
    border-radius: 12px;
  }
  ._moduleChat_qnpki_1659 ._chatVoiceBtn_qnpki_4633 {
    border: 1px solid #cfe1d8;
    background: #f3faf5;
    color: var(--c-green);
  }
  ._moduleChat_qnpki_1659 ._chatVoiceBtn_qnpki_4633._btnVoiceRecording_qnpki_131 {
    border-color: var(--c-green);
  }
  ._moduleChat_qnpki_1659 ._chatInput_qnpki_1745 {
    min-height: 42px;
    padding: 9px 11px;
    border-radius: 12px;
    background: #fff;
    box-shadow: inset 0 1px 1px rgba(22, 82, 60, 0.03);
  }
  ._moduleChat_qnpki_1659 ._chatSend_qnpki_1764 {
    border: 0;
    background: linear-gradient(135deg, #1a7a5a, #146849);
    box-shadow: 0 4px 10px rgba(26, 122, 90, 0.22);
  }
  ._moduleChat_qnpki_1659 ._chatSend_qnpki_1764:hover:not(:disabled) {
    background: linear-gradient(135deg, #146849, #0f5a3f);
  }
  ._moduleChat_qnpki_1659 ._chatSend_qnpki_1764:disabled {
    opacity: 0.42;
    box-shadow: none;
  }
}

/* ===== 移动端语音识别实时文字抽屉（bug #17）=====
   仅窄屏（isMobile = max-width:640px）生效，桌面端不渲染抽屉、样式不生效。
   断点统一用 640px，与 WorkstationPage 的 isMobile 判定保持一致。 */
@media (max-width: 640px) {
  /* 透明全屏遮罩：仅作视觉占位；收缩由 VoiceDrawer 内 document 监听驱动，
     故 pointer-events:none，避免覆盖「开始/停止语音问诊」按钮导致其失灵。 */
  ._voiceDrawerOverlay_qnpki_4688 {
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 9998; /* 低于抽屉(10000)和合规栏(9999)，仅作视觉占位 */
    pointer-events: none;
  }
  ._voiceDrawerExpanded_qnpki_4695,
  ._voiceDrawerCollapsed_qnpki_4696 {
    position: fixed;
    left: 0;
    right: 0;
    /* 从底部导航栏上方弹出：
       底部叠层自下而上为 合规栏(--compliance-footer-h, 38px) + 移动端导航栏(68px)，
       抽屉与把手均坐在导航栏顶部之上，避免被覆盖或夹在两层之间。 */
    bottom: calc(var(--compliance-footer-h, 38px) + 68px);
    z-index: 10000; /* 高于合规栏(9999)和底部菜单(96) */
    background: #fff;
    box-shadow: 0 -10px 28px rgba(15, 92, 62, 0.14);
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
    padding-bottom: 0; /* 底部安全区由合规栏下方的 env() 负责，这里不再重复叠加 */
    overflow: hidden;
    transition: height 0.25s ease-out, transform 0.25s ease-out;
  }
  ._voiceDrawerExpanded_qnpki_4695 {
    /* 高度上限：视口 - 顶部安全区 - voiceHero 按钮区(约132px) - 12px 间距 - 导航栏让出的 68px，
       保证「开始/停止语音问诊」按钮始终可见可点；底部安全区另行 padding。 */
    height: calc(100dvh - env(safe-area-inset-top, 0px) - 132px - 12px - 68px);
    display: flex;
    flex-direction: column;
  }
  ._voiceDrawerCollapsed_qnpki_4696 {
    height: 48px; /* 把手条贴在导航栏正上方 */
  }
  ._voiceDrawerHandle_qnpki_4723 {
    flex: 0 0 auto;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    -webkit-tap-highlight-color: transparent;
    border-bottom: 1px solid #eef2f0;
  }
  ._voiceDrawerCollapsed_qnpki_4696 ._voiceDrawerHandle_qnpki_4723 {
    height: 48px;
    border-bottom: none;
  }
  /* 把手箭头图标：展开态向下（可收起），收缩态向上（可展开）；颜色与原横杠一致 */
  ._voiceDrawerHandleArrow_qnpki_4740 {
    color: #94a3b8;
    flex: 0 0 auto;
    transition: transform 0.2s ease;
  }
  ._voiceDrawerHandle_qnpki_4723:hover ._voiceDrawerHandleArrow_qnpki_4740 {
    color: var(--c-primary, #0f5c3e);
  }
  /* 展开态把手提示文字（紧跟向下箭头） */
  ._voiceDrawerHandleHint_qnpki_4749 {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
  }
  /* 收缩态："正在聆听…" + 录音指示圆点 */
  ._voiceDrawerListening_qnpki_4755 {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #0f5c3e;
  }
  ._voiceDrawerPulse_qnpki_4763 {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #16a34a;
    animation: _voiceDrawerPulseBlink_qnpki_1 1s ease-in-out infinite;
  }
  @keyframes _voiceDrawerPulseBlink_qnpki_1 {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(0.8); }
  }
  /* 实时文字滚动区：文字多了可上下滑动查看 */
  ._voiceDrawerContent_qnpki_4775 {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 14px 16px 12px;
    font-size: 16px;
    line-height: 1.7;
    color: #1f2937;
    word-break: break-word;
    white-space: pre-wrap;
    text-align: left;
  }
  /* 已稳定的累积文本（正常颜色） */
  ._voiceDrawerAccum_qnpki_4789 {
    color: #1f2937;
  }
  /* 当前正在说的中间结果（淡色 + 斜体，表示"正在说"） */
  ._voiceDrawerInterim_qnpki_4793 {
    color: #94a3b8;
    font-style: italic;
  }
  ._voiceDrawerEmpty_qnpki_4797 {
    color: #9ca3af;
    font-size: 14px;
  }
}

._overlay_uxq0h_1 {
  position: fixed;
  inset: 0;
  z-index: 10001; /* 高于绝大多数业务层；合规栏 9999、底部菜单 96、抽屉 10000 */
  pointer-events: none; /* 蒙版容器不拦截点击，让用户能操作真实页面（如填写患者信息）；仅气泡需要捕获事件 */
}

/* 用 box-shadow 模拟聚光灯镂空：透明窗口随目标尺寸动态生成 */
._spotlight_uxq0h_9 {
  position: absolute;
  border-radius: 8px;
  background: transparent;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.55);
  transition: top 0.18s ease-out, left 0.18s ease-out, width 0.18s ease-out, height 0.18s ease-out;
  pointer-events: none; /* 让用户能透过透明窗口点击真实按钮；按钮上的事件由真实 DOM 接管 */
}

/* 高亮描边视觉强化 */
._spotlightRing_uxq0h_19 {
  position: absolute;
  inset: -3px;
  border: 2px solid var(--c-green, #1a7a5a);
  border-radius: 10px;
  pointer-events: none;
}

/* 脉冲呼吸光环：在镂空窗口外扩散一圈柔和光环循环动画，吸引视线 */
._spotlightRingPulse_uxq0h_28 {
  position: absolute;
  inset: -3px;
  border-radius: 10px;
  border: 2px solid var(--c-green, #1a7a5a);
  pointer-events: none;
  opacity: 0.9;
  animation: _tutorialSpotlightPulse_uxq0h_1 1.6s ease-in-out infinite;
}

@keyframes _tutorialSpotlightPulse_uxq0h_1 {
  0% {
    transform: scale(1);
    opacity: 0.9;
    box-shadow: 0 0 0 0 rgba(26, 122, 90, 0.45);
  }
  70% {
    transform: scale(1.18);
    opacity: 0;
    box-shadow: 0 0 0 14px rgba(26, 122, 90, 0);
  }
  100% {
    transform: scale(1);
    opacity: 0;
    box-shadow: 0 0 0 0 rgba(26, 122, 90, 0);
  }
}

/* 气泡内"请点击此处"提示点的动画小箭头 */
._clickHintArrow_uxq0h_57 {
  display: inline-block;
  margin-right: 4px;
  color: var(--c-green-dark, #0f5c3e);
  animation: _tutorialArrowBounce_uxq0h_1 1.1s ease-in-out infinite;
}

@keyframes _tutorialArrowBounce_uxq0h_1 {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}

/* 气泡：默认底部居中位置由 JS 内联决定，这里只定义外观 */
._bubble_uxq0h_70 {
  position: absolute;
  max-width: min(360px, calc(100vw - 32px));
  padding: 14px 16px 12px;
  background: var(--c-surface, #ffffff);
  color: var(--c-text, #2b2b2b);
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
  font-size: var(--fs-md, 14.5px);
  line-height: 1.55;
  z-index: 10002;
  pointer-events: auto; /* 气泡需要接收点击（下一步/关闭按钮） */
}

._bubbleTitle_uxq0h_84 {
  font-size: var(--fs-lg, 17px);
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--c-text, #2b2b2b);
}

._bubbleDesc_uxq0h_91 {
  margin: 0 0 12px;
  color: var(--c-muted, #6b7280);
  white-space: pre-line;
}

._bubbleFooter_uxq0h_97 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

._stepBadge_uxq0h_104 {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 10px;
  background: var(--c-green-light, #eef6f1);
  color: var(--c-green-dark, #0f5c3e);
  font-size: var(--fs-xs, 11.5px);
  font-weight: 600;
}

._bubbleActions_uxq0h_115 {
  display: flex;
  align-items: center;
  gap: 8px;
}

._btn_uxq0h_121 {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  cursor: pointer;
  padding: 7px 14px;
  border-radius: 8px;
  font-size: var(--fs-sm, 13px);
  font-weight: 500;
  transition: background 0.15s ease, color 0.15s ease;
  line-height: 1;
}

._btnGhost_uxq0h_133 {
  background: transparent;
  color: var(--c-muted, #6b7280);
}
._btnGhost_uxq0h_133:hover {
  color: var(--c-text, #2b2b2b);
}

._btnPrimary_uxq0h_141 {
  background: var(--c-green-dark, #0f5c3e);
  color: #ffffff;
}
._btnPrimary_uxq0h_141:hover {
  background: var(--c-green, #1a7a5a);
}

._btnDisabled_uxq0h_149,
._btnDisabled_uxq0h_149:hover {
  background: var(--c-line-soft, #e5e7eb);
  color: var(--c-muted, #9ca3af);
  cursor: not-allowed;
}

._btnClose_uxq0h_156 {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: var(--c-muted, #9ca3af);
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
}
._btnClose_uxq0h_156:hover {
  background: var(--c-line-soft, #f2f3f2);
  color: var(--c-text, #2b2b2b);
}

@media (max-width: 640px) {
  ._bubble_uxq0h_70 {
    max-width: calc(100vw - 24px);
    padding: 12px 14px 10px;
  }
}
:root {
  /* ---- 语义色调 ---- */
  --c-green: #1a7a5a;
  --c-green-light: #eef6f1;
  --c-green-dark: #0f5c3e;
  --c-amber: #b9772a;
  --c-amber-light: #fdf4e8;
  --c-red: #c0392b;
  --c-red-light: #fdecec;
  --c-slate: #5b6b9a;
  --c-slate-light: #eef1f8;

  /* ---- 中性色 ---- */
  --c-line: #e8eae8;
  --c-line-soft: #f2f3f2;
  --c-text: #2b2b2b;
  --c-muted: #8a8f8a;
  --c-faint: #aeb3ae;
  --c-bg: #f5f6f5;
  --c-surface: #ffffff;

  /* ---- 圆角 ---- */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;

  /* ---- 阴影 ---- */
  --shadow-card: 0 1px 2px rgba(0,0,0,.04), 0 1px 3px rgba(0,0,0,.06);
  --shadow-pop: 0 4px 16px rgba(0,0,0,.1);
  --shadow-card-raised: 0 2px 8px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.04);

  /* ---- 装饰渐变 ---- */
  --grad-green: linear-gradient(135deg, #1a7a5a 0%, #2e9e6b 50%, #1a7a5a 100%);
  --grad-green-subtle: linear-gradient(135deg, rgba(26,122,90,.06) 0%, rgba(46,158,107,.04) 100%);
  --glow-green: 0 0 0 2px rgba(26,122,90,.08);

  /* ---- 字号 ---- */
  --fs-xs: 11.5px;
  --fs-sm: 13px;
  --fs-md: 14.5px;
  --fs-lg: 17px;
  --fs-xl: 22px;

  /* ---- 布局 ---- */
  --page-w: 100%;          /* 铺满内容区（侧栏外全宽），随屏幕自适应 */
  --header-h: 52px;
  --tap-min: 44px;

  /* 底部合规栏高度：桌面单行；移动端换行后由文件末尾媒体查询覆盖。
     供 WorkstationPage 底部操作栏错位、页面留白引用，避免与合规栏互相遮挡。 */
  --compliance-footer-h: 24px;

  /* ---- 兼容旧变量别名 ---- */
  --color-primary: var(--c-green);
  --color-primary-light: var(--c-green-light);
  --color-primary-dark: var(--c-green-dark);
  --color-bg: var(--c-bg);
  --color-surface: var(--c-surface);
  --color-text: var(--c-text);
  --color-text-secondary: var(--c-muted);
  --color-border: var(--c-line);
  --color-error: var(--c-red);
  --color-error-bg: var(--c-red-light);
  --color-warning: var(--c-amber);
  --color-warning-bg: var(--c-amber-light);
  --color-success: var(--c-green);
  --color-success-bg: var(--c-green-light);
  --color-overlay: rgba(0,0,0,.35);
  --radius-sm: var(--r-sm);
  --radius-md: var(--r-md);
  --radius-lg: var(--r-lg);
  --shadow-sm: 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,.08);
  --shadow-lg: var(--shadow-pop);
  --font-size-xs: var(--fs-xs);
  --font-size-sm: var(--fs-sm);
  --font-size-md: var(--fs-md);
  --font-size-lg: var(--fs-lg);
  --font-size-xl: var(--fs-xl);
  --max-width: var(--page-w);
  --header-height: var(--header-h);
}

/* 移动端：合规栏文案换行后变高，覆盖高度变量供底部操作栏错位与页面留白耦合 */

@media (max-width: 640px) {
  :root {
    --compliance-footer-h: 38px;
  }
}

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

:root {
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
    --card: 0 0% 100%;
    --card-foreground: 222.2 84% 4.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 222.2 84% 4.9%;
    --primary: 160 66% 28%;
    --primary-foreground: 210 40% 98%;
    --secondary: 210 40% 96.1%;
    --secondary-foreground: 222.2 47.4% 11.2%;
    --muted: 210 40% 96.1%;
    --muted-foreground: 215.4 16.3% 46.9%;
    --accent: 210 40% 96.1%;
    --accent-foreground: 222.2 47.4% 11.2%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;
    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
    --ring: 160 66% 28%;
    --radius: 0.5rem;
  }

.\!container {
  width: 100% !important;
}

.container {
  width: 100%;
}

@media (min-width: 640px) {

  .\!container {
    max-width: 640px !important;
  }

  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {

  .\!container {
    max-width: 768px !important;
  }

  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {

  .\!container {
    max-width: 1024px !important;
  }

  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {

  .\!container {
    max-width: 1280px !important;
  }

  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {

  .\!container {
    max-width: 1536px !important;
  }

  .container {
    max-width: 1536px;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.\!visible {
  visibility: visible !important;
}

.visible {
  visibility: visible;
}

.collapse {
  visibility: collapse;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.inset-0 {
  inset: 0px;
}

.inset-4 {
  inset: 1rem;
}

.inset-y-0 {
  top: 0px;
  bottom: 0px;
}

.left-4 {
  left: 1rem;
}

.left-\[20\%\] {
  left: 20%;
}

.right-4 {
  right: 1rem;
}

.top-0 {
  top: 0px;
}

.top-3 {
  top: 0.75rem;
}

.top-4 {
  top: 1rem;
}

.top-\[40\%\] {
  top: 40%;
}

.z-10 {
  z-index: 10;
}

.mb-1\.5 {
  margin-bottom: 0.375rem;
}

.mt-0\.5 {
  margin-top: 0.125rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mt-4 {
  margin-top: 1rem;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.table {
  display: table;
}

.grid {
  display: grid;
}

.contents {
  display: contents;
}

.hidden {
  display: none;
}

.size-\[68px\] {
  width: 68px;
  height: 68px;
}

.h-1 {
  height: 0.25rem;
}

.h-10 {
  height: 2.5rem;
}

.h-11 {
  height: 2.75rem;
}

.h-12 {
  height: 3rem;
}

.h-2 {
  height: 0.5rem;
}

.h-3 {
  height: 0.75rem;
}

.h-4 {
  height: 1rem;
}

.h-5 {
  height: 1.25rem;
}

.h-6 {
  height: 1.5rem;
}

.h-7 {
  height: 1.75rem;
}

.h-8 {
  height: 2rem;
}

.h-9 {
  height: 2.25rem;
}

.h-\[100dvh\] {
  height: 100dvh;
}

.h-full {
  height: 100%;
}

.h-px {
  height: 1px;
}

.w-10 {
  width: 2.5rem;
}

.w-2 {
  width: 0.5rem;
}

.w-32 {
  width: 8rem;
}

.w-4 {
  width: 1rem;
}

.w-5 {
  width: 1.25rem;
}

.w-6 {
  width: 1.5rem;
}

.w-7 {
  width: 1.75rem;
}

.w-\[100dvw\] {
  width: 100dvw;
}

.w-full {
  width: 100%;
}

.min-w-0 {
  min-width: 0px;
}

.max-w-md {
  max-width: 28rem;
}

.flex-1 {
  flex: 1 1 0%;
}

.shrink-0 {
  flex-shrink: 0;
}

.translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-x-12 {
  --tw-translate-x: 3rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-\[1\] {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.cursor-pointer {
  cursor: pointer;
}

.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.resize {
  resize: both;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-8 {
  gap: 2rem;
}

.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}

.gap-y-2 {
  row-gap: 0.5rem;
}

.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-y-auto {
  overflow-y: auto;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.break-all {
  word-break: break-all;
}

.rounded {
  border-radius: 0.25rem;
}

.rounded-2xl {
  border-radius: 1rem;
}

.rounded-3xl {
  border-radius: 1.5rem;
}

.rounded-full {
  border-radius: 9999px;
}

.rounded-lg {
  border-radius: var(--radius);
}

.rounded-md {
  border-radius: calc(var(--radius) - 2px);
}

.rounded-xl {
  border-radius: 0.75rem;
}

.border {
  border-width: 1px;
}

.border-2 {
  border-width: 2px;
}

.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}

.border-gray-400 {
  --tw-border-opacity: 1;
  border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
}

.border-green-100 {
  --tw-border-opacity: 1;
  border-color: rgb(220 252 231 / var(--tw-border-opacity, 1));
}

.border-input {
  border-color: hsl(var(--input));
}

.border-orange-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));
}

.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}

.bg-background {
  background-color: hsl(var(--background));
}

.bg-destructive {
  background-color: hsl(var(--destructive));
}

.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}

.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}

.bg-gray-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
}

.bg-green-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}

.bg-orange-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}

.bg-primary {
  background-color: hsl(var(--primary));
}

.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.bg-secondary {
  background-color: hsl(var(--secondary));
}

.bg-transparent {
  background-color: transparent;
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-white\/40 {
  background-color: rgb(255 255 255 / 0.4);
}

.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.from-gray-50 {
  --tw-gradient-from: #f9fafb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary\/80 {
  --tw-gradient-from: hsl(var(--primary) / 0.8) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.via-primary\/70 {
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / 0.7) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-white {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-gray-50 {
  --tw-gradient-to: #f9fafb var(--tw-gradient-to-position);
}

.to-primary\/55 {
  --tw-gradient-to: hsl(var(--primary) / 0.55) var(--tw-gradient-to-position);
}

.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}

.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}

.p-10 {
  padding: 2.5rem;
}

.p-2 {
  padding: 0.5rem;
}

.p-3 {
  padding: 0.75rem;
}

.p-4 {
  padding: 1rem;
}

.p-8 {
  padding: 2rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.pl-10 {
  padding-left: 2.5rem;
}

.pr-12 {
  padding-right: 3rem;
}

.pr-28 {
  padding-right: 7rem;
}

.text-center {
  text-align: center;
}

.font-sans {
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

.font-serif {
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
}

.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}

.text-\[19px\] {
  font-size: 19px;
}

.text-\[31px\] {
  font-size: 31px;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.italic {
  font-style: italic;
}

.leading-none {
  line-height: 1;
}

.leading-relaxed {
  line-height: 1.625;
}

.leading-tight {
  line-height: 1.25;
}

.tracking-\[0\.08em\] {
  letter-spacing: 0.08em;
}

.tracking-\[0\.15em\] {
  letter-spacing: 0.15em;
}

.tracking-\[0\.18em\] {
  letter-spacing: 0.18em;
}

.tracking-\[0\.25em\] {
  letter-spacing: 0.25em;
}

.tracking-tight {
  letter-spacing: -0.025em;
}

.text-current {
  color: currentColor;
}

.text-destructive-foreground {
  color: hsl(var(--destructive-foreground));
}

.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}

.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}

.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.text-orange-500 {
  --tw-text-opacity: 1;
  color: rgb(249 115 22 / var(--tw-text-opacity, 1));
}

.text-orange-800 {
  --tw-text-opacity: 1;
  color: rgb(154 52 18 / var(--tw-text-opacity, 1));
}

.text-primary {
  color: hsl(var(--primary));
}

.text-primary-foreground {
  color: hsl(var(--primary-foreground));
}

.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.text-secondary-foreground {
  color: hsl(var(--secondary-foreground));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}

.underline-offset-4 {
  text-underline-offset: 4px;
}

.opacity-0 {
  opacity: 0;
}

.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-gray-300\/30 {
  --tw-shadow-color: rgb(209 213 219 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}

.outline {
  outline-style: solid;
}

.ring-offset-background {
  --tw-ring-offset-color: hsl(var(--background));
}

.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-300 {
  transition-duration: 300ms;
}

.\[emotion\:none\] {
  emotion: none;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
    'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  font-size: 13.5px;
  color: var(--c-text);
  background: linear-gradient(180deg, rgba(26,122,90,.015) 0%, var(--c-bg) 8%, var(--c-bg) 100%);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { color: var(--c-green); text-decoration: none; }

button {
  cursor: pointer;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: inherit;
}

input, textarea, select { font-family: inherit; font-size: inherit; }

/* 隐藏 Edge/Chromium 密码框原生的“显示密码/清除”小眼睛，
   避免与页面自定义的眼睛按钮重复出现（登录/注册/重置密码通用） */

input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
  display: none;
}

#root { min-height: 100vh; }

::-webkit-scrollbar { width: 6px; height: 6px; }

::-webkit-scrollbar-track { background: transparent; }

::-webkit-scrollbar-thumb { background: #d0d3d0; border-radius: 3px; }

::-webkit-scrollbar-thumb:hover { background: #b0b3b0; }

@media (max-width: 768px) {
  /*
   * iOS Safari will zoom the page when a keyboard-editable form control below
   * 16px receives focus. Local CSS Modules intentionally use compact text in
   * a few workflows, so this mobile-only rule is deliberately authoritative.
   * It leaves non-textual controls (file, checkbox, radio, range, etc.) and
   * all surrounding page typography untouched.
   */
  input:not([type="hidden"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]),
  textarea,
  select {
    font-size: 16px !important;
  }
  button, a, [role="button"] { min-height: var(--tap-min); min-width: var(--tap-min); }
  table { display: block; overflow-x: auto; white-space: nowrap; }
  #root main {
    /* 底部菜单高度就是 68px，不额外预留 8px，减少移动端底部空白。 */
    padding-bottom: calc(68px + var(--compliance-footer-h, 38px)) !important;
  }
}

.file\:border-0::file-selector-button {
  border-width: 0px;
}

.file\:bg-transparent::file-selector-button {
  background-color: transparent;
}

.file\:text-sm::file-selector-button {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.file\:font-medium::file-selector-button {
  font-weight: 500;
}

.file\:text-foreground::file-selector-button {
  color: hsl(var(--foreground));
}

.placeholder\:text-muted-foreground::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}

.placeholder\:text-muted-foreground::placeholder {
  color: hsl(var(--muted-foreground));
}

.focus-within\:border-primary\/50:focus-within {
  border-color: hsl(var(--primary) / 0.5);
}

.focus-within\:bg-white:focus-within {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-accent:hover {
  background-color: hsl(var(--accent));
}

.hover\:bg-destructive\/90:hover {
  background-color: hsl(var(--destructive) / 0.9);
}

.hover\:bg-gray-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}

.hover\:bg-primary\/90:hover {
  background-color: hsl(var(--primary) / 0.9);
}

.hover\:bg-secondary\/80:hover {
  background-color: hsl(var(--secondary) / 0.8);
}

.hover\:text-accent-foreground:hover {
  color: hsl(var(--accent-foreground));
}

.hover\:text-gray-600:hover {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.hover\:text-primary:hover {
  color: hsl(var(--primary));
}

.hover\:underline:hover {
  text-decoration-line: underline;
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-ring:focus-visible {
  --tw-ring-color: hsl(var(--ring));
}

.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}

.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}

.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}

.disabled\:text-gray-400:disabled {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.disabled\:no-underline:disabled {
  text-decoration-line: none;
}

.disabled\:opacity-50:disabled {
  opacity: 0.5;
}

.peer:disabled ~ .peer-disabled\:cursor-not-allowed {
  cursor: not-allowed;
}

.peer:disabled ~ .peer-disabled\:opacity-70 {
  opacity: 0.7;
}

.data-\[state\=checked\]\:border-primary[data-state="checked"] {
  border-color: hsl(var(--primary));
}

.data-\[state\=checked\]\:bg-primary[data-state="checked"] {
  background-color: hsl(var(--primary));
}

.data-\[state\=checked\]\:text-primary-foreground[data-state="checked"] {
  color: hsl(var(--primary-foreground));
}

@media (min-width: 640px) {

  .sm\:p-8 {
    padding: 2rem;
  }
}

@media (min-width: 768px) {

  .md\:flex {
    display: flex;
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }
}
