@zigbang/honeyfarm-node
Version:
## Raspberry Pi HoneyFarm Node ### Setup && Run
1,006 lines (838 loc) • 24 kB
CSS
:root {
--main-bg-color: hsl(0, 0%, 100%);
--stream-bg-color: hsl(0, 0%, 85%);
--shell-bg-color: hsl(0, 0%, 0%);
--text-shadow-color: hsl(218, 67%, 95%);
--header-bg-color: hsl(0, 0%, 95%);
--controls-bg-color: hsla(0, 0%, 95%, 0.8);
--control-buttons-bg-color: hsl(0, 0%, 95%);
--text-color: hsl(210, 16%, 22%);
--text-color-light: hsl(200, 16%, 52%);
--link-color: hsl(218, 85%, 43%);
--link-color-light: hsl(218, 85%, 73%);
--link-color_visited: hsl(271, 68%, 32%);
--link-color_visited-light: hsl(271, 68%, 72%);
--svg-checkbox-bg-color: hsl(172, 100%, 37%);
--svg-button-fill: hsl(199, 17%, 46%);
--kill-button-hover-color: hsl(342, 100%, 37%);
--url-color: hsl(0, 0%, 60%);
--button-text-color: hsl(214, 82%, 51%);
--button-border-color: hsl(0, 0%, 70%);
--progress-background-color: hsla(225, 100%, 50%, 0.2);
--progress-background-error-color: hsla(0, 100%, 50%, 0.2);
--font-size: 14px;
}
@media (prefers-color-scheme: dark) {
:root {
--main-bg-color: hsl(0, 0%, 14%);
--stream-bg-color: hsl(0, 0%, 20%);
--shell-bg-color: hsl(0, 0%, 0%);
--text-shadow-color: hsl(218, 17%, 18%);
--header-bg-color: hsl(0, 0%, 20%);
--controls-bg-color: hsla(201, 18%, 19%, 0.8);
--control-buttons-bg-color: hsl(201, 18%, 19%);
--text-color: hsl(0, 0%, 90%);
--text-color-light: hsl(0, 0%, 60%);
--link-color: hsl(218, 63%, 70%);
--link-color-light: hsl(218, 63%, 50%);
--link-color_visited: hsl(267, 31%, 47%);
--link-color_visited-light: hsl(267, 31%, 27%);
--svg-checkbox-bg-color: hsl(172, 100%, 27%);
--svg-button-fill: hsl(0, 0%, 100%);
--kill-button-hover-color: hsl(342, 100%, 27%);
--url-color: hsl(0, 0%, 60%);
--device-list-stripe-color: hsl(0, 0%, 16%);
--device-list-default-color: hsl(0, 0%, 14%);
--button-text-color: hsl(214, 82%, 76%);
--button-border-color: hsl(213, 5%, 39%);
--progress-background-color: hsla(225, 100%, 50%, 0.2);
--progress-background-error-color: hsla(0, 100%, 50%, 0.2);
}
}
html {
font-size: var(--font-size);
}
a {
color: var(--link-color);
}
a:visited {
color: var(--link-color_visited);
}
body {
color: var(--text-color);
background-color: var(--main-bg-color);
position: absolute;
margin: 0;
height: 100%;
width: 100%;
overflow: hidden;
}
body.shell {
background-color: var(--shell-bg-color);
}
body.stream {
background-color: var(--stream-bg-color);
}
.terminal-container {
width: 100%;
height: 100%;
padding: 5px;
}
:focus {
outline: none;
}
.flex-center {
display: flex;
align-items: center;
}
.wait {
cursor: wait;
}
.device-view {
z-index: 1;
float: right;
display: inline-block;
}
.video-layer {
position: absolute;
z-index: 0;
}
.touch-layer {
position: absolute;
z-index: 1;
}
.video {
float: right;
max-height: 100%;
max-width: 100%;
background-color: #000000;
}
.control-buttons-list {
float: right;
width: 3.715rem;
background-color: var(--control-buttons-bg-color);
}
.control-button {
margin: .357rem .786rem;
padding: 0;
width: 2.143rem;
height: 2.143rem;
border: none;
opacity: 0.75;
background-color: var(--control-buttons-bg-color);
}
.control-button:hover {
opacity: 1;
}
.control-wrapper > input[type=checkbox] {
display: none;
}
.control-wrapper > label {
display: inline-block;
}
.control-button > svg {
fill: var(--svg-button-fill);
}
.control-wrapper > input[type=checkbox].two-images:checked + label > svg.image-on {
display: block;
}
.control-wrapper > input[type=checkbox].two-images:not(:checked) + label > svg.image-on {
display: none;
}
.control-wrapper > input[type=checkbox].two-images:checked + label > svg.image-off {
display: none;
}
.control-wrapper > input[type=checkbox].two-images:not(:checked) + label > svg.image-off {
display: block;
}
.control-wrapper > input[type=checkbox]:checked + label > svg {
fill: var(--svg-checkbox-bg-color);
}
.text-area {
width: 100%;
resize: vertical;
}
.more-box {
display: none;
position: absolute;
background-color: var(--controls-bg-color);
z-index: 2;
padding: 0 .714rem .714rem .714rem;
}
.text-with-shadow, .more-box label {
color: var(--text-color);
text-shadow: var(--text-shadow-color) 0 0 .357rem;
}
.spoiler > input ~ .box {
display: none;
}
.spoiler > input:checked ~ .box {
display: block;
}
.spoiler > label::before {
content: '►';
margin-right: 5px;
}
.spoiler > input:checked ~ label::before {
content: '▼';
}
.spoiler > input:checked ~ div {
display: block;
padding: 10px;
}
.spoiler > input {
display: none;
}
:root {
--block-top-padding: 0.5rem;
--block-bottom-padding: 0.5rem;
--button-top-padding: 0.2rem;
--button-bottom-padding: 0.2rem;
--header-height: 3rem;
--footer-height: 1.55rem;
}
.dialog-background {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.75);
z-index: 3;
}
.dialog-container {
font-family: monospace;
width: 75%;
max-width: 30rem;
min-width: 20rem;
background-color: var(--main-bg-color);
/*border-radius: 0.3rem;*/
overflow: hidden;
}
.dialog-container.ready {
height: 100%;
min-height: 100%;
}
.dialog-container button, .dialog-container select, .dialog-container input {
font-family: monospace;
}
.dialog-container button {
font-size: var(--font-size);
}
.dialog-container select {
text-overflow: ellipsis;
}
.dialog-block {
}
.dialog-header {
background-color: var(--header-bg-color);
height: var(--header-height);
overflow: hidden;
display: flex;
align-items: center;
width: auto;
position: initial;
}
.dialog-header span.dialog-title {
display: inline-block;
padding: 0 0.5rem;
}
.dialog-body {
padding: var(--block-top-padding) 0.5rem var(--block-bottom-padding);
background-color: var(--control-buttons-bg-color);
overflow: auto;
}
.dialog-body.hidden {
height: 0;
padding: 0;
}
.dialog-body.visible {
height: calc(
100%
- 2 * var(--block-top-padding)
- 2 * var(--block-bottom-padding)
- var(--header-height)
- var(--footer-height)
);
}
.dialog-footer {
/*display: flex;*/
/*flex-direction: row-reverse;*/
padding: var(--block-top-padding) 0.5rem var(--block-bottom-padding);
background-color: var(--stream-bg-color);
height: var(--footer-height);
overflow: hidden;
}
.dialog-footer span.subtitle {
font-weight: lighter;
line-height: var(--footer-height);
float: left;
}
.dialog-footer button {
padding: var(--button-top-padding) 0.5rem var(--button-bottom-padding);
margin: 0 0 0 0.5rem;
border-radius: 0.3rem;
/*background-color: var(--main-bg-color);*/
color: var(--button-text-color);
border: 1px solid var(--button-border-color);
cursor: pointer;
background-color: rgba(0, 0, 0, 0);
height: var(--footer-height);
float: right;
}
.dialog-footer button:disabled {
cursor: not-allowed;
color: var(--text-color-light);
}
.controls .label {
grid-column: labels;
}
.controls .input {
grid-column: controls;
box-sizing: border-box;
margin: 0;
/*height: 2.75ex;*/
}
.controls .button {
grid-column: controls;
}
.controls {
display: grid;
grid-template-columns: [labels] 35% [controls] 65%;
padding: 1rem;
grid-gap: 0.2rem;
align-items: center;
}
:root {
--device-border-color: hsl(0, 0%, 82%);
--device-list-stripe-color: hsl(0, 0%, 96%);
--device-list-default-color: hsl(0, 0%, 100%);
--device-list-hover-color: hsl(218, 67%, 95%);
}
@media (prefers-color-scheme: dark) {
:root {
--device-border-color: hsl(0, 0%, 32%);
--device-list-stripe-color: hsl(0, 0%, 16%);
--device-list-default-color: hsl(0, 0%, 14%);
--device-list-hover-color: hsl(218, 17%, 18%);
}
}
body.list {
height: auto;
width: auto;
overflow: auto;
}
#devices {
padding: 20px 0;
width: 100%;
height: calc(100% - 40px);
overflow-y: auto;
}
body.stream #devices {
background-color: var(--device-list-default-color);
opacity: .8;
position: absolute;
top: 0;
left: 0;
z-index: 3;
}
body.list #device_list_menu {
display: none;
}
#device_list_menu {
display: block;
position: absolute;
bottom: 0;
left: 0;
z-index: 4;
}
#devices .device-list button {
font-size: var(--font-size);
color: var(--button-text-color);
}
#devices .device-list div.device:nth-child(2n+1){
background-color: var(--device-list-default-color);
}
#devices .device-list div.device:nth-child(2n){
background-color: var(--device-list-stripe-color);
}
#devices .device-header {
padding: 2px 0;
}
#devices .device-header div {
display: inline-flex;
}
#devices .device-name {
font-size: 120%;
}
#devices .device-model {
font-size: 110%;
}
#devices .device-serial {
color: var(--url-color);
font-size: 80%;
margin-left: 6px;
}
#devices .device-version {
font-size: 100%;
margin-left: 6px;
align-items: baseline;
}
#devices .device-version .sdk-version {
font-size: 75%;
color: var(--url-color);
margin-left: 0.2em;
}
#devices .device-state {
border-radius: 25px;
background-color: red;
font-size: 80%;
margin-left: 6px;
width: 1em;
height: 1em;
}
#devices .device.active .device-state {
background-color: green;
}
#devices .device-list {
position: relative;
bottom: 0;
left: 0;
width: 100%;
}
#devices .device-list {
border-spacing: 0;
border-collapse: collapse;
font-family: monospace;
font-size: var(--font-size);
}
#devices .device-list div.device {
padding: 5px 20px 5px;
}
#devices .device-list div.device:hover {
background-color: var(--device-list-hover-color)
}
#devices .device-list div.device select {
color: var(--text-color);
background-color: var(--main-bg-color);
margin-left: 0;
border: none;
}
#devices .device-list div.device:hover select {
background-color: var(--device-list-hover-color);;
}
#devices .device-list div.desc-block {
margin: .3em;
display: inline-flex;
}
#devices .device-list div.desc-block.hidden {
display: none;
}
#devices .device-list div.desc-block.stream,
#devices .device-list div.desc-block.server_pid,
#devices .device-list div.desc-block.net_interface {
border: 1px solid var(--device-border-color);
border-radius: .3em;
overflow: hidden;
white-space: nowrap;
}
#devices .device-list div.device div.desc-block.stream button.action-button {
color: var(--button-text-color);
}
#devices .device-list div.desc-block button {
fill: var(--text-color)
}
#devices .device-list div.desc-block button > span {
padding: 0 .5em;
}
#devices .device-list div.desc-block button > span,
#devices .device-list div.desc-block button > svg {
vertical-align: middle;
}
#devices .device-list div.desc-block button > svg {
width: var(--font-size);
height: var(--font-size);
}
#devices .device-list div.desc-block button > svg > path {
fill: var(--text-color);
}
#devices .device-list .device.not-active div.desc-block button > svg > path {
fill: var(--text-color-light);
}
#devices .device-list .device.not-active select {
color: var(--text-color-light);
}
#devices .device-list .device.not-active {
color: var(--text-color-light);
}
#devices .device-list .device.not-active a {
color: var(--link-color-light);
}
#devices .device-list .device.not-active a:visited {
color: var(--link-color_visited-light);
}
#devices .device-list div.device div.desc-block .action-button {
border: none;
background-color: rgba(0, 0, 0, 0);
color: inherit;
}
#devices .device-list div.device div.desc-block .action-button.update-interfaces-button {
margin-right: 0;
}
#devices .device-list div.device div.desc-block .action-button.active {
cursor: pointer;
}
#devices .device-list .device.active div.desc-block .action-button:hover {
color: var(--kill-button-hover-color);
}
#devices .device-list .device.active div.desc-block button.action-button:hover > svg > path {
fill: var(--kill-button-hover-color);
}
#devices .tracker-name {
padding: 5px 20px 5px;
font-size: larger;
font-weight: bolder;
}
/**
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
* https://github.com/chjj/term.js
* @license MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Originally forked from (with the author's permission):
* Fabrice Bellard's javascript vt100 for jslinux:
* http://bellard.org/jslinux/
* Copyright (c) 2011 Fabrice Bellard
* The original design remains. The terminal itself
* has been extended to include xterm CSI codes, among
* other features.
*/
/**
* Default styles for xterm.js
*/
.xterm {
font-feature-settings: "liga" 0;
position: relative;
user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
}
.xterm.focus,
.xterm:focus {
outline: none;
}
.xterm .xterm-helpers {
position: absolute;
top: 0;
/**
* The z-index of the helpers must be higher than the canvases in order for
* IMEs to appear on top.
*/
z-index: 5;
}
.xterm .xterm-helper-textarea {
padding: 0;
border: 0;
margin: 0;
/* Move textarea out of the screen to the far left, so that the cursor is not visible */
position: absolute;
opacity: 0;
left: -9999em;
top: 0;
width: 0;
height: 0;
z-index: -5;
/** Prevent wrapping so the IME appears against the textarea at the correct position */
white-space: nowrap;
overflow: hidden;
resize: none;
}
.xterm .composition-view {
/* TODO: Composition position got messed up somewhere */
background: #000;
color: #FFF;
display: none;
position: absolute;
white-space: nowrap;
z-index: 1;
}
.xterm .composition-view.active {
display: block;
}
.xterm .xterm-viewport {
/* On OS X this is required in order for the scroll bar to appear fully opaque */
background-color: #000;
overflow-y: scroll;
cursor: default;
position: absolute;
right: 0;
left: 0;
top: 0;
bottom: 0;
}
.xterm .xterm-screen {
position: relative;
}
.xterm .xterm-screen canvas {
position: absolute;
left: 0;
top: 0;
}
.xterm .xterm-scroll-area {
visibility: hidden;
}
.xterm-char-measure-element {
display: inline-block;
visibility: hidden;
position: absolute;
top: 0;
left: -9999em;
line-height: normal;
}
.xterm {
cursor: text;
}
.xterm.enable-mouse-events {
/* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */
cursor: default;
}
.xterm.xterm-cursor-pointer {
cursor: pointer;
}
.xterm.column-select.focus {
/* Column selection mode */
cursor: crosshair;
}
.xterm .xterm-accessibility,
.xterm .xterm-message {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
z-index: 10;
color: transparent;
}
.xterm .live-region {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
.xterm-dim {
opacity: 0.5;
}
.xterm-underline {
text-decoration: underline;
}
body.devtools {
font-family: Ubuntu, Arial, sans-serif;
font-size: 13px;
}
body.devtools .device {
padding: 20px;
}
body.devtools .device-header {
-webkit-box-align: baseline;
-webkit-box-orient: horizontal;
display: -webkit-box;
margin: 10px 0 0;
padding: 2px 0;
}
body.devtools .device-name {
font-size: 150%;
}
body.devtools .device-serial {
color: var(--url-color);
font-size: 80%;
margin-left: 6px;
}
body.devtools .browser-header {
align-items: center;
display: flex;
flex-flow: row wrap;
min-height: 33px;
padding-top: 10px;
}
body.devtools .browser-header > .browser-name {
font-size: 110%;
font-weight: bold;
}
body.devtools div.list {
margin-top: 5px;
}
body.devtools div.list > .row {
padding: 6px 0;
position: relative;
}
body.devtools .properties-box {
display: flex;
}
body.devtools .properties-box > img {
flex-shrink: 0;
height: 23px;
padding-left: 2px;
padding-right: 5px;
vertical-align: top;
width: 23px;
}
body.devtools .subrow-box {
display: inline-block;
vertical-align: top;
}
body.devtools .subrow {
display: flex;
flex-flow: row wrap;
}
body.devtools .subrow > div {
margin-right: 0.5em;
}
.body.devtools url {
color: var(--url-color);
max-width: 200px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
body.devtools .action {
color: var(--link-color);
cursor: pointer;
margin-right: 15px;
}
body.devtools .action.disabled {
color: var(--url-color);
cursor: not-allowed;
}
body.devtools a.action {
text-decoration: none;
}
body.devtools a.action.copy {
cursor: copy;
}
body.devtools .browser-header .action {
margin-left: 10px;
}
body.devtools .open > input {
border: 1px solid #aaa;
height: 17px;
line-height: 17px;
margin-left: 20px;
padding: 0 2px;
}
body.devtools .tooltip {
z-index: 1;
position: absolute;
padding: 2px;
color: var(--controls-bg-color);
background-color: var(--text-color);
}
body.file-listing {
display: block;
position: absolute;
width: 100%;
height: 100%;
overflow: auto;
}
.file-listing h1 {
border-bottom: 1px solid var(--button-border-color);
margin-bottom: 10px;
padding-bottom: 10px;
white-space: nowrap;
}
.file-listing tr:hover {
background-color: var(--controls-bg-color);
}
.file-listing .quick-link-box {
display: inline-block;
margin-bottom: 10px;
padding-bottom: 10px;
}
.file-listing .quick-link-box.hidden {
display: none;
}
.file-listing a.icon {
-webkit-padding-start: 1.5em;
-moz-padding-start: 1.5em;
text-decoration: none;
user-select: auto;
}
.file-listing a.icon:hover {
text-decoration: underline;
}
.file-listing a.link {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACAElEQVQ4y4WSzUsVYRjFf897RwUz+wK7LiSIyKCoyEUXDFzcqYhq0R+R4J/gMqilf0VC7VwUuBUxobJumyLTvjDIG0TcO96J7sw8T4t3Rp0kfDYH3o/DOc85Qj4LCwvGPpOmKfPz88zMzEhxFux+cGV8HARE/H2BqopzjpWVV4RhSPNH02YfzkqJwMwwDDHxKIKZR+ccAEmSMDExQZZldLY6Njc3J64gUNVtEswTFsTFdDodFhcXCYKAqakp9ijAjOK5AJbbKJSEYZ3N75t0u10+rK2VCVSVX+0elpfe8mxpHTCvCgM1btw8S71+hupwFYD3q6sAlCw4gXp4jno4ShA4nJNclf43mW0FWZbhHLTbHVZefgUxkiQlTf+QqZKmqd9NvuAsy/ZaqFSMx4+W2fjW5HccY5bgKg7BSNNunpLfjarutfCm8ZEXz9+xFbVRSxg8dIDr1y7m3Sii9lgQBLtb1ni9TqUiiBh9vT1MT9/hePUw/f29iI/KJ4N4S//GqKpUnJd4dzJkaGgQy5Rbt8fY2Pi50wnZ6ce2hVarxfkLJzDg6JEBxi6dBDNEfD9GRo5hlqswo9VqlQmiKKJWO83l2ilU1W9ZduIy9R+LwkVRVLYQxzFOYHLyKp8/NWk0vjA6OszAwT7MBFXfiaKjcRyXCaIo4v6De6WSPHnKvvMXLQgqHcJs3fIAAAAASUVORK5CYII=") left top no-repeat;
}
.file-listing a.file {
background : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABHUlEQVR42o2RMW7DIBiF3498iHRJD5JKHurL+CRVBp+i2T16tTynF2gO0KSb5ZrBBl4HHDBuK/WXACH4eO9/CAAAbdvijzLGNE1TVZXfZuHg6XCAQESAZXbOKaXO57eiKG6ft9PrKQIkCQqFoIiQFBGlFIB5nvM8t9aOX2Nd18oDzjnPgCDpn/BH4zh2XZdlWVmWiUK4IgCBoFMUz9eP6zRN75cLgEQhcmTQIbl72O0f9865qLAAsURAAgKBJKEtgLXWvyjLuFsThCSstb8rBCaAQhDYWgIZ7myM+TUBjDHrHlZcbMYYk34cN0YSLcgS+wL0fe9TXDMbY33fR2AYBvyQ8L0Gk8MwREBrTfKe4TpTzwhArXWi8HI84h/1DfwI5mhxJamFAAAAAElFTkSuQmCC ") left top no-repeat;
}
.file-listing a.dir {
background : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAd5JREFUeNqMU79rFUEQ/vbuodFEEkzAImBpkUabFP4ldpaJhZXYm/RiZWsv/hkWFglBUyTIgyAIIfgIRjHv3r39MePM7N3LcbxAFvZ2b2bn22/mm3XMjF+HL3YW7q28YSIw8mBKoBihhhgCsoORot9d3/ywg3YowMXwNde/PzGnk2vn6PitrT+/PGeNaecg4+qNY3D43vy16A5wDDd4Aqg/ngmrjl/GoN0U5V1QquHQG3q+TPDVhVwyBffcmQGJmSVfyZk7R3SngI4JKfwDJ2+05zIg8gbiereTZRHhJ5KCMOwDFLjhoBTn2g0ghagfKeIYJDPFyibJVBtTREwq60SpYvh5++PpwatHsxSm9QRLSQpEVSd7/TYJUb49TX7gztpjjEffnoVw66+Ytovs14Yp7HaKmUXeX9rKUoMoLNW3srqI5fWn8JejrVkK0QcrkFLOgS39yoKUQe292WJ1guUHG8K2o8K00oO1BTvXoW4yasclUTgZYJY9aFNfAThX5CZRmczAV52oAPoupHhWRIUUAOoyUIlYVaAa/VbLbyiZUiyFbjQFNwiZQSGl4IDy9sO5Wrty0QLKhdZPxmgGcDo8ejn+c/6eiK9poz15Kw7Dr/vN/z6W7q++091/AQYA5mZ8GYJ9K0AAAAAASUVORK5CYII= ") left top no-repeat;
}
.file-listing a.up {
background : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAmlJREFUeNpsU0toU0EUPfPysx/tTxuDH9SCWhUDooIbd7oRUUTMouqi2iIoCO6lceHWhegy4EJFinWjrlQUpVm0IIoFpVDEIthm0dpikpf3ZuZ6Z94nrXhhMjM3c8895977BBHB2PznK8WPtDgyWH5q77cPH8PpdXuhpQT4ifR9u5sfJb1bmw6VivahATDrxcRZ2njfoaMv+2j7mLDn93MPiNRMvGbL18L9IpF8h9/TN+EYkMffSiOXJ5+hkD+PdqcLpICWHOHc2CC+LEyA/K+cKQMnlQHJX8wqYG3MAJy88Wa4OLDvEqAEOpJd0LxHIMdHBziowSwVlF8D6QaicK01krw/JynwcKoEwZczewroTvZirlKJs5CqQ5CG8pb57FnJUA0LYCXMX5fibd+p8LWDDemcPZbzQyjvH+Ki1TlIciElA7ghwLKV4kRZstt2sANWRjYTAGzuP2hXZFpJ/GsxgGJ0ox1aoFWsDXyyxqCs26+ydmagFN/rRjymJ1898bzGzmQE0HCZpmk5A0RFIv8Pn0WYPsiu6t/Rsj6PauVTwffTSzGAGZhUG2F06hEc9ibS7OPMNp6ErYFlKavo7MkhmTqCxZ/jwzGA9Hx82H2BZSw1NTN9Gx8ycHkajU/7M+jInsDC7DiaEmo1bNl1AMr9ASFgqVu9MCTIzoGUimXVAnnaN0PdBBDCCYbEtMk6wkpQwIG0sn0PQIUF4GsTwLSIFKNqF6DVrQq+IWVrQDxAYQC/1SsYOI4pOxKZrfifiUSbDUisif7XlpGIPufXd/uvdvZm760M0no1FZcnrzUdjw7au3vu/BVgAFLXeuTxhTXVAAAAAElFTkSuQmCC ") left top no-repeat;
}
.file-listing a.push {
color: var(--text-color);
}
.file-listing .listing {
margin: 8px;
}
.file-listing .foreground {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
z-index: 1000;
background-color: var(--controls-bg-color);
}
.file-listing .foreground-message {
flex: auto;
font-size: 30px;
color: #999;
display: flex;
justify-content: center;
align-items: center;
margin: 20px;
pointer-events: none;
}
.file-listing .foreground-message.drop-target-message {
border: 4px dashed #ddd;
}
.file-listing .entry-name {
position: relative;
}
.file-listing .background-progress {
position: absolute;
left: 0;
top: 0;
background-color: var(--progress-background-color);
height: 100%;
width: 100%;
margin: 0;
padding: 0;
border-spacing: 0;
}
.file-listing .background-progress.error {
background-color: var(--progress-background-error-color);
}