:root { color-scheme: dark; --bg: #0a0a0a; --surface: #141414; --surface-hover: #1f1f1f; --border: #2a2a2a; --text-primary: #f0f0f0; --text-secondary: #888888; --accent: #21D198; --accent-hover: #1cb582; --success: #21D198; --warning: #f59e0b; --error: #ef4444; --font: 'Inter', system-ui, -apple-system, sans-serif; } body { margin: 0; padding: 0; background-color: var(--bg); color: var(--text-primary); font-family: var(--font); display: flex; height: 100vh; overflow: hidden; } #sidebar { width: 250px; background: var(--surface); border-right: 1px solid var(--border); display: flex; flex-direction: column; } .sidebar-header { padding: 1rem; font-size: 1.25rem; font-weight: bold; border-bottom: 1px solid var(--border); display: flex; align-items: center; color: var(--accent); } .conn-list { flex: 1; overflow-y: auto; padding: 1rem 0; } .conn-item { padding: 0.75rem 1rem; cursor: pointer; display: flex; align-items: center; transition: background 0.2s; } .conn-item:hover { background: var(--surface-hover); } .conn-item.active { border-left: 3px solid var(--accent); background: var(--surface-hover); } .badge { padding: 0.15rem 0.4rem; border-radius: 4px; font-size: 0.6rem; font-weight: 600; text-transform: uppercase; margin-right: 0.5rem; background: rgba(33, 209, 152, 0.1); color: var(--accent); border: 1px solid rgba(33, 209, 152, 0.3); } #main-area { flex: 1; display: flex; flex-direction: column; position: relative; } #toolbar { height: 60px; border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 1rem; background: var(--surface); } #breadcrumb { flex: 1; font-size: 0.9rem; color: var(--text-secondary); } .crumb { cursor: pointer; } .crumb:hover { color: var(--text-primary); text-decoration: underline; } #browser-pane { flex: 1; overflow-y: auto; padding: 1rem; } table { width: 100%; border-collapse: collapse; font-size: 0.875rem; } th, td { padding: 0.75rem; text-align: left; border-bottom: 1px solid var(--border); } th { color: var(--text-secondary); font-weight: 500; text-transform: uppercase; font-size: 0.75rem; } tbody tr { transition: background 0.2s; cursor: pointer; } tbody tr:hover { background: var(--surface-hover); } .btn { background: var(--accent); color: #000; border: 1px solid var(--accent); padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer; font-family: inherit; font-weight: 600; font-size: 0.875rem; transition: all 0.2s ease; } .btn:hover { background: var(--accent-hover); box-shadow: 0 0 10px rgba(33, 209, 152, 0.3); } #transfer-tray { position: absolute; bottom: 0; left: 0; right: 0; background: var(--surface); border-top: 1px solid var(--border); max-height: 200px; overflow-y: auto; padding: 1rem; display: none; } .transfer-item { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0; border-bottom: 1px solid var(--border); } .progress-bar { flex: 1; height: 8px; background: #000; border-radius: 4px; margin: 0 1rem; overflow: hidden; } .progress-fill { height: 100%; background: var(--accent); width: 0%; } .transfer-meta { font-size: 0.75rem; color: var(--text-secondary); width: 200px; text-align: right; } .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.7); display: none; align-items: center; justify-content: center; z-index: 1000; } .modal-content { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 2rem; width: 500px; max-width: 90vw; box-shadow: 0 10px 25px rgba(0,0,0,0.5); } .form-group { margin-bottom: 1rem; display: flex; flex-direction: column; } .form-row { display: flex; gap: 1rem; } label { font-size: 0.8rem; color: var(--text-secondary); margin-bottom: 0.25rem; text-transform: uppercase; letter-spacing: 0.05em; } input[type="text"], input[type="password"], input[type="number"], select { background: #0a0a0a; border: 1px solid var(--border); color: var(--text-primary); padding: 0.5rem; border-radius: 4px; font-family: inherit; font-size: 0.9rem; width: 100%; box-sizing: border-box; } input:focus, select:focus { outline: none; border-color: var(--accent); } select option { background-color: var(--surface); color: var(--text-primary); } .btn-danger { background: transparent; color: var(--error); border: 1px solid var(--error); } .btn-danger:hover { background: rgba(239, 68, 68, 0.1); box-shadow: none; } /* Context Menu */ .context-menu { position: absolute; background: var(--surface); border: 1px solid var(--border); box-shadow: 0 4px 6px rgba(0,0,0,0.3); border-radius: 4px; padding: 0.5rem 0; z-index: 1000; min-width: 150px; } .menu-item { padding: 0.5rem 1rem; cursor: pointer; font-size: 0.9rem; } .menu-item:hover { background: var(--surface-hover); } .action-bar { display: flex; gap: 0.5rem; }