:root{--red:#8a302e;--ink:#263331;--muted:#5d6963;--line:#e3e7e2;--bg:#f5f6f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 system-ui,-apple-system,"Microsoft YaHei",sans-serif}aside{width:218px;background:#203d38;position:fixed;inset:0 auto 0 0;padding:36px 22px;color:#fff}.brand{font-family:serif;font-size:30px;letter-spacing:5px;padding:0 12px 32px}.brand small{display:block;font:14px/2 system-ui;letter-spacing:3px;color:#b8ccc4}nav{display:grid;gap:8px}nav button{background:none;border:0;color:#d0ded8;text-align:left;padding:13px 16px;font-size:16px;border-radius:8px}nav button.active{background:#edf1e8;color:#203d38;font-weight:700}.aside-note{position:absolute;bottom:30px;color:#b9c8c2;font-size:13px}main{margin-left:218px;padding:32px 40px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--muted)}h1{margin:4px 0;font-size:30px;font-weight:650}h2{font-size:20px;margin:0}h3{font-size:17px;margin:0 0 10px}.head-actions{display:flex;gap:14px;align-items:end}label{display:block;font-size:14px;color:#52625d}button,input,select,textarea{font:inherit}button{cursor:pointer;background:#fff;border:1px solid var(--line);padding:9px 15px;border-radius:6px;color:var(--ink)}button:hover{filter:brightness(.96)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--red);outline-offset:2px}.primary{background:var(--red);border-color:var(--red);color:white}input,select,textarea{border:1px solid #ced7d0;border-radius:5px;padding:9px 11px;background:white;color:var(--ink);width:100%}textarea{min-height:105px;resize:vertical}.notice{background:#f1eadb;border-left:3px solid #b38a4a;padding:11px 16px;font-size:14px;color:#695331;margin-bottom:24px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:18px 22px}.stat span{font-size:14px;color:var(--muted)}.stat strong{display:block;font-size:30px;font-weight:600;margin-top:4px}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.filters{display:flex;gap:9px}.filters input{width:220px}.filters select{width:130px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:9px}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;background:#edf1ec;color:var(--muted);font-size:14px;font-weight:500}th,td{padding:16px;border-bottom:1px solid var(--line)}td small{display:block;font-size:13px;color:var(--muted)}td button{padding:5px 10px;font-size:14px;margin-right:4px}.badge{font-size:13px;padding:4px 9px;border-radius:4px;background:#edf2ee;color:#365f50}.badge.wait{background:#faf0dc;color:#8a6523}.badge.done{background:#f1f1f1;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{padding:22px;background:white;border:1px solid var(--line);border-radius:8px}.card p{color:var(--muted);margin:8px 0 16px}.card-top{display:flex;justify-content:space-between;gap:8px}.record{border-left:3px solid #b7c8bb;padding:8px 15px;margin:16px 0;background:#f7f9f6;white-space:pre-wrap}.meta{font-size:14px;color:var(--muted)}.empty{text-align:center;padding:55px;color:var(--muted)}footer{font-size:13px;color:var(--muted);margin:35px 0 0}footer span{display:block;font-size:12px}dialog{border:0;border-radius:12px;padding:26px;width:min(640px,94vw);max-height:90vh;color:var(--ink)}dialog::backdrop{background:#102d2870}.modal-head,.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.modal-actions{justify-content:flex-end;margin:22px 0 0}.modal-head #close{border:0;font-size:25px;padding:0 8px}#fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}#fields label.wide{grid-column:1/-1}#fields input,#fields select,#fields textarea{margin-top:5px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 22px;color:white;background:#203d38;border-radius:8px;display:none;z-index:10}.bar{height:9px;background:#edf1ec;border-radius:10px;margin-top:8px;overflow:hidden}.bar i{display:block;height:100%;background:#8a302e}.detail-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}button:disabled{opacity:.5;cursor:default}@media(max-width:1000px){main{padding:24px;margin-left:180px}aside{width:180px;padding:30px 12px}header{align-items:start;flex-direction:column}.stats{gap:9px}.stat{padding:14px}.section-head{align-items:start;flex-direction:column}}@media(max-width:650px){aside{position:static;width:100%;padding:14px}.brand{font-size:23px;padding:0 6px 8px;letter-spacing:3px}.brand small{display:inline;margin-left:12px;font-size:12px}nav{display:flex;overflow:auto;gap:5px}nav button{white-space:nowrap;padding:8px 12px;font-size:14px}.aside-note{display:none}main{margin:0;padding:19px 14px}h1{font-size:25px}.head-actions{width:100%;justify-content:space-between}.head-actions button{font-size:14px}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.filters{width:100%}.filters input{min-width:0;flex:1}.filters select{width:110px}#fields{grid-template-columns:1fr}#fields label{grid-column:1/-1}th,td{padding:12px}.eyebrow{font-size:11px}header{gap:12px}.notice{font-size:13px}}
.filter-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;padding:18px;background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:16px;align-items:end}.filter-panel label{min-width:0}.filter-panel input,.filter-panel select{margin-top:5px;min-width:0}.mini-stats{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.mini-stats>div{background:white;padding:13px 18px;border:1px solid var(--line);border-radius:7px;flex:1;min-width:140px}.mini-stats span{display:block;font-size:13px;color:var(--muted)}.mini-stats b{font-size:23px}.wide{grid-column:1/-1}.grid .table-wrap{border:0}.grid td,.grid th{padding:10px} @media(max-width:650px){.filter-panel{grid-template-columns:1fr 1fr}.mini-stats>div{min-width:120px}.mini-stats b{font-size:20px}}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.actions input{max-width:240px}aside{overflow-y:auto;padding-top:24px}nav{gap:3px}nav button{padding:9px 13px}.aside-note{position:static;margin-top:26px}.brand{padding-bottom:18px}.stats{display:block;margin-bottom:22px}.stats .mini-stats{margin:0}.member-panel{background:#eef3ef;border:1px solid #d6e1d7;border-radius:8px;padding:16px;margin-bottom:18px}.member-panel p{margin:7px 0 12px;color:#355148}.member-panel strong{font-size:22px}.card-chips{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.card-chip{padding:10px 14px;background:white;border:1px solid #d9e2da;border-radius:6px}.card-chip small{display:block;color:var(--muted);font-size:14px}.card-chip button{padding:4px 9px;margin:6px 5px 0 0;font-size:14px}.subform{display:grid;grid-template-columns:1fr 1fr;gap:15px}.photo-grid{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.photo-grid img{width:140px;height:120px;object-fit:contain;background:#f0f2ef}.photo{padding:6px}.photo small{display:block;max-width:150px;white-space:normal}.photo-draft{width:170px;padding:10px;border:1px solid var(--line);border-radius:7px}.photo-draft input{font-size:14px}.photo-draft img{max-width:100%}.lookup-card{border:1px solid var(--line);padding:15px;border-radius:6px;margin-bottom:10px}.wrap-text{white-space:pre-wrap;overflow-wrap:anywhere;display:block;min-width:150px;max-width:650px}.record h4{margin:12px 0 5px;font-size:15px}.record{white-space:pre-wrap;overflow-wrap:anywhere}.card .member-panel{padding:12px}.card .actions button{font-size:14px;padding:7px 10px}dialog{width:min(800px,94vw)}#lightbox{width:min(1050px,95vw)}#lightbox img{max-width:100%;max-height:75vh;object-fit:contain}#lightbox-close{float:right;font-size:24px}#fields .notice{margin:0}#content>h3{margin:20px 0 12px}@media(max-width:650px){.subform{grid-template-columns:1fr}.head-actions{flex-wrap:wrap}.head-actions label{flex:1}.photo-draft{width:calc(50% - 6px)}.filter-panel{grid-template-columns:1fr 1fr}.member-panel .actions{gap:6px}.member-panel strong{font-size:20px}}@media(min-width:1001px){.grid .card:has(table){grid-column:1/-1}}
#login-panel{display:none;min-height:100vh;align-items:center;justify-content:center;padding:24px}#login-form{width:min(100%,420px);display:grid;gap:20px}#login-form input{width:100%;margin-top:8px}body.signed-out>aside,body.signed-out>main{display:none}body.signed-out #login-panel{display:flex}#login-error{color:#8a302e}#role{max-width:220px}#role:disabled{color:#263837;opacity:1}@media(max-width:700px){.head-actions{flex-wrap:wrap}.head-actions button{min-height:44px}.section-head{flex-wrap:wrap}.modal-actions{position:sticky;bottom:0;background:white}.table-wrap{max-width:100%;overflow-x:auto}}

/* Keep form feedback and actions inside the native dialog top layer. */
#dialog{padding:0;overflow:hidden;max-height:90vh;max-height:90dvh}#dialog[open]{display:flex}#form{display:flex;flex-direction:column;min-height:0;width:100%;max-height:90vh;max-height:90dvh}#form .modal-head{flex:none;margin:0;padding:18px 24px;border-bottom:1px solid var(--line)}#fields{overflow:auto;min-height:0;padding:20px 24px;overscroll-behavior:contain}#form .modal-actions{position:static;flex:none;margin:0;padding:12px 24px;border-top:1px solid var(--line);background:white}#form-error{flex:none;max-height:20vh;overflow:auto;margin:0;padding:10px 24px;color:#8a302e;background:#fff0ee;border-top:1px solid #e6b8b4;overflow-wrap:anywhere}

.mini-stats>.stat-link{background:white;padding:13px 18px;border:1px solid var(--line);border-radius:7px;flex:1;min-width:140px;text-align:left;color:var(--ink)}.mini-stats>.stat-link:hover{background:#eef3ef;border-color:#8fa79e}.mini-stats>.stat-link:focus-visible{outline:3px solid var(--red);outline-offset:2px}@media(max-width:650px){.mini-stats>.stat-link{min-width:120px}}

.batch-line{border:1px solid #ced9d3;border-radius:10px;padding:18px;margin-bottom:16px}.batch-line h3{margin-top:0}#batch-lines{min-width:0}

[hidden]{display:none!important}

.badge.danger{background:#fce8e6;color:#b3261e;font-weight:700}.count-badge{display:inline-flex;background:#b3261e;color:#fff;border-radius:12px;min-width:22px;justify-content:center;padding:1px 6px;margin-left:5px;font-size:12px}.changed-value{color:#b3261e;background:#fff0e9;padding:3px}.record .photo-grid img{max-width:100%;max-height:220px}.record p{white-space:pre-wrap}.notice[hidden]{display:none}#reconcile-result .table-wrap{max-height:520px;overflow:auto}#dirty-hint{margin:0 24px;padding:8px}

@media(min-width:901px){aside{display:flex;flex-direction:column}aside nav{overflow:auto;min-height:0;flex:1;align-content:start}aside .brand{flex:none}aside .aside-note{position:static;flex:none;margin-top:18px}}
/* Width is owned by the viewport rather than the longest table cell. */
main,#content,.card,.section-head,.actions,.table-shell{min-width:0;max-width:100%}body{overflow-x:hidden}.table-wrap{width:100%;max-width:100%;overflow-x:auto;touch-action:pan-x pan-y;scrollbar-width:auto;scrollbar-color:#7b9286 #eef2ee;position:relative}.table-wrap table{min-width:100%;width:max-content;table-layout:auto}.table-wrap th,.table-wrap td{white-space:normal;overflow-wrap:anywhere;max-width:280px;min-width:92px}.table-wrap td small{white-space:normal;overflow-wrap:anywhere}.table-wrap td button{display:inline-block;margin:3px 3px 3px 0;white-space:nowrap}.table-wrap .operation-col{position:sticky;right:0;min-width:110px;max-width:150px;width:150px;background:#fff;box-shadow:-3px 0 6px #203d3812;z-index:1}.table-wrap th.operation-col{background:#edf1ec;z-index:2}.date-time{display:block;white-space:normal;min-width:92px}.date-time small{display:block}.table-scroll-controls{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:0 0 8px 8px;background:white}.table-scroll-controls label{flex:1;text-align:center;font-size:12px}.table-scroll-controls input{display:block;padding:0;height:20px;accent-color:#8a302e}.table-scroll-controls button{padding:4px 12px}.icp{display:block;color:var(--muted);font-size:13px;margin-top:10px}.treatment-date-actions{display:flex;align-items:end;gap:10px}.treatment-date-actions input{min-width:165px}.previous-plan{background:#eef3ef;border:1px solid #d6e1d7;padding:12px;border-radius:8px}.previous-plan p{margin:5px 0}.mini-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.mini-stats>.stat-link{min-width:0}#content .wrap-text{min-width:0}#dialog #fields{min-width:0}
@media(max-width:650px){.table-wrap th,.table-wrap td{padding:9px 8px;font-size:14px;min-width:76px;max-width:160px}.table-wrap .operation-col{position:static;width:auto;min-width:105px;box-shadow:none}.date-time{min-width:86px;font-size:13px}.treatment-date-actions{display:grid;grid-template-columns:1fr;width:100%;gap:8px}.treatment-date-actions button{justify-self:start}.section-head>.actions,.treatment-date-actions label{width:100%}.head-actions label{min-width:140px}.mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-stats>.stat-link{padding:12px}.photo-draft{min-width:0}.detail-tabs button{font-size:14px}#dialog{width:96vw}#fields{padding:16px}.table-scroll-controls{position:relative}.table-scroll-controls label{min-width:0}header h1 .meta{display:block;overflow-wrap:anywhere} }
.work-scope,.finance-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 16px}.work-scope .meta{font-size:13px}html{width:100%;max-width:100%;overflow-x:clip}body{width:100%;max-width:100%}input,select,textarea{min-width:0}#dialog img,.photo-grid img{max-width:100%}@media(max-width:650px){input,select,textarea{font-size:16px}header,.head-actions,.filter-panel,.subform{min-width:0}#dialog{max-width:96vw}.work-scope .meta{flex-basis:100%}}

#fields input[type="checkbox"]{width:20px;height:20px;vertical-align:middle;margin:0 8px 0 0;accent-color:var(--red)}#follow-revisit-fields{border:1px solid var(--line);padding:14px;border-radius:8px}
.rx-line{display:grid;grid-template-columns:minmax(0,2fr) minmax(70px,1fr) auto;gap:8px;align-items:end;margin:10px 0}.rx-line input{width:100%;min-width:0}.rx-summary{margin-top:16px;border-top:1px solid #ddd;padding-top:10px}.rx-print-frame{width:100%;height:510px;border:1px solid #ccc;background:white;margin-top:12px}@media(max-width:600px){.rx-line{grid-template-columns:minmax(0,1fr) 85px}.rx-line button{grid-column:1/-1;justify-self:end}.rx-print-frame{height:360px}}

/* Compact per-herb preparation; legacy combinations remain visible under Other. */
#rx-editor .rx-line{grid-template-columns:minmax(0,2fr) minmax(60px,.7fr) minmax(82px,1fr) auto;gap:6px;margin:5px 0}#rx-editor .rx-line>label{min-width:0;font-size:12px}#rx-editor .rx-line input,#rx-editor .rx-line select{width:100%;min-width:0;padding:6px}#rx-editor .rx-line>button{grid-column:auto;padding:6px;align-self:end}.rx-preparation-detail{grid-column:1/-1;padding:4px 0}.rx-preparation-detail[hidden]{display:none}.rx-preparation-detail textarea{width:100%;min-height:48px}.rx-preparation-existing{display:block;font-size:12px;color:#735323}.rx-preparation-existing:empty{display:none}@media(max-width:600px){#rx-editor .rx-line{grid-template-columns:minmax(0,1fr) 52px 78px 38px;gap:4px}#rx-editor .rx-line>button{grid-column:auto;padding:6px 2px;font-size:12px}#rx-editor .rx-line input,#rx-editor .rx-line select{font-size:14px;padding:6px 3px}}
.dr-drugs span{overflow-wrap:anywhere}

#fields #rx-editor .rx-line>label{grid-column:auto;font-size:12px;line-height:18px;gap:2px}#fields #rx-editor .rx-line input:not([type=checkbox]),#fields #rx-editor .rx-line select{height:34px;min-height:34px;font-size:14px}#rx-editor .rx-line>button{height:34px;min-height:34px}

#fields #rx-editor .rx-usage-fields{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,1fr);align-items:start}#fields #rx-editor .rx-usage-fields>label{display:grid;grid-template-rows:20px 44px;gap:5px;margin:0}#fields #rx-editor .rx-usage-fields input,#fields #rx-editor .rx-usage-fields select{height:44px;min-width:0}@media(max-width:600px){#fields #rx-editor .rx-usage-fields{grid-template-columns:1fr}}
