/**
* Zen Mod: Better CtrlTab Panel
* Re-style and add customization options for the Ctrl+Tab panel.
* Pontus Sundén <hi@pontus.cc>
*/
@-moz-document url-prefix("chrome:") {
  :root {
    /**
    --psu-better_ctrltab-roundness: 50px;
    --psu-better_ctrltab-padding: 35px;
    --psu-better_ctrltab-zoom: .8;

    --psu-better_ctrltab-background: light-dark(rgba(146, 145, 144, 0.94), rgba(24, 23, 22, 0.94));
    --psu-better_ctrltab-shadow_size: 20px;
    
    --psu-better_ctrltab-preview_padding: 30px;
    --psu-better_ctrltab-preview_border_width: 1px;
    --psu-better_ctrltab-preview_border_color: light-dark(rgba(253, 255, 254, 0.1), rgba(83, 82, 79, 0.2));
    --psu-better_ctrltab-preview_focus_background: light-dark(rgba(77, 76, 78, 0.8), rgba(184, 185, 183, 0.18));
    --psu-better_ctrltab-preview_font_size: 13px; 
    --psu-better_ctrltab-preview_letter_spacing: 0px;
    
    --psu-better_ctrltab-preview_favicon_size: 36px;
    --psu-better_ctrltab-preview_favicon_outdent: 12px;
/**/

    /* helpers */
    --psu-zoom-invert: pow(var(--psu-better_ctrltab-zoom), -1);
    --psu-roundness-zoomed: calc(var(--psu-better_ctrltab-roundness) * var(--psu-better_ctrltab-zoom));
  }

  #ctrlTab-panel {
    /* panel styling */
    --panel-border-radius: var(--psu-roundness-zoomed) !important;
    --panel-shadow: 0 0 var(--psu-better_ctrltab-shadow_size) calc(var(--psu-better_ctrltab-shadow_size) / 3) rgba(1, 1, 4, 0.2) !important;
    --panel-background: var(--psu-better_ctrltab-background) !important;
    --panel-padding: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: unset !important;

    /* panel zoom adjust size */
    --psu-default_spacing: 10%;
    --psu-tile-counter: 0;
    &:has(.ctrlTab-preview:nth-child(1):not([hidden])) {
      --psu-tile-counter: 1;
    }
    &:has(.ctrlTab-preview:nth-child(2):not([hidden])) {
      --psu-tile-counter: 2;
    }
    &:has(.ctrlTab-preview:nth-child(3):not([hidden])) {
      --psu-tile-counter: 3;
    }
    &:has(.ctrlTab-preview:nth-child(4):not([hidden])) {
      --psu-tile-counter: 4;
    }
    &:has(.ctrlTab-preview:nth-child(5):not([hidden])) {
      --psu-tile-counter: 5;
    }
    &:has(.ctrlTab-preview:nth-child(6):not([hidden])) {
      --psu-tile-counter: 6;
    }
    &:has(.ctrlTab-preview:nth-child(7):not([hidden])) {
      --psu-tile-counter: 7;
      --psu-default_spacing: 7%;
    }
    --panel-shadow-margin: var(--psu-better_ctrltab-shadow_size)
      calc(
        /* decrease by default non-css space */ var(--psu-default_spacing) + (90% - var(--psu-default_spacing)) / 2 * (1 - var(--psu-better_ctrltab-zoom)) -
          (
            /* increase by tile padding and borders */ ((var(--psu-better_ctrltab-preview_padding) * 2 + var(--psu-better_ctrltab-preview_border_width) * 2) * var(--psu-tile-counter)) / 2
              /* increase by panel padding */ + (var(--psu-better_ctrltab-padding) * 0.8)
          ) * var(--psu-better_ctrltab-zoom)
      ) !important;

    #ctrlTab-previews {
      /* panel zoom and padding*/
      zoom: var(--psu-better_ctrltab-zoom) !important;
      padding: var(--psu-better_ctrltab-padding) calc(var(--psu-better_ctrltab-padding) * 0.8) !important;

      .ctrlTab-preview {
        margin: 0 !important;
        padding: 0 !important;
        border-radius: calc(var(--psu-roundness-zoomed) * 0.8) !important;

        /* previews styling */
        .ctrlTab-preview-inner {
          margin: 0 !important;
          padding: calc(var(--psu-better_ctrltab-preview_padding) + var(--psu-better_ctrltab-preview_border_width)) !important;
          border-radius: calc(var(--psu-roundness-zoomed) * 0.8) !important;
          padding-bottom: calc(var(--psu-better_ctrltab-preview_padding) / 2) !important;
          border: none !important;
          text-shadow: 0.5px 0.5px 0px light-dark(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
        }
        .ctrlTab-canvas {
          margin-bottom: calc(var(--psu-better_ctrltab-preview_padding) / 2 + var(--psu-better_ctrltab-preview_border_width)) !important;
          box-shadow: 0 0 0 var(--psu-better_ctrltab-preview_border_width) var(--psu-better_ctrltab-preview_border_color) !important;
        }
        .ctrlTab-canvas,
        img,
        canvas {
          border-radius: calc(var(--psu-roundness-zoomed) * 0.25) !important;
        }

        /* label styling */
        .ctrlTab-label {
          font-size: calc(var(--psu-better_ctrltab-preview_font_size) * var(--psu-zoom-invert)) !important;
          letter-spacing: calc(var(--psu-better_ctrltab-preview_letter_spacing) * var(--psu-zoom-invert));
          margin: 0 calc(var(--psu-better_ctrltab-preview_border_width) * -1) !important;
          padding: 0 !important;
        }

        /* favicon styling and position */
        .ctrlTab-favicon-container image {
          height: var(--psu-better_ctrltab-preview_favicon_size) !important;
          width: var(--psu-better_ctrltab-preview_favicon_size) !important;
          box-shadow: none !important;
          background: none !important;
          position: absolute !important;
          padding: 0 !important;
          margin: 0 !important;
          margin-right: calc(var(--psu-better_ctrltab-preview_favicon_outdent) * -1) !important;
          margin-top: calc(
            (var(--psu-better_ctrltab-preview_padding) / 2 + var(--psu-better_ctrltab-preview_border_width)) * -1 - var(--psu-better_ctrltab-preview_favicon_size) +
              var(--psu-better_ctrltab-preview_favicon_outdent) * 0.8
          ) !important;
        }

        /* focused bg styling */
        &:focus {
          .ctrlTab-preview-inner {
            background: var(--psu-better_ctrltab-preview_focus_background) !important;
            border: none !important;
          }
        }
      }
    }
  }
}
