/* US + Australia palette: deep blue (shared), coral (US), gold (Australia) */
:root {
  --color-deep-blue: #1a365d;
  --color-coral: #c53030;
  --color-gold: #b7791f;
  --color-gold-soft: #d69e2e;
  --font-heading: 'DM Sans', system-ui, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.card-title,
.navbar-brand {
  font-family: var(--font-heading);
}

/* Prevent overscroll bounce at top/bottom of page */
html, body {
  overscroll-behavior-y: none;
}

/* Section spacing: use mb-5 for main sections, mb-3 for subsection titles */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: rgba(26, 54, 93, 0.02);
}

main {
  flex: 1;
}

/* Bootstrap overrides */
.btn-primary {
  background-color: var(--color-deep-blue);
  border-color: var(--color-deep-blue);
}
.btn-primary:hover {
  background-color: #2c5282;
  border-color: #2c5282;
}

/* US accent for Chase / US locations */
.badge-us,
.card-us .card-title {
  color: var(--color-coral);
}
.card-us {
  border-left: 4px solid var(--color-coral);
}

/* Australia accent for Ella / Melbourne */
.badge-au,
.card-au .card-title {
  color: var(--color-gold);
}
.card-au {
  border-left: 4px solid var(--color-gold);
}

.navbar-brand {
  font-weight: 600;
}

.card {
  border-radius: 0.5rem;
}

/* Preserve line breaks and spacing in journal entry body */
.entry-body {
  white-space: pre-wrap;
}

/* Journal entry by author: Chase = red, Ella = blue */
.journal-entry-chase {
  border-left: 4px solid var(--color-coral);
}
.journal-entry-chase .card-header:first-child {
  border-radius: 0.5rem 0.5rem 0 0;
}
.journal-entry-header-chase {
  background-color: rgba(197, 48, 48, 0.08);
  color: var(--color-coral);
}
.journal-entry-ella {
  border-left: 4px solid var(--color-deep-blue);
}
.journal-entry-ella .card-header:first-child {
  border-radius: 0.5rem 0.5rem 0 0;
}
.journal-entry-header-ella {
  background-color: rgba(26, 54, 93, 0.08);
  color: var(--color-deep-blue);
}

/* Section dividers (theme-colored) */
hr {
  border: 0;
  border-top: 1px solid rgba(26, 54, 93, 0.15);
}

/* Form focus (theme color) */
.form-control:focus,
.form-select:focus {
  border-color: var(--color-deep-blue);
  box-shadow: 0 0 0 0.2rem rgba(26, 54, 93, 0.2);
  outline: 0;
}

/* Themed alerts */
.alert-info {
  background-color: rgba(26, 54, 93, 0.08);
  border-color: var(--color-deep-blue);
  color: #1a365d;
}
.alert-success {
  background-color: rgba(183, 121, 31, 0.12);
  border-color: var(--color-gold);
  color: #5a4a1a;
}
.alert-danger {
  background-color: rgba(197, 48, 48, 0.08);
  border-color: var(--color-coral);
  color: #7b2d2d;
}

/* Footer top border */
footer {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

/* Focus rings (accessibility) */
.btn:focus-visible,
.btn-primary:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(26, 54, 93, 0.4);
  outline: 0;
}
.btn-outline-primary:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(26, 54, 93, 0.25);
  outline: 0;
}
.nav-link:focus-visible,
a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 2px;
}

/* Dashboard card hover */
.card-hover {
  transition: box-shadow 0.2s ease;
}
.card-hover:hover {
  box-shadow: 0 0.5rem 1rem rgba(26, 54, 93, 0.12);
}

/* Nav link hover */
.navbar .nav-link:hover {
  color: rgba(255, 255, 255, 0.95);
}
