/* Dataset workspace block
   The shared product workspace used by Search Engine, Reverse DNS, SSL Catalog,
   Universe and Traffic: a toolbar, a filter builder, view tabs, a data sheet
   and a record toolbar. Composed under the console theme. */

.dp-ws {
  display: flex;
  flex-direction: column;
  gap: var(--dp-space-6);
  padding: var(--dp-space-6);
}

.dp-ws-card {
  background: var(--dp-surface);
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius-xl);
  overflow: hidden;
}

/* ---- Toolbar -------------------------------------------------------- */
.dp-ws-bar {
  display: flex;
  align-items: center;
  gap: var(--dp-space-4);
  padding: var(--dp-space-4) var(--dp-space-5);
  border-bottom: 1px solid var(--dp-border);
}

.dp-ws-title {
  display: flex;
  align-items: center;
  gap: var(--dp-space-3);
  font-size: var(--dp-text-2xl);
  font-weight: var(--dp-weight-bold);
  color: var(--dp-navy);
}

.dp-ws-title-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius-md);
  color: var(--dp-text-muted);
}

.dp-ws-title-icon svg { width: 1.25rem; height: 1.25rem; }

.dp-ws-actions {
  display: flex;
  align-items: center;
  gap: var(--dp-space-4);
  margin-left: auto;
}

.dp-ws-product {
  color: var(--dp-text-muted);
  font-weight: var(--dp-weight-semibold);
  font-size: var(--dp-text-sm);
}

.dp-ws-link {
  color: var(--dp-text-muted);
  font-weight: var(--dp-weight-semibold);
  font-size: var(--dp-text-sm);
  text-decoration: none;
  cursor: pointer;
}

.dp-ws-actions .dp-btn { font-size: var(--dp-text-sm); }

.dp-ws-link:hover { color: var(--dp-navy); }

.dp-ws-sep {
  width: 1px;
  height: 1.5rem;
  background: var(--dp-border);
}

.dp-ws-textbtn {
  appearance: none;
  border: 0;
  background: transparent;
  font-family: var(--dp-font-sans);
  font-size: var(--dp-text-sm);
  font-weight: var(--dp-weight-bold);
  color: var(--dp-navy);
  padding: var(--dp-space-2) var(--dp-space-2);
  border-radius: var(--dp-radius-xs);
  cursor: pointer;
}

.dp-ws-textbtn:hover { background: var(--dp-surface-soft); }

/* ---- Filters -------------------------------------------------------- */
.dp-ws-filters { padding: var(--dp-space-5); }

.dp-ws-filters-head {
  display: flex;
  align-items: center;
  gap: var(--dp-space-3);
  margin-bottom: var(--dp-space-4);
}

.dp-ws-filters-title {
  font-size: var(--dp-text-base);
  font-weight: var(--dp-weight-bold);
  color: var(--dp-navy);
}

.dp-ws-records {
  color: var(--dp-text-muted);
  font-weight: var(--dp-weight-bold);
  font-size: var(--dp-text-sm);
}

.dp-ws-iconbtn {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--dp-text-subtle);
  cursor: pointer;
  padding: 2px;
  line-height: 0;
}

.dp-ws-iconbtn:hover { color: var(--dp-navy); }
.dp-ws-iconbtn svg { width: 1.1rem; height: 1.1rem; }

.dp-ws-spacer { margin-left: auto; }

.dp-ws-datepill {
  display: inline-flex;
  align-items: center;
  gap: var(--dp-space-2);
  padding: var(--dp-space-2) var(--dp-space-3);
  border: 1px solid var(--dp-border-neutral);
  border-radius: var(--dp-radius-xs);
  background: var(--dp-surface);
  font-family: var(--dp-font-sans);
  font-size: var(--dp-text-sm);
  font-weight: var(--dp-weight-semibold);
  color: var(--dp-navy);
  cursor: pointer;
}

.dp-ws-datepill svg { width: 1rem; height: 1rem; color: var(--dp-text-muted); }

.dp-ws-filter-row {
  display: flex;
  gap: var(--dp-space-3);
}

.dp-ws-filter-row .dp-select { flex: 0 0 14rem; }
.dp-ws-filter-row .dp-input { flex: 1; }

.dp-ws-filter-actions {
  display: flex;
  align-items: center;
  gap: var(--dp-space-4);
  margin-top: var(--dp-space-4);
}

.dp-ws-action {
  display: inline-flex;
  align-items: center;
  gap: var(--dp-space-2);
  appearance: none;
  border: 0;
  background: transparent;
  font-family: var(--dp-font-sans);
  font-size: var(--dp-text-sm);
  font-weight: var(--dp-weight-semibold);
  color: var(--dp-text-muted);
  cursor: pointer;
}

.dp-ws-action:hover { color: var(--dp-navy); }
.dp-ws-action svg { width: 1.1rem; height: 1.1rem; }

/* ---- View tabs ------------------------------------------------------ */
.dp-ws-tabs {
  display: flex;
  gap: var(--dp-space-5);
  padding: 0 var(--dp-space-5);
  border-bottom: 1px solid var(--dp-border);
}

.dp-ws-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--dp-space-2);
  appearance: none;
  border: 0;
  background: transparent;
  padding: var(--dp-space-4) 0;
  font-family: var(--dp-font-sans);
  font-size: var(--dp-text-sm);
  font-weight: var(--dp-weight-bold);
  color: var(--dp-text-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
}

.dp-ws-tab svg { width: 1.15rem; height: 1.15rem; }
.dp-ws-tab:hover { color: var(--dp-navy); }

.dp-ws-tab[data-active] {
  color: var(--dp-navy);
  border-bottom-color: var(--dp-blue-700);
}

.dp-ws-tab[data-active] svg { color: var(--dp-blue-700); }

/* ---- Sheet ---------------------------------------------------------- */
.dp-ws-sheet {
  border-collapse: collapse;
  font-size: var(--dp-text-sm);
  color: var(--dp-navy);
}

.dp-ws-sheet th,
.dp-ws-sheet td {
  border-bottom: 1px solid var(--dp-border);
  padding: var(--dp-space-4);
  text-align: left;
}

.dp-ws-sheet thead th {
  font-weight: var(--dp-weight-bold);
  color: var(--dp-navy);
}

.dp-ws-rownum {
  width: 64px;
  min-width: 64px;
  text-align: center;
  color: var(--dp-text-subtle);
  font-size: var(--dp-text-sm);
  border-right: 1px solid var(--dp-border);
}

.dp-ws-colhost {
  min-width: 24rem;
  border-right: 1px solid var(--dp-border);
}

.dp-ws-colhost-head {
  display: flex;
  align-items: center;
  gap: var(--dp-space-2);
}

.dp-ws-colicons {
  margin-left: auto;
  display: inline-flex;
  gap: var(--dp-space-2);
  color: var(--dp-text-subtle);
}

.dp-ws-colicons svg { width: 1rem; height: 1rem; }

.dp-ws-sheet tbody tr:hover { background: var(--dp-surface-subtle); }

/* ---- Record toolbar ------------------------------------------------- */
.dp-ws-foot {
  display: flex;
  align-items: center;
  gap: var(--dp-space-4);
  padding: var(--dp-space-3) var(--dp-space-5);
  border-top: 1px solid var(--dp-border);
}

.dp-ws-foot-ctrl {
  display: inline-flex;
  align-items: center;
  gap: var(--dp-space-2);
  appearance: none;
  background: var(--dp-surface);
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius-xs);
  padding: var(--dp-space-2) var(--dp-space-3);
  font-family: var(--dp-font-sans);
  font-size: var(--dp-text-sm);
  font-weight: var(--dp-weight-semibold);
  color: var(--dp-navy);
  cursor: pointer;
}

.dp-ws-foot-ctrl svg { width: 1rem; height: 1rem; color: var(--dp-text-muted); }

.dp-ws-pager {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: var(--dp-space-3);
  font-size: var(--dp-text-sm);
  color: var(--dp-text-muted);
}

.dp-ws-pager a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--dp-link);
  font-weight: var(--dp-weight-semibold);
  text-decoration: none;
}

.dp-ws-pager a[aria-disabled="true"] {
  color: var(--dp-text-subtle);
  pointer-events: none;
}

.dp-ws-pager svg { width: 1rem; height: 1rem; }

.dp-ws-pagebox {
  width: 3rem;
  height: 2rem;
  text-align: center;
  border: 1px solid var(--dp-border-neutral);
  border-radius: var(--dp-radius-xs);
  font-family: var(--dp-font-sans);
  font-size: var(--dp-text-sm);
  color: var(--dp-navy);
}
