/* ===== 杏林助手 · 样式 ===== */
:root{
  --ink:#2b2620; --ink-2:#5c5348; --ink-3:#8a8078;
  --paper:#faf7f0; --paper-2:#f3ede1; --line:#e2d9c8;
  --green:#4a6b52; --green-l:#e8efe6;
  --red:#a8402f; --red-l:#fbeae6;
  --amber:#b8860b; --amber-l:#fdf4dd;
  --blue:#3a5a72; --blue-l:#e7eef3;
  --gold:#b8860b; --line-2:#d5c9b4;
  --radius:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--paper); color:var(--ink); line-height:1.7; font-size:15px;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px 80px}

/* 头部 */
header{
  background:linear-gradient(160deg,#3f5c48 0%,#2e4635 100%);
  color:#f5f0e4; padding:26px 0 22px; border-bottom:3px solid #b8860b;
}
header .wrap{padding-bottom:0}
/* header 是深绿渐变背景，原 ghost 按钮用深灰文字会看不清，这里覆写为浅色 */
header .btn.ghost{
  color:#f5f0e4;
  border-color:rgba(245,240,228,.55);
}
header .btn.ghost:hover{
  background:rgba(255,255,255,.12);
  border-color:#f5f0e4;
  color:#fff;
}
/* 登录/注册再单独用金色强调，让它在右上角最醒目 */
header #btnAccount{
  border-color:#e0b64a;
  color:#e0b64a;
  font-weight:500;
}
header #btnAccount:hover{
  background:rgba(224,182,74,.15);
  border-color:#f5d78e;
  color:#f5d78e;
}
/* header 内的 AI 状态徽章在深色背景上也要清晰 */
header .ai-badge{
  background:rgba(255,255,255,.15);
  color:#f5f0e4;
  border-color:rgba(255,255,255,.35);
}
header .ai-badge.on{
  background:rgba(224,182,74,.18);
  color:#f5d78e;
  border-color:rgba(224,182,74,.55);
}
.brand{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.brand h1{font-size:25px;letter-spacing:3px;font-weight:600}
.brand .sub{font-size:13px;color:#c8bfa6;letter-spacing:1px}
.disclaimer{
  margin-top:14px;background:rgba(255,255,255,.09);border-left:3px solid #e0b64a;
  padding:10px 14px;font-size:12.5px;color:#e8e0cd;border-radius:0 6px 6px 0;line-height:1.65
}

/* 步骤条 */
.steps{display:flex;gap:6px;margin:22px 0 26px;flex-wrap:wrap}
.step{
  flex:1;min-width:120px;text-align:center;padding:9px 6px;border-radius:var(--radius);
  background:var(--paper-2);border:1px solid var(--line);font-size:12.5px;color:var(--ink-3);
  cursor:pointer;transition:.18s;position:relative
}
.step .n{display:block;font-size:10.5px;opacity:.7;letter-spacing:1px}
.step.active{background:var(--green);color:#fff;border-color:var(--green);font-weight:600}
.step.done{background:var(--green-l);border-color:#b9cbb8;color:var(--green)}
.step.locked{opacity:.42;cursor:not-allowed}

/* 卡片 */
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;margin-bottom:18px;box-shadow:0 1px 3px rgba(60,50,35,.05)
}
.card > h2{
  font-size:17px;margin-bottom:4px;color:var(--green);
  display:flex;align-items:center;gap:9px;padding-bottom:11px;border-bottom:1px dashed var(--line)
}
.card > h2 .tag{
  font-size:10.5px;background:var(--green);color:#fff;padding:2px 8px;border-radius:20px;
  letter-spacing:1px;font-weight:400
}
.hint{font-size:12.5px;color:var(--ink-3);margin:10px 0 16px;line-height:1.65}

/* 表单 */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field > label{font-size:13px;color:var(--ink-2);font-weight:600}
.field .note{font-size:11.5px;color:var(--ink-3);font-weight:400}
input[type=text],input[type=number],select,textarea{
  padding:9px 11px;border:1px solid var(--line);border-radius:7px;font-size:14px;
  background:#fdfcf9;color:var(--ink);font-family:inherit;width:100%
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);background:#fff}
textarea{min-height:70px;resize:vertical}

/* 选项组 */
.opts{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}
.opt{
  padding:6px 13px;border:1px solid var(--line);border-radius:20px;background:#fdfcf9;
  font-size:13px;cursor:pointer;transition:.15s;user-select:none;color:var(--ink-2)
}
.opt:hover{border-color:var(--green);background:var(--green-l)}
.opt.on{background:var(--green);color:#fff;border-color:var(--green)}
.opt.danger:hover{border-color:var(--red);background:var(--red-l);color:var(--red)}
.opt.danger.on{background:var(--red);color:#fff;border-color:var(--red)}
.opt.warn:hover{border-color:var(--amber);background:var(--amber-l)}
.opt.warn.on{background:var(--amber);color:#fff;border-color:var(--amber)}

/* 区块 */
.block{border-top:1px dashed var(--line);padding-top:16px;margin-top:16px}
.block:first-of-type{border-top:none;padding-top:0;margin-top:0}
.block h3{font-size:14px;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:7px}
.block h3::before{content:'';width:3px;height:14px;background:var(--green);border-radius:2px}

/* 按钮 */
.btn{
  padding:10px 22px;border:none;border-radius:7px;font-size:14px;cursor:pointer;
  background:var(--green);color:#fff;font-family:inherit;transition:.15s;font-weight:500
}
.btn:hover{background:#3c5843}
.btn:disabled{background:#c3c3c3;cursor:not-allowed}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-2)}
.btn.ghost:hover{background:var(--paper-2);border-color:var(--green);color:var(--green)}
.btn.small{padding:6px 14px;font-size:12.5px}
.btn.red{background:var(--red)}
.actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap;align-items:center}

/* 警示 */
.alert{padding:14px 16px;border-radius:8px;margin:14px 0;font-size:13.5px;line-height:1.7}
.alert.red{background:var(--red-l);border-left:4px solid var(--red);color:#7d2e21}
.alert.amber{background:var(--amber-l);border-left:4px solid var(--amber);color:#7a5a08}
.alert.green{background:var(--green-l);border-left:4px solid var(--green);color:#2f4a35}
.alert.blue{background:var(--blue-l);border-left:4px solid var(--blue);color:#27404f}
/* 仅段首的粗体作小标题；句中粗体保持行内，避免标点被挤到单独一行 */
.alert b{font-weight:700}
.alert>b:first-child{display:block;margin-bottom:5px;font-size:14px}

/* 结果 */
.res-item{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.res-item:last-child{border-bottom:none}
.res-k{flex:0 0 92px;color:var(--ink-3);font-size:12.5px}
.res-v{flex:1;color:var(--ink)}
.pill{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;margin:2px 4px 2px 0}
.pill.g{background:var(--green-l);color:var(--green)}
.pill.r{background:var(--red-l);color:var(--red)}
.pill.a{background:var(--amber-l);color:var(--amber)}
.pill.b{background:var(--blue-l);color:var(--blue)}

/* 表格 */
table{width:100%;border-collapse:collapse;font-size:13px;margin:10px 0}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--paper-2);font-weight:600;font-size:12.5px;color:var(--ink-2)}
td.ok{color:var(--green)} td.no{color:var(--ink-3)}

/* 舌照 */
.tongue-area{display:grid;grid-template-columns:1fr 260px;gap:18px;margin-top:12px}
@media(max-width:760px){.tongue-area{grid-template-columns:1fr}}
#tongueCanvas{max-width:100%;border:1px solid var(--line);border-radius:8px;cursor:crosshair;display:block;background:#f7f5f0}
.canvas-tip{font-size:12px;color:var(--ink-3);margin-top:8px;line-height:1.6}
.swatch{width:100%;height:44px;border-radius:6px;border:1px solid var(--line);margin:6px 0 10px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}

/* 方号卡 */
.fx{border:1px solid var(--line);border-radius:8px;padding:15px 17px;margin-bottom:13px;background:#fdfcf9}
.fx-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.fx-no{background:var(--green);color:#fff;padding:2px 11px;border-radius:6px;font-size:13px;font-weight:600}
.fx-name{font-size:15px;font-weight:600;color:var(--ink)}
.fx-role{font-size:12px;color:var(--ink-3)}
.fx dl{display:grid;grid-template-columns:74px 1fr;gap:5px 10px;font-size:13px;margin-top:8px}
.fx dt{color:var(--ink-3);font-size:12.5px}
.fx dd{color:var(--ink)}
.fx .mods{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line);font-size:12.5px}
.fx .mods li{margin-left:17px;color:var(--ink-2);line-height:1.7}
.fx-pre{border:1px solid var(--gold,#a9803a);border-radius:8px;padding:15px 17px;margin-bottom:13px;background:linear-gradient(180deg,rgba(169,128,58,.055),rgba(169,128,58,0));box-shadow:inset 3px 0 0 var(--gold,#a9803a)}
.fx-pre-tag{background:var(--gold,#a9803a);color:#fff;padding:2px 9px;border-radius:6px;font-size:12px;font-weight:700;margin-right:2px}
.fx-pre .mods{border-top-color:rgba(169,128,58,.3)}
.fx-pre .mods b{color:var(--gold,#a9803a)}

/* 打印 */
@media print{
  header,.steps,.actions,.no-print{display:none!important}
  body{background:#fff}
  .card{border:none;box-shadow:none;padding:0;margin-bottom:14px;break-inside:avoid}
}

/* ===== 移动端适配 ===== */
@media(max-width:768px){
  body{font-size:15.5px}
  .wrap{padding:0 12px 60px}
  header{padding:18px 0 16px}
  .brand h1{font-size:20px;letter-spacing:2px}
  .disclaimer{font-size:11.5px;line-height:1.6;padding:9px 12px}

  /* 步骤条：压缩 + 横向滚动兜底 */
  .steps{
    flex-wrap:nowrap;overflow-x:auto;gap:5px;margin:14px 0 18px;
    padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none
  }
  .steps::-webkit-scrollbar{display:none}
  .step{min-width:66px;flex:1 0 66px;padding:7px 3px;font-size:11px;border-radius:8px}
  .step .n{font-size:9px;letter-spacing:0}

  .card{padding:16px 14px;border-radius:9px;margin-bottom:14px}
  .card > h2{font-size:15.5px;flex-wrap:wrap}
  .grid{grid-template-columns:1fr;gap:12px}

  /* 触摸目标加大 */
  .opt{padding:9px 15px;font-size:13.5px;min-height:44px;display:inline-flex;align-items:center}
  input[type=text],input[type=number],select,textarea{
    padding:11px 12px;font-size:16px /* 16px 可防 iOS 聚焦时自动缩放 */
  }
  .btn{padding:12px 20px;font-size:14.5px;flex:1;min-width:130px}
  .btn.ghost,.btn.small{flex:0 0 auto;min-width:0}
  /* 小按钮在移动端同样保持 44px 可点区域（Apple HIG 下限） */
  .btn.small{min-height:44px;padding:11px 16px;font-size:13.5px}
  .actions{gap:8px}

  .tongue-area{grid-template-columns:1fr;gap:14px}
  #tongueCanvas{max-height:52vh;width:auto;margin:0 auto}

  /* 表格横向滚动，避免撑破屏幕 */
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:12.5px;max-width:100%}
  /* 表头不换行、正文允许换行：避免手机上正文被压成一条长线要横向拖动 */
  th{white-space:nowrap;padding:7px 9px}
  td{white-space:normal;padding:7px 9px}
  .res-item{flex-direction:column;gap:3px}
  .res-k{flex:none;font-size:12px}
  .fx{padding:13px 14px}
  .fx dl{grid-template-columns:66px 1fr;font-size:12.5px}
  .alert{padding:12px 13px;font-size:13px}
  .toast{bottom:20px;font-size:13px;max-width:88vw;text-align:center}
}
@media(max-width:380px){
  .brand h1{font-size:18px}
  .step{min-width:60px;flex:1 0 60px;font-size:10.5px}
  .card{padding:14px 12px}
}
.toast{
  position:fixed;bottom:26px;left:50%;transform:translateX(-50%);
  background:var(--ink);color:#fff;padding:11px 24px;border-radius:24px;font-size:13.5px;
  opacity:0;pointer-events:none;transition:.25s;z-index:99
}
.toast.on{opacity:.96}
.empty{text-align:center;color:var(--ink-3);font-size:13.5px;padding:26px 0}
.sec-hide{display:none}

/* ============ AI 扩展层 ============ */
.brand{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.brand-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ai-badge{
  font-size:11.5px;padding:4px 10px;border-radius:20px;
  background:var(--line);color:var(--ink-3);border:1px solid var(--line-2);white-space:nowrap
}
.ai-badge.on{background:rgba(63,92,72,.12);color:var(--green);border-color:rgba(63,92,72,.3)}

.ai-block{background:linear-gradient(180deg,rgba(63,92,72,.045),rgba(63,92,72,0));border:1px dashed var(--line-2);border-radius:12px;padding:14px}
.ai-note{color:var(--green);font-weight:600}

/* STEP5 与 AI 讨论本例 */
.discuss-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.discuss-quick .opt{font-size:12px;padding:4px 9px}
.discuss-log{
  max-height:340px;overflow-y:auto;border:1px solid var(--line-2);border-radius:10px;
  background:var(--bg-2,#fafaf8);padding:10px;margin-bottom:10px
}
.discuss-log .hint{margin:0;font-size:12.5px}
.discuss-msg{display:flex;gap:8px;margin-bottom:12px}
.discuss-msg:last-child{margin-bottom:0}
.discuss-who{
  flex:0 0 auto;width:26px;height:22px;line-height:22px;text-align:center;border-radius:6px;
  font-size:11.5px;font-weight:700;color:#fff;background:var(--ink-3)
}
.discuss-msg.me .discuss-who{background:var(--green)}
.discuss-msg.ai .discuss-who{background:var(--gold,#a9803a)}
.discuss-body{font-size:13.5px;line-height:1.75;color:var(--ink);word-break:break-word}
.discuss-body pre{
  background:var(--line);padding:8px;border-radius:6px;overflow-x:auto;
  font-size:12.5px;white-space:pre-wrap;margin:6px 0
}
.discuss-input textarea{
  width:100%;border:1px solid var(--line-2);border-radius:10px;padding:9px 11px;
  font-size:13.5px;font-family:inherit;resize:vertical;box-sizing:border-box;background:#fff
}
.discuss-input textarea:focus{outline:none;border-color:var(--green)}
.discuss-btns{display:flex;gap:8px;margin-top:8px}
.opt.ai{box-shadow:inset 0 0 0 2px var(--gold);position:relative}
.opt.ai::after{
  content:'AI';position:absolute;top:-7px;right:-6px;
  background:var(--gold);color:#fff;font-size:9px;line-height:1;
  padding:2px 4px;border-radius:4px;letter-spacing:.5px
}
.pill{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:20px;border:1px solid var(--line-2);color:var(--ink-2)}
.pill.ok{background:rgba(63,92,72,.1);color:var(--green);border-color:rgba(63,92,72,.28)}
.pill.warn{background:rgba(184,115,51,.12);color:var(--gold);border-color:rgba(184,115,51,.32)}
table.kv{width:100%;border-collapse:collapse;font-size:13px}
table.kv th{text-align:left;width:62px;color:var(--ink-3);font-weight:600;vertical-align:top;padding:4px 8px 4px 0;white-space:nowrap}
table.kv td{color:var(--ink);vertical-align:top;padding:4px 0}
code{background:var(--line);padding:1px 5px;border-radius:4px;font-size:12px}

/* 安装提示条 */
#installBar{
  display:none;align-items:center;justify-content:space-between;gap:12px;
  max-width:960px;margin:10px auto 0;padding:10px 14px;
  background:var(--green);color:#fff;border-radius:12px;font-size:13px
}
#installBar .btn.small{background:#fff;color:var(--green);border-color:#fff}
#installBar .btn.ghost.small{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}

/* 设置弹窗 */
.modal{position:fixed;inset:0;background:rgba(28,26,22,.5);display:none;align-items:center;justify-content:center;padding:16px;z-index:120}
.modal.on{display:flex}
.modal-box{
  background:var(--paper);border-radius:14px;padding:20px;max-width:560px;width:100%;
  max-height:88vh;overflow-y:auto;box-shadow:0 18px 50px rgba(0,0,0,.25)
}
.modal-box h3{font-size:17px;margin-bottom:8px}
.modal-box .field{margin-top:12px}
.modal-box .actions{margin-top:16px}
.switch{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2);cursor:pointer}
.switch input{width:18px;height:18px}
@media(max-width:768px){
  #installBar{flex-direction:column;align-items:stretch;text-align:left}
  .modal-box{padding:16px;border-radius:12px}
}
.ai-badge.warn{background:rgba(168,64,47,.12);color:var(--red);border-color:rgba(168,64,47,.32)}
#installBar.warn{background:var(--amber);color:#fff}
#installBar.warn .btn.ghost.small{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}

/* ---------- 本地知识库：要点速查 ---------- */
.kb-block{background:linear-gradient(180deg,rgba(63,92,72,.03),rgba(63,92,72,0));border:1px solid var(--line-2);border-radius:12px;padding:14px}
.kb-hit{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--paper)}
.kb-hit:last-child{margin-bottom:0}
.kb-hit-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;font-size:14px}
.kb-hit-h b{color:var(--green)}
.kb-rel{margin-left:auto;font-size:11.5px;color:var(--ink-3);white-space:nowrap}
.kb-text{font-size:13px;line-height:1.75;color:var(--ink);white-space:pre-wrap;word-break:break-word}
.kb-text.ai-md{font-size:13.5px}
@media(max-width:768px){ .kb-rel{margin-left:0} }

/* ---------- P2 录入方式：AI 解析 / 手工填写 二选一 ---------- */
.entry-block{background:linear-gradient(180deg,rgba(74,107,82,.05),rgba(74,107,82,0));border:1px solid var(--line-2);border-radius:12px}
.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.entry-card{
  display:flex;flex-direction:column;gap:5px;text-align:left;cursor:pointer;
  background:var(--paper);border:1.5px solid var(--line);border-radius:12px;
  padding:13px 14px;font:inherit;color:inherit;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.entry-card:hover{border-color:var(--green);box-shadow:0 2px 10px rgba(74,107,82,.12)}
.entry-card:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.entry-card b{font-size:15px;color:var(--green);display:flex;align-items:center;gap:6px}
.entry-card span{font-size:12.5px;line-height:1.6;color:var(--ink-2)}
.entry-card em{
  font-style:normal;margin-top:2px;font-size:11.5px;color:var(--ink-3);
  background:var(--paper-2);border-radius:6px;padding:3px 8px;align-self:flex-start;
}
.entry-card.ok{border-color:var(--green);background:var(--green-l)}
.entry-card.ok b::after{content:'✓';font-size:12px}
.entry-card.ok em{background:#fff;color:var(--green);font-weight:600}
@media(max-width:768px){ .entry-grid{grid-template-columns:1fr} }

/* AI 预填的输入框：与选项的金色虚线框保持一致，一眼看出哪些还没人工确认 */
.ai-filled{box-shadow:inset 0 0 0 2px var(--gold)}

/* ===== 三档身份与权益（账号弹窗内展示） ===== */
.tierbox{border:1px solid var(--line-2);border-radius:10px;overflow:hidden;font-size:12.5px}
.tierbox .tier-head,.tierbox .tier-row{
  display:grid;grid-template-columns:72px 1.05fr 1.15fr .85fr;gap:8px;align-items:center;
  padding:7px 11px;
}
.tierbox .tier-head{background:var(--line);color:var(--ink-3);font-weight:600}
.tierbox .tier-row{border-top:1px solid var(--line-2);background:#fff}
.tierbox .tier-name{font-weight:700}
.tierbox .tier-name.guest{color:var(--ink-2)}
.tierbox .tier-name.member{color:var(--green)}
.tierbox .tier-name.pro{color:var(--amber)}
.tierbox .no{color:var(--ink-3)}
.tierbox .yes{color:var(--green);font-weight:700}
.tierbox .tier-now{border-top:1px dashed var(--line-2);padding:8px 11px;background:var(--amber-l);color:var(--ink-2)}
.tierbox .tier-now b{color:var(--ink)}
@media(max-width:560px){
  /* 窄屏：收起「怎么获得」一列，身份 / 核心辨证 / AI 三列仍完整可读，不横向滚动 */
  .tierbox{font-size:12px}
  .tierbox .tier-head,.tierbox .tier-row{grid-template-columns:56px 1fr 66px;gap:6px;padding:7px 9px}
  .tierbox .tier-head>span:nth-child(2),.tierbox .tier-row>span:nth-child(2){display:none}
}

/* ===== 页脚（ICP 备案等） ===== */
.site-footer{
  border-top:1px solid var(--line);
  background:var(--paper-2);
  color:var(--ink-3);
  font-size:12.5px;
  padding:16px 0;
  text-align:center;
}
.site-footer .wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  padding-bottom:0;
}
.site-footer a{
  color:var(--ink-2);
  text-decoration:none;
}
.site-footer a:hover{
  color:var(--green);
  text-decoration:underline;
}
@media(max-width:768px){
  .site-footer .wrap{flex-direction:column;gap:4px}
}
