/* ═══════════════════════════════════════════════════════════════════════════ DBClient — Dark Theme (Catppuccin Mocha palette) ═══════════════════════════════════════════════════════════════════════════ */ /* ── Variables via flat tokens ───────────────────────────────────────────── base #1e1e2e crust #11111b surface0 #313244 surface1 #45475a surface2 #585b70 overlay #6c7086 subtext #a6adc8 text #cdd6f4 blue #89b4fa lavender #b4befe sapphire #74c7ec green #a6e3a1 teal #94e2d5 sky #89dceb mauve #cba6f7 pink #f5c2e7 red #f38ba8 peach #fab387 yellow #f9e2af ─────────────────────────────────────────────────────────────────────── */ /* ── Global reset ───────────────────────────────────────────────────────── */ * { outline: none; } QMainWindow, QDialog { background-color: #1e1e2e; color: #cdd6f4; } QWidget { background-color: #1e1e2e; color: #cdd6f4; font-family: "Segoe UI", "Inter", sans-serif; font-size: 10pt; } /* ── Menu bar ───────────────────────────────────────────────────────────── */ QMenuBar { background-color: #11111b; color: #cdd6f4; border-bottom: 1px solid #313244; padding: 2px 0; } QMenuBar::item { padding: 4px 12px; border-radius: 4px; } QMenuBar::item:selected { background-color: #313244; } QMenu { background-color: #181825; border: 1px solid #45475a; border-radius: 6px; padding: 4px; } QMenu::item { padding: 6px 24px 6px 12px; border-radius: 4px; color: #cdd6f4; } QMenu::item:selected { background-color: #313244; color: #cdd6f4; } QMenu::separator { height: 1px; background: #45475a; margin: 4px 8px; } /* ── Status bar ─────────────────────────────────────────────────────────── */ QStatusBar { background-color: #11111b; border-top: 1px solid #313244; color: #a6adc8; font-size: 9pt; padding: 2px 8px; } /* ── Scrollbars ─────────────────────────────────────────────────────────── */ QScrollBar:vertical { background: #1e1e2e; width: 10px; margin: 0; } QScrollBar::handle:vertical { background: #45475a; border-radius: 5px; min-height: 24px; } QScrollBar::handle:vertical:hover { background: #585b70; } QScrollBar:horizontal { background: #1e1e2e; height: 10px; } QScrollBar::handle:horizontal { background: #45475a; border-radius: 5px; min-width: 24px; } QScrollBar::handle:horizontal:hover { background: #585b70; } QScrollBar::add-line, QScrollBar::sub-line { height: 0; width: 0; } QScrollBar::add-page, QScrollBar::sub-page { background: transparent; } /* ── Splitter ────────────────────────────────────────────────────────────── */ QSplitter::handle { background-color: #313244; } QSplitter::handle:horizontal { width: 2px; } QSplitter::handle:vertical { height: 2px; } QSplitter::handle:hover { background-color: #89b4fa; } /* ── Sidebar ─────────────────────────────────────────────────────────────── */ #sidebarHeader { background-color: #181825; border-bottom: 1px solid #313244; } #sidebarTitle { color: #89b4fa; font-size: 11pt; font-weight: 600; } #newConnBtn { background-color: #313244; color: #89b4fa; border: 1px solid #45475a; border-radius: 6px; font-size: 14pt; padding: 0; } #newConnBtn:hover { background-color: #45475a; color: #b4befe; } /* ── Tree widget ─────────────────────────────────────────────────────────── */ QTreeWidget { background-color: #181825; border: none; color: #cdd6f4; font-size: 10pt; show-decoration-selected: 1; } QTreeWidget::item { padding: 3px 4px; border-radius: 4px; } QTreeWidget::item:hover { background-color: #2a2a3c; } QTreeWidget::item:selected { background-color: #313244; color: #cdd6f4; } QTreeWidget::branch { background: transparent; } /* ── Tab widget ──────────────────────────────────────────────────────────── */ QTabWidget::pane { border: none; border-top: 1px solid #313244; background-color: #1e1e2e; } QTabBar { background-color: #181825; } QTabBar::tab { background-color: #181825; color: #a6adc8; padding: 7px 16px; border: none; border-right: 1px solid #313244; font-size: 10pt; } QTabBar::tab:selected { background-color: #1e1e2e; color: #cdd6f4; border-bottom: 2px solid #89b4fa; } QTabBar::tab:hover:!selected { background-color: #252536; color: #cdd6f4; } QTabBar::close-button { subcontrol-position: right; padding: 2px; } /* ── Table view ──────────────────────────────────────────────────────────── */ QTableView, QTableWidget { background-color: #1e1e2e; alternate-background-color: #252538; gridline-color: #313244; color: #cdd6f4; border: none; selection-background-color: #313244; selection-color: #cdd6f4; font-size: 10pt; } QTableView::item, QTableWidget::item { padding: 2px 6px; } QHeaderView { background-color: #181825; } QHeaderView::section { background-color: #181825; color: #89b4fa; border: none; border-right: 1px solid #313244; border-bottom: 1px solid #313244; padding: 4px 8px; font-weight: 600; } QHeaderView::section:hover { background-color: #252536; } /* ── Plain text edit (SQL editor body) ───────────────────────────────────── */ QPlainTextEdit { background-color: #1e1e2e; color: #cdd6f4; border: none; selection-background-color: #45475a; font-family: "Consolas", "JetBrains Mono", "Courier New", monospace; font-size: 13pt; line-height: 1.5; } /* ── Line number gutter ──────────────────────────────────────────────────── */ LineNumberArea { background-color: #1a1a2e; } /* ── Buttons ─────────────────────────────────────────────────────────────── */ QPushButton { background-color: #313244; color: #cdd6f4; border: 1px solid #45475a; border-radius: 6px; padding: 5px 14px; font-size: 10pt; } QPushButton:hover { background-color: #45475a; border-color: #585b70; } QPushButton:pressed { background-color: #252536; } QPushButton:disabled { color: #585b70; background-color: #252536; border-color: #313244; } #runBtn { background-color: #a6e3a1; color: #1e1e2e; font-weight: 700; border: none; } #runBtn:hover { background-color: #94e2d5; } #stopBtn { background-color: #f38ba8; color: #1e1e2e; font-weight: 700; border: none; } #stopBtn:hover { background-color: #eba0ac; } #commitBtn { background-color: #a6e3a1; color: #1e1e2e; font-weight: 700; border: none; } #rollbackBtn { background-color: #fab387; color: #1e1e2e; font-weight: 700; border: none; } #crudAddBtn { background-color: #313244; color: #a6e3a1; border: 1px solid #a6e3a1; font-weight: 600; } #crudAddBtn:hover { background-color: #a6e3a1; color: #1e1e2e; } #crudDeleteBtn { background-color: #313244; color: #f38ba8; border: 1px solid #f38ba8; font-weight: 600; } #crudDeleteBtn:hover { background-color: #f38ba8; color: #1e1e2e; } /* ── Line edit ───────────────────────────────────────────────────────────── */ QLineEdit { background-color: #313244; color: #cdd6f4; border: 1px solid #45475a; border-radius: 6px; padding: 5px 10px; font-size: 10pt; selection-background-color: #89b4fa; selection-color: #1e1e2e; } QLineEdit:focus { border-color: #89b4fa; } QLineEdit::placeholder { color: #585b70; } /* ── Combo box ───────────────────────────────────────────────────────────── */ QComboBox { background-color: #313244; color: #cdd6f4; border: 1px solid #45475a; border-radius: 6px; padding: 5px 10px; font-size: 10pt; } QComboBox:focus { border-color: #89b4fa; } QComboBox::drop-down { border: none; width: 24px; } QComboBox QAbstractItemView { background-color: #181825; color: #cdd6f4; border: 1px solid #45475a; selection-background-color: #313244; } /* ── Spin box ────────────────────────────────────────────────────────────── */ QSpinBox { background-color: #313244; color: #cdd6f4; border: 1px solid #45475a; border-radius: 6px; padding: 4px 8px; } QSpinBox:focus { border-color: #89b4fa; } QSpinBox::up-button, QSpinBox::down-button { background-color: #45475a; border: none; border-radius: 3px; width: 16px; } /* ── Check box ───────────────────────────────────────────────────────────── */ QCheckBox { color: #cdd6f4; spacing: 8px; } QCheckBox::indicator { width: 16px; height: 16px; border: 2px solid #45475a; border-radius: 4px; background: #313244; } QCheckBox::indicator:checked { background-color: #89b4fa; border-color: #89b4fa; } /* ── Dialog ──────────────────────────────────────────────────────────────── */ QDialog { background-color: #1e1e2e; } QDialogButtonBox QPushButton { min-width: 80px; } /* ── Form layout labels ──────────────────────────────────────────────────── */ QFormLayout QLabel { color: #a6adc8; } /* ── Tab widget in dialogs ───────────────────────────────────────────────── */ QTabWidget#dialogTabs::pane { border: 1px solid #313244; border-radius: 6px; margin-top: -1px; } /* ── Group box ───────────────────────────────────────────────────────────── */ QGroupBox { border: 1px solid #45475a; border-radius: 6px; margin-top: 1em; color: #a6adc8; font-weight: 600; } QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 4px; } /* ── Progress bar ────────────────────────────────────────────────────────── */ QProgressBar { background-color: #313244; border: 1px solid #45475a; border-radius: 6px; height: 10px; text-align: center; } QProgressBar::chunk { background-color: #89b4fa; border-radius: 5px; } /* ── Dock widget ─────────────────────────────────────────────────────────── */ QDockWidget { color: #cdd6f4; titlebar-close-icon: none; font-weight: 600; } QDockWidget::title { background-color: #181825; padding: 6px; border-bottom: 1px solid #313244; } /* ── Tool button ─────────────────────────────────────────────────────────── */ QToolButton { background-color: #313244; color: #cdd6f4; border: 1px solid #45475a; border-radius: 5px; padding: 4px 8px; font-size: 13pt; } QToolButton:hover { background-color: #45475a; } /* ── Message box ─────────────────────────────────────────────────────────── */ QMessageBox { background-color: #1e1e2e; } QMessageBox QLabel { color: #cdd6f4; font-size: 10pt; } /* ── Empty workspace label ───────────────────────────────────────────────── */ #emptyLabel { color: #585b70; font-size: 14pt; line-height: 2; } /* ── Status label in results toolbar ────────────────────────────────────── */ #statusLabel { color: #a6adc8; font-size: 9pt; padding-left: 4px; } /* ── DB label in SQL editor toolbar ─────────────────────────────────────── */ #dbLabel { color: #6c7086; 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: #313244; margin: 4px 0; } /* ── Structure view title ────────────────────────────────────────────────── */ #structureTitle { color: #b4befe; } /* ── Pagination bar ──────────────────────────────────────────────────────── */ #paginationBar { background-color: #181825; border-top: 1px solid #45475a; min-height: 38px; } #pgBtn { background-color: #252536; color: #cdd6f4; border: 1px solid #45475a; border-radius: 5px; padding: 4px 10px; font-size: 9pt; min-width: 52px; } #pgBtn:hover { background-color: #313244; border-color: #585b70; } #pgBtn:disabled { color: #45475a; background-color: #1e1e2e; border-color: #313244; } #pageLbl { color: #89b4fa; font-size: 9pt; font-weight: 600; padding: 0 6px; } #rowCountLbl { color: #a6adc8; font-size: 9pt; padding-left: 8px; }