/* 苹果03 V4：电脑端固定宽度 1440 设计；三栏工作台；病历与处方同页核对。只作用于电脑端（html.v4-on:not(.is-mobile)）。 */
html.v4-on:not(.is-mobile) body { min-width: 1440px; overflow-x: auto; }
html.v4-on .tb-temp-plan, html.v4-on .sb-temp-plan { display: none !important; }
html.v4-on:not(.is-mobile) .app[data-view="desk"] .main-scroll { padding: 16px; overflow: hidden; }
html.v4-on:not(.is-mobile) .app[data-view="desk"] #dock-fab-wrap { display: none; }
.v4-crumb-pt { display: inline-block; margin-left: 8px; padding: 1px 10px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 14px; font-weight: 600; }
.v4-desk { display: grid; grid-template-columns: 240px minmax(0, 1fr) 320px; gap: 14px; height: calc(100vh - 56px - 32px); min-height: 640px; }
.v4-desk.review { grid-template-columns: 76px minmax(0, 1fr); }
.v4-col { background: var(--surface); border-radius: var(--r-l); box-shadow: var(--sh-1); padding: 14px; display: flex; flex-direction: column; min-height: 0; overflow-y: auto; }
.v4-col-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.v4-col-h .title-m { margin: 0; font-size: 17px; }
.v4-sub { display: inline-block; margin-left: 6px; font-size: 14px; font-weight: 600; color: var(--accent); background: var(--accent-soft); border-radius: 999px; padding: 1px 8px; vertical-align: middle; }
.v4-spacer { flex: 1; }
.btn.sm { min-height: 36px; padding: 0 12px; font-size: 14px; }
.v4-chip-btn { border: 1px solid #f0d58a; background: #fff8e1; color: #6b4e00; border-radius: 999px; padding: 6px 12px; font-size: 14px; font-weight: 600; text-align: left; margin-bottom: 8px; min-height: 36px; }
.v4-selfreg { border: 1px solid var(--line); border-radius: var(--r-m); padding: 8px; margin-bottom: 8px; display: grid; gap: 8px; }
.v4-sr-item p { margin: 0 0 2px; font-size: 14px; }
.v4-q-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; flex: 1; align-content: start; }
.v4-q-row { width: 100%; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 6px; padding: 10px 8px; border: 0; border-radius: var(--r-s); background: transparent; text-align: left; min-height: 48px; font-size: 15px; }
.v4-q-row:hover { background: rgba(0,0,0,.04); }
.v4-q-row.on { background: var(--accent-soft); }
.v4-q-no { color: var(--text-2); font-variant-numeric: tabular-nums; font-size: 14px; }
.v4-q-name { display: flex; flex-direction: column; min-width: 0; }
.v4-q-name small { color: var(--text-2); font-size: 14px; }
.v4-q-st { font-size: 14px; padding: 2px 8px; border-radius: 999px; background: var(--fill); color: var(--text-2); white-space: nowrap; }
.v4-q-st.on { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.v4-q-st.warn { background: #fff4d6; color: #7a5300; }
.v4-q-st.crit { background: #fde4e1; color: #a1271b; font-weight: 600; }
.v4-q-st.done { background: #e3f5e8; color: #1d6b35; }
.v4-q-foot { margin-top: 10px; }
.v4-next { width: 100%; min-height: 56px; font-size: 18px; border-radius: 12px; }
.v4-queue.narrow { padding: 10px 6px; align-items: stretch; gap: 6px; }
.v4-q-h { font-size: 14px; color: var(--text-2); text-align: center; margin: 0 0 4px; }
.v4-q-mini { border: 0; background: transparent; border-radius: var(--r-s); padding: 8px 2px; display: flex; flex-direction: column; align-items: center; min-height: 52px; }
.v4-q-mini b { font-size: 16px; }
.v4-q-mini small { font-size: 14px; color: var(--text-2); }
.v4-q-mini.on { background: var(--accent-soft); color: var(--accent); }
.v4-center { display: flex; flex-direction: column; gap: 10px; min-height: 0; min-width: 0; overflow-y: auto; padding-bottom: 2px; }
.v4-head { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; background: var(--surface); border-radius: var(--r-l); box-shadow: var(--sh-1); padding: 12px 16px; }
.v4-pt { font-size: 18px; }
.v4-allergy { background: #fdecea; color: #a1271b; border-radius: 6px; padding: 3px 10px; font-size: 14px; font-weight: 600; }
.v4-allergy.unk { background: #fff4d6; color: #7a5300; }
.v4-tag { background: var(--fill); border-radius: 6px; padding: 3px 10px; font-size: 14px; color: var(--text-2); }
.v4-steps { display: flex; align-items: center; gap: 8px; background: var(--surface); border-radius: var(--r-l); box-shadow: var(--sh-1); padding: 10px 16px; }
.v4-step { padding: 6px 12px; border-radius: 999px; background: var(--fill); color: var(--text-2); font-size: 14px; font-weight: 600; }
.v4-step.on { background: var(--accent-soft); color: var(--accent); }
.v4-step.done { background: #e3f5e8; color: #1d6b35; }
.v4-arrow { color: var(--text-2); }
.v4-card { margin: 0; }
.v4-card .title-m { font-size: 17px; margin: 0 0 10px; }
.v4-live { width: 100%; font-size: 16px; min-height: 96px; }
.v4-pv-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.v4-pv { border: 1px solid var(--line); border-radius: var(--r-m); padding: 10px; min-height: 92px; display: flex; flex-direction: column; gap: 4px; }
.v4-pv-k { font-weight: 600; font-size: 14px; }
.v4-pv-v { font-size: 14px; }
.v4-bar { position: sticky; bottom: 0; z-index: 3; display: flex; align-items: center; gap: 10px; background: var(--surface); border-radius: var(--r-l); box-shadow: var(--sh-2); padding: 12px 16px; margin-top: auto; }
.v4-recdot { width: 10px; height: 10px; border-radius: 50%; background: #d33; display: inline-block; }
.v4-left { font-size: 15px; color: var(--text-2); }
.v4-left.alert { color: #a1271b; font-weight: 600; }
.v4-left.ok { color: #1d6b35; font-weight: 600; }
.v4-review { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 12px; align-items: start; }
.v4-fld { margin-bottom: 8px; }
.v4-fld label { font-size: 14px; font-weight: 600; color: var(--text-2); }
.v4-fld textarea { width: 100%; font-size: 15px; }
.v4-dx { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; border: 2px solid var(--accent); border-radius: var(--r-m); padding: 10px 12px; background: #f6faff; }
.v4-dx b { font-size: 16px; }
.v4-dx .src { width: 100%; order: 3; margin: 0; }
.v4-dx.ok { border-color: #2f9e57; background: #f1fbf4; }
.v4-dx.empty { border-style: dashed; border-color: var(--line-strong); background: var(--surface); }
.v4-ok { color: #1d6b35; font-weight: 600; background: #e3f5e8; border-radius: 999px; padding: 4px 10px; font-size: 14px; }
.v4-rxdoc { border: 1px solid var(--line-strong); border-radius: var(--r-m); padding: 12px; }
.v4-rxdoc-h { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.v4-rxdoc-t { font-size: 18px; letter-spacing: 2px; }
.v4-rx-table table { font-size: 14px; }
.v4-rx-table td { vertical-align: middle; }
.v4-rx-name { display: inline-flex; align-items: center; gap: 6px; }
.v4-cell { border: 1px solid transparent; background: transparent; border-radius: 6px; padding: 4px 6px; font-size: 14px; text-align: left; min-height: 36px; color: var(--text); }
.v4-cell:hover { border-color: var(--line-strong); background: var(--fill); }
.v4-rx-row.st-none td:first-child, .v4-rx-row.st-short td:first-child { }
.v4-day { display: inline-flex; align-items: center; border: 1px solid var(--line-strong); border-radius: 8px; overflow: hidden; }
.v4-day.need { border-color: #e0a100; box-shadow: 0 0 0 2px #fff1c2; }
.v4-day-b { width: 34px; min-height: 36px; border: 0; background: var(--fill); font-size: 16px; }
.v4-day-in { width: 52px; min-height: 36px; border: 0; text-align: center; font-size: 15px; -moz-appearance: textfield; }
.v4-day-in::-webkit-outer-spin-button, .v4-day-in::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.v4-qty { white-space: nowrap; }
.v4-days-all { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.v4-days-all .src { margin: 0; }
.v4-others { margin-top: 10px; display: grid; gap: 6px; }
.v4-other { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.v4-checks { margin-top: 10px; display: grid; gap: 6px; }
.v4-chk { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; border: 1px solid var(--line); border-radius: var(--r-m); padding: 8px 10px; background: var(--surface); font-size: 14px; text-align: left; width: 100%; color: var(--text); min-height: 44px; }
.v4-chk.allergy { background: #fff8e1; border-color: #f0d58a; }
.v4-chk.allergy.done { background: #f3faf5; border-color: #bfe3cb; }
.v4-chk.over { background: #fff1eb; border-color: #f3c4ae; }
.v4-chk.done { opacity: .9; }
.v4-chk-tag { font-weight: 700; font-size: 14px; padding: 2px 8px; border-radius: 6px; background: rgba(0,0,0,.06); }
.v4-chk-t { flex: 1; min-width: 200px; }
.v4-chk-act { display: inline-flex; gap: 6px; }
.v4-chk-in { width: 100%; display: flex; gap: 8px; }
.v4-chk-in input { flex: 1; min-height: 36px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 10px; }
.v4-chk .vf-box { width: 20px; height: 20px; border: 2px solid var(--line-strong); border-radius: 5px; display: inline-grid; place-items: center; font-size: 14px; color: #fff; }
.v4-chk.done .vf-box { background: #2f9e57; border-color: #2f9e57; }
.v4-auto { border: 1px solid #bfe3cb; background: #f3faf5; border-radius: var(--r-m); padding: 8px 10px; font-size: 14px; }
.v4-auto summary { cursor: pointer; color: #1d6b35; font-weight: 600; }
.v4-route { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 14px; padding: 4px 2px; }
.v4-route .label { margin: 0; }
.v4-route-i.miss { color: #8a3b00; display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.v4-skip { border: 1px solid var(--line-strong); background: var(--surface); border-radius: 999px; padding: 4px 10px; font-size: 14px; min-height: 32px; }
.v4-skip.on { background: #e3f5e8; border-color: #2f9e57; color: #1d6b35; }
.v4-add { margin-top: 10px; }
.v4-rec .voice-line { font-size: 14px; }
.v4-right .label { margin-top: 8px; }
.v4-today { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.v4-num { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-m); padding: 10px 8px; display: flex; flex-direction: column; align-items: flex-start; min-height: 64px; }
.v4-num b { font-size: 22px; }
.v4-num span { font-size: 14px; color: var(--text-2); }
.v4-vit { width: 100%; border: 1px solid var(--line); border-left: 4px solid #e9b6a3; background: var(--surface); border-radius: var(--r-s); padding: 8px 10px; text-align: left; display: grid; gap: 2px; margin-bottom: 6px; font-size: 14px; }
.v4-vit.grade-4 { border-left-color: #b03a2e; } .v4-vit.grade-3 { border-left-color: #e07a5f; } .v4-vit.grade-2 { border-left-color: #f2b880; }
.v4-vit small { color: var(--text-2); font-size: 14px; }
.v4-rcpt { display: grid; gap: 8px; }
.v4-rcpt-row { display: grid; grid-template-columns: 12px 56px minmax(0, 1fr); align-items: start; gap: 6px 8px; border-bottom: 1px solid var(--line); padding: 8px 0; font-size: 14px; }
.v4-rcpt-row .btn { grid-column: 3; justify-self: start; }
.v4-rcpt-row.muted { color: var(--text-2); }
.v4-dot { width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; }
.v4-dot.ok { background: #2f9e57; } .v4-dot.wait { background: #e0a100; }
.v4-alldone { margin-top: 12px; border: 1px solid #bfe3cb; background: #f3faf5; color: #1d6b35; border-radius: var(--r-m); padding: 10px; font-weight: 600; font-size: 14px; }
.v4-rxmini .table-card table { font-size: 14px; }
.v4-modal-back { position: fixed; inset: 0; background: rgba(0,0,0,.28); z-index: 80; }
.v4-modal { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 560px; max-width: 92vw; background: var(--surface); border-radius: var(--r-l); box-shadow: var(--sh-3); padding: 20px 22px; z-index: 81; }
.v4-modal .dc-row { display: flex; gap: 10px; font-size: 15px; margin: 6px 0; }
.v4-modal .dc-row b { min-width: 72px; }
.v4-modal .actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; }
.v4-zoom { position: fixed; right: 16px; bottom: 16px; z-index: 90; display: inline-flex; background: var(--surface); border-radius: 999px; box-shadow: var(--sh-2); overflow: hidden; }
.v4-zoom button { border: 0; background: transparent; min-width: 40px; min-height: 40px; font-size: 16px; padding: 0 10px; }
.v4-zoom button:hover { background: var(--fill); }
html.v4-on:not(.is-mobile) #dock-fab-wrap { right: 160px; }
html.is-mobile .v4-zoom { display: none; }
/* 多人、社区版 */
.v4-login { display: grid; grid-template-columns: 420px 60px 440px; justify-content: center; align-items: center; gap: 16px; padding-top: 48px; }
.v4-login-card { background: var(--surface); border-radius: var(--r-l); box-shadow: var(--sh-2); padding: 24px; }
.v4-login-card h1 { font-size: 24px; margin: 4px 0 14px; }
.v4-login-step { color: var(--accent); font-weight: 700; font-size: 14px; }
.v4-acc { width: 100%; display: flex; justify-content: space-between; align-items: center; border: 1px solid var(--line); border-radius: var(--r-m); padding: 10px 12px; margin-bottom: 8px; background: var(--surface); text-align: left; min-height: 52px; font-size: 15px; }
.v4-acc.on { border-color: var(--accent); background: var(--accent-soft); }
.v4-acc small { color: var(--text-2); font-size: 14px; }
.v4-acc[disabled] { opacity: .55; }
.v4-login-arrow { text-align: center; color: var(--accent); font-weight: 600; font-size: 14px; }
.v4-grp-h { font-size: 14px; font-weight: 700; color: var(--text-2); margin: 10px 0 6px; }
.v4-page { display: grid; gap: 14px; }
.v4-two { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.v4-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.v4-item { border: 1px solid var(--line); border-radius: var(--r-m); padding: 12px; margin-bottom: 10px; background: var(--surface); }
.v4-item p { margin: 0 0 4px; font-size: 14px; }
.v4-item .actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.v4-kind { display: inline-block; font-size: 14px; font-weight: 700; border-radius: 6px; padding: 2px 8px; background: #e8f5ec; color: #1d6b35; margin-right: 6px; }
.v4-kind.blue { background: var(--accent-soft); color: var(--accent); } .v4-kind.warn { background: #fff4d6; color: #7a5300; } .v4-kind.red { background: #fde4e1; color: #a1271b; }
.v4-tl { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--line); }
.v4-tl li { position: relative; padding: 4px 0 10px 8px; font-size: 14px; }
.v4-tl li::before { content: ""; position: absolute; left: -20px; top: 9px; width: 10px; height: 10px; border-radius: 50%; background: var(--line-strong); }
.v4-tl li.on::before { background: #2f9e57; }
.v4-crit { display: flex; align-items: center; gap: 10px; border: 1px solid #f3b4ad; background: #fff1ef; border-radius: var(--r-l); padding: 10px 14px; font-size: 14px; }
.v4-crit b { color: #a1271b; }
.v4-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.v4-tabs .btn.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.v4-mat td, .v4-mat th { text-align: center; } .v4-mat td:first-child, .v4-mat th:first-child { text-align: left; }
.v4-mat .na { color: var(--text-2); opacity: .5; }
.v4-sbnote { font-size: 14px; color: var(--text-2); padding: 6px 12px; }
.v4-input { min-height: 40px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 10px; font-size: 15px; }
.v4-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.v4-big { font-size: 28px; font-weight: 700; }
.v4-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.v4-nums .v4-num { min-height: 76px; }
.v4-dept-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.v4-dept { display: flex; justify-content: space-between; align-items: center; border: 0; background: var(--fill); border-radius: var(--r-s); padding: 10px; font-size: 14px; min-height: 44px; }
.v4-dept b { color: var(--accent); } .v4-dept.red b { color: #a1271b; }
.v4-desk.review .v4-bar { padding-right: 170px; }
.v4-rx-table td, .v4-rx-table th { white-space: nowrap; padding-left: 6px; padding-right: 6px; }
.v4-rx-table td:first-child { white-space: normal; min-width: 150px; }
.v4-record .v4-dx { margin-bottom: 12px; }
.v4-fld textarea { min-height: 0; }
.v4-pager { display: flex; align-items: center; gap: 8px; margin: 8px 0; color: #5b6472; font-size: 14px; }
.v4-pager span { margin-right: auto; }
