.file-tree{padding:var(--space-2) 0;outline:none}.tree-node{user-select:none;overflow:hidden}.tree-node.hidden{display:none}.tree-node-header{display:flex;align-items:center;gap:var(--space-1-5);padding:5px var(--space-3);cursor:pointer;border-radius:0;position:relative;transition:background-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.tree-node-header:hover{background:var(--color-surface-hover)}.tree-node-header.active{background:var(--color-surface-active)}.tree-node-header.focused,.tree-node-header.active.focused{box-shadow:inset 2px 0 0 var(--color-text-tertiary)}.tree-arrow{position:absolute;top:0;bottom:0;display:inline-flex;align-items:center;justify-content:center;width:16px;color:var(--color-text-tertiary);transition:transform var(--duration-fast) var(--ease-out)}.tree-arrow svg{width:14px;height:14px}.tree-node.expanded>.tree-node-header .tree-arrow{transform:rotate(90deg)}.tree-icon{width:16px;height:16px;flex-shrink:0}:root[data-theme=dark] .tree-icon[src*=folder]{filter:brightness(1.3)}:root[data-theme=dark] .tree-icon[src$="default.svg"]{filter:invert(.8)}.tree-name{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.tree-node.folder>.tree-node-header .tree-name{font-weight:var(--weight-medium)}.tree-node.file:not(.previewable-file) .tree-name{color:var(--color-text-tertiary);opacity:.7}.tree-node.opens-external>.tree-node-header .tree-name:after{content:"\2197";margin-left:6px;font-size:var(--text-xs);color:var(--color-text-tertiary);opacity:.6}.tree-node.opens-external>.tree-node-header:hover .tree-name:after{opacity:1}.tree-node-children{display:none}.tree-node.expanded>.tree-node-children{display:block}.tree-node.expanded>.tree-node-children>.tree-node-children-inner{transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}@starting-style{.tree-node.expanded>.tree-node-children>.tree-node-children-inner{opacity:0;transform:translateY(-4px)}}.tree-count{font-family:var(--font-sans);font-size:var(--text-2xs);color:var(--color-text-tertiary);margin-left:auto;flex-shrink:0;padding-right:var(--space-1)}.tree-node-actions{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:2px;padding-left:var(--space-1)}.tree-node-remove,.tree-node-pin{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--color-text-tertiary);border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:opacity var(--duration-fast) ease,background-color var(--duration-fast) ease,color var(--duration-fast) ease}.tree-node-header:hover .tree-node-remove,.tree-node-header:focus-within .tree-node-remove,.tree-node-header:hover .tree-node-pin,.tree-node-header:focus-within .tree-node-pin{opacity:1}.tree-node-remove:hover,.tree-node-pin:hover{background:var(--color-surface-hover);color:var(--color-text)}.tree-node-pin.pinned{opacity:1;color:var(--color-accent)}.tree-node-pin.pinned svg{fill:currentColor}.tree-node-pin.pinned:hover{color:var(--color-accent)}.tree-node:not(.pasted-file)+.tree-node.pasted-file{margin-top:var(--space-1);border-top:1px solid var(--color-border);padding-top:var(--space-1)}.tree-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-10);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-tertiary);gap:var(--space-2-5);animation:fadeIn var(--duration-slow) var(--ease-out)}.tree-loading .spinner{width:18px;height:18px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.tree-node{transition:none!important;max-height:none!important}.tree-node.hidden{display:none;max-height:none!important}.tree-node-children{transition-duration:0ms!important}.tree-node-children-inner{transition-duration:0ms!important;transition-delay:0ms!important}.tree-arrow{transition-duration:0ms!important}.tree-loading .spinner{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}}
