/* File Manager app styles */ .app-files { display: flex; flex-direction: column; height: 100%; } .files-toolbar { display: flex; align-items: center; gap: 8px; padding: 6px 12px; background: var(--bg-titlebar); border-bottom: 1px solid var(--border-structural); min-height: 44px; } .files-breadcrumb { flex: 1; display: flex; align-items: center; gap: 2px; overflow-x: auto; -webkit-overflow-scrolling: touch; } .breadcrumb-segment { padding: 4px 6px; background: none; border: none; border-radius: var(--radius-sm); color: var(--text-secondary); font-family: var(--font-mono); font-size: 12px; cursor: pointer; white-space: nowrap; } .breadcrumb-segment:hover { background: var(--accent-hover); color: var(--text-primary); } .breadcrumb-segment:last-child { color: var(--text-primary); } .breadcrumb-sep { color: var(--text-muted); font-size: 12px; } .files-action-btn { width: 36px; height: 36px; background: none; border: none; border-radius: var(--radius-sm); color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; } .files-action-btn:hover { background: var(--accent-hover); color: var(--text-primary); } /* File body — dual pane */ .files-body { flex: 1; display: flex; overflow: hidden; } .files-sidebar { width: 180px; min-width: 160px; background: var(--bg-dock); border-right: 1px solid var(--border-structural); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 8px 0; } .sidebar-heading { font-family: var(--font-mono); font-size: 10px; font-weight: 500; color: var(--text-muted); letter-spacing: 1px; padding: 8px 12px 4px; } .sidebar-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; min-height: var(--tap-min); background: none; border: none; width: 100%; text-align: left; color: var(--text-primary); font-family: var(--font-mono); font-size: 12px; cursor: pointer; border-radius: 0; } .sidebar-item:hover { background: var(--accent-hover); } .sidebar-item.active { background: var(--accent-dim); color: var(--accent); } .sidebar-icon { font-size: 14px; width: 20px; text-align: center; flex-shrink: 0; } /* File list panel */ .files-list-panel { flex: 1; display: flex; flex-direction: column; min-width: 0; } .files-list-header { display: grid; grid-template-columns: 1fr 80px 140px 90px; padding: 0 12px; height: 32px; align-items: center; background: var(--bg-titlebar); border-bottom: 1px solid var(--border-structural); font-family: var(--font-mono); font-size: 10px; font-weight: 500; color: var(--text-muted); letter-spacing: 0.5px; } .files-list { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; } .file-row { display: grid; grid-template-columns: 1fr 80px 140px 90px; padding: 0 12px; min-height: 48px; align-items: center; border-bottom: 1px solid var(--border-structural); cursor: pointer; transition: background var(--transition-fast); } .file-row:hover { background: var(--accent-hover); } .file-row.selected { background: var(--accent-dim); } .file-name { display: flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 13px; color: var(--text-primary); overflow: hidden; } .file-name span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .file-icon { font-size: 16px; width: 20px; text-align: center; flex-shrink: 0; color: var(--text-secondary); } .file-icon.dir { color: var(--accent); } .file-size, .file-modified, .file-perms { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); } /* Context menu */ .file-context-menu { position: fixed; z-index: 500; background: var(--bg-titlebar); border: 1px solid var(--border-structural); border-radius: var(--radius-md); padding: 4px; min-width: 160px; box-shadow: 0 8px 32px rgba(0,0,0,0.4); } .context-item { display: flex; align-items: center; gap: 8px; padding: 10px 12px; min-height: 40px; background: none; border: none; width: 100%; text-align: left; color: var(--text-primary); font-family: var(--font-ui); font-size: 13px; cursor: pointer; border-radius: var(--radius-sm); } .context-item:hover { background: var(--accent-hover); } .context-item.danger { color: var(--status-red); } .context-sep { height: 1px; background: var(--border-structural); margin: 4px 8px; }