/** 
 * app.css
 * 
 * This file contains general CSS styles
 * used across all layouts throughout the app 
 */
body, html {
	background: #000;
	padding: 0;
	margin: 0;
	width: 100%;
	height: 100%;
	font-family: "Roboto", sans-serif;
	letter-spacing: 0px;
	color: #fff;
	 -webkit-font-smoothing: antialiased;
	text-shadow: 1px 1px 0px rgba(0,0,0,.3) }
a {
	color: #ccc;
	text-decoration: none }
a:hover {
	text-decoration: underline }
:not(TEXTAREA)::-webkit-scrollbar {
    display: none; 
}
/**
 * Global font sizes
 * ---------------------------------------- */
.font-3x-large {
	font-size: 400%}
.font-xx-large {
	font-size: 230%}
.font-x-large {
	font-size: 180%}
.font-large {
	font-size: 150%}
.font-medium {
	font-size: 125%}
.font-small {
	font-size: 100%}
.font-x-small {
	font-size: 85%}

/**
 *  Local font sizes
 * ---------------------------------------- */
.tiny {
	font-size: .5em;
	letter-spacing: 0px;}
.xxsmall {
	font-size: .62em;
	letter-spacing: 0px; }
.xxsmall .wi {
	line-height: .65em }
.xsmall {
	font-size: 1em;
	letter-spacing: 0px; }
.xsmall .wi {
	line-height: 1em }
.small {
	font-size: 1.5em;
	letter-spacing: 0px; }
.small .wi {
	line-height: 1.5em }
.medium {
	font-size: 1.8em;
	letter-spacing: -1px; }
.medium .wi {
	line-height: 1.6em }
.medium.wi {
	font-size: 1.5em }
.big {
	letter-spacing: -1px;
	font-size: 2.2em;
	font-weight: 300 }
.large {
	letter-spacing: -2px;
	font-size: 3.2em;
	font-weight: 300 }
.large .wi {
	font-size: .9em }
.x-large {
	letter-spacing: -2px;
	font-size: 3.8em;
	font-weight: 300 }
.xx-large {
	letter-spacing: -2px;
	font-size: 5em;
	font-weight: 100
}

/**
 *  Font colors
 * ---------------------------------------- */
.dim {
	/*color: #fff; /*color: #999; */
	opacity: 0.7;
}
.dark {
	/*color: rgba(255,255,255,0.4);*/
	opacity: .6;
}
.dark a {
	color: rgba(255,255,255,0.5);
}
.dark a:hover {
	color: rgba(255,255,255,0.9);
}
.light {
	color: rgba(255,255,255,0.8);
}
.bright {
	color: #fff;
}



/**
 *  Utility classes
 * ---------------------------------------- */
.pull-right {
	float: right;
}
.text-right {
	text-align: right;
}
.pull-left {
	float: left;
}
.text-left {
	text-align: left;
}
.text-center {
	text-align: center;
}
.text-muted {
	opacity: 0.8;
}
.hide {
	display: none;
}
.label {
	font-size: .55em;
    background: rgba(255,255,255,.8);
    color: rgba(0, 0, 0, 0.8);
    text-shadow: none;
    padding: 2px 8px 4px 8px;
    border-radius: 5px;
    display: inline-block;
    margin-top: -2px;
    vertical-align: middle;
}
.label.label-critical {
	background: rgba(255, 50, 50, .65); 
	color: #ffffff;
}
.label.label-success {
	background: rgba(78, 163, 139, .9); 
	color: #ffffff;
}
.abs-zero {
	position: absolute; 
	top:0; 
	right: 0; 
	bottom: 0; 
	left: 0;
}
.brightness {
	z-index:15;
}
.clearfix {
  content: "";
  display: table;
  clear: both; }
.translucent {
	 background:rgba(0,0,0,.2); 
	 z-index: 100;
}
.translucent-alert {
	background: rgba(255, 0, 0, .4); 
}
.opaque-alert {
	background: #b33232; 
}
.translucent-info {
	background: rgba(91, 130, 255, .6); 
}
.icon {
	position: relative;
	top :-10px;
	display: inline-block;
	font-size: 45px;
	padding-right: 5px;
	font-weight: 100;
	margin-right: 10px;
}
ul {
	list-style-type: none;
	padding: 0;
	margin: 0 }
li {
	margin-top: 12px }
sup, sub {
	font-size: 60% }
table {
	border-collapse: collapse; 
	border-spacing: 0 }

.wi {
	line-height: 75px;
}
.weather-alert {
	margin-bottom: 0.5em;
}
.weather-alert .wi {
	margin: 0.25em;
}
#weather-alert-message {
	padding: 0.5em 0;
}
#weather-alert-expires {
	padding-top: 0.5em;
}
.layout-big-time .weather-alert {
	position: relative;
	top: 0;
	left: 0;
	right: 0;
	z-index: 16;
	padding: 0.5em 0;
}
#options-link,
.options-link {
	position: absolute; 
	top: 0; 
	right: 0; 
	padding: 5px 10px 10px 10px; 
	margin: 10px;
	z-index: 120;
	height: 1em;
	width: 1em;
	overflow: hidden;
	white-space: nowrap;
	transition: width .25s, opacity .25s;
	direction: rtl;
	background: rgba(255,255,255,0.6);
	border-radius: 25px;
	text-shadow: none;
	z-index:201 }

BUTTON.calendar-add-event-btn {
	position: absolute;

	/* These were used when the backdrop-filter blur was off to position relative to the full Screen */
	/*bottom: calc( 100vh - ( var(--block-y-px) + var(--block-height-px) - 0.25em ) );*/
	/*right: calc( 100vw - ( var(--block-x-px) + var(--block-width-px) - 0.25em ) );*/
	/* With the property always in-use now (0 or 10px based on setting), it is relative to the block bounds */
	bottom: 0.25em;
	right: 0.25em;

	display: flex;
	flex-direction: row-reverse;
	flex-wrap: nowrap;
	align-items: center;
	padding: 10px 0.05em;
	height: 1em;
	width: 1em;
	overflow: hidden;
	font-size: min( max( calc( var(--block-height-px) * 0.05 ), 16pt ), ( ( var(--block-width-px) / 2 ) / 8 ) );
	white-space: nowrap;
	transition: width .25s, opacity .25s;
	background: rgba(255,255,255,0.6);
	border-radius: 0.75em;
	text-shadow: none;
	z-index:201;
	border-color: rgba(0,0,0,0.25);
}

a.options-link,
BUTTON.calendar-add-event-btn {
	text-decoration: none;
	color: rgba(0,0,0,.7);
}
BUTTON.calendar-add-event-btn .fas {
	padding: 0.125em;
	font-size: 0.75em;
}
.options-desc,
.calendar-add-event-btn-desc {
    font-size: .75em;
	vertical-align: middle;
    text-transform: uppercase;
	font-weight: bold }
.options-link:hover {
	transition: width .25s;
	width: 5em }
.calendar-add-event-btn:hover {
	transition: width .25s;
	width: 7em;
}
.options-link:hover .fas {
	transition: transform .25s;
	transform: rotate(90deg); }

#screen-container-live BUTTON.calendar-add-event-btn {
	display: none;
}

.prev-screen-link {
	position: absolute;
	bottom: 0;
	left: 0;
	padding: 5px 10px 10px 10px;
	margin: 10px;
	height: 1em;
	width: 1em;
	overflow: hidden;
	white-space: nowrap;
	transition: width .25s, opacity .25s;
	direction: ltr;
	background: rgba(255, 255, 255, 0.6);
	border-radius: 25px;
	font-size: 1rem;
	text-shadow: none;
	z-index: 201
}
.next-screen-link {
	position: absolute;
	bottom: 0;
	right: 0;
	padding: 5px 10px 10px 10px;
	margin: 10px;
	height: 1em;
	width: 1em;
	overflow: hidden;
	white-space: nowrap;
	transition: width .25s, opacity .25s;
	direction: rtl;
	background: rgba(255, 255, 255, 0.6);
	border-radius: 25px;
	font-size: 1rem;
	text-shadow: none;
	z-index: 201
}
A.prev-screen-link,
A.next-screen-link {
	text-decoration: none;
	color: rgba(0, 0, 0, .6)
}
.prev-screen-desc,
.next-screen-desc {
	font-size: .75em;
	vertical-align: middle;
	margin-top: -0.25em;
	display: inline-block;
	text-transform: uppercase;
	font-weight: bold;
	margin-left: 1em;
	margin-right: 1em;
}
.prev-screen-link:hover,
.next-screen-link:hover {
	transition: width .25s;
	/* width: fit-content prevents transition... but these two allow it */
	width: 8em;
	max-width: fit-content;
}




/**
 * Per Cloud-2434, adding fa-v5 stylings into Screen output
 * and using fa-v5 on screen-container-no-edit to override
 * the Kiosk injected CSS
 */
.fa-v5 .fa,
.fa-v5 .far,
.fa-v5 .far:before,
.fa-v5 .fas,
.fa-v5 .fas:before,
.fa-v5 .fal,
.fa-v5 .fal:before,

.fa-v5.fa,
.fa-v5.far,
.fa-v5.far:before,
.fa-v5.fas,
.fa-v5.fas:before,
.fa-v5.fal,
.fa-v5.fal:before
{
	font-family: 'Font Awesome 5 Pro' !important;
}

.fa-v5 .fad,
.fa-v5 .fad:before,
.fa-v5 .fad:after,
.fa-v5.fad,
.fa-v5.fad:before,
.fa-v5.fad:after
{
	font-family: 'Font Awesome 5 Duotone' !important;
}

.fa-v5 .fab,
.fa-v5 .fab:before,
.fa-v5 .fab:after,
.fa-v5.fab,
.fa-v5.fab:before,
.fa-v5.fab:after
{
	font-family: 'Font Awesome 5 Brands' !important;
}






/**
 * Widget related classes
 */
.slider-bar-container {
	user-select: none;
}
.slider-bar-input-container {
	position: relative;
	display: inline-block;
	width: calc(100% - 7.5em); /* 7.5em leaves room for buttons */
	min-width: 2.5em;
	height: 2.5em;
	line-height: 2.5em;
	margin: 0;
	border: 1px solid rgba(0,0,0, 0.5);
	border-radius: 5px;
	background-color: rgba(0, 0, 0, 0.2);
	vertical-align: middle;
}

.slider-bar-input-container > .slider-bar-input {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	height: 100%;
	width: 100%;
	margin: 0;
	appearance: none; /* Allow customization of range slider input */
	background-color: transparent;
}
/* Use opacity instead of display to allow it to remain interactive */
.slider-bar-input-container > .slider-bar-input::-webkit-slider-thumb {
	opacity: 0;
}
.slider-bar-input-container > .slider-bar-input::-moz-range-thumb {
	opacity: 0;
}

.slider-bar-input-container .slider-bar-fill-and-text {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	/* Note: right or width property is set programmatically to show the bar at the correct "fill" level */

	background-color: #e6894c;
	text-align: center;
	border-radius: 5px;

	pointer-events: none; /* Allow click/drag events to pass through to .slider-bar itself */
}

.slider-bar-input-container .slider-bar-fill-and-text {
	color: #fff;
	pointer-events: none; /* Allow click/drag events to pass through to .slider-bar itself */
	/*font-size: calc(100% - var(--block-height)* 0.0125);*/
}

.slider-bar-input-container .slider-bar-fill-and-text .slider-bar-text-value {
	min-width: 2.5em;
	padding: 0.75em;
}

.slider-bar-container > .slider-bar-btn-lower,
.slider-bar-container > .slider-bar-btn-raise {
	display: inline-block;
	line-height: 2.5;
	vertical-align: middle;
	padding: 0 0.75em;
	border: 1px solid var(--color-grey-40-solid);
	border-radius: 5px;
}

.slider-bar-container > .slider-bar-btn-lower > .fa-fw,
.slider-bar-container > .slider-bar-btn-raise > .fa-fw {
	line-height: 1.25em;
	/*font-size: calc( 100% - 0.25em );*/
	padding: 0;
	/*border-radius: 5px;*/
}

.slider-bar-container > .slider-bar-btn-lower:hover,
.slider-bar-container > .slider-bar-btn-raise:hover {
	background-color: rgba(0,0,0, 0.25);
}

.slider-bar-container > .slider-bar-btn-lower:hover:active,
.slider-bar-container > .slider-bar-btn-raise:hover:active {
	background-color: rgba(0,0,0, 0.5);
}


/**
 * Photo-related classes
 * ---------------------------------------- */
#img-info {
	padding: 5px 20px 10px 20px; 
	line-height: .8em; 
}
.layout-tablet #img-info {
	font-size: 16px;
}
#img-info {
	position: fixed; 
	width: 100%; 
	bottom: 0; 
	z-index: 199
}
#img-owner {
	padding-right: 30px;
}
#progress {
	height: 2px; 
	z-index: 200; 
	position: fixed; 
	width: 100%; 
	bottom: 0
}

/**
 *  Event classes/colors
 * ---------------------------------------- */
.no-events{
	font-size: .65em;
	color: rgba(255,255,255,0.5);
	margin-top: 1em;
}
.calendar-agenda-dark .no-events,
.calendar-schedule-dark .no-events {
	color: rgba(0,0,0,0.35);
}

.calendar-schedule .no-events {
	margin-bottom: 1.6em;
}

/**
 * Weather styles
 * ------------------------------------------------------ */


/**
 * RSS styles
 * ------------------------------------------------------ */
#rss .rss-description A:not([href]),
.rss .rss-description A:not([href]) {
	color: inherit;
}
#rss .rss-description A:not([href]):hover,
.rss .rss-description A:not([href]):hover {
	text-decoration: none;
}
.rss-title a {
	color: inherit;
}
.rss-title,
.rss-description {
	/*text-shadow: 1px 1px 0px rgba(0,0,0,.5);*/
	padding-bottom: 7px;
}
.rss-background {
	background: rgba(0,0,0,0.35);
	background: -moz-radial-gradient(center, ellipse cover, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.35) 23%, rgba(0,0,0,0) 65%, rgba(0,0,0,0) 100%);
	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgba(0,0,0,0.35)), color-stop(23%, rgba(0,0,0,0.35)), color-stop(65%, rgba(0,0,0,0)), color-stop(100%, rgba(0,0,0,0)));
	background: -webkit-radial-gradient(center, ellipse cover, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.35) 23%, rgba(0,0,0,0) 65%, rgba(0,0,0,0) 100%);
	background: -o-radial-gradient(center, ellipse cover, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.35) 23%, rgba(0,0,0,0) 65%, rgba(0,0,0,0) 100%);
	background: -ms-radial-gradient(center, ellipse cover, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.35) 23%, rgba(0,0,0,0) 65%, rgba(0,0,0,0) 100%);
	background: radial-gradient(ellipse at center, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.35) 23%, rgba(0,0,0,0) 65%, rgba(0,0,0,0) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#000000', GradientType=1 );
}

/* Merriam-Webster data formatting - show links, but hide extraneous sections */
.block-dailyfacts .rss-description a {
	display: inline;
}
/*.block-dailyfacts .rss-description p:first-child,*//* first-child is not working as expected? And > P:nth-child(1) seems to ignore the P */
.block-dailyfacts .rss-description > :nth-child(2),
.block-dailyfacts .rss-description > p:nth-child(n+5)
{
	display: none;
}
/* Adjust so that when M-W passes font html, it ignores and uses block settings, instead */
.block-dailyfacts font[size] {
	font-size: inherit;
}
.block-dailyfacts font[size="-1"] {
	font-size: 0.6em;
	line-height: 1.5em;
}
.block-dailyfacts font[face] {
	font-family: inherit;
}


/**
 * Message/text styles 
 * ------------------------------------------------------ */
#message {
	text-align: center;
}
.layout-landscape #message { 
	z-index: 200; 
	position: absolute; 
	right: 20%; 
	left: 25%;
}
.layout-portrait #message,
.layout-tablet #message { 
	z-index: 200; 
	position: absolute; 
	min-height: 50px; 
	padding: 0 20px; 
	right: 0; 
	left: 0;
}
#message.top {
	top: 0;
	padding-top: 15px;
}
#message.upper {
	top: 25%;
}
#message.middle {
	top: 45%;
}
#message.lower {
	top: 70%;
}
#message.bottom {
	bottom: 0;
	padding-bottom: 15px;
}
.layout-tablet #message.bottom {
	padding-bottom: 45px;
}
.text p,
.scheduledtext p {
	margin: 0 0 .25em 0;
}
.text table,
.scheduledtext table {
	width: 100%;
}
.text table tr>th, 
.text table tr>td,
.scheduledtext table tr>th,
.scheduledtext table tr>td {
	padding: .4em 0;
}
.text table tr>td,
.scheduledtext table tr>td {
	border-top: 1px solid rgba(255,255,255,0.3);

}
.text .block-font-small table tr>td,
.text .block-font-xsmall table tr>td,
.scheduledtext .block-font-small table tr>td,
.scheduledtext .block-font-xsmall table tr>td {
	border-top: 1px solid rgba(255,255,255,0.3);
}

.text .block-font-medium table tr>td,
.scheduledtext .block-font-medium table tr>td {
	border-top: 2px solid rgba(255,255,255,0.3);
}
.text .block-font-large table tr>td,
.text .block-font-xlarge table tr>td,
.scheduledtext .block-font-large table tr>td,
.scheduledtext .block-font-xlarge table tr>td {
	border-top: 3px solid rgba(255,255,255,0.3);
}

/**
 * Clocks
 * ------------------------------------------------------ */
.analog-circle{
	width:5em;
	height:5em;
	margin: 0 auto 15px auto;
	position:relative;
	border:.25em solid #fff;
	border-radius:50%;
}
.analog-face{
	width:100%;
	height:100%
}
.analog-face:after{
	position:absolute;
	top:50%;
	left:50%;
	width:12px;
	height:12px;
	margin:-6px 0 0 -6px;
	background:#fff;
	border-radius:6px;
	content:"";
	display:block
}
.analog-hour{
	width:0;
	height:0;
	position:absolute;
	top:50%;
	left:50%;
	margin:-3px 0 -3px -25%;
	padding:3px 0 3px 25%;
	background:#fff;
	-webkit-transform-origin:100% 50%;
	-ms-transform-origin:100% 50%;
	transform-origin:100% 50%;
	border-radius:4px 0 0 4px
}
.analog-minute{
	width:0;
	height:0;
	position:absolute;
	top:50%;
	left:50%;
	margin:-40% -2px 0;
	padding:40% 2px 0;
	background:#fff;
	-webkit-transform-origin:50% 100%;
	-ms-transform-origin:50% 100%;
	transform-origin:50% 100%;
	border-radius:3px 3px 0 0
}
.analog-second{
	width:0;
	height:0;
	position:absolute;
	top:50%;
	left:50%;
	margin:-40% -1px 0 0;
	padding:40% 1px 0;
	background:#fff;
	-webkit-transform-origin:50% 100%;
	-ms-transform-origin:50% 100%;
	transform-origin:50% 100%
}

/**
 * Spectrum Color-Picker Re-styling
 * -------------------------------- */
.sp-choose
{
	background-color: var(--color-primary) !important;
	background-image: none !important;
	opacity: .9;
	color: #fff !important;
	border-color: var(--color-primary) !important;
	border-radius: 3px !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	font-weight: 400;
	line-height: 1.42857143 !important;
	text-align: center !important;
	white-space: nowrap;
	vertical-align: middle !important;
	-ms-touch-action: manipulation;
	touch-action: manipulation;
	cursor: pointer;
	display: inline-block;
	-webkit-user-select: none !important;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none !important;
	font-family: inherit;
	height: 30px;
	padding: 5px 5px !important;
	text-shadow: none !important;
	margin-right: 5px;
	font-size: 12px !important;
}

.sp-choose:hover,
.sp-choose:focus
{
	background: var(--color-primary);
	opacity: .9;
	color: #fff;
	border-color: var(--color-primary);
	text-decoration: none;
}

.sp-choose:active
{
	background-image: none;
	color: #fff;
	background-color: #c97136;
	border-color: #204d74;
}

.sp-choose:focus
{
	outline: 0;
}

.sp-choose:active:focus
{
	outline-offset: -2px;
}

.sp-cancel {
	color: var(--color-body-text);
}



#dak-network-offline {
	display: none;
	background: #fff;
	color: #666;
	opacity: 0.8;
	position: absolute;
	bottom: 0;
	left: 0;
	font-size: 16pt;
	padding: 5px 30px 5px 20px;
	text-align: center;
	margin: 5px 5px 5px 0;
	border-radius: 0px 10px 10px 0;
	z-index: 9999;
	border: 1px solid #fff;

	-vendor-animation-delay: 800ms;
}

#dak-dimension-mismatch {
	display: none;
	background: #fff;
	color: #666;
	opacity: 0.8;
	position: fixed;
	top: 0;
	left: 0;
	/*font-size: clamp(18px, 8vmin, 10vh);*/
	font-size: clamp(0.5in, 1.25vh, 2in);
	padding: 5px 30px 5px 20px;
	text-align: center;
	margin: 5px 5px 5px 0;
	border-radius: 0px 10px 10px 0;
	z-index: 9999;
	border: 1px solid #fff;
}
