:root{--bg-workbench: #1e1e1e;--bg-titlebar: #3c3c3c;--bg-sidebar: #252526;--bg-sidebar-hover: #2a2d2e;--bg-active: #094771;--bg-tab-bar: #2d2d2d;--bg-tab-active: #1e1e1e;--bg-editor: #1e1e1e;--bg-statusbar: #007acc;--bg-input: #3c3c3c;--border: #3c3c3c;--border-tab: #252526;--text-primary: #cccccc;--text-secondary: #9d9d9d;--text-dim: #6d6d6d;--text-white: #ffffff;--accent: #007acc;--accent-hover: #1c9aed;--danger: #f14c4c;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Cascadia Code", "JetBrains Mono", "Fira Code", "Consolas", monospace;--radius-sm: 3px;--radius-md: 6px;--sidebar-w: 240px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden;background:var(--bg-workbench);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit;font-size:inherit}ul{list-style:none}.workbench{height:100%;display:flex;flex-direction:column}.workbench-body{flex:1;display:flex;overflow:hidden}.titlebar{height:30px;background:var(--bg-titlebar);display:flex;align-items:center;gap:0;flex-shrink:0;border-bottom:1px solid #262626;-webkit-user-select:none;user-select:none}.titlebar-left,.titlebar-right{display:flex;align-items:center;gap:8px;padding:0 10px;min-width:200px}.titlebar-right{justify-content:flex-end}.titlebar-logo{display:flex;align-items:center}.titlebar-name{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--text-primary);opacity:.9}.titlebar-center{flex:1;text-align:center;overflow:hidden}.titlebar-breadcrumb{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}.titlebar-actor{font-size:11px;color:var(--text-secondary);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.titlebar-btn{display:flex;align-items:center;gap:5px;background:transparent;border:none;color:var(--text-secondary);padding:3px 8px;border-radius:var(--radius-sm);font-size:11px;transition:background .1s,color .1s;white-space:nowrap}.titlebar-btn:hover{background:#ffffff1a;color:var(--text-primary)}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 6px 0 12px;flex-shrink:0}.sidebar-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary)}.sidebar-actions{display:flex;gap:1px;opacity:0;transition:opacity .12s}.sidebar-header:hover .sidebar-actions{opacity:1}.sidebar-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:none;color:var(--text-secondary);border-radius:var(--radius-sm);transition:background .1s,color .1s}.sidebar-btn:hover{background:#ffffff1a;color:var(--text-primary)}.sidebar-scroller{flex:1;overflow-y:auto;overflow-x:hidden;padding:2px 0 8px}.sidebar-scroller::-webkit-scrollbar{width:6px}.sidebar-scroller::-webkit-scrollbar-track{background:transparent}.sidebar-scroller::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.sidebar-scroller::-webkit-scrollbar-thumb:hover{background:#ffffff38}.tree-list{list-style:none}.tree-row{display:flex;align-items:center;height:22px;gap:2px;padding-right:6px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;color:var(--text-primary);font-size:13px;outline:none}.tree-row:hover{background:var(--bg-sidebar-hover)}.tree-row:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.tree-row--active{background:var(--bg-active)!important;color:var(--text-white)}.tree-row--active .icon-md{color:#79b8ff}.tree-row--active .icon-txt{color:#98c37d}.tree-row--active .icon-folder{color:#dcb67a}.tree-chevron{width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary)}.tree-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.icon-chevron{transition:transform .12s}.icon-chevron--open{transform:rotate(90deg)}.icon-folder{color:#dcb67a}.icon-md{color:#6ab0f5}.icon-txt{color:#8abf6f}.icon-zip-workspace{color:var(--text-secondary)}.sidebar-btn:hover .icon-zip-workspace{color:var(--text-primary)}.icon-zip-badge{fill:#007acc29;stroke:currentColor;stroke-width:1}.icon-zip-text{fill:currentColor;font-size:4.8px;font-family:var(--font-ui);font-weight:700;letter-spacing:.02em;text-transform:lowercase}.hidden-file-input{display:none}.tree-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:2px}.tree-label--empty{color:var(--text-dim);font-style:italic;font-size:12px}.tree-rename-input{flex:1;min-width:0;background:var(--bg-input);border:1px solid var(--accent);color:var(--text-primary);font:inherit;font-size:13px;padding:1px 4px;border-radius:2px;outline:none}.tree-actions{display:flex;opacity:0;transition:opacity .1s;margin-left:auto;gap:0}.tree-row:hover .tree-actions,.tree-row--active .tree-actions{opacity:1}.tree-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;color:var(--text-secondary);border-radius:var(--radius-sm);transition:background .1s,color .1s;flex-shrink:0}.tree-btn:hover{background:#ffffff24;color:var(--text-primary)}.tree-btn--danger:hover{background:#f14c4c33;color:var(--danger)}.editor-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-editor);min-width:0}.editor-toolbar{display:flex;align-items:stretch;border-bottom:1px solid var(--border);background:var(--bg-tab-bar)}.editor-toolbar .tabbar{flex:1;border-bottom:none}.editor-toolbox{width:44px;border-left:1px solid var(--border-tab);display:flex;align-items:center;justify-content:center;background:var(--bg-tab-bar)}.editor-toolbox-btn{width:26px;height:26px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s}.editor-toolbox-btn:hover{background:#ffffff1a;color:var(--text-primary)}.editor-toolbox-btn:disabled{opacity:.35;cursor:not-allowed;background:transparent;color:var(--text-dim)}.editor-toolbox-btn:disabled:hover{background:transparent;color:var(--text-dim)}.editor-toolbox-btn--active{background:#007acc40;color:#8fcfff}.editor-content{flex:1;min-height:0;display:flex;overflow:hidden}.editor-main{flex:1;min-width:0;min-height:0;display:flex}.tabbar{display:flex;background:var(--bg-tab-bar);flex-shrink:0;overflow-x:auto;overflow-y:hidden}.tabbar::-webkit-scrollbar{height:3px}.tabbar::-webkit-scrollbar-thumb{background:#ffffff1a}.tabbar-tab{display:flex;align-items:center;gap:7px;padding:0 12px 0 14px;height:35px;cursor:pointer;white-space:nowrap;border-right:1px solid var(--border-tab);background:var(--bg-tab-bar);color:var(--text-secondary);font-size:13px;flex-shrink:0;transition:background .1s;outline:none;position:relative}.tabbar-tab:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:transparent;transition:background .1s}.tabbar-tab:hover{background:#ffffff0a;color:var(--text-primary)}.tabbar-tab--active{background:var(--bg-tab-active)!important;color:var(--text-primary)!important}.tabbar-tab--active:before{background:var(--accent)}.tabbar-name{font-size:13px}.tabbar-close{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:transparent;border:none;color:var(--text-dim);border-radius:var(--radius-sm);transition:background .1s,color .1s,opacity .1s;opacity:0;flex-shrink:0}.tabbar-tab:hover .tabbar-close,.tabbar-tab--active .tabbar-close{opacity:1}.tabbar-close:hover{background:#ffffff26;color:var(--text-primary)}.editor-textarea{flex:1;resize:none;width:100%;background:var(--bg-editor);color:var(--text-primary);font-family:var(--font-mono);font-size:14px;line-height:1.75;padding:28px 48px;border:none;outline:none;-moz-tab-size:2;tab-size:2;caret-color:#aeafad}.editor-textarea::placeholder{color:var(--text-dim)}.editor-textarea::-webkit-scrollbar{width:10px}.editor-textarea::-webkit-scrollbar-track{background:transparent}.editor-textarea::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:5px}.editor-textarea::-webkit-scrollbar-thumb:hover{background:#ffffff38}.editor-folder-state{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;color:var(--text-secondary);text-align:center;padding:24px}.editor-folder-title{font-size:20px;font-weight:500;color:var(--text-primary)}.editor-folder-hint{max-width:360px;font-size:13px;color:var(--text-dim)}.editor-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text-secondary);padding:40px;text-align:center}.editor-welcome-icon{opacity:.8}.editor-welcome-title{font-size:22px;font-weight:300;letter-spacing:.06em;color:var(--text-primary)}.editor-welcome-hint{font-size:13px;color:var(--text-secondary);max-width:320px}.editor-welcome-kb{margin-top:8px;display:flex;flex-direction:column;gap:8px;align-items:center}.editor-welcome-kb-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-dim)}kbd{display:inline-block;padding:2px 7px;font-size:11px;font-family:var(--font-ui);background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap}.statusbar{height:22px;background:var(--bg-statusbar);display:flex;align-items:center;justify-content:space-between;padding:0 4px;flex-shrink:0;color:#fffffff2;font-size:12px;-webkit-user-select:none;user-select:none}.statusbar-left,.statusbar-right{display:flex;align-items:center}.statusbar-item{display:flex;align-items:center;gap:4px;padding:0 8px;height:22px;white-space:nowrap;cursor:default;transition:background .1s}.statusbar-item:hover{background:#ffffff1f}.statusbar-sync{display:flex;align-items:center;gap:5px;padding:0 8px;height:22px;font-size:12px;opacity:.75}.statusbar-sync--on{opacity:1}.statusbar-loading{opacity:.7;font-style:italic}.statusbar-sep{width:1px;height:12px;background:#ffffff40;margin:0 2px}.splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--bg-workbench)}.splash-logo{display:flex}.splash-title{font-size:30px;font-weight:300;letter-spacing:.1em;color:var(--text-primary)}.splash-subtitle{font-size:13px;color:var(--text-secondary);margin-top:-8px}.splash-btn{margin-top:6px;padding:8px 28px;background:var(--accent);color:var(--text-white);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;transition:background .15s}.splash-btn:hover{background:var(--accent-hover)}.splash-spinner{width:22px;height:22px;border:2px solid rgba(255,255,255,.15);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}.splash-hint{font-size:13px;color:var(--text-secondary)}@keyframes spin{to{transform:rotate(360deg)}}.ctx-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100}.ctx-menu{position:fixed;z-index:101;background:#2d2d2d;border:1px solid #454545;border-radius:var(--radius-md);padding:4px 0;min-width:180px;box-shadow:0 6px 24px #0000008c;-webkit-user-select:none;user-select:none;animation:ctx-appear .08s ease}@keyframes ctx-appear{0%{opacity:0;transform:scale(.97) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.ctx-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 14px 6px 10px;background:transparent;border:none;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer;transition:background .07s;white-space:nowrap}.ctx-item:hover{background:#094771;color:var(--text-white)}.ctx-item:hover .ctx-item-icon{color:inherit}.ctx-item--danger{color:#f4a6a6}.ctx-item--danger:hover{background:#f14c4c2e;color:#ff7b7b}.ctx-item-icon{display:flex;align-items:center;width:16px;flex-shrink:0;color:var(--text-secondary)}.ctx-sep{height:1px;background:#ffffff14;margin:4px 0}.meta-panel{width:320px;min-width:280px;max-width:40vw;border-left:1px solid var(--border);background:#252526;display:flex;flex-direction:column;min-height:0}.meta-panel-header{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 12px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0;background:#2d2d2d}.meta-panel-header-icon{display:flex;align-items:center;color:#6ab0f5}.meta-panel-title{flex:1;font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta-panel-close-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;color:var(--text-secondary);border-radius:var(--radius-sm);flex-shrink:0;transition:background .1s,color .1s}.meta-panel-close-btn:hover{background:#ffffff1a;color:var(--text-primary)}.meta-panel-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:5px}.meta-panel-body::-webkit-scrollbar{width:6px}.meta-panel-body::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.meta-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-top:14px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.06)}.meta-section-label:first-child{margin-top:0}.meta-row{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:8px;min-height:28px}.meta-label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.meta-input{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;padding:4px 8px;width:100%;outline:none;transition:border-color .1s,background .1s}.meta-input:focus{border-color:var(--accent);background:#007acc0f}.meta-input--ro{color:var(--text-secondary);cursor:default;background:transparent;border-color:transparent}.meta-panel-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.07);flex-shrink:0;background:#2d2d2d}.meta-btn{padding:5px 16px;font-size:13px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background .1s,border-color .1s,color .1s}.meta-btn--primary{background:var(--accent);color:var(--text-white)}.meta-btn--primary:hover{background:var(--accent-hover)}.meta-btn--ghost{background:transparent;border-color:#ffffff26;color:var(--text-secondary)}.meta-btn--ghost:hover{background:#ffffff0f;color:var(--text-primary);border-color:#ffffff40}
