:root{--bg:#f4f7f7;--surface:#fff;--surface-2:#eef3f3;--text:#0f1f1e;--muted:#5b6b6a;--line:#dbe4e3;--accent:#0f766e;--accent-ink:#fff;--accent-soft:#d6efec;--ok:#15803d;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--bad:#b91c1c;--bad-soft:#fee2e2;--info-soft:#e0f2fe;--radius:14px;--shadow:0 1px 2px #0f1f1e0f, 0 2px 8px #0f1f1e0d;--tabbar-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#0b1220;--surface:#131c2c;--surface-2:#1b2638;--text:#e6eef0;--muted:#94a3b0;--line:#263246;--accent:#2dd4bf;--accent-ink:#04201d;--accent-soft:#123b3a;--ok:#4ade80;--ok-soft:#12321f;--warn:#fbbf24;--warn-soft:#3a2c0c;--bad:#f87171;--bad-soft:#3d1717;--info-soft:#102a3d;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;font:16px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3,p{margin:0}.app{max-width:720px;min-height:100vh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px);margin:0 auto}.hero{background:var(--accent);color:#fff;padding:calc(env(safe-area-inset-top) + 18px) 16px 18px;border-radius:0 0 24px 24px}[data-theme=dark] .hero{background:#134e4a}.brand{align-items:center;gap:12px;margin-bottom:14px;display:flex}.brand img{border-radius:22%;box-shadow:0 0 0 2px #ffffff73}.brand h1{letter-spacing:-.01em;font-size:1.5rem}.brand p{opacity:.85;font-size:.9rem}.searchbox{color:#0f1f1e;background:#fff;border-radius:12px;align-items:center;gap:8px;height:48px;padding:0 8px 0 12px;display:flex}[data-theme=dark] .searchbox{color:var(--text);background:#0b1220}.searchbox svg{opacity:.6;flex:none}.searchbox input{color:inherit;background:0 0;border:0;outline:0;flex:1;min-width:0;height:100%;font-size:1rem}.searchbox input::-webkit-search-cancel-button{display:none}.topbar{z-index:5;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:calc(env(safe-area-inset-top) + 8px) 8px 8px;border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex;position:sticky;top:0}.topbar-title{flex:1;min-width:0;padding:0 6px}.topbar h1{overflow-wrap:anywhere;font-size:1.15rem;line-height:1.25}.topbar p{color:var(--muted);font-size:.85rem}.iconbtn{background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.iconbtn:active{background:var(--surface-2)}.iconbtn.small{width:36px;height:36px}.iconbtn.fav{color:#eab308}.content{flex-direction:column;gap:12px;padding:14px 14px 8px;display:flex}.section-title,.section-head h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.8rem}.section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.linkbtn{color:var(--accent);background:0 0;border:0;padding:4px;font-size:.85rem}.empty{color:var(--muted);text-align:center;padding:32px 16px}.lead{color:var(--muted)}.muted{color:var(--muted);font-size:.88rem}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.tile{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:2px;min-height:104px;padding:14px;display:flex}.tile:active{transform:scale(.98)}.tile-icon{margin-bottom:6px;font-size:1.5rem}.tile b{font-size:.95rem;line-height:1.25}.tile small{color:var(--muted)}.recent-row{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.pill{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:.9rem;font-weight:600}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.list li+li{border-top:1px solid var(--line)}.list-item{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 10px 12px 14px;display:flex}.list-item:active{background:var(--surface-2)}.list-item>svg{color:var(--muted);flex:none}.li-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.li-text{flex-direction:column;flex:1;min-width:0;display:flex}.li-text small{color:var(--muted);font-size:.85rem}.abbr{color:var(--accent);font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:14px;display:flex}.card h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.8rem}.card h3{font-size:.95rem}.card h3.up{color:var(--bad)}.card h3.down{color:#2563eb}[data-theme=dark] .card h3.down{color:#60a5fa}.card p+h3{margin-top:6px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-2);border-radius:8px;padding:3px 9px;font-size:.82rem;font-weight:600}.badge{border-radius:8px;padding:3px 9px;font-size:.78rem;font-weight:700}.badge.draft{background:var(--warn-soft);color:var(--warn)}.range-row{border-bottom:1px dashed var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding-bottom:8px;display:flex}.range-row:last-of-type{border-bottom:0;padding-bottom:0}.range-label{color:var(--muted);flex:140px;font-size:.9rem}.range-values{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.rv b{font-variant-numeric:tabular-nums;font-size:1.12rem}.rv small{color:var(--muted)}.rv.secondary b{color:var(--muted);font-size:.95rem;font-weight:600}.specimen{color:var(--muted);align-items:center;gap:8px;padding-top:4px;font-size:.88rem;display:flex}.tube{box-sizing:border-box;border:1px solid #00000026;border-radius:3px 3px 6px 6px;flex:none;width:10px;height:22px}.checker,.field-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.numinput{border:1.5px solid var(--line);background:var(--bg);min-width:0;height:48px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:12px;flex:120px;padding:0 12px;font-size:1.1rem}.numinput:focus{border-color:var(--accent);outline:none}.numinput.invalid{border-color:var(--bad)}.unit-fixed{color:var(--muted);padding:0 4px;font-weight:600}.row-gap{margin-top:2px}.flag{border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.flag span{font-size:.92rem}.flag-normal{background:var(--ok-soft);color:var(--ok)}.flag-low,.flag-high{background:var(--warn-soft);color:var(--warn)}.flag-critical-low,.flag-critical-high{background:var(--bad-soft);color:var(--bad)}.rangebar{background:var(--surface-2);border-radius:999px;height:10px;margin:6px 4px 2px;position:relative}.rb-ok{background:var(--ok);opacity:.35;border-radius:999px;position:absolute;top:0;bottom:0}.rb-dot{background:var(--text);border:3px solid var(--surface);border-radius:50%;width:18px;height:18px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0000004d}.seg{background:var(--surface-2);border-radius:12px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:9px;min-height:38px;padding:8px 12px;font-size:.88rem;font-weight:600}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}[data-theme=dark] .seg button.on{background:var(--accent-soft);color:var(--accent)}.calc-link{text-align:left;background:var(--accent-soft);width:100%;color:var(--accent);border-radius:var(--radius);border:0;align-items:center;gap:12px;padding:14px;display:flex}.calc-link span{flex-direction:column;flex:1;display:flex}.calc-link small{opacity:.85}.critical{border-color:color-mix(in srgb, var(--bad) 35%, var(--line))}.crit-values{color:var(--bad);font-variant-numeric:tabular-nums;gap:16px;font-weight:700;display:flex}.sources ol,ol.sources{color:var(--muted);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:.82rem;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:.92rem;font-weight:600}.err{color:var(--bad)}.results .result{background:var(--surface-2);border-radius:12px;padding:10px 12px}.result-label{color:var(--muted);font-size:.85rem}.result-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.result-value small{color:var(--muted);font-size:.9rem;font-weight:600}.result-note{font-size:.9rem}.lvl-ok{background:var(--ok-soft)!important}.lvl-warn{background:var(--warn-soft)!important}.lvl-bad{background:var(--bad-soft)!important}.lvl-info{background:var(--info-soft)!important}.warn-text{color:var(--warn);font-size:.9rem}.formula{background:var(--surface-2);overflow-wrap:anywhere;border-radius:10px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.meta{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:.9rem;display:grid}.meta dt{color:var(--muted)}.meta dd{margin:0;font-weight:600}.tabbar{z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{max-width:180px;height:var(--tabbar-h);color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;font-weight:600;display:flex}.tabbar button.on{color:var(--accent)}.tabbar .ti{border-radius:999px;place-items:center;padding:3px 18px;display:grid}.tabbar button.on .ti{background:var(--accent-soft)}.modal-backdrop{z-index:50;background:#00000073;place-items:end center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--surface);width:100%;max-width:520px;margin-bottom:env(safe-area-inset-bottom);border-radius:20px;flex-direction:column;gap:12px;padding:20px;display:flex}.modal h2{font-size:1.2rem}.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:12px;height:50px;font-size:1rem;font-weight:700}@media (min-width:700px){.modal-backdrop{place-items:center}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.btnrow{flex-wrap:wrap;gap:8px;display:flex}.copybtn,.ghostbtn{border:1px solid var(--line);background:var(--surface-2);min-height:40px;color:var(--text);border-radius:10px;align-items:center;gap:6px;padding:0 14px;font-size:.88rem;font-weight:600;display:inline-flex}.copybtn.small{min-height:32px;color:var(--muted);background:0 0;border:0;padding:0 8px}.copybtn.ok{color:var(--ok);border-color:var(--ok)}.ghostbtn:disabled{opacity:.6}.ghostbtn.danger{color:var(--bad)}.notes{border:1.5px solid var(--line);background:var(--bg);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:12px;min-height:72px;padding:10px 12px}.notes:focus{border-color:var(--accent);outline:none}.prefill-note{background:var(--info-soft);border-radius:10px;padding:8px 12px;font-size:.88rem}.searchbox.inline{background:var(--bg);border:1.5px solid var(--line);color:var(--text)}.suggest{border:1px solid var(--line);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.suggest li+li{border-top:1px solid var(--line)}.suggest button{text-align:left;background:var(--surface);border:0;align-items:baseline;gap:10px;width:100%;padding:12px 14px;display:flex}.suggest button b{color:var(--accent);min-width:56px}.suggest button span{color:var(--muted);font-size:.9rem}.panel-rows{gap:0;padding:4px 14px}.prow{border-bottom:1px dashed var(--line);flex-direction:column;gap:6px;padding:10px 0;display:flex}.prow:last-child{border-bottom:0}.prow-head{justify-content:space-between;align-items:center;display:flex}.prow-name{color:var(--text);text-align:left;padding:0;font-size:.98rem;font-weight:700}.prow-body{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.prow-body .numinput{flex:90px;height:44px}.pflag{text-align:center;min-width:32px;font-size:1.1rem;font-weight:800}.pf-normal .pflag,.pflag.pf-normal{color:var(--ok)}.pf-low .pflag,.pf-high .pflag,.pflag.pf-low,.pflag.pf-high,.outlist .pf-low,.outlist .pf-high{color:var(--warn)}.pf-critical-low .pflag,.pf-critical-high .pflag,.pflag.pf-critical-low,.pflag.pf-critical-high,.outlist .pf-critical-low,.outlist .pf-critical-high{color:var(--bad)}.summary-out{color:var(--warn);font-weight:700}.summary-ok{color:var(--ok);font-weight:700}.outlist{flex-direction:column;gap:4px;margin:0;padding-left:4px;list-style:none;display:flex}.ti{position:relative}.tbadge{background:var(--accent);color:var(--accent-ink);border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.65rem;display:grid;position:absolute;top:-4px;right:6px}.tabbar button{max-width:150px;font-size:.68rem}.tabbar .ti{padding:3px 14px}.result-value.as-text{font-size:1.15rem}.content>section>.section-title{margin:6px 0 8px}.srcline{color:var(--muted);border-top:1px dashed var(--line);padding-top:8px;font-size:.85rem}.srcline.lab{color:var(--accent)}.lab-mark{color:var(--accent);font-size:.75rem;font-weight:700}.labedit{border-top:1px dashed var(--line);flex-direction:column;gap:10px;padding-top:10px;display:flex}.labrow{border:1px solid var(--line);background:var(--bg);border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.labrow-head{justify-content:space-between;align-items:center;display:flex}.labgrid{grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;display:grid}.labgrid label{color:var(--muted);flex-direction:column;gap:4px;font-size:.8rem;font-weight:600;display:flex}.labgrid .numinput{flex:none;width:100%;height:42px}.labgrid .unit-fixed{padding-bottom:10px}.textinput{border:1.5px solid var(--line);background:var(--bg);height:42px;color:var(--text);font:inherit;border-radius:10px;width:100%;padding:0 12px}.textinput:focus{border-color:var(--accent);outline:none}.primary.small{height:40px;padding:0 18px;font-size:.9rem}.primary:disabled{opacity:.5}.importbox{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.errlist{color:var(--bad);margin:0;padding-left:18px;font-size:.85rem}.patient{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.patient .seg{background:var(--surface)}.pt-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pt-label{color:var(--muted);min-width:4.5em;font-size:.85rem;font-weight:600}.numinput.pt-age{flex:0 0 5.5em;width:5.5em}.numinput.bad{border-color:var(--bad)}.ref-used{margin:0}.rgroup{border-top:1px solid var(--line);padding-top:6px}.rgroup:first-of-type{border-top:0;padding-top:0}.rgroup summary{cursor:pointer;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 0;font-size:.8rem;font-weight:700}.rgroup summary small{text-transform:none;letter-spacing:0;font-weight:500}.rgroup[open] summary{margin-bottom:4px}.rgroup .range-row{padding:6px 0}.range-row.match{background:var(--accent-soft);border-bottom-color:#0000;border-radius:8px;padding:6px 8px}.match-tag{color:var(--accent);font-size:.75rem;font-weight:600;display:block}.labrow-preg{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;display:flex}.sero-marker{border-bottom:1px dashed var(--line);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.sero-marker:last-of-type{border-bottom:0}.sm-head b{font-size:1rem}.sero-result .sr-title{font-size:1.1rem}.sero-result p{margin:0}.sr-next{font-size:.92rem}.reflex{counter-reset:rx;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.reflex li{background:var(--surface-2);counter-increment:rx;border-radius:10px;flex-direction:column;padding:8px 10px 8px 34px;display:flex;position:relative}.reflex li:before{content:counter(rx);color:var(--accent);font-weight:700;position:absolute;top:8px;left:10px}.rx-when{font-weight:600}.rx-then{color:var(--muted);font-size:.92rem}.matrix-row{border-bottom:1px dashed var(--line);flex-direction:column;gap:2px;padding-bottom:8px;display:flex}.matrix-row:last-of-type{border-bottom:0}.matrix-row span{font-size:.92rem}.drug-name{text-transform:none!important;letter-spacing:0!important;color:var(--text)!important;font-size:1.05rem!important}.drug{scroll-margin-top:84px}.drug.focus{border-color:var(--accent)}.cutoffs{flex-wrap:wrap;gap:10px;display:flex}.cutoffs span{background:var(--surface-2);border-radius:10px;flex-direction:column;padding:6px 10px;font-size:.85rem;display:flex}.cutoffs small{color:var(--muted)}.cutoffs b{font-size:1rem}.windows{border-collapse:collapse;width:100%;font-size:.9rem}.windows th{text-align:left;vertical-align:top;color:var(--muted);width:6.5em;padding:6px 8px 6px 0;font-weight:600}.windows td{padding:6px 0}.windows tr+tr th,.windows tr+tr td{border-top:1px solid var(--line)}.specimen.link{font:inherit;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:4px 0 0}.specimen.link span:nth-child(2){text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;flex:1}.cap{border:1px solid #0000002e;border-radius:4px 4px 2px 2px;flex:none;width:22px;height:14px;display:inline-block}.tube-card{scroll-margin-top:84px}.tube-card.focus{border-color:var(--accent)}.tube-head{align-items:center;gap:12px;margin-bottom:6px;display:flex}.tube-head .cap{width:30px;height:20px}.tube-head>div{flex-direction:column;flex:1;gap:2px;display:flex}.tube-head h2{margin:0}.step-badge{background:var(--accent-soft);min-width:28px;height:28px;color:var(--accent);border-radius:50%;place-items:center;font-size:.9rem;font-weight:700;display:grid}.draw-order{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.draw-order li{background:var(--surface-2);border-radius:10px;gap:10px;padding:8px 10px;display:flex}.draw-order li.optional{border:1px dashed var(--line);background:0 0}.draw-n{color:var(--accent);min-width:1.2em;font-weight:700}.draw-body{flex-direction:column;gap:6px;display:flex}.draw-caps{color:var(--muted);flex-wrap:wrap;gap:6px 12px;font-size:.86rem;display:flex}.draw-cap{align-items:center;gap:6px;display:inline-flex}.home-group{margin-bottom:14px}.home-group .section-title{margin:4px 0 8px}.grid.small{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.tile.small{border-radius:12px;min-height:0;padding:10px}.tile.small .tile-icon{margin-bottom:2px;font-size:1.25rem}.tile.small b{font-size:.86rem}.tile.small small{font-size:.75rem}.chip-link{border:1px solid var(--accent);color:var(--accent);background:var(--accent-soft);cursor:pointer;font:inherit;font-size:.82rem;font-weight:600}.caps{flex:none;gap:3px;display:inline-flex}.evalbox{padding:0}.evalbox>summary{cursor:pointer;color:var(--accent);align-items:center;gap:12px;padding:14px 16px;list-style:none;display:flex}.evalbox>summary::-webkit-details-marker{display:none}.evalbox>summary span{flex-direction:column;flex:1;display:flex}.evalbox>summary small{color:var(--muted);font-size:.8rem}.evalbox>summary:after{content:"▾";color:var(--muted);transition:transform .15s}.evalbox[open]>summary:after{transform:rotate(180deg)}.evalbox[open]>summary{border-bottom:1px solid var(--line)}.eval-check{flex-direction:column;gap:10px;padding:12px 16px 4px;display:flex}.eval-calcs{margin:0;padding:4px 8px 8px;list-style:none}.eval-calcs button{width:100%;font:inherit;color:var(--text);text-align:left;border:0;border-top:1px solid var(--line);cursor:pointer;background:0 0;align-items:center;gap:10px;padding:10px 8px;display:flex}.eval-calcs li:first-child button{border-top:0}.eval-calcs button span{flex:1;font-size:.92rem}.eval-calcs button svg:first-child{color:var(--accent)}.profile .pfrow{border-bottom:1px dashed var(--line);grid-template-columns:minmax(0,1fr) 5.4em 4.6em 1.4em;align-items:center;gap:0 8px;padding:8px 0;display:grid}.profile .pfrow:last-of-type{border-bottom:0}.pf-name{text-align:left;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;flex-direction:column;min-width:0;padding:0;display:flex}.pf-name b{font-size:.95rem}.pf-name small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.numinput.pf-input{text-align:right;width:100%;height:40px;padding:0 8px}.pf-unit{color:var(--muted);white-space:nowrap;font-size:.78rem}.pf-ref{grid-column:1/-1;font-size:.78rem}.pfrow.pf-low .pf-input,.pfrow.pf-high .pf-input{border-color:var(--warn)}.pfrow.pf-critical-low .pf-input,.pfrow.pf-critical-high .pf-input{border-color:var(--bad)}.tile.small.profile-tile{background:var(--accent-soft);border-color:#0000}.tile.small.profile-tile b{color:var(--accent)}.about-links{flex-wrap:wrap;gap:8px;margin:4px 0 10px;display:flex}.about-links a{text-decoration:none}
