:root{--bg-chrome: #221c17;--bg-chrome-raised: #2b241d;--bg-chrome-sunken: #1a1511;--border-chrome: #423628;--text-chrome: #ece2cf;--text-chrome-dim: #a3927a;--accent: #c9832f;--accent-strong: #e6a752;--accent-ink: #2a1a08;--paper: #f7f1e2;--paper-grid: #e3d7ba;--paper-edge: #d8c9a3;--ink: #2a2118;--ink-dim: #6b5e4c;--seam: #a83f27;--seam-soft: #a83f2733;--panel-bg: #f4efe2;--panel-border: #d9cbac;--panel-text: #2a2118;--panel-text-dim: #7a6c55;--font-display: -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", monospace;--radius-s: 4px;--radius-m: 7px}:root[data-theme=light]{--bg-chrome: #2e2620;--bg-chrome-raised: #382f26}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg-chrome: #2e2620;--bg-chrome-raised: #382f26}}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg-chrome-sunken);color:var(--text-chrome);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}button{font-family:inherit}.app{display:grid;grid-template-rows:auto 1fr auto;height:100vh;min-height:560px;background:var(--bg-chrome-sunken)}.titlebar{display:flex;align-items:center;gap:18px;padding:0 14px;height:46px;background:var(--bg-chrome);border-bottom:1px solid var(--border-chrome)}.wordmark{font-family:var(--font-display);font-weight:800;font-size:13.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);white-space:nowrap}.wordmark span{color:var(--text-chrome-dim);font-weight:600}.filename{font-size:13px;color:var(--text-chrome-dim);display:flex;align-items:center;gap:6px}.filename .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.filename-text{cursor:text;border-radius:3px;padding:1px 4px;margin:-1px -4px}.filename-text:hover{background:color-mix(in srgb,var(--text-chrome) 10%,transparent)}.filename-input{font:inherit;color:inherit;background:var(--bg-chrome-sunken);border:1px solid var(--border-chrome);border-radius:3px;padding:1px 4px;min-width:120px}.titlebar-actions{margin-left:auto;display:flex;gap:6px;position:relative}.mobile-overflow{display:none}.chrome-btn{display:flex;align-items:center;gap:6px;padding:6px 11px;background:transparent;border:1px solid transparent;border-radius:var(--radius-s);color:var(--text-chrome-dim);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.chrome-btn:hover{background:var(--bg-chrome-raised);color:var(--text-chrome);border-color:var(--border-chrome)}.chrome-btn:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.chrome-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chrome-btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.chrome-btn svg{width:14px;height:14px;flex:none}.main{display:grid;grid-template-columns:56px 1fr 232px;min-height:0}.rail{background:var(--bg-chrome);border-right:1px solid var(--border-chrome);display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:4px}.rail-group{display:flex;flex-direction:column;gap:4px}.rail-sep{width:26px;height:1px;background:var(--border-chrome);margin:8px 0}.tool{width:38px;height:38px;border-radius:var(--radius-m);border:1px solid transparent;background:transparent;color:var(--text-chrome-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .12s,color .12s}.tool svg{width:18px;height:18px}.tool:hover{background:var(--bg-chrome-raised);color:var(--text-chrome)}.tool:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.tool[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 20%,var(--bg-chrome));color:var(--accent-strong)}.tool[aria-pressed=true]:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:2px;background:var(--accent-strong)}.tool .tip{position:absolute;left:50px;top:50%;transform:translateY(-50%);background:var(--bg-chrome-raised);border:1px solid var(--border-chrome);color:var(--text-chrome);font-size:11.5px;font-weight:600;padding:4px 8px;border-radius:var(--radius-s);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .1s;z-index:5}.tool:hover .tip{opacity:1}.canvas-rulers-grid{display:grid;grid-template-columns:20px 1fr;grid-template-rows:20px 1fr;min-width:0;min-height:0}.ruler-corner{grid-column:1;grid-row:1;background:var(--bg-chrome);border-right:1px solid var(--border-chrome);border-bottom:1px solid var(--border-chrome)}.ruler{position:relative;overflow:hidden;background:var(--bg-chrome);color:var(--text-chrome-dim);font-family:var(--font-mono);font-size:9px}.ruler-horizontal{grid-column:2;grid-row:1;border-bottom:1px solid var(--border-chrome)}.ruler-vertical{grid-column:1;grid-row:2;border-right:1px solid var(--border-chrome)}.ruler-tick{position:absolute;background:var(--border-chrome)}.ruler-horizontal .ruler-tick{top:14px;width:1px;height:6px}.ruler-vertical .ruler-tick{left:14px;height:1px;width:6px}.ruler-horizontal .ruler-tick-major{top:0;width:1px;height:20px}.ruler-vertical .ruler-tick-major{left:0;height:1px;width:20px}.ruler-label{position:absolute;white-space:nowrap;pointer-events:none}.ruler-horizontal .ruler-label{top:2px;margin-left:2px}.ruler-vertical .ruler-label{left:2px;margin-top:2px;writing-mode:vertical-rl}.ruler-marker{position:absolute;background:var(--accent-strong);pointer-events:none;top:0;left:0}.ruler-horizontal .ruler-marker{width:1px;height:20px}.ruler-vertical .ruler-marker{height:1px;width:20px}.canvas-wrap{position:relative;overflow:hidden;background:var(--paper);touch-action:none}.sheet{position:relative;width:100%;height:100%}.sheet svg{display:block;width:100%;height:100%}.text-input-overlay{position:absolute;min-width:20px;font-family:var(--font-ui);color:var(--ink);background:transparent;border:1px solid transparent;border-radius:2px;outline:none;padding:0 1px;z-index:10}.text-input-overlay:focus{border-color:var(--accent)}.draw-size-label{position:absolute;pointer-events:none;z-index:10;background:var(--bg-chrome-raised);color:var(--text-chrome);border:1px solid var(--border-chrome);border-radius:var(--radius-s);padding:3px 6px;font-size:12px;line-height:1.2;font-family:var(--font-ui);white-space:nowrap}.canvas-bg{fill:var(--paper)}.grid-line{stroke:var(--paper-grid);stroke-width:.5}.grid-line-major{stroke:var(--paper-edge);stroke-width:.6}.print-area-rect{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.pattern-ink{fill:none;stroke:var(--ink);stroke-width:.35;pointer-events:visiblePainted}.hit-area{fill:none;stroke:transparent;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.pattern-seam{fill:none;stroke:var(--seam);stroke-width:1;stroke-dasharray:3.5 2.5}.stitch-tick{stroke:var(--seam);stroke-width:1}.fold-line{fill:none;stroke:var(--ink-dim);stroke-width:.8;stroke-dasharray:1 3}.label-tag{font-family:var(--font-ui);font-size:6.5px;fill:var(--ink-dim);letter-spacing:.02em}.pattern-text{fill:var(--ink);stroke:none;font-family:var(--font-ui)}.pattern-point{fill:var(--ink);stroke:none}svg[data-active-tool=select] .pattern-ink:hover{cursor:move}svg[data-active-tool=trim] .pattern-ink:hover{cursor:pointer}svg[data-active-tool=split] .pattern-ink:hover{cursor:pointer}svg[data-active-tool=offset] .pattern-ink:hover{cursor:pointer}svg[data-active-tool=select] .hit-area:hover{cursor:move}svg[data-active-tool=trim] .hit-area:hover{cursor:pointer}svg[data-active-tool=split] .hit-area:hover{cursor:pointer}svg[data-active-tool=offset] .hit-area:hover{cursor:pointer}.selection-handle{fill:var(--paper);stroke:var(--accent);stroke-width:1.2;cursor:pointer}.selection-handle[data-handle=nw],.selection-handle[data-handle=se]{cursor:nwse-resize}.selection-handle[data-handle=ne],.selection-handle[data-handle=sw]{cursor:nesw-resize}.selection-handle[data-handle=radius]{cursor:ew-resize}.selection-handle[data-handle=start],.selection-handle[data-handle=end]{cursor:crosshair}.marching-ants{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.draft-line,.draft-shape{fill:none;stroke:var(--accent);stroke-width:.4;stroke-dasharray:4 3;pointer-events:none}.draft-point{fill:var(--accent);stroke:none;pointer-events:none}.snap-point{fill:var(--accent-strong);stroke:none;pointer-events:none}.snap-candidate-point{fill:var(--accent);opacity:.35;stroke:none;pointer-events:none}.trim-preview{fill:none;stroke:var(--seam);pointer-events:none}.split-preview{fill:none;stroke:#0084ffe6;pointer-events:none}.offset-preview{fill:none;stroke:#ff8c0099;pointer-events:none}.offset-target-preview{fill:none;stroke:#ff8c00d9;pointer-events:none}.panel{background:var(--panel-bg);border-left:1px solid var(--panel-border);display:flex;flex-direction:column;color:var(--panel-text);min-height:0}.mobile-panel-peek{display:none}.panel-scroll{flex:1;min-height:0;overflow-y:auto}.panel-resize-handle{height:6px;flex:none;cursor:row-resize;background:var(--panel-border);position:relative}.panel-resize-handle:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:28px;height:2px;border-radius:1px;background:var(--panel-text-dim)}.panel-resize-handle:hover,.panel-resize-handle:active{background:var(--accent)}.panel-section-objectlist{flex:none;overflow-y:auto}.panel-section{padding:14px 14px 16px;border-bottom:1px solid var(--panel-border)}.panel-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--panel-text-dim);margin:0 0 10px}.panel-empty{font-size:12px;color:var(--panel-text-dim);margin:0}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.field label{font-size:12px;font-weight:600;color:var(--panel-text)}.field-row{display:flex;gap:6px;align-items:center}.mm-input{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;width:100%;padding:6px 8px;border-radius:var(--radius-s);border:1px solid var(--panel-border);background:#fffdf8;color:var(--panel-text)}.mm-input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.mm-unit{font-size:11.5px;color:var(--panel-text-dim);font-weight:700}.stepper-btn{width:28px;height:28px;flex:none;border-radius:var(--radius-s);border:1px solid var(--panel-border);background:#fffdf8;color:var(--panel-text);font-family:var(--font-mono);font-size:14px;font-weight:700;cursor:pointer}.stepper-btn:hover{border-color:var(--accent)}.stepper-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn-block{width:100%;padding:8px 10px;border-radius:var(--radius-s);border:1px solid var(--accent);background:var(--accent);color:#2a1a08;font-weight:700;font-size:12.5px;cursor:pointer;transition:background .12s}.btn-block:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-block:disabled{background:transparent;border-color:var(--panel-border);color:var(--panel-text-dim);cursor:not-allowed}.font-load-btn{align-self:flex-start;padding:5px 8px;border-radius:var(--radius-s);border:1px solid var(--panel-border);background:#fffdf8;color:var(--panel-text);font-size:11.5px;font-weight:700;cursor:pointer}.font-load-btn:hover{border-color:var(--accent)}.font-load-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.font-load-btn:disabled{color:var(--panel-text-dim);cursor:wait}.font-load-status{margin:0;color:var(--panel-text-dim);font-size:11px;line-height:1.4}.mm-input:disabled{opacity:.5;cursor:not-allowed}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;font-weight:600;color:var(--panel-text);cursor:pointer}.toggle-switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:34px;height:20px;margin:0;border-radius:999px;background:var(--panel-border);position:relative;cursor:pointer;flex:none;transition:background .15s}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fffdf8;transition:transform .15s}.toggle-switch:checked{background:var(--accent)}.toggle-switch:checked:after{transform:translate(14px)}.toggle-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shape-list{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto}.shape-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-s);font-size:12.5px;cursor:default}#object-list .shape-row{cursor:pointer}#object-list .shape-row:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.shape-row.active{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--panel-text);font-weight:700}.shape-row .swatch{width:9px;height:9px;border-radius:2px;flex:none}.shape-row .swatch.ink{background:var(--ink)}.shape-row .swatch.seam{background:var(--seam)}.shape-row .name{flex:1}.shape-row .dim{color:var(--panel-text-dim);font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums}.panel-eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.panel-eyebrow-row .panel-eyebrow{margin:0}.layer-add-btn{font-size:11px;font-weight:700;padding:4px 8px;border:1px solid var(--panel-border);border-radius:var(--radius-s);background:#fffdf8;color:var(--panel-text);cursor:pointer;white-space:nowrap}.layer-add-btn:hover{border-color:var(--accent);color:var(--accent)}.panel-collapse-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;font-size:13px;font-weight:700;line-height:1;border:1px solid var(--panel-border);border-radius:var(--radius-s);background:#fffdf8;color:var(--panel-text-dim);cursor:pointer;flex:none}.panel-collapse-btn:hover{border-color:var(--accent);color:var(--accent)}.layer-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.layer-group{border:1px solid var(--panel-border);border-radius:var(--radius-s);overflow:hidden}.layer-group.dragging{opacity:.5}.layer-group.active{border-color:var(--accent)}.layer-group.hidden-layer .layer-name{color:var(--panel-text-dim);font-style:italic}.layer-group.hidden-layer .layer-shape-list .shape-row{color:var(--panel-text-dim)}.layer-header{display:flex;align-items:center;gap:6px;padding:6px 8px;background:color-mix(in srgb,var(--panel-border) 35%,transparent);cursor:pointer}.layer-group.active .layer-header{background:color-mix(in srgb,var(--accent) 16%,transparent)}.layer-drag-handle{cursor:grab;color:var(--panel-text-dim);font-size:12px;line-height:1;flex:none}.layer-visibility-btn,.layer-delete-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:none;color:var(--panel-text-dim);cursor:pointer;flex:none}.layer-visibility-btn:hover,.layer-delete-btn:hover:not(:disabled){color:var(--panel-text)}.layer-delete-btn:disabled{opacity:.35;cursor:not-allowed}.layer-visibility-btn svg,.layer-delete-btn svg{width:15px;height:15px}.layer-name{flex:1;font-size:12.5px;font-weight:700;color:var(--panel-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-name-input{flex:1;font-size:12.5px;font-weight:700;font-family:inherit;color:var(--panel-text);background:#fffdf8;border:1px solid var(--accent);border-radius:var(--radius-s);padding:2px 4px}.layer-shape-list{padding:4px 6px 6px;max-height:none}.layer-shape-list .panel-empty{padding:2px 8px}.align-group{display:flex;gap:4px}.align-btn{flex:1;display:flex;align-items:center;justify-content:center;padding:6px 0;border:1px solid var(--panel-border);background:#fffdf8;color:var(--panel-text-dim);border-radius:var(--radius-s);cursor:pointer}.align-btn svg{width:16px;height:16px}.align-btn svg.line-type-icon{width:32px;height:10px}.line-type-icon line{stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.align-btn:hover{color:var(--panel-text)}.align-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.align-btn[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 18%,#fffdf8);border-color:var(--accent);color:var(--panel-text)}.stroke-width-group{align-items:stretch}.stroke-width-btn{flex-direction:column;gap:3px;padding:6px 2px 5px}.stroke-width-label{font-size:9.5px;font-weight:600;font-family:var(--font-mono);color:inherit}.color-swatch-group{display:flex;gap:6px;flex-wrap:wrap}.color-swatch-btn{width:22px;height:22px;padding:0;border:2px solid var(--panel-border);border-radius:50%;cursor:pointer}.color-swatch-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.color-swatch-btn[aria-pressed=true]{border-color:var(--accent)}.color-swatch-custom{background:repeating-conic-gradient(#fffdf8,#fffdf8 25%,#eee7d8 0%,#eee7d8 50%) 50% / 8px 8px;padding:2px}.statusbar{height:26px;background:var(--bg-chrome);border-top:1px solid var(--border-chrome);display:flex;align-items:center;padding:0 12px;gap:16px;font-size:11px;color:var(--text-chrome-dim);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.statusbar .sep{width:1px;height:12px;background:var(--border-chrome)}.statusbar .grow{flex:1}.statusbar .zoom{display:flex;align-items:center;gap:6px}.statusbar button{background:transparent;border:none;color:var(--text-chrome-dim);cursor:pointer;font-size:12px;width:16px}.statusbar button:hover{color:var(--text-chrome)}.print-only{display:none}@media (max-width: 640px){.app{min-height:0}.titlebar{gap:10px;padding:0 8px}.wordmark{font-size:12px;letter-spacing:.08em}.filename{min-width:0;flex:1;overflow:hidden;white-space:nowrap}.filename-text{overflow:hidden;text-overflow:ellipsis}.titlebar-actions{flex:none;gap:4px}.titlebar-actions .chrome-btn{padding:6px 8px;font-size:12px}.titlebar-actions .chrome-btn svg{display:none}.mobile-overflow{display:block;position:relative}.mobile-overflow-item{display:none}.mobile-overflow-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:132px;padding:6px;background:var(--bg-chrome-raised);border:1px solid var(--border-chrome);border-radius:var(--radius-s);box-shadow:0 12px 30px #0a080559}.mobile-overflow-menu .chrome-btn{width:100%;justify-content:flex-start;color:var(--text-chrome)}.main{grid-template-columns:56px minmax(0,1fr);position:relative;overflow:hidden}.canvas-rulers-grid{min-width:0}.panel{position:absolute;left:0;right:0;bottom:0;z-index:15;height:48px;min-height:0;border-left:none;border-top:1px solid var(--panel-border);border-radius:10px 10px 0 0;overflow:hidden;box-shadow:0 -10px 28px #2a21182e}.panel.mobile-expanded{height:58vh}.mobile-panel-peek{display:flex;flex:none;height:48px;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;border-bottom:1px solid var(--panel-border);background:var(--panel-bg);color:var(--panel-text);font-size:11px;font-weight:800;letter-spacing:.1em;cursor:pointer}.mobile-panel-grip{width:34px;height:4px;border-radius:999px;background:var(--panel-text-dim);opacity:.65}.panel:not(.mobile-expanded) .panel-scroll,.panel:not(.mobile-expanded) .panel-resize-handle,.panel:not(.mobile-expanded) .panel-section-objectlist{display:none}.panel.mobile-expanded .panel-scroll{display:block;overflow-y:auto}.panel.mobile-expanded .panel-resize-handle{display:none}.panel.mobile-expanded .panel-section-objectlist{display:block;flex:none;max-height:42%}}@media print{html,body{margin:0;padding:0;background:#fff}.app>*:not(.print-only){display:none!important}.print-only{display:block!important}.print-sheet{display:block;background:#fff}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a08058c;display:flex;align-items:center;justify-content:center;z-index:20}.modal-overlay[hidden]{display:none}.modal{width:360px;max-width:calc(100vw - 32px);background:var(--panel-bg);color:var(--panel-text);border:1px solid var(--panel-border);border-radius:var(--radius-m);box-shadow:0 20px 50px #0a080573;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--panel-border)}.modal-header h2{margin:0;font-size:14px;font-weight:800;letter-spacing:.04em}.modal-close{background:transparent;border:none;color:var(--panel-text-dim);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:var(--radius-s)}.modal-close:hover{background:color-mix(in srgb,var(--panel-text) 8%,transparent);color:var(--panel-text)}.modal-body{padding:4px 16px 16px}.modal-section{padding:12px 0;border-bottom:1px solid var(--panel-border)}.modal-section:last-child{border-bottom:none}.mirror-guide-line{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.mirror-preview .hit-area{pointer-events:none}.mirror-preview .pattern-ink,.mirror-preview .pattern-text,.mirror-preview .pattern-point{opacity:.4}
