/* Dashboard typography and spacing rhythm.
 * Intentionally contains no palette overrides: surface hierarchy stays in dashboard.css.
 */

body.dash-page .dash-content--flat-workspace {
  --dash-island-gap: var(--spacing-2xl);
  --dash-main-aside-gap: var(--spacing-2xl);
  --dash-island-pad: var(--spacing-2xl);
  --dash-type-section: var(--font-size-lg);
  --dash-type-body: 14px;
  --dash-type-meta: var(--font-size-sm);
  --dash-type-link: var(--font-size-base);
}

body.dash-page .dash-content--flat-workspace > .dash-grid,
body.dash-page .dash-content--flat-workspace .dash-col,
body.dash-page .dash-content--flat-workspace .dash-split {
  gap: var(--dash-island-gap);
}

body.dash-page .dash-content--flat-workspace :is(
  .dash-wallet,
  .dash-month-summary,
  .dash-cashflow,
  .dash-spending,
  .dash-upcoming,
  .dash-quick,
  .dash-accounts
) {
  padding: var(--dash-island-pad);
}

body.dash-page .dash-content--flat-workspace .dash-activity-panel {
  margin: 0 var(--dash-island-pad) var(--dash-island-pad);
  padding: var(--dash-island-pad);
  padding-block-end: 0;
}

body.dash-page .dash-content--flat-workspace .dash-card__head {
  gap: var(--spacing-lg);
  margin-block-end: var(--spacing-xl);
}

body.dash-page .dash-content--flat-workspace :is(
  .dash-card__title,
  .dash-month-summary__head h2
) {
  font-size: var(--dash-type-section);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

body.dash-page .dash-content--flat-workspace :is(
  .dash-card__link,
  .dash-month-summary__head a
) {
  display: inline-flex;
  min-block-size: 32px;
  align-items: center;
  padding-inline: var(--spacing-sm);
  margin-inline-end: calc(var(--spacing-sm) * -1);
  font-size: var(--dash-type-link);
  line-height: 1.35;
}

body.dash-page .dash-content--flat-workspace .dash-month-summary__head {
  margin-block-end: var(--spacing-lg);
}

body.dash-page .dash-content--flat-workspace .dash-kpi-row {
  gap: var(--spacing-lg);
}

body.dash-page .dash-content--flat-workspace .dash-kpi {
  --dash-kpi-pad: var(--spacing-lg);
  min-block-size: 112px;
}

body.dash-page .dash-content--flat-workspace .dash-kpi__label {
  margin-block-end: var(--spacing-xs);
  font-size: var(--dash-type-link);
  line-height: 1.3;
}

body.dash-page .dash-content--flat-workspace .dash-kpi__value {
  font-size: clamp(21px, 2.1cqi, 24px);
}

body.dash-page .dash-content--flat-workspace .dash-wallet__balance-area {
  margin-block-start: var(--spacing-2xl);
}

body.dash-page .dash-content--flat-workspace .dash-wallet__balance,
body.dash-page .dash-content--flat-workspace :is(
  .dash-kpi__value,
  .dash-activity-row__amount,
  .dash-account-row__balance,
  .dash-upcoming-row__amount,
  .dash-spending-row__amount,
  .dash-spending-row__pct
) {
  font-variant-numeric: tabular-nums;
}

body.dash-page .dash-content--flat-workspace .dash-wallet__actions {
  gap: var(--spacing-lg);
  padding-block-start: var(--spacing-2xl);
}

body.dash-page .dash-content--flat-workspace .dash-wallet__actions button {
  gap: 10px;
  font-size: var(--dash-type-body);
  line-height: 1.35;
}

body.dash-page .dash-content--flat-workspace .dash-activity-panel .dash-card__head {
  margin-block-end: var(--spacing-sm);
}

body.dash-page .dash-content--flat-workspace .dash-activity-panel .dash-activity-row {
  gap: var(--spacing-md);
  padding-block: 10px;
}

body.dash-page .dash-content--flat-workspace :is(
  .dash-activity-row__title,
  .dash-activity-row__amount,
  .dash-account-row__name,
  .dash-account-row__balance,
  .dash-upcoming-row__title,
  .dash-upcoming-row__amount
) {
  font-size: var(--dash-type-body);
  line-height: 1.35;
}

body.dash-page .dash-content--flat-workspace :is(
  .dash-activity-row__sub,
  .dash-activity-row__date,
  .dash-account-row__sub,
  .dash-upcoming-row__sub,
  .dash-upcoming-row__status,
  .dash-kpi__trend
) {
  font-size: var(--dash-type-meta);
  line-height: 1.35;
}

body.dash-page .dash-content--flat-workspace .dash-quick__actions,
body.dash-page .dash-content--flat-workspace .dash-quick__link-actions {
  gap: var(--spacing-md);
}

body.dash-page .dash-content--flat-workspace .dash-quick__actions:not(:last-child) {
  margin-block-end: var(--spacing-md);
}

body.dash-page .dash-content--flat-workspace :is(.dash-quick__item, .dash-quick__promo) {
  gap: var(--spacing-sm);
  min-block-size: 88px;
  padding: var(--spacing-lg) var(--spacing-md);
  font-size: var(--dash-type-link);
  line-height: 1.35;
  text-decoration: none;
}

body.dash-page .dash-content--flat-workspace .dash-activity-empty {
  display: grid;
  min-block-size: 168px;
  place-content: center;
  justify-items: center;
  gap: var(--spacing-md);
  text-align: center;
}

body.dash-page .dash-content--flat-workspace .dash-activity-empty[hidden] {
  display: none;
}

body.dash-page .dash-content--flat-workspace .dash-activity-empty p {
  margin: 0;
  font-size: var(--dash-type-body);
  font-weight: 500;
}

body.dash-page .dash-content--flat-workspace .dash-activity-empty button {
  min-block-size: 40px;
  padding-inline: var(--spacing-lg);
  border: 0;
  border-radius: var(--dash-radius-btn);
  font: inherit;
  font-size: var(--dash-type-link);
  cursor: pointer;
}

@media (prefers-reduced-motion: no-preference) {
  body.dash-page :is(
    .dash-new-btn,
    .dash-new-menu [role="menuitem"],
    .dash-wallet__action-icon,
    .dash-quick__item,
    .dash-quick__promo,
    .dash-activity-empty button
  ) {
    transition-property: transform, background-color, color;
    transition-duration: 120ms;
    transition-timing-function: ease-out;
  }
}

body.dash-page .dash-new-btn:active,
body.dash-page .dash-new-menu [role="menuitem"]:active,
body.dash-page .dash-wallet__actions button:active .dash-wallet__action-icon,
body.dash-page .dash-content--flat-workspace :is(
  .dash-quick__item,
  .dash-quick__promo,
  .dash-activity-empty button
):active {
  transform: scale(0.96);
}

body.dash-page .dash-content--flat-workspace .dash-account-row {
  gap: var(--spacing-md);
  padding-block: var(--spacing-md);
}

body.dash-page .dash-content--flat-workspace .dash-spending-list {
  gap: var(--spacing-lg);
}

body.dash-page .dash-content--flat-workspace .dash-upcoming-row {
  gap: var(--spacing-lg);
  padding-block: var(--spacing-md);
}

@media (max-width: 800px) {
  body.dash-page .dash-content--flat-workspace {
    --dash-island-gap: var(--spacing-lg);
    --dash-main-aside-gap: var(--spacing-lg);
    --dash-island-pad: var(--spacing-lg);
  }

  body.dash-page .dash-content--flat-workspace .dash-wallet__balance-area {
    margin-block-start: var(--spacing-xl);
  }

  body.dash-page .dash-content--flat-workspace .dash-wallet__actions {
    gap: var(--spacing-md);
    padding-block-start: var(--spacing-xl);
  }

  body.dash-page .dash-content--flat-workspace :is(.dash-quick__item, .dash-quick__promo) {
    min-block-size: 80px;
    padding: var(--spacing-md) var(--spacing-sm);
  }
}
