body{display:flex;flex-direction:column;height:100vh;overflow:hidden}.tree-header{padding:12px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0}.tree-header h1{font-size:1.1rem;font-weight:700}.tree-header h1 span{color:var(--accent)}.tree-header .folder-title{font-size:13px;color:var(--text-muted);white-space:nowrap}.tree-header .folder-desc{font-size:12px;color:var(--text-muted);opacity:.6;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1}.back-link{color:var(--text-muted);text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.03em;padding:4px 10px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);transition:color .15s,background .15s,border-color .15s;white-space:nowrap}.back-link:hover{color:var(--accent);background:var(--surface-hover);border-color:var(--accent)}.workspace{display:flex;flex:1;overflow:hidden}.panel-tree{width:280px;flex-shrink:0;overflow-y:auto;padding:8px 0}.divider{width:6px;flex-shrink:0;cursor:col-resize;position:relative;background:0 0}.divider::after{content:'';position:absolute;top:0;bottom:0;left:2px;width:1px;background:var(--border);transition:background .15s,left .1s,width .1s}.divider.dragging::after,.divider:hover::after{left:1px;width:3px;background:var(--accent)}.tree-node{display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px;font-size:13px}.tree-node:hover{background:var(--surface-hover)}.tree-node.selected{background:rgba(79,142,247,.15);color:var(--accent)}.tree-node.in-selection{background:rgba(79,142,247,.1);outline:rgba(79,142,247,.4) solid 1px}.tree-node.selected.in-selection{background:rgba(79,142,247,.2);outline:1px solid var(--accent)}.tree-node.drop-target{background:rgba(79,142,247,.2);outline:1px solid var(--accent);color:var(--accent)}.panel-tree.drop-target{outline:1px solid var(--accent);outline-offset:-2px;background:rgba(79,142,247,.06)}.tree-node .toggle{width:16px;text-align:center;color:var(--text-muted);flex-shrink:0;font-size:14px;line-height:1;transition:transform .15s,color .1s;cursor:pointer;transform:rotate(0)}.tree-node .toggle:hover{color:var(--text)}.tree-node.open>.toggle{transform:rotate(90deg)}.tree-node .icon{flex-shrink:0;color:var(--text-muted)}.tree-node.file .icon{color:var(--accent);opacity:.7}.tree-children{padding-left:18px}.drag-badge{position:fixed;top:-200px;left:0;background:var(--accent);color:#fff;font-size:12px;font-family:var(--font);padding:4px 10px;border-radius:12px;pointer-events:none;white-space:nowrap}.panel-content{flex:1;overflow:hidden;position:relative}.viewer{display:none;width:100%;height:100%;overflow-y:auto;padding:20px 24px}.viewer.active{display:flex;flex-direction:column;gap:12px}.viewer.viewer-center{align-items:center;justify-content:center;gap:16px}.viewer-message{color:var(--text-muted);font-size:13px;text-align:center}#viewer-text{padding:0;flex-direction:column;gap:0}.file-path-bar{padding:3px 16px;font-size:11px;color:var(--text-muted);opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--border);flex-shrink:0}.editor-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:6px 16px;border-bottom:1px solid var(--border);flex-shrink:0;font-size:12px}.save-status{color:var(--accent)}.save-hint{color:var(--text-muted)}.encoding-status{color:var(--text-muted);font-size:11px;border:1px solid var(--border);border-radius:3px;padding:1px 5px}.edit-mode-btn{background:0 0;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:11px;font-family:var(--font);padding:2px 8px;cursor:pointer;transition:color .15s,border-color .15s,background .15s;margin-right:auto}.edit-mode-btn:hover{color:var(--text);border-color:var(--text-muted);background:var(--surface-hover)}.edit-mode-btn.is-editable{color:var(--accent);border-color:var(--accent)}.edit-mode-btn.is-editable:hover{color:var(--text);border-color:var(--text-muted);background:var(--surface-hover)}.editor-container{flex:1;overflow:hidden;padding:16px;position:relative}.editor-readonly-toast{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:#e8eaf0;border:1px solid #c0c4d0;color:#333;font-size:12px;font-family:var(--font);padding:7px 16px;border-radius:var(--radius);box-shadow:0 4px 12px rgba(0,0,0,.25);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s;z-index:10}.editor-readonly-toast.visible{opacity:1}#image-body{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius)}#pdf-body{width:100%;flex:1;border:none;border-radius:var(--radius)}.hl-link{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(79,142,247,0.4);cursor:pointer}.hl-link:hover{text-decoration-color:var(--accent)}.hl-copied{color:#4fcf8a;text-decoration-color:#4fcf8a}.editor-insert-menu{display:none;position:fixed;z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;min-width:160px;box-shadow:0 4px 16px rgba(0,0,0,.4)}.editor-insert-menu.open{display:block}.eim-item{display:block;width:100%;text-align:left;background:0 0;border:none;border-radius:0;padding:7px 14px;font-size:13px;font-family:var(--font);color:var(--text);cursor:pointer}.eim-item:hover{filter:brightness(1.2);background:var(--surface-hover)}.eim-separator{height:1px;background:var(--border);margin:4px 0}.context-menu{display:none;position:fixed;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;min-width:160px;box-shadow:0 4px 16px rgba(0,0,0,.4)}.context-menu.open{display:block}.ctx-item{display:block;width:100%;text-align:left;background:0 0;border:none;border-radius:0;padding:7px 14px;font-size:13px;font-family:var(--font);color:var(--text);cursor:pointer}.ctx-item:hover{background:var(--surface-hover)}.ctx-item.ctx-danger{color:var(--danger)}.ctx-item.ctx-danger:hover{background:rgba(224,92,92,.1)}.ctx-item:disabled{color:var(--text-muted);cursor:default}.ctx-item:disabled:hover{background:0 0}.ctx-separator{height:1px;background:var(--border);margin:4px 0}.ctx-has-sub{position:relative;display:flex;align-items:center;justify-content:space-between;padding:7px 14px;font-size:13px;font-family:var(--font);color:var(--text);cursor:pointer;user-select:none;gap:8px}.ctx-has-sub:hover{background:var(--surface-hover)}.ctx-sub-arrow{color:var(--text-muted);font-size:10px;flex-shrink:0}.ctx-submenu{display:none;position:absolute;left:100%;top:-4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;min-width:160px;box-shadow:0 4px 16px rgba(0,0,0,.4);z-index:201}.ctx-has-sub:hover .ctx-submenu{display:block}#viewer-folder{padding:0}.folder-viewer-header{display:flex;gap:6px;padding:16px 20px 8px;flex-shrink:0}.folder-file-list-wrap{padding:0 20px 20px}.folder-mode-btn{padding:3px 12px;border-radius:var(--radius);border:1px solid var(--border);background:0 0;color:var(--text-muted);font-size:12px;cursor:pointer}.folder-mode-btn:hover{background:var(--surface-hover);color:var(--text)}.folder-mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.folder-file-list{list-style:none;display:flex;flex-direction:column;gap:4px}.folder-file-list li{padding:8px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);font-size:13px;color:var(--text-muted)}.folder-file-list li.size-mode{display:grid;grid-template-columns:1fr auto auto;gap:0 16px;align-items:center}.folder-size-col{font-size:12px;color:var(--text-muted);text-align:right;white-space:nowrap}.folder-pct-col{font-size:12px;color:var(--text-muted);text-align:right;white-space:nowrap;min-width:52px}