:root{color-scheme:dark;--surface-canvas: #121110;--surface-base: #191715;--surface-panel: #1f1d1b;--surface-raised: #292623;--surface-overlay: #332f2b;--border-subtle: #2a2724;--border-default: #383430;--border-strong: #4a453f;--text-primary: #efeae4;--text-secondary: #a89f96;--text-muted: #7a736c;--text-disabled: #57514b;--accent: #4f97d4;--accent-strong: #8ec4ea;--accent-soft: #1e3b52;--success: #5fd0a0;--warning: #d9a441;--danger: #e0685a;--text-on-accent: #ffffff;--danger-text: #f4b3aa;--danger-soft-text: #f0a298;--shadow-soft: #0007;--shadow-strong: #0009;--backdrop: #000a;--shadow-deep: #000c;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius-field: 4px;--radius-control: 6px;--radius-overlay: 10px;--font-ui: Inter, "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, "Cascadia Mono", Consolas, monospace;font-family:var(--font-ui);color:var(--text-primary);background:var(--surface-base)}.workspace-shell.boundary-mode{--accent: #3fc7ae;--accent-strong: #7fe0cd;--accent-soft: #17453c}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{background:var(--surface-base);color:var(--text-primary);font-size:13px}button,input,select,textarea{font:inherit}button{min-height:32px;padding:6px 12px;border:1px solid var(--border-default);border-radius:var(--radius-control);color:var(--text-primary);background:var(--surface-raised);cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-overlay)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}button:disabled{color:var(--text-disabled);border-color:var(--border-subtle);background:var(--surface-panel);cursor:not-allowed}.primary-button,.primary-command{border-color:var(--accent);color:var(--text-on-accent);background:var(--accent);font-weight:700}.primary-button:hover:not(:disabled),.primary-command:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-strong);color:var(--surface-canvas)}.ghost-button{border-color:transparent;color:var(--text-secondary);background:transparent}.danger-button{border-color:color-mix(in srgb,var(--danger) 65%,var(--border-default));color:var(--danger-text);background:color-mix(in srgb,var(--danger) 14%,var(--surface-panel))}.icon-button{width:32px;padding:0}input,select,textarea{min-width:0;min-height:32px;padding:6px 8px;border:1px solid var(--border-default);border-radius:var(--radius-field);color:var(--text-primary);background:var(--surface-base)}input:disabled,select:disabled{color:var(--text-disabled);background:var(--surface-panel)}input[type=number],input[inputmode=decimal],.readonly-fields dd{font-family:var(--font-mono)}h1,h2,h3,p{margin-top:0}h2{margin-bottom:var(--space-3);font-size:15px;line-height:1.35}h3{margin-bottom:var(--space-3);color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.panel{padding:var(--space-4)}.panel-hint,.field-hint,.dock-hint,.empty-state,.empty-panel-hint{color:var(--text-muted);font-size:12px;line-height:1.55}.field-error{margin:6px 0;color:var(--danger-soft-text);font-size:12px}.field-row{display:grid;grid-template-columns:minmax(86px,1fr) minmax(0,1.25fr);gap:var(--space-2);align-items:center}.field-row>span{color:var(--text-secondary);font-size:12px;line-height:1.35}.checkbox-row{display:flex;gap:var(--space-2);align-items:center;color:var(--text-secondary)}.checkbox-row input{min-height:auto;accent-color:var(--accent)}.form-fields{display:grid;gap:var(--space-2)}.button-list,.panel-actions,.inline-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.readonly-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin:0}.readonly-fields div{padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-field);background:var(--surface-base)}.readonly-fields dt{color:var(--text-muted);font-size:11px}.readonly-fields dd{margin:4px 0 0;color:var(--text-primary)}.visually-hidden-file-input{position:absolute;width:1px;height:1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden}.workspace-shell{display:grid;grid-template-areas:"top top top top top" "left left-resize canvas right-resize right" "status status status status status";grid-template-columns:var(--scene-tree-width) 5px minmax(320px,1fr) 5px var(--inspector-width);grid-template-rows:52px minmax(0,1fr) 28px;width:100%;height:100%;background:var(--surface-base)}.top-command-region{grid-area:top;z-index:20;border-bottom:1px solid var(--border-default);background:var(--surface-base)}.top-command-bar{display:flex;height:100%;align-items:center;gap:var(--space-2);padding:0 var(--space-4)}.top-command-bar>*{flex-shrink:0}.product-title{margin-right:var(--space-2);font-size:15px;white-space:nowrap}.command-separator{width:1px;height:20px;margin:0 2px;background:var(--border-default)}.top-command-bar .primary-command{margin-left:auto;min-width:74px}.mode-badge{padding:5px 9px;border:1px solid var(--accent);border-radius:999px;color:var(--accent-strong);background:var(--accent-soft);font-size:11px;font-weight:700}.shortcuts-root{position:relative}.shortcuts-popover{position:absolute;z-index:80;top:calc(100% + 8px);right:0;width:310px;padding:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-overlay);background:var(--surface-overlay);box-shadow:0 18px 44px var(--shadow-strong)}.shortcuts-popover h2{margin-bottom:var(--space-2)}.shortcuts-popover dl{display:grid;gap:var(--space-2);margin:0}.shortcuts-popover dl div{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:var(--space-2)}.shortcuts-popover dt,.shortcuts-popover dd{margin:0}kbd{display:inline-block;padding:3px 6px;border:1px solid var(--border-strong);border-radius:var(--radius-field);color:var(--text-primary);background:var(--surface-raised);font-family:var(--font-mono);font-size:11px}.scene-tree-dock{grid-area:left;min-width:0;border-right:1px solid var(--border-default);background:var(--surface-panel);overflow:hidden}.inspector-dock{grid-area:right;min-width:0;border-left:1px solid var(--border-default);background:var(--surface-panel);overflow:hidden}.workspace-canvas{grid-area:canvas;min-width:0;min-height:0;background:var(--surface-canvas)}.dock-resize-handle{z-index:5;cursor:col-resize;background:var(--surface-base)}.dock-resize-handle:hover,.dock-resize-handle:focus{background:var(--accent-soft)}.dock-resize-handle.left{grid-area:left-resize}.dock-resize-handle.right{grid-area:right-resize}.dock-collapse-button{width:100%;height:30px;min-height:30px;padding:0;border:0;border-radius:0;color:var(--text-muted);background:var(--surface-base)}.scene-tree-dock>div,.inspector-dock>div{height:calc(100% - 30px);overflow:auto}.workspace-status{grid-area:status;z-index:30;border-top:1px solid var(--border-default);background:var(--surface-base)}.status-bar-content{position:relative;display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr) auto;height:100%;align-items:center;gap:var(--space-4);padding:0 var(--space-3);color:var(--text-muted);font-size:11px}.status-issue-trigger{min-height:22px;padding:1px 6px;border:0;background:transparent;text-align:left}.status-valid{color:var(--success)}.status-error{color:var(--danger)}.status-selection{min-width:0;color:var(--text-secondary);overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.status-shortcuts{white-space:nowrap}.issue-popover{position:absolute;z-index:90;left:var(--space-3);bottom:calc(100% + 8px);display:grid;width:min(420px,calc(100vw - 24px));max-height:260px;padding:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-overlay);background:var(--surface-overlay);box-shadow:0 18px 44px var(--shadow-strong);overflow:auto}.issue-popover button{border-color:transparent;background:transparent;text-align:left}@media(max-width:1440px){.top-command-bar{gap:6px;padding-inline:var(--space-3)}.top-command-bar button{padding-inline:9px}}@media(max-width:1180px){.workspace-shell{grid-template-areas:"top top top" "canvas canvas canvas" "status status status";grid-template-columns:1fr}.scene-tree-dock,.inspector-dock{position:fixed;z-index:60;top:52px;bottom:28px;width:min(86vw,340px);box-shadow:0 18px 44px var(--shadow-deep)}.scene-tree-dock{left:0}.inspector-dock{right:0}.scene-tree-dock:has(>.dock-collapse-button[aria-expanded=false]),.inspector-dock:has(>.dock-collapse-button[aria-expanded=false]){width:44px;box-shadow:none}.dock-resize-handle{display:none}}@media(max-width:520px){.top-command-bar{overflow-x:auto}.product-title{display:none}.top-command-bar .primary-command{margin-left:0}.status-bar-content{grid-template-columns:auto minmax(0,1fr)}.status-shortcuts{display:none}}.scene-tree-content,.boundary-list-dock,.inspector-content{min-height:100%;padding:var(--space-4)}.scene-tree-header,.dock-content-header,.panel-title-row{display:flex;justify-content:space-between;gap:var(--space-3);align-items:flex-start}.scene-tree-header h2,.dock-content-header h2,.panel-title-row h2{margin-bottom:2px}.scene-tree-eyebrow,.dock-content-header span,.panel-subtitle{color:var(--text-muted);font-size:11px}.scene-tree-total,.dock-content-header strong{color:var(--text-secondary);font-size:11px;white-space:nowrap}.scene-tree-search-wrap{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:4px;margin:var(--space-4) 0 var(--space-2);padding-left:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-field);color:var(--text-muted);background:var(--surface-base)}.scene-tree-search{width:100%;border:0;background:transparent}.scene-tree-actions{display:flex;align-items:center;gap:6px;margin-bottom:var(--space-3)}.scene-tree-actions button{min-height:26px;padding:3px 8px;background:transparent}.scene-tree-actions span{margin-left:auto;color:var(--text-muted);font-size:11px}.scene-tree-batch-actions{display:flex;gap:6px;margin-bottom:var(--space-3)}.scene-tree-batch-actions button{min-height:26px;padding:3px 8px}.scene-tree-columns{display:grid;grid-template-columns:42px 1fr 30px 32px;padding:0 0 6px 6px;color:var(--text-muted);font-size:11px}.scene-tree-columns span:last-child{text-align:right}.scene-tree-act{margin-bottom:4px;border:1px solid transparent;border-radius:var(--radius-control)}.scene-tree-act.selected{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft)}.scene-tree-act-row{display:grid;grid-template-columns:24px minmax(0,1fr) 30px 32px;align-items:center}.scene-tree-act-toggle,.scene-tree-act-select{border:0;background:transparent}.scene-tree-act-toggle{width:24px;padding:0}.scene-tree-act-select{text-align:left}.scene-tree-act-count{color:var(--text-muted);font-family:var(--font-mono);text-align:center}.scene-tree-act-blocks{display:grid;gap:2px;padding:2px 0 6px 28px}.scene-tree-block-row{display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center}.scene-tree-block-row.is-hidden .scene-tree-block{opacity:.55}.scene-tree-visibility{min-height:28px;padding:0;border:0;background:transparent;color:var(--text-muted)}.scene-tree-visibility[aria-pressed=true]{color:var(--accent-strong)}.scene-tree-block{display:grid;grid-template-columns:34px 1fr;gap:var(--space-2);min-height:30px;padding:4px 8px;border:0;background:transparent;text-align:left}.scene-tree-block:hover:not(:disabled){background:var(--surface-raised)}.scene-tree-block.selected{color:var(--accent-strong);background:var(--accent-soft)}.scene-tree-block-index{color:var(--text-muted);font-family:var(--font-mono)}.scene-tree-block-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-tree-act-chevron:before{content:"▾";color:var(--text-muted)}.scene-tree-act-chevron.collapsed:before{content:"▸"}.boundary-list{display:grid;gap:4px;margin-top:var(--space-4)}.boundary-list-row{display:grid;grid-template-columns:1fr 32px;gap:4px}.boundary-list-row.is-hidden{opacity:.55}.boundary-list-item{display:flex;min-width:0;justify-content:space-between;gap:var(--space-2);align-items:center;text-align:left}.boundary-list-item[aria-pressed=true]{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.boundary-list-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boundary-list-item small{color:var(--text-muted);white-space:nowrap}.boundary-visibility-button{color:var(--text-muted)}.inspector-content{display:grid;align-content:start;gap:var(--space-3)}.inspector-section{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-base)}.inspector-section h3{margin:0 0 2px}.selection-count{margin:0;color:var(--text-secondary)}.rotation-scrubber{grid-column:2;width:100%;min-height:24px;padding:0;color:var(--text-muted);background:transparent;cursor:ew-resize}.boundary-drawing-status{padding:var(--space-2) var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-control);color:var(--accent-strong);background:var(--accent-soft)}.boundary-move-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.boundary-move-grid .field-row{display:grid;grid-template-columns:22px 1fr}.boundary-rotation-step-row{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.boundary-rotation-step-row button{padding-inline:3px;font-family:var(--font-mono)}.selection-editor{border-color:color-mix(in srgb,var(--accent) 55%,var(--border-subtle));background:color-mix(in srgb,var(--accent-soft) 42%,var(--surface-base))}@media(max-width:420px){.boundary-move-grid,.readonly-fields{grid-template-columns:1fr}.boundary-rotation-step-row{grid-template-columns:1fr 1fr}}.canvas-panel{position:relative;width:100%;height:100%;min-height:300px;background:var(--surface-canvas);overflow:hidden}.canvas-stage-frame{position:absolute;inset:0}.canvas-stage-frame>div[data-konva=Stage],.canvas-stage-frame>div:first-child{width:100%;height:100%}.canvas-top-overlay{position:absolute;z-index:25;top:var(--space-3);left:50%;transform:translate(-50%);pointer-events:none}.canvas-floating-tools,.canvas-toolbar{display:flex;align-items:center;gap:4px}.canvas-floating-tools{pointer-events:auto}.canvas-toolbar{position:relative;padding:5px;border:1px solid var(--border-default);border-radius:var(--radius-control);background:color-mix(in srgb,var(--surface-panel) 94%,transparent);box-shadow:0 8px 24px var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap}.canvas-toolbar button{min-height:28px;padding:3px 8px;border-color:transparent;background:transparent}.canvas-toolbar span{padding:0 5px;color:var(--text-secondary);font-family:var(--font-mono);font-size:11px}.layer-popover{position:absolute;z-index:60;top:calc(100% + 8px);right:0;display:grid;gap:var(--space-2);width:240px;padding:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-overlay);background:var(--surface-overlay);box-shadow:0 18px 44px var(--shadow-strong)}.boundary-mode-banner{position:absolute;z-index:20;top:62px;left:50%;display:flex;gap:var(--space-3);align-items:center;max-width:calc(100% - 32px);padding:7px 12px;transform:translate(-50%);border:1px solid var(--accent);border-radius:var(--radius-control);color:var(--accent-strong);background:color-mix(in srgb,var(--accent-soft) 92%,transparent);box-shadow:0 8px 24px var(--shadow-soft)}.boundary-mode-banner strong{white-space:nowrap}.boundary-mode-banner span{color:color-mix(in srgb,var(--accent-strong) 74%,var(--text-secondary));font-size:12px}.canvas-coordinate{position:absolute;z-index:15;right:var(--space-3);bottom:var(--space-3);padding:5px 8px;border:1px solid var(--border-subtle);border-radius:var(--radius-field);color:var(--text-muted);background:color-mix(in srgb,var(--surface-base) 88%,transparent);font-family:var(--font-mono);font-size:11px;pointer-events:none}.empty-state-guide{position:absolute;z-index:18;top:50%;left:50%;display:grid;justify-items:center;width:min(360px,calc(100% - 32px));padding:var(--space-8);transform:translate(-50%,-50%);border:1px solid var(--border-default);border-radius:var(--radius-overlay);background:color-mix(in srgb,var(--surface-panel) 94%,transparent);box-shadow:0 20px 60px var(--shadow-strong);text-align:center}.empty-state-guide h2{margin:var(--space-3) 0 var(--space-2)}.empty-state-guide p{color:var(--text-secondary);line-height:1.6}.empty-state-icon{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--accent);border-radius:50%;color:var(--accent-strong);background:var(--accent-soft);font-size:24px}@media(max-width:520px){.canvas-top-overlay{top:8px;width:calc(100% - 104px);overflow-x:auto;transform:translate(-50%)}.canvas-toolbar{width:max-content}.boundary-mode-banner{top:54px;align-items:flex-start}.boundary-mode-banner span{display:none}}.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:var(--space-6);background:var(--backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.import-dialog{width:min(720px,100%);max-height:min(760px,calc(100vh - 48px));padding:var(--space-6);border:1px solid var(--border-strong);border-radius:var(--radius-overlay);background:var(--surface-panel);box-shadow:0 24px 80px var(--shadow-deep);overflow:auto}.overlay-drawer{position:fixed;z-index:100;top:0;right:0;width:min(420px,100vw);height:100%;padding:var(--space-6);border-left:1px solid var(--border-strong);background:var(--surface-panel);box-shadow:-20px 0 60px var(--shadow-strong);overflow:auto}.overlay-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.overlay-header h2{margin:0}.overlay-close-icon:before{content:"×";font-size:18px}.import-dropzone-shell{margin:var(--space-4) 0;padding:4px;border:1px dashed var(--border-strong);border-radius:var(--radius-overlay)}.import-dropzone-shell.drag-active{border-color:var(--accent);background:var(--accent-soft)}.import-dropzone{display:grid;width:100%;min-height:132px;place-items:center;align-content:center;gap:var(--space-2);border:0;background:var(--surface-base)}.import-dropzone-icon{width:34px;height:34px;border:1px solid var(--accent);border-radius:50%;background:var(--accent-soft)}.import-dropzone-icon:before{content:"+";display:grid;height:100%;place-items:center;color:var(--accent-strong);font-size:22px}.import-dropzone span{color:var(--text-muted);font-size:12px}.import-unit-segment{padding:0;border:0}.import-unit-segment legend{margin-bottom:var(--space-2);color:var(--text-secondary);font-size:12px}.import-unit-options{display:grid;grid-template-columns:1fr 1fr}.import-unit-options button{border-radius:0}.import-unit-options button:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.import-unit-options button:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0}.import-unit-options button[aria-pressed=true]{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.import-queue{margin-top:var(--space-4)}.import-queue-header{display:flex;justify-content:space-between;align-items:center}.import-queue-header h3{margin:0}.import-file-list{display:grid;gap:4px;margin:var(--space-2) 0 0;padding:0;list-style:none}.import-file-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 110px auto;gap:var(--space-2);align-items:center;padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-base)}.import-file-row.error{border-color:var(--danger)}.import-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-file-kind,.import-file-state{color:var(--text-muted);font-size:11px}.import-actions{display:grid;grid-template-columns:1fr auto;gap:var(--space-3);align-items:center;margin-top:var(--space-4)}.import-readiness,.import-status{margin:0;color:var(--text-muted);font-size:12px}.export-content{display:grid;gap:var(--space-3)}.export-summary{padding:var(--space-3);border-radius:var(--radius-control)}.export-summary.valid{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--surface-base))}.export-summary.blocked{color:var(--text-muted);background:var(--surface-base)}.disclosure-button{color:var(--text-secondary);background:transparent}.operation-history-list{display:grid;gap:4px;padding-left:22px}.operation-history-list button{width:100%;text-align:left}.operation-history-list button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.operation-history-preview{margin:var(--space-3) 0;padding:var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-control);background:var(--accent-soft)}@media(max-width:520px){.modal-backdrop{padding:var(--space-2)}.import-dialog,.overlay-drawer{padding:var(--space-4)}.import-file-row{grid-template-columns:minmax(0,1fr) auto}.import-file-kind,.import-file-state{grid-column:1}.import-actions{grid-template-columns:1fr}}
