.tvwp-table-wrap {
    --tvwp-accent: #245c8f;
    --tvwp-border: #d9e1e8;
    --tvwp-header: #eef4f8;
    --tvwp-header-text: #17324d;
    margin: 1rem 0;
    color: #1e2933;
}
.tvwp-theme-contrast .tvwp-table { background: #101820; color: #f8fafc; }
.tvwp-theme-contrast .tvwp-table th { color: #102030; }
.tvwp-theme-contrast .tvwp-table tbody tr:nth-child(even) { background: #1c2935; }
.tvwp-search-label { display: block; margin-bottom: .35rem; font-weight: 600; }
.tvwp-search-box { position: relative; width: min(100%, 24rem); margin-bottom: .75rem; }
.tvwp-search { box-sizing: border-box; width: 100%; padding: .6rem 2.5rem .6rem .7rem; border: 1px solid var(--tvwp-border); border-radius: 4px; }
.tvwp-clear-search, .tvwp-clear-one-filter { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #c62828; cursor: pointer; font-size: 12px; font-weight: 700; line-height: 1; }
.tvwp-clear-search { position: absolute; top: 50%; right: .55rem; transform: translateY(-50%); }
.tvwp-clear-search[hidden] { display: none; }
.tvwp-clear-search:hover, .tvwp-clear-search:focus, .tvwp-clear-one-filter:hover, .tvwp-clear-one-filter:focus { background: rgba(198, 40, 40, .12); color: #8e1d1d; }
.tvwp-results-summary { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0 0 .75rem; color: #455563; font-size: 12px; }
.tvwp-active-filters { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .35rem; font-weight: 600; }
.tvwp-filter-tag { display: inline-flex; align-items: center; gap: .25rem; }
.tvwp-clear-one-filter { width: 2rem; height: 2rem; font-size: 12px; }
.tvwp-toolbar { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: .75rem; }
.tvwp-export-label { align-self: center; margin-right: .15rem; font-size: 12px; }
.tvwp-export { padding: .5rem .7rem; border: 1px solid var(--tvwp-accent); border-radius: 3px; background: var(--tvwp-accent); color: var(--tvwp-header-text); cursor: pointer; font-size: 12px; }
.tvwp-export:hover, .tvwp-export:focus { filter: brightness(.9); }
.tvwp-clear-filters { padding: .5rem .7rem; border: 1px solid var(--tvwp-accent); border-radius: 3px; background: var(--tvwp-accent); color: var(--tvwp-header-text); cursor: pointer; font: inherit; font-size: 12px; }
.tvwp-clear-filters:hover, .tvwp-clear-filters:focus { filter: brightness(.9); }
.tvwp-scroll { overflow-x: auto; border: 1px solid var(--tvwp-border); }
.tvwp-table { width: 100%; min-width: 34rem; border-collapse: collapse; background: #fff; }
.tvwp-table th, .tvwp-table td { padding: .7rem .8rem; border-bottom: 1px solid var(--tvwp-border); text-align: left; vertical-align: top; font-size: 12px; }
.tvwp-table th { background: var(--tvwp-header); color: var(--tvwp-header-text); cursor: pointer; font-weight: 700; white-space: nowrap; }
.tvwp-table th:hover, .tvwp-table th:focus { background: var(--tvwp-accent); color: #fff; }
.tvwp-table th span { margin-left: .45rem; opacity: .7; }
.tvwp-table .tvwp-filter-row th { background: #fff; cursor: default; padding-top: .4rem; padding-bottom: .4rem; }
.tvwp-table .tvwp-filter-row th:hover { background: #fff; color: inherit; }
.tvwp-filter-row input { box-sizing: border-box; width: 100%; min-width: 6rem; padding: .4rem; border: 1px solid var(--tvwp-border); border-radius: 3px; font: inherit; font-size: 12px; }
.tvwp-table tbody tr:nth-child(even) { background: #f8fafc; }
.tvwp-table tbody tr:hover { background: #edf6fb; }
.tvwp-page-size-control { display: flex; align-items: center; gap: .45rem; font-size: 12px; }
.tvwp-page-size-control select { min-width: 4.5rem; padding: .4rem .5rem; border: 1px solid var(--tvwp-border); border-radius: 3px; background: #fff; font: inherit; font-size: 12px; }
.tvwp-pagination { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; font-size: 12px; }
.tvwp-result-text { font-size: 12px; }
.tvwp-pagination-actions { display: flex; gap: .35rem; }
.tvwp-pagination button { min-width: 5rem; padding: .4rem .6rem; border: 1px solid var(--tvwp-border); border-radius: 3px; background: #fff; cursor: pointer; font-size: 12px; }
.tvwp-pagination button:disabled { cursor: not-allowed; opacity: .5; }
.tvwp-empty { margin: .75rem; color: #687684; }
