/* Data tables */
.table-card { position: relative; }
.table-toolbar {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 12px 18px;
}
.table-toolbar .tt-search { position: relative; flex: 0 1 340px; min-width: 200px; }
.table-toolbar .tt-search input {
  width: 100%; height: 32px; border: 1px solid var(--b-input); border-radius: 8px;
  padding: 0 10px 0 30px; font-size: 14px; font-family: inherit;
}
.table-toolbar .tt-search input:focus { border-color: var(--b-focus); outline: 3px solid rgba(9,114,211,0.18); }
.table-toolbar .tt-search .tt-search-icon { position: absolute; left: 9px; top: 8px; color: var(--t-secondary); pointer-events: none; }
.table-toolbar .tt-right { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.filter-chips { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 18px 10px; }
.fchip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg-selected); color: var(--t-body);
  border: 1px solid #c9e2f8; border-radius: 14px; padding: 2px 6px 2px 10px;
  font-size: 12.5px;
}
.fchip .fc-x {
  border: none; background: none; color: var(--t-link); cursor: pointer;
  display: inline-flex; padding: 2px; border-radius: 50%;
}
.fchip .fc-x:hover { background: rgba(9,114,211,0.15); }
.tbl-wrap { overflow-x: auto; }
table.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table th {
  text-align: left; font-weight: 600; color: var(--t-secondary);
  font-size: 13px; padding: 9px 14px; border-bottom: 2px solid var(--b-divider);
  background: #fafafa; white-space: nowrap; position: sticky; top: 0; z-index: 5;
}
.data-table th.th-sortable { cursor: pointer; user-select: none; }
.data-table th.th-sortable:hover { color: var(--t-body); }
.data-table th .sort-caret { display: inline-block; margin-left: 4px; color: var(--t-muted); font-size: 10px; }
.data-table th.sorted { color: var(--t-body); }
.data-table th.sorted .sort-caret { color: var(--b-focus); }
.data-table td {
  padding: 10px 14px; border-bottom: 1px solid var(--b-divider);
  vertical-align: middle; color: var(--t-body);
}
.data-table tbody tr { transition: background 0.06s; }
.data-table tbody tr:hover { background: var(--bg-hover); }
.data-table tbody tr.row-selected { background: var(--bg-selected); }
.data-table tbody tr.row-selected:hover { background: #e3f2fd; }
.data-table .cell-link { color: var(--t-link); cursor: pointer; font-weight: 400; }
.data-table .cell-link:hover { color: var(--t-link-hover); text-decoration: underline; }
.data-table input[type="checkbox"] { accent-color: var(--b-focus); width: 15px; height: 15px; cursor: pointer; }
.data-table .row-actions { display: flex; gap: 4px; opacity: 0; transition: opacity 0.1s; }
.data-table tbody tr:hover .row-actions, .data-table tbody tr:focus-within .row-actions { opacity: 1; }
.selection-bar {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 18px; background: var(--bg-selected);
  border-bottom: 1px solid #c9e2f8; flex-wrap: wrap;
}
.selection-bar .sel-count { font-weight: 600; font-size: 13.5px; }
.selection-bar .sb-actions { display: flex; gap: 8px; margin-left: auto; flex-wrap: wrap; }

/* table preferences modal prefs body */
.prefs-cols { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 2px 18px; padding: 4px 0; }

/* tree-ish indent (S3) */
.folder-link { display: inline-flex; align-items: center; gap: 8px; color: var(--t-link); cursor: pointer; }
.folder-link:hover { color: var(--t-link-hover); text-decoration: underline; }
.object-link { display: inline-flex; align-items: center; gap: 8px; color: var(--t-link); cursor: pointer; }
.object-link:hover { color: var(--t-link-hover); text-decoration: underline; }

/* column menu */
.col-menu-anchor { position: relative; }

/* mini bar chart (home cost widget) */
.bars { display: flex; align-items: flex-end; gap: 14px; height: 120px; padding: 0 4px; }
.bars .bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.bars .bar { width: 100%; max-width: 46px; background: var(--c-blue); border-radius: 3px 3px 0 0; min-height: 3px; position: relative; }
.bars .bar:hover { background: #0a5a9c; }
.bars .bar-val { position: absolute; top: -22px; left: 50%; transform: translateX(-50%); font-size: 11px; color: var(--t-secondary); opacity: 0; white-space: nowrap; }
.bars .bar:hover .bar-val { opacity: 1; }
.bars .bar-lbl { font-size: 12px; color: var(--t-secondary); }

/* sparkline */
.spark { width: 100%; height: 60px; }

/* tabs under split pane */
.subtabs { display: flex; gap: 18px; border-bottom: 1px solid var(--b-divider); padding: 0 18px; overflow-x: auto; }
.subtab {
  border: none; background: none; font-family: inherit; font-size: 13.5px;
  color: var(--t-secondary); padding: 9px 2px; cursor: pointer;
  border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap;
}
.subtab.active { color: var(--t-link-hover); font-weight: 600; border-bottom-color: var(--b-focus); }
