summaryrefslogtreecommitdiffstats
path: root/toolkit/components/pdfjs/content/web/viewer-geckoview.css
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/pdfjs/content/web/viewer-geckoview.css')
-rw-r--r--toolkit/components/pdfjs/content/web/viewer-geckoview.css1316
1 files changed, 1316 insertions, 0 deletions
diff --git a/toolkit/components/pdfjs/content/web/viewer-geckoview.css b/toolkit/components/pdfjs/content/web/viewer-geckoview.css
new file mode 100644
index 0000000000..1709f5512b
--- /dev/null
+++ b/toolkit/components/pdfjs/content/web/viewer-geckoview.css
@@ -0,0 +1,1316 @@
+/* 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.
+ */
+
+:root {
+ --highlight-bg-color: rgba(180, 0, 170, 1);
+ --highlight-selected-bg-color: rgba(0, 100, 0, 1);
+}
+
+@media screen and (forced-colors: active) {
+ :root {
+ --highlight-bg-color: Highlight;
+ --highlight-selected-bg-color: ButtonText;
+ }
+}
+
+.textLayer {
+ position: absolute;
+ text-align: initial;
+ inset: 0;
+ overflow: hidden;
+ opacity: 0.25;
+ line-height: 1;
+ text-size-adjust: none;
+ forced-color-adjust: none;
+ transform-origin: 0 0;
+ z-index: 2;
+}
+
+.textLayer :is(span, br) {
+ color: transparent;
+ position: absolute;
+ white-space: pre;
+ cursor: text;
+ transform-origin: 0% 0%;
+}
+
+/* Only necessary in Google Chrome, see issue 14205, and most unfortunately
+ * the problem doesn't show up in "text" reference tests. */
+
+.textLayer .highlight {
+ margin: -1px;
+ padding: 1px;
+ background-color: var(--highlight-bg-color);
+ border-radius: 4px;
+}
+
+.textLayer .highlight.appended {
+ position: initial;
+}
+
+.textLayer .highlight.begin {
+ border-radius: 4px 0 0 4px;
+}
+
+.textLayer .highlight.end {
+ border-radius: 0 4px 4px 0;
+}
+
+.textLayer .highlight.middle {
+ border-radius: 0;
+}
+
+.textLayer .highlight.selected {
+ background-color: var(--highlight-selected-bg-color);
+}
+
+.textLayer ::selection {
+ background: AccentColor;
+}
+
+/* Avoids https://github.com/mozilla/pdf.js/issues/13840 in Chrome */
+
+.textLayer .endOfContent {
+ display: block;
+ position: absolute;
+ inset: 100% 0 0;
+ z-index: -1;
+ cursor: default;
+ user-select: none;
+}
+
+.textLayer .endOfContent.active {
+ top: 0;
+}
+
+
+:root {
+ --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) {
+ :root {
+ --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;
+ }
+ .annotationLayer .textWidgetAnnotation :is(input, textarea):required,
+ .annotationLayer .choiceWidgetAnnotation select:required,
+ .annotationLayer
+ .buttonWidgetAnnotation:is(.checkBox, .radioButton)
+ input:required {
+ outline: 1.5px solid selectedItem;
+ }
+
+ .annotationLayer .linkAnnotation:hover {
+ backdrop-filter: invert(100%);
+ }
+}
+
+.annotationLayer {
+ position: absolute;
+ top: 0;
+ left: 0;
+ pointer-events: none;
+ transform-origin: 0 0;
+ z-index: 3;
+}
+
+.annotationLayer[data-main-rotation="90"] .norotate {
+ transform: rotate(270deg) translateX(-100%);
+}
+.annotationLayer[data-main-rotation="180"] .norotate {
+ transform: rotate(180deg) translate(-100%, -100%);
+}
+.annotationLayer[data-main-rotation="270"] .norotate {
+ transform: rotate(90deg) translateY(-100%);
+}
+
+.annotationLayer canvas {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+
+.annotationLayer section {
+ position: absolute;
+ text-align: initial;
+ pointer-events: auto;
+ box-sizing: border-box;
+ transform-origin: 0 0;
+}
+
+.annotationLayer .linkAnnotation {
+ outline: var(--link-outline);
+}
+
+.annotationLayer :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton) > a {
+ position: absolute;
+ font-size: 1em;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.annotationLayer
+ :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton)
+ > a:hover {
+ opacity: 0.2;
+ background: rgba(255, 255, 0, 1);
+ box-shadow: 0 2px 10px rgba(255, 255, 0, 1);
+}
+
+.annotationLayer .textAnnotation img {
+ position: absolute;
+ cursor: pointer;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+}
+
+.annotationLayer .textWidgetAnnotation :is(input, textarea),
+.annotationLayer .choiceWidgetAnnotation select,
+.annotationLayer .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(--scale-factor)) sans-serif;
+ height: 100%;
+ margin: 0;
+ vertical-align: top;
+ width: 100%;
+}
+
+.annotationLayer .textWidgetAnnotation :is(input, textarea):required,
+.annotationLayer .choiceWidgetAnnotation select:required,
+.annotationLayer
+ .buttonWidgetAnnotation:is(.checkBox, .radioButton)
+ input:required {
+ outline: 1.5px solid red;
+}
+
+.annotationLayer .choiceWidgetAnnotation select option {
+ padding: 0;
+}
+
+.annotationLayer .buttonWidgetAnnotation.radioButton input {
+ border-radius: 50%;
+}
+
+.annotationLayer .textWidgetAnnotation textarea {
+ resize: none;
+}
+
+.annotationLayer .textWidgetAnnotation :is(input, textarea)[disabled],
+.annotationLayer .choiceWidgetAnnotation select[disabled],
+.annotationLayer
+ .buttonWidgetAnnotation:is(.checkBox, .radioButton)
+ input[disabled] {
+ background: none;
+ border: 2px solid var(--input-disabled-border-color);
+ cursor: not-allowed;
+}
+
+.annotationLayer .textWidgetAnnotation :is(input, textarea):hover,
+.annotationLayer .choiceWidgetAnnotation select:hover,
+.annotationLayer
+ .buttonWidgetAnnotation:is(.checkBox, .radioButton)
+ input:hover {
+ border: 2px solid var(--input-hover-border-color);
+}
+.annotationLayer .textWidgetAnnotation :is(input, textarea):hover,
+.annotationLayer .choiceWidgetAnnotation select:hover,
+.annotationLayer .buttonWidgetAnnotation.checkBox input:hover {
+ border-radius: 2px;
+}
+
+.annotationLayer .textWidgetAnnotation :is(input, textarea):focus,
+.annotationLayer .choiceWidgetAnnotation select:focus {
+ background: none;
+ border: 2px solid var(--input-focus-border-color);
+ border-radius: 2px;
+ outline: var(--input-focus-outline);
+}
+
+.annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) :focus {
+ background-image: none;
+ background-color: transparent;
+}
+
+.annotationLayer .buttonWidgetAnnotation.checkBox :focus {
+ border: 2px solid var(--input-focus-border-color);
+ border-radius: 2px;
+ outline: var(--input-focus-outline);
+}
+
+.annotationLayer .buttonWidgetAnnotation.radioButton :focus {
+ border: 2px solid var(--input-focus-border-color);
+ outline: var(--input-focus-outline);
+}
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after,
+.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before {
+ background-color: CanvasText;
+ content: "";
+ display: block;
+ position: absolute;
+}
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after {
+ height: 80%;
+ left: 45%;
+ width: 1px;
+}
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before {
+ transform: rotate(45deg);
+}
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after {
+ transform: rotate(-45deg);
+}
+
+.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before {
+ border-radius: 50%;
+ height: 50%;
+ left: 30%;
+ top: 20%;
+ width: 50%;
+}
+
+.annotationLayer .textWidgetAnnotation input.comb {
+ font-family: monospace;
+ padding-left: 2px;
+ padding-right: 0;
+}
+
+.annotationLayer .textWidgetAnnotation input.comb:focus {
+ /*
+ * Letter spacing is placed on the right side of each character. Hence, the
+ * letter spacing of the last character may be placed outside the visible
+ * area, causing horizontal scrolling. We avoid this by extending the width
+ * when the element has focus and revert this when it loses focus.
+ */
+ width: 103%;
+}
+
+.annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input {
+ appearance: none;
+}
+
+.annotationLayer .popupTriggerArea {
+ height: 100%;
+ width: 100%;
+}
+
+.annotationLayer .fileAttachmentAnnotation .popupTriggerArea {
+ position: absolute;
+}
+
+.annotationLayer .popupWrapper {
+ position: absolute;
+ font-size: calc(9px * var(--scale-factor));
+ width: 100%;
+ min-width: calc(180px * var(--scale-factor));
+ pointer-events: none;
+}
+
+.annotationLayer .popup {
+ position: absolute;
+ max-width: calc(180px * var(--scale-factor));
+ background-color: rgba(255, 255, 153, 1);
+ box-shadow: 0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor))
+ rgba(136, 136, 136, 1);
+ border-radius: calc(2px * var(--scale-factor));
+ padding: calc(6px * var(--scale-factor));
+ margin-left: calc(5px * var(--scale-factor));
+ cursor: pointer;
+ font: message-box;
+ white-space: normal;
+ word-wrap: break-word;
+ pointer-events: auto;
+}
+
+.annotationLayer .popup > * {
+ font-size: calc(9px * var(--scale-factor));
+}
+
+.annotationLayer .popup h1 {
+ display: inline-block;
+}
+
+.annotationLayer .popupDate {
+ display: inline-block;
+ margin-left: calc(5px * var(--scale-factor));
+}
+
+.annotationLayer .popupContent {
+ border-top: 1px solid rgba(51, 51, 51, 1);
+ margin-top: calc(2px * var(--scale-factor));
+ padding-top: calc(2px * var(--scale-factor));
+}
+
+.annotationLayer .richText > * {
+ white-space: pre-wrap;
+ font-size: calc(9px * var(--scale-factor));
+}
+
+.annotationLayer .highlightAnnotation,
+.annotationLayer .underlineAnnotation,
+.annotationLayer .squigglyAnnotation,
+.annotationLayer .strikeoutAnnotation,
+.annotationLayer .freeTextAnnotation,
+.annotationLayer .lineAnnotation svg line,
+.annotationLayer .squareAnnotation svg rect,
+.annotationLayer .circleAnnotation svg ellipse,
+.annotationLayer .polylineAnnotation svg polyline,
+.annotationLayer .polygonAnnotation svg polygon,
+.annotationLayer .caretAnnotation,
+.annotationLayer .inkAnnotation svg polyline,
+.annotationLayer .stampAnnotation,
+.annotationLayer .fileAttachmentAnnotation {
+ cursor: pointer;
+}
+
+.annotationLayer section svg {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+}
+
+.annotationLayer .annotationTextContent {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ color: transparent;
+ user-select: none;
+ pointer-events: none;
+}
+
+.annotationLayer .annotationTextContent span {
+ width: 100%;
+ display: inline-block;
+}
+
+
+: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 {
+ background-color: transparent;
+}
+
+.xfaLayer .highlight {
+ margin: -1px;
+ padding: 1px;
+ background-color: rgba(239, 203, 237, 1);
+ 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: rgba(203, 223, 203, 1);
+}
+
+.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 {
+ --focus-outline: solid 2px blue;
+ --hover-outline: dashed 2px blue;
+ --freetext-line-height: 1.35;
+ --freetext-padding: 2px;
+ --editorFreeText-editing-cursor: text;
+ --editorInk-editing-cursor: url(images/cursor-editorInk.svg) 0 16, pointer;
+}
+
+@media (min-resolution: 1.1dppx) {
+ :root {
+ --editorFreeText-editing-cursor: url(images/cursor-editorFreeText.svg) 0 16,
+ text;
+ }
+}
+
+@media screen and (forced-colors: active) {
+ :root {
+ --focus-outline: solid 3px ButtonText;
+ --hover-outline: dashed 3px ButtonText;
+ }
+}
+
+[data-editor-rotation="90"] {
+ transform: rotate(90deg);
+}
+[data-editor-rotation="180"] {
+ transform: rotate(180deg);
+}
+[data-editor-rotation="270"] {
+ transform: rotate(270deg);
+}
+
+.annotationEditorLayer {
+ background: transparent;
+ position: absolute;
+ top: 0;
+ left: 0;
+ font-size: calc(100px * var(--scale-factor));
+ transform-origin: 0 0;
+ cursor: auto;
+ z-index: 4;
+}
+
+.annotationEditorLayer.freeTextEditing {
+ cursor: var(--editorFreeText-editing-cursor);
+}
+
+.annotationEditorLayer.inkEditing {
+ cursor: var(--editorInk-editing-cursor);
+}
+
+.annotationEditorLayer :is(.freeTextEditor, .inkEditor)[draggable="true"] {
+ cursor: move;
+}
+
+.annotationEditorLayer .selectedEditor {
+ outline: var(--focus-outline);
+ resize: none;
+}
+
+.annotationEditorLayer .freeTextEditor {
+ position: absolute;
+ background: transparent;
+ border-radius: 3px;
+ padding: calc(var(--freetext-padding) * var(--scale-factor));
+ resize: none;
+ width: auto;
+ height: auto;
+ z-index: 1;
+ transform-origin: 0 0;
+ touch-action: none;
+ cursor: auto;
+}
+
+.annotationEditorLayer .freeTextEditor .internal {
+ background: transparent;
+ border: none;
+ top: 0;
+ left: 0;
+ overflow: visible;
+ white-space: nowrap;
+ resize: none;
+ font: 10px sans-serif;
+ line-height: var(--freetext-line-height);
+}
+
+.annotationEditorLayer .freeTextEditor .overlay {
+ position: absolute;
+ display: none;
+ background: transparent;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.annotationEditorLayer .freeTextEditor .overlay.enabled {
+ display: block;
+}
+
+.annotationEditorLayer .freeTextEditor .internal:empty::before {
+ content: attr(default-content);
+ color: gray;
+}
+
+.annotationEditorLayer .freeTextEditor .internal:focus {
+ outline: none;
+}
+
+.annotationEditorLayer .inkEditor.disabled {
+ resize: none;
+}
+
+.annotationEditorLayer .inkEditor.disabled.selectedEditor {
+ resize: horizontal;
+}
+
+.annotationEditorLayer
+ :is(.freeTextEditor, .inkEditor):hover:not(.selectedEditor) {
+ outline: var(--hover-outline);
+}
+
+.annotationEditorLayer .inkEditor {
+ position: absolute;
+ background: transparent;
+ border-radius: 3px;
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+ transform-origin: 0 0;
+ cursor: auto;
+}
+
+.annotationEditorLayer .inkEditor.editing {
+ resize: none;
+ cursor: inherit;
+}
+
+.annotationEditorLayer .inkEditor .inkEditorCanvas {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ touch-action: none;
+}
+
+:root {
+ --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;
+}
+
+@media screen and (forced-colors: active) {
+ :root {
+ --pdfViewer-padding-bottom: 9px;
+ --page-margin: 8px auto -1px;
+ --page-border: 1px solid CanvasText;
+ --spreadHorizontalWrapped-margin-LR: 3.5px;
+ }
+}
+
+[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 {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 0;
+ height: 0;
+ display: none;
+}
+
+.pdfViewer {
+ /* Define this variable here and not in :root to avoid to reflow all the UI
+ when scaling (see #15929). */
+ --scale-factor: 1;
+
+ padding-bottom: var(--pdfViewer-padding-bottom);
+}
+
+.pdfViewer .canvasWrapper {
+ overflow: hidden;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+
+.pdfViewer .page {
+ direction: ltr;
+ width: 816px;
+ height: 1056px;
+ margin: var(--page-margin);
+ position: relative;
+ overflow: visible;
+ border: var(--page-border);
+ background-clip: content-box;
+ background-color: rgba(255, 255, 255, 1);
+}
+
+.pdfViewer .dummyPage {
+ position: relative;
+ width: 0;
+ height: var(--viewer-container-height);
+}
+
+.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 canvas {
+ margin: 0;
+ display: block;
+}
+
+.pdfViewer .page canvas .structTree {
+ contain: strict;
+}
+
+.pdfViewer .page canvas[hidden] {
+ display: none;
+}
+
+.pdfViewer .page canvas[zooming] {
+ width: 100%;
+ height: 100%;
+}
+
+.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;
+ /* Using a delay with background-image doesn't work,
+ consequently we use the display. */
+ 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: rgba(12, 12, 13, 1);
+ --body-bg-color: rgba(212, 212, 215, 1);
+ --scrollbar-color: auto;
+ --scrollbar-bg-color: auto;
+ --dialog-button-border: none;
+ --dialog-button-bg-color: rgba(12, 12, 13, 0.1);
+ --dialog-button-hover-bg-color: rgba(12, 12, 13, 0.3);
+
+ --toolbar-bg-color: #f9f9fb;
+ --toolbar-divider-color: #e0e0e6;
+ --toolbar-fg-color: #15141a;
+
+ --toolbarButton-download-icon: url(images/gv-toolbarButton-download.svg);
+ --toolbarButton-openinapp-icon: url(images/gv-toolbarButton-openinapp.svg);
+}
+
+:root:dir(rtl) {
+ --dir-factor: -1;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --main-color: rgba(249, 249, 250, 1);
+ --body-bg-color: rgba(42, 42, 46, 1);
+ --scrollbar-color: rgba(121, 121, 123, 1);
+ --scrollbar-bg-color: rgba(35, 35, 39, 1);
+ --dialog-button-bg-color: rgba(92, 92, 97, 1);
+ --dialog-button-hover-bg-color: rgba(115, 115, 115, 1);
+
+ --toolbar-bg-color: #2b2a33;
+ --toolbar-divider-color: #5b5b66;
+ --toolbar-fg-color: #fbfbfe;
+ }
+}
+
+@media screen and (forced-colors: active) {
+ :root {
+ --dialog-button-border: 1px solid Highlight;
+ --dialog-button-hover-bg-color: Highlight;
+ --dialog-button-hover-color: ButtonFace;
+ --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-block: 41px 0;
+ inset-inline: 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: 40px;
+ top: 0;
+ left: 0;
+ box-sizing: content-box;
+ border-block-end: solid 1px var(--toolbar-divider-color);
+ background-color: var(--toolbar-bg-color);
+}
+
+#floatingToolbar.show {
+ z-index: 100000;
+ opacity: 1;
+}
+
+#floatingToolbar: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: auto;
+ outline: none;
+ position: relative;
+}
+
+.toolbarButton > span {
+ color: var(--toolbar-fg-color);
+ width: auto;
+ height: auto;
+ overflow: hidden;
+}
+
+:is(.toolbarButton .dialogButton)[disabled] {
+ opacity: 0.5;
+}
+
+.toolbarButton::before {
+ width: 24px;
+ height: 24px;
+ content: "";
+ background-color: var(--toolbar-fg-color);
+ mask-size: cover;
+ margin-inline: 12px 8px;
+}
+
+#download::before {
+ mask-image: var(--toolbarButton-download-icon);
+}
+
+#openInApp::before {
+ mask-image: var(--toolbarButton-openinapp-icon);
+}
+
+.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 rgba(0, 0, 0, 0.5);
+ border-radius: 4px;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+}
+dialog::backdrop {
+ background-color: rgba(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: 1px;
+ width: 100%;
+ background-color: var(--separator-color);
+}
+
+dialog .buttonRow {
+ text-align: center;
+ vertical-align: middle;
+}
+
+dialog :link {
+ color: rgba(255, 255, 255, 1);
+}
+
+#passwordDialog {
+ text-align: center;
+}
+#passwordDialog .toolbarField {
+ width: 200px;
+}
+
+@page {
+ margin: 0;
+}