/* This file is part of OpenWebRX, an open-source SDR receiver software with a web UI. Copyright (c) 2013-2015 by Andras Retzler Copyright (c) 2019-2020 by Jakob Ketterl This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @import url("openwebrx-header.css"); @import url("openwebrx-globals.css"); html, body { overflow: hidden; } select { font-family: "DejaVu Sans", Verdana, Geneva, sans-serif; } input { vertical-align:middle; } input[type=range] { -webkit-appearance: none; margin: 0 0; background: transparent; --track-background: #B6B6B6; } input[type=range]:focus { outline: none; } input[type=range]::-webkit-slider-runnable-track { height: 5px; cursor: pointer; animate: 0.2s; box-shadow: 0px 0px 0px #000000; background: #B6B6B6; /*border-radius: 11px;*/ border: 1px solid #8A8A8A; background: var(--track-background); } input[type=range]::-webkit-slider-thumb { box-shadow: 1px 1px 1px #828282; border: 1px solid #8A8A8A; height: 15px; width: 15px; border-radius: 10px; background: #FFFFFF; cursor: pointer; -webkit-appearance: none; margin-top: -7px; } input[type=range]:focus::-webkit-slider-runnable-track { background: #B6B6B6; background: var(--track-background); } input[type=range]::-moz-range-track { height: 3px; cursor: pointer; animate: 0.2s; box-shadow: 0px 0px 0px #000000; background: #B6B6B6; background: var(--track-background); border-radius: 11px; border: 1px solid #8A8A8A; } input[type=range]::-moz-range-thumb { box-shadow: 1px 1px 1px #828282; border: 1px solid #8A8A8A; height: 12px; width: 12px; border-radius: 10px; background: #FFFFFF; cursor: pointer; } input[type=range]::-ms-track { width: 100%; height: 7px; cursor: pointer; animate: 0.2s; background: transparent; border-color: transparent; color: transparent; } input[type=range]::-ms-fill-lower { background: #B6B6B6; border: 1px solid #8A8A8A; border-radius: 22px; box-shadow: 0px 0px 0px #000000; } input[type=range]::-ms-fill-upper { background: #B6B6B6; border: 1px solid #8A8A8A; border-radius: 22px; box-shadow: 0px 0px 0px #000000; } input[type=range]::-ms-thumb { box-shadow: 1px 1px 1px #828282; border: 1px solid #8A8A8A; height: 24px; width: 7px; border-radius: 0px; background: #FFFFFF; cursor: pointer; } input[type=range]:focus::-ms-fill-lower { background: #B6B6B6; } input[type=range]:focus::-ms-fill-upper { background: #B6B6B6; } #webrx-page-container { height: 100%; position: relative; display: flex; flex-direction: column; } #openwebrx-scale-container { height: 47px; overflow: hidden; z-index:1000; position: relative; } #openwebrx-frequency-container { background-image: url("../gfx/openwebrx-scale-background.png"); background-repeat: repeat-x; background-size: cover; background-color: #444; z-index: 1001; } #openwebrx-bookmarks-container { height: 25px; position: relative; z-index: 1000; } #openwebrx-bookmarks-container .bookmark { font-size: 12px; background-color: #FFFF00; border: 1px solid #000; border-radius: 5px; padding: 2px 5px; cursor: pointer; white-space: nowrap; max-height: 14px; max-width: 50px; position: absolute; bottom: 5px; transform: translate(-50%, 0); } #openwebrx-bookmarks-container .bookmark .bookmark-content { overflow: hidden; text-overflow: ellipsis; } #openwebrx-bookmarks-container .bookmark .bookmark-actions { display: none; text-align: right; } .bookmark-actions .action { line-height: 0; } .bookmark-actions .action img { width: 14px; } #openwebrx-bookmarks-container .bookmark.selected { z-index: 1010; } #openwebrx-bookmarks-container .bookmark:hover { z-index: 1011; max-height: none; max-width: none; } #openwebrx-bookmarks-container .bookmark[editable]:hover .bookmark-actions { display: block; margin-bottom: 5px; } #openwebrx-bookmarks-container .bookmark:after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 0; border: 5px solid transparent; border-top-color: #FFFF00; border-bottom: 0; margin-left: -5px; margin-bottom: -5px; } #openwebrx-bookmarks-container .bookmark[data-source=local] { background-color: #0FF; } #openwebrx-bookmarks-container .bookmark[data-source=local]:after { border-top-color: #0FF; } #openwebrx-bookmarks-container .bookmark[data-source=dial_frequencies] { background-color: #0F0; } #openwebrx-bookmarks-container .bookmark[data-source=dial_frequencies]:after { border-top-color: #0F0; } #webrx-canvas-background { flex-grow: 1; background-image: url('../gfx/openwebrx-background-cool-blue.png'); background-repeat: no-repeat; background-color: #1e5f7f; background-size: cover; display: flex; flex-direction: column; } #webrx-canvas-container { position: relative; overflow: visible; cursor: crosshair; flex-grow: 1; } #webrx-canvas-container canvas { position: absolute; border-style: none; image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; width: 100%; height: 200px; } #openwebrx-log-scroll { /*overflow-y:auto;*/ height: 125px; width: 619px } .nano .nano-pane { background: #444; } .nano .nano-slider { background: #eee !important; } .webrx-error { font-weight: bold; color: #ff6262; } @font-face { font-family: 'roboto-mono'; src: url('../fonts/RobotoMono-Regular.ttf'); font-weight: normal; font-style: normal; } #webrx-actual-freq { width: 100%; text-align: left; padding: 0; margin: 0; display: flex; flex-direction: row; } #webrx-actual-freq > * { flex: 1; } #webrx-actual-freq input { font-family: 'roboto-mono'; width: 0; box-sizing: border-box; border: 0; padding: 0; background-color: inherit; color: inherit; } #webrx-actual-freq, #webrx-actual-freq input { font-size: 16pt; font-family: 'roboto-mono'; line-height: 22px; } #webrx-mouse-freq { width: 100%; text-align: left; font-size: 10pt; color: #AAA; font-family: 'roboto-mono'; margin-bottom: 5px; } #openwebrx-panels-container-left, #openwebrx-panels-container-right { position: absolute; bottom: 0; display: flex; flex-direction: column; justify-content: flex-end; height: 0; overflow: visible; } #openwebrx-panels-container-left { left: 0; align-items: flex-start; } #openwebrx-panels-container-right { right: 0; align-items: flex-end; } .openwebrx-panel { transform: perspective( 600px ) rotateX( 90deg ); background-color: #575757; padding: 10px; color: white; font-size: 10pt; border-radius: 15px; -moz-border-radius: 15px; margin: 5.9px; } .openwebrx-panel a { color: #5ca8ff; text-shadow: none; } .openwebrx-panel-inner { overflow-y: auto; overflow-x: hidden; height: 100%; } .openwebrx-button { background-color: #373737; padding: 4.2px; border-radius: 5px; -moz-border-radius: 5px; color: White; font-weight: bold; margin-right: 1px; cursor: pointer; background:-webkit-gradient( linear, left top, left bottom, color-stop(0.0 , #373737), color-stop(1, #4F4F4F) ); background:-moz-linear-gradient( center top, #373737 0%, #4F4F4F 100% ); user-select: none; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; display: inline-block; } .openwebrx-button:hover, .openwebrx-demodulator-button.highlighted { /*background:-webkit-gradient( linear, left top, left bottom, color-stop(0.0 , #3F3F3F), color-stop(1, #777777) ); background:-moz-linear-gradient( center top, #373737 5%, #4F4F4F 100% );*/ background: #474747; color: #FFFF50; } .openwebrx-button:active { background: #777777; color: #FFFF50; } .openwebrx-button:last-child { margin-right: 0; } .openwebrx-demodulator-button { width: 38px; height: 19px; font-size: 12pt; text-align: center; flex: 1; margin-right: 5px; } .openwebrx-square-button img { height: 27px; } .openwebrx-round-button { margin-right: -2px; width: 35px; height: 35px; border-radius: 25px; } .openwebrx-round-button img { height: 30px; } .openwebrx-round-button-small { margin-right: -3px; width: 20px; height: 20px; border-radius: 25px; } .openwebrx-round-button-small img { height: 20px; } img.openwebrx-mirror-img { transform: scale(-1, 1); } .openwebrx-round-rightarrow img { position: relative; left: 12px; top: 3px; } .openwebrx-round-leftarrow img { position: relative; left: 7px; top: 3px; } #openwebrx-client-log-title { margin-bottom: 5px; font-weight: bold; } .openwebrx-progressbar { position: relative; border-radius: 5px; background-color: #003850; /*#006235;*/ display: inline-block; text-align: center; font-size: 8pt; font-weight: bold; text-shadow: 0px 0px 4px #000000; cursor: default; user-select: none; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; } .openwebrx-progressbar-bar { border-radius: 5px; height: 100%; width: 100%; } .openwebrx-progressbar-text { position: absolute; left:0px; top:4px; width: inherit; } #openwebrx-panel-status { margin: 0 0 0 5.9px; padding: 0px; background-color:rgba(0, 0, 0, 0); } #openwebrx-panel-status div.openwebrx-progressbar { width: 200px; height: 20px; } #openwebrx-panel-receiver { width:110px; } #openwebrx-panel-receiver .frequencies-container { display: flex; flex-direction: row; } #openwebrx-panel-receiver .frequencies { flex-grow: 1; } #openwebrx-panel-receiver .openwebrx-bookmark-button { width: 27px; height: 27px; text-align: center; } #openwebrx-mute-on { color: lime; } #openwebrx-mute-off { color: white; } .openwebrx-panel-slider { position: relative; top: -2px; width: 95px; } .openwebrx-sliderbtn-img { width: 14px; position:relative; top: 1px; } .openwebrx-panel-line { padding-top: 5px; } .openwebrx-panel-flex-line { display: flex; flex-direction: row; } .openwebrx-panel-line:first-child { padding-top: 0; } #openwebrx-smeter-outer { border-color: #888; border-style: solid; border-width: 0px; width: 255px; height: 7px; background-color: #373737; border-radius: 3px; position: relative; } #openwebrx-smeter-bar { transition: all 0.2s linear; width: 0px; height: 7px; background: linear-gradient(to top, #ff5939 , #961700); position: absolute; margin: 0; padding: 0; left: 0; border-radius: 3px; } #openwebrx-smeter-db { color: #aaa; display: inline-block; font-size: 10pt; float: right; margin-right: 5px; margin-top: 24px; font-family: 'roboto-mono'; } .openwebrx-overlay { position: fixed; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0.8; background-color: #777; left: 0; top: 0; z-index: 1001; color: white; font-weight: bold; font-size: 20pt; } #openwebrx-autoplay-overlay { cursor: pointer; transition: opacity 0.3s linear; } #openwebrx-autoplay-overlay img { width: 150px; } .openwebrx-overlay .overlay-content { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); text-align: center; } #openwebrx-error-overlay .overlay-content { background-color: #000; padding: 50px; border-radius: 20px; } #openwebrx-digimode-canvas-container { /*margin: -10px -10px 10px -10px;*/ margin: -10px -10px 0px -10px; border-radius: 15px; height: 150px; background-color: #333; position: relative; overflow: hidden; } #openwebrx-digimode-canvas-container canvas { position: absolute; pointer-events: none; transition: width 500ms, left 500ms; } .openwebrx-panel select, .openwebrx-dialog select, .openwebrx-dialog input { border-radius: 5px; background-color: #373737; color: White; font-weight: normal; font-size: 13pt; margin-right: 1px; background:-webkit-gradient( linear, left top, left bottom, color-stop(0.0 , #373737), color-stop(1, #4F4F4F) ); background:-moz-linear-gradient( center top, #373737 0%, #4F4F4F 100% ); border-color: transparent; border-width: 0px; -moz-appearance: none; } .openwebrx-panel select option, .openwebrx-dialog select option { border-width: 0px; background-color: #373737; color: White; } #openwebrx-secondary-demod-listbox { width: 173px; height: 27px; padding-left:3px; flex: 4; } #openwebrx-sdr-profiles-listbox { width: 100%; font-size: 10pt; height: 27px; } #openwebrx-cursor-blink { animation: cursor-blink 1s infinite; /*animation: cursor-3d 2s infinite;*/ animation-timing-function: linear; animation-direction: alternate; height: 1em; width: 8px; background-color: White; display: inline-block; position: relative; top: 1px; /*perspective: 60px;*/ } @keyframes cursor-blink { 0%{ opacity: 0; } 50% { opacity: 1; } 100%{ opacity: 0; } } @keyframes cursor-3d { 0%{ transform: rotateX(0deg) rotateX(Ydeg); } 50% { transform: rotateX(180deg) rotateY(360deg); opacity: 0.1; } 100%{ transform: rotateX(360deg) rotateY(720deg); } } #openwebrx-digimode-content { word-wrap: break-word; position: absolute; bottom: 0; width: 100%; } #openwebrx-digimode-content-container { overflow-y: hidden; display: block; height: 50px; position: relative; } #openwebrx-digimode-content-container .gradient { width: 100%; height: 20px; background: linear-gradient(to top, rgba(87,87,87,0) 0%,rgba(87,87,87,1) 100%); position: absolute; top: 0; z-index: 10; } #openwebrx-digimode-content .part { perspective: 700px; } #openwebrx-digimode-content .part { animation: new-digimode-data-3d 100ms; animation-timing-function: linear; display: inline-block; perspective-origin: 50% 50%; transform-origin: 0% 50%; } @keyframes new-digimode-data { 0%{ opacity: 0; } 100%{ opacity: 1; } } @keyframes new-digimode-data-3d { 0%{ transform: rotateX(0deg) rotateY(-90deg) translateX(-5px) scale(1.3); } 100%{ transform: rotateX(0deg) rotateY(0deg) translateX(0) scale(1); } } #openwebrx-digimode-select-channel { transition: all 500ms; background-color: Yellow; display: block; position: absolute; pointer-events: none; height: 100%; width: 0px; top: 0px; left: 0px; opacity: 0.7; border-style: solid; border-width: 0px; border-color: Red; } .openwebrx-meta-slot { width: 145px; height: 196px; float: left; margin-right: 10px; background-color: #676767; padding: 2px 0; color: #333; text-align: center; position: relative; } .openwebrx-meta-slot, .openwebrx-meta-slot.muted:before { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .openwebrx-meta-slot.muted:before { display: block; content: ""; background-image: url("../gfx/openwebrx-mute.png"); width:100%; height:133px; background-position: center; background-repeat: no-repeat; cursor: pointer; position: absolute; width: 100%; height: 100%; top: 0; left: 0; background-color: rgba(0,0,0,.3); } .openwebrx-meta-slot.active { background-color: #95bbdf; } .openwebrx-meta-slot.sync .openwebrx-dmr-slot:before { content:""; display: inline-block; margin: 0 5px; width: 12px; height: 12px; background-color: #ABFF00; border-radius: 50%; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #304701 0 -1px 9px, #89FF00 0 2px 12px; } .openwebrx-meta-slot:last-child { margin-right: 0; } .openwebrx-meta-slot .openwebrx-meta-user-image { width:100%; height:133px; background-position: center; background-repeat: no-repeat; } .openwebrx-meta-slot.active .openwebrx-meta-user-image { background-image: url("../gfx/openwebrx-directcall.png"); } .openwebrx-meta-slot.active .openwebrx-meta-user-image.group { background-image: url("../gfx/openwebrx-groupcall.png"); } .openwebrx-dmr-timeslot-panel * { cursor: pointer; } .openwebrx-maps-pin { background-image: url("../gfx/google_maps_pin.svg"); background-position: center; background-repeat: no-repeat; width: 15px; height: 15px; background-size: contain; display: inline-block; } #openwebrx-panel-wsjt-message, #openwebrx-panel-packet-message, #openwebrx-panel-pocsag-message { height: 180px; } #openwebrx-panel-wsjt-message tbody, #openwebrx-panel-packet-message tbody, #openwebrx-panel-pocsag-message tbody { display: block; overflow: auto; height: 150px; width: 100%; } #openwebrx-panel-wsjt-message thead tr, #openwebrx-panel-packet-message thead tr, #openwebrx-panel-pocsag-message thead tr { display: block; } #openwebrx-panel-wsjt-message th, #openwebrx-panel-wsjt-message td, #openwebrx-panel-packet-message th, #openwebrx-panel-packet-message td, #openwebrx-panel-pocsag-message th, #openwebrx-panel-pocsag-message td { width: 50px; text-align: left; padding: 1px 3px; } #openwebrx-panel-wsjt-message .message { width: 380px; } #openwebrx-panel-wsjt-message .decimal { text-align: right; width: 35px; } #openwebrx-panel-wsjt-message .decimal.freq { width: 70px; } #openwebrx-panel-packet-message .message { width: 410px; max-width: 410px; } #openwebrx-panel-packet-message .callsign { width: 80px; } #openwebrx-panel-packet-message .coord { width: 40px; text-align: center; } #openwebrx-panel-pocsag-message .address { width: 100px; } #openwebrx-panel-pocsag-message .message { width: 486px; max-width: 486px; white-space: pre; } .aprs-symbol { display: inline-block; width: 15px; height: 15px; background-size: 240px 90px; } .aprs-symboltable-normal { background-image: url(../../aprs-symbols/aprs-symbols-24-0.png) } .aprs-symboltable-alternate { background-image: url(../../aprs-symbols/aprs-symbols-24-1.png) } .aprs-symboltable-overlay { background-image: url(../../aprs-symbols/aprs-symbols-24-2.png) } .openwebrx-dialog { background-color: #575757; padding: 10px; color: white; position: fixed; font-size: 10pt; border-radius: 15px; -moz-border-radius: 15px; position: fixed; left: 50%; top: 50%; transform: translate(-50%, 0); } .openwebrx-dialog .form-field { padding: 5px; display: flex; flex-direction: row; } .openwebrx-dialog .form-field:first-child { padding-top: 0; } .openwebrx-dialog label { display: inline-block; flex-grow: 0; width: 70px; padding-right: 20px; margin-top: auto; margin-bottom: auto; } .openwebrx-dialog .form-field input, .openwebrx-dialog .form-field select { flex-grow: 1; height: 27px; } .openwebrx-dialog .form-field input { padding: 0 5px; } .openwebrx-dialog .buttons { text-align: right; padding: 5px 5px 0; border-top: 1px solid #666; } .openwebrx-dialog .buttons .openwebrx-button { font-size: 12pt; min-width: 50px; text-align: center; padding: 5px 10px; } #openwebrx-panel-digimodes[data-mode="ft8"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="wspr"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="jt65"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="jt9"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="ft4"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="packet"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="pocsag"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="ft8"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="wspr"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="jt65"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="jt9"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="ft4"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="packet"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="pocsag"] #openwebrx-digimode-select-channel { display: none; } #openwebrx-panel-digimodes[data-mode="ft8"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="wspr"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="jt65"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="jt9"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="ft4"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="packet"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="pocsag"] #openwebrx-digimode-canvas-container { height: 200px; margin: -10px; }