:root {
  --gp-primary: #1a5c3a;
  --gp-primary-dark: #134428;
  --gp-secondary: #2d8653;
  --gp-amber: #b45309;
  --gp-bg: #ffffff;
}

body { font-family: 'Segoe UI', system-ui, sans-serif; color: #1f2937; background-color: var(--gp-bg); }

/* Nav */
.navbar-brand { color: var(--gp-primary) !important; font-weight: 700; font-size: 1.25rem; }
.navbar-brand img { width: 28px; }
.nav-link { color: #374151 !important; font-weight: 500; }
.nav-link:hover, .nav-link.active { color: var(--gp-primary) !important; }
.btn-primary { background: var(--gp-primary); border-color: var(--gp-primary); }
.btn-primary:hover { background: var(--gp-primary-dark); border-color: var(--gp-primary-dark); }
.btn-outline-primary { color: var(--gp-primary); border-color: var(--gp-primary); }
.btn-outline-primary:hover { background: var(--gp-primary); border-color: var(--gp-primary); color: #fff; }
.text-primary { color: var(--gp-primary) !important; }
.bg-primary { background-color: var(--gp-primary) !important; }

/* Hero */
.hero-section { background: linear-gradient(135deg, var(--gp-primary) 0%, var(--gp-secondary) 100%); min-height: 480px; }

/* Property Cards */
.property-card { border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; transition: box-shadow .2s; }
.property-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.property-card .card-img-top { height: 200px; object-fit: cover; }
.property-card .card-img-wrapper { position: relative; overflow: hidden; }
.property-card .card-img-wrapper:hover .card-img-top { transform: scale(1.05); transition: transform .3s; }

/* Status ribbon */
.status-ribbon {
  position: absolute;
  bottom: 22px;
  right: -42px;
  width: 160px;
  padding: 5px 0;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  transform: rotate(-45deg);
  transform-origin: center;
  color: #fff;
  pointer-events: none;
  z-index: 2;
  box-shadow: 0 1px 4px rgba(0,0,0,.18);
}
.ribbon-green  { background: rgba(22,101,52,.72); }
.ribbon-red    { background: rgba(185,28,28,.78); }
.ribbon-amber  { background: rgba(180,120,0,.78); }

/* Price badge */
.price-badge { position: absolute; top: 12px; left: 12px; background: var(--gp-primary); color: #fff; padding: 4px 10px; border-radius: 8px; font-weight: 600; font-size: .85rem; z-index: 2; }
.verified-badge { position: absolute; top: 12px; right: 12px; background: #3b82f6; color: #fff; padding: 3px 8px; border-radius: 8px; font-size: .75rem; font-weight: 600; z-index: 2; }

/* Admin Sidebar */
.admin-sidebar { width: 240px; min-height: 100vh; background: var(--gp-primary); }
.admin-sidebar .nav-link { color: rgba(255,255,255,.82) !important; border-radius: 8px; padding: .55rem 1rem; font-size: .9rem; }
.admin-sidebar .nav-link:hover, .admin-sidebar .nav-link.active { background: rgba(255,255,255,.15); color: #fff !important; }
.admin-sidebar .nav-link svg, .admin-sidebar .nav-link i { margin-right: 8px; width: 16px; }

/* Stat cards */
.stat-card { border-radius: 12px; border: 1px solid #e5e7eb; }
.stat-card .stat-value { font-size: 2rem; font-weight: 700; color: var(--gp-primary); }

/* Table */
.table th { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #6b7280; }

/* Filters panel */
.filters-panel { background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 12px; }

/* Footer */
footer { background: var(--gp-primary) !important; }

/* Forms */
.form-label { font-weight: 500; font-size: .9rem; }
.form-control:focus { border-color: var(--gp-primary); box-shadow: 0 0 0 .2rem rgba(26,92,58,.2); }

/* Status badges */
.badge-available  { background: #dcfce7; color: #166534; }
.badge-rented     { background: #fee2e2; color: #991b1b; }
.badge-sold       { background: #fee2e2; color: #991b1b; }
.badge-reserved   { background: #fef9c3; color: #92400e; }

/* PWA install banner */
#pwa-install-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; }

/* Section headings */
.section-tag { font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gp-primary); }

/* WhatsApp button */
.btn-whatsapp { background: #25d366; color: #fff; }
.btn-whatsapp:hover { background: #128c7e; color: #fff; }
