.dimension-line,.dimension-extension{stroke:#f0bd82;stroke-width:1;fill:none}.dimension-extension{stroke:#b9895d;stroke-dasharray:3 3}.dimension-arrow{fill:#f0bd82}.dimension-text{fill:#ffe0bd;font-size:11px;font-weight:700;paint-order:stroke;stroke:#12232b;stroke-width:3px;stroke-linejoin:round}.node.protected,.handle.protected{fill:#84999c;stroke:#d1dcdd;cursor:not-allowed}.node.protected.selected{fill:#ffc369;stroke:#d1dcdd}.segment-hit.protected{cursor:not-allowed}.export-dialog{width:min(1180px,calc(100vw - 24px));max-width:none;padding:0;max-height:calc(100dvh - 24px);color:var(--text, #ddd)}.export-dialog>header{display:flex;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid #454545}.export-dialog h2{margin:0;font-size:1.2rem}.export-dialog header p{margin:6px 0 0;font-size:.85rem}.export-dialog .export-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;padding:16px 20px;max-height:calc(100dvh - 210px);overflow:auto}.export-dialog .export-settings{display:flex;flex-direction:column;gap:16px}.export-dialog fieldset{border:1px solid #555;border-radius:6px;padding:10px;min-width:0;margin:0}.export-dialog legend{padding:0 5px}.export-dialog label{display:flex;align-items:center;gap:8px;margin:7px 0;font-size:.85rem}.export-dialog input[type=checkbox]{flex:none;width:16px;height:16px}.export-dialog select{min-width:0;max-width:180px;margin-left:auto}.export-dialog input[type=number]{width:70px;margin-left:auto}.export-dialog .export-formats{display:flex;gap:6px}.export-dialog button[aria-pressed=true]{outline:2px solid #81b9e8}.export-dialog .export-preview-section{min-width:0;display:block}.export-dialog .export-preview{background:#fff;height:440px;min-height:220px;border:1px solid #aaa;padding:8px}.export-dialog .export-preview svg{display:block;width:100%;height:100%}.export-dialog .export-pages{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.export-dialog .export-page-tile{display:flex;flex-direction:column;padding:8px;font-size:.75rem;border:1px solid #666}.export-dialog .export-error{color:#ffaca4;padding:12px;border:1px solid currentColor}.export-dialog .export-hint{font-size:.8rem;line-height:1.5}.export-dialog>footer{padding:12px 20px;border-top:1px solid #555;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}@media(max-width:700px){.export-dialog .export-grid{grid-template-columns:1fr;padding:12px;gap:12px}.export-dialog .export-preview{height:300px}.export-dialog>header{padding:12px}.export-dialog>footer{padding:10px}}.reference-controls{border:1px solid #3a555e;border-radius:6px;background:#17282f;padding:8px 10px;font-size:12px}.reference-head{display:flex;align-items:center;gap:8px}.reference-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px;color:#cfe5e1}.reference-controls p{margin:5px 0 0;color:#9bb8b5}.reference-panel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.reference-panel label{display:flex;align-items:center;gap:5px}.reference-panel input[type=range]{width:86px}.reference-check{color:#dcece9}.reference-fields{display:flex;gap:6px;flex-wrap:wrap}.reference-fields label{gap:3px}.reference-fields input{width:78px;background:#0e1b20;color:inherit;border:1px solid #46636c;border-radius:3px;padding:5px}.reference-fields span{color:#9bb8b5}.body-path.with-reference{fill:#254148aa}.reference-layer{pointer-events:none}.reference-project{fill:#e6b45c44;stroke:#ffd88d;stroke-width:1.4;vector-effect:non-scaling-stroke}.reference-raster{pointer-events:none}:root{font-family:Inter,system-ui,sans-serif;color:#e7eeed;background:#101b21;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:linear-gradient(#0c13182e,#0c131857),url(/gtrfactory/assets/gtrfactory-workshop-background-v1-Bp2CYewL.webp) center / cover no-repeat,#101b21}#root{position:relative;z-index:1}button,input{font:inherit}button{color:inherit;background:#20353d;border:1px solid #46636c;border-radius:5px;padding:7px 10px;cursor:pointer;font-size:13px;white-space:nowrap}button:hover:enabled{background:#2b4750}button:focus-visible,input:focus-visible,.editor-svg:focus-visible{outline:2px solid #fac28b;outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed}button.accent,button[aria-pressed=true]{background:#186c69;border-color:#65c7bc}.editor{max-width:none;margin:auto;height:100dvh;min-height:540px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}header,.toolbar,.camera,.inspector{display:flex;align-items:center;gap:12px;flex-wrap:wrap}header{flex:none;padding:0}.wordmark{margin:0 8px 0 0;color:#f5a45d;font-weight:800;font-size:20px}.wordmark span{color:#e8f0ef;font-weight:400}.project-name{min-width:0;width:190px;background:#132229;color:inherit;border:1px solid #45616a;border-radius:4px;padding:7px;font-size:14px}.file-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.dirty{color:#ffc175}.saved{color:#92b4ae}.toolbar{flex:none;justify-content:flex-start;gap:8px;padding:6px;background:#17282f;border-radius:6px}.toolbar>div{display:flex;gap:4px;flex-wrap:wrap}.camera-help,.editing-help{font-size:11px;color:#9ebbb8}.separator{height:18px;border-left:1px solid #46636c;margin:0 4px}.workspace{display:grid;flex:1;min-height:260px;height:auto;grid-template-columns:minmax(0,1fr) clamp(180px,18vw,240px);gap:8px}.large{min-height:0;min-width:0;height:auto;display:grid}.thumbnails{min-height:0;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:8px}.canvas-card{min-width:0;min-height:0;display:grid;grid-template-rows:26px minmax(0,1fr);background:#17282f66;border:1px solid #3a555e;border-radius:6px;overflow:hidden}.canvas-title{text-align:left;background:#1d3239;padding:5px 9px;font-size:12px;font-weight:500}.small{cursor:pointer}.small:focus-visible{outline:2px solid #fac28b;outline-offset:2px}.svg-wrap{min-width:0;min-height:0;position:relative;overflow:hidden}.editor-svg{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.editor-svg.pan-mode{cursor:grab}.paper{fill:#12232b70}.ruler-bg{fill:#17282f}.ruler-line{stroke:#547976;stroke-width:1}.ruler-text,.unit{fill:#afc8c3;font-size:10px}.unit{font-weight:700}.body-path{fill:#254148;stroke:#dbeee9;stroke-width:1.6;vector-effect:non-scaling-stroke;pointer-events:none}.original-body-ghost{fill:none;stroke:#8d79d5;stroke-width:1.2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;opacity:.62}.body-grid{fill:none;stroke:#7fa6a133;stroke-width:.75;vector-effect:non-scaling-stroke}.body-comparison-tools{display:flex;align-items:center;gap:7px;font-size:12px}.body-comparison-tools label{display:flex;align-items:center;gap:4px;white-space:nowrap}.headstock-confirm-dialog{z-index:200;max-width:min(420px,calc(100vw - 32px));color:#e7eeed;background:#17282f;border:1px solid #75918f;border-radius:7px;box-shadow:0 16px 48px #000a}.headstock-confirm-actions{display:flex;justify-content:end;gap:8px}.centerline{stroke:#75918f;stroke-width:1;stroke-dasharray:5 5;vector-effect:non-scaling-stroke;pointer-events:none}.node{fill:#36c9b8;stroke:#0b2d30;stroke-width:1.5;vector-effect:non-scaling-stroke;cursor:crosshair}.node.selected{fill:#ffc369;stroke:#5f361c}.handle{fill:#132d33;stroke:#a5eadc;stroke-width:1.5;vector-effect:non-scaling-stroke;cursor:crosshair}.handle-line{stroke:#78b4aa;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.segment-hit{stroke:transparent;stroke-width:13;fill:none;vector-effect:non-scaling-stroke;cursor:pointer}.segment-hit.selected-segment{stroke:#edb87888;stroke-width:6}.marquee{fill:#45d8ce22;stroke:#63ded4;stroke-width:1;pointer-events:none}.pocket-note{position:absolute;bottom:8px;left:50px;right:12px;margin:0;background:#15282deb;padding:6px 8px;color:#c7d8d4;font-size:11px;line-height:1.4;pointer-events:none;border-radius:4px}.inspector{min-height:36px;gap:8px;padding:5px 8px;border:0;border-radius:6px;background:transparent;justify-content:space-between}.inspector>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.muted{font-size:12px;color:#9bb8b5}.inspector strong{font-size:12px;font-weight:500}.coordinates{min-height:26px}.coordinates label{font-size:12px}.coordinates input{width:75px;background:#0e1b20;color:inherit;border:1px solid #46636c;border-radius:3px;padding:4px}.editing-help{margin:0}.notice,.warning{margin:0;padding:5px 8px;border-radius:4px;font-size:12px}.notice{background:#25434a}.warning{background:#443625;color:#f7cc8a}dialog{max-width:min(420px,90vw);color:#e7eeed;background:#1b323b;border:1px solid #759b9b;border-radius:8px;padding:22px}dialog::backdrop{background:#0009}dialog p{margin:0 0 16px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.save-name-dialog{max-width:420px}.save-name-dialog label{display:grid;gap:6px}.save-name-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.save-name-error{color:#ffb1a8;margin-top:10px}.dirty,.saved{font-size:11px}.toolbar button{padding:6px 8px;font-size:12px}.camera{gap:4px}.body-tools{border-inline:1px solid #39545d;padding-inline:8px}.status-area{height:64px;flex:none;display:grid;gap:4px;max-height:130px;overflow:auto}.file-menu{position:relative;margin-left:auto;font-size:13px}.file-menu summary{cursor:pointer;list-style:none;border:1px solid #46636c;border-radius:5px;padding:7px 10px;background:#20353d}.file-menu summary:focus-visible{outline:2px solid #fac28b}.file-actions{position:absolute;right:0;top:calc(100% + 5px);z-index:10;display:grid;min-width:210px;background:#17282f;padding:8px;border:1px solid #46636c;border-radius:5px;box-shadow:0 8px 24px #0005}.file-actions button{text-align:left}.toolbar .reference-controls{position:relative;padding:0;border:0;background:transparent}.reference-head{gap:4px}.reference-name{max-width:100px}.reference-panel{position:absolute;right:0;top:100%;width:min(510px,calc(100vw - 28px));padding:12px;z-index:9;background:#17282f;border:1px solid #46636c;border-radius:5px;box-shadow:0 8px 24px #0005}.reference-panel p{width:100%;margin:0 0 6px}.neck-outline{fill:#d9b27a77;stroke:#fac28b;stroke-width:1.4;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:visiblePainted}.neck-outline:focus-visible{stroke:#fff1bc;stroke-width:3;outline:none}.neck-template{fill:#d9b27a20;stroke-dasharray:5 3;opacity:.8}.neck-heel{fill:none;stroke:#fac28b;stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.body-edge-over-neck{fill:none;stroke:#dbeee9;stroke-width:1.6;vector-effect:non-scaling-stroke;pointer-events:none}.nut-line{fill:none;stroke:#b8f1e5;stroke-width:1.4;vector-effect:non-scaling-stroke;pointer-events:none}.bridge-line{fill:none;stroke:#ffb86c;stroke-width:1.4;stroke-dasharray:5 3;vector-effect:non-scaling-stroke;pointer-events:none}.neck-guide-fret{fill:none;stroke:#9bb8b5;stroke-width:.7;vector-effect:non-scaling-stroke;pointer-events:none}.neck-guide-string{stroke:#b8f1e5;stroke-width:.5;vector-effect:non-scaling-stroke;pointer-events:none}.neck-dock{flex:none;height:182px;min-height:0;display:flex;flex-direction:column;gap:7px;background:#17282f;border:1px solid #3a555e;border-radius:6px;padding:8px 10px}.neck-heading{flex:none;display:flex;align-items:center;gap:12px}.neck-heading h2{font-size:13px;margin:0;white-space:nowrap}.neck-groups,.neck-actions{display:flex;gap:5px}.neck-groups button,.neck-actions button{padding:5px 9px;font-size:12px}.neck-groups button[aria-selected=true]{background:#186c69;border-color:#65c7bc}.neck-actions{margin-left:auto;white-space:nowrap}.neck-content{min-height:0;overflow:auto}.neck-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 14px}.neck-dock label{position:relative;display:grid;gap:3px;color:#b9ceca;font-size:11px;min-width:0}.neck-dock input{min-width:0;width:100%;background:#0e1b20;color:inherit;border:1px solid #46636c;border-radius:3px;padding:5px;font-size:13px}.field-unit{position:absolute;right:0;top:0;color:#8caaa7}.field-hint{font-size:11px;color:#a2bfba;margin:6px 0}.field-error{flex:none;margin:0;font-size:12px;color:#ffc175}.neck-import{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.neck-import label{flex:1;min-width:200px}.neck-import .field-hint{width:100%}@media(max-width:1100px){.toolbar{gap:5px}.body-tools{padding-inline:4px}.toolbar button{padding:5px 7px}.neck-heading{gap:8px}.neck-heading h2{display:none}.reference-panel{left:0;right:auto}.editing-help{display:none}}@media(max-width:850px){.editor{height:auto;min-height:100dvh;padding:8px}.camera-help,.editing-help{flex-basis:100%}.workspace{flex:none;grid-template-columns:minmax(0,1fr)}.large{height:clamp(285px,44dvh,420px)}.thumbnails{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:155px}.neck-dock{height:245px}.neck-heading{flex-wrap:wrap}.neck-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.neck-actions{margin-left:0}.status-area{max-height:none}.saved,.dirty{flex-basis:auto}.file-actions{margin:0}.body-tools{border:0;padding:0}.inspector{padding:4px}.project-name{width:150px}.reference-panel{position:fixed;left:10px;right:10px;top:160px;width:auto;max-height:65dvh;overflow:auto}}@media(max-width:480px){header{gap:8px}.wordmark{font-size:18px;margin:0}.project-name{width:133px}.file-menu{margin-left:0}.file-actions{gap:5px}button{padding:7px 8px}.coordinates{gap:6px!important}.neck-dock{padding:8px}.neck-groups{gap:4px;flex-wrap:wrap}.neck-groups button{padding:5px 7px}.neck-actions button{padding:5px 8px}.toolbar{gap:5px}.thumbnails{gap:6px}.canvas-title{font-size:11px}.pocket-note{left:44px;right:4px;padding:3px;font-size:9px}.coordinates{min-height:26px}.coordinates label{font-size:11px}}.context-tools{flex:none;height:68px;min-height:68px;border:1px solid #3a555e;border-radius:6px;background:#17282f;padding:8px 10px;overflow:auto}.context-content{height:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-content:center}.context-label{font-size:12px;color:#d5e4df;white-space:nowrap}.context-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.context-actions button{font-size:12px;padding:5px 8px}.context-tools .coordinates{display:flex;align-items:center;gap:8px;min-height:26px}.context-hint{font-size:11px;color:#9ebbb8}.segment-preview-marker{fill:#fac28b;stroke:#12232b;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.segment-hit:focus-visible{stroke:#edb87888;outline:none}.node:focus-visible{stroke:#fff1bc;stroke-width:3;outline:none}.pocket-corner{cursor:pointer;outline:none}.corner-hit{stroke:transparent;stroke-width:22;fill:none;vector-effect:non-scaling-stroke;pointer-events:stroke}.corner-hit-point{fill:transparent;stroke:none;pointer-events:all}.corner-highlight{fill:none;stroke:#fac28b;stroke-width:3;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none}.pocket-corner:hover .corner-highlight,.pocket-corner:focus-visible .corner-highlight,.pocket-corner.radius-active .corner-highlight{opacity:1}@media(max-width:1100px){.context-tools{height:94px;min-height:94px}.context-content{gap:6px 10px}.context-hint{flex-basis:100%}}@media(max-width:850px){.context-tools{height:138px;min-height:138px;padding:8px}.context-content{align-content:center;gap:6px 10px}.context-label{flex-basis:100%}.context-hint{line-height:1.35}.context-tools .context-actions{gap:4px}.context-actions button{padding:5px 7px}}.neck-editing .context-tools{display:none}.pickup-cavity{fill:#101b21;stroke:#ffb86c;stroke-width:1.5;vector-effect:non-scaling-stroke;cursor:ew-resize}.pickup-cavity.selected{fill:#ffb86c33;stroke:#fff1bc;stroke-width:2.5}.pickup-cavity:focus-visible{outline:none;stroke:#fff1bc;stroke-width:3}.pickup-profile-popup{box-sizing:border-box;position:fixed;z-index:100;display:grid;gap:5px;width:min(320px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;padding:8px;background:#17282f;border:1px solid #46636c;border-radius:5px;box-shadow:0 8px 24px #0008}.pickup-profile-popup button{display:flex;align-items:center;gap:10px;text-align:left;min-height:42px}.pickup-profile-popup small{display:block;color:#aec0c5;font-size:11px}.pickup-profile-popup svg{width:42px;height:30px;flex:none;overflow:visible}.pickup-profile-popup path{fill:#ffb86c33;stroke:#ffb86c;stroke-width:1.5;vector-effect:non-scaling-stroke}.coordinates .field-error{display:block;color:#ffc175;font-size:11px}.headstock-outline{fill:#d9b27a77;stroke:#fac28b;stroke-width:1.4;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:visiblePainted}.headstock-outline:focus-visible{stroke:#fff1bc;stroke-width:3;outline:none}.headstock.editing .headstock-outline{fill:#d9b27a99;stroke:#fff1bc}.tuner-hole{fill:#101b21;stroke:#e7eeed;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.headstock-string{stroke:#b8f1e5;stroke-width:.55;vector-effect:non-scaling-stroke;pointer-events:none}.headstock-model{display:flex;align-items:center;gap:8px;min-width:0}.headstock-model select{max-width:100%;font:inherit;padding:6px 8px;border:1px solid #b9c6cc;border-radius:4px;background:#20353d;color:inherit}.electronics-cavity .outer{fill:#101b21aa;stroke:#ffb86c;stroke-width:1.6;vector-effect:non-scaling-stroke;cursor:move}.electronics-cavity .inner{fill:none;stroke:#e7eeed;stroke-width:1.2;vector-effect:non-scaling-stroke}.electronics-cavity.selected .outer{stroke:#fff1bc;stroke-width:2.6}.electronics-cavity.invalid .outer{stroke:#ff6b6b}.electronics-cavity-handle{fill:#fff1bc;stroke:#17282f;stroke-width:2;vector-effect:non-scaling-stroke;cursor:ew-resize}.electronics-cavity-handle.top,.electronics-cavity-handle.bottom{cursor:ns-resize}
