//
// Tab overrides
//
GeditNotebook.notebook,
ScratchMainWindow .notebook,
EphyNotebook.notebook,
MidoriNotebook .notebook,
TerminalWindow .notebook,
PantheonTerminalPantheonTerminalWindow .notebook {

  tab.reorderable-page.top, tab.top {
    &:active, &.active-page, &.active-page:hover {
      box-shadow: inset 0 1px $borders_color,
                  inset 0 -1px $borders_color,
                  inset 1px 0 $borders_color,
                  inset -1px 0 $borders_color;
    }
  }
}

TerminalWindow .notebook,
PantheonTerminalPantheonTerminalWindow .notebook {

  tab.reorderable-page.top, tab.top {
    padding-top: 7px;
    border-top-width: 3px;
  }

  &.header.top {
    box-shadow: inset 0  1px opacify($header_border, 1),
                inset 0 -1px $borders_color;
  }
}

//
// Evolution
//
// needed for webkit/GtkStyle/Evolution compatibility
GtkHTML {
  background-color: $base_color;
  color: $text_color;

  &:active {
    color: $selected_fg_color;
    background-color: $selected_bg_color;
  }
}

//
// Sushi
//
// used by gnome-font-viewer and sushi
SushiFontWidget {
  padding: 6px 12px;
}

//
// GNOME Terminal
//
TerminalWindow {
  .background {
    background-color: transparent;
  }

  .scrollbar {
    &.vertical .slider { margin-left: 3px; }
    &.trough { border-width: 0; }
  }
}

//
// Nautilus
//
.nautilus-canvas-item {
  border-radius: 2px;
}

.nautilus-desktop.nautilus-canvas-item {
  color: white;
  text-shadow: 1px 1px transparentize(black, 0.4);

  &:active { color: $fg_color; }
  &:selected { color: $selected_fg_color; }
}

.nautilus-canvas-item.dim-label,
.nautilus-list-dim-label {
  color: mix($fg_color, $bg_color, 50%);

  &:selected, &:selected:focus { color: mix($selected_fg_color, $selected_bg_color, 80%); }
}

NautilusNotebook.notebook {
  background-color: $base_color;

  tab {
    border-width: 0;
    border-style: solid;
    border-color: transparent;
    background-color: transparent;
  }
}

NautilusQueryEditor .search-bar.toolbar {
  padding: 5px;
  box-shadow: none;
  background-color: $base_color;
}

.nautilus-circular-button {
  border-radius: 50%;
  outline-radius: 50%;
}

$disk_space_unknown: transparentize($fg_color, 0.5);
$disk_space_used: transparentize($selected_bg_color, 0.2);
$disk_space_free: darken($bg_color, 3%);

.disk-space-display {
  border-style: solid;
  border-width: 1px;

  &.unknown {
    background-color: $disk_space_unknown;
    border-color: darken($disk_space_unknown, 10%);
  }
  &.used {
    background-color: $disk_space_used;
    border-color: darken($disk_space_used, 10%);
  }
  &.free {
    background-color: $disk_space_free;
    border-color: darken($disk_space_free, 10%);
  }
}

//
// Nemo
//
.nemo-desktop.nemo-canvas-item {
  @extend .nautilus-desktop.nautilus-canvas-item;
}

NemoWindow {

  EelEditableLabel.entry { transition: none; }  // Workaround for invisible text in rename entry

  .sidebar .frame { border-width: 0; }

  GtkSeparator.separator.horizontal { color: $borders_color; }

  .primary-toolbar NemoPathBar.linked > .button {
    $_linked_separator_color: $header_button_border;

    @include button(header-hover);

    &:hover { background-color: lighten($header_button_bg, 15%); }
    &:active, &:checked { @include button(header-active); }
    &:insensitive { color: transparentize($header_fg, 0.4); }

    @extend %linked;

    &:hover {
      box-shadow: inset  1px 0 $_linked_separator_color,
                  inset -1px 0 $_linked_separator_color;
    }
    &:active, &:checked { box-shadow: none; }

    &:first-child {
      &:hover { box-shadow: inset -1px 0 $_linked_separator_color; }
      &:active, &:checked { box-shadow: none; }
    }
    &:last-child {
      &:hover { box-shadow: inset 1px 0 $_linked_separator_color; }
      &:active, &:checked { box-shadow: none; }
    }
    &:only-child {
      &:hover { box-shadow: none; }
      &:active, &:checked { box-shadow: none; }
    }
  }
}

//
// Gedit
//
.gedit-headerbar-paned { color: $header_border; }

.open-document-selector-treeview.view {
  padding: 3px 6px 3px 6px;
  border-color: $base_color;  // disable borders, making them transparent doesn't work for some reason

  &:prelight {
    background-color: mix($fg_color, $base_color, 7%);

    &:selected {
      color: $selected_fg_color;
      background-color: $selected_bg_color;
    }
  }
}

.open-document-selector-name-label {
  color: $fg_color;
}

.open-document-selector-path-label {
    color: mix($fg_color, $base_color, 50%);
    font-size: smaller;

    &:selected { color: transparentize($selected_fg_color, 0.1); }
}

.gedit-document-panel {

  .list-row .button {
    color: transparent;
    background-image: none;
    background-color: transparent;
    border: none;
    box-shadow: none;
    padding: 4px;
    & GtkImage { color: inherit; }
  }
  .prelight-row .button {
    color: mix($bg_color, $fg_color, 35%);
  }
  .list-row .button:hover,
  .prelight-row .button:hover {
    color: lighten(red, 15%);
  }
  .prelight-row:selected .button:hover {
    color: lighten(red, 20%);
    background-image: none;
    background-color: transparent;
    border: none;
    box-shadow: none;
    &:active { color: $selected_fg_color; }
  }
  .prelight-row .button:active {
    color: $fg_color;
  }
}

.gedit-document-panel-dragged-row {
  border: 1px solid $borders_color;
  background-color: darken($bg_color, 10%);
  color: $fg_color;
}

//.gedit-document-panel-placeholder-row {
//}

GeditStatusbar {
  border-top: 1px solid $borders_color;
  background-color: $bg_color;
}

GeditStatusMenuButton.button.flat,
GeditStatusMenuButton:prelight.button.flat,
GeditStatusMenuButton:checked.button.flat {
  border-bottom-style: none;
  border-radius: 0;
}


GeditViewFrame .gedit-search-slider { @extend %search_slider }

GeditFileBrowserWidget .toolbar {
  border-bottom: 1px solid $borders_color;
}

.gedit-search-entry-occurrences-tag {
  color: transparentize($fg_color, 0.4);
  margin: 2px;
  padding: 2px;
}

%search_slider {
  background-color: lighten($bg_color, 2%);
  padding: 6px;
  border-color: $borders_color;
  border-radius: 0 0 2px 2px;
  border-width: 0 1px 1px 1px;
  border-style: solid;
}

//
// Gnome Builder
//

GbSearchBox.linked {

  > GtkMenuButton.button:last-child:dir(ltr),
  > GtkMenuButton.button:first-child:dir(rtl) {
    padding: 0 10px;

    @include entry(header-normal);

    &:hover { @include entry(header-focus); }
    &:active, &:checked { @include entry(header-focus); }
    &:insensitive { @include entry(header-insensitive); }
  }

  > GtkMenuButton.button:last-child:dir(ltr) {

    border-left-style: none;
    border-radius: 0 3px 3px 0;
    outline-radius: 0 1px 1px 0;

    &:hover { box-shadow: -1px 0 $selected_bg_color; }
  }
  > GtkMenuButton.button:first-child:dir(rtl) {
    border-right-style: none;
    border-radius: 3px 0 0 3px;
    outline-radius: 1px 0 0 1px;

    &:hover { box-shadow: 1px 0 $selected_bg_color; }
  }
}

//Search entry that slides down from top of editor
GbEditorFrame .gb-search-slider { @extend %search_slider; padding: 2px; }

.gb-search-entry-occurrences-tag { @extend .gedit-search-entry-occurrences-tag }

GdTaggedEntry { color: $fg_color; }

// Preferences sidebar style
.preferences.sidebar {

  GtkViewport { border: none; }
  GtkListBox { background-color: $bg_color; }
  GtkListBoxRow { padding: 10px; }
}

// Preference page language style
GbPreferencesPageLanguage  {

  GtkSearchEntry {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  GtkScrolledWindow { border-top-width: 0; }
}

// Command Bar styling
GtkBox.gb-command-bar-box {
  border: none;
  background-color: opacify($osd_bg_color, 1);

  GtkLabel { color: $osd_fg_color; }
}

GtkEntry.gb-command-bar-entry.entry.flat,
GtkEntry.gb-command-bar-entry.entry.flat:focus {
  font-family: Monospace;
  color: $osd_fg_color;
  background-image: none;
  background-color: opacify($osd_bg_color, 1);
  padding: 6px 6px 6px 6px;
  border: none;

  &:selected,
  &:selected:focus {
    @extend %selected_items;
  }
}

GbSourceStyleSchemeWidget GtkSourceView {
  font-family: Monospace;
}

GtkScrolledWindow.gb-linked-scroller {
  border-top: none;
}

// Disable various animatinos that are enabled by default and really annoying
// to the overall flow of Builder.
GbSearchDisplayGroup GtkListBox .list-row, GbDocumentStack .button {
  transition: none;
}

GbViewStack GtkBox.header.notebook,
GbEditorWorkspace > GtkPaned > GtkBox > GtkBox.header.notebook {
  border-bottom: 1px solid $borders_color;
}

GbViewStack.focused GtkBox.header.notebook {
  background-color: $base_color;

 .button.dim-label { opacity: 1; }
}

//
// Epiphany
//
EphyWindow .floating-bar { // Epiphany overrides the floating-bar style, so reset it
  color: $fg_color;
}

//
// Gnome Documents
//
.documents-load-more.button {
  border-width: 1px 0 0;
  border-radius: 0;
}

.documents-icon-bg {
  background-color: $selected_bg_color;
  color: $selected_fg_color;
  border-radius: 2px;
}

.documents-collection-icon {
  background-color: transparentize($fg_color, 0.7);
  border-radius: 2px;
}

.documents-favorite.button:active,
.documents-favorite.button:active:hover {
  color: lighten($selected_bg_color, 20%);
}

.documents-entry-tag {
  background-color: $selected_bg_color;
  color: $selected_fg_color;
  border-radius: 2px;
  border-width: 0;
  margin: 2px;
  padding: 4px;

  &:hover {
    color: $selected_fg_color;
    background-color: lighten($selected_bg_color, 4%);
  }
  &:active {
    color: $selected_fg_color;
    background-color: darken($selected_bg_color, 4%);
  }

  .toolbar .linked &.button {
    background: none;
    border: none;
    box-shadow: none;
    icon-shadow: none;

    &:hover { color: transparentize($selected_fg_color, 0.3) }
  }
}

.content-view.document-page {
  border-style: solid;
  border-width: 3px 3px 6px 4px;
  border-image: url("assets/thumbnail-frame.png") 3 3 6 4;
}

//
// Totem
//
TotemGrilo.vertical GdMainView.frame {
  border-width: 0;
}

//
// Synapse
//
SynapseGuiSelectionContainer *:selected,
SynapseGuiViewVirgilio *:selected { background-color: $selected_bg_color; }

//
// Transmission
//
.tr-workarea .undershoot,
.tr-workarea .overshoot {
  border-color: transparent; // Remove black border on over- and undershoot
}

//
// Fallback Mode/Budgie Panel
//
.gnome-panel-menu-bar,
PanelApplet > GtkMenuBar.menubar,
PanelToplevel,
PanelWidget,
PanelAppletFrame,
PanelApplet {
  color: $panel_fg;
  background-image: linear-gradient(to bottom, $panel_bg);
}

PanelApplet .button, PanelApplet .button:backdrop {
  padding: 4px;
  border: 2px solid transparent;
  border-radius: 0;
  background-image: none;
  background-color: transparent;
  color: $panel_fg;
}

PanelApplet .button:hover {
  color: lighten($panel_fg, 10%);
  background-color: transparentize(black, 0.83);
  border-color: transparentize(black, 0.83);
}

PanelApplet .button:active, PanelApplet .button:active:backdrop,
PanelApplet .button:checked, PanelApplet .button:checked:backdrop {
  background-clip: padding-box;
  color: white;
  background-color: transparentize(black, 0.75);
  border-radius: 0;
  border-color: transparentize(black, 0.75);
  box-shadow: inset 0 -2px $selected_bg_color;
}

PanelApplet:hover {
  color: white;
}

PanelApplet:active,
PanelApplet:hover:active {
  color: $selected_bg_color;
}

WnckPager {
  color: mix($panel_fg, black, 50%);
  &:selected { color: $selected_bg_color }
}

NaTrayApplet {
  -NaTrayApplet-icon-padding: 12;
  -NaTrayApplet-icon-size: 16;
}

ClockBox {
  color: $panel_fg;
}

// Xfce Panel
.xfce4-panel.panel {
  background-color: $panel_bg;

  text-shadow: none;
  icon-shadow: none;

  .button.flat {
    color: $panel_fg;
    background-color: transparentize($panel_bg, 1);
    border-radius: 0;
    border: none;

    &:hover {
      border: none;
      background-color: lighten($panel_bg, 10%);
    }
    &:active, &:checked {
      color: $selected_fg_color;
      border: none;
      background-color: $selected_bg_color;
    }
  }
}

//
// Floating Bar
//
.floating-bar {
  background-color: $selected_bg_color;
  color: $selected_fg_color;

  &.top { border-radius: 0 0 2px 2px; }
  &.right { border-radius: 2px 0 0 2px; }
  &.bottom { border-radius: 2px 2px 0 0; }
  &.left { border-radius: 0 2px 2px 0; }

  .button {
    -GtkButton-image-spacing: 0;
    -GtkButton-inner-border: 0;

    background-color: transparent;
    box-shadow: none;
    border: none;
  }
}

// Elementary Apps

//
// Birdie
//
BirdieWidgetsTweetList * {
  background-image: none;
  background-color: transparent;
}

//
// Marlin / Pantheon Files
//
MarlinViewWindow {

  *:selected, *:selected:focus {
    color: $selected_fg_color;
    background-color: $selected_bg_color;
    outline-color: transparent;
  }
  GtkIconView.view:selected {
    &, &:focus, &:hover, &:focus:hover { background-color: transparent; }
  }
  FMListView, FMColumnView { outline-color: transparent; }
}

.marlin-pathbar.pathbar {
  border-radius: 3px;
  padding-left: 4px;
  padding-right: 4px;

  @include entry(header-normal);

  &:focus { @include entry(header-focus) }

  &:insensitive { @include entry(header-insensitive) }

  &:active, &:checked {
    color: $selected_bg_color;
  }
}

//
// Gala
//
.gala-notification {
    border: 1px solid rgba(0, 0, 0, 0.35);
    border-radius: 3px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    background-image: linear-gradient(to bottom, white);
    background-color: transparent;

  .title, .label {
    color: #5c616c;
  }
}

//
// Wingpanel
//
.panel {
  background-color: transparent;
  color: white;
  font-weight: bold;
  text-shadow: 0 1px 2px transparentize(black, 0.4);
  icon-shadow: 0 1px 2px transparentize(black, 0.4);

  &-shadow {
    background-image: none;
    background-color: transparent;
  }
  .menu {
    box-shadow: none;

    .menuitem {
      font-weight: normal;
      text-shadow: none;
      icon-shadow: none;
    }

    .window-frame.menu.csd,
    .window-frame.popup.csd {
      box-shadow: 0 0 0 1px transparentize(black, 0.8),
                  0 10px 20px transparentize(black, 0.81),
                  0 6px 6px transparentize(black, 0.77);
    }
  }
  .menubar > .menuitem {
    padding: 3px 6px;
    &:hover { background-color: transparent; }
  }
  .window-frame.menu.csd,
  .window-frame.popup.csd { box-shadow: none; }
}

.composited-indicator {
  background-color: transparent;
  color: white;
  text-shadow: 0 1px 2px transparentize(black, 0.4);
  icon-shadow: 0 1px 2px transparentize(black, 0.4);

  > GtkWidget > GtkWidget:first-child { padding: 0 2px; }

  .menuitem:active, .menuitem:prelight {
    border-style: none;
    background-image: none;
    box-shadow: none;
  }
  > .popup > .menu {
    padding-top: 8px;
    padding-bottom: 8px;
  }
}

.panel-app-button > GtkWidget > GtkWidget:first-child {
  padding: 0 2px 0 4px;
}

.panel .menu .spinner,
.menu .spinner { opacity: 1 } // Fixes sound indicator buttons

//
// Wingpanel Popover
//
WingpanelWidgetsIndicatorPopover.popover {
  padding: 0;

  text-shadow: none;
  icon-shadow: none;

  .menuitem {
    padding: 5px;
    outline-color: transparent;
    text-shadow: none;
    icon-shadow: none;
    border: solid transparent;
    border-width: 1px 0;

    GtkLabel, GtkImage { padding: 0 3px; }

    &:hover, &:active {
      background-color: if($variant == 'light', transparentize(black, 0.96), transparentize(white, 0.95));
      border: solid if($variant == 'light', transparentize(black, 0.92), transparentize(white, 0.93));
      border-width: 1px 0;
    }
    *:insensitive { color: $insensitive_fg_color; }
  }
}

//
// Pantheon Terminal
//
PantheonTerminalPantheonTerminalWindow.background {
   background-color: transparent;
}

//
// Switchboard
//
SwitchboardCategoryView .view:selected,
SwitchboardCategoryView .view:selected:focus {
  color: $fg_color;
}
