/* 
-------------------------------------------------------------------------------
layout.css style rules - General layout rules 
-------------------------------------------------------------------------------
*/
html,
html .mapboxgl-map {
	font: 13px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif;
}

body {
    font-size: 1.1em;
	margin: 0;
	padding: 0;
}

:not(li):focus {
	box-shadow: 0 0 3px 2px rgb(15, 135, 255) !important;
	-moz-box-shadow: 0 0 3px 2px rgb(15, 135, 255) !important;
	-webkit-box-shadow: 0 0 3px 2px rgb(15, 135, 255) !important;
	outline: none !important;
}

label[for],
input[type="radio"] {
	cursor: pointer;
}

button {
	cursor: pointer;
}

input[type="radio"] {
  margin-top: -3px;
  vertical-align: middle;
}

input, 
datalist {
	font: 13px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif;
}

.hidden {
	display: none;
}

.inv-container {
    text-align: center;
}

/* Map style rules */
.map {
    position: relative;
    width: 100%;
    height: 650px;
}

.mapboxgl-canvas {
	cursor: pointer;
}

/* Instructions div */
.instructions {
	margin: 10px 0px;
}

.instructions > img {
	height: 20px;
}

/* Hyperlinks */
.download .link {
    color: #007396;
    text-decoration: none;
}

.link-symbols-container {
	text-align: right;
}

.link-symbols {
    margin-top: 8px;
    font-size: 0.9em;
}

/* How To Use (HTU) Modal Popup Window */
#htu .menu {
    margin-left: 10px;
}

#htu img {
    padding: 3px;
}

#htu img,
#htu .mapboxgl-ctrl-icon {
	width: 30px;
	height: 30px;
}

#htu .mapboxgl-ctrl-zoom-out.mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")
}

#htu .mapboxgl-ctrl-zoom-in.mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")
}

#htu .menu .htu-row {
	margin-top: 4px;
}

#htu .menu .htu-row > * {
	display: inline-block;
    vertical-align: middle;
}

/* Tooltip */
.tooltip {
	position: absolute;
    padding: 5px;
    border-radius: 4px;
    pointer-events: none;
	opacity: 0;
	z-index: 10000;
    background: white;
    max-width: 250px;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 2px;
}

.tooltip .tooltip-title {
	font-weight: bold;
}

.tooltip .tooltip-line > * {
	display: inline-block;
	vertical-align: middle;
	margin-left: 3px;
	margin-right: 3px;
}

.tooltip .legend,
.tooltip .legend rect {
	width: 12px;
	height: 2px;
}

/*
-------------------------------------------------------------------------------
controls.css style rules
-------------------------------------------------------------------------------
*/
.control-label {
	font-weight: bold;
}

.mapboxgl-ctrl {
	transform: initial;
}

/* Map logo and attribution */
.mapboxgl-ctrl-logo,
.mapboxgl-ctrl-attrib-inner {
	background-color: white;
}

/* Map Scale bar control */
.mapboxgl-ctrl-scale {
	font-size: 1.15em;
}

/* Map Fullscreen control */
.mapboxgl-ctrl-icon.mapboxgl-ctrl-fullscreen {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M 5 4 C 4.5 4 4 4.5 4 5 L 4 6 L 4 9 L 4.5 9 L 5.7773438 7.296875 C 6.7771319 8.0602131 7.835765 8.9565728 8.890625 10 C 7.8257121 11.0633 6.7761791 11.951675 5.78125 12.707031 L 4.5 11 L 4 11 L 4 15 C 4 15.5 4.5 16 5 16 L 9 16 L 9 15.5 L 7.2734375 14.205078 C 8.0428931 13.187886 8.9395441 12.133481 9.9609375 11.068359 C 11.042371 12.14699 11.942093 13.2112 12.707031 14.21875 L 11 15.5 L 11 16 L 14 16 L 15 16 C 15.5 16 16 15.5 16 15 L 16 14 L 16 11 L 15.5 11 L 14.205078 12.726562 C 13.177985 11.949617 12.112718 11.043577 11.037109 10.009766 C 12.151856 8.981061 13.224345 8.0798624 14.228516 7.3046875 L 15.5 9 L 16 9 L 16 5 C 16 4.5 15.5 4 15 4 L 11 4 L 11 4.5 L 12.703125 5.7773438 C 11.932647 6.7864834 11.026693 7.8554712 9.9707031 8.9199219 C 8.9584739 7.8204943 8.0698767 6.7627188 7.3046875 5.7714844 L 9 4.5 L 9 4 L 6 4 L 5 4 z '/%3E %3C/svg%3E")
}

/* Maps Control container */
.maps-control button img {
    width: 20px;
    height: 20px;
}

/* Groups Control container */
.mapboxgl-ctrl-group {
    overflow-y: auto;
    max-width: 350px;
	max-height: 600px;
}

.mapboxgl-ctrl-group .mapboxgl-ctrl.legend {
	margin: 0px;
}

.mapboxgl-ctrl-group .mapboxgl-ctrl.legend > *,
.mapboxgl-ctrl-group .mapboxgl-ctrl.opacity,
.mapboxgl-ctrl-group .mapboxgl-ctrl.maps-menu,
.mapboxgl-ctrl-group .mapboxgl-ctrl.years-menu,
.mapboxgl-ctrl-group .mapboxgl-ctrl.labels-toggle,
.mapboxgl-ctrl-group .mapboxgl-ctrl.theme-selector,
.mapboxgl-ctrl-group .mapboxgl-ctrl.toc,
.mapboxgl-ctrl-group .mapboxgl-ctrl.download {
    margin: 5px 10px;
}

.mapboxgl-ctrl-group .mapboxgl-ctrl.legend .legend-banner {
    padding: 6px 10px 6px 10px;
    border-radius: 4px 4px 0px 0px;
	background: #26374a;
	color: white;
    margin: 0;
    font: 13px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif;
    font-weight: bold;
}

.mapboxgl-ctrl-group .mapboxgl-ctrl.legend .legend-subtitle {
    font-size: 0.85em;
    font-weight: normal;
    font-style: italic;
}

.mapboxgl-ctrl-group .mapboxgl-ctrl {
	float: none;
}

.mapboxgl-ctrl-group .mapboxgl-ctrl.maps-menu select, 
.mapboxgl-ctrl-group .mapboxgl-ctrl.theme-selector select, 
.mapboxgl-ctrl-group .mapboxgl-ctrl.theme-selector input {
	max-width: 100%;
    width: 100%;
}

/* Collapsable Group Control */
details.mapboxgl-ctrl-collapsable-group {
    border: 0px;
    padding-bottom: 5px;
}

details.mapboxgl-ctrl-collapsable-group:focus {
    box-shadow: none !important;
}

details.mapboxgl-ctrl-collapsable-group summary {
    border: 0px;
    border-radius: 0;
    color: #000000;
    padding-bottom: 0px;
}

details.mapboxgl-ctrl-collapsable-group summary:hover {
    background-color: transparent;
    background: #ffffff; 
    color: #000000;
    text-decoration: none;
    box-shadow: none !important;
}

/* Legend Control */
.legend .legend-item {
    display: -ms-flexbox;
    display: flex;
    align-items: flex-start;
}

.legend .legend-item svg {
	border: solid thin silver;
    min-width: 15px;
    max-width: 15px;
}

.legend .legend-item .legend-icon {
	width : 15px;
	height : 15px;
	margin-right : 5px;
    top: -2px;
}

.legend .legend-item label {
	margin-left: 6px;
}

.legend .legend-item > * {
    display: inline-block;
    vertical-align: middle;
    margin: 1px;
	font-weight: normal;
}

.legend .legend-item .legend-heading {
	display: block;
	font-weight: bold;
	margin-left: -9px;
}

.legend .legend-container > * {
	margin-left: 8px;
}

.legend .legend-tickbox {
	margin-right: 6px;
	cursor: pointer;
}

/* TOC Control */
.toc .toc-item label {
    display: inline;
}

.toc .toc-item > * {
    display: inline-block;
    vertical-align: middle;
    margin: 1px;
	font-weight: normal;
}

.toc .toc-container {
	margin-top: 5px;
}

.toc .toc-container > * {
	margin-left: 8px;
	display: block;	
	cursor: pointer;
}

/* Opacity Slider Control */
.opacity .opacity-slider {
	text-align: center;
}

.opacity input {
	width: 90%;
	cursor: pointer;
}

.opacity .control-label {
	width: 100%;
}

/* Theme Selector Control */
.theme-selector #theme-control-popup {
    border: 1px solid #cccccc;
    border-radius: 32px;
    font-weight: bolder;
    font-size: 12px;
    width: 15px;
    height: 15px;
    float: right;
    text-align: center;
    cursor: pointer;
    margin-bottom: 2px;
    background-color: #3575fe;
    color: white;
    line-height: 15px;
}

.theme-selector .themes-menu-container {
    margin-top: 5px;
}

/* Labels Toggle Control */
.labels-toggle .labels-toggle-label {
    margin-right: 5px;
}

/*  Bookmarks Lists, Maps Lists */
.bookmarks .bookmarks-header-container > *,
.maps .maps-header-container > * {
	display: inline-block;
	vertical-align: middle;
}

.bookmarks .bookmarks-header,
.maps .maps-header {
    margin: 0;
	font-size: 18px;
    padding-right: 30px;
}

.bookmarks .bookmarks-header-icon,
.maps .maps-header-icon {
	width: 24px;
    height: 24px;
    padding: 4px;
	margin-right: 10px;
}

.bookmarks .bookmarks-list,
.maps .maps-list {
    list-style: none;
    padding: 0;
    border: dotted 1px silver;
}

.bookmarks .bookmarks-list .bookmarks-list-item,
.maps .maps-list .maps-list-item {
	cursor: pointer;
    font-size: 1.1em;
    padding: 4px;
}

.bookmarks .bookmarks-list .bookmarks-list-item:focus,
.maps .maps-list .maps-list-item:focus {
	background-color: rgba(70,137,194,1);
	color: #fff;
	font-weight: bold;
}

.bookmarks .bookmarks-list .bookmarks-list-item:nth-child(odd),
.maps .maps-list .maps-list-item:nth-child(odd) {
	background-color: #ffffff;
}

.bookmarks .bookmarks-list .bookmarks-list-item:nth-child(even),
.maps .maps-list .maps-list-item:nth-child(even) {
	background-color: #efefef;
}

.bookmarks .bookmarks-list .bookmarks-list-item:hover,
.maps .maps-list .maps-list-item:hover { 
	background-color: #edf3ff;
}

.bookmarks .bookmarks-description,
.maps .maps-description {
	margin: 0px 10px 0px 10px;
}

/*
-------------------------------------------------------------------------------
search.css style rules
-------------------------------------------------------------------------------
*/
.search {
	margin-top: 10px;
	margin-bottom: 10px;
}

.search-label {
	margin: 0px;
}

.search-control {
    overflow: visible;
    transform: none;
}

.search-control, 
.search-control .typeahead .input {
    height: 30px;
}

.search-control .typeahead {
    position: absolute;
}

.typeahead.collapsed ul{
	display: none;
}

.typeahead:not(.collapsed) ul { 
    border: solid thin silver;
}

.typeahead.collapsed .input {
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
}

.typeahead .input {
	border: solid thin silver;
	padding: 0px 8px;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
}

.typeahead .input,
.typeahead ul,
.typeahead li {
	width: 350px;
	cursor: text;
}

.search-control .typeahead li {
	padding: 3px 8px;
}

.search-control .typeahead li:not(:first-child) {
	border-top: solid thin rgba(0, 0, 0, 0.1);
}

.bookmarks .bookmarks-list .bookmarks-list-item:focus,
.maps .maps-list .maps-list-item:focus,
.search-control .typeahead li:hover,
.search-control .typeahead li.active {
	background-color: rgba(70,137,194,1);
	color: #fff;
	font-weight: bold;
}

.search-control .typeahead ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
    background-color: white;
    width: 100%;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    position: absolute;
    z-index: 5000;
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 400px;
}

/* 
-------------------------------------------------------------------------------
table.css style rules 
-------------------------------------------------------------------------------
*/
.table-widget table {
	background: white;
    border-collapse: collapse;
}

.table-widget summary {
	cursor: initial;
    margin-bottom: 8px;
}

.table-widget summary:hover {
	background: initial;
}

.table-widget table tr {
	border-bottom: solid thin silver;
}

.table-widget table tr:nth-child(even) {
    background: #f5f4f4;
}

.table-widget table thead {
	background: #26374a;
    color: white;
}

.table-widget table tbody tr td:not(:last-child) {
	border-right: solid thin silver;
}

.table-widget table thead tr th:not(:last-child) {
	border-right: solid thin white;
}

.table-widget table td,
.table-widget table th {
    padding: 5px 4px;
	font-weight: normal;
}

.table-widget table .numeric {
	text-align: right;
}

.table-widget table th {
	text-align: left;
}

.table-widget button {
	width: 32px;
	height: 32px;
	background: #26374a;
	border: none;
    border-radius: 4px;
}

.table-widget button img {
    width: 20px;
    height: 20px;
}

.table-widget button:disabled {
	background: SlateGrey;
}

.table-widget button img,
.table-widget .navigation > * {
	vertical-align: middle;
}

.table-widget .navigation  {
	margin-top: 10px;
    text-align: right;
}

.table-widget .current {
  color: black;
  border-radius: 4px;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
  font-size: 15px;
  margin: 5px;
  margin-right: 10px;
}

.table-widget .table-message {
  cursor: auto;
  text-decoration: none;
  color: rgb(51,51,51);
}

/* 
-------------------------------------------------------------------------------
popup.css style rules
-------------------------------------------------------------------------------
*/
.popup {
	z-index: 5000;
	background-color: rgba(20,30,40,0.65);
}

.modal.popup.absolute {
    width: 100%;
    height: 100%;
    position: absolute;
}

.modal.popup.fixed {
	display: block;
	position: fixed;
    left: 0px;
    top: 0px;
    bottom: 0px;
    right: 0px; 
}

.popup .popup-container {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    background-color: #fff;
    border-radius: 6px;
    box-shadow: -5px 5px 15px rgba(1, 1, 1, 0.5);
    max-width: 400px;
    max-height: 500px;
    display: flex;	
    flex-direction: column;
}

.popup .popup-body {
    overflow-y: auto;
    padding: 10px;
}

.popup button.close {
    font-size: 28px;
    font-weight: bold;
    border: none;
    position: absolute;
    right: 20px;
    line-height: 30px;
    top: 4px;
    z-index: 1;
    background: white;
    border-radius: 30px;
    padding: 0px;
    color: #2a2a2b;
    opacity: 0.7;
	width : 30px;
	height : 30px;
}

.popup p.warning  {
	color: #c00d0d;
	font-style : italic;
}

.popup .wip-container {
	display: table;
}

.popup .wip-container > * {
	display: table-cell;
    vertical-align: middle;
}

.popup .wip-container img {
    margin-right: 8px;
	width: 60px;
	height: 60px;
}

.popup .continue-container {
	margin-top: 8px;
}

.popup .continue-container,
.popup .logo-container {
    text-align: center;
}

.popup .logo {
    width: 250px;
}

.popup h1 {
    font-size: 18px;
    border-bottom: none;
    margin-top: 10px;
}

.popup hr {
	margin : 0px;
}

.popup button.continue {
	background-color: #bae2ed;
    font-weight: bold;
    color: #36494f;
    border: none;
    padding: 5px 10px 5px 10px;
    border-radius: 6px;
    box-shadow: -2px 2px 3px rgba(1, 1, 1, 0.5);
}

.popup.maps .popup-container {	
    max-height: 280px;
    min-height: 250px;
}

.popup-bookmarks .popup-container {
    max-width: 600px;
}

.popup-maps,
.popup-bookmarks  {
	display: block;
}

/* Mapbox popup */
.mapboxgl-popup {
    max-width: 325px !important;
	z-index: 1;
}

.mapboxgl-popup ul.popup-inner {
	list-style-type: none;
	margin: 0;
	padding: 0;
	margin-top: 10px;
}

.mapboxgl-popup ul.popup-inner li label {
	font-weight: 200;
	margin: 0;
}

.mapboxgl-popup-content {
	box-shadow: 0.5px 0.5px 1px 1px rgba(0, 0, 0, 0.2) !important;
    -moz-box-shadow: 0.5px 0.5px 1px 1px rgba(0, 0, 0, 0.2) !important;
    -webkit-box-shadow: 0.5px 0.5px 1px 1px rgba(0, 0, 0, 0.2) !important;
}
