:root{color:#2b2427;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f2ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline-offset:3px;outline:3px solid #bd7b18}.skip-link{z-index:30;color:#3e2431;background:#fff;border-radius:.6rem;padding:.8rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.app-shell{background:radial-gradient(circle at 85% 0,#ead8d4 0,#0000 30%),#f7f2ed;min-height:100vh}.topbar{background:#ffffffe6;border-bottom:1px solid #ded2cc;justify-content:space-between;align-items:center;min-height:76px;padding:.8rem clamp(1rem,3vw,2.5rem);display:flex}.brand{align-items:center;gap:.75rem;display:flex}.brand__mark{color:#fff;background:#5b3748;border-radius:1rem;place-items:center;width:48px;height:48px;font-family:Georgia,serif;font-size:1.55rem;display:grid}.brand div{gap:.1rem;display:grid}.brand div span{text-transform:uppercase;letter-spacing:.08em;color:#705e66;font-size:.78rem}.status{background:#fff;border:1px solid #ded2cc;border-radius:999px;align-items:center;gap:.5rem;min-height:44px;padding:0 1rem;font-weight:700;display:flex}.status>span{border-radius:50%;width:.65rem;height:.65rem}.status--online>span{background:#3e8060}.status--offline>span{background:#a2533c}main{max-width:1400px;margin:0 auto;padding:clamp(1rem,3vw,2.5rem)}.hero{color:#fff;background:linear-gradient(135deg,#4d3040,#7c5064);border-radius:1.5rem;grid-template-columns:1fr auto;align-items:center;gap:2rem;padding:clamp(1.5rem,4vw,3.4rem);display:grid;box-shadow:0 18px 50px #462a3733}.hero h1{max-width:920px;margin:.45rem 0 .7rem;font-family:Georgia,serif;font-size:clamp(2rem,4.2vw,4rem);font-weight:500;line-height:1.04}.hero p{color:#f8ecef;max-width:850px;line-height:1.6}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#9c6f81;font-size:.74rem;font-weight:800}.hero .eyebrow{color:#e8c6d2}.version{color:#ead9df;margin-top:1rem;font-size:.9rem}.hero__seal{aspect-ratio:1;text-align:center;background:#ffffff14;border:1px solid #ffffff59;border-radius:50%;align-content:center;place-items:center;width:170px;display:grid}.hero__seal span{font-family:Georgia,serif;font-size:3.4rem}.hero__seal small{text-transform:uppercase;letter-spacing:.1em;max-width:130px}.notice,.safety-note,.feedback{border-radius:1rem;margin-top:1rem;padding:1rem 1.2rem}.notice{background:#edf6f0;border:1px solid #b8d6c3;justify-content:space-between;align-items:center;gap:1rem;display:flex}.notice__actions,.button-row{flex-wrap:wrap;gap:.65rem;display:flex}.safety-note{background:#fff;border:1px solid #ded2cc;flex-wrap:wrap;gap:.7rem;display:flex}.stepper{grid-template-columns:repeat(4,1fr);gap:.7rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.stepper li{color:#7c6971;background:#ffffffa6;border:1px solid #ded2cc;border-radius:.9rem;align-items:center;gap:.6rem;min-height:52px;padding:.6rem .8rem;font-weight:750;display:flex}.stepper span{background:#e7dfe2;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.stepper .is-active{color:#3f2934;background:#fff;border-color:#bfa8b2}.stepper .is-active span{color:#fff;background:#5b3748}.lab-card{background:#fff;border:1px solid #ded2cc;border-radius:1.4rem;margin-top:1rem;padding:clamp(1.2rem,2.8vw,2rem)}.card-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card-heading h2{margin:.25rem 0 0;font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.7rem);font-weight:500}.card-heading p{color:#725f67;max-width:820px;line-height:1.55}.pill{color:#624052;white-space:nowrap;background:#f4ecef;border-radius:999px;padding:.55rem .8rem;font-weight:750}.pill--safe{color:#286044;background:#e8f3ec}.consent-copy{background:#faf7f5;border-left:5px solid #9c6f81;border-radius:.5rem 1rem 1rem .5rem;margin:1rem 0;padding:1rem 1.2rem;line-height:1.65}.consent-copy p{margin:.35rem 0}.signature-heading{justify-content:space-between;align-items:end;gap:1rem;margin:1.2rem 0 .5rem;display:flex}.signature-heading div{gap:.2rem;display:grid}.signature-heading small,.signature-heading>span{color:#725f67}.signature-pad{touch-action:none;cursor:crosshair;background:linear-gradient(#fff,#fff) padding-box padding-box,repeating-linear-gradient(0deg,#0000,#0000 52px,#f2eaed 53px) border-box;border:2px dashed #bcaab2;border-radius:1rem;width:100%;height:clamp(260px,32vw,410px);display:block}.signature-pad--locked{cursor:default;background-color:#fbfdfb;border-style:solid;border-color:#79ad8d}.button-row{margin-top:1rem}.button{cursor:pointer;border:1px solid #0000;border-radius:.8rem;min-height:48px;padding:.75rem 1.1rem;font-weight:780}.button:disabled{cursor:not-allowed;opacity:.5}.button--primary{color:#fff;background:#5b3748}.button--ghost{color:#4b303c;background:0 0;border-color:#cdbdc4}.binding-result{background:#edf6f0;border:1px solid #9dc7ac;border-radius:1rem;gap:1rem;margin-top:1rem;padding:1rem;display:flex}.binding-result>span{color:#fff;background:#3e8060;border-radius:50%;flex:0 0 42px;place-items:center;height:42px;font-size:1.4rem;display:grid}.binding-result p{color:#456854;margin:.25rem 0}.binding-result code{overflow-wrap:anywhere}.summary-preview{background:#faf7f5;border:1px solid #ded2cc;border-radius:1.1rem;grid-template-columns:minmax(260px,440px) 1fr;align-items:center;gap:1.3rem;margin-top:1rem;padding:1rem;display:grid}.summary-preview img{object-fit:contain;border-radius:.8rem;width:100%;max-height:650px;display:block;box-shadow:0 10px 30px #4a2f3c24}.summary-preview p,.summary-preview small{color:#725f67}.feedback--success{color:#245a40;background:#edf6f0;border:1px solid #9dc7ac}.feedback--error{color:#7c2e26;background:#fff0ee;border:1px solid #d9a09a}.lab-card--start{border-top:6px solid #5b3748}.progress-line{color:#5b3748;min-height:1.5rem;margin:1rem 0 .4rem;font-weight:700}.critical-toggle{align-items:center;gap:.75rem;min-height:44px;margin-top:.75rem;font-weight:700;display:flex}.critical-toggle input{accent-color:#5b3748;width:24px;height:24px}.table-wrap{margin-top:1rem;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:650px}th,td{text-align:left;border-bottom:1px solid #eadfd9;padding:.9rem .7rem}th{color:#6e4d5b;font-size:.9rem}.passed{color:#236044;font-weight:800}.checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1.2rem 0;display:grid}.checks p{color:#236044;background:#edf6f0;border-radius:.8rem;margin:0;padding:.85rem}.file-actions{flex-wrap:wrap;gap:.75rem;display:flex}.file-button{justify-content:center;align-items:center;display:inline-flex}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.file-result{border-radius:.8rem;margin-top:1rem;padding:1rem;font-weight:800}.file-result--passed{color:#236044;background:#edf6f0}.file-result--failed{color:#7c2e26;background:#fff0ee}.result-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.result-grid article{background:#faf7f5;border:1px solid #ded2cc;border-radius:1rem;padding:1rem}.result-grid span,.result-grid strong{display:block}.result-grid span{color:#7b6870;margin-bottom:.5rem}.result-grid strong{color:#274f3d}.result-grid code{overflow-wrap:anywhere}.error-box,.approval{border-radius:1.2rem;gap:1rem;margin:1rem 0;padding:1.2rem;display:flex}.error-box{color:#7c2e26;background:#fff0ee;border:1px solid #d9a09a;flex-direction:column}.approval{color:#245a40;background:#edf6f0;border:2px solid #79af8d}.approval>span{color:#fff;background:#3e8060;border-radius:50%;flex:0 0 48px;place-items:center;height:48px;font-size:1.5rem;display:grid}.approval h2{margin:0}.approval p{margin:.45rem 0}.manual-note{color:#725f67}.preview-box{background:#faf7f5;border:1px solid #cdbdc4;border-radius:1rem;margin-top:1rem;padding:1.1rem}.preview-box ul{margin:.75rem 0;padding-left:1.25rem}.client-mode,.client-lock{min-height:100vh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:#f7f2ed}.client-mode__header{align-items:center;gap:.8rem;max-width:900px;margin:0 auto 1rem;display:flex}.client-mode__header div span,.client-mode__header div strong{display:block}.client-mode__header div span{color:#725f67}.client-mark{color:#fff;background:#5b3748;border-radius:1rem;flex:0 0 52px;place-items:center;width:52px;height:52px;font:700 1.7rem Georgia,serif;display:grid}.client-form,.client-lock__card{background:#fff;border:1px solid #ded2cc;border-radius:1.4rem;max-width:900px;margin:0 auto;padding:clamp(1.2rem,3vw,2.2rem);box-shadow:0 14px 40px #4a2f3c14}.client-form h1,.client-lock h1{margin:.35rem 0;font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:500}.client-form fieldset{border:1px solid #ded2cc;border-radius:1rem;gap:.5rem;margin:1.5rem 0;padding:1rem;display:grid}.client-form legend{padding:0 .4rem;font-weight:750}.client-form label,.client-lock label{gap:.5rem;font-weight:700;display:grid}.client-form fieldset label{align-items:center;min-height:44px;display:flex}.client-form input[type=radio]{width:22px;height:22px}.client-form textarea,.client-lock input{box-sizing:border-box;width:100%;min-height:54px;font:inherit;border:1px solid #bcaab2;border-radius:.8rem;padding:.85rem}.client-form textarea{resize:vertical;min-height:120px}.autosave{color:#2f6b4d;font-weight:750}.client-actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.client-lock{place-items:center;display:grid}.client-lock__card{width:min(100%,680px)}.client-lock__card .client-mark{margin-bottom:1rem}.client-lock__card .button{margin-top:1rem}.test-credential{color:#5b3748;background:#f3e8ed;border-radius:.8rem;margin:1rem 0;padding:.9rem}.inline-error{color:#8b3028;font-weight:700}@media (width<=850px){.hero{grid-template-columns:1fr}.hero__seal{display:none}.stepper{grid-template-columns:repeat(2,1fr)}.summary-preview{grid-template-columns:1fr}.summary-preview img{max-height:540px}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.topbar{align-items:flex-start}.brand div span{display:none}.status{padding:0 .7rem}.card-heading{display:grid}.stepper{grid-template-columns:1fr 1fr}.notice{flex-direction:column;align-items:flex-start}.signature-heading{flex-direction:column;align-items:start}.signature-pad{height:270px}.checks,.result-grid{grid-template-columns:1fr}}
