/* Global Styles */
QWidget {
    background-color: {{ .Theme.Colors.Semantic.Background.Value }};
    color: {{ .Theme.Colors.Semantic.Text.Value }};
    selection-background-color: {{ .Theme.Colors.Semantic.Accent.Value }};
    selection-color: {{ .Theme.Colors.Semantic.Background.Value }};
}

/* Buttons */
QPushButton {
    background-color: {{ .Theme.Colors.Semantic.SurfaceAlt.Value }};
    border: 1px solid {{ .Theme.Colors.Semantic.Border.Value }};
    border-radius: {{ .Theme.Spacing.Radius }};
    padding: {{ .Theme.Spacing.Padding }};
}

QPushButton:hover {
    background-color: {{ .Theme.Colors.Semantic.Border.Value }};
}

QPushButton:pressed {
    background-color: {{ .Theme.Colors.Semantic.Accent.Value }};
    color: {{ .Theme.Colors.Semantic.Background.Value }};
}

QPushButton:disabled {
    background-color: {{ .Theme.Colors.Semantic.Background.Value }};
    color: {{ .Theme.Colors.Semantic.Disabled.Value }};
    border-color: {{ .Theme.Colors.Semantic.Disabled.Value }};
}

/* Input Fields */
QLineEdit, QTextEdit, QPlainTextEdit {
    background-color: {{ .Theme.Colors.Semantic.Surface.Value }};
    border: 1px solid {{ .Theme.Colors.Semantic.Border.Value }};
    border-radius: {{ .Theme.Spacing.Radius }};
    padding: {{ .Theme.Spacing.PaddingSmall }};
}

QLineEdit:focus {
    border: 1px solid {{ .Theme.Colors.Semantic.Accent.Value }};
}

/* Menus and Lists */
QListView, QTreeView, QTableView {
    background-color: {{ .Theme.Colors.Semantic.Surface.Value }};
    border: 1px solid {{ .Theme.Colors.Semantic.Border.Value }};
    border-radius: {{ .Theme.Spacing.Radius }};
    alternate-background-color: {{ .Theme.Colors.Semantic.SurfaceAlt.Value }};
}

QListView::item:selected, QTreeView::item:selected, QTableView::item:selected {
    background-color: {{ .Theme.Colors.Semantic.Accent.Alpha .Theme.Colors.Semantic.Background 0.3 }};
    border: 1px solid {{ .Theme.Colors.Semantic.Accent.Value }};
    color: {{ .Theme.Colors.Semantic.Text.Value }};
}

/* Scrollbars */
QScrollBar:vertical {
    background: {{ .Theme.Colors.Semantic.SurfaceAlt.Value }};
    width: 12px;
    margin: 0px;
}

QScrollBar::handle:vertical {
    background: {{ .Theme.Colors.Semantic.Border.Value }};
    min-height: 20px;
    border-radius: {{ .Theme.Spacing.RadiusSmall }};
    margin: 2px;
}

QScrollBar::handle:vertical:hover {
    background: {{ .Theme.Colors.Semantic.Accent.Value }};
}

QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
    height: 0px;
}

/* Tabs */
QTabBar::tab {
    background: {{ .Theme.Colors.Semantic.Surface.Value }};
    border: 1px solid {{ .Theme.Colors.Semantic.Border.Value }};
    padding: {{ .Theme.Spacing.Padding }};
    border-top-left-radius: {{ .Theme.Spacing.Radius }};
    border-top-right-radius: {{ .Theme.Spacing.Radius }};
}

QTabBar::tab:selected {
    background: {{ .Theme.Colors.Semantic.Background.Value }};
    border-bottom-color: {{ .Theme.Colors.Semantic.Accent.Value }};
}

/* Checkboxes and Radio Buttons */
QCheckBox::indicator, QRadioButton::indicator {
    width: 18px;
    height: 18px;
    border: 1px solid {{ .Theme.Colors.Semantic.Border.Value }};
    background-color: {{ .Theme.Colors.Semantic.SurfaceAlt.Value }};
    border-radius: {{ .Theme.Spacing.Radius }};
}

QRadioButton::indicator {
    border-radius: 9px;
}

QCheckBox::indicator:checked {
    border-color: {{ .Theme.Colors.Semantic.Accent.Value }};
    background-color: {{ .Theme.Colors.Semantic.Accent.Value }};
}

QRadioButton::indicator:checked {
    border-color: {{ .Theme.Colors.Semantic.Accent.Value }};
    background-color: {{ .Theme.Colors.Semantic.Accent.Value }};
}
