@define-color bg_color -gtk-win32-color(button, 15);
@define-color text_color -gtk-win32-color(button, 18);
@define-color base_color #fff;
@define-color selected_bg_color -gtk-win32-color(button, 13);
@define-color selected_fg_color -gtk-win32-color(button, 14);
@define-color info_fg_color rgb (181, 171, 156);
@define-color info_bg_color rgb (252, 252, 189);
@define-color warning_fg_color rgb (173, 120, 41);
@define-color warning_bg_color rgb (250, 173, 61);
@define-color question_fg_color rgb (97, 122, 214);
@define-color question_bg_color rgb (138, 173, 212);
@define-color error_fg_color rgb (166, 38, 38);
@define-color error_bg_color rgb (237, 54, 54);

@define-color app_notification_a #aeaea4;
@define-color app_notification_b #d1d1cb;
@define-color app_notification_c #d8d8d3;

@define-color app_notification_border #949486;

@define-color primary_toolbarbutton_text_shadow alpha(black, 0.1);

.background,
viewport {
    background-color: @bg_color;
    color: -gtk-win32-color(button, 18);
    border-color: shade (@bg_color, 0.6);
}

* {
    -GtkScrolledWindow-scrollbars-spacing: 0;
}

:link {
    color: -gtk-win32-color(button, 26);
}

:visited {
    color: -gtk-win32-color(button, 26);
}

frame {
    border-width: 2px;
    border-style: solid;
    background-color: transparent;
    border-image: -gtk-win32-theme-part(button, 4 1) 2 2 2 2 stretch;
}

*:disabled {
    color: -gtk-win32-color(button, 17);
}

*:selected,
*:selected:focus {
    background-color: @selected_bg_color;
    color: @selected_fg_color;
}

.info {
    background-color: @info_bg_color;
    color: @info_fg_color;
}

.warning {
    background-color: @warning_bg_color;
    color: @warning_fg_color;
}

.question {
    background-color: @question_bg_color;
    color: @question_fg_color;
}

.error {
    background-color: @error_bg_color;
    color: @error_fg_color;
}

.highlight {
    background-color: @selected_bg_color;
    color: @selected_fg_color;
}

.light-area-focus {
    color: #000;
}

.dark-area-focus {
    color: #fff;
}

notebook > scrolledwindow.frame {
    border-style: none;
}

scrolledwindow.frame {
  border-style: solid;
  border-width: 2px;
  border-image: -gtk-win32-theme-part(listview, 5 1) 2 2 2 2 stretch;
}

.view {
  border-width: 0;
  border-radius: 0;
  background-color: @base_color;
  color: @text_color;
}

.view:selected {
  background-color: shade (@bg_color, 0.9);
  color: @fg_color;
}

.view:selected:focus {
  background-color: @selected_bg_color;
  color: @selected_fg_color;
}

tooltip {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(tooltip, 3 1);
    color: -gtk-win32-color(button, 23);
    border-width: 0px;
}

tooltip * {
    color: -gtk-win32-color(button, 23);
}

assistant .sidebar .highlight {
    font: bold;
    color:  -gtk-win32-color(button, 9);
}

/* checkmarks */

check {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 1);
    min-width: -gtk-win32-part-width(button, 3, 1);
    min-height: -gtk-win32-part-height(button, 3, 1);
}

check:hover {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 2);
    min-width: -gtk-win32-part-width(button, 3, 2);
    min-height: -gtk-win32-part-height(button, 3, 2);
}

check:active {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 3);
    min-width: -gtk-win32-part-width(button, 3, 3);
    min-height: -gtk-win32-part-height(button, 3, 3);
}

check:disabled {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 4);
    min-width: -gtk-win32-part-width(button, 3, 4);
    min-height: -gtk-win32-part-height(button, 3, 4);
}

check:checked {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 5);
    min-width: -gtk-win32-part-width(button, 3, 5);
    min-height: -gtk-win32-part-height(button, 3, 5);
}

check:checked:hover {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 6);
    min-width: -gtk-win32-part-width(button, 3, 6);
    min-height: -gtk-win32-part-height(button, 3, 6);
}

check:checked:active {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 7);
    min-width: -gtk-win32-part-width(button, 3, 7);
    min-height: -gtk-win32-part-height(button, 3, 7);
}

check:checked:disabled {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 8);
    min-width: -gtk-win32-part-width(button, 3, 8);
    min-height: -gtk-win32-part-height(button, 3, 8);
}

check:indeterminate {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 9);
    min-width: -gtk-win32-part-width(button, 3, 9);
    min-height: -gtk-win32-part-height(button, 3, 9);
}

check:indeterminate:hover {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 10);
    min-width: -gtk-win32-part-width(button, 3, 10);
    min-height: -gtk-win32-part-height(button, 3, 10);
}

check:indeterminate:active {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 11);
    min-width: -gtk-win32-part-width(button, 3, 11);
    min-height: -gtk-win32-part-height(button, 3, 11);
}

check:indeterminate:disabled {
    -gtk-icon-source: -gtk-win32-theme-part(button, 3 12);
    min-width: -gtk-win32-part-width(button, 3, 12);
    min-height: -gtk-win32-part-height(button, 3, 12);
}

/* radiomarks */

radio {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 1);
    min-width: -gtk-win32-part-width(button, 2, 1);
    min-height: -gtk-win32-part-height(button, 2, 1);
}

radio:hover {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 2);
    min-width: -gtk-win32-part-width(button, 2, 2);
    min-height: -gtk-win32-part-height(button, 2, 2);
}

radio:active {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 3);
    min-width: -gtk-win32-part-width(button, 2, 3);
    min-height: -gtk-win32-part-height(button, 2, 3);
}

radio:disabled {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 4);
    min-width: -gtk-win32-part-width(button, 2, 4);
    min-height: -gtk-win32-part-height(button, 2, 4);
}

radio:checked {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 5);
    min-width: -gtk-win32-part-width(button, 2, 5);
    min-height: -gtk-win32-part-height(button, 2, 5);
}

radio:checked:hover {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 6);
    min-width: -gtk-win32-part-width(button, 2, 6);
    min-height: -gtk-win32-part-height(button, 2, 6);
}

radio:checked:active {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 7);
    min-width: -gtk-win32-part-width(button, 2, 7);
    min-height: -gtk-win32-part-height(button, 2, 7);
}

radio:checked:disabled {
    -gtk-icon-source: -gtk-win32-theme-part(button, 2 8);
    min-width: -gtk-win32-part-width(button, 2, 8);
    min-height: -gtk-win32-part-height(button, 2, 8);
}

radio:indeterminate {
    -gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2 5), -gtk-win32-theme-part(button, 2 1));
    min-width: -gtk-win32-part-width(button, 2, 9);
    min-height: -gtk-win32-part-height(button, 2, 9);
}

radio:indeterminate:hover {
    -gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2 6), -gtk-win32-theme-part(button, 2 2));
    min-width: -gtk-win32-part-width(button, 2, 2);
    min-height: -gtk-win32-part-height(button, 2, 2);
}

radio:indeterminate:active {
    -gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2 7), -gtk-win32-theme-part(button, 2 3));
    min-width: -gtk-win32-part-width(button, 2, 3);
    min-height: -gtk-win32-part-height(button, 2, 3);
}

radio:indeterminate:disabled {
    -gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2 8), -gtk-win32-theme-part(button, 2 4));
    min-width: -gtk-win32-part-width(button, 2, 4);
    min-height: -gtk-win32-part-height(button, 2, 4);
}

/* Buttons */

button {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(button, 1 1);
    border-width: 0;
    padding: 3px;
}

button:disabled {
    background-image: -gtk-win32-theme-part(button, 1 4);
}

button:focus {
    background-image: -gtk-win32-theme-part(button, 1 5);
}

button:hover, button:hover:focus {
    background-image: -gtk-win32-theme-part(button, 1 2);
    color: @text_color;
}

button:active, button:active:focus, button:active:focus:hover {
    background-image: -gtk-win32-theme-part(button, 1 3);
    color: @text_color;
}

/* Override *:selected { ...} style; affects horizontalbuttons */
button:selected {
  background-color: transparent;
}

/* Scrollbars */

/* TODO: Win32 has different concept for upper and lower trough, we
   don't use this atm */

scrollbar {
    background-color: transparent;
    -GtkRange-trough-border: 0;
    -GtkRange-arrow-scaling: 0.0;
    -GtkRange-slider-width: -gtk-win32-size(scrollbar, 3);
}

scrollbar.vertical {
    -GtkRange-slider-width: -gtk-win32-size(scrollbar, 2);
}

scrollbar button.bottom {
    background-image: -gtk-win32-theme-part(scrollbar, 1 5);
}

scrollbar button.bottom:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 6);
}

scrollbar button.bottom:active,
scrollbar button.bottom:active:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 7);
}

scrollbar button.bottom:disabled {
    background-image: -gtk-win32-theme-part(scrollbar, 1 8);
}

scrollbar button.top {
    background-image: -gtk-win32-theme-part(scrollbar, 1 1);
}

scrollbar button.top:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 2);
}

scrollbar button.top:active,
scrollbar button.top:active:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 3);
}

scrollbar button.top:disabled {
    background-image: -gtk-win32-theme-part(scrollbar, 1 4);
}

scrollbar button.left {
    background-image: -gtk-win32-theme-part(scrollbar, 1 9);
}

scrollbar button.left:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 10);
}

scrollbar button.left:active,
scrollbar button.left:active:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 11);
}

scrollbar button.left:disabled {
    background-image: -gtk-win32-theme-part(scrollbar, 1 12);
}

scrollbar button.right {
    background-image: -gtk-win32-theme-part(scrollbar, 1 13);
}

scrollbar button.right:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 14);
}

scrollbar button.right:active,
scrollbar button.right:active:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 1 15);
}

scrollbar button.right:disabled {
    background-image: -gtk-win32-theme-part(scrollbar, 1 16);
}

scrollbar trough {
    border-width: 0;
    background-image: -gtk-win32-theme-part(scrollbar, 2 1, over (4 1));
}

scrollbar trough.vertical {
    border-width: 0;
    background-image: -gtk-win32-theme-part(scrollbar, 2 1, over (6 1));
}

scrollbar slider {
    border-width: 0;
    background-image: -gtk-win32-theme-part(scrollbar, 2 1, over (8 1));
}

scrollbar slider:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 2 2, over (8 2));
}

scrollbar slider:active {
    background-image: -gtk-win32-theme-part(scrollbar, 2 3, over (8 3));
}

scrollbar slider:disabled {
  /* There's a theme part for "disabled slider", but the only app observed
     to have a disabled scrollbar (Notepad) does not draw its slider at all
     when scrollbar is disabled. */
  background-image: none;
  background-color: transparent;
}

scrollbar.vertical slider {
    background-image: -gtk-win32-theme-part(scrollbar, 3 1, over (9 1));
}

scrollbar.vertical slider:hover {
    background-image: -gtk-win32-theme-part(scrollbar, 3 2, over (9 2));
}

scrollbar.vertical slider:active {
    background-image: -gtk-win32-theme-part(scrollbar, 3 3, over (9 3));
}

scrollbar.vertical slider:disabled {
  background-image: none;
  background-color: transparent;
}

/* Entry */

/* We apply the border as a border combined with the background so that
   gtk_entry_set_has_frame works */

entry {
    border-width: 1px;
    border-style: solid;
    border-image: -gtk-win32-theme-part(edit, 6 1)  1 1 1 1 stretch;
    background-image: -gtk-win32-theme-part(edit, 6 1, margins(-1 -1 -1 -1));
    padding: 2px;
}
entry:disabled {
    border-image: -gtk-win32-theme-part(edit, 6 4)  1 1 1 1 stretch;
    background-image: -gtk-win32-theme-part(edit, 6 4, margins(-1 -1 -1 -1));
    color: #a7aba7;
}
entry:hover {
    border-image: -gtk-win32-theme-part(edit, 6 2)  1 1 1 1 stretch;
    background-image: -gtk-win32-theme-part(edit, 6 2, margins(-1 -1 -1 -1));
}
entry:focus {
    border-image: -gtk-win32-theme-part(edit, 6 3)  1 1 1 1 stretch;
    background-image: -gtk-win32-theme-part(edit, 6 3, margins(-1 -1 -1 -1));
}

/* Spibuttons */

spinbutton button,
spinbutton button:focus {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(spin, 2 1, margins(0 -1 -1 -1));
    color: rgba(0, 0, 0, 0);
}

spinbutton button:last-child,
spinbutton button:focus:last-child {
    background-image: -gtk-win32-theme-part(spin, 1 1, margins(-1 -1 0 -1));
}

spinbutton button:hover,
spinbutton button:hover:focus {
    background-image: -gtk-win32-theme-part(spin, 2 2, margins(0 -1 -1 -1));
}

spinbutton button:hover:last-child,
spinbutton button:hover:focus:last-child {
    background-image: -gtk-win32-theme-part(spin, 1 2, margins(-1 -1 0 -1));
}


spinbutton button:active,
spinbutton button:active:hover,
spinbutton button:active:focus,
spinbutton button:active:hover:focus {
    background-image: -gtk-win32-theme-part(spin, 2 3, margins(0 -1 -1 -1));
}

spinbutton button:active:last-child,
spinbutton button:active:hover:last-child,
spinbutton button:active:focus:last-child,
spinbutton button:active:hover:focus:last-child {
    background-image: -gtk-win32-theme-part(spin, 1 3, margins(-1 -1 0 -1));
}

spinbutton button:disabled {
    background-image: -gtk-win32-theme-part(spin, 2 4, margins(0 -1 -1 -1));
}

spinbutton button:disabled:last-child {
    background-image: -gtk-win32-theme-part(spin, 1 4, margins(-1 -1 0 -1));
}



spinbutton.vertical button,
spinbutton.vertical button:focus {
    background-color: transparent;
    color: rgba(0, 0, 0, 0);
    background-image: -gtk-win32-theme-part(spin, 1 1, margins(0 -1 -0 -1));
}

spinbutton.vertical button:last-child,
spinbutton.vertical button:focus:last-child {
    background-image: -gtk-win32-theme-part(spin, 2 1, margins(0 -1 0 -1));
}


spinbutton.vertical button:hover,
spinbutton.vertical button:hover:focus {
    background-image: -gtk-win32-theme-part(spin, 1 2, margins(0 -1 -0 -1));
}

spinbutton.vertical button:hover:last-child,
spinbutton.vertical button:hover:focus:last-child {
    background-image: -gtk-win32-theme-part(spin, 2 2, margins(0 -1 0 -1));
}


spinbutton.vertical button:active,
spinbutton.vertical button:active:hover,
spinbutton.vertical button:active:focus,
spinbutton.vertical button:active:hover:focus {
    background-image: -gtk-win32-theme-part(spin, 1 3, margins(0 -1 -0 -1));
}

spinbutton.vertical button:active:last-child,
spinbutton.vertical button:active:hover:last-child,
spinbutton.vertical button:active:focus:last-child,
spinbutton.vertical button:active:hover:focus:last-child {
    background-image: -gtk-win32-theme-part(spin, 2 3, margins(0 -1 0 -1));
}

spinbutton.vertical button:disabled {
    background-image: -gtk-win32-theme-part(spin, 1 4, margins(0 -1 -0 -1));
}

spinbutton.vertical button:disabled:last-child {
    background-image: -gtk-win32-theme-part(spin, 2 4, margins(0 -1 0 -1));
}



spinbutton button:dir(rtl),
spinbutton button:focus:dir(rtl) {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(spin, 2 1, margins(0 -1 -1 -1));
    color: rgba(0, 0, 0, 0);
}

spinbutton button:first-child:dir(rtl),
spinbutton button:focus:first-child:dir(rtl) {
    background-image: -gtk-win32-theme-part(spin, 1 1, margins(-1 -1 0 -1));
}

spinbutton button:hover:dir(rtl),
spinbutton button:hover:focus:dir(rtl) {
    background-image: -gtk-win32-theme-part(spin, 2 2, margins(0 -1 -1 -1));
}

spinbutton button:hover:first-child:dir(rtl),
spinbutton button:hover:focus:first-child:dir(rtl) {
    background-image: -gtk-win32-theme-part(spin, 1 2, margins(-1 -1 0 -1));
}


spinbutton button:active:dir(rtl),
spinbutton button:active:hover:dir(rtl),
spinbutton button:active:focus:dir(rtl),
spinbutton button:active:hover:focus:dir(rtl) {
    background-image: -gtk-win32-theme-part(spin, 2 3, margins(0 -1 -1 -1));
}

spinbutton button:active:first-child:dir(rtl),
spinbutton button:active:hover:first-child:dir(rtl),
spinbutton button:active:focus:first-child:dir(rtl),
spinbutton button:active:hover:focus:first-child:dir(rtl) {
    background-image: -gtk-win32-theme-part(spin, 1 3, margins(-1 -1 0 -1));
}

spinbutton button:disabled:dir(rtl) {
    background-image: -gtk-win32-theme-part(spin, 2 4, margins(0 -1 -1 -1));
}

spinbutton button:disabled:first-child:dir(rtl) {
    background-image: -gtk-win32-theme-part(spin, 1 4, margins(-1 -1 0 -1));
}

/* Ranges */

/* TODO: The trough is not quite right, it covers everything,
   but in win32 the slider 'sticks out' on the sides of the
   trough */

scale {
    background-color: transparent;
    -GtkScale-value-spacing: 0;
    -GtkScale-slider-length: 12;
    -GtkRange-slider-width: 20;
    -GtkRange-trough-border: 0;
}

scale trough {
    margin: 8px 0;
    border-style: none;
    border-width: 0;
    background-image: -gtk-win32-theme-part(trackbar, 1 1);
}

scale.vertical trough {
    margin: 0 8px;
    background-image: -gtk-win32-theme-part(trackbar, 1 1);
}

scale.mark.separator {
    /* defines the color of the actuall marks on the scale */
    color: shade(@bg_color, 0.6);
}

scale slider {
    background-color: transparent;
    border-width: 0;
    color: rgba(0,0,0,0);
    background-image: -gtk-win32-theme-part(trackbar, 3 1);
}

scale slider:hover {
    background-image: -gtk-win32-theme-part(trackbar, 3 2);
}

scale slider:active,
scale slider:hover:active {
    background-image: -gtk-win32-theme-part(trackbar, 3 3);
}

scale slider:focus {
    background-image: -gtk-win32-theme-part(trackbar, 3 4);
}

scale slider:disabled {
    background-image: -gtk-win32-theme-part(trackbar, 3 5);
}

scale.vertical slider {
    background-image: -gtk-win32-theme-part(trackbar, 6 1);
}

scale.vertical slider:hover {
    background-image: -gtk-win32-theme-part(trackbar, 6 2);
}

scale.vertical slider:active,
scale.vertical slider:hover:active {
    background-image: -gtk-win32-theme-part(trackbar, 6 3);
}

scale.vertical slider:focus {
    background-image: -gtk-win32-theme-part(trackbar, 6 4);
}

scale.vertical slider:disabled {
    background-image: -gtk-win32-theme-part(trackbar, 6 5);
}

scale marks.bottom {
    background-image: -gtk-win32-theme-part(trackbar, 4 1, margins(0 -2 0 0));
}

scale marks.bottom:hover {
    background-image: -gtk-win32-theme-part(trackbar, 4 2, margins(0 -2 0 0));
}

scale marks.bottom:active,
scale marks.bottom:hover:active {
    background-image: -gtk-win32-theme-part(trackbar, 4 3, margins(0 -2 0 0));
}

scale marks.bottom:focus {
    background-image: -gtk-win32-theme-part(trackbar, 4 4, margins(0 -2 0 0));
}

scale marks.bottom:disabled {
    background-image: -gtk-win32-theme-part(trackbar, 4 5, margins(0 -2 0 0));
}

scale.vertical marks.bottom {
    background-image: -gtk-win32-theme-part(trackbar, 8 1, margins(0 0 -2 0));
}

scale.vertical marks.bottom:hover {
    background-image: -gtk-win32-theme-part(trackbar, 8 2, margins(0 0 -2 0));
}

scale.vertical marks.bottom:active,
scale.vertical marks.bottom:hover:active {
    background-image: -gtk-win32-theme-part(trackbar, 8 3, margins(0 0 -2 0));
}

scale.vertical marks.bottom:focus {
    background-image: -gtk-win32-theme-part(trackbar, 8 4, margins(0 0 -2 0));
}

scale.vertical marks.bottom:disabled {
    background-image: -gtk-win32-theme-part(trackbar, 8 5, margins(0 0 -2 0));
}



scale marks.top {
    background-image: -gtk-win32-theme-part(trackbar, 5 1, margins(0 -2 0 0));
}

scale marks.top:hover {
    background-image: -gtk-win32-theme-part(trackbar, 5 2, margins(0 -2 0 0));
}

scale marks.top:active,
scale marks.top:hover:active {
    background-image: -gtk-win32-theme-part(trackbar, 5 3, margins(0 -2 0 0));
}

scale marks.top:focus {
    background-image: -gtk-win32-theme-part(trackbar, 5 4, margins(0 -2 0 0));
}

scale marks.top:disabled {
    background-image: -gtk-win32-theme-part(trackbar, 5 5, margins(0 -2 0 0));
}

scale.vertical marks.top {
    background-image: -gtk-win32-theme-part(trackbar, 7 1, margins(0 0 -2 0));
}

scale.vertical marks.top:hover {
    background-image: -gtk-win32-theme-part(trackbar, 7 2, margins(0 0 -2 0));
}

scale.vertical marks.top:active,
scale.vertical marks.top:hover:active {
    background-image: -gtk-win32-theme-part(trackbar, 7 3, margins(0 0 -2 0));
}

scale.vertical marks.top:focus {
    background-image: -gtk-win32-theme-part(trackbar, 7 4, margins(0 0 -2 0));
}

scale.vertical marks.top:disabled {
    background-image: -gtk-win32-theme-part(trackbar, 7 5, margins(0 0 -2 0));
}

/* Progress bars */

progressbar {
    background-color: transparent;
    padding: 0;
}

progressbar trough {
    border-width: 0;
    background-image: -gtk-win32-theme-part(progress, 1 1);
}

progressbar progress,
entry progress,
entry progress:focus {
    border-width: 0;
    background-image: -gtk-win32-theme-part(progress, 5 1);
}

progressbar progress.pulse,
entry progress.pulse,
entry progress.pulse:focus {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(progress, 8 1);
}

progressbar.vertical trough {
    background-image: -gtk-win32-theme-part(progress, 2 1);
}

progressbar.vertical progress {
    background-image: -gtk-win32-theme-part(progress, 6 1);
}

progressbar.vertical progress.pulse {
    background-image: -gtk-win32-theme-part(progress, 10 1);
}

/* Combobox */

combobox-entry button {
    background-color: transparent;
    border-width: 0;
    background-image: -gtk-win32-theme-part(combobox, 1 1);
    color: rgba(0, 0, 0, 0);
/* Remove padding from comboboxbutton (GtkArrow inside of it is hardcoded to be
   16x16, but we draw even smaller arrow instead, so padding is completely unnecessary,
   it only makes thebutton bigger for not good reason).
   Only do this for combobox-entry, because non-entry combobox IS thebutton,
   and it does need to be as thick as the items of the list it pops up (and it's
   still slimmer than padded combobox-entry!). */
    padding: 0px;
}

combobox-entry button:hover,
combobox-entry button:focus,
combobox-entry button:hover:focus {
    background-image: -gtk-win32-theme-part(combobox, 1 2);
}
combobox-entry button:active,
combobox-entry button:active:focus,
combobox-entry button:active:hover,
combobox-entry button:active:focus:hover {
    background-image: -gtk-win32-theme-part(combobox, 1 3);
}
combobox-entry button:disabled {
    background-image: -gtk-win32-theme-part(combobox, 1 4);
}

/* Dropdown list should have "window" color, as listbox contents do (usually it's "white") */
combobox cellview * {
    background-color: -gtk-win32-color(listview, 5);
}

/* Draw "arrow" for non-entry comboboxes. Select the box, since selecting
   the arrow itself does not seem to work as intended. */
combobox box {
    color: rgba(255, 0, 0, 0);
    background-image: -gtk-win32-theme-part(combobox, 6 1);
}
combobox box:disabled {
    color: rgba(255, 0, 0, 0);
    background-image: -gtk-win32-theme-part(combobox, 6 4);
}
/* Make sure the style above does not touch comboboxes with entries by
   disabling background image for the box again */
combobox-entry box {
    color: rgba(255, 0, 0, 0);
    background-image: none;
}
combobox-entry box:disabled {
    color: rgba(255, 0, 0, 0);
    background-image: none;
}
/* The arrow is part of the background image drawn by the theme, don't draw GTK's own arrow */
combobox-entry GtkArrow {
    color: rgba(255, 0, 0, 0);
}
combobox-entry GtkArrow:disabled {
    color: rgba(255, 0, 0, 0);
}
combobox arrow {
    color: rgba(255, 0, 0, 0);
}
combobox arrow:disabled {
    color: rgba(255, 0, 0, 0);
}

/* Toolbar */

toolbar {
    background-color: transparent;
    border-width: 0;
    background-image: -gtk-win32-theme-part(rebar, 6 1);
}

toolbar button,
toolbar button:focus {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(toolbar, 1 1);
}

toolbar button:hover,
toolbar button:hover:focus {
    background-image: -gtk-win32-theme-part(toolbar, 1 2);
}

toolbar button:active {
    background-image: -gtk-win32-theme-part(toolbar, 1 3);
}

toolbar button:active:hover {
    background-image: -gtk-win32-theme-part(toolbar, 1 6);
}

toolbar button:disabled {
    background-image: -gtk-win32-theme-part(toolbar, 1 4);
}

/* Column headers */

column-header button,
column-header button:focus {
    background-color: transparent;
    border-width: 0;
    background-image: -gtk-win32-theme-part(header, 1 1);
}

column-header button:hover,
column-header button:hover:focus {
    background-image: -gtk-win32-theme-part(header, 1 2);
}

column-header button:active,
column-header button:active:hover,
column-header button:active:focus,
column-header button:active:hover:focus {
    background-image: -gtk-win32-theme-part(header, 1 3);
}

/* Switch */

switch {
    font: bold condensed 10;
    color: @text_color;
    background-image: -gtk-win32-theme-part(button, 1 1);
}

switch:disabled {
    background-image: -gtk-win32-theme-part(button, 1 4);
}

switch:active {
    background-image: -gtk-win32-theme-part(button, 1 2);
}

switch slider {
    padding: 4px;
    background-color: transparent;
    background-image: -gtk-win32-theme-part(scrollbar, 2 1, over (8 1));
    border-width: 0;
}

/* Menus */

menu {
    background-color: -gtk-win32-color(button, 4);
    border-color: shade (-gtk-win32-color(button, 4), 0.6);
    border-style: solid;
    border-width: 1px;
    padding: 2px;
}

menuitem {
    color: -gtk-win32-color(button, 7);
}

menubar menuitem *:backdrop {
    color: mix (-gtk-win32-color(button, 7), white, 0.5);
}

menubar > menuitem {
    padding: 3px 5px;
}

/* Add more padding to menus, increasing visible height of each menuitem */
menu * {
  padding: 2px;
}

/* Assistant */

GtkAssistant .sidebar .highlight {
    background-color: gray;
    font: bold;
}

GtkAssistant .sidebar {
    padding: 12px;

    background-color: white;

    border-image: none;
    border-width: 0 1px 0 0;
    border-style: solid;
}

colorswatch {
    border-style: solid;
    border-width: 1px;
}

colorswatch:hover {
    border-color: shade (@bg_color, 0.2);
}

separator,
separator:hover {
    color: shade (@bg_color, 0.6);
}

statusbar > frame {
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-image:  -gtk-win32-theme-part(status, 0 0, margins (-1 0 0 0))  2 1 1 1 stretch;
    background-image: none;
}

/* Spinner */

@keyframes spin {
  to { -gtk-icon-transform: rotate(1turn); }
}

spinner {
  background: none;
  opacity: 0;
  -gtk-icon-source: -gtk-icontheme('process-working-symbolic');
}

spinner:checked {
  opacity: 1;
  animation: spin 1s linear infinite;
}

spinner:checked:disabled
{
  opacity: 0.5;
}

spinner:active {
   background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
                     -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent));
  animation: spinner 1s infinite linear;
}

/* Popovers */
popover {
    border-radius: 3px;
    background-clip: border-box;
    background-color: @bg_color;

    border-color: rgba(0, 0, 0, 1);
    border-width: 1px;
    border-style: solid;

    box-shadow: 0 2px 3px alpha(black, 0.5);
    margin: 10px;
    padding: 2px;
}
popover > list,
popover > .view,
popover > toolbar {
    background-color: transparent;
}

/* Listbox */
list {
  background-color: -gtk-win32-color(listbox, 5);
}

/* Dim label */
.dim-label {
    color: alpha(currentColor, 0.55);
    text-shadow: none;
}

/* Modelbuttons */

modelbutton:focus,
modelbutton {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(menu, 14 1);
}

modelbutton:active,
modelbutton:active:focus {
    background-color: transparent;
    background-image: -gtk-win32-theme-part(menu, 14 1);
}

modelbutton:active:hover:focus,
modelbutton:hover:focus,
modelbutton:hover {
    background-image: -gtk-win32-theme-part(menu, 14 2);
}

modelbutton:active:hover:disabled:focus,
modelbutton:hover:disabled:focus,
modelbutton:hover:disabled {
    background-image: -gtk-win32-theme-part(menu, 14 4);
}


modelbutton radio:focus,
modelbutton radio,
modelbutton radio:hover,
modelbutton radio:disabled {
    background-color: transparent;
    background-image: none;
    border-width: 0;
}

modelbutton radio:active:focus,
modelbutton radio:active,
modelbutton radio:active:hover {
    background-image: -gtk-win32-theme-part(menu, 12 2, over (11 3));
    border-width: 0;
}

modelbutton radio:indeterminate:focus,
modelbutton radio:indeterminate,
modelbutton radio:indeterminate:disabled,
modelbutton radio:indeterminate:hover,
modelbutton radio:indeterminate:active,
modelbutton radio:indeterminate:active:hover {
    background-image: none; /* Fall back to default, this state is not in win32 */
    border-width: 0;
}

modelbutton radio:disabled:active:focus,
modelbutton radio:disabled:active,
modelbutton radio:disabled:active:hover {
    background-image: -gtk-win32-theme-part(menu, 12 1, over (11 4));
    border-width: 0;
}

modelbutton check:focus,
modelbutton check,
modelbutton check:disabled,
modelbutton check:hover,
modelbutton check:hover:focus {
    background-color: transparent;
    background-image: none;
    border-width: 0;
}


modelbutton check:active:focus, 
modelbutton check:active, 
modelbutton check:active:hover:focus,
modelbutton check:active:hover {
    background-image: -gtk-win32-theme-part(menu, 12 2, over (11 1));
    border-width: 0;
}

modelbutton check:indeterminate:focus,
modelbutton check:indeterminate,
modelbutton check:indeterminate:disabled,
modelbutton check:indeterminate:disabled:focus,
modelbutton check:indeterminate:hover,
modelbutton check:indeterminate:hover:focus,
modelbutton check:indeterminate:active,
modelbutton check:indeterminate:active:focus,
modelbutton check:indeterminate:active:hover:focus,
modelbutton check:indeterminate:active:hover {
    background-image: none; /* Fall back to default, this state is not in win32 */
    border-width: 0;
}

modelbutton check:disabled:active:focus,
modelbutton check:disabled:active,
modelbutton check:disabled:active:hover:focus,
modelbutton check:disabled:active:hover {
    background-image: -gtk-win32-theme-part(menu, 12 1, over (11 2));
    border-width: 0;
}

/* Application notification */
.app-notification {
    border-style: solid;
    border-color: @app_notification_border;
    border-width: 0 1px 1px 1px;
    border-radius: 0 0 5px 5px;
    padding: 8px;

    background-image: linear-gradient(to bottom,
                                      @app_notification_a,
                                      @app_notification_b 18%,
                                      @app_notification_c);

    color: @theme_text_color;
    text-shadow: 0 1px @primary_toolbarbutton_text_shadow;
    border-image: none;
}
