:root {
  --fd-bg-header: #f2f2f2;
  --fd-bg-odd: #fff;
  --fd-bg-even: #f5f5f5;
  --fd-bg-index: #f8f8f8;
  --fd-color-text: rgb(17, 23, 28);
  --fd-color-border: #D1D9E1;
  --fd-color-null: red;
  --fd-bg-null: rgba(68, 83, 95, 0.1);
  --fd-border-null: rgb(232, 236, 241);

  --fd-padding-cell: 0.5em 1.0em 0.5em 0.5em;
  --fd-padding-header: 0.75em 1.5em 0.75em 2.5em;

  --fd-cell-min-width: 2em;
  --fd-cell-max-width: 25em;
  --fd-container-max-height: 500px;
  --fd-font-size: 12px;
  --fd-line-height: 16px;
  --fd-border-width: 0.5px;

  --fd-resizer-width: 8px;
  --fd-resizer-hover-color: rgba(0,0,0,0.1);

  --fd-color-header-text: rgb(17, 23, 28);
  --fd-color-hover: #f0f4f8;
  --fd-color-icon: currentColor;
  --fd-icon-filter: none;
}

.table-container {
    max-height: var(--fd-container-max-height);
    overflow: auto;
}
/* Base table structure */
.frame-display-table {
    width: auto;
    table-layout: auto;
    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
    font-size: var(--fd-font-size);
    font-variant-numeric: tabular-nums;
    line-height: var(--fd-line-height);
    color: var(--fd-color-text);
    border-collapse: separate;
    border-spacing: 0;
    border: none;
    /* margin: 0; */
    /* border-top: 0 solid black; */
}
/* Cell styling */
.frame-display-table th,
.frame-display-table td {
    min-width: var(--fd-cell-min-width);
    max-width: var(--fd-cell-max-width);
    padding: var(--fd-padding-cell);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border: var(--fd-border-width) solid #D1D9E1;
}
/* Null cell styling */
.frame-display-table tbody code.null-cell {
    font-size: 85%;
    background-color: rgba(68, 83, 95, 0.1);
    border: 1px solid var(--fd-border-null);
    border-radius: 3px;
    padding: 2px 4px;
    display: inline-block;
    color: var(--fd-color-null);
}
/* Row striping for better readability */
.frame-display-table tbody tr:nth-child(odd) td,
.frame-display-table tbody tr:nth-child(odd) th {
    background-color: var(--fd-bg-odd);
}
.frame-display-table tbody tr:nth-child(even) td,
.frame-display-table tbody tr:nth-child(even) th {
    background-color: var(--fd-bg-even);
}
/* Hover effect */
.frame-display-table tbody tr:hover td,
.frame-display-table tbody tr:hover th {
  background-color: var(--fd-color-hover);
}

/* Header */
.frame-display-table thead tr th {
    position: sticky;
    top: 0;
    padding: var(--fd-padding-header);
    text-align: left !important;
    background-color: var(--fd-bg-header);
    font-weight: 600;
    z-index: 10;
    cursor: pointer;
    user-select: none;
    border-collapse: separate;
    color: var(--fd-color-header-text);
    box-shadow: inset 0px 1px 0px 0px #D1D9E1;
}

/* Reserve left area for icons */
.frame-display-table thead th::before {
    content: '';
    position: absolute;
    left: 0.5em;
    top: 50%;
    transform: translateY(-50%);
    width: 1.5em;
    height: 1.5em;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    filter: var(--fd-icon-filter);
}

/* Data type icons */
.frame-display-table thead th[data-dtype="int"]::before {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMy4wMDMgNy43NTRhLjc1Ljc1IDAgMCAxIC43NS0uNzVoNS4yMzJhLjc1Ljc1IDAgMCAxIC41MyAxLjI4bC0yLjc3NiAyLjc3N2MuNTUuMDk3IDEuMDU3LjI1MyAxLjQ5Mi40ODNjLjkwNS40NzcgMS41MDQgMS4yODQgMS41MDQgMi40MThjMCAuOTY2LS40NzEgMS43NS0xLjE3MiAyLjI3Yy0uNjg3LjUxMS0xLjU4Ny43Ny0yLjUyMS43N2MtMS4zNjcgMC0yLjI3NC0uNTI4LTIuNjY3LS43NTZhLjc1Ljc1IDAgMCAxIC43NTUtMS4yOTdjLjMzMS4xOTMuOTUzLjU1MyAxLjkxMi41NTNjLjY3MyAwIDEuMjQzLS4xODggMS42MjctLjQ3M2MuMzctLjI3NS41NjYtLjYzNS41NjYtMS4wNjdjMC0uNS0uMjE5LS44MzYtLjcwMy0xLjA5MWMtLjUzOC0uMjg0LTEuMzc1LS40NDMtMi40NzEtLjQ0M2EuNzUuNzUgMCAwIDEtLjUzLTEuMjhsMi42NDMtMi42NDRoLTMuNDIxYS43NS43NSAwIDAgMS0uNzUtLjc1TTcuODggMTUuMjE1YTEuNCAxLjQgMCAwIDAtMS40NDYuODNhLjc1Ljc1IDAgMCAxLTEuMzctLjYxYTIuOSAyLjkgMCAwIDEgMi45ODYtMS43MWMuNTg5LjA2IDEuMTM5LjMyMyAxLjU1Ny43NDNjLjQzNC40NDYuNjg1IDEuMDU4LjY4NSAxLjc3OGMwIDEuNjQxLTEuMjU0IDIuNDM3LTIuMTIgMi45ODZjLS41MzguMzQxLTEuMTguNjk0LTEuNDk1IDEuMjczSDkuNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC00YS43NS43NSAwIDAgMS0uNzUtLjc1YzAtMS43OTkgMS4zMzctMi42MyAyLjI0My0zLjIxYzEuMDMyLS42NTkgMS41NS0xLjAzMSAxLjU1LTEuOGMwLS4zNTUtLjExNi0uNTg0LS4yNi0uNzMyYTEuMDcgMS4wNyAwIDAgMC0uNjUyLS4yOThabS4yMzQtMTMuMTIxYS43NS43NSAwIDAgMSAuMzg2LjY1NlY5aDEuMjUyYS43NS43NSAwIDAgMSAwIDEuNUg1Ljc1YS43NS43NSAwIDAgMSAwLTEuNUg3VjQuMTAzbC0uODUzLjUzM2EuNzQ5Ljc0OSAwIDEgMS0uNzk1LTEuMjcybDItMS4yNWEuNzUuNzUgMCAwIDEgLjc2Mi0uMDIiLz48L3N2Zz4=');
}
.frame-display-table thead th[data-dtype="float"]::before {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xOCAyMmwtMS40LTEuNGwxLjU3NS0xLjZIMTJ2LTJoNi4xNzVMMTYuNiAxNS40TDE4IDE0bDQgNHpNMiAxM3YtM2gzdjN6bTcuNSAwcS0xLjQ1IDAtMi40NzUtMS4wMjVUNiA5LjV2LTRxMC0xLjQ1IDEuMDI1LTIuNDc1VDkuNSAydDIuNDc1IDEuMDI1VDEzIDUuNXY0cTAgMS40NS0xLjAyNSAyLjQ3NVQ5LjUgMTNtOSAwcS0xLjQ1IDAtMi40NzUtMS4wMjVUMTUgOS41di00cTAtMS40NSAxLjAyNS0yLjQ3NVQxOC41IDJ0Mi40NzUgMS4wMjVUMjIgNS41djRxMCAxLjQ1LTEuMDI1IDIuNDc1VDE4LjUgMTNtLTktMnEuNjI1IDAgMS4wNjMtLjQzN1QxMSA5LjV2LTRxMC0uNjI1LS40MzctMS4wNjJUOS41IDR0LTEuMDYyLjQzOFQ4IDUuNXY0cTAgLjYyNS40MzggMS4wNjNUOS41IDExbTkgMHEuNjI1IDAgMS4wNjMtLjQzN1QyMCA5LjV2LTRxMC0uNjI1LS40MzctMS4wNjJUMTguNSA0dC0xLjA2Mi40MzhUMTcgNS41djRxMCAuNjI1LjQzOCAxLjA2M1QxOC41IDExIi8+PC9zdmc+');
    top: 55%;
}
.frame-display-table thead th[data-dtype="string"]::before {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjUgNWExIDEgMCAwIDEgLjkxNi42bDMuNSA4YTEgMSAwIDEgMS0xLjgzMi44TDkuNDcxIDEzSDUuNTNsLS42MTMgMS40YTEgMSAwIDAgMS0xLjgzMi0uOGwzLjUtOEExIDEgMCAwIDEgNy41IDVtMS4wOTYgNkw3LjUgOC40OTVMNi40MDQgMTF6TTQgMTlhMSAxIDAgMSAwIDAgMmgyNGExIDEgMCAwIDAgMC0yem0wIDZhMSAxIDAgMSAwIDAgMmgyNGExIDEgMCAwIDAgMC0yem05LTE5YTEgMSAwIDAgMSAxLTFoMi41YTMgMyAwIDAgMSAyLjQ1NSA0LjcyNUEzIDMgMCAwIDEgMTcgMTVoLTNhMSAxIDAgMCAxLTEtMXptMiA1djJoMmExIDEgMCAwIDAgMC0yem0wLTJoMS41YTEgMSAwIDAgMCAwLTJIMTV6bTggMWMwLTEuMTc2LjI5NC0xLjkzLjY1LTIuMzcxQTEuNjQgMS42NCAwIDAgMSAyNC45OCA3Yy42NiAwIDEuMjMuMzIgMS42MDQgMS4xNzhhMSAxIDAgMSAwIDEuODMzLS44QzI3Ljc1NyA1Ljg2NiAyNi41MTQgNSAyNC45NzkgNWEzLjY0IDMuNjQgMCAwIDAtMi44ODQgMS4zNzFDMjEuMzczIDcuMjY0IDIxIDguNTEgMjEgMTBzLjM3MyAyLjczNiAxLjA5NSAzLjYyOUEzLjY0IDMuNjQgMCAwIDAgMjQuOTggMTVjMS41MzUgMCAyLjc3OC0uODY2IDMuNDM4LTIuMzc4YTEgMSAwIDEgMC0xLjgzMy0uOEMyNi4yMSAxMi42ODEgMjUuNjQgMTMgMjQuOTggMTNhMS42NCAxLjY0IDAgMCAxLTEuMzI5LS42MjljLS4zNTYtLjQ0LS42NS0xLjE5NS0uNjUtMi4zNzEiLz48L3N2Zz4=');
}
.frame-display-table thead th[data-dtype="datetime"]::before {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05LjUgMTRoLThDLjY3IDE0IDAgMTMuMzMgMCAxMi41VjIuMzhDMCAxLjU1LjY3Ljg4IDEuNS44OGgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3LjI1YzAgLjI4LS4yMi41LS41LjVzLS41LS4yMi0uNS0uNVYyLjM4YzAtLjI4LS4yMi0uNS0uNS0uNWgtMTFjLS4yOCAwLS41LjIyLS41LjVWMTIuNWMwIC4yOC4yMi41LjUuNWg4Yy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQgMy42MmMtLjI4IDAtLjUtLjIyLS41LS41Vi41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djIuNjJjMCAuMjgtLjIyLjUtLjUuNW02LjEyIDBjLS4yOCAwLS41LS4yMi0uNS0uNVYuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXYyLjYyYzAgLjI4LS4yMi41LS41LjVNMTMuNSA2SC41Qy4yMiA2IDAgNS43OCAwIDUuNVMuMjIgNSAuNSA1aDEzYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNW0tMSAxMEMxMC41NyAxNiA5IDE0LjQzIDkgMTIuNVMxMC41NyA5IDEyLjUgOXMzLjUgMS41NyAzLjUgMy41cy0xLjU3IDMuNS0zLjUgMy41bTAtNmEyLjUgMi41IDAgMCAwIDAgNWEyLjUgMi41IDAgMCAwIDAtNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEzLjUgMTRhLjQ3LjQ3IDAgMCAxLS4zNS0uMTVsLTEtMWEuNS41IDAgMCAxLS4xNS0uMzVWMTFjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2MS4yOWwuODUuODVjLjIuMi4yLjUxIDAgLjcxYy0uMS4xLS4yMy4xNS0uMzUuMTUiLz48L3N2Zz4=');
}
.frame-display-table thead th[data-dtype="bool"]::before {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTggMTNBNSA1IDAgMSAxIDggM2E1IDUgMCAwIDEgMCAxMG0tMi44MjgtMi4xNzJhNCA0IDAgMCAxIDUuNjU2LTUuNjU2Yy4wMDQuMDEzLTUuNjQ1IDUuNjc0LTUuNjU2IDUuNjU2Ii8+PC9zdmc+');
    width: 1.7em;
    height: 1.7em;
}
.frame-display-table thead th[data-dtype="category"]::before {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjQyNSA5LjQ3NUwxMS4xNSAzLjRxLjE1LS4yNS4zNzUtLjM2M1QxMiAyLjkyNXQuNDc1LjExM3QuMzc1LjM2MmwzLjcyNSA2LjA3NXEuMTUuMjUuMTUuNTI1dC0uMTI1LjV0LS4zNS4zNjN0LS41MjUuMTM3aC03LjQ1cS0uMyAwLS41MjUtLjEzN1Q3LjQgMTAuNXQtLjEyNS0uNXQuMTUtLjUyNU0xNy41IDIycS0xLjg3NSAwLTMuMTg3LTEuMzEyVDEzIDE3LjV0MS4zMTMtMy4xODdUMTcuNSAxM3QzLjE4OCAxLjMxM1QyMiAxNy41dC0xLjMxMiAzLjE4OFQxNy41IDIyTTMgMjAuNXYtNnEwLS40MjUuMjg4LS43MTJUNCAxMy41aDZxLjQyNSAwIC43MTMuMjg4VDExIDE0LjV2NnEwIC40MjUtLjI4OC43MTNUMTAgMjEuNUg0cS0uNDI1IDAtLjcxMi0uMjg4VDMgMjAuNW0xNC41LS41cTEuMDUgMCAxLjc3NS0uNzI1VDIwIDE3LjV0LS43MjUtMS43NzVUMTcuNSAxNXQtMS43NzUuNzI1VDE1IDE3LjV0LjcyNSAxLjc3NVQxNy41IDIwTTUgMTkuNWg0di00SDV6TTEwLjA1IDloMy45TDEyIDUuODV6bTcuNDUgOC41Ii8+PC9zdmc+');
}
.frame-display-table thead th[data-dtype="object"]::before {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIj48cGF0aCBkPSJtMTIuNTkzIDIzLjI1OGwtLjAxMS4wMDJsLS4wNzEuMDM1bC0uMDIuMDA0bC0uMDE0LS4wMDRsLS4wNzEtLjAzNXEtLjAxNi0uMDA1LS4wMjQuMDA1bC0uMDA0LjAxbC0uMDE3LjQyOGwuMDA1LjAybC4wMS4wMTNsLjEwNC4wNzRsLjAxNS4wMDRsLjAxMi0uMDA0bC4xMDQtLjA3NGwuMDEyLS4wMTZsLjAwNC0uMDE3bC0uMDE3LS40MjdxLS4wMDQtLjAxNi0uMDE3LS4wMThtLjI2NS0uMTEzbC0uMDEzLjAwMmwtLjE4NS4wOTNsLS4wMS4wMWwtLjAwMy4wMTFsLjAxOC40M2wuMDA1LjAxMmwuMDA4LjAwN2wuMjAxLjA5M3EuMDE5LjAwNS4wMjktLjAwOGwuMDA0LS4wMTRsLS4wMzQtLjYxNHEtLjAwNS0uMDE4LS4wMi0uMDIybS0uNzE1LjAwMmEuMDIuMDIgMCAwIDAtLjAyNy4wMDZsLS4wMDYuMDE0bC0uMDM0LjYxNHEuMDAxLjAxOC4wMTcuMDI0bC4wMTUtLjAwMmwuMjAxLS4wOTNsLjAxLS4wMDhsLjAwNC0uMDExbC4wMTctLjQzbC0uMDAzLS4wMTJsLS4wMS0uMDF6Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTIgMmM1LjUyMyAwIDEwIDQuNDc3IDEwIDEwcy00LjQ3NyAxMC0xMCAxMFMyIDE3LjUyMyAyIDEyUzYuNDc3IDIgMTIgMm0wIDE0YTEgMSAwIDEgMCAwIDJhMSAxIDAgMCAwIDAtMm0wLTkuNWEzLjYyNSAzLjYyNSAwIDAgMC0zLjYyNSAzLjYyNWExIDEgMCAxIDAgMiAwYTEuNjI1IDEuNjI1IDAgMSAxIDIuMjMgMS41MWMtLjY3Ni4yNy0xLjYwNS45NjItMS42MDUgMi4xMTVWMTRhMSAxIDAgMSAwIDIgMGMwLS4yNDQuMDUtLjM2Ni4yNjEtLjQ3bC4wODctLjA0QTMuNjI2IDMuNjI2IDAgMCAwIDEyIDYuNSIvPjwvZz48L3N2Zz4=');
}

/* Sticky first column */
.frame-display-table tbody th {
    position: sticky;
    left: 0;
    background-color: var(--fd-bg-index);
    z-index: 1;
    text-align: center;
    box-shadow: inset 1px 0px 0px 0px #D1D9E1;
}
/* Corner cell (intersection of sticky header and first column) */
.frame-display-table thead tr th:first-child {
    position: sticky;
    left: 0;
    top: 0;
    z-index: 20;
    box-shadow: inset 1px 1px 0px 0px #D1D9E1;
}
.frame-display-table.resizing {
  cursor: col-resize;
}
.frame-display-table.resizing * {
  user-select: none !important;
}

/* Sort arrows */
.frame-display-table thead th.sort-asc::after {
    content: ' ↓';
    font-size: 1em;
    opacity: 0.7;
}

.frame-display-table thead th.sort-desc::after {
    content: ' ↑';
    font-size: 1em;
    opacity: 0.7;
}

/* Resizer handle */
.fd-column-resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: var(--fd-resizer-width);
  height: 100%;
  cursor: col-resize;
  z-index: 20;
}
.fd-column-resizer:hover {
  background-color: var(--fd-resizer-hover-color);
}

/* ============================================
   DARK THEME (GitHub Dark Dimmed inspired)
   ============================================ */
.theme-dark.frame-display-table {
  --fd-bg-header: #22272e;
  --fd-bg-odd: #2d333b;
  --fd-bg-even: #22272e;
  --fd-bg-index: #22272e;
  --fd-color-text: #adbac7;
  --fd-color-header-text: #cdd9e5;
  --fd-color-border: #444c56;
  --fd-color-hover: #373e47;
  --fd-color-null: #f47067;
  --fd-bg-null: rgba(244, 112, 103, 0.15);
  --fd-border-null: #f47067;
  --fd-icon-filter: brightness(0) invert(0.8);
  --fd-resizer-hover-color: rgba(99, 110, 123, 0.3);
}

/* ============================================
   OCEAN THEME (Professional blue-teal)
   ============================================ */
.theme-ocean.frame-display-table {
  --fd-bg-header: #0f4c75;
  --fd-bg-odd: #f0f8ff;
  --fd-bg-even: #e8f4f8;
  --fd-bg-index: #e1f1f5;
  --fd-color-text: #1b262c;
  --fd-color-header-text: #ffffff;
  --fd-color-border: #3282b8;
  --fd-color-hover: #d4ebf2;
  --fd-color-null: #d9534f;
  --fd-bg-null: rgba(217, 83, 79, 0.1);
  --fd-border-null: #d9534f;
  --fd-icon-filter: brightness(0) invert(1);
  --fd-resizer-hover-color: rgba(50, 130, 184, 0.3);
}

.theme-ocean.frame-display-table thead th {
  font-weight: 600;
}

/* ============================================
   SUNSET THEME (Warm orange-rose)
   ============================================ */
.theme-sunset.frame-display-table {
  --fd-bg-header: #d4504c;
  --fd-bg-odd: #fff8f3;
  --fd-bg-even: #ffe8db;
  --fd-bg-index: #ffdcc7;
  --fd-color-text: #2d1b14;
  --fd-color-header-text: #ffffff;
  --fd-color-border: #e8a598;
  --fd-color-hover: #ffd4bc;
  --fd-color-null: #c73e1d;
  --fd-bg-null: rgba(199, 62, 29, 0.1);
  --fd-border-null: #c73e1d;
  --fd-icon-filter: brightness(0) invert(1);
  --fd-resizer-hover-color: rgba(212, 80, 76, 0.3);
}

.theme-sunset.frame-display-table thead th {
  font-weight: 600;
}

/* ============================================
   NEON THEME (Cyberpunk cyan-magenta)
   ============================================ */
.theme-neon.frame-display-table {
  --fd-bg-header: #1a1a2e;
  --fd-bg-odd: #16213e;
  --fd-bg-even: #0f1624;
  --fd-bg-index: #0f1624;
  --fd-color-text: #00fff5;
  --fd-color-header-text: #ff006e;
  --fd-color-border: #00fff5;
  --fd-color-hover: #1f2b3e;
  --fd-color-null: #ff006e;
  --fd-bg-null: rgba(255, 0, 110, 0.2);
  --fd-border-null: #ff006e;
  --fd-icon-filter: brightness(0) saturate(100%) invert(27%) sepia(99%) saturate(7471%) hue-rotate(318deg) brightness(101%) contrast(106%);
  --fd-resizer-hover-color: rgba(0, 255, 245, 0.4);
}

.theme-neon.frame-display-table thead th {
  font-weight: 700;
  text-shadow: 0 0 10px rgba(255, 0, 110, 0.5);
}

.theme-neon.frame-display-table tbody tr:hover td,
.theme-neon.frame-display-table tbody tr:hover th {
  box-shadow: 0 0 15px rgba(0, 255, 245, 0.1);
}

/* ============================================
   MINIMAL THEME
   ============================================ */
.theme-minimal.frame-display-table {
  --fd-bg-header: #fafafa;
  --fd-bg-odd: #ffffff;
  --fd-bg-even: #ffffff;
  --fd-bg-index: #fafafa;
  --fd-color-text: #1a1a1a;
  --fd-color-header-text: #1a1a1a;
  --fd-color-border: transparent;
  --fd-color-hover: #f5f5f5;
  --fd-border-width: 0;
  --fd-resizer-hover-color: rgba(0, 0, 0, 0.08);
}

.theme-minimal.frame-display-table th,
.theme-minimal.frame-display-table td {
  border-bottom: 1px solid #e5e5e5;
}

.theme-minimal.frame-display-table thead th {
  border-bottom: 2px solid #1a1a1a;
  font-weight: 600;
}

.theme-minimal.frame-display-table tbody th {
  font-weight: 500;
  box-shadow: none;
}

.theme-minimal.frame-display-table thead tr th:first-child {
  box-shadow: none;
}

/* ============================================
   CONTRAST THEME (High Accessibility)
   ============================================ */
.theme-contrast.frame-display-table {
  --fd-bg-header: #000000;
  --fd-bg-odd: #000000;
  --fd-bg-even: #000000;
  --fd-bg-index: #000000;
  --fd-color-text: #ffffff;
  --fd-color-header-text: #ffff00;
  --fd-color-border: #ffffff;
  --fd-color-hover: #333333;
  --fd-border-width: 2px;
  --fd-color-null: #ffff00;
  --fd-bg-null: rgba(255, 255, 0, 0.2);
  --fd-border-null: #ffff00;
  --fd-icon-filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(10000%) hue-rotate(0deg);
  --fd-resizer-hover-color: rgba(255, 255, 0, 0.5);
}

.theme-contrast.frame-display-table {
  border: 3px solid #ffffff;
}

.theme-contrast.frame-display-table thead th {
  font-weight: bold;
  font-size: 1.05em;
}

.theme-contrast.frame-display-table thead th.sort-asc::after,
.theme-contrast.frame-display-table thead th.sort-desc::after {
  color: #ffff00;
}
