:root{--toolbar-height: 140px}:root{--surface: #ffffff;--surface-raised: #f8f8f8;--surface-muted: #f5f5f5;--surface-sunken: #f0f0f0;--surface-strong: #e0e0e0;--surface-overlay: rgba(255, 255, 255, .95);--text: #333333;--text-muted: #555555;--text-subtle: #888888;--text-inverse: #ffffff;--border: #dddddd;--border-strong: #cccccc;--border-subtle: #eeeeee;--accent: #4a90e2;--accent-text: #ffffff;--danger: #dc2626;--warning: #eab308;--shadow-weak: rgba(0, 0, 0, .1);--shadow: rgba(0, 0, 0, .2);color-scheme:light}body{font-family:Roboto,sans-serif;margin:0;padding:0;overflow:hidden;color:var(--text, #333)}#container{width:100%;height:100vh;position:relative}#canvas-container{position:relative;width:100%;height:100%;background:#fff}canvas{display:block}#top-toolbar{position:absolute;top:0;left:0;right:0;z-index:30;background:linear-gradient(180deg,var(--surface-raised, #f8f8f8) 0%,#ebebeb 100%);border-bottom:1px solid #c0c0c0;display:flex;flex-direction:column;font-family:Segoe UI,Roboto,sans-serif;user-select:none}.qat-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:transparent;color:#a6adc8;cursor:pointer;border-radius:3px;transition:background .15s,color .15s}.qat-btn:hover:not(:disabled){background:#313244;color:#cdd6f4}.qat-btn:active:not(:disabled){background:#45475a}.qat-btn:disabled{opacity:.3;cursor:default}.qat-sep{width:1px;height:14px;background:#313244;margin:0 3px}.ribbon-tabs{display:flex;padding:0 4px;background:var(--surface-strong, #e0e0e0);gap:1px}.ribbon-tab{background:transparent;border:none;padding:6px 14px;font-size:12px;font-weight:500;color:var(--text-muted, #555);cursor:pointer;border-radius:4px 4px 0 0;transition:all .15s;position:relative}.ribbon-tab:hover{background:#fff9;color:#222}.ribbon-tab.active{background:var(--surface-raised, #f8f8f8);color:var(--text, #333);font-weight:600;box-shadow:0 -1px #f8f8f8}.sketch-ctx{display:none}#ribbon-tools.sketch-active .ribbon-group.sketch-ctx{display:flex}#ribbon-tools.sketch-active .ribbon-separator.sketch-ctx{display:block}#ribbon-tools.sketch-active .ribbon-group.sketch-ctx{background:linear-gradient(#f2f9f2,#e3f1e3);border-radius:4px}#modify-ribbon-tab.sketch-active{background:#b8dcb8;color:#155724;font-weight:600}.ribbon-tool.sketch-finish:hover{background:#2e9e4426}.ribbon-tool.sketch-cancel:hover{background:#d6454526}.ribbon-panels{height:80px;padding:2px 8px 1px}.ribbon-panel{display:none;align-items:stretch;gap:2px}.ribbon-panel.active{display:flex}.ribbon-separator{width:1px;background:#d0d0d0;margin:2px 6px;align-self:stretch}.ribbon-separator-thin{width:1px;height:36px;background:var(--surface-strong, #ddd);margin:0 4px;align-self:center}.ribbon-group{display:flex;flex-direction:column;align-items:center;padding:0 4px;max-height:100%;position:relative}.ribbon-group-tools{display:flex;gap:2px;align-items:flex-start;flex:1}.ribbon-group-label{font-size:10px;color:var(--text-subtle, #888);text-align:center;padding:0 4px;white-space:nowrap;border-top:1px solid var(--border-subtle, #e0e0e0);width:100%;margin-top:1px}.ribbon-tool{display:flex;flex-direction:column;align-items:center;gap:1px;padding:2px 6px;background:transparent;border:1px solid transparent;border-radius:3px;cursor:pointer;color:var(--text, #444);transition:all .12s;min-width:38px;font-size:10px}.ribbon-tool svg{width:20px;height:20px;flex-shrink:0}.ribbon-tool span{white-space:nowrap;line-height:1.1}.ribbon-tool:hover{background:#4a90e21a;border-color:#4a90e24d;color:#222}.ribbon-dropdown{position:relative}.ribbon-dropdown-menu{display:none;position:absolute;top:100%;left:0;z-index:9500;min-width:132px;background:var(--surface, #fff);border:1px solid #cfcfcf;border-radius:4px;box-shadow:0 6px 20px #0000002e;padding:3px}.ribbon-dropdown.open .ribbon-dropdown-menu{display:block}.ribbon-dropdown-menu .ribbon-tool{flex-direction:row;justify-content:flex-start;gap:8px;width:100%;min-width:0;padding:4px 8px;font-size:11px}.ribbon-dropdown-menu .ribbon-tool:hover{background:#e8f0fb}.ribbon-tool.active,.ribbon-tool:active{background:#4a90e22e;border-color:var(--accent, #4a90e2);color:#1a65b0}.ribbon-tool-danger{color:#c62828}.ribbon-tool-danger:hover{background:#c628281a;border-color:#c628284d}.ribbon-tool-dropdown{position:relative;display:inline-block}.ribbon-dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#fff;min-width:140px;box-shadow:0 4px 12px var(--shadow-weak, rgba(0, 0, 0, .15));border:1px solid var(--border, #ddd);border-radius:4px;z-index:1000;padding:4px}.ribbon-dropdown-menu.show{display:flex;flex-direction:column}.ribbon-dropdown-menu button{display:flex;align-items:center;gap:8px;background:transparent;border:none;width:100%;padding:8px;text-align:left;cursor:pointer;font-size:12px;border-radius:4px;color:var(--text, #444)}.ribbon-dropdown-menu button:hover{background:var(--surface-sunken, #f0f0f0);color:#000}.ribbon-group-compact{flex-direction:column;gap:1px;justify-content:center;padding:1px 4px}.ribbon-checkbox{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-muted, #555);cursor:pointer;white-space:nowrap;line-height:1}.ribbon-checkbox input[type=checkbox]{margin:0;cursor:pointer}.ribbon-select{padding:3px 6px;border:1px solid var(--border-strong, #ccc);border-radius:3px;font-size:11px;background:#fff;min-width:100px;cursor:pointer}.ribbon-input-row{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-muted, #555);line-height:1}.ribbon-input-sm{width:50px;padding:2px 4px;border:1px solid var(--border-strong, #ccc);border-radius:3px;font-size:11px}.dropdown-menu{display:none}.dropdown-menu.visible{display:block}#history-log{max-height:200px;overflow-y:auto;font-size:13px}.history-item{padding:4px 0;border-bottom:1px solid var(--border-subtle, #f0f0f0)}.history-item:last-child{border-bottom:none}.tool-btn{padding:6px 10px;background-color:var(--surface-muted, #f5f5f5);border:1px solid var(--border, #ddd);border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .15s}.tool-btn:hover{background-color:var(--surface-strong, #e0e0e0)}.tool-btn.active{background-color:var(--accent, #4a90e2);color:#fff;border-color:var(--accent, #4a90e2)}#schedule-container{position:fixed;top:var(--toolbar-height);left:0;right:0;bottom:0;background:var(--surface-muted, #f5f5f5);z-index:50;overflow:auto;padding:20px}#schedule-container .schedule-close-btn{position:absolute;top:10px;right:20px;background:#e74c3c;color:#fff;border:none;border-radius:4px;padding:6px 16px;font-size:13px;cursor:pointer;z-index:51}#schedule-container .schedule-close-btn:hover{background:#c0392b}.view-dropdown{position:absolute;z-index:16;flex-direction:column;min-width:180px;background:#1e1e1eeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:4px 0;box-shadow:0 8px 24px #0006;animation:viewDropdownIn .12s ease-out}@keyframes viewDropdownIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.view-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;background:none;border:none;color:#e0e0e0;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background-color .1s}.view-dropdown button:hover{background-color:#ffffff1a;color:var(--text-inverse, #ffffff)}.view-dropdown hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:4px 0}#properties-panel{position:fixed;top:var(--toolbar-height);left:0;width:300px;height:calc(100vh - var(--toolbar-height));background-color:var(--surface-overlay, rgba(255, 255, 255, .95));border-right:1px solid var(--border, #ddd);box-shadow:2px 0 10px var(--shadow-weak, rgba(0, 0, 0, .1));z-index:20;display:flex;flex-direction:column;overflow:hidden}#properties-panel.visible{left:0}#properties-toggle{display:none}.properties-header{padding:4px 8px;border-bottom:1px solid var(--border, #ddd);font-size:14px;font-weight:600;color:var(--text, #333);text-align:left;background:var(--surface-strong, #eaeaea)}.properties-content{padding:6px 8px;overflow-y:auto;flex-grow:1}.properties-section{margin-bottom:10px;display:none}.properties-section h3{margin-top:0;margin-bottom:6px;border-bottom:1px solid var(--border-subtle, #eee);padding-bottom:3px;font-size:13px;font-weight:700;color:var(--text, #333);text-align:left}.properties-section .row{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;align-items:center;margin-bottom:4px}.properties-section label,.properties-section span{font-size:12px;color:var(--text-muted, #555)}.properties-section input,.properties-section select{width:100%;padding:4px;border-radius:3px;border:1px solid var(--border-strong, #ccc);font-size:13px;box-sizing:border-box}.properties-section input[type=checkbox]{width:auto;justify-self:start}#asset-preview-container{width:100%;height:150px;background-color:var(--surface-strong, #e0e0e0);border-radius:5px;margin-bottom:15px}.level-list-item{display:flex;justify-content:space-between;padding:.3rem 0;border-bottom:1px solid var(--border, #ddd)}#context-menu{position:absolute;display:none;background-color:#fff;border-radius:5px;box-shadow:0 2px 10px var(--shadow, rgba(0, 0, 0, .2));padding:8px 0;z-index:1000}.context-menu-item{padding:8px 16px;cursor:pointer;font-size:14px}.context-menu-item:hover{background-color:var(--surface-sunken, #f0f0f0)}#selection-box{position:absolute;background-color:#4a90e233;border:1px solid var(--accent, #4a90e2);display:none;z-index:1000;pointer-events:none}#material-browser{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(120%);width:600px;height:280px;min-width:320px;min-height:180px;background:#fff;border-radius:8px;box-shadow:0 5px 20px var(--shadow, rgba(0, 0, 0, .2));z-index:100;display:flex;flex-direction:column;transition:transform .3s ease;overflow:hidden}#material-browser.visible{transform:translate(-50%) translateY(0)}#material-browser.mb-dragged{transform:none;transition:none}#material-browser.mb-dragged.visible{transform:none}.mb-header{padding:8px 12px;border-bottom:1px solid var(--border-subtle, #eee);display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px;background:#f9f9f9;border-radius:8px 8px 0 0;cursor:grab;user-select:none;gap:8px}.mb-header:active{cursor:grabbing}.mb-header-left{display:flex;align-items:center;gap:8px}.mb-header-right{display:flex;align-items:center;gap:4px}.mb-view-btn{background:none;border:1px solid transparent;border-radius:4px;padding:3px 6px;cursor:pointer;font-size:14px;color:var(--text-subtle, #888);transition:all .15s}.mb-view-btn:hover{background:#e8e8e8;color:var(--text, #333)}.mb-view-btn.active{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2);background:#eef6ff}#mb-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-subtle, #888);padding:2px 4px}#mb-close:hover{color:var(--text, #333)}.mb-controls{padding:6px 8px;border-bottom:1px solid var(--border-subtle, #eee);font-size:12px;display:flex;gap:12px;justify-content:center}.mb-grid{flex:1;overflow:auto;display:flex;flex-wrap:wrap;gap:8px;padding:8px;align-content:flex-start}.mb-item{width:80px;display:inline-flex;flex-direction:column;align-items:center;cursor:pointer;border:2px solid transparent;border-radius:6px;padding:5px;transition:background .15s;flex-shrink:0}.mb-item:hover{background:var(--surface-sunken, #f0f0f0)}.mb-item.active{border-color:var(--accent, #4a90e2);background:#eef6ff}.mb-item img{width:64px;height:64px;border-radius:50%;box-shadow:0 2px 5px var(--shadow, rgba(0, 0, 0, .2))}.mb-label{font-size:11px;margin-top:4px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.mb-grid.mb-view-large .mb-item{width:120px}.mb-grid.mb-view-large .mb-item img{width:100px;height:100px}.mb-grid.mb-view-large .mb-label{font-size:12px}.mb-grid.mb-view-list{flex-direction:column;flex-wrap:nowrap;gap:2px}.mb-grid.mb-view-list .mb-item{width:100%;flex-direction:row;padding:4px 8px;border-radius:4px;gap:10px}.mb-grid.mb-view-list .mb-item img{width:28px;height:28px;border-radius:50%;box-shadow:0 1px 3px var(--shadow-weak, rgba(0, 0, 0, .15));flex-shrink:0}.mb-grid.mb-view-list .mb-label{margin-top:0;text-align:left;font-size:13px}.mb-resize-handle{position:absolute;bottom:0;right:0;width:14px;height:14px;cursor:nwse-resize;z-index:2}.mb-resize-handle:after{content:"";position:absolute;bottom:3px;right:3px;width:8px;height:8px;border-right:2px solid var(--border-strong, #bbb);border-bottom:2px solid var(--border-strong, #bbb)}#landscape-ui{position:absolute;top:80px;left:20px;background:var(--surface-overlay, rgba(255, 255, 255, .95));padding:0;border-radius:8px;box-shadow:0 4px 12px var(--shadow, rgba(0, 0, 0, .2));width:280px;z-index:2000;display:none;flex-direction:column;max-height:calc(100vh - 100px)}.landscape-header{background:var(--accent, #4a90e2);color:#fff;padding:10px;font-weight:500;font-size:14px;border-top-left-radius:8px;border-top-right-radius:8px;display:flex;justify-content:space-between;align-items:center;cursor:grab}.landscape-header:active{cursor:grabbing}#landscape-close-btn{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;line-height:1;padding:0 5px}#landscape-close-btn:hover{color:#fcc}.landscape-tabs{display:flex;border-bottom:1px solid var(--border, #ddd)}.landscape-tab{flex:1;padding:10px;text-align:center;cursor:pointer;font-weight:500;color:var(--text-muted, #666);font-size:13px;background:var(--surface-muted, #f5f5f5)}.landscape-tab.active{background:#fff;color:var(--accent, #4a90e2);border-bottom:2px solid var(--accent, #4a90e2)}.landscape-panel{padding:15px;display:none;flex-direction:column;gap:10px}.landscape-panel.active{display:flex}#landscape-ui .row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:5px}#landscape-ui select,#landscape-ui input[type=range]{width:140px;padding:4px;border-radius:4px;border:1px solid var(--border-strong, #ccc)}#landscape-ui label{font-weight:500}.ai-prompt-bar{position:fixed;bottom:-100px;opacity:0;pointer-events:none;left:50%;transform:translate(-50%);width:90%;max-width:600px;background:#18181bf2;backdrop-filter:blur(10px);border:1px solid #3f3f46;border-radius:8px;padding:12px;z-index:4000;transition:bottom .3s cubic-bezier(.175,.885,.32,1.275),opacity .3s;box-shadow:0 10px 30px #00000080}.ai-prompt-bar.visible{bottom:30px;opacity:1;pointer-events:auto}.ai-prompt-inner{display:flex;flex-direction:column;gap:10px}#aiPromptInput{width:100%;background:transparent;border:none;color:#fff;font-size:16px;outline:none;font-family:Inter,sans-serif}.ai-controls{display:flex;justify-content:space-between;align-items:center;color:#a1a1aa;font-size:12px}#ai-canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000}#aiGenerateBtn{background:linear-gradient(135deg,#eab308,#f59e0b);color:#000;font-weight:700;border:none;border-radius:4px;padding:8px 16px;cursor:pointer;font-family:Inter,sans-serif;transition:transform .1s}#aiGenerateBtn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #eab3084d}#aiGenerateBtn:active:not(:disabled){transform:translateY(1px)}#aiGenerateBtn:disabled{background:#52525b;color:#a1a1aa;cursor:not-allowed}#aiCancelBtn{border:none;border-radius:4px;padding:8px 16px;cursor:pointer;color:#fff;font-weight:700}.ai-modal{display:none;position:fixed;inset:0;background:#000c;z-index:5000;justify-content:center;align-items:center}.ai-modal.show{display:flex}.ai-modal-content{background:#27272a;border:1px solid #3f3f46;border-radius:8px;padding:20px;width:80%;max-width:500px;color:#fff;box-shadow:0 20px 50px #00000080}.ai-modal-content h3{margin-top:0;color:var(--warning, #eab308);margin-bottom:10px}.ai-progress-text{background:#18181b;border:1px solid #3f3f46;border-radius:4px;padding:12px;height:150px;overflow-y:auto;font-family:monospace;font-size:13px;color:#a1a1aa;white-space:pre-wrap}#ai-canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}#view-browser{display:flex;flex-direction:column;flex-grow:1;background:var(--surface-muted, #f5f5f5);border-top:2px solid var(--border-strong, #ccc);font-size:13px;overflow-y:auto;min-height:200px}.vb-header{padding:8px 12px;font-weight:600;font-size:13px;border-bottom:1px solid var(--border, #ddd);background:var(--surface-sunken, #eee);display:flex;justify-content:space-between;align-items:center}.vb-header button{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-muted, #666);padding:0 4px}.vb-section{border-bottom:1px solid var(--border-subtle, #e0e0e0)}.vb-section-header{padding:6px 12px;font-weight:600;font-size:12px;text-transform:uppercase;color:var(--text-muted, #666);background:var(--surface-strong, #eaeaea);cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}.vb-section-header:hover{background:var(--surface-strong, #e0e0e0)}.vb-section-header .vb-toggle{font-size:10px;transition:transform .2s}.vb-section.collapsed .vb-section-content{display:none}.vb-section.collapsed .vb-toggle{transform:rotate(-90deg)}.vb-view-item{padding:5px 12px 5px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-subtle, #f0f0f0)}.vb-view-item:hover{background:#e8f0fe}.vb-view-item.active{background:#d2e3fc;font-weight:600}.vb-view-item .vb-view-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vb-view-item .vb-view-scale{font-size:11px;color:var(--text-subtle, #888);margin-left:8px}.vb-view-item .vb-view-delete{opacity:0;background:none;border:none;color:var(--text-subtle, #999);cursor:pointer;font-size:14px;padding:0 4px;margin-left:4px}.vb-view-item:hover .vb-view-delete{opacity:1}.vb-view-item .vb-view-delete:hover{color:#e53e3e}.vb-add-btn{padding:4px 8px;font-size:11px;background:var(--accent, #4a90e2);color:#fff;border:none;border-radius:3px;cursor:pointer;margin:6px 12px}.vb-add-btn:hover{background:#357abd}.vb-sheet-item{padding:5px 12px 5px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-subtle, #f0f0f0)}.vb-sheet-item:hover{background:#e8f0fe}.vb-sheet-item.active{background:#d2e3fc;font-weight:600}.vb-sheet-item .vb-sheet-name{flex:1}.vb-sheet-item .vb-sheet-delete{opacity:0;background:none;border:none;color:var(--text-subtle, #999);cursor:pointer;font-size:14px;padding:0 4px}.vb-sheet-item:hover .vb-sheet-delete{opacity:1}#sheet-editor{display:none;position:fixed;top:var(--toolbar-height);left:300px;right:0;bottom:0;z-index:18;background:#d0d0d0}#sheet-editor.visible{display:block}#sheet-editor canvas{width:100%;height:100%;cursor:grab}#sheet-editor canvas:active{cursor:grabbing}.sheet-toolbar{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;gap:4px;background:var(--surface-overlay, rgba(255, 255, 255, .95));padding:4px 8px;border-radius:6px;box-shadow:0 2px 8px var(--shadow-weak, rgba(0,0,0,.15));z-index:5;font-size:12px;align-items:center}.sheet-toolbar button{background:var(--surface-sunken, #f0f0f0);border:1px solid var(--border-strong, #ccc);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px}.sheet-toolbar button:hover{background:var(--surface-strong, #e0e0e0)}.sheet-toolbar button.active{background:var(--accent, #4a90e2);color:#fff;border-color:#357abd}.sheet-toolbar select{padding:3px 6px;font-size:12px;border:1px solid var(--border-strong, #ccc);border-radius:4px}.sheet-info-bar{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#ffffffe6;padding:4px 12px;border-radius:4px;font-size:11px;color:var(--text-muted, #666);z-index:5}#elevation-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:20px;border-radius:8px;box-shadow:0 4px 20px #0000004d;z-index:3000;min-width:300px}#elevation-modal h3{margin-top:0;border-bottom:1px solid var(--border-subtle, #eee);padding-bottom:10px}#elevation-modal .row{display:flex;align-items:center;gap:10px;margin-bottom:10px}#elevation-modal .row label{min-width:80px;font-size:13px}#elevation-modal .row input,#elevation-modal .row select{flex:1;padding:4px 8px;border:1px solid var(--border-strong, #ccc);border-radius:4px}#elevation-modal .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:15px}@media print{body *{visibility:hidden}#print-container,#print-container *{visibility:visible}#print-container{position:absolute;left:0;top:0;width:100%}@page{margin:0}}#selection-filter{position:fixed;bottom:34px;right:12px;z-index:50;font-family:Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;align-items:flex-end;gap:6px}#sf-trigger{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--surface-overlay, rgba(255, 255, 255, .95));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border, #ddd);border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--text-muted, #555);cursor:pointer;box-shadow:0 2px 10px var(--shadow-weak, rgba(0, 0, 0, .1));transition:border-color .15s,color .15s,background .15s;white-space:nowrap;user-select:none}#sf-trigger:hover{color:var(--text, #333);border-color:var(--border-strong, #bbb)}#selection-filter.sf-open #sf-trigger{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2)}.sf-trigger-icon{font-size:13px;line-height:1}.sf-caret{font-size:9px;color:var(--text-subtle, #888);transition:transform .15s}#selection-filter.sf-open .sf-caret{transform:rotate(180deg)}.sf-count{padding:1px 6px;border-radius:9px;background:var(--accent, #4a90e2);color:var(--accent-text, #fff);font-size:10px;font-weight:700;line-height:1.5}#selection-filter.sf-filtered #sf-trigger{border-color:var(--accent, #4a90e2)}#sf-menu{width:280px;max-height:60vh;overflow-y:auto;padding:8px;background:var(--surface-overlay, rgba(255, 255, 255, .97));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 6px 24px var(--shadow, rgba(0, 0, 0, .2))}#sf-menu[hidden]{display:none}#sf-menu-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 8px;border-bottom:1px solid var(--border-subtle, #eee);margin-bottom:6px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--text-subtle, #888)}#sf-quick-actions{display:flex;gap:4px}.sf-quick-btn{padding:2px 8px;background:var(--surface, #fff);border:1px solid var(--border-strong, #d0d0d0);border-radius:4px;font-size:10px;font-weight:600;color:var(--text-muted, #555);cursor:pointer;transition:all .12s;font-family:inherit;text-transform:none;letter-spacing:0}.sf-quick-btn:hover{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2)}#sf-categories{display:grid;grid-template-columns:1fr 1fr;gap:1px 4px}.sf-category{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer;user-select:none;transition:background .12s}.sf-category:hover{background:var(--surface-sunken, #f0f0f0)}.sf-checkbox{width:13px;height:13px;margin:0;cursor:pointer;accent-color:var(--accent, #4a90e2);flex-shrink:0}.sf-icon{font-size:12px;line-height:1;flex-shrink:0;width:14px;text-align:center}.sf-label{font-size:11px;font-weight:500;color:var(--text-muted, #555);line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-disabled .sf-label,.sf-disabled .sf-icon{color:var(--text-subtle, #999);opacity:.65}#viewport-hud{position:absolute;top:calc(var(--toolbar-height) + 12px);right:14px;z-index:15;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-family:Segoe UI,Roboto,sans-serif;pointer-events:none}#viewport-hud>*{pointer-events:auto}#viewport-hud[hidden]{display:none}#visual-style-menu{position:relative}#vs-trigger{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--surface-overlay, rgba(255, 255, 255, .95));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border, #ddd);border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--text-muted, #555);cursor:pointer;box-shadow:0 2px 10px var(--shadow-weak, rgba(0, 0, 0, .1));transition:border-color .15s,color .15s;white-space:nowrap;user-select:none;min-width:150px}#vs-trigger:hover{color:var(--text, #333);border-color:var(--border-strong, #bbb)}#visual-style-menu.vs-open #vs-trigger{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2)}.vs-trigger-icon{display:flex;align-items:center;color:currentColor}.vs-trigger-icon svg{display:block}#vs-trigger-label{flex:1;text-align:left}.vs-caret{font-size:9px;color:var(--text-subtle, #888);transition:transform .15s}#visual-style-menu.vs-open .vs-caret{transform:rotate(180deg)}#vs-menu{position:absolute;top:calc(100% + 6px);right:0;width:210px;padding:6px;background:var(--surface-overlay, rgba(255, 255, 255, .97));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 6px 24px var(--shadow, rgba(0, 0, 0, .2))}#vs-menu[hidden]{display:none}.vs-menu-section{padding:4px 6px;font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text-subtle, #888)}.vs-menu-section+.vs-menu-section{border-top:1px solid var(--border-subtle, #eee);margin-top:4px;padding-top:8px}.vs-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:none;border:none;border-radius:5px;font-family:inherit;font-size:11.5px;font-weight:500;color:var(--text, #333);cursor:pointer;text-align:left;transition:background .12s}.vs-option:hover{background:var(--surface-sunken, #f0f0f0)}.vs-option.active{background:var(--accent, #4a90e2);color:var(--accent-text, #fff)}.vs-option svg{flex-shrink:0}.vs-option-check{margin-left:auto;font-size:11px;opacity:0}.vs-option.active .vs-option-check{opacity:1}#view-cube{position:relative;width:96px;height:96px;display:flex;align-items:center;justify-content:center;user-select:none}#view-cube[hidden]{display:none}#view-cube-stage{width:100%;height:100%;perspective:340px;display:flex;align-items:center;justify-content:center}#view-cube-box{position:relative;width:52px;height:52px;transform-style:preserve-3d}.vc-face{position:absolute;top:0;left:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid var(--border-strong, #b9c2cc);background:var(--surface-overlay, rgba(255, 255, 255, .92));color:var(--text-muted, #555);font-size:11px;font-weight:700;letter-spacing:.5px;cursor:pointer;backface-visibility:hidden;transition:background .12s,color .12s}.vc-face:hover{background:var(--accent, #4a90e2);color:var(--accent-text, #fff);border-color:var(--accent, #4a90e2)}.vc-face.vc-facing{color:var(--accent, #4a90e2);border-color:var(--accent, #4a90e2)}#view-cube-home{position:absolute;bottom:-2px;right:-2px;width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface-overlay, rgba(255, 255, 255, .95));border:1px solid var(--border, #ddd);border-radius:4px;font-size:12px;line-height:1;color:var(--text-muted, #555);cursor:pointer;box-shadow:0 1px 6px var(--shadow-weak, rgba(0, 0, 0, .1));transition:color .12s,border-color .12s}#view-cube-home:hover{color:var(--accent, #4a90e2);border-color:var(--accent, #4a90e2)}#family-editor-banner{position:absolute;top:var(--toolbar-height);left:310px;z-index:200;display:flex;align-items:center;gap:10px;padding:6px 14px;background:linear-gradient(135deg,#f5a623,#f7b731);color:var(--text-inverse, #fff);font-size:12px;font-weight:500;border-radius:8px;box-shadow:0 3px 12px #f5a62359;font-family:Segoe UI,Roboto,sans-serif}.fe-banner-left{display:flex;align-items:center;gap:8px}.fe-banner-icon{font-size:14px}.fe-family-name{font-weight:700;font-size:13px}.fe-banner-right{display:flex;gap:6px}.fe-btn{padding:4px 10px;border:none;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.fe-btn-primary{background:var(--surface-overlay, rgba(255,255,255,.95));color:#d48806;border:1px solid rgba(255,255,255,.6)}.fe-btn-primary:hover{background:var(--surface, #fff);box-shadow:0 2px 6px var(--shadow-weak, rgba(0,0,0,.15))}.fe-btn-secondary{background:#fff3;color:var(--text-inverse, #fff);border:1px solid rgba(255,255,255,.4)}.fe-btn-secondary:hover{background:#ffffff59}.fe-btn-small{padding:4px 10px;font-size:11px;background:var(--surface-sunken, #f0f0f0);color:var(--text-muted, #555);border:1px solid var(--border, #ddd);width:100%;margin-top:6px}.fe-btn-small:hover{background:#e4e4e4}#fe-params-container{padding:0}.fe-panel-header{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-subtle, #888);letter-spacing:.6px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #e8e8e8}.fe-divider{border:none;border-top:1px solid var(--border-subtle, #e0e0e0);margin:12px 0}.fe-param-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.fe-param-name{flex:1;min-width:0;padding:3px 6px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;background:var(--surface, #fff)}.fe-param-value{width:55px;padding:3px 4px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;text-align:right;background:var(--surface, #fff)}.fe-param-delete{background:none;border:none;color:#ccc;cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.fe-param-delete:hover{color:#e74c3c}.fe-type-row{background:var(--surface, #fff);border:1px solid #e8e8e8;border-radius:4px;padding:6px 8px;margin-bottom:6px}.fe-type-header{display:flex;align-items:center;gap:4px;margin-bottom:4px}.fe-type-name{flex:1;padding:2px 5px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;font-weight:600;background:#fafafa}.fe-type-delete{background:none;border:none;color:#ccc;cursor:pointer;font-size:12px;padding:0 2px}.fe-type-delete:hover{color:#e74c3c}.fe-type-values{display:flex;flex-wrap:wrap;gap:4px}.fe-type-values label{font-size:10px;color:var(--text-subtle, #888);display:flex;align-items:center;gap:3px}.fe-type-value{width:45px;padding:2px 3px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:10px;text-align:right}#family-editor-parts{position:fixed;top:var(--toolbar-height);right:0;width:280px;height:calc(100vh - var(--toolbar-height));background-color:var(--surface-overlay, rgba(255, 255, 255, .95));border-left:1px solid var(--border, #ddd);box-shadow:-2px 0 10px var(--shadow-weak, rgba(0, 0, 0, .1));z-index:20;overflow-y:auto;padding:0;font-family:Segoe UI,Roboto,sans-serif;font-size:12px}#family-editor-parts .fe-parts-header{padding:10px;border-bottom:1px solid var(--border, #ddd);font-size:16px;font-weight:600;color:var(--text, #333);text-align:center;background:var(--surface-strong, #eaeaea)}#family-editor-parts .fe-parts-content{padding:15px}#fe-part-properties h4{margin:0 0 8px;font-size:13px;color:var(--text, #333)}.fe-no-selection{color:var(--text-subtle, #aaa);font-style:italic;font-size:11px;text-align:center;padding:20px 0}.fe-prop-section{margin-bottom:10px}.fe-prop-section h5{margin:0 0 4px;font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text-subtle, #999);letter-spacing:.5px}.fe-prop-field{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}.fe-prop-field label{font-size:11px;color:var(--text-muted, #666);min-width:50px}.fe-prop-input-group{flex:1;margin-left:8px}.fe-part-input{width:100%;padding:3px 5px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;background:var(--surface, #fff);box-sizing:border-box}.fe-part-input:focus{border-color:#f5a623;outline:none;box-shadow:0 0 0 2px #f5a62326}.fe-part-name{width:100%;padding:3px 5px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:12px;font-weight:600;box-sizing:border-box}.fe-part-color{width:100%;height:24px;border:1px solid var(--border, #ddd);border-radius:3px;cursor:pointer;padding:1px}.fe-delete-part-btn{width:100%;padding:6px;margin-top:12px;background:#fff0f0;color:#c0392b;border:1px solid #f5c6cb;border-radius:4px;font-size:11px;cursor:pointer;transition:background .15s}.fe-delete-part-btn:hover{background:#fde2e2}.fe-toolbar-group{display:flex;align-items:center;gap:6px}.fe-toolbar-label{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-subtle, #888);letter-spacing:.4px;margin-right:2px}.fe-toolbar-sep{width:1px;height:24px;background:#ccc}.fe-tool-btn{padding:4px 10px;background:var(--surface, #fff);border:1px solid var(--border-strong, #ccc);border-radius:3px;font-size:11px;cursor:pointer;transition:all .12s;color:var(--text, #444);font-family:inherit}.fe-tool-btn:hover{background:#e8f4fd;border-color:var(--accent, #4a90e2);color:#2c6fbb}.fe-tool-btn.active{background:var(--accent, #4a90e2);color:var(--text-inverse, #fff);border-color:#357abd}body.family-editor-mode .ribbon-group[data-fe-hide]{display:none!important}body.family-editor-mode .ribbon-group[data-fe-hide]+.ribbon-separator{display:none!important}body.family-editor-mode .ribbon-tab[data-fe-hide],body.family-editor-mode .ribbon-panel .ribbon-group[data-fe-hide]{display:none!important}#bottom-status-bar{position:fixed;bottom:0;left:0;right:0;height:28px;background:#2a2a2a;border-top:1px solid #444;display:flex;align-items:center;padding:0 12px;z-index:9000;font-size:12px;color:#ccc;gap:16px;user-select:none}.status-item{position:relative;cursor:pointer;padding:2px 8px;border-radius:3px;transition:background .15s}.status-item:hover{background:#3a3a3a}.scale-dropdown{position:absolute;bottom:100%;left:0;background:#2a2a2a;border:1px solid #555;border-radius:6px;padding:4px 0;min-width:160px;box-shadow:0 -4px 16px #0006;margin-bottom:4px}.scale-dropdown.hidden{display:none}.scale-option{padding:6px 12px;cursor:pointer;color:#ddd;font-size:12px;transition:background .1s}.scale-option:hover{background:#4a6fa5;color:var(--text-inverse, #fff)}.scale-option.active{background:#3a5a8a;color:var(--text-inverse, #fff);font-weight:700}:root[data-theme=dark]{--surface: #1e293b;--surface-raised: #263449;--surface-muted: #172033;--surface-sunken: #0f172a;--surface-strong: #334155;--surface-overlay: rgba(30, 41, 59, .95);--text: #f1f5f9;--text-muted: #cbd5e1;--text-subtle: #94a3b8;--text-inverse: #0f172a;--border: #334155;--border-strong: #475569;--border-subtle: #273449;--accent: #4a90e2;--accent-text: #ffffff;--danger: #f87171;--warning: #fbbf24;--shadow-weak: rgba(0, 0, 0, .45);--shadow: rgba(0, 0, 0, .65);color-scheme:dark}
