/* SPDX-License-Identifier: LicenseRef-Highcharts */

/**
 * @license Highcharts Grid Lite v2.2.0
 *
 * (c) 2009-2025 Highsoft AS
 *
 * A commercial license may be required depending on use.
 * See www.highcharts.com/license
 */

/*  ==== Start Grid Color Scheme  ==== */
.hcg-container,
.highcharts-light .hcg-container {
    --ig-default-color: #000000;
    --ig-default-background: #ffffff;
    --ig-negative-default-color: #c10008;
    --ig-negative-default-border-color: #e7000b;
    --ig-negative-default-background: #fef3f2;
    --ig-neutral-default-color: #884b00;
    --ig-neutral-default-border-color: #d18700;
    --ig-neutral-default-background: #fefce8;
    --ig-positive-default-color: #008236;
    --ig-positive-default-border-color: #00a63e;
    --ig-positive-default-background: #effdf4;
    --ig-highlight-color-5: #f3f6fe;

    /* GUI elements - Light mode */
    --hcg-popup-background: #f6f6f6;
    --hcg-popup-border-color: #e8e8e8;
    --hcg-popup-border: 1px solid var(--hcg-popup-border-color);
    --hcg-context-menu-item-hover-background: #ffffff;
    --hcg-context-menu-item-hover-border: 1px solid #e8e8e8;
    --hcg-context-menu-item-active-background: #e1e3ff;
    --hcg-context-menu-item-active-border: 1px solid #c3c8ff;
}

@media (prefers-color-scheme: dark) {
    .hcg-container {
        --ig-default-color: #ffffff;
        --ig-default-background: #000000;
        --ig-negative-default-color: #ffb3b3;
        --ig-negative-default-border-color: #7a1e1e;
        --ig-negative-default-background: #3d0e0b;
        --ig-neutral-default-color: #ffe8c1;
        --ig-neutral-default-border-color: #7d5c20;
        --ig-neutral-default-background: #3b2a11;
        --ig-positive-default-color: #a6f8c1;
        --ig-positive-default-border-color: #1e6f3e;
        --ig-positive-default-background: #0a3e1a;
        --ig-highlight-color-5: #202124;

        /* GUI elements - Dark mode */
        --hcg-popup-background: #272727;
        --hcg-popup-border-color: #4f4f4f;
        --hcg-popup-border: 1px solid var(--hcg-popup-border-color);
        --hcg-context-menu-item-hover-background: #3b3b3b;
        --hcg-context-menu-item-hover-border: 1px solid #4f4f4f;
        --hcg-context-menu-item-active-background: #3f4699;
        --hcg-context-menu-item-active-border: 1px solid #4a55c9;
    }
}

.highcharts-dark .hcg-container {
    --ig-default-color: #ffffff;
    --ig-default-background: #000000;
    --ig-negative-default-color: #ffb3b3;
    --ig-negative-default-border-color: #7a1e1e;
    --ig-negative-default-background: #3d0e0b;
    --ig-neutral-default-color: #ffe8c1;
    --ig-neutral-default-border-color: #7d5c20;
    --ig-neutral-default-background: #3b2a11;
    --ig-positive-default-color: #a6f8c1;
    --ig-positive-default-border-color: #1e6f3e;
    --ig-positive-default-background: #0a3e1a;
    --ig-highlight-color-5: #202124;

    /* GUI elements - Dark mode */
    --hcg-popup-background: #272727;
    --hcg-popup-border-color: #4f4f4f;
    --hcg-popup-border: 1px solid var(--hcg-popup-border-color);
    --hcg-context-menu-item-hover-background: #3b3b3b;
    --hcg-context-menu-item-hover-border: 1px solid #4f4f4f;
    --hcg-context-menu-item-active-background: #3f4699;
    --hcg-context-menu-item-active-border: 1px solid #4a55c9;
}

/*  ==== End Grid Color Scheme  ==== */

/*  ==== Start Highcharts Variables  ==== */
:root,
.highcharts-light {
    --highcharts-background-color: #ffffff;
    --highcharts-neutral-color-100: #000000;
}

@media (prefers-color-scheme: dark) {
    :root {
        --highcharts-background-color: #141414;
        --highcharts-neutral-color-100: #ffffff;
    }
}

.highcharts-dark {
    --highcharts-background-color: #141414;
    --highcharts-neutral-color-100: #ffffff;
}

/*  ==== End Highcharts Variables  ==== */

/* stylelint-disable max-line-length */

/* ==== Start Grid Variables ==== */
.hcg-container {
    --ig-hover-opacity: var(--hcg-hover-opacity, 100%);
    --ig-sync-opacity: var(--hcg-sync-opacity, var(--ig-hover-opacity));

    /* Global fonts */
    --ig-default-font-family: -apple-system, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica", "Arial", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
    --ig-font-weight: var(--hcg-font-weight, normal);
    --ig-font-size: var(--hcg-font-size, 1rem);
    --ig-font-family: var(--hcg-font-family, var(--ig-default-font-family));
    --ig-color: var(--hcg-color, var(--ig-default-color));
    --ig-font: var(--ig-font-weight) var(--ig-font-size) var(--ig-font-family);
    --ig-text-align: var(--hcg-text-align, left);

    /* Link fonts */
    --ig-link-color: var(--hcg-link-color, inherit);
    --ig-link-text-decoration: var(--hcg-link-text-decoration, underline);
    --ig-link-hovered-color: var(--hcg-link-hovered-color, var(--ig-link-color));
    --ig-link-hovered-text-decoration: var(--hcg-link-hovered-text-decoration, none);
    --ig-link-font-weight: var(--hcg-link-font-weight, inherit);

    /* Caption fonts */
    --ig-caption-font-weight: var(--hcg-caption-font-weight, var(--ig-font-weight));
    --ig-caption-font-size: var(--hcg-caption-font-size, var(--ig-font-size));
    --ig-caption-font-family: var(--hcg-caption-font-family, var(--ig-font-family));
    --ig-caption-color: var(--hcg-caption-color, var(--ig-color));
    --ig-caption-font: var(--ig-caption-font-weight) var(--ig-caption-font-size) var(--ig-caption-font-family);
    --ig-caption-text-align: var(--hcg-caption-text-align, var(--ig-text-align));

    /* Description fonts */
    --ig-description-font-weight: var(--hcg-description-font-weight, var(--ig-font-weight));
    --ig-description-font-size: var(--hcg-description-font-size, var(--ig-font-size));
    --ig-description-font-family: var(--hcg-description-font-family, var(--ig-font-family));
    --ig-description-color: var(--hcg-description-color, var(--ig-color));
    --ig-description-font: var(--ig-description-font-weight) var(--ig-description-font-size) var(--ig-description-font-family);
    --ig-description-text-align: var(--hcg-description-text-align, var(--ig-text-align));

    /* Pagination fonts */
    --ig-pagination-font-weight: var(--hcg-pagination-font-weight, var(--ig-font-weight));
    --ig-pagination-font-size: var(--hcg-pagination-font-size, var(--ig-font-size));
    --ig-pagination-font-family: var(--hcg-pagination-font-family, var(--ig-font-family));
    --ig-pagination-color: var(--hcg-pagination-color, var(--ig-color));
    --ig-pagination-font: var(--ig-pagination-font-weight) var(--ig-pagination-font-size) var(--ig-pagination-font-family);

    /* Default borders */
    --ig-border-radius: var(--hcg-border-radius, 0);
    --ig-border-width: var(--hcg-border-width, 0);
    --ig-border-style: var(--hcg-border-style, solid);
    --ig-border-color: var(--hcg-border-color, var(--ig-color));
    --ig-border: var(--ig-border-width) var(--ig-border-style) var(--ig-border-color);

    /* Row borders */
    --ig-row-border-width: var(--hcg-row-border-width, var(--ig-border-width));
    --ig-row-border-style: var(--hcg-row-border-style, var(--ig-border-style));
    --ig-row-border-color: var(--hcg-row-border-color, var(--ig-border-color));
    --ig-row-border: var(--ig-row-border-width) var(--ig-row-border-style) var(--ig-row-border-color);

    /* Header row borders */
    --ig-header-row-border-width: var(--hcg-header-row-border-width, var(--ig-row-border-width));
    --ig-header-row-border-style: var(--hcg-header-row-border-style, var(--ig-row-border-style));
    --ig-header-row-border-color: var(--hcg-header-row-border-color, var(--ig-row-border-color));
    --ig-header-row-border: var(--ig-header-row-border-width) var(--ig-header-row-border-style) var(--ig-header-row-border-color);

    /* Column borders */
    --ig-column-border-width: var(--hcg-column-border-width, var(--ig-border-width));
    --ig-column-border-style: var(--hcg-column-border-style, var(--ig-border-style));
    --ig-column-border-color: var(--hcg-column-border-color, var(--ig-border-color));
    --ig-column-border: var(--ig-column-border-width) var(--ig-column-border-style) var(--ig-column-border-color);

    /* Header column borders */
    --ig-header-column-border-width: var(--hcg-header-column-border-width, var(--ig-column-border-width));
    --ig-header-column-border-style: var(--hcg-header-column-border-style, var(--ig-column-border-style));
    --ig-header-column-border-color: var(--hcg-header-column-border-color, var(--ig-column-border-color));
    --ig-header-column-border: var(--ig-header-column-border-width) var(--ig-header-column-border-style) var(--ig-header-column-border-color);

    /* Default padding */
    --ig-horizontal-padding: var(--hcg-horizontal-padding, var(--hcg-padding, 0));
    --ig-vertical-padding: var(--hcg-vertical-padding, var(--hcg-padding, 0));
    --ig-padding: var(--ig-vertical-padding) var(--ig-horizontal-padding);

    /* Header padding */
    --ig-header-horizontal-padding: var(--hcg-header-horizontal-padding, var(--hcg-header-padding, var(--ig-horizontal-padding)));
    --ig-header-vertical-padding: var(--hcg-header-vertical-padding, var(--hcg-header-padding, var(--ig-vertical-padding)));
    --ig-header-padding: var(--ig-header-vertical-padding) var(--ig-header-horizontal-padding) var(--ig-header-vertical-padding) var(--ig-header-horizontal-padding);

    /* Caption padding */
    --ig-caption-horizontal-padding: var(--hcg-caption-horizontal-padding, var(--hcg-caption-padding, var(--ig-horizontal-padding)));
    --ig-caption-vertical-padding: var(--hcg-caption-vertical-padding, var(--hcg-caption-padding, var(--ig-vertical-padding)));
    --ig-caption-padding: 0 var(--ig-caption-horizontal-padding) var(--ig-caption-vertical-padding) var(--ig-caption-horizontal-padding);

    /* Description padding */
    --ig-description-horizontal-padding: var(--hcg-description-horizontal-padding, var(--hcg-description-padding, var(--ig-horizontal-padding)));
    --ig-description-vertical-padding: var(--hcg-description-vertical-padding, var(--hcg-description-padding, var(--ig-vertical-padding)));
    --ig-description-padding: var(--ig-description-vertical-padding) var(--ig-description-horizontal-padding) 0 var(--ig-description-horizontal-padding);

    /* Pagination padding */
    --ig-pagination-horizontal-padding: var(--hcg-pagination-horizontal-padding, var(--hcg-pagination-padding, var(--ig-horizontal-padding)));
    --ig-pagination-vertical-padding: var(--hcg-pagination-vertical-padding, var(--hcg-pagination-padding, var(--ig-vertical-padding)));
    --ig-pagination-padding: var(--ig-pagination-vertical-padding) var(--ig-pagination-horizontal-padding) var(--ig-pagination-vertical-padding) var(--ig-pagination-horizontal-padding);

    /* Loading indicator */
    --ig-loader-color: var(--hcg-loader-color, var(--ig-color));

    /* Default backgrounds and colors */
    --ig-background: var(--hcg-background, transparent);
    --ig-pagination-background: var(--hcg-pagination-background, transparent);

    /* Input styles */
    --ig-input-font-weight: var(--hcg-input-font-weight, normal);
    --ig-input-font-size: var(--hcg-input-font-size, 0.9em);
    --ig-input-font-family: var(--hcg-input-font-family, var(--ig-font-family));
    --ig-input-color: var(--hcg-input-color, var(--ig-color));
    --ig-input-font: var(--ig-input-font-weight) var(--ig-input-font-size) var(--ig-input-font-family);
    --ig-input-text-align: var(--hcg-input-text-align, var(--ig-text-align));
    --ig-input-border-radius: var(--hcg-input-border-radius, 0);
    --ig-input-border-width: var(--hcg-input-border-width, 1px);
    --ig-input-border-style: var(--hcg-input-border-style, solid);
    --ig-input-border-color: var(--hcg-input-border-color, var(--ig-color));
    --ig-input-border: var(--ig-input-border-width) var(--ig-input-border-style) var(--ig-input-border-color);
    --ig-input-background: var(--hcg-input-background, var(--highcharts-background-color));
    --ig-input-hover-border-color: var(--hcg-input-hover-border-color, var(--ig-input-border-color));

    /* Button styles */
    --ig-button-background: var(--hcg-button-background, transparent);
    --ig-button-color: var(--hcg-button-color, var(--ig-default-color));
    --ig-button-padding: var(--hcg-button-padding, 6px);
    --ig-button-border-width: var(--hcg-button-border-width, 1px);
    --ig-button-border-style: var(--hcg-button-border-style, solid);
    --ig-button-border-color: var(--hcg-button-border-color, transparent);
    --ig-button-border-radius: var(--hcg-button-border-radius, var(--ig-input-border-radius));
    --ig-button-border: var(--ig-button-border-width) var(--ig-button-border-style) var(--ig-button-border-color);
    --ig-button-hover-color: var(--hcg-button-hover-color, var(--hcg-button-color, var(--ig-default-background)));
    --ig-button-hover-background: var(--hcg-button-hover-background, var(--ig-default-color));
    --ig-button-hover-border-color: var(--hcg-button-hover-border-color, var(--ig-button-border-color));

    /* Selected buttons for future compability only */
    --ig-button-selected-color: var(--ig-button-hover-color);
    --ig-button-selected-background: var(--ig-button-hover-background);
    --ig-button-selected-border-color: var(--ig-button-hover-border-color);

    /* Icon styles */
    --ig-icon-color: var(--hcg-icon-color, var(--ig-button-color, var(--ig-default-color)));
    --ig-icon-hover-color: var(--hcg-icon-hover-color, var(--ig-button-hover-color, var(--ig-default-background)));
    --ig-icon-header-hover-color: var(--hcg-icon-header-hover-color, var(--ig-button-hover-color, var(--ig-default-background)));

    /* Pagination variables */
    --ig-pagination-button-background: var(--hcg-pagination-button-background, var(--ig-button-background));
    --ig-pagination-button-color: var(--hcg-pagination-button-color, var(--ig-button-color));
    --ig-pagination-button-padding: var(--hcg-pagination-button-padding, var(--ig-button-padding));
    --ig-pagination-button-border-width: var(--hcg-pagination-button-border-width, var(--ig-button-border-width));
    --ig-pagination-button-border-style: var(--hcg-pagination-button-border-style, var(--ig-button-border-style));
    --ig-pagination-button-border-color: var(--hcg-pagination-button-border-color, var(--ig-button-border-color));
    --ig-pagination-button-border-radius: var(--hcg-pagination-button-border-radius, var(--ig-button-border-radius));
    --ig-pagination-button-border: var(--ig-pagination-button-border-width) var(--ig-pagination-button-border-style) var(--ig-pagination-button-border-color);
    --ig-pagination-button-hover-background: var(--hcg-pagination-button-hover-background, var(--ig-button-hover-background));
    --ig-pagination-button-hover-color: var(--hcg-pagination-button-hover-color, var(--ig-button-hover-color));
    --ig-pagination-button-hover-border-color: var(--hcg-pagination-button-hover-border-color, var(--ig-button-hover-border-color));
    --ig-pagination-button-selected-color: var(--hcg-pagination-button-selected-color, var(--hcg-pagination-button-hover-color, var(--ig-button-selected-color)));
    --ig-pagination-button-selected-background: var(--hcg-pagination-button-selected-background, var(--hcg-pagination-button-hover-background, var(--ig-button-selected-background)));
    --ig-pagination-button-selected-border-color: var(--hcg-pagination-button-selected-border-color, var(--hcg-pagination-button-hover-border-color, var(--ig-button-selected-border-color)));
    --ig-pagination-icon-color: var(--hcg-pagination-icon-color, var(--ig-pagination-icon-default-color));

    /* Accessibility */
    --ig-focus-ring-color: var(--hcg-focus-ring-color, var(--ig-color));
    --ig-focus-ring-width: var(--hcg-focus-ring-width, 2px);
    --ig-focus-ring: 0 0 0 var(--ig-focus-ring-width) var(--ig-focus-ring-color);

    /* CSS helpers */
    --ig-highlight-border-size: var(--hcg-highlight-border-size, 1px);

    /* Negative colors */
    --ig-negative-border-color: var(--hcg-negative-border-color, var(--ig-negative-default-border-color));
    --ig-negative-border-size: var(--hcg-negative-border-size, var(--ig-highlight-border-size));
    --ig-negative-background: var(--hcg-negative-background, var(--ig-negative-default-background));
    --ig-negative-color: var(--hcg-negative-color, var(--ig-color));

    /* Neutral colors */
    --ig-neutral-border-color: var(--hcg-neutral-border-color, var(--ig-neutral-default-border-color));
    --ig-neutral-border-size: var(--hcg-neutral-border-size, var(--ig-highlight-border-size));
    --ig-neutral-background: var(--hcg-neutral-background, var(--ig-neutral-default-background));
    --ig-neutral-color: var(--hcg-neutral-color, var(--ig-color));

    /* Positive colors */
    --ig-positive-border-color: var(--hcg-positive-border-color, var(--ig-positive-default-border-color));
    --ig-positive-border-size: var(--hcg-positive-border-size, var(--ig-highlight-border-size));
    --ig-positive-background: var(--hcg-positive-background, var(--ig-positive-default-background));
    --ig-positive-color: var(--hcg-positive-color, var(--ig-color));
}

/* ==== End Grid Variables ==== */

/* Grid container */
.hcg-container {
    container-type: inline-size;
    container-name: hcg;
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    box-sizing: border-box;
    font: var(--ig-font);
    color-scheme: light dark;
    max-height: inherit;
}

.highcharts-light .hcg-container {
    color-scheme: light;
}

.highcharts-dark .hcg-container {
    color-scheme: dark;
}

.hcg-container * {
    box-sizing: border-box;
}

.hcg-container:has(.hcg-no-data) {
    justify-content: center;
    align-items: center;
    padding: var(--ig-description-padding);
    text-align: var(--ig-description-text-align);
}

/* Links */
.hcg-container a {
    color: var(--ig-link-color);
    text-decoration: var(--ig-link-text-decoration);
    font-weight: var(--ig-link-font-weight);
}

.hcg-container a:hover {
    color: var(--ig-link-hovered-color);
    text-decoration: var(--ig-link-hovered-text-decoration);
}

/* ----------------------------------------------------------
  START BASE TABLE ELEMENTS
------------------------------------------------------------ */

/* <table> */
.hcg-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    table-layout: fixed;
    flex: 1;
}

.hcg-table.hcg-scrollable-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* <thead> */
.hcg-table.hcg-virtualization thead {
    display: block;
}

.hcg-table thead th {
    position: relative;
}

/* <tbody> */
.hcg-table.hcg-scrollable-content tbody {
    height: 100%;
    overflow: auto;
    min-height: 0;
    flex: 1;
}

.hcg-table.hcg-virtualization tbody {
    display: block;
    position: relative;
}

.hcg-table tbody tr {
    overflow: hidden;
    width: 100%;
}

.hcg-table tbody tr.hcg-mocked-row td,
.hcg-table tbody tr td {
    position: relative;
    line-height: 1em;
    overflow: hidden;
}

.hcg-table tbody tr.hcg-mocked-row td {
    white-space: nowrap;
    text-overflow: ellipsis;
}

.hcg-table .hcg-last-header-cell-in-row,
.hcg-table td:last-of-type {
    border-right: none;
}

.hcg-table tr:last-of-type td {
    border-bottom: none;
}

.hcg-table.hcg-scrollable-content tbody tr {
    display: block;
}

.hcg-table.hcg-virtualization tbody tr {
    position: absolute;
}

.hcg-table tbody.hcg-rows-content-nowrap td {
    white-space: nowrap;
    text-overflow: ellipsis;
}

.hcg-table tbody td:focus {
    outline: none;
}

/* ----------------------------------------------------------
  START THEMABLE TABLE ELEMENTS
------------------------------------------------------------ */

/* <table> */
.hcg-table {
    border: var(--ig-border);
    background: var(--ig-background);
    border-radius: var(--ig-border-radius);
}

/* <thead> */
.hcg-table thead {
    background-color: var(--ig-header-background);
}

.hcg-table thead th {
    --ig-header-column-background: var(--hcg-column-background);
    --ig-header-background: var(--hcg-header-background, var(--hcg-cell-background, var(--ig-header-column-background, transparent)));
    --ig-header-column-color: var(--hcg-column-color, var(--hcg-cell-color, var(--ig-color, inherit)));
    --ig-header-base-color: var(--hcg-header-color, var(--ig-header-column-color));
    --ig-header-current-color: var(--ig-header-base-color);

    border-right: var(--ig-header-column-border);
    border-bottom: var(--ig-header-row-border);
    padding: var(--ig-header-padding);
    background: var(--ig-header-background);
    color: var(--ig-header-current-color);
}

.hcg-table thead th:nth-child(even) {
    --ig-header-column-background: var(--hcg-column-even-background, var(--hcg-column-background));
    --ig-header-background: var(--hcg-header-even-background, var(--hcg-header-background, var(--hcg-cell-background, var(--ig-header-column-background, transparent))));
    --ig-header-column-color: var(--hcg-column-even-color, var(--hcg-column-color, var(--hcg-cell-color, var(--ig-color, inherit))));
    --ig-header-base-color: var(--hcg-header-even-color, var(--hcg-header-color, var(--ig-header-column-color)));
    --ig-header-current-color: var(--ig-header-base-color);
}

.hcg-table thead th .hcg-header-cell-content {
    --ig-header-font-weight: var(--hcg-header-font-weight, var(--hcg-cell-font-weight, var(--ig-font-weight)));
    --ig-header-font-size: var(--hcg-header-font-size, var(--hcg-cell-font-size, var(--ig-font-size)));
    --ig-header-font-family: var(--hcg-header-font-family, var(--hcg-cell-font-family, var(--ig-font-family)));
    --ig-header-font: var(--ig-header-font-weight) var(--ig-header-font-size) var(--ig-header-font-family);
    --ig-header-text-align: var(--hcg-header-text-align, var(--hcg-cell-text-align, var(--ig-text-align)));

    font: var(--ig-header-font);
    text-align: var(--ig-header-text-align);
}

.hcg-table thead tr:first-of-type th:first-child {
    border-top-left-radius: var(--ig-border-radius);
}

.hcg-table thead tr:first-of-type th:last-child {
    border-top-right-radius: var(--ig-border-radius);
}

.hcg-table thead th:focus-visible {
    outline: none;
    box-shadow: inset var(--ig-focus-ring);
}

/* Start header hover & sync */
.hcg-container .hcg-table th:hover {
    --ig-header-hover-opacity: var(--hcg-header-hover-opacity, var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))));
    --ig-header-hover-color:
        color-mix(
            in srgb,
            var(--hcg-header-hovered-background, var(--hcg-header-hover-background, var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background))))) var(--ig-header-hover-opacity),
            var(--ig-header-background) calc(100% - var(--ig-header-hover-opacity))
        );

    background: var(--ig-header-hover-color);
    --ig-header-color:
        var(
            --hcg-header-hovered-color,
            var(
                --hcg-header-hover-color,
                var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color)))
            )
        );
    --ig-header-current-color: var(--ig-header-color);

    color: var(--ig-header-current-color);
}

/* End header hover & sync */

/* <tbody> */
.hcg-table tbody tr:last-of-type td:first-child {
    border-bottom-left-radius: var(--ig-border-radius);
}

.hcg-table tbody tr:last-of-type td:last-child {
    border-bottom-right-radius: var(--ig-border-radius);
}

.hcg-table tbody {
    border-bottom-left-radius: var(--hcg-border-radius);
    border-bottom-right-radius: var(--hcg-border-radius);
}

.hcg-table tbody tr {
    --ig-row-background-current: var(--hcg-row-background);
    --ig-row-color-current: var(--hcg-row-color);
}

.hcg-table tbody tr.hcg-row-even {
    --ig-row-background-current: var(--hcg-row-even-background, var(--hcg-row-background));
    --ig-row-color-current: var(--hcg-row-even-color, var(--hcg-row-color));
}

.hcg-table tbody tr.hcg-mocked-row td,
.hcg-table tbody tr td {
    --ig-cell-column-background: var(--hcg-column-background);
    --ig-cell-column-color: var(--hcg-column-color);
    --ig-cell-base-background: var(--hcg-cell-background, var(--ig-row-background-current, var(--ig-cell-column-background, transparent)));
    --ig-column-layer: var(--ig-cell-base-background);
    --ig-cell-hover-background-helper: var(--hcg-cell-hovered-background, var(--hcg-cell-hover-background));
    --ig-cell-hover-background: var(--ig-cell-hover-background-helper, var(--ig-row-hover-color, var(--ig-column-layer)));
    --ig-cell-hover-opacity-helper: var(--hcg-cell-hover-opacity);
    --ig-cell-hover-opacity: var(--ig-cell-hover-opacity-helper, var(--ig-hover-opacity));
    --ig-cell-active-opacity: var(--ig-cell-hover-opacity);
    --ig-cell-sync-opacity: var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--ig-cell-hover-opacity)));
    --ig-cell-base-color: var(--hcg-cell-color, var(--ig-row-color-current, var(--ig-cell-column-color, var(--ig-color, inherit))));
    --ig-column-text-layer: var(--ig-cell-base-color);
    --ig-row-hover-text-color: var(--ig-column-text-layer);
    --ig-cell-hover-text-color: var(--ig-row-hover-text-color);
    --ig-cell-font-weight: var(--hcg-cell-font-weight, var(--ig-font-weight));
    --ig-cell-font-size: var(--hcg-cell-font-size, var(--ig-font-size));
    --ig-cell-font-family: var(--hcg-cell-font-family, var(--ig-font-family));
    --ig-cell-font: var(--ig-cell-font-weight) var(--ig-cell-font-size) var(--ig-cell-font-family);
    --ig-cell-text-align: var(--hcg-cell-text-align, var(--ig-text-align));

    background: var(--ig-column-layer);
    color: var(--ig-cell-hover-text-color);
    border-right: var(--ig-column-border);
    border-bottom: var(--ig-row-border);
    padding: var(--ig-padding);
    font: var(--ig-cell-font);
    text-align: var(--ig-cell-text-align);
}

.hcg-table tbody tr td:nth-child(even) {
    --ig-cell-column-background: var(--hcg-column-even-background, var(--hcg-column-background));
    --ig-cell-column-color: var(--hcg-column-even-color, var(--hcg-column-color));
}

.hcg-table tbody td:focus {
    box-shadow: inset var(--ig-focus-ring);
}

/* Start column hover & sync */
.hcg-container .hcg-table td.hcg-hovered-column {
    --ig-column-layer:
        color-mix(
            in srgb,
            var(--hcg-cell-hovered-column-background, var(--hcg-column-hover-background, var(--ig-cell-base-background))) var(--hcg-column-hover-opacity, var(--ig-hover-opacity)),
            var(--ig-cell-base-background) calc(100% - var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))
        );
    --ig-column-text-layer: var(--hcg-cell-hovered-column-color, var(--hcg-column-hover-color, var(--ig-cell-base-color)));
}

.hcg-container .hcg-table td.hcg-synced-column {
    --ig-column-layer:
        color-mix(
            in srgb,
            var(
                --hcg-cell-synced-column-background,
                var(--hcg-cell-hovered-column-background, var(--hcg-column-sync-background, var(--hcg-column-hover-background, var(--ig-cell-base-background))))
            ) var(--hcg-column-sync-opacity, var(--hcg-sync-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))),
            var(--ig-cell-base-background)
            calc(100% - var(--hcg-column-sync-opacity, var(--hcg-sync-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))))
        );
    --ig-column-text-layer:
        var(
            --hcg-cell-synced-column-color,
            var(--hcg-cell-hovered-column-color, var(--hcg-column-sync-color, var(--hcg-column-hover-color, var(--ig-cell-base-color))))
        );
}

.hcg-container .hcg-table th.hcg-hovered-column:not(:hover) {
    --ig-header-column-hover-color:
        color-mix(
            in srgb,
            var(--hcg-cell-hovered-header-background, var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background)))) var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))),
            var(--ig-header-background) calc(100% - var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))))
        );
    --ig-header-color: var(--hcg-cell-hovered-header-color, var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color))));
    --ig-header-current-color: var(--ig-header-color);

    background: var(--ig-header-column-hover-color);
    color: var(--ig-header-current-color);
}

.hcg-container .hcg-table th.hcg-synced-column:not(:hover) {
    --ig-header-sync-opacity:
        var(
            --hcg-header-sync-opacity,
            var(
                --hcg-column-sync-header-opacity,
                var(--hcg-sync-opacity, var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))))
            )
        );
    --ig-header-column-hover-color:
        color-mix(
            in srgb,
            var(
                --hcg-cell-synced-header-background,
                var(
                    --hcg-cell-hovered-header-background,
                    var(
                        --hcg-column-sync-header-background,
                        var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background)))
                    )
                )
            ) var(--ig-header-sync-opacity),
            var(--ig-header-background)
            calc(
                100% - var(
                    --ig-header-sync-opacity
                )
            )
        );
    --ig-header-color:
        var(
            --hcg-cell-synced-header-color,
            var(
                --hcg-cell-hovered-header-color,
                var(--hcg-column-sync-header-color, var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color))))
            )
        );
    --ig-header-current-color: var(--ig-header-color);

    background: var(--ig-header-column-hover-color);
    color: var(--ig-header-current-color);
}

/* End column hover & sync */

/* Start row hover & sync */
.hcg-container .hcg-table tr:hover td {
    --ig-row-hover-color:
        color-mix(
            in srgb,
            var(--hcg-cell-hovered-row-background, var(--hcg-row-hover-background, var(--ig-column-layer))) var(--hcg-row-hover-opacity, var(--ig-hover-opacity)),
            var(--ig-column-layer) calc(100% - var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))
        );
    --ig-row-hover-text-color: var(--hcg-cell-hovered-row-color, var(--hcg-row-hover-color, var(--ig-column-text-layer)));
    --ig-cell-hover-text-color: var(--ig-row-hover-text-color);

    background: var(--ig-row-hover-color);
    color: var(--ig-cell-hover-text-color);
}

.hcg-container .hcg-table tr.hcg-synced-row td {
    --ig-row-hover-color:
        color-mix(
            in srgb,
            var(
                --hcg-cell-synced-row-background,
                var(--hcg-cell-hovered-row-background, var(--hcg-row-sync-background, var(--hcg-row-hover-background, var(--ig-column-layer))))
            )
            var(--hcg-row-sync-opacity, var(--hcg-sync-opacity, var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))),
            var(--ig-column-layer)
            calc(100% - var(--hcg-row-sync-opacity, var(--hcg-sync-opacity, var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))))
        );
    --ig-row-hover-text-color:
        var(
            --hcg-cell-synced-row-color,
            var(--hcg-cell-hovered-row-color, var(--hcg-row-sync-color, var(--hcg-row-hover-color, var(--ig-column-text-layer))))
        );
    --ig-cell-hover-text-color: var(--ig-row-hover-text-color);

    background: var(--ig-row-hover-color);
    color: var(--ig-cell-hover-text-color);
}

/* End row hover & sync */

/* Start cell hover & sync */
.hcg-container .hcg-table td:hover,
.hcg-container .hcg-table tr:hover td:hover,
.hcg-container .hcg-table td.hcg-hovered-column:hover {
    --ig-cell-hover-layer:
        color-mix(
            in srgb,
            var(--ig-cell-hover-background) var(--ig-cell-hover-opacity),
            var(--ig-row-hover-color, var(--ig-column-layer)) calc(100% - var(--ig-cell-hover-opacity))
        );
    --ig-cell-hover-text-color: var(--hcg-cell-hovered-color, var(--hcg-cell-hover-color, var(--ig-row-hover-text-color)));

    background: var(--ig-cell-hover-layer);
    color: var(--ig-cell-hover-text-color);
}

.hcg-container .hcg-table tr.hcg-synced-row td.hcg-synced-column {
    --ig-cell-hover-layer:
        color-mix(
            in srgb,
            var(
                --hcg-cell-synced-background,
                var(
                    --hcg-cell-hovered-background,
                    var(--hcg-cell-sync-background, var(--hcg-cell-hover-background, var(--ig-row-hover-color, var(--ig-column-layer))))
                )
            ) var(--hcg-cell-synced-opacity, var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--hcg-cell-hover-opacity, var(--ig-cell-hover-opacity))))),
            var(--ig-row-hover-color, var(--ig-column-layer))
            calc(100% - var(--hcg-cell-synced-opacity, var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--hcg-cell-hover-opacity, var(--ig-cell-hover-opacity))))))
        );
    --ig-cell-hover-text-color:
        var(
            --hcg-cell-synced-color,
            var(--hcg-cell-hovered-color, var(--hcg-cell-sync-color, var(--hcg-cell-hover-color, var(--ig-row-hover-text-color))))
        );

    background: var(--ig-cell-hover-layer);
    color: var(--ig-cell-hover-text-color);
}

/* End cell hover & sync */

/* ----------------------------------------------------------
  START OTHER ELEMENTS
------------------------------------------------------------ */

.hcg-table thead th .hcg-header-cell-content {
    width: 100%;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
    padding: 0;
    user-select: none; /* Standard syntax */
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none; /* IE 10 and IE 11 */
}

.hcg-table thead th .hcg-header-cell-content span {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Header cell menu button centered */
.hcg-header-cell-container.hcg-no-width .hcg-header-cell-menu-icon {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.hcg-header-cell-container.hcg-no-width .hcg-header-cell-content {
    visibility: hidden;
    transition: none;
}

/* Header cell flex container */
.hcg-header-cell-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 24px;
    width: 100%;
}

.hcg-header-cell-content {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    /* transition: all 0.3s ease; */
}

/* Generic button styling for Grid */
.hcg-button {
    background: var(--ig-button-background);
    padding: var(--ig-button-padding);
    border-radius: var(--ig-button-border-radius);
    border: var(--ig-button-border);
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.hcg-button:hover {
    color: var(--ig-button-hover-color);
    background: var(--ig-button-hover-background);
}

/* Focus/A11Y - keyboard accessibility */
.hcg-button:focus-visible {
    outline: none;
    background: var(--ig-button-hover-background);
    box-shadow: var(--ig-focus-ring);
}

/* Generic icon styling for Grid */
.hcg-icon {
    color: var(--ig-icon-color);
    transition: color 0.2s ease;
    flex-shrink: 0;
}

/* Icons automatically inherit color from parent via currentColor */
.hcg-icon path {
    stroke: currentcolor;
}

.hcg-button:hover .hcg-icon,
.hcg-button:focus-visible .hcg-icon,
.hcg-header-cell-icons .hcg-button.highlighted .hcg-icon,
.hcg-header-cell-icons .hcg-button.active .hcg-icon {
    color: var(--ig-icon-header-hover-color);
}

/* Header cell icons container - generic for all icon types */
.hcg-header-cell-icons {
    display: flex;
    overflow: hidden;
    align-items: center;
    gap: 0;
    max-width: 0;
    margin-left: 4px;
    opacity: 0;
    cursor: pointer;
    transition: max-width 0.3s ease, margin-left 0.3s ease, opacity 0.3s ease;
}

/* Show icons on header cell hover, focus, or when has active icons */
.hcg-table thead th:hover .hcg-header-cell-icons,
.hcg-table thead th:focus-visible .hcg-header-cell-icons,
.hcg-header-cell-icons:hover,
.hcg-header-cell-icons:has(.hcg-button:focus-visible),
.hcg-header-cell-icons:has(.hcg-button.highlighted),
.hcg-header-cell-icons:has(.hcg-button.active),
.hcg-header-cell-container.hcg-no-width .hcg-header-cell-icons {
    max-width: 100px;
    opacity: 1;
}

/* Generic icon button styling - applies to all header icons */
.hcg-header-cell-icons .hcg-button {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* Active icon styling - icons that are in an active state */
.hcg-header-cell-icons .hcg-button.highlighted {
    background: var(--ig-button-hover-background);
}

/* Active indicator dot (filtering) - positioned at top right of button */
.hcg-active-indicator {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ig-icon-header-hover-color, #626bd0);
    pointer-events: none;
}

.hcg-sort-priority-indicator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 2px;
    height: 20px;
    padding: 0 2px;
    border-radius: 4px;
    background: transparent;
    color: var(--ig-icon-header-hover-color);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    pointer-events: none;
}

.hcg-header-cell-sort-icon .hcg-button:has(.hcg-sort-priority-indicator) {
    /* Keep header height stable when showing the multi-sort indicator */
    padding-top: 2px;
    padding-bottom: 2px;
}

.hcg-table thead th .hcg-column-resizer {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    top: 0;
    width: 9px;
    right: -5px;
    height: 100%;
    user-select: none;
    z-index: 10;
    cursor: col-resize;
}

.hcg-column-resizer.hovered::after {
    content: "";
    width: max(3px, calc(var(--ig-header-column-border-width) + 2px));
    height: 100%;
    background: var(--ig-header-color);
}

/* Sorting */
.hcg-table thead th.hcg-column-sortable {
    cursor: pointer;
}

th.hcg-column-sortable > .hcg-column-sortable-icon {
    right: 10px;
    top: calc(50% - 10px);
    bottom: 50%;
    position: absolute;
    display: none;
    width: 12px;
    height: 12px;
    user-select: none;
    pointer-events: none;
}

.hcg-column-sortable.hcg-column-sorted-asc .hcg-column-sortable-icon,
.hcg-column-sortable.hcg-column-sorted-desc .hcg-column-sortable-icon {
    display: inline-block;
}

.hcg-column-sortable.hcg-column-sorted-desc .hcg-column-sortable-icon {
    transform: rotate(180deg);
    top: calc(50% - 2px);
    right: 10px;
}

/* Accessibility */
.hcg-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    white-space: nowrap;
    clip: rect(1px, 1px, 1px, 1px);
    margin-top: -3px;
    opacity: 0.01;
}

/* Caption */
.hcg-caption {
    color: var(--ig-caption-color);
    font: var(--ig-caption-font);
    text-align: var(--ig-caption-text-align);
    padding: var(--ig-caption-padding);
}

.hcg-caption * {
    font: inherit;
    margin: 0;
}

/* Description */
.hcg-description {
    color: var(--ig-description-color);
    font: var(--ig-description-font);
    text-align: var(--ig-description-text-align);
    padding: var(--ig-description-padding);
}

/* Credits */

.hcg-credits,
.highcharts-light .hcg-credits {
    display: block;
    width: 114px;
    height: 20px;
    background-size: contain;
    background-repeat: no-repeat;
    background-image:
        image-set(
            /* stylelint-disable-next-line function-comma-newline-after */
            url("https://assets.highcharts.com/grid/logo_light.png") 1x,
            url("https://assets.highcharts.com/grid/logo_lightx2.png") 2x
        );
}

@media (prefers-color-scheme: dark) {
    .hcg-credits {
        background-image:
            image-set(
                /* stylelint-disable-next-line function-comma-newline-after */
                url("https://assets.highcharts.com/grid/logo_dark.png") 1x,
                url("https://assets.highcharts.com/grid/logo_darkx2.png") 2x
            );
    }
}

.highcharts-dark .hcg-credits {
    background-image:
        image-set(
            /* stylelint-disable-next-line function-comma-newline-after */
            url("https://assets.highcharts.com/grid/logo_dark.png") 1x,
            url("https://assets.highcharts.com/grid/logo_darkx2.png") 2x
        );
}

/* Loader */
.hcg-loading-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    width: 100%;
    height: 100%;
    gap: 10px;
    color: var(--ig-loader-color);
}

.hcg-loading-wrapper .hcg-spinner {
    border-top: 5px solid var(--ig-loader-color);
    border-radius: 50%;
    width: 30px;
    height: 30px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* Input elements */

.hcg-container .hcg-input {
    font: var(--ig-input-font);
    text-align: var(--ig-input-text-align);
    background: var(--ig-input-background);
    color: var(--ig-input-color);
    border: var(--ig-input-border);
    border-radius: var(--ig-input-border-radius);
    padding: 7px;
    width: 100%;
}

.hcg-container .hcg-input[type="checkbox"] {
    appearance: none;
    width: 20px;
    height: 20px;
    cursor: pointer;
    position: relative;
}

.hcg-container .hcg-input[type="checkbox"]:checked::before {
    content: "";
    position: absolute;
    inset: 0;
    margin: 0.05rem;
    mask: center/contain no-repeat;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
    background-color: var(--ig-input-color);
}

.hcg-container .hcg-input:hover {
    border-color: var(--ig-input-hover-border-color);
}

.hcg-container .hcg-input:disabled,
.hcg-container .hcg-button:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.hcg-container .hcg-input::placeholder {
    color: #767676;
}

.hcg-container .hcg-input:focus-visible {
    outline: none;
    border-color: transparent;
    box-shadow: var(--ig-focus-ring);
}

.hcg-container .hcg-input.hcg-icon {
    padding-left: 25px;
    appearance: none;
    background-repeat: no-repeat;
    background-position: left 10px center;
}

.hcg-container .hcg-input.hcg-icon-search {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3e%3cpath d='M10.5 10.5L7.50005 7.5M8.5 5C8.5 6.933 6.933 8.5 5 8.5C3.067 8.5 1.5 6.933 1.5 5C1.5 3.067 3.067 1.5 5 1.5C6.933 1.5 8.5 3.067 8.5 5Z' stroke='%23767676' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
}

.hcg-container select.hcg-input {
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M3.5 7.5L6 10L8.5 7.5M3.5 4.5L6 2L8.5 4.5' stroke='%23767676' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 5px center;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Filtering */

.hcg-header-cell:has(.hcg-column-filter-wrapper) {
    overflow: hidden;
}

.hcg-column-filter-wrapper {
    width: 100%;
    display: flex;
    flex-flow: column;
    row-gap: 5px;
    min-width: 50px;
}

.hcg-clear-filter-button {
    appearance: none;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    display: inline;
    vertical-align: baseline;
    font: inherit;
    color: var(--ig-color);
    font-size: 0.625rem;
    white-space: nowrap;
    font-weight: normal;
    align-self: end;
}

.hcg-clear-filter-button:hover {
    text-decoration: underline;
    cursor: pointer;
}

.hcg-clear-filter-button:disabled,
.hcg-clear-filter-button:disabled:hover {
    opacity: 0.5;
    text-decoration: none;
    cursor: default;
}

/* Pagination */

/* Footer pagination (tfoot) */
.hcg-table tfoot td {
    border-top: var(--ig-row-border);
}

.hcg-pagination-wrapper {
    background: var(--ig-pagination-background);
    padding: var(--ig-pagination-padding);
    color: var(--ig-pagination-color);
    font: var(--ig-pagination-font);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    width: 100%;
}

.hcg-pagination-wrapper select {
    min-height: 30px;
}

.hcg-pagination-controls-container .hcg-button,
.hcg-pagination-controls-container span {
    color: var(--ig-pagination-button-color);
    background: var(--ig-pagination-button-background);
    border: var(--ig-pagination-button-border);
    padding: var(--ig-pagination-button-padding);
    border-radius: var(--ig-pagination-button-border-radius);
    font: var(--ig-input-font);
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    min-height: 30px;
    transition: all 0.2s ease;
    cursor: pointer;
}

.hcg-pagination-controls-container span {
    cursor: default;
    border-color: transparent;
}

/* SVG icon styling for pagination buttons */
.hcg-pagination-controls-container .hcg-button svg {
    color: var(--ig-pagination-icon-color);
    width: var(--ig-input-font-size);
    height: var(--ig-input-font-size);
    display: block;
}

.hcg-pagination-controls-container .hcg-button svg path {
    stroke: currentcolor;
}

/* Fix horizontal layout for pagination pages */

.hcg-pagination-controls-container div.hcg-pagination-nav-buttons-container {
    margin-right: 12px;
    margin-left: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

/* Pagination info text */
.hcg-pagination-wrapper .hcg-pagination-info {
    white-space: nowrap;
    align-items: center;
    display: inline-flex;
}

/* Pagination controls - horizontal layout */
.hcg-pagination-wrapper .hcg-pagination-controls-container {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: nowrap;
}

/* Hover state - only border change */
.hcg-pagination-wrapper .hcg-button:hover:not(:is(:disabled, .hcg-button-selected)) {
    color: var(--ig-pagination-button-hover-color);
    background: var(--ig-pagination-button-hover-background);
    border-color: var(--ig-pagination-button-hover-border-color);
    outline: none;
}

.hcg-pagination-wrapper .hcg-button:focus-visible:not(:disabled) {
    outline: none;
    border-color: transparent;
    box-shadow: var(--ig-focus-ring);
}

/* Disabled state */

.hcg-pagination-wrapper .hcg-button-selected {
    color: var(--ig-pagination-button-selected-color);
    background: var(--ig-pagination-button-selected-background);
    border-color: var(--ig-pagination-button-selected-border-color);
}

/* Page size selector */
.hcg-pagination-wrapper .hcg-pagination-page-size {
    text-align: right;
}

.hcg-pagination-wrapper .hcg-pagination-page-size select.hcg-input {
    width: 60px;
    margin-left: 8px;
}

/* Mobile page selector - hidden by default */
.hcg-pagination-wrapper .hcg-pagination-nav-dropdown {
    display: none;
    margin-left: 0;
    min-width: 200px;
    text-align: center;
}

@container hcg (max-width: 1024px) {
    .hcg-pagination-wrapper {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .hcg-pagination-wrapper .hcg-pagination-nav-dropdown {
        display: block;
    }

    .hcg-pagination-wrapper div.hcg-pagination-nav-buttons-container {
        display: none;
    }
}

/* Start Grid CSS Helpers Classes */

.hcg-table thead tr th.hcg-right .hcg-header-cell-content,
.hcg-table tbody tr td.hcg-right {
    text-align: right;
}

.hcg-table thead tr th.hcg-center .hcg-header-cell-content,
.hcg-table tbody tr td.hcg-center {
    text-align: center;
}

.hcg-table thead tr th.hcg-left .hcg-header-cell-content,
.hcg-table tbody tr td.hcg-left {
    text-align: left;
}

/* End Grid CSS Helpers Classes */

/* Column header menu */

.hcg-popup {
    position: absolute;
    z-index: 1000;
    background-color: var(--hcg-popup-background);
    border: var(--hcg-popup-border);
    color: var(--ig-color);
    border-radius: 6px;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08), 0 7px 7px 0 rgba(0, 0, 0, 0.07), 0 17px 10px 0 rgba(0, 0, 0, 0.04), 0 30px 12px 0 rgba(0, 0, 0, 0.01);
    min-width: 200px;
    overflow: auto;
}

.hcg-popup-content {
    padding: 5px;
}

.hcg-menu-header {
    font-size: 0.75rem;
    padding: 3px;
    margin-bottom: 5px;
}

.hcg-menu-header-category {
    opacity: 0.5;
    user-select: none;
}

.hcg-menu-container {
    --icon-size: 16px;

    margin: 0;
    display: flex;
    flex-direction: column;
    list-style: none;
    row-gap: 5px;
    padding: 0;
}

.hcg-menu-item {
    display: flex;
    align-items: center;
    gap: 2px;
    width: 100%;
    min-width: 185px;
    min-height: 2rem;
    padding: 8px 8px 8px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 5px;
    color: var(--ig-color);
}

.hcg-menu-item:not(:disabled) {
    cursor: pointer;
}

.hcg-menu-item:focus-visible {
    outline: none;
    box-shadow: var(--ig-focus-ring);
}

.hcg-menu-item:focus-visible,
.hcg-menu-item:not(:disabled):hover,
.hcg-menu-item.highlighted {
    background-color: var(--hcg-context-menu-item-hover-background);
    border: var(--hcg-context-menu-item-hover-border);
}

.hcg-menu-item.active,
.hcg-menu-item.active:hover,
.hcg-menu-item.active.highlighted {
    background-color: var(--hcg-context-menu-item-active-background);
    border: var(--hcg-context-menu-item-active-border);
}

.hcg-menu-item-icon {
    flex: 0 0 var(--icon-size);
    width: var(--icon-size);
    height: var(--icon-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.6;
}

.hcg-menu-item.active .hcg-menu-item-icon,
.hcg-menu-item.highlighted .hcg-menu-item-icon,
.hcg-menu-item:not(:disabled):hover .hcg-menu-item-icon {
    opacity: 1;
}

.hcg-menu-item-icon .hcg-icon {
    color: var(--ig-icon-hover-color);
}

.hcg-menu-item-label {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
    padding-left: 0.75rem;
}

.hcg-menu-divider {
    border-top: 1px solid var(--hcg-popup-border-color);
    height: 0;
}

/* Start Grid Default Theme */
.hcg-theme-default,
.highcharts-light .hcg-theme-default {
    /* Primary colors */
    --hcg-color: var(--highcharts-neutral-color-100);
    --hcg-background: var(--highcharts-background-color);
    --hcg-border-radius: 5px;
    --hcg-border-width: 1px;
    --hcg-caption-font-size: 18px;
    --hcg-font-size: 15px;
    --hcg-header-vertical-padding: 10px;
    --hcg-padding: 15px;
    --hcg-input-border-radius: 6px;
    --hcg-input-border-color: #d1d1d1;
    --hcg-input-hover-border-color: #9d9d9d;
    --hcg-focus-ring-color: #626bd0;
    --hcg-button-hover-background: #e8e8e8;
    --hcg-button-color: #141414;
    --hcg-button-hover-color: #141414;
    --hcg-pagination-vertical-padding: 10px;
    --hcg-pagination-button-selected-background: #000000;
    --hcg-pagination-button-selected-color: #ffffff;
    --hcg-icon-color: #626262;
    --hcg-icon-hover-color: #141414;
}

@media (prefers-color-scheme: dark) {
    .hcg-theme-default {
        --hcg-color: var(--highcharts-neutral-color-100);
        --hcg-background: var(--highcharts-background-color);
        --hcg-input-border-color: #4f4f4f;
        --hcg-input-hover-border-color: #646464;
        --hcg-button-hover-background: #3b3b3b;
        --hcg-button-color: #ffffff;
        --hcg-button-hover-color: #ffffff;
        --hcg-pagination-button-selected-background: #ffffff;
        --hcg-pagination-button-selected-color: #000000;
        --hcg-icon-hover-color: #ffffff;
    }
}

.highcharts-dark .hcg-theme-default {
    --hcg-color: var(--highcharts-neutral-color-100);
    --hcg-background: var(--highcharts-background-color);
    --hcg-input-border-color: #4f4f4f;
    --hcg-input-hover-border-color: #646464;
    --hcg-button-hover-background: #3b3b3b;
    --hcg-button-color: #ffffff;
    --hcg-button-hover-color: #ffffff;
    --hcg-pagination-button-selected-background: #ffffff;
    --hcg-pagination-button-selected-color: #000000;
    --hcg-icon-hover-color: #ffffff;
}

.hcg-theme-default {
    --hcg-border-color: var(--highcharts-neutral-color-20, color-mix(in srgb, var(--hcg-color, #000000) 10%, var(--hcg-background, #ffffff)));
    --hcg-row-hover-background: var(--ig-highlight-color-5, color-mix(in srgb, var(--hcg-color, #000000) 3%, var(--hcg-background, #ffffff)));
    --hcg-row-even-background: var(--highcharts-neutral-color-3, color-mix(in srgb, var(--hcg-color, #000000) 2%, var(--hcg-background, #ffffff)));
}

/* End Grid Default Theme */
