:root {

}

@import url('open.iconic/font/css/open-iconic-bootstrap.min.css');

html, body {
    font-family: system-ui;
    height: auto !important;
    min-height: 100%;
}

h1, h2, h3, h4, h5, h6 {
    color: #FFF;
    font-variant: normal;
    text-transform: none;
    margin-bottom: 0px;
}

.h1 {
    font-size: 1.6em;
    padding-bottom: 0px;
    margin-bottom: 0px;
}

.h2 {
    font-size: 1.5em;
    font-weight: 600;
}

.h3 {
    font-size: 1.2em;
}

.h4 {
    font-size: 1.1em;
}

.h5, .h6 {
    font-size: 1em;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.clickable {
    padding: 5px;
    border-radius: 6px;
    cursor: pointer !important;
    user-select: none;
    transition: all 0.2s ease-in-out;
}

.clickable:hover {
    cursor: pointer !important;
    background: rgba(255, 255, 255, 0.15);
}

.clickable-dark {
    padding-left: 8px;
    padding-right: 8px;
    padding-top: 3px;
    padding-bottom: 3px;
    border-radius: 6px;
    cursor: pointer !important;
    user-select: none;
    transition: all 0.2s ease-in-out;
}

.clickable-dark:hover {
    cursor: pointer !important;
    background: rgba(255, 255, 255, 0.2);
}

.main-content {
    
}

.nav-list-item {
    position: relative;
    display: block;
    padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
    color: white;
    text-decoration: none;
    background-color: var(--bs-primary);
}

    .nav-list-item:hover {
        cursor: pointer;
    }

    .nav-list-item.active {
        z-index: 2;
        color: var(--bs-primary);
        background-color: white;
        font-weight: bold;
    }

.nav-list-group {
    --bs-list-group-item-padding-x: 1rem;
    --bs-list-group-item-padding-y: 0.5rem;
    background: var(--bs-primary)
}

@media (min-width: 1199.98px) {
    .sidebar {
        min-width: 12rem !important;
        max-width: 12rem !important;
        box-shadow: none !important;
    }
}

@media (max-width: 1199.98px) {
    .sidebar {
        background: white;
    }
}

@media (min-width: 1199.98px) {
    .HeaderLogo {
        height: 1.4rem
    }
}

@media (max-width: 1199.98px) {
    .HeaderLogo {
        display: none;
    }
}

.custom-navbar {
    box-shadow: 0px 2px 5px 0 rgb(0 0 0 / 20%)
}

.sidebar-layout-item {
    border-right: solid 0.1rem #e8e8e8 !important;
    background: var(--bs-primary);
}

.dxbl-btn.dxbl-btn-link, .dxbl-btn.dxbl-btn-outline-link, .dxbl-btn.dxbl-btn-text-link {
    --dxbl-btn-hover-color: var(--bs-link-hover-color, var(--primary));
    color: var(--bs-link-color);
    --dxbl-btn-box-shadow: none;
}

.icon-rtl {
    padding-right: 25px;
    background: url("https://static.thenounproject.com/png/101791-200.png") no-repeat right;
    background-size: 20px;
}

.shadow-card {
    background: #ffffff;
    box-shadow: 0 0 0.3rem rgb(0 0 0 / 30%);
    border-radius: 5px;
}

.package-icon {
    color: #c08f4f;
}

.tag-template-close-btn {
    border: 0;
    border-radius: 3rem;
    box-shadow: none;
    font-weight: 600;
    padding: 0;
    width: 16px;
    height: 16px;
    margin: 0 0 0 0.5em;
    opacity: 0.5;
}

    .tag-template-close-btn:hover {
        opacity: 0.75;
    }

.tag-template-close-btn-icon {
    height: 16px;
    width: 16px;
    mask-image: url("images/icons/clear.svg");
    -webkit-mask-image: url("images/icons/clear.svg");
    background-size: contain;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    background-position: center center;
    background-color: currentColor;
}

.combobox-item-template {
    display: flex;
    align-items: center;
}

    .combobox-item-template > img {
        border-radius: 50%;
        width: 2rem;
        height: 2rem;
    }

img + .combobox-item-template-text {
    margin-left: 1rem;
}

.combobox-item-template-text {
    display: flex;
    flex-flow: column;
}

.combobox-item-template-employee-title {
    opacity: 0.65;
}

.col-0-5 {
    flex: 0 0 auto;
    width: 4.15%;
}

.grid-no-vertical-lines {
    border: 0;
}

    .grid-no-vertical-lines td {
        border-left-width: 0px !important;
        border-right-width: 0px !important;
        padding-top: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }

    .grid-no-vertical-lines th {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
    }

.dxbl-grid-header-row {
    background-color: white;
    border: 0 !important;
    border-bottom: solid var(--bs-primary) !important;
}
.required:after {
    content: '*';
    color: red;
}

.dxbl-scheduler .dxbl-sc-timeline .dxbl-sc-resource-headers > tbody > tr > td {
    height: 150px !important;
    padding: 0 !important;
    border-right: 1px solid #2d84c9 !important;
    border-bottom: 1px solid #2d84c9 !important;
}

.dxbl-scheduler .dxbl-sc-timeline .dxbl-sc-horizontal-view > tbody > tr:not(:first-child) > td {
    height: 150px !important;
}

table.dxbl-sc-table.dxbl-sc-timescale:not(:first-of-type) td.dxbl-sc-date-hr {
    font-size: 0.7rem;
    padding-left: 0;
    padding-right: 0;
}

/* AirX Custom Scheduler Transparent Theme */
.dxbl-scheduler {
    --dxbl-scheduler-bg: transparent !important;
    --dxbl-scheduler-border-color: #2d84c9 !important;
    --dxbl-scheduler-color: #FFF !important;
    --dxbl-bg: transparent !important;
    background-color: transparent !important;
}

.dxbl-scheduler .dxbl-sc-table th:not(.dxbl-v-resource-header),
.dxbl-scheduler .dxbl-sc-table td:not(.dxbl-v-resource-header),
.dxbl-scheduler .dxbl-sc-table th:not(.dxbl-v-resource-header),
.dxbl-scheduler .dxbl-sc-main,
.dxbl-scheduler .dxbl-sc-view,
.dxbl-scheduler .dxbl-sc-toolbar,
.dxbl-scheduler .card {
    background-color: transparent !important;
    color: #FFF !important;
    border-color: #2d84c9 !important;
}

/* Map PHP design cell height & padding */
.dxbl-scheduler .dxbl-sc-table td.dxbl-sc-cell {
    padding: 5px 5px !important;
}

.dxbl-scheduler .dxbl-sc-timeline .dxbl-sc-table td.dxbl-sc-cell {
    height: 150px !important; /* Min-height from .timeline-tbl tbody td */
}

.dxbl-scheduler .dxbl-sc-week-view .dxbl-sc-table td.dxbl-sc-cell,
.dxbl-scheduler .dxbl-sc-work-week-view .dxbl-sc-table td.dxbl-sc-cell {
    height: 40px !important; /* From .timeline-week-tbl tbody td */
}


.dxbl-scheduler .dxbl-sc-apt {
    color: #FFF !important;
    border-color: #2d84c9 !important;
    /* We DO NOT make background transparent so the status colors are visible */
    border-radius: 5px !important;
    padding: 10px 5px !important; /* From .timeline-bar-inner */
}

/* Map PHP design font sizes for appointment text */
.dxbl-scheduler .dxbl-sc-apt .dxbl-sc-apt-title {
    font-size: 12px !important;
    font-weight: 600 !important;
}

.dxbl-scheduler .dxbl-sc-apt .dxbl-sc-apt-content {
    font-size: 10px !important; /* Slightly larger than the 8px in PHP for better readability, but matches small scale */
}

.dxbl-scheduler .dxbl-sc-apt-container {
    background-color: transparent !important;
}

.dxbl-sc-resource-hr{
    text-align: center !important;
}

.timeline-bar.label-red .timeline-tooltip-header,
.timeline-bar.label-red {
    background: #ff4747;
    color: white;
}

.timeline-bar.label-orange .timeline-tooltip-header, 
.timeline-bar.label-orange { background: #eba000; color: white; }

.timeline-bar.label-green .timeline-tooltip-header, 
.timeline-bar.label-green { background: #47a800; color: white; }

.timeline-bar.label-purple .timeline-tooltip-header, 
.timeline-bar.label-purple { background: #6F42C1; color: white; }

.timeline-bar.label-blue .timeline-tooltip-header, 
.timeline-bar.label-blue { background: #2d84c9; color: white; }

/* Custom Resource Header styling */
.scheduler-resource-header {
    width: 100%;
    height: 100%;
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px; /* From PHP design */
    border-radius: 4px; /* From PHP design */
}

/* We MUST reset padding on the outer td that DevExpress adds to allow our div to fill the cell */
.dxbl-sc-resource-headers td.dxbl-v-resource-header, 
.dxbl-sc-resource-headers th.dxbl-h-resource-header {
    padding: 0 !important; /* Remove DevExpress default padding so our div fills it entirely */
}

.timeline-bar {
    position: relative; 
    border-radius: 5px;
    height: 100%;
    width: 100%;
    cursor: pointer;
    overflow: visible !important;
}

.timeline-bar-inner {
    position: relative;
    padding: 5px 10px;
    height: 100%;
    text-align: left;
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.timeline-bar-inner > * { margin-bottom: 0px; }

.timeline-bar-inner h5 {
    font-size: 12px;
    font-weight: 600;
}

.timeline-bar-tooltip {
    position: absolute;
    top: 0;
    left: 100%;
    transition: all .3s ease-in-out;
    min-width: 250px;
    z-index: 9999;
    visibility: hidden;
    opacity: 0;
    pointer-events: auto;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    margin-left: 10px;
}

/* Invisible bridge so mouse can travel to tooltip without losing hover */
.timeline-bar-tooltip::after {
    content: '';
    position: absolute;
    top: 0;
    left: -10px;
    width: 10px;
    height: 100%;
}

.timeline-bar:hover .timeline-bar-tooltip {
    visibility: visible;
    opacity: 1;
}

.timeline-tooltip-header {
    position: relative;
    font-weight: 600;
    font-size: 14px;
    padding: 10px;
    border-radius: 5px 5px 0px 0px;
    color: white;
}

.timeline-tooltip-content {
    background-color: #FFF;
    padding: 10px;
    font-size: 12px;
    border-radius: 0px 0px 5px 5px;
    color: #000;
}

.timeline-tooltip-content label {
    margin-bottom: 0px;
    font-weight: 600;
}

.label-tag-red,
.label-tag-orange,
.label-tag-green {
    border-radius: 5px;
    padding: 5px 10px;
    display: inline-flex;
    text-align: center;
    vertical-align: middle;
}
.label-tag-red { background: #ff4747; color: white; }
.label-tag-orange { background: #eba000; color: white; }
.label-tag-green { background: #47a800; color: white; }

/* Custom View Switcher Tabs */
.tab-button-list.flight-scheduler-tab {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
}

.tab-button-list.flight-scheduler-tab .tab-button {
    border-bottom: 1px solid #757575;
    padding: 10px 30px;
    border-radius: 10px;
    margin-bottom: unset;
    width: 150px;
    text-align: center;
    align-items: center;
    cursor: pointer;
    transition: background 0.3s ease;
    background: transparent;
    color: #FFF;
}

.tab-button-list.flight-scheduler-tab .tab-button.active,
.tab-button-list.flight-scheduler-tab .tab-button:hover {
    background: linear-gradient(90deg, #18536F 0%, #98D3E0 100%);
    border-bottom-color: transparent; 
}

/* ===== DxHtmlEditor - Force light mode inside .html-editor-wrapper ===== */
.html-editor-wrapper .dxbl-widget-container {
    background: #FFF !important;
    color: black !important;
}

.html-editor-wrapper .dxbl-widget-container .ql-editor {
    background: #FFF !important;
    color: #212529 !important;
}

.html-editor-wrapper .dxbl-widget-container .ql-editor p,
.html-editor-wrapper .dxbl-widget-container .ql-editor h1,
.html-editor-wrapper .dxbl-widget-container .ql-editor h2,
.html-editor-wrapper .dxbl-widget-container .ql-editor h3,
.html-editor-wrapper .dxbl-widget-container .ql-editor h4,
.html-editor-wrapper .dxbl-widget-container .ql-editor h5,
.html-editor-wrapper .dxbl-widget-container .ql-editor h6,
.html-editor-wrapper .dxbl-widget-container .ql-editor span,
.html-editor-wrapper .dxbl-widget-container .ql-editor li {
    color: #212529 !important;
}

/* Dropdown menus (font picker, size picker, paragraph style) - globally scoped as they append to body */
.dxbl-listbox,
.dxbl-dropdown-dialog,
.dxbl-popup,
.dxbl-scrollable-content,
.dxbl-dropdown-body {
    --dxbl-bg: #ffffff;
    --dxbl-color: #212529;
    --bs-body-color: #212529;
    --bs-body-bg: #ffffff;
    background-color: #ffffff !important;
    color: #212529 !important;
}

.dxbl-listbox .dxbl-listbox-item,
.dxbl-list .dxbl-list-item,
.dxbl-dropdown-dialog li,
.dxbl-dropdown-dialog .dxbl-scroll-viewer-content {
    color: #212529 !important;
}

.dxbl-listbox .dxbl-listbox-item:hover,
.dxbl-list .dxbl-list-item:hover,
.dxbl-dropdown-dialog li:hover,
.timeline-bar.label-orange .timeline-tooltip-header, 
.timeline-bar.label-orange { background: #eba000; color: white; }

.timeline-bar.label-green .timeline-tooltip-header, 
.timeline-bar.label-green { background: #47a800; color: white; }

.timeline-bar.label-purple .timeline-tooltip-header, 
.timeline-bar.label-purple { background: #6F42C1; color: white; }

.timeline-bar.label-blue .timeline-tooltip-header, 
.timeline-bar.label-blue { background: #2d84c9; color: white; }

/* Custom Resource Header styling */
.scheduler-resource-header {
    width: 100%;
    height: 100%;
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px; /* From PHP design */
    border-radius: 4px; /* From PHP design */
}

/* We MUST reset padding on the outer td that DevExpress adds to allow our div to fill the cell */
.dxbl-sc-resource-headers td.dxbl-v-resource-header, 
.dxbl-sc-resource-headers th.dxbl-h-resource-header {
    padding: 0 !important; /* Remove DevExpress default padding so our div fills it entirely */
}

.timeline-bar {
    position: relative; 
    border-radius: 5px;
    height: 100%;
    width: 100%;
    cursor: pointer;
    overflow: visible !important;
}

.timeline-bar-inner {
    position: relative;
    padding: 5px 10px;
    height: 100%;
    text-align: left;
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.timeline-bar-inner > * { margin-bottom: 0px; }

.timeline-bar-inner h5 {
    font-size: 12px;
    font-weight: 600;
}

.timeline-bar-tooltip {
    position: absolute;
    top: 0;
    left: 100%;
    transition: all .3s ease-in-out;
    min-width: 250px;
    z-index: 9999;
    visibility: hidden;
    opacity: 0;
    pointer-events: auto;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    margin-left: 10px;
}

/* Invisible bridge so mouse can travel to tooltip without losing hover */
.timeline-bar-tooltip::after {
    content: '';
    position: absolute;
    top: 0;
    left: -10px;
    width: 10px;
    height: 100%;
}

.timeline-bar:hover .timeline-bar-tooltip {
    visibility: visible;
    opacity: 1;
}

.timeline-tooltip-header {
    position: relative;
    font-weight: 600;
    font-size: 14px;
    padding: 10px;
    border-radius: 5px 5px 0px 0px;
    color: white;
}

.timeline-tooltip-content {
    background-color: #FFF;
    padding: 10px;
    font-size: 12px;
    border-radius: 0px 0px 5px 5px;
    color: #000;
}

.timeline-tooltip-content label {
    margin-bottom: 0px;
    font-weight: 600;
}

.label-tag-red,
.label-tag-orange,
.label-tag-green {
    border-radius: 5px;
    padding: 5px 10px;
    display: inline-flex;
    text-align: center;
    vertical-align: middle;
}
.label-tag-red { background: #ff4747; color: white; }
.label-tag-orange { background: #eba000; color: white; }
.label-tag-green { background: #47a800; color: white; }

/* Custom View Switcher Tabs */
.tab-button-list.flight-scheduler-tab {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
}

.tab-button-list.flight-scheduler-tab .tab-button {
    border-bottom: 1px solid #757575;
    padding: 10px 30px;
    border-radius: 10px;
    margin-bottom: unset;
    width: 150px;
    text-align: center;
    align-items: center;
    cursor: pointer;
    transition: background 0.3s ease;
    background: transparent;
    color: #FFF;
}

.tab-button-list.flight-scheduler-tab .tab-button.active,
.tab-button-list.flight-scheduler-tab .tab-button:hover {
    background: linear-gradient(90deg, #18536F 0%, #98D3E0 100%);
    border-bottom-color: transparent; 
}

/* ===== DxHtmlEditor - Force light mode inside .html-editor-wrapper ===== */
.html-editor-wrapper .dxbl-widget-container {
    background: #FFF !important;
    color: black !important;
}

.html-editor-wrapper .dxbl-widget-container .ql-editor {
    background: #FFF !important;
    color: #212529 !important;
}

.html-editor-wrapper .dxbl-widget-container .ql-editor p,
.html-editor-wrapper .dxbl-widget-container .ql-editor h1,
.html-editor-wrapper .dxbl-widget-container .ql-editor h2,
.html-editor-wrapper .dxbl-widget-container .ql-editor h3,
.html-editor-wrapper .dxbl-widget-container .ql-editor h4,
.html-editor-wrapper .dxbl-widget-container .ql-editor h5,
.html-editor-wrapper .dxbl-widget-container .ql-editor h6,
.html-editor-wrapper .dxbl-widget-container .ql-editor span,
.html-editor-wrapper .dxbl-widget-container .ql-editor li {
    color: #212529 !important;
}

/* Dropdown menus (font picker, size picker, paragraph style) - globally scoped as they append to body */
.dxbl-listbox,
.dxbl-dropdown-dialog,
.dxbl-popup,
.dxbl-scrollable-content,
.dxbl-dropdown-body {
    --dxbl-bg: #ffffff;
    --dxbl-color: #212529;
    --bs-body-color: #212529;
    --bs-body-bg: #ffffff;
    background-color: #ffffff !important;
    color: #212529 !important;
}

.dxbl-listbox .dxbl-listbox-item,
.dxbl-list .dxbl-list-item,
.dxbl-dropdown-dialog li,
.dxbl-dropdown-dialog .dxbl-scroll-viewer-content {
    color: #212529 !important;
}

.dxbl-listbox .dxbl-listbox-item:hover,
.dxbl-list .dxbl-list-item:hover,
.dxbl-dropdown-dialog li:hover,
.dxbl-dropdown-dialog .dxbl-scroll-viewer-content li:hover {
    background-color: #e5e7eb !important;
    color: #111827 !important;
}

/* Combobox inputs in toolbar - MAXIMUM SPECIFICITY */
body .html-editor-wrapper .dxbl-toolbar .dxbl-text-edit,
body .html-editor-wrapper .dxbl-toolbar .dxbl-text-edit-input {
    --dxbl-bg: #ffffff !important;
    --dxbl-color: #212529 !important;
    background-color: #ffffff !important;
    color: #212529 !important;
}

body .html-editor-wrapper .dxbl-toolbar .dxbl-text-edit svg,
body .html-editor-wrapper .dxbl-toolbar .dxbl-combo-box svg {
    fill: #212529 !important;
    color: #212529 !important;
}
