/****************************************
/* Universal Styles */
* {
    font-family: century-gothic, sans-serif;
}
h1, #local-lf {
    color: #115072;
    font-weight: bold;
    letter-spacing: normal;
}
#local-lf {
    font-size: calc(1.375rem + 1.5vw);
}
h1 span, #local-lf span {
    color: #217991;
    font-size: 75%;
}
h1 span::before, #local-lf span::before {
    content: "❱❱ ";
    color: #bf5027;
}
h2, h3 {
    color: white;
    letter-spacing: 0.06em;
    font-size: 1.4rem;
}
p {
    margin-top: 0;
    margin-bottom: 0;
}

@media (min-width: 993px) {
    #mainContainer {
        padding-left: 150px;
        padding-right: 150px;
        margin: 0 auto;
        max-width: 1400px;
    }
}

.display thead {
    font-size: 12px;
}
.display tbody {
    font-size: 12px;
}
#header {
    top: 0;
    z-index: 1;
    background: #092940;
    transition: all 0.5s;
    z-index: 997;
    height: 70px;
}
#header.header-scrolled {
    box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.1);
}

#header .logo {
    font-size: 30px;
    margin: 0;
    padding: 0;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

#header .logo a {
    color: #fff;
}

#header .logo img {
    max-height: 40px;
}

.hover-link:hover {
    color: #217991 !important;
    transition: color 0.3s ease;
}

#footer {
    background: #092940;
    color: #fff;
    font-size: 14px;
    text-align: center;
    padding: 10px 0;
}

#footer a {
    color: #fff
}

@media (max-width: 767px) {
    .highcharts-exporting-group {
        display: none !important;
    }
}
.source {
    font-size: 12px;
    color: #595959;
    font-style: italic;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
}
#unemployement-rate-comp .source,
#nc-unemployment-trend .source {
    color: white;
    border-top-color: rgba(255, 255, 255, 0.3);
}


/****************************************
/* CONTAINER 1 */
#container1 > .row {
    margin-left: calc(var(--bs-gutter-x) * -1);
    margin-right: calc(var(--bs-gutter-x) * -1);
}
#unemployement-rate-comp {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: #115072;
    color: white;
    border-radius: 20px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    padding-bottom: 0.5rem !important;
}
#unemployement-rate-comp h4 {
    color: white;
}
@media (max-width: 992px) {
    #unemployement-rate-comp-col {
        margin-bottom: 20px;
    }

    #nc-unemployment-trend-col {
        max-height: 450px
    }
}
#unemployment-map .highcharts-legend text {
    fill: #FFFFFF !important;
}
#nc-unemployment-trend {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    height: 100%;
    background-color: #217991;
    color: white;
    border-radius: 20px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    padding-bottom: 0.5rem !important;
}
#nc-unemployment-chart {
    border-radius: 20px;
    
}


/****************************************
/* CONTAINER 2 */
#key-indicators-container {
    background-color: #dddcdc;
    border-radius: 20px;
    border-top: 4px solid #7a7832;
    padding: 20px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
#key-indicators-container > .row {
    margin-right: 0;
    margin-left: 0;
}
#key-indicators-container h2 {
    color: #bf5027;
}
#boxes {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.infobox {
    flex: 1 1 calc(20% - 16px); /* 20% width minus the gap */
    padding: 20px;
    background-color: white;
    border: 1px solid #115072;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

@media (max-width: 991px) {
    .infobox {
        flex: 1 1 calc(33.333% - 14px); /* 3 boxes per row */
    }
}

.boxHeader {
    text-align: center;
    font-size: 16px;
    color: #115072;
    font-weight: bold;
}


.stat {
    font-size: 28px;
    text-align: center;
    color: #115072;
}
@media (max-width: 1210px) {
    .boxHeader {
        font-size: 14px;
    }
    .stat {
        font-size: 20px;
    }
    .boxFooter {
        font-size: 10px;
    }
}

@media (max-width: 767px) {
    .infobox {
        flex: 1 1 calc(50% - 10px); /* 2 boxes per row */
    }
    .boxHeader {
        font-size: 13px;
    }
}
.boxFooter {
    font-size: 12px;
    color: #115072;
    text-align: center;
}
.arrow-favorable { color: #236b42; }   /* 4.75:1 on #dddcdc */
.arrow-unfavorable { color: #a93226; } /* 5.00:1 on #dddcdc */
.arrow-neutral { color: #595959; }     /* 5.16:1 on #dddcdc */

/* Lighter overrides for dark backgrounds */
#unemployement-rate-comp .arrow-favorable { color: #66bb6a; }    /* 3.27:1 on #115072 */
#unemployement-rate-comp .arrow-unfavorable { color: #f0956e; }  /* 3.41:1 on #115072 */
#unemployement-rate-comp .arrow-neutral { color: #c8c8c8; }      /* 4.62:1 on #115072 */
.chart-icon-container {
    display: flex;
    justify-content: center;
}
.offcanvas-button {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Override Bootstrap's h-50 for offcanvas on medium screens and up */
@media (min-width: 768px) {
    .offcanvas.offcanvas-bottom {
        height: 75% !important;
    }
}

@media (max-width: 767.98px) {
    .offcanvas.offcanvas-bottom {
        height: 50% !important;
    }
}
.offcanvas-body {
    display: flex;
    justify-content: center;
    align-items: center;
}
.offcanvasChart {
    width: 100%;
    height: 100%;
    max-width: 1000px;
}
.offcanvas-title {
    margin: 0 auto;
    text-align: center;
    font-size: 16px;
    color: #115072;
    font-weight: bold;
}
.offcanvas-header .btn-close {
    margin: 0;
}
.offcanvas .source{
    margin-top: 0px;
    margin-bottom: 10px;
}


/****************************************
/* CONTAINER 3 */
#container3 {
    background-color: #f4eee7;
    border-radius: 20px;
    border-top: 4px solid #7a7832;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    padding-bottom: 0.5rem !important;
}
#container3 h2 {
    color: #bf5027;
}
#comp-subtitle {
    color: #115072;
}
#ces-jobs-chart-container {
    border-radius: 20px;
    border: 1px solid #217991;
    background-color: #dddcdc;
}
#ces-jobs-chart-container {
    color: #115072;
}
@media (max-width: 992px) {
    #ces-jobs-chart-container {
        margin-bottom: 20px;
    }
}
#industry-data-table-container {
    background-color: #217991;
    border-radius: 20px;
    border: 1px solid white;
    padding: 20px;
    color: white;
    height: 100%;
    display: flex;
    flex-direction: column;
}
#industry-data-table-container h3 {
    color: white;
    margin-bottom: 15px;
}
#industry-data-table {
    width: 100% !important;
    margin: 0 !important;
}


/****************************************
/* CONTAINER 4 */
#container4 {
    background-color:#ebebeb;
    border-radius: 20px;
    border-top: 4px solid #7a7832;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    padding-bottom: 0.5rem !important;
}

#container4 h3 {
    color: #bf5027;
}

#county-table-container,
#msa-table-container {
    background-color: #f4eee7;
    border: 1px solid #115072;
    border-radius: 20px;
    padding: 20px;
}

#county-data-table,
#msa-data-table {
    width: 100% !important;
    margin: 0 !important;
}

@media (max-width: 992px) {
    #county-map,
    #county-table-container-col {
        margin-bottom: 20px;
    }
}


/****************************************
/* Loading Overlay */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.95);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.loading-spinner {
    text-align: center;
}

.loading-spinner .spinner-border {
    width: 3rem;
    height: 3rem;
    border-width: 0.3rem;
    color: #217991;
}

.loading-spinner p {
    color: #115072;
    font-weight: 600;
    font-size: 1.2rem;
}
