:root{color:#183c35;background:#eef5f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{min-height:52px;padding:.75rem 1.3rem;border:2px solid #087f69;border-radius:12px;color:#fff;background:#087f69;font-weight:700;cursor:pointer}button:hover{background:#066a59}button:focus-visible,input:focus-visible{outline:4px solid #f6b88d;outline-offset:3px}button:disabled{cursor:wait;opacity:.65}.page{width:min(100% - 2rem,780px);margin:0 auto;padding:2.5rem 0 4rem}.hero{margin-bottom:1.5rem}.hero h1{margin:.2rem 0 .6rem;font-size:clamp(2rem,6vw,3.3rem);line-height:1.05}.hero p:last-child{max-width:62ch;margin-bottom:0;color:#35534b;font-size:1.08rem}.eyebrow,.progress{margin:0;color:#087f69;font-size:.85rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.demo-notice{margin:1.5rem 0;padding:1rem 1.2rem;border-left:5px solid #e27035;border-radius:8px;background:#fff5ec;color:#713817}.card,.diagram-card{padding:clamp(1.3rem,4vw,2.2rem);border:1px solid #d7e5e1;border-radius:20px;background:#fff;box-shadow:0 18px 42px #183c3514}.card h2{margin:.35rem 0 1.4rem;font-size:clamp(1.6rem,4vw,2.1rem)}label{display:block;margin-bottom:.55rem;font-weight:700}.measurement-input{display:flex;align-items:center;max-width:360px;border:2px solid #8aa49d;border-radius:14px;background:#fff;overflow:hidden}.measurement-input:focus-within{border-color:#087f69}.measurement-input input{width:100%;min-height:62px;padding:0 1rem;border:0;outline:none;color:#183c35;font-size:1.45rem}.measurement-input span{padding:0 1rem;color:#526b65;font-weight:700}.sign-help{margin:.8rem 0 0;color:#35534b}.error{min-height:1.5rem;margin:.8rem 0;color:#a43d22;font-weight:700}.actions{display:flex;justify-content:flex-end;gap:.8rem;margin-top:1.3rem}.secondary{border-color:#9cb2ac;color:#183c35;background:#fff}.secondary:hover{background:#eef5f2}.review-list,.result-list{margin:0;padding:0;list-style:none}.review-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid #d7e5e1}.review-list li div{display:grid;gap:.2rem}.review-list span,.timestamp{color:#526b65}.text-button{min-height:44px;padding:.45rem .7rem;border:0;color:#087f69;background:transparent}.text-button:hover{background:#eef5f2}.result{display:grid;gap:1rem}.result-list{display:grid;gap:.75rem}.result-list li{padding-left:1.5rem;position:relative}.result-list li:before{content:"";width:.65rem;height:.65rem;border-radius:50%;background:#f28c52;position:absolute;left:0;top:.45rem}.timestamp{margin-bottom:0;font-size:.9rem}.diagram-card{padding:.8rem}.diagram-card img{display:block;width:100%;height:auto}.result-actions{margin-top:0}@media(max-width:560px){.page{width:min(100% - 1rem,780px);padding-top:1.25rem}.actions,.result-actions{flex-direction:column-reverse}.actions button{width:100%}}:root{--miami-950: #082b35;--miami-900: #0b3741;--miami-800: #0d5058;--miami-700: #087d7c;--miami-600: #009f9a;--miami-500: #04beb5;--miami-400: #2dd8cb;--miami-200: #b7f3ed;--miami-100: #dcf9f5;--miami-50: #f1fcfa;--ink-950: #102a3a;--ink-700: #3d5965;--ink-500: #6f858e;--line: #dce9e8;--surface: #ffffff;--canvas: #f4f9f8;color:var(--ink-950);background:var(--canvas)}body{background:radial-gradient(circle at 82% 0%,rgb(45 216 203 / 9%),transparent 30rem),var(--canvas)}button{border-color:var(--miami-600);background:linear-gradient(135deg,var(--miami-600),var(--miami-500));box-shadow:0 8px 18px #009f9a2e}button:hover{border-color:var(--miami-700);background:linear-gradient(135deg,var(--miami-700),var(--miami-600))}button:focus-visible,input:focus-visible{outline-color:var(--miami-400)}.app-shell{display:grid;grid-template-columns:192px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:1.45rem .85rem;color:#fff;background:radial-gradient(circle at 30% 4%,rgb(45 216 203 / 25%),transparent 12rem),linear-gradient(170deg,#0b3342,#081f35 70%,#071a2b);box-shadow:10px 0 36px #081f351f;z-index:2}.brand{display:flex;align-items:center;gap:.7rem;padding:.35rem .45rem 1.8rem}.brand>div{display:grid;gap:.05rem}.brand strong{font-size:.95rem;letter-spacing:-.02em}.brand span:last-child{color:#ffffff9e;font-size:.62rem}.brand-mark{position:relative;display:grid;gap:.19rem;place-items:center;width:28px;height:38px}.brand-mark:before{content:"";position:absolute;width:3px;height:36px;border-radius:999px;background:linear-gradient(var(--miami-400),#87fff4);transform:rotate(9deg)}.brand-mark i{position:relative;display:block;width:9px;height:9px;border:2px solid var(--miami-200);border-radius:50%;background:var(--miami-800)}.sidebar nav{display:grid;gap:.5rem}.sidebar .nav-item{display:flex;align-items:center;justify-content:flex-start;gap:.7rem;width:100%;min-height:48px;padding:.7rem .8rem;border:1px solid transparent;border-radius:10px;box-shadow:none;color:#ffffffdb;background:transparent;font-size:.82rem}.sidebar .nav-item:hover,.sidebar .nav-item.is-active{border-color:#2dd8cb38;background:linear-gradient(90deg,#04beb547,#04beb51a)}.sidebar .nav-item span{font-size:1.15rem;color:var(--miami-400)}.privacy-badge{display:flex;align-items:center;gap:.65rem;margin-top:auto;padding:.75rem;border:1px solid rgb(183 243 237 / 14%);border-radius:12px;color:#ffffffa8;background:#ffffff0d;font-size:.66rem}.privacy-badge>span{display:grid;width:26px;height:26px;border-radius:50%;place-items:center;color:var(--miami-950);background:var(--miami-400);font-weight:900}.privacy-badge p{display:grid;margin:0}.privacy-badge strong{color:#fff;font-size:.7rem}.workspace{min-width:0;padding:1.3rem clamp(1.2rem,3vw,2.7rem) 2rem}.workspace-header{display:grid;grid-template-columns:minmax(190px,.48fr) minmax(420px,1.3fr);align-items:center;gap:2rem;max-width:1460px;margin:0 auto 1rem}.page-intro h1{margin:.05rem 0;font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.1;letter-spacing:-.035em}.page-intro>p:last-child{margin:0;color:var(--ink-500);font-size:.78rem}.eyebrow,.section-kicker,.progress{color:var(--miami-700)}.stepper{display:flex;justify-content:stretch;margin:0;padding:0;list-style:none}.stepper li{position:relative;display:grid;flex:1;gap:.28rem;justify-items:center;min-width:74px;color:var(--ink-500);font-size:.67rem;text-align:center}.stepper li:before{content:"";position:absolute;top:14px;right:50%;width:100%;height:2px;background:var(--line);transform:translate(-50%);z-index:-1}.stepper li:first-child:before{display:none}.stepper li>span{display:grid;width:29px;height:29px;border:2px solid var(--canvas);border-radius:50%;place-items:center;color:var(--ink-700);background:#e8efee;box-shadow:0 0 0 1px var(--line);font-size:.68rem;font-weight:800}.stepper li>strong{font-weight:700}.stepper li.is-complete:before,.stepper li.is-active:before{background:var(--miami-400)}.stepper li.is-complete>span{color:var(--miami-950);background:var(--miami-200);box-shadow:0 0 0 1px var(--miami-400)}.stepper li.is-active{color:var(--miami-700)}.stepper li.is-active>span{color:#fff;background:linear-gradient(135deg,var(--miami-600),var(--miami-400));box-shadow:0 0 0 1px var(--miami-500),0 5px 12px #04beb540}.demo-notice{max-width:1460px;margin:0 auto .85rem;padding:.65rem .85rem;border:1px solid #bde9e4;border-left:4px solid var(--miami-500);border-radius:8px;color:var(--miami-800);background:var(--miami-50);font-size:.72rem}.workbench{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.35fr);gap:clamp(.9rem,2vw,1.5rem);align-items:stretch;max-width:1460px;margin:0 auto}.measurement-column{min-width:0}.card,.live-panel{border:1px solid var(--line);border-radius:15px;background:#fffffff5;box-shadow:0 16px 42px #102a3a12}.measurement-column>.card,.measurement-column>.result{min-height:560px}.card{padding:clamp(1.25rem,2.6vw,2rem)}.card h2,.live-panel h2{margin:.1rem 0;color:var(--ink-950);font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.15;letter-spacing:-.025em}.card-heading,.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.section-kicker{margin:0;font-size:.66rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.step-badge,.count-badge{flex:0 0 auto;padding:.34rem .64rem;border-radius:999px;color:var(--miami-800);background:var(--miami-100);font-size:.7rem;font-weight:850}.input-explanation{max-width:42ch;min-height:4.5rem;margin:1.6rem 0 1.35rem;color:var(--ink-700);font-size:.86rem}.input-card form{display:flex;flex-direction:column;min-height:325px}label{color:var(--ink-950);font-size:.8rem}.measurement-input{max-width:none;border-color:#adc3c1;border-radius:10px;box-shadow:inset 0 1px 2px #102a3a0a}.measurement-input:focus-within{border-color:var(--miami-500);box-shadow:0 0 0 4px #2dd8cb1f}.measurement-input input{min-height:58px;color:var(--ink-950);font-size:1.35rem;font-weight:700}.measurement-input span{color:var(--ink-500)}.sign-help{display:grid;min-height:3rem;margin-top:.65rem;color:var(--ink-500);font-size:.72rem}.error{margin:.35rem 0;font-size:.76rem}.input-card .actions{margin-top:auto}.actions{gap:.7rem}.actions button{min-width:110px}.secondary{border-color:#c5d5d3;color:var(--ink-700);background:#fff;box-shadow:none}.secondary:hover{border-color:var(--miami-300, var(--miami-400));color:var(--miami-800);background:var(--miami-50)}.text-button{color:var(--miami-700);box-shadow:none}.text-button:hover{color:var(--miami-900);background:var(--miami-100)}.review-list li{border-color:var(--line)}.review-list span,.timestamp{color:var(--ink-500)}.result{display:flex;flex-direction:column}.result>.card{flex:1;box-shadow:none}.result-list li:before{background:var(--miami-500)}.result-actions{padding:0 .2rem .2rem}.live-panel{min-width:0;min-height:560px;padding:clamp(1.25rem,2.4vw,1.8rem)}.panel-heading{padding-bottom:1.1rem;border-bottom:1px solid var(--line)}.visualisation-grid{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(210px,.8fr);gap:1rem;align-items:center;min-height:400px}.live-diagram{min-width:0;padding:.7rem;border-radius:14px;background:#f8fcfb}.live-diagram svg,.live-diagram img{display:block;width:100%;height:auto;max-height:560px}.diagram-side-label{fill:var(--ink-500);font-size:13px;font-weight:700}.diagram-point-label{fill:var(--ink-700);font-size:14px;font-weight:750}.diagram-value-label{fill:var(--ink-950);font-size:16px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:5px}.diagram-measurement-line{stroke:#cbdad8;stroke-width:6;stroke-linecap:round;stroke-dasharray:7 8;transition:all .18s ease}.diagram-measurement-line.is-measured{stroke:var(--miami-500);stroke-dasharray:none}.diagram-marker{fill:#fff;stroke:#b8cbc8;stroke-width:4;transition:all .18s ease}.diagram-marker.is-left.is-measured{fill:var(--miami-200);stroke:var(--miami-600)}.diagram-marker.is-reference{fill:var(--miami-950);stroke:var(--miami-400)}.diagram-plumb-line{stroke:var(--miami-500);stroke-width:4;stroke-dasharray:10 8}.diagram-plumb-label{fill:var(--miami-700);font-size:13px;font-weight:800}.diagram-plumb-offset{stroke:#e0c4b3;stroke-width:5;stroke-linecap:round}.diagram-plumb-offset.is-measured{stroke:#e27035}.diagram-plumb-span{stroke:#e27035;stroke-width:5;stroke-linecap:round}.diagram-marker.is-plumb{fill:#fff;stroke:#e0c4b3}.diagram-marker.is-plumb.is-measured{fill:#fff5ec;stroke:#e27035}.unconfirmed-tag{color:var(--ink-500);font-style:normal;font-weight:650;font-size:.68rem}.live-results{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.live-results li{display:grid;grid-template-columns:30px 1fr;gap:.65rem;align-items:center;min-height:54px;padding:.55rem .75rem;border:1px solid var(--line);border-radius:10px;background:#fff;transition:border-color .15s ease,transform .15s ease}.live-results li.is-current{border-color:var(--miami-400);background:var(--miami-50);transform:translate(-3px)}.result-index{display:grid;width:28px;height:28px;border-radius:50%;place-items:center;color:var(--miami-800);background:var(--miami-100);font-size:.68rem;font-weight:850}.live-results li>div{display:grid;gap:.2rem;min-width:0}.live-results strong{font-size:.78rem}.live-results li>div>span{color:var(--miami-700);font-size:.7rem;line-height:1.3}.live-results li>div>span.is-pending{color:var(--ink-500)}.reference-note{display:flex;align-items:center;gap:.75rem;padding:.75rem .9rem;border:1px solid #bcebe6;border-radius:10px;color:var(--miami-800);background:var(--miami-50);font-size:.7rem}.reference-note>span{display:grid;flex:0 0 auto;width:25px;height:25px;border-radius:50%;place-items:center;color:#fff;background:var(--miami-600);font-weight:900;font-family:Georgia,serif}.reference-note p{margin:0}@media(max-width:1120px){.workspace{padding-inline:1.2rem}.workspace-header{grid-template-columns:180px 1fr;gap:1rem}.visualisation-grid{grid-template-columns:1fr;align-items:start}.live-diagram{max-width:500px;margin:0 auto}.live-results{grid-template-columns:repeat(3,1fr)}.live-results li{grid-template-columns:1fr;justify-items:start}}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;display:grid;grid-template-columns:auto 1fr;align-items:center;height:auto;padding:.7rem 1rem}.brand{padding:0}.brand-mark{height:31px}.brand-mark:before{height:29px}.brand-mark i{width:7px;height:7px}.sidebar nav{justify-self:end}.sidebar .nav-item{min-height:42px;width:auto}.privacy-badge{display:none}.workspace-header{grid-template-columns:1fr}.page-intro{display:grid;grid-template-columns:1fr auto;align-items:end}.page-intro .eyebrow{grid-column:1 / -1}.workbench{grid-template-columns:1fr}.measurement-column>.card,.measurement-column>.result,.live-panel{min-height:auto}}@media(max-width:560px){.workspace{padding:1rem .6rem 2rem}.brand span:last-child,.sidebar .nav-item span{display:none}.stepper{overflow-x:auto;padding:.35rem .1rem .6rem}.stepper li{flex:0 0 78px}.demo-notice{font-size:.68rem}.card,.live-panel{padding:1.1rem;border-radius:12px}.input-explanation{min-height:auto}.live-results{grid-template-columns:1fr}.live-results li{grid-template-columns:30px 1fr}}.print-preview{min-height:100vh;padding:1.25rem 1rem 2.5rem;background:#e7eeed}.print-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;max-width:210mm;margin:0 auto 1rem}.print-toolbar p{margin:0;color:var(--ink-500);font-size:.85rem;font-weight:700}.print-sheet{box-sizing:border-box;width:min(100%,210mm);min-height:297mm;margin:0 auto;padding:16mm 14mm 18mm;background:#fff;box-shadow:0 18px 48px #102a3a24}.print-sheet-header{display:grid;gap:.25rem;margin-bottom:1.2rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}.print-sheet-header h1{margin:0;font-size:1.7rem}.print-sheet-header p{margin:0;color:var(--ink-500)}.print-diagram{margin:0 0 1.4rem;padding:.4rem}.print-diagram svg{display:block;width:100%;height:auto}.print-results{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.print-results li{display:grid;gap:.15rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.print-results strong{font-size:.92rem}.print-results span{color:var(--ink-700);font-size:.95rem}@media print{@page{size:A4;margin:12mm}body{background:#fff}.print-preview{min-height:0;padding:0;background:#fff}.print-toolbar{display:none!important}.print-sheet{width:100%;min-height:0;margin:0;padding:0;box-shadow:none}.print-diagram{break-inside:avoid}}
