#visualization {
    cursor: crosshair;
}

#visualization:before {
    content: '';
    display: none;
    position: sticky;
    top: 0;
    left: 0;
    width: calc(100% - 4px);
    height: 100%;
    background-image: radial-gradient(circle, #00000025 0.5px, transparent 0.5px);
    background-size: calc(100% / 192) 2px;
    background-color: #FFFFFF75;
}

#visualization:hover::before {
    display: block;
}

.report-builder-container {
    background-image: url('../../resources/images/background.avif');
    display: flex;
    height: calc(100vh - 38px);
    width: 100%;
}

.report-builder-container > .d-flex > * {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    overflow: hidden;
}

.report-builder-container > .d-flex > *:nth-child(1) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.report-builder-container > .d-flex > *:nth-child(2) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.report-builder-container .header {
    color: #000000;
    font-size: 11px;
}

.report-builder-container .configController {
    background-color: white;
    border-left: 1px solid #00000010;
    border-right: 1px solid #00000010;
    width: 220px;
}

.report-builder-container .configController > div > .uTabsHeader {
    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px, rgba(0, 0, 0, 0.1) 0px -4px 16px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 0;
    margin: 0 !important;
    height: 30px;
}

.report-builder-container .configController > div > .uTabsHeader div {
    flex: 1;
    text-align: center;
}

.report-builder-container .configController > div > .uTabsHeader label {
    border: thin solid #eee;
    font-size: 14px;
    height: 100%;
    padding: 2px 14px;
}

.report-builder-container > div {
    height: 100%;
    width: calc(100vw - 440px);
    z-index: 2;
}

.report-builder-container > div:nth-child(2) {
    height: calc(100% - 20px);
    margin: 10px 5px 0 0;
    width: 440px;
}

.report-builder-container #query {
    height: calc(100% - 38px);
}

.report-builder-container #query textarea {
    background: white;
    border: none;
    display: block;
    font-family: 'Roboto Mono' !important;
    font-size: 12px;
    height: 100%;
    outline: none;
    resize: none;
    width: 100%;
}

.report-builder-container .bottomRow {
    align-items: center;
    border-top: 1px solid #eee;
    color: #00000090;
    display: flex;
    font-size: 14px;
    height: 35px;
    padding-inline: 5px;
    width: 100%;
}

.report-builder-container input {
    border: 1px solid #00000030;
}

.report-builder-container .resultTabs .header-title-transformer {
    color: #777;
    font-size: 8px;
}

.report-builder-container .saveDataSource,
#saveDataSourceModal .saveDataSourceContainer .saveDataSource {
    background: black;
    color: white;
    height: 26px;
    font-size: 14px;
    margin-right: 9px;
}

.report-builder-container  .queryToolBar {
    border: 1px solid #00000010;
    border-inline: 0;
    height: 35px;
}

#saveDataSourceModal .saveDataSourceContainer {
    display: flex;
    font-size: 14px;
    height: 100%;
    position: relative;
    width: 100%;
}

#saveDataSourceModal .saveDataSourceContainer .saveMode {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin-right: 5%;
    padding: 10px;
    width: 40%;
}

#saveDataSourceModal .saveDataSourceContainer .saveMode div {
    align-items: center;
    cursor: pointer;
    display: flex;
    font-size: 12px;
    height: 40px;
    margin-block: 10px;
    justify-content: center;
    text-align: center;
}

#saveDataSourceModal .saveDataSourceContainer .saveMode div:nth-last-child(1) {
    margin-bottom: 0;
}

#saveDataSourceModal .saveDataSourceContainer .saveMode div.currentlySelected {
    background-color: black;
    color: white;
}

#saveDataSourceModal .saveDataSourceContainer .saveMode div:not(.currentlySelected) {
    border: 1px solid #eee;
}

#saveDataSourceModal .saveDataSourceContainer .saveModeVariables {
    height: 100%;
    padding: 10px;
    width: 50%;
}

#saveDataSourceModal .saveDataSourceContainer .saveModeVariables label {
    display: block;
    margin-bottom: 2px;
}

#saveDataSourceModal .saveDataSourceContainer .saveModeVariables input {
    border: thin solid #eee;
    font-size: 12px;
    margin-bottom: 20px;
    padding: 2px;
    width: 100%;
}

#saveDataSourceModal .saveDataSourceContainer .saveDataSource {
    height: 35px;
}

.uPopover {
    box-shadow: none;
}

.uPopover.showArrowDecorator::before {
    border-color: #00000015 !important;
    z-index: 2;
}

.ui-resizable-s {
    width: unset;
}

.ui-resizable-e {
    height: unset;
}

li[data-page="Visualization"] {
    background: #f8f9fa;
}

#pseudoNewComponent {
    border: thin dashed #00000030;
    pointer-events: none;
    position: absolute;
    z-index: 999;
}

#mainContainer {
    z-index: 999;
}

#mainContainer:has(#guideUser.adding-first-tile) + div {
    opacity: 0.5;
    pointer-events: none;
}

.report-builder-container .configController > div > .uTabsHeader label {
    align-items: center;
    border: none !important;
    border-bottom: 3px solid #6667ab00 !important;
    display: flex;
    font-size: 10px;
    text-transform: uppercase;
}

.report-builder-container .configController > div > .uTabsHeader .selectedTab label {
    background-color: white !important;
    border-bottom: 3px solid #6667ab !important;
    color: #6667ab !important;
    font-weight: bold;
}

#multiQueryModeTypeParams {
    font-size: 12px;
}

#multiQueryMode_columnsToDisplay {
    font-size: 12px;
    height: 180px;
    overflow-x: auto;
}

#multiQueryMode_columnsToDisplay > div {
    border: thin solid #00000030;
    min-width: 150px;
}

#multiQueryMode_columnsToDisplay .objectName {
    background-color: #00000010;
    padding: 2px 5px;
}

#multiQueryMode_columnsToDisplay .attributes {
    height: 155px;
    padding: 5px;
    overflow: auto;
}

#multiQueryMode_columnsToDisplay > div:has(+ div) {
    border-right: 0;
}

#guideUser {
    font-size: 14px;
    padding: 30px;
    pointer-events: none;
    height: calc(100% - 20px);
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}


#guideUser .banner {
    position: absolute;
    background: #EEE;
    left: 0;
    right: 0;
    top: 0;
    height: 48px;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
}

#guideUser .header {
    color: #6667AB;
    font-size: 12px;
    font-weight: bold;
    margin-bottom: 10px;
    text-transform: uppercase;
}

#guideUser #newTileGif {
    filter: grayscale(1);
    height: 140px;
    opacity: 0.2;
}

.highlight-me:not(:has(.attributeContainer)) {
    animation: border-animation 2s infinite;
    border: 2px dashed #6667AB;
}

.configContainer:has(.highlight-me) > div {
    color: #6667AB;
    font-weight: bold;
}

@keyframes border-animation {
    0%, 100% {
        border: 2px dashed #6667AB;
    } 50% {
        border: 2px dashed #6667AB50;
    }
}

#reportStyling {
    background-color: white;
    height: 100%;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 2;
}

.ui-resizable-handle {
    filter: brightness(0) !important;
    height: 8px !important;
    width: 8px !important;
}

#viz_query_editor {
    height: 40vh;
    width: 100%;
}

#drill-down-queries-list .selected {
    background-color: #00000020;
    padding: 0 6px;
}

.list-group-item.nested-1.folder {
    background-color: #F1F1F1;
}

.list-group.nested-sortable.folder:not(.main-folder) {
    background-color: white;
    min-height: 30px;
}

.list-group.nested-sortable.folder:not(.main-folder):not(:has(.report)) {
    border: thin dashed #444;
}

.list-group.nested-sortable .report {
    height: 30px;
}

.list-group.nested-sortable .fa-light.fa-trash{
    display: flex;
    align-items: center;
    font-size: 8px !important;
}

#assetManager .img-container {
    width: 30%;
    height: auto;
    text-align: center;
    overflow: hidden;
    position: relative;
    float: left;
    margin: 8px;
}

#assetManager .img-container img {
    height: auto;
    object-fit: cover;
    width: -webkit-fill-available;
}

#assetManager .img-container:not(.no-hover):hover:before {
    content: 'Click to copy asset URL';
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background-color: #00000030;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 12px;
    cursor: pointer;
}

#assetManager #assetPageNumber {    
    display: flex;
    align-items: center;
    justify-content: center;
    width: 10vw;
}

#assetManager .deleteAssetContainer {
    aspect-ratio: 1;
    background-color: white;
    border-radius: 50%;
    cursor: pointer;
    position: absolute;
    top: 5px;
    right: 5px;
    z-index: 3;
    height: 20px;
    width: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#publishDashboardBtn.unpublished-updates-detected:before {
    animation: hideIn5s 5s ease-in 1s forwards;
    content: 'There are unpublished changes on this report. Publish the changes to make them available for your users';
    position: absolute;
    top: 100%;
    right: 0;
    height: auto;
    max-width: 250px;
    width: max-content;
    background-color: black;
    color: white;
    border-radius: 4px;
    padding: 4px;
    opacity: 0;
    pointer-events: none;
}

@keyframes hideIn5s {
    0% {
        opacity: 0;
    } 5% {
        opacity: 1;
    } 95% {
        opacity: 1;
    } 100% {
        opacity: 0;
    }
}

.chart-container .chartHeader {
    cursor: move;
}

.report-builder-container:has(#myReportVisualizationConfig .attributeContainer.selectedAttribute) #visualization {
    pointer-events: none;
}

.collapse-designer {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    aspect-ratio: 1;
    background: #f9f9f9;
    border-right: thin solid #eee;
    border-bottom: thin solid #eee;
    cursor: pointer;
    height: 30px;
}

.fa-light.fa-chevrons-left {
    border-radius: 4px 0 0 4px;
    color: white;
    font-weight: bold;
    border-right: thin solid #eee;
    border-bottom: thin solid #eee;
    position: absolute;
    right: -40px;
    top: 10px;
    cursor: pointer;
    width: 30px;
    aspect-ratio: 1;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px, rgba(0, 0, 0, 0.1) 0px 8px 16px;
    transition: 0.25s;
    z-index: 9999999;
    background: #9fa0ce;
    background-image: repeating-linear-gradient( -45deg,  transparent,  transparent 1rem, #6667ab 1rem, #6667ab 2rem );
    background-size: 400% 400%;
    animation: barberpole 10s linear infinite reverse;
}

.fa-light.fa-chevrons-left.show {
    right: 0;
    transition: 0.25s;
}

@keyframes barberpole {
    100% {
      background-position: 100% 100%;
    }
}

.chartContainer .titleContainer .title span,
.chartContainer .titleContainer .subtitle span {
    cursor: pointer;
    position: relative;
}

.chartContainer .titleContainer .title:hover::after,
.chartContainer .titleContainer .subtitle:hover::after {
    content: 'Click to edit';
    pointer-events: none;
    top: auto;
    bottom: auto;
    margin: auto;
    font-size: 8px;
    margin-left: 4px;
    position: absolute;
    height: 20px;
    background: black;
    color: white;
    padding: 4px 8px;
    transform: translateX(-50%) translateY(20px);
    border-radius: 4px;
    z-index: 1000;
    font-size: 10px;
    left: 50%;
}

#vizQuery .run-query {
    align-items: center;
    background: #6667AB;
    border: 0;
    color: white;
    cursor: pointer;
    display: flex;
    height: 25px;
    justify-content: center;
    font-size: 12px;
    padding: 0 15px;
    width: auto;
}

#query-result-viewer {
    height: 25vh;
    width: auto;
}

#query-result-viewer-container {
    display: none;
}

#query-result-viewer-container:has(.chart-container.harbour-ui-visualization),
#query-result-viewer-container:has(img) {
    display: block;
}

#query-result-viewer-container.error {
    display: block;
    font-size: 12px;
    color: red;
}

#query-result-viewer .chart-container.harbour-ui-visualization {
    overflow: hidden;
}

#query-result-viewer .chart-container.harbour-ui-visualization > .chart {
    width: 100%;
}

#query-close-without-saving {
    background-color: #9fa0ce;
}

.tiptap.ProseMirror {
    outline: none !important;
}

.tiptap.bubble-menu {
    background: #fff;
    border-radius: 4px;
    padding: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    z-index: 99999999;
    max-width: 300px;
    min-width: 300px;
    align-items: center;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px;
}

.tiptap.bubble-menu svg {
    cursor: pointer;
    width: 20px;
    height: 20px;
}

.tiptap.bubble-menu button, .tiptap.bubble-menu input[type='color'] {
    background: none;
    border: none;
    font-size: 14px;
    margin: 0 5px;
    cursor: pointer;
    width: 20px;
    height: 20px;
}

.tiptap.bubble-menu input[type='color'] {
    margin: 0 9px;
}

.tiptap.bubble-menu     button:hover {
    background-color: #ddd;
    border-radius: 3px;
}

.tiptap.bubble-menu select {
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 2px;
    font-size: 14px;
    margin: 0 5px;
}

#custom-text-editor {
    border: thin solid #00000040;
    height: 125px;
    padding: 4px 10px;
}

#custom-text-editor p {
    margin: 0;
}

.subgridElement.chart-container .chartHeader {
    cursor: move;
}

.subgridElement {
    position: relative;
}

.subgridElement:not(:has(.grid-stack-item)):before {
    content: 'Add visualizations to this section to group them. Sections cannot be nested.';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

#saveDashboardBtn,
#publishDashboardBtn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#saveDashboardBtn.saving,
#publishDashboardBtn.saving {
    --angle: 180deg;
    --primary-bg: conic-gradient(from var(--angle, 180deg) at 50% 70%, hsla(0, 0%, 98%, 1) 0deg, rgb(var(--bs-success-rgb)) 144deg, hsl(0deg 0% 100%) 320deg);
    --gradient: true;
    --animated: true;
    --highlight: 2;
    --spread: 1;
    --primary: #ffffff;
    --secondary: #606060;
    animation: bg_rotate 6s infinite linear;
    font-weight: 700;
    background: var(--primary-bg), linear-gradient(var(--secondary), var(--secondary)), linear-gradient(var(--secondary) 0 calc((var(--highlight) + var(--spread))* 1lh), transparent);
    background-size: 100% calc(var(--highlight)* 1lh), 100% calc((var(--highlight) + var(--spread))* 1lh), 100% 100%;
    color: transparent;
    text-wrap: balance;
    display: inline-block;
    margin: 0;
    background-clip: text;
}

@keyframes bg_rotate {
    0% { background-position: 0 0 }
    100% { background-position: 100px 0; }
}


#saveDashboardBtn.saved,
#publishDashboardBtn.saved {
    transform: translateX(10px);
}

#saveDashboardBtn.saved:before,
#publishDashboardBtn.saved:before {
    content: 'Report saved';
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background-color: white;
    z-index: 999;
    cursor: pointer;
    position: absolute;
    color: rgb(25,135,84);
}

#publishDashboardBtn.saved:before {
    content: 'Published';
}

#saveDashboardBtn.saved:after,
#publishDashboardBtn.saved:after {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -15px;
    content: '\F00C';
    font-family: "Font Awesome 6 Pro" !important;
    z-index: 999;
    cursor: pointer;
    color: rgb(25,135,84);
    font-size: 10px;
    display: flex;
    align-items: center;
}

#versionControlDetails .all-versions {
    border: thin solid #EEEEEE;
    font-size: 10px;
    overflow-y: auto;
}

#versionControlDetails .all-versions .version {
    border-bottom: thin solid #EEE;
    cursor: pointer;
    height: 35px;
    padding: 2px 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

#versionControlDetails .all-versions .version.current-version {
    background: #6667AB;
    color: white;
}

#versionControlDetails .chart > .chartContainer {
    height: 100% !important;
}

#versionControlDetails .versionControl {
    display: none;
}

#versionControlDetails .all-versions .version .comments {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#newMembers .new-member {
    align-items: center;
    border: thin solid #eee;
    border-bottom: 0;
    display: flex;
    justify-content: space-between;
    padding: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#newMembers .new-member span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.release-pipeline-steps {
    max-height: 500px;
    overflow: auto;
}

.release-pipeline-steps .release-step {
    width: 95%;
    margin-left: 2.5%;
    text-align: center;
    margin-top: 24px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 2px, rgba(0, 0, 0, 0.1) 0px 0px 2px;
}

.release-pipeline-steps .release-step.new-step {
    height: 40px;
    width: 140px;
    margin-inline: auto;
    box-shadow: unset;
    border: thin solid #00000020;
    background-color: white;
}

.release-pipeline-steps .release-step:not(.new-step) {
    background: white;
    border-radius: 6px;
    background: #fdfdfd;
}

.release-pipeline-steps .release-step .release-step-name {
    background: #094979;
    color: white;
    padding: 10px;
    width: 75px;
    border-radius: 4px 0 0 4px;
}

.release-pipeline-steps .release-step .release-step-info {
    width: 100%;
}

.release-pipeline-steps .release-step:nth-child(1) {
    margin-top: 10px;
}

.release-pipeline-steps .release-step:nth-last-child(1) {
    margin-bottom: 10px;
}

.release-pipeline-steps .release-step:not(:nth-last-child(1))::before {
    position: absolute;
    left: 0;
    top: 37px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    content: '\F128';
    font-family: 'Bootstrap-icons';
    color: #000000aa;
}

.attribute-container {
    margin-bottom: 25px;
}
