:root{
  --navy:#053082;
  --navy-dark:#03204f;
  --navy-soft:#e9eef9;
  --navy-light:#1a54c4;
  --gold:#f5a700;
  --gold-dark:#cf8e00;
  --bg:#f8f9fc;
  --ink:#0d1b3d;
  --ink-soft:#5b6b8c;
  --white:#ffffff;
  --border:#e1e6f2;
  --radius:16px;
  --shadow: 0 10px 30px rgba(5,48,130,0.10);
  --red:#e5484d;
  --success:#00a08a;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--bg); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.5;}
h1,h2,h3,.display{font-family:'Space Grotesk',sans-serif; font-weight:700; letter-spacing:-0.02em;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}

.btn{display:inline-flex; align-items:center; gap:6px; border:none; cursor:pointer; font-family:'Inter',sans-serif; font-weight:600; font-size:14px; padding:10px 20px; border-radius:999px; text-decoration:none; transition:.2s;}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:var(--navy-dark);}
.btn-outline{background:transparent; color:var(--navy); border:1.5px solid var(--navy);}
.btn-outline:hover{background:var(--navy-soft);}
.btn-mint{background:var(--gold); color:#fff;}
.btn-mint:hover{background:var(--gold-dark);}
.btn-danger{background:var(--red); color:#fff;}
.btn:disabled{opacity:.5; cursor:not-allowed;}

.card{background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius); padding:22px;}
.shadow-card{box-shadow:var(--shadow);}

input, select, textarea{
  width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--border);
  font-family:'Inter',sans-serif; font-size:15px; background:var(--bg); margin-bottom:12px;
}
input:focus, select:focus, textarea:focus{outline:2px solid var(--navy); border-color:var(--navy);}
label{display:block; font-weight:600; font-size:14px; margin-bottom:6px;}

.auth-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;}
.auth-card{width:100%; max-width:440px;}
.logo{display:flex; align-items:center; justify-content:center; margin-bottom:24px;}
.logo img{height:60px; width:auto; display:block;}

/* Dashboard shell */
.dash{display:flex; min-height:100vh;}
.sidebar{width:230px; background:var(--navy-dark); color:#b9c5e6; padding:24px 16px; flex-shrink:0;}
.sidebar .logo{justify-content:flex-start; margin-bottom:20px;}
.sidebar .logo img{height:44px; filter:brightness(0) invert(1);}
.sidebar a{display:block; padding:11px 14px; border-radius:10px; text-decoration:none; color:#b9c5e6; font-weight:500; font-size:14px; margin-bottom:4px; cursor:pointer;}
.sidebar a.active, .sidebar a:hover{background:rgba(255,255,255,0.08); color:#fff;}
.main{flex:1; padding:32px; max-width:1100px;}
.topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:28px;}

.stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:28px;}
.stat-card{background:var(--white); border:1.5px solid var(--border); border-radius:16px; padding:20px; position:relative; overflow:hidden;}
.stat-card .num{font-family:'Space Grotesk',sans-serif; font-size:32px; font-weight:700;}
.stat-card .lbl{color:var(--ink-soft); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.03em;}
.stat-card.accent{background:linear-gradient(135deg, var(--navy), var(--navy-light)); color:#fff;}
.stat-card.accent .lbl{color:rgba(255,255,255,0.8);}
.stat-card .glow{position:absolute; right:-10px; top:-10px; font-size:60px; opacity:.15;}

table{width:100%; border-collapse:collapse; background:var(--white); border-radius:14px; overflow:hidden;}
th, td{text-align:left; padding:12px 14px; border-bottom:1px solid var(--border); font-size:14px;}
th{background:var(--navy-soft); color:var(--navy); font-weight:700; font-size:12px; text-transform:uppercase;}
.badge{display:inline-block; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:700;}
.badge-new{background:#fde7e7; color:var(--red);}
.badge-viewed{background:#fff4d6; color:var(--gold-dark);}
.badge-contacted{background:#e2f7f0; color:var(--success);}
.badge-closed{background:#eee; color:#888;}
.badge-active{background:#e2f7f0; color:var(--success);}
.badge-pending{background:#fff4d6; color:var(--gold-dark);}
.badge-suspended{background:#fde7e7; color:var(--red);}
.badge-hot{background:#fde7e7; color:var(--red);}
.badge-search{background:var(--navy-soft); color:var(--navy);}
.contact-icons{display:flex; gap:8px;}
.contact-icons a{
  width:30px; height:30px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none; font-size:14px; color:#fff;
}
.contact-icons a.call{background:var(--navy);}
.contact-icons a.whatsapp{background:#25D366;}

.toast{position:fixed; bottom:24px; right:24px; background:var(--ink); color:#fff; padding:14px 20px; border-radius:12px; font-weight:600; box-shadow:var(--shadow); z-index:999; opacity:0; transform:translateY(10px); transition:.3s;}
.toast.show{opacity:1; transform:none;}

/* Ad slots */
.ad-slot{margin:28px 0; text-align:center;}
.ad-slot .ad-label{font-size:10px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px;}

@media(max-width:800px){
  .dash{flex-direction:column;}
  .sidebar{width:100%; display:flex; overflow-x:auto; gap:4px;}
  .sidebar .logo{display:none;}
  .main{padding:20px;}
}

/* Banner carousel (shared by homepage + listing pages) */
.banner-carousel{position:relative; max-width:1180px; margin:0 auto; border-radius:20px; overflow:hidden; box-shadow:var(--shadow);}
.banner-track{display:flex; transition:transform .5s ease;}
.banner-slide{min-width:100%; aspect-ratio:16/5; background:var(--navy-soft);}
.banner-slide img{width:100%; height:100%; object-fit:cover; display:block;}
.banner-dots{position:absolute; bottom:14px; left:50%; transform:translateX(-50%); display:flex; gap:6px;}
.banner-dots span{width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.6); cursor:pointer;}
.banner-dots span.active{background:#fff; width:22px; border-radius:5px; transition:.3s;}

/* Listing page results */
.location-pill{display:inline-flex; align-items:center; gap:6px; background:var(--navy-soft); color:var(--navy); font-weight:600; font-size:13px; padding:6px 14px; border-radius:999px;}
.listing-card{background:var(--white); border:1.5px solid var(--border); border-radius:18px; padding:20px; transition:.2s; display:flex; gap:16px; margin-bottom:14px;}
.listing-card:hover{box-shadow:var(--shadow); border-color:var(--navy);}
.listing-rank{width:34px; height:34px; border-radius:50%; background:var(--navy); color:#fff; font-weight:700; font-family:'Space Grotesk'; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.listing-rank.fixed{background:var(--gold);}
