@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&display=swap";:root{--bg: #0b0d14;--surface: #12151f;--surface2: #181c28;--border: #1f2435;--border2: #2a3048;--accent: #4fc3f7;--accent2: #00b4d8;--text: #cdd6f4;--text-dim: #6b7a9e;--text-muted: #3d4666;--ok: #a6e3a1;--error: #f38ba8;--warn: #f9e2af;--toolbar-h: 44px;--left-w: 220px;--right-w: 256px;--font: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;-webkit-font-smoothing:antialiased}input,textarea,select{-webkit-user-select:text;user-select:text}.editor-root{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-dim);font-size:13px}.editor-body{display:flex;flex:1;overflow:hidden}.editor-body.code-mode .left-panel{display:none}.editor-body.code-mode .right-panel{width:420px;min-width:280px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--border)}.editor-body.code-mode .code-preview-panel{width:100%;flex:1;display:flex;flex-direction:column}.preview-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted)}.toolbar{display:flex;align-items:center;height:var(--toolbar-h);padding:0 12px;background:var(--surface);border-bottom:1px solid var(--border);gap:4px;flex-shrink:0;position:relative;z-index:100}.toolbar-logo{display:flex;align-items:center;gap:7px;margin-right:4px;flex-shrink:0}.toolbar-logo-mark{width:20px;height:20px;background:var(--accent);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.toolbar-logo-mark svg{display:block}.toolbar-logo-img{width:20px;height:20px;border-radius:4px;object-fit:contain;flex-shrink:0}.toolbar-logo-text{font-size:11px;font-weight:600;color:var(--text);letter-spacing:.08em;white-space:nowrap}.toolbar-logo-text span{color:var(--accent)}.toolbar-divider{width:1px;height:20px;background:var(--border2);margin:0 6px;flex-shrink:0}.toolbar-spacer{flex:1}.project-name-btn{background:none;border:none;color:var(--text);font-family:var(--font);font-size:12px;font-weight:500;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .12s;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.project-name-btn:hover{background:var(--border)}.project-name-input{background:var(--surface2);border:1px solid var(--accent);color:var(--text);font-family:var(--font);font-size:12px;padding:2px 6px;border-radius:4px;outline:none;width:160px}.save-indicator{font-size:10px;color:var(--text-muted);white-space:nowrap;padding:0 4px}.save-indicator.saved{color:var(--ok)}.view-toggle{display:flex;background:var(--bg);border:1px solid var(--border2);border-radius:6px;padding:2px;gap:2px}.view-toggle-btn{background:none;border:none;color:var(--text-dim);font-family:var(--font);font-size:11px;font-weight:500;cursor:pointer;padding:3px 10px;border-radius:4px;transition:background .12s,color .12s;white-space:nowrap}.view-toggle-btn:hover{color:var(--text)}.view-toggle-btn.active{background:var(--surface2);color:var(--text);border:1px solid var(--border2)}.run-btn{display:flex;align-items:center;gap:6px;height:28px;padding:0 12px;background:var(--accent);border:none;border-radius:6px;color:#0b0d14;font-family:var(--font);font-size:11px;font-weight:700;cursor:pointer;letter-spacing:.06em;transition:background .12s,transform .08s;flex-shrink:0;white-space:nowrap}.run-btn:hover{background:#73d4f9}.run-btn:active{transform:scale(.97)}.run-btn-hint{font-size:9px;font-weight:400;opacity:.6;letter-spacing:0}.stop-btn{background:#f38ba826;color:var(--error);border:1px solid rgba(243,139,168,.3)}.stop-btn:hover{background:#f38ba840}.publish-btn{display:flex;align-items:center;gap:6px;height:28px;padding:0 12px;background:#4fc3f71f;border:1px solid rgba(79,195,247,.3);border-radius:6px;color:var(--accent);font-family:var(--font);font-size:11px;font-weight:600;cursor:pointer;transition:background .12s;flex-shrink:0;white-space:nowrap}.publish-btn:hover{background:#4fc3f733}.published-link{font-size:10px;color:var(--ok);text-decoration:none;white-space:nowrap;padding:0 4px}.published-link:hover{text-decoration:underline}.toolbar-user{display:flex;align-items:center}.toolbar-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover}.toolbar-avatar-initial{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#0b0d14;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.toolbar-signin{font-size:11px;color:var(--accent);text-decoration:none;white-space:nowrap}.left-panel{width:var(--left-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.center-panel{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.visual-view{flex:1;display:flex;flex-direction:column;overflow:hidden}.visual-canvas-wrap{flex:1;position:relative;background:#0d0f18;overflow:hidden}.visual-static{width:100%;height:100%;position:relative}.visual-static-bg{position:absolute;top:0;right:0;bottom:0;left:0}.canvas-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:all}.game-iframe{width:100%;height:100%;border:none}.visual-play-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:10px;color:var(--text-muted);background:#0b0d14b3;padding:4px 12px;border-radius:20px;pointer-events:none;white-space:nowrap}.code-view{flex:1;display:flex;overflow:hidden}.code-file-sidebar{width:180px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.code-file-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 6px;font-size:10px;font-weight:600;letter-spacing:.07em;color:var(--text-muted);flex-shrink:0}.code-file-new-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px;border-radius:4px;transition:color .12s,background .12s}.code-file-new-btn:hover{color:var(--text);background:var(--surface2)}.code-file-list{flex:1;overflow-y:auto;padding:2px 0}.code-file-item{display:flex;align-items:center;gap:7px;padding:5px 12px;font-size:12px;color:var(--text-dim);cursor:pointer;border-radius:0;transition:background .1s,color .1s;-webkit-user-select:none;user-select:none}.code-file-item:hover{background:var(--surface2);color:var(--text)}.code-file-item.active{background:#4fc3f71a;color:var(--accent)}.code-file-item.active .code-file-icon{color:var(--accent)}.code-file-icon{flex-shrink:0;color:var(--text-muted)}.code-file-item.creating{padding:3px 8px}.code-file-name-input{flex:1;background:var(--surface2);border:1px solid var(--accent);border-radius:4px;color:var(--text);font-size:12px;font-family:var(--font);padding:2px 6px;outline:none;min-width:0}.editor-body-inner{flex:1;min-width:0;overflow:hidden}.code-preview-panel{width:420px;flex-shrink:0;border-left:1px solid var(--border);display:flex;flex-direction:column}.right-panel{width:var(--right-w);flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.right-panel::-webkit-scrollbar{width:4px}.right-panel::-webkit-scrollbar-track{background:transparent}.right-panel::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.panel-section{display:flex;flex-direction:column;flex:1;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:32px;font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--text-muted);border-bottom:1px solid var(--border);flex-shrink:0}.panel-icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:color .12s,background .12s}.panel-icon-btn:hover{color:var(--text);background:var(--border2)}.hierarchy-root{border-bottom:1px solid var(--border);padding:4px 0;flex-shrink:0}.hierarchy-entities{flex:1;overflow-y:auto;padding:4px 0}.hierarchy-entities::-webkit-scrollbar{width:3px}.hierarchy-entities::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.hierarchy-item{display:flex;align-items:center;gap:6px;padding:4px 10px;cursor:pointer;font-size:11px;color:var(--text-dim);border-left:2px solid transparent;transition:background .1s,color .1s;position:relative}.hierarchy-item:hover{background:#ffffff08;color:var(--text)}.hierarchy-item.active{background:#4fc3f712;color:var(--text);border-left-color:var(--accent)}.hierarchy-item--root{font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--text-dim)}.hierarchy-icon{font-size:11px;flex-shrink:0}.hierarchy-entity-icon{font-size:10px;color:var(--text-muted);flex-shrink:0}.hierarchy-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-comp-tags{font-size:10px;opacity:.5;flex-shrink:0}.hierarchy-rename-input{flex:1;background:var(--surface2);border:1px solid var(--accent);color:var(--text);font-family:var(--font);font-size:11px;padding:1px 4px;border-radius:3px;outline:none}.hierarchy-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.hierarchy-action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:3px;transition:color .1s,background .1s}.hierarchy-action-btn:hover{color:var(--text);background:var(--border2)}.hierarchy-action-btn.danger:hover{color:var(--error)}.hierarchy-empty{padding:20px 14px;font-size:11px;color:var(--text-muted);text-align:center;line-height:1.7}.inspector{display:flex;flex-direction:column;flex:1}.inspector-section{border-bottom:1px solid var(--border);padding:8px 0}.inspector-section-title{font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--text-muted);padding:0 12px 6px;text-transform:uppercase}.inspector-comp-header{display:flex;align-items:center;gap:6px;padding:2px 12px 6px}.inspector-comp-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.inspector-comp-name{flex:1;font-size:11px;font-weight:600;color:var(--text)}.inspector-row{display:flex;align-items:center;padding:3px 12px;gap:8px}.inspector-row label{font-size:10px;color:var(--text-dim);flex:0 0 80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-row-pair{display:flex;gap:0}.inspector-row-pair .inspector-row{flex:1}.inspector-input{flex:1;background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-family:var(--font);font-size:11px;padding:3px 6px;border-radius:4px;outline:none;min-width:0;transition:border-color .12s}.inspector-input:focus{border-color:var(--accent)}.inspector-select{flex:1;background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-family:var(--font);font-size:11px;padding:3px 6px;border-radius:4px;outline:none;cursor:pointer}.inspector-select:focus{border-color:var(--accent)}.inspector-color{width:28px;height:22px;border:1px solid var(--border2);border-radius:4px;padding:1px;background:var(--surface2);cursor:pointer}.inspector-toggle{position:relative;width:32px;height:18px;border-radius:9px;background:var(--border2);border:1px solid var(--border2);cursor:pointer;transition:background .15s;flex-shrink:0}.inspector-toggle.on{background:var(--accent);border-color:var(--accent)}.inspector-toggle-knob{position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s}.inspector-toggle.on .inspector-toggle-knob{transform:translate(14px)}.inspector-add-comp{padding:10px 12px;position:relative}.inspector-add-comp-btn{width:100%;background:#4fc3f70f;border:1px dashed rgba(79,195,247,.2);color:var(--accent);font-family:var(--font);font-size:11px;padding:6px;border-radius:6px;cursor:pointer;transition:background .12s,border-color .12s}.inspector-add-comp-btn:hover{background:#4fc3f71a;border-color:#4fc3f759}.comp-picker{position:absolute;bottom:calc(100% - 8px);left:12px;right:12px;background:var(--surface2);border:1px solid var(--border2);border-radius:8px;padding:6px;box-shadow:0 16px 48px #000000b3;z-index:200;max-height:320px;overflow-y:auto}.comp-picker::-webkit-scrollbar{width:3px}.comp-picker::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.comp-picker-cat{font-size:9px;font-weight:700;letter-spacing:.1em;padding:6px 8px 3px;text-transform:uppercase}.comp-picker-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--text-dim);font-family:var(--font);font-size:11px;padding:5px 8px;border-radius:5px;cursor:pointer;text-align:left;transition:background .1s,color .1s}.comp-picker-item:hover{background:#4fc3f712;color:var(--text)}.editor-tab-bar{display:flex;align-items:center;height:32px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);gap:4px;flex-shrink:0}.editor-tab{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-dim);padding:0 10px;height:24px;border-radius:4px;cursor:pointer;transition:color .1s}.editor-tab:hover{color:var(--text)}.editor-tab.active{background:#4fc3f714;color:var(--accent);border:1px solid rgba(79,195,247,.15)}.editor-tab-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.preview-tab-bar{display:flex;align-items:center;height:32px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.preview-tab-bar span{font-size:11px;color:var(--text-dim)}.preview-body{flex:1;position:relative;overflow:hidden}.preview-body iframe{width:100%;height:100%;border:none;background:transparent}.error-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0b0d14eb;display:flex;align-items:flex-start;padding:20px;overflow:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50}.error-box{background:#f38ba80f;border:1px solid rgba(243,139,168,.2);border-radius:8px;padding:16px;font-size:12px;color:var(--error);white-space:pre-wrap;word-break:break-word;width:100%;line-height:1.6;-webkit-user-select:text;user-select:text}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:16px;width:480px;max-width:90vw;box-shadow:0 24px 80px #000c;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:15px;font-weight:600;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:2px;display:flex}.modal-close:hover{color:var(--text)}.modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field label{font-size:11px;font-weight:500;color:var(--text-dim)}.modal-input{background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-family:var(--font);font-size:12px;padding:8px 10px;border-radius:8px;outline:none;transition:border-color .12s}.modal-input:focus{border-color:var(--accent)}.modal-textarea{resize:vertical;min-height:72px}.modal-tags{display:flex;flex-wrap:wrap;gap:6px}.modal-tag{background:var(--surface2);border:1px solid var(--border2);color:var(--text-dim);font-family:var(--font);font-size:10px;padding:3px 8px;border-radius:20px;cursor:pointer;transition:all .12s}.modal-tag:hover{border-color:var(--accent);color:var(--text)}.modal-tag.active{background:#4fc3f71f;border-color:var(--accent);color:var(--accent)}.modal-tag-input-row{display:flex;gap:8px;margin-top:8px}.modal-tag-add{background:var(--surface2);border:1px solid var(--border2);color:var(--text-dim);font-family:var(--font);font-size:11px;padding:0 12px;border-radius:6px;cursor:pointer;transition:all .12s;white-space:nowrap}.modal-tag-add:hover{color:var(--text);border-color:var(--border2)}.modal-error{font-size:11px;color:var(--error)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border)}.modal-cancel{background:none;border:1px solid var(--border2);color:var(--text-dim);font-family:var(--font);font-size:12px;padding:7px 16px;border-radius:8px;cursor:pointer;transition:all .12s}.modal-cancel:hover{color:var(--text);border-color:var(--text-dim)}.modal-publish-btn{background:var(--accent);border:none;color:#0b0d14;font-family:var(--font);font-size:12px;font-weight:700;padding:7px 18px;border-radius:8px;cursor:pointer;transition:background .12s}.modal-publish-btn:hover{background:#73d4f9}.modal-publish-btn:disabled{opacity:.5;cursor:default}.dashboard{display:flex;flex-direction:column;height:100%;background:var(--bg)}.dashboard-toolbar{display:flex;align-items:center;height:var(--toolbar-h);padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border);gap:8px;flex-shrink:0}.dashboard-link{font-size:11px;color:var(--text-dim);text-decoration:none;transition:color .12s}.dashboard-link:hover{color:var(--text)}.dashboard-signin-btn{font-size:12px;font-weight:500;color:var(--bg);background:var(--accent);border-radius:8px;padding:5px 12px;text-decoration:none;transition:opacity .12s}.dashboard-signin-btn:hover{opacity:.85}.dashboard-sync-banner{display:flex;align-items:center;gap:10px;padding:10px 24px;background:#4fc3f714;border-bottom:1px solid rgba(79,195,247,.2);font-size:12px;color:var(--text-dim);flex-shrink:0}.dashboard-sync-banner span{flex:1}.dashboard-sync-banner button{font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;cursor:pointer;background:var(--accent);color:var(--bg);border:none;transition:opacity .12s}.dashboard-sync-banner button:disabled{opacity:.5;cursor:not-allowed}.dashboard-sync-banner button.dashboard-sync-dismiss{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.dashboard-card-local{display:inline-block;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:#4fc3f71a;border-radius:3px;padding:1px 4px;margin-right:5px}.dashboard-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover}.dashboard-avatar-initial{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#0b0d14;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.dashboard-signout{background:none;border:none;color:var(--text-muted);font-family:var(--font);font-size:11px;cursor:pointer;padding:2px 4px;transition:color .12s}.dashboard-signout:hover{color:var(--text-dim)}.dashboard-body{flex:1;overflow-y:auto;padding:40px 48px;max-width:1100px;width:100%;margin:0 auto}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px}.dashboard-header h1{font-size:20px;font-weight:600;color:var(--text);margin-bottom:4px}.dashboard-header p{font-size:12px;color:var(--text-dim)}.dashboard-new-btn{background:var(--accent);border:none;color:#0b0d14;font-family:var(--font);font-size:12px;font-weight:700;padding:8px 18px;border-radius:8px;cursor:pointer;transition:background .12s;white-space:nowrap}.dashboard-new-btn:hover{background:#73d4f9}.dashboard-new-card{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:12px 16px;margin-bottom:24px}.dashboard-new-input{flex:1;background:var(--surface2);border:1px solid var(--accent);color:var(--text);font-family:var(--font);font-size:13px;padding:6px 10px;border-radius:6px;outline:none}.dashboard-create-btn{background:var(--accent);border:none;color:#0b0d14;font-family:var(--font);font-size:12px;font-weight:700;padding:6px 16px;border-radius:6px;cursor:pointer;transition:background .12s}.dashboard-create-btn:disabled{opacity:.5;cursor:default}.dashboard-create-btn:not(:disabled):hover{background:#73d4f9}.dashboard-cancel-btn{background:none;border:1px solid var(--border2);color:var(--text-dim);font-family:var(--font);font-size:12px;padding:6px 14px;border-radius:6px;cursor:pointer;transition:all .12s}.dashboard-cancel-btn:hover{color:var(--text);border-color:var(--text-dim)}.dashboard-loading{padding:60px;text-align:center;color:var(--text-muted);font-size:12px}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;gap:12px}.dashboard-empty-icon{font-size:40px;margin-bottom:8px}.dashboard-empty p{font-size:14px;font-weight:500;color:var(--text)}.dashboard-empty-sub{font-size:12px;color:var(--text-dim)!important;font-weight:400!important}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s;position:relative}.dashboard-card:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.dashboard-card-thumb{aspect-ratio:16/10;background:var(--surface2);overflow:hidden}.dashboard-card-thumb img{width:100%;height:100%;object-fit:cover}.dashboard-card-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#181c28,#1f2435)}.dashboard-card-thumb-placeholder span{font-size:40px;font-weight:700;color:#4fc3f726}.dashboard-card-info{padding:10px 12px}.dashboard-card-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-card-date{font-size:10px;color:var(--text-muted);margin-top:2px}.dashboard-card-delete{position:absolute;top:8px;right:8px;background:#0b0d14cc;border:1px solid var(--border2);color:var(--text-muted);width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .12s,color .12s}.dashboard-card:hover .dashboard-card-delete{opacity:1}.dashboard-card-delete:hover{color:var(--error);border-color:#f38ba84d}.tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:#1e2235;border:1px solid var(--border2);color:var(--text);font-size:10px;padding:4px 8px;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:300}.left-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.left-tab{flex:1;background:none;border:none;color:var(--text-muted);font-family:var(--font);font-size:10px;font-weight:600;letter-spacing:.08em;padding:8px 0;cursor:pointer;border-bottom:2px solid transparent;transition:color .12s,border-color .12s;text-transform:uppercase}.left-tab:hover{color:var(--text-dim)}.left-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.asset-panel{display:flex;flex-direction:column;flex:1;overflow:hidden}.asset-upload-row{padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.asset-upload-btn{width:100%;background:#4fc3f70f;border:1px dashed rgba(79,195,247,.2);color:var(--accent);font-family:var(--font);font-size:11px;padding:6px;border-radius:6px;cursor:pointer;transition:background .12s,border-color .12s}.asset-upload-btn:hover{background:#4fc3f71a;border-color:#4fc3f759}.asset-upload-btn:disabled{opacity:.5;cursor:default}.asset-loading{padding:20px;text-align:center;font-size:11px;color:var(--text-muted)}.asset-empty{padding:24px 16px;text-align:center;font-size:11px;color:var(--text-muted);line-height:1.7}.asset-list{flex:1;overflow-y:auto}.asset-list::-webkit-scrollbar{width:3px}.asset-list::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.asset-group{padding:6px 0;border-bottom:1px solid var(--border)}.asset-group-label{font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--text-muted);padding:4px 12px;text-transform:uppercase}.asset-row{display:flex;align-items:center;gap:8px;padding:4px 10px;cursor:default;transition:background .1s}.asset-row:hover{background:#ffffff08}.asset-thumb{width:28px;height:28px;border-radius:4px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--text-muted)}.asset-thumb img{width:100%;height:100%;object-fit:cover}.asset-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.asset-name{font-size:10px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-size{font-size:9px;color:var(--text-muted)}.asset-actions{display:flex;gap:2px;flex-shrink:0}.asset-action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:3px;border-radius:3px;display:flex;align-items:center;transition:color .1s,background .1s}.asset-action-btn:hover{color:var(--text);background:var(--border2)}.asset-action-btn.danger:hover{color:var(--error)}.asset-action-btn.copied{color:var(--ok)}.dashboard-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.dashboard-modal{background:#13151f;border:1px solid var(--border2);border-radius:16px;padding:24px;width:520px;max-width:100%;display:flex;flex-direction:column;gap:18px;box-shadow:0 24px 64px #00000080}.dashboard-new-header{display:flex;align-items:center;justify-content:space-between}.dashboard-new-header h3{font-size:14px;font-weight:600;color:var(--text)}.dashboard-new-field{display:flex;flex-direction:column;gap:8px}.dashboard-new-field label{font-size:11px;font-weight:500;color:var(--text-dim)}.dashboard-templates{display:flex;flex-wrap:wrap;gap:8px}.dashboard-template-card{display:flex;flex-direction:column;align-items:center;gap:5px;width:72px;padding:10px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .12s,background .12s}.dashboard-template-card:hover{border-color:var(--border2);background:#1a1e2e}.dashboard-template-card.active{border-color:var(--accent);background:#4fc3f714}.dashboard-template-icon{display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.dashboard-template-card.active .dashboard-template-icon{color:var(--accent)}.dashboard-template-name{font-size:9px;font-weight:500;color:var(--text-dim);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.dashboard-template-card.active .dashboard-template-name{color:var(--accent)}.dashboard-new-actions{display:flex;justify-content:flex-end}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
