@charset "UTF-8";:root{font-family:Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}#root{width:100vw;height:100dvh;min-height:100dvh}.app-shell{--app-text: #e2e8f0;--bg-main: radial-gradient(circle at top left, #1f2937, #0b1120 60%, #020617 100%);--surface-top-overlay: linear-gradient(180deg, rgba(30, 41, 59, .3), rgba(15, 23, 42, .92));--surface-top: rgba(15, 23, 42, .9);--surface-panel: rgba(15, 23, 42, .88);--surface-status: rgba(15, 23, 42, .92);--surface-input: #0f172a;--surface-button: #111827;--surface-legend: rgba(15, 23, 42, .88);--surface-modal: #0f172a;--border-color: #334155;--border-soft: #1e293b;--hover-border: #60a5fa;--accent-bg: #1d4ed8;--accent-border: #93c5fd;--text-muted: #93c5fd;--text-muted-strong: #bfdbfe;--text-subtle: #cbd5e1;--text-meta: #a5b4fc;--grid-line-color: #334155;--axis-line-color: #475569;--shape-line-color: #e2e8f0;--fold-line-color: #ef4444;--stitch-hole-fill: #f59e0b;--stitch-hole-stroke: #1f2937;--shape-preview-color: #38bdf8;--fold-preview-color: #fb7185;--overlay-bg: rgba(2, 6, 23, .72);--swatch-border: rgba(255, 255, 255, .7);--tool-icon-filter: brightness(0) saturate(100%) invert(100%);--tool-icon-active-filter: brightness(0) saturate(100%) invert(100%);display:grid;grid-template-rows:auto 1fr auto;height:100dvh;min-height:100dvh;color:var(--app-text);background:var(--bg-main)}.app-shell.theme-light{--app-text: #0f172a;--bg-main: radial-gradient(circle at top left, #f8fbff, #edf4ff 58%, #e2eaf7 100%);--surface-top-overlay: linear-gradient(180deg, rgba(255, 255, 255, .64), rgba(229, 239, 252, .95));--surface-top: rgba(250, 252, 255, .95);--surface-panel: rgba(244, 248, 255, .92);--surface-status: rgba(250, 252, 255, .95);--surface-input: #ffffff;--surface-button: #ffffff;--surface-legend: rgba(255, 255, 255, .95);--surface-modal: #ffffff;--border-color: #b7c5da;--border-soft: #d4deec;--hover-border: #2563eb;--accent-bg: #2563eb;--accent-border: #60a5fa;--text-muted: #1e40af;--text-muted-strong: #0f172a;--text-subtle: #334155;--text-meta: #334155;--grid-line-color: #cad7eb;--axis-line-color: #a7bad6;--shape-line-color: #0f172a;--fold-line-color: #dc2626;--stitch-hole-fill: #b45309;--stitch-hole-stroke: #ffffff;--shape-preview-color: #2563eb;--fold-preview-color: #db2777;--overlay-bg: rgba(15, 23, 42, .24);--swatch-border: rgba(15, 23, 42, .35);--tool-icon-filter: brightness(0) saturate(100%) invert(20%) sepia(16%) saturate(1047%) hue-rotate(183deg) brightness(96%) contrast(93%);--tool-icon-active-filter: brightness(0) saturate(100%) invert(100%)}.topbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-color);background:var(--surface-top);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.topbar-body{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.group{display:flex;gap:8px;align-items:center}.topbar:not(.topbar-mobile){gap:0;padding:0;background:var(--surface-top-overlay),var(--surface-top)}.desktop-ribbon-strip{display:flex;align-items:center;gap:14px;padding:10px 14px 8px;border-bottom:1px solid var(--border-soft)}.desktop-ribbon-brand{min-width:170px;display:grid;gap:2px}.desktop-ribbon-app{font-size:16px;font-weight:700;color:var(--text-muted-strong)}.desktop-ribbon-mode{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.desktop-ribbon-tabs{display:flex;flex-wrap:wrap;gap:4px}.desktop-ribbon-tabs button{border:1px solid transparent;border-bottom-width:2px;border-radius:6px 6px 0 0;background:transparent;color:var(--text-subtle);font-size:13px;font-weight:600;padding:8px 12px 7px}.desktop-ribbon-tabs button.active{background:var(--surface-input);border-color:var(--border-color);border-bottom-color:var(--accent-border);color:var(--text-muted-strong)}.desktop-ribbon-strip-meta{margin-left:auto;display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--text-subtle)}.desktop-ribbon-panel{padding:10px 14px;align-items:stretch}.topbar:not(.topbar-mobile) .ribbon-section{position:relative;min-height:66px;padding:8px 10px 22px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface-panel)}.topbar:not(.topbar-mobile) .ribbon-section:after{content:attr(data-section);position:absolute;left:10px;right:10px;bottom:4px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar:not(.topbar-mobile) .ribbon-stitch{flex:1 1 100%;display:flex;min-width:0}.topbar:not(.topbar-mobile) .ribbon-stitch .stitch-controls{width:100%}.topbar-mobile .tool-group{width:100%;display:grid;grid-template-columns:minmax(108px,auto) 1fr auto auto;align-items:center;gap:8px}.topbar-mobile .layer-controls,.topbar-mobile .line-type-controls,.topbar-mobile .file-controls{width:100%;flex-wrap:wrap}.topbar:not(.topbar-mobile) .tool-group{flex:0 0 auto;min-width:0;align-items:stretch;min-height:0;padding:6px 8px 18px}.tool-icon-grid{display:grid;grid-template-columns:repeat(6,40px);gap:5px;width:fit-content}.tool-icon-button{position:relative;display:grid;justify-items:center;align-content:center;width:40px;min-height:34px;padding:2px;border-radius:7px;background:var(--surface-input);border-color:var(--border-color)}.tool-icon-badge{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.tool-icon-badge img{width:18px;height:18px;object-fit:contain;filter:var(--tool-icon-filter);image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.tool-icon-button.active .tool-icon-badge img{filter:var(--tool-icon-active-filter)}.tool-icon-button:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%) translateY(4px);opacity:0;pointer-events:none;white-space:nowrap;font-size:11px;font-weight:600;color:#f8fafc;background:#020617f0;border:1px solid var(--border-color);border-radius:6px;padding:4px 7px;box-shadow:0 8px 20px #02061759;transition:opacity .12s ease,transform .12s ease;z-index:20}.tool-icon-button:before{content:"";position:absolute;left:50%;bottom:calc(100% + 3px);width:7px;height:7px;transform:translate(-50%) rotate(45deg);border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:#020617f0;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:19}.tool-icon-button:hover:after,.tool-icon-button:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.tool-icon-button:hover:before,.tool-icon-button:focus-visible:before{opacity:1}.mobile-hidden{display:none}.layer-controls,.line-type-controls,.stitch-controls{flex-wrap:wrap}.stitch-pitch-inline{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);color:var(--text-muted-strong);font-size:12px}.stitch-pitch-inline input{width:64px;border:1px solid var(--border-color);border-radius:6px;background:var(--surface-button);color:var(--app-text);padding:4px 6px;font-size:12px}.preset-controls,.zoom-controls{flex-wrap:nowrap}.view-mode-toggle{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--surface-input)}.view-mode-toggle button{border:0;border-right:1px solid var(--border-color);border-radius:0;padding:6px 10px;background:transparent}.view-mode-toggle button:last-child{border-right:0}.view-mode-toggle button.active{background:var(--surface-button)}.edit-controls{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.topbar:not(.topbar-mobile) .edit-controls,.topbar:not(.topbar-mobile) .file-controls,.topbar:not(.topbar-mobile) .stitch-controls{flex-wrap:wrap;overflow:visible}.topbar:not(.topbar-mobile) .file-controls{align-items:stretch;gap:10px}.topbar:not(.topbar-mobile) .file-action-cluster{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:6px 8px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input)}.file-action-cluster-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.topbar:not(.topbar-mobile) .file-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.topbar:not(.topbar-mobile) .file-action-row button{white-space:nowrap}.edit-controls button{white-space:nowrap;flex:0 0 auto}.layer-label,.line-type-label{font-size:12px;color:var(--text-muted-strong)}.layer-select,.preset-select,.line-type-select{border-radius:7px;border:1px solid var(--border-color);background:var(--surface-input);color:var(--app-text);font-size:12px;padding:6px 8px}.layer-select{min-width:180px}.preset-select{min-width:134px}.line-type-select{min-width:164px}.help-button{width:32px;min-width:32px;height:32px;border-radius:999px;padding:0;font-size:16px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center}.desktop-ribbon-strip-meta .help-button{margin-left:2px}.settings-button svg{display:block}.settings-dropdown-wrapper{position:relative;display:inline-flex}.settings-dropdown{position:absolute;top:100%;right:0;margin-top:6px;background:var(--surface-modal, var(--surface-secondary));border:1px solid var(--border-color, #444);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:8px;min-width:160px;z-index:1000;box-shadow:0 4px 16px #00000040}.theme-mode-toggle{display:inline-flex;align-items:center;gap:4px;padding:2px;border:1px solid var(--border-color);border-radius:999px;background:var(--surface-input)}.theme-mode-toggle .theme-mode-button{width:28px;min-width:28px;height:28px;border-radius:999px;border:1px solid transparent;padding:0;background:transparent;color:var(--text-subtle);display:inline-flex;align-items:center;justify-content:center}.theme-mode-toggle .theme-mode-button:hover{border-color:var(--hover-border)}.theme-mode-toggle .theme-mode-button.active{background:var(--accent-bg);border-color:var(--accent-border);color:#f8fafc}.theme-mode-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.desktop-ribbon-strip-meta .desktop-theme-toggle{margin-left:-2px;margin-right:-4px}.mobile-help-toggle{justify-self:end}.mobile-menu-toggle{margin-left:0;justify-self:end}.tool-select-mobile{width:100%;border-radius:8px;border:1px solid var(--border-color);background:var(--surface-input);color:var(--app-text);font-size:13px;padding:7px 9px;min-width:0}.mobile-options-tabs{width:100%;display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-options-tabs button{flex:0 0 auto}.mobile-view-inline-tabs{min-width:0;display:flex;justify-content:center;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-view-inline-tabs button{white-space:nowrap;flex:0 0 auto}.mobile-action-row{width:100%;display:flex;gap:8px}.action-select{flex:1 1 auto;min-width:0;border-radius:7px;border:1px solid var(--border-color);background:var(--surface-input);color:var(--app-text);font-size:12px;padding:6px 8px}button{border:1px solid var(--border-color);border-radius:8px;background:var(--surface-button);color:var(--app-text);font-size:13px;padding:7px 10px}button:hover{border-color:var(--hover-border)}button.active{background:var(--accent-bg);border-color:var(--accent-border);color:#f8fafc}button:disabled{opacity:.5;cursor:not-allowed}.workspace{min-height:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,32vw);overflow:hidden}.workspace.desktop .canvas-pane{border-right:0}.workspace-splitter{min-height:0;position:relative;cursor:col-resize;touch-action:none}.workspace-splitter:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translate(-50%);border-radius:999px;background:var(--border-soft);transition:background-color .12s ease}.workspace-splitter:hover:before,.workspace-splitter.active:before{background:var(--accent-border)}.canvas-pane{position:relative;min-height:0;min-width:0;border-right:1px solid var(--border-soft);overflow:hidden}.canvas-grid-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.canvas{position:relative;z-index:1;width:100%;height:100%;touch-action:none;cursor:crosshair;overscroll-behavior:none;background:transparent}.canvas-stage{min-height:0;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);overflow:hidden}.canvas-tool-rail{position:relative;z-index:10;min-height:0;max-height:100%;padding:12px 8px;border-right:1px solid var(--border-soft);background:var(--surface-panel);overflow:visible}.canvas-tool-sidebar{display:flex;flex-direction:column;align-items:stretch;padding:8px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-legend);box-shadow:0 8px 18px #0206172e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.canvas-tool-sidebar .tool-icon-grid{grid-template-columns:40px}.canvas-tool-sidebar .tool-icon-button:after{left:calc(100% + 10px);bottom:50%;transform:translateY(50%) translate(-4px)}.canvas-tool-sidebar .tool-icon-button:before{left:calc(100% + 5px);bottom:50%;transform:translateY(50%) rotate(45deg)}.canvas-tool-sidebar .tool-icon-button:hover:after,.canvas-tool-sidebar .tool-icon-button:focus-visible:after{transform:translateY(50%) translate(0)}.canvas-view-controls{position:absolute;left:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:6;display:flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-legend);box-shadow:0 8px 18px #0206172e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.canvas-view-controls button{min-width:40px;padding:6px 10px}.canvas-view-controls button:nth-child(1),.canvas-view-controls button:nth-child(2){min-width:34px;font-weight:700}.preview-pane{min-height:0;min-width:0;display:flex;flex-direction:column;background:var(--surface-panel)}.preview-pane>.three-preview-shell{flex:1;min-height:0}.preview-pane-mobile-split{overflow:auto}.preview-pane-mobile-split .three-preview-shell{min-height:100%;grid-template-rows:auto minmax(130px,1fr) auto}.preview-pane-mobile-split .three-preview-header{position:sticky;top:0;z-index:2;background:var(--surface-panel)}.preview-pane-mobile-split .three-preview-controls{max-height:44vh}.panel-hidden{display:none}.side-panel-tabs{display:flex;border-bottom:1px solid var(--border-color);background:var(--surface-panel);flex-shrink:0}.side-panel-tabs button{flex:1;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .12s ease,border-color .12s ease}.side-panel-tabs button:hover{color:var(--text-default)}.side-panel-tabs button.active{color:var(--accent-text);border-bottom-color:var(--accent-border)}.layer-side-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.layer-side-list{flex:1;overflow-y:auto;padding:4px 0}.layer-side-item{display:flex;align-items:center;gap:4px;padding:6px 10px;cursor:pointer;border-left:3px solid transparent;transition:background 80ms ease}.layer-side-item:hover{background:var(--surface-hover)}.layer-side-item.active{background:var(--surface-active);border-left-color:var(--accent-border)}.layer-side-item.hidden-layer .layer-side-name{opacity:.45;text-decoration:line-through}.layer-side-item.locked-layer .layer-side-name{opacity:.65;font-style:italic}.layer-side-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:4px;flex-shrink:0}.layer-side-toggle:hover{background:var(--surface-hover);color:var(--text-default)}.layer-side-color{width:12px;height:12px;border-radius:3px;border:1px solid var(--border-soft);flex-shrink:0}.layer-side-name{flex:1;font-size:13px;color:var(--text-default);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-side-z{font-size:11px;color:var(--text-muted);flex-shrink:0}.layer-side-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-top:1px solid var(--border-color);background:var(--surface-panel);flex-shrink:0}.layer-side-toolbar button{padding:5px 8px;font-size:12px}.side-panel-expand-btn{display:flex;align-items:center;justify-content:center;width:32px;flex-shrink:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent}.side-panel-expand-btn:hover{color:var(--text-default);background:var(--surface-hover)}.three-main-view{display:flex;flex-direction:column;min-height:0}.three-main-view .preview-pane{flex:1;min-height:0}.three-main-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;background:var(--surface-panel);border-bottom:1px solid var(--border-color);font-size:13px;font-weight:600;color:var(--text-muted-strong)}.three-main-header button{font-size:12px;padding:4px 10px}.grid-line-minor{stroke:var(--grid-line-color);stroke-width:.5;opacity:.35}.grid-line{stroke:var(--grid-line-color);stroke-width:1}.axis-line{stroke:var(--axis-line-color);stroke-width:1.5}.shape-line{stroke:var(--shape-line-color);stroke-width:2;fill:none;vector-effect:non-scaling-stroke}.shape-linked-reference{opacity:.56;pointer-events:none}.shape-linked-assembly{opacity:.9;pointer-events:none}.shape-selected{stroke-width:3.25}.tracing-pdf-label{fill:var(--text-muted-strong);font-size:42px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.print-area-rect{fill:#3b82f614;stroke:#60a5fa;stroke-width:1.6;stroke-dasharray:10 4;vector-effect:non-scaling-stroke}.print-area-label{fill:#60a5fa;font-size:12px;font-weight:700;paint-order:stroke;stroke:#0f172acc;stroke-width:.5;vector-effect:non-scaling-stroke}.fold-line{stroke:var(--fold-line-color);stroke-width:1.8;fill:none;vector-effect:non-scaling-stroke;stroke-dasharray:7 5}.stitch-thread-line{fill:none;stroke:#c084fc;stroke-width:.8;stroke-dasharray:1.5 1.5;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.7}.stitch-hole-outline{fill:none;stroke:#94a3b8;stroke-width:.6;stroke-dasharray:1.2 1;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.6}.stitch-hole-crosshair{stroke:#c084fc;stroke-width:.5;stroke-dasharray:.8 .8;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.5}.stitch-hole-dot{fill:var(--stitch-hole-fill);stroke:var(--stitch-hole-stroke);stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:auto;cursor:pointer}.stitch-hole-dot-selected{stroke:#38bdf8;stroke-width:1.6}.stitch-hole-slit{stroke:var(--stitch-hole-fill);stroke-width:1.7;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}.stitch-hole-slit-selected{stroke:#38bdf8;stroke-width:2.2}.stitch-hole-sequence-label{fill:var(--stitch-hole-stroke);stroke:#0f172a99;stroke-width:.4;paint-order:stroke;font-size:3.6px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.seam-guide-line{stroke:#3b82f6e6;stroke-width:1.3;stroke-dasharray:4 4;fill:none;vector-effect:non-scaling-stroke}.seam-guide-label{fill:var(--text-muted-strong);font-size:3.6px;paint-order:stroke;stroke:#0f172acc;stroke-width:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.hardware-marker{fill:#facc151f;stroke:#facc15;stroke-width:1.2;vector-effect:non-scaling-stroke;cursor:pointer}.hardware-marker line{stroke:inherit;stroke-width:1;vector-effect:non-scaling-stroke}.hardware-marker-selected{stroke:#0ea5e9}.hardware-marker-label{fill:var(--text-muted-strong);font-size:3.5px;paint-order:stroke;stroke:#0f172acc;stroke-width:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.annotation-label{fill:var(--text-muted-strong);font-size:3.8px;font-weight:600;paint-order:stroke;stroke:#0f172ad9;stroke-width:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.open-path-endpoint{fill:none;stroke:#f97316;vector-effect:non-scaling-stroke}.dimension-label{fill:#0ea5e9;font-size:3.5px;font-weight:600;paint-order:stroke;stroke:#0f172ae0;stroke-width:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.xy-ruler-axis{stroke:#0ea5e9bf;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:none}.xy-ruler-tick{stroke:#94a3b8d9;stroke-width:.7;vector-effect:non-scaling-stroke;pointer-events:none}.xy-ruler-label,.xy-ruler-origin{fill:#38bdf8;font-size:3px;paint-order:stroke;stroke:#0f172ae6;stroke-width:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.shape-preview{stroke:var(--shape-preview-color);stroke-width:2;fill:none;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.fold-preview{stroke:var(--fold-preview-color);stroke-width:2;fill:none;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.shape-preview-source{opacity:.2}.shape-live-preview{filter:drop-shadow(0 0 .45rem rgba(56,189,248,.22))}.shape-handle{fill:#f8fafc;stroke:#1d4ed8;stroke-width:1;vector-effect:non-scaling-stroke;cursor:pointer}.shape-handle-preview{fill:#dbeafe;stroke:#0ea5e9}.contextual-actions-panel{display:grid;gap:8px;border-top:1px solid var(--border-color);padding:10px 14px;background:var(--surface-panel)}.contextual-actions-title{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted-strong)}.contextual-actions-meta,.precision-help,.precision-hint{font-size:12px;color:var(--text-subtle)}.contextual-actions-grid{display:flex;flex-wrap:wrap;gap:8px}.precision-modal{width:min(520px,100%);max-height:min(78vh,760px);display:grid;gap:10px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-modal);overflow:auto}.precision-modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.precision-modal-header h2{margin:0;font-size:16px;color:var(--app-text)}.precision-form{display:flex;gap:8px;flex-wrap:wrap}.precision-form input{min-width:min(360px,100%);width:min(460px,100%)}.precision-log{display:grid;gap:5px}.precision-log-line{display:grid;gap:2px;font-size:12px}.precision-log-command{color:var(--text-muted-strong)}.precision-log-result{color:var(--text-subtle)}.project-memo-panel{display:grid;gap:6px;border-top:1px solid var(--border-color);padding:8px 14px;background:var(--surface-panel)}.project-memo-label{font-size:12px;color:var(--text-muted-strong)}.project-memo-modal{width:min(620px,100%);max-height:min(82vh,860px);display:grid;gap:10px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-modal);overflow:auto}.project-memo-modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-memo-modal-header h2{margin:0;font-size:16px;color:var(--app-text)}.project-memo-input{min-height:64px;resize:vertical;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);color:var(--app-text);font-size:12px;padding:8px 10px}.ai-builder-modal{width:min(960px,100%);max-height:min(88vh,980px)}.ai-builder-textarea{min-height:116px;resize:vertical;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);color:var(--app-text);font-size:12px;line-height:1.45;padding:8px 10px}.ai-builder-textarea-code{min-height:220px;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace}.ai-builder-summary-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.ai-builder-summary-card{display:grid;gap:4px;padding:10px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input)}.ai-builder-summary-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.ai-builder-error-list{margin:0;padding-left:18px;display:grid;gap:6px;font-size:12px;color:var(--text-subtle)}.statusbar{display:flex;flex-wrap:wrap;gap:12px;border-top:1px solid var(--border-color);padding:8px 14px;font-size:12px;background:var(--surface-status);color:var(--text-muted);padding-bottom:calc(8px + env(safe-area-inset-bottom))}.statusbar-meta{color:var(--text-meta)}.hidden-input{display:none}.legend-stack{position:absolute;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:grid;gap:8px;width:min(310px,52vw)}.legend-panel{width:min(270px,45vw);display:grid;gap:8px;padding:10px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-legend);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow:visible}.legend-single{width:100%}.layer-legend-header{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--text-muted-strong)}.legend-mode-tabs{display:flex;gap:6px}.legend-mode-tabs button{flex:1 1 0;min-width:0;font-size:11px;padding:5px 8px}.layer-legend-items{display:grid;gap:6px}.layer-legend-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;font-size:12px;color:var(--app-text)}.layer-legend-swatch{width:14px;height:14px;border-radius:999px;border:1px solid var(--swatch-border)}.layer-legend-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-key-list{display:grid;gap:6px;border-top:1px solid var(--border-color);padding-top:6px}.legend-key-item{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-subtle)}.legend-line-swatch{width:24px;height:14px;overflow:visible;flex:0 0 auto}.legend-line-swatch line{vector-effect:non-scaling-stroke}.legend-empty-note{font-size:11px;color:var(--text-muted)}.stack-legend-items{display:grid;gap:6px}.stack-legend-item{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px}.stack-level-chip{font-size:11px;color:var(--text-muted);border:1px solid var(--border-color);border-radius:999px;padding:2px 7px;background:var(--surface-input)}.stack-level-label{font-size:12px;color:var(--app-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-backdrop,.modal-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:14px;background:var(--overlay-bg)}.modal-content{width:min(560px,100%);max-height:min(78vh,760px);display:grid;gap:12px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-modal);overflow:auto}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.layer-color-modal{width:min(560px,100%);max-height:min(78vh,760px);display:grid;gap:12px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-modal);overflow:auto}.help-modal{width:min(480px,100%);display:grid;gap:12px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-modal)}.help-list{margin:0;padding-left:18px;display:grid;gap:8px;color:var(--text-subtle);font-size:13px}.help-list li{line-height:1.35}.layer-color-modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.layer-color-modal-header h2{margin:0;font-size:16px;color:var(--app-text)}.layer-color-range{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.layer-color-range input[type=color],.layer-color-item input[type=color]{width:100%;min-height:34px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);padding:3px}.layer-color-gradient-preview{width:100%;height:16px;border-radius:999px;border:1px solid var(--axis-line-color)}.layer-color-list{display:grid;gap:8px}.layer-color-item{display:grid;grid-template-columns:auto 1fr 56px auto;align-items:center;gap:8px}.layer-color-order{color:var(--text-muted);font-size:12px;min-width:14px;text-align:right}.layer-color-name{color:var(--app-text);font-size:13px}.layer-color-modal-actions{display:flex;justify-content:flex-end}.line-type-modal{width:min(900px,100%);max-height:min(80vh,820px);display:grid;gap:12px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-modal);overflow:auto}.pattern-tools-modal{width:min(760px,100%);max-height:min(86vh,920px)}.export-options-modal{width:min(560px,100%);max-height:min(80vh,820px);display:grid;gap:12px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-modal);overflow:auto}.export-hub-modal{width:min(520px,100%)}.export-hub-grid{grid-template-columns:minmax(180px,220px) minmax(0,1fr);align-items:start}.line-type-modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.line-type-modal-header h2{margin:0;font-size:16px;color:var(--app-text)}.line-type-modal-subtitle{margin:2px 0 0;font-size:13px;color:var(--text-muted-strong);text-transform:uppercase;letter-spacing:.04em}.line-type-modal-actions{display:flex;flex-wrap:wrap;gap:8px}.template-repository-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border-soft)}.template-repository-tabs button{border:1px solid transparent;border-bottom-width:2px;border-radius:6px 6px 0 0;background:transparent;color:var(--text-subtle);font-size:12px;font-weight:600;padding:7px 10px 6px}.template-repository-tabs button.active{background:var(--surface-input);border-color:var(--border-color);border-bottom-color:var(--accent-border);color:var(--text-muted-strong)}.template-list{display:grid;gap:8px;max-height:36vh;overflow:auto;border:1px solid var(--border-color);border-radius:8px;padding:8px}.pattern-toggle-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.pattern-constraint-list{max-height:28vh}.pattern-constraint-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);padding:7px 9px}.template-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;border:1px solid var(--border-color);border-radius:8px;padding:8px 10px;background:var(--surface-input)}.template-item input{margin:0}.template-item-name{font-size:13px;color:var(--app-text)}.template-item-meta{grid-column:2;font-size:11px;color:var(--text-muted)}.catalog-split-layout{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr);gap:12px;min-height:300px;max-height:60vh}.catalog-split-shops{display:flex;flex-direction:column;gap:6px;min-height:0}.catalog-split-shops-list{display:grid;gap:4px;align-content:start;border:1px solid var(--border-color);border-radius:8px;padding:6px;overflow:auto;min-height:0;flex:1}.catalog-split-preview{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto}.catalog-split-heading{margin:0;font-size:13px;font-weight:600;color:var(--text-muted-strong);display:flex;align-items:baseline;gap:8px}.catalog-split-heading-meta{font-size:11px;font-weight:400;color:var(--text-muted)}.catalog-preview-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:10px;min-height:0;flex:1}.catalog-preview-item-list{display:grid;gap:6px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);padding:8px;max-height:32vh;overflow:auto}.catalog-preview-item-chip{display:grid;gap:3px;text-align:left;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-modal);color:var(--app-text);padding:7px 8px}.catalog-preview-item-chip:hover{border-color:var(--border-color)}.catalog-preview-item-chip.active{border-color:var(--accent-border);background:var(--surface-hover)}.catalog-preview-item-chip-name{font-size:12px;color:var(--app-text)}.catalog-preview-item-chip-meta{font-size:11px;color:var(--text-muted)}.catalog-preview-detail{display:grid;align-content:start;gap:10px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);padding:10px;max-height:32vh;overflow:auto}.catalog-preview-detail h4{margin:0;font-size:14px;color:var(--text-muted-strong)}.catalog-preview-detail-subtitle{margin:0;font-size:12px;color:var(--text-muted)}.catalog-preview-image-wrap{border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-modal);padding:8px}.catalog-preview-image{display:block;width:100%;max-height:220px;object-fit:contain;border-radius:6px;background:var(--surface-input)}.catalog-preview-detail-grid{margin:0;display:grid;gap:6px;grid-template-columns:auto minmax(0,1fr)}.catalog-preview-detail-grid dt{font-size:11px;color:var(--text-subtle)}.catalog-preview-detail-grid dd{margin:0;font-size:12px;color:var(--text-muted-strong);word-break:break-word}.catalog-preview-detail-memo{margin:0;white-space:pre-wrap;font-size:12px;color:var(--text-muted)}.print-preview-summary{display:grid;gap:4px;border:1px solid var(--border-color);border-radius:8px;padding:9px 10px;font-size:12px;color:var(--text-muted-strong);background:var(--surface-input)}.line-type-modal-list{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.line-type-chip{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;text-align:left}.line-type-chip-swatch{width:12px;height:12px;border-radius:999px;border:1px solid var(--swatch-border)}.line-type-chip-label{font-size:12px;color:var(--app-text)}.line-type-chip-meta{font-size:11px;color:var(--text-muted)}.line-type-edit-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.export-role-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.three-preview-shell{display:grid;grid-template-rows:auto minmax(220px,1fr) auto;height:100%}.three-preview-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-color)}.three-preview-header h2{margin:0;font-size:15px;color:var(--text-muted-strong)}.three-preview-header p{margin:4px 0 0;font-size:12px;color:var(--text-muted)}.preview-controls-toggle{white-space:nowrap;font-size:12px;padding:6px 9px}.three-preview-shell.preview-controls-collapsed{grid-template-rows:auto minmax(220px,1fr)}.three-preview-canvas-wrap{min-height:0;width:100%}.three-preview-canvas{display:block;width:100%;height:100%}.three-preview-controls{border-top:1px solid var(--border-color);padding:10px 12px;display:grid;gap:12px;max-height:42vh;overflow:auto}.control-block{display:grid;gap:8px}.control-block h3{margin:0;font-size:13px;color:var(--text-subtle)}.layer-toggle-list{display:grid;gap:6px}.layer-toggle-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted-strong)}.layer-toggle-item input{margin:0}.field-row{display:grid;gap:4px;font-size:12px;color:var(--text-muted-strong)}.field-row input,.field-row select{border-radius:6px;border:1px solid var(--border-color);background:var(--surface-input);color:var(--app-text);padding:6px 8px}.field-row input[type=range]{padding:0}.field-row input[type=color]{padding:0;min-height:34px}.fold-control-card{border:1px solid var(--border-soft);border-radius:8px;padding:8px;display:grid;gap:8px}.button-row{display:flex;gap:8px}.hint{margin:0;font-size:12px;color:var(--text-muted)}.app-shell-workbench{--bg-main: linear-gradient(180deg, #0b1015 0%, #0f141b 48%, #151b24 100%);--surface-top: rgba(12, 16, 22, .98);--surface-panel: rgba(17, 23, 31, .96);--surface-status: rgba(14, 19, 26, .98);--surface-input: #121922;--surface-button: #181f2a;--surface-legend: rgba(20, 27, 37, .96);--surface-modal: #111821;--border-color: #2f3b4c;--border-soft: #1e2733;--hover-border: #7fb6ff;--accent-bg: #2964b8;--accent-border: #9fc8ff;--text-muted: #8da8c7;--text-muted-strong: #e7edf6;--text-subtle: #c7d3e3;--text-meta: #8fb4db;display:block;font-family:Avenir Next,Segoe UI,Helvetica Neue,sans-serif;background:var(--bg-main)}.app-shell-workbench.theme-light{--bg-main: linear-gradient(180deg, #eef3f8 0%, #e6edf5 46%, #dde5ee 100%);--surface-top: rgba(248, 250, 253, .98);--surface-panel: rgba(240, 244, 249, .96);--surface-status: rgba(246, 249, 252, .98);--surface-input: #ffffff;--surface-button: #ffffff;--surface-legend: rgba(251, 253, 255, .96);--surface-modal: #ffffff;--border-color: #bcc8d7;--border-soft: #d6dee8;--hover-border: #2f6fcb;--accent-bg: #2563eb;--accent-border: #6aa7ff;--text-muted: #486789;--text-muted-strong: #132235;--text-subtle: #30465f;--text-meta: #365578}.workbench-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto 24px;height:100dvh;min-height:100dvh}.workbench-icon{display:block}.workbench-header{display:grid;position:relative;z-index:2;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:40px;padding:0 10px;border-bottom:1px solid var(--border-color);overflow:visible;box-sizing:border-box;background:linear-gradient(180deg,#ffffff0d,#fff0),linear-gradient(90deg,#2563eb12,#0f172a00 30%),var(--surface-top)}.workbench-header-leading,.workbench-header-trailing,.workbench-brand{min-width:0;display:flex;align-items:center;gap:10px}.workbench-brand-mark{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--accent-border);background:linear-gradient(180deg,#ffffff14,#00000014),var(--accent-bg);color:#f8fafc;font-size:11px;font-weight:700;letter-spacing:.06em}.workbench-header-divider{width:1px;height:14px;background:#94a3b859}.workbench-brand-copy{display:grid;gap:1px;min-width:0}.workbench-brand-copy strong{font-size:12px;color:var(--text-muted-strong)}.workbench-brand-copy span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.workbench-doc-label{min-width:0;max-width:300px;display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;overflow:hidden}.workbench-doc-caption{flex:0 0 auto;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.workbench-doc-label strong{min-width:0;font-size:12px;font-weight:600;color:var(--text-muted-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workbench-header-actions{display:flex;align-items:center;gap:4px}.workbench-quick-action{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:6px;background:transparent;color:var(--text-muted)}.workbench-quick-action .workbench-icon{width:14px;height:14px}.workbench-header-trailing{justify-content:flex-end;justify-self:end}.workbench-mode-toggle{display:inline-flex;align-items:center;padding:2px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input)}.workbench-mode-toggle button{min-height:24px;border:0;border-radius:6px;padding:5px 10px;background:transparent;color:var(--text-subtle)}.workbench-mode-toggle button.active{background:var(--accent-bg);color:#f8fafc}.workbench-theme-menu{position:relative;display:inline-flex}.workbench-theme-trigger,.workbench-theme-option{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-input);color:var(--text-subtle)}.workbench-theme-trigger.active,.workbench-theme-option.active{background:var(--accent-bg);border-color:var(--accent-border);color:#f8fafc}.workbench-theme-dropdown{position:absolute;top:calc(100% + 6px);right:0;display:flex;gap:6px;padding:6px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-modal, var(--surface-secondary));box-shadow:0 4px 16px #00000040;z-index:1000}.workbench-peek-toggle{min-height:28px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;font-size:12px;color:var(--text-muted-strong)}.workbench-peek-toggle .workbench-icon{width:14px;height:14px}.workbench-header-tabs{min-width:0;justify-content:center;align-self:end}.workbench-header-tabs button{min-height:34px;padding-top:8px;padding-bottom:12px}.workbench-ribbon{display:flex;align-items:center;min-height:76px;padding:4px 10px 6px;border-bottom:1px solid var(--border-color);overflow:hidden;box-sizing:border-box;background:linear-gradient(180deg,#ffffff09,#0000000f),linear-gradient(90deg,#1e40af14,#0f172a00 38%),linear-gradient(180deg,#11171ffe,#0e141cfb)}.app-shell-workbench.theme-light .workbench-ribbon{background:linear-gradient(180deg,#ffffffd6,#e6ecf4f5),var(--surface-top)}.workbench-ribbon-tabs{display:flex;align-items:center;gap:4px}.workbench-ribbon-tabs button{min-width:60px;min-height:26px;position:relative;border:0;border-radius:6px 6px 0 0;padding:7px 10px 13px;font-size:12px;font-weight:700;background:transparent;color:var(--text-muted)}.workbench-ribbon-tabs button:hover,.workbench-ribbon-tabs button.active{color:var(--text-muted-strong)}.workbench-ribbon-tabs button.active:after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:2px;border-radius:999px;background:var(--accent-bg)}.workbench-ribbon-groups{width:100%;min-width:0;display:flex;align-items:center;gap:0;overflow-x:auto;overflow-y:hidden;padding:0 2px;border:1px solid var(--border-soft);border-radius:14px;background:linear-gradient(180deg,#ffffff0a,#fff0),#090f1a57;box-shadow:inset 0 1px #ffffff09}.workbench-ribbon-group{position:relative;min-width:max-content;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;padding:3px 10px 2px}.workbench-ribbon-group+.workbench-ribbon-group:before{content:"";position:absolute;left:0;top:8px;bottom:10px;width:1px;background:var(--border-soft)}.workbench-ribbon-group-title{margin-top:0;padding-top:3px;font-size:10px;font-weight:700;line-height:1;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.workbench-ribbon-buttons{display:flex;align-items:center;gap:2px}.workbench-ribbon-command{width:62px;min-height:50px;display:grid;grid-template-rows:auto auto;align-content:start;justify-items:center;gap:4px;margin:0 1px;padding:4px 4px 3px;border:1px solid transparent;border-radius:8px;background:transparent;text-align:center;font-size:11px;line-height:1.15}.workbench-ribbon-command:hover{border-color:var(--border-soft);background:#ffffff0d}.workbench-ribbon-command:disabled{opacity:.45}.workbench-ribbon-command-icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted-strong)}.workbench-ribbon-command-icon .workbench-icon{width:18px;height:18px}.workbench-ribbon-command-label{display:block;max-width:100%;color:var(--text-muted-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell-workbench.theme-light .workbench-ribbon-groups{background:linear-gradient(180deg,#ffffffdb,#ffffff9e),#ffffffb8}.app-shell-workbench.theme-light .workbench-ribbon-command:hover{background:#0f172a0a}.workbench-main{min-width:0;min-height:0;display:grid;align-items:stretch;overflow:hidden}.workbench-main>*{min-width:0;min-height:0;grid-row:1}.workbench-main>.workbench-browser-dock{grid-column:1}.workbench-main>.browser-splitter{grid-column:2}.workbench-main>.workbench-tool-rail{grid-column:3}.workbench-main>.workbench-surface.in-main{grid-column:4}.workbench-main.with-peek>.peek-splitter{grid-column:5}.workbench-main.with-peek>.workbench-surface.in-peek{grid-column:6}.workbench-main.with-peek>.inspector-splitter{grid-column:7}.workbench-main.with-peek>.workbench-inspector-dock{grid-column:8}.workbench-main.without-peek>.inspector-splitter{grid-column:5}.workbench-main.without-peek>.workbench-inspector-dock{grid-column:6}.workbench-browser-dock,.workbench-tool-rail,.workbench-inspector-dock,.workbench-surface{padding:10px}.workbench-browser-dock{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;border-right:1px solid var(--border-soft);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent),var(--surface-panel);overflow:hidden}.workbench-browser-header{display:grid;gap:2px}.workbench-browser-header h2{margin:0;font-size:13px;color:var(--text-muted-strong)}.workbench-browser-header p{margin:0;font-size:11px;color:var(--text-muted)}.workbench-browser-tree{min-height:0;display:grid;gap:8px;overflow:auto;padding-right:2px}.workbench-tree-section{border:1px solid var(--border-soft);border-radius:10px;background:#ffffff05;overflow:hidden}.workbench-tree-section>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;cursor:pointer;font-size:12px;font-weight:700;color:var(--text-muted-strong)}.workbench-tree-section>summary:before{content:"▸";flex:0 0 auto;font-size:10px;color:var(--text-muted);transform:rotate(0);transition:transform .12s ease}.workbench-tree-section[open]>summary:before{transform:rotate(90deg)}.workbench-tree-section>summary::-webkit-details-marker{display:none}.workbench-tree-branch{display:block}.workbench-tree-branch-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.workbench-tree-branch.depth-1{margin-left:8px}.workbench-tree-branch.depth-2{margin-left:16px}.workbench-tree-branch.depth-3{margin-left:24px}.workbench-tree-branch-summary{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;font-size:12px;color:var(--text-subtle);width:100%;min-width:0;box-sizing:border-box}.workbench-tree-branch-chevron{flex:0 0 auto;font-size:10px;color:var(--text-muted);transform:rotate(0);transition:transform .12s ease}.workbench-tree-branch.open .workbench-tree-branch-chevron{transform:rotate(90deg)}.workbench-tree-branch.selected .workbench-tree-branch-summary{background:#2964b833;border-color:var(--accent-border);color:var(--text-muted-strong)}.workbench-tree-branch.dimmed .workbench-tree-branch-summary{opacity:.58}.workbench-tree-children{display:grid;gap:3px;padding:0 6px 6px}.workbench-tree-branch-label{flex:1 1 auto;min-width:0}.workbench-tree-branch-actions{margin-left:0}.workbench-tree-branch.collapsed>.workbench-tree-children{visibility:hidden;pointer-events:none}.workbench-tree-node{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.workbench-tree-node.depth-1{margin-left:8px}.workbench-tree-node.depth-2{margin-left:16px}.workbench-tree-node.depth-3{margin-left:24px}.workbench-tree-node-button{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border-radius:8px;font-size:12px;color:var(--text-subtle)}.workbench-tree-node.selected .workbench-tree-node-button{background:#2964b833;border-color:var(--accent-border);color:var(--text-muted-strong)}.workbench-tree-node.dimmed .workbench-tree-node-button{opacity:.58}.workbench-tree-meta{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.workbench-tree-actions{display:flex;align-items:center;gap:4px}.workbench-tree-actions button{min-width:26px;min-height:26px;padding:4px 0;font-size:10px;font-weight:700}.workbench-tool-rail{display:flex;justify-content:center;border-right:1px solid var(--border-soft);background:var(--surface-panel)}.workbench-tool-rail-grid{display:grid;align-content:start;gap:6px}.workbench-tool-rail .tool-icon-button{width:40px;min-height:36px}.workbench-splitter{position:relative;cursor:col-resize;touch-action:none}.workbench-splitter:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translate(-50%);border-radius:999px;background:var(--border-soft);transition:background-color .12s ease}.workbench-splitter:hover:before{background:var(--accent-border)}.workbench-surface{min-width:0;min-height:0;display:flex;overflow:hidden}.workbench-surface.hidden-surface{display:none}.workbench-surface>*{flex:1;min-width:0;min-height:0}.workbench-surface .canvas-pane{border-right:0;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-panel)}.workbench-surface .legend-stack{right:22px;bottom:22px}.workbench-surface.read-only{pointer-events:none}.workbench-surface.read-only .canvas{cursor:default}.workbench-surface.read-only .canvas-view-controls,.workbench-surface.read-only .legend-stack,.workbench-surface.read-only .shape-handle{display:none}.workbench-inspector-dock{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);border-left:1px solid var(--border-soft);background:linear-gradient(180deg,rgba(255,255,255,.025),transparent),var(--surface-panel);overflow:hidden}.workbench-inspector-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);padding-bottom:8px}.workbench-inspector-tabs button{flex:1 1 0;min-width:0;padding:7px 8px;font-size:12px;font-weight:700}.workbench-inspector-content{min-height:0;display:grid;align-content:start;gap:10px;overflow:auto;padding:10px 2px 2px 0}.workbench-inspector-content>.control-block{padding:10px;border:1px solid var(--border-soft);border-radius:10px;background:#ffffff05}.app-shell-workbench.theme-light .workbench-inspector-content>.control-block,.app-shell-workbench.theme-light .workbench-tree-section{background:#ffffff94}.workbench-action-grid,.workbench-field-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.workbench-inspector-content .layer-field{display:grid;gap:4px;font-size:12px;color:var(--text-muted-strong)}.workbench-inspector-content .layer-field input,.workbench-inspector-content .layer-field select,.workbench-inspector-content .layer-field textarea{border-radius:6px;border:1px solid var(--border-color);background:var(--surface-input);color:var(--app-text);padding:6px 8px}.workbench-project-memo{min-height:140px}.workbench-three-viewport{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-panel);overflow:hidden}.workbench-three-viewport.compact{grid-template-rows:auto minmax(0,1fr)}.workbench-three-viewport-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-color)}.workbench-three-viewport-header strong{font-size:13px;color:var(--text-muted-strong)}.workbench-three-canvas-wrap{min-height:0}.workbench-three-warning{padding:0 12px 12px}.precision-drawer{width:100%;max-height:none;display:grid;gap:10px;padding:10px 14px;border:0;border-top:1px solid var(--border-color);border-radius:0;background:var(--surface-panel)}.precision-drawer .precision-form input{min-width:0;width:100%}.workbench-statusbar{display:flex;align-items:center;gap:12px;padding:0 10px;border-top:1px solid var(--border-color);background:var(--surface-status);color:var(--text-muted);font-size:11px;overflow:hidden;white-space:nowrap}.workbench-statusbar span{overflow:hidden;text-overflow:ellipsis}.workbench-statusbar button{margin-left:auto;min-height:20px;padding:3px 8px;font-size:11px}@media(max-width:1100px){.workspace{grid-template-columns:1fr}.workspace.mobile-editor,.workspace.mobile-preview{grid-template-rows:minmax(0,1fr)}.workspace.mobile-split{grid-template-rows:minmax(0,1fr) minmax(250px,40vh)}.canvas-pane{border-right:0;border-bottom:1px solid var(--border-soft)}.canvas-view-controls{left:8px;bottom:calc(8px + env(safe-area-inset-bottom));padding:5px;gap:5px}.canvas-stage{grid-template-columns:minmax(0,1fr)}.canvas-tool-rail,.canvas-tool-sidebar{display:none}.preview-pane{border-top:1px solid var(--border-soft)}.preset-controls,.zoom-controls,.edit-controls{width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.preset-controls button,.zoom-controls button,.edit-controls button{flex:0 0 auto}.statusbar{display:none}.legend-stack{width:min(270px,72vw);right:8px;bottom:calc(8px + env(safe-area-inset-bottom))}.legend-panel{padding:8px}}@media(max-width:800px){.layer-select,.line-type-select{min-width:0;width:100%}.preset-select{min-width:130px}.topbar-mobile{gap:8px;padding:8px}.tool-select-mobile{min-width:0;font-size:12px;padding:6px 8px}.action-select{font-size:12px;padding:6px 8px}.topbar-mobile .tool-group button,.topbar-mobile .mobile-view-inline-tabs button{font-size:12px;padding:6px 9px}.topbar-mobile .tool-group .help-button{padding:0;font-size:16px}.statusbar{font-size:11px}.three-preview-controls{max-height:34vh}.layer-color-range{grid-template-columns:1fr}.layer-color-item{grid-template-columns:auto 1fr}.layer-color-item input[type=color]{grid-column:2}.layer-color-item button{grid-column:2;justify-self:start}.line-type-modal-list,.line-type-edit-grid,.export-role-grid,.pattern-toggle-grid,.catalog-split-layout,.catalog-preview-layout{grid-template-columns:1fr}.catalog-split-layout{max-height:none}.catalog-split-shops-list{max-height:20vh}.catalog-preview-item-list,.catalog-preview-detail{max-height:24vh}}
