:root{--bg-primary:#FAFBFC;--bg-secondary:#FFFFFF;--bg-tertiary:#F1F3F5;--border-color:#E1E4E8;--border-light:#EBEDEF;--accent:#1565C0;--accent-hover:#0D47A1;--accent-light:#E3F2FD;--accent-subtle:#F0F6FF;--text-primary:#24292E;--text-secondary:#586069;--text-muted:#8B949E;--danger:#D73A49;--danger-hover:#CB2431;--danger-bg:#FFEEF0;--success:#28A745;--success-bg:#DCFFE4;--warning:#F9A825;--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 12px rgba(0,0,0,0.1);--shadow-lg:0 8px 24px rgba(0,0,0,0.12);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--sidebar-width:280px;--header-height:52px;--transition:0.2s ease;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}*,::after,::before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:var(--font-family);font-size:14px;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:inherit;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn:hover{background:var(--bg-tertiary);border-color:#ccd1d5}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);border-color:var(--border-color)}.btn-ghost{background:0 0;border-color:transparent;color:rgba(255,255,255,.85)}.btn-ghost:hover{background:rgba(255,255,255,.15);color:#fff}.btn-sm{padding:5px 10px;font-size:12px}.btn-outline{background:0 0}.btn-outline:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-sm);background:0 0;cursor:pointer;color:rgba(255,255,255,.7);transition:all var(--transition)}.btn-icon:hover{background:rgba(255,255,255,.15);color:#fff}.btn.has-changes{animation:1.5s infinite pulse-save}@keyframes pulse-save{0%,100%{box-shadow:0 0 0 0 rgba(21,101,192,.3)}50%{box-shadow:0 0 0 4px rgba(21,101,192,.15)}}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1565c0 0,#0d47a1 50%,#1a237e 100%)}.login-card{background:var(--bg-secondary);padding:48px 40px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;max-width:400px;width:90%}.login-logo{width:120px;height:auto;margin-bottom:16px}.login-title{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.login-subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:15px}.login-btn-container{display:flex;justify-content:center}.app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 16px;background:#1565c0;border-bottom:none;z-index:100;flex-shrink:0}.header-left{display:flex;align-items:center;gap:8px}.app-logo{width:28px;height:28px;object-fit:contain}.app-name{font-size:17px;font-weight:700;color:#fff}.header-right{display:flex;align-items:center;gap:10px}.user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.user-name{font-size:13px;color:rgba(255,255,255,.85)}.btn-back-mobile{display:none}.app-main{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:12px;border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:8px}.search-box{display:flex;align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:0 8px;transition:border-color var(--transition)}.search-box:focus-within{border-color:var(--accent);background:var(--bg-secondary)}.search-icon{flex-shrink:0;color:var(--text-muted)}.search-input{flex:1;border:none;background:0 0;padding:7px 8px;font-size:13px;font-family:inherit;color:var(--text-primary);outline:0}.search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:0 0;color:var(--text-muted);cursor:pointer;font-size:12px;border-radius:50%}.search-clear:hover{background:var(--border-color);color:var(--text-primary)}.sidebar-actions{display:flex;gap:6px}.tree-container{flex:1;overflow-y:auto;padding:4px 0}.tree-container::-webkit-scrollbar{width:6px}.tree-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.tree-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.tree-item{display:flex;align-items:center;padding:5px 12px;cursor:pointer;transition:background var(--transition);user-select:none;gap:4px;min-height:32px}.tree-item:hover{background:var(--bg-tertiary)}.tree-item.active{background:var(--accent-light);color:var(--accent)}.tree-toggle{width:16px;font-size:10px;color:var(--text-muted);flex-shrink:0;text-align:center;cursor:pointer}.tree-icon{font-size:14px;flex-shrink:0}.tree-name{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-menu-btn{opacity:0;border:none;background:0 0;cursor:pointer;color:var(--text-muted);font-size:16px;padding:2px 4px;border-radius:var(--radius-sm);flex-shrink:0;transition:all var(--transition)}.tree-item:hover .tree-menu-btn{opacity:1}.tree-menu-btn:hover{background:var(--border-color);color:var(--text-primary)}.tree-children{padding-left:16px}.tree-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:13px}.editor-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.editor-placeholder{display:flex;align-items:center;justify-content:center;flex:1}.placeholder-content{text-align:center;color:var(--text-muted)}.placeholder-logo{width:120px;height:auto;opacity:.4;margin-bottom:16px}.editor-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-light);flex-shrink:0}.editor-filename{font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.editor-body .tox.tox-tinymce{flex:1;border:none!important;border-radius:0!important}.editor-plain{flex:1;width:100%;border:none;padding:16px;font-family:"SF Mono","Fira Code","Cascadia Code",Consolas,monospace;font-size:14px;line-height:1.6;color:var(--text-primary);background:var(--bg-secondary);resize:none;outline:0}.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1000;align-items:center;justify-content:center;backdrop-filter:blur(2px)}.modal-overlay.active{display:flex}.modal{background:var(--bg-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);width:90%;max-width:420px;padding:24px;animation:.2s modal-in}@keyframes modal-in{from{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-title{font-size:16px;font-weight:600;margin-bottom:12px}.modal-body{margin-bottom:20px;color:var(--text-secondary);font-size:14px}.modal-body p{margin-bottom:8px}.modal-input{width:100%;padding:9px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;color:var(--text-primary);outline:0;transition:border-color var(--transition)}.modal-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(21,101,192,.1)}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.move-list{max-height:300px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.move-item{display:block;width:100%;padding:10px 12px;border:none;background:0 0;text-align:left;font-size:13px;font-family:inherit;color:var(--text-primary);cursor:pointer;transition:background var(--transition)}.move-item:hover{background:var(--accent-light)}.move-item+.move-item{border-top:1px solid var(--border-light)}.context-menu{position:fixed;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:180px;padding:4px;z-index:500;animation:.15s ctx-in}@keyframes ctx-in{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:0 0;font-size:13px;font-family:inherit;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition)}.context-menu-item:hover{background:var(--bg-tertiary)}.context-menu-item.danger{color:var(--danger)}.context-menu-item.danger:hover{background:var(--danger-bg)}.context-menu-icon{font-size:14px;width:18px;text-align:center}.context-menu-separator{height:1px;background:var(--border-light);margin:4px 8px}.loading-overlay{display:none;position:fixed;inset:0;background:rgba(255,255,255,.6);z-index:2000;align-items:center;justify-content:center;backdrop-filter:blur(1px)}.loading-overlay.active{display:flex}.spinner{width:36px;height:36px;border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;bottom:20px;right:20px;z-index:3000;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:13px;transform:translateX(120%);transition:transform .3s;border-left:3px solid var(--accent)}.toast.show{transform:translateX(0)}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-icon{font-size:16px;flex-shrink:0}@media (max-width:768px){.sidebar{position:fixed;inset:var(--header-height) 0 0 0;width:100%;min-width:unset;z-index:50;transform:translateX(0);transition:transform .3s}.editor-area{position:fixed;inset:var(--header-height) 0 0 0;z-index:49;transform:translateX(100%);transition:transform .3s}body.file-open .sidebar{transform:translateX(-100%)}body.file-open .editor-area{transform:translateX(0)}.btn-back-mobile{display:flex}.app-name,.user-name{display:none}}@media (max-width:480px){.login-card{padding:32px 24px}.login-title{font-size:24px}}