@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --brand-navy: #16213e;
  --brand-navy-dark: #0c1226;
  --brand-navy-light: #24345c;
  --brand-gold: #c9a227;
  --brand-gold-light: #e6c869;
  --brand-cream: #faf7f0;
  --brand-ink: #1d2233;
  --brand-radius: 14px;
}

body {
  background-color: var(--brand-cream);
  color: var(--brand-ink);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

h1, h2, h3, h4, h5, .navbar-brand, .brand-font {
  font-family: 'Playfair Display', Georgia, serif;
}

a { color: var(--brand-navy); }
a:hover { color: var(--brand-navy-light); }

.text-gold { color: var(--brand-gold) !important; }
.bg-gold { background-color: var(--brand-gold) !important; }

/* Navbar */
.site-navbar {
  background: linear-gradient(120deg, var(--brand-navy) 0%, var(--brand-navy-dark) 100%);
  box-shadow: 0 2px 10px rgba(0,0,0,.15);
}
.site-navbar .navbar-brand {
  color: #fff !important;
  font-weight: 700;
  letter-spacing: .01em;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.site-navbar .navbar-brand .brand-icon { color: var(--brand-gold-light); font-size: 1.15em; }
.site-navbar .nav-link { color: rgba(255,255,255,.82) !important; font-weight: 500; }
.site-navbar .nav-link:hover { color: var(--brand-gold-light) !important; }
.site-navbar .nav-link.admin-link { color: var(--brand-gold-light) !important; }

/* Buttons */
.btn-primary {
  --bs-btn-bg: var(--brand-navy);
  --bs-btn-border-color: var(--brand-navy);
  --bs-btn-hover-bg: var(--brand-navy-light);
  --bs-btn-hover-border-color: var(--brand-navy-light);
  --bs-btn-active-bg: var(--brand-navy-dark);
  --bs-btn-active-border-color: var(--brand-navy-dark);
  --bs-btn-disabled-bg: var(--brand-navy);
  --bs-btn-disabled-border-color: var(--brand-navy);
}
.btn-outline-primary {
  --bs-btn-color: var(--brand-navy);
  --bs-btn-border-color: var(--brand-navy);
  --bs-btn-hover-bg: var(--brand-navy);
  --bs-btn-hover-border-color: var(--brand-navy);
  --bs-btn-active-bg: var(--brand-navy);
  --bs-btn-active-border-color: var(--brand-navy);
}
.btn-gold {
  background-color: var(--brand-gold);
  border-color: var(--brand-gold);
  color: #2a2205;
  font-weight: 600;
}
.btn-gold:hover { background-color: var(--brand-gold-light); border-color: var(--brand-gold-light); color: #2a2205; }

/* Cards */
.card {
  border: 1px solid rgba(22,33,62,.08);
  border-radius: var(--brand-radius);
  box-shadow: 0 2px 14px rgba(22,33,62,.06);
}
.card:hover { box-shadow: 0 6px 20px rgba(22,33,62,.10); }

/* Hero */
.hero {
  background: radial-gradient(circle at 20% 20%, var(--brand-navy-light) 0%, var(--brand-navy) 45%, var(--brand-navy-dark) 100%);
  color: #fff;
  border-radius: var(--brand-radius);
  padding: 4rem 2rem;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 22px 22px;
  opacity: .5;
}
.hero > * { position: relative; }
.hero .display-6 { color: #fff; }
.hero .lead { color: rgba(255,255,255,.88); }
.hero-icon {
  width: 66px; height: 66px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.7rem; color: var(--brand-gold-light);
  margin-bottom: 1rem;
}

.card-elevated { box-shadow: 0 14px 40px rgba(22,33,62,.18); border: none; }

/* Nav pills (admin sub-nav) */
.nav-pills .nav-link { color: var(--brand-navy); }
.nav-pills .nav-link.active { background-color: var(--brand-navy); }

/* Forms */
.form-control:focus, .form-select:focus {
  border-color: var(--brand-navy-light);
  box-shadow: 0 0 0 .2rem rgba(22,33,62,.15);
}

/* Chat */
.chat-wrap { height: 75vh; overflow: hidden; }
.chat-sidebar { height: 75vh; overflow-y: auto; }
.chat-main { height: 75vh; }
.chat-messages { overflow-y: auto; background: #f1f0eb; }

.chat-bubble {
  max-width: 70%;
  padding: .5rem .75rem;
  border-radius: .9rem;
  word-wrap: break-word;
}
.chat-bubble-mine {
  background: var(--brand-navy);
  color: #fff;
  border-bottom-right-radius: .25rem;
}
.chat-bubble-theirs {
  background: #fff;
  border: 1px solid #e3e3e3;
  border-bottom-left-radius: .25rem;
}
.chat-bubble-mine .chat-time { color: rgba(255,255,255,.75); }
.chat-time { color: #999; font-size: .7rem; }

.list-group-item.active { background-color: var(--brand-navy); border-color: var(--brand-navy); }
.list-group-item.active .text-muted { color: rgba(255,255,255,.75) !important; }

footer { color: rgba(29,34,51,.55); }
