:root{--paper:#f5f6f3;--ink:#203c37;--muted:#7d8c87;--line:#e3e9e4;--green:#175f50;--light:#edf4ef;--warn:#916022}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 'Segoe UI',Arial,sans-serif}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{transition:background .15s}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #79bca7;outline-offset:3px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;background:#fcfdfa;border-right:1px solid var(--line);padding:33px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;font-weight:750;font-size:22px;letter-spacing:2px;margin:0 12px 53px}.brand-icon{display:grid;place-items:center;background:var(--green);color:white;width:32px;height:34px;margin-right:10px;border-radius:8px;font-size:28px;font-weight:400}.brand-dot{color:#81a26b}.workspace-label{font-size:9px;letter-spacing:1.6px;color:#98a49e;margin:0 12px 17px}nav a{display:flex;align-items:center;gap:10px;padding:13px 11px;border-radius:7px;font-size:12px;margin-bottom:8px;color:#73847c}nav a span{font-size:20px;width:22px}nav a small{margin-left:auto;font-size:9px;opacity:.6}nav a.active{background:#eaf2e9;color:var(--green);font-weight:600}.sidebar-note{border-top:1px solid var(--line);margin:32px 12px 0;padding-top:21px;font-size:10px;font-weight:600}.live-dot{display:inline-block;width:6px;height:6px;background:#69a784;border-radius:50%;margin-right:6px}.sidebar-note p{font-size:10px;color:var(--muted);line-height:1.9;font-weight:400}.sidebar-foot{margin-top:auto;padding:20px 12px 0;font-size:9px;letter-spacing:1.4px;color:#85958c}.sidebar-foot strong{display:block;letter-spacing:0;font-weight:400;font-size:11px;margin-top:9px}main{max-width:1750px;margin-left:230px;padding:0 38px}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}.slash{padding:0 14px;color:#b9c4bb}.lab-pill{border:1px solid #d5dfd5;background:#f9fbf7;font-size:9px;letter-spacing:1.6px;padding:5px 10px;border-radius:5px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:34px 0 25px}.eyebrow{font-size:9px;letter-spacing:2.2px;font-weight:600;color:#6d8f75}h1{font-size:clamp(24px,2.3vw,35px);font-weight:600;letter-spacing:-1.1px;line-height:1.25;margin:9px 0}p{margin:0}.heading p{font-size:12px;color:var(--muted)}.header-actions{display:flex;gap:9px}.button{border-radius:6px;padding:10px 14px;font-size:11px;font-weight:600;border:1px solid var(--line);white-space:nowrap}.secondary{background:#fcfdfb;color:var(--ink)}.secondary:hover{background:var(--light)}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#104b3e}.wide{display:flex;justify-content:space-between;width:100%;padding:13px 14px}.context-strip{display:flex;gap:25px;font-size:10px;color:#87958e;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 1px;margin-bottom:25px}.context-strip strong{font-weight:500;color:#496157;margin-left:7px}.context-strip i{display:inline-block;height:6px;width:6px;background:#759273;border-radius:50%;margin-right:6px}.context-strip .right{margin-left:auto}.calibration-layout{display:grid;grid-template-columns:minmax(295px,.8fr) minmax(390px,1.5fr);gap:22px;align-items:stretch}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:23px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-heading>div{display:flex;align-items:center;gap:9px}h2{font-size:14px;font-weight:600;letter-spacing:-.2px;margin:0}.section-number{color:#a0b1a5;font-size:10px;font-weight:500}.support{color:var(--muted);font-size:11px;margin:10px 0 20px}.count,.status-pill{font-size:9px;border-radius:5px;padding:4px 7px;background:#f5f7f4;color:#8a9891;white-space:nowrap}.status-pill.ready{background:#ebf5ec;color:var(--green)}table{border-collapse:collapse;width:100%;text-align:left}.table-wrap{max-height:340px;overflow:auto}.data-table th{font-size:10px;font-weight:500;color:#61786c;padding:8px 4px;border-bottom:1px solid var(--line);background:#f8faf7}.data-table th:first-child{padding-left:8px;width:28px}.data-table th small{display:block;font-size:8px;color:#98a59c;font-weight:400;margin-top:1px}.data-table td{padding:8px 4px;border-bottom:1px solid #f0f3ee}.row-index{font-size:10px;color:#9bac9f;text-align:center}input{width:100%;min-width:0;border:1px solid #dce5df;border-radius:5px;padding:10px 11px;background:#fafcf9;color:var(--ink);font-variant-numeric:tabular-nums;outline:none;font-size:12px}input::placeholder{color:#a5b1aa}input:focus{border-color:#7aa790;box-shadow:0 0 0 3px #ecf3ed}input[aria-invalid=true]{border-color:#c78e74;background:#fff8f3}.data-table input{padding:8px 9px}.delete-row{color:#9dac9e;border:0;background:transparent;font-size:18px;padding:5px}.delete-row:hover{color:#9c4131}.add-row{border:1px dashed #d8e3d9;background:transparent;width:100%;padding:8px;margin:13px 0 0;border-radius:5px;font-size:11px;color:#64816a}.message{margin:15px 0;font-size:10px;line-height:1.65;color:var(--warn);min-height:32px}.success{color:#347552!important}.warning{color:var(--warn)!important}.table-actions{display:flex;justify-content:space-between;margin-top:13px}.text-button{border:0;background:transparent;color:#8a988d;font-size:10px;padding:5px 0}.text-button:hover{color:var(--green)}.tiny{font-size:9px;color:#9aaa9d;line-height:1.7;border-top:1px solid var(--line);padding-top:14px;margin-top:9px}.plot-card{display:flex;flex-direction:column;min-width:0}.chart-meta{display:flex;justify-content:flex-end;gap:18px;font-size:9px;color:#849286;margin:14px 0 8px}.chart-meta span{display:flex;align-items:center;gap:5px}.legend-point{width:6px;height:6px;border-radius:50%;background:var(--green)}.legend-line{width:15px;border-top:2px solid #a4bc85}.chart-container{position:relative;min-height:285px;flex:1}.chart-container canvas{position:absolute;inset:0;width:100%!important;height:100%!important}#empty-chart{position:absolute;left:55%;top:43%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;width:80%;background:rgba(255,255,255,.86);padding:14px}.empty-icon{font-size:36px;line-height:1.2;color:#a6bda8;margin-bottom:8px}#empty-chart strong{font-size:14px;font-weight:500;color:#678270}#empty-chart p{font-size:10px;color:#9aaa9e;margin-top:7px;line-height:1.8}.equation-bar{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;background:#f5f8f2;border:1px solid #e9eee4;border-radius:6px;padding:13px 14px;margin-top:13px}.equation-bar>span{font-size:8px;letter-spacing:1.1px;color:#87a087}.equation-bar strong{font-size:15px;font-weight:500;font-family:Georgia,serif}.equation-bar small{margin-left:auto;font-size:9px;color:#94a391}.metrics{display:grid;grid-template-columns:1fr 1fr 1.2fr 1fr;gap:16px;margin:22px 0}.metrics article{border:1px solid var(--line);background:#fff;border-radius:8px;padding:17px 19px}.metrics article>div{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#7b8e80;font-size:10px}.metrics b{font-weight:500;margin-left:4px;color:#3e6250}.metrics strong{display:block;font-size:24px;font-weight:500;letter-spacing:-.6px;margin:9px 0 3px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metrics small{font-size:9px;color:#9aaa9e}.help{background:none;color:#96a596;border:1px solid #dce5d8;border-radius:50%;width:14px;height:14px;line-height:12px;font-size:9px;padding:0;flex-shrink:0}.calculators{display:grid;grid-template-columns:1fr 1fr;gap:22px}.formula{font-family:Georgia,serif;color:#7b8f7c;font-size:12px}.calculator label{display:block;font-size:10px;color:#66806d;margin-bottom:7px}.input-with-unit{position:relative}.input-with-unit span{position:absolute;right:14px;top:11px;font-size:10px;color:#a0afa1}.input-with-unit input{padding-right:45px}.output{border-radius:6px;background:#f1f6ee;padding:14px 17px;margin-top:17px;min-height:116px}.output>span,.dilution-output div>span{display:block;font-size:8px;letter-spacing:1.2px;color:#7e987d}.output strong{font-size:28px;font-weight:500}.output small{margin-left:8px;font-size:11px;color:#799275}.output p{font-size:10px;margin-top:6px;color:#879b83}.dilution-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.dilution-fields small{color:#a0ac9a;font-size:8px;float:right}.dilution-fields input{margin-top:7px}.dilution-output{display:flex;align-items:center;gap:24px;background:#f5f8f2;border-radius:6px;padding:15px 17px;margin-top:10px}.dilution-output>div{flex:1}.dilution-output strong{font-size:24px;font-weight:500;margin-right:7px}.dilution-output small{font-size:10px;color:#90a18a}.plus{color:#a9b99f;font-size:20px}.calc-message{font-size:10px;margin-top:8px;color:#658561}.example{font-size:8px;border:1px solid #e5e9de;border-radius:4px;padding:2px 5px;margin-left:5px}.reference{margin-top:22px;padding:0}.reference summary{padding:17px 22px;display:flex;justify-content:space-between;list-style:none;font-size:12px;font-weight:500}.reference summary::-webkit-details-marker{display:none}.reference summary small{font-weight:400;font-size:10px;color:#95a18e;margin-left:15px}.reference-body{padding:0 23px 23px;font-size:12px}.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:22px 0}.reference-grid p{font-size:10px;color:#90a08e}.reference-grid strong{display:block;font-size:11px;color:#526f56;font-weight:500;margin-top:4px}.reference-example{background:#f6f8f1;padding:13px 17px;border-left:2px solid #b8c8a6}.reference-example p{margin:7px 0}.reference-example small{color:#8b9b82}footer{display:flex;justify-content:space-between;gap:15px;padding:27px 0 30px;font-size:9px;color:#7c937d}footer>span{font-weight:700;letter-spacing:.5px}footer .muted{font-weight:400;letter-spacing:0;margin-left:8px;color:#a3afa0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#print-report{display:none}[hidden]{display:none!important}@media(min-width:1500px){main{padding-left:55px;padding-right:55px}.chart-container{min-height:330px}.heading{margin-top:40px}}@media(max-width:1150px){.sidebar{width:190px;padding:25px 12px}.brand{font-size:18px;letter-spacing:1px}main{margin-left:190px;padding:0 23px}.header-actions{flex-direction:column}.calibration-layout{gap:16px;grid-template-columns:minmax(285px,.9fr) minmax(300px,1.15fr)}.card{padding:18px}.metrics{gap:10px}.metrics article{padding:14px}.card-heading{gap:6px}h2{font-size:13px}.formula{font-size:10px}.reference summary{padding:17px 20px}}@media(max-width:900px){.sidebar{width:68px;align-items:center;padding:23px 6px}.brand{font-size:0;margin:0 0 32px;gap:0}.brand-icon{margin:0}.workspace-label,.brand-dot,nav small,.sidebar-note,.sidebar-foot{display:none}nav a{font-size:0;padding:10px}nav a span{font-size:22px;width:22px}main{margin-left:68px}.context-strip{gap:15px}.context-strip .right{display:none}.calibration-layout{grid-template-columns:1fr 1.35fr}.card-heading{flex-wrap:wrap}.metrics{grid-template-columns:repeat(2,1fr)}.calculators{gap:16px}.dilution-fields{gap:7px}.dilution-fields small{float:none;display:block}footer{flex-direction:column;gap:7px}}@media(max-width:650px){.sidebar{display:none}main{margin:0;padding:0 17px}.topbar{height:52px;font-size:10px}.heading{margin:24px 0 20px;align-items:flex-start;flex-direction:column;gap:16px}.heading h1{font-size:29px}.header-actions{flex-direction:row;width:100%}.header-actions button{flex:1}.context-strip{font-size:9px;gap:14px}.context-strip strong{margin-left:4px}.calibration-layout,.calculators{grid-template-columns:1fr}.plot-card{min-height:430px}.metrics{margin:16px 0}.metrics strong{font-size:23px}.metrics article>div{font-size:9px}.metrics small{font-size:8px}.reference summary small{display:block;margin:3px 0 0 22px}.reference-grid{grid-template-columns:1fr 1fr}.dilution-fields small{display:inline;float:right}.chart-container{min-height:285px}.equation-bar{gap:8px}.equation-bar small{margin:0;width:100%}.card-heading{flex-wrap:nowrap}.formula{font-size:12px}}
@media print{@page{size:A4;margin:14mm}body{background:#fff;color:#111;font:11px/1.4 Arial,sans-serif}.sidebar,main>*{display:none!important}main{margin:0;padding:0;max-width:none}#print-report{display:block!important}#print-report h1{font-size:24px;letter-spacing:0}#print-report h2{margin:18px 0 8px;font-size:15px}#print-report p{margin:8px 0}#print-report table{font-size:10px}#print-report th,#print-report td{border:1px solid #ccc;padding:6px}#print-report img{width:100%;max-height:320px;object-fit:contain}#print-report tr{break-inside:avoid}#print-report .print-results{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}#print-report .print-warning{border-left:3px solid #777;padding-left:8px}#print-report .print-footer{font-size:9px;color:#666;margin-top:20px}#print-report .print-block{break-inside:avoid}}

.reference-link{color:var(--green);text-decoration:underline;display:inline-block;margin:4px 0 14px}.reference-condition{color:#758870;font-size:11px;margin-bottom:16px}

/* Developer signature: high contrast, restrained moving metallic highlight. */
.site-footer{display:flex;justify-content:center;align-items:center;min-height:160px;margin-top:28px;padding:32px 16px;border-top:1px solid #d9e3da;background:radial-gradient(ellipse at center,rgba(213,228,215,.45),transparent 70%)}
.developer-signature{display:inline-flex;flex-direction:column;align-items:center;gap:5px;padding:8px 22px;text-align:center;border-radius:9px}
.signature-label{font-size:11px;font-weight:500;letter-spacing:2px;color:#668072}
.signature-name{display:block;font-size:clamp(24px,2.6vw,34px);font-weight:700;line-height:1.4;letter-spacing:-.6px;color:#175f50;background:linear-gradient(110deg,#174c40 0%,#174c40 37%,#618d68 44%,#c0a76b 49%,#618d68 54%,#174c40 62%,#174c40 100%);background-size:280% 100%;background-position:100% 50%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:signature-shine 5.5s ease-in-out infinite}
.signature-domain{font-size:10px;font-weight:500;letter-spacing:1.7px;color:#7a9180;transition:color .2s}
.signature-domain span{display:inline-block;margin-left:5px;transition:transform .2s}
.developer-signature:hover .signature-domain{color:#175f50}.developer-signature:hover .signature-domain span{transform:translate(2px,-2px)}
@keyframes signature-shine{0%,15%{background-position:100% 50%}75%,100%{background-position:0% 50%}}
@media(prefers-reduced-motion:reduce){.signature-name{animation:none;background:none;-webkit-text-fill-color:#175f50}.signature-domain,.signature-domain span{transition:none}}
@media(max-width:650px){.site-footer{min-height:148px;margin-top:22px;padding:26px 0}.signature-label{font-size:9px;letter-spacing:1.7px}.signature-domain{font-size:9px}.developer-signature{padding:8px 10px}}
@media print{.site-footer{display:none!important}}
/* Touch-first phone layout, including iPhone safe areas and narrow screens. */
.mobile-brand,.mobile-steps{display:none}
@media screen{html{-webkit-text-size-adjust:100%}button,a{touch-action:manipulation}.calibration-layout>*{min-width:0}.equation-bar strong{overflow-wrap:anywhere}}
@media screen and (max-width:820px){.calibration-layout{grid-template-columns:minmax(0,1fr)}.plot-card{min-height:460px}.chart-container{min-height:325px}.header-actions{flex-direction:row}.heading{align-items:flex-start;flex-direction:column}.header-actions .button{min-height:44px}.standards .table-wrap{max-height:none}}
@media screen and (max-width:760px){
.sidebar{display:none}main{margin:0;padding-top:env(safe-area-inset-top,0px);padding-right:max(16px,env(safe-area-inset-right,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
.topbar{height:60px}.desktop-breadcrumb{display:none}.mobile-brand{display:block;color:var(--green);font-size:17px;font-weight:750;letter-spacing:1.8px}.lab-pill{font-size:10px;padding:6px 10px}
.heading{gap:18px;margin:25px 0 20px}.heading h1{font-size:clamp(27px,6.8vw,38px);letter-spacing:-.9px;line-height:1.18;margin:10px 0}.heading p{font-size:13px}.eyebrow{font-size:10px;letter-spacing:1.6px}
.header-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.header-actions .button{padding:12px 10px;font-size:12px;border-radius:9px;min-height:46px}
.context-strip{flex-wrap:wrap;gap:8px 17px;font-size:11px;padding:13px 0;margin-bottom:15px}.context-strip .right{display:none}.context-strip strong{margin-left:4px}
.mobile-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:17px}.mobile-steps a{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;background:#eaf1e8;color:#45644c;padding:10px 12px;border-radius:8px;margin:0}.mobile-steps a span{font-size:10px;width:auto;color:#81937d}.mobile-steps a b{margin-left:auto;font-size:15px;font-weight:400}
.card{padding:18px 14px;border-radius:13px}.card-heading{flex-wrap:wrap;gap:8px}.card-heading>div{gap:8px}h2{font-size:16px}.section-number{font-size:11px}.count,.status-pill{font-size:10px;padding:5px 8px}.support{font-size:12px;line-height:1.7;margin:12px 0 16px}
.data-table{table-layout:fixed;width:100%}.data-table th:first-child{width:22px;padding:0}.data-table th:last-child{width:40px}.data-table th{font-size:11px;padding:10px 3px}.data-table th small{font-size:9px;margin-top:4px}.data-table td{padding:8px 3px}.row-index{font-size:11px}
input,.data-table input{font-size:16px;min-height:46px;padding:10px 8px;border-radius:7px}.data-table input::placeholder{font-size:11px}.delete-row{display:grid;place-items:center;width:36px;min-height:46px;padding:0;font-size:23px;border-radius:6px}.delete-row:active{background:#fff0e9}
.add-row{min-height:46px;font-size:13px;margin-top:14px;border-radius:8px}.message{font-size:12px;line-height:1.65;margin:15px 0}.primary.wide{min-height:50px;align-items:center;padding:12px 14px;font-size:13px;border-radius:8px}.text-button{min-height:44px;font-size:12px;padding:8px 5px}.table-actions{margin-top:8px}.tiny{font-size:10px;line-height:1.8;margin-top:4px}
.plot-card{min-height:475px;scroll-margin-top:16px}.chart-meta{justify-content:flex-start;flex-wrap:wrap;gap:10px 18px;font-size:11px;margin:17px 0 10px}.chart-container{min-height:320px}.equation-bar{gap:8px;padding:14px 12px;flex-direction:column;align-items:flex-start}.equation-bar>span{font-size:9px}.equation-bar strong{font-size:18px;max-width:100%}.equation-bar small{font-size:11px;margin:0}#empty-chart{left:55%;width:76%;padding:10px 5px}#empty-chart strong{font-size:14px}#empty-chart p{font-size:11px}.site-footer{margin-top:24px;padding:28px 0;min-height:160px}.signature-name{font-size:clamp(23px,6vw,31px)}.signature-label{font-size:10px}.signature-domain{font-size:10px}.developer-signature{max-width:100%;padding:8px 5px}
}
@media screen and (max-width:360px){main{padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}.card{padding:16px 10px}h2{font-size:14px}.count,.status-pill{font-size:9px}.data-table th{font-size:10px}.data-table th small{font-size:8px}.context-strip{gap:7px 12px}.signature-label{font-size:9px;letter-spacing:1.4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
