/* Postie · Button — pill, one primary per view, key-hint after the label. */
.postie-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  box-sizing: border-box; height: 44px; padding: 0 22px;
  border: 0; border-radius: var(--postie-radius-pill);
  font-family: var(--postie-font-ui); font-size: 15px; font-weight: 700; line-height: 1;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color var(--postie-duration) var(--postie-ease), color var(--postie-duration) var(--postie-ease);
}
.postie-btn:focus-visible { outline: 2px solid var(--postie-c-ink); outline-offset: 2px; }
.postie-btn[disabled], .postie-btn[aria-disabled="true"] { cursor: not-allowed; }

/* sizes */
.postie-btn--sm { height: 30px; padding: 0 12px; font-size: 12px; gap: 6px; }
.postie-btn--md { height: 44px; padding: 0 22px; font-size: 15px; }
.postie-btn--lg { height: 56px; padding: 0 30px; font-size: 17px; gap: 10px; }
.postie-btn--full { display: flex; width: 100%; }

/* variants */
.postie-btn--primary { background: var(--postie-accent); color: var(--postie-accent-ink); }
.postie-btn--primary:hover { background: #6F1622; }
.postie-btn--primary .postie-btn__hint { color: var(--postie-accent-ink); }

.postie-btn--brand { background: var(--postie-ground); color: var(--postie-ink-brand); }
.postie-btn--brand .postie-btn__hint { color: var(--postie-muted-brand); }
.postie-btn--brand .postie-btn__icon { stroke: var(--postie-accent-text-brand); }

.postie-btn--ghost { background: transparent; color: var(--postie-c-ink); box-shadow: inset 0 0 0 var(--postie-edge-width) var(--postie-c-edge); }
.postie-btn--ghost:hover { background: var(--postie-c-raised); }

.postie-btn--quiet { background: var(--postie-c-raised); color: var(--postie-c-ink); }
.postie-btn--quiet:hover { color: var(--postie-c-ink); }

.postie-btn--text { background: transparent; color: var(--postie-c-accent-text); padding: 0 4px; height: auto; }
.postie-btn--text:hover { color: var(--postie-c-accent-hover); }

/* disabled: tonal, never faded */
.postie-btn[disabled], .postie-btn[aria-disabled="true"] { background: var(--postie-c-raised); color: var(--postie-c-muted); box-shadow: none; }

/* parts */
.postie-btn__hint { font-size: 0.8em; font-weight: 700; color: var(--postie-c-muted); }
.postie-btn__icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.postie-btn--lg .postie-btn__icon { width: 18px; height: 18px; }
