:root{--bg: #191b1f;--rail: #f3f0e8;--rail-strong: #e4ded0;--ink: #1e2329;--muted: #6e747d;--paper: #fbfaf6;--line: #15191e;--object: #006f7a;--stage-bg: linear-gradient(90deg, rgba(11, 127, 135, .2), rgba(181, 107, 24, .12)), #25292f;--topbar-ink: #f3f0e8;--topbar-muted: rgba(243, 240, 232, .74);--topbar-border: rgba(255, 255, 255, .12);--grid-minor: #d9dee6;--grid-major: #b8c0cc;--grid-opacity: .74;--label-fill: rgba(251, 250, 246, .82);--label-stroke: rgba(30, 35, 41, .34);--length-text: rgba(30, 35, 41, .64);--length-indicator: rgba(30, 35, 41, .42);--caret: rgba(30, 35, 41, .82);--handle-fill: #ffffff;--handle-active-stroke: #ffffff;--marquee-fill: rgba(11, 127, 135, .08);--sketch-shadow: var(--shadow);--accent: #0b7f87;--accent-2: #b56b18;--danger: #b93438;--focus: #36a3ad;--collection-highlight: #169b56;--shadow: 0 18px 60px rgba(0, 0, 0, .24);font-family:Inter,system-ui,sans-serif}body[data-blueprint-theme=classic]{--bg: #07172b;--rail: #dbe7f3;--rail-strong: #c8d8e8;--ink: #162538;--muted: #51677c;--paper: #123e6c;--line: rgba(255, 255, 255, .9);--object: #ff8a00;--stage-bg: radial-gradient(circle at 35% 15%, rgba(255, 255, 255, .12), transparent 34%), #0a1c33;--topbar-ink: #f6fbff;--topbar-muted: rgba(246, 251, 255, .76);--topbar-border: rgba(255, 255, 255, .16);--grid-minor: rgba(255, 255, 255, .16);--grid-major: rgba(255, 255, 255, .34);--grid-opacity: 1;--label-fill: rgba(18, 62, 108, .82);--label-stroke: rgba(255, 255, 255, .54);--length-text: rgba(255, 255, 255, .82);--length-indicator: rgba(255, 255, 255, .5);--caret: rgba(255, 255, 255, .92);--handle-fill: #123e6c;--handle-active-stroke: #ffffff;--marquee-fill: rgba(255, 255, 255, .1);--accent: #1f6fb7;--accent-2: #f4e7b6;--focus: #f4e7b6;--danger: #b83244;--collection-highlight: #2de084;--sketch-shadow: 0 18px 72px rgba(0, 10, 28, .52)}body[data-blueprint-theme=cyber]{--bg: #04050d;--rail: #0d101c;--rail-strong: #171a29;--ink: #e9fbff;--muted: #8caabd;--paper: #050713;--line: #37f6ff;--object: #ffb02e;--stage-bg: linear-gradient(135deg, rgba(255, 0, 204, .14), transparent 36%), linear-gradient(315deg, rgba(0, 245, 255, .16), transparent 40%), #04050d;--topbar-ink: #e9fbff;--topbar-muted: rgba(233, 251, 255, .74);--topbar-border: rgba(55, 246, 255, .18);--grid-minor: rgba(255, 0, 204, .16);--grid-major: rgba(55, 246, 255, .28);--grid-opacity: 1;--label-fill: rgba(5, 7, 19, .86);--label-stroke: rgba(255, 176, 46, .62);--length-text: rgba(55, 246, 255, .9);--length-indicator: rgba(255, 176, 46, .58);--caret: rgba(55, 246, 255, .96);--handle-fill: #050713;--handle-active-stroke: #37f6ff;--marquee-fill: rgba(255, 176, 46, .1);--accent: #37f6ff;--accent-2: #ffb02e;--focus: #ffb02e;--danger: #ff476f;--collection-highlight: #25ff8f;--sketch-shadow: 0 18px 80px rgba(0, 245, 255, .18), 0 0 42px rgba(255, 0, 204, .12)}*{box-sizing:border-box}html,body{margin:0;min-width:980px;min-height:660px;height:100%;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}.app{display:grid;grid-template-columns:272px minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100vh;overflow:hidden}.rail{display:flex;flex-direction:column;gap:16px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:18px 14px 24px 18px;background:var(--rail);border-right:1px solid rgba(0,0,0,.18);box-shadow:var(--shadow);z-index:2}.brand{display:flex;align-items:center;gap:12px;min-height:48px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:2px solid var(--ink);font-family:JetBrains Mono,monospace;font-weight:600;color:var(--paper);background:var(--ink)}.brand strong{display:block}.brand strong{font-size:15px}.brand-title-input{display:block;width:min(172px,100%);margin-top:3px;padding:0;border:0;outline:0;border-bottom:1px solid transparent;border-radius:0;font:inherit;font-size:12px;color:var(--muted);background:transparent}.brand-title-input:hover,.brand-title-input:focus{border-bottom-color:color-mix(in srgb,var(--accent) 52%,transparent);color:var(--ink)}.tool-group{display:grid;grid-template-columns:repeat(3,40px);gap:8px}.tool-group.compact{grid-template-columns:repeat(1,40px)}.tool{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(30,35,41,.22);border-radius:8px;color:var(--ink);background:#ffffff9e;cursor:pointer;transition:border-color .16s,background .16s,color .16s,transform .16s}.blueprint-theme-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.blueprint-theme-btn{min-width:0;min-height:34px;padding:0 6px;border:1px solid rgba(30,35,41,.22);border-radius:7px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;color:var(--ink);background:#ffffff8f;cursor:pointer;transition:border-color .16s,background .16s,color .16s,box-shadow .16s}.blueprint-theme-btn:hover{border-color:color-mix(in srgb,var(--accent) 58%,transparent)}.blueprint-theme-btn.active{color:var(--paper);border-color:var(--accent);background:var(--accent)}.tool:hover{transform:translateY(-1px);border-color:#0b7f876b}.tool:disabled{cursor:not-allowed;transform:none}.tool.active{color:#fff;border-color:var(--accent);background:var(--accent)}.tool.lock-toggle-btn.is-unlocked{color:#fff;border-color:#148447;background:#1f9d55}.tool.lock-toggle-btn.is-locked{color:#fff;border-color:var(--danger);background:var(--danger)}.tool.lock-toggle-btn.is-empty{color:var(--muted);border-color:#1e23292e;background:#ffffff61}.tool.danger:hover{border-color:var(--danger);color:var(--danger)}.tool svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.line-width-popover,.label-default-popover,.entry-icon-popover,.assignment-menu{position:fixed;display:grid;gap:10px;padding:11px;border:1px solid rgba(30,35,41,.2);border-radius:8px;color:var(--ink);background:color-mix(in srgb,var(--paper) 92%,white);box-shadow:0 16px 38px #1e232938;z-index:20}.line-width-popover{width:190px}.label-default-popover{width:210px}.entry-icon-popover{width:228px}.assignment-menu{width:220px}.line-width-popover[hidden],.label-default-popover[hidden],.entry-icon-popover[hidden],.assignment-menu[hidden]{display:none}.line-width-popover-title,.label-default-popover-title,.entry-icon-popover-title,.assignment-menu-title{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.assignment-menu-item,.assignment-menu-back{min-height:34px;padding:0 10px;border:1px solid rgba(30,35,41,.18);border-radius:7px;color:var(--ink);text-align:left;background:#ffffff9e;cursor:pointer}.assignment-menu-flyout-row{position:relative;display:grid}.assignment-menu-flyout-trigger:after{content:">";float:right;font-weight:900;color:var(--muted)}.assignment-menu-submenu{position:absolute;top:0;left:calc(100% + 8px);display:none;width:220px;max-height:min(340px,calc(100vh - 24px));overflow-y:auto;gap:10px;padding:11px;border:1px solid rgba(30,35,41,.2);border-radius:8px;color:var(--ink);background:color-mix(in srgb,var(--paper) 92%,white);box-shadow:0 16px 38px #1e232938}.assignment-menu-flyout-row:after{content:"";position:absolute;top:0;left:100%;width:8px;height:100%}.assignment-menu-flyout-row:hover .assignment-menu-submenu,.assignment-menu-flyout-row:focus-within .assignment-menu-submenu,.assignment-menu-flyout-row.is-open .assignment-menu-submenu{display:grid}.assignment-menu-item:hover,.assignment-menu-back:hover{border-color:color-mix(in srgb,var(--accent) 58%,transparent)}.assignment-menu-create{color:var(--paper);border-color:var(--accent);background:var(--accent)}.assignment-menu-check{font-weight:800}.assignment-menu-back{color:var(--muted);text-align:center;background:transparent}.assignment-menu-empty{padding:4px 2px;font-size:12px;color:var(--muted)}.collection-name-dialog-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#0a0d1261;z-index:30}.collection-name-dialog-backdrop[hidden]{display:none}.collection-name-dialog{display:grid;gap:14px;width:min(460px,calc(100vw - 48px));padding:16px;border:1px solid color-mix(in srgb,var(--accent) 38%,rgba(255,255,255,.28));border-radius:8px;color:var(--ink);background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 94%,white),color-mix(in srgb,var(--paper) 88%,var(--accent-2))),var(--paper);box-shadow:0 22px 60px #00000057}.collection-name-dialog-row{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:12px;letter-spacing:0;text-transform:none}.collection-name-dialog-label{font-size:13px;font-weight:800;color:var(--ink)}.collection-name-dialog-input{min-width:0;min-height:36px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--accent) 42%,rgba(30,35,41,.22));border-radius:7px;color:var(--ink);background:#ffffffbd;outline:none}.collection-name-dialog-input:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 22%,transparent)}.collection-name-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.collection-name-dialog-actions button{min-width:74px;min-height:34px;padding:0 12px;border:1px solid rgba(30,35,41,.2);border-radius:7px;font-size:12px;font-weight:800;cursor:pointer}.collection-name-dialog-cancel{color:var(--muted);background:transparent}.collection-name-dialog-ok{color:var(--paper);border-color:var(--accent);background:var(--accent)}.collection-name-dialog-cancel:hover,.collection-name-dialog-ok:hover{border-color:var(--focus)}.entry-icon-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.entry-icon-option{display:grid;place-items:center;min-height:50px;border:1px solid rgba(30,35,41,.2);border-radius:7px;color:var(--ink);background:#ffffff9e;cursor:pointer;transition:border-color .16s,background .16s,color .16s}.entry-icon-option:hover{border-color:#0b7f876b}.entry-icon-option.active{color:#fff;border-color:var(--accent);background:var(--accent)}.entry-icon-option svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.line-width-preview{display:grid;align-items:center;min-height:42px;padding:0 10px;border:1px solid rgba(30,35,41,.12);border-radius:6px;background:#ffffff80}.line-width-preview-line{width:100%;min-height:1px;border-radius:999px;background:var(--line)}.line-width-preview-line.dotted{background:repeating-linear-gradient(90deg,var(--line) 0 12px,transparent 12px 22px)}.line-width-slider-row{display:grid;grid-template-columns:1fr 28px;align-items:center;gap:9px}.line-width-value{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;text-align:right;color:var(--ink)}.panel{display:grid;gap:8px;padding:12px;border:1px solid rgba(30,35,41,.13);border-radius:8px;background:#ffffff73}.panel-title,label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}input[type=text],input[type=number],select{width:100%;min-height:36px;padding:7px 9px;border:1px solid rgba(30,35,41,.2);border-radius:6px;color:var(--ink);background:#ffffffb8}input:disabled{color:#1e23296b;background:#ffffff61}input[type=range]{width:100%;accent-color:var(--accent)}.inline-row{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px}.snap-row{display:grid;grid-template-columns:1fr;gap:7px}.snap-option{display:grid;grid-template-columns:20px 1fr;align-items:center;gap:8px;min-height:28px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;color:var(--ink)}.snap-interval-label{margin-top:3px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:800;color:var(--muted)}.scale-note{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:4px 0;border-top:1px solid rgba(30,35,41,.12);border-bottom:1px solid rgba(30,35,41,.12);font-size:11px;color:var(--muted)}.scale-note strong{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink)}.plan-scale-row{display:grid;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);align-items:center;gap:7px}.plan-scale-row span{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800;text-align:center}.assignment-menu-item:disabled{opacity:.48;cursor:not-allowed}.convert-reading-btn{width:100%;min-height:36px;border:1px solid rgba(11,127,135,.34);border-radius:7px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:800;letter-spacing:0;color:var(--ink);background:#0b7f871a;box-shadow:0 1px #ffffffb8 inset,0 1px 2px #1e23291f;cursor:pointer;transition:border-color .16s,background .16s,color .16s,box-shadow .16s,transform .16s}.convert-reading-btn:hover{border-color:#0b7f8794;background:#0b7f8729}.convert-reading-btn.active{color:#fff;border-color:var(--accent);background:var(--accent);box-shadow:0 2px 7px #00000042 inset;transform:translateY(1px)}.properties{margin-top:auto}.rotation-control{display:grid;gap:8px}.rotation-manual-row{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:7px}#rotation-angle-input.invalid:not(:disabled){border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 18%,transparent)}.rotation-set,.rotation-nudge,.rotation-cycle{border:1px solid rgba(11,127,135,.34);border-radius:7px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;color:var(--ink);background:#0b7f871a;cursor:pointer}.rotation-set{min-height:36px}.rotation-set:hover:not(:disabled),.rotation-nudge:hover:not(:disabled),.rotation-cycle:hover:not(:disabled){border-color:#0b7f8794;background:#0b7f8729}.rotation-set:disabled,.rotation-nudge:disabled,.rotation-cycle:disabled{color:#1e232961;background:#ffffff61;cursor:not-allowed}.rotation-step-control{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);grid-template-rows:42px 21px;gap:7px;align-items:stretch}.rotation-nudge{min-width:0;min-height:42px;font-size:20px;line-height:1}.rotation-cycle{grid-column:1 / 4;min-height:21px;padding:0 8px;font-size:11px}.rotation-step-lights{display:grid;grid-template-rows:repeat(5,1fr);gap:2px;min-height:42px}.rotation-step-lights span{display:grid;place-items:center;min-width:0;min-height:0;border:1px solid rgba(30,35,41,.18);border-radius:3px;font-family:JetBrains Mono,monospace;font-size:8px;font-weight:800;line-height:1;color:#1e23296b;background:#ffffff7a}.rotation-step-lights span.active{border-color:#1e7e499e;color:#fff;background:#24894f}.transparency-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:8px}.transparency-row span{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;color:var(--muted);text-align:right}.precision-cycle{width:100%;min-height:34px;border:1px solid rgba(11,127,135,.34);border-radius:7px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;color:var(--ink);background:#0b7f871a;cursor:pointer}.precision-cycle:hover{border-color:#0b7f8794;background:#0b7f8729}.muted{min-height:22px;font-size:13px;color:var(--muted)}.clear-btn{min-height:34px;width:100%;border:1px solid rgba(30,35,41,.2);border-radius:7px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--ink);background:#ffffffa8;cursor:pointer;color:var(--danger)}.stage{display:grid;grid-template-rows:54px minmax(0,1fr);min-width:0;background:var(--stage-bg)}.topbar{display:grid;grid-template-columns:auto minmax(360px,1fr) auto;align-items:center;gap:16px;padding:0 22px;color:var(--topbar-ink);border-bottom:1px solid var(--topbar-border)}.status,.topbar-filters,.stats{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600}#mode-dot{width:10px;height:10px;border-radius:999px;background:var(--accent-2);box-shadow:0 0 14px #b56b18c7}.stats{font-family:JetBrains Mono,monospace;color:var(--topbar-muted)}.topbar-filters{min-width:0;justify-content:flex-start;font-family:JetBrains Mono,monospace;color:var(--topbar-muted)}#unit-select,#room-filter-select,#layer-filter-select{min-height:30px;padding:4px 28px 4px 9px;border:1px solid color-mix(in srgb,var(--topbar-ink) 22%,transparent);border-radius:7px;color:var(--topbar-ink);background:#191b1f6b}#unit-select{width:48px;min-width:48px;padding:4px 18px 4px 6px}#room-filter-select,#layer-filter-select{width:178px;min-width:142px;max-width:220px}#scale-label{color:color-mix(in srgb,var(--topbar-ink) 62%,transparent)}#room-metrics{flex:0 0 auto;min-width:180px;max-width:280px;overflow:hidden;color:color-mix(in srgb,var(--topbar-ink) 72%,transparent);text-overflow:ellipsis;white-space:nowrap}.topbar .convert-reading-btn{width:auto;min-width:114px;min-height:30px;padding:0 10px;border-color:color-mix(in srgb,var(--topbar-ink) 26%,transparent);color:var(--topbar-ink);background:#191b1f6b;box-shadow:none}.topbar .convert-reading-btn:hover{border-color:color-mix(in srgb,var(--accent-2) 70%,transparent);background:#ffffff1a}.topbar .convert-reading-btn.active{color:#16181c;border-color:var(--accent-2);background:var(--accent-2);box-shadow:0 2px 7px #00000038 inset}.collection-manager button{min-width:0;min-height:30px;padding:0 6px;border:1px solid rgba(30,35,41,.18);border-radius:7px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;color:var(--ink);background:#ffffff94;cursor:pointer}.collection-manager button:hover{border-color:color-mix(in srgb,var(--accent) 58%,transparent)}.collection-manager{display:grid;gap:6px}.collection-manager-empty{font-size:12px;color:var(--muted)}.collection-row{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px;align-items:center;gap:6px}.collection-row-name{overflow:hidden;font-size:12px;font-weight:700;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.collection-manager button.active{color:#fff;border-color:var(--accent);background:var(--accent)}.dimension-line{stroke:var(--accent-2);fill:none;vector-effect:non-scaling-stroke}.dimension-tick{stroke:var(--accent-2);fill:var(--accent-2);vector-effect:non-scaling-stroke}.dimension-text{fill:var(--accent-2);stroke:none}.dimension-hit{stroke:transparent;fill:none;pointer-events:stroke;cursor:move}.reference-line{stroke:var(--accent-2);fill:none;stroke-dasharray:12 10;stroke-linecap:square;vector-effect:non-scaling-stroke;cursor:move}.reference-hit{stroke:transparent;fill:none;pointer-events:stroke;cursor:move;vector-effect:non-scaling-stroke}.reference-line.object-locked{stroke:var(--danger)}.canvas-wrap{min-width:0;min-height:0;padding:22px}#sketch{display:block;width:100%;height:100%;border-radius:8px;background:var(--paper);box-shadow:var(--sketch-shadow);touch-action:none;-webkit-user-select:none;user-select:none}#sketch[data-tool=pan]{cursor:grab}#sketch.is-panning,#sketch[data-tool=pan].is-panning,#sketch.is-panning *{cursor:grabbing}#sketch[data-tool=pan] .object-line,#sketch[data-tool=pan] .object-entry,#sketch[data-tool=pan] .object-label,#sketch[data-tool=pan] .object-picture,#sketch[data-tool=pan] .handle,#sketch[data-tool=pan] .rotation-handle{cursor:grab}.paper{fill:var(--paper)}.grid{opacity:var(--grid-opacity)}#small-grid path{stroke:var(--grid-minor)}#grid>path{stroke:var(--grid-major)}.object-line{stroke:var(--line);color:var(--line);stroke-linecap:square;fill:none;vector-effect:non-scaling-stroke}.object-entry{stroke:var(--object);color:var(--object);stroke-linecap:square;fill:none;vector-effect:non-scaling-stroke}.object-entry text{fill:var(--object);stroke:none}.object-line.object-locked,.object-entry.object-locked{stroke:var(--danger);color:var(--danger)}.object-entry.object-locked text{fill:var(--danger)}.object-label.object-locked rect,.object-picture.object-locked .picture-lock-outline{fill:none;stroke:var(--danger);stroke-width:3;vector-effect:non-scaling-stroke}.object-label.object-locked text{fill:var(--danger)}.object-locked{cursor:not-allowed}.object-line.object-active-collection,.object-entry.object-active-collection{stroke:var(--collection-highlight);color:var(--collection-highlight)}.object-entry.object-active-collection text,.object-label.object-active-collection text{fill:var(--collection-highlight)}.line-grab-box.object-locked,.object-locked .object-entry-grab-box,.object-locked image{cursor:not-allowed}.object-entry-grab-box{fill:transparent;stroke:transparent;pointer-events:all;cursor:move}.line-grab-box{fill:none;stroke:transparent;pointer-events:stroke;cursor:move;vector-effect:non-scaling-stroke}.object-line,.object-picture{cursor:move}.object-picture image{pointer-events:all}.picture-pdf-placeholder{fill:color-mix(in srgb,var(--accent-2) 14%,var(--paper));stroke:var(--accent-2);stroke-width:2;vector-effect:non-scaling-stroke}.picture-pdf-text{fill:var(--accent-2);stroke:none;pointer-events:none}.object-selected{filter:drop-shadow(0 0 4px rgba(54,163,173,.46))}.line-length-control{overflow:visible;pointer-events:none}.line-length-indicator{stroke:var(--length-indicator);stroke-width:1.2;stroke-linecap:round;stroke-dasharray:5 5;pointer-events:none;vector-effect:non-scaling-stroke}.line-length-group.draggable{cursor:move}.line-length-drag-hit{fill:transparent;stroke:transparent;pointer-events:all;cursor:move}.line-length-edit-hit{fill:transparent;stroke:transparent;pointer-events:all;cursor:text}.line-length-text{fill:var(--length-text);font-family:JetBrains Mono,monospace;font-weight:600;text-anchor:middle;dominant-baseline:alphabetic;pointer-events:none;-webkit-user-select:none;user-select:none}.line-length-text.draggable{cursor:move;pointer-events:auto}.line-length-text.editable{cursor:text;pointer-events:auto}.line-length-box{display:block;height:100%;min-height:0;margin:0;padding:0;border:0!important;border-radius:0!important;appearance:textfield;-moz-appearance:textfield;-webkit-appearance:none;box-sizing:border-box;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;line-height:24px;color:var(--length-text);text-align:center;background:transparent!important;background-color:transparent!important;box-shadow:none!important;outline:0!important;caret-color:var(--ink);pointer-events:auto}.line-length-box::-webkit-inner-spin-button,.line-length-box::-webkit-outer-spin-button{appearance:none;margin:0}.line-length-box:focus{border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important}input.line-length-box[type=text]{min-height:0;padding:0}.line-length-box:disabled{color:var(--length-text);opacity:1;-webkit-text-fill-color:var(--length-text)}.line-length-capture{color:transparent!important;-webkit-text-fill-color:transparent!important;caret-color:transparent;cursor:text;opacity:1}.line-length-capture:focus,.line-length-capture::selection{color:transparent!important;-webkit-text-fill-color:transparent!important;background:transparent}.line-length-control.active{pointer-events:auto}.line-length-caret{stroke:var(--caret);opacity:0;pointer-events:none;shape-rendering:crispEdges}.line-length-caret.visible{animation:line-length-caret-blink 1s steps(1) infinite}@keyframes line-length-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.object-label rect{fill:var(--label-fill);stroke:var(--label-stroke);stroke-width:1.5}.object-label text{fill:var(--line);font-family:JetBrains Mono,monospace;font-weight:700;letter-spacing:0;dominant-baseline:middle;text-anchor:middle;pointer-events:none}.object-label.object-editing text{opacity:0}.label-text-control.active{pointer-events:auto}.label-text-box{display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0!important;border-radius:0!important;box-sizing:border-box;appearance:none;font-family:JetBrains Mono,monospace;font-weight:700;color:var(--line)!important;text-align:center;background:transparent!important;box-shadow:none!important;outline:0!important;caret-color:var(--ink);pointer-events:auto}input.label-text-box[type=text]{min-height:0;padding:0}.label-text-box:focus{border:0!important;color:var(--line)!important;outline:0!important;background:transparent!important;box-shadow:none!important}.label-text-box::selection{color:var(--line);background:#f7b54a52}.selected-outline{fill:none;stroke:var(--focus);stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}.selection-move-hit{fill:transparent;stroke:transparent;pointer-events:all;cursor:move}.marquee-selection{fill:var(--marquee-fill);stroke:var(--focus);stroke-width:2;stroke-dasharray:8 6;pointer-events:none;vector-effect:non-scaling-stroke}.zoom-dot-marker{pointer-events:none}.zoom-dot-ring{fill:#b56b1829;stroke:var(--accent-2);stroke-width:1.5;vector-effect:non-scaling-stroke}.zoom-dot-cross{stroke:var(--accent-2);stroke-width:1.2;stroke-linecap:round;vector-effect:non-scaling-stroke}.handle{fill:var(--handle-fill);stroke:var(--focus);stroke-width:2;cursor:pointer;vector-effect:non-scaling-stroke}.resize-handle-hit{fill:transparent;stroke:transparent;pointer-events:all;cursor:pointer}.resize-handle-visual{pointer-events:none;stroke-width:1}.line-endpoint-hit{fill:transparent;stroke:transparent;pointer-events:all}.line-endpoint-handle{pointer-events:none;stroke-width:.4}.endpoint-active{fill:var(--focus);stroke:var(--handle-active-stroke);stroke-width:.5}.rotate-line{stroke:var(--focus);stroke-width:1.5;pointer-events:none;vector-effect:non-scaling-stroke}.rotation-handle{fill:var(--focus);stroke:var(--handle-active-stroke);stroke-width:2;cursor:grab;vector-effect:non-scaling-stroke}body[data-blueprint-theme=cyber] .rail{border-right-color:#37f6ff2e}body[data-blueprint-theme=cyber] .brand-mark,body[data-blueprint-theme=cyber] .tool.active,body[data-blueprint-theme=cyber] .blueprint-theme-btn.active,body[data-blueprint-theme=cyber] .convert-reading-btn.active{color:#050713;box-shadow:0 0 18px #37f6ff38}body[data-blueprint-theme=cyber] .tool,body[data-blueprint-theme=cyber] .panel,body[data-blueprint-theme=cyber] .blueprint-theme-btn,body[data-blueprint-theme=cyber] .convert-reading-btn,body[data-blueprint-theme=cyber] .clear-btn{border-color:#37f6ff33;background:#ffffff0d}body[data-blueprint-theme=cyber] .convert-reading-btn.active{background:var(--accent);box-shadow:0 2px 7px #0000005c inset,0 0 18px #37f6ff38}body[data-blueprint-theme=cyber] .tool.lock-toggle-btn.is-unlocked{border-color:#28d66d;background:#147a42}body[data-blueprint-theme=cyber] .tool.lock-toggle-btn.is-locked{border-color:var(--danger);background:var(--danger)}body[data-blueprint-theme=cyber] .tool.lock-toggle-btn.is-empty{color:#e9fbff7a;background:#ffffff0d}body[data-blueprint-theme=cyber] input[type=text],body[data-blueprint-theme=cyber] input[type=number],body[data-blueprint-theme=cyber] select{border-color:#37f6ff38;color:var(--ink);background:#050713ad}body[data-blueprint-theme=cyber] input:disabled{color:#e9fbff57;background:#e9fbff0d}@media(max-width:1080px){.app{grid-template-columns:236px minmax(0,1fr)}.rail{padding:14px}.tool-group{gap:6px}.tool-group.compact{grid-template-columns:repeat(1,34px)}.tool{width:34px;height:34px}.scale-note{grid-template-columns:1fr;gap:3px}}
