:root {
  --brand-navy: #131A2C;
  --brand-navy-dark: #0C1220;
  --brand-accent: #2F6FED;
  --brand-cta: #FF9F1C;
  --brand-cta-dark: #E58600;
  --brand-surface: #F7F8FA;
  --brand-border: #E3E6EA;
  --brand-text-muted: #64748B;
  --brand-nav-link: #94A0B4;

  --bs-primary: var(--brand-navy);
  --bs-primary-rgb: 19, 26, 44;
  --bs-link-color: var(--brand-accent);
  --bs-link-color-rgb: 47, 111, 237;
  --bs-link-hover-color: var(--brand-navy);
  --bs-link-hover-color-rgb: 27, 42, 74;
  --bs-body-bg: var(--brand-surface);
  --bs-border-color: var(--brand-border);
  --bs-border-radius: .5rem;
  --bs-border-radius-sm: .375rem;
  --bs-border-radius-lg: .625rem;
  --bs-focus-ring-color: rgba(47, 111, 237, .25);
  --bs-font-sans-serif: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

body {
  color: #1F2937;
}

.bd-placeholder-img {
  font-size: 1.125rem;
  text-anchor: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

@media (min-width: 768px) {
  .bd-placeholder-img-lg {
    font-size: 3.5rem;
  }
}

.bi {
  vertical-align: -.125em;
  fill: currentColor;
  line-height: 1;
}

.bd-mode-toggle {
  z-index: 1500;
}

.bd-mode-toggle .dropdown-menu .active .bi {
  display: block !important;
}

.bg-cadetblue {
  --bs-bg-opacity: 1;
  color: #FFFFFFFF !important;
  background-color: var(--brand-navy) !important;
}

.palm_cursor {
  cursor: pointer;
}

.text-major {
  color: var(--brand-navy) !important;
}

.text-yellow {
  color: var(--brand-accent) !important;
}

.text-peach {
  color: #E85D4C !important;
}

.nav-link {
  color: var(--brand-nav-link) !important;
}

.nav-link.active {
  color: var(--brand-accent) !important;
}

.nav-link:hover {
  color: #FFFFFFFF !important;
}

.sidebar-heading {
  color: var(--brand-nav-link) !important;
  letter-spacing: .06em;
  font-weight: 600;
  opacity: .75;
}

.btn-toolbar {
  flex-wrap: wrap;
  row-gap: .5rem;
}

@media (max-width: 575.98px) {
  .btn-group > .btn,
  .btn-group > .dropdown {
    flex: 1 1 auto;
  }
}

@media (pointer: coarse) {
  .btn-sm {
    min-height: 2.25rem;
  }
}

.btn-outline-custom {
  --bs-btn-color: var(--brand-navy);
  --bs-btn-border-color: var(--brand-border);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-cta);
  --bs-btn-hover-border-color: var(--brand-cta);
  --bs-btn-focus-shadow-rgb: 255, 159, 28;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--brand-cta-dark);
  --bs-btn-active-border-color: var(--brand-cta-dark);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: var(--brand-text-muted);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--brand-border);
  --bs-gradient: none;
}

.btn-cta {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--brand-cta);
  --bs-btn-border-color: var(--brand-cta);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-cta-dark);
  --bs-btn-hover-border-color: var(--brand-cta-dark);
  --bs-btn-focus-shadow-rgb: 255, 159, 28;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--brand-cta-dark);
  --bs-btn-active-border-color: var(--brand-cta-dark);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--brand-cta);
  --bs-btn-disabled-border-color: var(--brand-cta);
  --bs-gradient: none;
}

/* Elevated cards, tables, forms, modals for a more polished, product-grade feel */

.card {
  border-color: var(--brand-border);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
}

.card-header {
  background-color: rgba(19, 26, 44, .03);
  border-bottom-color: var(--brand-border);
  font-weight: 600;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.nav-link:focus-visible {
  outline: 2px solid var(--brand-accent);
  outline-offset: 2px;
}

.table thead th {
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .75rem;
  font-weight: 600;
  color: var(--brand-text-muted);
  border-bottom-width: 2px;
  border-bottom-color: var(--brand-border);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--brand-accent);
}

.modal-content {
  border: none;
  border-radius: var(--bs-border-radius-lg);
  box-shadow: 0 8px 24px rgba(16, 24, 40, .16);
}

.shop-hero {
  background: linear-gradient(180deg, rgba(19, 26, 44, .05) 0%, rgba(255, 159, 28, .05) 100%);
}

.receipt-preview {
  font-size: .9rem;
  background: #fff;
}

.receipt-preview table {
  font-size: .85rem;
}

.receipt-preview img {
  max-width: 100%;
}
