/* -------------------------------------------------
   Filters toolbar: compact, single-row on wide,
   wraps gracefully on small screens
-------------------------------------------------- */
.dashboard-filters.toolbar {
  margin-bottom: 1.2rem;
  flex-wrap: wrap;
  gap: .5rem;
}

.dashboard-filters .input-group > .form-control,
.dashboard-filters .input-group > .form-select,
.dashboard-filters .input-group > .input-group-text {
  height: 2rem;                 /* align with btn-sm */
  padding: .25rem .5rem;
  font-size: .875rem;
  line-height: 1.2;
}

.dashboard-filters .date-range { min-width: 280px; max-width: 360px; }
.dashboard-filters .testid     { min-width: 180px; max-width: 240px; }
.dashboard-filters .input-group { min-width: 160px; }

.dashboard-filters .actions .btn { white-space: nowrap; }

@media (max-width: 768px) {
  .dashboard-filters .input-group,
  .dashboard-filters .actions {
    flex: 1 1 100%;
  }
  .dashboard-filters .date-range { min-width: 100%; max-width: 100%; }
}

/* -------------------------------------------------
   Table: compact, wrapping text, limited widths
-------------------------------------------------- */
.dashboard-table { font-size: .9rem; }

/* Let text wrap nicely; avoid horizontal scroll where possible */
.dashboard-table th,
.dashboard-table td {
  vertical-align: middle !important;
  white-space: normal;           /* allow wrapping */
  overflow-wrap: anywhere;       /* break long tokens */
  word-break: break-word;        /* wrap aggressive if needed */
}

/* Slightly smaller badges to save space */
.badge.badge-sm { font-size: .7rem; padding: .35em .5em; }

/* Column width guidance (tune as needed) */
.col-test      { width: 55%; max-width: 52ch; }
.col-createdby { width: 30%; max-width: 40ch; }
.col-status    { width: 15%; max-width: 16ch; }

/* On very narrow screens, let columns flex but still wrap */
@media (max-width: 576px) {
  .col-test      { width: 55%; }
  .col-createdby { width: 30%; }
  .col-status    { width: 15%; }
}

/* Row hover affordance */
.dashboard-row { cursor: pointer; }

/* Optional: truncate extreme cases while still wrapping generally
   (enable only if you still see horizontal scroll with pathological strings)
*/
/*
.dashboard-table { table-layout: fixed; }
.dashboard-table td, .dashboard-table th { text-overflow: ellipsis; }
*/
