/* Member portal module — dashboard icon-tiles (masthead added in a later task).
   Unlayered, .ac-plugin-scoped. Tile rules are .ac-plugin .ac-link-grid .ac-button
   (0-3-0) so they beat the base .ac-plugin .ac-button (0-2-0). */

/* stack the dashboard's cards (nav grid, payments, dues) with even spacing */
.ac-plugin .ac-dashboard { display: grid; gap: 1.25rem; }

.ac-plugin .ac-link-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--ac-tile-min), 1fr)); gap: .7rem;
}
.ac-plugin .ac-link-grid .ac-button {
  flex-direction: column; align-items: flex-start; gap: .7rem;
  width: 100%; text-align: left; padding: .95rem 1rem;
  background: var(--ac-surface); color: var(--ac-ink); border: 1px solid var(--ac-line);
  font-weight: 600; box-shadow: none;
  /* Base .ac-button sets white-space:nowrap; tiles stack icon-over-label, so a
     two-word label ("Referral Directory") must be allowed to wrap in the box. */
  white-space: normal; overflow-wrap: anywhere;
}
.ac-plugin .ac-link-grid .ac-button:hover {
  border-color: var(--ac-primary); box-shadow: var(--ac-card-shadow); transform: translateY(-2px);
}
.ac-plugin .ac-tile__icon { width: 24px; height: 24px; color: var(--ac-primary); flex: none; }
.ac-plugin .ac-link-grid .ac-button-muted { opacity: .6; cursor: default; }
.ac-plugin .ac-link-grid .ac-button-muted:hover { transform: none; box-shadow: none; border-color: var(--ac-line); }
.ac-plugin .ac-link-grid .ac-button-muted .ac-tile__icon { color: var(--ac-muted); }

@media (prefers-reduced-motion: reduce) { .ac-plugin .ac-link-grid .ac-button { transition: none; } }

/* ---- Member-standing masthead (account summary) ---- */
.ac-plugin .ac-account-summary {
  display: block; padding: 0; gap: 0;
  border: 1px solid var(--ac-line); border-radius: var(--ac-radius);
  background: linear-gradient(180deg, color-mix(in srgb, var(--ac-primary) 5%, var(--ac-surface)), var(--ac-surface));
  box-shadow: var(--ac-card-shadow); overflow: hidden;
}
.ac-plugin .ac-account-summary__head { padding: 1.5rem; }
.ac-plugin .ac-account-summary__head h2 { font-size: 1.7rem; letter-spacing: -.015em; }
.ac-plugin .ac-account-summary__chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; }
.ac-plugin .ac-account-summary__head .ac-muted { margin-top: .8rem; }
.ac-plugin .ac-account-summary__head .ac-actions { margin-top: 1rem; }

/* ---- Action-needed alert (shows only when the member has open items) ---- */
.ac-plugin .ac-alert {
  display: flex; gap: .9rem; align-items: flex-start;
  border: 1px solid var(--ac-warn); border-left-width: 4px; border-radius: var(--ac-radius);
  background: var(--ac-warn-soft); padding: 1rem 1.2rem;
  margin-bottom: 1.25rem;
}
.ac-plugin .ac-alert .ac-tile__icon { flex: none; width: 22px; height: 22px; color: var(--ac-warn); margin-top: 1px; }
.ac-plugin .ac-alert__body { display: grid; gap: .5rem; flex: 1; }
.ac-plugin .ac-alert__title { font-weight: 700; font-size: .96rem; color: var(--ac-ink); }
.ac-plugin .ac-alert__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.ac-plugin .ac-alert__list li { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; font-size: .92rem; }
.ac-plugin .ac-alert__list a { font-weight: 600; margin-left: auto; }

/* ---- At-a-glance band (Balance / Announcements / Events) ---- */
.ac-plugin .ac-glance { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; align-items: stretch; }
.ac-plugin .ac-glance .ac-card { display: flex; flex-direction: column; gap: .75rem; }
.ac-plugin .ac-glance .ac-kicker { margin: 0; }
.ac-plugin .ac-glance__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.ac-plugin .ac-glance__list li { display: grid; gap: .15rem; padding-bottom: .7rem; border-bottom: 1px solid var(--ac-line); }
.ac-plugin .ac-glance__list li:last-child { border-bottom: 0; padding-bottom: 0; }
.ac-plugin .ac-glance__title { font-weight: 600; font-size: .95rem; line-height: 1.3; color: var(--ac-ink); }
.ac-plugin .ac-glance__more { margin-top: auto; font-weight: 600; font-size: .86rem; text-decoration: none; color: var(--ac-primary); }
.ac-plugin .ac-balance { border-color: color-mix(in srgb, var(--ac-accent) 34%, var(--ac-line)); }
.ac-plugin .ac-balance__amount { font-size: 2.1rem; font-weight: 720; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--ac-ink); }
.ac-plugin .ac-balance__sub { color: var(--ac-muted); font-size: .9rem; margin: .35rem 0 0; }
.ac-plugin .ac-balance .ac-button { margin-top: auto; justify-content: center; }
@media (max-width: 760px) { .ac-plugin .ac-glance { grid-template-columns: 1fr; } }

/* Action-needed items — one consistent row per action type. */
.ac-plugin .ac-action-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.ac-plugin .ac-action-item { display: flex; align-items: flex-start; gap: .7rem; }
.ac-plugin .ac-action-item__icon { flex: none; width: 34px; height: 34px; border-radius: 9px; background: color-mix(in srgb, var(--ac-warn) 14%, transparent); color: var(--ac-warn); display: inline-flex; align-items: center; justify-content: center; }
.ac-plugin .ac-action-item__icon .ac-tile__icon { width: 18px; height: 18px; }
.ac-plugin .ac-action-item__body { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .5rem; flex: 1; }
.ac-plugin .ac-action-item__title { font-weight: 600; font-size: .95rem; color: var(--ac-ink); }
.ac-plugin .ac-action-item__cta { flex: none; align-self: center; font-weight: 600; font-size: .88rem; white-space: nowrap; }
.ac-plugin .ac-badge--ballot { background: var(--ac-accent-soft); color: color-mix(in srgb, var(--ac-accent) 80%, #101418); }

/* "View all" CTA button at the bottom of a glance card (announcements/events). */
.ac-plugin .ac-glance__cta { margin-top: auto; align-self: flex-start; font-size: .85rem; padding: .5rem 1rem; }
