*{box-sizing:border-box}body{margin:0;background:#f1f6fb;color:#142641;font-family:"Sarabun","Leelawadee UI",Tahoma,sans-serif;font-size:15px}main{max-width:1320px;margin:auto;padding:26px}.ribbon{background:#dcecff;color:#2462a4;border-radius:12px;padding:12px;text-align:center;font-size:13px}header{padding:30px 4px 24px}.eyebrow{font-size:11px;letter-spacing:3px;color:#56749b}h1{font-size:clamp(30px,4vw,49px);line-height:1.35;letter-spacing:-1px;margin:12px 0 20px}h2{font-size:22px;margin:0 0 22px}section{background:white;border:1px solid #e0e9f3;border-radius:22px;padding:26px;margin-bottom:22px;box-shadow:0 8px 24px #24508005}.top{display:grid;grid-template-columns: .9fr 1.1fr;gap:22px}.top section{min-width:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip,button{border:1px solid #dce5f0;background:#fff;color:#365675;padding:9px 15px;border-radius:22px;cursor:pointer;font:inherit;font-size:13px}button:hover,button:focus-visible{outline:2px solid #1479ee;outline-offset:2px}.active{background:#1479ee!important;color:white!important}.muted{font-size:12px;line-height:1.8;color:#71839b}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:#71839b;margin-top:20px}.blue{color:#0877f9}.section-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.chart-scroll{overflow:auto;min-height:450px}.chart-scroll svg{display:block;margin:auto}#body > svg{width:100%;height:415px;display:block}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.lab{background:#f8fbff;border:1px solid #e4ecf5;padding:17px;border-radius:14px}.lab h3{font-size:14px;font-weight:500;margin:0 0 12px}.value{font-size:26px;font-weight:600}.unit{font-size:13px;color:#61738b}.badge{display:inline-block;font-size:11px;padding:4px 9px;border-radius:9px;background:#edf1f5;color:#697888;margin:10px 0}.badge.outside{background:#fff0dc;color:#ba6500}.badge.within{background:#e4f1ff;color:#1269c9}details{margin-top:15px;font-size:12px;color:#667990}summary{cursor:pointer;padding:8px 0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;background:#f0f5fb;font-weight:500;white-space:nowrap}td,th{padding:15px 12px;border-bottom:1px solid #e6edf5}td strong{font-size:22px;color:#6b40d8}footer{padding:15px;text-align:center;font-size:12px;color:#71839b}a{color:#176cc4}.empty{padding:25px;color:#71839b}.small{font-size:11px}svg text{font-family:inherit}svg [role=button]{cursor:pointer}svg [role=button]:focus{outline:2px solid #1677e9}@media(max-width:760px){main{padding:12px}.top{grid-template-columns:1fr}section{padding:18px;border-radius:16px}h2{font-size:19px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.lab{padding:12px}.value{font-size:22px}#body > svg{height:350px}.chart-scroll{min-height:360px}header{padding:20px 4px}}
.chart-scroll svg{width:100%;min-width:580px;height:auto}.chart-scroll{min-height:0}#body{min-height:420px}@media(max-width:760px){#body{min-height:350px}}

.lab-table{min-width:850px}.lab-table tbody th{background:transparent;white-space:normal;min-width:180px}.lab-table tbody tr:hover{background:#f8fbff}.lab-table .lab-number{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.lab-table .lab-unit{white-space:nowrap;color:#61738b}.lab-table .badge{margin:0;white-space:nowrap}.lab-table td{vertical-align:middle}.lab-table td:last-child{white-space:nowrap;color:#61738b}

/* Patient comparison visual language: soft anatomy, clear blue and restrained labels. */
body{background:radial-gradient(ellipse at 50% 0,#fff 0,#f0f7ff 65%);color:#102750}main{max-width:1280px;padding:24px 26px}header{padding:25px 10px 18px}h1{font-size:clamp(30px,3.7vw,48px);font-weight:700;line-height:1.35;letter-spacing:-1.2px;margin:0 0 18px}h1 span{display:inline}h2{color:#102750;font-weight:650;font-size:24px}.ribbon{font-weight:600;background:#dcecff;color:#1158af}.top{grid-template-columns:1fr 1fr;gap:20px}section{border-radius:20px;padding:25px;box-shadow:0 5px 26px #3563a505}.chip{background:#f7fbff;border-color:#d6e4f5;border-radius:16px;font-size:16px;padding:10px 18px}#body{min-height:0}#body > svg{height:auto;width:100%;max-height:510px}.chart-scroll{display:flex;align-items:center;min-height:460px}.chart-scroll svg{min-width:0;width:100%;height:auto;overflow:visible}.radar-panel{display:flex;flex-direction:column}.radar-panel .chart-scroll{flex:1}.legend{line-height:1.8}.system{display:inline-flex;align-items:center;gap:6px}.system::before{content:'';width:9px;height:9px;flex-shrink:0;border-radius:50%;background:#98a4b5}.system.within::before{background:#1479ee}.system.outside::before{background:#f28a16}.system.active::before{outline:2px solid white}.system{font-size:12px;padding:8px 10px}.table-scroll{border:1px solid #e1eafa;border-radius:12px}.lab-table tbody th{font-weight:500}.lab-table td,.lab-table th{padding:14px}.lab-table .lab-number{color:#102750}.table-scroll:focus-visible{outline:2px solid #1979e9;outline-offset:3px}td small{display:block;font-size:11px;color:#7b8aa1;margin-top:5px}.insufficient{font-size:13px;color:#65768c}.percent-bar{height:7px;background:#edf0f8;border-radius:9px;width:100px;margin-top:5px}.percent-bar i{display:block;height:100%;background:#9065ef;border-radius:9px}.pagination{display:flex;gap:16px;align-items:center;justify-content:flex-end;margin:16px 0;color:#65768c;font-size:12px}button:disabled{opacity:.4;cursor:default}td details{margin:0}#unavailable p{border-bottom:1px solid #e8eef6;padding:6px 0}.top section{margin-bottom:20px}.chart-scroll svg text{font-weight:500}
@media(max-width:760px){main{padding:12px}.top{grid-template-columns:1fr}h1{font-size:31px}h1 span{display:block}h2{font-size:21px}section{padding:18px}.chart-scroll{min-height:0;display:block}.chip{font-size:13px;padding:8px 12px}#body > svg{height:auto}header{padding:24px 4px}.pagination{gap:8px;justify-content:center}.chart-scroll svg{min-width:500px}.radar-panel{display:block}}

.peer-single{width:100%;padding:24px 16px}.peer-single article{margin:24px 0}.peer-single h3{font-size:25px}.peer-figures{display:flex;justify-content:space-between;gap:16px;font-size:20px;font-weight:600;margin:26px 0}.peer-track{position:relative;height:12px;background:linear-gradient(90deg,#e6effa,#a4ccfa);border-radius:12px;margin:28px 8px 16px}.peer-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:15px;height:15px;border:2px solid white;border-radius:50%}.peer-marker.you{background:#1479ee;width:20px;height:20px;z-index:2}.peer-marker.mean{background:#d58b00}.peer-marker.median{background:#8da1ba}.peer-status{color:#1767bc;min-width:150px}.lab-table{min-width:1060px}@media(max-width:760px){.peer-single{padding:10px 0}.peer-figures{font-size:17px}}

[hidden]{display:none!important}.upload-actions{display:flex;align-items:center;gap:16px;margin-bottom:20px}.upload-toolbar,.upload-fields{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:18px 0}.upload-fields label{display:flex;gap:8px;align-items:center;flex-wrap:wrap}#upload-panel input:not([type=checkbox]),#upload-panel select{font:inherit;color:#17345d;border:1px solid #cddcef;border-radius:8px;padding:8px;max-width:100%}.upload-table{min-width:1100px}.upload-table input{width:110px}.upload-table input[type=date]{width:150px}.upload-table input[type=checkbox]{width:auto}.upload-table select{width:220px}#upload-age{width:90px}#upload-status{background:#edf5ff;padding:12px;border-radius:10px;color:#155fae}.redaction-view{max-height:650px;overflow:auto;background:#e4ebf3;border:1px solid #d4deec;border-radius:12px;padding:8px}#upload-canvas{display:block;width:100%;height:auto;cursor:crosshair;touch-action:none}#upload-errors{color:#a36516}.file-label{display:block;border:1px dashed #a3c5f0;border-radius:14px;padding:18px;background:#f6faff}.upload-fields input[type=date]{max-width:180px}@media(max-width:760px){.upload-table{min-width:1000px}.upload-actions{flex-wrap:wrap}#upload-panel .section-head{flex-wrap:wrap}.redaction-view{padding:0;max-height:500px}.upload-toolbar{gap:8px}}

#explain-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}.explain-card{background:#f5f9ff;border:1px solid #e0eafb;border-radius:16px;padding:20px}.explain-card p{white-space:pre-line;line-height:1.8}.explain-card h4{margin-bottom:4px}

.diagnosis-note{min-width:240px;max-width:400px}.diagnosis-note>p{margin:0;line-height:1.7;color:#254365}.diagnosis-note details{margin-top:8px;font-size:12px}.diagnosis-note details p{line-height:1.7}

/* Patient overview redesign, matched to the approved concept. */
body{background:linear-gradient(110deg,#f0f8ff 0%,#f9fcff 48%,#edf6ff 100%);color:#102750}
main{max-width:1440px;padding:22px 24px 28px}
.patient-header{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;padding:0 12px 18px;align-items:end}
.header-copy h1{font-size:clamp(32px,3.8vw,52px);letter-spacing:-1.4px;line-height:1.25;margin:0 0 8px}
.subtitle{font-size:clamp(16px,1.7vw,23px);font-weight:600;color:#647591;margin:0 0 22px}
.header-tools{display:flex;flex-direction:column;align-items:flex-end;gap:22px}
.primary{color:white;background:linear-gradient(130deg,#2993ff,#0869ee);border-color:#2385f5;font-size:19px;font-weight:650;border-radius:12px;padding:13px 22px;box-shadow:0 5px 14px #1978e51c}
.health-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%}
.summary-item{background:#ffffffcf;border:1px solid #e1edf9;border-radius:12px;padding:12px 6px;text-align:center;display:flex;flex-direction:column;gap:2px}
.summary-item strong{font-size:34px;line-height:1.2;letter-spacing:-1px}.summary-item span{font-size:13px;color:#61718a}.summary-item.within strong{color:#1479ee}.summary-item.outside strong{color:#dc8500}.summary-item.unknown strong{color:#8791a3}
.header-meta{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#8392a7;margin-top:3px}
.chip{border-radius:14px;padding:8px 14px;color:#153c75;font-size:15px;background:#f4faff}
section{border-radius:14px;padding:22px;margin-bottom:18px;border-color:#deebf8;box-shadow:0 4px 16px #1575d304}
h2{font-size:clamp(20px,1.9vw,27px);margin-bottom:16px;letter-spacing:-.3px}
.top{gap:18px;align-items:stretch}.top section{margin-bottom:18px}.body-panel{display:flex;flex-direction:column}.body-panel #body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.body-panel #body > svg{height:460px;max-height:none}
.body-panel .legend,.body-panel>p{justify-content:center;text-align:center;margin:10px 0 0}.body-panel>p{font-size:11px}
#systems{justify-content:center;gap:7px;margin-top:8px}.system{border-radius:12px;background:#f8fbff;padding:9px 12px;font-size:13px}.system.outside{background:#fff8eb;border-color:#ffebc8}.system.within{background:#f0f7ff}.system.unknown{background:#f6f7fa}
.radar-panel .chart-scroll{min-height:430px;overflow:hidden}.radar-panel .legend{justify-content:center;font-size:12px;gap:22px;margin:10px 0}.radar-panel>p{text-align:center;margin:0;font-size:11px}.chart-scroll svg{min-width:0!important;width:100%;height:auto}
.finding-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.finding-card{border:1px solid #e3ebf6;border-radius:13px;padding:16px;display:flex;flex-direction:column;background:linear-gradient(140deg,#fff,#fbfdff)}
.finding-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.finding-head h3{font-size:19px;margin:0}.finding-head button{padding:5px 9px;border-radius:7px;font-size:12px;color:#1479ee;white-space:nowrap}
.finding-card>p{font-size:14px;line-height:1.7;margin:14px 0}.finding-values{display:flex;gap:8px;margin-top:auto}.finding-value{display:flex;flex:1;min-width:0;align-items:center;flex-direction:column;background:#f2f8ff;border:1px solid #e0edfb;border-radius:9px;padding:8px 3px}.finding-value span{font-size:11px}.finding-value strong{font-size:25px;line-height:1.4;color:#1177ed}.finding-value small{font-size:10px;color:#536681}.finding-value.outside,.finding-value.below{background:#fff8eb;border-color:#ffedc8}.finding-value.outside strong,.finding-value.below strong{color:#e57c00}.finding-value.unknown strong{color:#78859b}
.ai-disclosure{font-size:11px;margin-bottom:0}#explain-status:empty{display:none}#explain-cards:empty{display:none}#explain-cards{margin-top:16px}.explain-card{background:#f7fbff}.explain-card h3{font-size:20px;margin:0 0 12px}.explain-card p{font-size:14px}
.lab-table{min-width:590px;table-layout:auto}.lab-table th,.lab-table td{padding:10px 14px}.lab-table thead th{background:#eaf3fc;color:#3c587b;font-size:12px}.lab-table tbody th{min-width:180px}.lab-table .lab-number{font-size:15px}.lab-table td strong{font-size:16px;color:#102750}.lab-table .lab-unit{font-size:11px;font-weight:400;color:#526881}.lab-table .badge{font-size:11px;padding:4px 10px}.badge.below{background:#fff1da;color:#b76803}.lab-table td:last-child{color:#143566;text-align:right;font-variant-numeric:tabular-nums}.lab-table th:last-child{text-align:right}.table-actions{display:flex;justify-content:center;margin-top:12px}.table-actions button{color:#1479ee;border-radius:9px;padding:6px 24px}.table-scroll{border-radius:10px}.diagnoses-panel td,.diagnoses-panel th{padding:12px 14px;font-size:12px}.diagnoses-panel .muted{margin-top:-4px}.diagnoses-panel .pagination{margin-bottom:0}.diagnosis-note{min-width:190px;max-width:290px}.diagnosis-note>p{font-size:12px}.table-scroll td,.table-scroll th{overflow-wrap:break-word}footer{font-size:11px}
@media(min-width:1500px){.body-panel #body > svg{height:510px}.radar-panel .chart-scroll{min-height:480px}}
@media(max-width:1000px){main{padding:18px}.patient-header{gap:12px 16px;padding:0 4px 18px}.header-copy h1{font-size:34px}.subtitle{font-size:17px}.summary-item strong{font-size:27px}.summary-item span{font-size:11px}.health-summary{gap:6px}.top{gap:12px}.top section{padding:16px}.body-panel #body > svg{height:360px}.radar-panel .chart-scroll{min-height:340px}.finding-cards{gap:10px}.finding-card{padding:12px}.finding-head h3{font-size:16px}.finding-card>p{font-size:13px}.system{font-size:11px;padding:7px 8px}}
@media(max-width:760px){main{padding:12px}.patient-header{grid-template-columns:1fr;gap:14px}.header-copy h1{font-size:33px;letter-spacing:-.7px}.subtitle{margin-bottom:14px}.header-tools{gap:14px;align-items:stretch}.primary{align-self:flex-start;font-size:16px;padding:10px 18px}.health-summary{gap:8px}.summary-item{padding:10px 4px}.summary-item strong{font-size:29px}.summary-item span{font-size:11px}.header-meta{flex-wrap:wrap;font-size:10px;gap:3px}.top{grid-template-columns:1fr;gap:0}.top section{padding:18px}.body-panel #body > svg{height:auto;max-height:440px}.radar-panel .chart-scroll{min-height:0;overflow:visible;display:block}.chart-scroll svg{min-width:0!important}.finding-cards{grid-template-columns:1fr}.finding-head h3{font-size:19px}.finding-card{padding:16px}.finding-card>p{font-size:14px}.finding-values{max-width:360px;width:100%}section{padding:18px}.section-head{align-items:center}.section-head h2{font-size:20px}.section-head button{font-size:12px;padding:7px 10px}#explain-cards{grid-template-columns:1fr}.lab-table{min-width:540px}.diagnoses-panel table{min-width:570px}.system{font-size:12px}.peer-figures{flex-wrap:wrap}.peer-single{min-width:0}}

.system-icon{flex:none;color:#197bf1}.icon-lipid,.icon-liver,.icon-diabetes{color:#d44742}.icon-weight,.icon-other{color:#929cab}.finding-label{display:flex;align-items:center;gap:8px}.finding-label .system-icon{width:35px;height:35px;border-radius:50%;padding:5px;background:#fff0ee}.system .system-icon{order:-1;width:24px;height:24px}.system::before{display:none}.system.outside .system-icon{color:#f28a16}.system.unknown .system-icon{color:#98a4b5}.system.active .system-icon{color:white}#systems .system{font-size:14px;padding:10px 13px}.finding-head{align-items:flex-start}.finding-label h3{font-size:18px}.diagnoses-panel td small{color:#526881;font-size:12px;margin-top:3px}@media(max-width:1000px){.finding-label{gap:5px}.finding-label h3{font-size:15px}.finding-label .system-icon{width:28px;height:28px}.finding-head{flex-wrap:wrap}#systems .system{font-size:12px;padding:8px 10px}}@media(max-width:760px){.finding-head{flex-wrap:nowrap}.finding-label h3{font-size:18px}.finding-label .system-icon{width:34px;height:34px}}

.language-switch{display:flex;justify-content:flex-end;gap:4px;align-self:flex-end}.language-switch button{padding:6px 14px;border-radius:10px;min-width:64px}html[lang=en] h1{letter-spacing:0;font-size:clamp(28px,3.4vw,44px)}html[lang=en] .body-panel svg text{font-size:14px}input,select,textarea{font-family:inherit}

#patient-chat .eyebrow{margin:0 0 8px}#patient-chat h2{margin-bottom:10px}#patient-chat .section-head p{line-height:1.8;color:#587394}.patient-chat-suggestions{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0}.patient-chat-empty{padding:30px;text-align:center;color:#738ba8;border:1px dashed #c9dff0;border-radius:12px}#patient-chat label{display:block;font-weight:600;margin:12px 0}#patient-chat-question{font:inherit;line-height:1.6;width:100%;resize:vertical;min-height:90px;padding:14px;border:1px solid #bed8ed;border-radius:10px;color:#163760;background:#fbfdff}.patient-chat-actions{display:flex;justify-content:space-between;gap:10px;margin-top:12px}#patient-chat-status{min-height:24px;color:#496b91;font-size:14px}#patient-chat-send:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.patient-chat-actions{flex-wrap:wrap}.patient-chat-suggestions button{white-space:normal;text-align:left}}

.patient-chat-message{padding:18px 20px;background:#f2f7fc;border:1px solid #dfebf6;border-radius:12px;margin:14px 0}.patient-chat-message.user{background:#eaf4ff;margin-left:12%}.patient-chat-message.assistant{margin-right:4%}.patient-chat-message>strong{display:block;color:#1767b8;margin-bottom:9px}.patient-chat-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:15px}#patient-chat-scope{padding:12px 16px;border-radius:9px;background:#edf6ff;color:#265585;font-size:14px;line-height:1.8}#patient-chat-clear{margin-right:auto}@media(max-width:700px){.patient-chat-message{padding:14px}.patient-chat-message.assistant{margin-right:0}.patient-chat-message.user{margin-left:5%}}

#upload-dialog{width:min(1100px,95vw);max-height:90dvh;overflow:auto;border:1px solid #dce5f0;border-radius:20px;padding:24px;color:#142641;background:white}#upload-dialog::backdrop{background:#14264188}#upload-dialog-reasons{color:#925600}#upload-dialog-status{color:#176cc4}#upload-dialog .table-scroll{max-height:40dvh}#upload-dialog-close{position:sticky;top:0}@media(max-width:760px){#upload-dialog{padding:16px;width:96vw}}

#upload-panel.processing>:not(#upload-processing){display:none!important}
#upload-processing{text-align:center;padding:35px 20px 25px;max-width:650px;margin:auto}
#upload-processing[hidden]{display:none}#upload-processing h2{margin:16px 0 10px;font-size:25px}
.upload-loading-logo{width:76px;height:76px;margin:auto;position:relative;display:grid;place-items:center}
.upload-loading-logo:before{content:'';position:absolute;inset:-8px;border:3px solid #dfedfa;border-top-color:#1683f7;border-right-color:#09b5bd;border-radius:50%;animation:upload-spin 1.1s linear infinite}
.upload-loading-logo span{display:grid;place-items:center;width:58px;height:58px;background:linear-gradient(135deg,#187bff,#06b8ba);border-radius:17px;color:white;font-size:49px;font-weight:700;line-height:1}
.upload-loading-brand{letter-spacing:2px;font-weight:800;font-size:15px;color:#183559;margin:21px 0 0}
#upload-progress-label{font-size:16px;color:#355d83;min-height:26px;line-height:1.6}
#upload-progress{display:block;width:min(100%,380px);height:9px;margin:22px auto 12px;accent-color:#1683f7;border:0;border-radius:20px;overflow:hidden;background:#e6eff8}
#upload-progress::-webkit-progress-bar{background:#e6eff8;border-radius:20px}#upload-progress::-webkit-progress-value{background:linear-gradient(90deg,#187bff,#06b8ba);border-radius:20px;transition:width .3s}
#upload-progress:indeterminate{background:linear-gradient(90deg,#e6eff8 15%,#67b9ff 50%,#e6eff8 85%);background-size:200% 100%;animation:upload-flow 1.8s linear infinite}
#upload-progress-detail{font-size:13px;color:#6c829a;min-height:21px;margin:10px 0 24px}
.upload-steps{display:flex;justify-content:center;gap:25px;list-style:none;padding:0;margin:0;font-size:13px;color:#8394a8;counter-reset:upload-step}
.upload-steps li{counter-increment:upload-step;display:flex;align-items:center;gap:7px}.upload-steps li:before{content:counter(upload-step);width:23px;height:23px;border-radius:50%;background:#edf3f9;display:grid;place-items:center;font-size:12px;flex-shrink:0}.upload-steps .current{color:#1477db;font-weight:700}.upload-steps .current:before{background:#dcebff}.upload-steps .complete{color:#258c8a}.upload-steps .complete:before{content:'✓';background:#ddf5ef}
@keyframes upload-spin{to{transform:rotate(360deg)}}@keyframes upload-flow{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.upload-loading-logo:before,#upload-progress:indeterminate{animation:none}}
@media(max-width:600px){#upload-processing{padding:25px 0 15px}#upload-processing h2{font-size:22px}.upload-steps{gap:12px;font-size:11px;flex-wrap:wrap}}

/* Compact upload confirmation */
#upload-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 32px));max-height:90dvh;padding:36px;border:1px solid #deebfa;border-radius:28px;box-shadow:0 24px 80px #14264130}
#upload-dialog::backdrop{background:#10274770;backdrop-filter:blur(5px)}
#upload-dialog-close{position:absolute;top:14px;right:14px;width:34px;height:34px;padding:0;border:0;background:#f0f6fc;font-size:24px;color:#71839b}
.confirm-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 16px;border-radius:18px;background:#e8f3ff;color:#1680ee;font-size:28px;font-weight:700}
#upload-confirm-title{text-align:center;margin:0 0 28px;font-size:25px}
.confirm-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}
.confirm-fields label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600;color:#445d7c}
.confirm-fields .confirm-exam{grid-column:1/-1}
.confirm-fields select,.confirm-fields input{box-sizing:border-box;width:100%;min-width:0;height:50px;padding:0 12px;border:1px solid #d6e4f4;border-radius:12px;background:#f8fbff;font:inherit;color:#142f54}
.confirm-fields :is(input,select):focus{outline:3px solid #1680ee25;border-color:#1680ee}
#upload-compare{width:100%;min-height:50px;margin-top:28px;border-radius:12px;font-size:16px;font-weight:600;box-shadow:0 6px 18px #1680ee25}
#upload-dialog-status:not([hidden]){padding:12px;background:#fff5e8;border-radius:10px;font-size:14px;color:#925600}
#upload-review{margin-top:20px}#upload-review[hidden]{display:none}
#upload-review .table-scroll{max-height:400px}
@media(max-width:480px){#upload-dialog{padding:32px 22px}#upload-confirm-title{font-size:22px}.confirm-fields{gap:16px 12px}}

/* File processing uses the same centered modal treatment as data loading. */
#upload-panel.processing{display:none!important}
#upload-processing{box-sizing:border-box;width:min(520px,calc(100vw - 32px));max-height:90dvh;overflow:auto;padding:42px 28px 30px;border:1px solid #e1edfc;border-radius:26px;background:white;color:#12315b;box-shadow:0 24px 80px #102b5530}
#upload-processing::backdrop{background:#15335b55;backdrop-filter:blur(5px)}
@media(max-width:600px){#upload-processing{padding:34px 20px 24px}}

.standard-source{display:block;font-size:11px;line-height:1.6;margin-top:4px;color:#52729b}
.upload-history{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;margin:12px 0}.upload-history label{display:flex;gap:8px;align-items:center}.upload-history select{font:inherit;color:inherit;border:1px solid #d6e6fb;border-radius:10px;padding:9px;background:#fff}.upload-history[hidden]{display:none}@media(max-width:600px){.upload-history{justify-content:flex-start}}

#upload-processing .upload-loading-tagline{font-size:12px;line-height:1.6;color:#617b99;margin:0 0 20px}
/* Prominent AI action beside the section title. */
#explanation-panel>.section-head{justify-content:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:20px}
#explanation-panel>.section-head h2{margin:0}
#explain-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 20px;border:1px solid #1765e5;border-radius:13px;background:linear-gradient(120deg,#087bf5,#5655db);color:#fff;font-size:15px;font-weight:700;box-shadow:0 5px 14px #216de52b;transition:box-shadow .15s,background .15s}
#explain-button::before{content:"";display:block;width:21px;height:21px;flex-shrink:0;background:currentColor;clip-path:polygon(50% 0,63% 36%,100% 50%,63% 64%,50% 100%,37% 64%,0 50%,37% 36%)}
#explain-button:hover:not(:disabled){background:linear-gradient(120deg,#0668d4,#4846c8);box-shadow:0 7px 18px #216de540}
#explain-button:focus-visible{outline:3px solid #f4b53f;outline-offset:4px}
#explain-button:disabled{opacity:.65;cursor:default;box-shadow:none}
@media(max-width:600px){#explanation-panel>.section-head{gap:12px}#explain-button{font-size:14px;min-height:44px;padding:10px 16px}}

#peer-comparison .section-head{align-items:center;gap:20px;flex-wrap:wrap}
#peer-comparison label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#617795}
#peer-lab{max-width:100%;width:300px;min-height:44px;border:1px solid #d6e6fa;border-radius:10px;background:#f8fbff;padding:10px;color:#17345d;font:inherit}
.peer-detail-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;margin-top:20px;align-items:center}
.peer-own-value{padding:22px;border-radius:16px;background:#f3f8ff;border:1px solid #e1ecfa}.peer-own-value h3{margin-top:0}.peer-own-value>strong{font-size:36px;color:#1479ee}.peer-own-value .badge{display:table;margin-top:15px}.peer-own-value .muted{overflow-wrap:anywhere}
.peer-distribution svg{display:block;width:100%;height:auto}.peer-insight{padding:16px 20px;border-radius:12px;background:#eaf4ff;color:#1267c8;font-weight:600}
@media(max-width:700px){.peer-detail-layout{grid-template-columns:1fr;gap:14px}#peer-comparison label,#peer-lab{width:100%}.peer-own-value{padding:18px}}

#lab-edit-dialog{box-sizing:border-box;width:min(720px,calc(100vw - 28px));max-height:90dvh;overflow:auto;border:1px solid #deebfa;border-radius:24px;padding:26px;color:#142f54;background:white;box-shadow:0 24px 80px #102b5530}#lab-edit-dialog::backdrop{background:#15335b66;backdrop-filter:blur(5px)}#lab-edit-dialog h2{margin:0}.lab-edit-scroll{max-height:55dvh;overflow:auto}.lab-edit-scroll table{width:100%}.lab-edit-scroll th{text-align:left}.lab-edit-scroll input{box-sizing:border-box;width:135px;max-width:100%;padding:10px;border:1px solid #cddff4;border-radius:10px;font:inherit;color:#17345d;background:#f7fbff}.lab-edit-scroll small{display:block;font-size:11px}.lab-edit-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}#lab-edit-error{color:#a64f14}#lab-edit-close{font-size:24px;padding:2px 12px}#upload-edit-values{white-space:nowrap}@media(max-width:500px){#lab-edit-dialog{padding:18px}.lab-edit-scroll input{width:100px}.lab-edit-scroll td{padding:8px 5px;font-size:13px}}

#patient-results-header[hidden],#patient-welcome[hidden]{display:none!important}#patient-welcome{display:grid;place-items:center;min-height:calc(100dvh - 160px);background:transparent;border:0;padding:40px 16px;margin:0;box-shadow:none}.welcome-card{width:min(100%,800px);box-sizing:border-box;padding:50px 40px 36px;border:2px solid #d5e9ff;border-radius:24px;background:#fff;box-shadow:0 15px 55px #167de911;text-align:center}.welcome-icon{width:100px;height:100px;margin-bottom:18px}.welcome-card h1{font-size:clamp(28px,4vw,42px);margin:0 0 12px;color:#112d57}.welcome-subtitle{font-size:20px;color:#7488a4;margin:0 0 36px}.welcome-actions{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.welcome-actions button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:66px;padding:16px 12px;border:1px solid #1685ff;border-radius:13px;background:white;color:#147df5;font:600 18px Sarabun,system-ui,sans-serif}.welcome-actions button.primary{background:linear-gradient(120deg,#198bff,#0875f6);color:white}.welcome-actions svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.welcome-actions small{display:block;color:#7f94b0;font-size:14px;margin-top:12px}.welcome-actions button:focus-visible{outline:3px solid #75bcff;outline-offset:4px}#welcome-error{color:#a45521;margin-bottom:0}@media(max-width:600px){#patient-welcome{padding:24px 0;min-height:calc(100dvh - 200px)}.welcome-card{padding:32px 20px}.welcome-subtitle{font-size:16px}.welcome-actions{grid-template-columns:1fr;gap:14px}.welcome-actions button{font-size:17px;min-height:58px}.welcome-icon{width:82px;height:82px}}

#personal-conditions .chip{display:inline-block;margin:6px}.personal-chart-scroll{overflow-x:auto}.personal-chart-scroll svg{display:block;width:100%;min-width:540px}#personal-timeline-test{padding:10px;border:1px solid #d9e6f7;border-radius:10px;font:inherit;max-width:100%}.radar-panel h3{padding-top:16px;border-top:1px solid #e4edf8;color:#24466b}
/* Keep single-lab comparisons compact and the anatomy aligned with the card top. */
.top{align-items:start}.radar-panel .chart-scroll{flex:none;min-height:0;display:block}.radar-panel .peer-single{padding:8px 0}.radar-panel .peer-single article{margin:10px 0 20px}.radar-panel .peer-single h3{border-top:0;padding-top:0;font-size:21px}.radar-panel .peer-figures{font-size:17px;margin:16px 0;flex-wrap:wrap}.body-panel #body{flex:none}
/* Patient overview: independent full-width rows and one comparison at a time. */
.top{display:flex;flex-direction:column;gap:0}.top>section{width:100%}.body-overview{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.6fr);align-items:center;gap:24px}.body-panel #body > svg{height:auto;max-height:440px}.body-panel .section-head>.legend{margin:0}.body-overview #systems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.body-overview #systems button{width:100%;min-height:95px;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:center;align-items:center;text-align:left;border-radius:12px;padding:12px;gap:8px}.body-overview #systems small{display:block;width:100%;font-size:12px;font-weight:400}.radar-panel .section-head h2{margin-bottom:8px}.radar-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:20px}.radar-tabs button{border-radius:10px;padding:12px 8px;background:#f0f6fc;min-width:0}.radar-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);gap:24px;align-items:start}.radar-panel #radar{min-height:0;overflow:auto;display:block}.radar-panel #radar svg{width:100%;max-width:740px;min-width:0;height:auto}.radar-guide{padding:22px;border:1px solid #dceafa;background:#f7fbff;border-radius:14px;font-size:14px;line-height:1.7}.radar-guide h3{border:0;padding:0;margin:0 0 12px}.radar-guide h3:not(:first-child){margin-top:22px}.radar-guide-note{padding:12px;background:#e8f3ff;border-radius:10px;color:#35668e}.direction-higher{color:#008e91}.direction-lower{color:#dc790b}#radar-picker{position:relative;flex-shrink:0;margin-top:0}#radar-picker summary{padding:10px 14px;border:1px solid #dceafa;border-radius:10px}#radar-options{position:absolute;right:0;z-index:5;width:min(330px,75vw);max-height:320px;overflow:auto;padding:14px;background:white;border:1px solid #dceafa;border-radius:12px;box-shadow:0 12px 30px #14385c20}#radar-options label{display:flex;align-items:center;gap:8px;padding:8px;color:#244368;cursor:pointer}#radar-options input{accent-color:#1479ee;width:17px;height:17px;flex:none}.radar-panel .peer-single{padding:15px}.radar-panel .peer-single article{padding:16px;border:1px solid #dfebf7;border-radius:12px;background:#f9fcff}.radar-panel .legend{flex-wrap:wrap}@media(max-width:950px){.body-overview{grid-template-columns:minmax(200px,.8fr) 1.2fr}.body-overview #systems{grid-template-columns:repeat(2,minmax(0,1fr))}.radar-layout{grid-template-columns:1fr}.radar-guide{display:block}.radar-panel #radar svg{max-width:640px}}@media(max-width:600px){.body-overview{grid-template-columns:1fr}.body-panel #body > svg{max-height:350px}.top .section-head{flex-wrap:wrap}.radar-tabs{grid-template-columns:1fr 1fr}.radar-guide{padding:16px}.radar-layout{gap:14px}.radar-panel .peer-single{padding:0}.radar-panel #radar svg{min-width:360px}.radar-panel .peer-figures{font-size:15px}}

/* Distinct, recognizable glucose meter and red blood cell symbols. */
.icon-blood{color:#d94040}.icon-diabetes{color:#078b8e}.finding-label .icon-blood{color:#d94040;background:#fff0ee}.finding-label .icon-diabetes{color:#078b8e;background:#e6f7f4}

.upload-privacy-notice{padding:14px 18px;border:1px solid #bce9df;border-radius:12px;background:#effbf7;color:#176759;line-height:1.7}
#upload-preview h2{margin-top:24px}

.body-shape-caption{font-size:12px;line-height:1.6;text-align:center;color:#617b99;margin:8px 0 0}
