/* Inbox page styles */

@import "/styles/list-states.wxss";
@import "/styles/top-toolbar.wxss";

.page-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  background-color: var(--color-bg);
}

/* Toolbar: workspace context (left) + current Onboard view switcher (right).
 * The trigger sizes to its content (avatar + workspace name + status dot)
 * so the hover background and tap area match the visible label, not the
 * whole toolbar slot. Parent .top-toolbar--split pushes the segmented
 * control to the right via space-between, so we don't need flex:1 here. */
.toolbar__btn {
  display: flex;
  align-items: center;
  height: 56rpx;
  padding: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-muted-fg);
  min-width: 0;
  flex-shrink: 1;
}

.toolbar__btn--ghost {
  background: transparent;
  color: var(--color-muted-fg);
}

.toolbar__btn--hover {
  background: var(--color-muted);
  color: var(--color-fg);
}

.toolbar__btn-label {
  font-size: 26rpx;
  font-weight: var(--font-medium);
  min-width: 0;
  max-width: 60vw;
  margin-left: var(--space-1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.toolbar__avatar {
  width: 48rpx;
  height: 48rpx;
  border-radius: var(--radius-pill);
  background: var(--color-avatar-human);
  color: var(--color-avatar-fg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  box-shadow: inset 0 0 0 1rpx var(--color-border-subtle);
}

.toolbar__avatar-img {
  width: 100%;
  height: 100%;
  display: block;
}

.toolbar__avatar-initials {
  font-size: 20rpx;
  font-weight: var(--font-semibold);
  line-height: 1;
}

.toolbar__avatar-placeholder {
  width: 20rpx;
  height: 20rpx;
  border-radius: var(--radius-pill);
  background: var(--color-muted-fg);
  opacity: 0.45;
}

/* Workspace freshness dot — color reflects cache age */
.toolbar__status-dot {
  width: 10rpx;
  height: 10rpx;
  border-radius: 50%;
  margin-left: var(--space-1);
  flex-shrink: 0;
}

.toolbar__status-dot--fresh {
  background: var(--color-success);
}

.toolbar__status-dot--aging {
  background: var(--color-warning);
}

.toolbar__status-dot--stale {
  background: var(--color-destructive);
}

.toolbar__status-dot--unknown {
  background: var(--color-muted-fg);
}

.onboard-shell {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.workspace-switcher-host[hidden] {
  display: none;
}

.list-state--centered.first-run {
  padding-bottom: 160rpx;
}

.first-run__icon {
  color: var(--color-muted-fg);
}

.first-run__scan {
  width: 320rpx;
  height: 80rpx;
  margin: var(--space-4) 0 0;
  padding: 0 var(--space-4);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  border-radius: var(--radius-md);
  color: var(--color-primary-fg);
  background: var(--color-primary);
  font-size: var(--text-base);
  font-weight: var(--font-medium);
  line-height: 80rpx;
  box-sizing: border-box;
}

.first-run__scan::after {
  border: 0;
}

.first-run__scan-icon {
  color: currentColor;
}

.first-run__scan--hover {
  opacity: 0.8;
}

.first-run__scan--disabled {
  opacity: 0.5;
}

.first-run__hint {
  margin-top: var(--space-3);
  color: var(--color-subtle-fg);
}

.onboard-tabs {
  width: auto;
  gap: 6rpx;
  flex-shrink: 0;
}

.onboard-tab {
  flex: 0 0 80rpx;
  width: 80rpx;
  padding: 0;
}

.inbox-list,
.directory-view,
.onboard-list,
.workspace-tasks,
.workspace-tasks__list {
  flex: 1;
  min-height: 0;
}

.inbox-classifications {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  overflow-x: auto;
  flex-shrink: 0;
  box-sizing: border-box;
}

.inbox-classification {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-height: 48rpx;
  padding: 0 var(--space-3);
  border: 1rpx solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-muted-fg);
  background: var(--color-bg);
  font-size: var(--text-sm);
  white-space: nowrap;
  box-sizing: border-box;
}

.inbox-classification radio {
  display: none;
}

.inbox-classification--active {
  color: var(--color-primary-fg);
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.workspace-tasks {
  display: flex;
  flex-direction: column;
}

.workspace-tasks__query-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4) var(--space-2);
  flex-shrink: 0;
}

.onboard-search.workspace-tasks__search {
  flex: 1;
  min-width: 0;
  margin: 0;
}

.workspace-tasks__filter-trigger {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-height: 64rpx;
  padding: 0 var(--space-3);
  border: 1rpx solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-muted-fg);
  background: var(--color-bg);
  font-size: var(--text-sm);
  flex-shrink: 0;
  box-sizing: border-box;
}

.workspace-tasks__filter-trigger--active {
  color: var(--color-info);
  border-color: var(--color-info);
  background: var(--color-accent);
}

.workspace-tasks__filter-trigger--hover {
  opacity: 0.72;
}

.workspace-tasks__filter-badge {
  min-width: 28rpx;
  height: 28rpx;
  padding: 0 6rpx;
  border-radius: var(--radius-pill);
  color: var(--color-primary-fg);
  background: var(--color-primary);
  font-size: var(--text-xs);
  line-height: 28rpx;
  text-align: center;
  box-sizing: border-box;
}

.workspace-tasks__chip {
  display: inline-flex;
  align-items: center;
  height: 48rpx;
  padding: 0 var(--space-3);
  border: 1rpx solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-muted-fg);
  background: var(--color-bg);
  font-size: var(--text-sm);
  box-sizing: border-box;
}

.workspace-tasks__chip--active {
  color: var(--color-primary-fg);
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.workspace-task-filter-sheet {
  position: fixed;
  inset: 0;
  z-index: 34;
  pointer-events: auto;
}

.workspace-task-filter-sheet__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.18);
}

.workspace-task-filter-sheet__panel {
  --sheet-gutter: var(--space-4);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: 65vh;
  display: flex;
  flex-direction: column;
  background-color: var(--color-card);
  border-top: 1rpx solid var(--color-border);
  border-top-left-radius: var(--radius-xl);
  border-top-right-radius: var(--radius-xl);
  overflow: hidden;
}

.workspace-task-filter-sheet__reset {
  padding: var(--space-2);
  color: var(--color-info);
  font-size: var(--text-sm);
}

.workspace-task-filter-sheet__body {
  flex: 1;
  min-height: 0;
  box-sizing: border-box;
}

.workspace-task-filter-sheet__section {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1rpx solid var(--color-border-subtle);
}

.workspace-task-filter-sheet__section:last-child {
  border-bottom: none;
}

.workspace-task-filter-sheet__section-title {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-muted-fg);
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
}

.workspace-task-filter-sheet__options {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.workspace-task-filter-sheet__footer {
  padding: var(--space-2) var(--space-4)
    calc(var(--space-3) + env(safe-area-inset-bottom));
  border-top: 1rpx solid var(--color-border-subtle);
  flex-shrink: 0;
}

.workspace-task-filter-sheet__apply {
  width: 100%;
  min-height: 72rpx;
  margin: 0;
  color: var(--color-primary-fg);
  background: var(--color-primary);
  border-radius: var(--radius-md);
  font-size: var(--text-base);
  font-weight: var(--font-semibold);
}

.workspace-tasks__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52rpx;
  padding: 0 var(--space-4);
  flex-shrink: 0;
}

.workspace-tasks__count {
  color: var(--color-muted-fg);
  font-size: var(--text-xs);
}

.workspace-tasks__clear {
  color: var(--color-info);
  font-size: var(--text-sm);
}

.workspace-tasks__state-text {
  padding-top: var(--space-3);
  color: var(--color-muted-fg);
  font-size: var(--text-sm);
  text-align: center;
}

.workspace-tasks__group {
  border-bottom: 1rpx solid var(--color-border-subtle);
}

.workspace-tasks__group:last-child {
  border-bottom: none;
}

.workspace-tasks__group-header {
  position: sticky;
  top: 0;
  z-index: 1;
}

.workspace-tasks__channel-icon {
  color: var(--color-muted-fg);
}

.workspace-task-row {
  padding: var(--space-2) var(--space-4) var(--space-3);
  background: var(--color-bg);
}

.workspace-task-row--hover {
  background: var(--color-muted);
}

.workspace-task-row__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.workspace-task-row__status {
  flex-shrink: 0;
  padding: 4rpx 10rpx;
  border-radius: var(--radius-pill);
  background: var(--color-muted);
  color: var(--color-muted-fg);
  font-size: var(--text-xs);
}

.workspace-task-row__status--in_progress,
.workspace-task-row__status--in_review {
  color: var(--color-info);
}

.workspace-task-row__status--done {
  color: var(--color-success);
}

.workspace-task-row__ref {
  flex-shrink: 0;
  color: var(--color-muted-fg);
  font-size: var(--text-sm);
}

.workspace-task-row__title {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  color: var(--color-fg);
  font-size: var(--text-base);
  font-weight: var(--font-medium);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-task-row__meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-1);
  padding-left: var(--space-1);
  overflow: hidden;
  color: var(--color-muted-fg);
  font-size: var(--text-xs);
  white-space: nowrap;
}

.workspace-task-row__channel {
  flex-shrink: 0;
}

.workspace-task-row__tag {
  flex-shrink: 0;
  padding: 2rpx 8rpx;
  border-radius: var(--radius-pill);
  background: var(--color-muted);
}

.workspace-task-row__agent {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.directory-view {
  display: flex;
  flex-direction: column;
}

.onboard-search {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-2) var(--space-4);
  padding: 0 var(--space-3);
  height: 64rpx;
  background: var(--color-muted);
  border-radius: var(--radius-pill);
  box-sizing: border-box;
  flex-shrink: 0;
}

.onboard-search--section {
  margin-top: 0;
}

.onboard-search__icon,
.onboard-search__clear {
  color: var(--color-muted-fg);
}

.onboard-search__input {
  flex: 1;
  min-width: 0;
  height: 100%;
  font-size: var(--text-base);
  color: var(--color-fg);
}

.onboard-search__placeholder {
  color: var(--color-placeholder);
  font-size: var(--text-base);
}

.directory-loading {
  flex: 1;
  min-height: 0;
}

.directory-section {
  padding-bottom: var(--space-1);
  border-bottom: 1rpx solid var(--color-border-subtle);
}

.directory-section:last-child {
  border-bottom: none;
}

.directory-empty {
  padding: var(--space-4);
  color: var(--color-muted-fg);
  font-size: var(--text-sm);
  text-align: center;
}

.row.directory-row {
  min-height: 72rpx;
  padding-top: var(--space-1);
  padding-bottom: var(--space-1);
  gap: var(--space-2);
}

.directory-row .row__icon-wrap {
  width: 40rpx;
  height: 40rpx;
}

.directory-row .row__icon {
  width: 30rpx;
  height: 30rpx;
}

.directory-row--disabled {
  opacity: 0.58;
}

.directory-row__avatar {
  width: 40rpx;
  height: 40rpx;
  border-radius: var(--radius-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-avatar-fg);
  font-size: 18rpx;
  font-weight: var(--font-semibold);
  overflow: hidden;
}

.directory-row__avatar-img {
  width: 100%;
  height: 100%;
  display: block;
}

.directory-row__avatar-text {
  line-height: 1;
}

.directory-row__avatar--team {
  background: var(--color-avatar-service);
}

.directory-row__avatar--agent {
  background: var(--color-avatar-agent);
}

.directory-row__avatar--human {
  background: var(--color-avatar-human);
}

.directory-row__presence {
  width: 14rpx;
  height: 14rpx;
  border-radius: var(--radius-pill);
  flex-shrink: 0;
  background: #9ca3af;
}

.directory-row__presence--idle {
  background: #22c55e;
}

.directory-row__presence--busy {
  background: #f59e0b;
}

.directory-row__presence--offline {
  background: #9ca3af;
}

/* Load-more footer — breathing dots (loading-dots component) centered on a
 * short gutter so the user sees feedback when scroll-to-bottom fires
 * onLoadMore. */
.inbox-list__more {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3) var(--space-4) var(--space-5);
}

/* Section header — mirrors web's SidebarSectionHeader rhythm: small label
 * + count chip, gutter-aligned with the rows below. Only the pinned
 * section shows when both groups exist; a flat inbox stays header-free. */
.section-header {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4) var(--space-1);
  background: var(--color-bg);
}

.section-header__label {
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
  color: var(--color-muted-fg);
  line-height: 1;
}

.section-header__count {
  font-size: var(--text-xs);
  color: var(--color-muted-fg);
  line-height: 1;
  padding: 4rpx 10rpx;
  border-radius: var(--radius-pill);
  background: var(--color-muted);
}

.section-header__action {
  margin-left: auto;
  width: 40rpx;
  height: 40rpx;
  color: var(--color-muted-fg);
}

.section-header__action--hover {
  opacity: 0.5;
}

.directory-view .section-header {
  padding: 18rpx var(--space-4) var(--space-1);
}

/* Row: compact two-line layout per list density spec.
 * No divider — rhythm comes from padding, font hierarchy, and hover bg. */
.row {
  display: flex;
  align-items: center;
  padding: var(--space-2) var(--space-4);
  background: var(--color-bg);
  gap: var(--space-3);
  min-height: 88rpx;
}

/* No full-row accent background for unread — only title weight + badge */
.row--hover {
  background: var(--color-muted);
}

.row__icon-wrap {
  position: relative;
  width: 48rpx;
  height: 48rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.row__avatar {
  width: 48rpx;
  height: 48rpx;
  border-radius: var(--radius-pill);
  background: var(--color-muted);
}

/* Icon glyph sizing — mask shape comes from .icon--{shape}, color from .row__icon--{kind} */
.row__icon {
  width: 36rpx;
  height: 36rpx;
}

/* Neutral icon palette aligned with Web inbox — single muted color so the
 * list reads as a system rather than a rainbow. The badge still carries
 * the urgency signal. */
.row__icon--channel,
.row__icon--human-dm,
.row__icon--agent-dm,
.row__icon--thread,
.row__icon--machine {
  background-color: var(--color-inbox-icon);
}

.row__body {
  flex: 1;
  min-width: 0;
}

.row__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-2);
}

.row__title {
  font-size: var(--text-base);
  color: var(--color-fg);
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}

.row--unread .row__title {
  font-weight: var(--font-medium);
}

.row__time {
  font-size: var(--text-sm);
  color: #b2b2b2;
  flex-shrink: 0;
  margin-left: var(--space-2);
}

.row__muted {
  flex-shrink: 0;
  margin-left: 6rpx;
  color: #b2b2b2;
}

.row__preview {
  margin-top: 4rpx;
  font-size: var(--text-sm);
  color: #888888;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.row__preview-text {
  vertical-align: middle;
}

.row__mention {
  color: var(--color-info);
  margin-right: 6rpx;
  font-weight: var(--font-semibold);
}

/* Unread badge — corner of icon, replaces tile-based accent.
 * Uses --color-primary so it tracks the theme: near-black in light,
 * near-white in dark. Avoid --color-destructive here so unread stays
 * distinct from error/destructive states. */
.row__badge {
  position: absolute;
  top: -4rpx;
  right: -8rpx;
  min-width: 28rpx;
  height: 28rpx;
  padding: 0 6rpx;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-primary-fg);
  font-size: var(--text-xs);
  line-height: 28rpx;
  text-align: center;
  box-sizing: border-box;
  border: 2rpx solid var(--color-bg);
}
