:root{color-scheme:light;--ink:#143443;--muted:#536b78;--accent:#096c87;--line:#d6e3e9;--surface:#f2f6fa;font-family:system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;background:var(--surface);color:var(--ink)}body{padding-bottom:170px}body>header{display:flex;align-items:center;gap:12px;padding:18px max(20px,calc((100vw - 1060px)/2));border:0;background:#0c2e40}body>header h1{font-size:1.35rem;letter-spacing:-.02em}body>header p{font-size:.875rem;margin-top:2px}.brand-mark{width:42px;height:42px;background:#b9ecff;color:#064356;display:grid;place-items:center;border-radius:14px;font-size:1.5rem;font-weight:800}.wrap{max-width:1100px;padding:22px 20px 30px}.workspace{max-width:960px;margin:auto}.part-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-radius:20px;padding:8px;background:#e3edf3;position:sticky;top:10px;z-index:10}.part-nav button{display:flex;align-items:center;justify-content:center;gap:9px;border-radius:14px;background:transparent;color:var(--muted);font-size:.9rem;padding:12px 8px}.part-nav button[aria-current=step]{background:white;color:#075d78;box-shadow:0 3px 12px #103e5212;font-weight:750}.part-number{display:grid;place-items:center;border-radius:50%;width:25px;height:25px;background:#d1e2eb;font-size:.85rem;flex-shrink:0}.part-nav button[aria-current=step] .part-number{background:var(--accent);color:white}.mobile-name{display:none}.part-lead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:24px 2px 18px}.eyebrow{font-size:.8rem;letter-spacing:.05em;font-weight:700;color:var(--muted)}.part-lead h2{font-size:1.55rem;margin:3px 0 0;letter-spacing:-.02em}.card{padding:24px;border:1px solid var(--line);border-radius:22px;box-shadow:0 4px 18px #0c354006}.card h2{font-size:1.1rem;margin:0 0 20px}.pair{gap:0 16px}label,.sample label{font-size:.94rem;font-weight:650;line-height:1.5}input,select,textarea{font-size:1rem;min-height:50px;padding:12px;border-radius:12px;background:#f9fbfd;border-color:#bcced9}input:focus,select:focus,textarea:focus{outline:3px solid #71bdd54d;border-color:#087d9e;background:white}button{min-height:48px;border-radius:14px;padding:12px 18px;background:var(--accent);font-weight:650}button.secondary{background:#e7f0f5;color:#194b61}button:focus-visible,summary:focus-visible{outline:3px solid #51accb;outline-offset:3px}input[type=checkbox]{width:22px!important;min-height:22px;vertical-align:middle;margin-right:6px;accent-color:var(--accent)}.small{font-size:.88rem;line-height:1.65}.method{background:#edf5f9;border-left:3px solid #65a6bd;border-radius:12px;font-size:.93rem;line-height:1.65;margin-top:16px}.method ul{padding-left:20px}.source-note{background:#fff8eb;border:1px solid #ebd9b3;border-radius:16px;margin-bottom:18px}.source{margin:0;background:transparent;border:0}.source-note summary,.sample-details summary,.result-details summary{cursor:pointer;min-height:50px;padding:14px;font-size:.94rem;font-weight:650}.source-note summary:hover,.sample-details summary:hover,.result-details summary:hover{color:var(--accent)}.source-note[open] summary,.sample-details[open] summary{border-bottom:1px solid var(--line)}[hidden]{display:none!important}.part-actions{display:flex;justify-content:space-between;gap:14px;padding:8px 0 18px}.part-actions button:last-child{margin-left:auto}.sample{position:relative;padding:20px;margin:16px 0;border-radius:20px;background:#f8fbfd;border:1px solid #cadde6;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.sample-title{font-size:1rem;display:flex;align-items:center;gap:6px;padding-bottom:6px}.sample-live{grid-column:1/-1;background:#dff2f9;color:#075970;border-radius:12px;padding:10px 14px;font-size:1.2rem;font-weight:750;font-variant-numeric:tabular-nums}.sample .specimen-label{grid-column:1/-1}.sample input{margin-top:6px}.sample .load-label,.sample .mass-label{font-weight:750}.sample .load-label input{border-color:#57a7c0;background:white;font-weight:750}.sample-details{grid-column:1/-1;border:1px solid var(--line);border-radius:14px;background:white;min-width:0}.sample-qa,.sample-photos{padding:16px;border-top:0;margin:0;gap:14px}.sample-qa>strong{display:none}.sample-photos label{margin-top:0}.photo-file{font-size:.875rem;padding:8px;width:100%;overflow:hidden}.photo-file::file-selector-button{font:inherit;background:#e6f2f8;color:#17566f;border:0;border-radius:8px;padding:9px;margin-right:8px}.photo-preview{border-radius:12px;max-height:260px;background:#f0f5f8}.delete-sample{grid-column:1/-1!important;justify-self:end;background:#fff0ee!important;color:#9e3e31!important;width:auto!important;font-size:.875rem}#qaStatus{max-height:none}#qaStatus li{margin:5px 0}.out{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.out button{min-width:0}.results{padding:22px;border-radius:18px;background:#0c3c52}.results b{font-size:1.7rem;font-variant-numeric:tabular-nums}.assessment{border-radius:14px;line-height:1.7;font-size:.95rem}.result-details{border:1px solid var(--line);border-radius:14px;margin:14px 0;overflow:hidden}.result-details>.method{margin:0;border:0}.report-meta{border:0;background:white;margin:0;padding:16px}.scroll,.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.table-scroll p{white-space:normal}table{min-width:650px}.mobile-sample-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.result-sample{padding:16px;border-radius:16px;border:1px solid var(--line);background:#f7fbfd}.result-sample>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.result-sample strong{font-size:1.25rem;color:#075d78;white-space:nowrap;font-variant-numeric:tabular-nums}.result-sample strong small{font-size:.8rem}.result-sample dl{margin:12px 0 0}.result-sample dl>div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:.875rem}.result-sample dt{color:var(--muted)}.result-sample dd{margin:0;text-align:right}.live-summary{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:min(960px,calc(100% - 40px));display:flex;align-items:center;gap:24px;padding:14px 20px;border-radius:20px;background:#102f43;color:white;box-shadow:0 8px 24px #0f33452b;z-index:30}.live-summary .eyebrow{color:#c1d7e3;font-size:.75rem}.live-summary strong{display:block;font-size:1.4rem;font-variant-numeric:tabular-nums}.live-sub{display:flex;flex-direction:column;font-size:.85rem;color:#d2e6ee;gap:4px;min-width:0;flex:1}.live-summary button{background:#b9ecff;color:#06465b;white-space:nowrap}.live-summary[data-status=pass]{border-left:5px solid #82c8a0}.live-summary[data-status=fail]{border-left:5px solid #f4aa99}#qualityResults .data th,#qualityResults .data td{white-space:normal}.report-card h2{border:0}.report-card .warning{font-size:.875rem}.sample-details,.result-details{scroll-margin-top:90px}@media(min-width:760px){.part-panel> .card .pair{grid-template-columns:repeat(2,minmax(0,1fr))}.part-panel:nth-of-type(3){max-width:800px;margin:auto}}@media(max-width:759px){body{padding-bottom:190px}body>header{padding:15px 18px}.wrap{padding:0 14px 24px}.part-nav{position:fixed;top:auto;bottom:0;left:0;right:0;gap:0;padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-radius:0;background:#f5f9fc;border-top:1px solid #cbdce6;z-index:40}.part-nav button{flex-direction:column;gap:3px;padding:5px 2px;min-height:58px;font-size:.78rem;border-radius:13px}.part-number{width:30px;height:26px;border-radius:20px;background:transparent}.part-nav button[aria-current=step]{box-shadow:none;background:#e0f0f7}.desktop-name{display:none}.mobile-name{display:inline}.part-lead{margin:20px 3px 16px}.part-lead h2{font-size:1.35rem}.part-lead button{font-size:.85rem;padding:10px 12px}.card{padding:18px;border-radius:18px;margin-bottom:14px}.pair{grid-template-columns:1fr}.sample{padding:15px;margin:12px 0;gap:12px}.sample label{font-size:.9rem}.sample-qa,.sample-photos{grid-template-columns:1fr;padding:13px}.results{padding:18px;gap:10px}.results b{font-size:1.3rem}.mobile-sample-results{grid-template-columns:1fr}.live-summary{bottom:calc(80px + env(safe-area-inset-bottom));width:calc(100% - 24px);gap:12px;padding:10px 14px;border-radius:16px}.live-summary strong{font-size:1.2rem}.live-summary button{min-height:40px;padding:8px 12px;font-size:.85rem}.live-sub{font-size:.75rem}.live-sub #liveStatus{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.part-actions{padding:8px 0 15px}#quickSave{min-height:44px}.result-sample strong{font-size:1.35rem}.sample-photos .photo-preview{max-height:220px}.file-controls{width:100%}.warning{font-size:.88rem}}@media(max-width:360px){.part-lead h2{font-size:1.2rem}.live-sub{display:none}.live-summary>div:first-child{flex:1}}@media(prefers-reduced-motion:no-preference){button,input,select{transition:background .15s,border-color .15s}.part-panel{animation:partReveal .18s ease-out}@keyframes partReveal{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}@media print{body{padding-bottom:0}.part-nav,.part-lead,.part-actions,.live-summary,.source-note{display:none!important}.part-panel{display:block!important}.part-panel:not(#part-3){display:none!important}#part-3>.card:not(.report-card){display:none}.mobile-sample-results{display:none}.result-details{border:0}details>*{display:block!important}details>summary{display:none!important}.report-card{break-inside:auto}.workspace,.wrap{max-width:none;padding:0}table{min-width:0}}

.buttons>label{flex:1 1 220px;min-width:0}.buttons>label input{max-width:100%}.result-details #qaStatus{margin:0;border:0}

.data-transfer h2{font-size:1.05rem}.data-transfer .buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.data-transfer button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:12px 8px;font-size:.9rem}.data-transfer #dataFileStatus:empty{display:none}.data-transfer #dataFileStatus{overflow-wrap:anywhere}.data-transfer p{margin:8px 0}.data-transfer{padding:16px 18px}@media(max-width:360px){.data-transfer .buttons{grid-template-columns:1fr}}

/* Compact footer actions and an accessible, on-demand data menu. */
.footer-actions{display:flex;gap:8px;align-items:center;margin-left:auto}.footer-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:72px;min-height:48px;padding:10px 12px}.footer-actions svg{width:18px;height:18px;flex-shrink:0}#openDataMenu{background:#e7f0f5;color:#194b61}
dialog.data-transfer{box-sizing:border-box;width:min(520px,calc(100% - 24px));max-height:calc(100dvh - 32px);margin:auto;padding:22px;border:1px solid #d6e3e9;border-radius:24px;background:#fff;color:#143443;box-shadow:0 18px 60px #102f4333;overflow-y:auto;overscroll-behavior:contain}dialog.data-transfer:not([open]){display:none}dialog.data-transfer::backdrop{background:#102f4373}.data-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.data-menu-head h2{margin:0;font-size:1.15rem;line-height:1.5}#closeDataMenu{min-width:48px;min-height:48px;padding:8px;font-size:1.2rem}.data-transfer .buttons{grid-template-columns:1fr;gap:12px;margin:18px 0}.data-transfer .buttons button{min-height:56px;font-size:1rem}.data-transfer .small{color:#536b78}button:focus-visible{outline:3px solid #096c87;outline-offset:3px}.live-summary button:focus-visible{outline-color:#fff}.data-transfer #dataFileStatus{padding:12px;border-radius:12px;background:#edf5f9;color:#143443}
@media(max-width:759px){dialog.data-transfer{margin:auto auto 12px;border-radius:24px;max-height:calc(100dvh - 24px);padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.footer-actions button{min-height:48px;min-width:68px;padding:8px}.live-summary{gap:8px}.live-summary strong{font-size:1.1rem}}
@media(max-width:480px){.live-summary .live-sub{display:none}.live-summary>div:first-child{flex:1;min-width:0}}

dialog.data-transfer[data-fallback][open]{position:fixed;inset:auto auto 12px 50%;transform:translateX(-50%);z-index:1000;box-shadow:0 0 0 100vmax #102f4373,0 18px 60px #102f4333}

.report-action-body{padding:14px}.report-action-body h3{font-size:.95rem;margin:8px 0}.report-action-body>button{width:100%;margin:8px 0}.report-action-body .out{margin-bottom:10px}
