* { box-sizing: border-box; }
body { font-family: system-ui, sans-serif; margin: 0; padding: 16px; background: #f5f6f8; color: #222; }
h1 { font-size: 20px; }
input, button { font-size: 17px; padding: 12px; width: 100%; margin: 8px 0; border-radius: 8px; border: 1px solid #ccc; }
button { background: #2b6cb0; color: #fff; border: none; }
.card { background: #fff; border-radius: 10px; padding: 14px; margin: 10px 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.layer-title { font-weight: 600; color: #2b6cb0; margin-top: 8px; }
.warn { color: #b7791f; }
.ok { color: #2f855a; }
img.preview { max-width: 100%; border-radius: 8px; margin: 8px 0; display: none; }

/* 三层诊断结果排版 */
.layer-title { font-weight: 700; color: #2b6cb0; margin: 18px 0 8px; font-size: 17px; }
.obs { margin: 0; padding-left: 20px; }
.obs li { margin: 6px 0; line-height: 1.5; }
.item { border: 1px solid #e2e8f0; border-radius: 10px; padding: 10px 12px; margin: 8px 0; background: #fff; }
.item .head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.item .name { font-weight: 600; font-size: 16px; }
.item .sub { font-size: 14px; color: #555; margin-top: 5px; line-height: 1.5; }
.item .sub b { color: #333; }
.badge { font-size: 12px; padding: 2px 8px; border-radius: 10px; white-space: nowrap; }
.badge.cause { background: #edf2f7; color: #4a5568; }
.lv-最可能 { background: #fed7d7; color: #c53030; }
.lv-次可能 { background: #feebc8; color: #c05621; }
.lv-拿不准 { background: #e2e8f0; color: #4a5568; }
.lv-无证据 { background: #f7fafc; color: #a0aec0; }
.risk { background: #fffaf0; border: 1px solid #f6e05e; border-radius: 10px; padding: 10px 12px; margin: 12px 0; color: #b7791f; line-height: 1.5; }
.nextstep { background: #ebf8ff; border-radius: 10px; padding: 10px 12px; margin: 8px 0; line-height: 1.6; }

/* 病例抬头：病例号·时间·部位 */
.casehead { font-size: 13px; color: #718096; padding-bottom: 10px; margin-bottom: 4px; border-bottom: 1px solid #edf2f7; }
.layer-title .hint { font-weight: 400; font-size: 13px; color: #a0aec0; margin-left: 8px; }

/* 诊断中等待态：诊断要 5 分钟，得让人看出在跑、且知道能离开 */
.waiting { text-align: center; padding: 20px 8px; line-height: 1.7; }
.waiting .sub { font-size: 14px; color: #718096; margin-top: 8px; }
.spin { width: 28px; height: 28px; margin: 0 auto 12px; border-radius: 50%;
        border: 3px solid #e2e8f0; border-top-color: #2b6cb0; animation: sp 1s linear infinite; }
@keyframes sp { to { transform: rotate(360deg); } }

/* 安全声明：不确诊、不给药，以技术员/送检为准 */
.safety { margin-top: 16px; padding: 10px 12px; border-radius: 10px; background: #f7fafc;
          border: 1px solid #e2e8f0; font-size: 13px; color: #4a5568; line-height: 1.6; }
.safety b { color: #c53030; }
.wizard{margin-top:16px;border-top:1px solid #e5e5e5;padding-top:14px}
.wizard .q{font-size:17px;font-weight:600;margin-bottom:10px}
.wizard .q2{font-size:15px;font-weight:600;margin:14px 0 6px}
.wizard .sub{font-size:13px;color:#666;margin:8px 0 4px}
.wizard .sub.gray{color:#999}
/* ⚠️ 全局 button 是「蓝底白字」(第5行)，这里凡是改成浅色底的按钮都必须显式写 color，
   否则白字印在白底上＝看不见（选中变蓝底才"冒"出来）。 */
button.big{display:block;width:100%;padding:14px;margin:8px 0;font-size:17px;color:#222;
  text-align:left;border-radius:10px;border:1px solid #cfd8dc;background:#f7fafc}
button.big .sub2{display:block;font-size:13px;color:#777;font-weight:400;margin-top:2px}
button.big.go{background:#1976d2;color:#fff;text-align:center;border:none}
button.pick{display:inline-block;width:auto;margin:4px 6px 4px 0;padding:10px 14px;
  font-size:15px;color:#222;border-radius:20px;border:1px solid #cfd8dc;background:#fff}
button.pick.on{background:#1976d2;color:#fff;border-color:#1976d2}
button.pick .al{display:block;font-size:12px;color:#888;margin-top:2px;font-weight:400}
button.pick.on .al{color:#dbeafe}
.cats{margin:10px 0}
.cats summary{padding:10px 0;font-size:15px;color:#1976d2}
.cat{margin:8px 0}
.catname{font-size:13px;color:#666;margin:6px 0 2px}
.notebox{display:flex;gap:8px;margin-top:10px}
.notebox input{flex:1;padding:10px;font-size:15px}
/* ⚠️ 只作用于文本框/下拉，不能写成 .wizard input——那会把单选/复选框也撑成整行宽，
   圆圈跑到中间、文字被挤到下一行（2b 上线当天就这么乱过一次）。 */
.wizard input[type=text],.wizard select{width:100%;padding:10px;font-size:15px;box-sizing:border-box}

/* 分步卡片：塘边一屏信息多，靠编号 + 卡片边界分出先后 */
.step{background:#fff;border:1px solid #e6e9ed;border-radius:12px;padding:12px 14px;margin:12px 0}
.steph{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;margin-bottom:10px}
.steph .num{display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;background:#1976d2;color:#fff;font-size:13px;flex:none}
.steph .hint{font-weight:400;font-size:13px;color:#98a2b3}
.chips{display:flex;flex-wrap:wrap;gap:2px}
.picked-tip{font-size:13px;color:#1b5e20;margin-top:10px;line-height:1.5}
/* 证据等级：做成两个可点的整行选项，不用小圆圈（手湿点不准） */
button.opt{display:block;width:100%;text-align:left;padding:12px 14px;margin:6px 0;font-size:16px;
  color:#222;background:#fff;border:1px solid #cfd8dc;border-radius:10px}
button.opt .sub2{display:block;font-size:13px;color:#888;font-weight:400;margin-top:2px}
button.opt.on{background:#1976d2;color:#fff;border-color:#1976d2}
button.opt.on .sub2{color:#dbeafe}
.goldrow{padding:12px;background:#f1f8e9;border-radius:10px;margin:8px 0;line-height:1.6}
.oldrow{padding:10px;background:#fafafa;border-radius:8px;margin:6px 0;line-height:1.6;color:#666}
button.ghost{background:#fff;color:#1976d2;border:1px solid #1976d2}
.listhead{font-size:13px;color:#666;margin:14px 0 6px}
a.caserow{display:block;padding:12px;margin:8px 0;border:1px solid #e0e0e0;
  border-radius:10px;text-decoration:none;color:#222;background:#fff}
a.caserow .l1{font-size:16px}
a.caserow .l2{font-size:13px;color:#666;margin-top:2px}
a.caserow .l3{font-size:13px;color:#1976d2;margin-top:2px}
.st{font-size:12px;padding:2px 8px;border-radius:10px;background:#eee;margin-left:6px}
.st-待现场确认{background:#fff3e0;color:#e65100}
.st-待送检回填{background:#e3f2fd;color:#0d47a1}
.st-已结案{background:#e8f5e9;color:#1b5e20}
.st-存疑挂起{background:#f3e5f5;color:#4a148c}
/* 主动弃权：判不出具体病名时的说明块。不配置信度标签——"判不出"不是一个病 */
.undecided{border:1px dashed #cbd5e0;border-radius:10px;padding:12px 14px;margin:8px 0;background:#fbfcfd}
.undecided .head{font-weight:600;font-size:16px;color:#4a5568;margin-bottom:6px}
.undecided .sub{font-size:14px;color:#555;margin-top:5px;line-height:1.5}
.undecided .sub.gray{color:#98a2b3;font-size:13px}
/* 病例抬头：先给照片，技术员一眼核对这是哪条鱼 */
.casehead .ch1{font-size:15px;color:#334155;font-weight:600}
.casehead .ch2{font-size:13px;color:#718096;margin-top:2px}
img.casephoto{display:none;width:100%;max-height:52vh;object-fit:contain;
  border-radius:10px;margin:10px 0;background:#f1f3f5}
img.casephoto.thumb{max-height:150px;margin:0 0 8px}
#box .sub{font-size:14px;color:#555;line-height:1.6;margin-bottom:10px}
.nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.nav .who{font-size:14px;color:#555;margin-right:4px}
button.ghost.mini{width:auto;padding:6px 12px;font-size:14px;margin:0}
.userrow{display:flex;justify-content:space-between;align-items:center;gap:8px;
  flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #eef1f4}
.urow-btns{display:flex;gap:8px}
.urow-btns button{width:auto;padding:6px 12px;font-size:14px;margin:0}
.step select,.step input[type=text]{width:100%;padding:10px;font-size:15px;box-sizing:border-box}
/* 备案号：合规要求必须挂在首页底部。小号灰字，不抢塘边操作的注意力 */
.beian{text-align:center;margin:28px 0 12px;font-size:12px;color:#a0aec0}
.beian a{color:#a0aec0;text-decoration:none}
