:root{--green:#146a5b;--green2:#0c4c43;--mint:#e9f5ef;--text:#213438;--sub:#657879;--stroke:#dde8e4;--bg:#f6f9f7;--white:#fff;--red:#ad4946;--shadow:0 8px 28px rgba(21,80,65,.045)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei", "Noto Sans CJK SC",sans-serif;line-height:1.55;background:var(--bg)}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.3;letter-spacing:-.5px}h2{font-size:18px;line-height:1.4}h3{font-size:16px}.small{font-size:13px}.muted{color:var(--sub)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:#6d9788}.required{color:var(--red)}.mono{font-family:ui-monospace,monospace;word-break:break-all}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.inline-form{display:inline}.as-button{border:0;background:none}.site-header{background:var(--white);border-bottom:1px solid var(--stroke)}.header-inner{max-width:1140px;margin:auto;padding:17px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:11px;color:var(--green2);font-size:20px;font-weight:850}.brand:hover{text-decoration:none}.brand-light{font-weight:500;color:#6c9489}.brand-mark,.login-symbol,.patient-symbol{display:grid;place-items:center;color:white;background:var(--green);border-radius:11px;width:37px;height:37px;font-size:24px;font-weight:800}.header-nav{display:flex;gap:23px;align-items:center}.nav-link{font-size:13px;color:#536962;font-weight:650}.container{max-width:1140px;margin:auto;padding:35px 24px 70px;min-height:calc(100vh - 150px)}.footer{text-align:center;color:#98aaa3;padding:22px;font-size:12px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.page-head h1{margin:7px 0}.page-head p{margin:0}.btn{border:1px solid transparent;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;padding:11px 17px;font-weight:700;font-size:14px;white-space:nowrap;transition:background .14s,transform .14s;text-decoration:none}.btn:hover{text-decoration:none}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green2)}.btn-secondary{background:#eff7f3;color:var(--green2);border-color:#d5e8df}.btn-secondary:hover{background:#e0f1e9}.btn-quiet{background:#fff;color:#617d72;border-color:#dce8e3}.btn-quiet:hover{background:#f6f9f7}.btn-danger{background:#fff2f1;color:var(--red);border-color:#f3c6c3}.btn-warning{background:#fff5df;color:#815c21;border-color:#edd9ae}.btn-small{font-size:12px;padding:8px 11px;border-radius:8px}.btn-block{display:flex;width:100%;margin-top:10px}.panel,.stat{background:var(--white);border:1px solid var(--stroke);border-radius:17px;box-shadow:var(--shadow)}.panel{padding:25px;margin-bottom:20px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.section-head h2{margin:0}.section-head p{margin:5px 0 0}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:21px}.stat{padding:21px 23px;display:flex;flex-direction:column;gap:5px}.stat-label{font-size:13px;color:var(--sub);font-weight:650}.stat strong{font-size:34px;line-height:1.3;color:#16483c}.search-form{display:flex;gap:11px;margin-bottom:17px}.search-form input{flex:1;min-width:180px}.search-form select{width:190px}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.data-table th{padding:13px 11px;background:#f7faf8;font-size:12px;font-weight:700;color:#6b7e77}.data-table td{padding:18px 11px;border-bottom:1px solid #edf1ee;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.topic-name{font-weight:750;margin-bottom:3px}.pill{display:inline-flex;padding:4px 11px;border-radius:30px;font-size:12px;font-weight:650;white-space:nowrap}.pill-success{background:#e9f8ed;color:#237545}.pill-draft{background:#f2f2f0;color:#798078}.subtle{background:#eff5f1;color:#759386}.actions{display:flex;gap:7px}.tip{color:#668177;font-size:13px;padding:4px 5px}.empty{text-align:center;padding:60px 15px}.empty.compact{padding:20px}.empty-icon{font-size:38px;color:#7caf98}.breadcrumb{font-size:13px;color:#758c82;margin:0 0 20px}.content-columns{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.form-panel{margin-bottom:0}.form-stack{display:flex;flex-direction:column;gap:11px}.form-stack label,.replacement-form label{font-size:13px;font-weight:750}.form-stack input,.form-stack select,.form-stack textarea,.search-form input,.search-form select,.replacement-form input{width:100%;border:1px solid #d5e3da;background:#fff;border-radius:9px;outline:none;color:#223a32;padding:11px 13px;min-height:43px}.form-stack :is(input,textarea):focus,.search-form :is(input,select):focus{border-color:#69a893;box-shadow:0 0 0 3px #e3f2e9}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid>div{display:flex;flex-direction:column;gap:9px}.helper{font-size:12px;color:#789085;margin:-4px 0 7px}.readonly-value{font-size:13px;color:var(--green);background:#f2f9f6;padding:12px;border:1px solid #d5e8de;border-radius:8px}.sidebar-stack .panel h2{margin-bottom:13px}.sidebar-stack .panel p{margin-bottom:14px}.divider{border-top:1px solid var(--stroke);margin:17px 0}.files-panel{margin-top:20px}.upload-box{border:2px dashed #b9d9c8;border-radius:13px;background:#f9fcfa;padding:22px;display:flex;flex-direction:column;gap:13px}.upload-label{display:flex;align-items:center;flex-direction:column;gap:5px;text-align:center;cursor:pointer}.upload-symbol{font-size:31px;color:var(--green)}.upload-box input[type=file]{max-width:440px;align-self:center}.selected-file-list{font-size:12px;color:#668177;overflow-wrap:anywhere}.upload-box>.btn{align-self:center}.doc-list{padding-top:17px}.doc-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-bottom:1px solid #edf2ef;flex-wrap:wrap}.doc-row:last-child{border:0}.doc-icon,.patient-file-icon{background:#ebf5f0;color:var(--green);border-radius:10px;width:49px;height:49px;display:grid;place-items:center;font-weight:850;flex-shrink:0;font-size:13px}.doc-info{flex:1;min-width:200px;overflow-wrap:anywhere}.doc-actions{display:flex;gap:7px}.doc-details{width:100%;border-top:1px dashed #e1eae5;padding-top:8px;font-size:13px}.doc-details summary{cursor:pointer;color:#66877a}.doc-details-body{display:flex;align-items:end;gap:14px;flex-wrap:wrap;padding:10px 0}.replacement-form{display:flex;align-items:end;gap:10px;flex:1;flex-wrap:wrap}.replacement-form input{width:min(320px,100%)}.notice{padding:13px 16px;border-radius:10px;border:1px solid #cfebdd;background:#eefaed;color:#356c50;font-size:14px;margin-bottom:20px}.notice-error{background:#fff1ef;border-color:#f2cbc6;color:#934b48}.notice-soft{background:#f4f9f6;margin-top:23px;font-size:12px}.qr-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;max-width:940px;margin:auto;align-items:start}.qr-card{background:#fff;border:1px solid var(--stroke);border-radius:20px;padding:43px 30px;text-align:center}.qr-header h1{font-size:21px;margin:9px 0}.qr-header h2{font-size:27px;line-height:1.35;margin:12px 0}.qr-holder{width:min(100%,354px);padding:16px;margin:24px auto 13px;border:1px solid var(--stroke);border-radius:18px}.qr-large{width:100%;height:auto;display:block;image-rendering:auto}.qr-footnote{font-weight:750;color:var(--green2)}.qr-printed-url{font-size:11px;color:#82978d;overflow-wrap:anywhere}.qr-side{background:#fff;border:1px solid var(--stroke);border-radius:17px;padding:24px}.qr-side h2{margin-bottom:16px}.qr-side .pill{margin-bottom:14px}.qr-side p{margin-bottom:24px}.login-body{background:radial-gradient(circle at 15% 20%,#e6f7ed,#f6f9f7 55%,#eaf5f3)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:22px}.login-card{width:min(100%,450px);background:#fff;border:1px solid var(--stroke);border-radius:20px;box-shadow:0 22px 70px rgba(29,87,69,.1);padding:43px}.login-symbol{width:50px;height:50px;font-size:30px;margin-bottom:20px}.login-card h1{margin:7px 0}.login-card>.muted{margin-bottom:30px}.login-card label{margin-top:7px}.login-note{font-size:12px;text-align:center;color:#83968d;margin:25px 0 0}
.patient-body{background:#f5f8f6}.patient-header{background:#fff;border-bottom:1px solid #e4eee8}.patient-header-inner{max-width:780px;margin:auto;padding:15px 23px;display:flex;align-items:center;gap:11px}.patient-symbol{width:38px;height:38px}.patient-hospital{font-size:16px;color:#21594b;font-weight:850}.patient-brand{font-size:11px;color:#90a29b}.patient-main{max-width:780px;margin:26px auto 45px;padding:0 20px}.patient-hero,.patient-files,.patient-guidance{border:1px solid #e0ebe4;border-radius:17px;background:white;box-shadow:var(--shadow);padding:26px;margin-bottom:15px}.patient-hero{background:linear-gradient(145deg,#f8fffa,#fff 62%);border-top:4px solid #4d9c75}.patient-kicker{font-size:11px;font-weight:800;color:#4a9870;letter-spacing:1.4px}.patient-hero h1{font-size:28px;margin:12px 0 14px;line-height:1.4}.patient-description{white-space:pre-line;color:#506961;margin:14px 0 0}.patient-audience{color:#657f72;font-size:13px;margin:14px 0 0}.patient-chips{display:flex;gap:7px;flex-wrap:wrap}.patient-chips span{background:#e7f5ed;color:#3e8664;border-radius:30px;font-size:12px;font-weight:750;padding:4px 11px}.patient-section-head{display:flex;justify-content:space-between;align-items:center}.patient-section-head h2{margin:0}.patient-section-head span{color:#90a39a;font-size:12px}.patient-doc{display:flex;align-items:center;gap:13px;padding:19px 0;border-bottom:1px solid #eef2ef;flex-wrap:wrap}.patient-doc:last-child{border:0;padding-bottom:0}.patient-file-body{flex:1;min-width:180px}.patient-file-body h3{margin:0 0 5px;line-height:1.45;overflow-wrap:anywhere}.patient-file-actions{display:flex;gap:9px;flex-wrap:wrap}.patient-open,.patient-download{border-radius:8px;display:block;font-size:12px;font-weight:750;padding:9px 11px}.patient-open{background:#146a5b;color:#fff}.patient-download{border:1px solid #d6e7df;background:#f5faf6;color:#306b53}.patient-open:hover,.patient-download:hover{text-decoration:none;opacity:.9}.patient-guidance{background:#ebf5ee;border-color:#d5e8da}.patient-guidance strong{font-size:14px;color:#346b50}.patient-guidance p{margin:7px 0 0;color:#5f7869;font-size:13px}.patient-disclaimer{padding:8px 8px 15px;color:#7c8e87;font-size:12px;line-height:1.8}.patient-footer{text-align:center;color:#9aaea2;font-size:12px;padding:6px 0 30px}
@media(max-width:850px){.content-columns,.qr-shell{grid-template-columns:1fr}.sidebar-stack{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sidebar-stack .panel{margin-bottom:0}.table-scroller{overflow:auto}.data-table{min-width:660px}}@media(max-width:600px){.container{padding:26px 15px 60px}.header-inner{padding:14px 16px}.header-nav{gap:10px}.nav-link{font-size:11px}.brand{font-size:17px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:26px}.stats-grid{gap:8px}.stat{padding:14px}.stat strong{font-size:26px}.stat-label{font-size:11px}.stat .small{font-size:10px}.panel{padding:18px;border-radius:12px}.search-form{flex-wrap:wrap}.search-form input{flex-basis:100%}.search-form select{flex:1}.form-grid,.sidebar-stack{grid-template-columns:1fr}.doc-actions{width:100%}.login-card{padding:28px}.qr-card{padding:25px 12px}.qr-header h2{font-size:22px}.patient-main{margin:15px auto;padding:0 12px}.patient-hero,.patient-files,.patient-guidance{padding:19px;border-radius:13px}.patient-hero h1{font-size:23px}.patient-file-actions{width:100%;padding-left:62px}.patient-doc{gap:10px}.patient-open,.patient-download{flex:1;text-align:center}}
@media print{body{background:white}.no-print,.site-header,.footer,.breadcrumb,.qr-side{display:none!important}.container{padding:0;margin:0;min-height:0;max-width:none}.qr-shell{display:block;max-width:100%}.qr-card{box-shadow:none;border:0;padding:22mm 12mm}.qr-holder{width:95mm}.qr-printed-url{font-size:10px}@page{size:A4;margin:12mm}}
/* Image reading and saving keep the original PDF actions available. */
.patient-file-actions{flex-basis:100%;padding-left:62px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.patient-file-body{min-width:0}.patient-file-actions a{min-height:44px;display:flex;justify-content:center;align-items:center;text-align:center}.patient-image-open{background:#e9f5ef;border:1px solid #cce3d7;color:#215c49}.image-reader{max-width:900px}.image-back{display:inline-block;font-size:14px;margin:0 0 16px}.image-pdf-link{display:inline-block;margin-top:16px}.image-save-guide{scroll-margin-top:16px}.image-save-guide>.patient-download{display:inline-block;margin-top:13px}.image-pages{display:grid;gap:20px}.image-page{min-width:0;background:#fff;border:1px solid #dce8e0;border-radius:13px;overflow:hidden;box-shadow:var(--shadow)}.image-page-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 17px;border-bottom:1px solid #e4eee7}.image-page-head h2{font-size:14px;margin:0;color:#426954}.image-full{display:block}.image-full img{display:block;width:100%;height:auto}.image-page-head .patient-download{min-height:44px;display:flex;align-items:center}.image-reader h1{overflow-wrap:anywhere}
@media(max-width:600px){.patient-file-actions{grid-template-columns:repeat(2,minmax(0,1fr));padding-left:0;gap:8px}.image-page-head{padding:10px 12px}.image-page-head h2{font-size:13px}.image-reader .patient-hero h1{font-size:22px}.image-save-guide>.patient-download{display:block;text-align:center}}
/* Nutritionist accounts and administration. */
.staff-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-review-form{display:grid;gap:9px}.account-review-form label{font-size:13px;color:#66765e}.account-review-form input{width:100%;border:1px solid #d5e3da;border-radius:8px;padding:10px;font:inherit;font-size:13px}.account-review-form .actions{flex-wrap:wrap;margin-top:7px}
@media(max-width:600px){.header-inner{flex-wrap:wrap}.header-nav{flex-wrap:wrap;gap:13px;max-width:100%}.staff-name{max-width:80px}.account-review-form .btn{white-space:normal}}
