:root{--bg:#1e1e1e;--bg-alt:#252526;--bg-hover:#2a2d2e;--border:#3c3c3c;--text:#ccc;--text-dim:#8a8a8a;--accent:#007acc;--accent-soft:#094771;--tab-active:#1e1e1e;--tab-inactive:#2d2d2d;--rainbow-1:#61afef;--rainbow-2:#e5c07b;--rainbow-3:#98c379;--rainbow-4:#c678dd;--rainbow-5:#e06c75;--scrollbar-thumb:#4d4d4d;--scrollbar-thumb-hover:#6b6b6b}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,Segoe UI,sans-serif;font-size:13px}#app{height:100vh;display:flex}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border:3px solid var(--bg);background-clip:padding-box;border-radius:7px}#grid-container::-webkit-scrollbar-thumb{border-color:var(--bg-alt)}#file-tree-wrap::-webkit-scrollbar-thumb{border-color:var(--bg-alt)}#recent-list::-webkit-scrollbar-thumb{border-color:var(--bg-alt)}#browse-list::-webkit-scrollbar-thumb{border-color:var(--bg-alt)}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:0 0}#sidebar{background:var(--bg-alt);border-right:1px solid var(--border);flex-direction:column;width:280px;min-width:180px;max-width:640px;display:flex;overflow:hidden}#sidebar-resizer{cursor:col-resize;background:0 0;flex:0 0 4px;width:4px;position:relative}#sidebar-resizer:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:1px}#sidebar-resizer:hover:after,#sidebar-resizer.active:after{background:var(--accent)}#folder-picker{border-bottom:1px solid var(--border);gap:4px;padding:8px;display:flex}.hidden{display:none!important}#open-folder-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:2px;flex:1;padding:6px 10px;font-size:13px}#open-folder-btn:disabled{opacity:.4;cursor:default}#unsupported-browser-note{color:var(--text-dim);background:var(--bg);border:1px solid var(--border);border-radius:4px;margin:8px;padding:10px 12px;font-size:12px;line-height:1.5}#reconnect-banner{margin:8px}.reconnect-btn{background:var(--accent-soft,#0095ff26);border:1px solid var(--accent);width:100%;color:var(--text);cursor:pointer;text-align:left;border-radius:4px;padding:8px 10px;font-size:12px}.reconnect-btn:hover{background:var(--bg-hover)}.perm-lock{opacity:.7;margin-left:4px;font-size:10px}#open-folder-btn:hover{background:#0086d1}#recent-folders,#file-tree-wrap{padding:8px;overflow-y:auto}#recent-folders{border-bottom:1px solid var(--border);max-height:160px}#file-tree-wrap{flex:1}h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin:4px 0 8px;font-size:11px}.section-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:2px 0;display:flex}.section-header h3{margin:4px 0}.section-arrow{color:var(--text-dim);width:10px;font-size:9px;transition:transform .1s;display:inline-block}.section-header:hover .section-arrow,.section-header:hover h3{color:var(--text)}#recent-list.collapsed{display:none}ul{margin:0;padding:0;list-style:none}#recent-list li,#file-tree li{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:2px;align-items:center;gap:6px;padding:4px 6px;display:flex;overflow:hidden}#recent-list li:hover{background:var(--bg-hover)}.file-icon{opacity:.8;font-size:11px}.remove-recent{opacity:.5;cursor:pointer;margin-left:auto}.remove-recent:hover{opacity:1}#file-tree{padding-top:2px}.tree-root,.tree-children{margin:0;padding:0;list-style:none}.tree-row{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:2px;align-items:center;gap:5px;padding:3px 6px 3px 4px;display:flex;overflow:hidden}.tree-row:hover{background:var(--bg-hover)}.tree-label{text-overflow:ellipsis;overflow:hidden}.tree-arrow{color:var(--text-dim);text-align:center;flex:0 0 10px;width:10px;font-size:9px}.tree-icon{flex:0 0 16px;display:block}li.tree-file.active>.tree-row{background:var(--accent-soft)}#editor-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}#tab-bar{background:var(--bg-alt);border-bottom:1px solid var(--border);min-height:32px;display:flex;overflow-x:auto}.tab{background:var(--tab-inactive);border-right:1px solid var(--border);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.tab.active{background:var(--tab-active);border-bottom:1px solid var(--accent)}.tab .close-tab{opacity:.5;border-radius:2px;padding:0 2px}.tab .close-tab:hover{opacity:1;background:var(--bg-hover)}.context-menu{z-index:200;background:var(--bg-alt);border:1px solid var(--border);border-radius:4px;min-width:180px;padding:4px 0;font-size:12.5px;position:fixed;box-shadow:0 4px 18px #00000080}.context-menu-item{cursor:pointer;white-space:nowrap;padding:6px 14px}.context-menu-item:hover{background:var(--accent-soft)}.context-menu-item.disabled{color:var(--text-dim);cursor:default}.context-menu-item.disabled:hover{background:0 0}.context-menu-sep{background:var(--border);height:1px;margin:4px 0}#grid-container{flex:1;position:relative;overflow:auto}#empty-state{color:var(--text-dim);text-align:center;padding:40px}table.grid{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px}table.grid th,table.grid td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:4px 10px}table.grid th.checkbox-col,table.grid td.checkbox-col{text-align:center;background:var(--bg-alt);z-index:1;width:28px;padding:4px 8px;position:sticky;left:0}table.grid td.checkbox-col{background:var(--bg)}table.grid tbody tr:nth-child(2n) td.checkbox-col{background:#232323}table.grid tbody tr:hover td.checkbox-col{background:var(--bg-hover)}table.grid input[type=checkbox]{cursor:pointer}table.grid thead th{background:var(--bg-alt);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1;position:sticky;top:0}table.grid thead th.checkbox-col{z-index:2;cursor:default}table.grid thead th:hover:not(.checkbox-col){background:var(--bg-hover)}table.grid tbody tr:nth-child(2n){background:#232323}table.grid tbody tr:hover{background:var(--bg-hover)}table.grid th:nth-child(6n+3),table.grid td:nth-child(6n+3){color:var(--rainbow-1)}table.grid th:nth-child(6n+4),table.grid td:nth-child(6n+4){color:var(--rainbow-2)}table.grid th:nth-child(6n+5),table.grid td:nth-child(6n+5){color:var(--rainbow-3)}table.grid th:nth-child(6n+6),table.grid td:nth-child(6n+6){color:var(--rainbow-4)}table.grid th:nth-child(6n+7),table.grid td:nth-child(6n+7){color:var(--rainbow-5)}#filter-bar{background:var(--bg-alt);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}#filter-bar .filter-input{background:var(--bg);border:1px solid var(--border);min-width:160px;color:var(--text);border-radius:2px;flex:1;padding:4px 8px}#filter-bar .row-count{color:var(--text-dim);white-space:nowrap;align-self:center;padding:0 4px}.toolbar-btns{align-items:center;gap:6px;display:flex}.toolbar-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:2px;padding:4px 9px;font-size:12px}.toolbar-btn:hover:not(:disabled){background:var(--bg-hover)}.toolbar-btn:disabled{opacity:.4;cursor:default}.columns-dropdown{position:relative}.columns-panel{z-index:50;background:var(--bg-alt);border:1px solid var(--border);border-radius:4px;min-width:180px;max-height:320px;padding:6px 0;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto;box-shadow:0 4px 18px #00000080}.columns-panel-item{cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:5px 12px;font-size:12px;display:flex}.columns-panel-item:hover{background:var(--bg-hover)}.columns-panel-item input{cursor:pointer}.columns-panel-footer{border-top:1px solid var(--border);justify-content:space-between;gap:6px;margin-top:4px;padding:6px 10px 2px;display:flex}.columns-panel-footer button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11.5px}.columns-panel-footer button:hover{text-decoration:underline}.tree-folder{flex-direction:column!important;align-items:flex-start!important;display:flex!important}
