/* Vibrant, friendly theme — high contrast nav/buttons */
:root{
  --ink-900:#0f172a; --ink-700:#334155; --ink-600:#475569;
  --bg-50:#f8fafc; --card-bg:#ffffff;

  /* Primary gradient (teal → indigo) */
  --brand-1:#06b6d4;   /* cyan-500 */
  --brand-2:#6366f1;   /* indigo-500 */
  --brand-3:#a855f7;   /* purple-500 (accent) */

  /* Action colours */
  --primary:#3b82f6;       /* blue-500 */
  --primary-600:#2563eb;   /* blue-600 */
  --success:#10b981;
  --warning:#f59e0b;
}

/* Base */
html,body{height:100%}
body{
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
  background:var(--bg-50); color:var(--ink-900);
}

/* NAVBAR */
.bg-brand{
  background: linear-gradient(90deg, var(--brand-1), var(--brand-2));
}
.navbar{ box-shadow:0 6px 18px rgba(2,8,20,.06); }
.navbar .brand{ color:#fff!important; font-weight:700; letter-spacing:.2px; }
.navbar .nav-link{ color:#eef2ff!important; opacity:.95; }
.navbar .nav-link:hover, .navbar .nav-link:focus{ opacity:1; text-decoration:underline; text-underline-offset:3px; }
.navbar .btn{
  background: #fff; color: var(--primary-600); border: 0; font-weight:600;
  box-shadow:0 4px 12px rgba(2,8,20,.08); border-radius:.65rem; padding:.45rem .9rem;
}
.navbar .btn:hover{ background:#eef2ff; color:var(--primary-600); }

/* Buttons */
.btn-primary{ background-color:var(--primary); border-color:var(--primary); }
.btn-primary:hover{ background-color:var(--primary-600); border-color:var(--primary-600); }
.btn-outline-primary{ color:var(--primary-600); border-color:var(--primary-600); }
.btn-outline-primary:hover{ background:var(--primary-600); color:#fff; }

/* Hero */
.hero-gradient{
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(6,182,212,.25), transparent),
    radial-gradient(1000px 500px at 120% 10%, rgba(99,102,241,.25), transparent);
}

/* Cards & layout */
.soft-card{
  border:0; background:var(--card-bg);
  box-shadow:0 14px 40px rgba(2,8,20,.07);
  border-radius:1rem;
}
.soft-card:hover{ box-shadow:0 18px 50px rgba(2,8,20,.1); }

.map-frame{
  height:70vh; min-height:420px; border-radius:1rem;
  overflow:hidden; box-shadow:0 14px 40px rgba(2,8,20,.07); background:#eef2f7;
}

/* Search box in header (if present) */
.header-search input{
  border-radius:.75rem; border:1px solid #dbeafe; background:#fff;
  box-shadow:0 4px 12px rgba(59,130,246,.12);
}
.header-search input:focus{
  outline:none; border-color:var(--primary-600);
  box-shadow:0 0 0 .25rem rgba(37,99,235,.15);
}

/* Badges & table highlights */
.badge-swatch{ display:inline-block; width:.8rem; height:.8rem; border-radius:.4rem; margin-right:.35rem; }
.table-success { --bs-table-bg: rgba(16,185,129,.12); }

/* Accessibility focus */
:focus-visible{ outline:3px solid rgba(99,102,241,.55); outline-offset:2px; border-radius:.4rem; }
