:root{color:#272722;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#f4f2ed;--panel:#fffefa;--paper:#fbfaf6;--ink:#272722;--muted:#85847c;--line:#e9e6dd;--soft:#f3f1eb;--accent:#d46a47;--accent-dark:#b95031;--green:#3a8261;--green-bg:#edf5ef;--shadow:0 14px 36px #332e250e;background:#f4f2ed;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}.app{background:var(--bg);min-height:100vh;color:var(--ink);transition:background .2s,color .2s}.app.dark{--bg:#1d1e1c;--panel:#252623;--paper:#21221f;--ink:#efeee8;--muted:#a2a198;--line:#3b3c37;--soft:#2e2f2b;--accent:#e4815e;--accent-dark:#f19371;--green:#8bc19f;--green-bg:#26372d;--shadow:0 14px 36px #0000002e}.topbar{border-bottom:1px solid color-mix(in srgb,var(--line),transparent 22%);justify-content:space-between;align-items:center;max-width:1280px;height:74px;margin:auto;padding:0 42px;display:flex}.brand{color:var(--ink);align-items:center;gap:11px;text-decoration:none;display:flex}.brand-mark{background:var(--accent);color:#fffaf4;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.brand b{letter-spacing:-.7px;font:800 17px/1.1 Manrope,sans-serif;display:block}.brand b span{color:var(--accent)}.brand small{letter-spacing:1.12px;color:var(--muted);margin-top:4px;font:500 8px DM Mono,monospace;display:block}.header-actions{align-items:center;gap:11px;display:flex}.status{color:var(--muted);align-items:center;gap:7px;margin-right:7px;font:500 11px DM Mono,monospace;display:flex}.status i,.cal-dot{background:#c4a86d;border-radius:50%;width:7px;height:7px;display:inline-block}.status.is-ready i,.cal-dot.done{background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green),transparent 85%)}.icon-button{border:1px solid var(--line);background:var(--panel);width:36px;height:36px;color:var(--ink);border-radius:9px;place-items:center;transition:background .15s,border .15s;display:grid}.icon-button:hover{background:var(--soft);border-color:#d4d0c7}.icon-button:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb,var(--accent),transparent 50%);outline-offset:2px}.tool-section{max-width:1138px;margin:0 auto;padding:12px 24px 0}.tool-heading{justify-content:space-between;align-items:flex-end;margin:20px 0 0;display:flex}.eyebrow{letter-spacing:1.45px;color:var(--accent);align-items:center;gap:8px;font:500 10px DM Mono,monospace;display:flex}.eyebrow-dot{background:var(--accent);border-radius:50%;width:6px;height:6px}h1,h2,p{margin-top:0}.tool-heading h1{letter-spacing:-1.25px;margin:11px 0 7px;font:700 34px/1.17 Manrope,sans-serif}.tool-heading p{color:var(--muted);margin:0;font-size:13px}.mobile-break{display:none}.calibration-pill{border:1px solid var(--line);background:var(--panel);border-radius:11px;align-items:center;gap:10px;min-width:342px;padding:12px 13px;display:flex;box-shadow:0 3px 10px #2d281e06}.calibration-pill>span:nth-child(2){flex:1}.calibration-pill b,.calibration-pill small{display:block}.calibration-pill b{font-size:11px;font-weight:600}.calibration-pill small{color:var(--muted);margin-top:3px;font-size:9px}.calibrate-small{color:var(--accent-dark);white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;padding:7px 1px 7px 5px;font-size:10px;font-weight:700;display:flex}.instrument{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.control-row{border-bottom:1px solid var(--line);align-items:center;gap:22px;min-height:66px;padding:12px 22px;display:flex}.control-group{align-items:center;gap:11px;display:flex}.control-label{letter-spacing:1px;color:var(--muted);font:500 9px DM Mono,monospace}.segmented{background:var(--soft);border-radius:8px;gap:2px;padding:3px;display:flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:6px;min-width:36px;height:29px;padding:0 10px;font-size:11px;font-weight:600}.segmented button.selected{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #0000001a}.orientation-group{margin-left:5px}.orientation-group .segmented button{place-items:center;width:33px;min-width:33px;display:grid}.orientation-glyph{border:1px solid;border-radius:2px;width:16px;height:13px;display:block;position:relative}.orientation-glyph:after{content:"";background:currentColor;width:3px;height:1px;position:absolute;top:3px;left:2px;box-shadow:0 3px,0 6px}.vertical-glyph{width:12px;height:16px}.vertical-glyph:after{width:1px;height:3px;top:2px;left:2px;box-shadow:3px 0,6px 0}.control-spacer{flex:1}.zoom-controls{color:var(--muted);align-items:center;gap:10px;font:500 10px DM Mono,monospace;display:flex}.icon-button.compact{border-radius:7px;width:29px;height:29px}.ruler-frame{border-bottom:1px solid var(--line);background:#fbfaf6;min-height:114px;display:flex;position:relative;overflow:hidden}.dark .ruler-frame{background:#20211f}.zero-rail{border-right:1px solid var(--line);z-index:1;width:45px;color:var(--accent);background:#f6f4ef;flex:0 0 45px;justify-content:center;align-items:flex-start;padding-top:17px;font:600 10px DM Mono,monospace;display:flex}.zero-rail span:after{content:"";background:var(--accent);width:1px;height:62px;position:absolute;top:38px;left:44px}.ruler-viewport{scrollbar-width:thin;scrollbar-color:#cbc6ba transparent;overscroll-behavior-x:contain;flex:1;overflow:auto}.ticks{background-image:linear-gradient(#0000 0 28px,#b6b2a8cc 28px 29px);background-size:100% 100%;position:relative}.ticks.horizontal .tick{border-left:1px solid #aca99f;height:29px;position:absolute;top:0}.ticks.horizontal .tick.mid{border-color:#c8c4ba;height:21px}.ticks.horizontal .tick.major{border-color:#8f8b80;height:39px}.tick-label{color:#77766e;font:10px DM Mono,monospace;position:absolute;top:43px;left:-8px}.ticks.vertical .tick{border-top:1px solid #aca99f;width:29px;position:absolute;left:0}.ticks.vertical .tick.mid{border-color:#c8c4ba;width:21px}.ticks.vertical .tick.major{border-color:#8f8b80;width:39px}.ticks.vertical .tick-label{top:-7px;left:43px}.ruler-frame.vertical{height:560px;min-height:0}.ruler-frame.vertical .zero-rail{flex-basis:40px;align-items:center;width:40px;padding:15px 0 0}.ruler-frame.vertical .zero-rail span:after{width:47px;height:1px;top:38px;left:39px}.ruler-frame.vertical .ruler-viewport{overflow:hidden auto}.ruler-frame.vertical .ticks{background-image:linear-gradient(90deg,#0000 0 28px,#b6b2a8cc 28px 29px)}.ruler-meta{height:36px;color:var(--muted);justify-content:space-between;align-items:center;padding:0 22px;font-size:9px;display:flex}.ruler-meta>span:first-child{align-items:center;gap:7px;display:flex}.sample-tick{border-left:1px solid #8f8b80;height:12px}.scale-note{font:10px DM Mono,monospace}.measurement-panel{border-top:1px solid var(--line);overflow-x:auto}.measurement-header{justify-content:space-between;align-items:center;min-width:460px;height:66px;padding:0 21px;display:flex}.measurement-header>div:first-child{align-items:center;gap:10px;display:flex}.measure-icon{background:var(--soft);width:30px;height:30px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.measurement-header b,.measurement-header small{display:block}.measurement-header b{font-size:11px;font-weight:650}.measurement-header small{color:var(--muted);margin-top:4px;font-size:9px}.measure-actions{align-items:center;gap:8px;display:flex}.mode-button{border:1px solid var(--line);background:var(--panel);height:34px;color:var(--ink);border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:10px;font-weight:650;display:flex}.mode-button>span{border:1.5px solid var(--muted);border-radius:50%;width:7px;height:7px}.mode-button:hover,.mode-button.mode-on{border-color:var(--accent);color:var(--accent-dark)}.clear-button{width:32px;height:32px}.measure-area{background-color:#f8f7f2;background-image:linear-gradient(90deg,#9f9a8c17 1px,#0000 1px),linear-gradient(#9f9a8c17 1px,#0000 1px);background-size:24px 24px;height:210px;position:relative;overflow:hidden}.surface-hint{color:#99978e;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:10px;display:flex;position:absolute;inset:0}.surface-hint small{color:#aaa89f;font-size:9px}.hint-crosshair{border:1px dashed #c9c5ba;border-radius:50%;place-items:center;width:30px;height:30px;margin-bottom:2px;display:grid;position:relative}.hint-crosshair span{border-left:1px solid #aaa69b;height:12px}.hint-crosshair i{border-top:1px solid #aaa69b;width:12px;position:absolute}.point{z-index:2;background:var(--accent);color:#fff;pointer-events:none;border:2px solid #fff;border-radius:50%;place-items:center;width:22px;height:22px;margin:-11px 0 0 -11px;font:600 9px DM Mono,monospace;display:grid;position:absolute;box-shadow:0 2px 7px #30261e40}.measurement-line{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.measurement-line line{stroke:var(--accent);stroke-width:2px;stroke-dasharray:5 3}.distance-badge{z-index:3;background:var(--ink);color:var(--panel);white-space:nowrap;pointer-events:none;border-radius:7px;padding:7px 10px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 12px #0003}.distance-badge small,.distance-badge b{text-align:center;display:block}.distance-badge small{letter-spacing:.8px;opacity:.65;font:8px DM Mono,monospace}.distance-badge b{margin-top:3px;font:600 12px DM Mono,monospace}.distance-badge b span{color:var(--accent);font-size:10px}.inline-warning{color:#866d48;background:#fbf2e5;border-top:1px solid #eee1c9;padding:9px 20px;font-size:10px}.inline-warning button{color:#765b35;background:0 0;border:0;font-weight:700;text-decoration:underline}.bottom-controls{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;min-height:55px;padding:0 20px;display:flex}.precision-note{color:var(--muted);align-items:center;gap:8px;font-size:9px;display:flex}.precision-note svg{color:#b79557;flex-shrink:0}.precision-note b{color:var(--ink);font-weight:650}.text-button{color:var(--accent-dark);white-space:nowrap;background:0 0;border:0;align-items:center;gap:7px;padding:7px 0;font-size:10px;font-weight:650;display:flex}.error-message{color:#a54b35;background:#fff1eb;border:1px solid #efd4c8;border-radius:7px;align-items:center;gap:8px;margin:10px 20px 0;padding:9px 10px;font-size:10px;display:flex}.dark .error-message{color:#f1ad96;background:#432c27;border-color:#654339}.error-message button{color:inherit;background:0 0;border:0;place-items:center;margin-left:auto;display:grid}.how-section{max-width:1070px;margin:55px auto 0;padding:0 34px}.how-title{justify-content:space-between;align-items:flex-end;gap:35px;display:flex}.how-title h2{letter-spacing:-.65px;margin:8px 0 0;font:650 21px Manrope,sans-serif}.how-title>p{max-width:390px;color:var(--muted);margin:0 0 2px;font-size:11px;line-height:1.7}.steps{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:0;margin-top:23px;display:grid}.steps article{gap:13px;padding:20px 18px 19px 0;display:flex}.steps article+article{border-left:1px solid var(--line);padding-left:19px}.step-number{color:var(--accent);padding-top:1px;font:11px DM Mono,monospace}.steps b{font-size:11px;font-weight:650}.steps p{color:var(--muted);margin:6px 12px 0 0;font-size:10px;line-height:1.55}.disclaimer{color:var(--muted);align-items:flex-start;gap:8px;margin-top:15px;font-size:9px;line-height:1.6;display:flex}.disclaimer svg{color:#b59b68;flex-shrink:0;margin-top:1px}footer{border-top:1px solid var(--line);max-width:1070px;color:var(--muted);justify-content:space-between;margin:46px auto 0;padding:15px 34px 20px;font-size:9px;display:flex}.modal-scrim{z-index:10;background:#1a1a1875;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.calibration-modal{background:var(--panel);width:min(100%,470px);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:22px 24px 20px;animation:.17s ease-out modal-in;box-shadow:0 24px 70px #00000040}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.modal-top{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.modal-icon{background:color-mix(in srgb,var(--accent),transparent 89%);width:34px;height:34px;color:var(--accent);border-radius:9px;place-items:center;display:grid}.calibration-modal .eyebrow{font-size:9px}.calibration-modal h2{letter-spacing:-.6px;margin:7px 0;font:700 23px Manrope,sans-serif}.modal-copy{color:var(--muted);margin:0 0 17px;font-size:11px;line-height:1.6}.cal-tabs{background:var(--soft);border-radius:8px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.cal-tabs button{height:35px;color:var(--muted);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;font-size:10px;font-weight:600;display:flex}.cal-tabs button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #0000001a}.reference-info,.manual-info{margin:17px 0 14px}.reference-info>b{font-size:10px;display:block}.reference-info>span,.manual-info>span{color:var(--muted);margin-top:5px;font-size:9px;line-height:1.55;display:block}.card-outline{aspect-ratio:85.6/53.98;border:1.5px dashed var(--accent);max-width:100%;height:auto;color:var(--accent);border-radius:9px;justify-content:center;align-items:center;margin:13px 0 4px;font:10px DM Mono,monospace;transition:width 50ms;display:flex;position:relative}.card-outline:after{content:"";border-right:1.5px solid var(--accent);height:100%;position:absolute;right:-1px}.card-outline i{border:1px solid color-mix(in srgb,var(--accent),transparent 75%);border-radius:5px;position:absolute;inset:8px}.manual-info label{font-size:10px;font-weight:650;display:block}.manual-info label span{color:var(--muted);font-weight:400}.manual-info input{border:1px solid var(--line);background:var(--paper);width:100%;height:36px;color:var(--ink);border-radius:7px;margin-top:7px;padding:0 10px;font-size:12px;display:block}.manual-line{border-bottom:1px solid var(--accent);max-width:100%;height:36px;color:var(--accent);justify-content:center;align-items:flex-start;margin:10px 0 3px;font:9px DM Mono,monospace;display:flex;position:relative}.manual-line:before,.manual-line:after{content:"";border-left:1px solid var(--accent);height:8px;position:absolute;bottom:-4px}.manual-line:before{left:0}.manual-line:after{right:0}.slider-label{color:var(--muted);justify-content:space-between;margin-top:16px;font-size:9px;display:flex}.slider-label b{color:var(--ink);font:10px DM Mono,monospace}.range-slider{appearance:none;background:var(--line);width:100%;height:4px;accent-color:var(--accent);border-radius:4px;margin:13px 0 3px}.range-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid #fff;border-radius:50%;width:15px;height:15px;box-shadow:0 1px 4px #0003}.range-slider::-moz-range-thumb{background:var(--accent);border:2px solid #fff;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 4px #0003}.slider-ends{color:var(--muted);justify-content:space-between;font-size:8px;display:flex}.modal-caveat{background:var(--soft);color:var(--muted);border-radius:6px;margin-top:15px;padding:9px 10px;font-size:9px;line-height:1.55}.modal-actions{justify-content:flex-end;gap:8px;margin-top:17px;display:flex}.cancel-button,.primary-button{border-radius:7px;height:35px;padding:0 13px;font-size:10px;font-weight:650}.cancel-button{border:1px solid var(--line);background:var(--panel);color:var(--ink)}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#fffaf6;align-items:center;gap:7px;display:flex}.primary-button:hover{background:var(--accent-dark)}@media (width<=760px){.topbar{height:64px;padding:0 19px}.brand-mark{width:33px;height:33px}.status{margin-right:1px;font-size:9px}.header-actions{gap:7px}.icon-button{width:33px;height:33px}.tool-section{padding:8px 12px 0}.tool-heading{margin:20px 0 0;display:block}.tool-heading h1{letter-spacing:-.9px;max-width:430px;font-size:29px}.tool-heading p{font-size:11px}.mobile-break{display:none}.calibration-pill{width:100%;min-width:0;margin-top:16px;padding:10px 11px}.control-row{flex-wrap:wrap;gap:9px;min-height:59px;padding:10px 12px}.control-group{gap:6px}.control-label{letter-spacing:.7px;font-size:8px}.segmented button{min-width:32px;height:28px;padding:0 8px}.orientation-group{margin-left:2px}.control-spacer{min-width:0}.zoom-controls{gap:5px}.zoom-controls .icon-button.compact{width:27px;height:27px}.ruler-frame{min-height:105px}.zero-rail{flex-basis:34px;width:34px}.zero-rail span:after{left:33px}.ticks.horizontal .tick-label{font-size:9px}.ruler-meta{padding:0 12px;font-size:8px}.scale-note{font-size:8px}.measurement-header{gap:8px;min-width:0;height:auto;min-height:65px;padding:10px 12px}.measurement-header b{font-size:10px}.measurement-header small{max-width:190px;font-size:8px;line-height:1.4}.measure-actions{gap:5px}.mode-button{white-space:nowrap;height:32px;padding:0 8px;font-size:9px}.clear-button{width:30px;height:30px}.measure-area{height:190px}.bottom-controls{align-items:flex-start;gap:8px;min-height:57px;padding:10px 12px}.precision-note{font-size:8px;line-height:1.45}.precision-note svg{width:13px}.text-button{gap:4px;font-size:9px}.how-section{margin-top:39px;padding:0 18px}.how-title{display:block}.how-title h2{font-size:19px}.how-title>p{max-width:500px;margin-top:9px;font-size:10px}.steps{grid-template-columns:1fr;margin-top:17px}.steps article{padding:12px 2px}.steps article+article{border-left:0;border-top:1px solid var(--line);padding-left:2px}.steps p{margin-right:0}.disclaimer{font-size:8px}footer{gap:14px;margin-top:30px;padding:14px 18px 18px;font-size:8px}.ruler-frame.vertical{height:510px}.calibration-modal{padding:19px 18px}.card-outline{height:78px}.measurement-panel{max-width:100%}}@media (width<=400px){.topbar{padding:0 13px}.brand b{font-size:15px}.brand small{letter-spacing:.8px;font-size:7px}.header-actions{gap:5px}.status{font-size:8px}.tool-section{padding-left:10px;padding-right:10px}.control-row{gap:7px}.control-label{display:none}.orientation-group{margin-left:0}.zoom-controls{margin-left:auto}.calibration-pill{gap:7px}.calibrate-small{font-size:9px}.measurement-header small{max-width:140px}.bottom-controls{flex-wrap:wrap}.text-button{margin-left:21px}.how-section{padding:0 13px}}:root{--bg:#f4f2ed;--panel:#fffefa;--paper:#fbfaf6;--ink:#272722;--muted:#62615a;--line:#dedbd1;--control-border:#8b887f;--soft:#f3f1eb;--accent:#b95031;--accent-dark:#9d3e25;--on-accent:#fffefa;--brand-mark:#aa4329;--focus-ring:#963c24;--green:#26704f;--green-bg:#edf5ef;--tick-field:#fbfaf6;--tick-minor:#b7b3a8;--tick-mid:#858278;--tick-major:#4e4c44;--ruler-label:#45443d;--helper-ink:#5d5b54;--helper-secondary:#68665f;--point-a:#b95031;--point-b:#26704f;--point-text:#fffefa;--grid-line:#d7d3c8;--warning-bg:#fbf2e5;--warning-border:#e0cda8;--warning-ink:#61491e;--error-bg:#fff1eb;--error-border:#d9aa99;--error-ink:#8e321f;--shadow:0 14px 36px #332e250e}.app.dark{--bg:#1d1e1c;--panel:#252623;--paper:#21221f;--ink:#efeee8;--muted:#b8b6ac;--line:#454640;--control-border:#85867d;--soft:#2e2f2b;--accent:#e4815e;--accent-dark:#f19371;--on-accent:#211e1b;--brand-mark:#91432d;--focus-ring:#f2a082;--green:#8bc19f;--green-bg:#26372d;--tick-field:#20211f;--tick-minor:#686a63;--tick-mid:#a4a298;--tick-major:#dedbd0;--ruler-label:#f0eee5;--helper-ink:#c1bfb5;--helper-secondary:#b0aea4;--point-a:#e4815e;--point-b:#70bd8f;--point-text:#1c201c;--grid-line:#55564f;--warning-bg:#393020;--warning-border:#75603a;--warning-ink:#f0d394;--error-bg:#432c27;--error-border:#8a5949;--error-ink:#ffc1a9;--shadow:0 14px 36px #0000002e}.brand-mark{background:var(--brand-mark);color:var(--on-accent)}.icon-button{border-color:var(--control-border)}.icon-button:hover{border-color:var(--ink)}.icon-button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline-color:var(--focus-ring)}.calibration-pill{border-color:var(--control-border)}.calibration-pill.estimated{border-left:3px solid #a7742d}.dark .calibration-pill.estimated{border-left-color:#e3b865}.calibration-pill.verified{border-left:3px solid var(--green)}.status{color:var(--helper-ink)}.status:not(.is-ready) i{background:#a7742d}.dark .status:not(.is-ready) i{background:#e3b865}.cal-dot{background:#a7742d}.dark .cal-dot{background:#e3b865}.cal-dot.done{background:var(--green)}.ruler-frame,.dark .ruler-frame{background:var(--tick-field)}.zero-rail{background:var(--soft);color:var(--accent-dark)}.dark .zero-rail{background:var(--soft)}.zero-rail span:after{background:var(--accent)}.ruler-viewport{scrollbar-color:var(--control-border) transparent}.ticks.horizontal{background-image:linear-gradient(to bottom, transparent 0 28px, var(--tick-minor) 28px 29px)}.ticks.vertical{background-image:linear-gradient(to right, transparent 0 28px, var(--tick-minor) 28px 29px)}.ticks.horizontal .tick{border-color:var(--tick-minor)}.ticks.horizontal .tick.mid{border-color:var(--tick-mid)}.ticks.horizontal .tick.major{border-color:var(--tick-major);border-left-width:1.5px}.ticks.vertical .tick{border-color:var(--tick-minor)}.ticks.vertical .tick.mid{border-color:var(--tick-mid)}.ticks.vertical .tick.major{border-color:var(--tick-major);border-top-width:1.5px}.tick-label{color:var(--ruler-label);font-size:12px;font-weight:600}.ruler-meta,.scale-note{color:var(--helper-ink)}.sample-tick{border-color:var(--tick-major)}.segmented button{color:var(--helper-ink)}.segmented button.selected{border:1px solid var(--control-border);color:var(--ink);box-shadow:0 1px 3px #0000001f}.measure-icon{color:var(--helper-ink)}.measurement-header b{color:var(--ink)}.measurement-header small{color:var(--helper-ink);font-size:10px}.measurement-panel.active{box-shadow:inset 3px 0 var(--accent)}.mode-button{border-color:var(--control-border);color:var(--ink)}.mode-button>span{border-color:var(--helper-ink)}.mode-button.mode-on{border-color:var(--accent);background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent), transparent 76%)}.mode-button.mode-on>span{background:var(--on-accent);border-color:var(--on-accent);box-shadow:none}.measure-area{background-color:var(--paper);background-image:linear-gradient(to right, color-mix(in srgb, var(--grid-line), transparent 66%) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--grid-line), transparent 66%) 1px, transparent 1px)}.dark .measure-area{background-color:var(--paper);background-image:linear-gradient(to right, color-mix(in srgb, var(--grid-line), transparent 70%) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--grid-line), transparent 70%) 1px, transparent 1px)}.surface-hint{width:min(100vw - 60px,1000px);max-width:1000px;height:100%;color:var(--helper-ink);margin-left:0;position:sticky;inset:0 auto auto 0}.surface-hint small{color:var(--helper-secondary)}.hint-crosshair{border-color:var(--control-border)}.hint-crosshair span,.hint-crosshair i{border-color:var(--helper-ink)}.point{background:var(--point-a);color:var(--point-text);border-color:var(--panel)}.point-1{background:var(--point-b)}.measurement-line line{stroke:var(--accent-dark);stroke-width:2.5px}.distance-badge{background:var(--ink);color:var(--panel);border:1px solid var(--control-border)}.distance-badge small{color:var(--helper-secondary);opacity:1}.distance-badge b span{color:var(--accent)}.inline-warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-ink)}.inline-warning button{color:var(--warning-ink)}.precision-note{color:var(--helper-ink)}.precision-note svg{color:var(--accent-dark)}.precision-note b{color:var(--ink)}.text-button,.calibrate-small{color:var(--accent-dark)}.error-message,.dark .error-message{color:var(--error-ink);background:var(--error-bg);border-color:var(--error-border)}.how-title>p,.steps p,.disclaimer,footer{color:var(--helper-ink)}.step-number,.disclaimer svg{color:var(--accent-dark)}.calibration-modal{border-color:var(--control-border)}.modal-copy,.reference-info>span,.manual-info>span,.slider-label,.slider-ends,.modal-caveat{color:var(--helper-ink)}.cal-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:14px 0;display:grid}.cal-options button{border:1px solid var(--control-border);background:var(--panel);min-height:54px;color:var(--helper-ink);text-align:left;border-radius:8px;align-items:center;gap:8px;padding:7px;display:flex}.cal-options button b,.cal-options button small{display:block}.cal-options button b{color:var(--ink);font-size:10px}.cal-options button small{color:var(--helper-ink);margin-top:3px;font-size:8px}.cal-options button.active{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent), var(--panel) 93%);color:var(--accent-dark)}.reference-info>b,.manual-info label{color:var(--ink)}.manual-info input,.manual-info select{border:1px solid var(--control-border);background:var(--paper);color:var(--ink)}.length-input-row{align-items:center;gap:8px;margin-top:7px;display:flex}.length-input-row input{flex:1;min-width:0;margin-top:0}.length-input-row select{border-radius:7px;min-width:76px;height:36px;padding:0 8px}.manual-info .slider-label{margin-top:12px}.calibration-error{color:var(--error-ink);background:var(--error-bg);border:1px solid var(--error-border);border-radius:6px;margin-top:10px;padding:8px 10px;font-size:10px}.estimated-info{border:1px solid var(--warning-border);background:var(--warning-bg);color:var(--warning-ink);border-radius:8px;margin:14px 0;padding:13px}.estimated-info b{font-size:11px}.estimated-info p,.estimated-info span{color:var(--warning-ink);margin:6px 0 0;font-size:9px;line-height:1.55;display:block}.device-picker-actions{flex-wrap:wrap;align-items:center;gap:9px;margin-top:10px;display:flex}.device-picker-toggle,.device-clear-button,.device-profile-auto{border:1px solid var(--control-border);background:var(--panel);min-height:32px;color:var(--accent-dark);border-radius:7px;padding:0 10px;font-size:10px;font-weight:650}.device-clear-button{color:var(--muted)}.device-selection-summary{font-weight:600}.device-picker-panel{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;margin-top:9px;padding:10px}.device-search-label{color:var(--muted);gap:5px;font-size:9px;font-weight:650;display:grid}.device-search-label input{border:1px solid var(--control-border);background:var(--paper);width:100%;min-height:34px;color:var(--ink);font:inherit;border-radius:6px;padding:0 9px;font-size:11px}.device-profile-groups{max-height:220px;margin-top:8px;overflow:auto}.device-profile-group{gap:4px;padding:5px 0 7px;display:grid}.device-profile-group>b{color:var(--accent-dark);letter-spacing:.6px;text-transform:uppercase;padding:3px 2px;font:600 9px DM Mono,monospace}.device-profile-option{width:100%;min-height:33px;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;gap:2px;padding:5px 8px;font-size:10px;display:grid}.device-profile-option span{color:var(--muted);white-space:normal;margin:0;font-size:8px}.device-profile-option:hover,.device-profile-option[aria-pressed=true]{border-color:var(--control-border);background:var(--soft)}.device-profile-auto{background:var(--soft);color:var(--ink);margin-top:7px}.device-physical-note{font-weight:600}.modal-caveat{background:var(--soft)}.cancel-button{border-color:var(--control-border);color:var(--ink)}.primary-button{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.primary-button:hover{border-color:var(--accent-dark);background:var(--accent-dark)}.range-slider::-webkit-slider-thumb{border-color:var(--panel);background:var(--accent-dark)}.range-slider::-moz-range-thumb{border-color:var(--panel);background:var(--accent-dark)}.ruler-frame.vertical .zero-rail span:after{background:var(--accent);top:18px}.ruler-frame.vertical .zero-rail{padding-top:15px}.ruler-frame.vertical .ruler-viewport{padding-top:0}.ruler-frame.vertical .ticks{height:auto;min-height:100%}.measure-area{overflow:visible}.card-outline{height:auto}@media (width<=480px){.cal-options{grid-template-columns:1fr}.cal-options button{min-height:44px}.card-outline{height:auto}}:root{--workspace-compact-height:clamp(190px, 30vh, 270px);--workspace-expanded-height:clamp(360px, 62vh, 600px)}.measurement-panel{overflow:hidden}.measurement-header{min-width:0}.measurement-header small{line-height:1.45}.measure-actions{flex-shrink:0}.measure-viewport{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--control-border) transparent;border-top:1px solid var(--line);background:var(--paper);width:100%;position:relative;overflow:auto}.measure-area.vertical{width:100%;min-width:0}.workspace-prompt{z-index:4;border:1px solid var(--line);background:color-mix(in srgb, var(--panel), transparent 8%);width:fit-content;max-width:calc(100% - 18px);min-height:28px;color:var(--helper-ink);pointer-events:none;border-radius:0 0 7px;margin-bottom:-28px;padding:6px 10px;font-size:10px;line-height:1.3;position:sticky;top:0}.workspace-toggle{flex:none}.workspace-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.workspace-toggle svg{transition:transform .15s}.clear-button:disabled{opacity:.45;cursor:not-allowed}.measure-again{white-space:nowrap}.measure-area.vertical{background-position-y:18px}@media (width<=760px){:root{--workspace-compact-height:clamp(140px, 22vh, 190px);--workspace-expanded-height:clamp(260px, 46vh, 420px)}.measure-actions{gap:4px}.measure-again{padding:0 5px;font-size:9px}}@media (prefers-reduced-motion:reduce){.workspace-toggle svg{transition:none}}.ruler-edge-controls .segmented button{place-items:center;width:34px;min-width:34px;padding:0;display:grid}.ruler-edge-controls .segmented button:not(.selected){opacity:.72}.instrument:fullscreen{background:var(--panel);border:0;border-radius:0;flex-direction:column;width:100vw;max-width:none;height:100vh;min-height:0;display:flex;overflow:hidden}.instrument:fullscreen .control-row{flex:none}.instrument:fullscreen .measurement-panel{flex-direction:column;flex:auto;min-height:0;display:flex}.instrument:fullscreen .ruler-system{flex:auto;height:auto;min-height:0}.instrument:fullscreen .bottom-controls{flex:none}.instrument:fullscreen .fullscreen-workspace-button{display:grid}.measurement-panel{flex-direction:column;display:flex}.measurement-panel .measurement-header{flex:none}.ruler-system{--edge-thickness:56px;grid-template-rows:var(--edge-thickness) minmax(0,1fr) var(--edge-thickness);height:var(--ruler-compact-height);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--tick-field);min-height:0;display:grid}.ruler-edge-row{background:var(--soft);min-width:0;display:grid;overflow:hidden}.ruler-edge-row.is-hidden{height:0;overflow:hidden}.ruler-edge-row>span{background:var(--soft);display:block}.edge-track-viewport{min-width:0;position:relative;overflow:hidden}.ruler-middle{min-width:0;min-height:0;display:grid}.ruler-side{z-index:2;background:var(--soft);min-width:0;position:relative;overflow:visible}.ruler-side.is-hidden{width:0;overflow:hidden}.edge-ruler{background:var(--soft);width:100%;height:100%;position:relative;overflow:visible}.edge-ticks{flex:none;position:relative}.edge-ticks.horizontal{height:var(--edge-thickness)}.edge-ticks.vertical{width:64px}.edge-ticks .tick{z-index:1;position:absolute}.edge-ticks.horizontal .tick{border-left:1px solid var(--tick-minor);height:29px;top:0}.edge-ticks.horizontal .tick.mid{border-color:var(--tick-mid);height:21px}.edge-ticks.horizontal .tick.major{border-color:var(--tick-major);border-left-width:1.5px;height:39px}.edge-ticks.vertical .tick{border-top:1px solid var(--tick-minor);width:29px;left:0}.edge-ticks.vertical .tick.mid{border-color:var(--tick-mid);width:21px}.edge-ticks.vertical .tick.major{border-color:var(--tick-major);border-top-width:1.5px;width:39px}.edge-ticks .tick-label{color:var(--ruler-label);white-space:nowrap;font:600 11px DM Mono,monospace;position:absolute}.edge-top .tick{bottom:0;top:auto!important}.edge-top .tick-label{top:auto;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.edge-left .tick{right:0;left:auto!important}.edge-left .tick-label{top:-7px;left:auto;right:43px}.edge-top .tick:first-child .tick-label,.edge-bottom .tick:first-child .tick-label{left:0}.edge-top .tick:first-child .tick-label{transform:none}.measure-viewport{overscroll-behavior:contain;background:var(--paper);scrollbar-width:thin;scrollbar-color:var(--control-border) transparent;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:auto}.measure-area{height:auto;min-height:0;overflow:visible}.workspace-prompt{z-index:4;border:1px solid var(--line);background:color-mix(in srgb, var(--panel), transparent 8%);width:fit-content;max-width:calc(100% - 18px);min-height:28px;color:var(--helper-ink);pointer-events:none;border-radius:0 0 7px;margin-bottom:-28px;padding:6px 10px;font-size:10px;line-height:1.3;position:sticky;top:0;left:0}.workspace-prompt.ready{color:var(--accent-dark);font-weight:700}.measure-area.measure-cursor{cursor:crosshair}.measure-area:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.instrument:fullscreen .ruler-system{--edge-thickness:56px}@media (width<=760px){:root{--ruler-compact-height:clamp(250px, 34vh, 310px);--ruler-expanded-height:clamp(360px, 58vh, 510px)}.ruler-system{--edge-thickness:52px}.edge-ticks.horizontal .tick.major{height:35px}.edge-ticks.vertical .tick.major{width:35px}.ruler-edge-controls .segmented button{width:29px;min-width:29px}}@media (width>=761px){:root{--ruler-compact-height:clamp(310px, 38vh, 400px);--ruler-expanded-height:clamp(430px, 63vh, 680px)}}.topbar{max-width:none;height:48px;padding:0 16px}.tool-section{width:100%;max-width:none;height:100dvh;min-height:360px;margin:0;padding:0}.instrument{width:100%;height:100%;min-height:0;box-shadow:none;border:0;border-radius:0;flex-direction:column;display:flex}.control-row{flex-wrap:wrap;flex:none;gap:8px 12px;min-height:48px;padding:6px 14px}.workspace-brand{color:var(--ink);white-space:nowrap;align-items:center;gap:7px;text-decoration:none;display:flex}.workspace-brand .brand-mark{border-radius:8px;width:30px;height:30px}.workspace-brand b{letter-spacing:-.55px;font:800 14px Manrope,sans-serif}.workspace-brand b span{color:var(--accent)}.calibrate-tool-button{border:1px solid var(--control-border);background:var(--panel);min-height:32px;color:var(--accent-dark);white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:10px;font-weight:650;display:inline-flex}.calibrate-tool-button:hover{background:var(--soft)}.fullscreen-workspace-button{display:grid}.measurement-panel{flex:1 1 0;min-height:0}.measurement-header{flex:none;height:auto;min-height:48px;padding:6px 14px}.ruler-system{flex:1 1 0;height:auto;min-height:0}.ruler-system.expanded{height:auto}.instrument:fullscreen{width:100vw;height:100dvh}.instrument:fullscreen .ruler-system{height:auto}@media (width<=760px){.tool-section{height:100dvh;min-height:360px}.control-row{gap:6px 8px;min-height:50px;padding:6px 10px}.workspace-brand b,.control-spacer{display:none}.status{font-size:8px}.zoom-controls{margin-left:0}.measurement-header{min-height:58px;padding:7px 10px}.secondary-content{padding:24px 15px 0}}@media (width<=400px){.control-row{gap:4px;padding:4px 6px}.control-group{gap:4px}.ruler-edge-controls .segmented button{width:25px;min-width:25px;padding:0}.calibrate-tool-button{padding:0 7px}.zoom-controls{gap:3px}}.workspace-header{border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 52px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:0 16px;display:flex}.instrument{--edge-thickness:56px}.header-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.header-actions .status{white-space:nowrap}.top-row{flex:0 0 var(--edge-thickness);height:var(--edge-thickness);border-bottom:1px solid var(--line)}.top-row.is-hidden{flex-basis:0}.top-row .edge-track-viewport{overflow:hidden}.lower-tool-layout{flex:1 1 0;min-height:0;display:grid;overflow:hidden}.lower-main{flex-direction:column;min-width:0;min-height:0;display:flex}.lower-main>.control-row{border-bottom:1px solid var(--line);flex:none;min-height:48px}.lower-main>.measurement-panel{flex:1 1 0;min-height:0}.lower-left,.lower-right{border-right:1px solid var(--line);background:var(--soft);min-height:0;overflow:hidden}.lower-right{border-right:0;border-left:1px solid var(--line)}.lower-left .edge-ticks.vertical,.lower-right .edge-ticks.vertical{height:100%;min-height:100%}.workspace-info-row{border-bottom:1px solid var(--line);background:var(--panel);flex:none;grid-template-columns:minmax(0,1fr) minmax(280px,390px);align-items:center;gap:18px;min-height:70px;padding:8px 14px;display:grid}.workspace-info-copy{min-width:0}.workspace-info-copy .eyebrow{font-size:9px}.workspace-info-copy h1{letter-spacing:-.35px;color:var(--ink);margin:4px 0 0;font:650 16px/1.2 Manrope,sans-serif}.workspace-info-row .calibration-pill{width:100%;min-width:0;box-shadow:none;border-radius:8px;gap:8px;padding:7px 9px}.workspace-info-row .calibration-pill b,.workspace-info-row .calibration-pill small{font-size:10px}.lower-left .edge-ticks.vertical,.lower-right .edge-ticks.vertical{height:100%}.ruler-system{flex-direction:column;flex:1 1 0;height:auto;min-height:0;display:flex}.ruler-middle{flex:1 1 0;min-height:0;display:flex}.ruler-middle>.measure-viewport{flex:auto;min-width:0}.bottom-row{flex:0 0 var(--edge-thickness);height:var(--edge-thickness);border-top:1px solid var(--line)}.bottom-row.is-hidden{flex-basis:0}.edge-bottom .tick{top:0}.edge-bottom .tick-label{top:40px;left:-8px}.edge-right .tick{left:0}.edge-right .tick-label{top:-7px;left:43px}.edge-right .tick.major{width:39px}.edge-right .tick.mid{width:21px}.edge-right .tick:not(.major):not(.mid){width:29px}.edge-bottom .tick.major{height:39px}.edge-bottom .tick.mid{height:21px}.edge-bottom .tick:not(.major):not(.mid){height:29px}.instrument:fullscreen .workspace-header{flex-basis:52px}@media (width<=760px){.instrument{--edge-thickness:52px}.workspace-header{flex-basis:auto;gap:6px;height:auto;min-height:50px;padding:5px 9px}.workspace-brand .brand-mark{width:28px;height:28px}.workspace-brand b{font-size:13px;display:block}.header-actions{flex-wrap:nowrap;gap:4px}.header-actions .status{margin:0 2px 0 0;font-size:8px}.header-actions .status i{width:6px;height:6px}.header-actions .calibrate-tool-button{min-height:29px;padding:0 7px;font-size:9px}.header-actions .icon-button.compact{width:27px;height:27px}.top-row{--edge-thickness:52px}.lower-main>.control-row{gap:6px;min-height:45px;padding:4px 7px}.lower-main .control-label{display:none}.ruler-edge-controls .segmented button{width:27px;min-width:27px}.workspace-info-row{grid-template-columns:minmax(0,1fr);gap:6px;min-height:0;padding:7px 9px}.workspace-info-copy .eyebrow{font-size:8px}.workspace-info-copy h1{font-size:14px}.workspace-info-row .calibration-pill{padding:5px 7px}.measurement-header{flex-wrap:wrap;min-height:78px;padding:5px 8px}.measurement-header>div:first-child{flex:100%}.measure-actions{justify-content:flex-end;width:100%}.measurement-header small{max-width:150px}.mode-button{height:30px;padding:0 7px}.clear-button{width:28px;height:28px}.workspace-prompt{font-size:9px}}@media (width>=761px){.measurement-header .measure-actions .clear-button{white-space:nowrap;flex:none;width:auto;min-width:64px;padding-inline:10px}}@media (width<=760px){.measurement-header{box-sizing:border-box;flex-flow:row;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.instrument:fullscreen .measurement-header{box-sizing:border-box;flex-flow:row;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.measurement-header>.measurement-title{flex:auto;min-width:0}.instrument:fullscreen .measurement-header>.measurement-title{flex:auto;min-width:0}.measurement-title>span:last-child{min-width:0}.measurement-header small{max-width:none}.measurement-header>.measure-actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;align-self:center;gap:4px;width:auto;max-width:none;margin:0;display:flex}.instrument:fullscreen .measurement-header>.measure-actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;align-self:center;gap:4px;width:auto;max-width:none;margin:0;display:flex}.mode-button{height:30px;padding:0 7px;font-size:9px}.clear-button{border:1px solid var(--control-border);background:var(--panel);width:auto;min-width:44px;height:30px;color:var(--ink);white-space:nowrap;border-radius:7px;padding:0 8px;font-size:9px;font-weight:650}}@media (width<=400px){.measurement-header{flex-wrap:wrap}.instrument:fullscreen .measurement-header{flex-wrap:wrap}.measurement-header>.measurement-title{flex-basis:100%}.instrument:fullscreen .measurement-header>.measurement-title{flex-basis:100%}.measurement-header>.measure-actions{align-self:flex-start;margin-left:40px}.instrument:fullscreen .measurement-header>.measure-actions{align-self:flex-start;margin-left:40px}}@media (width<=760px){.measurement-header{box-sizing:border-box;width:100%;min-width:0}.measurement-header>.measurement-title{flex:100%;width:100%;min-width:0}.measurement-header>.measurement-title>span:last-child{min-width:0}.measurement-header>.measure-actions{flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;width:auto;max-width:calc(100% - 40px);margin-left:40px}.instrument:fullscreen .measurement-header>.measure-actions{flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;width:auto;max-width:calc(100% - 40px);margin-left:40px}}.instrument:fullscreen{--app-header-height:52px;box-sizing:border-box;overscroll-behavior-y:contain;width:100vw;height:100dvh;min-height:0;max-height:none;display:block;overflow:hidden auto}.instrument:fullscreen .lower-tool-layout>.measurement-panel{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:80vh;display:grid;overflow:visible}.instrument:fullscreen .ruler-workspace-panel>.workspace-frame{grid-row:2;min-width:0;min-height:80vh;overflow:visible}.instrument:fullscreen .workspace-center>.measure-viewport{width:100%;height:calc(var(--workspace-visible-height,80vh) - var(--bottom-edge-reserve,0px));touch-action:pan-x pan-y;min-width:0;min-height:280px;overflow:visible}@media (width<=760px){.instrument:fullscreen .lower-tool-layout{grid-template-rows:auto auto minmax(65vh,auto)}.instrument:fullscreen .lower-tool-layout>.measurement-panel{min-height:65vh}.instrument:fullscreen .ruler-workspace-panel>.workspace-frame{min-height:65vh}.instrument:fullscreen .workspace-center{min-height:65vh}.instrument:fullscreen .measurement-header{box-sizing:border-box;width:100%;min-width:0}.instrument:fullscreen .measure-actions{justify-content:flex-end;width:100%;min-width:0}}.instrument:fullscreen{box-sizing:border-box;flex-direction:column;width:100vw;height:100dvh;min-height:0;max-height:100dvh;display:flex;overflow:hidden}.instrument:fullscreen .secondary-content{display:none}.instrument:fullscreen .lower-tool-layout{flex:1 1 0;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.instrument:fullscreen .lower-tool-layout>.control-row{min-width:0;position:relative;top:auto}.instrument:fullscreen .lower-tool-layout>.workspace-info-row{min-width:0}.instrument:fullscreen .lower-tool-layout>.measurement-panel{grid-template-rows:auto minmax(0,1fr);min-width:0;height:auto;min-height:0;display:grid;overflow:hidden}.instrument:fullscreen .measurement-panel>.measurement-header{box-sizing:border-box;grid-area:1/2;width:100%;min-width:0}.instrument:fullscreen .ruler-workspace-panel>.workspace-frame{grid-row:2;min-width:0;height:100%;min-height:0;overflow:hidden}.instrument:fullscreen .workspace-center{min-width:0;min-height:0;overflow:hidden}.instrument:fullscreen .workspace-center>.measure-viewport{overscroll-behavior:contain;touch-action:pan-x pan-y;width:100%;min-width:0;height:100%;min-height:0;overflow:auto}@media (width<=760px){.instrument:fullscreen .measurement-header{flex-direction:column;justify-content:center;align-items:stretch;gap:8px;width:100%;min-width:0;height:auto;min-height:0;padding:8px 10px;display:flex}.instrument:fullscreen .measurement-header>.measurement-title{flex:0 auto;width:100%;min-width:0}.instrument:fullscreen .measurement-title>span:last-child{min-width:0}.instrument:fullscreen .measurement-header small{overflow-wrap:anywhere;max-width:100%}.instrument:fullscreen .measure-actions{justify-content:flex-end;width:100%;min-width:0}.instrument:fullscreen .mode-button{flex:none}}.workspace-center>.workspace-bottom-row{height:calc(var(--edge-thickness) + 24px);overflow:visible}@media (width<=400px){.workspace-brand b{display:none}.workspace-header{padding:4px 6px}.workspace-brand{gap:5px}.workspace-brand b{font-size:12px}.header-actions .status{text-overflow:ellipsis;max-width:60px;font-size:7px;overflow:hidden}.header-actions .calibrate-tool-button{gap:3px;padding:0 5px;font-size:8px}.header-actions .zoom-controls{gap:2px;font-size:9px}.header-actions .zoom-controls .icon-button.compact{width:24px;height:25px}.header-actions>.icon-button.compact{width:25px;height:25px}.lower-main>.control-row{gap:4px;padding:3px 4px}.ruler-edge-controls .segmented button{width:24px;min-width:24px}}.lower-tool-layout>.control-row,.lower-tool-layout>.workspace-info-row{grid-column:2;min-width:0}.lower-tool-layout>.control-row{grid-row:1}.lower-tool-layout>.workspace-info-row{grid-row:2}.lower-tool-layout>.measurement-panel{grid-area:3/1/auto/-1;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.measurement-panel>.measurement-header{grid-area:1/2;min-width:0}.workspace-frame{grid-area:2/1/auto/-1;min-width:0;min-height:0;display:grid;overflow:hidden}.measurement-panel>.inline-warning{grid-area:3/1/auto/-1}.workspace-center{grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;overflow:hidden}.workspace-left-axis,.workspace-right-axis{background:var(--soft);grid-row:1;min-width:0;min-height:0;position:relative;overflow:hidden}.workspace-left-axis{border-right:1px solid var(--line)}.workspace-right-axis{border-left:1px solid var(--line)}.workspace-left-axis .edge-ruler,.workspace-right-axis .edge-ruler{overflow:hidden}.workspace-left-axis .edge-ticks.vertical,.workspace-right-axis .edge-ticks.vertical{height:auto}.workspace-center>.measure-viewport{touch-action:pan-x pan-y;border:0;grid-row:1;width:100%;min-width:0;height:100%;min-height:0}.workspace-center>.workspace-bottom-row{min-width:0;height:calc(var(--edge-thickness) + 24px);border-top:1px solid var(--line);background:var(--soft);grid-row:2;overflow:visible}.workspace-bottom-row .edge-track-viewport{width:100%;height:100%}.workspace-frame .edge-ruler{width:100%;height:100%}@media (width<=760px){.workspace-frame,.workspace-left-axis,.workspace-right-axis{min-height:0}}.lower-tool-layout{grid-template-rows:auto auto minmax(0,1fr)}.lower-tool-layout>.measurement-panel{grid-row:3;grid-template-rows:auto minmax(0,1fr)}.ruler-workspace-panel{min-height:0;overflow:hidden}.ruler-workspace-panel>.workspace-frame{grid-row:2}.workspace-left-axis,.workspace-right-axis{align-self:stretch}.workspace-left-axis{grid-column:1}.workspace-center{grid-column:2}.workspace-right-axis{grid-column:3}.workspace-left-axis .edge-ticks.vertical,.workspace-right-axis .edge-ticks.vertical{min-height:100%}.workspace-center{min-height:0}.workspace-prompt{z-index:3}.edge-left .tick:first-child .tick-label{top:2px}.measure-area{background-color:var(--paper);background-image:linear-gradient(to right,color-mix(in srgb,var(--grid-line),transparent 48%) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--grid-line),transparent 48%) 1px,transparent 1px);background-size:24px 24px}.dark .measure-area{background-image:linear-gradient(to right,color-mix(in srgb,var(--grid-line),transparent 48%) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--grid-line),transparent 48%) 1px,transparent 1px)}.tool-section{height:auto;min-height:0}.instrument{--app-header-height:48px;--edge-thickness:48px;height:auto;min-height:100dvh;display:block;overflow:visible}.workspace-header{z-index:20;height:var(--app-header-height);min-height:var(--app-header-height);flex:0 0 var(--app-header-height);border-bottom:0;margin:0;padding-block:0;position:sticky;top:0}.top-row{top:var(--app-header-height);z-index:19;height:var(--edge-thickness);flex-basis:var(--edge-thickness);border-top:1px solid var(--line);margin:0;position:sticky;overflow:hidden}.top-row .edge-track-viewport{scrollbar-width:none;overflow:hidden}.edge-ticks.horizontal .tick.major{height:30px}.edge-ticks.horizontal .tick.mid{height:21px}.edge-ticks.horizontal .tick:not(.major):not(.mid){height:25px}.lower-tool-layout{flex:none;grid-template-rows:auto auto minmax(60vh,auto);min-height:0;display:grid;overflow:visible}.lower-tool-layout>.control-row{top:calc(var(--app-header-height) + var(--top-edge-offset,var(--edge-thickness)));z-index:18;background:var(--panel);position:sticky}.lower-tool-layout>.workspace-info-row{position:relative}.lower-tool-layout>.measurement-panel,.ruler-workspace-panel>.workspace-frame,.workspace-center{min-height:80vh;overflow:visible}.workspace-center>.measure-viewport{height:calc(var(--workspace-visible-height,80vh) - var(--bottom-edge-reserve,0px));touch-action:pan-x pan-y;min-height:280px;overflow:visible}.workspace-left-axis{top:calc(var(--app-header-height) + var(--edge-thickness));z-index:20;pointer-events:none;width:64px;height:auto;position:fixed;bottom:0;left:0;overflow:hidden}.workspace-left-axis .edge-ruler{overflow:hidden}.workspace-left-axis .edge-ticks.vertical{height:1000px}.workspace-right-axis{z-index:20;pointer-events:none;width:64px;position:fixed;bottom:0;right:0;overflow:hidden}.workspace-right-axis .edge-ruler{overflow:hidden}.workspace-right-axis .edge-ticks.vertical{height:1000px}.workspace-bottom-row{z-index:17;height:calc(var(--edge-thickness) + 8px);border-top:1px solid var(--line);background:var(--soft);position:fixed;bottom:0;overflow:hidden}.workspace-bottom-row .edge-track-viewport{width:100%;height:100%;overflow:hidden}.workspace-bottom-row .edge-ticks.horizontal{height:var(--edge-thickness)}.secondary-content{max-width:none;margin:0 0 0 64px;padding:28px 34px 0}.app{overflow-x:clip}@media (width<=760px){.instrument{--app-header-height:46px;--edge-thickness:46px;--workspace-visible-height:65vh}.workspace-header{height:var(--app-header-height);min-height:var(--app-header-height);flex-basis:var(--app-header-height)}.lower-tool-layout{grid-template-rows:auto auto minmax(65vh,auto)}.lower-tool-layout>.measurement-panel,.ruler-workspace-panel>.workspace-frame,.workspace-center,.workspace-center>.measure-viewport{min-height:65vh}.workspace-left-axis{width:64px}.edge-ticks.horizontal .tick.major{height:28px}.edge-ticks.horizontal .tick.mid{height:19px}.edge-ticks.horizontal .tick:not(.major):not(.mid){height:23px}.secondary-content{margin-left:64px;padding:22px 14px 0}}.edge-right .tick:first-child .tick-label{top:2px}.workspace-bottom-row{height:calc(var(--edge-thickness) + 24px)}.workspace-bottom-row .edge-track-viewport{overflow:visible}.modal-scrim{z-index:1000;overflow-y:auto}.calibration-modal{overscroll-behavior:contain;flex-direction:column;max-height:calc(100dvh - 32px);display:flex;overflow-y:auto}.modal-actions{background:var(--panel);flex:none;margin-top:auto;padding-top:12px;position:sticky;bottom:0}@media (width<=760px){.workspace-left-axis,.workspace-right-axis{transform:translateY(6px)}}.control-row .control-label{font-size:11px}.control-row .segmented button{min-height:34px;font-size:13px}.ruler-edge-controls .segmented button{width:36px;min-width:36px}.workspace-info-copy h1{font-size:18px}.workspace-info-row .calibration-pill b,.workspace-info-row .calibration-pill small{font-size:12px}.workspace-info-row .calibrate-small{font-size:11px}.measurement-header b{font-size:13px}.measurement-header small{font-size:12px}.mode-button{min-height:38px;font-size:12px}.workspace-prompt{font-size:12px}@media (width<=760px){.control-row .control-label{font-size:10px}.control-row .segmented button{min-height:33px;font-size:12px}.ruler-edge-controls .segmented button{width:31px;min-width:31px}.workspace-info-copy h1{font-size:16px}.workspace-info-row .calibration-pill b,.workspace-info-row .calibration-pill small,.workspace-info-row .calibrate-small{font-size:11px}.measurement-header b{font-size:12px}.measurement-header small{font-size:10px}.mode-button{min-height:36px;font-size:11px}.workspace-prompt{font-size:11px}}@media (width<=400px){.ruler-edge-controls .segmented button{width:27px;min-width:27px}.measurement-header small{font-size:10px}}.keyboard-measure-cursor{z-index:5;border:2px solid var(--accent-dark);background:color-mix(in srgb, var(--panel), transparent 28%);width:16px;height:16px;box-shadow:0 0 0 2px var(--panel);pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.min-h-screen{min-height:100vh}.resize{resize:both}.rounded{border-radius:.25rem}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
