*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-canvas:#1e1e1e;--bg-panel:#1a1a1a;--bg-sidebar:#1a1a1a;--bg-toolbar:#2c2c2c;--bg-titlebar:#1a1a1a;--bg-input:#2c2c2c;--bg-hover:#2f2f2f;--bg-active:#383838;--bg-selected:#2d4a6e;--border:#333;--border-subtle:#2a2a2a;--text-primary:#e5e5e5;--text-secondary:#ababab;--text-muted:#737373;--text-dim:#555;--accent-blue:#0c8ce9;--accent-blue-bg:#193a59;--accent-green:#1bc47d;--accent-purple:#9747ff;--toolbar-h:41px;--ruler-size:20px;--left-sidebar-w:200px;--right-panel-w:200px;--icon-nav-w:46px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"SF Mono", "Fira Code", monospace;--radius:4px;--radius-sm:3px}html,body,#root{background:var(--bg-canvas);height:100%;color:var(--text-primary);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;font-size:11px;line-height:1.4;overflow:hidden}.shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.toolbar{height:var(--toolbar-h);background:var(--bg-toolbar);border-bottom:1px solid var(--border);z-index:90;flex-shrink:0;align-items:center;gap:0;padding:0 6px 0 0;display:flex}.toolbar-logo{width:var(--icon-nav-w);height:var(--toolbar-h);cursor:pointer;border-right:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;display:flex}.toolbar-logo:hover{background:var(--bg-hover)}.toolbar-divider{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 6px}.toolbar-tool-group{background:var(--bg-hover);border-radius:6px;align-items:center;gap:1px;margin:0 8px;padding:2px;display:flex}.toolbar-tool{border-radius:var(--radius);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.toolbar-tool:hover{background:var(--bg-active);color:var(--text-primary)}.toolbar-tool.active{background:var(--accent-blue);color:#fff}.toolbar-spacer{flex:1}.toolbar-filename{border-radius:var(--radius);cursor:pointer;color:var(--text-primary);align-items:center;gap:5px;padding:4px 8px;font-size:12px;font-weight:500;display:flex}.toolbar-filename:hover{background:var(--bg-hover)}.toolbar-right{align-items:center;gap:4px;padding-right:8px;display:flex}.toolbar-avatar-initials{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);border:1.5px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:10px;font-weight:600;display:flex}.toolbar-avatar-initials:hover{border-color:var(--accent-blue)}.toolbar-scene-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);height:26px;color:var(--text-secondary);font-size:11px;font-family:var(--font);cursor:pointer;outline:none;padding:0 6px}.toolbar-scene-select:focus{border-color:var(--accent-blue)}.btn-primary{background:var(--accent-blue);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;height:28px;font-size:12px;font-weight:500;font-family:var(--font);border:none;align-items:center;gap:5px;padding:0 14px;transition:background .15s;display:flex}.btn-primary:hover{background:#0a7bd4}.btn-ghost{height:26px;color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;font-size:11px;font-family:var(--font);white-space:nowrap;background:0 0;border:none;align-items:center;gap:5px;padding:0 8px;display:flex}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.app-body{flex:1;display:flex;overflow:hidden}.icon-nav{width:var(--icon-nav-w);background:var(--bg-sidebar);border-right:1px solid var(--border);z-index:80;flex-direction:column;flex-shrink:0;align-items:center;gap:1px;padding:6px 0;display:flex}.icon-nav-item{border-radius:var(--radius);cursor:pointer;width:36px;height:44px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:9px;transition:color .15s;display:flex}.icon-nav-item:hover{color:var(--text-secondary)}.icon-nav-item.active{color:var(--text-primary)}.icon-nav-item.active .icon-nav-icon{background:var(--accent-blue-bg);color:var(--accent-blue)}.icon-nav-icon{border-radius:var(--radius);justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s;display:flex}.icon-nav-item:hover:not(.active) .icon-nav-icon{background:var(--bg-hover)}.icon-nav-spacer{flex:1}.left-sidebar{width:var(--left-sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border);z-index:70;flex-direction:column;flex-shrink:0;padding-top:8px;display:flex;overflow:hidden}.sidebar-section-actions{gap:2px;display:flex}.sidebar-icon-btn{border-radius:var(--radius-sm);cursor:pointer;width:20px;height:20px;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;display:flex}.sidebar-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-icon-btn.disabled{opacity:.35;cursor:default;pointer-events:none}.file-info{border-bottom:1px solid var(--border);flex-direction:column;gap:3px;padding:6px 10px 7px;display:flex}.file-name-row{align-items:center;gap:6px;display:flex}.file-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;flex:1;align-items:center;gap:5px;min-width:0;font-size:11px;font-weight:500;display:flex;overflow:hidden}.file-subtitle{color:var(--text-muted);margin-top:2px;padding-left:1px;font-size:10px}.status-badge{color:var(--accent-green);white-space:nowrap;cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0;align-items:center;gap:4px;padding:2px 4px;font-size:10px;display:flex}.status-badge:hover{background:var(--bg-hover)}.badge-count{background:var(--accent-green);color:#000;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;display:flex}.pages-section{flex:none}.pages-header{color:var(--text-primary);justify-content:space-between;align-items:center;padding:10px 10px 5px 12px;font-size:11px;font-weight:600;display:flex}.pages-list{padding:2px 0 4px;overflow-y:auto}.page-item{cursor:pointer;height:28px;color:var(--text-secondary);align-items:center;gap:6px;padding:0 12px;font-size:12px;transition:background 80ms,color 80ms;display:flex}.page-item:hover{background:var(--bg-hover);color:var(--text-primary)}.page-item.active{background:var(--bg-active);color:var(--text-primary);font-weight:600}.page-item.indented{padding-left:20px}.page-section-divider{color:var(--text-muted);letter-spacing:.05em;border-top:21px solid var(--border);margin-top:4px;padding:8px 12px 4px;font-size:10px;font-weight:700}.sidebar-divider{background:var(--border);height:1px;margin:4px 0 8px}.layers-section{border-top:1px solid var(--border);flex-direction:column;flex:1;padding-top:8px;display:flex;overflow:hidden}.layers-header{color:var(--text-primary);flex-shrink:0;justify-content:space-between;align-items:center;padding:5px 10px 5px 12px;font-size:11px;font-weight:600;display:flex}.layers-list{flex:1;padding:2px 0;overflow-y:auto}.layer-item{cursor:pointer;height:26px;color:var(--text-secondary);white-space:nowrap;align-items:center;gap:5px;padding:0 8px 0 10px;font-size:11px;transition:background 80ms;display:flex;overflow:hidden}.layer-item:hover{background:var(--bg-hover);color:var(--text-primary)}.layer-item.active{background:var(--bg-selected);color:#fff}.layer-indent{padding-left:22px}.layer-indent-2{padding-left:34px}.layer-icon{opacity:.75;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:11px;display:flex}.layer-item.active .layer-icon{opacity:1}.layer-name{text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.canvas-wrap{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.ruler-h{height:var(--ruler-size);background:var(--bg-canvas);border-bottom:1px solid var(--border);flex-shrink:0;align-items:flex-end;display:flex;position:relative;overflow:hidden}.ruler-corner{width:var(--ruler-size);height:var(--ruler-size);background:var(--bg-canvas);border-right:1px solid var(--border);border-bottom:1px solid var(--border);z-index:2;flex-shrink:0;position:absolute;top:0;left:0}.ruler-h canvas,.ruler-v canvas{display:block}.ruler-row{flex:1;display:flex;position:relative;overflow:hidden}.ruler-v{width:var(--ruler-size);background:var(--bg-canvas);border-right:1px solid var(--border);flex-shrink:0;position:relative;overflow:hidden}.canvas-area{background:var(--bg-canvas);background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-position:-.5px -.5px;background-size:20px 20px;flex:1;position:relative;overflow:hidden}.canvas-viewport{width:100%;height:100%;position:relative}.canvas-zoom-controls{background:var(--bg-sidebar);border:1px solid var(--border);z-index:50;border-radius:6px;align-items:center;gap:1px;padding:2px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.zoom-btn{border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.zoom-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.zoom-value{color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);align-items:center;height:24px;padding:0 8px;font-size:11px;display:flex}.zoom-value:hover{background:var(--bg-hover)}.plugin-slot{background:#fff;border-radius:8px;flex-direction:column;min-width:240px;min-height:300px;display:flex;position:absolute;overflow:hidden;box-shadow:0 20px 60px #00000080,0 0 0 1px #0000004d}.plugin-slot-titlebar{cursor:move;background:#2b2b2b;border-bottom:1px solid #ffffff14;flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex}.plugin-slot-logo{flex-shrink:0;justify-content:center;align-items:center;display:flex}.plugin-slot-title{color:#fff;text-align:left;flex:1;font-size:13px;font-weight:500}.plugin-slot-close{cursor:pointer;color:#ffffffb3;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:18px;display:flex}.plugin-slot-close:hover{color:#fff;background:#ffffff1a}.plugin-slot-content{flex:1;position:relative;overflow:hidden}.plugin-slot-content iframe{border:none;width:100%;height:100%;display:block}.plugin-placeholder{color:#999;text-align:center;background:#fafafa;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;padding:24px;font-size:13px;display:flex}.plugin-placeholder-icon{opacity:.4;font-size:36px}.right-panel{width:var(--right-panel-w);background:var(--bg-sidebar);border-left:1px solid var(--border);z-index:70;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.panel-tabs{border-bottom:1px solid var(--border);flex-shrink:0;gap:0;padding:0 8px;display:flex}.panel-tab{text-align:center;cursor:pointer;color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;padding:9px 10px 8px;font-size:11px;transition:color .15s}.panel-tab:hover{color:var(--text-secondary)}.panel-tab.active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.panel-zoom{color:var(--text-secondary);cursor:pointer;align-items:center;gap:4px;margin-left:auto;padding:0 2px;font-size:11px;display:flex}.panel-zoom:hover{color:var(--text-primary)}.panel-scroll{flex:1;padding:0;overflow-y:auto}.rp-section{border-bottom:1px solid var(--border);padding:10px 12px}.rp-section-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.rp-section-title{color:var(--text-primary);font-size:11px;font-weight:600}.rp-section-action{border-radius:var(--radius-sm);cursor:pointer;width:20px;height:20px;color:var(--text-muted);justify-content:center;align-items:center;font-size:16px;display:flex}.rp-section-action:hover{background:var(--bg-hover);color:var(--text-primary)}.rp-color-row{background:var(--bg-input);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:4px 8px;display:flex}.rp-color-row:hover{border-color:var(--border)}.rp-color-swatch{border:1px solid #ffffff1a;border-radius:2px;flex-shrink:0;width:16px;height:16px}.rp-color-hex{color:var(--text-primary);font-size:11px;font-family:var(--font-mono);flex:1}.rp-color-opacity{color:var(--text-secondary);font-size:11px;font-family:var(--font-mono);text-align:right;width:28px}.rp-opacity-pct{color:var(--text-muted);font-size:11px}.rp-icon-btn{cursor:pointer;width:18px;height:18px;color:var(--text-muted);border-radius:2px;justify-content:center;align-items:center;font-size:11px;display:flex}.rp-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.rp-variables-row{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.rp-variables-row:hover{background:var(--bg-hover)}.rp-variables-label{color:var(--text-primary);font-size:11px;font-weight:600}.rp-variables-icons{align-items:center;gap:4px;display:flex}.rp-styles-section{border-bottom:1px solid var(--border);padding:10px 12px 6px}.rp-styles-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.rp-styles-title{color:var(--text-primary);font-size:11px;font-weight:600}.rp-styles-add{border-radius:var(--radius-sm);cursor:pointer;width:18px;height:18px;color:var(--text-muted);justify-content:center;align-items:center;font-size:16px;display:flex}.rp-styles-add:hover{background:var(--bg-hover);color:var(--text-primary)}.rp-style-group-title{color:var(--text-muted);padding:6px 0 4px;font-size:10px;font-weight:600}.rp-style-item{cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 0;font-size:11px;display:flex}.rp-style-item:hover{color:var(--text-primary)}.rp-style-chevron{color:var(--text-dim);flex-shrink:0;width:12px;font-size:10px}.rp-color-dot{border:1px solid #ffffff26;border-radius:50%;flex-shrink:0;width:12px;height:12px}.resize-handle{cursor:col-resize;z-index:200;background:0 0;flex-shrink:0;width:3px;transition:background .15s;position:relative}.resize-handle:hover,.resize-handle.dragging{background:var(--accent-blue)}.plugin-modal-overlay{z-index:500;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.plugin-modal{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:400px;display:flex;box-shadow:0 24px 48px #0009}.plugin-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px 12px;display:flex}.plugin-modal-title{font-size:13px;font-weight:600}.plugin-modal-close{border-radius:var(--radius);cursor:pointer;width:24px;height:24px;color:var(--text-muted);justify-content:center;align-items:center;font-size:18px;display:flex}.plugin-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.plugin-modal-body{flex-direction:column;gap:8px;padding:14px 16px;display:flex}.plugin-modal-label{color:var(--text-secondary);font-size:11px}.plugin-url-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-size:11px;font-family:var(--font-mono);outline:none;padding:7px 10px}.plugin-url-input:focus{border-color:var(--accent-blue)}.plugin-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:6px;padding:10px 16px;display:flex}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#eee;white-space:nowrap;pointer-events:none;z-index:9999;border:1px solid var(--border);background:#111;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#4a4a4a}@media (width<=900px){.right-panel{display:none}}@media (width<=499px){.toolbar,.icon-nav,.left-sidebar,.right-panel,.ruler-h,.ruler-v,.canvas-zoom-controls{display:none}.plugin-slot{min-width:0;min-height:0;box-shadow:none;border-radius:0;width:100vw!important;height:100dvh!important;position:fixed!important;inset:0!important;transform:none!important}.plugin-slot-titlebar{display:none}}.password-gate{background:var(--bg-canvas);width:100vw;height:100vh;color:var(--text-primary);font-family:var(--font);justify-content:center;align-items:center;display:flex}.password-gate-card{text-align:center;flex-direction:column;gap:12px;width:100%;max-width:320px;padding:0 24px;display:flex}.password-gate-title{margin:0;font-size:18px;font-weight:600}.password-gate-subtitle{color:var(--text-secondary);margin:0 0 8px;font-size:13px}.password-gate-input{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-input);height:40px;color:var(--text-primary);padding:0 12px;font-size:14px}.password-gate-input:focus{border-color:var(--accent-blue);outline:none}.password-gate-error{color:#f87171;margin:0;font-size:12px}.password-gate-submit{border-radius:var(--radius);background:var(--accent-blue);color:#fff;cursor:pointer;border:none;height:40px;font-size:14px;font-weight:600}.password-gate-submit:disabled{opacity:.6;cursor:not-allowed}
