/* Frontend styles with CSS variables for theming */
.gse-scope {
  --gse-header-bg: #f7fafc;
  --gse-header-color: inherit;
  --gse-body-bg: transparent;
  --gse-row-bg: #ffffff;
  --gse-row-alt-bg: #fafafa;
  --gse-text-color: inherit;
  --gse-font-family: inherit;
  --gse-font-size: 14px;
  --gse-line-height: 1.5;
}

.gse-iframe { width: 100%; height: 100%; border: 0; }
.gse-iframe-wrap { position: relative; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 8px; background: var(--gse-body-bg); color: var(--gse-text-color); font-family: var(--gse-font-family); }

.gse-table-wrap { overflow: auto; border: 1px solid #e2e8f0; border-radius: 8px; background: var(--gse-body-bg); }
.gse-table { width: 100%; border-collapse: collapse; font-size: var(--gse-font-size); line-height: var(--gse-line-height); color: var(--gse-text-color); font-family: var(--gse-font-family); background: var(--gse-body-bg); }
.gse-table th, .gse-table td { padding: 10px 12px; border-bottom: 1px solid #edf2f7; vertical-align: top; }
.gse-condensed th, .gse-condensed td { padding: 6px 8px; }

.gse-table th { text-align: left; position: sticky; top: 0; background: var(--gse-header-bg); color: var(--gse-header-color); z-index: 1; cursor: default; }
.gse-table th.gse-sortable { cursor: pointer; }
.gse-table th.gse-sort-asc::after { content: " \25B2"; }
.gse-table th.gse-sort-desc::after { content: " \25BC"; }

.gse-wrapper { display: grid; gap: 8px; }
.gse-search { max-width: 280px; padding: 8px 10px; border: 1px solid #cbd5e0; border-radius: 6px; }
.gse-pager { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 4px 0; }
.gse-pager button { border: 1px solid #cbd5e0; padding: 6px 10px; background: white; border-radius: 6px; cursor: pointer; }
.gse-pager .gse-page-info { margin-left: 8px; font-size: 12px; color: #4a5568; }

/* Base row background and striped variant */
.gse-table tbody tr { background: var(--gse-row-bg); }
.gse-striped tbody tr:nth-child(odd) { background: var(--gse-row-alt-bg); }

.gse-error { padding: 12px; border: 1px solid #fed7d7; background: #fff5f5; color: #c53030; border-radius: 8px; }
