/* /Pages/Backup.razor.rz.scp.css */
/* Backup — shell teal, bảng & modal đồng bộ */

.etl-bak[b-n5l1jfy2v9] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-bak__toolbar[b-n5l1jfy2v9] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-bak__intro[b-n5l1jfy2v9] {
    flex: 1;
    min-width: min(100%, 16rem);
}

.etl-bak__eyebrow[b-n5l1jfy2v9] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-bak__title[b-n5l1jfy2v9] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-bak__lead[b-n5l1jfy2v9] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 40rem;
    line-height: 1.5;
}

.etl-bak__toolbar-right[b-n5l1jfy2v9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.etl-bak__stamp[b-n5l1jfy2v9] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-bak__btn-add[b-n5l1jfy2v9] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1.15rem;
    font-weight: 600;
    font-size: 0.875rem;
    border: none;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-sidebar-active);
    color: #fff !important;
    box-shadow: 0 4px 14px var(--etl-accent-shadow-soft);
    transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.etl-bak__btn-add:hover:not(:disabled)[b-n5l1jfy2v9] {
    filter: brightness(1.06);
    color: #fff !important;
    box-shadow: 0 6px 18px var(--etl-accent-shadow);
}

.etl-bak__btn-add.btn-lg[b-n5l1jfy2v9] {
    padding: 0.65rem 1.35rem;
    font-size: 0.95rem;
    border-radius: var(--etl-radius-md);
}

.etl-bak__content[b-n5l1jfy2v9] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    padding: 1.1rem 1.2rem;
    min-width: 0;
}

.etl-bak__panel-head[b-n5l1jfy2v9] {
    margin-bottom: 1rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.etl-bak__section-title[b-n5l1jfy2v9] {
    margin-bottom: 0 !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.etl-bak__empty[b-n5l1jfy2v9] {
    text-align: center;
    padding: 2.25rem 1.25rem;
}

.etl-bak__empty-icon[b-n5l1jfy2v9] {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--etl-radius-md);
    display: grid;
    place-items: center;
    font-size: 1.65rem;
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-bak__empty-title[b-n5l1jfy2v9] {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--etl-text);
}

.etl-bak__empty-text[b-n5l1jfy2v9] {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 26rem;
    margin-inline: auto;
}

.etl-bak__pagination[b-n5l1jfy2v9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--etl-card-border);
}

.etl-bak__pagination-info[b-n5l1jfy2v9] {
    font-size: 0.8125rem;
    color: var(--etl-text-muted);
}

.etl-bak__pagination-controls[b-n5l1jfy2v9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.etl-bak__pagination-controls .btn-primary[b-n5l1jfy2v9] {
    background: var(--etl-accent) !important;
    border-color: var(--etl-accent) !important;
    color: #fff !important;
}

.etl-bak__pagination-controls .btn-primary:hover:not(:disabled)[b-n5l1jfy2v9] {
    background: var(--etl-accent-hover) !important;
    border-color: var(--etl-accent-hover) !important;
}

.etl-bak__page-icon[b-n5l1jfy2v9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.125rem;
    height: 2.125rem;
    padding: 0;
}

.etl-bak__table[b-n5l1jfy2v9]  tbody tr:hover {
    background: var(--etl-accent-muted);
}

/* Bảng danh sách job: cuộn ngang, cột đường dẫn đọc được, căn lưới rõ */
.etl-bak__table-wrap[b-n5l1jfy2v9] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--etl-radius-sm, 0.375rem);
}

.etl-bak__table[b-n5l1jfy2v9] {
    margin-bottom: 0;
    min-width: 1180px;
    table-layout: auto;
}

.etl-bak__table thead th[b-n5l1jfy2v9] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--etl-text-muted);
    vertical-align: middle;
    border-bottom-width: 2px;
}

.etl-bak__table thead th.col-name[b-n5l1jfy2v9],
.etl-bak__table thead th.col-desc[b-n5l1jfy2v9],
.etl-bak__table thead th.col-conn[b-n5l1jfy2v9],
.etl-bak__table thead th.col-path[b-n5l1jfy2v9] {
    text-align: left;
}

.etl-bak__table thead th.etl-col-stt[b-n5l1jfy2v9],
.etl-bak__table tbody td.etl-col-stt[b-n5l1jfy2v9] {
    text-align: left;
    vertical-align: middle;
    width: 3rem;
}

.etl-bak__table thead th.col-type[b-n5l1jfy2v9],
.etl-bak__table thead th.col-status[b-n5l1jfy2v9],
.etl-bak__table thead th.col-date[b-n5l1jfy2v9] {
    text-align: left;
}

.etl-bak__table thead th.col-actions[b-n5l1jfy2v9] {
    text-align: end;
}

/* Nội dung ô: chữ căn trái, căn giữa theo chiều dọc */
.etl-bak__table tbody td[b-n5l1jfy2v9] {
    vertical-align: middle;
}

.etl-bak__table thead th.col-path[b-n5l1jfy2v9] {
    min-width: 15rem;
}

.etl-bak__cell-name[b-n5l1jfy2v9] {
    vertical-align: middle;
    text-align: left;
}

.etl-bak__cell-desc[b-n5l1jfy2v9],
.etl-bak__cell-conn[b-n5l1jfy2v9],
.etl-bak__cell-path[b-n5l1jfy2v9] {
    text-align: left;
}

.etl-bak__job-name[b-n5l1jfy2v9] {
    font-weight: 700;
    color: var(--etl-text);
    font-size: 0.9375rem;
}

.etl-bak__cell-desc[b-n5l1jfy2v9] {
    max-width: 17rem;
    vertical-align: middle;
}

.etl-bak__desc-placeholder[b-n5l1jfy2v9] {
    font-size: 0.9rem;
}

.etl-bak__desc-text[b-n5l1jfy2v9] {
    font-size: 0.875rem;
    line-height: 1.45;
    word-break: break-word;
    overflow-wrap: anywhere;
    color: var(--etl-text);
}

.etl-bak__desc-meta[b-n5l1jfy2v9] {
    margin-top: 0.45rem;
}

.etl-bak__pill[b-n5l1jfy2v9] {
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.28em 0.7em;
    white-space: nowrap;
    border: none;
}

.etl-bak__pill--manual[b-n5l1jfy2v9] {
    background: rgba(100, 116, 139, 0.2) !important;
    color: #475569 !important;
}

.etl-bak__pill--schedule[b-n5l1jfy2v9] {
    background: rgba(14, 165, 233, 0.2) !important;
    color: #0369a1 !important;
}

.etl-bak__pill--conn[b-n5l1jfy2v9] {
    background: linear-gradient(135deg, #0369a1, #0ea5e9) !important;
    color: #fff !important;
}

.etl-bak__conn-db[b-n5l1jfy2v9] {
    margin-top: 0.35rem;
    color: var(--etl-text-muted);
    font-size: 0.8125rem;
}

.etl-bak__cell-conn[b-n5l1jfy2v9] {
    vertical-align: middle;
    min-width: 8rem;
}

.etl-bak__cell-type[b-n5l1jfy2v9] {
    vertical-align: middle;
    text-align: left;
}

.etl-bak__type-meta[b-n5l1jfy2v9] {
    margin-top: 0.35rem;
    color: var(--etl-text-muted);
    font-size: 0.75rem;
}

.etl-bak__cell-path[b-n5l1jfy2v9] {
    vertical-align: middle;
    min-width: 15rem;
    max-width: 24rem;
}

.etl-bak__path-box[b-n5l1jfy2v9] {
    padding: 0.4rem 0.55rem;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-bak__path-text[b-n5l1jfy2v9] {
    display: block;
    font-family: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.5;
    word-break: break-all;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
    color: var(--etl-accent-text);
}

.etl-bak__path-meta[b-n5l1jfy2v9] {
    margin-top: 0.45rem;
    color: var(--etl-text-muted);
    font-size: 0.8125rem;
}

.etl-bak__cell-status[b-n5l1jfy2v9] {
    vertical-align: middle;
    text-align: left;
}

.etl-bak__cell-status .status-badge[b-n5l1jfy2v9] {
    white-space: nowrap;
}

.etl-bak__cell-date[b-n5l1jfy2v9] {
    vertical-align: middle;
    text-align: left;
}

.etl-bak__date-text[b-n5l1jfy2v9] {
    font-size: 0.875rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    color: var(--etl-text);
}

.etl-bak__cell-actions[b-n5l1jfy2v9] {
    vertical-align: middle;
    text-align: end;
}

.etl-bak__cell-actions .btn-sm[b-n5l1jfy2v9] {
    flex-shrink: 0;
}

html[data-theme="dark"] .etl-bak__path-box[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__path-box[b-n5l1jfy2v9] {
    background: rgba(46, 179, 152, 0.12);
    border-color: rgba(255, 255, 255, 0.12);
}

html[data-theme="dark"] .etl-bak__path-text[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__path-text[b-n5l1jfy2v9] {
    color: var(--etl-accent-mid, #5eead4);
}

html[data-theme="dark"] .etl-bak__pill--manual[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__pill--manual[b-n5l1jfy2v9] {
    background: rgba(148, 163, 184, 0.18) !important;
    color: rgba(226, 232, 240, 0.92) !important;
}

html[data-theme="dark"] .etl-bak__pill--schedule[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__pill--schedule[b-n5l1jfy2v9] {
    background: rgba(14, 165, 233, 0.22) !important;
    color: #7dd3fc !important;
}

.etl-bak__modal-footer[b-n5l1jfy2v9] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.etl-bak__modal-content[b-n5l1jfy2v9] {
    border-radius: var(--etl-radius-md);
    border: 1px solid var(--etl-card-border);
    overflow: hidden;
}

html[data-theme="dark"] .etl-bak__content[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__content[b-n5l1jfy2v9] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-bak__panel-head[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__panel-head[b-n5l1jfy2v9],
html[data-theme="dark"] .etl-bak__pagination[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__pagination[b-n5l1jfy2v9] {
    border-color: rgba(255, 255, 255, 0.08);
}

/* Toolbar: nút hướng dẫn driver */
.etl-bak__btn-help[b-n5l1jfy2v9] {
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: var(--etl-radius-sm);
}

/* Modal lịch sử: rộng theo viewport, bảng cuộn ngang khi vượt 100% */
.etl-bak__modal-dialog--history[b-n5l1jfy2v9] {
    max-width: min(96vw, 1200px) !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.etl-bak__history-modal-body[b-n5l1jfy2v9] {
    min-width: 0;
}

.etl-bak__history-scroll[b-n5l1jfy2v9] {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    background: var(--etl-card);
}

.etl-bak__history-table[b-n5l1jfy2v9] {
    width: max-content;
    min-width: 100%;
    margin-bottom: 0;
    table-layout: auto;
}

.etl-bak__history-table .etl-col-stt[b-n5l1jfy2v9] {
    white-space: nowrap;
}

.etl-bak__history-cell-file[b-n5l1jfy2v9] {
    max-width: min(42vw, 26rem);
    min-width: 11rem;
    vertical-align: top;
}

.etl-bak__history-file-text[b-n5l1jfy2v9] {
    display: block;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    line-height: 1.45;
}

.etl-bak__history-table .col-status[b-n5l1jfy2v9] {
    min-width: 7.5rem;
    max-width: min(38vw, 22rem);
    vertical-align: top;
}

.etl-bak__history-error[b-n5l1jfy2v9] {
    margin-top: 0.4rem;
    max-width: 100%;
    max-height: 7rem;
    overflow: auto;
    overflow-x: auto;
    word-break: break-word;
    overflow-wrap: anywhere;
    font-size: 0.8125rem;
    line-height: 1.35;
}

/* Popup hướng dẫn driver / file backup */
.etl-bak__driver-help-body[b-n5l1jfy2v9] {
    font-size: 0.9375rem;
    line-height: 1.55;
}

.etl-bak__driver-help-lead[b-n5l1jfy2v9] {
    color: var(--etl-text-muted);
    font-size: 0.9rem;
}

.etl-bak__driver-section[b-n5l1jfy2v9] {
    margin-bottom: 1.15rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.etl-bak__driver-section:last-of-type[b-n5l1jfy2v9] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.etl-bak__driver-heading[b-n5l1jfy2v9] {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--etl-accent);
}

.etl-bak__driver-list[b-n5l1jfy2v9] {
    margin: 0;
    padding-left: 1.2rem;
    color: var(--etl-text);
}

.etl-bak__driver-list li + li[b-n5l1jfy2v9] {
    margin-top: 0.4rem;
}

.etl-bak__driver-list code[b-n5l1jfy2v9] {
    font-size: 0.84em;
    padding: 0.12em 0.4em;
    border-radius: 0.25rem;
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
    word-break: break-all;
}

html[data-theme="dark"] .etl-bak__history-scroll[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__history-scroll[b-n5l1jfy2v9] {
    background: rgba(15, 23, 42, 0.45);
    border-color: rgba(255, 255, 255, 0.1);
}

html[data-theme="dark"] .etl-bak__driver-section[b-n5l1jfy2v9],
html:not([data-theme="light"]) .etl-bak__driver-section[b-n5l1jfy2v9] {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
/* /Pages/Connections.razor.rz.scp.css */
/* Connections — surface tokens, đồng bộ Dashboard / shell */

.etl-conn[b-105vzlsexi] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-conn__toolbar[b-105vzlsexi] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-conn__title[b-105vzlsexi] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-conn__lead[b-105vzlsexi] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 36rem;
    line-height: 1.5;
}

.etl-conn__btn-add[b-105vzlsexi] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1.15rem;
    font-weight: 600;
    font-size: 0.875rem;
    border: none;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-sidebar-active);
    color: #fff !important;
    box-shadow: 0 4px 14px var(--etl-accent-shadow-soft);
    transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.etl-conn__btn-add:hover:not(:disabled)[b-105vzlsexi] {
    filter: brightness(1.06);
    color: #fff !important;
    box-shadow: 0 6px 18px var(--etl-accent-shadow);
}

.etl-conn__btn-add:disabled[b-105vzlsexi] {
    opacity: 0.75;
}

.etl-conn__panel[b-105vzlsexi] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    padding: 1.1rem 1.2rem;
    box-shadow: var(--etl-shadow-sm);
    min-width: 0;
}

.etl-conn__empty[b-105vzlsexi] {
    text-align: center;
    padding: 2.5rem 1.5rem;
}

.etl-conn__empty-icon[b-105vzlsexi] {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--etl-radius-md);
    display: grid;
    place-items: center;
    font-size: 1.65rem;
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-conn__empty-title[b-105vzlsexi] {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--etl-text);
}

.etl-conn__empty-text[b-105vzlsexi] {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
}

.etl-conn__th-actions[b-105vzlsexi] {
    width: 15rem;
    text-align: right !important;
}

.etl-conn__fieldset[b-105vzlsexi] {
    border: none;
    padding: 0;
    margin: 0 0 0.85rem;
    min-inline-size: 0;
    display: flow-root;
}

.etl-conn__fieldset:last-of-type[b-105vzlsexi] {
    margin-bottom: 0;
}

.etl-conn__form-row[b-105vzlsexi] {
    --bs-gutter-y: 0.45rem;
    --bs-gutter-x: 0.65rem;
}

.etl-conn__field[b-105vzlsexi] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
}

.etl-conn__label-muted[b-105vzlsexi] {
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
    font-size: 0.6875rem;
    color: var(--etl-text-muted);
    white-space: normal;
    margin-inline-start: 0.2em;
}

.etl-conn__field-hint[b-105vzlsexi] {
    font-size: 0.72rem;
    color: var(--etl-text-muted);
    margin-top: 0.2rem;
    line-height: 1.45;
    max-width: 36rem;
    text-align: start;
    padding-inline-start: 0;
}

.etl-conn__switch[b-105vzlsexi] {
    padding-top: 0;
    min-height: 2rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.etl-conn__switch .form-check-input[b-105vzlsexi] {
    margin-top: 0;
    flex-shrink: 0;
}

.etl-conn__switch .form-check-label[b-105vzlsexi] {
    text-align: start;
    line-height: 1.35;
}

.etl-conn__switch + .etl-conn__field-hint[b-105vzlsexi] {
    margin-top: 0.2rem;
    padding-inline-start: 2.85rem;
}

@media (max-width: 991.98px) {
    .etl-conn__switch + .etl-conn__field-hint[b-105vzlsexi] {
        padding-inline-start: 0;
    }
}

/* Bảng: header / viền / hover — dùng chuẩn global (app-shell-dark + components-enhanced), không ghi đè */

html[data-theme="dark"] .etl-conn .status-badge.success[b-105vzlsexi] {
    background: rgba(16, 185, 129, 0.2);
    color: #a7f3d0;
}

html[data-theme="dark"] .etl-conn .status-badge.warning[b-105vzlsexi] {
    background: rgba(251, 191, 36, 0.18);
    color: #fde68a;
}

html[data-theme="dark"] .etl-conn .etl-conn__panel[b-105vzlsexi] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] .etl-conn .skeleton[b-105vzlsexi] {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.06) 0%,
        rgba(255, 255, 255, 0.12) 50%,
        rgba(255, 255, 255, 0.06) 100%
    );
    background-size: 200% 100%;
}

/* ========== Popup thêm/sửa — teal / tokens (ghi đè app-modals-global cyan) ========== */

.etl-conn__modal-root .etl-conn__modal-shell[b-105vzlsexi] {
    border-radius: var(--etl-radius-lg);
    overflow: hidden;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-card) !important;
    background-image: none !important;
    color: var(--etl-text);
    box-shadow: var(--etl-shadow-lg);
}

/* EditForm = <form> là con trực tiếp của .modal-content — cần flex column để modal-body cuộn đúng */
.etl-conn__modal-root .etl-conn__modal-shell > form.etl-conn__modal-form[b-105vzlsexi] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    width: 100%;
    margin: 0;
}

.etl-conn__modal-root .modal-dialog.modal-dialog-scrollable .etl-conn__modal-shell > form.etl-conn__modal-form .etl-conn__modal-body[b-105vzlsexi] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.etl-conn__modal-root .etl-conn__modal.modal-dialog[b-105vzlsexi] {
    filter: drop-shadow(0 8px 28px var(--etl-accent-shadow-soft));
    /* Gọn hơn modal-lg mặc định (~800px), vẫn đủ 3 cột từ md */
    max-width: min(40rem, calc(100vw - 1.25rem));
    margin-left: auto;
    margin-right: auto;
}

.etl-conn__modal-header[b-105vzlsexi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    gap: 0.5rem;
    padding: 0.65rem 1rem;
    background: var(--etl-sidebar-active) !important;
    color: #fff;
    border-bottom: none;
}

.etl-conn__modal-title[b-105vzlsexi] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #fff !important;
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
    text-align: start;
}

.etl-conn__modal-header .btn-close[b-105vzlsexi] {
    filter: brightness(0) invert(1);
    opacity: 0.88;
}

.etl-conn__modal-body[b-105vzlsexi] {
    padding: 0.85rem 1rem !important;
    background: var(--etl-canvas) !important;
    color: var(--etl-text) !important;
    text-align: start;
}

.etl-conn__modal-footer[b-105vzlsexi] {
    padding: 0.6rem 1rem !important;
    background: var(--etl-card) !important;
    border-top: 1px solid var(--etl-card-border) !important;
    gap: 0.4rem;
    flex-wrap: wrap;
}

/* legend: bỏ lệch mặc định trình duyệt, căn trái thống nhất với form */
.etl-conn__modal-body .etl-conn__fieldset > legend.etl-conn__modal-section[b-105vzlsexi] {
    float: none;
    width: 100%;
    padding: 0;
    margin: 0 0 0.55rem;
}

.etl-conn__modal-section[b-105vzlsexi] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--etl-accent);
    margin: 0 0 0.55rem;
    padding: 0 0 0.4rem;
    border-bottom: 1px solid var(--etl-card-border);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    text-align: start;
    line-height: 1.3;
}

.etl-conn__modal-section i[b-105vzlsexi] {
    font-size: 0.88rem;
    opacity: 0.95;
    flex-shrink: 0;
}

.etl-conn__modal-body .form-label[b-105vzlsexi] {
    color: var(--etl-text-secondary);
    font-size: 0.78rem;
    font-weight: 600;
    margin-bottom: 0.28rem;
    line-height: 1.35;
    text-align: start;
    width: 100%;
}

.etl-conn__modal-body .form-control[b-105vzlsexi],
.etl-conn__modal-body .form-select[b-105vzlsexi],
.etl-conn__modal-body textarea.form-control[b-105vzlsexi] {
    background: var(--etl-input-soft) !important;
    border: 1px solid var(--etl-card-border) !important;
    color: var(--etl-text) !important;
    border-radius: var(--etl-radius-sm);
    font-size: 0.8125rem;
    padding: 0.4rem 0.55rem;
    line-height: 1.4;
}

.etl-conn__modal-body .form-control:focus[b-105vzlsexi],
.etl-conn__modal-body .form-select:focus[b-105vzlsexi],
.etl-conn__modal-body textarea.form-control:focus[b-105vzlsexi] {
    border-color: var(--etl-accent) !important;
    box-shadow: 0 0 0 3px var(--etl-accent-muted) !important;
    background: var(--etl-card) !important;
    color: var(--etl-text) !important;
}

.etl-conn__modal-body .form-control[b-105vzlsexi]::placeholder,
.etl-conn__modal-body textarea[b-105vzlsexi]::placeholder {
    color: var(--etl-text-muted);
    opacity: 0.85;
}

.etl-conn__modal-body .form-check-input[b-105vzlsexi] {
    width: 2.1rem;
    height: 1.08rem;
    cursor: pointer;
}

.etl-conn__modal-body .form-check-input:checked[b-105vzlsexi] {
    background-color: var(--etl-accent) !important;
    border-color: var(--etl-accent) !important;
}

.etl-conn__modal-body .form-check-input:focus[b-105vzlsexi] {
    box-shadow: 0 0 0 3px var(--etl-accent-muted);
    border-color: var(--etl-accent);
}

.etl-conn__modal-body .form-check-label[b-105vzlsexi] {
    color: var(--etl-text);
    font-size: 0.8125rem;
}

.etl-conn__modal-body .text-muted[b-105vzlsexi] {
    color: var(--etl-text-muted) !important;
}

/* Light: input + select cùng nền (tránh select bị màu khác do global / browser) */
html[data-theme="light"] .etl-conn__modal-root .etl-conn__modal-body .form-control[b-105vzlsexi],
html[data-theme="light"] .etl-conn__modal-root .etl-conn__modal-body .form-select[b-105vzlsexi],
html[data-theme="light"] .etl-conn__modal-root .etl-conn__modal-body textarea.form-control[b-105vzlsexi] {
    background: #fff !important;
    background-color: #fff !important;
    border-color: rgba(15, 23, 42, 0.14) !important;
}

html[data-theme="light"] .etl-conn__modal-root .etl-conn__modal-body .form-control:focus[b-105vzlsexi],
html[data-theme="light"] .etl-conn__modal-root .etl-conn__modal-body .form-select:focus[b-105vzlsexi],
html[data-theme="light"] .etl-conn__modal-root .etl-conn__modal-body textarea.form-control:focus[b-105vzlsexi] {
    background: #fff !important;
    background-color: #fff !important;
}

.etl-conn__modal-alert[b-105vzlsexi] {
    border-radius: var(--etl-radius-sm);
    font-size: 0.8rem;
    margin-bottom: 0.65rem !important;
    text-align: start;
}

.etl-conn__modal-body .validation-message[b-105vzlsexi] {
    font-size: 0.75rem;
    margin-top: 0.2rem;
    text-align: start;
    display: block;
}

.etl-conn__modal-btn-outline[b-105vzlsexi] {
    border-radius: var(--etl-radius-sm);
    font-weight: 600;
    font-size: 0.8125rem;
    padding: 0.35rem 0.65rem;
    border-color: var(--etl-card-border);
    color: var(--etl-text-secondary);
}

.etl-conn__modal-footer .etl-conn__btn-add[b-105vzlsexi] {
    font-size: 0.8125rem;
    padding: 0.4rem 0.85rem;
}

.etl-conn__modal-btn-outline:hover:not(:disabled)[b-105vzlsexi] {
    border-color: var(--etl-accent);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

/* Dark: ghi đè !important từ app-modals-global (cyan) */
html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-shell[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-shell[b-105vzlsexi] {
    border-color: var(--etl-accent-border) !important;
    box-shadow:
        0 0 0 1px rgba(46, 179, 152, 0.12),
        0 24px 56px rgba(0, 0, 0, 0.55) !important;
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal.modal-dialog[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal.modal-dialog[b-105vzlsexi] {
    filter: drop-shadow(0 0 28px rgba(46, 179, 152, 0.22)) !important;
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-body[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-body[b-105vzlsexi] {
    background: rgba(17, 20, 29, 0.92) !important;
    color: var(--etl-text) !important;
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-footer[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-footer[b-105vzlsexi] {
    background: var(--etl-card) !important;
    border-top-color: var(--etl-card-border) !important;
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-body .form-control[b-105vzlsexi],
html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-body .form-select[b-105vzlsexi],
html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-body textarea.form-control[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-body .form-control[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-body .form-select[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-body textarea.form-control[b-105vzlsexi] {
    background: var(--etl-input-soft) !important;
    border-color: var(--etl-card-border) !important;
    color: var(--etl-text) !important;
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-body .form-control:focus[b-105vzlsexi],
html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-body .form-select:focus[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-body .form-control:focus[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-body .form-select:focus[b-105vzlsexi] {
    border-color: var(--etl-accent) !important;
    box-shadow: 0 0 0 0.2rem var(--etl-accent-muted) !important;
    background: rgba(30, 41, 59, 0.45) !important;
    color: #fff !important;
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-section[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-section[b-105vzlsexi] {
    color: var(--etl-accent-mid) !important;
    border-bottom-color: var(--etl-card-border) !important;
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-btn-outline[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-btn-outline[b-105vzlsexi] {
    border-color: rgba(255, 255, 255, 0.14);
    color: rgba(226, 232, 240, 0.92);
    background: rgba(255, 255, 255, 0.04);
}

html[data-theme="dark"] .etl-conn__modal-root .etl-conn__modal-btn-outline:hover:not(:disabled)[b-105vzlsexi],
html:not([data-theme="light"]) .etl-conn__modal-root .etl-conn__modal-btn-outline:hover:not(:disabled)[b-105vzlsexi] {
    border-color: var(--etl-accent);
    color: var(--etl-accent-mid);
    background: var(--etl-accent-muted);
}
/* /Pages/Dashboard.razor.rz.scp.css */
/* Dashboard: giao diện chính trong wwwroot/css/app-dashboard.css.
   Scoped chỉ bổ sung tinh chỉnh nhỏ nếu cần sau này. */
/* /Pages/DataQuality.razor.rz.scp.css */
/* Data quality — shell teal, đồng bộ History / Scheduler */

.etl-dq[b-cmai019rcn] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-dq__toolbar[b-cmai019rcn] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-dq__intro[b-cmai019rcn] {
    flex: 1;
    min-width: min(100%, 16rem);
}

.etl-dq__eyebrow[b-cmai019rcn] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-dq__title[b-cmai019rcn] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-dq__lead[b-cmai019rcn] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 42rem;
    line-height: 1.5;
}

.etl-dq__stamp[b-cmai019rcn] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-dq__stats[b-cmai019rcn] {
    gap: 0.75rem;
    margin-bottom: 1.15rem;
}

/* 6 cột trên màn rộng; từ 1280px xuống 3×2 để số lớn không bị xuống dòng tùy ý */
.etl-dq__stats.stats-grid-single-row[b-cmai019rcn] {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

@media (max-width: 1280px) {
    .etl-dq__stats.stats-grid-single-row[b-cmai019rcn] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .etl-dq__stats.stats-grid-single-row[b-cmai019rcn] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.etl-dq__stats .stat-card-value[b-cmai019rcn] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.etl-dq__content[b-cmai019rcn] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    padding: 1.1rem 1.2rem;
    min-width: 0;
}

.etl-dq__panel-head[b-cmai019rcn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.etl-dq__section-title[b-cmai019rcn] {
    margin-bottom: 0 !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.etl-dq__filters[b-cmai019rcn] {
    row-gap: 0.5rem;
}

.etl-dq__select[b-cmai019rcn] {
    min-width: 11rem;
    max-width: 16rem;
}

.etl-dq__date[b-cmai019rcn] {
    width: auto;
    min-width: 10.5rem;
}

.etl-dq__mini-label[b-cmai019rcn] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--etl-text-muted);
}

.etl-dq__loading[b-cmai019rcn] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    color: var(--etl-text-secondary);
    font-weight: 500;
}

.etl-dq__spinner[b-cmai019rcn] {
    color: var(--etl-accent) !important;
}

.etl-dq__empty[b-cmai019rcn] {
    text-align: center;
    padding: 2rem 1.25rem;
}

.etl-dq__empty-icon[b-cmai019rcn] {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.85rem;
    border-radius: var(--etl-radius-md);
    display: grid;
    place-items: center;
    font-size: 1.5rem;
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-dq__empty-text[b-cmai019rcn] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
}

.etl-dq__table-wrap[b-cmai019rcn] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    border-radius: var(--etl-radius-sm, 0.375rem);
}

.etl-dq__table-wrap .activity-table[b-cmai019rcn] {
    min-width: 1340px;
}

.etl-dq__th-job[b-cmai019rcn] {
    width: 11rem;
    min-width: 11rem;
}

.etl-dq__th-date[b-cmai019rcn] {
    min-width: 9.5rem;
}

.etl-dq__col-help[b-cmai019rcn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.35rem;
    padding: 0.12rem 0.2rem;
    border: none;
    background: transparent;
    color: var(--etl-text-muted, #64748b);
    cursor: pointer;
    border-radius: 0.25rem;
    line-height: 1;
    vertical-align: middle;
    transition: color 0.15s ease, background 0.15s ease;
}

.etl-dq__col-help:hover[b-cmai019rcn] {
    color: var(--etl-accent, #0d9488);
    background: var(--etl-accent-muted, rgba(13, 148, 136, 0.12));
}

.etl-dq__col-help:focus-visible[b-cmai019rcn] {
    outline: 2px solid var(--etl-accent, #0d9488);
    outline-offset: 2px;
}

.etl-dq__cell-nowrap[b-cmai019rcn] {
    white-space: nowrap;
}

.etl-dq__cell-job[b-cmai019rcn] {
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.etl-dq__cell-num[b-cmai019rcn] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* STT căn giữa; Tên job căn trái; các cột số liệu căn giữa */
.etl-dq__table thead th:nth-child(1)[b-cmai019rcn],
.etl-dq__table tbody td:nth-child(1)[b-cmai019rcn] {
    text-align: center;
    vertical-align: middle;
}

.etl-dq__table thead th:nth-child(2)[b-cmai019rcn],
.etl-dq__table tbody td:nth-child(2)[b-cmai019rcn] {
    text-align: left;
    vertical-align: middle;
}

.etl-dq__table thead th:nth-child(n + 3)[b-cmai019rcn],
.etl-dq__table tbody td:nth-child(n + 3)[b-cmai019rcn] {
    text-align: center;
    vertical-align: middle;
}

.etl-dq__cell-rate .badge[b-cmai019rcn],
.etl-dq__cell-score .status-badge[b-cmai019rcn] {
    white-space: nowrap;
}

.etl-dq__table[b-cmai019rcn]  tbody tr:hover {
    background: var(--etl-accent-muted);
}

.etl-dq__table-footnote[b-cmai019rcn] {
    line-height: 1.5;
    max-width: 72rem;
}

/* Modal giải thích cột */
.etl-dq__modal-backdrop[b-cmai019rcn] {
    position: fixed;
    inset: 0;
    z-index: 10980;
    background-color: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.etl-dq__modal-root[b-cmai019rcn] {
    position: fixed;
    inset: 0;
    z-index: 10990;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    overflow: auto;
}

.etl-dq__help-body[b-cmai019rcn] {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--etl-text);
}

.etl-dq__help-lead[b-cmai019rcn] {
    margin: 0 0 1rem;
    font-size: 0.98rem;
    font-weight: 500;
    color: var(--etl-text);
    line-height: 1.55;
}

.etl-dq__help-subheading[b-cmai019rcn] {
    margin: 0 0 0.5rem;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--etl-accent);
}

.etl-dq__help-list[b-cmai019rcn] {
    margin: 0 0 1.1rem;
    padding-left: 1.2rem;
    color: var(--etl-text-muted);
    font-size: 0.9rem;
    line-height: 1.55;
}

.etl-dq__help-list li + li[b-cmai019rcn] {
    margin-top: 0.35rem;
}

.etl-dq__help-list--tips[b-cmai019rcn] {
    color: var(--etl-text);
}

.etl-dq__help-list--tips li[b-cmai019rcn]::marker {
    color: var(--etl-accent);
}

html[data-theme="dark"] .etl-dq__modal-backdrop[b-cmai019rcn],
html:not([data-theme="light"]) .etl-dq__modal-backdrop[b-cmai019rcn] {
    background-color: rgba(2, 6, 12, 0.65);
}

.etl-dq__pagination[b-cmai019rcn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--etl-card-border);
}

.etl-dq__pagination:has(.etl-dq__pagination-info:only-child)[b-cmai019rcn] {
    justify-content: flex-start;
}

.etl-dq__pagination-info[b-cmai019rcn] {
    font-size: 0.8125rem;
    color: var(--etl-text-muted);
}

.etl-dq__pagination-controls[b-cmai019rcn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.etl-dq__pagination-controls .btn-primary[b-cmai019rcn] {
    background: var(--etl-accent) !important;
    border-color: var(--etl-accent) !important;
    color: #fff !important;
}

.etl-dq__pagination-controls .btn-primary:hover:not(:disabled)[b-cmai019rcn] {
    background: var(--etl-accent-hover) !important;
    border-color: var(--etl-accent-hover) !important;
}

.etl-dq__page-icon[b-cmai019rcn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.125rem;
    height: 2.125rem;
    padding: 0;
}

html[data-theme="dark"] .etl-dq__content[b-cmai019rcn],
html:not([data-theme="light"]) .etl-dq__content[b-cmai019rcn] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-dq__panel-head[b-cmai019rcn],
html:not([data-theme="light"]) .etl-dq__panel-head[b-cmai019rcn],
html[data-theme="dark"] .etl-dq__pagination[b-cmai019rcn],
html:not([data-theme="light"]) .etl-dq__pagination[b-cmai019rcn] {
    border-color: rgba(255, 255, 255, 0.08);
}
/* /Pages/History.razor.rz.scp.css */
/* Job history — đồng bộ Jobs / Connections */

.etl-hist[b-r3k7tv4em5] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-hist__toolbar[b-r3k7tv4em5] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-hist__intro[b-r3k7tv4em5] {
    flex: 1;
    min-width: min(100%, 16rem);
}

.etl-hist__eyebrow[b-r3k7tv4em5] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-hist__title[b-r3k7tv4em5] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-hist__lead[b-r3k7tv4em5] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 42rem;
    line-height: 1.5;
}

.etl-hist__toolbar-right[b-r3k7tv4em5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
}

.etl-hist__btn-icon[b-r3k7tv4em5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.125rem;
    height: 2.125rem;
    padding: 0;
    border-radius: var(--etl-radius-sm);
}

.etl-hist__btn-icon:focus-visible[b-r3k7tv4em5],
.etl-hist__btn-nav:focus-visible[b-r3k7tv4em5],
.etl-hist__reset-filters:focus-visible[b-r3k7tv4em5] {
    outline: 2px solid var(--etl-accent);
    outline-offset: 2px;
}

.etl-hist__btn-icon:disabled[b-r3k7tv4em5] {
    opacity: 0.5;
    cursor: not-allowed;
}

.etl-hist__btn-nav[b-r3k7tv4em5] {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    font-size: 0.8125rem;
    padding: 0.4rem 0.85rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-accent-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text) !important;
    transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.etl-hist__btn-nav:hover:not(:disabled)[b-r3k7tv4em5] {
    filter: brightness(1.05);
    box-shadow: 0 2px 10px var(--etl-accent-shadow-soft);
    color: var(--etl-accent-text) !important;
}

.etl-hist__btn-nav--ghost[b-r3k7tv4em5] {
    background: transparent;
    color: var(--etl-text-secondary) !important;
    border-color: var(--etl-card-border);
}

.etl-hist__btn-nav--ghost:hover:not(:disabled)[b-r3k7tv4em5] {
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text) !important;
    border-color: var(--etl-accent-border);
}

.etl-hist__btn-nav:disabled[b-r3k7tv4em5],
.etl-hist__btn-nav--ghost:disabled[b-r3k7tv4em5] {
    opacity: 0.5;
    cursor: not-allowed;
    filter: none;
    box-shadow: none;
}

@keyframes etl-hist-icon-spin-b-r3k7tv4em5 {
    to {
        transform: rotate(360deg);
    }
}

.etl-hist__icon-spin[b-r3k7tv4em5] {
    display: inline-block;
    animation: etl-hist-icon-spin-b-r3k7tv4em5 0.85s linear infinite;
}

.etl-hist__stamp[b-r3k7tv4em5] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

/* Một thẻ: bộ lọc + bảng */
.etl-hist__content[b-r3k7tv4em5] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    min-width: 0;
    overflow: hidden;
}

.etl-hist__filters[b-r3k7tv4em5] {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 1rem 1.15rem;
    margin-bottom: 0;
    border-bottom: 1px solid var(--etl-card-border);
}

.etl-hist__field-label[b-r3k7tv4em5] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--etl-text-secondary);
    margin-bottom: 0.35rem;
}

.etl-hist__filters-head[b-r3k7tv4em5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 0.9rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.etl-hist__filters-section-title[b-r3k7tv4em5] {
    margin-bottom: 0 !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.etl-hist__reset-filters[b-r3k7tv4em5] {
    font-weight: 600;
    text-decoration: none !important;
    color: var(--etl-accent-text) !important;
    padding: 0.15rem 0.35rem !important;
    white-space: nowrap;
}

.etl-hist__reset-filters:hover:not(:disabled)[b-r3k7tv4em5] {
    color: var(--etl-accent) !important;
    text-decoration: underline !important;
}

.etl-hist__reset-filters:disabled[b-r3k7tv4em5] {
    opacity: 0.45;
    pointer-events: none;
}

.etl-hist__panel[b-r3k7tv4em5] {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 1.1rem 1.2rem;
    min-width: 0;
}

.etl-hist__section-title[b-r3k7tv4em5] {
    margin-bottom: 0 !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.etl-hist__toolbar-row[b-r3k7tv4em5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.etl-hist__result-count[b-r3k7tv4em5] {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--etl-text-muted);
    vertical-align: middle;
}

.etl-hist__btn-bulk[b-r3k7tv4em5] {
    font-weight: 600;
}

/* Phân trang: trang hiện tại dùng accent teal */
.etl-hist__pagination-controls .btn-primary[b-r3k7tv4em5] {
    background: var(--etl-accent) !important;
    border-color: var(--etl-accent) !important;
    color: #fff !important;
}

.etl-hist__pagination-controls .btn-primary:hover:not(:disabled)[b-r3k7tv4em5] {
    background: var(--etl-accent-hover) !important;
    border-color: var(--etl-accent-hover) !important;
    filter: brightness(1.02);
}

.etl-hist__pagination-controls .btn-primary:focus-visible[b-r3k7tv4em5] {
    box-shadow: 0 0 0 0.2rem var(--etl-accent-shadow-soft);
}

.etl-hist__page-icon[b-r3k7tv4em5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.125rem;
    height: 2.125rem;
    padding: 0;
}

.etl-hist__empty-actions .btn:focus-visible[b-r3k7tv4em5] {
    outline: 2px solid var(--etl-accent);
    outline-offset: 2px;
}

.etl-hist__empty[b-r3k7tv4em5] {
    text-align: center;
    padding: 2.25rem 1.25rem;
}

.etl-hist__empty-icon[b-r3k7tv4em5] {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--etl-radius-md);
    display: grid;
    place-items: center;
    font-size: 1.65rem;
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-hist__empty-title[b-r3k7tv4em5] {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--etl-text);
}

.etl-hist__empty-text[b-r3k7tv4em5] {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 26rem;
    margin-inline: auto;
}

.etl-hist__empty-actions[b-r3k7tv4em5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.65rem;
}

.etl-hist__skeleton[b-r3k7tv4em5] {
    overflow-x: auto;
    margin: 0 -0.15rem;
    padding-bottom: 0.25rem;
}

.etl-hist__skeleton-row[b-r3k7tv4em5] {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.etl-hist__skeleton-cell[b-r3k7tv4em5] {
    height: 2.25rem;
    border-radius: var(--etl-radius-sm);
    min-width: 0;
    flex: 1 1 4rem;
}

.etl-hist__skeleton-cell--stt[b-r3k7tv4em5] {
    flex: 0 0 2.5rem;
    max-width: 2.75rem;
}

.etl-hist__skeleton-cell--chk[b-r3k7tv4em5] {
    flex: 0 0 2.25rem;
    max-width: 2.25rem;
}

.etl-hist__skeleton-cell--job[b-r3k7tv4em5] {
    flex: 1.4 1 10rem;
}

.etl-hist__skeleton-cell--narrow[b-r3k7tv4em5] {
    flex: 0.7 1 3.5rem;
    max-width: 5.5rem;
}

.etl-hist__skeleton-cell--badge[b-r3k7tv4em5] {
    flex: 0 0 5.5rem;
    max-width: 6.5rem;
}

.etl-hist__skeleton-cell--actions[b-r3k7tv4em5] {
    flex: 0 0 7.5rem;
    max-width: 8rem;
}

.etl-hist__table[b-r3k7tv4em5]  tbody tr:hover {
    background: var(--etl-accent-muted);
}

.etl-hist__th-actions[b-r3k7tv4em5] {
    width: 10.5rem;
    text-align: right !important;
}

.etl-hist__pagination[b-r3k7tv4em5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--etl-card-border);
}

.etl-hist__pagination:has(.etl-hist__pagination-info:only-child)[b-r3k7tv4em5] {
    justify-content: flex-start;
}

.etl-hist__pagination-info[b-r3k7tv4em5] {
    font-size: 0.8125rem;
    color: var(--etl-text-muted);
}

.etl-hist__pagination-controls[b-r3k7tv4em5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

html[data-theme="dark"] .etl-hist__content[b-r3k7tv4em5],
html:not([data-theme="light"]) .etl-hist__content[b-r3k7tv4em5] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-hist__filters[b-r3k7tv4em5],
html:not([data-theme="light"]) .etl-hist__filters[b-r3k7tv4em5],
html[data-theme="dark"] .etl-hist__toolbar-row[b-r3k7tv4em5],
html:not([data-theme="light"]) .etl-hist__toolbar-row[b-r3k7tv4em5] {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-hist__filters-head[b-r3k7tv4em5],
html:not([data-theme="light"]) .etl-hist__filters-head[b-r3k7tv4em5] {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
/* /Pages/HistoryLog.razor.rz.scp.css */
/* Job run logs */

.page-history-log[b-b9s7o9f8mt]  .page-header__icon {
    background: linear-gradient(135deg, #6d28d9, #8b5cf6);
}

.page-history-log[b-b9s7o9f8mt]  .activity-section {
    border-radius: 1rem;
}
/* /Pages/JobCreate.razor.rz.scp.css */
/* Job create / edit — layout rail + workspace + sections (đồng bộ Connections / tokens) */

.etl-job-create[b-h410bbwd5b] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-job-create__toolbar[b-h410bbwd5b] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-job-create__toolbar-right[b-h410bbwd5b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.etl-job-create__eyebrow[b-h410bbwd5b] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-job-create__stamp[b-h410bbwd5b] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-job-create__spinner[b-h410bbwd5b] {
    color: var(--etl-accent) !important;
}

.etl-job-create__title[b-h410bbwd5b] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-job-create__lead[b-h410bbwd5b] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 40rem;
    line-height: 1.5;
}

.etl-job-create__btn-back[b-h410bbwd5b] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.95rem;
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    background: transparent;
    transition:
        border-color 0.15s ease,
        color 0.15s ease,
        background 0.15s ease;
}

.etl-job-create__btn-back:hover:not(:disabled)[b-h410bbwd5b] {
    border-color: var(--etl-accent);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

.etl-job-create__btn-back:disabled[b-h410bbwd5b] {
    opacity: 0.6;
}

.page-job-create .etl-job-create__workspace[b-h410bbwd5b] {
    background: var(--etl-card) !important;
    border: 1px solid var(--etl-card-border) !important;
    border-radius: var(--etl-radius-md) !important;
    box-shadow: var(--etl-shadow-sm) !important;
    padding: 1.1rem 1.2rem !important;
}

html[data-theme="dark"] .page-job-create .etl-job-create__workspace[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .etl-job-create__workspace[b-h410bbwd5b] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45) !important;
}

/* ----- Layout: rail + main ----- */
.page-job-create .job-create-layout[b-h410bbwd5b] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

@media (min-width: 992px) {
    .page-job-create .job-create-layout[b-h410bbwd5b] {
        grid-template-columns: 11.5rem minmax(0, 1fr);
        gap: 1.25rem;
    }
}

.page-job-create .job-create-rail[b-h410bbwd5b] {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.35rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0.35rem 0;
    margin: 0 -0.15rem;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

@media (min-width: 992px) {
    .page-job-create .job-create-rail[b-h410bbwd5b] {
        flex-direction: column;
        flex-wrap: nowrap;
        overflow: visible;
        position: sticky;
        top: 0.75rem;
        padding: 0.5rem 0;
        margin: 0;
        max-height: calc(100vh - 5rem);
    }
}

.page-job-create .job-rail-link[b-h410bbwd5b] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    border-radius: 0.6rem;
    text-decoration: none;
    color: rgba(226, 232, 240, 0.88);
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(15, 23, 42, 0.45);
    font-size: 0.8125rem;
    font-weight: 500;
    font-family: inherit;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    flex-shrink: 0;
    cursor: pointer;
    text-align: left;
    width: auto;
    appearance: none;
    -webkit-appearance: none;
}

@media (min-width: 992px) {
    .page-job-create .job-rail-link[b-h410bbwd5b] {
        white-space: normal;
        width: 100%;
    }
}

.page-job-create .job-rail-link:hover[b-h410bbwd5b] {
    background: var(--etl-accent-muted);
    border-color: var(--etl-accent-border);
    color: var(--etl-text);
}

.page-job-create .job-rail-num[b-h410bbwd5b] {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 0.45rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--etl-sidebar-active);
    color: #fff;
    flex-shrink: 0;
}

.page-job-create .job-rail-label[b-h410bbwd5b] {
    line-height: 1.25;
}

.page-job-create .job-create-main-stack[b-h410bbwd5b] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Một khối workspace thống nhất */
.page-job-create .job-create-workspace[b-h410bbwd5b] {
    padding-top: 1.25rem !important;
    padding-bottom: 1.5rem !important;
}

.page-job-create .job-create-section[b-h410bbwd5b] {
    scroll-margin-top: 5.5rem;
    padding: 0 0 1.35rem;
    margin: 0 0 1.35rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.page-job-create .job-create-section--last[b-h410bbwd5b],
.page-job-create .job-create-section:last-of-type[b-h410bbwd5b] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.page-job-create .job-section-header--in-workspace[b-h410bbwd5b] {
    margin: 0 0 0.35rem !important;
    padding: 0 0 0.85rem !important;
    border-radius: 0;
    border-bottom: 1px solid var(--etl-accent-border) !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--etl-text);
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.page-job-create .job-section-title[b-h410bbwd5b] {
    flex: 1;
    min-width: 0;
}

.page-job-create .job-section-header__icon[b-h410bbwd5b] {
    color: var(--etl-accent);
}

.page-job-create .job-step-badge[b-h410bbwd5b] {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--etl-sidebar-active);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.95rem;
    flex-shrink: 0;
    box-shadow: 0 4px 14px var(--etl-accent-shadow-soft);
}

.page-job-create .job-section-header__badge[b-h410bbwd5b] {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
}

.page-job-create .job-section-lead[b-h410bbwd5b] {
    color: rgba(148, 163, 184, 0.95) !important;
}

.page-job-create .job-sql-toolbar[b-h410bbwd5b] {
    padding: 0.35rem 0.5rem;
    border-radius: 0.55rem;
    background: rgba(2, 6, 23, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.page-job-create .job-sql-toolbar__label[b-h410bbwd5b] {
    letter-spacing: 0.06em;
}

.page-job-create .job-sql-editor[b-h410bbwd5b],
.page-job-create textarea.form-control[b-h410bbwd5b] {
    min-height: 8rem;
    font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
    font-size: 0.875rem;
    line-height: 1.5;
    background: rgba(2, 6, 23, 0.55);
    border-color: rgba(255, 255, 255, 0.12);
    color: #e2e8f0;
}

.page-job-create textarea.form-control[b-h410bbwd5b]::placeholder {
    color: rgba(148, 163, 184, 0.75);
}

.page-job-create textarea.form-control:focus[b-h410bbwd5b] {
    background: rgba(2, 6, 23, 0.78);
    border-color: rgba(56, 189, 248, 0.55);
    color: #f8fafc;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.15);
}

.page-job-create .form-control:not(textarea)[b-h410bbwd5b],
.page-job-create .form-select[b-h410bbwd5b] {
    background: rgba(15, 23, 42, 0.45);
    border-color: rgba(255, 255, 255, 0.12);
    color: #e2e8f0;
}

.page-job-create .form-control:not(textarea)[b-h410bbwd5b]::placeholder {
    color: rgba(148, 163, 184, 0.7);
}

.page-job-create .form-control:not(textarea):focus[b-h410bbwd5b],
.page-job-create .form-select:focus[b-h410bbwd5b] {
    background: rgba(15, 23, 42, 0.68);
    border-color: rgba(56, 189, 248, 0.5);
    color: #f8fafc;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.12);
}

.page-job-create .input-group-text[b-h410bbwd5b] {
    background: rgba(15, 23, 42, 0.55);
    border-color: rgba(255, 255, 255, 0.12);
    color: #94a3b8;
}

.page-job-create .job-subpanel[b-h410bbwd5b] {
    background: rgba(15, 23, 42, 0.38) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

.page-job-create .job-subpanel--callout[b-h410bbwd5b] {
    background: rgba(14, 165, 233, 0.1) !important;
    border-color: rgba(56, 189, 248, 0.28) !important;
}

.page-job-create .job-subpanel h6[b-h410bbwd5b] {
    color: inherit;
}

/* Collapsible help */
.page-job-create .job-help-details[b-h410bbwd5b] {
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.55rem;
    background: rgba(14, 165, 233, 0.08);
    padding: 0.5rem 0.85rem;
}

.page-job-create .job-help-summary[b-h410bbwd5b] {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.875rem;
    color: #bae6fd;
    list-style: none;
    display: flex;
    align-items: center;
}

.page-job-create .job-help-summary[b-h410bbwd5b]::-webkit-details-marker {
    display: none;
}

.page-job-create .job-help-summary[b-h410bbwd5b]::after {
    content: "";
    width: 0.35rem;
    height: 0.35rem;
    border-right: 2px solid rgba(125, 211, 252, 0.7);
    border-bottom: 2px solid rgba(125, 211, 252, 0.7);
    transform: rotate(45deg);
    margin-left: auto;
    transition: transform 0.2s ease;
}

.page-job-create .job-help-details[open] .job-help-summary[b-h410bbwd5b]::after {
    transform: rotate(-135deg);
}

.page-job-create .job-help-body[b-h410bbwd5b] {
    color: rgba(226, 232, 240, 0.92);
}

.page-job-create .job-help-body code[b-h410bbwd5b] {
    font-size: 0.84em;
}

/* ----- Bước 3: Đích & UPSERT — panel + căn lưới ----- */
.page-job-create .job-step3-panel[b-h410bbwd5b] {
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    background: var(--etl-card);
    padding: 0 1rem 1rem;
    box-shadow: var(--etl-shadow-sm);
    text-align: start;
}

.page-job-create[b-h410bbwd5b]  .job-create-subpanel-head {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--etl-accent);
    margin: 0 -1rem 0.75rem;
    padding: 0.5rem 1rem;
    background: var(--etl-accent-muted);
    border-bottom: 1px solid var(--etl-card-border);
}

.page-job-create[b-h410bbwd5b]  .job-create-subpanel-head--spaced {
    margin-top: 1rem;
}

.page-job-create[b-h410bbwd5b]  .job-create-subpanel-head--inline {
    margin: 0.85rem -1rem 0.65rem;
}

.page-job-create .job-step3-form-row[b-h410bbwd5b] {
    margin-bottom: 0;
}

.page-job-create .job-step3-upsert-manual[b-h410bbwd5b] {
    max-width: 22rem;
}

.page-job-create .job-step3-field-hint[b-h410bbwd5b] {
    font-size: 0.78rem;
    color: var(--etl-text-muted);
    line-height: 1.45;
    margin-top: 0.35rem;
}

.page-job-create .job-step3-hash-block[b-h410bbwd5b] {
    margin: 1rem -1rem 0;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--etl-card-border);
    background: var(--etl-canvas);
}

.page-job-create .job-step3-hash-row[b-h410bbwd5b] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.65rem 1rem;
    align-items: start;
    max-width: 40rem;
}

.page-job-create .job-step3-hash-row__switch[b-h410bbwd5b] {
    padding-top: 0.2rem;
}

.page-job-create .job-step3-hash-switch .form-check-input[b-h410bbwd5b] {
    width: 2.35rem;
    height: 1.2rem;
    cursor: pointer;
}

.page-job-create .job-step3-hash-switch .form-check-input:checked[b-h410bbwd5b] {
    background-color: var(--etl-accent) !important;
    border-color: var(--etl-accent) !important;
}

.page-job-create .job-step3-hash-title[b-h410bbwd5b] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--etl-text);
    cursor: pointer;
}

.page-job-create .job-step3-hash-lead[b-h410bbwd5b] {
    font-size: 0.78rem;
    color: var(--etl-text-muted);
    line-height: 1.45;
    margin-top: 0.25rem;
}

.page-job-create .job-step3-hash-warn[b-h410bbwd5b] {
    font-size: 0.78rem;
    color: #b45309;
    line-height: 1.45;
    margin-top: 0.45rem;
    padding: 0.35rem 0.5rem;
    border-radius: var(--etl-radius-sm);
    background: rgba(251, 191, 36, 0.12);
    border: 1px solid rgba(251, 191, 36, 0.35);
}

html[data-theme="dark"] .page-job-create .job-step3-hash-warn[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-step3-hash-warn[b-h410bbwd5b] {
    color: #fde68a;
    background: rgba(251, 191, 36, 0.08);
}

/* ----- Bước 5: Tải tăng dần (component con) ----- */
.page-job-create[b-h410bbwd5b]  .job-step5-panel {
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    background: var(--etl-card);
    padding: 0 1rem 1rem;
    box-shadow: var(--etl-shadow-sm);
    text-align: start;
}

.page-job-create[b-h410bbwd5b]  .job-step5-code {
    font-size: 0.8em;
    padding: 0.1em 0.35em;
    border-radius: 4px;
    background: var(--etl-input-soft);
    border: 1px solid var(--etl-card-border);
    color: var(--etl-accent);
}

.page-job-create[b-h410bbwd5b]  .job-step5-incr-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.65rem 1rem;
    align-items: start;
    margin-top: 0.5rem;
    max-width: 42rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-incr-row__switch {
    padding-top: 0.2rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-switch .form-check-input {
    width: 2.35rem;
    height: 1.2rem;
    cursor: pointer;
}

.page-job-create[b-h410bbwd5b]  .job-step5-switch .form-check-input:checked {
    background-color: var(--etl-accent) !important;
    border-color: var(--etl-accent) !important;
}

.page-job-create[b-h410bbwd5b]  .job-step5-incr-title {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--etl-text);
    cursor: pointer;
}

.page-job-create[b-h410bbwd5b]  .job-step5-incr-lead {
    font-size: 0.78rem;
    color: var(--etl-text-muted);
    line-height: 1.45;
    margin-top: 0.25rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-incr-lead .job-step5-code {
    color: var(--etl-text);
}

.page-job-create #job-step-5.job-create-section[b-h410bbwd5b] {
    margin-top: 0.35rem;
    padding-top: 0.35rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback {
    margin-top: 1rem;
    padding: 1rem 1.1rem 1rem;
    border-radius: var(--etl-radius-md);
    border: 1px solid var(--etl-card-border);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-head {
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--etl-text);
    letter-spacing: -0.01em;
    line-height: 1.35;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-sub {
    font-weight: 500;
    color: var(--etl-text-muted);
    font-size: 0.8125rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-strategy {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.page-job-create[b-h410bbwd5b]  .job-step5-strategy-label {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--etl-accent);
}

.page-job-create[b-h410bbwd5b]  .job-step5-strategy-options {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-item .form-check-label {
    display: block;
    line-height: 1.4;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-option-title {
    display: block;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--etl-text);
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-option-desc {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--etl-text-muted);
    line-height: 1.45;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-nested {
    margin-top: 0.5rem;
    margin-inline-start: 1.65rem;
    max-width: 14rem;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-field-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--etl-text-muted);
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-date.form-control:disabled {
    opacity: 0.55;
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--etl-card-border);
}

.page-job-create[b-h410bbwd5b]  .job-step5-fallback-hint {
    flex: 1 1 12rem;
    text-align: end;
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--etl-text-muted);
}

@media (max-width: 575.98px) {
    .page-job-create[b-h410bbwd5b]  .job-step5-fallback-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .page-job-create[b-h410bbwd5b]  .job-step5-fallback-hint {
        text-align: start;
    }
}

html[data-theme="dark"] .page-job-create .job-step3-panel[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-step3-panel[b-h410bbwd5b] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

html[data-theme="dark"] .page-job-create[b-h410bbwd5b]  .job-step5-panel,
html:not([data-theme="light"]) .page-job-create[b-h410bbwd5b]  .job-step5-panel {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

html[data-theme="light"] .page-job-create .job-step3-hash-block[b-h410bbwd5b] {
    background: #f8fafc;
}

/* ----- Mục 4: Vận hành & hiệu năng ----- */
.page-job-create[b-h410bbwd5b]  .job-step4-panel {
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    background: var(--etl-card);
    box-shadow: var(--etl-shadow-sm);
    padding: 0 1rem 1.1rem;
    text-align: start;
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
    margin-top: 0.15rem;
}

@media (min-width: 576px) {
    .page-job-create[b-h410bbwd5b]  .job-step4-switch-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .page-job-create[b-h410bbwd5b]  .job-step4-switch-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.55rem 0.85rem;
    }
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch-cell {
    padding: 0.75rem 0.85rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.09);
    background: rgba(15, 23, 42, 0.38);
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.55rem 0.85rem;
    align-items: start;
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch-track {
    padding-top: 0.12rem;
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch-body {
    min-width: 0;
    text-align: start;
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch-title {
    display: block;
    font-weight: 600;
    font-size: 0.875rem;
    color: rgba(241, 245, 249, 0.96);
    cursor: pointer;
    margin: 0 0 0.2rem;
    line-height: 1.35;
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch {
    display: flex;
    align-items: center;
    margin: 0;
    min-height: 1.35rem;
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch .form-check-input {
    width: 2.35rem;
    height: 1.2rem;
    margin: 0;
    cursor: pointer;
    --bs-form-switch-bg: rgba(148, 163, 184, 0.45);
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch .form-check-input:checked {
    background-color: var(--etl-accent) !important;
    border-color: var(--etl-accent) !important;
}

.page-job-create[b-h410bbwd5b]  .job-step4-switch-hint {
    display: block;
    font-size: 0.72rem;
    line-height: 1.45;
    color: rgba(148, 163, 184, 0.92);
}

.page-job-create[b-h410bbwd5b]  .job-step4-batch-row {
    margin-top: 0.35rem;
}

.page-job-create[b-h410bbwd5b]  .job-step4-status {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.8rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

@media (min-width: 992px) {
    .page-job-create[b-h410bbwd5b]  .job-step4-status {
        flex-shrink: 0;
        width: min(100%, 13.5rem);
        align-self: stretch;
    }
}

.page-job-create[b-h410bbwd5b]  .job-step4-status--on {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(52, 211, 153, 0.32);
}

.page-job-create[b-h410bbwd5b]  .job-step4-status--off {
    background: rgba(71, 85, 105, 0.22);
    border-color: rgba(148, 163, 184, 0.22);
}

.page-job-create[b-h410bbwd5b]  .job-step4-status__dot {
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.page-job-create[b-h410bbwd5b]  .job-step4-status--on .job-step4-status__dot {
    background: #34d399;
    box-shadow: 0 0 10px rgba(52, 211, 153, 0.55);
}

.page-job-create[b-h410bbwd5b]  .job-step4-status--off .job-step4-status__dot {
    background: #64748b;
}

.page-job-create[b-h410bbwd5b]  .job-step4-status__label {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: rgba(148, 163, 184, 0.95);
}

.page-job-create[b-h410bbwd5b]  .job-step4-status__value {
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    color: #f8fafc;
    letter-spacing: -0.02em;
}

.page-job-create[b-h410bbwd5b]  .job-step4-divider {
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    margin: 1.1rem 0;
    opacity: 1;
}

.page-job-create[b-h410bbwd5b]  .job-step4-subtitle {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(125, 211, 252, 0.92);
}

.page-job-create[b-h410bbwd5b]  .job-step4-field-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: rgba(226, 232, 240, 0.94);
}

.page-job-create[b-h410bbwd5b]  .job-step4-field-label .oi {
    color: #7dd3fc;
}

.page-job-create[b-h410bbwd5b]  .job-step4-input,
.page-job-create[b-h410bbwd5b]  .job-step4-panel input.job-step4-input.form-control {
    background: rgba(15, 23, 42, 0.55) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    color: #e2e8f0 !important;
    border-radius: 0.55rem;
    padding: 0.55rem 0.85rem;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.page-job-create[b-h410bbwd5b]  .job-step4-input:focus,
.page-job-create[b-h410bbwd5b]  .job-step4-panel input.job-step4-input.form-control:focus {
    background: rgba(15, 23, 42, 0.78) !important;
    border-color: var(--etl-accent) !important;
    box-shadow: 0 0 0 3px var(--etl-accent-muted) !important;
    color: #f8fafc !important;
}

.page-job-create[b-h410bbwd5b]  .job-step4-footnote {
    line-height: 1.45;
    color: rgba(148, 163, 184, 0.9) !important;
}

html[data-theme="dark"] .page-job-create[b-h410bbwd5b]  .job-step4-panel,
html:not([data-theme="light"]) .page-job-create[b-h410bbwd5b]  .job-step4-panel {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-panel {
    background: #fff;
    border-color: #e2e8f0;
    box-shadow: var(--etl-shadow-sm);
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-switch-cell {
    background: #fff;
    border-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-switch-title {
    color: var(--gray-900, #0f172a);
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-switch-hint {
    color: #64748b;
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-status--on {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-status--off {
    background: #f1f5f9;
    border-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-status__value {
    color: var(--gray-900, #0f172a);
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-divider {
    border-top-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-field-label {
    color: var(--gray-800, #1e293b);
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-input,
html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-panel input.job-step4-input.form-control {
    background: #fff !important;
    border-color: #e2e8f0 !important;
    color: var(--gray-900, #0f172a) !important;
}

html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-input:focus,
html[data-theme="light"] .page-job-create[b-h410bbwd5b]  .job-step4-panel input.job-step4-input.form-control:focus {
    border-color: rgba(1, 74, 173, 0.45) !important;
    box-shadow: 0 0 0 3px rgba(4, 158, 224, 0.15) !important;
}

.page-job-create .job-validation-summary[b-h410bbwd5b] {
    border-radius: 0.65rem;
}

/* Nút mở Trình truy vấn (toolbar SQL) */
.page-job-create .job-qb-open-btn[b-h410bbwd5b] {
    font-weight: 600;
    border: none;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-sidebar-active);
    color: #fff !important;
    box-shadow: 0 2px 10px var(--etl-accent-shadow-soft);
}

.page-job-create .job-qb-open-btn:hover:not(:disabled)[b-h410bbwd5b] {
    filter: brightness(1.06);
    color: #fff !important;
}

.page-job-create .job-qb-open-btn:disabled[b-h410bbwd5b] {
    opacity: 0.55;
}

/* =============================================================================
   Query Builder modal — trên sidebar (1050) và nút hamburger (1060); flex ổn định
   ============================================================================= */

.page-job-create .job-qb-modal-backdrop[b-h410bbwd5b] {
    position: fixed;
    inset: 0;
    z-index: 10980;
    background-color: rgba(2, 6, 12, 0.65);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.page-job-create .job-qb-modal[b-h410bbwd5b] {
    position: fixed;
    inset: 0;
    z-index: 10990;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    overflow-x: hidden;
    overflow-y: auto;
}

.page-job-create .job-qb-modal-dialog[b-h410bbwd5b] {
    width: min(96vw, calc(100vw - 1.5rem)) !important;
    max-width: none !important;
    margin: auto !important;
    height: auto !important;
    max-height: min(92vh, calc(100dvh - 1.5rem));
    display: flex;
    flex-direction: column;
}

.page-job-create .job-qb-modal-content[b-h410bbwd5b] {
    max-height: min(92vh, calc(100dvh - 1.5rem));
    min-height: 0;
    overflow: hidden;
    height: 100%;
}

.page-job-create .job-qb-modal-body[b-h410bbwd5b] {
    min-height: 0;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: row;
    flex: 1 1 auto;
}

.page-job-create .job-qb-col--schema[b-h410bbwd5b] {
    width: min(280px, 32vw);
    min-width: 200px;
}

.page-job-create .job-qb-col--options[b-h410bbwd5b] {
    width: min(320px, 34vw);
    min-width: 220px;
}

@media (max-width: 1199.98px) {
    .page-job-create .job-qb-modal-body[b-h410bbwd5b] {
        flex-direction: column;
        overflow-y: auto !important;
        align-items: stretch;
    }

    .page-job-create .job-qb-col--schema[b-h410bbwd5b],
    .page-job-create .job-qb-col--options[b-h410bbwd5b] {
        width: 100% !important;
        max-height: min(38vh, 320px);
    }

    .page-job-create .job-qb-col--canvas[b-h410bbwd5b] {
        min-height: 240px;
        max-height: min(48vh, 480px);
        flex: 1 1 auto;
    }

    .page-job-create .job-qb-schema-scroll[b-h410bbwd5b],
    .page-job-create .job-qb-options-scroll[b-h410bbwd5b] {
        max-height: min(32vh, 280px);
    }
}

/* Cấu trúc bảng mở từ trong Query Builder */
.page-job-create .job-qb-submodal-backdrop[b-h410bbwd5b] {
    position: fixed;
    inset: 0;
    z-index: 11080;
}

.page-job-create .job-qb-submodal[b-h410bbwd5b] {
    position: fixed;
    inset: 0;
    z-index: 11090;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    overflow-y: auto;
}

/* —— Trình truy vấn: shell teal + căn lề thống nhất —— */
.page-job-create .job-qb__shell[b-h410bbwd5b] {
    border-radius: var(--etl-radius-lg);
    overflow: hidden;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-card) !important;
    box-shadow: var(--etl-shadow-lg);
}

.page-job-create .job-qb__modal-header[b-h410bbwd5b] {
    flex-shrink: 0;
    padding: 0.65rem 1rem;
    background: var(--etl-sidebar-active) !important;
    color: #fff;
    border-bottom: none;
}

.page-job-create .job-qb__modal-title[b-h410bbwd5b] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 700;
    color: #fff !important;
    text-align: start;
    line-height: 1.3;
}

.page-job-create .job-qb__modal-header .btn-close[b-h410bbwd5b] {
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

.page-job-create .job-qb__header-btn[b-h410bbwd5b] {
    font-weight: 600;
    font-size: 0.8125rem;
    padding: 0.35rem 0.65rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.12);
    color: #fff !important;
}

.page-job-create .job-qb__header-btn:hover[b-h410bbwd5b] {
    background: rgba(255, 255, 255, 0.22);
    border-color: #fff;
    color: #fff !important;
}

.page-job-create .job-qb__col[b-h410bbwd5b] {
    background: var(--etl-canvas);
    text-align: start;
}

.page-job-create .job-qb__col--canvas[b-h410bbwd5b] {
    overflow: hidden;
    border-inline: 1px solid var(--etl-card-border);
}

.page-job-create .job-qb__opts-panel[b-h410bbwd5b] {
    background: var(--etl-card);
}

.page-job-create .job-qb__col-intro[b-h410bbwd5b] {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--etl-card-border);
    background: var(--etl-card);
}

.page-job-create .job-qb__section-label[b-h410bbwd5b] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--etl-accent);
    margin-bottom: 0.5rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.page-job-create .job-qb__field-label[b-h410bbwd5b] {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--etl-text-secondary);
    margin-bottom: 0.3rem;
}

.page-job-create .job-qb__hint[b-h410bbwd5b] {
    font-size: 0.75rem;
    color: var(--etl-text-muted);
    line-height: 1.4;
}

.page-job-create .job-qb__control[b-h410bbwd5b],
.page-job-create .job-qb__control-sm[b-h410bbwd5b] {
    border-radius: var(--etl-radius-sm);
    border-color: var(--etl-card-border);
    font-size: 0.8125rem;
}

.page-job-create .job-qb__control-sm[b-h410bbwd5b] {
    font-size: 0.78rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.page-job-create .job-qb__subhead[b-h410bbwd5b] {
    flex-shrink: 0;
    padding: 0.5rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 700;
    border-bottom: 1px solid var(--etl-card-border);
    text-align: start;
}

.page-job-create .job-qb__subhead-inner[b-h410bbwd5b] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.page-job-create .job-qb__subhead--canvas[b-h410bbwd5b] {
    background: rgba(46, 179, 152, 0.12);
    color: var(--etl-text);
}

.page-job-create .job-qb__subhead--sql[b-h410bbwd5b] {
    background: rgba(46, 179, 152, 0.18);
    color: var(--etl-text);
    border-radius: var(--etl-radius-sm) var(--etl-radius-sm) 0 0;
}

.page-job-create .job-qb__subhead--opts[b-h410bbwd5b] {
    background: var(--etl-card);
    color: var(--etl-text);
}

.page-job-create .job-qb__canvas-inner[b-h410bbwd5b] {
    font-size: 0.85rem;
}

.page-job-create .job-qb__block-title[b-h410bbwd5b] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--etl-accent);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.page-job-create .job-qb__block-ico[b-h410bbwd5b] {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--etl-accent-muted);
    color: var(--etl-accent);
    font-size: 0.9rem;
}

.page-job-create .job-qb__block-ico--muted[b-h410bbwd5b] {
    background: rgba(148, 163, 184, 0.15);
    color: var(--etl-text-secondary);
}

.page-job-create .job-qb__dropzone[b-h410bbwd5b] {
    min-height: 5rem;
    border: 2px dashed var(--etl-accent-border);
    background: var(--etl-input-soft);
    transition: border-color 0.2s ease, background 0.2s ease;
}

html[data-theme="dark"] .page-job-create .job-qb__dropzone[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-qb__dropzone[b-h410bbwd5b] {
    background: rgba(30, 41, 59, 0.25);
}

.page-job-create .job-qb__dropzone-placeholder[b-h410bbwd5b] {
    color: var(--etl-text-muted);
}

.page-job-create .job-qb__dropzone-ico[b-h410bbwd5b] {
    font-size: 1.75rem;
    opacity: 0.35;
    color: var(--etl-accent);
}

.page-job-create .job-qb__from-pill[b-h410bbwd5b] {
    text-align: start;
    padding: 0.5rem 0.65rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-accent-border);
    background: var(--etl-card);
    box-shadow: var(--etl-shadow-sm);
}

.page-job-create .job-qb__sql-preview[b-h410bbwd5b] {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    font-size: 0.78rem !important;
    line-height: 1.45;
    min-height: 7.5rem;
    background: var(--etl-input-soft) !important;
    border-color: var(--etl-card-border) !important;
    color: var(--etl-text) !important;
    resize: vertical;
}

.page-job-create .job-qb__toolbar-btn[b-h410bbwd5b] {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.25rem 0.5rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.25);
    color: var(--etl-text) !important;
}

.page-job-create .job-qb__toolbar-btn:hover[b-h410bbwd5b] {
    background: #fff;
    border-color: #fff;
    color: var(--etl-text) !important;
}

.page-job-create .job-qb__table-btn[b-h410bbwd5b] {
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border) !important;
    background: var(--etl-card) !important;
    color: var(--etl-text) !important;
    cursor: grab;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.page-job-create .job-qb__table-btn:hover[b-h410bbwd5b] {
    border-color: var(--etl-accent) !important;
    box-shadow: 0 2px 8px var(--etl-accent-shadow-soft);
}

.page-job-create .job-qb__table-name[b-h410bbwd5b] {
    font-size: 0.8125rem;
    font-weight: 600;
    max-width: 11rem;
}

.page-job-create .job-qb__table-ico[b-h410bbwd5b] {
    color: var(--etl-accent);
    font-size: 1rem;
}

.page-job-create .job-qb__count-badge[b-h410bbwd5b] {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.12rem 0.4rem;
    border-radius: 999px;
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
    color: var(--etl-accent);
}

.page-job-create .job-qb__icon-only[b-h410bbwd5b] {
    padding: 0.28rem 0.45rem;
    line-height: 1;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    background: var(--etl-card);
}

.page-job-create .job-qb__icon-only:hover[b-h410bbwd5b] {
    border-color: var(--etl-accent);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

.page-job-create .job-qb__icon-danger[b-h410bbwd5b] {
    border-color: rgba(239, 68, 68, 0.35);
    color: #dc2626;
    background: #fff;
}

.page-job-create .job-qb__icon-danger:hover[b-h410bbwd5b] {
    background: rgba(239, 68, 68, 0.08);
    border-color: #dc2626;
    color: #b91c1c;
}

.page-job-create .job-qb__empty-ico[b-h410bbwd5b] {
    font-size: 2rem;
    opacity: 0.4;
    color: var(--etl-text-muted);
}

.page-job-create .job-qb__spinner[b-h410bbwd5b] {
    color: var(--etl-accent) !important;
}

.page-job-create .job-qb__opt-row[b-h410bbwd5b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

.page-job-create .job-qb__opt-row-title[b-h410bbwd5b] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--etl-text);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.page-job-create .job-qb__add-btn[b-h410bbwd5b] {
    padding: 0.22rem 0.5rem;
    line-height: 1;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-accent-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent) !important;
    font-weight: 700;
}

.page-job-create .job-qb__add-btn:hover[b-h410bbwd5b] {
    background: var(--etl-accent);
    border-color: var(--etl-accent);
    color: #fff !important;
}

.page-job-create .job-qb__slot-empty[b-h410bbwd5b] {
    text-align: center;
    font-size: 0.75rem;
    color: var(--etl-text-muted);
    padding: 0.5rem 0.65rem;
    border-radius: var(--etl-radius-sm);
    border: 1px dashed var(--etl-card-border);
    background: var(--etl-canvas);
    margin-bottom: 0.35rem;
}

.page-job-create .job-qb__card[b-h410bbwd5b] {
    margin-bottom: 0.5rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    border-inline-start-width: 3px;
    border-inline-start-color: var(--etl-accent);
    background: var(--etl-card);
    box-shadow: var(--etl-shadow-sm);
}

.page-job-create .job-qb__card-body[b-h410bbwd5b] {
    padding: 0.6rem 0.65rem;
}

.page-job-create .job-qb__mini-label[b-h410bbwd5b] {
    display: block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--etl-text-muted);
    margin-bottom: 0.2rem;
}

.page-job-create .job-qb__remove-btn[b-h410bbwd5b] {
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--etl-radius-sm);
    border: 1px solid rgba(239, 68, 68, 0.35);
    color: #b91c1c;
    background: rgba(254, 242, 242, 0.8);
}

.page-job-create .job-qb__remove-btn:hover[b-h410bbwd5b] {
    background: rgba(239, 68, 68, 0.12);
    border-color: #dc2626;
    color: #991b1b;
}

.page-job-create .job-qb__footer[b-h410bbwd5b] {
    padding: 0.6rem 1rem !important;
    background: var(--etl-card) !important;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.page-job-create .job-qb__footer-btn[b-h410bbwd5b] {
    font-weight: 600;
    font-size: 0.875rem;
    padding: 0.4rem 0.85rem;
    border-radius: var(--etl-radius-sm);
}

.page-job-create .job-qb__footer-btn--outline[b-h410bbwd5b] {
    border: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    background: transparent;
}

.page-job-create .job-qb__footer-btn--outline:hover[b-h410bbwd5b] {
    border-color: var(--etl-accent);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

.page-job-create .job-qb__footer-btn--primary[b-h410bbwd5b] {
    border: none;
    background: var(--etl-sidebar-active);
    color: #fff !important;
    box-shadow: 0 4px 12px var(--etl-accent-shadow-soft);
}

.page-job-create .job-qb__footer-btn--primary:hover[b-h410bbwd5b] {
    filter: brightness(1.05);
    color: #fff !important;
}

/* Submodal cấu trúc bảng */
.page-job-create .job-qb-sub__dialog[b-h410bbwd5b] {
    max-width: 36rem;
    margin: 1rem auto;
}

.page-job-create .job-qb-sub__shell[b-h410bbwd5b] {
    border-radius: var(--etl-radius-lg);
    overflow: hidden;
    border: 1px solid var(--etl-card-border);
    box-shadow: var(--etl-shadow-lg);
}

.page-job-create .job-qb-sub__body[b-h410bbwd5b] {
    padding: 1rem !important;
    background: var(--etl-canvas) !important;
}

.page-job-create .job-qb-sub__table-wrap[b-h410bbwd5b] {
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    background: var(--etl-card);
}

.page-job-create .job-qb-sub__table thead th[b-h410bbwd5b] {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--etl-text-secondary);
    border-bottom-color: var(--etl-card-border) !important;
    vertical-align: middle;
}

.page-job-create .job-qb-sub__th-narrow[b-h410bbwd5b] {
    width: 2.25rem;
}

.page-job-create .job-qb-sub__type[b-h410bbwd5b] {
    font-size: 0.75rem;
    font-family: ui-monospace, monospace;
    padding: 0.12rem 0.35rem;
    border-radius: 4px;
    background: var(--etl-input-soft);
    border: 1px solid var(--etl-card-border);
}

.page-job-create .job-qb-sub__tag[b-h410bbwd5b] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.12rem 0.4rem;
    border-radius: 4px;
}

.page-job-create .job-qb-sub__tag--ok[b-h410bbwd5b] {
    background: rgba(16, 185, 129, 0.15);
    color: #047857;
}

.page-job-create .job-qb-sub__tag--no[b-h410bbwd5b] {
    background: rgba(148, 163, 184, 0.2);
    color: var(--etl-text-secondary);
}

.page-job-create .job-qb-sub__tag--pk[b-h410bbwd5b] {
    background: rgba(251, 191, 36, 0.25);
    color: #92400e;
}

.page-job-create .job-qb-sub__tag--uq[b-h410bbwd5b] {
    background: var(--etl-accent-muted);
    color: var(--etl-accent);
    border: 1px solid var(--etl-accent-border);
}

.page-job-create .job-qb-sub__footer[b-h410bbwd5b] {
    padding: 0.6rem 1rem !important;
    background: var(--etl-card) !important;
}

html[data-theme="dark"] .page-job-create .job-qb__shell[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-qb__shell[b-h410bbwd5b] {
    border-color: var(--etl-accent-border);
    box-shadow: 0 24px 56px rgba(0, 0, 0, 0.55);
}

html[data-theme="dark"] .page-job-create .job-qb__col-intro[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-qb__col-intro[b-h410bbwd5b],
html[data-theme="dark"] .page-job-create .job-qb__opts-panel[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-qb__opts-panel[b-h410bbwd5b] {
    background: var(--etl-card);
}

html[data-theme="dark"] .page-job-create .job-qb__sql-preview[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-qb__sql-preview[b-h410bbwd5b] {
    background: rgba(30, 41, 59, 0.45) !important;
    color: #e2e8f0 !important;
}

html[data-theme="light"] .page-job-create .job-qb__sql-preview[b-h410bbwd5b] {
    background: #fff !important;
}

html[data-theme="dark"] .page-job-create .job-qb-sub__tag--pk[b-h410bbwd5b],
html:not([data-theme="light"]) .page-job-create .job-qb-sub__tag--pk[b-h410bbwd5b] {
    color: #fde68a;
}

html[data-theme="light"] .page-job-create .job-qb-modal-backdrop[b-h410bbwd5b] {
    background-color: rgba(15, 23, 42, 0.45);
}

.page-job-create .job-action-bar[b-h410bbwd5b] {
    position: sticky;
    bottom: 0;
    z-index: 1000;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    border-radius: 1rem;
    background: rgba(15, 23, 42, 0.9);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.35);
    padding: 1rem 1.25rem;
}

.page-job-create .job-action-bar .text-muted[b-h410bbwd5b],
.page-job-create .job-action-bar__hint[b-h410bbwd5b] {
    color: rgba(148, 163, 184, 0.92) !important;
}

.page-job-create .job-action-bar__hint[b-h410bbwd5b] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.page-job-create .job-create-loading[b-h410bbwd5b] {
    color: rgba(226, 232, 240, 0.88);
}

/* ----- Light theme ----- */
html[data-theme="light"] .page-job-create .job-rail-link[b-h410bbwd5b] {
    color: var(--gray-800, #1e293b);
    background: #fff;
    border-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create .job-rail-link:hover[b-h410bbwd5b] {
    border-color: rgba(1, 74, 173, 0.35);
    background: #f0f9ff;
    color: var(--primary-700, #013f90);
}

html[data-theme="light"] .page-job-create .job-create-section[b-h410bbwd5b] {
    border-bottom-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create .job-section-header--in-workspace[b-h410bbwd5b] {
    border-bottom-color: #e2e8f0 !important;
    color: var(--gray-900, #0f172a);
}

html[data-theme="light"] .page-job-create .job-section-header__icon[b-h410bbwd5b] {
    color: var(--primary-600, #013f90);
}

html[data-theme="light"] .page-job-create .job-section-lead[b-h410bbwd5b] {
    color: #64748b !important;
}

html[data-theme="light"] .page-job-create .job-sql-toolbar[b-h410bbwd5b] {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create textarea.form-control[b-h410bbwd5b],
html[data-theme="light"] .page-job-create .form-control:not(textarea)[b-h410bbwd5b],
html[data-theme="light"] .page-job-create .form-select[b-h410bbwd5b] {
    background: #fff;
    border-color: #e2e8f0;
    color: var(--gray-900, #0f172a);
}

html[data-theme="light"] .page-job-create .input-group-text[b-h410bbwd5b] {
    background: #f1f5f9;
    border-color: #e2e8f0;
    color: #64748b;
}

html[data-theme="light"] .page-job-create .job-subpanel[b-h410bbwd5b] {
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
}

html[data-theme="light"] .page-job-create .job-subpanel--callout[b-h410bbwd5b] {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
}

html[data-theme="light"] .page-job-create .job-help-details[b-h410bbwd5b] {
    background: #eff6ff;
    border-color: #bfdbfe;
}

html[data-theme="light"] .page-job-create .job-help-summary[b-h410bbwd5b] {
    color: var(--primary-700, #013f90);
}

html[data-theme="light"] .page-job-create .job-help-summary[b-h410bbwd5b]::after {
    border-color: var(--primary-500, #014aad);
}

html[data-theme="light"] .page-job-create .job-help-body[b-h410bbwd5b] {
    color: var(--gray-800, #1e293b);
}

html[data-theme="light"] .page-job-create .job-option-tile[b-h410bbwd5b] {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create .job-action-bar[b-h410bbwd5b] {
    background: rgba(255, 255, 255, 0.98);
    border-color: #e2e8f0;
    box-shadow: 0 -4px 24px rgba(15, 23, 42, 0.08);
}


@media (max-width: 991.98px) {
    .page-job-create .job-create-section[b-h410bbwd5b] {
        scroll-margin-top: 6.5rem;
    }
}

/* =============================================================================
   Modal hướng dẫn tải tăng dần — kính tối, đồng bộ shell (class đã gắn trong Razor)
   ============================================================================= */

.page-job-create .job-incr-guide-modal-root[b-h410bbwd5b] {
    position: fixed;
    inset: 0;
    z-index: 10970;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    overflow-y: auto;
}

.page-job-create .job-incr-guide-backdrop[b-h410bbwd5b] {
    position: fixed;
    inset: 0;
    z-index: 10965;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background-color: rgba(2, 6, 12, 0.72) !important;
}

.page-job-create .job-incr-guide-modal[b-h410bbwd5b] {
    max-width: min(52rem, 94vw);
    margin: 1rem auto;
}

.page-job-create .job-incr-guide-modal__shell[b-h410bbwd5b] {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 1rem;
    overflow: hidden;
    background: linear-gradient(165deg, rgba(17, 24, 39, 0.97) 0%, rgba(7, 11, 20, 0.99) 100%);
    box-shadow: 0 28px 64px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.2);
}

.page-job-create .job-incr-guide-modal__header.etl-modal-header--primary[b-h410bbwd5b] {
    background: linear-gradient(135deg, #1a202c 0%, #1c3530 42%, var(--etl-accent-deep) 88%, var(--etl-accent) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.page-job-create .job-incr-guide-modal__title-icon[b-h410bbwd5b] {
    font-size: 1.35rem;
    opacity: 0.95;
}

.page-job-create .job-incr-guide-modal__title-text[b-h410bbwd5b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.page-job-create .job-incr-guide-modal__title-badge[b-h410bbwd5b] {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.22);
    vertical-align: middle;
}

.page-job-create .job-incr-guide-modal__section[b-h410bbwd5b] {
    margin-bottom: 0.25rem;
}

.page-job-create .job-incr-guide-modal__section--last[b-h410bbwd5b] {
    margin-bottom: 0;
}

.page-job-create .job-incr-guide-modal__compare-row[b-h410bbwd5b] {
    margin-top: 0.85rem;
}

.page-job-create .job-incr-guide-modal__body[b-h410bbwd5b] {
    max-height: min(78vh, 44rem);
    overflow-y: auto;
    padding: 1.15rem 1.25rem 1.35rem;
    background: rgba(4, 8, 18, 0.55);
    color: rgba(226, 232, 240, 0.95);
    scrollbar-width: thin;
}

.page-job-create .job-incr-guide-modal__body .text-muted[b-h410bbwd5b] {
    color: rgba(148, 163, 184, 0.95) !important;
}

.page-job-create .job-incr-guide-modal__h[b-h410bbwd5b] {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #f8fafc;
    margin-bottom: 0.65rem;
}

.page-job-create .job-incr-guide-modal__h5[b-h410bbwd5b] {
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(129, 230, 217, 0.92);
}

.page-job-create .job-incr-guide-modal__h5--spaced[b-h410bbwd5b] {
    margin-top: 1.15rem;
    margin-bottom: 0;
}

.page-job-create .job-incr-guide-modal__lead[b-h410bbwd5b] {
    line-height: 1.55;
    color: rgba(203, 213, 225, 0.96);
}

.page-job-create .job-incr-guide-modal__hr[b-h410bbwd5b] {
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin: 1.25rem 0;
    opacity: 1;
}

.page-job-create .job-incr-compare[b-h410bbwd5b] {
    height: 100%;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.page-job-create .job-incr-compare--bad[b-h410bbwd5b] {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(248, 113, 113, 0.28);
}

.page-job-create .job-incr-compare--good[b-h410bbwd5b] {
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(52, 211, 153, 0.3);
}

.page-job-create .job-incr-compare__title[b-h410bbwd5b] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #f1f5f9;
    margin-bottom: 0.5rem;
}

.page-job-create .job-incr-compare ul[b-h410bbwd5b] {
    color: rgba(226, 232, 240, 0.9);
}

.page-job-create .job-incr-guide-modal__alert[b-h410bbwd5b] {
    background: rgba(46, 179, 152, 0.1) !important;
    border: 1px solid var(--etl-accent-border) !important;
    color: rgba(236, 253, 245, 0.96) !important;
    border-radius: 0.6rem;
}

.page-job-create .job-incr-guide-modal__alert code[b-h410bbwd5b] {
    background: rgba(0, 0, 0, 0.35);
    color: #a7f3d0;
    padding: 0.1rem 0.35rem;
    border-radius: 0.25rem;
}

.page-job-create .job-incr-guide-modal__alert--warn[b-h410bbwd5b] {
    background: rgba(245, 158, 11, 0.12) !important;
    border-color: rgba(251, 191, 36, 0.35) !important;
    color: #fef3c7 !important;
}

.page-job-create .job-incr-guide-modal__pre[b-h410bbwd5b] {
    margin: 0 0 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-inline-start: 3px solid var(--etl-accent);
    background: rgba(2, 6, 23, 0.75) !important;
    color: #cbd5e1 !important;
    font-size: 0.8rem;
    line-height: 1.45;
    overflow-x: auto;
}

.page-job-create .job-incr-guide-modal__pre--sm[b-h410bbwd5b] {
    font-size: 0.75rem;
    padding: 0.65rem 0.85rem;
}

.page-job-create .job-incr-guide-modal__pre code[b-h410bbwd5b] {
    color: inherit;
    background: transparent;
    padding: 0;
}

.page-job-create .job-incr-guide-modal__card[b-h410bbwd5b] {
    background: rgba(15, 23, 42, 0.55) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0.65rem !important;
    overflow: hidden;
    color: rgba(226, 232, 240, 0.95) !important;
}

.page-job-create .job-incr-guide-modal__card .card-body[b-h410bbwd5b] {
    background: transparent !important;
    color: inherit;
    padding: 0.9rem 1rem;
}

.page-job-create .job-incr-guide-modal__card-head[b-h410bbwd5b] {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    font-size: 0.875rem;
    padding: 0.65rem 1rem;
}

.page-job-create .job-incr-guide-modal__card-head--info[b-h410bbwd5b] {
    background: rgba(46, 179, 152, 0.2) !important;
    color: #ecfdf5 !important;
}

.page-job-create .job-incr-guide-modal__card-head--warn[b-h410bbwd5b] {
    background: rgba(245, 158, 11, 0.18) !important;
    color: #fef3c7 !important;
}

.page-job-create .job-incr-guide-modal__card-head--muted[b-h410bbwd5b] {
    background: rgba(71, 85, 105, 0.35) !important;
    color: #e2e8f0 !important;
}

.page-job-create .job-incr-guide-modal__card-head--ok[b-h410bbwd5b] {
    background: rgba(46, 179, 152, 0.24) !important;
    color: #d1fae5 !important;
}

.page-job-create .job-incr-guide-modal__card code[b-h410bbwd5b] {
    background: rgba(0, 0, 0, 0.35);
    color: #bae6fd;
    padding: 0.12rem 0.35rem;
    border-radius: 0.25rem;
    font-size: 0.88em;
}

.page-job-create .job-incr-faq-card__head[b-h410bbwd5b] {
    cursor: pointer;
    user-select: none;
    background: rgba(30, 41, 59, 0.65) !important;
    color: #f1f5f9 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.page-job-create .job-incr-faq-card__head:hover[b-h410bbwd5b] {
    background: rgba(46, 179, 152, 0.1) !important;
    border-bottom-color: var(--etl-accent-border) !important;
}

.page-job-create .job-incr-faq-card__head:focus-visible[b-h410bbwd5b] {
    outline: 2px solid var(--etl-accent-mid);
    outline-offset: 2px;
}

.page-job-create .job-incr-faq-card__head-inner[b-h410bbwd5b] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-weight: 600;
}

.page-job-create .job-incr-faq-card__chev[b-h410bbwd5b] {
    flex-shrink: 0;
    margin-top: 0.12rem;
    font-size: 0.85rem;
    color: var(--etl-accent-mid);
}

.page-job-create .job-incr-guide-modal__table-wrap[b-h410bbwd5b] {
    border-radius: 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    overflow: hidden;
}

.page-job-create .job-incr-guide-modal__table[b-h410bbwd5b] {
    margin-bottom: 0;
    color: rgba(226, 232, 240, 0.95);
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.04);
    --bs-table-border-color: rgba(255, 255, 255, 0.08);
}

.page-job-create .job-incr-guide-modal__table thead th[b-h410bbwd5b] {
    background: rgba(29, 122, 104, 0.35) !important;
    color: rgba(204, 251, 241, 0.95) !important;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

.page-job-create .job-incr-guide-modal__table tbody td[b-h410bbwd5b] {
    border-color: rgba(255, 255, 255, 0.07) !important;
    vertical-align: middle;
}

.page-job-create .job-incr-guide-modal__footer[b-h410bbwd5b] {
    background: rgba(8, 12, 22, 0.92);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 0.85rem 1.15rem;
    display: flex;
    justify-content: flex-end;
}

.page-job-create .job-incr-guide-modal__btn-close[b-h410bbwd5b] {
    font-weight: 600;
    padding: 0.45rem 1.2rem;
    border-radius: var(--etl-radius-sm, 0.5rem);
    color: #f8fafc;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.35);
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.page-job-create .job-incr-guide-modal__btn-close:hover[b-h410bbwd5b] {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.5);
    color: #fff;
}

html[data-theme="light"] .page-job-create .job-incr-guide-backdrop[b-h410bbwd5b] {
    background-color: rgba(15, 23, 42, 0.45) !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__shell[b-h410bbwd5b] {
    background: #fff;
    border-color: #e2e8f0;
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.12);
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__header.etl-modal-header--primary[b-h410bbwd5b] {
    background: linear-gradient(135deg, #1a202c 0%, #1c3530 42%, var(--etl-accent-deep) 88%, var(--etl-accent) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__body[b-h410bbwd5b] {
    background: #f8fafc;
    color: var(--gray-900, #0f172a);
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__h[b-h410bbwd5b] {
    color: var(--gray-900, #0f172a);
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__h5[b-h410bbwd5b] {
    color: var(--etl-accent-text);
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__lead[b-h410bbwd5b] {
    color: var(--gray-700, #374151);
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__alert[b-h410bbwd5b] {
    background: var(--etl-accent-muted) !important;
    border-color: var(--etl-accent-border) !important;
    color: var(--gray-900, #0f172a) !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__alert code[b-h410bbwd5b] {
    color: var(--etl-accent-deep);
    background: rgba(15, 23, 42, 0.06);
}

html[data-theme="light"] .page-job-create .job-incr-compare--bad[b-h410bbwd5b] {
    background: #fef2f2;
    border-color: #fecaca;
}

html[data-theme="light"] .page-job-create .job-incr-compare--good[b-h410bbwd5b] {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

html[data-theme="light"] .page-job-create .job-incr-compare__title[b-h410bbwd5b] {
    color: var(--gray-900, #0f172a);
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__pre[b-h410bbwd5b] {
    background: #0f172a !important;
    color: #e2e8f0 !important;
    border-color: #334155;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__card[b-h410bbwd5b] {
    background: #fff !important;
    border-color: #e2e8f0 !important;
    color: var(--gray-900, #0f172a) !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__card-head--info[b-h410bbwd5b] {
    background: #e0f2fe !important;
    color: #0c4a6e !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__card-head--warn[b-h410bbwd5b] {
    background: #fef3c7 !important;
    color: #78350f !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__card-head--muted[b-h410bbwd5b] {
    background: #f1f5f9 !important;
    color: var(--gray-800, #1e293b) !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__card-head--ok[b-h410bbwd5b] {
    background: rgba(46, 179, 152, 0.18) !important;
    color: #065f46 !important;
}

html[data-theme="light"] .page-job-create .job-incr-faq-card__head[b-h410bbwd5b] {
    background: #f1f5f9 !important;
    color: var(--gray-900, #0f172a) !important;
}

html[data-theme="light"] .page-job-create .job-incr-faq-card__head:hover[b-h410bbwd5b] {
    background: var(--etl-accent-muted) !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__table thead th[b-h410bbwd5b] {
    background: var(--etl-accent-muted) !important;
    color: var(--etl-accent-text) !important;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__footer[b-h410bbwd5b] {
    background: #fff;
    border-top-color: #e2e8f0;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__btn-close[b-h410bbwd5b] {
    color: var(--gray-800, #1e293b);
    border-color: #cbd5e1;
}

html[data-theme="light"] .page-job-create .job-incr-guide-modal__btn-close:hover[b-h410bbwd5b] {
    background: var(--etl-accent-muted);
    border-color: var(--etl-accent);
    color: var(--etl-accent-text);
}
/* /Pages/Jobs.razor.rz.scp.css */
/* Jobs — đồng bộ surface / Connections (teal tokens) */

.etl-job[b-6fxll5cisf] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-job__toolbar[b-6fxll5cisf] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-job__title[b-6fxll5cisf] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-job__lead[b-6fxll5cisf] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 38rem;
    line-height: 1.5;
}

.etl-job__btn-add[b-6fxll5cisf] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1.15rem;
    font-weight: 600;
    font-size: 0.875rem;
    border: none;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-sidebar-active);
    color: #fff !important;
    box-shadow: 0 4px 14px var(--etl-accent-shadow-soft);
    transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.etl-job__btn-add:hover:not(:disabled)[b-6fxll5cisf] {
    filter: brightness(1.06);
    color: #fff !important;
    box-shadow: 0 6px 18px var(--etl-accent-shadow);
}

.etl-job__panel[b-6fxll5cisf] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    padding: 1.1rem 1.2rem;
    box-shadow: var(--etl-shadow-sm);
    min-width: 0;
}

.etl-job__empty[b-6fxll5cisf] {
    text-align: center;
    padding: 2.5rem 1.5rem;
}

.etl-job__empty-icon[b-6fxll5cisf] {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--etl-radius-md);
    display: grid;
    place-items: center;
    font-size: 1.65rem;
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-job__empty-title[b-6fxll5cisf] {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--etl-text);
}

.etl-job__empty-text[b-6fxll5cisf] {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
}

.etl-job__th-actions[b-6fxll5cisf] {
    width: 11rem;
    text-align: right !important;
}

/* Cột Trạng thái: đủ rộng để «Hoạt động» / «Tạm dừng» luôn một dòng (sau cột STT) */
.etl-job__table thead th:nth-child(6)[b-6fxll5cisf],
.etl-job__table tbody td:nth-child(6)[b-6fxll5cisf] {
    white-space: nowrap;
    min-width: 9rem;
    vertical-align: middle;
}

.etl-job__row-meta[b-6fxll5cisf] {
    font-size: 0.72rem;
    color: var(--etl-text-muted);
    margin-top: 0.3rem;
    line-height: 1.35;
    max-width: 22rem;
}

.etl-job__conn-badge[b-6fxll5cisf] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.2rem 0.5rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid transparent;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.etl-job__conn-badge--src[b-6fxll5cisf] {
    background: var(--etl-accent-muted);
    color: var(--etl-text);
    border-color: var(--etl-accent-border);
}

.etl-job__conn-badge--tgt[b-6fxll5cisf] {
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
    border-color: rgba(16, 185, 129, 0.35);
}

html[data-theme="dark"] .etl-job__conn-badge--tgt[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__conn-badge--tgt[b-6fxll5cisf] {
    background: rgba(16, 185, 129, 0.15);
    color: #6ee7b7;
    border-color: rgba(16, 185, 129, 0.35);
}

.etl-job__chip[b-6fxll5cisf] {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
    color: var(--etl-accent);
}

.etl-job__pagination[b-6fxll5cisf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--etl-card-border);
}

.etl-job__pagination-info[b-6fxll5cisf] {
    font-size: 0.8125rem;
    color: var(--etl-text-muted);
}

.etl-job__pagination-controls[b-6fxll5cisf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.etl-job__page-btn[b-6fxll5cisf] {
    border-radius: var(--etl-radius-sm);
    font-weight: 600;
    font-size: 0.8125rem;
    border: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    background: transparent;
    min-width: 2.25rem;
}

.etl-job__page-btn:hover:not(:disabled)[b-6fxll5cisf] {
    border-color: var(--etl-accent);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

.etl-job__page-btn:disabled[b-6fxll5cisf] {
    opacity: 0.45;
}

.etl-job__page-btn--active[b-6fxll5cisf] {
    background: var(--etl-sidebar-active) !important;
    border-color: transparent !important;
    color: #fff !important;
}

/* Bảng: header / viền / hover — chuẩn global */

html[data-theme="dark"] .etl-job .status-badge.success[b-6fxll5cisf] {
    background: rgba(16, 185, 129, 0.2);
    color: #a7f3d0;
}

html[data-theme="dark"] .etl-job .status-badge.warning[b-6fxll5cisf] {
    background: rgba(251, 191, 36, 0.18);
    color: #fde68a;
}

html[data-theme="dark"] .etl-job .etl-job__panel[b-6fxll5cisf] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] .etl-job .skeleton[b-6fxll5cisf] {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.06) 0%,
        rgba(255, 255, 255, 0.12) 50%,
        rgba(255, 255, 255, 0.06) 100%
    );
    background-size: 200% 100%;
}

/* ========== Modal chi tiết job (teal / tokens) ========== */

.etl-job__modal-backdrop[b-6fxll5cisf] {
    position: fixed;
    inset: 0;
    z-index: 10980;
    background-color: rgba(2, 6, 12, 0.65);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

html[data-theme="light"] .etl-job__modal-backdrop[b-6fxll5cisf] {
    background-color: rgba(15, 23, 42, 0.45);
}

.etl-job__modal-root[b-6fxll5cisf] {
    position: fixed;
    inset: 0;
    z-index: 10990;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    overflow-x: hidden;
    overflow-y: auto;
}

.etl-job__modal-root .etl-job__modal.modal-dialog[b-6fxll5cisf] {
    filter: drop-shadow(0 8px 28px var(--etl-accent-shadow-soft));
    max-width: min(42rem, calc(100vw - 1.25rem));
    margin: 1.75rem auto;
}

.etl-job__modal-shell[b-6fxll5cisf] {
    border-radius: var(--etl-radius-lg);
    overflow: hidden;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-card) !important;
    color: var(--etl-text);
    box-shadow: var(--etl-shadow-lg);
    max-height: min(90vh, calc(100dvh - 1.5rem));
    display: flex;
    flex-direction: column;
}

.etl-job__modal-root .modal-dialog-scrollable .etl-job__modal-shell[b-6fxll5cisf] {
    max-height: min(90vh, calc(100dvh - 1.5rem));
}

.etl-job__modal-root .modal-dialog-scrollable .etl-job__modal-body[b-6fxll5cisf] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.etl-job__modal-header[b-6fxll5cisf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    gap: 0.5rem;
    padding: 0.65rem 1rem;
    background: var(--etl-sidebar-active) !important;
    color: #fff;
    border-bottom: none;
}

.etl-job__modal-title[b-6fxll5cisf] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #fff !important;
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
    text-align: start;
}

.etl-job__modal-header .btn-close[b-6fxll5cisf] {
    filter: brightness(0) invert(1);
    opacity: 0.88;
}

.etl-job__modal-body[b-6fxll5cisf] {
    padding: 0.85rem 1rem !important;
    background: var(--etl-canvas) !important;
    color: var(--etl-text) !important;
    text-align: start;
}

.etl-job__modal-footer[b-6fxll5cisf] {
    padding: 0.6rem 1rem !important;
    background: var(--etl-card) !important;
    border-top: 1px solid var(--etl-card-border) !important;
    flex-shrink: 0;
}

.etl-job__modal-section[b-6fxll5cisf] {
    box-sizing: border-box;
    width: 100%;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--etl-accent);
    margin: 0 0 0.55rem;
    padding: 0 0 0.4rem;
    border-bottom: 1px solid var(--etl-card-border);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    line-height: 1.3;
}

.etl-job__modal-section i[b-6fxll5cisf] {
    font-size: 0.88rem;
    opacity: 0.95;
    flex-shrink: 0;
}

.etl-job__detail-section[b-6fxll5cisf] {
    margin-bottom: 1rem;
}

.etl-job__detail-section:last-child[b-6fxll5cisf] {
    margin-bottom: 0;
}

.etl-job__detail-label[b-6fxll5cisf] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--etl-text-muted);
    margin-bottom: 0.2rem;
}

.etl-job__detail-value[b-6fxll5cisf] {
    font-size: 0.875rem;
    color: var(--etl-text);
    line-height: 1.45;
}

.etl-job__detail-sub[b-6fxll5cisf] {
    font-size: 0.78rem;
    line-height: 1.4;
}

.etl-job__pill[b-6fxll5cisf] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
}

.etl-job__pill--on[b-6fxll5cisf] {
    background: var(--etl-accent-muted);
    border-color: var(--etl-accent-border);
    color: var(--etl-text);
}

.etl-job__pill--off[b-6fxll5cisf] {
    background: rgba(148, 163, 184, 0.12);
    color: var(--etl-text-muted);
}

.etl-job__pill--warn[b-6fxll5cisf] {
    background: rgba(251, 191, 36, 0.2);
    border-color: rgba(251, 191, 36, 0.45);
    color: #b45309;
}

.etl-job__pill--danger[b-6fxll5cisf] {
    background: rgba(239, 68, 68, 0.15);
    border-color: rgba(239, 68, 68, 0.35);
    color: #dc2626;
}

html[data-theme="dark"] .etl-job__pill--warn[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__pill--warn[b-6fxll5cisf] {
    color: #fde68a;
}

html[data-theme="dark"] .etl-job__pill--danger[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__pill--danger[b-6fxll5cisf] {
    color: #fecaca;
}

.etl-job__code-block[b-6fxll5cisf] {
    margin: 0;
    padding: 0.65rem 0.75rem;
    max-height: 220px;
    overflow: auto;
    font-size: 0.78rem;
    line-height: 1.45;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    background: var(--etl-input-soft) !important;
    color: var(--etl-text) !important;
}

.etl-job__code-block code[b-6fxll5cisf] {
    white-space: pre-wrap;
    word-break: break-word;
    color: inherit;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.etl-job__modal-spinner[b-6fxll5cisf] {
    color: var(--etl-accent);
}

.etl-job__modal-btn-outline[b-6fxll5cisf] {
    border-radius: var(--etl-radius-sm);
    font-weight: 600;
    font-size: 0.8125rem;
    padding: 0.35rem 0.65rem;
    border-color: var(--etl-card-border);
    color: var(--etl-text-secondary);
    background: transparent;
}

.etl-job__modal-btn-outline:hover:not(:disabled)[b-6fxll5cisf] {
    border-color: var(--etl-accent);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__modal-shell[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__modal-shell[b-6fxll5cisf] {
    border-color: var(--etl-accent-border) !important;
    box-shadow:
        0 0 0 1px rgba(46, 179, 152, 0.12),
        0 24px 56px rgba(0, 0, 0, 0.55) !important;
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__modal.modal-dialog[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__modal.modal-dialog[b-6fxll5cisf] {
    filter: drop-shadow(0 0 28px rgba(46, 179, 152, 0.22)) !important;
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__modal-body[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__modal-body[b-6fxll5cisf] {
    background: rgba(17, 20, 29, 0.92) !important;
    color: var(--etl-text) !important;
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__modal-footer[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__modal-footer[b-6fxll5cisf] {
    background: var(--etl-card) !important;
    border-top-color: var(--etl-card-border) !important;
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__modal-section[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__modal-section[b-6fxll5cisf] {
    color: var(--etl-accent-mid) !important;
    border-bottom-color: var(--etl-card-border) !important;
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__code-block[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__code-block[b-6fxll5cisf] {
    background: rgba(30, 41, 59, 0.35) !important;
    border-color: var(--etl-card-border) !important;
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__modal-btn-outline[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__modal-btn-outline[b-6fxll5cisf] {
    border-color: rgba(255, 255, 255, 0.14);
    color: rgba(226, 232, 240, 0.92);
    background: rgba(255, 255, 255, 0.04);
}

html[data-theme="dark"] .etl-job__modal-root .etl-job__modal-btn-outline:hover:not(:disabled)[b-6fxll5cisf],
html:not([data-theme="light"]) .etl-job__modal-root .etl-job__modal-btn-outline:hover:not(:disabled)[b-6fxll5cisf] {
    border-color: var(--etl-accent);
    color: var(--etl-accent-mid);
    background: var(--etl-accent-muted);
}
/* /Pages/Login.razor.rz.scp.css */
/* Login: toàn bộ style nằm trong wwwroot/css/app-auth.css (global).
   File scoped giữ trống / tối thiểu để tránh trùng lặp. */
/* /Pages/Profile.razor.rz.scp.css */
/* Profile — shell teal */

.etl-prof[b-qnzye4br55] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-prof__toolbar[b-qnzye4br55] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-prof__intro[b-qnzye4br55] {
    flex: 1;
    min-width: min(100%, 16rem);
}

.etl-prof__eyebrow[b-qnzye4br55] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-prof__title[b-qnzye4br55] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-prof__lead[b-qnzye4br55] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 42rem;
    line-height: 1.5;
}

.etl-prof__stamp[b-qnzye4br55] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-prof__content[b-qnzye4br55] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    padding: 2rem 1.5rem;
}

.etl-prof__loading[b-qnzye4br55] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    color: var(--etl-text-secondary);
    font-weight: 500;
}

.etl-prof__spinner[b-qnzye4br55] {
    color: var(--etl-accent) !important;
}

.etl-prof__panel[b-qnzye4br55] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    overflow: hidden;
    height: 100%;
}

.etl-prof__panel-title[b-qnzye4br55] {
    margin: 0 !important;
    padding: 0.65rem 1rem;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    border-bottom: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
}

.etl-prof__panel-body[b-qnzye4br55] {
    padding: 1rem 1.05rem 1.05rem;
}

.etl-prof__label[b-qnzye4br55] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--etl-text);
    margin-bottom: 0.35rem;
}

.etl-prof__check[b-qnzye4br55] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 0;
    padding: 0.4rem 0.65rem;
    margin-bottom: 1rem;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-prof__check .form-check-input[b-qnzye4br55] {
    margin-top: 0;
    flex-shrink: 0;
}

.etl-prof__check-label[b-qnzye4br55] {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.35;
}

.etl-prof__grid[b-qnzye4br55] {
    min-width: 0;
    align-items: stretch;
}

.etl-prof__grid > [class*="col"][b-qnzye4br55] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.etl-prof__grid .etl-prof__panel[b-qnzye4br55] {
    flex: 1 1 auto;
    min-height: 100%;
}

.etl-prof__alert[b-qnzye4br55] {
    border-radius: var(--etl-radius-sm);
    font-size: 0.875rem;
}

.etl-prof__btn[b-qnzye4br55] {
    font-weight: 600;
    padding: 0.45rem 1.15rem;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent);
    border-color: var(--etl-accent);
}

.etl-prof__btn:hover:not(:disabled)[b-qnzye4br55] {
    background: var(--etl-accent-hover);
    border-color: var(--etl-accent-hover);
}

html[data-theme="dark"] .etl-prof__panel[b-qnzye4br55],
html:not([data-theme="light"]) .etl-prof__panel[b-qnzye4br55],
html[data-theme="dark"] .etl-prof__content[b-qnzye4br55],
html:not([data-theme="light"]) .etl-prof__content[b-qnzye4br55] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-prof__panel-title[b-qnzye4br55],
html:not([data-theme="light"]) .etl-prof__panel-title[b-qnzye4br55] {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
/* /Pages/Scheduler.razor.rz.scp.css */
/* Scheduler — đồng bộ Jobs / Connections (teal shell) */

.etl-sched[b-ce45dsq1w0] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-sched__toolbar[b-ce45dsq1w0] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-sched__toolbar-right[b-ce45dsq1w0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
}

.etl-sched__title[b-ce45dsq1w0] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-sched__lead[b-ce45dsq1w0] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 40rem;
    line-height: 1.5;
}

.etl-sched__stamp[b-ce45dsq1w0] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--etl-text-muted);
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-sched__btn-add[b-ce45dsq1w0] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1.15rem;
    font-weight: 600;
    font-size: 0.875rem;
    border: none;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-sidebar-active);
    color: #fff !important;
    box-shadow: 0 4px 14px var(--etl-accent-shadow-soft);
    transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.etl-sched__btn-add:hover:not(:disabled)[b-ce45dsq1w0] {
    filter: brightness(1.06);
    color: #fff !important;
    box-shadow: 0 6px 18px var(--etl-accent-shadow);
}

.etl-sched__panel[b-ce45dsq1w0] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    padding: 1.1rem 1.2rem;
    box-shadow: var(--etl-shadow-sm);
    min-width: 0;
}

.etl-sched__section-title[b-ce45dsq1w0] {
    margin-bottom: 1rem !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.etl-sched__empty[b-ce45dsq1w0] {
    text-align: center;
    padding: 2.25rem 1.25rem;
}

.etl-sched__empty-icon[b-ce45dsq1w0] {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--etl-radius-md);
    display: grid;
    place-items: center;
    font-size: 1.65rem;
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-sched__empty-title[b-ce45dsq1w0] {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--etl-text);
}

.etl-sched__empty-text[b-ce45dsq1w0] {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 26rem;
    margin-inline: auto;
}

.etl-sched__empty .btn-lg[b-ce45dsq1w0] {
    border-radius: var(--etl-radius-sm);
    font-weight: 600;
}

.etl-sched__th-actions[b-ce45dsq1w0] {
    width: 17rem;
    text-align: right !important;
}

.etl-sched__cron[b-ce45dsq1w0] {
    font-size: 0.8125rem;
}

.etl-sched__pagination[b-ce45dsq1w0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--etl-card-border);
}

.etl-sched__pagination-info[b-ce45dsq1w0] {
    font-size: 0.8125rem;
    color: var(--etl-text-muted);
}

.etl-sched__pagination-controls[b-ce45dsq1w0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

html[data-theme="dark"] .etl-sched__panel[b-ce45dsq1w0],
html:not([data-theme="light"]) .etl-sched__panel[b-ce45dsq1w0] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="light"] .etl-sched__stamp[b-ce45dsq1w0] {
    background: var(--etl-accent-muted);
}
/* /Pages/SchedulerCreate.razor.rz.scp.css */
/* Tạo lịch — cùng shell với SchedulerEdit.razor.css */

.etl-sched-edit[b-kl5z6jjmmd] {
    max-width: 920px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-sched-edit__toolbar[b-kl5z6jjmmd] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-sched-edit__toolbar-right[b-kl5z6jjmmd] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.etl-sched-edit__eyebrow[b-kl5z6jjmmd] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-sched-edit__title[b-kl5z6jjmmd] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.55rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-sched-edit__lead[b-kl5z6jjmmd] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    line-height: 1.5;
    max-width: 38rem;
}

.etl-sched-edit__stamp[b-kl5z6jjmmd] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-sched-edit__btn-back[b-kl5z6jjmmd] {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    background: transparent;
}

.etl-sched-edit__btn-back:hover[b-kl5z6jjmmd] {
    border-color: var(--etl-accent-border);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

.etl-sched-edit__panel[b-kl5z6jjmmd] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    padding: 1.15rem 1.25rem 1.35rem;
    box-shadow: var(--etl-shadow-sm);
}

.scheduler-edit[b-kl5z6jjmmd] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.scheduler-edit__section[b-kl5z6jjmmd] {
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.scheduler-edit__section:last-of-type[b-kl5z6jjmmd] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.scheduler-edit__section--notify[b-kl5z6jjmmd] {
    padding-top: 0.15rem;
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-cron-help {
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-sm);
    background: var(--etl-input-soft, rgba(2, 6, 23, 0.35));
    overflow: hidden;
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-cron-help summary {
    list-style: none;
    cursor: pointer;
    padding: 0.55rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--etl-text);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    user-select: none;
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-cron-help summary::-webkit-details-marker {
    display: none;
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-cron-help summary .bi {
    font-size: 0.95rem;
    color: var(--etl-accent);
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-cron-help__body {
    padding: 0 0.85rem 0.85rem;
    border-top: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    font-size: 0.875rem;
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-cron-help__body code {
    font-size: 0.8em;
    padding: 0.1rem 0.35rem;
    border-radius: 0.25rem;
    background: rgba(0, 0, 0, 0.2);
    color: var(--etl-accent-mid);
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-cron-help__examples code {
    white-space: nowrap;
}

.scheduler-edit__actions[b-kl5z6jjmmd] {
    margin-top: 1.35rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--etl-card-border);
}

.etl-sched-edit[b-kl5z6jjmmd]  .scheduler-edit__checks .form-check {
    padding: 0.55rem 0.75rem;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

html[data-theme="dark"] .etl-sched-edit__panel[b-kl5z6jjmmd],
html:not([data-theme="light"]) .etl-sched-edit__panel[b-kl5z6jjmmd] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

@media (max-width: 576px) {
    .etl-sched-edit__toolbar-right[b-kl5z6jjmmd] {
        width: 100%;
        justify-content: flex-start;
    }
}
/* /Pages/SchedulerEdit.razor.rz.scp.css */
/* Chỉnh sửa lịch — shell teal, panel token, ::deep cho field con */

.etl-sched-edit[b-ymjtt1x8sr] {
    max-width: 920px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-sched-edit__toolbar[b-ymjtt1x8sr] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-sched-edit__toolbar-right[b-ymjtt1x8sr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.etl-sched-edit__eyebrow[b-ymjtt1x8sr] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-sched-edit__title[b-ymjtt1x8sr] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.55rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-sched-edit__lead[b-ymjtt1x8sr] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    line-height: 1.5;
    max-width: 38rem;
}

.etl-sched-edit__stamp[b-ymjtt1x8sr] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-sched-edit__btn-back[b-ymjtt1x8sr] {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    background: transparent;
}

.etl-sched-edit__btn-back:hover[b-ymjtt1x8sr] {
    border-color: var(--etl-accent-border);
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
}

.etl-sched-edit__panel[b-ymjtt1x8sr] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    padding: 1.15rem 1.25rem 1.35rem;
    box-shadow: var(--etl-shadow-sm);
}

.scheduler-edit[b-ymjtt1x8sr] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.scheduler-edit__section[b-ymjtt1x8sr] {
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.scheduler-edit__section:last-of-type[b-ymjtt1x8sr] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.scheduler-edit__section--notify[b-ymjtt1x8sr] {
    padding-top: 0.15rem;
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-cron-help {
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-sm);
    background: var(--etl-input-soft, rgba(2, 6, 23, 0.35));
    overflow: hidden;
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-cron-help summary {
    list-style: none;
    cursor: pointer;
    padding: 0.55rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--etl-text);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    user-select: none;
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-cron-help summary::-webkit-details-marker {
    display: none;
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-cron-help summary .bi {
    font-size: 0.95rem;
    color: var(--etl-accent);
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-cron-help__body {
    padding: 0 0.85rem 0.85rem;
    border-top: 1px solid var(--etl-card-border);
    color: var(--etl-text-secondary);
    font-size: 0.875rem;
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-cron-help__body code {
    font-size: 0.8em;
    padding: 0.1rem 0.35rem;
    border-radius: 0.25rem;
    background: rgba(0, 0, 0, 0.2);
    color: var(--etl-accent-mid);
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-cron-help__examples code {
    white-space: nowrap;
}

.scheduler-run-summary[b-ymjtt1x8sr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.75rem;
}

.scheduler-run-summary__item[b-ymjtt1x8sr] {
    padding: 0.85rem 1rem;
    border-radius: var(--etl-radius-sm);
    border: 1px solid var(--etl-card-border);
    background: var(--etl-input-soft, rgba(2, 6, 23, 0.4));
}

.scheduler-run-summary__label[b-ymjtt1x8sr] {
    display: block;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--etl-text-muted);
    margin-bottom: 0.35rem;
}

.scheduler-run-summary__value[b-ymjtt1x8sr] {
    font-size: 1rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--etl-text);
}

.scheduler-edit__actions[b-ymjtt1x8sr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.35rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--etl-card-border);
}

.scheduler-edit__actions-primary[b-ymjtt1x8sr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.etl-sched-edit[b-ymjtt1x8sr]  .scheduler-edit__checks .form-check {
    padding: 0.55rem 0.75rem;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

html[data-theme="dark"] .etl-sched-edit__panel[b-ymjtt1x8sr],
html:not([data-theme="light"]) .etl-sched-edit__panel[b-ymjtt1x8sr] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

@media (max-width: 576px) {
    .etl-sched-edit__toolbar-right[b-ymjtt1x8sr] {
        width: 100%;
        justify-content: flex-start;
    }
}
/* /Pages/Settings.razor.rz.scp.css */
/* Settings — shell teal + form trong một panel */

/* Đồng bộ với Profile / UserRole: cùng độ rộng tối đa */
.etl-set[b-sa6zhztyfq] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-set__toolbar[b-sa6zhztyfq] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-set__intro[b-sa6zhztyfq] {
    flex: 1;
    min-width: min(100%, 16rem);
}

.etl-set__eyebrow[b-sa6zhztyfq] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-set__title[b-sa6zhztyfq] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-set__lead[b-sa6zhztyfq] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 42rem;
    line-height: 1.5;
}

.etl-set__stamp[b-sa6zhztyfq] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-set__content[b-sa6zhztyfq] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    padding: 2rem 1.5rem;
}

.etl-set__sheet[b-sa6zhztyfq] {
    padding: 1.25rem 1.35rem 0;
}

.etl-set__sheet > form[b-sa6zhztyfq] {
    margin: 0;
}

.etl-set__loading[b-sa6zhztyfq] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    color: var(--etl-text-secondary);
    font-weight: 500;
}

.etl-set__spinner[b-sa6zhztyfq] {
    color: var(--etl-accent) !important;
}

.etl-set__banner[b-sa6zhztyfq] {
    border-radius: var(--etl-radius-sm);
    margin-bottom: 1.25rem;
}

.etl-set__grid[b-sa6zhztyfq] {
    margin-bottom: 0;
}

.etl-set__footer[b-sa6zhztyfq] {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.5rem;
    margin-left: -1.35rem;
    margin-right: -1.35rem;
    margin-bottom: -1.25rem;
    padding: 1rem 1.35rem 1.25rem;
    border-top: 1px solid var(--etl-card-border);
    background: var(--etl-canvas, rgba(15, 23, 42, 0.03));
    border-radius: 0 0 var(--etl-radius-md) var(--etl-radius-md);
}

.etl-set__btn-save[b-sa6zhztyfq] {
    font-weight: 600;
    padding: 0.45rem 1.15rem;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent);
    border-color: var(--etl-accent);
}

.etl-set__btn-save:hover:not(:disabled)[b-sa6zhztyfq] {
    background: var(--etl-accent-hover);
    border-color: var(--etl-accent-hover);
}

.etl-set__block[b-sa6zhztyfq] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    overflow: hidden;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.etl-set__block-title[b-sa6zhztyfq] {
    margin: 0 !important;
    padding: 0.65rem 1rem;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    border-bottom: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
}

.etl-set__block-body[b-sa6zhztyfq] {
    padding: 1rem 1.05rem 1.05rem;
    flex: 1 1 auto;
}

.etl-set__label[b-sa6zhztyfq] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--etl-text);
    margin-bottom: 0.35rem;
}

.etl-set__check[b-sa6zhztyfq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 0;
    padding: 0.4rem 0.65rem;
    margin-bottom: 1rem;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-set__check .form-check-input[b-sa6zhztyfq] {
    margin-top: 0;
    flex-shrink: 0;
}

.etl-set__check-label[b-sa6zhztyfq] {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.35;
}

.etl-set__pwd-row[b-sa6zhztyfq] {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
}

.etl-set__pwd-input[b-sa6zhztyfq] {
    flex: 1 1 14rem;
    min-width: 0;
}

.etl-set__pwd-btn[b-sa6zhztyfq] {
    flex: 0 0 auto;
    align-self: stretch;
    white-space: nowrap;
}

.etl-set__hint[b-sa6zhztyfq] {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--etl-text-muted);
}

.etl-set__hint a[b-sa6zhztyfq] {
    font-weight: 600;
}

.etl-set__test-msg[b-sa6zhztyfq] {
    border-radius: var(--etl-radius-sm);
    font-size: 0.875rem;
}

html[data-theme="dark"] .etl-set__block[b-sa6zhztyfq],
html:not([data-theme="light"]) .etl-set__block[b-sa6zhztyfq],
html[data-theme="dark"] .etl-set__content[b-sa6zhztyfq],
html:not([data-theme="light"]) .etl-set__content[b-sa6zhztyfq] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-set__block-title[b-sa6zhztyfq],
html:not([data-theme="light"]) .etl-set__block-title[b-sa6zhztyfq] {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-set__footer[b-sa6zhztyfq],
html:not([data-theme="light"]) .etl-set__footer[b-sa6zhztyfq] {
    border-top-color: rgba(255, 255, 255, 0.08);
    background: rgba(0, 0, 0, 0.2);
}
/* /Pages/UserRole.razor.rz.scp.css */
/* User / role — shell teal */

.etl-usr[b-fzh4cqhrma] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 1.35rem 1.5rem 2.25rem;
}

.etl-usr__toolbar[b-fzh4cqhrma] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.etl-usr__intro[b-fzh4cqhrma] {
    flex: 1;
    min-width: min(100%, 16rem);
}

.etl-usr__eyebrow[b-fzh4cqhrma] {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--etl-accent);
}

.etl-usr__title[b-fzh4cqhrma] {
    margin: 0 0 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--etl-text);
}

.etl-usr__lead[b-fzh4cqhrma] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 42rem;
    line-height: 1.5;
}

.etl-usr__toolbar-right[b-fzh4cqhrma] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.etl-usr__stamp[b-fzh4cqhrma] {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--etl-card-border);
    background: var(--etl-accent-muted);
    color: var(--etl-accent-text);
}

.etl-usr__btn-add[b-fzh4cqhrma] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1.15rem;
    font-weight: 600;
    font-size: 0.875rem;
    border: none;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-sidebar-active);
    color: #fff !important;
    box-shadow: 0 4px 14px var(--etl-accent-shadow-soft);
    transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.etl-usr__btn-add:hover:not(:disabled)[b-fzh4cqhrma] {
    filter: brightness(1.06);
    color: #fff !important;
    box-shadow: 0 6px 18px var(--etl-accent-shadow);
}

.etl-usr__content[b-fzh4cqhrma] {
    background: var(--etl-card);
    border: 1px solid var(--etl-card-border);
    border-radius: var(--etl-radius-md);
    box-shadow: var(--etl-shadow-sm);
    padding: 1.25rem 1.35rem;
    min-width: 0;
}

.etl-usr__panel-head[b-fzh4cqhrma] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--etl-card-border);
}

.etl-usr__section-title[b-fzh4cqhrma] {
    margin-bottom: 0 !important;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.etl-usr__loading[b-fzh4cqhrma] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2.5rem 1rem;
    color: var(--etl-text-secondary);
    font-weight: 500;
}

.etl-usr__spinner[b-fzh4cqhrma] {
    color: var(--etl-accent) !important;
}

.etl-usr__empty[b-fzh4cqhrma] {
    text-align: center;
    padding: 2.25rem 1.25rem;
}

.etl-usr__empty-icon[b-fzh4cqhrma] {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--etl-radius-md);
    display: grid;
    place-items: center;
    font-size: 1.65rem;
    color: var(--etl-accent);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-usr__empty-title[b-fzh4cqhrma] {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--etl-text);
}

.etl-usr__empty-text[b-fzh4cqhrma] {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
    color: var(--etl-text-muted);
    max-width: 26rem;
    margin-inline: auto;
}

.etl-usr__table[b-fzh4cqhrma]  tbody tr:hover {
    background: var(--etl-accent-muted);
}

.etl-usr__label[b-fzh4cqhrma] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--etl-text);
    margin-bottom: 0.35rem;
}

.etl-usr__check[b-fzh4cqhrma] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 0;
    padding: 0.4rem 0.65rem;
    margin-bottom: 0;
    border-radius: var(--etl-radius-sm);
    background: var(--etl-accent-muted);
    border: 1px solid var(--etl-accent-border);
}

.etl-usr__check .form-check-input[b-fzh4cqhrma] {
    margin-top: 0;
    flex-shrink: 0;
}

.etl-usr__check-label[b-fzh4cqhrma] {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.35;
}

.etl-usr__modal-fields[b-fzh4cqhrma] {
    min-width: 0;
}

.etl-usr__modal-footer[b-fzh4cqhrma] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.etl-usr__modal-content[b-fzh4cqhrma] {
    border-radius: var(--etl-radius-md);
    border: 1px solid var(--etl-card-border);
    overflow: hidden;
}

html[data-theme="dark"] .etl-usr__content[b-fzh4cqhrma],
html:not([data-theme="light"]) .etl-usr__content[b-fzh4cqhrma] {
    background: rgba(28, 33, 44, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .etl-usr__panel-head[b-fzh4cqhrma],
html:not([data-theme="light"]) .etl-usr__panel-head[b-fzh4cqhrma] {
    border-color: rgba(255, 255, 255, 0.08);
}
/* /Shared/LoginLayout.razor.rz.scp.css */
/* Login root: wwwroot/css/app-surface/login.css (.etl-auth-root) */
/* /Shared/MainLayout.razor.rz.scp.css */
/* Application shell — sidebar + main (scoped to MainLayout) */

.app-shell[b-nt7kc955je] {
    display: flex;
    height: 100vh;
    overflow: hidden;
    /* Nền: wwwroot/css/app-shell-dark.css */
}

.app-sidebar[b-nt7kc955je] {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: var(--app-sidebar-width, 250px);
    height: 100vh;
    max-height: 100vh;
    border-radius: var(--app-radius-sidebar, 0 1.25rem 1.25rem 0);
    box-shadow: var(--app-shadow-sidebar);
    z-index: 1050;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.app-sidebar__top[b-nt7kc955je] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    -webkit-overflow-scrolling: touch;
}

.app-sidebar__top .px-3[b-nt7kc955je] {
    flex: 1 1 auto;
    min-height: 0;
}

.app-sidebar__brand[b-nt7kc955je] {
    flex-shrink: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 0.35rem;
}

.app-sidebar__brand h4[b-nt7kc955je] {
    font-size: 1.05rem;
    letter-spacing: -0.02em;
}

.app-sidebar__brand .app-sidebar__hello[b-nt7kc955je] {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.8125rem;
    font-weight: 500;
}

.app-sidebar__footer[b-nt7kc955je] {
    flex-shrink: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-top: 0.85rem;
    padding-bottom: 0.25rem;
    margin-top: 0;
    background: linear-gradient(180deg, rgba(1, 63, 144, 0.35) 0%, rgba(1, 74, 173, 0.55) 100%);
    position: relative;
    z-index: 2;
}

.app-main[b-nt7kc955je] {
    margin-left: var(--app-sidebar-width, 250px);
    flex: 1;
    min-width: 0;
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    background: transparent;
}

.app-sidebar__avatar[b-nt7kc955je] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    margin: 0 auto 0.45rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.28);
}

.app-sidebar__avatar .oi[b-nt7kc955je] {
    font-size: 1.15rem;
    color: rgba(255, 255, 255, 0.95);
    line-height: 1;
}

.app-sidebar__footer.sidebar-profile[b-nt7kc955je] {
    margin-bottom: 0;
}

.app-sidebar__logout[b-nt7kc955je] {
    width: 85%;
    margin-top: 0.6rem;
    border-radius: 0.5rem !important;
    font-weight: 600;
}

/* Gate screens: wwwroot/css/app-gate.css (global) */

.app-main[b-nt7kc955je]::-webkit-scrollbar {
    width: 10px;
}

.app-main[b-nt7kc955je]::-webkit-scrollbar-track {
    background: transparent;
}

.app-main[b-nt7kc955je]::-webkit-scrollbar-thumb {
    background: var(--gray-300, #d1d5db);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

.app-main[b-nt7kc955je]::-webkit-scrollbar-thumb:hover {
    background: var(--gray-400, #9ca3af);
    background-clip: padding-box;
}
/* /Shared/NavMenu.razor.rz.scp.css */
/* Primary navigation (scoped to NavMenu; NavLink renders as <a>) */

.nav-menu-root.nav.flex-column[b-rrm3ylp7pb],
.nav.flex-column[b-rrm3ylp7pb] {
    gap: 0.35rem !important;
}

.nav-menu-group[b-rrm3ylp7pb] {
    margin-bottom: 0.15rem;
}

.nav-menu-group__header[b-rrm3ylp7pb] {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 0.25rem;
    padding: 0.55rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.6rem;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.22) 0%, rgba(255, 255, 255, 0.08) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.94);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    cursor: pointer;
    text-align: left;
    line-height: 1.2;
    transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.nav-menu-group__header:hover[b-rrm3ylp7pb] {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(255, 255, 255, 0.12) 100%);
    border-color: var(--etl-accent-border);
}

.nav-menu-group__header:focus[b-rrm3ylp7pb] {
    outline: 2px solid rgba(255, 255, 255, 0.45);
    outline-offset: 2px;
}

.nav-menu-group__header-icon[b-rrm3ylp7pb] {
    font-size: 0.95rem;
    opacity: 0.95;
}

.nav-menu-group__label[b-rrm3ylp7pb] {
    flex: 1;
}

.nav-menu-group__chev[b-rrm3ylp7pb] {
    margin-left: auto;
    font-size: 0.65rem;
    opacity: 0.8;
    flex-shrink: 0;
}

.nav-menu-group__children[b-rrm3ylp7pb] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.35rem 0 0.4rem 0.5rem;
    margin: 0.25rem 0 0.35rem 0.4rem;
    border-left: 3px solid var(--etl-accent-border);
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.62rem 1rem;
    color: rgba(255, 255, 255, 0.86);
    text-decoration: none;
    border-radius: 0.55rem;
    font-size: 0.9375rem;
    font-weight: 500;
    transition: background 0.18s ease, color 0.18s ease, transform 0.15s ease;
    margin-bottom: 0.1rem;
    white-space: nowrap;
    border: 1px solid transparent;
    letter-spacing: -0.01em;
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    text-decoration: none;
    transform: translateX(2px);
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item.active {
    background: var(--etl-sidebar-active);
    color: #fff !important;
    font-weight: 600;
    border-color: transparent;
    border-left: 3px solid rgba(255, 255, 255, 0.35);
    box-shadow: 0 6px 22px var(--etl-accent-shadow);
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item i.bi {
    font-size: 1rem;
    opacity: 0.95;
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item--child {
    padding: 0.52rem 0.65rem 0.52rem 0.75rem !important;
    font-size: 0.875rem;
    margin-bottom: 0.02rem;
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item--help {
    margin-top: 0.35rem;
    border: 1px dashed rgba(255, 255, 255, 0.28);
    background: rgba(0, 0, 0, 0.12);
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item--help:hover {
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.1);
}

.nav.flex-column[b-rrm3ylp7pb]  a.nav-menu-item.active i.bi {
    color: #fff !important;
}
