/* 
 * Copyright 2022-2025 Jamie Vital
 * This software is licensed under the GNU General Public License
 * 
 * This file is part of Vitality GOES.
 * Vitality GOES 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 3 of the License, or
 * (at your option) any later version.
 * 
 * Vitality GOES 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 Vitality GOES.  If not, see <http://www.gnu.org/licenses/>.
 */
html
{
	-webkit-text-size-adjust: 100%;
}
body
{
	margin: 0px;
	font-family: 'Open Sans', sans-serif;
	background: #111111;
}
p:first-child
{
	margin-top: 0;
}
select, input
{
	padding: 5px;
	margin: 2px;
	max-width: 100%;
}
input[type="radio"]
{
	margin-right: 10px;
}
label
{
	user-select: none;
}
.errorMessage
{
	color: #dddddd;
	text-align: center;
}
.errorMessage .fa
{
	margin-bottom: 20px;
	font-size: 250px;
	color: #888888;
}
.topBar
{
	background: linear-gradient(#000080, #000040);
	position: fixed;
	width:100%;
	height: 75px;
	top: 0;
	left:0;
	z-index: 50;
	box-shadow: 0px 0px 5px #000000;
	white-space: nowrap;
}
.topBarInner
{
	position: relative;
	top: 50%;
	transform: translateY(-50%);
	padding-left: 20px;
	color: white;
}
.barLogo
{
	cursor: pointer;
	vertical-align: middle;
	font-size: 24pt;
	padding-right: 20px;
	filter: drop-shadow(0px 1px 1px #000);
	-webkit-tap-highlight-color: transparent;
}
.barTitle
{
	display: inline-block;
	vertical-align: middle;
	font-weight: bold;
	user-select: none;
	text-shadow: 0px 1px 1px #000000;
	font-size: 16pt;
	overflow: hidden;
	text-overflow: ellipsis;
	width: calc(100% - 110px);
	
}
.barRefresh
{
	vertical-align: middle;
	display: inline-block;
	width: 30px;
	font-size: 22pt;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.barRefresh svg
{
	filter: drop-shadow(0px 1px 1px #000);
}
.mainBody
{
	width: 100%;
}
.mainBodyPadding
{
	height: 75px;
}
.sideBar
{
	position: fixed;
	width: 300px;
	height: 100%;
	z-index: 25;
	top: 0px;
	left: 0px;
	transform: translateX(-305px);
	box-shadow: 0px 0px 5px #000000;
	background: #333333;
	transition-duration: 0.33s;
	overflow-y: auto;
}
.sideBar::-webkit-scrollbar 
{
	width: 0px;
}
.menuItem
{
	padding: 30px 25px;
	height: 20px;
	font-size: 12pt;
	cursor: pointer;
	vertical-align: middle;
	line-height: 20px; 
	font-weight: bold;
	color: #eeeeee;
	transition-duration: default;
	user-select: none; 
}
.menuItemIconHolder
{
	display: inline-block;
	width: 40px;
	vertical-align: middle;
	font-size: 18pt;
}
.menuItem:hover
{
	background: #777777;
}
.menuItem.selected
{
	color: white;
	background: #007797;
}
.menuItem.selected:hover
{
	color: white;
	background: #005066;
}
.mainContent
{
	column-width: 500px;
	column-gap: 20px;
	padding: 0 10px;
}
.singleCard
{
	width: 500px;
	margin: 0 auto;
	max-width: calc(100% - 20px);
}
.dualCard
{
	column-count: 2;
	column-width: 350px;
	column-gap: 20px;
	padding: 0 10px;
	max-width: 1000px;
	margin: 0 auto;
}
.prettyBox:only-child
{
	margin-bottom: 30px;
}
.prettyBox.weatherAlert:only-child
{
	margin-bottom: 10px;
}
.prettyBox
{
	background: #333333;
	color: #efefef;
	box-shadow: 0px 1px 1px 1px #000000;
	border-radius: 10px;
	display: inline-block;
	margin: 10px 0;
	width: 100%;
}
.prettyBox.emwinLoader
{
	background: #222222;
}
.prettyBox.emwinLoader.highlighted
{
	box-shadow: 0px 0px 5px 2px #ffffff80;
}
.prettyBoxList
{
	border-bottom: 1px solid #888888;
	margin-bottom: 10px;
	padding: 20px;
}
.prettyBoxList:last-child
{
	border-bottom: 0;
}
.weatherAlert
{
	border-radius: 10px;
}
.weatherAlert.red
{
	color: #ff6666;
	background-color: #660000;
	border: 1px solid #cc0000;
	font-size: 10pt;
}
.weatherAlert.blue
{
	color: #dbe1fb;
	background-color: #001ea0;
	border: 1px solid #002cee;
}
.weatherAlert.amber
{
	color: #ffecbb;
	background-color: #896711;
	border: 1px solid #d09500;
}
.weatherAlert.green
{
	color: #e4ffe5;
	background-color: #00690b;
	border: 1px solid #00c00b;
}
.weatherAlert.purple
{
	color: #f6ddff;
	background-color: #610081;
	border: 1px solid #8c00bb;
}
.weatherAlert.teal
{
	color: #c1fbff;
	background-color: #004e53;
	border: 1px solid #00aeb9;
}
.weatherAlert.brown
{
	color: #b59000;
	background-color: #3b2f00;
	border: 1px solid #6b5600;
}
.weatherAlert.red .prettyBoxContent, .weatherAlert.blue .prettyBoxContent,
.weatherAlert.amber .prettyBoxContent, .weatherAlert.purple .prettyBoxContent,
.weatherAlert.brown .prettyBoxContent
{
	text-align: left;
	font-family: monospace;
}
.prettyBoxHeader
{
	font-weight: bold;
	padding: 10px;
	cursor: pointer;
	user-select: none;
	font-size: 10pt;
	position: relative;
}
.prettyBoxHeader .fa
{
	margin-right: 10px;
}
.weatherHeader
{
	font-weight: bold;
	padding-bottom: 15px;
}
.hurricaneForecastHeader
{
	font-weight: bold;
	font-size: 12pt;
	text-align: center;
	padding-bottom: 10px;
}
.weatherBody
{
	font-size: 10pt;
	text-align: left;
}
.truncLeft
{
	float: left;
	padding-top: 10px;
}
.weatherLeft
{
	float: left;
	font-weight: bold;
	padding-bottom: 5px;
}
.weatherRight
{
	float: right;
	text-align: right;
	padding-bottom: 5px;
}
.weatherRight select
{
	max-width: 200px;
}
.inputFlex
{
	display: flex;
	align-items: center;
}
.fileTypeRow
{
	display: flex;
	align-items: flex-start;
	margin: 10px 0;
}
.fileTypeRow label
{
	flex: 1;
}
.inputFlex input[type="text"]
{
	flex: 1;
	margin-left: 10px;
	width: 30px;
}
.autoFilterFlex
{
	display: flex;
	margin: 10px 0;
}
.autoFilterFlex.disabled
{
	pointer-events: none;
	opacity: 0.5;
}
.autoFilterCategory
{
	flex: 1;
	text-align: center;
}
.autoFilterPicklistHolder
{
	border: solid 1px #aaaaaa;
	height: 200px;
	margin: 5px;
	display: flex;
	flex-direction: column;
}
.autoFilterSearchHolder
{
	display: flex;
}
.autoFilterSearchHolder input
{
	margin: 0;
	width: 100%;
	border: none;
	background: transparent;
	color: inherit;
	flex: 1;
}
.autoFilterSearchHolder input:focus
{
	outline: none;
}
.autoFilterSearchHolder i
{
	margin: 7px;
	color: inherit;
}
.autoFilterPicklist
{
	border-top: solid 1px #aaaaaa;
	overflow-y: scroll;
	flex: 1;
	user-select: none;
	-webkit-overflow-scrolling: touch;
}
.autoFilterItem
{
	overflow-x: hidden;
	padding: 4px;
}
.autoFilterItem.selected
{
	background: #efefef;
	color: #111111;
}
.adminMessageBody, .emwinMessageBody .prettyBoxList:first-child
{
	font-size: 9pt;
	text-align: left;
	font-family: monospace;
	white-space: pre;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
::-webkit-scrollbar
{
	height: 10px;
}
::-webkit-scrollbar-track
{
	background: #444444;
}
::-webkit-scrollbar-button:vertical:decrement
{
	background-position: center;
	background-repeat: no-repeat;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='5' fill='rgb(239, 239, 239)'><polygon points='5,0 0,5 10,5'/></svg>");
}
::-webkit-scrollbar-button:vertical:increment
{
	background-position: center;
	background-repeat: no-repeat;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='5' fill='rgb(239, 239, 239)'><polygon points='0,0 10,0 5,5'/></svg>");
}
::-webkit-scrollbar-button:vertical:hover
{
	background-color: #555555;
}
::-webkit-scrollbar-thumb
{
	background: #888888;
}
.otherEmwinDeleteHolder
{
	position: absolute;
	top: 50%;
    transform: translateY(-50%);
	font-size: 12pt;
	right: 0;
}
.otherEmwinDeleteHolder .fa, .otherEmwinDeleteHolder .far
{
	margin: 0;
	padding: 10px 7px;
}
.otherEmwinDeleteHolder .fa:last-child
{
	padding-right: 12px;
}
.otherEmwinDeleteHolder .fa-trash-alt
{
	color: #d54040;
}
.prettyBoxList.otherEmwinNavigation
{
	display: flex;
	justify-content: space-between;
	padding: 0 10px;
	font-size: 10pt;
}
.otherEmwinNavigation div
{
	padding: 5px;
}
.otherEmwinNavigationArrow
{
	cursor: pointer;
}
.otherEmwinNavigationArrow.disabled
{
	cursor: default;
	opacity: 0.2;
}
.otherEmwinNumIndicator
{
	font-style: oblique;
}
.prettyBoxContent
{
	padding: 20px 20px 0px 20px;
	border-top: 1px solid #aaaaaa;
	text-align: center;
}
.prettyBoxContent:only-child
{
	border-top: none;
}
.prettyBoxContent:last-child
{
	padding: 20px;
}
.prettyBoxContent.noPadding
{
	padding: 0;
}
.goesimg
{
	width: 100%;
	cursor: pointer;
}
.goeslabel
{
	font-style: oblique;
	text-align: center;
	margin-top: 5px;
	font-size: 8pt;
}
.lgLabel
{
	margin-bottom: 5px;
	font-style: oblique;
	text-align: center;
	margin-top: 5px;
	font-size: 8pt;
}
.forcastCardHolder
{
	overflow-x: scroll;
	-webkit-overflow-scrolling: touch;
	white-space: nowrap;
	padding-bottom: 10px;
	user-select: none;
	margin-bottom: 10px;
}
.forecastCard
{
	width: 150px;
	display: inline-block;
	border-left: solid 1px #888888;
	padding: 0 10px;
	text-align: center;
	vertical-align: top;
}
.forecastCard:last-child
{
	border-right: solid 1px #888888;
	margin-right: 1px;
}
.forecastHeader
{
	font-weight: bold;
	margin-bottom: 10px;
	padding-bottom: 5px;
	border-bottom: 1px solid #888888;
}
.mapLinks
{
	text-align: center;
	padding: 5px;
	user-select: none;
}
.profileSelector
{
    padding: 0px 0px 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.spanLink.selected
{
	font-weight: bold;
	color: #cccccc;
	text-decoration: none;
}
.spanLink
{
	cursor: pointer;
	color: #888888;
	font-size: 10pt;
}
.spanLink:after
{
	content: "|";
	font-weight: inherit;
	color: #888888;
	padding: 0 5px;
}
.spanLink:last-child:after
{
	content: none;
	padding: none;
}
@media (max-height: 775px)
{
	.menuItem
	{
		font-size: 10pt;
		padding: 15px 20px;
	}
}
@media (max-width: 1600px)
{
	.mainContent
	{
		column-width: 400px;
	}
}
@media (max-width: 1000px)
{
	.mainContent
	{
		column-width: 350px;
	}
}
