:root {
  --bh-primary: #23645a;
  --bh-primary-dark: #194c44;
  --bh-accent: #d99f35;
  --bh-ink: #1f2933;
  --bh-muted: #667085;
  --bh-bg: #f7f5ef;
  --bh-line: #d8ded9;
}

body {
  background: var(--bh-bg);
  color: var(--bh-ink);
  font-size: 16px;
}

a {
  color: var(--bh-primary);
}

.navbar {
  box-shadow: 0 1px 0 rgba(31, 41, 51, 0.08);
}

.btn {
  min-height: 44px;
  border-radius: .5rem;
  font-weight: 600;
}

.btn-primary {
  background: var(--bh-primary);
  border-color: var(--bh-primary);
}

.btn-primary:hover,
.btn-primary:focus {
  background: var(--bh-primary-dark);
  border-color: var(--bh-primary-dark);
}

.btn-outline-primary {
  color: var(--bh-primary);
  border-color: var(--bh-primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background: var(--bh-primary);
  border-color: var(--bh-primary);
}

.page-shell {
  max-width: 1120px;
  margin: 0 auto;
}

.event-card,
.admin-card,
.slot-card {
  border: 1px solid var(--bh-line);
  border-radius: .5rem;
  background: #fff;
}

.event-card {
  transition: transform .14s ease, box-shadow .14s ease;
}

.event-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 .75rem 1.8rem rgba(31, 41, 51, .08);
}

.badge-soft {
  background: rgba(35, 100, 90, .12);
  color: var(--bh-primary-dark);
}

.form-control,
.form-select {
  min-height: 44px;
  border-radius: .5rem;
}

.touch-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
}

.admin-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
}

.mobile-table-card {
  display: block;
}

.desktop-table {
  display: none;
}

.presence-button {
  min-height: 52px;
}

.print-only {
  display: none;
}

.qr-box svg {
  width: min(70vw, 280px);
  height: auto;
}

@media (min-width: 768px) {
  .touch-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-actions {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .mobile-table-card {
    display: none;
  }

  .desktop-table {
    display: table;
  }
}

@media print {
  body {
    background: #fff;
  }

  .no-print,
  .navbar,
  .alert,
  .btn {
    display: none !important;
  }

  .print-only {
    display: block;
  }

  .page-shell {
    max-width: none;
  }

  .event-card,
  .admin-card,
  .slot-card {
    border: none;
    box-shadow: none;
  }

  a[href]::after {
    content: "";
  }
}
