:root{
  --primary:#1a5276; --primary-2:#2980b9; --accent:#16a085; --bg:#f2f6f9;
  --card:#ffffff; --text:#1f2d3d; --sub:#7a8aa0; --line:#e6edf3;
  --good:#27ae60; --mid:#f39c12; --bad:#e74c3c; --warn-bg:#fdecea;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;}
#app{height:100%;}
button{font-family:inherit;cursor:pointer;border:none;outline:none;}
.inp,.sel,.textarea,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;background:#fff;color:var(--text);margin-bottom:10px;}
textarea{resize:vertical;min-height:64px;}

/* ---------------- 登录 ---------------- */
.login{max-width:420px;margin:0 auto;padding:48px 26px;display:flex;flex-direction:column;align-items:center;}
.login-logo{font-size:56px;margin-bottom:6px;}
.login-title{font-size:21px;margin:6px 0 2px;color:var(--primary);}
.login-sub{color:var(--sub);margin:0 0 24px;font-size:14px;}
.login-form{width:100%;}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;padding:12px 16px;
  border-radius:10px;font-size:15px;font-weight:600;}
.btn-primary.block{width:100%;}
.btn-primary:disabled{opacity:.6;}
.login-demo{margin-top:26px;width:100%;text-align:center;}
.ld-title{color:var(--sub);font-size:13px;margin-bottom:8px;}
.ld-btn{display:inline-block;margin:4px;padding:7px 12px;background:#eaf2f8;color:var(--primary);
  border-radius:20px;font-size:13px;}

/* ---------------- 外壳 ---------------- */
.app-shell{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;background:var(--bg);}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--primary);color:#fff;}
.tb-title{font-weight:600;font-size:16px;}
.tb-right{display:flex;align-items:center;gap:10px;}
.tb-user{font-size:13px;opacity:.9;}
.tb-logout{background:rgba(255,255,255,.18);color:#fff;padding:5px 11px;border-radius:16px;font-size:13px;}
.content{flex:1;overflow:auto;padding:14px;}
.tabbar{display:flex;background:#fff;border-top:1px solid var(--line);padding:4px 0;}
.tab{flex:1;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;color:var(--sub);}
.tab-ic{font-size:19px;}
.tab-tx{font-size:11px;}
.tab.active{color:var(--primary);}

/* ---------------- 通用卡片 ---------------- */
.page{padding-bottom:8px;}
.section-title{font-size:15px;font-weight:600;color:var(--primary);margin:14px 2px 8px;}
.section-sub{font-size:13px;color:var(--sub);margin:12px 2px 4px;}
.card-list{display:flex;flex-direction:column;gap:10px;}
.card{background:var(--card);border-radius:12px;padding:14px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.loading,.empty{color:var(--sub);text-align:center;padding:24px;font-size:14px;}
.note{color:var(--sub);font-size:12px;margin-top:10px;line-height:1.6;}

/* 依从率卡 */
.adherence-card{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border-radius:14px;
  padding:16px;display:flex;align-items:center;gap:16px;}
.ac-rate{font-size:30px;font-weight:700;}
.ac-label{font-size:12px;opacity:.85;}
.ac-right{flex:1;}
.ac-bar{height:8px;background:rgba(255,255,255,.25);border-radius:6px;overflow:hidden;}
.ac-bar-fill{height:100%;background:#fff;border-radius:6px;transition:width .4s;}
.ac-bar-fill.good{background:#2ecc71;}.ac-bar-fill.mid{background:#f1c40f;}.ac-bar-fill.bad{background:#e74c3c;}
.ac-sub{font-size:12px;opacity:.9;margin-top:6px;}

/* 提醒 */
.reminder{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:12px;padding:12px 14px;
  box-shadow:0 1px 4px rgba(26,82,118,.06);}
.reminder.checked{opacity:.6;}
.rm-time{font-weight:700;color:var(--primary);min-width:48px;font-size:16px;}
.rm-main{flex:1;}
.rm-name{font-weight:600;}
.rm-note{color:var(--sub);font-size:12px;}
.btn-check{background:var(--accent);color:#fff;padding:8px 14px;border-radius:20px;font-size:13px;font-weight:600;}
.btn-check.done{background:#cfe9e2;color:var(--accent);}
.quick-actions{display:flex;gap:10px;margin-top:14px;}
.qa{flex:1;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px;font-size:13px;color:var(--primary);}

/* 用药卡 */
.med-card{background:var(--card);border-radius:12px;padding:13px 14px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.med-name{font-weight:600;color:var(--primary);}
.med-meta{color:var(--sub);font-size:13px;margin-top:3px;}
.med-note{color:#34495e;font-size:13px;margin-top:5px;}

/* 咨询 */
.ask-box{background:var(--card);border-radius:12px;padding:12px;margin-bottom:12px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.consult-item{background:var(--card);border-radius:12px;padding:12px 14px;margin-bottom:10px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.consult-item.pending{border-left:3px solid var(--mid);}
.consult-item.replied{border-left:3px solid var(--good);}
.c-who{font-weight:600;color:var(--primary);font-size:13px;margin-bottom:4px;}
.cq{font-size:14px;}.ca{color:var(--good);font-size:14px;margin-top:4px;}.cw{color:var(--mid);font-size:13px;margin-top:4px;}
.ct{color:var(--sub);font-size:11px;margin-top:6px;}
.reply-input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:6px;font-size:13px;min-height:48px;resize:vertical;}
.reply-btn{margin-top:6px;}

/* 健康档案 */
.rec-card{background:var(--card);border-radius:12px;padding:14px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.rec-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px;}
.rec-row:last-child{border-bottom:none;}
.rec-row span{color:var(--sub);}.rec-row b.warn{color:var(--bad);}
.lab-card{background:var(--card);border-radius:12px;padding:12px 14px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.lab-date{color:var(--sub);font-size:12px;margin-bottom:6px;}
.lab-item{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:14px;}
.lab-item b{min-width:90px;}.lab-item i{color:var(--sub);font-size:12px;font-style:normal;}
.lab-item.flag{color:var(--bad);}.lab-item.flag b{color:var(--bad);}

/* 科普 */
.kn-card{background:var(--card);border-radius:12px;padding:13px 14px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.kn-tag{display:inline-block;background:#eaf2f8;color:var(--primary);font-size:11px;padding:2px 8px;border-radius:10px;margin-bottom:6px;}
.kn-title{font-weight:600;}.kn-content{color:#34495e;font-size:13px;margin-top:4px;line-height:1.6;}
.kn-foot{color:var(--sub);font-size:11px;margin-top:6px;}

/* 药师端 */
.pt-card{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:12px;padding:12px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.pt-avatar{width:42px;height:42px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;}
.pt-main{flex:1;}
.pt-name{font-weight:600;}.pt-meta{color:var(--sub);font-size:12px;font-weight:400;margin-left:6px;}
.pt-disease{color:var(--sub);font-size:12px;margin-top:2px;}
.pt-adh{font-size:12px;margin-top:3px;}
.pt-adh b{font-weight:700;}.pt-adh b.good{color:var(--good);}.pt-adh b.mid{color:var(--mid);}.pt-adh b.bad{color:var(--bad);}
.badge{background:var(--mid);color:#fff;font-size:11px;padding:1px 7px;border-radius:10px;margin-left:6px;}
.pt-arrow{color:var(--sub);font-size:20px;}
.detail-head{font-size:18px;font-weight:700;color:var(--primary);}
.adh-row{color:var(--sub);font-size:13px;margin:6px 0 4px;}
.adh-row b{color:var(--primary);}
.btn-back{background:none;color:var(--primary);font-size:14px;padding:4px 0;margin-bottom:6px;}

.alert-card{display:flex;gap:12px;background:var(--card);border-radius:12px;padding:12px;box-shadow:0 1px 4px rgba(26,82,118,.06);border-left:3px solid var(--mid);}
.alert-card.danger{border-left-color:var(--bad);}
.alert-card.warn{border-left-color:var(--mid);}
.al-icon{font-size:22px;}.al-main{flex:1;}.al-msg{font-size:14px;}.al-time{color:var(--sub);font-size:11px;margin-top:4px;}

.guid-card{background:#eaf7f3;border-radius:10px;padding:10px 12px;margin-bottom:8px;}
.guid-card .ct{color:var(--sub);font-size:11px;margin-top:4px;}

/* 统计 */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.stat-cell{background:var(--card);border-radius:12px;padding:14px 8px;text-align:center;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.stat-cell b{font-size:22px;color:var(--primary);display:block;}.stat-cell b.good{color:var(--good);}.stat-cell b.mid{color:var(--mid);}.stat-cell b.bad{color:var(--bad);}
.stat-cell span{font-size:12px;color:var(--sub);}
.adh-line{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:10px;padding:9px 12px;margin-bottom:8px;font-size:13px;}
.adh-track{flex:1;height:8px;background:#eef3f7;border-radius:6px;overflow:hidden;}
.adh-fill{height:100%;background:var(--good);}
.adh-fill.good{background:var(--good);}.adh-fill.mid{background:var(--mid);}.adh-fill.bad{background:var(--bad);}
.adh-line b{min-width:42px;text-align:right;}

/* 用户/药品/审计 */
.user-card{display:flex;flex-direction:column;gap:3px;background:var(--card);border-radius:12px;padding:12px;position:relative;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.u-name{font-weight:600;}.u-meta{color:var(--sub);font-size:12px;}
.role-tag{position:absolute;top:12px;right:12px;font-size:11px;padding:2px 9px;border-radius:10px;background:#eaf2f8;color:var(--primary);}
.role-tag.admin{background:#fdebd0;color:#b9770e;}.role-tag.pharmacist{background:#e8f6ef;color:var(--accent);}
.drug-card{background:var(--card);border-radius:12px;padding:12px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.d-name{font-weight:600;color:var(--primary);}.d-cat{font-size:11px;color:var(--sub);font-weight:400;margin-left:6px;}
.d-meta{color:var(--sub);font-size:12px;margin-top:3px;}.d-con{color:#34495e;font-size:13px;margin-top:3px;}
.audit-item{background:var(--card);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.a-act{font-size:14px;}.a-time{color:var(--sub);font-size:11px;}

/* toast */
.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);background:rgba(31,45,61,.92);color:#fff;
  padding:12px 20px;border-radius:10px;font-size:14px;opacity:0;pointer-events:none;transition:all .2s;z-index:99;max-width:80%;text-align:center;}
.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1);}
.toast.err{background:rgba(231,76,60,.95);}

/* 拍处方识别 */
.rx-btns{display:flex;gap:10px;margin-bottom:10px;}
.cam-btn{flex:1;background:#eaf2f8;color:var(--primary);padding:13px;border-radius:12px;font-weight:600;font-size:15px;}
.cam-btn.alt{background:#e8f6ef;color:var(--accent);}
.cam-btn:active{filter:brightness(.96);}
.img-prev{text-align:center;margin-bottom:8px;}
.prev-img{max-width:100%;max-height:200px;border-radius:10px;border:1px solid var(--line);}
.or{text-align:center;color:var(--sub);font-size:12px;margin:6px 0;}
.hint{color:var(--sub);font-size:11px;line-height:1.5;margin-top:6px;}
.rx-tip{font-size:13px;color:var(--primary);margin:4px 2px 10px;}
.rx-item{background:var(--card);border-radius:12px;padding:12px;box-shadow:0 1px 4px rgba(26,82,118,.06);}
.rx-chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--sub);margin-bottom:8px;}
.rx-chk input{width:16px;height:16px;}
.rx-row{display:flex;gap:8px;}
.rx-row .inp{margin-bottom:8px;}
.rx-name{font-weight:600;}

/* 用药方案卡片的编辑/删除 */
.med-actions{display:flex;gap:10px;margin-top:10px;}
.med-actions button{flex:1;padding:9px;border-radius:10px;font-weight:600;font-size:14px;}
.med-edit{background:#eaf2f8;color:var(--primary);}
.med-del{background:#fdecea;color:var(--bad);}
.med-edit-form{padding:6px 0 2px;}
