body {
    position: relative;
    z-index: 0;
    overflow-x: hidden;
    background-image: url('/static/images/white-pattern.png');
    padding-top: env(safe-area-inset-top);
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.15);
    z-index: -1;
    pointer-events: none;
}

body.env-development {
    border-color: red;
    border-width: thick;
    border-style: inset;
}

.btn-co-primary {
    --bs-btn-font-weight: 600;
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #002856;
    --bs-btn-border-color: #002856;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #001f44; /* ~10% darker */
    --bs-btn-hover-border-color: #001f44;
    --bs-btn-focus-shadow-rgb: 0, 40, 86; /* RGB of #002856 */
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #001631; /* ~20% darker */
    --bs-btn-active-border-color: #001631;

    --bs-btn-disabled-color: #e0e0e0;
    --bs-btn-disabled-bg: #7a8aa1;      /* muted blue-gray */
    --bs-btn-disabled-border-color: #7a8aa1;
    --bs-btn-disabled-opacity: 1;        /* avoid Bootstrap fading */
}

.btn-co-secondary {
    --bs-btn-font-weight: 600;
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #bede19;
    --bs-btn-border-color: #bede19;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #a7c615; /* ~10% darker */
    --bs-btn-hover-border-color: #a7c615;
    --bs-btn-focus-shadow-rgb: 190, 222, 25; /* RGB of #bede19 */
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #91af12; /* ~20% darker */
    --bs-btn-active-border-color: #91af12;

    --bs-btn-disabled-color: #f5f7e8;
    --bs-btn-disabled-bg: #cfd89a;          /* muted lime */
    --bs-btn-disabled-border-color: #cfd89a;
    --bs-btn-disabled-opacity: 1;
}

.btn-co-tertiary {
    --bs-btn-font-weight: 600;
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #7c92ff;
    --bs-btn-border-color: #7c92ff;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #647cff; /* ~10% darker */
    --bs-btn-hover-border-color: #647cff;
    --bs-btn-focus-shadow-rgb: 124, 146, 255; /* RGB of #7c92ff */
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #4c67ff; /* ~20% darker */
    --bs-btn-active-border-color: #4c67ff;

    --bs-btn-disabled-color: #eef0ff;
    --bs-btn-disabled-bg: #b8c2ff;          /* muted periwinkle */
    --bs-btn-disabled-border-color: #b8c2ff;
    --bs-btn-disabled-opacity: 1;
}

.modal-header {
    background-color: rgba(124, 146, 255, 0.4);
}

.bg-light.text-muted {
    opacity: 0.5;
}

.nav-link {
    text-wrap-mode: nowrap;
}

.table-container {
    background: #ffffff;
    padding: 0.25rem;
    border-radius: 0.25rem;
}
.table td.day-cell {
    background-clip: padding-box;
}

/* Day-of-week tint (Mon..Sun) */
.table td.day-cell.dow-0 {
    --bs-table-bg: rgba(0, 0, 0, .02);
}

.table td.day-cell.dow-1 {
    --bs-table-bg: rgba(0, 0, 0, .04);
}

.table td.day-cell.dow-2 {
    --bs-table-bg: rgba(0, 0, 0, .06);
}

.table td.day-cell.dow-3 {
    --bs-table-bg: rgba(0, 0, 0, .08);
}

.table td.day-cell.dow-4 {
    --bs-table-bg: rgba(0, 0, 0, .10);
}

.table td.day-cell.dow-5 {
    --bs-table-bg: rgba(0, 0, 0, .12);
}

.table td.day-cell.dow-6 {
    --bs-table-bg: rgba(0, 0, 0, .14);
}

/* Week tint multiplier: apply an inset shadow overlay so it stacks with dow */
.table td.day-cell.week-0, .table td.day-cell.week-2, .table td.day-cell.week-4 {
    box-shadow: inset 0 0 0 9999px rgba(0, 40, 86, .10);
}

.table td.day-cell.week-1, .table td.day-cell.week-3 {
    box-shadow: inset 0 0 0 9999px rgba(190, 222, 25, .10);
}

/* Today */
.table td.day-cell.is-today {
    outline: 2px solid rgba(0, 0, 0, .35);
    outline-offset: -2px;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}

#reservationsTable thead tr.filters th {
  padding: .35rem .5rem;
  vertical-align: middle;
}

.dataTables_wrapper {
  width: 100%;
}
#reservationsTable thead tr:nth-child(2) th { /* label row */
  font-weight: 600;
  white-space: nowrap;
}
#reservationsTable thead th {
  cursor: default !important;
}

#reservationsTable thead tr.filters input,
#reservationsTable thead tr.filters select {
  width: 100%;
  min-width: 90px;
}
#reservationsTable thead th.sorting::before,
#reservationsTable thead th.sorting::after,
#reservationsTable thead th.sorting_asc::before,
#reservationsTable thead th.sorting_asc::after,
#reservationsTable thead th.sorting_desc::before,
#reservationsTable thead th.sorting_desc::after,
#reservationsTable thead th.sorting_asc_disabled::before,
#reservationsTable thead th.sorting_asc_disabled::after,
#reservationsTable thead th.sorting_desc_disabled::before,
#reservationsTable thead th.sorting_desc_disabled::after {
  display: none !important;
  content: none !important;
}
#reservationsTable_wrapper .dataTables_length,
#reservationsTable_wrapper .dataTables_info,
#reservationsTable_wrapper .dataTables_filter,
#reservationsTable_wrapper .dataTables_paginate {
    /* adjust as you like */
    margin: 1rem 1rem;
}

.allergen-icon {
  width: 24px;
  height: 24px;
  object-fit: contain;
  cursor: pointer;
}