.app-internal-navbar {
  z-index: 1030;
  background-color: #f8f9fa;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
/* Shared application styles loaded by both main and public layouts. */
/* Shared application styles loaded by both main and public layouts. */

/* Home latest-news thumbnail.
   Used in: app/Views/home_logged_in.php */
.latest-article-thumb {
  width: 72px;
  flex: 0 0 72px;
  aspect-ratio: 1 / 1;
}

.latest-article-thumb-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* App-wide image lightbox helpers.
   Used in: app/Views/partials/app_lightbox.php
   Triggered from: app/Modules/Articles/Views/articles/show.php, app/Modules/Members/Views/members/show.php
   Behavior in: public/assets/js/app.js */
.app-lightbox-image {
  max-height: 85vh;
  object-fit: contain;
}

.app-lightbox-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 20;
}

/* ------------------------------------------------------------------
   Card border helpers

   By default Bootstrap's `.card` keeps its border/shadow. Use the
   utility below to remove the border on specific cards only.

   Usage:
   - Add `card--no-border` to a card to remove border/shadow for that
     specific element.
   - Use `card--border` on a card when you explicitly want to ensure
     the bordered look (rare; present for backward compatibility).
*/
.card--no-border {
  border: none !important;
  box-shadow: none !important;
}

/* Opt-in bordered card when the border/shadow is desired */
.card.card--border {
  border: 1px solid #dee2e6 !important;
  box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important;
}

/* Article card layout for dashboard: image fills the card height and is not part
   of the article link. Used in: app/Views/home_logged_in.php */
.article-card {
  display: flex;
  gap: 1rem;
  align-items: stretch;
}
.article-card .latest-article-thumb {
  width: 140px;
  flex: 0 0 140px;
  display: flex;
  align-items: stretch;
}
.article-card .latest-article-thumb-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Ensure article excerpt wraps inside flex layout (dashboard) */
.article-card .article-card-content { min-width: 0 !important; }
.article-card .article-card-content .text-muted { white-space: normal !important; overflow-wrap: anywhere !important; word-break: break-word !important; }
/* Specific rule for the excerpt element used in home_logged_in (class="text-muted small mb-2") */
.article-card .text-muted.small.mb-2 { display: block !important; white-space: normal !important; overflow-wrap: anywhere !important; word-break: break-word !important; }

/* Shrink article-card thumbnail on xs screens so content has room */
@media (max-width: 575.98px) {
  .article-card .latest-article-thumb {
    width: 80px;
    flex: 0 0 80px;
  }
}

/* Clickable table/row helpers used for event rows and similar lists */
tr.clickable-events-row,
.clickable-events-row {
  cursor: pointer;
}
.clickable-events-row:hover {
  background-color: #f8f9fa;
}
.clickable-events-row:focus {
  outline: 2px solid rgba(13,110,253,0.25);
  outline-offset: -2px;
}

/* Keep internal navbar visible above page content while scrolling. */
.app-internal-navbar {
  z-index: 1030;
  background-color: #f8f9fa;
}
