/*
 * queorum-theme.css
 * Bootstrap 5 variable overrides for Queorum brand.
 * Load AFTER bootstrap.min.css, BEFORE any page-specific styles.
 * This is the ONLY file where brand colours are defined.
 */

/* ── Google Fonts: Inter ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* ── Bootstrap root overrides ── */
:root {
  --bs-primary:               #1B3A6B;
  --bs-primary-rgb:           27, 58, 107;
  --bs-link-color:            #1B3A6B;
  --bs-link-color-rgb:        27, 58, 107;
  --bs-link-hover-color:      #152e55;
  --bs-body-font-family:      'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --bs-body-color:            #212529;
  --bs-border-radius:         0.5rem;
  --bs-card-border-color:     #dee2e6;

  /* Queorum custom tokens */
  --q-live-color:   #198754;
  --q-stage-bg:     #0D1B2A;
  --q-primary:      #1B3A6B;
  --q-primary-dark: #152e55;
}

/* ── Primary colour components ── */
.btn-primary {
  --bs-btn-bg:                #1B3A6B;
  --bs-btn-border-color:      #1B3A6B;
  --bs-btn-hover-bg:          #152e55;
  --bs-btn-hover-border-color:#152e55;
  --bs-btn-active-bg:         #112548;
  --bs-btn-active-border-color:#112548;
  --bs-btn-disabled-bg:       #1B3A6B;
  --bs-btn-disabled-border-color:#1B3A6B;
}
.btn-outline-primary {
  --bs-btn-color:             #1B3A6B;
  --bs-btn-border-color:      #1B3A6B;
  --bs-btn-hover-bg:          #1B3A6B;
  --bs-btn-hover-border-color:#1B3A6B;
  --bs-btn-active-bg:         #152e55;
}
.bg-primary           { background-color: #1B3A6B !important; }
.text-primary         { color: #1B3A6B !important; }
.border-primary       { border-color: #1B3A6B !important; }
.badge.bg-primary     { background-color: #1B3A6B !important; }
.navbar.bg-primary    { background-color: #1B3A6B !important; }
a                     { color: #1B3A6B; }
a:hover               { color: #152e55; }

/* ── Navbar brand logo ── */
.navbar-brand .q-brand-bold   { font-weight: 700; }
.navbar-brand .q-brand-light  { font-weight: 300; }

/* ── Active nav link highlight ── */
.navbar-dark .navbar-nav .nav-link.active {
  background: rgba(255,255,255,.15);
  border-radius: .375rem;
  font-weight: 600;
}
.navbar-dark .navbar-nav .nav-link {
  border-radius: .375rem;
  padding: .35rem .75rem;
  transition: background .15s;
}
.navbar-dark .navbar-nav .nav-link:hover {
  background: rgba(255,255,255,.1);
}

/* ── Speaker stage dark card ── */
.q-stage-card {
  background-color: var(--q-stage-bg);
  min-height: 180px;
}

/* ── Live pulse dot ── */
@keyframes q-blink { 0%,100%{opacity:1} 50%{opacity:.3} }
.q-live-dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: currentColor;
  animation: q-blink 1.2s infinite;
  vertical-align: middle;
}

/* ── Stat card value ── */
.q-stat-value {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.1;
}
.q-stat-label {
  font-size: .8rem;
  color: #6c757d;
  margin-top: .25rem;
}

/* ── Session list left accent ── */
.border-start-success { border-left-color: var(--q-live-color) !important; }
.border-start-primary { border-left-color: #1B3A6B !important; }

/* ── Join code kbd ── */
.q-join-code {
  font-family: 'Courier New', monospace;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .12em;
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: .375rem;
  padding: .35rem .75rem;
  display: inline-block;
}

/* ── Scrollable table wrapper ── */
.q-table-scroll { overflow-x: auto; }

/* ── Empty state ── */
.q-empty { padding: 3.5rem 1rem; text-align: center; }
.q-empty .bi  { font-size: 3rem; color: #adb5bd; }

/* ── Section label utility ── */
.q-section-label {
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #6c757d;
  margin-bottom: .5rem;
}

/* ── Agenda numbered circle ── */
.q-agenda-num {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 2px solid #dee2e6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  font-weight: 600;
  flex-shrink: 0;
}
.q-agenda-num.done   { background: #198754; border-color:#198754; color:#fff; }
.q-agenda-num.active { background: #1B3A6B; border-color:#1B3A6B; color:#fff; }

/* ── Activity log dot ── */
.q-log-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
}

/* ── Avatar circle ── */
.q-avatar {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: .85rem;
  flex-shrink: 0;
}
