/* ==========================================================================
   Trash page list chrome, retention, bulk actions.
   Owning feature: trash
   Load order is defined in Views/Shared/_CssIncludes.cshtml — do not reorder.
   ========================================================================== */

/* ==========================================================================
   Trash page (PLAN §2.5) — list chrome aligned with Search/Recent
   ========================================================================== */

.fh-trash-container {
  min-width: 0;
}

/* Trash title cluster — hero-page treatment (matches Home): a larger title
   with tighter tracking anchors the header band, the count chip rides inline
   beside it, and the retention subtitle reads as quiet supporting copy under
   both. The gap above the subtitle is widened so title and description read
   as one hierarchy rather than two glued lines. */
.fh-trash-container .fh-page-title-cluster {
  gap: 0.35rem;
}
.fh-trash-container .fh-page-title {
  font-size: var(--fh-text-4xl);
  letter-spacing: var(--fh-tracking-tighter);
}
.fh-trash-container .fh-page-subtitle {
  max-width: 44rem;
}
/* Keep the app-wide title step-down on phones (2xl below 576px) — the
   higher-specificity rule above would otherwise hold 4xl through mobile. */
@media (max-width: 575.98px) {
  .fh-trash-container .fh-page-title {
    font-size: var(--fh-text-2xl);
  }
}

/* Problems / restore-decision cards */
.fh-trash-problems-card {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 0.65rem;
  padding: 0.75rem 1rem;
  margin-inline: var(--fh-head-inset, 0.25rem);
}
.fh-trash-problems-header {
  font-size: var(--fh-text-sm);
  font-weight: var(--fh-weight-semibold);
  color: #92400e;
  margin-bottom: 0.5rem;
}
.fh-trash-problems-list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.fh-trash-problem-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  background: #ffffff;
  border: 1px solid #fef3c7;
  border-radius: 0.5rem;
  padding: 0.4rem 0.65rem;
  font-size: var(--fh-text-sm);
  flex-wrap: wrap;
}
.fh-trash-problem-info {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 12rem;
}
.fh-trash-decision-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.fh-trash-container .fh-list-card tbody tr[data-batch-id] {
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  transition: background-color 0.15s ease;
}

/* Adaptive toolbar batch buttons — the selected-state group (Restore (n) /
   Delete permanently (n)) gets a touch of elevation so it reads as primary. */
.fh-trash-actions .btn-primary {
  box-shadow: 0 1px 2px rgba(37, 99, 235, 0.25);
}
.fh-trash-actions .btn-danger {
  box-shadow: 0 1px 2px rgba(220, 38, 38, 0.2);
}

/* Scope segmented control uses <a class="btn"> — keep icon links flush and
   undecorated like Browse's button toggles. */
.fh-trash-toolbar .fh-view-toggle a.btn {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.1rem;
}

/* Stacked name + original path (drops the dedicated location column) */
.fh-trash-name-cell {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-width: 0;
}
/* Type-icon tile — soft rounded square in the same badge/chip family as the
   empty-state icon and dialog icons. */
.fh-trash-item-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  flex-shrink: 0;
  margin-top: 0.05rem;
  border-radius: 0.6rem;
  background: var(--fh-hover, #f1f5f9);
  color: var(--fh-muted, #6b7280);
  font-size: var(--fh-text-lg);
}
.fh-trash-item-tile--folder {
  background: rgba(var(--fh-warning-rgb, 217, 119, 6), 0.12);
  color: var(--fh-warning, #d97706);
}
.fh-trash-name-stack {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.fh-trash-item-name {
  font-weight: var(--fh-weight-semibold);
  color: var(--fh-text);
  word-break: break-word;
  line-height: 1.35;
}
.fh-trash-item-path {
  font-size: var(--fh-text-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(100%, 28rem);
}
@media (min-width: 1920px) and (max-width: 2559.98px) {
  .fh-trash-item-path { max-width: min(100%, 48rem); }
}
@media (min-width: 2560px) {
  .fh-trash-item-path { max-width: min(100%, 64rem); }
}
.fh-trash-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.15rem;
}
.fh-trash-col-days {
  width: 6.5rem;
  white-space: nowrap;
}

/* Days-left urgency ramp — neutral → amber → red as retention nears expiry. */
.fh-trash-days {
  font-weight: var(--fh-weight-semibold);
  font-size: var(--fh-text-xs);
  letter-spacing: var(--fh-tracking-wide);
  padding: 0.28rem 0.65rem;
  border: 1px solid transparent;
}
.fh-trash-days.is-ok {
  background: var(--fh-soft);
  color: var(--fh-muted);
  border-color: var(--fh-border);
}
.fh-trash-days.is-warn {
  background: #fffbeb;
  color: #92400e;
  border-color: #fde68a;
}
.fh-trash-days.is-critical {
  background: #fef2f2;
  color: #b91c1c;
  border-color: #fecaca;
}
.fh-trash-days.is-expired {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
}

/* Busy indicator — floating pill pinned top-centre, above the sticky
   .fh-content-head (z-index 1020) so it stays visible over any page
   element while a trash action posts. Shown by trash.js on submit. */
.fh-trash-busy {
  position: fixed;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2000;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: var(--fh-text, #0f172a);
  color: #fff;
  font-size: var(--fh-text-sm);
  font-weight: var(--fh-weight-medium, 500);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.25);
}

/* Pagination */
.fh-trash-pagination {
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--fh-border);
  background: var(--fh-soft);
  display: flex;
  justify-content: flex-end;
}

/* Mobile: keep select + name/path + days-left + actions */
@media (max-width: 767.98px) {
  .fh-trash-col-size,
  .fh-trash-col-uploader,
  .fh-trash-col-deleted {
    display: none !important;
  }
  .fh-trash-item-path {
    max-width: 100%;
  }
}

/* Helper button (bulk-problem inline actions) */
.btn-xs {
  padding: 0.2rem 0.45rem;
  font-size: var(--fh-text-xs);
  border-radius: 0.35rem;
}

