QToolTip {
    color: white;
    background-color: #109ede;
    border: 1px solid white;
}

QPushButton {
    background-color: rgb(242, 242, 242);
    border-style: solid;
    border-width: 0px;
    border-radius: 15px;
    color: rgb(32, 32, 32);
}

QPushButton#pinInfoBtn, QPushButton#backupInfoBtn {
    background: transparent;
}

QPushButton#takePhotoButton, QPushButton#importButton {
    background-color: rgb(242, 242, 242);
    border-radius: 5px;
    border:solid 0px;
}

QPushButton#acceptButton{
    background-color: #4caf50;
    border-radius: 28px;
    border:solid 1px;
}

QPushButton#refuseButton, QPushButton#cancelButton{
    background-color: #f44336;
    border-radius: 28px;
    border:solid 1px;
}

QPushButton#acceptButton:hover{
    background-color: #5db761;
}

QPushButton#acceptButton:pressed{
    background-color: #449d48;
}

QPushButton#refuseButton:hover, QPushButton#cancelButton:hover{
    background-color: #f5554a;
}

QPushButton#refuseButton:pressed, QPushButton#cancelButton:pressed{
    background-color: #db3c30;
}

QWidget#smartListOuterWidget {
    background-color: rgb(255, 255, 255);
}

QWidget#previewContainer {
    background-color: black;
}

QPushButton#btnConversations, QPushButton#btnInvites {
    border-radius: 0px;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
    color: rgb(32, 32, 32);
    height: 28px;
    padding: 0px;
    background-color: rgb(240, 240, 240);
    border-top: 2px solid rgb(240, 240, 240);
    border-right: 2px solid rgb(240, 240, 240);
    border-bottom: 2px solid rgb(240, 240, 240);
    border-left: 2px solid rgb(240, 240, 240);
}

QPushButton#btnConversations:hover, QPushButton#btnInvites:hover {
    background-color: rgb(188, 185, 184);
    border-top: 2px solid rgb(188, 185, 184);
    border-right: 2px solid rgb(188, 185, 184);
    border-bottom: 2px solid rgb(188, 185, 184);
    border-left: 2px solid rgb(188, 185, 184);
}

QPushButton#btnConversations:checked, QPushButton#btnInvites:checked {
    background-color: rgb(255, 255, 255);
    border-bottom: 2px solid rgb(255, 255, 255);
}

QPushButton#btnConversations:hover:checked, QPushButton#btnInvites:hover:checked {
    border-top: 2px solid rgb(240, 240, 240);
    border-right: 2px solid rgb(240, 240, 240);
    border-bottom: 2px solid rgb(255, 255, 255);
    border-left: 2px solid rgb(240, 240, 240);
}

QPushButton#imBackButton, QPushButton#btnAcceptInvite, QPushButton#btnIgnoreInvite,
QPushButton#btnBlockInvite, QPushButton#btnAudioCall, QPushButton#btnVideoCall,
QPushButton#sendContactRequestButton, QPushButton#sendButton, QPushButton#sendIMButton,
QPushButton#btnExitSettings {
    background-color: transparent;
    border-style: solid;
    border-width: 0px;
    border-radius: 15px;
    padding: 8px;
    color: rgb(32, 32, 32);
}

QPushButton#btnAcceptInvite:hover, QPushButton#btnIgnoreInvite:hover, QPushButton#btnBlockInvite:hover {
    background-color: rgb(212, 212, 212);
}

QPushButton#btnAcceptInvite:pressed, QPushButton#btnIgnoreInvite:pressed, QPushButton#btnBlockInvite:pressed {
    background-color: rgb(187, 187, 187);
}

    QPushButton#imBackButton:hover, QPushButton#btnAudioCall:hover, QPushButton#btnVideoCall:hover,
    QPushButton#sendContactRequestButton:hover, QPushButton#sendButton:hover, QPushButton#sendIMButton:hover,
    QPushButton#btnExitSettings:hover, QPushButton#btnDeleteAccept:hover, QPushButton#btnDeleteCancel:hover,
    QPushButton#changelogButton:hover, QPushButton#creditsButton:hover, QPushButton#changelogButton:hover, QPushButton#updateCancelBtn:hover,
    QPushButton#updateAcceptBtn:hover, QPushButton#installBetaButton:hover, QPushButton#closeAboutDialogButton:hover {
        background-color: rgb(237, 237, 237);
    }

    QPushButton#imBackButton:pressed, QPushButton#btnAudioCall:pressed, QPushButton#btnVideoCall:pressed,
    QPushButton#sendContactRequestButton:pressed, QPushButton#sendButton:pressed, QPushButton#sendIMButton:pressed,
    QPushButton#btnExitSettings:pressed, QPushButton#btnDeleteAccept:pressed, QPushButton#btnDeleteCancel:pressed,
    QPushButton#changelogButton:pressed, QPushButton#creditsButton:pressed, QPushButton#changelogButton:pressed, QPushButton#updateCancelBtn:pressed,
    QPushButton#updateAcceptBtn:pressed, QPushButton#installBetaButton:pressed, QPushButton#closeAboutDialogButton:pressed {
        background-color: rgb(212, 212, 212);
    }

QWidget#searchBarLayoutWidget, QWidget#smartList,
QWidget#sidePanelLayoutWidget, QWidget#leftSettingsWidget {
    border-right: 2px solid rgb(240, 240, 240);
}

RingContactLineEdit{
    border-radius: 15px;
    border: 2px solid rgb(240, 240, 240);
    background-color: rgb(240, 240, 240);
}

RingContactLineEdit:focus{
    border: 2px solid rgb(240, 240, 240);
    background-color: rgb(255, 255, 255);
}

.QLineEdit{
    border-color: rgb(240, 240, 240);
    border-radius: 15px;
    border-width: 2px;
    background-color: rgb(240, 240, 240);
    padding-left: 4px;
    padding-right: 4px;
    height: 30px;
}

QScrollBar:vertical {
    border: none;
    background: white;
    width: 0px;
}

QScrollBar::handle:vertical {
    background: white;
    max-width: 0px;
}

QScrollBar:horizontal {
    border: 2px solid grey;
    background: grey;
    height: 10px;
}

QScrollBar::handle:horizontal {
    background: white;
    min-width: 20px;
    border-radius: 10px;
}

QScrollBar::add-line:horizontal {
    height: 0px;
}

QScrollBar::sub-line:horizontal {
    height: 0px;
}

QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
    height: 0px;
}

SmartListView {
    background-color: white;
    border: none;
}

SmartListView::item:selected, QListView#BannedList::item:selected {
    background-color: rgba(220, 220, 220, 255);
    border: none;
}

SmartListView::item:hover, QListView#BannedList::item:hover {
    background-color: rgba(242, 242, 242, 255);
}

QWidget#messagingHeaderWidget {
    background-color: rgba(255, 255, 255, 255);
    border-bottom: 2px solid rgb(240, 240, 240);
}

QWidget#messageViewLayoutWidget, QWidget#welcomePage {
    background-color: rgba(255, 255, 255, 255);
}

QWidget#newWizardWidgetScrollAreaContents, QWidget#settingsWidgetScrollAreaContents {
    background-color: rgba(255, 255, 255, 255);
    border: none;
}

QScrollArea#newWizardWidgetScrollArea, QScrollArea#settingsWidgetScrollArea {
    border: none;
}

QPushButton#holdButton, QPushButton#chatButton, QPushButton#noMicButton, QPushButton#noVideoButton, QPushButton#hangupButton,
QPushButton#transferButton, QPushButton#addPersonButton, QPushButton#joinButton,
QPushButton#qualityButton, QPushButton#recButton, QPushButton#transferCallButton,
QPushButton#sipInputPanelButton, QPushButton#addToConferenceButton {
    background-color: transparent;
    border-radius: 18px;
    border: solid 1px;
}

    QPushButton#holdButton:hover, QPushButton#chatButton:hover, QPushButton#noMicButton:hover, QPushButton#hangupButton:hover,
    QPushButton#noVideoButton:hover, QPushButton#transferButton:hover, QPushButton#addPersonButton:hover,
    QPushButton#joinButton:hover, QPushButton#qualityButton:hover, QPushButton#addToContactButton:hover,
    QPushButton#recButton:hover, QPushButton#transferCallButton:hover,
    QPushButton#sipInputPanelButton:hover, QPushButton#addToConferenceButton:hover {
        background-color: transparent;
        border-radius: 18px;
        border: solid 1px;
    }

    QPushButton#holdButton:pressed, QPushButton#chatButton:pressed, QPushButton#noMicButton:pressed, QPushButton#hangupButton:pressed,
    QPushButton#noVideoButton:pressed, QPushButton#transferButton:pressed, QPushButton#addPersonButton:pressed,
    QPushButton#joinButton:pressed, QPushButton#qualityButton:pressed, QPushButton#addToContactButton:pressed,
    QPushButton#recButton:pressed, QPushButton#addToConferenceButton:pressed {
        background-color: transparent;
        border-radius: 18px;
        border: solid 1px;
    }

    QPushButton#holdButton:checked, QPushButton#noMicButton:checked, QPushButton#hangupButton:checked,
    QPushButton#noVideoButton:checked, QPushButton#recButton:checked,
    QPushButton#chatButton:checked, QPushButton#transferCallButton:checked,
    QPushButton#sipInputPanelButton:checked, QPushButton#addToConferenceButton:checked {
        background-color: transparent;
        border-radius: 18px;
        border: solid 1px;
    }

QPushButton#updateCancelButton {
    padding: 4px;
    background: #369;
    color: white;
    font-size: 12px;
    border: 0;
    border-radius: 3px;
    outline: 0px;
    width: 50px;
}

QPushButton#updateCancelButton:hover {
    background: #47a;
}

QPushButton#updateCancelButton:pressed {
    background: #58b;
}

QMessageBox QPushButton {
    padding: 4px;
    background: #369;
    color: white;
    font-size: 12px;
    border: 0;
    border-radius: 3px;
    outline: 0px;
    width: 50px;
}

QMessageBox QPushButton:hover {
    background: #47a;
}

QMessageBox QPushButton:pressed {
    background: #58b;
}

QToolButton#qrButton, QToolButton#shareButton {
    background-color: rgb(242, 242, 242);
    border-style: solid;
    border-width: 0px;
    border-radius: 15px;
    padding: 8px;
    color: rgb(32, 32, 32);
}

    QToolButton#qrButton:hover, QToolButton#shareButton:hover {
        background-color: rgb(237, 237, 237);
    }

    QToolButton#qrButton:pressed, QToolButton#shareButton:pressed {
        background-color: rgb(212, 212, 212);
    }

QToolButton#qrButton:checked {
    background-color: rgb(237, 237, 237);
}

QPushButton#btnvideo{
    background-color: #109ede;
    border-radius: 15px;
    border:solid 1px;
}

QWidget#messagingPage, QWidget#contactRequestPage,
QDialog#DeleteAccountDialog, QDialog#UpdateDownloadDialog,
QDialog#UpdateConfirmDialog, QDialog#AccountMigrationDialog {
    background: rgb(255, 255, 255);
}

QWidget#messagingPage {
    background: rgb(255, 255, 255);
}

QDialog#PasswordDialog,
QDialog#LinkDeviceDialog,
QDialog#DeleteAccountDialog {
    background: rgb(255, 255, 255);
}

QPushButton#deleteAccountPushButton {
    background-color: red;
    border: 0px;
    border-radius: 15px;
    height: 30px;
    color: white;
}

QPushButton#deleteAccountPushButton:hover {
    background-color: rgb(230, 0, 0);
}

QPushButton#deleteAccountPushButton:disabled {
    background-color: rgba(255, 0, 0, 0.8);
}

QPushButton#nextButton, QPushButton#playButton, QPushButton#clearHistoryButton, QPushButton#doTransferButton,
QPushButton#photoButton, QPushButton#migrationPushButton,
QPushButton#fromDeviceButton, QPushButton#newAccountButton, QPushButton#previousButton, QPushButton#exportButton, QPushButton#newSIPAccountButton, QPushButton#fromBackupButton, QPushButton#connectAccountManagerButton,
QPushButton#cancelAddButton, QPushButton#exportOnRingButton, QPushButton#addDeviceButton, QPushButton#exportEndedOkButton,
QPushButton#errorPushButton, QPushButton#registerButton, QPushButton#acceptCRButton, QPushButton#discardCRButton, QPushButton#deleteCancelBtn,
QPushButton#skipBtn, QPushButton#exportBtn,
QPushButton#dhtImportBtn, QPushButton#fileImportBtn, QPushButton#changePassBtn, QPushButton#confirmChangeBtn, QPushButton#backButton {
    background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #109ede, stop: 1.0 #2b5084);
    border: 0px;
    border-radius: 15px;
    height: 30px;
    color: white;
}

QPushButton#nextButton:disabled, QPushButton#playButton:disabled, QPushButton#clearHistoryButton:disabled,
QPushButton#doTransferButton:disabled, QPushButton#photoButton:disabled, QPushButton#fromBackupButton:disabled
QPushButton#existingPushButton:disabled, QPushButton#newAccountButton:disabled, QPushButton#previousButton:disabled, QPushButton#newSIPAccountButton:disabled,
QPushButton#exportButton:disabled, QPushButton#cancelAddButton:disabled, QPushButton#exportOnRingButton:disabled,
QPushButton#addDeviceButton:disabled, QPushButton#exportEndedOkButton:disabled, QPushButton#errorPushButton:disabled,
QPushButton#registerButton:disabled, QPushButton#acceptCRButton:disabled, QPushButton#discardCRButton:disabled,
QPushButton#deleteCancelBtn:disabled, QPushButton#dhtImportBtn:disabled, QPushButton#fileImportBtn:disabled,
QPushButton#changePassBtn:disabled, QPushButton#confirmChangeBtn:disabled, QPushButton#backButton:disabled,
QPushButton#fromDeviceButton:disabled, QPushButton#connectAccountManagerButton:disabled, QPushButton#exportBtn:disabled,
QPushButton#skipBtn:disabled, QPushButton#migrationPushButton:disabled {
    background: rgba(242, 242, 242, 0.8);
    color: grey;
}

QPushButton#blockCRButton, QPushButton#debanButton, QPushButton#deleteBanBtn,
QPushButton#cancelChangeBtn {
    background-color: rgb(251, 72, 71);
    border: 0px;
    color: white;
}

QPushButton#nextButton:hover, QPushButton#playButton:hover, QPushButton#clearHistoryButton:hover,
QPushButton#doTransferButton:hover, QPushButton#photoButton:hover, QPushButton#fromBackupButton:hover,
QPushButton#existingPushButton:hover, QPushButton#newAccountButton:hover, QPushButton#previousButton:hover, QPushButton#newSIPAccountButton:hover,
QPushButton#exportButton:hover, QPushButton#cancelAddButton:hover, QPushButton#exportOnRingButton:hover,
QPushButton#addDeviceButton:hover, QPushButton#exportEndedOkButton:hover, QPushButton#errorPushButton:hover,
QPushButton#registerButton:hover, QPushButton#acceptCRButton:hover, QPushButton#discardCRButton:hover,
QPushButton#deleteCancelBtn:hover, QPushButton#dhtImportBtn:hover, QPushButton#fileImportBtn:hover, QPushButton#migrationPushButton:hover,
QPushButton#changePassBtn:hover, QPushButton#confirmChangeBtn:hover, QPushButton#backButton:hover, QPushButton#skipBtn:hover,
QPushButton#fromDeviceButton:hover, QPushButton#connectAccountManagerButton:hover, QPushButton#exportBtn:hover {
    background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #2b4b7e, stop: 1.0 #001d4d);
    color: white;
}

QPushButton#blockCRButton:hover, QPushButton#deleteAcceptBtn:hover, QPushButton#debanButton:hover,
QPushButton#deleteButton:hover, QPushButton#deleteBanBtn:hover, QPushButton#cancelChangeBtn:hover {
    background-color: rgb(252, 91, 90);
}

QPushButton#nextButton:pressed, QPushButton#playButton:pressed, QPushButton#clearHistoryButton:pressed,
QPushButton#doTransferButton:pressed, QPushButton#photoButton:pressed, QPushButton#skipBtn:pressed, QPushButton#migrationPushButton:pressed,
QPushButton#existingPushButton:pressed, QPushButton#newAccountButton:pressed, QPushButton#previousButton:pressed, QPushButton#newSIPAccountButton:pressed,
QPushButton#exportButton:pressed, QPushButton#cancelAddButton:pressed, QPushButton#exportOnRingButton:pressed,
QPushButton#addDeviceButton:pressed, QPushButton#exportEndedOkButton:pressed, QPushButton#errorPushButton:pressed,
QPushButton#registerButton:pressed, QPushButton#acceptCRButton:pressed, QPushButton#discardCRButton:pressed,
QPushButton#deleteCancelBtn:pressed, QPushButton#dhtImportBtn:pressed, QPushButton#fileImportBtn:pressed,
QPushButton#changePassBtn:pressed, QPushButton#confirmChangeBtn:pressed, QPushButton#backButton:pressed, QPushButton#exportBtn:pressed {
    background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #043161, stop: 1.0 #00113f);
    color: white;
}

QPushButton#blockCRButton:pressed, QPushButton#deleteAcceptBtn:pressed, QPushButton#debanButton:pressed,
QPushButton#deleteBanBtn:pressed, QPushButton#cancelChangeBtn:pressed{
    background-color: rgb(219, 55, 54);
}

QPushButton#btnChangePasswordCancel {
    background-color: rgb(252, 91, 90);
    color: white;
}

QPushButton#btnChangePasswordCancel:hover {
    background-color: red;
    color: white;
}

QPushButton#btnChangePasswordCancel:pressed {
    background-color: darkred;
    color: white;
}

QComboBox{
    background: transparent;
    border-radius: 0px;
    border-style: solid;
    border-width: 2px;
    border-color: #414141;
    border-bottom: transparent;
    border-top: transparent;
    border-left: transparent;
    border-right: transparent;
    font-family: "Sans Serif";
    padding: 2px;
}

QComboBox::down-arrow{
    border-radius: 0px;
    border-style: solid;
    border-width: 2px;
    height: 36;
    width : 36;
    image: url(":/images/icons/ic_arrow_drop_down_black_18dp_2x.png");
}

QComboBox::drop-down{
    border: 0;
    width: 36px;
}

QRadioButton::indicator{
    width: 1   ;
    height: 12px;
    border-radius: 8px;
    border-width: 2px;
    border-style: solid;
}

QRadioButton::indicator:unchecked{
    border-color: rgb(77, 77, 77);
    background: transparent;
}

QRadioButton::indicator:checked{
    background: #109ede;
    border-color: #109ede;
    image: url(":/images/icons/ic_check_white_18dp_2x.png");
}

QWidget#horizontalWidget{
    background: transparent;
}

QCheckBox::indicator{
    height : 12 px;
    width : 12 px;
    border: 2px solid rgb(77, 77, 77);
    border-radius: 4px;
    background: none;
}

QCheckBox::indicator:checked{
    border-color: #2b4b7e;
    background: #2b4b7e;
    image: url(":/images/icons/ic_check_white_18dp_2x.png");
}

QSpinBox::down-button{
    height: 9;
    width : 9;
    image: url(":/images/icons/ic_arrow_drop_down_black_9dp_2x.png");
}

QSpinBox::up-button{
    height: 9;
    width : 9;
    image: url(":/images/icons/ic_arrow_drop_up_black_9dp_2x.png");
}

QLineEdit#lrcfg_alias:focus, QLineEdit#lrcfg_hostname:focus, QLineEdit#lrcfg_password:focus,
QLineEdit#lrcfg_proxy:focus, QLineEdit#lrcfg_mailbox:focus, QLineEdit#lrcfg_tlsPassword:focus,
QLineEdit#lrcfg_tlsServerName:focus, QLineEdit#lrcfg_turnServerRealm:focus, QLineEdit#lrcfg_turnServerUsername:focus,
QLineEdit#lrcfg_turnServerPassword:focus, QLineEdit#lrcfg_turnServer:focus, QLineEdit#lrcfg_publishedAddress:focus,
QLineEdit#lrcfg_registeredName:focus, QLineEdit#lrcfg_nameServiceURL:focus, QLineEdit#lrcfg_username:focus,
QLineEdit#profileNameEdit:focus{
    border-color: #109ede;
}

QTabWidget#tabWidget{
    border-color: transparent;
}

QPushButton#upAudioButton, QPushButton#downAudioButton, QPushButton#upVideoButton, QPushButton#downVideoButton{
    background: transparent;
}

QPushButton#avatarButton:hover {
    border: 2px solid rgb(77, 77, 77);
    border-radius: 50px;
}

QWidget#leftPannel{
    background: white;
}

QSlider::groove:vertical{
    background: red;
    position: absolute; /* absolutely position 4px from the left and right of the widget. setting margins on the widget should work too... */
    width:2px;
}

QSlider::handle:vertical{
    height: 10px;
    background: #109ede;
    border-radius: 5px;
    margin: 0 -4px;
}

QSlider::sub-page:vertical{
    background: #777777;
}

QSlider::add-page:vertical{
    background: #109ede;
}

QToolButton::menu-button {image:none;}

QToolButton::menu-arrow {image:none;}

QLabel#accountIdLabel, QLabel#accountAliasLabel, QLabel#deletionLabel1, QLabel#deletionLabel2,
QLabel#warningLabel{
    background: transparent;
}

QLabel#accountAliasLabel, QLabel#deletionLabel1, QLabel#deletionLabel2{
    color: black;
}

QLabel#warningLabel{
    color: red;
}

QLabel#labelWarning {
    color: darkorange;
}

QLabel#accountIdLabel{
    color: LightSlateGrey;
    font-style: italic;
}

QLabel#accountAliasLabel{
    font-weight: bold;
}

QLabel#dragDropLabel {
    /*rgba 0.95 opacity (transparency)*/
    font-size: 20px;
    border: 2px dashed black;
    border-radius: 10px;
    background: rgba(216, 234, 252, 0.95);
}

QLabel#wrongPasswordLabel {
    color: red;
    margin-left: 8px;
}

/* setAvatarDialog { */
QPushButton#pictureButton:default, QPushButton#fileButton:default {
    background-color: rgb(0, 192, 213,);
}

QPushButton#pictureButton:checked, QPushButton#fileButton:checked {
    background-color: rgb(0, 0, 213);
}
/* } setAvatarDialog */

QSpinBox {
    background-color: rgb(240, 240, 240);
    border-radius: 14px;
    height: 28px;
    padding: 2px;
    margin-bottom: 4px;
}

QSpinBox::up-button {
    subcontrol-origin: border;
    subcontrol-position: top right;
    width: 16px;
    height: 18px;
    padding-right: 4px;
    margin-top: 3px;
}

QSpinBox::down-button {
    subcontrol-origin: border;
    subcontrol-position: bottom right;
    width: 16px;
    height: 18px;
    padding-right: 4px;
    margin-bottom: 3px;
}

/* SettingsWidget { */
SettingsWidget QLabel#exportedPIN {
    color: darkblue;
    margin-bottom: 4px;
}

SettingsWidget QPushButton {
    padding-right: 16px;
    padding-left: 16px;
    border-style: solid;
    border-width: 0px;
    border-radius: 15px;
    color: rgb(32, 32, 32);
    background-color: rgb(242, 242, 242);
}

SettingsWidget QPushButton:hover {
    background-color: rgb(237, 237, 237);
}

SettingsWidget QPushButton:pressed {
    background-color: rgb(212, 212, 212);
}

SettingsWidget QPushButton:disabled {
    color: gray;
}

SettingsWidget QLabel:disabled {
    color: rgb(160, 160, 160);
}

SettingsWidget QWidget#leftSettingsWidget,
SettingsWidget QWidget#rightSettingsWidget,
SettingsWidget QWidget#DeleteAccountDialog,
SettingsWidget QWidget#advancedSettingsWidget,
SettingsWidget QWidget#advancedSIPSettingsWidget,
SettingsWidget QWidget#NameRegistrationDialog,
SettingsWidget QWidget#centralWidget,
SettingsWidget QWidget#centralSIPWidget,
SettingsWidget QWidget#scrollAreaWidgetContents,
SettingsWidget QWidget#scrollAreaSIPWidgetContents {
    background-color: rgba(255, 255, 255, 255);
}

SettingsWidget .QLineEdit {
    border-radius: 15px;
    background-color: rgb(240, 240, 240);
    padding-left: 8px;
    padding-right: 8px;
    height: 30px;
}

SettingsWidget QLineEdit#currentRingID {
    border: 0px;
    border-radius: 0px;
    padding: 0px;
    background-color: transparent;
    font-weight: bold;
}

SettingsWidget QLineEdit#currentRegisteredID {
    border: 2px;
    border-radius: 15px;
    padding: 1px;
    padding-left: 8px;
    margin-right: 4px;
    border-style: solid;
    background-color: rgb(240, 240, 240);
}

SettingsWidget QPushButton#regNameButton {
    background-color: transparent;
}

SettingsWidget QWidget#videoLayoutWidget {
    background-color: black;
}

SettingsWidget QPushButton#btnDeletAccount,
SettingsWidget QPushButton#btnSIPDeletAccount {
    background-color: rgb(252, 91, 90);
    color: white;
}

SettingsWidget QPushButton#btnDeletAccount:hover,
SettingsWidget QPushButton#btnSIPDeletAccount:hover {
    background-color: red;
    color: white;
}

SettingsWidget QPushButton#btnDeletAccount:pressed,
SettingsWidget QPushButton#btnSIPDeletAccount:pressed {
    background-color: darkred;
    color: white;
}

QListView .QLabel#labelDeviceId {
    padding-left: 4px;
    font-weight: 300;
}

QListView .QLabel#labelThisDevice {
    margin-right: 16px;
    font-style: italic;
    color: green;
}

QListWidget .QLabel {
    background-color: transparent;
}

QListWidget .QLineEdit {
    background-color: transparent;
}

QListWidget .QPushButton {
    background-color: transparent;
}
    QListWidget .QPushButton:hover {
        background-color: transparent;
    }
    QListWidget .QPushButton:pressed {
        background-color: transparent;
    }

QListView::item:selected {
    background-color: rgb(220, 220, 220);
}

SettingsWidget QListView {
    background-color: whitesmoke;
    border: 1px solid rgb(212, 212, 212);
    font-size: 16px;
}

SettingsWidget QListView::item {
    height: 30px;
    font: 30px;
    padding: 8px;
}

SettingsWidget QListView::indicator {
    height: 12 px;
    width: 12 px;
    border: 2px solid rgb(77, 77, 77);
    border-radius: 4px;
    background: none;
}

SettingsWidget QListView::indicator:checked {
    border-color: #2b4b7e;
    background: #2b4b7e;
    image: url(":/images/icons/ic_check_white_18dp_2x.png");
}

SettingsWidget QListView::item:selected {
    background-color: rgba(220, 220, 220, 255);
    border: none;
    color: black;
}

SettingsWidget QListView::item:hover {
    background-color: rgba(229, 229, 229, 255);
}

SettingsWidget QListView::item:disabled {
    background-color: transparent;
}

/* } SettingsWidget */

QPushButton#panelButton_0, QPushButton#panelButton_1, QPushButton#panelButton_2,
QPushButton#panelButton_3, QPushButton#panelButton_4, QPushButton#panelButton_5,
QPushButton#panelButton_6, QPushButton#panelButton_7, QPushButton#panelButton_8,
QPushButton#panelButton_9, QPushButton#panelButton_hash, QPushButton#panelButton_A,
QPushButton#panelButton_B, QPushButton#panelButton_C, QPushButton#panelButton_D {
    text-align: center;
    text-decoration: none;
    background: #369;
    color: white;
    border: 0;
    border-radius: 19px;
    padding-bottom: 4px;
}

QPushButton#panelButton_star {
    text-align: center;
    text-decoration: none;
    background: #369;
    color: white;
    border: 0;
    border-radius: 19px;
    padding-top: 4px;
}

QPushButton#panelButton_0:hover, QPushButton#panelButton_1:hover, QPushButton#panelButton_2:hover,
QPushButton#panelButton_3:hover, QPushButton#panelButton_4:hover, QPushButton#panelButton_5:hover,
QPushButton#panelButton_6:hover, QPushButton#panelButton_7:hover, QPushButton#panelButton_8:hover,
QPushButton#panelButton_9:hover, QPushButton#panelButton_hash:hover, QPushButton#panelButton_star:hover,
QPushButton#panelButton_A:hover, QPushButton#panelButton_B:hover, QPushButton#panelButton_C:hover,
QPushButton#panelButton_D:hover {
    background: #47a;
}

QPushButton#panelButton_0:pressed, QPushButton#panelButton_1:pressed, QPushButton#panelButton_2:pressed,
QPushButton#panelButton_3:pressed, QPushButton#panelButton_4:pressed, QPushButton#panelButton_5:pressed,
QPushButton#panelButton_6:pressed, QPushButton#panelButton_7:pressed, QPushButton#panelButton_8:pressed,
QPushButton#panelButton_9:pressed, QPushButton#panelButton_hash:pressed, QPushButton#panelButton_star:pressed,
QPushButton#panelButton_A:pressed, QPushButton#panelButton_B:pressed, QPushButton#panelButton_C:pressed,
QPushButton#panelButton_D:pressed {
    background: #58b;
}

QProgressBar#audioInputMeter {
    border: 0px solid #606060;
    background: lightgrey;
}

    QProgressBar#audioInputMeter::chunk {
        background-color: #0c79aa;
        margin: 2px;
    }

QLabel#nameLabel {
    font-size: 20px;
    font-style: initial;
    qproperty-alignment: AlignCenter;
    color: white;
}

QWidget#videoPage {
    background: black;
}

QPushButton#recordOverlayStartOrFinishRecordingBtn, QPushButton#recordOverlayDeleteBtn, QPushButton#recordOverlayPlayBtn, QPushButton#recordOverlayRerecordBtn, QPushButton#recordOverlaySendBtn,
QPushButton#recordOverlayStopPlayingBtn {
    background-color: transparent;
    border-radius: 18px;
    border: solid 1px;
}

QPushButton#recordOverlayStartOrFinishRecordingBtn:hover, QPushButton#recordOverlayDeleteBtn:hover, QPushButton#recordOverlayPlayBtn:hover, QPushButton#recordOverlayRerecordBtn:hover, QPushButton#recordOverlaySendBtn:hover,
QPushButton#recordOverlayStopPlayingBtn:hover {
    background-color: transparent;
    border-radius: 18px;
    border: solid 1px;
}

QPushButton#recordOverlayStartOrFinishRecordingBtn:pressed, QPushButton#recordOverlayDeleteBtn:pressed, QPushButton#recordOverlayPlayBtn:pressed, QPushButton#recordOverlayRerecordBtn:pressed, QPushButton#recordOverlaySendBtn:pressed,
QPushButton#recordOverlayStopPlayingBtn:pressed {
    background-color: transparent;
    border-radius: 18px;
    border: solid 1px;
}

QPushButton#recordOverlayStartOrFinishRecordingBtn:checked, QPushButton#recordOverlayDeleteBtn:checked, QPushButton#recordOverlayPlayBtn:checked, QPushButton#recordOverlayRerecordBtn:checked, QPushButton#recordOverlaySendBtn:checked,
QPushButton#recordOverlayStopPlayingBtn:checked {
    background-color: transparent;
    border-radius: 18px;
    border: solid 1px;
}

QWidget#RecordWidget {
    background-color: transparent;
}

QLabel#timerLabel {
    background-color: transparent;
    color: white;
}

QProgressBar#levelMeter {
    border: 2px solid white;
    text-align: center;
    background: transparent;
}

    QProgressBar#levelMeter::chunk {
        background-color: white;
        margin: 2px;
    }

QScrollArea#changeLogScrollArea {
    background-color: transparent;
    color: white;
    border: none;
}

QWidget#changeLogContents {
    background-color: transparent;
    color: white;
    border: none;
}

QTextEdit#logTextEdit {
    background-color: white;
    color: black;
}

QPushButton#logCloseButton {
    background-color: rgb(189, 189, 189);
}

    QPushButton#logCloseButton:hover {
        background-color: rgb(170, 170, 170);
    }
    QPushButton#logCloseButton:pressed {
        background-color: rgb(180, 180, 180);
    }

FullScreenNotification {
    font-size: 24px;
    color: white;
    background-color: black;
    border: 2px solid white;
    padding: 100px;
}