/* Copyright 2014 Mozilla Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

.messageBar{
  --closing-button-icon:url(images/messageBar_closingButton.svg);
  --message-bar-close-button-color:var(--text-primary-color);
  --message-bar-close-button-color-hover:var(--text-primary-color);
  --message-bar-close-button-border-radius:4px;
  --message-bar-close-button-border:none;
  --message-bar-close-button-hover-bg-color:light-dark(
    rgb(21 20 26 / 0.14),
    rgb(251 251 254 / 0.14)
  );
  --message-bar-close-button-active-bg-color:light-dark(
    rgb(21 20 26 / 0.21),
    rgb(251 251 254 / 0.21)
  );
  --message-bar-close-button-focus-bg-color:light-dark(
    rgb(21 20 26 / 0.07),
    rgb(251 251 254 / 0.07)
  );

  @media screen and (forced-colors: active){
    --message-bar-close-button-color:ButtonText;
    --message-bar-close-button-border:1px solid ButtonText;
    --message-bar-close-button-hover-bg-color:ButtonText;
    --message-bar-close-button-active-bg-color:ButtonText;
    --message-bar-close-button-focus-bg-color:ButtonText;
    --message-bar-close-button-color-hover:HighlightText;
  }

  display:flex;
  position:relative;
  padding:8px 8px 8px 16px;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:8px;
  user-select:none;

  border-radius:4px;

  border:1px solid var(--message-bar-border-color);
  background:var(--message-bar-bg-color);
  color:var(--message-bar-fg-color);

  > div{
    display:flex;
    align-items:flex-start;
    gap:8px;
    align-self:stretch;

    &::before{
      content:"";
      display:inline-block;
      width:16px;
      height:16px;
      mask-image:var(--message-bar-icon);
      mask-size:cover;
      background-color:var(--message-bar-icon-color);
      flex-shrink:0;
    }
  }

  button{
    cursor:pointer;

    &:focus-visible{
      outline:var(--focus-ring-outline);
      outline-offset:2px;
    }
  }

  .closeButton{
    width:32px;
    height:32px;
    background:none;
    border-radius:var(--message-bar-close-button-border-radius);
    border:var(--message-bar-close-button-border);

    display:flex;
    align-items:center;
    justify-content:center;

    &::before{
      content:"";
      display:inline-block;
      width:16px;
      height:16px;
      mask-image:var(--closing-button-icon);
      mask-size:cover;
      background-color:var(--message-bar-close-button-color);
    }

    &:is(:hover, :active, :focus)::before{
      background-color:var(--message-bar-close-button-color-hover);
    }

    &:hover{
      background-color:var(--message-bar-close-button-hover-bg-color);
    }

    &:active{
      background-color:var(--message-bar-close-button-active-bg-color);
    }

    &:focus{
      background-color:var(--message-bar-close-button-focus-bg-color);
    }

    > span{
      display:inline-block;
      width:0;
      height:0;
      overflow:hidden;
    }
  }
}

#editorUndoBar{
  --text-primary-color:light-dark(#15141a, #fbfbfe);

  --message-bar-icon:url(images/messageBar_info.svg);
  --message-bar-icon-color:light-dark(#0060df, #73a7f3);
  --message-bar-bg-color:light-dark(#deeafc, #003070);
  --message-bar-fg-color:var(--text-primary-color);
  --message-bar-border-color:light-dark(
    rgb(0 0 0 / 0.08),
    rgb(255 255 255 / 0.08)
  );

  --undo-button-bg-color:light-dark(
    rgb(21 20 26 / 0.07),
    rgb(255 255 255 / 0.08)
  );
  --undo-button-bg-color-hover:light-dark(
    rgb(21 20 26 / 0.14),
    rgb(255 255 255 / 0.14)
  );
  --undo-button-bg-color-active:light-dark(
    rgb(21 20 26 / 0.21),
    rgb(255 255 255 / 0.21)
  );

  --undo-button-border:1px solid light-dark(#0060df, #0df);

  --undo-button-fg-color:var(--message-bar-fg-color);
  --undo-button-fg-color-hover:var(--undo-button-fg-color);
  --undo-button-fg-color-active:var(--undo-button-fg-color);

  @media screen and (forced-colors: active){
    --text-primary-color:CanvasText;

    --message-bar-icon-color:CanvasText;
    --message-bar-bg-color:Canvas;
    --message-bar-border-color:CanvasText;

    --undo-button-bg-color:ButtonText;
    --undo-button-bg-color-hover:SelectedItem;
    --undo-button-bg-color-active:SelectedItem;

    --undo-button-fg-color:ButtonFace;
    --undo-button-fg-color-hover:SelectedItemText;
    --undo-button-fg-color-active:SelectedItemText;

    --undo-button-border:none;
  }

  position:fixed;
  top:50px;
  left:50%;
  transform:translateX(-50%);
  z-index:10;

  padding-block:8px;
  padding-inline:16px 8px;

  font:menu;
  font-size:15px;

  cursor:default;

  button{
    cursor:pointer;
  }

  #editorUndoBarUndoButton{
    border-radius:4px;
    font-weight:590;
    line-height:19.5px;
    color:var(--undo-button-fg-color);
    border:var(--undo-button-border);
    padding:4px 16px;
    margin-inline-start:8px;
    height:32px;

    background-color:var(--undo-button-bg-color);

    &:hover{
      background-color:var(--undo-button-bg-color-hover);
      color:var(--undo-button-fg-color-hover);
    }

    &:active{
      background-color:var(--undo-button-bg-color-active);
      color:var(--undo-button-fg-color-active);
    }
  }

  > div{
    align-items:center;
  }
}

.dialog{
  --dialog-bg-color:light-dark(white, #1c1b22);
  --dialog-border-color:light-dark(white, #1c1b22);
  --dialog-shadow:0 2px 14px 0 light-dark(rgb(58 57 68 / 0.2), #15141a);
  --text-primary-color:light-dark(#15141a, #fbfbfe);
  --text-secondary-color:light-dark(#5b5b66, #cfcfd8);
  --hover-filter:brightness(0.9);
  --link-fg-color:light-dark(#0060df, #0df);
  --link-hover-fg-color:light-dark(#0250bb, #80ebff);
  --separator-color:light-dark(#f0f0f4, #52525e);

  --textarea-border-color:#8f8f9d;
  --textarea-bg-color:light-dark(white, #42414d);
  --textarea-fg-color:var(--text-secondary-color);

  --radio-bg-color:light-dark(#f0f0f4, #2b2a33);
  --radio-checked-bg-color:light-dark(#fbfbfe, #15141a);
  --radio-border-color:#8f8f9d;
  --radio-checked-border-color:light-dark(#0060df, #0df);

  --button-secondary-bg-color:light-dark(
    rgb(21 20 26 / 0.07),
    rgb(251 251 254 / 0.07)
  );
  --button-secondary-fg-color:var(--text-primary-color);
  --button-secondary-border-color:var(--button-secondary-bg-color);
  --button-secondary-active-bg-color:light-dark(
    rgb(21 20 26 / 0.21),
    rgb(251 251 254 / 0.21)
  );
  --button-secondary-active-fg-color:var(--button-secondary-fg-color);
  --button-secondary-active-border-color:var(--button-secondary-bg-color);
  --button-secondary-hover-bg-color:light-dark(
    rgb(21 20 26 / 0.14),
    rgb(251 251 254 / 0.14)
  );
  --button-secondary-hover-fg-color:var(--button-secondary-fg-color);
  --button-secondary-hover-border-color:var(--button-secondary-hover-bg-color);
  --button-secondary-disabled-bg-color:var(--button-secondary-bg-color);
  --button-secondary-disabled-border-color:var(
    --button-secondary-border-color
  );
  --button-secondary-disabled-fg-color:var(--button-secondary-fg-color);

  --button-primary-bg-color:light-dark(#0060df, #0df);
  --button-primary-fg-color:light-dark(#fbfbfe, #15141a);
  --button-primary-border-color:var(--button-primary-bg-color);
  --button-primary-active-bg-color:light-dark(#054096, #aaf2ff);
  --button-primary-active-fg-color:var(--button-primary-fg-color);
  --button-primary-active-border-color:var(--button-primary-active-bg-color);
  --button-primary-hover-bg-color:light-dark(#0250bb, #80ebff);
  --button-primary-hover-fg-color:var(--button-primary-fg-color);
  --button-primary-hover-border-color:var(--button-primary-hover-bg-color);
  --button-primary-disabled-bg-color:var(--button-primary-bg-color);
  --button-primary-disabled-border-color:var(--button-primary-border-color);
  --button-primary-disabled-fg-color:var(--button-primary-fg-color);
  --button-disabled-opacity:0.4;

  --input-text-bg-color:light-dark(white, #42414d);
  --input-text-fg-color:var(--text-primary-color);

  @media (prefers-color-scheme: dark){
    --hover-filter:brightness(1.4);
    --button-disabled-opacity:0.6;
  }

  @media screen and (forced-colors: active){
    --dialog-bg-color:Canvas;
    --dialog-border-color:CanvasText;
    --dialog-shadow:none;
    --text-primary-color:CanvasText;
    --text-secondary-color:CanvasText;
    --hover-filter:none;
    --link-fg-color:LinkText;
    --link-hover-fg-color:LinkText;
    --separator-color:CanvasText;

    --textarea-border-color:ButtonBorder;
    --textarea-bg-color:Field;
    --textarea-fg-color:ButtonText;

    --radio-bg-color:ButtonFace;
    --radio-checked-bg-color:ButtonFace;
    --radio-border-color:ButtonText;
    --radio-checked-border-color:ButtonText;

    --button-secondary-bg-color:HighlightText;
    --button-secondary-fg-color:ButtonText;
    --button-secondary-border-color:ButtonText;
    --button-secondary-active-bg-color:HighlightText;
    --button-secondary-active-fg-color:SelectedItem;
    --button-secondary-active-border-color:ButtonText;
    --button-secondary-hover-bg-color:HighlightText;
    --button-secondary-hover-fg-color:SelectedItem;
    --button-secondary-hover-border-color:SelectedItem;
    --button-secondary-disabled-fg-color:GrayText;
    --button-secondary-disabled-border-color:GrayText;

    --button-primary-bg-color:ButtonText;
    --button-primary-fg-color:HighlightText;
    --button-primary-border-color:ButtonText;
    --button-primary-active-bg-color:SelectedItem;
    --button-primary-active-fg-color:HighlightText;
    --button-primary-active-border-color:ButtonText;
    --button-primary-hover-bg-color:SelectedItem;
    --button-primary-hover-fg-color:HighlightText;
    --button-primary-hover-border-color:SelectedItem;
    --button-primary-disabled-bg-color:GrayText;
    --button-primary-disabled-fg-color:ButtonFace;
    --button-primary-disabled-border-color:GrayText;
    --button-disabled-opacity:1;

    --input-text-bg-color:HighlightText;
    --input-text-fg-color:FieldText;
  }

  font:message-box;
  font-size:13px;
  font-weight:400;
  line-height:150%;
  border-radius:4px;
  padding:12px 16px;
  border:1px solid var(--dialog-border-color);
  background:var(--dialog-bg-color);
  color:var(--text-primary-color);
  box-shadow:var(--dialog-shadow);

  .mainContainer{
    *:focus-visible{
      outline:var(--focus-ring-outline);
      outline-offset:2px;
    }

    .title{
      display:flex;
      width:auto;
      flex-direction:column;
      justify-content:flex-end;
      align-items:flex-start;
      gap:12px;

      > span{
        font-size:13px;
        font-style:normal;
        font-weight:590;
        line-height:150%;
      }
    }

    .dialogSeparator{
      width:100%;
      height:0;
      margin-block:4px;
      border-top:1px solid var(--separator-color);
      border-bottom:none;
    }

    .dialogButtonsGroup{
      display:flex;
      gap:12px;
      align-self:flex-end;
    }

    .radio{
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      gap:4px;

      > .radioButton{
        display:flex;
        gap:8px;
        align-self:stretch;
        align-items:center;

        input{
          appearance:none;
          box-sizing:border-box;
          width:16px;
          height:16px;
          border-radius:50%;
          background-color:var(--radio-bg-color);
          border:1px solid var(--radio-border-color);

          &:hover{
            filter:var(--hover-filter);
          }

          &:checked{
            background-color:var(--radio-checked-bg-color);
            border:4px solid var(--radio-checked-border-color);
          }
        }
      }

      > .radioLabel{
        display:flex;
        padding-inline-start:24px;
        align-items:flex-start;
        gap:10px;
        align-self:stretch;

        > span{
          flex:1 0 0;
          font-size:11px;
          color:var(--text-secondary-color);
        }
      }
    }

    button:not(:is(.toggle-button, .closeButton, .clearInputButton)){
      border-radius:4px;
      border:1px solid;
      font:menu;
      font-weight:590;
      font-size:13px;
      padding:4px 16px;
      width:auto;
      height:32px;

      &:hover{
        cursor:pointer;
        filter:var(--hover-filter);
      }

      > span{
        color:inherit;
        font:inherit;
      }

      &.secondaryButton{
        color:var(--button-secondary-fg-color);
        background-color:var(--button-secondary-bg-color);
        border-color:var(--button-secondary-border-color);

        &:hover{
          color:var(--button-secondary-hover-fg-color);
          background-color:var(--button-secondary-hover-bg-color);
          border-color:var(--button-secondary-hover-border-color);
        }

        &:active{
          color:var(--button-secondary-active-fg-color);
          background-color:var(--button-secondary-active-bg-color);
          border-color:var(--button-secondary-active-border-color);
        }

        &:disabled{
          background-color:var(--button-secondary-disabled-bg-color);
          border-color:var(--button-secondary-disabled-border-color);
          color:var(--button-secondary-disabled-fg-color);
          opacity:var(--button-disabled-opacity);
        }
      }

      &.primaryButton{
        color:var(--button-primary-fg-color);
        background-color:var(--button-primary-bg-color);
        border-color:var(--button-primary-border-color);
        opacity:1;

        &:hover{
          color:var(--button-primary-hover-fg-color);
          background-color:var(--button-primary-hover-bg-color);
          border-color:var(--button-primary-hover-border-color);
        }

        &:active{
          color:var(--button-primary-active-fg-color);
          background-color:var(--button-primary-active-bg-color);
          border-color:var(--button-primary-active-border-color);
        }

        &:disabled{
          background-color:var(--button-primary-disabled-bg-color);
          border-color:var(--button-primary-disabled-border-color);
          color:var(--button-primary-disabled-fg-color);
          opacity:var(--button-disabled-opacity);
        }
      }

      &:disabled{
        pointer-events:none;
      }
    }

    a{
      color:var(--link-fg-color);

      &:hover{
        color:var(--link-hover-fg-color);
      }
    }

    textarea{
      font:inherit;
      padding:8px;
      resize:none;
      margin:0;
      box-sizing:border-box;
      border-radius:4px;
      border:1px solid var(--textarea-border-color);
      background:var(--textarea-bg-color);
      color:var(--textarea-fg-color);

      &:focus{
        outline-offset:0;
        border-color:transparent;
      }

      &:disabled{
        pointer-events:none;
        opacity:0.4;
      }
    }

    input[type="text"]{
      background-color:var(--input-text-bg-color);
      color:var(--input-text-fg-color);
    }

    .messageBar{
      --message-bar-bg-color:light-dark(#ffebcd, #5a3100);
      --message-bar-fg-color:light-dark(#15141a, #fbfbfe);
      --message-bar-border-color:light-dark(
        rgb(0 0 0 / 0.08),
        rgb(255 255 255 / 0.08)
      );
      --message-bar-icon:url(images/messageBar_warning.svg);
      --message-bar-icon-color:light-dark(#cd411e, #e49c49);

      @media screen and (forced-colors: active){
        --message-bar-bg-color:HighlightText;
        --message-bar-fg-color:CanvasText;
        --message-bar-border-color:CanvasText;
        --message-bar-icon-color:CanvasText;
      }

      align-self:stretch;

      > div{
        &::before,
        > div{
          margin-block:4px;
        }

        > div{
          display:flex;
          flex-direction:column;
          align-items:flex-start;
          gap:8px;
          flex:1 0 0;

          .title{
            font-size:13px;
            font-weight:590;
          }

          .description{
            font-size:13px;
          }
        }
      }
    }

    .toggler{
      display:flex;
      align-items:center;
      gap:8px;
      align-self:stretch;

      > .togglerLabel{
        user-select:none;
      }
    }
  }
}

.textLayer{
  position:absolute;
  text-align:initial;
  inset:0;
  overflow:clip;
  opacity:1;
  line-height:1;
  text-size-adjust:none;
  forced-color-adjust:none;
  transform-origin:0 0;
  caret-color:CanvasText;
  z-index:0;

  &.highlighting{
    touch-action:none;
  }

  :is(span, br){
    color:transparent;
    position:absolute;
    white-space:pre;
    cursor:text;
    transform-origin:0% 0%;
  }

  > :not(.markedContent),
  .markedContent span:not(.markedContent){
    z-index:1;
  }

  span[role="img"]{
    user-select:none;
    cursor:default;
  }

  .highlight{
    --highlight-bg-color:rgb(180 0 170 / 0.25);
    --highlight-selected-bg-color:rgb(0 100 0 / 0.25);
    --highlight-backdrop-filter:none;
    --highlight-selected-backdrop-filter:none;

    @media screen and (forced-colors: active){
      --highlight-bg-color:transparent;
      --highlight-selected-bg-color:transparent;
      --highlight-backdrop-filter:var(--hcm-highlight-filter);
      --highlight-selected-backdrop-filter:var(
        --hcm-highlight-selected-filter
      );
    }

    margin:-1px;
    padding:1px;
    background-color:var(--highlight-bg-color);
    backdrop-filter:var(--highlight-backdrop-filter);
    border-radius:4px;

    &.appended{
      position:initial;
    }

    &.begin{
      border-radius:4px 0 0 4px;
    }

    &.end{
      border-radius:0 4px 4px 0;
    }

    &.middle{
      border-radius:0;
    }

    &.selected{
      background-color:var(--highlight-selected-bg-color);
      backdrop-filter:var(--highlight-selected-backdrop-filter);
    }
  }

  ::selection{
    background:color-mix(in srgb, AccentColor, transparent 75%);
  }

  .endOfContent{
    display:block;
    position:absolute;
    inset:100% 0 0;
    z-index:0;
    cursor:default;
    user-select:none;
  }

  &.selecting .endOfContent{
    top:0;
  }
}

.annotationLayer{
  color-scheme:only light;

  --annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");
  --input-focus-border-color:Highlight;
  --input-focus-outline:1px solid Canvas;
  --input-unfocused-border-color:transparent;
  --input-disabled-border-color:transparent;
  --input-hover-border-color:black;
  --link-outline:none;

  @media screen and (forced-colors: active){
    --input-focus-border-color:CanvasText;
    --input-unfocused-border-color:ActiveText;
    --input-disabled-border-color:GrayText;
    --input-hover-border-color:Highlight;
    --link-outline:1.5px solid LinkText;

    .textWidgetAnnotation :is(input, textarea):required,
    .choiceWidgetAnnotation select:required,
    .buttonWidgetAnnotation:is(.checkBox, .radioButton) input:required{
      outline:1.5px solid selectedItem;
    }

    .linkAnnotation{
      outline:var(--link-outline);

      &:hover{
        backdrop-filter:var(--hcm-highlight-filter);
      }

      & > a:hover{
        opacity:0 !important;
        background:none !important;
        box-shadow:none;
      }
    }

    .popupAnnotation .popup{
      outline:calc(1.5px * var(--total-scale-factor)) solid CanvasText !important;
      background-color:ButtonFace !important;
      color:ButtonText !important;
    }

    .highlightArea:hover::after{
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:100%;
      backdrop-filter:var(--hcm-highlight-filter);
      content:"";
      pointer-events:none;
    }

    .popupAnnotation.focused .popup{
      outline:calc(3px * var(--total-scale-factor)) solid Highlight !important;
    }
  }

  position:absolute;
  top:0;
  left:0;
  pointer-events:none;
  transform-origin:0 0;

  &[data-main-rotation="90"] .norotate{
    transform:rotate(270deg) translateX(-100%);
  }
  &[data-main-rotation="180"] .norotate{
    transform:rotate(180deg) translate(-100%, -100%);
  }
  &[data-main-rotation="270"] .norotate{
    transform:rotate(90deg) translateY(-100%);
  }

  &.disabled{
    section,
    .popup{
      pointer-events:none;
    }
  }

  .annotationContent{
    position:absolute;
    width:100%;
    height:100%;
    pointer-events:none;

    &.freetext{
      background:transparent;
      border:none;
      inset:0;
      overflow:visible;
      white-space:nowrap;
      font:10px sans-serif;
      line-height:1.35;
    }
  }

  section{
    position:absolute;
    text-align:initial;
    pointer-events:auto;
    box-sizing:border-box;
    transform-origin:0 0;
    user-select:none;

    &:has(div.annotationContent){
      canvas.annotationContent{
        display:none;
      }
    }

    .overlaidText{
      position:absolute;
      top:0;
      left:0;
      width:0;
      height:0;
      display:inline-block;
      overflow:hidden;
    }
  }

  .textLayer.selecting ~ & section{
    pointer-events:none;
  }

  :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton) > a{
    position:absolute;
    font-size:1em;
    top:0;
    left:0;
    width:100%;
    height:100%;
  }

  :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton):not(.hasBorder)
    > a:hover{
    opacity:0.2;
    background-color:rgb(255 255 0);
    box-shadow:0 2px 10px rgb(255 255 0);
  }

  .linkAnnotation.hasBorder:hover{
    background-color:rgb(255 255 0 / 0.2);
  }

  .hasBorder{
    background-size:100% 100%;
  }

  .textAnnotation img{
    position:absolute;
    cursor:pointer;
    width:100%;
    height:100%;
    top:0;
    left:0;
  }

  .textWidgetAnnotation :is(input, textarea),
  .choiceWidgetAnnotation select,
  .buttonWidgetAnnotation:is(.checkBox, .radioButton) input{
    background-image:var(--annotation-unfocused-field-background);
    border:2px solid var(--input-unfocused-border-color);
    box-sizing:border-box;
    font:calc(9px * var(--total-scale-factor)) sans-serif;
    height:100%;
    margin:0;
    vertical-align:top;
    width:100%;
  }

  .textWidgetAnnotation :is(input, textarea):required,
  .choiceWidgetAnnotation select:required,
  .buttonWidgetAnnotation:is(.checkBox, .radioButton) input:required{
    outline:1.5px solid red;
  }

  .choiceWidgetAnnotation select option{
    padding:0;
  }

  .buttonWidgetAnnotation.radioButton input{
    border-radius:50%;
  }

  .textWidgetAnnotation textarea{
    resize:none;
  }

  .textWidgetAnnotation :is(input, textarea)[disabled],
  .choiceWidgetAnnotation select[disabled],
  .buttonWidgetAnnotation:is(.checkBox, .radioButton) input[disabled]{
    background:none;
    border:2px solid var(--input-disabled-border-color);
    cursor:not-allowed;
  }

  .textWidgetAnnotation :is(input, textarea):hover,
  .choiceWidgetAnnotation select:hover,
  .buttonWidgetAnnotation:is(.checkBox, .radioButton) input:hover{
    border:2px solid var(--input-hover-border-color);
  }
  .textWidgetAnnotation :is(input, textarea):hover,
  .choiceWidgetAnnotation select:hover,
  .buttonWidgetAnnotation.checkBox input:hover{
    border-radius:2px;
  }

  .textWidgetAnnotation :is(input, textarea):focus,
  .choiceWidgetAnnotation select:focus{
    background:none;
    border:2px solid var(--input-focus-border-color);
    border-radius:2px;
    outline:var(--input-focus-outline);
  }

  .buttonWidgetAnnotation:is(.checkBox, .radioButton) :focus{
    background-image:none;
    background-color:transparent;
  }

  .buttonWidgetAnnotation.checkBox :focus{
    border:2px solid var(--input-focus-border-color);
    border-radius:2px;
    outline:var(--input-focus-outline);
  }

  .buttonWidgetAnnotation.radioButton :focus{
    border:2px solid var(--input-focus-border-color);
    outline:var(--input-focus-outline);
  }

  .buttonWidgetAnnotation.checkBox input:checked::before,
  .buttonWidgetAnnotation.checkBox input:checked::after,
  .buttonWidgetAnnotation.radioButton input:checked::before{
    background-color:CanvasText;
    content:"";
    display:block;
    position:absolute;
  }

  .buttonWidgetAnnotation.checkBox input:checked::before,
  .buttonWidgetAnnotation.checkBox input:checked::after{
    height:80%;
    left:45%;
    width:1px;
  }

  .buttonWidgetAnnotation.checkBox input:checked::before{
    transform:rotate(45deg);
  }

  .buttonWidgetAnnotation.checkBox input:checked::after{
    transform:rotate(-45deg);
  }

  .buttonWidgetAnnotation.radioButton input:checked::before{
    border-radius:50%;
    height:50%;
    left:25%;
    top:25%;
    width:50%;
  }

  .textWidgetAnnotation input.comb{
    font-family:monospace;
    padding-left:2px;
    padding-right:0;
  }

  .textWidgetAnnotation input.comb:focus{
    width:103%;
  }

  .buttonWidgetAnnotation:is(.checkBox, .radioButton) input{
    appearance:none;
  }

  .fileAttachmentAnnotation .popupTriggerArea{
    height:100%;
    width:100%;
  }

  .popupAnnotation{
    position:absolute;
    font-size:calc(9px * var(--total-scale-factor));
    pointer-events:none;
    width:max-content;
    max-width:45%;
    height:auto;
  }

  .popup{
    background-color:rgb(255 255 153);
    color:black;
    box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) rgb(136 136 136);
    border-radius:calc(2px * var(--total-scale-factor));
    outline:1.5px solid rgb(255 255 74);
    padding:calc(6px * var(--total-scale-factor));
    cursor:pointer;
    font:message-box;
    white-space:normal;
    word-wrap:break-word;
    pointer-events:auto;
    user-select:text;
  }

  .popupAnnotation.focused .popup{
    outline-width:3px;
  }

  .popup *{
    font-size:calc(9px * var(--total-scale-factor));
  }

  .popup > .header{
    display:inline-block;
  }

  .popup > .header h1{
    display:inline;
  }

  .popup > .header .popupDate{
    display:inline-block;
    margin-left:calc(5px * var(--total-scale-factor));
    width:fit-content;
  }

  .popupContent{
    border-top:1px solid rgb(51 51 51);
    margin-top:calc(2px * var(--total-scale-factor));
    padding-top:calc(2px * var(--total-scale-factor));
  }

  .richText > *{
    white-space:pre-wrap;
    font-size:calc(9px * var(--total-scale-factor));
  }

  .popupTriggerArea{
    cursor:pointer;
  }

  section svg{
    position:absolute;
    width:100%;
    height:100%;
    top:0;
    left:0;
  }

  .annotationTextContent{
    position:absolute;
    width:100%;
    height:100%;
    opacity:0;
    color:transparent;
    user-select:none;
    pointer-events:none;

    span{
      width:100%;
      display:inline-block;
    }
  }

  svg.quadrilateralsContainer{
    contain:strict;
    width:0;
    height:0;
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
  }
}

:root{
  --xfa-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");
  --xfa-focus-outline:auto;
}

@media screen and (forced-colors: active){
  :root{
    --xfa-focus-outline:2px solid CanvasText;
  }
  .xfaLayer *:required{
    outline:1.5px solid selectedItem;
  }
}

.xfaLayer{
  color-scheme:only light;

  background-color:transparent;
}

.xfaLayer .highlight{
  margin:-1px;
  padding:1px;
  background-color:rgb(239 203 237);
  border-radius:4px;
}

.xfaLayer .highlight.appended{
  position:initial;
}

.xfaLayer .highlight.begin{
  border-radius:4px 0 0 4px;
}

.xfaLayer .highlight.end{
  border-radius:0 4px 4px 0;
}

.xfaLayer .highlight.middle{
  border-radius:0;
}

.xfaLayer .highlight.selected{
  background-color:rgb(203 223 203);
}

.xfaPage{
  overflow:hidden;
  position:relative;
}

.xfaContentarea{
  position:absolute;
}

.xfaPrintOnly{
  display:none;
}

.xfaLayer{
  position:absolute;
  text-align:initial;
  top:0;
  left:0;
  transform-origin:0 0;
  line-height:1.2;
}

.xfaLayer *{
  color:inherit;
  font:inherit;
  font-style:inherit;
  font-weight:inherit;
  font-kerning:inherit;
  letter-spacing:-0.01px;
  text-align:inherit;
  text-decoration:inherit;
  box-sizing:border-box;
  background-color:transparent;
  padding:0;
  margin:0;
  pointer-events:auto;
  line-height:inherit;
}

.xfaLayer *:required{
  outline:1.5px solid red;
}

.xfaLayer div,
.xfaLayer svg,
.xfaLayer svg *{
  pointer-events:none;
}

.xfaLayer a{
  color:blue;
}

.xfaRich li{
  margin-left:3em;
}

.xfaFont{
  color:black;
  font-weight:normal;
  font-kerning:none;
  font-size:10px;
  font-style:normal;
  letter-spacing:0;
  text-decoration:none;
  vertical-align:0;
}

.xfaCaption{
  overflow:hidden;
  flex:0 0 auto;
}

.xfaCaptionForCheckButton{
  overflow:hidden;
  flex:1 1 auto;
}

.xfaLabel{
  height:100%;
  width:100%;
}

.xfaLeft{
  display:flex;
  flex-direction:row;
  align-items:center;
}

.xfaRight{
  display:flex;
  flex-direction:row-reverse;
  align-items:center;
}

:is(.xfaLeft, .xfaRight) > :is(.xfaCaption, .xfaCaptionForCheckButton){
  max-height:100%;
}

.xfaTop{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.xfaBottom{
  display:flex;
  flex-direction:column-reverse;
  align-items:flex-start;
}

:is(.xfaTop, .xfaBottom) > :is(.xfaCaption, .xfaCaptionForCheckButton){
  width:100%;
}

.xfaBorder{
  background-color:transparent;
  position:absolute;
  pointer-events:none;
}

.xfaWrapped{
  width:100%;
  height:100%;
}

:is(.xfaTextfield, .xfaSelect):focus{
  background-image:none;
  background-color:transparent;
  outline:var(--xfa-focus-outline);
  outline-offset:-1px;
}

:is(.xfaCheckbox, .xfaRadio):focus{
  outline:var(--xfa-focus-outline);
}

.xfaTextfield,
.xfaSelect{
  height:100%;
  width:100%;
  flex:1 1 auto;
  border:none;
  resize:none;
  background-image:var(--xfa-unfocused-field-background);
}

.xfaSelect{
  padding-inline:2px;
}

:is(.xfaTop, .xfaBottom) > :is(.xfaTextfield, .xfaSelect){
  flex:0 1 auto;
}

.xfaButton{
  cursor:pointer;
  width:100%;
  height:100%;
  border:none;
  text-align:center;
}

.xfaLink{
  width:100%;
  height:100%;
  position:absolute;
  top:0;
  left:0;
}

.xfaCheckbox,
.xfaRadio{
  width:100%;
  height:100%;
  flex:0 0 auto;
  border:none;
}

.xfaRich{
  white-space:pre-wrap;
  width:100%;
  height:100%;
}

.xfaImage{
  object-position:left top;
  object-fit:contain;
  width:100%;
  height:100%;
}

.xfaLrTb,
.xfaRlTb,
.xfaTb{
  display:flex;
  flex-direction:column;
  align-items:stretch;
}

.xfaLr{
  display:flex;
  flex-direction:row;
  align-items:stretch;
}

.xfaRl{
  display:flex;
  flex-direction:row-reverse;
  align-items:stretch;
}

.xfaTb > div{
  justify-content:left;
}

.xfaPosition{
  position:relative;
}

.xfaArea{
  position:relative;
}

.xfaValignMiddle{
  display:flex;
  align-items:center;
}

.xfaTable{
  display:flex;
  flex-direction:column;
  align-items:stretch;
}

.xfaTable .xfaRow{
  display:flex;
  flex-direction:row;
  align-items:stretch;
}

.xfaTable .xfaRlRow{
  display:flex;
  flex-direction:row-reverse;
  align-items:stretch;
  flex:1;
}

.xfaTable .xfaRlRow > div{
  flex:1;
}

:is(.xfaNonInteractive, .xfaDisabled, .xfaReadOnly) :is(input, textarea){
  background:initial;
}

@media print{
  .xfaTextfield,
  .xfaSelect{
    background:transparent;
  }

  .xfaSelect{
    appearance:none;
    text-indent:1px;
    text-overflow:"";
  }
}

:root{
  color-scheme:light dark;

  --viewer-container-height:0;
  --pdfViewer-padding-bottom:0;
  --page-margin:1px auto -8px;
  --page-border:9px solid transparent;
  --spreadHorizontalWrapped-margin-LR:-3.5px;
  --loading-icon-delay:400ms;
  --focus-ring-color:light-dark(#0060df, #0df);
  --focus-ring-outline:2px solid var(--focus-ring-color);

  @media screen and (forced-colors: active){
    --pdfViewer-padding-bottom:9px;
    --page-margin:8px auto -1px;
    --page-border:1px solid CanvasText;
    --spreadHorizontalWrapped-margin-LR:3.5px;
    --focus-ring-color:CanvasText;
  }
}

[data-main-rotation="90"]{
  transform:rotate(90deg) translateY(-100%);
}
[data-main-rotation="180"]{
  transform:rotate(180deg) translate(-100%, -100%);
}
[data-main-rotation="270"]{
  transform:rotate(270deg) translateX(-100%);
}

#hiddenCopyElement,
.hiddenCanvasElement{
  position:absolute;
  top:0;
  left:0;
  width:0;
  height:0;
  display:none;
}

.pdfViewer{
  --scale-factor:1;
  --page-bg-color:unset;

  padding-bottom:var(--pdfViewer-padding-bottom);

  --hcm-highlight-filter:none;
  --hcm-highlight-selected-filter:none;

  @media screen and (forced-colors: active){
    --hcm-highlight-filter:invert(100%);
  }

  &.copyAll{
    cursor:wait;
  }

  .canvasWrapper{
    overflow:hidden;
    width:100%;
    height:100%;

    canvas{
      position:absolute;
      top:0;
      left:0;
      margin:0;
      display:block;
      width:100%;
      height:100%;
      contain:content;

      .structTree{
        contain:strict;
      }
    }
  }
}

.pdfViewer .page{
  --user-unit:1;
  --total-scale-factor:calc(var(--scale-factor) * var(--user-unit));
  --scale-round-x:1px;
  --scale-round-y:1px;

  direction:ltr;
  width:816px;
  height:1056px;
  margin:var(--page-margin);
  position:relative;
  overflow:visible;
  border:var(--page-border);
  background-clip:content-box;
  background-color:var(--page-bg-color, rgb(255 255 255));
}

.pdfViewer .dummyPage{
  position:relative;
  width:0;
  height:var(--viewer-container-height);
}

.pdfViewer.noUserSelect{
  user-select:none;
}

.pdfViewer:is(.scrollHorizontal, .scrollWrapped),
.spread{
  margin-inline:3.5px;
  text-align:center;
}

.pdfViewer.scrollHorizontal,
.spread{
  white-space:nowrap;
}

.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .spread{
  margin-inline:0;
}

.spread :is(.page, .dummyPage),
.pdfViewer:is(.scrollHorizontal, .scrollWrapped) :is(.page, .spread){
  display:inline-block;
  vertical-align:middle;
}

.spread .page,
.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .page{
  margin-inline:var(--spreadHorizontalWrapped-margin-LR);
}

.pdfViewer .page.loadingIcon::after{
  position:absolute;
  top:0;
  left:0;
  content:"";
  width:100%;
  height:100%;
  background:url("images/loading-icon.gif") center no-repeat;
  display:none;
  transition-property:display;
  transition-delay:var(--loading-icon-delay);
  z-index:5;
  contain:strict;
}

.pdfViewer .page.loading::after{
  display:block;
}

.pdfViewer .page:not(.loading)::after{
  transition-property:none;
  display:none;
}

.pdfPresentationMode .pdfViewer{
  padding-bottom:0;
}

.pdfPresentationMode .spread{
  margin:0;
}

.pdfPresentationMode .pdfViewer .page{
  margin:0 auto;
  border:2px solid transparent;
}

:root{
  --dir-factor:1;
  --scale-select-width:140px;

  --toolbar-icon-opacity:1;
  --doorhanger-icon-opacity:0.9;

  --main-color:light-dark(rgb(12 12 13), rgb(249 249 250));
  --body-bg-color:light-dark(rgb(212 212 215), rgb(42 42 46));
  --scrollbar-color:light-dark(auto, rgb(121 121 123));
  --scrollbar-bg-color:light-dark(auto, rgb(35 35 39));
  --field-color:light-dark(rgb(6 6 6), rgb(250 250 250));
  --field-bg-color:light-dark(rgb(255 255 255), rgb(64 64 68));
  --field-border-color:light-dark(rgb(187 187 188), rgb(115 115 115));
  --doorhanger-bg-color:light-dark(rgb(255 255 255), rgb(74 74 79));
  --dialog-button-border:none;
  --dialog-button-bg-color:light-dark(rgb(12 12 13 / 0.1), rgb(92 92 97));
  --dialog-button-hover-bg-color:light-dark(
    rgb(12 12 13 / 0.3),
    rgb(115 115 115)
  );

  --toolbar-bg-color:light-dark(#f9f9fb, #2b2a33);
  --toolbar-divider-color:light-dark(#e0e0e6, #5b5b66);
  --toolbar-fg-color:light-dark(#15141a, #fbfbfe);
  --toolbar-height:48px;
  --toolbar-border-width:1px;

  --toolbarButton-download-icon:url(images/gv-toolbarButton-download.svg);
}

:root:dir(rtl){
  --dir-factor:-1;
}

@media screen and (forced-colors: active){
  :root{
    --dialog-button-border:1px solid Highlight;
    --dialog-button-hover-bg-color:Highlight;
    --dialog-button-hover-color:ButtonFace;
    --field-border-color:ButtonText;
    --main-color:CanvasText;
  }
}

*{
  padding:0;
  margin:0;
}

html,
body{
  height:100%;
  width:100%;
}

body{
  background-color:var(--body-bg-color);
  scrollbar-color:var(--scrollbar-color) var(--scrollbar-bg-color);
}

.hidden,
[hidden]{
  display:none !important;
}

#outerContainer{
  width:100%;
  height:100%;
  position:relative;
}

#mainContainer{
  position:absolute;
  inset:0;
  min-width:350px;
}

#viewerContainer{
  overflow:auto;
  position:absolute;
  inset:var(--toolbar-height) 0 0;
  outline:none;
}

#viewerContainer.noToolbar{
  inset-block-start:0;
}

.dialogButton{
  border:none;
  background:none;
  width:28px;
  height:28px;
  outline:none;
}

.dialogButton:is(:hover, :focus-visible){
  background-color:var(--dialog-button-hover-bg-color);
}

.dialogButton:is(:hover, :focus-visible) > span{
  color:var(--dialog-button-hover-color);
}

.dialogButton[disabled]{
  opacity:0.5;
}

.dialogButton{
  min-width:16px;
  margin:2px 1px;
  padding:2px 6px 0;
  border:none;
  border-radius:2px;
  color:var(--main-color);
  font-size:12px;
  line-height:14px;
  user-select:none;
  cursor:default;
  box-sizing:border-box;
}

.toolbarField{
  padding:4px 7px;
  margin:3px 0;
  border-radius:2px;
  background-color:var(--field-bg-color);
  background-clip:padding-box;
  border:1px solid var(--field-border-color);
  box-shadow:none;
  color:var(--field-color);
  font-size:12px;
  line-height:16px;
  outline:none;
}

.toolbarField:focus{
  border-color:#0a84ff;
}

#floatingToolbar{
  display:flex;
  align-items:center;
  position:absolute;
  width:100%;
  height:calc(var(--toolbar-height) + var(--toolbar-border-width));
  top:0;
  left:0;
  padding:2px;
  box-sizing:border-box;
  border-block-end:solid var(--toolbar-border-width) var(--toolbar-divider-color);
  background-color:var(--toolbar-bg-color);

  &.show{
    z-index:100000;
    opacity:1;
  }

  &:not(.show){
    z-index:-1;
    opacity:0;
  }

  .toolbarButton{
    display:flex;
    align-items:center;
    border-style:none;
    user-select:none;
    box-sizing:border-box;
    background-color:transparent;
    width:auto;
    height:100%;
    outline:none;
    position:relative;

    &::before{
      width:24px;
      height:24px;
      content:"";
      background-color:var(--toolbar-fg-color);
      mask-size:cover;
      margin-inline:12px 8px;
    }

    > span{
      color:var(--toolbar-fg-color);
      width:auto;
      height:auto;
      overflow:hidden;
    }

    &#download::before{
      mask-image:var(--toolbarButton-download-icon);
    }
  }
}

:is(.toolbarButton .dialogButton)[disabled]{
  opacity:0.5;
}

.dialogButton{
  width:auto;
  margin:3px 4px 2px !important;
  padding:2px 11px;
  color:var(--main-color);
  background-color:var(--dialog-button-bg-color);
  border:var(--dialog-button-border) !important;
}

dialog{
  margin:auto;
  padding:15px;
  border-spacing:4px;
  color:var(--main-color);
  font:message-box;
  font-size:12px;
  line-height:14px;
  background-color:var(--doorhanger-bg-color);
  border:1px solid rgb(0 0 0 / 0.5);
  border-radius:4px;
  box-shadow:0 1px 4px rgb(0 0 0 / 0.3);
}
dialog::backdrop{
  background-color:rgb(0 0 0 / 0.2);
}

dialog > .row{
  display:table-row;
}

dialog > .row > *{
  display:table-cell;
}

dialog .toolbarField{
  margin:5px 0;
}

dialog .separator{
  display:block;
  margin:4px 0;
  height:0;
  width:100%;
  border-top:1px solid var(--separator-color);
  border-bottom:none;
}

dialog .buttonRow{
  text-align:center;
  vertical-align:middle;
}

dialog :link{
  color:rgb(255 255 255);
}

#passwordDialog{
  text-align:center;
}
#passwordDialog .toolbarField{
  width:200px;
}

@page{
  margin:0;
}

#printContainer{
  display:none;
}

@media print{
  body{
    background:rgb(0 0 0 / 0) none;
  }
  body[data-pdfjsprinting] #outerContainer{
    display:none;
  }
  body[data-pdfjsprinting] #printContainer{
    display:block;
  }
  #printContainer{
    height:100%;
  }
  #printContainer > .printedPage{
    page-break-after:always;
    page-break-inside:avoid;
    height:100%;
    width:100%;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
  }

  #printContainer > .xfaPrintedPage .xfaPage{
    position:absolute;
  }

  #printContainer > .xfaPrintedPage{
    page-break-after:always;
    page-break-inside:avoid;
    width:100%;
    height:100%;
    position:relative;
  }

  #printContainer > .printedPage :is(canvas, img){
    max-width:100%;
    max-height:100%;

    direction:ltr;
    display:block;
  }
}
