/* 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;
}

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

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

/* Legacy spacing utilities still referenced in a few views */
.p-lr-1 {
    padding-left: 1px;
    padding-right: 1px;
}

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

@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;
    }
}

body,
html {
    height: 100%;
}

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

/* Yii GridView sort indicators (Bootstrap Icons; replaces Glyphicons Halflings) */
a.asc:after,
a.desc:after {
    position: relative;
    top: 1px;
    display: inline-block;
    font-family: bootstrap-icons !important;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
    padding-left: 5px;
}

a.asc:after {
    content: "\f148";
}

a.desc:after {
    content: "\f124";
}

.sort-numerical a.asc:after {
    content: "\f15f";
}

.sort-numerical a.desc:after {
    content: "\f162";
}

.sort-ordinal a.asc:after {
    content: "\f15e";
}

.sort-ordinal a.desc:after {
    content: "\f157";
}

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

.hint-block,
.form-text {
    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;
}

.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;
}

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

/* Kartik TabsX (Bootstrap 5 nav markup) */
.tabs-x .nav-tabs .nav-link.active,
.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,
.tabs-x.tabs-above > ul.nav-tabs .nav-link.active {
    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, 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,
.tabs-x.tabs-left > .nav-tabs .nav-link.active {
    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;
}

.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: 0.6 !important;
}

.kv-drp-container .kv-drp-dropdown {
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) !important;
    box-shadow: inset 0 1px 1px rgba(0, 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 */
/* ============================================ */

/* 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;
}

/* Sidebar rail: keep brand image inside overflow:hidden navbar-vertical */
@media (min-width: 1200px) {
    .navbar-vertical.navbar-expand-xl {
        align-items: stretch !important;
    }

    .navbar-vertical.navbar-expand-xl > .d-flex:first-of-type {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
        padding-left: 0.75rem;
        padding-right: 0.5rem;
        height: var(--navbar-top-inner-height, 3.5rem);
        min-height: var(--navbar-top-inner-height, 3.5rem);
        align-items: center;
    }

    .navbar-vertical.navbar-expand-xl .navbar-brand {
        width: 100%;
        max-width: 100%;
        margin-right: 0 !important;
        text-align: left;
        display: flex;
        align-items: center;
    }

    .navbar-vertical.navbar-expand-xl .navbar-brand > div {
        width: 100%;
        min-width: 0;
        white-space: normal !important;
        overflow: hidden !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        display: flex;
        align-items: center;
    }

    .navbar-vertical.navbar-expand-xl .navbar-brand img:not(.national-logo) {
        display: block;
        max-width: 100% !important;
        width: auto !important;
        object-fit: contain;
    }
}

/* Make sure entire navbar-vertical stays above page content */
.navbar-vertical {
    z-index: 1040 !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;
}

/* 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 relative to the navbar's own padding */
.navbar-top .navbar-brand {
    margin-left: 0 !important;
}

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

/* Base content settings */
.app-shell .content {
    max-width: none;
    width: auto;
}

.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;
}

/* ============================================ */
/* Auth layout & accessibility */
/* ============================================ */

.auth-layout {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    background: linear-gradient(135deg, #31343d 0%, #ccba7b 100%);
    background-attachment: fixed;
}

.skip-link {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: 9999;
}

.skip-link:focus {
    position: fixed;
    top: 0.5rem;
    left: 0.5rem;
    width: auto;
    height: auto;
    padding: 0.5rem 1rem;
    background: #fff;
    color: #000;
    border: 2px solid #000;
    border-radius: 0.25rem;
    overflow: visible;
    text-decoration: none;
}

.login-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.login-card {
    width: 100%;
    max-width: 450px;
    background: rgba(49, 52, 61, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
}

.login-header {
    text-align: center;
    margin-bottom: 32px;
}

.login-header .logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 24px;
}

.login-header .logos img {
    max-height: 50px;
    height: auto;
}

.login-header .logos .app-logo,
.login-header .logos .fortify-logo {
    height: 48px;
    width: auto;
    max-width: 100%;
}

.login-header .logos .national-logo {
    height: 40px;
}

.login-header h1 {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #fff;
}

.login-header p {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
}

.oauth-consent-lead,
.oauth-error-message {
    color: rgba(255, 255, 255, 0.85);
    font-size: 14px;
    margin: 0 0 16px;
}

.oauth-consent-scopes {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.oauth-consent-scopes li {
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.oauth-consent-scope-label {
    display: block;
    color: #fff;
    font-weight: 500;
}

.oauth-consent-scopes code {
    color: rgba(255, 255, 255, 0.55);
    font-size: 12px;
}

.oauth-consent-actions {
    display: flex;
    gap: 0.75rem;
}

.oauth-consent-actions .btn {
    flex: 1;
    padding: 12px;
    border-radius: 8px;
    font-weight: 600;
}

/* ============================================ */
/* Top navbar – global search bar width         */
/* (mirrors tradelines layout-overrides.css)    */
/* ============================================ */

.navbar-top {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
}

.navbar-top .navbar-brand {
    flex-shrink: 0;
}

.navbar-top .navbar-top-search {
    display: flex;
    align-items: center;
    flex: 1 1 0;
    min-width: 0;
}

/* React mount must grow inside the flex row or inner width:100% has no effect */
.navbar-top .navbar-top-search > [data-component] {
    flex: 1 1 0;
    min-width: 0;
}

.navbar-top .navbar-top-search form {
    margin: 0;
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
}

.navbar-top .navbar-nav-icons {
    flex-shrink: 0;
}

/* App shell: logo only in top bar; sidebar rail inset matches top bar gutter */
@media (min-width: 1200px) {
    .app-shell .navbar-vertical.navbar-expand-xl > .d-flex:first-of-type {
        display: none !important;
    }
}
