/* ═══════════════════════════════════════════════════════════════════════════ DBClient — Dark Theme (Catppuccin Frappé palette) ═══════════════════════════════════════════════════════════════════════════ */ /* ── Variables via flat tokens ───────────────────────────────────────────── base #303446 crust #232634 surface0 #414559 surface1 #51576d surface2 #626880 overlay #737994 subtext #a5adce text #c6d0f5 blue #8caaee lavender #babbf1 sapphire #85c1dc green #a6d189 teal #81c8be sky #99d1db mauve #ca9ee6 pink #f4b8e4 red #e78284 peach #ef9f76 yellow #e5c890 ─────────────────────────────────────────────────────────────────────── */ /* ── Global reset ───────────────────────────────────────────────────────── */ * { outline: none; } QMainWindow, QDialog { background-color: #303446; color: #c6d0f5; } QWidget { background-color: #303446; color: #c6d0f5; font-family: "Segoe UI", "Inter", sans-serif; font-size: 10pt; } /* ── Menu bar ───────────────────────────────────────────────────────────── */ QMenuBar { background-color: #232634; color: #c6d0f5; border-bottom: 1px solid #414559; padding: 2px 0; } QMenuBar::item { padding: 4px 12px; border-radius: 4px; } QMenuBar::item:selected { background-color: #414559; } QMenu { background-color: #292c3c; border: 1px solid #51576d; border-radius: 6px; padding: 4px; } QMenu::item { padding: 6px 24px 6px 12px; border-radius: 4px; color: #c6d0f5; } QMenu::item:selected { background-color: #414559; color: #c6d0f5; } QMenu::separator { height: 1px; background: #51576d; margin: 4px 8px; } /* ── Status bar ─────────────────────────────────────────────────────────── */ QStatusBar { background-color: #232634; border-top: 1px solid #414559; color: #a5adce; font-size: 9pt; padding: 2px 8px; } /* ── Scrollbars ─────────────────────────────────────────────────────────── */ QScrollBar:vertical { background: #303446; width: 10px; margin: 0; } QScrollBar::handle:vertical { background: #51576d; border-radius: 5px; min-height: 24px; } QScrollBar::handle:vertical:hover { background: #626880; } QScrollBar:horizontal { background: #303446; height: 10px; } QScrollBar::handle:horizontal { background: #51576d; border-radius: 5px; min-width: 24px; } QScrollBar::handle:horizontal:hover { background: #626880; } QScrollBar::add-line, QScrollBar::sub-line { height: 0; width: 0; } QScrollBar::add-page, QScrollBar::sub-page { background: transparent; } /* ── Splitter ────────────────────────────────────────────────────────────── */ QSplitter::handle { background-color: #414559; } QSplitter::handle:horizontal { width: 2px; } QSplitter::handle:vertical { height: 2px; } QSplitter::handle:hover { background-color: #8caaee; } /* ── Sidebar ─────────────────────────────────────────────────────────────── */ #sidebarHeader { background-color: #292c3c; border-bottom: 1px solid #414559; } #sidebarTitle { color: #8caaee; font-size: 11pt; font-weight: 600; } #newConnBtn { background-color: #414559; color: #8caaee; border: 1px solid #51576d; border-radius: 6px; font-size: 14pt; padding: 0; } #newConnBtn:hover { background-color: #51576d; color: #babbf1; } /* ── Tree widget ─────────────────────────────────────────────────────────── */ QTreeWidget { background-color: #292c3c; border: none; color: #c6d0f5; font-size: 10pt; show-decoration-selected: 1; } QTreeWidget::item { padding: 3px 4px; border-radius: 4px; } QTreeWidget::item:hover { background-color: #363a4f; } QTreeWidget::item:selected { background-color: #414559; color: #c6d0f5; } QTreeWidget::branch { background: transparent; } /* ── Tab widget ──────────────────────────────────────────────────────────── */ QTabWidget::pane { border: none; border-top: 1px solid #414559; background-color: #303446; } QTabBar { background-color: #292c3c; } QTabBar::tab { background-color: #292c3c; color: #a5adce; padding: 7px 16px; border: none; border-right: 1px solid #414559; font-size: 10pt; } QTabBar::tab:selected { background-color: #303446; color: #c6d0f5; border-bottom: 2px solid #8caaee; } QTabBar::tab:hover:!selected { background-color: #353849; color: #c6d0f5; } QTabBar::close-button { subcontrol-position: right; padding: 2px; } /* ── Table view ──────────────────────────────────────────────────────────── */ QTableView, QTableWidget { background-color: #303446; alternate-background-color: #363a4f; gridline-color: #414559; color: #c6d0f5; border: none; selection-background-color: #414559; selection-color: #c6d0f5; font-size: 10pt; } QTableView::item, QTableWidget::item { padding: 2px 6px; } QHeaderView { background-color: #292c3c; } QHeaderView::section { background-color: #292c3c; color: #8caaee; border: none; border-right: 1px solid #414559; border-bottom: 1px solid #414559; padding: 4px 8px; font-weight: 600; } QHeaderView::section:hover { background-color: #353849; } /* ── Plain text edit (SQL editor body) ───────────────────────────────────── */ QPlainTextEdit { background-color: #303446; color: #c6d0f5; border: none; selection-background-color: #51576d; font-family: "Consolas", "JetBrains Mono", "Courier New", monospace; font-size: 13pt; line-height: 1.5; } /* ── Line number gutter ──────────────────────────────────────────────────── */ LineNumberArea { background-color: #2a2d3e; } /* ── Buttons ─────────────────────────────────────────────────────────────── */ QPushButton { background-color: #414559; color: #c6d0f5; border: 1px solid #51576d; border-radius: 6px; padding: 5px 14px; font-size: 10pt; } QPushButton:hover { background-color: #51576d; border-color: #626880; } QPushButton:pressed { background-color: #363849; } QPushButton:disabled { color: #626880; background-color: #363849; border-color: #414559; } #runBtn { background-color: #a6d189; color: #303446; font-weight: 700; border: none; } #runBtn:hover { background-color: #81c8be; } #stopBtn { background-color: #e78284; color: #303446; font-weight: 700; border: none; } #stopBtn:hover { background-color: #ea999c; } #commitBtn { background-color: #a6d189; color: #303446; font-weight: 700; border: none; } #rollbackBtn { background-color: #ef9f76; color: #303446; font-weight: 700; border: none; } #crudAddBtn { background-color: #414559; color: #a6d189; border: 1px solid #a6d189; font-weight: 600; } #crudAddBtn:hover { background-color: #a6d189; color: #303446; } #crudDeleteBtn { background-color: #414559; color: #e78284; border: 1px solid #e78284; font-weight: 600; } #crudDeleteBtn:hover { background-color: #e78284; color: #303446; } /* ── Line edit ───────────────────────────────────────────────────────────── */ QLineEdit { background-color: #414559; color: #c6d0f5; border: 1px solid #51576d; border-radius: 6px; padding: 5px 10px; font-size: 10pt; selection-background-color: #8caaee; selection-color: #303446; } QLineEdit:focus { border-color: #8caaee; } QLineEdit::placeholder { color: #626880; } /* ── Combo box ───────────────────────────────────────────────────────────── */ QComboBox { background-color: #414559; color: #c6d0f5; border: 1px solid #51576d; border-radius: 6px; padding: 5px 10px; font-size: 10pt; } QComboBox:focus { border-color: #8caaee; } QComboBox::drop-down { border: none; width: 24px; } QComboBox QAbstractItemView { background-color: #292c3c; color: #c6d0f5; border: 1px solid #51576d; selection-background-color: #414559; } /* ── Spin box ────────────────────────────────────────────────────────────── */ QSpinBox { background-color: #414559; color: #c6d0f5; border: 1px solid #51576d; border-radius: 6px; padding: 4px 8px; } QSpinBox:focus { border-color: #8caaee; } QSpinBox::up-button, QSpinBox::down-button { background-color: #51576d; border: none; border-radius: 3px; width: 16px; } /* ── Check box ───────────────────────────────────────────────────────────── */ QCheckBox { color: #c6d0f5; spacing: 8px; } QCheckBox::indicator { width: 16px; height: 16px; border: 2px solid #51576d; border-radius: 4px; background: #414559; } QCheckBox::indicator:checked { background-color: #8caaee; border-color: #8caaee; } /* ── Dialog ──────────────────────────────────────────────────────────────── */ QDialog { background-color: #303446; } QDialogButtonBox QPushButton { min-width: 80px; } /* ── Form layout labels ──────────────────────────────────────────────────── */ QFormLayout QLabel { color: #a5adce; } /* ── Tab widget in dialogs ───────────────────────────────────────────────── */ QTabWidget#dialogTabs::pane { border: 1px solid #414559; border-radius: 6px; margin-top: -1px; } /* ── Group box ───────────────────────────────────────────────────────────── */ QGroupBox { border: 1px solid #51576d; border-radius: 6px; margin-top: 1em; color: #a5adce; font-weight: 600; } QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 4px; } /* ── Progress bar ────────────────────────────────────────────────────────── */ QProgressBar { background-color: #414559; border: 1px solid #51576d; border-radius: 6px; height: 10px; text-align: center; } QProgressBar::chunk { background-color: #8caaee; border-radius: 5px; } /* ── Dock widget ─────────────────────────────────────────────────────────── */ QDockWidget { color: #c6d0f5; titlebar-close-icon: none; font-weight: 600; } QDockWidget::title { background-color: #292c3c; padding: 6px; border-bottom: 1px solid #414559; } /* ── Tool button ─────────────────────────────────────────────────────────── */ QToolButton { background-color: #414559; color: #c6d0f5; border: 1px solid #51576d; border-radius: 5px; padding: 4px 8px; font-size: 13pt; } QToolButton:hover { background-color: #51576d; } /* ── Message box ─────────────────────────────────────────────────────────── */ QMessageBox { background-color: #303446; } QMessageBox QLabel { color: #c6d0f5; font-size: 10pt; } /* ── Empty workspace label ───────────────────────────────────────────────── */ #emptyLabel { color: #626880; font-size: 14pt; line-height: 2; } /* ── Status label in results toolbar ────────────────────────────────────── */ #statusLabel { color: #a5adce; font-size: 9pt; padding-left: 4px; } /* ── DB label in SQL editor toolbar ─────────────────────────────────────── */ #dbLabel { color: #737994; font-size: 9pt; padding-right: 4px; } /* ── Workspace tab widget ────────────────────────────────────────────────── */ #workspace > QTabBar::tab { min-width: 120px; } /* ── Horizontal separator line in dialog ────────────────────────────────── */ QFrame[frameShape="4"] { /* HLine */ color: #414559; margin: 4px 0; } /* ── Structure view title ────────────────────────────────────────────────── */ #structureTitle { color: #babbf1; } /* ── Pagination bar ──────────────────────────────────────────────────────── */ #paginationBar { background-color: #292c3c; border-top: 1px solid #51576d; min-height: 38px; } #pgBtn { background-color: #363849; color: #c6d0f5; border: 1px solid #51576d; border-radius: 5px; padding: 4px 10px; font-size: 9pt; min-width: 52px; } #pgBtn:hover { background-color: #414559; border-color: #626880; } #pgBtn:disabled { color: #51576d; background-color: #303446; border-color: #414559; } #pageLbl { color: #8caaee; font-size: 9pt; font-weight: 600; padding: 0 6px; } #rowCountLbl { color: #a5adce; font-size: 9pt; padding-left: 8px; }