/* Prevent mobile browsers from inflating font sizes */
html {
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

/* Prevent GridView from enlarging fonts on small viewports */
@media (max-width: 767px) {
    .table-responsive,
    .kv-grid-table,
    .table {
        font-size: 1rem !important;
    }
    
    .table td,
    .table th,
    .kv-grid-table td,
    .kv-grid-table th {
        font-size: 1rem !important;
    }
}

:root {
    --bg-color-one: #2d3038;
    --bg-color-two: #393b45;
    --base-font-color: #949ba2;
    --highlight-color: #ffffff;
    --panel-bg-color: #272a31;
    --text-shadow-color: #6c6e78
}

.checklist-q {
    text-align: left;
    width: 55%
}

.checklist-a {
    text-align: center
}

.danger {
    color: #db524b
}

.danger:hover {
    color: #fff;
    cursor: pointer
}

.danger:focus {
    color: #fff
}

.danger:active {
    color: #fff
}

.bar-head {
    width: 20%
}

.f-lg {
    font-size: 30px
}

.table-striped>tbody>tr:nth-of-type(odd) {
    background-color: rgba(136,137,143,.5)
}

.table-responsive {
    border: 0 solid #fff
}

.panel-header {
    margin-bottom: 0;
    box-shadow: 0 0 0 transparent
}

.panel .panel-body .p-b-none {
    padding-bottom: 0
}

.p-t-none {
    padding-top: 0
}

.p-lr-1 {
    padding-left: 1px;
    padding-right: 1px
}

.p-l-sm {
    padding-left: 10px
}

.p-tb-none {
    padding-top: 0;
    padding-bottom: 0
}

.p-destroy {
    padding: 0!important
}

.m-destroy {
    margin: 0!important
}

@media only screen and (min-device-width:320px) and (max-device-width:640px) and (-webkit-min-device-pixel-ratio:2) {
    .container-fluid {
        padding-right: 2px;
        padding-left: 2px;
        margin-right: auto;
        margin-left: auto
    }

    .table-responsive {
        overflow-x: scroll
    }

    .modem-status {
        font-size: 18px
    }
}

.f-bg,.ti-bg {
    color: var(--base-font-color);
    background-color: rgba(73,75,84,.25);
    border: 1px solid transparent;
    border-color: #f7af3e
}

.ti-bg {
    background-color: rgba(73,75,84,.2);
    border: 0 solid transparent;
    border-color: #616779
}

.hr-warning {
    border-top-color: #edb067
}

.fl-right {
    float: right
}

.nav>li>a:focus,.nav>li>a:hover {
    text-decoration: none;
    background-color: transparent!important
}

.step-nav>li {
    background-color: rgba(68,70,79,.5);
    border-radius: 5px
}

.step-nav>li>ul>li>button {
    border: 0 solid transparent;
    border-radius: 0;
    text-align: left;
    padding-left: 2.5em
}

body,html {
    height: 100%
}

.wrap {
    min-height: 100%;
    height: auto;
    margin: 0 auto -60px;
    padding: 0 0 60px
}

.wrap>.container {
    padding: 70px 15px 20px
}

.footer {
    height: 60px;
    background-color: #f5f5f5;
    border-top: 1px solid #ddd;
    padding-top: 20px
}

.jumbotron {
    text-align: center;
    background-color: transparent
}

.jumbotron .btn {
    font-size: 21px;
    padding: 14px 24px
}

.not-set {
    color: #c55;
    font-style: italic
}

a.asc:after,a.desc:after {
    position: relative;
    top: 1px;
    display: inline-block;
    font-family: "Glyphicons Halflings";
    font-style: normal;
    font-weight: 400;
    line-height: 1;
    padding-left: 5px
}

a.asc:after {
    content: ""
}

a.desc:after {
    content: ""
}

.sort-numerical a.asc:after {
    content: ""
}

.sort-numerical a.desc:after {
    content: ""
}

.sort-ordinal a.asc:after {
    content: ""
}

.sort-ordinal a.desc:after {
    content: ""
}

.grid-view th {
    white-space: nowrap
}

.hint-block {
    display: block;
    margin-top: 5px;
    color: #999
}

.error-summary {
    color: #a94442;
    background: #fdf7f7;
    border-left: 3px solid #eed3d7;
    padding: 10px 20px;
    margin: 0 0 15px
}

.nav li>form>button.logout {
    padding: 15px;
    border: 0
}

@media (max-width:767px) {
    .nav li>form>button.logout {
        display: block;
        text-align: left;
        width: 100%;
        padding: 10px 15px
    }
}

.nav>li>form>button.logout:focus,.nav>li>form>button.logout:hover {
    text-decoration: none
}

.nav>li>form>button.logout:focus {
    outline: 0
}

.table .table {
    background-color: transparent
}

.sortable {
    border: 4px solid green;
    cursor: move;
    background-color: var(--bg-color-one)
}

.select2-container .select2-selection--single .select2-selection__clear {
    position: absolute!important
}

.select2-container--krajee .select2-selection--single {
    padding-right: 37px!important
}

.operator {
    font-size: 18pt;
    width: 100%;
    text-align: center
}

.live-calculation {
    font-size: 16pt
}

.graph-frame {
    width: 100%;
    height: 250px;
    border: 0
}

.cbx-active {
    color: #fff!important
}

.tabs-x .nav-tabs>li.active>a,.tabs-x .nav-tabs>li.active>a:focus,.tabs-x .nav-tabs>li.active>a:hover {
    background-color: var(--panel-bg-color)!important
}

.tabs-x .tab-content,.tabs-x li a {
    background-color: var(--panel-bg-color)
}

.tabs-x li a {
    left: -2px;
    color: #e7ab64;
    font-weight: 700;
    top: 3px;
    font-family: "Open Sans"
}

.tabs-x.tabs-above>ul.nav-tabs li.active a {
    color: #e7ab64!important;
    font-weight: 700;
    border-top: 2px solid #e7ab64!important
}

.tabs-x .tab-content {
    box-shadow: 0 3px 4px 0 rgba(0,0,0,.5)
}

.tabs-x.tabs-left>.nav-tabs>.active>a,.tabs-x.tabs-left>.nav-tabs>li.active>a:focus,.tabs-x.tabs-left>.nav-tabs>li.active>a:hover {
    border-color: transparent!important
}

.tabs-x.tabs-left .nav-tabs,.tabs-x.tabs-left .tab-content {
    border-left: none;
    border-right: none
}

.graph-tabs .tabs-krajee.tabs-left .nav-tabs,.graph-tabs .tabs-krajee.tabs-right .nav-tabs {
    width: 250px
}

.graph-tabs .tabs-krajee.tabs-left .tab-content {
    margin-left: 250px;
    clear: right
}

body .navbar.navbar-default.navbar-fixed-top {
    background: #e7ab64
}

.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover,body .navbar.navbar-default.navbar-fixed-top .navbar-brand,body .navbar.navbar-default.navbar-fixed-top .navbar-brand:focus {
    background-color: #e7ab64
}

ul.nav.luna-nav li a.btn.btn-success,ul.nav.luna-nav li a.btn.btn-success:hover {
    background-color: #1bbf89;
    margin: .5em;
    font-size: 14px;
    font-weight: 700;
    color: #272a31
}

ul.nav.luna-nav li a.btn.btn-success:hover {
    background-color: #40d5a4!important
}

.tabbed-panel .title {
    font-size: 22px;
    color: #e7ab64!important;
    font-style: italic;
    line-height: 55px
}

.tabbed-panel .tabs-krajee.tabs-left .tab-content {
    clear: right
}

.tabbed-panel .tabs-krajee.tabs-left .tab-content:after {
    display: table;
    content: " ";
    clear: left
}

.tabs-x li ul.dropdown-menu {
    background-color: var(--bg-color-one)
}

.datepicker th {
    color: var(--base-font-color)
}

#report-header {
    width: auto!important
}

.select2-container--krajee .select2-selection {
    background-color: #fff!important;
    border: 1px solid #6c6e78!important;
    color: #fff!important
}

.select2-container--krajee .select2-selection__clear {
    color: #d9d7d7!important
}

/* Make multi-select 'Children' in user role/permission forms show multiple lines and scroll */
#children + .select2-container .select2-selection--multiple {
    min-height: 140px;
}
#children + .select2-container .select2-selection--multiple .select2-selection__rendered {
    max-height: 140px;
    overflow-y: auto;
    white-space: normal;
}

.select2-container--krajee .select2-selection--single .select2-selection__rendered {
    color: #bcbcbc!important
}

.kv-drp-dropdown .kv-clear {
    font-size: 16px!important;
    right: 25px;
    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif!important;
    top: 7px!important;
    color: #d9d7d7!important;
    opacity: .6!important
}

.kv-drp-container .kv-drp-dropdown {
    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075)!important;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075)!important;
    border-radius: 4px!important;
    font-size: 14px!important;
    outline: 0!important;
    background-color: #494b54!important;
    border: 1px solid #6c6e78!important
}

.daterangepicker .calendar-table th {
    color: #000
}

table td a {
    text-shadow: 1px 1px var(--text-shadow-color)
}

input.form-control {
    background-color: #fff!important
}

/* OAuth Microsoft icon using the 'live' sprite position */
.auth-icon.microsoft {
    background-position: 0 -272px;
}

/* ============================================ */
/* Falcon Theme Layout Fixes & Responsive Design */
/* ============================================ */

/* The navbar-vertical is position:fixed, so we need to make .content fill the container width
   accounting for its left margin (15.625rem = 250px set by Falcon theme).
   Using calc() to ensure content spans from its left margin to the container's right edge. */
.navbar-vertical.navbar-expand-xl + .content {
    width: calc(100% - 15.625rem) !important;
}

/* Also handle other navbar expand sizes */
.navbar-vertical.navbar-expand-lg + .content,
.navbar-vertical.navbar-expand-md + .content,
.navbar-vertical.navbar-expand-sm + .content,
.navbar-vertical.navbar-expand-xs + .content {
    width: calc(100% - 15.625rem) !important;
}

/* Handle collapsed navbar state (smaller margin) */
.navbar-vertical-collapsed .navbar-vertical.navbar-expand-xl + .content,
.navbar-vertical-collapsed .navbar-vertical.navbar-expand-lg + .content,
.navbar-vertical-collapsed .navbar-vertical.navbar-expand-md + .content,
.navbar-vertical-collapsed .navbar-vertical.navbar-expand-sm + .content,
.navbar-vertical-collapsed .navbar-vertical.navbar-expand-xs + .content {
    width: calc(100% - 3.125rem) !important;
}

/* On mobile/tablet (below XL breakpoint), sidebar is hidden/collapsed - use full width */
@media (max-width: 1199.98px) {
    /* Ensure navbar icons are fully visible by giving it enough width */
    .navbar-vertical {
        width: 56px !important;
        min-width: 56px !important;
    }
    
    /* Adjust content to account for collapsed navbar width */
    .navbar-vertical.navbar-expand-xl + .content,
    .navbar-vertical.navbar-expand-lg + .content,
    .navbar-vertical.navbar-expand-md + .content,
    .navbar-vertical.navbar-expand-sm + .content,
    .navbar-vertical.navbar-expand-xs + .content,
    .navbar-vertical-collapsed .navbar-vertical.navbar-expand-xl + .content,
    .navbar-vertical-collapsed .navbar-vertical.navbar-expand-lg + .content,
    .navbar-vertical-collapsed .navbar-vertical.navbar-expand-md + .content,
    .navbar-vertical-collapsed .navbar-vertical.navbar-expand-sm + .content,
    .navbar-vertical-collapsed .navbar-vertical.navbar-expand-xs + .content {
        width: calc(100% - 56px) !important;
        max-width: calc(100% - 56px) !important;
    }
    
    /* When sidebar is shown (toggled), overlay it on top of content */
    .navbar-vertical.navbar-expand-xl.show {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        z-index: 1050 !important;
        height: 100vh !important;
        width: 250px !important;
    }
}

/* Fix logo display when navbar is collapsed - use visibility to maintain spacing */
.navbar-vertical-collapsed .navbar-vertical .navbar-brand {
    visibility: hidden !important;
}

/* Show logo in top navbar when sidebar is collapsed */
.navbar-vertical-collapsed .navbar-top .navbar-brand {
    display: flex !important;
}

/* Ensure logos maintain proper size and positioning */
.navbar-brand img {
    width: auto !important;
    max-width: none !important;
}

/* Fortify! logo stays 37px */
.navbar-brand img:not(.national-logo) {
    height: 37px !important;
}

/* National logo is smaller and vertically centered */
.navbar-brand img.national-logo {
    height: 30px !important;
    vertical-align: middle !important;
    /* Add slight top/bottom margin to visually center with the taller Fortify! logo */
    margin-top: 3.5px !important;
    margin-bottom: 3.5px !important;
}

/* Ensure logo container in sidebar doesn't overflow and stays above top navbar */
.navbar-vertical .navbar-brand {
    overflow: visible !important;
    position: relative !important;
    z-index: 1050 !important;
}

.navbar-vertical .navbar-brand > div {
    overflow: visible !important;
    white-space: nowrap !important;
}

/* Make sure entire navbar-vertical stays above navbar-top */
.navbar-vertical {
    z-index: 1040 !important;
}

/* Keep navbar-top below sidebar */
.navbar-top {
    z-index: 1030 !important;
}

/* Ensure the navigation menu doesn't overlap the logos */
.navbar-vertical .navbar-collapse {
    margin-top: 0.5rem !important;
}

/* Add padding to the top of the navigation menu to prevent overlap */
.navbar-vertical-content {
    padding-top: 0.5rem !important;
}

/* Start Inspection - show button when expanded, link when collapsed */
.start-inspection-btn-expanded {
    display: inline-block !important;
}

.start-inspection-link-collapsed {
    display: none !important;
}

.navbar-vertical-collapsed .start-inspection-btn-expanded {
    display: none !important;
}

.navbar-vertical-collapsed .start-inspection-link-collapsed {
    display: block !important;
}

/* Make the icon green in collapsed state */
.navbar-vertical-collapsed .start-inspection-link-collapsed .nav-link-icon {
    color: var(--bs-success) !important;
}

/* Remove white background from footer */
.footer,
footer {
    background-color: transparent !important;
}

/* Paper-style wrapper for main content */
.content-paper {
    background-color: var(--falcon-card-bg);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 0.375rem;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

/* Override Falcon theme's hardcoded dark mode card background to use our custom color */
[data-bs-theme=dark] .card {
    background-color: var(--falcon-card-bg) !important;
}
[data-bs-theme=light] .card {
    background-color: var(--falcon-card-bg) !important;
}

/* Fix notification dropdown styling issues */
.dropdown-menu-notification .card.navbar-card-notification {
    background-color: transparent !important; /* Match dropdown background */
}

.dropdown-menu-notification .list-group-item {
    padding: 1rem 1.25rem !important; /* Better padding for notification items */
}

.dropdown-menu-notification .notification-body {
    padding: 0.5rem 0 !important; /* Additional padding for notification content */
}

/* Ensure dropdown caret background matches the dropdown menu */
.dropdown-caret-bg::after {
    background: var(--falcon-dropdown-bg) !important;
}

/* Style the navbar vertical toggle button with white circular background */
.navbar-vertical .toggle-icon-wrapper button.navbar-vertical-toggle,
.navbar-vertical button.navbar-toggler-humburger-icon.navbar-vertical-toggle,
button.navbar-toggler-humburger-icon.navbar-vertical-toggle {
    background-color: rgba(255, 255, 255, 0.15) !important;
    border-radius: 50% !important;
    width: 2.5rem !important;
    height: 2.5rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: none !important;
}

/* Override any hover states */
.navbar-vertical button.navbar-vertical-toggle:hover {
    background-color: rgba(255, 255, 255, 0.25) !important;
}



/* Position logos flush to the left */
.navbar-top .navbar-brand {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* Override the padding-left on navbar-top when collapsed to keep logos flush left */
.navbar-vertical-collapsed .navbar-vertical.navbar-expand-xl + .content .navbar-top {
    padding-left: 0 !important;
}

/* Ensure navbar-top spans full width of content area */
.navbar-top {
    width: 100% !important;
}

/* Extend navbar-top background all the way to the left edge when collapsed */
.navbar-vertical-collapsed .navbar-top {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* Make navbar-top extend edge-to-edge with full-width background */
.navbar-top {
    position: sticky !important;
    top: 0 !important;
    z-index: 1030 !important;
    background-color: transparent !important;
}

.navbar-top::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: -500px !important;
    right: -500px !important;
    bottom: 0 !important;
    background-color: var(--falcon-bg-navbar-glass) !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

/* Ensure navbar icons align to the right edge */
.navbar-nav-icons {
    margin-left: auto !important;
    margin-right: 0 !important; /* Override the equal margin that centers it */
    /* Add small padding so avatar doesn't touch the absolute edge */
    padding-right: 0.5rem !important;
}

/* ============================================ */
/* Responsive Layout Optimizations */
/* ============================================ */

/* Responsive card spacing optimization for desktop */
@media (min-width: 992px) {
    .card {
        margin-bottom: 1.5rem !important;
    }
    
    .card-header {
        padding: 1rem 1.5rem !important;
    }
    
    .card-body:not(.p-0) {
        padding: 1.5rem !important;
    }
}

/* Base content settings */
.content {
    max-width: none;
    width: 100%;
}

/* Optimize container-fluid for better spacing */
.content .container-fluid {
    max-width: 100%;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

/* On XL screens with sidebar visible, constrain content for optimal readability */
@media (min-width: 1200px) {
    .content .container-fluid {
        max-width: 1400px;
        margin: 0 auto;
    }
}

@media (min-width: 1600px) {
    .content .container-fluid {
        max-width: 1600px;
    }
}

@media (min-width: 1920px) {
    .content .container-fluid {
        max-width: 1800px;
    }
}

/* ============================================ */
/* Kartik GridView Customizations */
/* ============================================ */

/* Override Kartik GridView table grouping background color 
   Original color (#f0f1ff) is too bold, using partially transparent version instead */
td.kv-group-even {
    background-color: rgba(240, 241, 255, 0.2) !important;
}

td.kv-group-odd {
    background-color: rgba(240, 241, 255, 0.1) !important;
}