/* PDV workspace — layout parity with monitoring.css */

.pdv-host .monitoring-pane--tree {
    border: none;
    background: transparent;
    padding: 0;
}

.pdv-host .resource-selector-pane {
    background: #fff;
    border: 1px solid #d8d8dc;
    border-radius: 3px;
    padding: 0.2rem 0.3rem 0.3rem;
}

.pdv-host .monitoring-machine-list__item {
    border: 1px solid #c8c8c8;
}

.pdv-host .monitoring-machine-list__item.is-selected {
    outline: 2px solid #4a78c2;
    outline-offset: -2px;
}

/* Full-height flex chain: splitter → tabs → file explorer / preview (global — child components + Dx markup). */
.pdv-host {
    height: 100%;
}

.pdv-host .pdv-pane--workspace-main,
.pdv-host .pdv-split--workspace > .dxbl-splitter-pane,
.pdv-host .pdv-split--workspace .dxbl-splitter-pane-content,
.pdv-host .pdv-split--main > .dxbl-splitter-pane,
.pdv-host .pdv-split--main .dxbl-splitter-pane-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

.pdv-host .pdv-pane--workspace-main.pdv-pane {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    padding-bottom: 0.25rem;
}

.pdv-host .pdv-main-tabs.dxbl-tabs,
.pdv-host .pdv-main-tabs .dxbl-tabs-content,
.pdv-host .pdv-main-tabs .dxbl-tabs-content-panel,
.pdv-host .pdv-main-tabs .dxbl-tabs-content.dxbl-active,
.pdv-host .pdv-file-tabs.dxbl-tabs,
.pdv-host .pdv-file-tabs .dxbl-tabs-content,
.pdv-host .pdv-file-tabs .dxbl-tabs-content-panel,
.pdv-host .pdv-file-tabs .dxbl-tabs-content.dxbl-active {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

.pdv-host .pdv-main-tabs .dxbl-tabs-header,
.pdv-host .pdv-file-tabs .dxbl-tabs-header {
    flex: 0 0 auto;
}

.pdv-host .pdv-main-tabs .dxbl-tabs-content.dxbl-active > *,
.pdv-host .pdv-file-tabs .dxbl-tabs-content.dxbl-active > * {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

.pdv-file-tab-pane {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

.pdv-file-explorer {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    gap: 0.2rem;
}

.pdv-file-explorer__toolbar {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    flex: 0 0 auto;
    padding: 0.1rem 0.15rem 0;
}

.pdv-file-explorer__path {
    flex: 1 1 auto;
    min-width: 120px;
}

.pdv-file-explorer__toolbar-actions {
    display: flex;
    gap: 0.25rem;
    align-items: center;
    flex: 0 0 auto;
}

.pdv-file-explorer__filter {
    width: 130px;
}

.pdv-file-explorer__wildcard {
    width: 72px;
}

.pdv-file-explorer__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    padding: 0.15rem 0.2rem 0.1rem;
    font-size: 0.75rem;
    color: #555;
    border-top: 1px solid #e4e4e8;
}

.pdv-file-explorer__footer-options {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.pdv-file-explorer__summary {
    white-space: nowrap;
}

.pdv-file-explorer__db-mark {
    font-weight: 600;
    color: #2f6b2f;
}

.pdv-file-explorer__row--parent {
    color: #1f5fbf;
    font-weight: 600;
}

.pdv-file-explorer__row--dir {
    color: #666;
}

.pdv-file-grid--colored .dxbl-grid-table tbody tr:has(.pdv-file-explorer__row--in-db):not(.dxbl-grid-focused-row):not(.dxbl-grid-selected-row) td {
    background: #fff8dc;
}

/* PDV file grid: Fluent theme sets light --dxbl-grid-focus-color on top of yellow in-DB rows. */
.pdv-file-explorer .pdv-file-grid-wrap {
    --dxbl-grid-focus-bg: #d6e4f5;
    --dxbl-grid-focus-color: #1a1a1a;
    --dxbl-grid-selection-focus-dark-bg: #d6e4f5;
    --dxbl-grid-selection-focus-dark-color: #1a1a1a;
}

.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row > td,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-selected-row > td,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row.dxbl-grid-selected-row > td,
.pdv-file-explorer .pdv-file-grid-wrap .center-crud-grid .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row.dxbl-grid-selected-row:not(.dxbl-grid-touch-selection):not(.dxbl-grid-touch-selection-edge) > td {
    background-color: #d6e4f5 !important;
    color: #1a1a1a !important;
}

.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row > td *,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-selected-row > td *,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row.dxbl-grid-selected-row > td * {
    color: #1a1a1a !important;
}

.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row .pdv-file-explorer__row,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-selected-row .pdv-file-explorer__row,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row .pdv-file-explorer__row--parent,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-selected-row .pdv-file-explorer__row--parent,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row .pdv-file-explorer__row--dir,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-selected-row .pdv-file-explorer__row--dir,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row .pdv-file-explorer__row--in-db,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-selected-row .pdv-file-explorer__row--in-db {
    color: #1a1a1a !important;
    font-weight: 600;
}

.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-focused-row .pdv-file-explorer__db-mark,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid .dxbl-grid-table > tbody > tr.dxbl-grid-selected-row .pdv-file-explorer__db-mark {
    color: #1f5f1f !important;
}

.pdv-file-grid-wrap {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    height: 0;
    min-height: 0;
    min-width: 0;
    width: 100%;
    overflow: hidden;
}

.pdv-file-explorer .pdv-file-grid-wrap .dxbl-grid,
.pdv-file-explorer .pdv-file-grid-wrap .dxbl-scroll-viewer {
    flex: 1 1 0;
    min-height: 0;
    height: 100% !important;
    max-height: 100% !important;
}

.pdv-host .pdv-split--main .dxbl-splitter-pane-content > .pdv-pane--preview {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
}

.pdv-host .pdv-pane--preview {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

.pdv-host .pdv-pane--preview .pdv-pane__title {
    flex: 0 0 auto;
}

.pdv-host .pdv-pane--preview .pdv-pane__body.pdv-nc-preview {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
}

.pdv-file-grid-wrap .dxbl-grid,
.pdv-file-grid-wrap .center-crud-grid.pdv-file-grid {
    width: 100%;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
}

.pdv-nc-preview {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
}

.pdv-nc-preview__text {
    margin: 0;
    padding: 0.35rem 0.45rem;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.75rem;
    line-height: 1.35;
    white-space: pre-wrap;
    word-break: break-word;
    overflow: auto;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    background: #fff;
    border: 1px solid #e0e0e4;
    border-radius: 2px;
}

.pdv-nc-program-form__group {
    border: 1px solid #d8d8dc;
    border-radius: 3px;
    margin: 0 0 0.5rem;
    padding: 0.35rem 0.5rem 0.5rem;
}

.pdv-nc-program-edit-popup .pdv-nc-program-edit-body {
    overflow: hidden;
    padding: 0;
    max-height: calc(90vh - 7.5rem);
}

.pdv-nc-program-edit-scroll {
    overflow: auto;
    max-height: calc(90vh - 7.5rem);
    padding: 0.75rem 1rem;
}

.pdv-nc-program-edit-popup .dxbl-popup-footer {
    flex-shrink: 0;
}

.pdv-nc-program-form__group legend {
    font-size: 0.75rem;
    font-weight: 600;
    color: #444;
    padding: 0 0.25rem;
}

.pdv-assoc-path input {
    background: #5a5a5a !important;
    color: #f5f5f5 !important;
    border: none !important;
    font-size: 0.75rem;
}

.pdv-dialog__label,
.pdv-dialog__field label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: #444;
    margin-bottom: 0.15rem;
}

.pdv-dialog__field {
    margin-bottom: 0.5rem;
}

.pdv-dialog__field--inline {
    flex: 1 1 0;
    min-width: 140px;
}

.pdv-dialog__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: flex-end;
    margin-bottom: 0.5rem;
}

.pdv-dialog__actions {
    display: flex;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.pdv-dialog__error {
    color: #b00020;
    margin-bottom: 0.5rem;
    font-size: 0.8rem;
}

.pdv-dialog__empty,
.pdv-dialog__hint {
    font-size: 0.8rem;
    color: #666;
    margin: 0.35rem 0;
}

.pdv-dialog__memo {
    width: 100%;
}

.pdv-dialog__memo--code textarea {
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.75rem;
}

.pdv-dialog__memo--editor {
    height: calc(85vh - 11rem);
}

.pdv-dialog__memo--editor textarea {
    height: 100% !important;
    min-height: 320px;
    resize: vertical;
}

.pdv-dialog__status {
    margin: 0.5rem 0;
    color: #666;
}

.pdv-dialog__grid {
    min-height: 200px;
    margin-bottom: 0.5rem;
}

.pdv-dialog__editor {
    margin-top: 0.5rem;
}

.pdv-compare {
    display: flex;
    gap: 0.5rem;
    height: calc(85vh - 8rem);
    min-height: 280px;
}

.pdv-compare__pane {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.pdv-compare__title {
    margin: 0 0 0.25rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #444;
}

.pdv-compare__content {
    flex: 1 1 0;
    margin: 0;
    padding: 0.35rem 0.45rem;
    overflow: auto;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.75rem;
    line-height: 1.35;
    white-space: pre-wrap;
    word-break: break-word;
    background: #fff;
    border: 1px solid #e0e0e4;
    border-radius: 2px;
}
