/* Ported from MediData report.CSS + web.PAGE_CSS (the owner's tuned look). Amber accent,
   warm paper ground, tree rail, pills for state. */
:root{--ink:#232120;--muted:#6E6862;--rule:#DCD7CE;--amber:#A8760F;--bg:#FBFAF7;
--ok:#2E7D32;--bad:#C0392B;--warn:#B35C00}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 "PingFang SC","Helvetica Neue",sans-serif}
h1{font-size:24px;margin:0 0 4px}
h2{font-size:17px;margin:30px 0 10px;padding-bottom:6px;border-bottom:2px solid var(--amber)}
table{width:100%;border-collapse:separate;border-spacing:0;margin:0 0 14px;font-size:12.5px;background:#fff;
border:1px solid var(--rule);border-radius:6px}   /* no overflow:hidden — it would pin sticky headers to the table instead of the scrolling area */
th:first-child{border-top-left-radius:6px}th:last-child{border-top-right-radius:6px}
th{text-align:left;font-size:11px;letter-spacing:.4px;text-transform:uppercase;
color:var(--muted);border-bottom:1px solid var(--ink);padding:7px 10px;background:#F4F2EC}
td{border-bottom:1px solid var(--rule);padding:6px 10px;vertical-align:top}
th.nw,td.nw{white-space:nowrap}
tr:last-child td{border-bottom:0}
code,.mono{font-family:Menlo,monospace;font-size:12px}
.ok{color:var(--ok);font-weight:600}.bad{color:var(--bad);font-weight:600}
.warn{color:var(--warn);font-weight:600}.keep{color:#4A6785;font-weight:600}
.note{color:var(--muted);font-size:12.5px;margin:6px 0 14px}
html,body{height:100%}
.app{display:flex;height:100vh;align-items:stretch}
.rail{width:238px;flex:none;background:#F4F2EC;border-right:1px solid var(--rule);
  padding:22px 0 18px;display:flex;flex-direction:column;overflow-y:auto}
.rail .brand{font:600 17px/1.3 -apple-system,"PingFang SC",sans-serif;letter-spacing:.04em;padding:0 20px 12px}
.rail .brand small{display:block;font-weight:400;font-size:11.5px;color:var(--muted);margin-top:3px}
.rail a{display:block;color:var(--ink);text-decoration:none;padding:8px 20px;font-size:13.5px}
.rail a:hover{background:#EDE9DF}
.rail .langs{display:flex;gap:6px;padding:0 20px 14px}
.rail .langs a{padding:2px 9px;font-size:12px;border:1px solid var(--rule);border-radius:11px;
  color:var(--muted);background:#fff}
.rail .langs a.on{border-color:var(--amber);color:#5C4200;font-weight:600;background:#FFF9EC}
.rail .langs a:hover{border-color:var(--amber)}
.rail .top{background:#E7E2D7;color:var(--ink);font-weight:600;font-size:12.5px;
  letter-spacing:.04em;padding:7px 20px;margin-top:10px;
  border-top:1px solid #DBD5C8;border-bottom:1px solid #DBD5C8}
.rail .who + .top{margin-top:0}
a.top:hover{background:#DFD9CB}
.rail .kids{margin:2px 0 0 26px;border-left:1px solid var(--rule)}
.rail .kids a{padding:7px 14px;font-size:13px}
.rail a.cur{background:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--amber)}
.rail a.top.cur{box-shadow:inset 3px 0 0 var(--amber)}
.rail .who{padding:9px 20px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-size:12.5px;color:var(--muted);background:#FAF8F3}
.rail .ver{margin-top:auto;padding:12px 20px 0;border-top:1px solid var(--rule);font-size:11px;line-height:1.6;color:var(--muted)}
.rail .who form{display:inline}
.rail .who button{font:inherit;color:var(--muted);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.crumb{font-size:13px;color:var(--muted);margin:0 0 20px;line-height:1.9}
.crumb a{color:var(--muted);text-decoration:none;border-bottom:1px solid #ddd7cb}
.crumb a:hover{color:var(--amber);border-bottom-color:var(--amber)}
.crumb .at{color:#5C4200;background:#FFF6E5;border:1px solid var(--amber);border-radius:5px;padding:3px 10px;font-weight:600}
.crumb .off{color:#BDB6A8}
.crumb .sep{padding:0 9px;color:#C3BCAE}
.main{flex:1;min-width:0;padding:26px 34px 0;max-width:1060px;display:flex;flex-direction:column;min-height:0}
.main .content{flex:1;min-height:0;overflow:auto;padding-bottom:48px}   /* the one thing that scrolls: rail, title and tools stay put */
.content th{position:sticky;top:0;z-index:1}
.main h1{margin:0 0 18px;font-size:22px}
.main h2{font-size:15px;margin:24px 0 10px;padding-bottom:6px;border-bottom:2px solid var(--amber)}
.card{border:1px solid var(--rule);border-radius:8px;padding:16px 18px;margin:0 0 16px;background:#fff}
.card h2{margin:0 0 10px;font-size:15px;border:none;padding:0}
.btn{display:inline-block;font:inherit;padding:8px 16px;border-radius:5px;border:1px solid #B7AF9F;
  background:#fff;cursor:pointer;text-decoration:none;color:var(--ink)}
.btn.go{background:var(--amber);border-color:var(--amber);color:#fff;font-weight:600}
.btn.sm{padding:3px 11px;font-size:12.5px}
.btn.off{opacity:.45;pointer-events:none}
input[type=text],input[type=password],input[type=file],input[type=date]{font:inherit;padding:7px;
  border:1px solid var(--rule);border-radius:4px}
.pill{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px;font-weight:600}
.pill.ok{background:#E7F4EA;color:#1B5E20}.pill.warn{background:#FFF6E5;color:#8A5F00}
.pill.keep{background:#EAF0F7;color:#1F3A5F}.pill.bad{background:#FBE9E7;color:#7B241C}
.reason{display:block;font-size:12px;color:var(--bad);margin-top:3px;max-width:420px}
.at{color:var(--muted);font-size:11.5px}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}   /* the same three equal buttons per row on every page */
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin:0 0 16px}.two>.card{margin:0}
.ways{display:flex;flex-direction:column;gap:7px}
.ways a{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border:1px solid var(--rule);border-radius:6px;background:#fff;color:var(--ink);text-decoration:none}
.ways a::after{content:'›';color:var(--muted);font-size:15px}
.ways a:hover{border-color:var(--amber);background:#FDFAF3}
@media (max-width:1000px){.two{grid-template-columns:1fr}}
.tile{min-height:88px;border:1px solid var(--rule);border-radius:8px;background:#fff;padding:18px;
  text-decoration:none;color:var(--ink)}
.tile:hover{border-color:var(--amber)}
.tile b{display:block;font-size:15px}.tile .note{display:block;margin:6px 0 0;font-size:12.5px}.tile.off .note{visibility:hidden}
.tile.off{opacity:.5;pointer-events:none}
.radios label{margin-right:16px;font-size:13px}
.login{max-width:380px;margin:12vh auto;padding:0 20px}
.login .title{text-align:center;font-size:22px;font-weight:600;letter-spacing:.06em;line-height:1.35;margin:0 0 20px;color:var(--ink);text-wrap:balance}
.login .card p{margin:0 0 12px}
.login .card p.go-row{text-align:center;margin:4px 0 0}
.login .go-row .btn{min-width:150px;padding:9px 28px;font-size:15px}
html[lang="en"] .login .title{letter-spacing:0;font-size:21px}
.login .langs{text-align:center;margin-top:14px;margin-bottom:6px}
.login .ver{text-align:center;font-size:11.5px;color:var(--muted);line-height:1.7;margin:0}.login .langs a.on{font-weight:600;text-decoration:none;color:var(--ink)}
.msg{padding:8px 12px;border-radius:5px;margin:0 0 12px;font-size:13px}
.msg.warn{background:#FFF6E5;color:#8A5F00}.msg.ok{background:#E7F4EA;color:#1B5E20}.msg.bad{background:#FBE9E7;color:#7B241C}
.prog{font-size:12.5px}
.prog td{padding:4px 10px}
.filters input{margin-right:8px}

/* help pages: module tabs stay put, the text scrolls */
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}.tabs a,.tabs span{font-size:12.5px;padding:4px 12px;border:1px solid var(--rule);border-radius:14px;background:#fff;color:var(--ink);text-decoration:none}
.tabs a:hover{border-color:var(--amber)}.tabs a.cur{background:var(--amber);border-color:var(--amber);color:#fff;font-weight:600}.tabs span{color:var(--muted);background:transparent;border-style:dashed}
.help{max-width:820px}.help .card{padding:14px 18px}.help h2{margin:0 0 10px;font-size:15px;border-bottom:2px solid var(--amber);padding-bottom:6px}.help h2 .at{font-weight:400;font-size:12px;margin-left:6px}
.help p,.help li{font-size:13.5px;line-height:1.75}.help ol,.help ul{margin:6px 0 10px;padding-left:22px}.help li{margin:2px 0}.help figure{margin:4px 0 0}
.help figure img{max-width:100%;display:block;border:1px solid var(--rule);border-radius:6px}.help figure.narrow img{max-width:440px}.help figcaption{font-size:12px;color:var(--muted);margin-top:6px}
.help table{font-size:13px}.help td,.help th{padding:6px 10px}.help .tick{color:var(--ok);font-weight:600}.help .idx a{display:block;padding:10px 14px;border:1px solid var(--rule);border-radius:8px;background:#fff;text-decoration:none;color:var(--ink);margin:0 0 8px}
.help .idx a:hover{border-color:var(--amber)}.help .idx b{display:block;font-size:14px}.help .idx small{color:var(--muted)}.help .idx .soon{opacity:.55;pointer-events:none}
.help .notes{margin:0 0 14px;padding:10px 14px}.help .notes b{display:block;margin-bottom:2px}.help .notes ol{margin:0;padding-left:20px}.help .notes li{margin:0;line-height:1.7}
.help table.perm th:not(:first-child),.help table.perm td:not(:first-child){text-align:center;width:88px}.help table.perm tr.grp td{background:#F4F2EC;color:var(--muted);font-size:12px;font-weight:600;padding:5px 10px}
.help table.perm tr.sub td:first-child{padding-left:28px;color:var(--muted)}.help table.perm tr.sub td:first-child::before{content:'› ';color:var(--muted)}
select.prov,input.rdate{font:inherit;font-size:12.5px;padding:2px 6px;border:1px solid var(--rule);border-radius:4px;background:#fff}input.rdate{width:135px}.autosave.saved{border-color:var(--ok)}.autosave.failed{border-color:var(--bad)}
.prog a.fname,.content a.fname{color:inherit;text-decoration:none;border-bottom:1px solid #ddd7cb}.prog a.fname:hover,.content a.fname:hover{border-bottom-color:var(--amber);color:#5C4200}
.tag{display:inline-block;font-size:11px;color:var(--muted);border:1px solid var(--rule);border-radius:9px;padding:0 6px;vertical-align:middle}button.exp{font:inherit;font-size:12px;padding:1px 9px;border:1px solid var(--rule);border-radius:4px;background:#fff;cursor:pointer;margin-left:4px}button.exp:hover{border-color:var(--amber)}tr.dates > td{background:#fbfaf7;padding:10px 12px 12px}.dcards{display:flex;flex-wrap:wrap;gap:12px}.dcard{border:1px solid var(--rule);border-radius:6px;background:#fff;padding:8px;max-width:420px}.dcard.on{border-color:var(--ok)}.dcard img{display:block;max-width:400px;max-height:160px;border:1px solid var(--rule);border-radius:4px;margin-bottom:6px}.dmeta{font-size:12.5px}.dmeta .kind{font-weight:600}
.pill{white-space:nowrap}input.rdate{width:122px}td .tag{margin-left:2px}
.content table td.mono a.fname{word-break:break-all}

/* 归类卡 (CLASSIFICATION_DESIGN §5): a guess is grey with its tag, a person's choice is black; ⚠ asks */
select.cls{max-width:150px}select.cls.guess{color:var(--muted)}select.cls.ask{border-color:var(--amber)}
button.chip{font:inherit;font-size:11.5px;line-height:1.5;border:1px solid var(--rule);border-radius:9px;padding:0 8px;margin:0 1px;background:#fff;color:inherit;cursor:pointer}button.chip:hover{border-color:var(--amber)}button.chip.on{background:var(--amber);border-color:var(--amber);color:#3a2a00;font-weight:600}.clsbar{margin-bottom:4px}.clschips{margin:0 0 12px;display:grid;grid-template-columns:max-content 1fr;gap:5px 8px;align-items:baseline}.clschips .grp{display:contents}.clschips .grp .gk{color:var(--muted)}
.tag.warn{color:#7a4b00;border-color:var(--amber)}
.tbl.wide{overflow-x:auto}.tbl.wide td.fn{min-width:190px;max-width:250px}.tbl.wide td.cardc{white-space:nowrap;vertical-align:top}.tbl.wide .tags{margin-top:3px}.tbl.wide .tags .tag{margin-left:0;margin-right:2px}.tbl.wide td.fn a.fname{word-break:normal;overflow-wrap:anywhere}select.cls{max-width:118px}
/* the patient's own steps under 管理患者档案, only while on that patient's pages (owner 2026-09-18) */
.rail .sub{margin:0 0 6px 16px;border-left:1px solid var(--rule)}.rail .sub a{padding:6px 14px;font-size:12.5px}.rail .sub a.pcode{font-weight:600}.rail .sub a.off{color:var(--muted)}
/* 查看原件: one field per line, no header (owner 2026-09-18) — simple, and a new tag is just one more line */
.docs .doc{display:grid;grid-template-columns:112px 1fr;column-gap:14px;row-gap:5px;padding:10px 0 12px;border-top:1px solid var(--rule);align-items:center}
.docs .doc:first-child{border-top:0;padding-top:2px}
.docs .k{color:var(--muted);font-size:12.5px}.docs .v{min-width:0;font-size:13px}.docs .v .no{font-weight:600}
.docs .v.first{display:flex;align-items:center;justify-content:space-between;gap:10px}
.docs .v select.cls{max-width:180px}.docs .v select.cls.guess{color:var(--muted)}.docs .v .tag{margin-left:4px}
.docs .dates{grid-column:1 / -1;margin-top:4px}
button.tag{font:inherit;font-size:11px;line-height:1.5;background:#fff;cursor:pointer}button.tag:hover{border-color:var(--amber)}button.tag.on{background:#FFF9EC;border-color:var(--amber);color:#5C4200;font-weight:600}
.docs .dates.ev .dcard .dmeta{white-space:normal}button.tag.warn.on{background:#FFF3DF}
/* the card is display:grid, which beat the browser's own [hidden] rule — the chips hid nothing (owner 2026-09-18) */
[hidden]{display:none!important}
