/*** GENERAL ***/
html {
  overflow-y: scroll; 
}

body {    
	background: #ffffff;
}

#content-container {
	display: flex;
    flex-direction: column;
    height: 100vh;
}

nav, footer {
    flex-shrink: 0;
    cursor: default;
    user-select: none;
}

#main {
    flex: 1 0 auto; /* Use 1 0 auto instead of just 1 for backwards compatibility with other browsers */
}

img {
	user-select: none;
    -webkit-user-drag: none;
}

/* Header */
h1, h2, h3, h4, h5, h6 {
	font-family: "Trebuchet MS", Helvetica, sans-serif;
	font-weight: bold;
}

h1, .h1 {
    margin-bottom: 0;
}

h6 {
	margin-top: 0.5rem;
}

/* Text */
p {
	font-size: 0.78rem;
	margin-bottom: 0.3rem;
}

p.footnotes {
    color: #222;
    font-size: 0.65rem;
    line-height: 1.3;
}

label {
	font-size: 0.75rem;
}

[type='checkbox'] + label[for], [type='radio'] + label[for] {
    cursor: pointer;
    user-select: none;
    padding-bottom: 0.2rem;
}

span.page-title {
	font-variant-caps: small-caps;
    cursor: default;
    user-select: none;
}

span.pre {
	font-family: monospace;
    font-size: 0.96rem;
}

pre {
	font-size: small;
}

code {
    padding: 0.12rem 0.3125rem 0.1rem;
}

/* Lists */
ul.small {
    font-size: 0.78em;
    list-style-type: square;
    line-height: inherit;
}

ol.footnotes {
    margin: 0.4rem 0;
    color: #222;
    font-size: 0.65rem;
    line-height: 1.3;
    text-indent: -0.8rem;
    padding-left: 0.8rem;
    counter-reset: list;
}

ol.budget-profile {
    width: 56.5rem;
    margin: 0 auto 1.15rem;
}

ol.footnotes > li {
  list-style: none;
}
ol.footnotes > li:before {
  content: counter(list, decimal) ") ";
  counter-increment: list;
}

/* Hyperlinks */
a:hover, a:focus {
    color: #002a46;
}

/* Tooltips */
.has-tip {
    display: initial;
    font-weight: initial;
}
.has-tip:hover {
    color: #266086;
}
.tooltip {
    max-width: 25rem;
    padding: 0.2rem 0.3rem;
    font-size: 0.65rem;
    border-radius: 2px;
    text-align: justify;
}

/* Labels */
.label {
	padding: 0.26rem 0.5rem;
    font-size: 0.6875rem;
    user-select: none;
}
.label.alert {
  background-color: #c60f13;
  color: #FFFFFF; }
.label.warning {
  background-color: #f08a24;
  color: #FFFFFF; }
.label.success {
  background-color: #5da423;
  color: #FFFFFF; }
.label.secondary {
  background-color: #e9e9e9;
  color: #333333; }
.label.info {
  background-color: #a0d3e8;
  color: #333333; }
  
/* Message Callout */
.callout.message {
	padding: 0.3rem;
    border-radius: 3px;
    cursor: default;
    user-select: none;
}

.callout.message.success {
	background-color: #5da423;
    border-color: #508d1e;
    color: #FFFFFF;
}

.callout.message.warning {
    background-color: #f08a24;
    border-color: #de770f;
    color: #FFFFFF;
}

.callout.message.alert {
    background-color: #c60f13;
    border-color: #aa0d10;
    color: #FFFFFF; 
}

.callout.message.secondary {
    background-color: #e9e9e9;
    border-color: #c8c8c8;
    color: #4f4f4f; 
}

.callout.message.warning {
    background-color: #f08a24;
    border-color: #de770f;
    color: #FFFFFF; 
}

.callout.message.info {
    background-color: #a0d3e8;
    border-color: #74bfdd;
    color: #4f4f4f; 
}

.callout.message p {
	margin-bottom: 0;
    margin-left: 0.2rem;
}

.callout.message .close-button {
	color: #333333;
    opacity: 0.3;
	right: 0.66rem;
    top: 0.1em;
    font-size: 1.5em;
    line-height: 1;
}

.callout.message .close-button:hover {
    opacity: 0.5;
}

/** TABLES **/
table.small {
    font-size: 0.7rem;
}

table thead th, table thead td, table tfoot th, table tfoot td {
    padding: 0.35rem 0.625rem 0.35rem;
}

table tbody th, table tbody td {
    padding: 0.35rem 0.625rem 0.35rem;
}

table th.no-wrap, table td.no-wrap {
    white-space: nowrap;
}

table th.center, table td.center {
    text-align:center;
}

table th.right, table td.right {
    text-align:right;
}

table tbody tr:nth-child(even) {
    background-color: #f9f9f9;
}

table.hover tbody tr:hover {
    background-color: #f5f5f5; 
}

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
    background-color: #f5f5f5; 
}

/* Budget Profile Table */

table.budget-profile {
	width: 57rem;
	margin: 0 auto 0.5rem;
}

table.budget-profile thead th, table.budget-profile thead td, 
table.budget-profile tfoot th, table.budget-profile tfoot td {
    padding: 0.25rem 0.625rem;
    background-color: #1f1f1f;
    color: white;
    font-size: 0.75rem;
    border: solid white 1px;
    cursor: default;
    user-select: none;
}

table.budget-profile thead, 
table.budget-profile tbody, 
table.budget-profile tfoot {
    border: none;
}

table.budget-profile tbody th, table.budget-profile tbody td {
    padding: 0.15rem 0.625rem;
    border: solid white 1px;
}

table.budget-profile tbody tr.bp-line td {
    font-size: 0.68rem;
}

table.budget-profile tbody td.null {
    color: #cccccc;
}

table.budget-profile tbody tr.bp-h1 {
    font-size: 0.78rem;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-bottom: solid 2px #e8e8e8;
    background: none;
    cursor: default;
    user-select: none;
}

table.budget-profile tbody tr.bp-h1:not(:first-child) td {
    padding-top: 1rem;
}

table.budget-profile tbody tr.bp-h1:first-child td {
    padding-top: 0.75rem;
}

table.budget-profile tbody tr.bp-h2 {
    font-size: 0.78rem;
    font-variant-caps: small-caps;
    border-bottom: solid 2px #f5f5f5;
    background: none;
    cursor: default;
    user-select: none;
}

table.budget-profile tbody tr.bp-h2 td {
    padding-top: 0.4rem;
}

table.budget-profile tbody tr.bp-sum {
    font-size: 0.7rem;
    color: black;
    background: none;
    border-top: solid 2px #f5f5f5;
    border-bottom: solid 2px #f5f5f5;
}

table.budget-profile tbody tr.bp-b2 {
    font-size: 0.7rem;
    font-weight: bold;
    background-color: #f3f3f3;
    border-bottom: solid 2px #e8e8e8;
}

table.budget-profile tbody tr.bp-b1 {
    font-size: 0.71rem;
    font-weight: bold;
    text-transform: uppercase;
    background-color: #ececec;
    border-bottom: solid 2px #d8d8d8;
}

table.budget-profile tbody tr.bp-sum td,
table.budget-profile tbody tr.bp-b2 td,
table.budget-profile tbody tr.bp-b1 td {
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
}

table.budget-profile.hover:not(.unstriped) tr:nth-of-type(odd):hover {
    background-color: #f5f5f5;
}

table.budget-profile tbody tr.hide {
    display: none !important;
}

table.budget-profile tbody td span.balance-id {
    text-transform: uppercase;
}

/*** MODALS ***/
body.is-reveal-open {
    overflow: visible;
}

.reveal-overlay {
    overflow-y: hidden;
}

.thesis.reveal {
	max-width: 40rem;
}

/* disabled */
.thesis.reveal .disabled {
	opacity: 0.25;
    filter: grayscale(100%);
    cursor: not-allowed;
}

/*** TOP BAR ***/
.sticky.is-stuck {
    z-index: 1000;
}
.top-bar, .top-bar ul {
    background: none;
}

.top-bar {
    background: #f9f9f9;
	background: -webkit-linear-gradient(rgba(255, 255, 255, 0.95) 33%, rgba(236, 236, 236, 0.95));/* For Safari 5.1 to 6.0 */
    background: -o-linear-gradientrgba(255, 255, 255, 0.95) 33%, rgba(236, 236, 236, 0.95));/* For Opera 11.1 to 12.0 */
    background: -moz-linear-gradient(rgba(255, 255, 255, 0.95) 33%, rgba(236, 236, 236, 0.95));/* For Firefox 3.6 to 15 */
    background: linear-gradient(rgba(255, 255, 255, 0.95) 33%, rgba(236, 236, 236, 0.95));/* Standard syntax */
	border-bottom: 1px solid lightgrey;
    transition: background-color 1000ms linear;
	box-shadow: 0 0 5px 0px rgba(15, 15, 15, 0.2), inset 0 1px 1px 0px rgba(10, 10, 10, 0.1);
}

.top-bar-admin {
	box-shadow: 0 0 5px 0px rgba(15, 15, 15, 0.2), inset 0 1px 1px 0px rgba(10, 10, 10, 0.6);
}

.top-bar ul {
	width: 75rem;
    margin: 0 auto;
}

.top-bar ul li:not(.menu-text) {
	margin: 0.4rem 0 0 0;
}

.dropdown.menu a {
    padding: 0;
    line-height: 1.6rem;
    margin-right: 1rem;
    margin-left: 1rem;
}

.menu .menu-text {
    padding: 0 0.4rem 0 0;
}

.menu .menu-text a {
    margin: 0;
}

.menu-hover-lines {
  text-align: center;
  text-transform: uppercase;
  font-weight: 500;
  letter-spacing: 1px;
  transition: all 0.35s ease-in-out;
}

.menu-hover-lines li a {
  color: rgba(10, 10, 10, 0.5);
  position: relative;
  margin-left: 0rem;
}

.menu-hover-lines li:first-child a {
  margin: 0 1rem;
  background: 0;
}

.menu-hover-lines li.active > a {
  background-color: transparent;
}

.menu-hover-lines a:before,
.menu-hover-lines a::after {
  height: 3px;
  position: absolute;
  content: '';
  transition: all 0.35s ease-in-out;
  background-color: #70a0c3;
  width: 0;
}

.menu-hover-lines a::before {
  top: 0;
  left: 0;
}

.menu-hover-lines li:first-child a::before {
  /* top: -0.3rem; */
  width: 0%;
}

.menu-hover-lines a::after,
.dropdown.menu.vertical > li > a::after {
  bottom: 0;
  right: 0;
}

.menu-hover-lines li:first-child a::after,
.dropdown.menu.vertical > li:first-child > a::after {
  /* bottom: -0.3rem; */
  width: 0%;
}

.menu-hover-lines a:hover,
.menu-hover-lines li.active > a {
  color: #0a0a0a;
  transition: all 0.35s ease-in-out;
  background: white;
}

.menu-hover-lines a:hover::before,
.menu-hover-lines .active a::before,
.menu-hover-lines a:hover::after,
.menu-hover-lines .active a::after {
  width: 100%;
}

/** Mobile Title Bar **/
.title-bar {
	background: #444;
	box-shadow: 0 0 5px 0px rgba(15, 15, 15, 0.4);
}

/*** HERO ***/
.marketing-site-hero {
  background: url("../img/hero.jpg") top right no-repeat;
  height: 100vh;
  background-size: cover;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}

.marketing-site-hero {
    background-position: center bottom;
	opacity: 0;
	animation: fadein 0.5s ease-out 0.2s;
	animation-fill-mode: forwards;
}

.marketing-site-hero-content {
  max-width: 75rem;
  margin: 0 auto;
  padding-left: 5%;
  padding-right: 5%;
}

.marketing-site-hero-content h1 {
    margin-bottom: 0.5rem;
    font-size: 2.1rem;    
    text-shadow: 0 0 5px white, 0 0 20px white;
}

.marketing-site-hero-text {
    padding: 0.5rem 1rem 0.9rem;
    background: rgba(255, 255, 255, 0.95);
	text-align: center;
	border-top: #70a0c3 solid 0.2rem;
	border-bottom: #70a0c3 solid 0.2rem;
	opacity: 0;
	animation: fadein 0.5s ease-out 0.5s;
	animation-fill-mode: forwards;
}

@keyframes fadein {
  from { opacity: 0}
  to   { opacity: 1}
}

.marketing-site-hero-text .button.round {
	font-weight: bold;
	border-radius: 5000px;
	text-transform: uppercase;
	margin-top: 0.4rem;
	margin-bottom: 0;
	background-color: rgba(255, 255, 255, 0.33);
}

.button.round:hover, .button.round:focus {
    background-color: rgba(1, 67, 111, 0.75);
    color: white;
}

@media screen and (min-width: 40em) {
  .marketing-site-hero-content {
    padding-left: 41%;
  }
}

/*** BREADCRUMBS ***/
.breadcrumbs {
    margin: 0.5rem 0 0 0;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: rgba(236, 236, 236, 1);
    border-radius: 0;
    padding: 0.2rem 0.4rem;
}

/** FORM ELEMENTS **/
[type='text'], [type='file'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], 
[type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], 
[type='url'], [type='color'], textarea, select {
	font-size: 0.78rem;
	height: 1.7rem;
	line-height: initial;
}

[type='text'].inline, textarea {
	width: initial;
    display: inline;
    margin-left: 0.3rem;
    margin-bottom: 0.3rem;
    vertical-align: middle;
}

[type='text'].lone, textarea {
    margin-left: 0;
}

textarea::-webkit-input-placeholder,
[type='text'].inline::-webkit-input-placeholder {
    font-size: 11px;
    user-select: none;
    text-transform:uppercase;
}

textarea::-webkit-input-placeholder,
[type='text'].inline::-moz-placeholder {
    font-size: 11px;
    user-select: none;
    text-transform:uppercase;
}

textarea::-webkit-input-placeholder,
[type='text'].inline:-ms-input-placeholder {
    font-size: 11px;
    user-select: none;
    text-transform:uppercase;
}

select {
    padding: 0.1rem 1.4rem 0rem 0.5rem;
	background-position-y: 45%;
}

@media screen and (min-width: 40em) {
	div.header-form {
		text-align: right;
		margin-top: 2.5rem;
	}
}

label.inline {
    display: inline;
}

label.hide,
option.hide {
    display: none !important;
}

div.header-form label {
    display: inline;
}

div.header-form select {
	width: 60%;
	margin-bottom: 0.5rem;
}

[type='checkbox'] + label, [type='radio'] + label {
	vertical-align: middle;
}

[type='file'].flat, [type='checkbox'].flat, [type='radio'].flat {
    margin-bottom: 0;
}

.input-group-label {
	font-size: 0.75rem;
}

/* Buttons */
.button {
	font-size: 0.78rem;
    user-select: none;
}

.button.alert {
    transition: all 0.2s ease-out;
    background-color: #cc4b37;
    color: #fefefe;
}

.button-group.secondary .selected.button {
    background-color: #404040;
    color: #ffffff;
}

/** STAT LIST **/

.stats-list {
  list-style-type: none;
  margin: 0;
  padding: 0;
  text-align: center;
  margin-bottom: 1rem;
  cursor: default;
  user-select: none;
}

.stats-list > li {
  font-family: "Trebuchet MS", Helvetica, sans-serif;
  color: #4a5f6d;
  padding-top: 0.8rem;
  padding-bottom: 0.6rem;
  text-align: center;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.4rem;
  border-bottom: 1px solid #cacaca;
}

.stats-list > li:last-child {
	border: none;
	margin-right: 0;
	padding-right: 0;
}

.stats-list > li .stats-list-label {
    display: block;
    font-size: 0.75rem;
    font-weight: bold;
    color: #6e767b;
}

@media screen and (min-width: 75rem) {
	.stats-list {
		clear: left;
	}
	.stats-list > li {
		border-bottom: 0;
		border-right: 1px solid #cacaca;
		display: inline-block;
		margin-right: 0.9rem;
		padding-right: 0.9rem;
	}
}

/** inline BTT **/
a.inline-btt {
    float: right;
    font-size: 0.7rem;
    margin-top: 0.3rem;
    user-select: none;
}

/** YASGUI **/
#yasgui-container {
	min-width: 100%;
	min-height: 341px;
	background-color: #efefef;
	background-repeat: no-repeat;
	background-position: center;
}

.yasgui {
	font-size: 12px;
}

.yasgui ul {
    margin-left: 0;
}

.yasgui .yasr {
    font-size: 12px;
}

.yasgui .controlbar,
.yasgui .yasr .yasr_btnGroup .yasr_btn.select_gchart,
.yasgui .yasr .yasr_btnGroup .yasr_btn.select_leaflet,
.yasgui .yasr .yasr_btnGroup .yasr_btn.select_pivot,
.yasgui .yasr .yasr_btnGroup .yasr_btn.hide {
	display:none !important;
}

.yasgui .wrapper {
    /* margin-top: -1px; */
}

.yasqe_queryButton .svgImg svg {
    fill: #1779ba;
    transition: fill 0.25s ease-out, color 0.25s ease-out;
}
.yasqe_queryButton .svgImg svg:hover {
    fill: #14679e;
}

.yasgui .yasr .yasr_btn {
	border-radius: 0;
}

.yasgui .nav-tabs {
    display: none;
}

.yasgui .nav-tabs li .close {
	margin-top: -2px;
}

.yasgui .nav-tabs li a[role=addTab] {
    margin-left: 7px;
}

.yasgui .yasr .dataTables_wrapper {
    margin-top: -33px;
}

.yasgui .dataTables_wrapper .dataTables_info {
    font-size: 11px;
}

.yasgui .yasr .dtTopHeader .dataTables_info {
    margin-top: 47px;
}

.yasgui .yasr .JCLRgrips {
    top: 5.75em;
    bottom: -5.75em;
}

.yasgui .yasr table.dataTable td:first-child {
	padding-left: 0.8em !important;
    padding-right: 0.2em !important;
}

.yasgui .yasr .yasr_downloadIcon.yasr_btn.btn_icon {
    padding-top: 5px;
    padding-bottom: 5px;
}

.yasgui .yasr .btn_fullscreen.yasr_btn.btn_icon {
    padding-top: 5px;
}

.yasgui label {
	font-size: 11px;
}

.yasgui sup {
    top: -.1em;
    color: #666;
    left: 0.2em;
}

.yasgui .yasr a {
    white-space: nowrap;
}

/** LOG **/
div.log {
    display: block;
    font-family: monospace;
    white-space: pre;
    overflow-x: scroll;
    overflow-y: scroll;
    height: 79vh;
    font-size: x-small;
    line-height: 1.2;
    border: 1px solid lightgray;
    padding: 0.2rem;
}

div.log span.error {
	background-color: #ffcccc;
}

div.log span.warn {
    background-color: #fff5b5;
}

/*** FOOTER ***/
footer {
	margin-top: 0.5rem;
	padding: 0.3rem 0;
	font-size: 0.7em;
	color: #cccccc;
	background-color: #444;
	border-top: 1px solid #888;
    box-shadow: 0 0 5px 0px rgba(15, 15, 15, 0.4), inset 0 -1px 2px 0px rgb(40, 40, 40);
}

footer a {
	color: white;
}

footer a:focus, 
footer a:hover {
	color: #efefef;
    text-decoration: underline;
}

footer a:active {
    color: #444444;
    background-color: white;
    padding: 0.1rem 0;
    text-decoration: underline;
}