/**
 * Jobs Table v2 - AG Grid Theme
 * Custom theme matching v1 design
 */

/* ============================================
   AG Grid Base Theme Overrides
   ============================================ */

.tfiber-jobs-v2-grid {
    --ag-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    --ag-font-size: 13px;
    font-weight: 500;
    --ag-row-height: 25px;
    --ag-header-height: 36px;
    --ag-cell-horizontal-padding: 0px;
    --ag-header-cell-horizontal-padding: 2px;
    
    /* Colors */
    --ag-background-color: #fff;
    --ag-foreground-color: #333;
    --ag-header-background-color: #f8f9fa;
    --ag-header-foreground-color: #495057;
    --ag-odd-row-background-color: #fff;
    --ag-even-row-background-color: #fff;
    --ag-row-hover-color: #f5f5f5;
    --ag-selected-row-background-color: #e3f2fd;
    --ag-border-color: #dee2e6;
    --tfiber-v2-col-separator: #e6e6e8;
    
    /* Remove outer grid chrome; row + column lines via AG Grid border vars */
    --ag-borders: none;
    --ag-row-border-width: 1px;
    --ag-row-border-color: #f2f2f3;
    --ag-cell-horizontal-border: solid var(--tfiber-v2-col-separator);
    --ag-header-column-separator-display: block;
    --ag-header-column-separator-color: var(--tfiber-v2-col-separator);
    --ag-header-column-separator-height: 100%;
}

.tfiber-jobs-v2-grid .ag-root-wrapper {
    border: 1px solid #dee2e6;
    border-radius: 4px;
}

/* Header */
.tfiber-jobs-v2-grid .ag-header {
    border-bottom: 2px solid #dee2e6;
}

.tfiber-jobs-v2-grid .ag-header-cell {
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-align: center;
}

.tfiber-jobs-v2-grid .ag-header-cell:hover {
    background-color: #e9ecef;
}

/* Column vertical separators (v1 parity: #dcdcde grid lines) */
.tfiber-jobs-v2-grid .ag-ltr .ag-cell:not(.ag-cell-range-selected) {
    border-right: 1px solid var(--tfiber-v2-col-separator) !important;
}

.tfiber-jobs-v2-grid .ag-pinned-left-header .ag-header-cell::before,
.tfiber-jobs-v2-grid .ag-header-cell::before {
    background-color: var(--tfiber-v2-col-separator);
}

.tfiber-jobs-v2-grid .ag-full-width-row .ag-cell {
    border-right: none !important;
}

/* Cells — AG Grid stacks padding on .ag-cell and .ag-cell-wrapper; zero both (v1 td used 0 1px) */
.tfiber-jobs-v2-grid.ag-theme-balham,
.tfiber-jobs-v2-grid.ag-theme-balham-dark {
    --ag-cell-horizontal-padding: 0px;
}

.tfiber-jobs-v2-grid .ag-cell,
.tfiber-jobs-v2-grid .ag-row > .ag-cell-wrapper,
.tfiber-jobs-v2-grid .ag-cell .ag-cell-wrapper,
.tfiber-jobs-v2-grid .ag-cell .ag-cell-value {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.tfiber-jobs-v2-grid .ag-cell {
    line-height: 23px;
    font-weight: 500;
}

/* ============================================
   Row Styling (light theme only — dark uses rules below)
   ============================================ */

/* Cancelled — strikethrough only, no row highlight wash */
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .ag-cell {
    color: #6b7280;
    text-decoration: line-through;
    text-decoration-color: rgba(107, 114, 128, 0.85);
    text-decoration-thickness: 1px;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-comment-editable,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-v2-comment-editable,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-v2-comment-input {
    color: #6b7280;
    text-decoration: line-through;
    text-decoration-color: rgba(107, 114, 128, 0.85);
    text-decoration-thickness: 1px;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled select,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled button,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-pushed-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-no-placeholder-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-completed-placeholder-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-unknown-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-tc-repeat-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-tc-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-push-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-v2-repeat-badge,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-new-stamp,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-state-wrap,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-status-wrap {
    text-decoration: none;
}

.tfiber-jobs-v2-row-locked {
    opacity: 0.6;
}

/* Stable zebra striping — data cells only; state/status buttons keep their own fills */
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-stripe-odd:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) {
    background-color: #fff;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-stripe-even:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) {
    background-color: #f5f5f5;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-stripe-odd:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status),
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-stripe-even:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) {
    background-color: #eef2f7 !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid {
    --ag-background-color: #0f1724;
    --ag-odd-row-background-color: #0f1724;
    --ag-even-row-background-color: #0f1724;
    --ag-row-hover-color: transparent;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-stripe-odd:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) {
    background-color: #0f1724;
    color: #e2e8f0;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-stripe-even:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) {
    background-color: #111c2b;
    color: #e2e8f0;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-stripe-odd:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status),
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-stripe-even:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) {
    background-color: #152031 !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .ag-cell {
    color: #6b7585;
    text-decoration: line-through;
    text-decoration-color: rgba(248, 113, 113, 0.55);
    text-decoration-thickness: 1px;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-comment-editable,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-v2-comment-editable,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-v2-comment-input {
    color: #6b7585;
    text-decoration: line-through;
    text-decoration-color: rgba(248, 113, 113, 0.55);
    text-decoration-thickness: 1px;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled select,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled button,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-pushed-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-no-placeholder-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-completed-placeholder-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-unknown-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-tc-repeat-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-tc-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-push-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-v2-repeat-badge,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-new-stamp,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-state-wrap,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-cancelled .tfiber-jobs-status-wrap {
    text-decoration: none;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-maintenance:hover:not(.tfiber-jobs-v2-row-today) .ag-cell {
    background-color: #152031 !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-comment-editable {
    color: #e2e8f0;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-jobtype-maintenance {
    color: #7dd3fc;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-repeat-badge {
    background-color: rgba(127, 29, 29, 0.45);
    color: #fecaca;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-separator-day {
    background: #1c1912;
    color: #fbbf24;
    border-top-color: rgba(245, 158, 11, 0.5);
    border-bottom-color: rgba(245, 158, 11, 0.5);
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-separator-sunday {
    background: #1a1218;
    color: #f9a8d4;
    border-top-color: rgba(244, 143, 177, 0.35);
    border-bottom-color: rgba(244, 143, 177, 0.35);
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-separator-today {
    background: #92400e;
    color: #fef3c7;
    border-top-color: rgba(251, 191, 36, 0.55);
    border-bottom-color: rgba(251, 191, 36, 0.55);
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid ::-webkit-scrollbar-track {
    background: #1e293b;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid ::-webkit-scrollbar-thumb {
    background: #475569;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid ::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}

/* ============================================
   Separator Rows
   ============================================ */

.tfiber-v2-separator-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 12px;
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    text-align: center;
}

.tfiber-v2-separator-label {
    display: inline-block;
}

/* Day separator */
.tfiber-v2-separator-day {
    background: #fff3df;
    color: #7c4a03;
    border-top: 2px solid #e7c08a;
    border-bottom: 2px solid #e7c08a;
}

/* Sunday separator */
.tfiber-v2-separator-sunday {
    background: linear-gradient(to bottom, #fce4ec, #f3b6cf);
    color: #9d174d;
    border-top: 2px solid #ec4899;
    border-bottom: 2px solid #ec4899;
}

.tfiber-v2-separator-sunday .tfiber-v2-separator-label {
    text-transform: none;
}

.tfiber-v2-separator-sunday-date {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-separator-sunday-date {
    color: #fbcfe8;
}

/* Today separator */
.tfiber-v2-separator-today {
    background: #f4a340;
    color: #fff;
    border-top: 2px solid #d88416;
    border-bottom: 2px solid #d88416;
}

.tfiber-v2-separator-today-start .tfiber-v2-separator-label::before {
    content: none;
}

/* ============================================
   State buttons + status badges (balanced — readable, not neon)
   ============================================ */

.tfiber-jobs-v2-grid .tfiber-jobs-state-wrap,
.tfiber-jobs-v2-grid .tfiber-jobs-status-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    padding: 1px 0;
}

/* Drop / status / precall / locates — inset outline so borders aren't clipped by the cell box */
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-v2-compact-button-col,
.tfiber-jobs-v2-grid .ag-header-cell.tfiber-jobs-v2-compact-button-col {
    --ag-cell-horizontal-padding: 0px;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-v2-compact-button-col .ag-cell-wrapper,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-v2-compact-button-col .ag-cell-value {
    padding-left: 0;
    padding-right: 0;
}

.tfiber-jobs-v2-grid .ag-header-cell.tfiber-jobs-v2-compact-button-col .ag-header-cell-comp-wrapper,
.tfiber-jobs-v2-grid .ag-header-cell.tfiber-jobs-v2-compact-button-col .ag-header-cell-label {
    padding-left: 0;
    padding-right: 0;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status {
    --tfiber-btn-border: #cbd5e1;
    display: flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    line-height: 1 !important;
}

/* v1 public.css: status-readonly min-width:90px, state-button min-width:62px + padding:0 6px */
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status.tfiber-jobs-status-readonly,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button.tfiber-jobs-state-wrap {
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button::after,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status::after {
    content: '';
    position: absolute;
    top: 1px;
    right: 0;
    bottom: 1px;
    left: 0;
    box-sizing: border-box;
    border: 1px solid var(--tfiber-btn-border, #cbd5e1);
    border-radius: 6px;
    pointer-events: none;
    transition: border-color 0.05s ease, box-shadow 0.05s ease, filter 0.05s ease;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button .ag-cell-wrapper,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button .ag-cell-value,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status .ag-cell-wrapper,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status .ag-cell-value {
    position: relative;
    z-index: 1;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-width: 0 !important;
    max-width: 100%;
    padding: 0 !important;
    text-align: center;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status .ag-cell-value {
    white-space: nowrap;
    text-overflow: ellipsis;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status,
.tfiber-jobs-v2-grid button.tfiber-jobs-state-button,
.tfiber-jobs-v2-grid .tfiber-jobs-status {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    color: #334155;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status {
    background-clip: padding-box;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
}

.tfiber-jobs-v2-grid button.tfiber-jobs-state-button,
.tfiber-jobs-v2-grid .tfiber-jobs-status:not(.ag-cell) {
    padding-left: 0;
    padding-right: 0;
    min-width: 0;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-v2-grid button.tfiber-jobs-state-button {
    cursor: pointer;
    touch-action: manipulation;
    transition: border-color 0.05s ease, background-color 0.05s ease, box-shadow 0.05s ease;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked),
.tfiber-jobs-v2-grid button.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked):not([disabled]) {
    filter: brightness(0.97);
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked) {
    box-shadow: none;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked)::after {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.1);
}

.tfiber-jobs-v2-grid button.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked):not([disabled]) {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.1);
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button.tfiber-jobs-locked,
.tfiber-jobs-v2-grid button.tfiber-jobs-state-button.tfiber-jobs-locked,
.tfiber-jobs-v2-grid button.tfiber-jobs-state-button[disabled] {
    cursor: not-allowed;
    opacity: 0.78;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status,
.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status-readonly {
    cursor: default;
    pointer-events: none;
}

/* Per-state colors (specificity must beat base button rule) */
.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--none {
    background: #fca5a5;
    border-color: #ef4444;
    --tfiber-btn-border: #ef4444;
    color: #7f1d1d;
}

.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--buried {
    background: #fde68a;
    border-color: #f59e0b;
    --tfiber-btn-border: #f59e0b;
    color: #78350f;
}

.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--blown,
.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--confirmed,
.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--scheduled {
    background: #ffffff;
    border-color: #cbd5e1;
    --tfiber-btn-border: #cbd5e1;
    color: #334155;
}

.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--texted {
    background: #7dd3fc;
    border-color: #0ea5e9;
    --tfiber-btn-border: #0ea5e9;
    color: #0c4a6e;
}

.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--located {
    background: #fdba74;
    border-color: #ea580c;
    --tfiber-btn-border: #ea580c;
    color: #7c2d12;
}

.tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--new_date {
    background: #a5b4fc;
    border-color: #6366f1;
    --tfiber-btn-border: #6366f1;
    color: #312e81;
}

/* Drop status — soft tint on address, time, and date cells (not whole row) */
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-none:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #ffe8e8 !important;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-none:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #ffd1d1 !important;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-buried:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #fff4d6 !important;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-buried:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #ffe98a !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-drop-none:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #2a1818 !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-drop-none:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #351f1f !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-drop-buried:not(.tfiber-jobs-v2-row-cancelled) .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #2a2410 !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-drop-buried:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell:is([col-id="address"], [col-id="time"], [col-id="date"]) {
    background-color: #352d14 !important;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--scheduled {
    background: #ffffff;
    border-color: #cbd5e1;
    --tfiber-btn-border: #cbd5e1;
    color: #334155;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--en-route,
.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--pending {
    background: #93c5fd;
    border-color: #3b82f6;
    --tfiber-btn-border: #3b82f6;
    color: #1e3a8a;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--in-progress {
    background: #c4b5fd;
    border-color: #8b5cf6;
    --tfiber-btn-border: #8b5cf6;
    color: #4c1d95;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--installing {
    background: #5eead4;
    border-color: #14b8a6;
    --tfiber-btn-border: #14b8a6;
    color: #134e4a;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--rescheduling {
    background: #fca5a5;
    border-color: #ef4444;
    --tfiber-btn-border: #ef4444;
    color: #7f1d1d;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--completed {
    background: #ffffff;
    border-color: #cbd5e1;
    --tfiber-btn-border: #cbd5e1;
    color: #334155;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--cancelled {
    background: #fca5a5;
    border-color: #dc2626;
    --tfiber-btn-border: #dc2626;
    color: #7f1d1d;
}

/* Installation jobs: scheduled = white, completed = green */
.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--install-job.tfiber-jobs-status--scheduled {
    background: #ffffff;
    border-color: #cbd5e1;
    --tfiber-btn-border: #cbd5e1;
    color: #334155;
}

.tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--install-job.tfiber-jobs-status--completed {
    background: #86efac;
    border-color: #22c55e;
    --tfiber-btn-border: #22c55e;
    color: #14532d;
}

/* Dark theme — state buttons */
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--none {
    background: rgba(127, 29, 29, 0.32);
    border-color: rgba(185, 92, 92, 0.38);
    --tfiber-btn-border: rgba(185, 92, 92, 0.38);
    color: #fecaca;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--buried {
    background: rgba(245, 158, 11, 0.28);
    border-color: rgba(180, 135, 70, 0.38);
    --tfiber-btn-border: rgba(180, 135, 70, 0.38);
    color: #d4b078;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--blown,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--confirmed,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--scheduled {
    background: #1a2436;
    border-color: rgba(148, 163, 184, 0.32);
    --tfiber-btn-border: rgba(148, 163, 184, 0.32);
    color: #94a3b8;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--texted {
    background: rgba(14, 165, 233, 0.28);
    border-color: rgba(56, 189, 248, 0.38);
    --tfiber-btn-border: rgba(56, 189, 248, 0.38);
    color: #7dd3fc;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--located {
    background: rgba(234, 88, 12, 0.28);
    border-color: rgba(251, 146, 60, 0.38);
    --tfiber-btn-border: rgba(251, 146, 60, 0.38);
    color: #fdba74;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--new_date {
    background: rgba(99, 102, 241, 0.28);
    border-color: rgba(129, 140, 248, 0.38);
    --tfiber-btn-border: rgba(129, 140, 248, 0.38);
    color: #a5b4fc;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--scheduled {
    background: #1a2436;
    border-color: rgba(148, 163, 184, 0.32);
    --tfiber-btn-border: rgba(148, 163, 184, 0.32);
    color: #94a3b8;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--en-route,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--pending {
    background: rgba(59, 130, 246, 0.28);
    border-color: rgba(96, 130, 180, 0.38);
    --tfiber-btn-border: rgba(96, 130, 180, 0.38);
    color: #93c5fd;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--in-progress {
    background: rgba(139, 92, 246, 0.28);
    border-color: rgba(130, 110, 190, 0.38);
    --tfiber-btn-border: rgba(130, 110, 190, 0.38);
    color: #c4b5fd;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--installing {
    background: rgba(20, 184, 166, 0.28);
    border-color: rgba(70, 160, 150, 0.38);
    --tfiber-btn-border: rgba(70, 160, 150, 0.38);
    color: #5eead4;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--rescheduling,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--cancelled {
    background: rgba(127, 29, 29, 0.32);
    border-color: rgba(185, 92, 92, 0.38);
    --tfiber-btn-border: rgba(185, 92, 92, 0.38);
    color: #fecaca;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--completed {
    background: #1a2436;
    border-color: rgba(148, 163, 184, 0.32);
    --tfiber-btn-border: rgba(148, 163, 184, 0.32);
    color: #94a3b8;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--install-job.tfiber-jobs-status--scheduled {
    background: #1a2436;
    border-color: rgba(148, 163, 184, 0.32);
    --tfiber-btn-border: rgba(148, 163, 184, 0.32);
    color: #94a3b8;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--install-job.tfiber-jobs-status--completed {
    background: rgba(34, 197, 94, 0.32);
    border-color: rgba(74, 222, 128, 0.42);
    --tfiber-btn-border: rgba(74, 222, 128, 0.42);
    color: #86efac;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked),
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid button.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked):not([disabled]) {
    filter: brightness(1.08);
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button:hover:not(.tfiber-jobs-locked) {
    box-shadow: none;
}

/* Legacy tfiber-v2-state-button aliases (unused by renderers; kept minimal) */
.tfiber-v2-state-button-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 2px 4px;
}

/* ============================================
   Status Select Cell
   ============================================ */

.tfiber-v2-status-cell {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 4px;
}

.tfiber-v2-status-select {
    width: 100%;
    height: 21px;
    padding: 0 4px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: border-color 0.15s;
}

.tfiber-v2-status-select:hover {
    border-color: #ccc;
}

.tfiber-v2-status-select:focus {
    outline: none;
    border-color: #2196f3;
}

.tfiber-v2-status-readonly {
    font-weight: 500;
}

/* Status colors */
.tfiber-v2-status--scheduled { color: #1976d2; }
.tfiber-v2-status--en-route { color: #7b1fa2; }
.tfiber-v2-status--in-progress { color: #f57c00; }
.tfiber-v2-status--installing { color: #0288d1; }
.tfiber-v2-status--rescheduling { color: #c2185b; }
.tfiber-v2-status--completed { color: #388e3c; }
.tfiber-v2-status--pending { color: #757575; }
.tfiber-v2-status--cancelled { color: #d32f2f; }

/* ============================================
   Comment Cell
   ============================================ */

.tfiber-jobs-v2-grid .tfiber-jobs-comment-cell {
    position: relative;
    height: 100%;
    width: 100%;
    padding: 0;
    overflow: visible;
}

.tfiber-jobs-v2-grid .tfiber-jobs-comment-wrap {
    position: relative;
    height: 100%;
    width: 100%;
    box-sizing: border-box;
}

.tfiber-jobs-v2-grid .tfiber-jobs-comment-editable,
.tfiber-jobs-v2-grid .tfiber-jobs-comment-display {
    height: 100%;
    line-height: 23px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tfiber-jobs-v2-grid .ag-cell[col-id="comment"] {
    overflow: visible;
    padding-top: 0;
    padding-bottom: 0;
}

.tfiber-jobs-v2-grid .ag-cell[col-id="comment"] .ag-cell-wrapper,
.tfiber-jobs-v2-grid .ag-cell[col-id="comment"] .ag-cell-value {
    height: 100%;
    width: 100%;
}

.tfiber-jobs-v2-grid .ag-cell[col-id="comment"] .tfiber-v2-comment-display,
.tfiber-jobs-v2-grid .ag-cell[col-id="comment"] .tfiber-jobs-comment-display {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* Comment highlights — full cell: left accent + soft tint (v1 simplified parity) */
.tfiber-jobs-v2-grid .ag-cell[col-id="comment"] [class*="tfiber-jobs-comment-highlight--"] {
    background: transparent !important;
    box-shadow: none !important;
    border-color: transparent;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--violet,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--violet {
    background: #f7eeff !important;
    box-shadow: inset 3px 0 0 0 #a855f7;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--teal,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--teal {
    background: #ecfaf6 !important;
    box-shadow: inset 3px 0 0 0 #14b8a6;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--magenta,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--magenta {
    background: #fceeff !important;
    box-shadow: inset 3px 0 0 0 #d946ef;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--slate,
.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--slate {
    background: #eef1f5 !important;
    box-shadow: inset 3px 0 0 0 #64748b;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--violet,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--violet,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--violet,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--violet {
    /* background-image layers over row-level background-color (incl. !important) */
    background-image: linear-gradient(rgba(88, 48, 130, 0.42), rgba(88, 48, 130, 0.42)) !important;
    box-shadow: inset 3px 0 0 0 #c084fc;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--teal,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--teal,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--teal,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--teal {
    background-image: linear-gradient(rgba(22, 100, 92, 0.42), rgba(22, 100, 92, 0.42)) !important;
    box-shadow: inset 3px 0 0 0 #2dd4bf;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--magenta,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--magenta,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--magenta,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--magenta {
    background-image: linear-gradient(rgba(110, 48, 120, 0.42), rgba(110, 48, 120, 0.42)) !important;
    box-shadow: inset 3px 0 0 0 #e879f9;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--slate,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--slate,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--slate,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-row:hover .ag-cell[col-id="comment"].tfiber-jobs-comment-highlight--slate {
    background-image: linear-gradient(rgba(55, 70, 90, 0.55), rgba(55, 70, 90, 0.55)) !important;
    box-shadow: inset 3px 0 0 0 #94a3b8;
}

.tfiber-jobs-v2-grid .ag-cell[col-id="comment"][class*="tfiber-jobs-comment-highlight--"] .tfiber-jobs-comment-wrap:not(.has-unknown-stamp) {
    padding-left: 7px;
}

.tfiber-jobs-v2-grid .ag-header-cell[col-id="comment"] .tfiber-jobs-comment-highlight-picker {
    display: none;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    margin: 0;
}

.tfiber-jobs-v2-grid .ag-header-cell[col-id="comment"] .tfiber-jobs-comment-highlight-swatch {
    touch-action: manipulation;
}

.tfiber-jobs-v2.has-comment-selection .ag-header-cell[col-id="comment"] .tfiber-jobs-comment-highlight-picker {
    display: inline-flex;
}

.tfiber-jobs-v2.is-dark-theme .ag-header-cell[col-id="comment"] .tfiber-jobs-comment-highlight-swatch {
    border-color: rgba(226, 232, 240, 0.35);
}

.tfiber-jobs-v2.is-dark-theme .ag-header-cell[col-id="comment"] .tfiber-jobs-comment-highlight-swatch:hover {
    box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.45);
}

.tfiber-jobs-v2.is-dark-theme .ag-header-cell[col-id="comment"] .tfiber-jobs-comment-highlight-swatch--clear {
    background:
        linear-gradient(135deg, transparent 42%, #f87171 42%, #f87171 58%, transparent 58%),
        #1e293b;
}

.tfiber-v2-comment-cell {
    display: flex;
    align-items: stretch;
    gap: 6px;
    height: 100%;
    width: 100%;
    min-height: 100%;
    padding: 0 4px;
    box-sizing: border-box;
    overflow: hidden;
}

.tfiber-jobs-v2-grid .tfiber-jobs-comment-display,
.tfiber-jobs-v2-grid .tfiber-v2-comment-display {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
    min-height: 100%;
}

.tfiber-v2-comment-editable {
    cursor: text;
}

.tfiber-v2-comment-editable:hover {
    background-color: rgba(33, 150, 243, 0.05);
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-cell[col-id="comment"] .tfiber-v2-comment-editable:hover {
    background-color: rgba(148, 163, 184, 0.08);
}

.tfiber-jobs-v2-grid .ag-cell[col-id="comment"][class*="tfiber-jobs-comment-highlight--"] .tfiber-v2-comment-editable:hover {
    background-color: transparent;
}

.tfiber-v2-comment-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tfiber-v2-comment-badge {
    flex-shrink: 0;
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
}

.tfiber-v2-badge-new {
    background-color: #4caf50;
    color: #fff;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* Comment editor */
.tfiber-v2-comment-editor {
    width: 100%;
    height: 100%;
}

.tfiber-v2-comment-input {
    width: 100%;
    height: 100%;
    padding: 4px 8px;
    border: 2px solid #2196f3;
    border-radius: 4px;
    font-size: 13px;
    resize: none;
}

.tfiber-v2-comment-input:focus {
    outline: none;
}

/* ============================================
   Other Cells
   ============================================ */

/* UUID cell */
.tfiber-v2-uuid-cell {
    cursor: pointer;
    font-family: "SF Mono", Monaco, "Courier New", monospace;
    font-size: 12px;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-v2-uuid-cell:hover {
    background-color: #e3f2fd;
    text-decoration: underline;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-uuid-cell:hover {
    background-color: rgba(59, 130, 246, 0.18);
    text-decoration: underline;
}

.tfiber-v2-uuid-cell--copied {
    background-color: rgba(34, 197, 94, 0.22) !important;
    box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.55);
}

.tfiber-jobs-v2.is-dark-theme .tfiber-v2-uuid-cell--copied {
    background-color: rgba(34, 197, 94, 0.28) !important;
    box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.65);
}

/* Job number cell */
.tfiber-v2-jobno-cell {
    display: flex;
    align-items: center;
}

.tfiber-v2-jobno-link {
    color: #1976d2;
    text-decoration: none;
    font-weight: 500;
}

.tfiber-v2-jobno-link:hover {
    text-decoration: underline;
}

/* Job type cell */
.tfiber-v2-jobtype-cell {
    font-size: 12px;
}

.tfiber-v2-jobtype-maintenance {
    color: #0288d1;
    font-weight: 600;
}

/* Repeat cell */
.tfiber-v2-repeat-cell {
    display: flex;
    align-items: center;
}

.tfiber-v2-repeat-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    background-color: #ff5722;
    color: #fff;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 700;
}

/* Custom text cell */
.tfiber-v2-custom-cell {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tfiber-v2-custom-editable {
    cursor: text;
}

.tfiber-v2-custom-editable:hover {
    background-color: rgba(33, 150, 243, 0.05);
}

.tfiber-v2-custom-input {
    width: 100%;
    height: 23px;
    padding: 0 8px;
    border: 2px solid #2196f3;
    border-radius: 4px;
    font-size: 13px;
}

.tfiber-v2-custom-input:focus {
    outline: none;
}

/* ============================================
   Scrollbar Styling
   ============================================ */

.tfiber-jobs-v2-grid ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.tfiber-jobs-v2-grid ::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.tfiber-jobs-v2-grid ::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 5px;
}

.tfiber-jobs-v2-grid ::-webkit-scrollbar-thumb:hover {
    background: #a1a1a1;
}

/* ============================================
   Loading & Empty States
   ============================================ */

.tfiber-v2-loading-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.8);
    z-index: 100;
}

.tfiber-v2-loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #e0e0e0;
    border-top-color: #2196f3;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.tfiber-v2-empty-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    color: #757575;
    text-align: center;
}

/* Search / filter empty messages (matches v1 tfiber-jobs-message-row) */
.tfiber-jobs-v2-grid-empty-message {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 5;
    pointer-events: none;
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    color: #334155;
    background: rgba(255, 255, 255, 0.94);
    border-bottom: 1px solid #e2e8f0;
}

.tfiber-jobs-v2-grid-search-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 5;
    pointer-events: none;
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    color: #334155;
    background: rgba(255, 255, 255, 0.94);
    border-top: 1px solid #e2e8f0;
}

.tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-filter-excluded .ag-cell {
    opacity: 0.72;
}

.tfiber-jobs-v2-grid .ag-row .tfiber-v2-separator-filter-excluded {
    background: #e8edf3;
    border-top: 3px solid #64748b;
    border-bottom: 2px solid #94a3b8;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    min-height: 42px;
    padding: 12px 10px;
    text-align: center;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid-empty-message,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid-search-footer {
    color: #e2e8f0;
    background: rgba(30, 41, 59, 0.94);
    border-color: #475569;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row .tfiber-v2-separator-filter-excluded {
    background: #1e293b;
    border-top-color: #64748b;
    border-bottom-color: #475569;
    color: #e2e8f0;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-row-filter-excluded .ag-cell {
    opacity: 0.65;
}

/* ============================================
   Sync Status Indicator
   ============================================ */

.tfiber-v2-sync-indicator {
    position: fixed;
    bottom: 20px;
    right: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: #333;
    color: #fff;
    border-radius: 20px;
    font-size: 12px;
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 1000;
}

.tfiber-v2-sync-indicator.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.tfiber-v2-sync-indicator.is-error {
    background: #d32f2f;
}

.tfiber-v2-sync-indicator.is-offline {
    background: #ff9800;
}

/* ============================================
   Mobile Responsive
   ============================================ */

@media (max-width: 782px) {
    .tfiber-jobs-v2-grid {
        --ag-font-size: 13px;
        --ag-row-height: 34px;
        --ag-cell-horizontal-padding: 4px;
        --ag-header-cell-horizontal-padding: 4px;
        --ag-header-height: 34px;
    }

    .tfiber-jobs-v2-grid.is-mobile-layout {
        touch-action: pan-x pan-y;
    }

    .tfiber-jobs-v2-grid.is-mobile-layout .ag-header-cell,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-header-group-cell {
        cursor: default !important;
        touch-action: manipulation;
    }

    .tfiber-jobs-v2-grid.is-mobile-layout .ag-header-cell-moving,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-column-drop {
        display: none !important;
    }

    /* Momentum scrolling on the vertical viewport only — applying it to the
       horizontal scroll containers desyncs AG Grid header transforms on iOS. */
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-body-viewport {
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }

    .tfiber-jobs-v2-grid.is-mobile-layout .ag-center-cols-viewport,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-body-horizontal-scroll-viewport {
        overscroll-behavior: contain;
    }

    .tfiber-jobs-v2-grid.is-mobile-layout .ag-body-horizontal-scroll {
        height: 12px !important;
        max-height: 12px !important;
        min-height: 12px !important;
    }

    .tfiber-jobs-v2-grid.is-mobile-layout .ag-pinned-left-cols-container .ag-cell,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-pinned-left-header {
        box-shadow: 4px 0 8px rgba(15, 23, 42, 0.12);
        z-index: 1;
    }

    .tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid.is-mobile-layout .ag-pinned-left-cols-container .ag-cell,
    .tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid.is-mobile-layout .ag-pinned-left-header {
        box-shadow: 4px 0 10px rgba(0, 0, 0, 0.45);
    }

    .tfiber-jobs-v2-grid .ag-header-cell .ag-header-cell-label {
        font-size: 11px;
    }

    .tfiber-jobs-v2-grid .ag-cell {
        line-height: 1.25;
    }

    .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button,
    .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status {
        font-size: 11px;
        min-height: 28px;
        padding-left: 0 !important;
        padding-right: 0 !important;
        touch-action: manipulation;
    }

    .tfiber-jobs-v2-grid button.tfiber-jobs-state-button,
    .tfiber-jobs-v2-grid .tfiber-jobs-status {
        font-size: 11px;
        min-height: 28px;
        padding-left: 0;
        padding-right: 0;
        touch-action: manipulation;
    }

    .tfiber-jobs-v2-grid .ag-cell[col-id="comment"] .tfiber-jobs-comment-editable,
    .tfiber-jobs-v2-grid .ag-cell[col-id="comment"] .tfiber-jobs-comment-wrap {
        font-size: 13px;
        line-height: 1.3;
        min-height: 24px;
    }

    /* Keep single-line cells on mobile — ellipsis instead of wrapping to a second line. */
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status),
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) .ag-cell-wrapper,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell:not(.tfiber-jobs-state-button):not(.tfiber-jobs-status) .ag-cell-value,
    .tfiber-jobs-v2-grid.is-mobile-layout .tfiber-v2-custom-cell,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell[col-id="comment"] .tfiber-jobs-comment-editable,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell[col-id="comment"] .tfiber-jobs-comment-display,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell[col-id="comment"] .tfiber-jobs-comment-wrap,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell[col-id="comment"] .tfiber-v2-comment-display,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-cell[col-id="comment"] .tfiber-v2-comment-text {
        align-items: center;
        height: 100%;
        line-height: 23px;
        min-height: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        word-break: normal;
    }

    .tfiber-jobs-v2-grid.is-mobile-layout .ag-header-cell .ag-header-cell-label,
    .tfiber-jobs-v2-grid.is-mobile-layout .ag-header-cell .ag-header-cell-text {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .tfiber-jobs-v2-grid .ag-cell[col-id="address"] {
        font-size: 12px;
        line-height: 1.25;
    }

    .tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-day-separator .ag-cell,
    .tfiber-jobs-v2-grid .ag-row.tfiber-v2-separator-row .ag-cell {
        font-size: 11px;
    }

    .tfiber-v2-comment-badge {
        font-size: 9px;
    }

    #tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal {
        align-items: stretch;
        padding: 8px;
    }

    #tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-dialog,
    #tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-history-dialog {
        border-radius: 14px;
        max-height: calc(100dvh - 16px);
        max-width: none;
        width: 100%;
    }

    #tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-body {
        max-height: calc(100dvh - 140px);
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    .tfiber-jobs-v2-grid-search-footer {
        font-size: 11px;
        padding: 6px 8px;
    }
}

@media (max-width: 480px) {
    .tfiber-jobs-v2-grid {
        --ag-font-size: 12px;
    }

    .tfiber-jobs-v2-grid .ag-header-cell .ag-header-cell-label {
        font-size: 10px;
    }
}

/* ============================================
   Dark Theme Support
   ============================================ */

/* Dark mode wrapper */
.tfiber-jobs-v2.is-dark-theme {
    background-color: #1e1e1e;
    color: #e0e0e0;
}

/* Top bar dark chrome: page-layout.css (.tfiber-jobs-v2.is-dark-theme) + public.css ([data-theme="simplified-dark"]). */

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-search:focus {
    outline: none;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-search-wrap:focus-within {
    box-shadow: 0 0 0 1px #0e639c, 0 0 0 3px rgba(14, 99, 156, 0.25);
}

/* Settings panel in dark mode */
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-panel {
    background: #252526;
    border-color: #3c3c3c;
    color: #e0e0e0;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-header {
    border-color: #3c3c3c;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-close {
    color: #808080;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-close:hover {
    color: #ffffff;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-tabs {
    border-color: #3c3c3c;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-tab {
    color: #808080;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-tab:hover {
    color: #cccccc;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-tab.is-active {
    color: #3794ff;
    border-bottom-color: #3794ff;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-settings-row:hover {
    background: #2a2d2e;
}

.tfiber-jobs-v2-day-separators-choice {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 10px;
    margin: 0;
    padding: 6px 0;
}

.tfiber-jobs-v2-day-separators-choice input[type="checkbox"] {
    height: 16px;
    width: 16px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-day-separators-choice span {
    font-size: 13px;
}

/* ============================================
   v2 Settings + History modals (flat chrome)
   ============================================ */

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal {
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(2px);
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-dialog,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-dialog {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 10px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
    max-width: 760px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-history-header,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-header {
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
    padding: 12px 16px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-history-header strong,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-header strong {
    color: #333;
    font-size: 13px;
    font-weight: 600;
    gap: 0;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-history-header strong::before,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-header strong::before {
    display: none;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-close,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-close {
    background: transparent;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #64748b;
    height: 28px;
    width: 28px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-close:hover,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-close:hover {
    background: #f1f5f9;
    color: #334155;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-close:focus-visible,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-close:focus-visible {
    outline: 2px solid #0e639c;
    outline-offset: 2px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-body,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-body {
    background: #fff;
    padding: 14px 16px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-body > p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-intro,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-mo-note {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    color: #495057;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    margin: 0 0 12px;
    padding: 10px 12px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-custom-header-panel,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-theme-panel {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    box-shadow: none;
    margin-bottom: 12px;
    padding: 12px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-custom-header-panel h3,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-theme-panel h3,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-grab-panel h3,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-settings-panel h3 {
    color: #333;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin: 0 0 6px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-custom-header-panel p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-theme-panel > p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-grab-panel > p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-help {
    color: #64748b;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
    margin: 0 0 10px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-history-panel .tfiber-jobs-history-open,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-actions button,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-btn--primary,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-toggle-btn,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-add,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-save,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-filters button,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-load-more {
    background: #0e639c;
    border: 1px solid #0e639c;
    border-radius: 6px;
    box-shadow: none;
    color: #fff !important;
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    min-height: 32px;
    padding: 6px 14px;
    text-shadow: none;
    transform: none;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-history-panel .tfiber-jobs-history-open:hover,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-history-panel .tfiber-jobs-history-open:focus-visible,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-actions button:hover,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-btn--primary:hover:not(:disabled),
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-toggle-btn:hover,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-add:hover,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-save:hover:not(:disabled),
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-filters button:hover,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-load-more:hover:not(:disabled) {
    background: #1177bb;
    border-color: #1177bb;
    color: #fff !important;
    filter: none;
    transform: none;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-save {
    color: #fff !important;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-column-choice {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    box-shadow: none;
    color: #333;
    font-weight: 500;
    min-height: 38px;
    transition: border-color 0.12s ease, background-color 0.12s ease;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-column-choice:hover {
    background: #f8f9fa;
    border-color: #cbd5e1;
    box-shadow: none;
    transform: none;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-column-choice.is-required {
    background: #f8f9fa;
    border-color: #cbd5e1;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-column-choice input[type="checkbox"] {
    accent-color: #0e639c;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-column-drag-handle {
    color: #94a3b8;
    text-shadow: none;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-custom-header-field {
    color: #495057;
    font-size: 12px;
    font-weight: 500;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-custom-header-field input,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-address-input {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-shadow: none;
    min-height: 32px;
    padding: 4px 10px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-custom-header-field input:focus,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-address-input:focus {
    border-color: #0e639c;
    box-shadow: 0 0 0 2px rgba(14, 99, 156, 0.2);
    outline: none;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-settings-theme-choices {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-settings-theme-choice {
    opacity: 1;
    transform: none;
    position: relative;
    margin: 0;
    cursor: pointer;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-settings-theme-choice input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-settings-theme-choice:hover {
    border-color: #f4a340;
    box-shadow:
        0 10px 24px rgba(244, 163, 64, 0.18),
        0 0 0 3px rgba(244, 163, 64, 0.14);
    transform: translateY(-2px);
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-settings-theme-choice:has(input[type="radio"]:checked) {
    border-color: #3b82f6;
    box-shadow:
        0 10px 24px rgba(59, 130, 246, 0.16),
        0 0 0 3px rgba(59, 130, 246, 0.22);
    transform: translateY(-2px);
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-settings-theme-choice:has(input[type="radio"]:focus-visible) {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.22);
}

@media (max-width: 720px) {
    #tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-v2-settings-theme-choices {
        grid-template-columns: 1fr;
    }
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-columns-actions {
    background: #f8f9fa;
    border-top: 1px solid #dee2e6;
    box-shadow: none;
    padding: 12px 16px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-progress-wrap {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    color: #333;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-progress-label {
    color: #495057;
    font-weight: 500;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-progress-track {
    background: #e2e8f0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-progress-bar {
    background: #0e639c;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-praxedo-result,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-status {
    color: #64748b;
    font-size: 12px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-table-scroll {
    border: 1px solid #dee2e6;
    border-radius: 6px;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-table thead th {
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
    color: #495057;
    font-weight: 600;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-mdu-table tbody td {
    border-bottom: 1px solid #eee;
    color: #333;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-filters {
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
    padding: 10px 16px;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-filters label {
    color: #495057;
    font-size: 12px;
    font-weight: 500;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-filters input {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #333;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-table th {
    background: #f8f9fa;
    border-color: #dee2e6;
    color: #495057;
    font-weight: 600;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-table td {
    background: #fff;
    border-color: #eee;
    color: #333;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-table tbody tr:nth-child(even) td {
    background: #f8f9fa;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal .tfiber-jobs-history-table tbody tr:hover td {
    background: #f1f5f9;
}

/* Dark v2 modals */
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"],
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] {
    background: rgba(0, 0, 0, 0.65);
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-dialog,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-dialog {
    background: #252526;
    border-color: #3c3c3c;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
    color: #e0e0e0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-history-header,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-header {
    background: #2d2d2d;
    border-bottom-color: #3c3c3c;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-history-header strong,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-header strong {
    color: #cccccc;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-close,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-close {
    background: transparent;
    border-color: #4a4a4a;
    color: #808080;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-close:hover,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-close:hover {
    background: #3c3c3c;
    color: #e0e0e0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-body,
#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-body {
    background: #252526;
    color: #e0e0e0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-body > p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-intro,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-mo-note {
    background: #1e1e1e;
    border-color: #3c3c3c;
    color: #94a3b8;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-custom-header-panel,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-theme-panel {
    background: #1e1e1e;
    border-color: #3c3c3c;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-custom-header-panel h3,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-theme-panel h3,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-praxedo-grab-panel h3,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-mdu-settings-panel h3 {
    color: #cccccc;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-custom-header-panel p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-theme-panel > p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-praxedo-grab-panel > p,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-mdu-help,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-praxedo-result,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-mdu-status {
    color: #808080;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-column-choice {
    background: #1e1e1e;
    border-color: #3c3c3c;
    color: #e0e0e0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-column-choice:hover {
    background: #2a2a2a;
    border-color: #4a4a4a;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-column-choice.is-required {
    background: #2a2a2a;
    border-color: #4a4a4a;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-custom-header-field {
    color: #94a3b8;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-custom-header-field input,
#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-mdu-address-input {
    background: #1e1e1e;
    border-color: #4a4a4a;
    color: #e0e0e0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-v2-settings-theme-choice {
    background: #0f172a;
    border-color: #94a3b8;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.28),
        inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-v2-theme-picker-choice__title {
    color: #f1f5f9 !important;
    -webkit-text-fill-color: #f1f5f9;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-v2-theme-picker-choice__desc {
    color: #94a3b8;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-v2-settings-theme-choice:hover {
    border-color: #f4a340;
    box-shadow:
        0 10px 24px rgba(244, 163, 64, 0.16),
        0 0 0 3px rgba(244, 163, 64, 0.12);
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-v2-settings-theme-choice:has(input[type="radio"]:checked) {
    background: #0f172a;
    border-color: #3b82f6;
    box-shadow:
        0 10px 24px rgba(59, 130, 246, 0.2),
        0 0 0 3px rgba(59, 130, 246, 0.24);
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-columns-actions {
    background: #2d2d2d;
    border-top-color: #3c3c3c;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-praxedo-progress-wrap {
    background: #1e1e1e;
    border-color: #3c3c3c;
    color: #e0e0e0;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-praxedo-progress-label {
    color: #94a3b8;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-praxedo-progress-track {
    background: #3c3c3c;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-mdu-table-scroll {
    border-color: #3c3c3c;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-mdu-table thead th {
    background: #2d2d2d;
    border-bottom-color: #3c3c3c;
    color: #94a3b8;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal[data-theme="simplified-dark"] .tfiber-jobs-mdu-table tbody td {
    border-bottom-color: #3c3c3c;
    color: #e0e0e0;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-filters {
    background: #2d2d2d;
    border-bottom-color: #3c3c3c;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-filters label {
    color: #94a3b8;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-filters input {
    background: #1e1e1e;
    border-color: #4a4a4a;
    color: #e0e0e0;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-table th {
    background: #2d2d2d;
    border-color: #3c3c3c;
    color: #94a3b8;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-table td {
    background: #252526;
    border-color: #3c3c3c;
    color: #e0e0e0;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-table tbody tr:nth-child(even) td {
    background: #1e1e1e;
}

#tfiber-jobs-history-modal.tfiber-jobs-v2-history-modal[data-theme="simplified-dark"] .tfiber-jobs-history-table tbody tr:hover td {
    background: #2a2a2a;
}

#tfiber-jobs-columns-modal.tfiber-jobs-v2-settings-modal .tfiber-jobs-theme-panel {
    margin-top: 0;
}

/* Updated time text in dark mode */
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-updated {
    color: #808080;
}

/* Loading overlay in dark mode */
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid-wrap.is-loading::after {
    background: rgba(30, 30, 30, 0.6);
}

/* Comment cell in dark mode */
.ag-theme-balham-dark .tfiber-v2-comment-cell {
    color: #e0e0e0;
}

.ag-theme-balham-dark .tfiber-v2-comment-badge {
    background: #4a4a4a;
    color: #e0e0e0;
}

/* Status cell in dark mode */
.ag-theme-balham-dark .tfiber-v2-status-cell select {
    background: #3c3c3c;
    border-color: #4a4a4a;
    color: #e0e0e0;
}

/* Row highlights in dark mode — row-level AG hover disabled; cell rules above handle hover */
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid.ag-theme-balham-dark .ag-row:hover {
    background-color: transparent !important;
}

.ag-theme-balham-dark .ag-row-selected {
    background-color: rgba(14, 99, 156, 0.3) !important;
}

.ag-theme-balham-dark .ag-row:hover {
    background-color: rgba(255, 255, 255, 0.05) !important;
}

/* ============================================
   Multi-cell range selection (Google Sheets style)
   ============================================ */

.tfiber-jobs-v2-grid {
    --tfiber-cell-selected-bg: rgba(0, 0, 0, 0.22);
    --tfiber-cell-selected-border: rgba(0, 0, 0, 0.35);
}

.tfiber-jobs-v2-grid.ag-theme-balham-dark {
    --tfiber-v2-col-separator: #434343;
    --ag-row-border-color: #383838;
    --ag-cell-horizontal-border: solid var(--tfiber-v2-col-separator);
    --ag-header-column-separator-color: var(--tfiber-v2-col-separator);
    --tfiber-cell-selected-bg: rgba(125, 211, 252, 0.18);
    --tfiber-cell-selected-border: rgba(125, 211, 252, 0.45);
}

.tfiber-jobs-v2-grid.is-cell-selecting,
.tfiber-jobs-v2-grid.is-cell-selecting * {
    user-select: none;
    -webkit-user-select: none;
    cursor: cell;
}

.tfiber-jobs-v2-grid .ag-cell.is-cell-selected {
    background: var(--tfiber-cell-selected-bg) !important;
    box-shadow: inset 0 0 0 1.5px var(--tfiber-cell-selected-border) !important;
}

.tfiber-jobs-v2-grid .ag-row:hover .ag-cell.is-cell-selected,
.tfiber-jobs-v2-grid .tfiber-jobs-v2-row-today .ag-cell.is-cell-selected {
    background: var(--tfiber-cell-selected-bg) !important;
    box-shadow: inset 0 0 0 1.5px var(--tfiber-cell-selected-border) !important;
}

.tfiber-jobs-v2-grid .ag-cell.is-comment-selected.is-cell-selected,
.tfiber-jobs-v2-grid .ag-cell.is-uuid-selected.is-cell-selected {
    box-shadow: inset 0 0 0 1.5px var(--tfiber-cell-selected-border) !important;
}

.tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected[class*="tfiber-jobs-comment-highlight--"] {
    box-shadow:
        inset 3px 0 0 0 var(--tfiber-comment-highlight-accent, #a855f7),
        inset 0 0 0 1.5px var(--tfiber-cell-selected-border) !important;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--violet {
    --tfiber-comment-highlight-accent: #a855f7;
    background: #f7eeff !important;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--teal {
    --tfiber-comment-highlight-accent: #14b8a6;
    background: #ecfaf6 !important;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--magenta {
    --tfiber-comment-highlight-accent: #d946ef;
    background: #fceeff !important;
}

.tfiber-jobs-v2:not(.is-dark-theme) .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--slate {
    --tfiber-comment-highlight-accent: #64748b;
    background: #eef1f5 !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--violet,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--violet {
    --tfiber-comment-highlight-accent: #c084fc;
    background-image: linear-gradient(rgba(88, 48, 130, 0.42), rgba(88, 48, 130, 0.42)) !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--teal,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--teal {
    --tfiber-comment-highlight-accent: #2dd4bf;
    background-image: linear-gradient(rgba(22, 100, 92, 0.42), rgba(22, 100, 92, 0.42)) !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--magenta,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--magenta {
    --tfiber-comment-highlight-accent: #e879f9;
    background-image: linear-gradient(rgba(110, 48, 120, 0.42), rgba(110, 48, 120, 0.42)) !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--slate,
.tfiber-jobs-v2[data-theme="simplified-dark"] .tfiber-jobs-v2-grid .ag-cell[col-id="comment"].is-comment-selected.is-cell-selected.tfiber-jobs-comment-highlight--slate {
    --tfiber-comment-highlight-accent: #94a3b8;
    background-image: linear-gradient(rgba(55, 70, 90, 0.55), rgba(55, 70, 90, 0.55)) !important;
}

.tfiber-jobs-v2-grid .ag-cell.tfiber-v2-special-row-cell {
    padding: 0 !important;
    border-right: none !important;
    overflow: visible;
}

.tfiber-jobs-v2-grid .ag-body-viewport.is-history-prepend {
    overflow-anchor: none;
}

.tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-day-separator .ag-cell,
.tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-load-more-row .ag-cell {
    line-height: normal;
    padding: 0 !important;
    border-right: none !important;
}

/* Load-more row — inline at top of loaded data (v1 parity) */
.tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-load-more-row .tfiber-v2-load-more-row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: #fff7ed;
    box-sizing: border-box;
    padding: 7px 8px;
}

.tfiber-jobs-v2.is-dark-theme .ag-row.tfiber-jobs-v2-load-more-row .tfiber-v2-load-more-row {
    background: #111827;
}

.tfiber-jobs-v2-grid .ag-row.tfiber-jobs-v2-load-more-row .tfiber-v2-load-more-row .tfiber-jobs-load-more {
    position: relative;
    left: auto;
    transform: none;
}

.tfiber-jobs-v2-grid .ag-header-viewport,
.tfiber-jobs-v2-grid .ag-center-cols-viewport,
.tfiber-jobs-v2-grid .ag-body-horizontal-scroll-viewport {
    scroll-behavior: auto !important;
}

.tfiber-jobs-v2-grid .ag-header-container,
.tfiber-jobs-v2-grid .ag-center-cols-container {
    box-sizing: border-box;
}

.tfiber-jobs-v2-grid .ag-header-cell,
.tfiber-jobs-v2-grid .ag-cell {
    box-sizing: border-box;
}

/* Do not override AG Grid header cell positioning (absolute + left).
   position:relative caused left offsets to stack on in-flow layout. */
.tfiber-jobs-v2-grid .ag-header-cell .ag-header-cell-comp-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.tfiber-jobs-v2-grid .ag-header-cell .ag-header-cell-label {
    position: absolute;
    inset: 0;
    display: flex;
    flex: none !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: center !important;
    width: auto;
    min-width: 0;
    max-width: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center;
    box-sizing: border-box;
    pointer-events: auto;
    margin: 0 !important;
}

.tfiber-jobs-v2-grid .ag-header-cell .ag-header-cell-text {
    flex: 0 1 auto;
    text-align: center;
}

.tfiber-jobs-v2-grid .ag-header-cell .ag-sort-indicator-container,
.tfiber-jobs-v2-grid .ag-header-cell .ag-sort-indicator-icon,
.tfiber-jobs-v2-grid .ag-header-cell .ag-sort-ascending-icon,
.tfiber-jobs-v2-grid .ag-header-cell .ag-sort-descending-icon,
.tfiber-jobs-v2-grid .ag-header-cell .ag-sort-none-icon {
    display: none !important;
}

.tfiber-jobs-v2-grid .ag-header-cell .tfiber-jobs-filter-trigger {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    flex-shrink: 0;
    margin-left: 0;
}

.tfiber-jobs-v2-grid .ag-header-cell[data-filter-header] {
    cursor: pointer;
}

.tfiber-jobs-v2-grid .ag-header-cell[data-filter-header] .tfiber-jobs-filter-trigger {
    display: none;
}

.tfiber-jobs-v2-grid .ag-header-cell.is-filtered {
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.42), transparent 50%),
        linear-gradient(135deg, #ffc766, #f4a340 52%, #c96a00) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        inset 0 0 0 1px rgba(255, 255, 255, 0.18),
        0 0 0 2px rgba(244, 163, 64, 0.30),
        0 0 12px rgba(244, 163, 64, 0.18);
    color: #fff !important;
}

.tfiber-jobs-v2-grid .ag-header-cell.is-filtered:hover {
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.42), transparent 50%),
        linear-gradient(135deg, #ffc766, #f4a340 52%, #c96a00) !important;
}

.tfiber-jobs-v2-grid .ag-header-cell.is-filtered .ag-header-cell-text,
.tfiber-jobs-v2-grid .ag-header-cell.is-filtered .ag-header-cell-label {
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
}

.tfiber-jobs-v2-grid .ag-header-cell.is-filtered .tfiber-jobs-filter-trigger {
    opacity: 1;
    color: #fff;
    filter: brightness(1.18);
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-header-cell.is-filtered,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-header-cell.is-filtered:hover {
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.16), transparent 50%),
        linear-gradient(135deg, #f59e0b, #b45309 52%, #7c2d12) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        inset 0 0 0 1px rgba(255, 255, 255, 0.08),
        0 0 0 2px rgba(245, 158, 11, 0.34);
    color: #fff7ed !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-header-cell.is-filtered .ag-header-cell-text,
.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-header-cell.is-filtered .ag-header-cell-label {
    color: #fff7ed !important;
}

.tfiber-jobs-v2.is-dark-theme .tfiber-jobs-v2-grid .ag-header-cell.is-filtered .tfiber-jobs-filter-trigger {
    color: #fff7ed;
}

.tfiber-jobs-v2:not(.is-all-mode) .tfiber-jobs-v2-grid .ag-header-cell[col-id="mo"] .tfiber-jobs-filter-trigger {
    display: none;
}

#tfiber-jobs-filter-menu {
    z-index: 10060;
    overflow: auto;
}

/* ============================================
   v2 history popovers (drop / comment / precall)
   Flat panel — matches v2 dark/light chrome
   ============================================ */

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme {
    background: #252526;
    border: 1px solid #3c3c3c;
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.42);
    color: #e0e0e0;
    padding: 12px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme::before {
    border-bottom-color: #252526;
    border-left-width: 8px;
    border-right-width: 8px;
    left: 20px;
    top: -12px;
    transform: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme::after {
    display: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-drop-history-title {
    color: #cccccc;
    font-size: 11px;
    font-weight: 600;
    gap: 0;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-drop-history-title::before {
    display: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-drop-history-row {
    background: #1e1e1e;
    border: 1px solid #3c3c3c;
    border-radius: 6px;
    box-shadow: none;
    gap: 2px;
    margin-top: 6px;
    padding: 8px 10px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-drop-history-row strong {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 600;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-drop-history-row span {
    color: #e2e8f0;
    font-size: 12px;
    font-weight: 500;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-drop-history-row em {
    color: #808080;
    font-size: 11px;
    font-weight: 400;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme p {
    color: #808080;
    font-weight: 400;
    margin: 4px 0 0;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-latest {
    background: #1e1e1e;
    border: 1px solid #3c3c3c;
    border-radius: 6px;
    box-shadow: none;
    margin: 0 0 8px;
    padding: 8px 10px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-latest strong {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 600;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-latest span {
    color: #e2e8f0;
    font-size: 12px;
    font-weight: 500;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-version {
    background: #1e1e1e;
    border: 1px solid #3c3c3c;
    border-radius: 6px;
    box-shadow: none;
    margin-top: 8px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-meta {
    background: #2a2a2a;
    border-bottom: 1px solid #3c3c3c;
    padding: 7px 10px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-meta strong {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 600;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-meta span {
    color: #808080;
    font-size: 11px;
    font-weight: 400;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-lines {
    padding: 8px 10px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-lines div {
    background: transparent;
    border-radius: 4px;
    color: #e0e0e0;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    padding: 2px 0;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-scroll {
    scrollbar-color: #525252 #1e1e1e;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-scroll::-webkit-scrollbar-track {
    background: #1e1e1e;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-scroll::-webkit-scrollbar-thumb {
    background: #525252;
    border: 2px solid #1e1e1e;
    box-shadow: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover.is-dark-theme .tfiber-jobs-comment-history-scroll::-webkit-scrollbar-thumb:hover {
    background: #6b6b6b;
}

/* Light v2 — flat panel matching grid chrome */
.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
    color: #333;
    padding: 12px;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme)::before {
    border-bottom-color: #fff;
    border-left-width: 8px;
    border-right-width: 8px;
    left: 20px;
    top: -12px;
    transform: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme)::after {
    display: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-drop-history-title {
    color: #495057;
    font-size: 11px;
    font-weight: 600;
    gap: 0;
    letter-spacing: 0.08em;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-drop-history-title::before {
    display: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-drop-history-row {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    box-shadow: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-drop-history-row strong {
    color: #64748b;
    font-weight: 600;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-drop-history-row span {
    color: #333;
    font-weight: 500;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-drop-history-row em {
    color: #6b7280;
    font-weight: 400;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-comment-history-latest,
.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-comment-history-version {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    box-shadow: none;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-comment-history-meta {
    background: #f1f3f5;
    border-bottom: 1px solid #dee2e6;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-comment-history-meta strong,
.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-comment-history-latest strong {
    color: #64748b;
    font-weight: 600;
}

.tfiber-jobs-drop-history-popover.tfiber-jobs-v2-history-popover:not(.is-dark-theme) .tfiber-jobs-comment-history-lines div {
    background: transparent;
    color: #333;
    font-weight: 400;
}

/* Call Center tab grid — bright STATUS / CC stat button labels (CC-only grid class). */
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-status,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell[col-id="status"],
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell[col-id="called_reschedule"],
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell[col-id="status"],
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell[col-id="called_reschedule"],
.tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-status,
.tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-call-center-dark-grid .ag-cell[col-id="status"],
.tfiber-jobs-call-center-dark-grid .ag-cell[col-id="called_reschedule"],
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status,
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button,
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell[col-id="status"],
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell[col-id="called_reschedule"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-status .ag-cell-value,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-state-button .ag-cell-value,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell[col-id="status"] .ag-cell-value,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell[col-id="called_reschedule"] .ag-cell-value,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell[col-id="status"] .ag-cell-wrapper,
.tfiber-jobs-call-center-active .tfiber-jobs-call-center__grid-wrap .tfiber-jobs-call-center-dark-grid .ag-cell[col-id="called_reschedule"] .ag-cell-wrapper,
.tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-status .ag-cell-value,
.tfiber-jobs-call-center-dark-grid .ag-cell.tfiber-jobs-state-button .ag-cell-value,
.tfiber-jobs-call-center-dark-grid .ag-cell[col-id="status"] .ag-cell-value,
.tfiber-jobs-call-center-dark-grid .ag-cell[col-id="called_reschedule"] .ag-cell-value,
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-status .ag-cell-value,
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell.tfiber-jobs-state-button .ag-cell-value,
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell[col-id="status"] .ag-cell-value,
.tfiber-jobs-call-center__grid-wrap .tfiber-jobs-v2-grid .ag-cell[col-id="called_reschedule"] .ag-cell-value {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85), 0 0 3px rgba(0, 0, 0, 0.55);
}

/* Colorful appearance: V1 classic full-row drop tints + vivid buttons */
.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-none:not(.tfiber-jobs-v2-row-cancelled) .ag-cell {
    background-color: #ffd1d1 !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-none:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell {
    background-color: #ffbcbc !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-buried:not(.tfiber-jobs-v2-row-cancelled) .ag-cell {
    background-color: #ffe98a !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-drop-buried:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell {
    background-color: #ffdf5c !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-not-confirmed:not(.tfiber-jobs-v2-row-cancelled) .ag-cell {
    background-color: #cfe2ff !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-not-confirmed:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell {
    background-color: #bad4ff !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-maintenance:not(.tfiber-jobs-v2-row-cancelled) .ag-cell {
    background-color: #e3f6e6 !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid:not(.tfiber-jobs-call-center-dark-grid):not(.tfiber-jobs-repeats-dark-grid) .ag-row.tfiber-jobs-v2-row-maintenance:not(.tfiber-jobs-v2-row-cancelled):hover .ag-cell {
    background-color: #d2efd6 !important;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--none {
    background: linear-gradient(135deg, #fca5a5, #dc2626);
    border-color: rgba(255, 255, 255, 0.22);
    --tfiber-btn-border: #dc2626;
    color: #fff;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--buried,
.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--located,
.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--texted {
    background: linear-gradient(135deg, #fff7ed, #facc15);
    border-color: rgba(255, 255, 255, 0.35);
    --tfiber-btn-border: #facc15;
    color: #5f3b00;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--blown,
.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--confirmed,
.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--scheduled {
    background: linear-gradient(135deg, #34d058, #238636);
    border-color: rgba(255, 255, 255, 0.24);
    --tfiber-btn-border: #238636;
    color: #fff;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-state-button.tfiber-jobs-state--new_date {
    background: linear-gradient(135deg, #dbeafe, #3b82f6);
    border-color: rgba(255, 255, 255, 0.35);
    --tfiber-btn-border: #3b82f6;
    color: #1e3a8a;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--scheduled {
    background: linear-gradient(135deg, #fff7ed, #f4a340);
    border-color: rgba(255, 255, 255, 0.30);
    --tfiber-btn-border: #f4a340;
    color: #5f3b00;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--en-route,
.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--pending {
    background: linear-gradient(135deg, #dbeafe, #3b82f6);
    border-color: rgba(255, 255, 255, 0.24);
    --tfiber-btn-border: #3b82f6;
    color: #172554;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--in-progress {
    background: linear-gradient(135deg, #ede9fe, #8b5cf6);
    border-color: rgba(255, 255, 255, 0.24);
    --tfiber-btn-border: #8b5cf6;
    color: #2e1065;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--installing {
    background: linear-gradient(135deg, #ccfbf1, #14b8a6);
    border-color: rgba(255, 255, 255, 0.24);
    --tfiber-btn-border: #14b8a6;
    color: #134e4a;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--rescheduling {
    background: linear-gradient(135deg, #fee2e2, #f87171);
    border-color: rgba(255, 255, 255, 0.22);
    --tfiber-btn-border: #f87171;
    color: #7f1d1d;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--completed {
    background: linear-gradient(135deg, #dcfce7, #34d058);
    border-color: rgba(255, 255, 255, 0.24);
    --tfiber-btn-border: #34d058;
    color: #14532d;
}

.tfiber-jobs-v2[data-theme="colorful"] .tfiber-jobs-v2-grid .tfiber-jobs-status.tfiber-jobs-status--cancelled {
    background: linear-gradient(135deg, #f87171, #991b1b);
    border-color: rgba(255, 255, 255, 0.22);
    --tfiber-btn-border: #991b1b;
    color: #fff;
}
