/* ============================================
   Radzen DataGrid Overrides
   Maps Radzen variables to existing design tokens
   ============================================ */

/* ============================================
   CSS Custom Properties
   ============================================ */
:root {
    --rz-grid-header-background-color: var(--bg-surface-alt);
    --rz-grid-header-color: var(--text-secondary);
    --rz-grid-background-color: var(--bg-surface);
    --rz-grid-color: var(--text-primary);
    --rz-grid-border: 1px solid var(--border);
    --rz-grid-cell-border: 1px solid var(--border);
    --rz-grid-header-border: 1px solid var(--border);
    --rz-grid-hover-background-color: var(--bg-surface-hover);
    --rz-grid-stripe-background-color: var(--bg-surface-alt);
    --rz-grid-pager-background-color: var(--bg-surface-alt);
    --rz-grid-pager-color: var(--text-secondary);
    --rz-grid-pager-border: 1px solid var(--border);
    --rz-grid-filter-background-color: var(--bg-input);
    --rz-grid-filter-color: var(--text-primary);
    --rz-grid-filter-border: 1px solid var(--border);
}

/* ============================================
   Card-like DataGrid Container
   ============================================ */
.rz-datatable {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 0.5rem;
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.rz-datatable-scrollable-wrapper {
    border-radius: 0.5rem;
}

/* ============================================
   Header Styling
   ============================================ */
.rz-datatable thead > tr > th,
.rz-grid-table thead > tr > th {
    background-color: var(--bg-surface-alt);
    color: var(--text-secondary);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.875rem 1rem;
    border-bottom: 2px solid var(--border);
    white-space: nowrap;
}

.rz-sortable-column:hover {
    color: var(--accent);
}

.rz-sortable-column .rz-sortable-column-icon {
    color: var(--accent);
}

/* ============================================
   Row Styling & Zebra Striping
   ============================================ */
.rz-datatable tbody > tr,
.rz-grid-table tbody > tr {
    transition: background-color 150ms ease-in-out;
}

.rz-datatable tbody > tr:nth-child(odd),
.rz-grid-table tbody > tr:nth-child(odd) {
    background-color: var(--bg-surface);
}

.rz-datatable tbody > tr:nth-child(even),
.rz-grid-table tbody > tr:nth-child(even) {
    background-color: var(--bg-surface-alt);
}

.rz-datatable tbody > tr:hover,
.rz-grid-table tbody > tr:hover {
    background-color: var(--bg-surface-hover);
}

/* ============================================
   Cell Styling
   ============================================ */
.rz-datatable tbody > tr > td,
.rz-grid-table tbody > tr > td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
    font-size: 0.875rem;
    color: var(--text-primary);
}

.rz-datatable tbody > tr:last-child > td,
.rz-grid-table tbody > tr:last-child > td {
    border-bottom: none;
}

/* ============================================
   Filter Inputs
   ============================================ */
.rz-grid-filter input,
.rz-grid-filter .rz-textbox {
    background-color: var(--bg-input);
    border: 1px solid var(--border);
    color: var(--text-primary);
    border-radius: 0.375rem;
    font-size: 0.8125rem;
    padding: 0.375rem 0.75rem;
}

.rz-grid-filter input:focus,
.rz-grid-filter .rz-textbox:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(79, 143, 247, 0.15);
    outline: none;
}

.rz-grid-filter input::placeholder {
    color: var(--text-secondary);
}

/* Filter row background */
.rz-datatable .rz-filter-row > th,
.rz-grid-table .rz-filter-row > th {
    background-color: var(--bg-surface-alt);
    border-bottom: 1px solid var(--border);
    padding: 0.5rem;
}

/* ============================================
   Paginator
   ============================================ */
.rz-paginator {
    background-color: var(--bg-surface-alt);
    border-top: 1px solid var(--border);
    padding: 0.5rem 1rem;
    color: var(--text-secondary);
    font-size: 0.8125rem;
}

.rz-paginator .rz-paginator-element {
    color: var(--text-secondary);
    border: 1px solid var(--border);
    border-radius: 0.375rem;
    background-color: transparent;
    min-width: 2rem;
    height: 2rem;
}

.rz-paginator .rz-paginator-element:hover {
    background-color: var(--bg-surface-hover);
    color: var(--text-primary);
}

.rz-paginator .rz-state-active {
    background-color: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

.rz-paginator .rz-state-active:hover {
    background-color: var(--accent-hover);
    border-color: var(--accent-hover);
}

/* ============================================
   Dropdown / Select in Grid
   ============================================ */
.rz-dropdown,
.rz-multiselect {
    background-color: var(--bg-input);
    border-color: var(--border);
    color: var(--text-primary);
}

.rz-dropdown-panel,
.rz-multiselect-panel {
    background-color: var(--bg-surface);
    border-color: var(--border);
    box-shadow: var(--shadow-card-hover);
}

.rz-dropdown-item:hover,
.rz-multiselect-item:hover {
    background-color: var(--bg-surface-hover);
}

/* ============================================
   Empty / Loading State
   ============================================ */
.rz-datatable .rz-datatable-emptymessage td {
    padding: 2rem;
    text-align: center;
    color: var(--text-secondary);
}

/* ============================================
   Responsive Adjustments
   ============================================ */
@media (max-width: 768px) {
    .rz-datatable {
        border-radius: 0;
        border-left: none;
        border-right: none;
    }

    .rz-datatable thead > tr > th,
    .rz-grid-table thead > tr > th {
        padding: 0.625rem 0.75rem;
        font-size: 0.6875rem;
    }

    .rz-datatable tbody > tr > td,
    .rz-grid-table tbody > tr > td {
        padding: 0.5rem 0.75rem;
        font-size: 0.8125rem;
    }
}

/* ============================================
   Print Styles
   ============================================ */
@media print {
    .rz-datatable {
        box-shadow: none;
        border: 1px solid #000;
    }

    .rz-datatable tbody > tr:hover {
        background-color: inherit;
    }

    .rz-grid-filter,
    .rz-paginator {
        display: none;
    }
}
