/* 门诊注册页样式 —— 单文件内联，不依赖任何 CDN */
:root{
  --bg:#f5f7fa; --card:#ffffff; --line:#e5e7eb; --txt:#111827; --muted:#6b7280;
  --brand:#1d4ed8; --brand-d:#1e40af; --ok:#059669; --ok-bg:#ecfdf5;
  --err:#b91c1c; --err-bg:#fef2f2; --warn:#92400e; --warn-bg:#fffbeb;
  --req:#dc2626;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--txt);
  font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:720px;margin:0 auto;padding:24px 16px 48px}

/* 顶栏 */
.hd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.hd-l{display:flex;align-items:center;gap:12px}
.logo{
  width:42px;height:42px;border-radius:10px;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex:none;
}
.hd h1{font-size:17px;margin:0;font-weight:600}
.hd .sub{margin:0;font-size:12px;color:var(--muted)}
.lnk{font-size:13px;color:var(--brand);text-decoration:none;white-space:nowrap}
.lnk:hover{text-decoration:underline}
.hd-r{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* 邀请人横幅 */
.refbox{margin-bottom:14px}
.refbox .rb{border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px;display:flex;gap:10px;align-items:flex-start}
.refbox .rb.ok{background:var(--ok-bg);border-color:#a7f3d0;color:#065f46}
.refbox .rb.bad{background:var(--err-bg);border-color:#fecaca;color:var(--err)}
.refbox .rb.none{background:#f9fafb;color:var(--muted)}
.rb .ic{font-size:16px;line-height:1.35;flex:none}
.rb b{font-weight:600}
.rb code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px;font-size:12px}

/* 卡片 */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:14px}
.ct{font-size:15px;margin:0 0 4px;font-weight:600}
.ct.ok{color:var(--ok)}
.hint{margin:0 0 16px;font-size:12px;color:var(--muted)}
.req{color:var(--req)}

/* 表单 */
.fg{margin-bottom:14px}
.fg > label{display:block;font-size:13px;color:#374151;margin-bottom:5px;font-weight:500}
input[type=text],input[type=tel],select{
  width:100%;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:8px;
  font-size:14px;color:var(--txt);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;
}
input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(29,78,216,.10)}
input::placeholder{color:#9ca3af}
.tip{margin:4px 0 0;font-size:12px;color:var(--muted)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sw{display:flex;align-items:center;gap:7px;height:38px;font-size:13px;color:#374151;cursor:pointer}
.sw input{width:16px;height:16px;accent-color:var(--brand)}

/* 按钮 */
.act{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 20px;
  border:0;border-radius:8px;background:var(--brand);color:#fff;font-size:14px;font-weight:500;
  cursor:pointer;text-decoration:none;transition:background .15s;
}
.btn:hover{background:var(--brand-d)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.ghost{background:#fff;color:var(--brand);border:1px solid var(--line)}
.btn.ghost:hover{background:#f9fafb}
.muted{font-size:12px;color:var(--muted)}

/* 消息 */
.msg{border-radius:8px;padding:11px 13px;font-size:13px;margin-top:14px}
.msg.err{background:var(--err-bg);color:var(--err);border:1px solid #fecaca}
.msg.warn{background:var(--warn-bg);color:var(--warn);border:1px solid #fde68a}

/* 结果 */
.kv{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:13px;margin:14px 0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:500;word-break:break-all}
.kv dd.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f9fafb;padding:2px 7px;border-radius:5px;border:1px solid var(--line)}
.att{border-radius:8px;padding:11px 13px;font-size:13px;margin-bottom:12px}
.att.yes{background:var(--ok-bg);color:#065f46;border:1px solid #a7f3d0}
.att.no{background:#f9fafb;color:var(--muted);border:1px solid var(--line)}
.warnbox{background:var(--warn-bg);color:var(--warn);border:1px solid #fde68a;border-radius:8px;padding:11px 13px;font-size:13px;margin-top:12px}

.ft{text-align:center;color:var(--muted);font-size:12px;margin-top:22px}

@media(max-width:560px){
  .row2{grid-template-columns:1fr}
  .hd h1{font-size:15px}
  .wrap{padding:16px 12px 36px}
}
