/* Postie · MailList — group labels + ThreadRows. The unread-dot lives here: 7px accent dot + weight 700, never colour alone. */
.postie-mail { display: flex; flex-direction: column; min-width: 0; font-family: var(--postie-font-ui); font-variant-numeric: tabular-nums; }
.postie-mail__group { padding: 6px 16px; font-size: 11px; font-weight: 700; letter-spacing: var(--postie-tracking-label); text-transform: uppercase; color: var(--postie-c-muted); }
.postie-mail__group + .postie-mail__group, .postie-thread + .postie-mail__group { padding-top: 10px; }

.postie-thread {
  display: grid; grid-template-columns: 40px minmax(0, 1fr) 56px; gap: 12px; align-items: start;
  box-sizing: border-box; padding: 12px 16px; margin: 0 8px;
  border-radius: var(--postie-radius-row);
  color: var(--postie-c-ink); text-decoration: none;
  transition: background-color var(--postie-duration) var(--postie-ease);
}
.postie-thread:hover { background: var(--postie-c-raised); }
.postie-thread:focus-visible { outline: 2px solid var(--postie-c-ink); outline-offset: -2px; }
.postie-thread--selected, .postie-thread[aria-current="true"] { background: var(--postie-selected); }
.postie-thread__pebble { grid-row: span 1; }
.postie-thread__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.postie-thread__from { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; min-width: 0; }
.postie-thread__dot { display: none; width: 7px; height: 7px; border-radius: 999px; background: var(--postie-c-accent-text); flex-shrink: 0; }
.postie-thread__account { font-size: 11px; font-weight: 700; color: var(--postie-c-muted); }
.postie-thread__subject { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.postie-thread__snippet { font-size: 13px; color: var(--postie-c-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.postie-thread__time { font-size: 12px; color: var(--postie-c-muted); text-align: right; }
/* unread: dot + weight 700 */
.postie-thread--unread .postie-thread__dot { display: inline-block; }
.postie-thread--unread .postie-thread__from, .postie-thread--unread .postie-thread__subject { font-weight: 700; }
/* dense: the landing paper-preview and email digests — one line per thread, rule separators are legal here */
.postie-mail--dense .postie-thread { grid-template-columns: 44px minmax(0, 1fr) 64px; margin: 0; border-radius: 0; border-bottom: 1px solid var(--postie-rule); align-items: center; }
.postie-mail--dense .postie-thread:last-child { border-bottom: 0; }
.postie-mail--dense .postie-thread__snippet { display: block; }
.postie-mail--dense .postie-thread__subject { display: none; }
/* mobile: 40px pebble, 8px side padding, 15px sender; the FIRST row sits one raised step up (P2 pairings: "mobile first row" on raised) —
   a tonal step, no rule. A selected row keeps the selected tint. */
.postie-mail--mobile .postie-thread { grid-template-columns: 40px minmax(0, 1fr) 48px; padding: 12px 8px; }
.postie-mail--mobile .postie-thread__from { font-size: 15px; }
.postie-mail--mobile .postie-thread:first-of-type { background: var(--postie-c-raised); }
.postie-mail--mobile .postie-thread--selected, .postie-mail--mobile .postie-thread[aria-current="true"] { background: var(--postie-selected); }
