:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f7f4ee;--paper-deep:#ece7dd;--surface:#fffdf9;--surface-soft:#fbf9f5;--ink:#2b2b2b;--ink-soft:#6b665e;--line:#d9d2c4;--brass:#b08d57;--brass-deep:#8e6f3e;--brass-wash:#f3ece0;--danger:#9b3b2f;--danger-wash:#fbf1ee;--primary-hover:#000;--viewport-glow:var(--surface-soft);--overlay:#fffdf9d9;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#141516;--paper-deep:#0c0d0e;--surface:#1d1e20;--surface-soft:#191a1c;--ink:#ece7de;--ink-soft:#a39c91;--line:#2e2f31;--brass:#c4a167;--brass-deep:#a8874f;--brass-wash:#2a251c;--danger:#e38b78;--danger-wash:#2a1c19;--primary-hover:#fff;--viewport-glow:#1f2124;--overlay:#1d1e20e0}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}#app{grid-template-rows:auto 1fr;height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--paper);z-index:3;align-items:center;gap:18px;padding:10px 20px;display:flex;position:relative}.wordmark{font-family:var(--serif);letter-spacing:.02em;white-space:nowrap;margin:0;font-size:22px;font-weight:500}.wordmark-accent{color:var(--brass)}.drawer-tabs{gap:4px;margin-left:12px;display:flex}.tab{color:var(--ink-soft);font:600 14px var(--sans);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 14px}.tab:hover{color:var(--ink);background:var(--brass-wash)}.tab[aria-expanded=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brass);border-radius:8px 8px 2px 2px}.tab:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.stage{min-height:0;position:relative;overflow:hidden}.drawer{background:var(--paper);border:1px solid var(--line);z-index:2;border-radius:14px;width:330px;padding:22px 24px 26px;position:absolute;top:14px;bottom:14px;right:14px;overflow-y:auto;box-shadow:0 12px 40px #00000024}.drawer-close{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:22px;line-height:1;position:absolute;top:10px;right:10px}.drawer-close:hover{color:var(--ink);background:var(--brass-wash)}.drawer-close:focus-visible{outline:2px solid var(--brass)}.drawer-empty{margin-top:28px!important}.drawer .stencil-preview .panel-section{margin-top:0!important}.panel h2{font-family:var(--serif);margin:0 0 6px;font-size:19px;font-weight:500}.panel p{color:var(--ink-soft);margin:0 0 20px;font-size:14px;line-height:1.5}.rule{background:var(--brass);width:36px;height:1px;margin:0 0 20px}.viewport{background:radial-gradient(ellipse at 50% 40%, var(--viewport-glow) 0%, var(--paper-deep) 100%);position:absolute;inset:0}.viewport canvas{width:100%;height:100%;display:block}.end-label{font-family:var(--serif);color:var(--ink-soft);pointer-events:none;font-size:15px;font-style:italic;position:absolute}.end-a{left:28px;bottom:calc(22px + var(--inset-b,0px))}.end-b{right:calc(28px + var(--inset,0px));bottom:calc(22px + var(--inset-b,0px))}.viewport.is-upright .end-a{left:calc(50% - var(--inset,0px) / 2);top:86px;bottom:auto;transform:translate(-50%)}.viewport.is-upright .end-b{left:calc(50% - var(--inset,0px) / 2);right:auto;bottom:calc(22px + var(--inset-b,0px));transform:translate(-50%)}.orient-toggle{grid-template-columns:1fr 1fr;width:170px}.unit-toggle{border:1px solid var(--line);border-radius:999px;margin-bottom:18px;padding:2px;display:inline-flex}.unit-toggle button{color:var(--ink-soft);font:500 13px var(--sans);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 14px}.unit-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.field{grid-template-columns:1fr auto;align-items:center;gap:6px 10px;margin-bottom:22px;display:grid}.field-label{font-size:14px;font-weight:600}.field-input{align-items:baseline;gap:6px;display:inline-flex}.field-input input{border:1px solid var(--line);background:var(--surface);width:78px;color:var(--ink);font:500 15px var(--sans);text-align:right;border-radius:6px;padding:6px 8px}.field-input input:focus{outline:2px solid var(--brass);outline-offset:1px}.field-unit{color:var(--ink-soft);width:18px;font-size:13px}.field input[type=range]{width:100%;accent-color:var(--brass);grid-column:1/-1}.field-hint{color:var(--ink-soft);grid-column:1/-1;font-size:12px;line-height:1.4}.field-error{color:var(--danger);min-height:1em;margin-bottom:12px;font-size:13px}.model-check{border:1px solid var(--line);border-left:2px solid var(--brass);color:var(--ink);background:var(--surface-soft);border-radius:6px;gap:4px;padding:14px 16px;font-size:13px;display:grid}.model-check-title{font-family:var(--serif);color:var(--ink-soft);margin-bottom:2px;font-style:italic}.panel-section{margin-top:32px!important}.design-drop{border:1px dashed var(--line);cursor:pointer;text-align:center;min-height:140px;color:var(--ink-soft);background-color:var(--surface);border-radius:8px;place-items:center;font-size:14px;line-height:1.5;transition:border-color .15s,background-color .15s;display:grid;position:relative}.design-drop small{font-size:12px}:is(.design-drop:hover,.design-drop:focus-visible,.design-drop.is-dragging){border-color:var(--brass);outline:none}.design-drop.has-design{background-color:#fffdf9;background-image:linear-gradient(45deg,#ece7dd 25%,#0000 25%),linear-gradient(-45deg,#ece7dd 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ece7dd 75%),linear-gradient(-45deg,#0000 75%,#ece7dd 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.design-drop.has-design .design-drop-text{display:none}.design-preview{object-fit:contain;max-width:100%;max-height:220px;margin:10px;display:block}.design-info{gap:2px;margin:10px 0 4px;font-size:13px;display:grid}.design-info em{color:var(--ink-soft);font-style:normal}.design-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.design-status{color:var(--ink-soft);min-height:1em;margin-bottom:8px;font-size:13px}.design-options{gap:8px;margin-top:6px;display:grid}.segmented{border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;display:grid}.segmented button{color:var(--ink-soft);font:500 12px var(--sans);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 4px}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.placement-panel{margin-top:18px}.placement-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px;display:grid}.mini-field{gap:4px;font-size:12px;font-weight:600;display:grid}.mini-field .field-input input{width:100%;min-width:0;padding:6px;font-size:14px}.mini-field .field-input{grid-template-columns:1fr auto;align-items:baseline;display:grid}.mini-field .field-unit{width:auto;padding-left:3px;font-weight:400}.placement-status{color:var(--ink-soft);border-left:2px solid var(--brass);margin-top:10px;padding-left:10px;font-size:13px}.placement-status.is-warning{color:var(--danger);border-left-color:var(--danger)}.rotate-handle{background:var(--brass);cursor:grab;touch-action:none;z-index:2;border:2px solid #fffdf9;border-radius:50%;width:18px;height:18px;position:absolute;top:-9px;left:-9px;box-shadow:0 1px 4px #00000040}.rotate-handle:active{cursor:grabbing}.viewport canvas{touch-action:none}.size-badge{bottom:calc(22px + var(--inset-b,0px));pointer-events:none;font-family:var(--sans);color:var(--ink);letter-spacing:.02em;font-size:13px;font-style:normal;position:absolute;left:50%;transform:translate(-50%)}.stencil-preview canvas{border:1px solid var(--line);background:#fffdf9;border-radius:6px;width:100%;display:block}.stencil-caption{margin-top:8px}.viewport.is-dragging{outline:2px dashed var(--brass);outline-offset:-10px}@media (max-width:760px){.topbar{flex-wrap:wrap;gap:8px 10px;padding:8px 12px}.wordmark{display:none}.topbar-right{gap:6px}.drawer-tabs{order:3;justify-content:space-between;width:100%;margin-left:0}.tab{flex:1;padding:8px 6px}.orient-toggle{width:136px}.drawer{border-bottom:0;border-radius:16px 16px 0 0;width:auto;max-height:62%;padding:20px 16px 24px;inset:auto 0 0}}.stretch-report{border:1px solid var(--line);background:var(--surface-soft);border-left:3px solid #8fb580;border-radius:6px;gap:4px;margin-top:10px;padding:10px 12px;font-size:13px;line-height:1.45;display:grid}.stretch-report strong{font-family:var(--serif);font-size:15px;font-weight:500}.stretch-report.is-caution{border-left-color:#e2b656}.stretch-report.is-warn{background:var(--danger-wash);border-left-color:#c45440}.stretch-report.is-warn strong{color:var(--danger)}.stretch-legend{color:var(--ink-soft);align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.stretch-legend i{border-radius:2px;width:14px;height:10px;margin-left:4px;display:inline-block}.export-panel{margin-bottom:28px}.check{cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.check input{accent-color:var(--brass);width:16px;height:16px}.export-buttons{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.button-primary,.button-secondary{font:600 13px var(--sans);cursor:pointer;letter-spacing:.02em;border-radius:8px;padding:10px 12px}.button-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.button-primary:hover:not(:disabled){background:var(--primary-hover)}.button-secondary{color:var(--ink);border:1px solid var(--brass);background:0 0}.button-secondary:hover:not(:disabled){background:var(--brass-wash)}.button-primary:disabled,.button-secondary:disabled{opacity:.45;cursor:default}:is(.button-primary:focus-visible,.button-secondary:focus-visible){outline:2px solid var(--brass);outline-offset:2px}.brand-badge{border-radius:8px;flex:none;width:34px;height:34px;display:block}.test-band-button{width:100%;margin-top:10px}.viewport.is-upright .size-badge{left:28px;transform:none}.theme-toggle{grid-template-columns:repeat(3,1fr);width:210px}@media (max-width:760px){.theme-toggle{width:158px}}:root[data-theme=dark] .stencil-preview canvas{border-color:#3a3b3e}.tool-rail{z-index:2;background:var(--overlay);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;flex-direction:column;gap:4px;padding:6px;display:flex;position:absolute;top:14px;left:14px;box-shadow:0 8px 24px #0000001a}.tool{width:58px;color:var(--ink-soft);font:600 11px var(--sans);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-items:center;gap:2px;padding:8px 4px 6px;display:grid}.tool:hover{color:var(--ink);background:var(--brass-wash)}.tool[aria-pressed=true]{color:var(--paper);background:var(--ink)}.tool:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.tool-rail-gap{height:10px}.tool-quiet{opacity:.8}.viewport:not([data-tool=move]) canvas{cursor:crosshair}.viewport.is-panning canvas{cursor:grab}@media (max-width:760px){.tool-rail{padding:4px;top:10px;left:10px}.tool{width:50px;padding:6px 2px 4px}}.tool-options{z-index:2;background:var(--overlay);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;flex-wrap:wrap;align-items:end;gap:10px 18px;max-width:calc(100% - 476px);padding:10px 16px;display:flex;position:absolute;top:14px;left:96px;box-shadow:0 8px 24px #0000001a}.opt{color:var(--ink-soft);gap:4px;font-size:12px;display:grid}.opt-label{justify-content:space-between;gap:8px;display:flex}.opt-label b{color:var(--ink);font-weight:600}.opt input[type=range]{width:130px;accent-color:var(--brass);margin:0}.swatches{align-items:center;gap:6px;display:flex}.swatch{border:2px solid var(--paper);width:22px;height:22px;box-shadow:0 0 0 1px var(--line);background:var(--swatch);cursor:pointer;border-radius:50%;padding:0}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--brass)}.swatch:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.swatch-custom{background:conic-gradient(#e53,#ec3,#3c5,#3ae,#73e,#e3a,#e53);position:relative;overflow:hidden}.swatch-custom input{opacity:0;cursor:pointer;position:absolute;inset:0}@media (max-width:1100px){.tool-options{max-width:calc(100% - 110px)}}@media (max-width:760px){.tool-options{gap:8px 12px;max-width:calc(100% - 82px);padding:8px 10px;top:10px;left:72px}.opt input[type=range]{width:100px}}.layers-hint{margin-bottom:12px}.layer-list{gap:6px;margin-bottom:16px;display:grid}.layer-row{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 6px;padding:8px;display:grid}.layer-row.is-active{border-color:var(--brass);box-shadow:inset 3px 0 0 var(--brass)}.layer-row.is-hidden .layer-main{opacity:.45}.layer-main{min-width:0;display:grid}.layer-name{color:var(--ink);font:600 14px var(--sans);background:0 0;border:0;border-radius:4px;min-width:0;padding:2px 4px}.layer-name:focus{outline:2px solid var(--brass);background:var(--surface-soft)}.layer-kind{color:var(--ink-soft);padding-left:4px;font-size:11px}.layer-controls{grid-column:1/-1;align-items:center;gap:4px;display:flex}.layer-controls input[type=range]{min-width:60px;accent-color:var(--brass);flex:1}.layer-print{color:var(--ink-soft);align-items:center;gap:4px;margin-right:4px;font-size:12px;display:flex}.layer-print input{accent-color:var(--brass)}.layer-btn{width:30px;height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.layer-btn:hover:not(:disabled){color:var(--ink);background:var(--brass-wash)}.layer-btn:disabled{opacity:.3;cursor:default}.layer-btn[data-act=visible][aria-pressed=false]{color:var(--line)}.layer-btn[data-act=locked][aria-pressed=true]{color:var(--brass)}.layer-btn[data-act=locked][aria-pressed=false]{opacity:.45}.layer-btn:focus-visible{outline:2px solid var(--brass)}.layer-add{gap:6px;display:grid}.layer-add-buttons{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.layer-add-buttons button{padding:8px 4px;font-size:12px}.history-buttons{gap:2px;margin-left:8px;display:flex}.icon-btn{width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.icon-btn:hover:not(:disabled){background:var(--brass-wash)}.icon-btn:disabled{color:var(--ink-soft);opacity:.4;cursor:default}.icon-btn:focus-visible{outline:2px solid var(--brass);outline-offset:1px}@media (max-width:760px){.history-buttons{margin-left:0}}.flat-view{z-index:1;background:radial-gradient(ellipse at 50% 40%, var(--viewport-glow) 0%, var(--paper-deep) 100%);position:absolute;inset:0}.flat-view[hidden]{display:none}.flat-canvas{touch-action:none;width:100%;height:100%;display:block}.viewport[data-tool=move] .flat-canvas{cursor:grab}.viewport[data-tool=move] .flat-canvas:active{cursor:grabbing}.viewport.is-flat .end-label,.viewport.is-flat .size-badge{display:none}.flat-tools{top:14px;right:calc(16px + var(--inset,0px));gap:6px;display:flex;position:absolute}.flat-tools .button-secondary{background:var(--overlay);padding:7px 12px}.flat-tools .button-secondary[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.flat-key{bottom:calc(16px + var(--inset-b,0px));right:calc(16px + var(--inset,0px));max-width:260px;font:12.5px/1.45 var(--sans);color:var(--ink-soft);background:var(--overlay);border:1px solid var(--line);border-radius:10px;margin:0;padding:10px 12px;position:absolute}.view-toggle{grid-template-columns:1fr 1fr;width:120px}.project-panel{gap:10px;margin-bottom:6px;display:grid}.project-panel .project-name{grid-template-columns:1fr;margin-bottom:0}.project-name input[type=text]{box-sizing:border-box;width:100%;font:15px var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 10px}.project-name input[type=text]:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.project-actions{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.project-actions .button-secondary{padding:8px 6px}.project-status{min-height:1.3em;margin:0}.drawer-subhead{font:600 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-top:1px solid var(--line);margin:18px 0 10px;padding-top:14px}.needle-picker{flex-wrap:wrap;gap:3px;display:flex}.needle-picker button{font:600 11px var(--sans);min-width:34px;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;padding:4px 6px}.needle-picker button:hover{border-color:var(--brass)}.needle-picker button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tool-options [hidden]{display:none!important}.toast{z-index:50;max-width:min(520px,100vw - 32px);font:14px var(--sans);color:var(--paper);background:var(--ink);opacity:0;pointer-events:none;border-radius:10px;padding:10px 16px;transition:opacity .2s,transform .2s;position:fixed;bottom:22px;left:50%;transform:translate(-50%,12px);box-shadow:0 8px 24px #0000002e}.toast.is-shown{opacity:1;transform:translate(-50%)}.preview-btn{margin-right:4px}.view-settings{align-items:center;gap:10px;display:flex}.view-more{display:none}@media (max-width:1280px){.view-more{display:inline-flex}.view-settings{z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;align-items:stretch;gap:10px;padding:12px;display:none;position:absolute;top:calc(100% + 6px);right:12px;box-shadow:0 10px 30px #00000029}.view-settings.is-open{display:flex}}@media (max-width:960px) and (min-width:761px){.wordmark{display:none}.topbar{gap:10px;padding:8px 14px}.drawer-tabs{margin-left:0}.tab{padding:8px 10px}}.lasso-loop{z-index:2;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.lasso-loop.is-drawing{display:block}.lasso-loop path{fill:#b08d5714;stroke:var(--brass);stroke-width:1.6px;stroke-dasharray:6 4;stroke-linejoin:round}.viewport[data-tool=lasso] canvas{cursor:crosshair}.selection-bar{z-index:2;background:var(--overlay);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;max-width:calc(100% - 476px);padding:10px 16px;position:absolute;top:14px;left:96px;box-shadow:0 8px 24px #0000001a}.selection-bar [hidden]{display:none!important}.selection-hint{font:14px var(--sans);color:var(--ink-soft);margin:0}.selection-controls{flex-wrap:wrap;align-items:end;gap:10px 18px;display:flex}.selection-controls .opt{min-width:150px}.selection-buttons{flex-wrap:wrap;gap:6px;display:flex}.selection-buttons button{padding:7px 11px}.selection-buttons button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media (max-width:1100px){.selection-bar{max-width:calc(100% - 110px)}}@media (max-width:760px){.selection-bar{max-width:calc(100% - 82px);padding:8px 10px;top:10px;left:72px}}.part-picker{grid-template-columns:repeat(2,1fr);gap:2px;width:100%;margin-bottom:4px}.part-picker button{white-space:nowrap;padding-left:4px;padding-right:4px}.install-app{gap:8px;margin-top:4px;display:grid}.install-app[hidden],.install-app [hidden]{display:none!important}.install-steps{margin:0}
