/*
 * proprimmo-theme.css
 * Brand colour overrides applied on top of Bootstrap 5.
 *
 * Palette
 *   --pp-navy   #073d5e  primary background / navbar
 *   --pp-green  #5db228  primary accent / CTA buttons
 *   --pp-teal   #00674c  secondary accent / hover states
 */

/* ── CSS custom properties ────────────────────────────────────────────── */
:root {
  --pp-navy:          #073d5e;
  --pp-navy-dark:     #052d46;
  --pp-navy-light:    #0a5580;
  --pp-green:         #5db228;
  --pp-green-dark:    #4a9020;
  --pp-green-light:   #72d130;
  --pp-teal:          #00674c;
  --pp-teal-dark:     #004e39;
  --pp-teal-light:    #008b65;

  /* Bootstrap 5 primary token override */
  --bs-primary:       #5db228;
  --bs-primary-rgb:   93, 178, 40;
  --bs-link-color:         var(--pp-green);
  --bs-link-hover-color:   var(--pp-teal);
  --bs-link-color-rgb:     93, 178, 40;

  /* Navbar dot badge border matches navbar bg */
  --navbar-bg: var(--pp-navy);
}

/* ── Navbar — white / light ────────────────────────────────────────────── */
.navbar-main {
  background: #ffffff !important;
  border-bottom: 1px solid #e8eaed !important;
  box-shadow: 0 1px 6px rgba(0,0,0,.07) !important;
}

/* Force white background (overrides any gradient set by inline styles) */
.navbar-main.navbar-dark,
.navbar-main.navbar-light { background: #ffffff !important; }

/* Nav links — horizontal layout, dark text on white bg */
.navbar-main .main-menu > li > a {
  color: #374151 !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: .35rem !important;
}
.navbar-main .main-menu > li > a > i { color: #6b7280 !important; font-size: .92rem !important; }
.navbar-main .main-menu > li > a > span { font-size: .84rem !important; font-weight: 500; display: inline !important; }
.navbar-main .main-menu > li > a:hover,
.navbar-main .main-menu > li > a:focus { color: var(--pp-green) !important; }
.navbar-main .main-menu > li > a:hover > i { color: var(--pp-green) !important; }

/* Nav item underline-on-hover */
.navbar-main .main-menu .nav-link {
  border-bottom: 2px solid transparent !important;
  transition: color .2s ease, border-color .2s ease, background .15s ease !important;
  padding-bottom: 4px !important;
}
.navbar-main .main-menu .nav-link:hover,
.navbar-main .main-menu .nav-link:focus {
  border-bottom-color: var(--pp-green) !important;
  background: rgba(93,178,40,.06) !important;
  border-radius: 8px !important;
}

/* Nav link active */
.navbar-main .nav-item a.nav-link.active {
  color: var(--pp-green) !important;
  border-bottom-color: var(--pp-green) !important;
}

/* Toggler on white bg */
.navbar-main .navbar-toggler {
  border-color: #d1d5db !important;
  color: #374151 !important;
}
.navbar-main .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(55,65,81,0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* Dot badge */
.tool-btn__dot {
  border-color: #fff !important;
  background: #ef4444 !important;
}

/* Search / second navbar — light grey */
.navbar-search {
  background: #f8f9fa !important;
  border-bottom: 1px solid #e8eaed !important;
  box-shadow: none !important;
}

/* ── Bootstrap buttons ────────────────────────────────────────────────── */
.btn-primary {
  --bs-btn-bg:            var(--pp-green);
  --bs-btn-border-color:  var(--pp-green);
  --bs-btn-hover-bg:      var(--pp-teal);
  --bs-btn-hover-border-color: var(--pp-teal);
  --bs-btn-active-bg:     var(--pp-teal-dark);
  --bs-btn-active-border-color: var(--pp-teal-dark);
  --bs-btn-focus-shadow-rgb: 93, 178, 40;
  color: #fff;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { color: #fff; }

.btn-outline-primary {
  --bs-btn-color:               var(--pp-green);
  --bs-btn-border-color:        var(--pp-green);
  --bs-btn-hover-bg:            var(--pp-green);
  --bs-btn-hover-border-color:  var(--pp-green);
  --bs-btn-active-bg:           var(--pp-teal);
  --bs-btn-active-border-color: var(--pp-teal);
}

/* ── Links ────────────────────────────────────────────────────────────── */
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):not([class*="tool-"]):not([class*="user-"]) {
  color: var(--pp-green);
}
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):not([class*="tool-"]):not([class*="user-"]):hover {
  color: var(--pp-teal);
}

/* ── Dropdowns & panels ───────────────────────────────────────────────── */
.tool-menu__item.active {
  background: rgba(93, 178, 40, .10) !important;
  color: var(--pp-green) !important;
}
.tool-menu__item.active .tool-menu__code {
  background: rgba(93, 178, 40, .15) !important;
  color: var(--pp-green) !important;
}
.tool-menu__item:hover {
  background: #f0f7ea !important;
  color: var(--pp-navy) !important;
}

.tool-panel__action  { color: var(--pp-green) !important; }
.tool-panel__action:hover { color: var(--pp-teal) !important; }
.tool-panel__footer  { color: var(--pp-green) !important; }
.tool-panel__footer:hover { background: #f0f7ea; color: var(--pp-teal) !important; }

.tool-item--unread { background: rgba(93, 178, 40, .04) !important; }
.tool-item--unread:hover { background: rgba(93, 178, 40, .08) !important; }

.user-panel__item:hover i { color: var(--pp-green) !important; }

/* Avatar gradient */
.tool-item__avatar,
.user-panel__avatar {
  background: linear-gradient(135deg, var(--pp-navy), var(--pp-teal)) !important;
}

/* Wallet "add funds" / "set up" primary btn already covered by .btn-primary above */

/* ── Bootstrap form focus rings ───────────────────────────────────────── */
.form-control:focus,
.form-select:focus {
  border-color: var(--pp-green);
  box-shadow: 0 0 0 .25rem rgba(93, 178, 40, .25);
}
.form-check-input:checked {
  background-color: var(--pp-green);
  border-color: var(--pp-green);
}

/* ── Bootstrap badges / pills ─────────────────────────────────────────── */
.badge.bg-primary  { background-color: var(--pp-green) !important; }
.badge.bg-success  { background-color: var(--pp-teal)  !important; }
.text-primary      { color: var(--pp-green) !important; }
.text-success      { color: var(--pp-teal)  !important; }
.bg-primary        { background-color: var(--pp-green) !important; }
.bg-success        { background-color: var(--pp-teal)  !important; }
.border-primary    { border-color: var(--pp-green) !important; }

/* ── Progress bars ────────────────────────────────────────────────────── */
.progress-bar { background-color: var(--pp-green) !important; }

/* ── Pagination ───────────────────────────────────────────────────────── */
.page-item.active .page-link {
  background-color: var(--pp-green) !important;
  border-color: var(--pp-green) !important;
}
.page-link { color: var(--pp-green) !important; }
.page-link:hover { color: var(--pp-teal) !important; }

/* ── Tabs ─────────────────────────────────────────────────────────────── */
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  color: var(--pp-navy) !important;
  border-bottom-color: var(--pp-green) !important;
}
.nav-tabs .nav-link:hover { color: var(--pp-green) !important; }
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--pp-green) !important;
}

/* ── Alerts ───────────────────────────────────────────────────────────── */
.alert-primary {
  background-color: rgba(93, 178, 40, .12);
  border-color: rgba(93, 178, 40, .3);
  color: var(--pp-teal-dark);
}
.alert-success {
  background-color: rgba(0, 103, 76, .10);
  border-color: rgba(0, 103, 76, .25);
  color: var(--pp-teal-dark);
}

/* ── Legacy feed accent colour (#e44d3a → pp-green) ──────────────────── */
.view-all-nots > a             { background-color: var(--pp-green) !important; }
.message-inner-dt > p          { background-color: var(--pp-green) !important; }

/* Overrides for any inline red-accent elements still in feed_home.css */
[style*="e44d3a"],
[style*="#e44d3a"] {
  /* Cannot override inline styles with CSS custom props; handled below */
}

/* Price-converted badge */
.price-converted-badge {
  background: rgba(93,178,40,.10) !important;
  color: var(--pp-teal-dark) !important;
  border-color: rgba(93,178,40,.3) !important;
}

/* ── Toast icons ──────────────────────────────────────────────────────── */
.global-toast--success .global-toast__icon { color: var(--pp-green) !important; }
.global-toast__action { color: var(--pp-green) !important; }
.global-toast__action:hover { color: var(--pp-green-light) !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Property list page — cards, map markers, sidebar, results panel
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Property cards ───────────────────────────────────────────────────── */
.property-card {
  border-radius: 12px !important;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(7,61,94,.10) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.property-card > .card {
  border: none !important;
  border-top: 3px solid var(--pp-green) !important;
  border-radius: 0 0 12px 12px !important;
}
.property-card--lease > .card   { border-top-color: var(--pp-teal)  !important; }
.property-card--auction > .card { border-top-color: #f59e0b !important; }
.property-card--sold > .card    { border-top-color: #9ca3af !important; }

.property-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 32px rgba(7,61,94,.18) !important;
}
.property-card.focused {
  outline: 3px solid var(--pp-green) !important;
  outline-offset: 2px !important;
  box-shadow: 0 8px 28px rgba(93,178,40,.25) !important;
  transform: translateY(-2px) !important;
}

/* Card image — round top corners, smooth crop */
.property-card .card-img-top {
  border-radius: 12px 12px 0 0 !important;
  height: 175px !important;
  object-fit: cover;
}

/* Price — navy bold */
.property-card .fw-bold.text-primary,
.property-card p.fw-bold {
  color: var(--pp-navy) !important;
  font-size: .97rem;
}

/* Card body tighter padding */
.property-card .card-body { padding: .65rem .75rem !important; }
.property-card .card-title { font-size: .85rem; font-weight: 600; color: #1a2e40; margin-bottom: .25rem; }

/* Compare checkbox — top-left corner */
.property-card .compare-check {
  position: absolute;
  top: 8px; left: 8px;
  z-index: 10;
}
.property-card .compare-check .form-check-input:checked {
  background-color: var(--pp-green) !important;
  border-color: var(--pp-green) !important;
}

/* ── Results panel header ──────────────────────────────────────────────── */
.results-navbar {
  background: #f4faf0 !important;
  border-bottom: 2px solid rgba(93,178,40,.2) !important;
  padding: .55rem .75rem !important;
}
.results-navbar #resultsCount { color: var(--pp-navy); }

/* ── Sidebar filter ────────────────────────────────────────────────────── */
.sf-header {
  border-bottom: 2px solid var(--pp-green) !important;
  padding-bottom: .6rem !important;
}
.sf-header__title { color: var(--pp-navy); font-weight: 700; }

/* Active filter pills → green */
.sf-pill input:checked + span {
  background: var(--pp-green) !important;
  border-color: var(--pp-green) !important;
  color: #fff !important;
}
.sf-pill input + span {
  border: 1.5px solid #d1d5db;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sf-pill input + span:hover { border-color: var(--pp-green); color: var(--pp-navy); }

/* Counter buttons */
.sf-counter__btn { color: var(--pp-navy) !important; }
.sf-counter__btn:hover { background: var(--pp-green) !important; color: #fff !important; border-color: var(--pp-green) !important; }

/* Checkbox checks */
.sf-check .form-check-input:checked { background-color: var(--pp-green) !important; border-color: var(--pp-green) !important; }

/* Apply button */
.sf-footer .btn-primary {
  background: var(--pp-green) !important;
  border: none !important;
  font-weight: 700;
  letter-spacing: .02em;
  padding: .55rem 1rem !important;
  box-shadow: 0 4px 12px rgba(93,178,40,.3) !important;
  transition: background .2s ease, box-shadow .2s ease, transform .15s ease !important;
}
.sf-footer .btn-primary:hover {
  background: var(--pp-teal) !important;
  box-shadow: 0 6px 18px rgba(0,103,76,.35) !important;
  transform: translateY(-1px);
}

/* ── Map markers — brand colours ──────────────────────────────────────── */
.prop-marker {
  border-color: var(--pp-green) !important;
  box-shadow: 0 4px 12px rgba(7,61,94,.3), 0 0 0 3px rgba(93,178,40,.15) !important;
}
.prop-marker::after { border-top-color: var(--pp-green) !important; }
.prop-marker--lease       { border-color: var(--pp-teal) !important; }
.prop-marker--lease::after{ border-top-color: var(--pp-teal) !important; }
.prop-marker-wrap--focus .prop-marker       { border-color: var(--pp-green-dark) !important; }
.prop-marker-wrap--focus .prop-marker::after{ border-top-color: var(--pp-green-dark) !important; }
.prop-popup__price { color: var(--pp-navy) !important; font-weight: 700; }
.prop-popup__title { color: #0d2235; }

/* ── Modals ────────────────────────────────────────────────────────────── */
.modal-header {
  background: linear-gradient(135deg, var(--pp-navy) 0%, var(--pp-navy-light) 100%) !important;
  color: #fff !important;
  border-bottom: 2px solid var(--pp-green) !important;
}
.modal-header .btn-close { filter: invert(1) brightness(1.5); }
.modal-header h5,
.modal-header .modal-title { color: #fff !important; }

/* ── Compare bar ───────────────────────────────────────────────────────── */
.compare-bar {
  background: var(--pp-navy) !important;
  border-top: 2px solid var(--pp-green) !important;
  box-shadow: 0 -4px 20px rgba(7,61,94,.3) !important;
}

/* ── Pagination (property list inline override) ────────────────────────── */
.pagination .page-item.active .page-link {
  background-color: var(--pp-green) !important;
  border-color: var(--pp-green) !important;
}
.pagination .page-link { color: var(--pp-navy) !important; }
.pagination .page-link:hover { color: var(--pp-teal) !important; }

/* ── Sign-in / sign-up card ───────────────────────────────────────────── */
.card.shadow, .card.shadow-sm, .card.shadow-lg {
  border-radius: 16px;
  border: none;
}

/* Sign-in header accent */
.card .card-header {
  background: linear-gradient(135deg, var(--pp-navy), var(--pp-navy-light)) !important;
  color: #fff !important;
  border-radius: 16px 16px 0 0 !important;
  border-bottom: 2px solid var(--pp-green) !important;
}

/* ── Dropdowns — active item highlight ─────────────────────────────────── */
.dropdown-item:active,
.dropdown-item.active {
  background-color: var(--pp-green) !important;
  color: #fff !important;
}
.dropdown-item:hover { background: #f0f7ea !important; color: var(--pp-navy) !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Global typography & body
   ═══════════════════════════════════════════════════════════════════════ */

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  background-color: #f4f5f7 !important;
  color: #1a2535;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6, .fw-bold, .fw-semibold, .fw-medium {
  letter-spacing: -.01em;
}

/* Thin branded scrollbar on all scrollable areas */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(93,178,40,.35) transparent;
}
*::-webkit-scrollbar { width: 5px; height: 5px; }
*::-webkit-scrollbar-thumb { background: rgba(93,178,40,.3); border-radius: 99px; }
*::-webkit-scrollbar-track { background: transparent; }

/* ═══════════════════════════════════════════════════════════════════════
   Feed page — replace Bootstrap blue with brand colours
   ═══════════════════════════════════════════════════════════════════════ */

/* Profile card cover */
.feed-profile-card__cover {
  background: linear-gradient(135deg, var(--pp-navy) 0%, var(--pp-teal) 100%) !important;
}

/* All avatar gradients */
.feed-profile-card__avatar,
.feed-user-row__avatar,
.compose-card__avatar,
.compose-modal__avatar {
  background: linear-gradient(135deg, var(--pp-navy) 0%, var(--pp-teal) 100%) !important;
}

/* Profile stat active */
.feed-profile-card__stat.active { background: rgba(93,178,40,.08) !important; }
.feed-profile-card__stat.active .feed-profile-card__stat-val,
.feed-profile-card__stat.active .feed-profile-card__stat-label { color: var(--pp-green) !important; }

/* Quick links */
.feed-quick-link:hover { background: rgba(93,178,40,.07) !important; color: var(--pp-green) !important; }
.feed-quick-link:hover i { color: var(--pp-green) !important; }

/* Sidebar cards */
.feed-sidebar-card {
  border-color: #eef0f4 !important;
  box-shadow: 0 1px 5px rgba(7,61,94,.05) !important;
  border-radius: 14px !important;
}
.feed-sidebar-card__title { color: var(--pp-navy) !important; }

/* Compose card */
.compose-card {
  border-color: #eef0f4 !important;
  box-shadow: 0 1px 5px rgba(7,61,94,.05) !important;
  border-radius: 14px !important;
}
.compose-card__input:hover { border-color: rgba(93,178,40,.45) !important; }

/* Category pills */
.feed-cat-pill:hover {
  border-color: rgba(93,178,40,.4) !important;
  color: var(--pp-green) !important;
  background: rgba(93,178,40,.07) !important;
}
.feed-cat-pill.active {
  background: var(--pp-green) !important;
  border-color: var(--pp-green) !important;
  color: #fff !important;
}
.feed-cat-pill.active .feed-cat-pill__count { color: rgba(255,255,255,.75) !important; }

/* User / suggestion rows */
.feed-user-row__name a:hover { color: var(--pp-green) !important; }
.feed-article-row:hover .feed-article-row__title { color: var(--pp-green) !important; }

/* Trending */
.trending-row:hover .trending-row__tag { color: var(--pp-green) !important; }
.trending-all-row__tag:hover { color: var(--pp-green) !important; }

/* Compose modal */
.compose-modal .modal-content { border-radius: 16px !important; }
.compose-modal .modal-header {
  background: #fff !important;
  border-bottom: 1px solid #f1f3f7 !important;
  color: inherit !important;
}
.compose-modal .modal-header h5,
.compose-modal .modal-header .modal-title { color: #111827 !important; }
.compose-modal .modal-header .btn-close { filter: none !important; }

.compose-modal__cat-pill:hover {
  border-color: rgba(93,178,40,.4) !important;
  color: var(--pp-green) !important;
  background: rgba(93,178,40,.07) !important;
}
.compose-modal__cat-pill.active {
  background: var(--pp-green) !important;
  border-color: var(--pp-green) !important;
  color: #fff !important;
}
.compose-modal__tool-btn:hover {
  background: rgba(93,178,40,.10) !important;
  color: var(--pp-green) !important;
}
.compose-modal__tool-btn.active {
  color: var(--pp-green) !important;
  background: rgba(93,178,40,.12) !important;
}
.compose-modal__publish { background: var(--pp-green) !important; }
.compose-modal__publish:hover { background: var(--pp-teal) !important; }
.compose-modal__tag {
  background: rgba(93,178,40,.10) !important;
  color: var(--pp-green) !important;
}

/* Post cards */
.feed-page .post-card {
  border-radius: 14px !important;
  border: 1px solid #eef0f4 !important;
  box-shadow: 0 1px 4px rgba(7,61,94,.06) !important;
}
.feed-page .post-card:hover { box-shadow: 0 6px 22px rgba(7,61,94,.12) !important; }
.feed-page .post-actions button:hover { background: rgba(93,178,40,.07) !important; }

/* Comments */
.comment-author-badge {
  background: rgba(93,178,40,.10) !important;
  color: var(--pp-green) !important;
}
.comment-reply-btn:hover { color: var(--pp-green) !important; }

/* New posts alert */
#newPostsAlert {
  border-color: rgba(93,178,40,.3) !important;
  background: rgba(93,178,40,.08) !important;
  color: var(--pp-teal-dark) !important;
}

/* Policy links */
.feed-policy-links a:hover { color: var(--pp-green) !important; text-decoration-color: var(--pp-green) !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Filter bar (second navbar) — replace blue active states
   ═══════════════════════════════════════════════════════════════════════ */

#navbarFilters .btn.active,
#navbarFilters .group-toggle.has-active {
  background-color: rgba(93,178,40,.15) !important;
  color: var(--pp-green) !important;
  border-color: rgba(93,178,40,.3) !important;
  font-weight: 600 !important;
}
#navbarFilters .dropdown-item.active,
#navbarFilters .dropdown-item[data-active="1"] {
  background-color: rgba(93,178,40,.10) !important;
  color: var(--pp-teal) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   Cards — general improvements
   ═══════════════════════════════════════════════════════════════════════ */

.card {
  border-color: #eef0f4;
}

/* Dashboard sidebar nav */
.list-group-item-action:hover {
  background: rgba(93,178,40,.06) !important;
  color: var(--pp-green) !important;
}
.list-group-item.active {
  background-color: var(--pp-green) !important;
  border-color: var(--pp-green) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   Sign-in / Sign-up page
   ═══════════════════════════════════════════════════════════════════════ */

/* Branded auth page background */
.container.py-5 { position: relative; z-index: 1; }

.container.py-5 .card {
  border: none !important;
  box-shadow: 0 8px 40px rgba(7,61,94,.12), 0 2px 8px rgba(7,61,94,.06) !important;
  border-radius: 20px !important;
  overflow: hidden;
}
.container.py-5 .card::before {
  content: '';
  display: block;
  height: 5px;
  background: linear-gradient(90deg, var(--pp-navy), var(--pp-green), var(--pp-teal));
}
.container.py-5 .card-body { padding: 2.25rem !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Breadcrumbs
   ═══════════════════════════════════════════════════════════════════════ */

.breadcrumb-item a { color: var(--pp-green) !important; }
.breadcrumb-item.active { color: var(--pp-navy) !important; font-weight: 500; }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(7,61,94,.3); }

/* ═══════════════════════════════════════════════════════════════════════
   Tables
   ═══════════════════════════════════════════════════════════════════════ */

.table thead th { color: var(--pp-navy); font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
.table-hover tbody tr:hover td { background-color: rgba(93,178,40,.04) !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Map popup styling
   ═══════════════════════════════════════════════════════════════════════ */

.prop-popup { border-radius: 10px; overflow: hidden; min-width: 180px; }
.prop-popup__img { width: 100%; height: 110px; object-fit: cover; display: block; }
.prop-popup__body { padding: 8px 10px 10px; }
.prop-popup__title { font-weight: 600; font-size: .82rem; color: #0d2235; line-height: 1.3; margin-bottom: 3px; }
.prop-popup__price { font-weight: 800; font-size: .9rem; color: var(--pp-navy) !important; }

.leaflet-popup-content-wrapper { border-radius: 12px !important; padding: 0 !important; overflow: hidden; box-shadow: 0 8px 24px rgba(7,61,94,.18) !important; }
.leaflet-popup-content { margin: 0 !important; }
.leaflet-popup-tip-container { margin-top: -1px; }

/* ═══════════════════════════════════════════════════════════════════════
   Dashboard — sidebar nav & stats cards
   ═══════════════════════════════════════════════════════════════════════ */

.dashboard-sidebar .nav-link { border-radius: 8px; transition: background .15s, color .15s; }
.dashboard-sidebar .nav-link:hover { background: rgba(93,178,40,.07); color: var(--pp-green) !important; }
.dashboard-sidebar .nav-link.active { background: rgba(93,178,40,.12) !important; color: var(--pp-green) !important; font-weight: 600; }

/* Stats cards */
.stats-card, .card.bg-primary { border-radius: 14px !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Magazine / articles
   ═══════════════════════════════════════════════════════════════════════ */

.magazine-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(7,61,94,.14) !important; }
.article-card { border-radius: 14px !important; overflow: hidden; }

/* ═══════════════════════════════════════════════════════════════════════
   Professionals / agents
   ═══════════════════════════════════════════════════════════════════════ */

.agent-card:hover, .contractor-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(7,61,94,.14) !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Rentals / lease
   ═══════════════════════════════════════════════════════════════════════ */

.unit-card { border-radius: 14px !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Jobs board
   ═══════════════════════════════════════════════════════════════════════ */

.job-card:hover { box-shadow: 0 6px 20px rgba(7,61,94,.12) !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Finance / marketplace
   ═══════════════════════════════════════════════════════════════════════ */

.product-card:hover { transform: translateY(-3px); }

/* ═══════════════════════════════════════════════════════════════════════
   Footer
   ═══════════════════════════════════════════════════════════════════════ */

footer a:hover { color: var(--pp-green) !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Misc utility overrides
   ═══════════════════════════════════════════════════════════════════════ */

/* Spinner */
.spinner-border.text-primary { color: var(--pp-green) !important; }
.spinner-border-sm.text-primary { color: var(--pp-green) !important; }

/* Skeleton loading shimmer */
@keyframes pp-shimmer {
  0% { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}
.pp-skeleton {
  background: linear-gradient(90deg, #f0f2f5 25%, #e8eaed 50%, #f0f2f5 75%);
  background-size: 400px 100%;
  animation: pp-shimmer 1.4s infinite linear;
  border-radius: 6px;
}
