/* Import @skysper-ai/tokens/styles.css before this file. */
/* .tds-layer marks portalled roots (drawer, popover, menu, tooltip). */
.tds-content,
.tds-layer {
  font-family: var(--tds-font);
  font-size: var(--tds-body-size);
  line-height: 1.5;
  color: var(--tower-content-text);
}
.tds-content {
  background: var(--tower-content-canvas);
}
.tds-content *,
.tds-layer,
.tds-layer *,
.tds-shell * {
  box-sizing: border-box;
}
.tds-shell {
  font-family: var(--tds-font);
  color: var(--tower-shell-text);
  background: var(--tower-shell-canvas);
}
.tds-content :where(button, input, textarea, select),
.tds-layer :where(button, input, textarea, select) {
  font: inherit;
}
.tds-content
  :where(button, input, textarea, select, a, [tabindex]):focus-visible,
.tds-layer
  :where(button, input, textarea, select, a, [tabindex]):focus-visible {
  outline: 2px solid var(--tower-content-focus);
  outline-offset: 2px;
}
.tds-content :where(button, input, textarea, select):disabled,
.tds-layer :where(button, input, textarea, select):disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.tds-content a,
.tds-layer a {
  color: var(--tower-content-info);
  text-underline-offset: 3px;
}
.tds-muted {
  color: var(--tower-content-text-muted);
}
.tds-error {
  color: var(--tower-content-danger);
}
.tds-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--tds-space-sm);
}
.tds-icon,
.tds-button > svg {
  width: var(--tds-icon-md);
  height: var(--tds-icon-md);
  flex: none;
}

/* Buttons */
.tds-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--tds-space-sm);
  min-height: var(--tds-control-height);
  padding: 0 var(--tds-space-md);
  border: 1px solid var(--tower-content-border-control);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
  color: var(--tower-content-text);
  cursor: pointer;
  white-space: nowrap;
  font-weight: 500;
  transition:
    background-color var(--tds-motion-fast) var(--tds-ease-standard),
    border-color var(--tds-motion-fast) var(--tds-ease-standard),
    color var(--tds-motion-fast) var(--tds-ease-standard),
    transform var(--tds-motion-fast) var(--tds-ease-standard);
}
.tds-button:active:not(:disabled) {
  transform: translateY(1px);
}
.tds-button:hover:not(:disabled) {
  background: var(--tower-content-hover);
}
.tds-button--primary {
  background: var(--tower-content-action);
  border-color: var(--tower-content-action);
  color: var(--tower-content-text-inverse);
}
.tds-button--primary:hover:not(:disabled) {
  background: var(--tower-content-action-hover);
}
.tds-button--ghost {
  background: transparent;
  border-color: transparent;
}
.tds-button--danger {
  background: var(--tower-content-danger-soft);
  color: var(--tower-content-danger);
  border-color: var(--tower-content-danger-border);
}
.tds-button--danger:hover:not(:disabled) {
  background: var(--tower-content-danger-border);
}
.tds-icon-button {
  /* Never squeezed below its target size by a crowded flex row (WCAG 2.5.8). */
  flex: none;
  width: var(--tds-control-height);
  padding: 0;
  color: var(--tower-content-text-secondary);
}

/* Inputs */
.tds-input {
  width: 100%;
  min-width: 0;
  min-height: var(--tds-control-height);
  padding: 0 var(--tds-space-md);
  border: 1px solid var(--tower-content-border-control);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
  color: var(--tower-content-text);
}
.tds-input::placeholder {
  color: var(--tower-content-text-muted);
}
.tds-input[aria-invalid="true"] {
  border-color: var(--tower-content-danger);
}
.tds-textarea {
  resize: vertical;
  min-height: 84px;
  padding-block: var(--tds-space-sm);
}
.tds-select {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
}
.tds-select > select {
  appearance: none;
  padding-right: calc(var(--tds-space-md) * 2 + var(--tds-icon-md));
  cursor: pointer;
}
.tds-select-icon {
  position: absolute;
  top: 50%;
  right: var(--tds-space-md);
  transform: translateY(-50%);
  color: var(--tower-content-text-muted);
  pointer-events: none;
}
.tds-checkbox {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-sm);
  min-height: var(--tds-control-height);
}
.tds-checkbox input {
  width: 16px;
  height: 16px;
  accent-color: var(--tower-content-action);
}
.tds-field {
  display: grid;
  align-content: start;
  gap: var(--tds-space-xs);
  min-width: 0;
}
.tds-field > label {
  font-weight: 500;
}
.tds-field-message {
  font-size: var(--tds-text-caption);
}

/* Status and surfaces */
.tds-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-xs);
  padding: 1px 7px;
  border: 1px solid var(--badge-border);
  border-radius: var(--tds-radius-control);
  font-size: var(--tds-text-caption);
  color: var(--badge-text);
  background: var(--badge-bg);
  white-space: nowrap;
}
.tds-tone--neutral {
  --badge-text: var(--tower-content-text-secondary);
  --badge-bg: var(--tower-content-surface-subtle);
  --badge-border: var(--tower-content-border);
}
.tds-tone--info {
  --badge-text: var(--tower-content-info);
  --badge-bg: var(--tower-content-info-soft);
  --badge-border: var(--tower-content-info-border);
}
.tds-tone--success {
  --badge-text: var(--tower-content-success);
  --badge-bg: var(--tower-content-success-soft);
  --badge-border: var(--tower-content-success-border);
}
.tds-tone--warning {
  --badge-text: var(--tower-content-warning);
  --badge-bg: var(--tower-content-warning-soft);
  --badge-border: var(--tower-content-warning-border);
}
.tds-tone--danger {
  --badge-text: var(--tower-content-danger);
  --badge-bg: var(--tower-content-danger-soft);
  --badge-border: var(--tower-content-danger-border);
}
.tds-tone--ai {
  --badge-text: var(--tower-content-ai);
  --badge-bg: var(--tower-content-ai-soft);
  --badge-border: var(--tower-content-ai-border);
}
.tds-panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-panel);
  background: var(--tower-content-surface);
}
.tds-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--tds-space-md);
  padding: var(--tds-space-md) var(--tds-space-lg);
  border-bottom: 1px solid var(--tower-content-border);
}
.tds-panel-header h2 {
  font-size: var(--tds-text-section);
  margin: 0;
  font-weight: 600;
}
.tds-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tds-space-lg);
  flex-wrap: wrap;
}
.tds-page-header h1 {
  margin: 0;
  font-size: var(--tds-text-title);
  line-height: 1.4;
  font-weight: 600;
}
.tds-page-header p {
  color: var(--tower-content-text-muted);
  margin: var(--tds-space-xs) 0 0;
  font-size: var(--tds-text-body);
}
.tds-page-header--bar {
  align-items: center;
  min-height: var(--tds-bar-filter);
  padding: var(--tds-space-sm) var(--tds-space-lg);
  border-bottom: 1px solid var(--tower-content-border);
  background: var(--tower-content-surface);
}
.tds-page-header--bar h1 {
  font-size: var(--tds-text-section);
}
.tds-page-header--bar p {
  margin-top: 2px;
  font-size: var(--tds-text-caption);
}
.tds-filter-bar {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: var(--tds-space-md);
  padding: var(--tds-space-md) var(--tds-space-lg);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-panel);
  background: var(--tower-content-surface);
}
.tds-filter-bar > .tds-field {
  flex: 1 1 160px;
}
.tds-kpi {
  display: grid;
  gap: var(--tds-space-xs);
  padding: var(--tds-space-lg);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-panel);
  background: var(--tower-content-surface);
}
/* Standalone figures keep proportional digits; tabular digits are for columns. */
.tds-kpi strong {
  font-size: var(--tds-text-metric);
  line-height: 1.3;
  font-weight: 600;
}
.tds-state {
  min-height: 160px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--tds-space-sm);
  padding: var(--tds-space-xl);
  text-align: center;
}
.tds-state-icon {
  display: inline-grid;
  place-items: center;
  width: calc(var(--tds-icon-lg) * 2);
  height: calc(var(--tds-icon-lg) * 2);
  border-radius: 50%;
  background: var(--tower-content-surface-subtle);
  color: var(--tower-content-text-muted);
}
.tds-state-icon .tds-icon {
  width: var(--tds-icon-lg);
  height: var(--tds-icon-lg);
}
.tds-state--error .tds-state-icon {
  background: var(--tower-content-danger-soft);
  color: var(--tower-content-danger);
}

/* Basic table */
.tds-table-scroll {
  overflow: auto;
}
.tds-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--tds-body-size);
  font-variant-numeric: tabular-nums;
}
.tds-table th {
  position: sticky;
  top: 0;
  z-index: var(--tds-layer-sticky);
  height: var(--tds-table-header-height);
  background: var(--tower-content-surface-subtle);
  font-weight: 500;
  text-align: left;
  color: var(--tower-content-text-secondary);
  white-space: nowrap;
}
.tds-table th,
.tds-table td {
  padding: var(--tds-space-sm) var(--tds-space-md);
  border-bottom: 1px solid var(--tower-content-border);
}
.tds-table td {
  height: var(--tds-row-height);
}
.tds-table tbody tr:hover {
  background: var(--tower-content-hover);
}
.tds-table tbody tr:last-child td {
  border-bottom: 0;
}
.tds-pagination {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tds-space-sm) var(--tds-space-md);
  min-height: var(--tds-bar-pager);
  padding: var(--tds-space-xs) var(--tds-space-md);
  border-top: 1px solid var(--tower-content-border);
  background: var(--tower-content-surface);
  font-size: var(--tds-text-caption);
  color: var(--tower-content-text-secondary);
}
.tds-pagination-total {
  font-variant-numeric: tabular-nums;
}
.tds-pagination-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px;
  font-variant-numeric: tabular-nums;
}
.tds-page-button {
  display: inline-grid;
  place-items: center;
  min-width: 28px;
  height: 28px;
  padding: 0 var(--tds-space-xs);
  border: 1px solid transparent;
  border-radius: var(--tds-radius-control);
  background: transparent;
  color: var(--tower-content-text-secondary);
  cursor: pointer;
}
.tds-page-button:hover:not(:disabled):not([aria-current="page"]) {
  background: var(--tower-content-hover);
}
.tds-page-button[aria-current="page"] {
  border-color: var(--tower-content-border-control);
  background: var(--tower-content-surface);
  color: var(--tower-content-text);
  font-weight: 600;
}
.tds-page-gap {
  min-width: 20px;
  text-align: center;
  color: var(--tower-content-text-muted);
}
.tds-pagination .tds-pagination-size {
  width: auto;
  margin-left: var(--tds-space-sm);
}
.tds-pagination-size > select {
  min-height: 28px;
}
.tds-pagination-jump {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-xs);
  margin-left: var(--tds-space-sm);
  white-space: nowrap;
}
.tds-pagination-jump input {
  width: 48px;
  height: 28px;
  border: 1px solid var(--tower-content-border-control);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
  color: var(--tower-content-text);
  text-align: center;
  appearance: textfield;
}
.tds-pagination-jump input::-webkit-inner-spin-button,
.tds-pagination-jump input::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}

/* Drawer */
.tds-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--tds-layer-overlay);
  background: var(--tower-content-mask);
}
.tds-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: var(--tds-layer-drawer);
  display: flex;
  flex-direction: column;
  width: min(var(--tds-drawer-width), 100vw);
  background: var(--tower-content-surface);
  box-shadow: var(--tower-content-drawer-shadow);
}
.tds-drawer-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--tds-space-lg);
  padding: var(--tds-space-xl);
  border-bottom: 1px solid var(--tower-content-border);
}
.tds-drawer-header h2 {
  margin: 0;
  font-size: var(--tds-text-title);
}
.tds-drawer-header p {
  margin: var(--tds-space-xs) 0 0;
  color: var(--tower-content-text-muted);
}
.tds-drawer-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: var(--tds-space-xl);
}
.tds-drawer-footer {
  padding: var(--tds-space-lg) var(--tds-space-xl);
  border-top: 1px solid var(--tower-content-border);
}

/* Popover, tooltip, menu */
.tds-popover,
.tds-menu {
  z-index: var(--tds-layer-popover);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-panel);
  background: var(--tower-content-surface);
  box-shadow: var(--tower-content-dropdown-shadow);
}
.tds-popover {
  width: var(--tds-popover-width);
  max-width: calc(100vw - 2 * var(--tds-space-sm));
  padding: var(--tds-space-md);
}
.tds-popover-title {
  margin-bottom: var(--tds-space-xs);
  font-weight: 600;
}
.tds-popover-text {
  margin: 0;
  color: var(--tower-content-text-secondary);
}
.tds-tooltip {
  z-index: var(--tds-layer-tooltip);
  max-width: var(--tds-tooltip-max-width);
  padding: var(--tds-space-xs) var(--tds-space-sm);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-action);
  color: var(--tower-content-text-inverse);
  font-size: var(--tds-text-caption);
}
.tds-menu {
  min-width: var(--tds-menu-min-width);
  padding: var(--tds-space-xs);
}
.tds-menu-item {
  display: flex;
  align-items: flex-start;
  gap: var(--tds-space-sm);
  min-height: var(--tds-control-height);
  padding: var(--tds-space-xs) var(--tds-space-sm);
  border-radius: var(--tds-radius-control);
  cursor: pointer;
  outline: none;
}
.tds-menu-item > svg {
  width: var(--tds-icon-md);
  height: var(--tds-icon-md);
  margin-top: 2px;
  flex: none;
  color: var(--tower-content-text-secondary);
}
.tds-menu-item > span {
  display: grid;
}
.tds-menu-item small {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-menu-item[data-highlighted] {
  background: var(--tower-content-hover);
}
.tds-menu-item[data-disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
.tds-menu-item--danger,
.tds-menu-item--danger > svg {
  color: var(--tower-content-danger);
}
.tds-menu-separator {
  height: 1px;
  margin: var(--tds-space-xs) 0;
  background: var(--tower-content-border);
}

/* Tabs and tab strips: Tower's 36px underline strip, flush with the edges. */
.tds-tabs {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.tds-tabs-bar,
.tds-workbench-tabs {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 0 var(--tds-space-lg);
  min-height: var(--tds-bar-tab);
  padding: 0 var(--tds-space-md);
  border-bottom: 1px solid var(--tower-content-border);
  background: var(--tower-content-surface);
}
.tds-tabs-list,
.tds-tab-strip {
  display: flex;
  gap: var(--tds-space-xl);
}
.tds-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-xs);
  min-height: var(--tds-bar-tab);
  margin-bottom: -1px;
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--tower-content-text-secondary);
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
}
.tds-tab:hover {
  color: var(--tower-content-text);
}
.tds-content .tds-tab:focus-visible {
  outline-offset: -2px;
}
.tds-tab[data-state="active"] {
  color: var(--tower-content-text);
  font-weight: 600;
  border-bottom-color: var(--tower-content-action);
}
.tds-tab-count {
  padding: 0 6px;
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface-subtle);
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}
.tds-tabs-actions,
.tds-workbench-context {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--tds-space-sm);
  margin-left: auto;
  padding-block: var(--tds-space-xs);
}
.tds-tab-panel {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.tds-tab-panel > .tds-workbench {
  flex: 1;
  height: auto;
}

.tds-spinner {
  width: 14px;
  height: 14px;
  display: inline-block;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: tds-spin 0.7s linear infinite;
}
.tds-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
@keyframes tds-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Business workspaces: full-bleed, stacked bars, one scrolling data plane. */
.tds-workbench {
  display: flex;
  flex-direction: column;
  height: var(--tds-workbench-height, 100%);
  min-height: var(--tds-workbench-min-height);
  min-width: 0;
  overflow: hidden;
  background: var(--tower-content-surface);
}
.tds-workbench--framed {
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
}
.tds-workbench-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--tds-space-sm);
  min-height: var(--tds-bar-tab);
  padding: 0 var(--tds-space-md);
  border-bottom: 1px solid var(--tower-content-border);
}
.tds-workbench-header :is(h1, h2) {
  margin: 0;
  font-size: var(--tds-text-body);
  font-weight: 600;
}
.tds-workbench-filters,
.tds-workbench-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-space-sm);
  padding: var(--tds-space-sm) var(--tds-space-md);
  border-bottom: 1px solid var(--tower-content-border);
}
/* Inline, label-less controls (named by aria-label); labelled fields align to the baseline. */
.tds-workbench-filters {
  align-items: flex-end;
  min-height: var(--tds-bar-filter);
}
/* Selects inside bars size to their options instead of filling the row. */
:is(.tds-workbench-filters, .tds-workbench-toolbar, .tds-workbench-context, .tds-tabs-actions, .tds-page-header .tds-actions) .tds-select {
  width: auto;
  min-width: 120px;
}
.tds-workbench-filters .tds-field {
  flex: 1 1 140px;
  max-width: 240px;
}
.tds-workbench-toolbar {
  align-items: center;
  justify-content: space-between;
  min-height: var(--tds-bar-toolbar);
  padding-block: var(--tds-space-xs);
  background: var(--tower-content-surface-subtle);
}
.tds-toolbar-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--tds-space-sm);
}
.tds-toolbar-end {
  gap: 2px;
  margin-left: auto;
}
.tds-toolbar-divider {
  width: 1px;
  height: 20px;
  margin: 0 var(--tds-space-xs);
  background: var(--tower-content-border-control);
}
.tds-workbench-data {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
}
.tds-workbench-data > :is(.tds-analytical-scroll, .tds-table-scroll) {
  flex: 1;
}
.tds-workbench > footer {
  background: var(--tower-content-surface);
}

/* Search field and active criteria */
.tds-search-field {
  display: flex;
  align-items: stretch;
  flex: 1 1 260px;
  max-width: 400px;
  min-height: var(--tds-control-height);
  border: 1px solid var(--tower-content-border-control);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
}
.tds-search-field:focus-within {
  border-color: var(--tower-content-focus);
  box-shadow: 0 0 0 2px var(--tower-content-focus-shadow);
}
/* The field shows focus on its frame; inner controls do not draw a second ring. */
.tds-search-field :is(input, select):focus-visible {
  outline: none;
}
.tds-search-field input {
  flex: 1;
  min-width: 0;
  padding: 0 var(--tds-space-sm);
  border: 0;
  background: transparent;
  color: var(--tower-content-text);
  outline: none;
}
.tds-search-field input::placeholder {
  color: var(--tower-content-text-muted);
}
.tds-search-field input::-webkit-search-cancel-button {
  appearance: none;
}
.tds-search-scope {
  position: relative;
  display: flex;
  border-right: 1px solid var(--tower-content-border);
}
.tds-search-scope select {
  appearance: none;
  padding: 0 calc(var(--tds-icon-sm) + var(--tds-space-md)) 0 var(--tds-space-sm);
  border: 0;
  background: transparent;
  color: var(--tower-content-text-secondary);
  cursor: pointer;
}
.tds-search-scope .tds-icon {
  position: absolute;
  top: 50%;
  right: var(--tds-space-xs);
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
  transform: translateY(-50%);
  color: var(--tower-content-text-muted);
  pointer-events: none;
}
.tds-search-icon,
.tds-search-clear {
  align-self: center;
  margin-right: var(--tds-space-sm);
  color: var(--tower-content-text-muted);
}
.tds-search-clear {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  margin-right: var(--tds-space-xs);
  padding: 0;
  border: 0;
  border-radius: var(--tds-radius-control);
  background: transparent;
  cursor: pointer;
}
.tds-search-clear:hover {
  background: var(--tower-content-hover);
  color: var(--tower-content-text);
}
.tds-search-clear .tds-icon {
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
}
.tds-filter-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tds-space-sm);
  padding: var(--tds-space-xs) var(--tds-space-md);
  border-bottom: 1px solid var(--tower-content-border);
  background: var(--tower-content-surface);
}
.tds-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-xs);
  max-width: 320px;
  height: 24px;
  padding: 0 var(--tds-space-sm);
  border: 1px solid var(--tower-content-info-border);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-info-soft);
  color: var(--tower-content-info);
  font-size: var(--tds-text-caption);
  cursor: pointer;
}
.tds-filter-chip > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-filter-chip .tds-icon {
  width: 12px;
  height: 12px;
}
.tds-filter-clear {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
  cursor: pointer;
}
.tds-filter-clear:hover {
  color: var(--tower-content-text);
  text-decoration: underline;
}

/* Tile grid: shared 1px dividers, no gutters, flush with every edge. */
.tds-tile-grid {
  overflow: hidden;
  border-bottom: 1px solid var(--tower-content-border);
}
.tds-tile-grid-inner {
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(100%, var(--tds-tile-min-width)), 1fr)
  );
  margin: 0 -1px -1px 0;
}
/* Two-class selectors so tiles win over card styles loaded later (charts). */
.tds-tile-grid .tds-tile-grid-inner > * {
  min-width: 0;
  border: 0;
  border-right: 1px solid var(--tower-content-border);
  border-bottom: 1px solid var(--tower-content-border);
  border-radius: 0;
  background: var(--tower-content-surface);
}
.tds-tile-grid .tds-tile-grid-inner > * > :is(.tds-panel, .tds-kpi, .tds-chart-card) {
  border: 0;
  border-radius: 0;
}
.tds-tile-grid-inner > [data-tile-span="full"] {
  grid-column: 1 / -1;
}

.tds-segments {
  display: inline-flex;
  flex: none;
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--tower-content-border-control);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
}
.tds-segments button {
  min-height: calc(var(--tds-control-height) - 6px);
  padding: 0 var(--tds-space-md);
  border: 0;
  border-radius: var(--tds-radius-inner);
  background: transparent;
  color: var(--tower-content-text-secondary);
  cursor: pointer;
  white-space: nowrap;
}
.tds-segments button:hover:not([aria-pressed="true"]) {
  background: var(--tower-content-hover);
}
.tds-segments button[aria-pressed="true"] {
  background: var(--tower-content-action);
  color: var(--tower-content-text-inverse);
}
.tds-summary-strip {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--tds-space-sm) var(--tds-space-xl);
  padding: var(--tds-space-sm) var(--tds-space-md);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface-subtle);
  font-size: var(--tds-text-caption);
}
.tds-workbench > .tds-summary-strip {
  border-width: 0 0 1px;
  border-radius: 0;
}
.tds-summary-strip > strong {
  font-weight: 500;
  color: var(--tower-content-text-secondary);
}
.tds-summary-strip > div {
  display: flex;
  gap: var(--tds-space-sm);
  align-items: baseline;
}
.tds-summary-strip span {
  color: var(--tower-content-text-muted);
}
.tds-summary-strip b {
  font-size: var(--tds-text-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.tds-context-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-space-sm) var(--tds-space-lg);
  align-items: center;
  padding: var(--tds-space-sm) var(--tds-space-md);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface-subtle);
  font-size: var(--tds-text-caption);
  color: var(--tower-content-text-secondary);
}

/* Analytical table */
.tds-analytical-scroll {
  position: relative;
  min-height: 0;
  overflow: auto;
}
.tds-analytical-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--tds-body-size);
  font-variant-numeric: tabular-nums;
}
.tds-analytical-table th,
.tds-analytical-table td {
  padding: var(--tds-space-xs) var(--tds-space-md);
  border-bottom: 1px solid var(--tower-content-border);
  border-right: 1px solid var(--tower-content-border);
}
.tds-analytical-table th {
  font-weight: 500;
  text-align: left;
}
.tds-analytical-table td {
  height: var(--tds-row-height);
  background: var(--tower-content-surface);
}
.tds-analytical-table thead th {
  position: sticky;
  z-index: 12;
  background: var(--tower-content-surface-subtle);
}
.tds-group-header th {
  top: 0;
  height: var(--tds-table-group-height);
  font-size: var(--tds-text-caption);
  color: var(--tower-content-text-muted);
}
.tds-column-header th {
  top: var(--tds-table-group-height);
  height: var(--tds-table-header-height);
}
.tds-analytical-table .tds-frozen {
  position: sticky;
  z-index: 11;
}
.tds-analytical-table thead .tds-frozen {
  z-index: 14;
}
.tds-analytical-table .tds-selection-column {
  width: var(--tds-table-selection-width);
  min-width: var(--tds-table-selection-width);
  text-align: center;
}
.tds-selection-column input {
  width: 14px;
  height: 14px;
  accent-color: var(--tower-content-action);
}
.tds-analytical-table tbody tr:hover td {
  background: var(--tower-content-hover);
}
.tds-analytical-table tbody tr[data-selected] td {
  background: var(--tower-content-info-soft);
}
.tds-analytical-table .tds-summary-row > * {
  position: sticky;
  top: calc(var(--tds-table-group-height) + var(--tds-table-header-height));
  z-index: 12;
  background: var(--tower-content-surface-subtle);
  font-weight: 600;
}
.tds-analytical-table .tds-summary-row .tds-frozen {
  z-index: 13;
}
.tds-analytical-table .tds-summary-foot .tds-summary-row > * {
  top: auto;
  bottom: 0;
  border-top: 1px solid var(--tower-content-border-control);
  border-bottom: 0;
}
.tds-column-heading {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-xs);
  max-width: 100%;
}
.tds-column-heading--end {
  display: flex;
  justify-content: flex-end;
}
.tds-sort-button {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-xs);
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-weight: inherit;
  cursor: pointer;
}
.tds-sort-icon {
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
}
.tds-sort-icon--idle {
  color: var(--tower-content-placeholder);
}
.tds-sort-button:hover .tds-sort-icon--idle {
  color: var(--tower-content-text-secondary);
}
.tds-column-help {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: var(--tds-radius-control);
  background: transparent;
  color: var(--tower-content-text-muted);
  cursor: pointer;
}
.tds-column-help .tds-icon {
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
}
.tds-column-help:hover,
.tds-column-help[data-state="open"] {
  background: var(--tower-content-hover);
  color: var(--tower-content-info);
}
.tds-tree-cell {
  display: flex;
  align-items: center;
  gap: var(--tds-space-xs);
}
.tds-tree-toggle,
.tds-tree-spacer {
  flex: none;
  width: 24px;
  height: 24px;
}
.tds-tree-toggle {
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: var(--tds-radius-control);
  background: transparent;
  color: var(--tower-content-text-secondary);
  cursor: pointer;
}
.tds-tree-toggle:hover {
  background: var(--tower-content-pressed);
}
.tds-tree-toggle .tds-icon {
  transition: transform 120ms;
}
.tds-tree-toggle[aria-expanded="true"] .tds-icon {
  transform: rotate(90deg);
}
.tds-analytical-table tr[data-depth="0"] .tds-tree-cell {
  font-weight: 500;
}

/* Inline numeric editing */
.tds-editable-cell {
  display: grid;
  gap: 2px;
  justify-items: end;
}
.tds-editable-field {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-xs);
  width: 100%;
}
.tds-editable-input {
  width: 100%;
  min-height: calc(var(--tds-control-height) - 4px);
  padding: 0 var(--tds-space-sm);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
  color: var(--tower-content-text);
  text-align: right;
  font-variant-numeric: tabular-nums;
  appearance: textfield;
}
.tds-editable-input::-webkit-inner-spin-button,
.tds-editable-input::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}
.tds-editable-input:hover:not(:disabled) {
  border-color: var(--tower-content-border-control);
}
.tds-editable-input:focus-visible {
  border-color: var(--tower-content-focus);
  outline-offset: 0;
}
.tds-editable-cell--invalid .tds-editable-input,
.tds-editable-cell--invalid .tds-editable-input:focus-visible {
  border-color: var(--tower-content-danger);
  outline-color: var(--tower-content-danger);
}
.tds-editable-unit {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-editable-error {
  color: var(--tower-content-danger);
  font-size: var(--tds-text-caption);
}

.tds-column-settings-list {
  display: grid;
  max-height: 320px;
  overflow: auto;
}
.tds-bulk-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tds-space-md);
  padding: var(--tds-space-sm) var(--tds-space-md);
  background: var(--tower-content-info-soft);
  border-top: 1px solid var(--tower-content-info-border);
}
.tds-progress-cell {
  display: grid;
  gap: 2px;
  font-size: var(--tds-text-caption);
}
.tds-progress-cell span {
  color: var(--tower-content-text-muted);
}
.tds-progress-cell progress {
  width: 100%;
  height: 4px;
  accent-color: var(--tower-content-info);
}

@media (prefers-reduced-motion: reduce) {
  .tds-spinner {
    animation: none;
  }
  .tds-button,
  .tds-tree-toggle .tds-icon {
    transition: none;
  }
}
@media (max-width: 700px) {
  .tds-workbench {
    height: var(--tds-workbench-height, 640px);
  }
  .tds-tabs-actions {
    margin-left: 0;
  }
}

/* ── Custom dropdowns (SelectMenu, MultiSelect) ───────────────────────── */
.tds-select-trigger {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-space-sm);
  min-width: 120px;
  max-width: 240px;
  min-height: var(--tds-control-height);
  padding: 0 var(--tds-space-sm) 0 var(--tds-space-md);
  border: 1px solid var(--tower-content-border-control);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
  color: var(--tower-content-text);
  cursor: pointer;
  transition: border-color var(--tds-motion-fast), background-color var(--tds-motion-fast);
}
.tds-select-trigger:hover:not(:disabled) {
  border-color: var(--tower-content-border-strong);
}
.tds-select-trigger.is-active {
  border-color: var(--tower-content-text-secondary);
  background: var(--tower-content-surface-subtle);
  font-weight: 500;
}
.tds-select-trigger[data-state="open"] {
  border-color: var(--tower-content-focus);
  background: var(--tower-content-surface);
  box-shadow: 0 0 0 2px var(--tower-content-focus-shadow);
}
.tds-select-value {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-select-count {
  min-width: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--tower-content-action);
  color: var(--tower-content-text-inverse);
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
}
.tds-select-count::before {
  content: attr(data-count);
}
.tds-select-chevron {
  color: var(--tower-content-text-muted);
  transition: transform var(--tds-motion-fast);
}
.tds-select-trigger[data-state="open"] .tds-select-chevron {
  transform: rotate(180deg);
}
.tds-select-panel {
  z-index: var(--tds-layer-popover);
  display: flex;
  flex-direction: column;
  width: max(var(--radix-popover-trigger-width), 200px);
  max-width: min(var(--tds-select-panel-width), calc(100vw - 16px));
  max-height: min(380px, var(--radix-popover-content-available-height));
  padding: var(--tds-space-xs);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-panel);
  background: var(--tower-content-surface);
  box-shadow: var(--tower-content-dropdown-shadow);
}
.tds-select-panel--multi {
  width: var(--tds-select-panel-width);
}
.tds-select-search {
  position: relative;
  display: flex;
  align-items: center;
  flex: none;
  margin-bottom: var(--tds-space-xs);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface-subtle);
}
.tds-select-search:focus-within {
  border-color: var(--tower-content-focus);
  background: var(--tower-content-surface);
}
.tds-select-search input:focus-visible {
  outline: none;
}
.tds-select-search .tds-icon {
  position: absolute;
  left: var(--tds-space-sm);
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
  color: var(--tower-content-text-muted);
}
.tds-select-search input {
  flex: 1;
  min-width: 0;
  height: var(--tds-control-height);
  padding: 0 var(--tds-space-sm) 0 calc(var(--tds-icon-sm) + var(--tds-space-md));
  border: 0;
  background: transparent;
  color: var(--tower-content-text);
  outline: none;
}
.tds-option-list {
  flex: 1;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
  outline: none;
}
.tds-option,
.tds-check-row {
  display: flex;
  align-items: center;
  gap: var(--tds-space-sm);
  min-height: var(--tds-control-height);
  padding: 0 var(--tds-space-sm);
  border-radius: var(--tds-radius-control);
  cursor: pointer;
}
.tds-option[data-active],
.tds-check-row:hover {
  background: var(--tower-content-hover);
}
.tds-option[aria-disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
.tds-option-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-option-meta {
  flex: none;
  max-width: 80px;
  padding: 0 5px;
  overflow: hidden;
  border-radius: var(--tds-radius-inner);
  background: var(--tower-content-surface-subtle);
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-option-check {
  flex: none;
  visibility: hidden;
  color: var(--tower-content-action);
}
.tds-option[aria-selected="true"] {
  font-weight: 500;
}
.tds-option[aria-selected="true"] .tds-option-check {
  visibility: visible;
}
.tds-option-match {
  padding: 0;
  border-radius: 2px;
  background: var(--tower-content-warning-soft);
  color: inherit;
  box-shadow: inset 0 -1px var(--tower-content-warning-border);
}
.tds-option-group {
  padding: var(--tds-space-sm) var(--tds-space-sm) var(--tds-space-xs);
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-check-row > label {
  display: flex;
  flex: 1;
  min-width: 0;
  align-items: center;
  gap: var(--tds-space-sm);
  cursor: pointer;
}
.tds-check-row input {
  width: 14px;
  height: 14px;
  flex: none;
  accent-color: var(--tower-content-action);
}
.tds-check-row--strong {
  font-weight: 500;
}
.tds-check-row--indent {
  padding-left: calc(var(--tds-space-sm) + var(--tds-space-lg));
}
.tds-check-row.is-checked {
  background: var(--tower-content-surface-subtle);
}
.tds-only-button {
  padding: 0 var(--tds-space-xs);
  border: 0;
  border-radius: var(--tds-radius-inner);
  background: transparent;
  color: var(--tower-content-info);
  font-size: var(--tds-text-caption);
  cursor: pointer;
  opacity: 0;
}
.tds-check-row:hover .tds-only-button,
.tds-check-row:focus-within .tds-only-button {
  opacity: 1;
}
.tds-select-empty {
  padding: var(--tds-space-lg) var(--tds-space-sm);
  color: var(--tower-content-text-muted);
  text-align: center;
}
.tds-select-footer {
  display: flex;
  align-items: center;
  gap: var(--tds-space-sm);
  flex: none;
  margin-top: var(--tds-space-xs);
  padding: var(--tds-space-sm) var(--tds-space-xs) var(--tds-space-xs);
  border-top: 1px solid var(--tower-content-border);
}
.tds-select-footer > span {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-link-button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tower-content-info);
  font-size: var(--tds-text-caption);
  cursor: pointer;
}
.tds-link-button:hover {
  text-decoration: underline;
}

/* ── Column configuration drawer and header menu ───────────────────────── */
.tds-column-panel {
  width: min(var(--tds-column-panel-width), 100vw);
}
.tds-column-body {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1fr) var(--tds-column-panel-rail);
  min-height: 0;
}
.tds-column-checklist {
  min-width: 0;
  overflow: auto;
  padding: var(--tds-space-lg) var(--tds-space-xl);
}
.tds-column-group {
  margin-top: var(--tds-space-lg);
}
.tds-column-group-title {
  display: flex;
  align-items: center;
  gap: var(--tds-space-sm);
  margin-bottom: var(--tds-space-xs);
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-column-options {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0 var(--tds-space-lg);
}
.tds-column-rail {
  min-height: 0;
  overflow: auto;
  padding: var(--tds-space-lg);
  border-left: 1px solid var(--tower-content-border);
  background: var(--tower-content-surface-subtle);
}
.tds-column-rail h3 {
  margin: 0;
  font-size: var(--tds-text-body);
  font-weight: 600;
}
.tds-column-rail > p {
  margin: var(--tds-space-xs) 0 var(--tds-space-md);
  font-size: var(--tds-text-caption);
}
.tds-column-list {
  display: grid;
  gap: var(--tds-space-xs);
  margin: 0;
  padding: 0;
  list-style: none;
}
.tds-column-item {
  display: flex;
  align-items: center;
  gap: var(--tds-space-xs);
  min-height: 32px;
  padding: 0 var(--tds-space-xs);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
  font-size: var(--tds-text-caption);
}
.tds-column-item.is-frozen {
  border-color: var(--tower-content-info-border);
  background: var(--tower-content-info-soft);
}
.tds-column-item.is-dragging {
  position: relative;
  z-index: 1;
  box-shadow: var(--tower-content-dropdown-shadow);
}
.tds-column-grip,
.tds-column-pin {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: var(--tds-radius-control);
  background: transparent;
  color: var(--tower-content-text-muted);
}
.tds-column-grip {
  cursor: grab;
  touch-action: none;
}
.tds-column-pin {
  cursor: pointer;
}
.tds-column-pin[aria-pressed="true"] {
  color: var(--tower-content-info);
}
.tds-column-pin:hover:not(:disabled),
.tds-column-grip:hover {
  background: var(--tower-content-hover);
  color: var(--tower-content-text);
}
.tds-column-grip .tds-icon,
.tds-column-pin .tds-icon {
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
}
.tds-column-index {
  width: 18px;
  flex: none;
  color: var(--tower-content-text-muted);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.tds-column-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-column-footer {
  display: flex;
  align-items: center;
  gap: var(--tds-space-sm);
}
.tds-toolbar-spacer {
  flex: 1;
}
/* Floats over the header's right edge so it never takes width from the label. */
.tds-column-menu {
  position: absolute;
  top: 50%;
  right: 8px;
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface-subtle);
  color: var(--tower-content-text-muted);
  cursor: pointer;
  opacity: 0;
  transform: translateY(-50%);
}
.tds-column-menu .tds-icon {
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
}
th:hover .tds-column-menu,
.tds-column-menu:focus-visible,
.tds-column-menu[data-state="open"] {
  opacity: 1;
}
.tds-column-menu:hover,
.tds-column-menu[data-state="open"] {
  background: var(--tower-content-hover);
  color: var(--tower-content-text);
}
@media (hover: none) {
  .tds-column-menu {
    opacity: 1;
  }
}
.tds-column-header th {
  white-space: nowrap;
}
.tds-column-heading,
.tds-sort-button {
  min-width: 0;
}
.tds-analytical-scroll[data-scrolled-x] .tds-frozen-edge {
  box-shadow: var(--tower-content-frozen-shadow);
}

/* ── Loading, skeletons and refresh ────────────────────────────────────── */
.tds-skeleton {
  display: block;
  max-width: 100%;
  height: 10px;
  border-radius: var(--tds-radius-inner);
  background: var(--tower-content-skeleton);
  animation: tds-pulse var(--tds-motion-skeleton) ease-in-out infinite;
}
.tds-skeleton-row td {
  height: var(--tds-row-height);
}
.tds-workbench-progress {
  position: relative;
  height: 0;
}
.tds-workbench-progress > .tds-loading-bar {
  position: absolute;
  inset: -2px 0 auto;
}
.tds-loading-bar {
  height: 2px;
  overflow: hidden;
  background: var(--tower-content-border);
}
.tds-loading-bar > span {
  display: block;
  width: 33%;
  height: 100%;
  background: var(--tower-content-action);
  animation: tds-indeterminate 1.1s ease-in-out infinite;
}
.tds-table-refresh {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 20;
  height: 0;
}
.tds-table-refresh > .tds-loading-bar {
  position: absolute;
  inset: 0 0 auto;
}
.tds-analytical-scroll[data-refreshing] tbody {
  opacity: 0.55;
  transition: opacity var(--tds-motion-base);
}
.tds-spin {
  animation: tds-spin 0.8s linear infinite;
}
@keyframes tds-pulse {
  50% {
    opacity: 0.45;
  }
}
@keyframes tds-indeterminate {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(300%);
  }
}
.tds-loading-screen {
  display: grid;
  place-items: center;
  min-height: 100%;
  padding: var(--tds-space-xl);
}
.tds-loading-screen--shell {
  background: var(--tower-shell-canvas, var(--tower-content-canvas));
}
.tds-loading-card {
  position: relative;
  display: grid;
  justify-items: center;
  gap: var(--tds-space-sm);
  width: min(420px, 100%);
  overflow: hidden;
  padding: var(--tds-space-xl) var(--tds-space-xl) calc(var(--tds-space-xl) + 2px);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-hero);
  background: var(--tower-content-surface);
  box-shadow: var(--tower-content-card-shadow);
  text-align: center;
}
.tds-loading-orb {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: var(--tds-space-xs);
  border: 1px solid var(--tower-content-border);
  border-radius: 50%;
  background: var(--tower-content-surface-subtle);
}
.tds-loading-orb .tds-spinner {
  width: 18px;
  height: 18px;
}
.tds-loading-lines {
  display: grid;
  justify-items: center;
  gap: var(--tds-space-xs);
  width: 100%;
  margin-top: var(--tds-space-sm);
}
.tds-loading-lines .tds-skeleton {
  width: 100%;
}
.tds-loading-card > .tds-loading-bar {
  position: absolute;
  inset: auto 0 0;
}
.tds-result {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: var(--tds-space-sm);
  min-height: 360px;
  padding: var(--tds-space-xxl) var(--tds-space-xl);
  text-align: center;
}
.tds-result-icon {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--tower-content-surface-subtle);
  color: var(--tower-content-text-muted);
}
.tds-result-icon .tds-icon {
  width: 24px;
  height: 24px;
}
.tds-result--error .tds-result-icon {
  background: var(--tower-content-danger-soft);
  color: var(--tower-content-danger);
}
.tds-result--forbidden .tds-result-icon {
  background: var(--tower-content-warning-soft);
  color: var(--tower-content-warning);
}
.tds-result-code {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.08em;
}
.tds-result h1 {
  margin: 0;
  font-size: var(--tds-text-title);
  font-weight: 600;
}
.tds-result p {
  max-width: 420px;
  margin: 0 0 var(--tds-space-sm);
  color: var(--tower-content-text-muted);
}

/* ── Toasts (sonner, unstyled) ─────────────────────────────────────────── */
[data-sonner-toaster] {
  z-index: var(--tds-layer-toast) !important;
}
.tds-toast {
  display: flex;
  align-items: flex-start;
  gap: var(--tds-space-sm);
  width: min(360px, calc(100vw - 32px));
  padding: var(--tds-space-md);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-panel);
  background: var(--tower-content-surface);
  box-shadow: var(--tower-content-dropdown-shadow);
  color: var(--tower-content-text);
  font-family: var(--tds-font);
  font-size: var(--tds-body-size);
}
.tds-toast [data-icon] {
  display: inline-grid;
  flex: none;
  margin-top: 2px;
}
.tds-toast-title {
  font-weight: 600;
}
.tds-toast-description {
  margin-top: 2px;
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-toast-action {
  min-height: var(--tds-control-height);
  margin-left: auto;
  padding: 0 var(--tds-space-sm);
  border: 1px solid var(--tower-content-border-control);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface);
  cursor: pointer;
}
.tds-toast--success [data-icon] {
  color: var(--tower-content-success);
}
.tds-toast--error [data-icon] {
  color: var(--tower-content-danger);
}
.tds-toast--warning [data-icon] {
  color: var(--tower-content-warning);
}
.tds-toast--info [data-icon] {
  color: var(--tower-content-info);
}

/* ── Tabs refinements ──────────────────────────────────────────────────── */
.tds-tabs-list,
.tds-tab-strip {
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}
.tds-tabs-list::-webkit-scrollbar,
.tds-tab-strip::-webkit-scrollbar {
  display: none;
}
.tds-tab > svg {
  width: var(--tds-icon-md);
  height: var(--tds-icon-md);
  flex: none;
}
.tds-tab:disabled,
.tds-tab[data-disabled] {
  color: var(--tower-content-placeholder);
  cursor: not-allowed;
}
.tds-tab-panel[hidden] {
  display: none;
}
/* Folder tabs: the active tab opens into the panel below. */
.tds-tabs--card > .tds-tabs-bar,
.tds-workbench-tabs:has(> .tds-tab-strip--card) {
  align-items: flex-end;
  background: var(--tower-content-surface-subtle);
}
:is(.tds-tabs--card .tds-tabs-list, .tds-tab-strip--card) {
  gap: 2px;
  align-self: flex-end;
  padding-top: var(--tds-space-xs);
}
:is(.tds-tabs--card, .tds-workbench-tabs) :is(.tds-tabs-list, .tds-tab-strip--card) .tds-tab {
  min-height: calc(var(--tds-bar-tab) - var(--tds-space-xs));
  padding: 0 var(--tds-space-lg);
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: var(--tds-radius-panel) var(--tds-radius-panel) 0 0;
}
.tds-tabs--card .tds-tab[data-state="active"],
.tds-tab-strip--card .tds-tab[data-state="active"] {
  margin-bottom: -1px;
  border-color: var(--tower-content-border-control);
  background: var(--tower-content-surface);
  box-shadow: 0 1px 0 var(--tower-content-surface);
}
.tds-tabs--card .tds-tab[data-state="inactive"]:hover:not(:disabled),
.tds-tab-strip--card .tds-tab[data-state="inactive"]:hover:not(:disabled) {
  background: var(--tower-content-hover);
}
.tds-tab-strip--line .tds-tab,
.tds-tabs--line .tds-tab {
  transition: color var(--tds-motion-fast), border-color var(--tds-motion-fast);
}

/* ── KPI delta and trend, password field ──────────────────────────────── */
.tds-kpi-main {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--tds-space-md);
}
.tds-kpi-trend {
  flex: none;
  width: 96px;
  height: 32px;
}
.tds-kpi-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tds-space-xs) var(--tds-space-sm);
  font-size: var(--tds-text-caption);
}
.tds-kpi-delta {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.tds-kpi-delta .tds-icon {
  width: var(--tds-icon-sm);
  height: var(--tds-icon-sm);
}
.tds-kpi-delta--positive {
  color: var(--tower-content-success);
}
.tds-kpi-delta--negative {
  color: var(--tower-content-danger);
}
.tds-kpi-delta--neutral {
  color: var(--tower-content-text-secondary);
}
.tds-password {
  position: relative;
  display: block;
}
.tds-password > .tds-input {
  padding-right: calc(var(--tds-control-height) + var(--tds-space-xs));
}
.tds-password > .tds-icon-button {
  position: absolute;
  top: 0;
  right: 0;
  min-height: var(--tds-control-height);
}

/* ── Auth layout (warm brand canvas) ───────────────────────────────────── */
.tds-auth {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--tds-space-lg) var(--tds-space-xl);
  background:
    radial-gradient(circle at 18% 28%, var(--tower-shell-glow), transparent 42%),
    var(--tower-shell-canvas);
  color: var(--tower-shell-text);
  font-family: var(--tds-font);
}
.tds-auth-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-space-lg);
  min-height: 44px;
}
.tds-auth-brand {
  display: flex;
  align-items: center;
  gap: var(--tds-space-sm);
  font-size: 15px;
  font-weight: 600;
}
.tds-auth-actions {
  display: flex;
  align-items: center;
  gap: var(--tds-space-sm);
}
.tds-auth-body {
  display: flex;
  flex: 1;
  align-items: center;
  gap: var(--tds-space-xxl);
}
.tds-auth-visual {
  flex: 1 1 52%;
  align-self: stretch;
  min-height: 420px;
}
.tds-auth-main {
  display: flex;
  flex: 1 1 48%;
  flex-direction: column;
  align-items: center;
  padding: var(--tds-space-xl) 0;
}
.tds-auth-title {
  margin: 0;
  font-size: var(--tds-text-display);
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
}
.tds-auth-subtitle {
  margin: var(--tds-space-sm) 0 0;
  color: var(--tower-shell-muted);
  text-align: center;
}
.tds-auth-card {
  display: grid;
  gap: var(--tds-space-lg);
  width: min(440px, 100%);
  margin-top: var(--tds-space-xl);
  padding: var(--tds-space-xl);
  border: 1px solid var(--tower-shell-border);
  border-radius: var(--tds-radius-hero);
  background: var(--tower-shell-card);
  box-shadow: var(--tower-shell-card-shadow);
  color: var(--tower-content-text);
  font-size: var(--tds-body-size);
}
.tds-auth-card .tds-button {
  min-height: 44px;
}
.tds-auth-footer {
  margin-top: var(--tds-space-lg);
  color: var(--tower-shell-muted);
  font-size: var(--tds-text-caption);
}
.tds-auth-divider {
  display: flex;
  align-items: center;
  gap: var(--tds-space-md);
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-auth-divider::before,
.tds-auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--tower-content-border);
}
@media (max-width: 1000px) {
  .tds-auth-visual {
    display: none;
  }
  .tds-auth {
    padding: var(--tds-space-md);
  }
  .tds-auth-title {
    font-size: var(--tds-text-metric);
  }
}
@media (prefers-reduced-motion: reduce) {
  .tds-skeleton,
  .tds-loading-bar > span,
  .tds-spin {
    animation: none;
  }
}
.tds-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--tds-space-sm);
  padding: var(--tds-space-sm) var(--tds-space-md);
  border: 1px solid var(--badge-border);
  border-radius: var(--tds-radius-control);
  background: var(--badge-bg);
  color: var(--tower-content-text);
  font-size: var(--tds-text-caption);
}
.tds-alert > .tds-icon {
  margin-top: 2px;
  color: var(--badge-text);
}
.tds-alert-body {
  display: grid;
  flex: 1;
  gap: 2px;
}
.tds-alert-body strong {
  font-size: var(--tds-body-size);
}

/* ── Column resizing and virtual rows ──────────────────────────────────── */
.tds-resize-handle {
  position: absolute;
  top: 0;
  right: -4px;
  z-index: 2;
  width: 8px;
  height: 100%;
  cursor: col-resize;
  touch-action: none;
  outline: none;
}
.tds-resize-handle::after {
  content: "";
  position: absolute;
  top: 25%;
  bottom: 25%;
  left: 3px;
  width: 2px;
  border-radius: 1px;
  background: transparent;
  transition: background-color var(--tds-motion-fast);
}
th:hover > .tds-resize-handle::after {
  background: var(--tower-content-border-strong);
}
.tds-resize-handle:focus-visible::after,
.tds-resize-handle[data-dragging]::after {
  top: 0;
  bottom: 0;
  background: var(--tower-content-focus);
}
.tds-analytical-scroll[data-resizing] {
  cursor: col-resize;
  user-select: none;
}
.tds-analytical-table .tds-virtual-anchor {
  height: 0;
}
.tds-analytical-table .tds-virtual-spacer td {
  padding: 0;
  border: 0;
  background: transparent;
}
/* Virtual rows keep a fixed height; content stays on its lines instead of growing the row. */
.tds-analytical-table[data-virtual] tbody td {
  height: auto;
  overflow: hidden;
  white-space: nowrap;
}

/* ── Date range picker ─────────────────────────────────────────────────── */
.tds-date-trigger {
  min-width: var(--tds-calendar-trigger);
  max-width: none;
  font-variant-numeric: tabular-nums;
}
.tds-date-panel {
  z-index: var(--tds-layer-popover);
  max-width: calc(100vw - 2 * var(--tds-space-sm));
  max-height: var(--radix-popover-content-available-height);
  overflow: auto;
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-panel);
  background: var(--tower-content-surface);
  box-shadow: var(--tower-content-dropdown-shadow);
}
.tds-date-body {
  display: flex;
}
.tds-date-rail {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: 2px;
  width: var(--tds-calendar-rail);
  padding: var(--tds-space-sm);
  border-right: 1px solid var(--tower-content-border);
  background: var(--tower-content-surface-subtle);
}
.tds-date-preset {
  min-height: calc(var(--tds-calendar-cell-height) - var(--tds-space-xs));
  padding: 0 var(--tds-space-sm);
  border: 0;
  border-radius: var(--tds-radius-control);
  background: transparent;
  color: var(--tower-content-text-secondary);
  text-align: left;
  cursor: pointer;
}
.tds-date-preset:hover:not(:disabled) {
  background: var(--tower-content-hover);
  color: var(--tower-content-text);
}
.tds-date-preset[aria-pressed="true"] {
  background: var(--tower-content-surface);
  color: var(--tower-content-text);
  font-weight: 600;
  box-shadow: inset 2px 0 var(--tower-content-action);
}
.tds-date-preset:disabled {
  color: var(--tower-content-placeholder);
  cursor: not-allowed;
}
.tds-date-months {
  display: flex;
}
.tds-calendar {
  padding: var(--tds-space-xs) var(--tds-space-md) var(--tds-space-md);
}
.tds-calendar + .tds-calendar {
  border-left: 1px solid var(--tower-content-border);
}
.tds-calendar-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: var(--tds-control-height);
}
.tds-calendar-navs {
  display: flex;
}
.tds-calendar-navs:last-child {
  justify-content: flex-end;
}
.tds-calendar-title {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.tds-calendar-nav {
  display: inline-grid;
  place-items: center;
  width: calc(var(--tds-calendar-cell-height) - var(--tds-space-xs));
  height: calc(var(--tds-calendar-cell-height) - var(--tds-space-xs));
  border: 0;
  border-radius: var(--tds-radius-control);
  background: transparent;
  color: var(--tower-content-text-secondary);
  cursor: pointer;
}
.tds-calendar-nav svg {
  width: var(--tds-icon-md);
  height: var(--tds-icon-md);
}
.tds-calendar-nav:hover:not(:disabled) {
  background: var(--tower-content-hover);
  color: var(--tower-content-text);
}
.tds-calendar-nav:disabled {
  color: var(--tower-content-placeholder);
  cursor: not-allowed;
}
.tds-calendar-grid {
  border-collapse: separate;
  border-spacing: 0 2px;
  table-layout: fixed;
}
.tds-calendar-grid th {
  width: var(--tds-calendar-cell-width);
  padding: var(--tds-space-xs) 0;
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
  font-weight: 400;
}
.tds-calendar-day,
.tds-calendar-empty {
  width: var(--tds-calendar-cell-width);
  height: var(--tds-calendar-cell-height);
  padding: 0;
  text-align: center;
}
.tds-calendar-day {
  position: relative;
  outline: none;
  cursor: pointer;
  font-variant-numeric: tabular-nums;
}
.tds-calendar-day > span {
  position: relative;
  z-index: 1;
  display: inline-grid;
  place-items: center;
  width: calc(var(--tds-calendar-cell-height) - var(--tds-space-xs));
  height: calc(var(--tds-calendar-cell-height) - var(--tds-space-xs));
  border-radius: 50%;
  color: var(--tower-content-text-secondary);
  transition: background-color var(--tds-motion-fast) var(--tds-ease-standard),
    color var(--tds-motion-fast) var(--tds-ease-standard);
}
.tds-calendar-day:hover > span {
  background: var(--tower-content-hover);
  color: var(--tower-content-text);
}
/* The range is a continuous band; the ends are filled circles sitting on half a band. */
.tds-calendar-day:is(.is-inside, .is-start, .is-end)::before {
  position: absolute;
  inset: 2px 0;
  content: "";
  background: var(--tower-content-action-soft);
}
.tds-calendar-day.is-start::before {
  left: 50%;
}
.tds-calendar-day.is-end::before {
  right: 50%;
}
.tds-calendar-day.is-start.is-end::before {
  display: none;
}
/* While the end is still being chosen, the band is only an outline. */
.tds-calendar-day.is-preview::before {
  border-block: 1px dashed var(--tower-content-border-strong);
  background: transparent;
}
.tds-calendar-day.is-inside > span {
  color: var(--tower-content-text);
}
.tds-calendar-day:is(.is-start, .is-end) > span {
  background: var(--tower-content-action);
  color: var(--tower-content-text-inverse);
  font-weight: 600;
}
.tds-calendar-day[aria-current="date"] > span::after {
  position: absolute;
  bottom: 2px;
  left: calc(50% - 2px);
  width: var(--tds-space-xs);
  height: var(--tds-space-xs);
  border-radius: 50%;
  content: "";
  background: currentColor;
}
.tds-calendar-day[aria-disabled] {
  cursor: not-allowed;
}
.tds-calendar-day[aria-disabled] > span {
  background: none;
  color: var(--tower-content-placeholder);
}
.tds-calendar-day:focus-visible > span {
  box-shadow: 0 0 0 2px var(--tower-content-surface), 0 0 0 4px var(--tower-content-focus);
}
.tds-date-footer {
  display: flex;
  align-items: center;
  gap: var(--tds-space-md);
  min-height: var(--tds-bar-toolbar);
  padding: 0 var(--tds-space-md);
  border-top: 1px solid var(--tower-content-border);
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-date-footer > span {
  flex: 1;
  min-width: 0;
  font-variant-numeric: tabular-nums;
}
/* Phones: one month, quick ranges wrap above it. */
@media (max-width: 479px) {
  .tds-date-body {
    flex-direction: column;
  }
  .tds-date-rail {
    flex-direction: row;
    flex-wrap: wrap;
    width: auto;
    border-right: 0;
    border-bottom: 1px solid var(--tower-content-border);
  }
}

/* ── Import drawer and task center ─────────────────────────────────────── */
.tds-drawer--narrow {
  width: min(var(--tds-drawer-narrow-width), 100vw);
}
.tds-import {
  display: grid;
  gap: var(--tds-space-lg);
}
.tds-import-footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--tds-space-sm);
}
.tds-import-rules {
  display: grid;
  justify-items: start;
  gap: var(--tds-space-sm);
  padding: var(--tds-space-md);
  border-radius: var(--tds-radius-control);
  background: var(--tower-content-surface-subtle);
}
.tds-import-rules ul {
  margin: 0;
  padding-left: var(--tds-space-lg);
  color: var(--tower-content-text-secondary);
  font-size: var(--tds-text-caption);
  line-height: 1.7;
}
.tds-dropzone {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: var(--tds-space-xs);
  min-height: var(--tds-dropzone-min-height);
  padding: var(--tds-space-lg);
  border: 1px dashed var(--tower-content-border-strong);
  border-radius: var(--tds-radius-panel);
  text-align: center;
  transition: border-color var(--tds-motion-fast) var(--tds-ease-standard),
    background-color var(--tds-motion-fast) var(--tds-ease-standard);
}
.tds-dropzone[data-dragging] {
  border-color: var(--tower-content-focus);
  background: var(--tower-content-info-soft);
}
.tds-dropzone p {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0;
}
.tds-dropzone > span {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-dropzone-icon {
  width: var(--tds-icon-lg);
  height: var(--tds-icon-lg);
  color: var(--tower-content-text-muted);
}
.tds-button.tds-dropzone-pick {
  padding: 0 var(--tds-space-xs);
  color: var(--tower-content-info);
}
.tds-file-card {
  display: flex;
  align-items: center;
  gap: var(--tds-space-md);
  padding: var(--tds-space-sm) var(--tds-space-md);
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
}
.tds-file-icon {
  flex: none;
  width: var(--tds-icon-lg);
  height: var(--tds-icon-lg);
  color: var(--tower-content-success);
}
.tds-file-meta {
  display: grid;
  flex: 1;
  min-width: 0;
}
.tds-file-meta strong {
  overflow: hidden;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-file-meta span {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-progress {
  display: grid;
  gap: var(--tds-space-xs);
}
.tds-progress-text {
  display: flex;
  justify-content: space-between;
  gap: var(--tds-space-sm);
  color: var(--tower-content-text-secondary);
  font-size: var(--tds-text-caption);
  font-variant-numeric: tabular-nums;
}
.tds-progress-track {
  height: var(--tds-space-xs);
  overflow: hidden;
  border-radius: var(--tds-radius-inner);
  background: var(--tower-content-border);
}
.tds-progress-track > span {
  display: block;
  height: 100%;
  background: var(--tower-content-info);
  transition: width var(--tds-motion-base) var(--tds-ease-standard);
}
.tds-import-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
}
.tds-import-stats > div {
  padding: var(--tds-space-sm) var(--tds-space-md);
}
.tds-import-stats > div + div {
  border-left: 1px solid var(--tower-content-border);
}
.tds-import-stats dt {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-import-stats dd {
  margin: 0;
  font-size: var(--tds-text-title);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.tds-import-stats .is-success dd {
  color: var(--tower-content-success);
}
.tds-import-stats .is-danger dd {
  color: var(--tower-content-danger);
}
.tds-import-issues {
  display: grid;
  gap: var(--tds-space-sm);
}
.tds-import-issues-title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--tds-space-sm);
}
.tds-import-issues-title span {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-import-issues .tds-table-scroll {
  border: 1px solid var(--tower-content-border);
  border-radius: var(--tds-radius-control);
}
.tds-task-trigger {
  position: relative;
}
.tds-task-badge {
  position: absolute;
  top: 1px;
  right: 1px;
  min-width: var(--tds-space-lg);
  padding: 0 var(--tds-space-xs);
  border-radius: var(--tds-space-sm);
  background: var(--tower-content-info);
  color: var(--tower-content-text-inverse);
  font-size: 11px;
  font-weight: 600;
  line-height: var(--tds-space-lg);
  text-align: center;
}
.tds-task-panel {
  display: flex;
  flex-direction: column;
  width: var(--tds-task-panel-width);
  max-height: min(380px, var(--radix-popover-content-available-height));
  padding: 0;
}
/* Focus lands on the panel when it opens; it sits beside its trigger, so no ring. */
.tds-task-panel:focus {
  outline: none;
}
.tds-task-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: none;
  min-height: var(--tds-bar-toolbar);
  padding: 0 var(--tds-space-md);
  border-bottom: 1px solid var(--tower-content-border);
}
.tds-task-empty {
  margin: 0;
  padding: var(--tds-space-xl) var(--tds-space-lg);
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
  text-align: center;
}
.tds-task-list {
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}
.tds-task {
  display: flex;
  align-items: flex-start;
  gap: var(--tds-space-sm);
  padding: var(--tds-space-sm) var(--tds-space-md);
}
.tds-task + .tds-task {
  border-top: 1px solid var(--tower-content-border);
}
.tds-task-icon svg {
  width: var(--tds-icon-md);
  height: var(--tds-icon-md);
  margin-top: 2px;
}
.tds-task--queued .tds-task-icon {
  color: var(--tower-content-text-muted);
}
.tds-task--running .tds-task-icon {
  color: var(--tower-content-info);
}
.tds-task--running .tds-task-icon svg {
  animation: tds-spin 1s linear infinite;
}
.tds-task--success .tds-task-icon {
  color: var(--tower-content-success);
}
.tds-task--failed .tds-task-icon,
.tds-task--failed .tds-task-meta {
  color: var(--tower-content-danger);
}
.tds-task-body {
  display: grid;
  flex: 1;
  gap: 2px;
  min-width: 0;
}
.tds-task-body strong {
  overflow: hidden;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tds-task-meta {
  color: var(--tower-content-text-muted);
  font-size: var(--tds-text-caption);
}
.tds-task-actions {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--tds-space-xs);
}

/* ── Motion ────────────────────────────────────────────────────────────────
 * fast (120ms): hover, press, focus, chevrons, popover enter.
 * base (200ms): fades between panels, overlays, refresh dimming.
 * slow (300ms): drawers. Data values themselves are never animated.
 * Exit is shorter than enter so dismissals feel immediate.
 */
@keyframes tds-pop-in {
  from {
    opacity: 0;
    transform: translate(var(--tds-pop-x, 0), var(--tds-pop-y, 0)) scale(0.98);
  }
}
@keyframes tds-pop-out {
  to {
    opacity: 0;
    transform: translate(var(--tds-pop-x, 0), var(--tds-pop-y, 0)) scale(0.98);
  }
}
@keyframes tds-fade-in {
  from {
    opacity: 0;
  }
}
@keyframes tds-fade-out {
  to {
    opacity: 0;
  }
}
@keyframes tds-drawer-in {
  from {
    transform: translateX(100%);
  }
}
@keyframes tds-drawer-out {
  to {
    transform: translateX(100%);
  }
}
/* Popovers travel from their trigger side. */
:is(.tds-popover, .tds-menu, .tds-select-panel, .tds-date-panel, .tds-tooltip)[data-side="bottom"] {
  --tds-pop-y: calc(var(--tds-motion-offset) * -1);
}
:is(.tds-popover, .tds-menu, .tds-select-panel, .tds-date-panel, .tds-tooltip)[data-side="top"] {
  --tds-pop-y: var(--tds-motion-offset);
}
:is(.tds-popover, .tds-menu, .tds-select-panel, .tds-date-panel, .tds-tooltip)[data-side="left"] {
  --tds-pop-x: var(--tds-motion-offset);
}
:is(.tds-popover, .tds-menu, .tds-select-panel, .tds-date-panel, .tds-tooltip)[data-side="right"] {
  --tds-pop-x: calc(var(--tds-motion-offset) * -1);
}
.tds-popover,
.tds-select-panel,
.tds-date-panel {
  transform-origin: var(--radix-popover-content-transform-origin);
}
.tds-menu {
  transform-origin: var(--radix-dropdown-menu-content-transform-origin);
}
.tds-tooltip {
  transform-origin: var(--radix-tooltip-content-transform-origin);
}
:is(.tds-popover, .tds-menu, .tds-select-panel, .tds-date-panel)[data-state="open"],
.tds-tooltip:is([data-state="delayed-open"], [data-state="instant-open"]) {
  animation: tds-pop-in var(--tds-motion-fast) var(--tds-ease-enter);
}
:is(.tds-popover, .tds-menu, .tds-select-panel, .tds-date-panel, .tds-tooltip)[data-state="closed"] {
  animation: tds-pop-out calc(var(--tds-motion-fast) * 0.75) var(--tds-ease-exit) forwards;
}
.tds-overlay[data-state="open"] {
  animation: tds-fade-in var(--tds-motion-base) var(--tds-ease-standard);
}
.tds-overlay[data-state="closed"] {
  animation: tds-fade-out var(--tds-motion-base) var(--tds-ease-exit) forwards;
}
.tds-drawer[data-state="open"] {
  animation: tds-drawer-in var(--tds-motion-slow) var(--tds-ease-drawer);
}
.tds-drawer[data-state="closed"] {
  animation: tds-drawer-out var(--tds-motion-base) var(--tds-ease-exit) forwards;
}
/* Switching panels fades only; sliding content would read as navigation. */
.tds-tab-panel[data-state="active"] {
  animation: tds-fade-in var(--tds-motion-base) var(--tds-ease-standard);
}
.tds-analytical-table tbody tr td,
.tds-table tbody tr,
.tds-tab,
.tds-segments button,
.tds-option,
.tds-check-row,
.tds-page-button {
  transition: background-color var(--tds-motion-fast) var(--tds-ease-standard),
    color var(--tds-motion-fast) var(--tds-ease-standard),
    border-color var(--tds-motion-fast) var(--tds-ease-standard);
}

/* Reduced motion: every transition and animation becomes instant (end states only). */
@media (prefers-reduced-motion: reduce) {
  :is(.tds-content, .tds-layer, .tds-shell, .tds-auth),
  :is(.tds-content, .tds-layer, .tds-shell, .tds-auth) *,
  :is(.tds-content, .tds-layer, .tds-shell, .tds-auth) *::before,
  :is(.tds-content, .tds-layer, .tds-shell, .tds-auth) *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
