/* ============================================================
   医生专属空间 · 样式（患者端 + 医师工作台）
   配色沿用品牌青绿 #0D9488，移动端优先、适老化字号
   ============================================================ */

/* 进入医生模式：隐藏平台顶栏与底部导航，呈现专属产品感 */
body.doc-mode > header,
body.doc-mode > nav{display:none !important;}
body.doc-mode{padding-bottom:0 !important;}
body.doc-mode .view-section{padding-bottom:24px;}

.doc-wrap{max-width:760px;margin:0 auto;padding:0 16px 40px;}
.doc-topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--border,#e5e7eb);}
.doc-topbar .brand{font-size:13px;font-weight:700;color:var(--primary,#0D9488);display:flex;align-items:center;gap:6px}
.doc-topbar .exit{font-size:13px;color:var(--text3,#64748b);cursor:pointer;padding:6px 10px;border-radius:10px;background:#f1f5f9}

/* Hero */
.doc-hero{border-radius:0 0 22px 22px;padding:26px 18px 22px;color:#fff;position:relative;overflow:hidden}
.doc-hero .avatar{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;font-size:34px;margin-bottom:12px;border:2px solid rgba(255,255,255,.5)}
.doc-hero h2{font-size:23px;font-weight:800;margin:0 0 4px;line-height:1.3}
.doc-hero .sub{font-size:14px;opacity:.92;margin-bottom:10px}
.doc-hero .intro{font-size:13.5px;line-height:1.7;opacity:.95;background:rgba(0,0,0,.12);padding:12px 14px;border-radius:12px}
.doc-hero .tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.doc-hero .tags span{font-size:12px;background:rgba(255,255,255,.2);padding:4px 10px;border-radius:20px}

/* 区块 */
.doc-section{margin-top:24px}
.doc-section-title{font-size:18px;font-weight:800;color:var(--text,#0f172a);margin:0 0 14px;
  display:flex;align-items:center;gap:8px;line-height:1.4}
.doc-section-title .em{font-size:13px;font-weight:600;color:var(--text3,#64748b)}

/* 运动方式卡片 */
.doc-cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.doc-cat-card{background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:16px;padding:14px;cursor:pointer;
  transition:.15s;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.doc-cat-card:active{transform:scale(.98)}
.doc-cat-card .ci{font-size:26px}
.doc-cat-card .cn{font-size:15.5px;font-weight:700;margin:6px 0 2px;color:var(--text,#0f172a)}
.doc-cat-card .cc{font-size:12.5px;color:var(--text3,#64748b)}

/* 视频卡片 */
.doc-video-grid{display:grid;grid-template-columns:1fr;gap:12px}
.doc-video-card{display:flex;gap:12px;background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:14px;
  padding:12px;cursor:pointer;align-items:center;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.doc-video-card:active{transform:scale(.99)}
.doc-video-card .thumb{flex:0 0 56px;width:56px;height:56px;border-radius:12px;background:linear-gradient(135deg,#0D9488,#34D399);
  display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff}
.doc-video-card .vt{font-size:15px;font-weight:700;color:var(--text,#0f172a);line-height:1.4}
.doc-video-card .vd{font-size:12.5px;color:var(--text3,#64748b);margin-top:3px;line-height:1.5}
.doc-video-card .vcat{display:inline-block;margin-top:6px;font-size:11px;background:#ecfdf5;color:#0D9488;padding:2px 8px;border-radius:10px}

/* 方案卡片 */
.doc-plan-grid{display:grid;grid-template-columns:1fr;gap:14px}
.doc-plan-card{background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:16px;padding:16px;box-shadow:0 2px 10px rgba(15,23,42,.05)}
.doc-plan-card .pn{font-size:17px;font-weight:800;color:var(--text,#0f172a);line-height:1.4}
.doc-plan-card .pd{font-size:13.5px;color:var(--text3,#64748b);margin:6px 0 10px;line-height:1.6}
.doc-plan-card .ptags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.doc-plan-card .ptags span{font-size:12px;background:#f0fdfa;color:#0f766e;padding:3px 9px;border-radius:10px;font-weight:600}
.doc-plan-card .psch{font-size:13px;color:#0f172a;background:#f8fafc;border-radius:10px;padding:9px 12px;margin-bottom:12px;
  border-left:3px solid var(--primary,#0D9488)}
.doc-plan-card .pex-h{font-size:13px;font-weight:700;color:var(--text3,#64748b);margin-bottom:8px}

/* 动作迷你卡（方案/方式内嵌） */
.doc-ex-list{display:grid;grid-template-columns:1fr;gap:9px}
.doc-ex-card{background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;padding:11px 12px}
.doc-ex-card .en{font-size:14.5px;font-weight:700;color:var(--text,#0f172a);display:flex;align-items:center;gap:7px}
.doc-ex-card .en .ecat{font-size:11px;background:#e2e8f0;color:#475569;padding:1px 7px;border-radius:8px;font-weight:600}
.doc-ex-card .ep{font-size:12.5px;color:#0D9488;margin:5px 0 3px;font-weight:600}
.doc-ex-card .ei{font-size:12.5px;color:var(--text3,#64748b);line-height:1.55}
.doc-ex-card .eca{font-size:12px;color:#b45309;line-height:1.5;margin-top:3px}

/* 页脚品牌行 */
.doc-foot{margin-top:28px;text-align:center;font-size:12px;color:var(--text3,#94a3b8);line-height:1.7}
.doc-foot a{color:var(--primary,#0D9488);text-decoration:none}

/* ============ 医师工作台 ============ */
.dt-wrap{max-width:760px;margin:0 auto;padding:0 16px 60px}
.dt-hero{background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;border-radius:0 0 22px 22px;padding:22px 18px}
.dt-hero h2{font-size:19px;font-weight:800;margin:0 0 4px}
.dt-hero .ds{font-size:13px;opacity:.85}
.dt-hero .dlinks{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap}
.dt-hero .dlinks button{font-size:13px;border:none;border-radius:10px;padding:9px 14px;font-weight:700;cursor:pointer}
.dt-card{background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:16px;padding:16px;margin-top:16px;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.dt-card h3{font-size:16px;font-weight:800;margin:0 0 12px;color:var(--text,#0f172a);display:flex;align-items:center;gap:8px}
.dt-field{margin-bottom:12px}
.dt-field label{display:block;font-size:13px;font-weight:700;color:var(--text3,#475569);margin-bottom:5px}
.dt-field input,.dt-field textarea,.dt-field select{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;
  padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text,#0f172a);background:#fff}
.dt-field textarea{resize:vertical;min-height:64px;line-height:1.5}
.dt-cat-pick{display:flex;flex-wrap:wrap;gap:8px}
.dt-cat-pick label{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;background:#f1f5f9;
  padding:7px 11px;border-radius:20px;cursor:pointer;border:1px solid transparent}
.dt-cat-pick input{width:auto;margin:0}
.dt-cat-pick label.on{background:#ecfdf5;border-color:#34d399;color:#0f766e}
.dt-row{display:flex;gap:10px;align-items:center}
.dt-row .grow{flex:1 1 auto}
.dt-btn{font-size:14px;font-weight:700;border:none;border-radius:10px;padding:11px 16px;cursor:pointer;background:var(--primary,#0D9488);color:#fff}
.dt-btn.sec{background:#e2e8f0;color:#334155}
.dt-btn.danger{background:#f3e4dc;color:#92482c}
.dt-btn.block{width:100%}
.dt-item{display:flex;gap:10px;align-items:flex-start;background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;padding:11px;margin-bottom:10px}
.dt-item .grow{flex:1 1 auto;min-width:0}
.dt-item .ti{font-size:14px;font-weight:700;color:var(--text,#0f172a)}
.dt-item .td{font-size:12.5px;color:var(--text3,#64748b);margin-top:3px;line-height:1.5}
.dt-item .ops{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}
.dt-item .ops button{font-size:12px;border:none;border-radius:8px;padding:6px 10px;cursor:pointer;background:#e2e8f0;color:#334155;font-weight:600}
.dt-item .ops button.del{background:#f3e4dc;color:#92482c}
.dt-qr{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:6px}
.dt-qr .box{width:264px;height:264px;padding:12px;background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:14px;display:flex;align-items:center;justify-content:center}
.dt-qr .url{font-size:12px;color:var(--text3,#64748b);word-break:break-all;text-align:center;line-height:1.5}
.dt-hint.qr-tip{margin-top:2px;font-weight:600;color:#0f766e}
.dt-hint{font-size:12px;color:var(--text3,#94a3b8);line-height:1.6;margin-top:8px}
.dt-banner{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46;font-size:13px;font-weight:600;padding:10px 14px;border-radius:12px;margin-top:8px}
/* 身份边界说明：专业工作台 ↔ 个人健康伴侣，互不串台 */
.dt-idty{display:flex;align-items:flex-start;gap:10px;background:#f5f3ff;border:1px solid #cfe8da;color:#5b21b6;font-size:13px;line-height:1.6;padding:11px 14px;border-radius:12px;margin:12px 0 4px}
.dt-idty .ic{flex:none;font-size:18px;line-height:1}
.dt-idty b{color:#4c1d95}
.dt-idty a{color:#6d28d9;font-weight:700;text-decoration:underline;cursor:pointer}
/* 身份强校验拦截屏：当前账号与工作台所属医师不符 */
.dt-guard{max-width:420px;margin:48px auto 0;background:#fff;border:1px solid #eccfc0;border-radius:16px;padding:28px 24px;text-align:center;box-shadow:0 6px 20px rgba(190,18,60,.06)}
.dt-guard-ic{font-size:46px;line-height:1}
.dt-guard-t{font-size:18px;font-weight:800;color:#92482c;margin:10px 0 6px}
.dt-guard-d{font-size:13px;color:#64748b;line-height:1.7}
.dt-guard-d b{font-family:Consolas,monospace;color:#334155}
/* 患者依从风险引擎：汇总 + 风险色标 + 续方建议 */
.dt-sum{font-size:13px;color:#334155;font-weight:600;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:10px 0 4px}
.dt-sum .dt-risk{margin-left:6px}
.dt-pat{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:11px 13px;margin:8px 0}
.dt-pat-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.dt-pat-uid{font-size:13px;font-family:Consolas,monospace;color:#334155}
.dt-pat-st{font-size:11px;color:#94a3b8}
.dt-pat-m{font-size:12px;color:#475569;margin-top:6px;line-height:1.7}
.dt-pat-m b{color:#0f766e}
.dt-sug{font-size:12px;line-height:1.7;margin-top:6px;padding:7px 10px;border-radius:9px;background:#fffbeb;border:1px solid #fde68a;color:#92400e}
.dt-risk{display:inline-block;font-size:11px;font-weight:700;border-radius:99px;padding:2px 9px;line-height:1.5}
.dt-risk.red{background:#faf1ec;color:#92482c;border:1px solid #eccfc0}
.dt-risk.yellow{background:#fffbeb;color:#b45309;border:1px solid #fde68a}
.dt-risk.green{background:#ecfdf5;color:#047857;border:1px solid #a7e3c4}
.dt-risk.gray{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}
.dt-pat-act{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px}
.dt-follow-btn{border:1px solid #c7d2fe;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:700;border-radius:8px;padding:5px 12px;cursor:pointer;font-family:inherit}
.dt-follow-btn:active{background:#e6f4ef}
.dt-follow-btn.done{background:#ecfdf5;color:#047857;border-color:#a7e3c4;cursor:default}
.dt-followed{font-size:11px;font-weight:700;color:#047857;background:#ecfdf5;border:1px solid #a7e3c4;border-radius:99px;padding:2px 9px;line-height:1.5}
.dt-follow-note{margin-top:8px;font-size:12px;line-height:1.65;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;padding:7px 10px;word-break:break-word}
.dt-fm-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:9999;display:flex;align-items:flex-end;justify-content:center}
.dt-fm-sheet{width:100%;max-width:520px;background:#fff;border-radius:18px 18px 0 0;padding:18px 18px 22px;box-shadow:0 -8px 30px rgba(0,0,0,.18);animation:dtfUp .18s ease-out}
@keyframes dtfUp{from{transform:translateY(20px);opacity:.6}to{transform:none;opacity:1}}
.dt-fm-title{font-size:16px;font-weight:800;color:#0f172a;margin-bottom:4px}
.dt-fm-sub{font-size:12px;color:#64748b;margin-bottom:12px;line-height:1.6}
.dt-fm-ta{width:100%;min-height:96px;box-sizing:border-box;border:1px solid #d8dee9;border-radius:12px;padding:11px 12px;font-size:14px;font-family:inherit;resize:vertical;line-height:1.6}
.dt-fm-ta:focus{outline:none;border-color:#1a6b54;box-shadow:0 0 0 3px #e6f4ef}
.dt-fm-row{display:flex;gap:10px;margin-top:14px}
.dt-fm-btn{flex:1;border:none;border-radius:11px;padding:12px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}
.dt-fm-save{background:#0d4d3a;color:#fff}
.dt-fm-save:active{background:#4338ca}
.dt-fm-cancel{background:#f1f5f9;color:#475569}
.dt-fm-cancel:active{background:#e2e8f0}
/* 总览页 */
.ov-welcome{background:linear-gradient(135deg,#0D9488,#0b6b43);color:#fff;border:none}
.ov-welcome .ov-hi{font-size:19px;font-weight:800}
.ov-welcome .ov-sub{margin-top:6px;font-size:13px;opacity:.92}
.ov-welcome .ov-sub .pill.pro{background:rgba(255,255,255,.2);color:#fff;border-color:rgba(255,255,255,.35)}
.ov-welcome .ov-actions{margin-top:12px}
.ov-welcome .ov-actions .dt-btn.sec{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.35)}
.ov-welcome .ov-actions .dt-btn.sec:hover{background:rgba(255,255,255,.26)}
.dc-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.dc-qcard{border:1px solid #e2e8f0;border-radius:14px;padding:16px;background:#fff;cursor:pointer;text-align:left;font-family:inherit;transition:.15s}
.dc-qcard:hover{border-color:#0D9488;box-shadow:0 4px 14px rgba(13,148,136,.10)}
.dc-qcard .qc-ic{font-size:26px}
.dc-qcard .qc-t{font-weight:700;margin-top:8px;font-size:15px;color:#1f2d3d}
.dc-qcard .qc-d{font-size:12px;color:#64748b;margin-top:3px}
.ov-risk-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #f1f5f9}
.ov-risk-row:first-child{border-top:none}
.ov-risk-row .ov-uid{font-size:12px;font-family:Consolas,monospace;color:#334155;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 家属监督视角 · 患者风险条 */
.dt-fam-risk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 14px;background:#fff;border-bottom:1px solid #eef2f7;font-size:13px}
.dt-fam-risk .dt-fam-risk-m{color:#475569}
.dt-fam-risk .dt-fam-risk-sug{color:#64748b;margin-left:auto}
@media(max-width:640px){.dt-fam-risk .dt-fam-risk-sug{margin-left:0;flex-basis:100%}}
@media(max-width:640px){.dc-quick{grid-template-columns:1fr}.ov-welcome .ov-hi{font-size:17px}}
.dt-guard-row{display:flex;gap:8px;margin-top:18px}
.dt-saved{font-size:13px;color:#0f766e;font-weight:700;text-align:center;margin-top:8px;min-height:18px}

/* ============ 工作台 · 极简分类布局 ============ */
.dc{display:flex;min-height:100vh;background:#fff;font-family:inherit}
.dc-side{width:212px;flex:0 0 212px;background:#fafafa;border-right:1px solid #eee;
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.dc-brand{display:flex;align-items:center;gap:8px;padding:20px 18px 14px;font-size:15px;font-weight:800;color:#0f172a}
.dc-logo{font-size:18px}
.dc-nav{flex:1;padding:4px 12px;overflow:auto}
.dc-grp{font-size:11px;font-weight:700;letter-spacing:.08em;color:#9ca3af;text-transform:uppercase;margin:16px 8px 6px}
.dc-link{display:block;width:100%;text-align:left;border:none;background:transparent;cursor:pointer;
  font-size:14px;font-weight:600;color:#4b5563;padding:10px 12px;border-radius:10px;margin-bottom:2px;font-family:inherit}
.dc-link:hover{background:#f1f5f9}
.dc-link.active{background:#ecfdf5;color:#0f766e;font-weight:700}
.dc-foot{padding:14px 14px 18px;border-top:1px solid #eee}
.dc-save{width:100%;border:none;border-radius:10px;padding:11px;font-size:14px;font-weight:700;cursor:pointer;
  background:var(--primary,#0D9488);color:#fff;font-family:inherit}
.dc-save:active{transform:scale(.98)}
.dc-saved{font-size:12px;color:#0f766e;font-weight:600;text-align:center;margin-top:8px;min-height:16px}
.dc-main{flex:1;min-width:0;display:flex;flex-direction:column;background:#fff}
.dc-head{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 24px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid #f0f0f0}
.dc-name{font-size:16px;font-weight:800;color:#0f172a}
.dc-sub{font-size:12.5px;color:#6b7280;margin-top:2px}
.dc-ops{display:flex;gap:8px;flex:0 0 auto}
.dc-ob{border:1px solid #e5e7eb;background:#fff;border-radius:9px;padding:7px 12px;font-size:13px;font-weight:600;
  cursor:pointer;color:#374151;font-family:inherit;white-space:nowrap}
.dc-ob.ghost{color:#6b7280}
.dc-ob:hover{background:#f9fafb}
.dc-sec{display:none;padding:22px 24px 64px;max-width:880px;width:100%;box-sizing:border-box}
.dc-sec.active{display:block}
@media (min-width:761px){.dt-card{box-shadow:none;border-color:#eee}}
/* 移动端：侧边栏降级为顶部横滑标签 */
@media (max-width:760px){
  .dc{flex-direction:column;min-height:auto}
  .dc-side{width:100%;flex:none;height:auto;position:static;flex-direction:row;align-items:center;
    border-right:none;border-bottom:1px solid #eee;overflow-x:auto}
  .dc-brand{padding:12px 14px;flex:0 0 auto}
  .dc-nav{flex-direction:row;display:flex;padding:8px 10px;gap:6px;align-items:center}
  .dc-grp{display:none}
  .dc-link{margin-bottom:0;white-space:nowrap}
  .dc-foot{border-top:none;border-left:1px solid #eee;padding:10px;flex:0 0 auto}
  .dc-head{flex-wrap:wrap}
  .dc-sec{padding:18px 16px 56px}
}

/* 移动端适配：两列更紧凑、字号保证可读 */
@media (max-width:480px){
  .doc-cat-grid{gap:10px}
  .doc-hero h2{font-size:21px}
  .doc-section-title{font-size:17px}
}
