/* Intentionnally left blank */
/* Themes are created using Qt CSS, you can visit */
/* http://doc.qt.io/qt-5/stylesheet-reference.html and */
/* http://doc.qt.io/qt-5/stylesheet-examples.html for examples. */

/* OBS will use the theme filename for the settings. */
/* You can ship images using relative paths in qss. */
/* Dark Theme is a good place to start if you need */
/* a template. */

@OBSThemeMeta {
    name: 'System';
    id: 'com.obsproject.System';
    author: 'Warchamp7';
}

.bg-base {
    background-color: #DCD9D7;
}

.text-heading {
    font-size: 36px;
    font-weight: bold;
}

.text-large {
    font-size: 16px;
}

.text-bright {
    color: var(--primary_light);
}

/* We need to set back the icons, or the preview wont stick. */
.icon-plus {
    qproperty-icon: url(:/res/images/plus.svg);
}

.icon-minus {
    qproperty-icon: url(:/res/images/minus.svg);
}

.icon-trash {
    qproperty-icon: url(:/res/images/trash.svg);
}

.icon-clear {
    qproperty-icon: url(:/res/images/entry-clear.svg);
}

.icon-gear {
    qproperty-icon: url(:/res/images/settings/general.svg);
}

.icon-dots-vert {
    qproperty-icon: url(:/res/images/dots-vert.svg);
}

.icon-refresh {
    qproperty-icon: url(:/res/images/refresh.svg);
}

.icon-cogs {
    qproperty-icon: url(:/res/images/cogs.svg);
}

.icon-touch {
    qproperty-icon: url(:/res/images/interact.svg);
}

.icon-up {
    qproperty-icon: url(:/res/images/up.svg);
}

.icon-down {
    qproperty-icon: url(:/res/images/down.svg);
}

.icon-filter {
    qproperty-icon: url(:/res/images/filter.svg);
}

.icon-revert {
    qproperty-icon: url(:res/images/revert.svg);
}

.indicator-mute {
    outline: none;
}

.indicator-mute::indicator:checked {
    image: url(:/res/images/mute.svg);
}

.indicator-mute::indicator:indeterminate {
    image: url(:/res/images/unassigned.svg);
}

.indicator-mute::indicator:unchecked {
    image: url(:/settings/images/settings/audio.svg);
}

.indicator-expand {
    background: transparent;
    outline: none;
}

.indicator-expand::indicator {
    width: 10px;
    height: 10px;
}

.indicator-expand::indicator:checked {
    image: url(:/res/images/expand.svg);
}

.indicator-expand::indicator:unchecked {
    image: url(:/res/images/collapse.svg);
}

/* Volume Control */

VolumeMeter {
    qproperty-backgroundNominalColor: rgb(15, 100, 15);
    qproperty-backgroundWarningColor: rgb(100, 100, 15);
    qproperty-backgroundErrorColor: rgb(100, 15, 15);
    qproperty-foregroundNominalColor: rgb(50, 200, 50);
    qproperty-foregroundWarningColor: rgb(255, 200, 50);
    qproperty-foregroundErrorColor: rgb(200, 50, 50);
    qproperty-magnitudeColor: rgb(0, 0, 0);
    qproperty-majorTickColor: rgb(0, 0, 0);
    qproperty-minorTickColor: rgb(50, 50, 50);
    qproperty-meterThickness: 3;

    /* The meter scale numbers normally use your QWidget font, with size    */
    /* multiplied by meterFontScaling to get a proportionally smaller font. */
    /* To use a unique font for the numbers, specify font-family and/or     */
    /* font-size here, and set meterFontScaling to 1.0.                     */
    qproperty-meterFontScaling: 0.7;
}


/* Label warning/error */

.text-warning {
    color: rgb(192, 128, 0);
}

.text-danger {
    color: rgb(192, 0, 0);
}

.text-success {
    color: rgb(0, 128, 0);
}

/* macOS Separator Fix */
QMainWindow::separator {
    background: transparent;
    width: 4px;
    height: 4px;
}

/* Preview background color */

OBSQTDisplay {
    qproperty-displayBackgroundColor: rgb(76, 76, 76);
}

/* Preview/Program labels */

.label-preview-title {
    font-size: 18px;
    font-weight: bold;
    color: rgb(122,121,122);
}

/* Settings Icons */

OBSBasicSettings {
    qproperty-generalIcon: url(:settings/images/settings/general.svg);
    qproperty-appearanceIcon: url(:settings/images/settings/appearance.svg);
    qproperty-streamIcon: url(:settings/images/settings/stream.svg);
    qproperty-outputIcon: url(:settings/images/settings/output.svg);
    qproperty-audioIcon: url(:settings/images/settings/audio.svg);
    qproperty-videoIcon: url(:settings/images/settings/video.svg);
    qproperty-hotkeysIcon: url(:settings/images/settings/hotkeys.svg);
    qproperty-accessibilityIcon: url(:settings/images/settings/accessibility.svg);
    qproperty-advancedIcon: url(:settings/images/settings/advanced.svg);
}

OBSBasicSettings QListWidget::item {
    padding-top: 5px;
    padding-bottom: 5px;
}

.checkbox-icon {
    outline: none;
    background: transparent;
}

/* Locked CheckBox */

.indicator-lock::indicator:checked {
    image: url(:res/images/locked.svg);
}

.indicator-lock::indicator:unchecked {
    image: url(:res/images/unlocked.svg);
}

/* Visibility CheckBox */

.indicator-visibility::indicator:checked {
    image: url(:res/images/visible.svg);
}

.indicator-visibility::indicator:unchecked {
    image: url(:res/images/invisible.svg);
}

OBSMissingFiles {
    qproperty-warningIcon: url(:res/images/alert.svg);
}

/* Source Icons */

OBSBasic {
    qproperty-imageIcon: url(:res/images/sources/image.svg);
    qproperty-colorIcon: url(:res/images/sources/brush.svg);
    qproperty-slideshowIcon: url(:res/images/sources/slideshow.svg);
    qproperty-audioInputIcon: url(:res/images/sources/microphone.svg);
    qproperty-audioOutputIcon: url(:settings/images/settings/audio.svg);
    qproperty-desktopCapIcon: url(:settings/images/settings/video.svg);
    qproperty-windowCapIcon: url(:res/images/sources/window.svg);
    qproperty-gameCapIcon: url(:res/images/sources/gamepad.svg);
    qproperty-cameraIcon: url(:res/images/sources/camera.svg);
    qproperty-textIcon: url(:res/images/sources/text.svg);
    qproperty-mediaIcon: url(:res/images/sources/media.svg);
    qproperty-browserIcon: url(:res/images/sources/globe.svg);
    qproperty-groupIcon: url(:res/images/sources/group.svg);
    qproperty-sceneIcon: url(:res/images/sources/scene.svg);
    qproperty-defaultIcon: url(:res/images/sources/default.svg);
    qproperty-audioProcessOutputIcon: url(:res/images/sources/windowaudio.svg);
}

/* Scene Tree */

SceneTree {
    qproperty-gridItemWidth: 150;
    qproperty-gridItemHeight: 24;
}

/* Save icon */

.icon-save {
    qproperty-icon: url(:res/images/save.svg);
}

/* Studio Mode T-Bar */

.slider-tbar {
    height: 24px;
}

.slider-tbar::groove:horizontal {
    border: 1px solid #4c4c4c;
    height: 5px;
    background: #DCD9D7;
}

.slider-tbar::sub-page:horizontal {
    background: #DCD9D7;
    border: 1px solid #4c4c4c;
}

.slider-tbar::handle:horizontal {
    background-color: #4c4c4c;
    width: 12px;
    height: 24px;
    margin: -24px 0px;
}

/* Source Context */
#contextContainer QPushButton {
    padding: 3px 10px;
}

#contextContainer QPushButton#sourcePropertiesButton {
    qproperty-icon: url(:/settings/images/settings/general.svg);
}

#contextContainer QPushButton#sourceFiltersButton {
    qproperty-icon: url(:/res/images/filter.svg);
}

#contextContainer QPushButton#sourceInteractButton {
    qproperty-icon: url(:/res/images/interact.svg);
}

/* Media icons */

.icon-media-play {
    qproperty-icon: url(:res/images/media/media_play.svg);
}

.icon-media-pause {
    qproperty-icon: url(:res/images/media/media_pause.svg);
}

.icon-media-restart {
    qproperty-icon: url(:res/images/media/media_restart.svg);
}

.icon-media-stop {
    qproperty-icon: url(:res/images/media/media_stop.svg);
}

.icon-media-next {
    qproperty-icon: url(:res/images/media/media_next.svg);
}

.icon-media-prev {
    qproperty-icon: url(:res/images/media/media_previous.svg);
}

/* YouTube Integration */
OBSYoutubeActions {
    qproperty-thumbPlaceholder: url(:res/images/sources/image.svg);
}

#ytEventList QLabel {
    background-color: #e1e1e1;
    border: 1px solid #ddd;
}

#ytEventList QLabel:hover {
    background-color: #eee;
    border: 1px solid #777;
}

#ytEventList .row-selected {
    background-color: #ccc;
    border: 1px solid #444;
}

/* Calendar Widget */
QCalendarWidget QToolButton {
    padding: 0px 12px;
}

#qt_calendar_monthbutton::menu-indicator {
    image: url(:/res/images/down.svg);
    subcontrol-position: right;
    padding-top: 2px;
    padding-right: 2px;
    height: 8px;
    width: 8px;
}

#qt_calendar_monthbutton::menu-indicator:hover {
    image: url(:/res/images/down.svg);
    color: red;
}

QCalendarWidget #qt_calendar_prevmonth {
    padding: 2px;
    qproperty-icon: url(:/res/images/left.svg);
    icon-size: 16px;
}

QCalendarWidget #qt_calendar_nextmonth {
    padding: 2px;
    qproperty-icon: url(:/res/images/right.svg);
    icon-size: 16px;
}

/* Status Bar */
StatusBarWidget > QFrame {
    padding: 0px 12px 8px;
}

idian--ToggleSwitch {
    qproperty-handle: rgb(255, 255, 255);
    qproperty-backgroundActive: #284cb8;
    qproperty-backgroundInactive: #3c404b;
}

idian--Group {
    border-radius: 4px;
    font-weight: bold;
}

idian--Group > QLabel.title {
    font-weight: bold;
}

idian--Group > QLabel.subtitle {
    color: palette(button-text);
}

idian--PropertiesList {
    background: palette(base);
    border-radius: 4px;
    border-width: 0px;
    padding: 0px;
    margin: 0px;
}

idian--GenericRow {
    margin: 0;
    padding: 0;
    border-left: 3px solid transparent;
    min-height: 48px;
    background: transparent;
}

idian--GenericRow:hover {
    background: palette(highlight);
    border-left: 0;
}

idian--GenericRow[last="true"]:hover {
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
}

idian--GenericRow[first="true"]:hover {
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
}

idian--GenericRow > QLabel {
    font-weight: 500;
}

idian--GenericRow > QLabel.subtitle {
    font-size: 9pt;
    color: palette(button-text);
}

idian--GenericRow QComboBox,
idian--GenericRow QPushButton {
    margin: 0;
}

idian--GenericRow QComboBox,
idian--GenericRow QComboBox:hover,
idian--GenericRow QComboBox:selected,
idian--GenericRow QComboBox::on {
    background: transparent;
}

idian--GenericRow QComboBox::drop-down {
    border: none;
}

idian--GenericRow QComboBox::down-arrow {
    image: url(./Light/collapse.svg);
}

idian--PropertiesListSpacer {
    max-height: 1px;
    min-height: 1px;
    background-color: palette(midlight);
}

idian--CollapsibleRow {
    margin: 0;
    padding: 0;
    border: none;
}

idian--CollapsibleRow idian--PropertiesList {
    border-radius: 0;
    background: palette(mid);
}

IdianPlayground QVBoxLayout {
    background: palette(midlight);
    border-radius: 4px;
    padding-top: 32px;
    padding-bottom: 8px;
    font-weight: bold;
    margin-bottom: 6px;
}
