:root{--ink:#1f2933;--ink2:#5b6875;--line:#e2e9ee;--bg:#f5f8fa;--card:#fff;
 --brand:#0f766e;--brand-soft:#e7f4f1;--blue:#1c6ea4;--red:#c0392b;--red-soft:#fdeceb;
 --amber:#b26a00;--amber-soft:#fff4e0;--green:#237a4b;--green-soft:#e8f6ee}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;
 font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif}
a{color:var(--blue);text-decoration:none}
.top{background:#fff;border-bottom:1px solid var(--line);padding:10px 20px;display:flex;
 align-items:center;gap:14px;flex-wrap:wrap;position:sticky;top:0;z-index:20}
.top .logo{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--brand);font-size:16px;white-space:nowrap}
.top .brand-logo{width:26px;height:26px;border-radius:50%;object-fit:contain;flex:none}
.top .title{font-size:14px;color:var(--ink2);border-left:1px solid var(--line);padding-left:14px}
.top .nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.top .nav a{font-size:12.5px;color:var(--ink2);padding:4px 9px;border-radius:6px;white-space:nowrap}
.top .nav a:hover,.top .nav a.on{background:var(--brand-soft);color:var(--brand)}
.top .user{font-size:12.5px;color:var(--brand);white-space:nowrap}
.nav-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:3px;
 width:34px;height:34px;padding:7px;background:#fff;border:1px solid var(--line);
 border-radius:7px;flex:none;box-shadow:none}
.nav-toggle span{display:block;width:100%;height:2px;background:var(--brand);border-radius:2px}
.wrap{max-width:1240px;margin:0 auto;padding:18px 20px 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px}
.card h3{margin:0 0 12px;font-size:15px;color:var(--brand)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:4px;min-width:130px}
.field label{font-size:12px;color:var(--ink2)}
input,select,textarea,button{font-family:inherit;font-size:13.5px}
input,select,textarea{border:1px solid #d6e0e7;border-radius:6px;padding:7px 9px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid #b9e0d9;border-color:var(--brand)}
button{cursor:pointer;border:1px solid var(--brand);background:var(--brand);color:#fff;
 border-radius:6px;padding:7px 14px;font-weight:600}
button.ghost{background:#fff;color:var(--brand)}
button.gray{background:#fff;color:var(--ink2);border-color:#d6e0e7}
button.danger{background:#fff;color:var(--red);border-color:#e9b6b1}
button.sm{padding:4px 9px;font-size:12px;font-weight:500}
button:disabled{opacity:.5;cursor:not-allowed}
table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
th{background:#eef4f7;color:var(--ink2);text-align:left;font-weight:600;padding:9px 10px;
 border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid #eef2f5}
tbody tr:hover{background:#f8fcfd}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.tag{display:inline-block;padding:1px 8px;border-radius:5px;font-size:11.5px;font-weight:600;white-space:nowrap}
.t-green{background:var(--green-soft);color:var(--green)}.t-red{background:var(--red-soft);color:var(--red)}
.t-amber{background:var(--amber-soft);color:var(--amber)}.t-blue{background:#eaf3fa;color:var(--blue)}
.t-gray{background:#eef2f5;color:var(--ink2)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}
.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.stat b{display:block;font-size:24px;color:var(--brand);line-height:1.3}
.stat span{font-size:12px;color:var(--ink2)}
.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.tabs button{background:#fff;color:var(--ink2);border-color:#d6e0e7}
.tabs button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.muted{color:var(--ink2);font-size:12.5px}
.empty{padding:26px;text-align:center;color:var(--ink2)}
.alert{border-left:4px solid var(--amber);background:var(--amber-soft);padding:10px 14px;
 border-radius:0 6px 6px 0;margin:10px 0;font-size:13px}
.alert.red{border-color:var(--red);background:var(--red-soft)}
.alert.green{border-color:var(--green);background:var(--green-soft)}
.bar{height:8px;background:#eef2f5;border-radius:5px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--brand)}
/* 登录浮层 */
.mask{position:fixed;inset:0;background:rgba(18,38,50,.45);z-index:100;display:flex;
 align-items:center;justify-content:center}
.login{background:#fff;border-radius:12px;padding:24px;width:340px;box-shadow:0 12px 40px rgba(0,0,0,.2)}
.login h3{margin:0 0 6px;color:var(--brand);font-size:18px}
.login .field{margin-top:12px}
.login button{width:100%;margin-top:16px;padding:9px}
.login .err{color:var(--red);font-size:12.5px;min-height:18px;margin-top:8px}
#toast{position:fixed;left:50%;bottom:36px;transform:translateX(-50%);background:#1f2933;
 color:#fff;padding:9px 18px;border-radius:20px;font-size:13px;z-index:200;display:none}
/* 打印：小票 / 发药标签 / 治疗单 */
#print-area{display:none}
/* 手机端：把工作台导航收进「菜单」按钮，避免 12 项占满整屏 */
@media(max-width:820px){
 .top{flex-wrap:nowrap;padding:9px 12px;gap:9px}
 .top .title{display:none}
 .top .user{margin-left:auto;font-size:11.5px;max-width:36vw;overflow:hidden;text-overflow:ellipsis}
 .nav-toggle{display:inline-flex}
 .top .nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;
  background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 28px rgba(18,38,50,.14);
  flex-direction:column;gap:2px;padding:8px 12px 14px;max-height:72vh;overflow:auto;z-index:30}
 .top.nav-open .nav{display:flex}
 .top .nav a{padding:9px 10px;font-size:13.5px;border-radius:6px}
 .wrap{padding:14px 12px 50px}
}
@media print{
 body{background:#fff}.top,.no-print,#clinic-app>.card .no-print{display:none!important}
 .wrap{padding:0;max-width:none}#print-area{display:block!important}
 .card{border:none;box-shadow:none;padding:0;margin:0}
 table{font-size:12px}th,td{padding:4px 6px}
}
