Files
zoneminder/web/skins/classic/css/base/skin.css
2024-09-13 18:34:17 -04:00

1212 lines
20 KiB
CSS

/*
* ZoneMinder Base Stylesheet, $Date$, $Revision$
* Copyright (C) 2001-2008 Philip Coombes
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/*
* Primary look and feel styles
*/
:root {
--scrollbarBG: #F1F1F1;
--sliderBG: #C1C1C1;
--alarmBG: #FFC0C0;
--alarmText: inherit;
}
@font-face {
font-family: "Material Icons";
font-style: normal;
font-weight: 400;
font-display: block;
src: url("../fonts/material-icons.woff2") format("woff2"), url("../fonts/material-icons.woff") format("woff");
}
.material-icons {
font-family: "Material Icons";
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
font-feature-settings: "liga";
vertical-align: middle;
display: none;
}
.material-icons.md-18 { font-size: 18px; }
.material-icons.md-20 { font-size: 20px; }
.material-icons.md-22 { font-size: 22px; }
.material-icons.md-24 { font-size: 24px; }
.material-icons.md-26 { font-size: 26px; }
.material-icons.md-28 { font-size: 28px; }
.material-icons.md-30 { font-size: 30px; }
.material-icons.md-32 { font-size: 32px; }
.material-icons.md-34 { font-size: 34px; }
.material-icons.md-36 { font-size: 36px; }
.material-icons.md-38 { font-size: 38px; }
.material-icons.md-40 { font-size: 40px; }
html,
body {
height: 100%;
margin: 0;
}
body {
font-family: "Open Sans", Verdana, Arial, Helvetica, sans-serif;
font-size: 13px;
font-weight: 300;
text-align: center;
}
body.sticky {
display: flex;
flex-flow: column nowrap;
flex-direction: column;
}
h1 {
font-family: inherit;
font-size: 120%;
font-weight: bold;
text-align: center;
}
h2 {
font-family: inherit;
font-size: 110%;
font-weight: bold;
}
h3 {
font-family: inherit;
font-size: 100%;
font-weight: bold;
}
h4 {
font-family: inherit;
font-size: 100%;
}
p {
font-family: inherit;
font-size: 100%;
font-weight: normal;
}
/*
th {
padding: 3px;
text-transform: uppercase;
font-size: 0.8em;
font-weight: 600;
}
*/
.thead-highlight {
background-color:#dfe4ea;
}
/* rounded table head top corners */
table th:first-child{
border-radius:5px 0 0 0 ;
}
table th:last-child{
border-radius:0 5px 0 0 ;
}
a {
cursor: pointer;
}
a.optionhelp,
a:link {
color: #0fbcf9;
text-decoration: none;
}
a:visited {
color: #44b8eb;
text-decoration: none;
}
a:hover {
text-decoration: none;
background-color:rgba(72, 84, 96,0.2);
border-radius:4px;
}
a:not([href]):hover {
color: #212529;
}
label {
margin: 0 4px;
}
button {
line-height: 18.5px;
}
a.btn,
button.btn {
line-height: 1;
font-size: 18px;
margin-bottom: 3px;
}
#toolbar .btn-normal,
#toolbar .btn-danger {
margin-right: 3px;
}
#rightButtons .btn-normal,
#leftButtons .btn-normal {
margin-right: 0px;
}
input, textarea, select, button, .btn-primary {
border: 1px #ccc solid;
padding: 5px;
border-radius: 1px;
font-family: inherit;
font-weight: 400;
font-size: 100%;
color: #333333;
background-color: #f8f8f8;
text-align: left;
border-radius:4px;
}
input.noborder {
border: 0;
}
input[disabled] {
color: #888888;
}
.modal img {
max-width: 100%;
}
img {
display: inline-block;
}
img.normal {
border: white solid 1px;
}
img.alarm {
border: red solid 1px;
}
hr {
height: 1px;
width: 100%;
border: 0;
color: #3498db;
background-color: #3498db;
}
/*
* Tabbed headings
*/
ul.tabList {
float: left;
list-style: none;
padding: 0;
margin: 0 0 -4px 0;
white-space: nowrap;
text-align: left;
}
ul.tabList li {
float: left;
border: 1px solid;
color: #333333;
border: #ccc solid 1px;
border-bottom-width: 0;
margin: 0 2px 0 0;
background: #eee;
text-align: center;
padding: 5px 10px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
ul.tabList li a {
text-decoration: none;
}
ul.tabList li:hover {
background-color: #eeeeee;
}
ul.tabList li.active {
background-color: #ffffff;
border-bottom: #7f7fb2 dotted 1px;
}
ul.tabList li.active a {
font-weight: bold;
}
#content {
width: 100%;
overflow: hidden auto;
margin: 0 auto 0 auto;
line-height: 130%;
text-align: center;
clear: both;
}
#content::backdrop {
background-color: white;
}
body.sticky #content {
/*
flex: 1 1 auto;
display: flex;
flex-flow: column;
overflow: hidden;*/
height: 100%;
}
#inner-content {
overflow: auto;
height: 100%;
width: 100%;
}
/*
* Major league table for multiple inputs or presentation
*/
#content table.major {
margin: 4px auto;
width: 100%;
border-collapse: collapse;
}
#content table.major tr.highlight {
background-color: #eeeeee;
}
#content table.major thead tr th {
padding-top: 6px;
padding-bottom: 6px;
vertical-align: middle;
}
#content table.major tfoot td {
padding-top: 6px;
padding-bottom: 6px;
vertical-align: middle;
}
#content table.major th, #content table.major td {
border-bottom: 2px solid #f2f2f2;
padding: 5px 10px;
text-align: left;
}
#content table.major th {
vertical-align: bottom;
}
#content table.major td {
vertical-align: middle;
}
#content table.major th[scope=row] {
padding: 4px 3px 3px;
vertical-align: top;
}
#content table.major .colMark, #content table.major .colSelect {
text-align: center;
}
/*
* Lesser table for very simple forms
*/
#content table.minor {
width: 280px;
margin: 0 auto;
}
#content table.minor td {
padding: 4px;
}
#content table.minor .colLeft {
width: 50%;
text-align: right;
}
#content table.minor .colRight {
width: 50%;
text-align: left;
}
#content table.minor input[type=submit]
{
margin-top: 8px;
padding: 0 2px;
font-size: 120%;
}
#content table > tbody > tr:hover
{
background-color: #EEE;
}
.overlay {
font-size: 11px;
}
.overlay fieldset {
background-color: #f8f8f8;
}
.validation-advice {
padding: 4px;
color: #dc143c;
}
/*
* Behavior classes
*/
.ok, .infoText {
color: #0fb9b1;
}
.alert, .warnText, .warning, .disabledText {
color: #ffa801;
padding: 0;
}
.alarm, .errorText, .error {
color: #ff3f34;
}
/* Refers to the error box at the top of the web UI */
#error {
width: 100%;
padding: 5px;
font-weight: bold;
background-color: white;
color: #ff3f34;
}
.timedErrorBox {
color:white;
background:#e74c3c;
border-radius:5px;
padding:5px;
-moz-animation: inAndOut 5s ease-in forwards;
-webkit-animation: inAndOut 5s ease-in forwards;
animation: inAndOut 5s ease-in forwards;
}
/*
the timed classed auto disappear after 5s
*/
.timedWarningBox {
color:white;
background:#e67e22;
border-radius:5px;
padding:5px;
-moz-animation: inAndOut 5s ease-in forwards;
-webkit-animation: inAndOut 5s ease-in forwards;
animation: inAndOut 5s ease-in forwards;
}
.timedSuccessBox {
color:white;
background:#27ae60;
border-radius:5px;
padding:5px;
-moz-animation: inAndOut 5s ease-in forwards;
-webkit-animation: inAndOut 5s ease-in forwards;
animation: inAndOut 5s ease-in forwards;
}
@keyframes inAndOut {
0% {opacity:0;}
10% {opacity:1;}
90% {opacity:1;}
100% {opacity:0;}
}
.fakelink {
color: #7f7fb2;
cursor: pointer;
}
.fakelink:hover {
color: #336699;
text-decoration: none;
}
/*
* Generic useful classes, especially with mootools
*/
.nowrap {
white-space: nowrap;
}
div.clear,
br.clear {
clear: both;
}
/*
.table-th-sort {
font-style:italic;
}
td.table-td-sort {
font-style:italic;
}
*/
th.table-th-sort {
margin-right: 12px;
}
th.table-th-sort span.table-th-sort-span {
float: right;
width: 12px;
height: 12px;
background: url("../skins/classic/graphics/arrow-s-u.png") no-repeat 0 0;
}
th.table-th-sort-rev span.table-th-sort-span {
float: right;
width: 12px;
height: 12px;
background: url("../skins/classic/graphics/arrow-s-d.png") no-repeat 0 0;
}
.table-tr-odd {
background-color: #f8f8f8;
}
/*
* Primary layout styles
*/
#page {
width: 100%;
}
body.sticky #page {
flex: 1 1 auto;
display: flex;
flex-flow: column;
overflow: hidden;
}
#header {
width: 100%;
background-color: #34495e;
padding: 5px 0px;
margin: 0 auto 4px auto;
color: white;
font-weight: 300;
}
#header:after {
content: ".";
display: block;
height: 0;
font-size: 0;
clear: both;
visibility: hidden;
}
@media screen and (max-width:767px) {
#header {
max-width: 100%;
}
}
#header h2 {
left: 0;
font-weight: 300;
}
#header h2.floating {
float: left;
font-weight: 300;
}
#header h3 {
font-weight: 300;
font-size:0.8em;
}
#headerControl {
text-align: center;
margin: 0 auto;
}
#headerButtons {
float: right;
}
#headerButtons a {
margin-left: 8px;
}
#headerButtons input {
margin-left: 4px;
}
#content p {
margin-top: 4px;
}
#content p.textblock {
text-align: justify;
padding: 4px;
}
#content p.textblock br {
margin-bottom: 8px;
}
/*
#contentDiv {
margin: 0 auto 8px;
line-height: 140%;
text-align: center;
}
*/
#content > input[type=submit], #content > input[type=button], #content > button, #content > .btn-primary {
margin-top: 8px;
}
#content table input[type=submit], #content table input[type=button], #content table button, #content table .btn-primary {
margin-top: 1px;
margin-right: 4px;
}
#contentButtons {
margin-top: 8px;
margin-bottom: 8px;
float: right;
}
#contentButtons input {
margin-left: 8px;
margin-bottom: 4px;
}
#contentButtons a.btn, #contentButtons button.btn {
margin-bottom: 0;
}
#footer {
width: 96%;
margin: 8px auto;
}
button,
input[type=button],
input[type=submit],
.btn-primary,
.btn-primary:link {
background-color: #3498db;
color: #fff;
border-color: #3498db;
text-transform: uppercase;
font-weight: 200;
padding: 7px 10px 5px 10px;
cursor: pointer;
text-decoration: none;
display: inline-block;
text-align: center;
margin-right: 3px;
}
.btn-normal,
.btn-normal:link {
color: #fff;
background-color: #3498db;
border: 1px solid #3498db;
}
button:hover,
input[type=button]:hover,
input[type=submit]:hover,
.btn-primary:hover {
background-color: #34a2ee;
}
/* PP - make it easy to identify disabled buttons */
button:disabled,
input[type=button]:disabled,
input[type=submit]:disabled,
a.disabled,
a.btn-primary.disabled,
.btn-primary.disabled, .btn-primary:disabled, .btn-secondary.disabled, .btn-secondary:disabled {
background-color: #aaaaaa;
border-color: #bbbbbb;
}
#navbar-container {
padding: 0;
display: flex;
justify-content: space-between;
background-color:#485460 !important;
}
#navbar-container > nav {
width: 100%;
}
#reload, #panel {
padding: 0;
}
#Version {
padding-right: 8px;
}
.navbars {
width: 100%;
}
.navbar {
padding: 0 0 0 0px;
margin-bottom: 0 !important;
border-radius: 0;
background-color:#485460 !important;
color: #0fbcf9;
border:none;
}
.navbar-brand {
margin-left: 15px;
font-weight: normal;
font-size: 30px;
}
.navbar-brand a {
color:#ffa801;
}
@media (max-width: 600px){
.navbar-brand {
display: none;
}
.navbar-nav {
flex-direction: row;
}
.navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
}
}
.navbar-btn {
background-color:#95afc0;
color:white;
padding:4px;
margin-right:8px;
border:none;
}
.sidebar {
position: absolute;
top: 0;
left: 0;
z-index: 1000;
display: block;
padding: 0;
overflow-x: hidden;
overflow-y: auto;
background-color: #f5f5f5;
border-right: 1px solid #eeeeee;
}
.sidebar ul {
margin-right: 0;
margin-bottom: 20px;
margin-left: 0;
}
.nav-pills > li > a {
border-radius: 0;
}
ul.nav.nav-pills.flex-column {
background-color: #f5f5f5;
}
#toolbar,
.filterTable {
display:flex;
flex-wrap: wrap;
}
.controlHeader .chosen-container,
#header .chosen-container,
#fbpanel .chosen-container,
#toolbar .chosen-container {
text-align: left;
min-width: 11em; /* Makes a nice uniform display */
}
#mfbpanel {
width: calc(100% - 25px);
float: left;
}
.chosen {
position: absolute !important; left: -999em !important;
}
.chosen-container-active .chosen-choices {
border-color:rgb(200,200,200);
}
.chosen-single,
.chosen-container,
.chosen-container-multi,
.chosen-results,
.chosen-search,
.chosen-drop,
.chosen-choices,
li.search-choice {
font-size: inherit;
border-radius:4px;
border-color:rgb(200,200,200);
}
.chosen-container-single .chosen-single-with-deselect span {
margin-right: 30px;
}
.chosen-container-single .chosen-single abbr {
right: 18px;
}
.reduced-text {
font-size:0.9em;
}
.glyphicon.glyphicon-dot:before {
content: "\25cf";
font-size: 1.5em;
padding-right:5px;
}
.gi-1p5x{font-size: 1.5em;}
.gi-2x{font-size: 2em;}
.gi-3x{font-size: 3em;}
.gi-4x{font-size: 4em;}
.gi-5x{font-size: 5em;}
.fa:hover{
color: black;
}
.filterBar {
margin-top:5px;
margin-bottom:5px;
}
.form-check-inline {
display: inline-block;
}
#dropdown_storage+div,
#dropdown_reminder+div,
#dropdown_bandwidth+div {
background-color:#485460;
}
#framesTable td:hover {
cursor: pointer;
}
.zoom,
.zoom-console {
transform-origin: 0% 00%;
transform: scale(5); /* (arbitray zoom value - Note if the zoom is too large, it will go outside of the viewport) */
position: sticky;
z-index: 1001;
}
#framesTable .zoom {
transform-origin: 100% 0%;
}
a.flip {
float: right;
padding-right: 5px;
}
#content table.major .colDiskSpace {
text-align: right;
}
#modalLogout .modal-dialog {
height: 100%;
}
#modalLogout .modal-content {
height: 90%;
}
#modalLogout .modal-body {
overflow:auto;
}
#getAccountCircleHTML {
padding: 4px 0 0 0;
}
#logoutButton {
color: white;
padding: 4px 10px 7px 10px;
}
#stateModalBtn {
padding: 5px 10px 4px 10px;
}
#shutdownButton {
padding: 4px 10px 4px 10px;
color: white;
}
.imageFeed {
margin: 0 auto;
text-align: center;
/*
vertical-align: middle;
*/
position: relative;
}
.imageFeed img,
.imageFeed video,
.imageFeed svg {
margin: 0;
padding: 0;
border-radius: 0;
display: block;
width: 100%;
/*
height: 100%;
*/
border: 2px solid #ffffff;
}
.imageFeed svg {
position: absolute;
top: 0;
left: 0;
right: 0;
background: none;
}
.monitor {
position: relative;
}
.monitor:after {
clear: both;
}
.monitor .monitorStatus {
position: relative;
background-color: #FFFFFF;
}
.monitor .monitorStatus.bottom {
color: #dddddd;
}
.monitor.idle img, .monitor.idle .imageFeed {
border: 2px solid #ffffff;
}
.monitor.alarm img, .monitor.alarm .imageFeed {
border: 2px solid #ff0000;
}
.monitor.alert img, .monitor.alert .imageFeed {
border: 2px solid #ffa500;
}
.monitor.alert {
color: #ffa500;
padding: 0;
border-radius: 0;
border: none;
}
.controlHeader, #fieldsTable {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
/* to match chosen text input height */
.controlHeader input[type="text"] {
height: 29px;
padding: 2px 5px 4px 5px;
margin-top:0;
width: 100%;
}
@media screen and (max-width:767px) {
.controlHeader {
display: flex;
flex-wrap: wrap;
}
}
#fieldsTable ul.chosen-choices {
max-height: 100px;
overflow-y:auto;
}
.search .form-control {
font-size: 100%;
}
button .material-icons {
font-size: 18px;
}
/* input[type="search"]::-webkit-search-cancel-button {
display: none;
} */
.tags-container {
display: flex;
flex-wrap: wrap;
border: 1px solid;
border-color: #ccc;
border-radius: 4px;
min-height: 35px;
margin: 0.25rem 1rem 0.25rem 1rem;
}
.tag {
background-color: #F0F0F0;
border-radius: 12px;
padding: 4px 8px;
margin: 4px;
display: flex;
align-items: center;
}
.tag-text {
margin-right: 4px;
}
.tag-remove {
cursor: pointer;
color: red;
}
.tag-input {
height: 30px;
margin-left: 8px;
border: none;
width: 100%;
}
.tag-input:focus {
outline: none;
}
.tag-dropdown {
vertical-align: center;
margin-right: 8px;
display: inline-block;
flex-grow: 2;
}
.tag-dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 15;
padding: 4px 0;
overflow-y: auto;
max-height: 800px;
}
.tag-dropdown-item {
cursor: pointer;
padding: 4px 8px;
margin-bottom: 4px;
}
.tag-dropdown-item:hover {
background-color: #dfdfdf;
}
.hlight{
background:#dfdfdf;
}
.tag-input:focus + .tag-dropdown-content,
.tag-input + .tag-dropdown-content:active {
display: block;
}
/* Change scrollbar style */
div::-webkit-scrollbar, nav::-webkit-scrollbar, .chosen-results::-webkit-scrollbar {
width: 11px;
height: 11px;
}
html, div, nav, .chosen-results {
scrollbar-width: thin;
scrollbar-color: var(--sliderBG) var(--scrollbarBG);
}
html::-webkit-scrollbar-track, div::-webkit-scrollbar-track, nav::-webkit-scrollbar-track, .chosen-results::-webkit-scrollbar-track {
background: var(--scrollbarBG);
}
html::-webkit-scrollbar-thumb, div::-webkit-scrollbar-thumb, nav::-webkit-scrollbar-thumb, .chosen-results::-webkit-scrollbar-thumb {
background-color: var(--sliderBG);
border-radius: 6px;
border: 3px solid var(--scrollbarBG);
}
.term {
display: flex;
flex-direction: column;
margin-left: 15px;
}
@media screen and (max-width:500px) {
.term {
width: 100% !important;
flex-direction: row;
margin-right: 15px;
margin-bottom: 5px;
}
.term-label-wrapper {
text-wrap: nowrap;
margin-top: 7px;
margin-right: 5px;
}
.term-value-wrapper {
width: 100%;
flex-grow: 1;
}
.term-value-wrapper .chosen-container {
width: 100% !important;
}
label {
text-wrap: nowrap;
}
input.hasDatepicker {
max-width: 100%;
width: 100%;
}
}
/* +++ Control button block in the Stream image*/
.block-button-center {
position: absolute;
left: 35%;
right: 35%;
top: 2px;
z-index: 10;
}
button.btn.btn-zoom-out {
padding: 0;
background-color: rgba(150,150,150,0.5);
position: absolute;
left: 3px;
top: 3px;
z-index: 10;
text-shadow:
-1px -1px 0 #575757,
1px -1px 0 #575757,
-1px 1px 0 #575757,
1px 1px 0 #575757;
}
button.btn.btn-zoom-in {
padding: 0;
background-color: rgba(150,150,150,0.5);
position: absolute;
right: 3px;
top: 3px;
z-index: 10;
text-shadow:
-1px -1px 0 #575757,
1px -1px 0 #575757,
-1px 1px 0 #575757,
1px 1px 0 #575757;
}
button.btn.btn-view-watch,
button.btn.btn-edit-monitor,
button.btn.btn-fullscreen {
padding: 0;
background-color: rgba(150,150,150,0.5);
z-index: 10;
text-shadow:
-1px -1px 0 #575757,
1px -1px 0 #575757,
-1px 1px 0 #575757,
1px 1px 0 #575757;
}
button.btn.btn-zoom-out:focus,
button.btn.btn-zoom-in:focus,
button.btn.btn-view-watch:focus,
button.btn.btn-edit-monitor:focus {
outline: 0;
box-shadow: none;
}
button.btn.btn-zoom-out:hover,
button.btn.btn-zoom-in:hover,
button.btn.btn-edit-monitor:hover,
button.btn.btn-view-watch:hover {
background-color: darkgrey;
}
.controlHeader .chosen-container {
/* limit width of monitor filters so that it fits on 1920px */
max-width: 300px;
}
/* --- Control button block in the Stream image*/
/* +++ This block should always be located at the end! */
.hidden {
display: none;
}
.hidden-shift {
position: absolute !important; left: -999em !important;
}
.invisible {
visibility: hidden;
}
/* --- This block should always be located at the end! */