/* Shared public hero treatment. Kept last in the cascade for consistent contrast. */
/* Admin dashboard styles are grouped at the end: actions, metrics, timeline, calendar, responsive rules. */
.timing-board {
  padding: 14px 16px 16px;
  gap: 14px;
  background: #fff;
}
.timing-category {
  border: 1px solid #e1ebf0;
  border-radius: 12px;
  padding: 16px;
  background: #fbfdfe;
}
.timing-category:last-child {
  border-right: 1px solid #e1ebf0;
}
.timing-category > header {
  padding-bottom: 10px;
  border-bottom: 1px solid #e7eef2;
}
.timing-booking {
  padding: 12px 2px;
}
@media (max-width: 900px) {
  .timing-board {
    padding: 12px;
  }
  .timing-category {
    border-right: 1px solid #e1ebf0 !important;
  }
}
@media (max-width: 600px) {
  .timing-board {
    padding: 10px;
  }
  .timing-category {
    padding: 13px;
  }
}
.dashboard-action-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
}
.calendar-legend span:before {
  display: none !important;
}
.calendar-legend span {
  gap: 4px;
}
.calendar-legend .legend-all {
  color: #1685c8 !important;
}
.calendar-legend .legend-confirmed {
  color: #1a9b68 !important;
}
.calendar-legend .legend-checked-in {
  color: #7654bd !important;
}
.calendar-legend .legend-pending {
  color: #d89a2a !important;
}
.calendar-legend .legend-completed {
  color: #65768a !important;
}
.calendar-legend .legend-maintenance {
  color: #e07b16 !important;
}
.calendar-legend .legend-closed,
.calendar-legend .legend-no-show {
  color: #b83a3a !important;
}
.dashboard-section .badge.no-show,
.dashboard-section .badge.no_show,
.dashboard-section .badge[data-status="NO_SHOW"],
.ops-calendar .no-show,
.ops-calendar .no_show {
  border-color: #e6aaa4 !important;
  background: #fff1ef !important;
  color: #8f2929 !important;
}
.status-dot.no_show,
.status-dot.no-show {
  background: #b83a3a !important;
  border-color: #ffd0cc !important;
}
.legend-maintenance:before,
.calendar-legend .legend-maintenance:before {
  background: #e07b16 !important;
}
.legend-no-show:before {
  background: #b83a3a;
}
.ops-day i.maintenance,
.day-event.maintenance {
  background: #fff0d2 !important;
  border-left-color: #e07b16 !important;
  color: #8a4c08 !important;
}
.ops-day i.no_show,
.day-event.no_show {
  background: #ffe1df !important;
  border-left-color: #b83a3a !important;
  color: #8f2929 !important;
}
.status-dot.no_show {
  background: #b83a3a !important;
  border-color: #ffd0cc !important;
}
.timeline-maintenance {
  border-left-color: #e07b16 !important;
  background: #fff8e9 !important;
}
.timeline-maintenance .badge {
  border-color: #efc77e !important;
  background: #fff0d2 !important;
  color: #8a4c08 !important;
}
/* Timeline event cards: separate time, booking identity, status, and expansion affordance. */
.ops-timeline {
  display: grid !important;
  gap: 10px !important;
  padding: 12px !important;
  border: 0 !important;
  background: #f5f9fb !important;
}
.timeline-booking {
  overflow: hidden;
  border: 1px solid #d3e2eb !important;
  border-left: 6px solid #7654bd !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 5px 14px #173c5510;
}
.timeline-booking > summary.queue-booking {
  display: grid !important;
  grid-template-columns: 155px minmax(0, 1fr) auto 24px !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 92px !important;
  padding: 18px 20px !important;
  background: #fff !important;
}
.timeline-booking > summary.queue-booking time {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 8px 10px;
  border-radius: 10px;
  color: #4c398e;
  background: #f1edfb;
  font-size: 0.92rem !important;
  font-weight: 900 !important;
  text-align: center;
}
.timeline-booking > summary.queue-booking div {
  min-width: 0;
}
.timeline-booking > summary.queue-booking div b {
  display: block;
  color: #123b55;
  font-size: 1.05rem !important;
}
.timeline-booking > summary.queue-booking div small {
  display: block;
  margin-top: 6px;
  color: #637b89;
  font-size: 0.82rem !important;
}
.timeline-booking > summary.queue-booking .badge {
  grid-column: auto;
  justify-self: stretch;
  padding: 9px 12px !important;
  border-color: #cbb7f2;
  background: #f4efff;
  color: #5a3693;
  font-size: 0.72rem !important;
  text-align: center;
}
.timeline-booking > summary.queue-booking i {
  color: #537487;
  font-size: 1.1rem;
  font-style: normal;
  transition: transform 0.2s;
}
.timeline-booking[open] > summary.queue-booking i {
  transform: rotate(180deg);
}
.timeline-booking-details {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  padding: 16px 24px 18px 193px !important;
  border-top: 1px solid #e2ebf0;
  background: #f8fbfd !important;
}
.timeline-booking-details p {
  font-size: 0.82rem !important;
}
.timeline-booking-details > div {
  display: flex;
  gap: 8px;
}
.timeline-maintenance,
.timeline-closure {
  display: grid !important;
  grid-template-columns: 155px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 82px;
  padding: 16px 20px !important;
  border-radius: 14px !important;
  box-shadow: 0 5px 14px #173c5510;
}
.timeline-maintenance {
  border: 1px solid #eed9a8 !important;
  border-left: 6px solid #d38a29 !important;
  background: #fffaf0 !important;
}
.timeline-closure {
  border: 1px solid #efcbc7 !important;
  border-left: 6px solid #c75c59 !important;
  background: #fff6f5 !important;
}
.timeline-maintenance time,
.timeline-closure time {
  font-size: 0.9rem;
  font-weight: 900;
}
.timeline-maintenance b,
.timeline-closure b {
  font-size: 1rem;
}
.timeline-maintenance small,
.timeline-closure small {
  display: block;
  margin-top: 5px;
  font-size: 0.8rem;
}
.timeline-maintenance .badge {
  background: #fff0c9;
  color: #8d5a0c;
}
.timeline-closure .badge {
  background: #ffe2df;
  color: #a03e37;
}
@media (max-width: 700px) {
  .timeline-booking > summary.queue-booking {
    grid-template-columns: 1fr auto !important;
    gap: 10px !important;
  }
  .timeline-booking > summary.queue-booking time {
    justify-content: flex-start;
    grid-column: 1/-1;
  }
  .timeline-booking > summary.queue-booking .badge {
    grid-column: 1;
    justify-self: start;
  }
  .timeline-booking-details {
    align-items: stretch !important;
    flex-direction: column !important;
    padding: 14px !important;
  }
  .timeline-booking-details > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .timeline-maintenance,
  .timeline-closure {
    grid-template-columns: 1fr auto !important;
  }
  .timeline-maintenance time,
  .timeline-closure time {
    grid-column: 1/-1;
  }
}
/* Final accessibility overrides: this block intentionally wins over shared theme rules. */
/* Admin booking filters and master/detail cards. */
.admin-content .admin-booking-card > summary {
  grid-template-columns: 76px minmax(0, 1fr) 190px auto 20px !important;
}
.admin-content .booking-customer,
.admin-content .booking-place {
  min-width: 0;
}
.admin-content .booking-place {
  padding-left: 4px;
}
.admin-content .booking-place b,
.admin-content .booking-place span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 1150px) {
  .admin-content .admin-booking-card > summary {
    grid-template-columns: 68px minmax(0, 1fr) 160px auto 18px !important;
  }
}
@media (max-width: 760px) {
  .admin-content .admin-booking-card > summary {
    grid-template-columns: 58px minmax(0, 1fr) 20px !important;
    align-items: center !important;
  }
  .admin-content .booking-customer,
  .admin-content .booking-place {
    grid-column: 2 !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
  }
  .admin-content .booking-place {
    grid-row: 2 !important;
  }
  .admin-content .booking-state {
    grid-column: 2 !important;
    grid-row: 3 !important;
  }
  .admin-content .booking-card-arrow {
    grid-column: 3 !important;
    grid-row: 1/4 !important;
  }
  .admin-content .booking-date-block {
    grid-column: 1 !important;
    grid-row: 1/4 !important;
  }
}

/* Booking detail cards must stay in normal flow so the payment panel cannot cover arrival guidance. */
.booking-detail-side,
.booking-detail-side .payment-summary {
  position: static !important;
}
.booking-detail-side {
  align-self: start;
  gap: 18px;
}
.admin-content .booking-filter-panel {
  margin-bottom: 16px !important;
  padding: 14px !important;
}
.admin-content .booking-filter-panel > header {
  margin-bottom: 10px !important;
}
.admin-content .booking-filter-panel h2 {
  font-size: 1.05rem !important;
}
.admin-content .booking-filter-grid {
  grid-template-columns: 1.1fr 1.4fr 1fr 1fr 1fr 1fr auto !important;
  gap: 8px !important;
}
.admin-content .booking-filter-grid label {
  font-size: 0.68rem !important;
}
.admin-content .booking-filter-grid .input,
.admin-content .booking-filter-grid > .btn {
  min-height: 36px !important;
  padding: 7px 9px !important;
  font-size: 0.76rem !important;
}
.admin-content .booking-date-chips {
  margin-top: 9px !important;
  padding-top: 9px !important;
}
.admin-content .booking-date-chips a {
  padding: 6px 12px !important;
  font-size: 0.7rem !important;
}
.admin-content .admin-booking-list {
  gap: 8px !important;
}
.admin-content .admin-booking-card > summary {
  grid-template-columns: 68px minmax(170px, 1.2fr) minmax(150px, 1fr) auto 18px !important;
  min-height: 70px !important;
  padding: 8px 12px !important;
  gap: 12px !important;
}
.admin-content .booking-date-block {
  min-height: 52px !important;
  padding: 5px !important;
}
.admin-content .booking-date-block strong {
  font-size: 1.08rem !important;
}
.admin-content .booking-date-block span {
  font-size: 0.62rem !important;
}
.admin-content .booking-date-block small {
  font-size: 0.6rem !important;
}
.admin-content .booking-customer small {
  font-size: 0.54rem !important;
}
.admin-content .booking-customer h2 {
  font-size: 0.86rem !important;
}
.admin-content .booking-customer p {
  font-size: 0.65rem !important;
}
.admin-content .booking-place b {
  font-size: 0.78rem !important;
}
.admin-content .booking-place span {
  font-size: 0.62rem !important;
}
.admin-content .booking-state {
  padding: 5px 8px !important;
  font-size: 0.6rem !important;
}
.admin-content .booking-state i {
  width: 7px;
  height: 7px;
}
.admin-content .admin-booking-body {
  padding: 14px !important;
}
@media (max-width: 1150px) {
  .admin-content .booking-filter-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .admin-content .admin-booking-card > summary {
    grid-template-columns: 64px minmax(150px, 1fr) minmax(130px, 1fr) auto 18px !important;
  }
}
@media (max-width: 760px) {
  .admin-content .booking-filter-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .admin-content .admin-booking-card > summary {
    grid-template-columns: 58px minmax(0, 1fr) auto !important;
    min-height: 68px !important;
  }
  .admin-content .booking-place {
    grid-column: 2;
  }
  .admin-content .booking-state {
    grid-column: 2;
    justify-self: start;
  }
  .admin-content .booking-card-arrow {
    grid-column: 3;
    grid-row: 1/4;
  }
}
@media (max-width: 520px) {
  .admin-content .booking-filter-grid {
    grid-template-columns: 1fr !important;
  }
  .admin-content .booking-place {
    display: none;
  }
}
.booking-filter-panel {
  padding: 16px !important;
}
.booking-filter-panel > header {
  margin-bottom: 12px !important;
}
.booking-filter-grid {
  gap: 9px !important;
}
.booking-filter-grid .input,
.booking-filter-grid > .btn {
  min-height: 38px !important;
}
.booking-date-chips {
  margin-top: 11px !important;
  padding-top: 10px !important;
}
.admin-booking-list {
  gap: 9px !important;
}
.admin-booking-card > summary {
  grid-template-columns: 76px minmax(180px, 1.2fr) minmax(170px, 1fr) auto 20px !important;
  min-height: 82px !important;
  padding: 10px 16px !important;
  gap: 14px !important;
}
.booking-date-block {
  min-height: 60px !important;
  padding: 6px !important;
}
.booking-date-block strong {
  font-size: 1.25rem !important;
}
.booking-date-block small {
  margin-top: 3px !important;
}
.booking-customer h2 {
  margin: 2px 0 !important;
  font-size: 0.95rem !important;
}
.booking-place {
  gap: 3px !important;
}
.booking-state {
  padding: 6px 9px !important;
}
.admin-booking-body {
  padding: 16px !important;
}
@media (max-width: 760px) {
  .admin-booking-card > summary {
    grid-template-columns: 64px minmax(0, 1fr) auto !important;
    min-height: 78px !important;
    padding: 10px !important;
  }
}
.booking-filter-panel {
  margin-bottom: 22px;
  padding: 20px;
  border: 1px solid #ccdce6;
  border-radius: 14px;
  background: #f7fafc;
}
.booking-filter-panel > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 16px;
}
.booking-filter-panel h2 {
  margin: 3px 0 0;
  font-size: 1.25rem;
}
.booking-filter-panel > header > a {
  color: #176b9e;
  font-size: 0.76rem;
  font-weight: 800;
}
.booking-filter-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}
.booking-filter-grid label {
  color: #344f61;
  font-size: 0.72rem;
  font-weight: 800;
}
.booking-filter-grid .input {
  min-height: 42px;
  margin-top: 6px;
}
.booking-filter-grid > .btn {
  min-height: 42px;
  margin: 0;
}
.booking-date-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
  padding-top: 14px;
  border-top: 1px solid #dce7ed;
}
.booking-date-chips a {
  min-width: 90px;
  padding: 8px 14px;
  border: 1px solid #b9cbd6;
  border-radius: 20px;
  background: #fff;
  color: #496273;
  font-size: 0.76rem;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}
.booking-date-chips a:hover,
.booking-date-chips a.active {
  border-color: #176b9e;
  background: #e5f3fa;
  color: #0b6091;
}
.admin-booking-list {
  display: grid;
  gap: 13px;
}
.admin-booking-card {
  overflow: hidden;
  border: 1px solid #d4e1e9;
  border-left: 6px solid #7a8b96;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 16px #14394f0b;
}
.admin-booking-card > summary {
  display: grid;
  grid-template-columns: 92px minmax(190px, 1.2fr) minmax(180px, 1fr) auto 24px;
  align-items: center;
  gap: 18px;
  min-height: 108px;
  padding: 16px 20px;
  cursor: pointer;
  list-style: none;
}
.admin-booking-card > summary::-webkit-details-marker {
  display: none;
}
.admin-booking-card > summary:hover {
  background: #f8fbfd;
}
.booking-date-block {
  display: grid;
  place-items: center;
  min-height: 72px;
  padding: 8px;
  border-radius: 10px;
  background: #edf5f9;
  text-align: center;
}
.booking-date-block strong {
  color: #173c55;
  font-size: 1.45rem;
  line-height: 1;
}
.booking-date-block span {
  margin-top: 3px;
  color: #516e80;
  font-size: 0.7rem;
  font-weight: 800;
}
.booking-date-block small {
  margin-top: 5px;
  color: #6f8491;
  font-size: 0.68rem;
}
.booking-customer small {
  color: #718591;
  font-size: 0.61rem;
  font-weight: 900;
  letter-spacing: 0.1em;
}
.booking-customer h2 {
  margin: 4px 0;
  color: #123b55;
  font-size: 1.05rem;
}
.booking-customer p {
  margin: 0;
  color: #6c8190;
  font-size: 0.74rem;
}
.booking-place {
  display: grid;
  gap: 5px;
}
.booking-place b {
  color: #173c55;
  font-size: 0.88rem;
}
.booking-place span {
  color: #718591;
  font-size: 0.7rem;
}
.booking-state {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid #c8d3da;
  border-radius: 20px;
  background: #f2f5f7;
  color: #52616c;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
}
.booking-state i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
}
.booking-card-arrow {
  color: #628092;
  font-size: 1.15rem;
  transition: transform 0.2s;
}
.admin-booking-card[open] .booking-card-arrow {
  transform: rotate(180deg);
}
.admin-booking-body {
  padding: 20px;
  border-top: 1px solid #dce7ed;
  background: #f8fbfd;
}
.admin-booking-card.state-confirmed {
  border-left-color: #1a9b68;
}
.booking-state.state-confirmed {
  border-color: #a7d9c5;
  background: #e9f8f1;
  color: #176b48;
}
.admin-booking-card.state-checked_in {
  border-left-color: #7654bd;
}
.booking-state.state-checked_in {
  border-color: #c9b8ec;
  background: #f1edfb;
  color: #5e409d;
}
.admin-booking-card.state-pending_payment,
.admin-booking-card.state-pending_approval {
  border-left-color: #d89a2a;
}
.booking-state.state-pending_payment,
.booking-state.state-pending_approval {
  border-color: #e8c982;
  background: #fff5dc;
  color: #855509;
}
.admin-booking-card.state-completed {
  border-left-color: #258a9b;
}
.booking-state.state-completed {
  border-color: #9bcdd4;
  background: #eaf7f8;
  color: #17636e;
}
.admin-booking-card.state-cancelled,
.admin-booking-card.state-no_show,
.admin-booking-card.state-rejected {
  border-left-color: #c75c59;
}
.booking-state.state-cancelled,
.booking-state.state-no_show,
.booking-state.state-rejected {
  border-color: #e5aaa5;
  background: #fff0ee;
  color: #8f302a;
}
.admin-booking-card.state-past,
.admin-booking-card.state-expired {
  border-left-color: #7a8b96;
}
.booking-state.state-past,
.booking-state.state-expired {
  border-color: #c8d1d7;
  background: #f0f3f5;
  color: #53616b;
}
@media (max-width: 1150px) {
  .booking-filter-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .admin-booking-card > summary {
    grid-template-columns: 82px minmax(180px, 1fr) minmax(
        150px,
        0.8fr
      ) auto 20px;
  }
}
@media (max-width: 760px) {
  .booking-filter-grid {
    grid-template-columns: 1fr 1fr;
  }
  .booking-filter-grid > .btn {
    grid-column: 1/-1;
  }
  .admin-booking-card > summary {
    grid-template-columns: 70px minmax(0, 1fr) auto;
    gap: 12px;
    padding: 14px;
  }
  .booking-place {
    grid-column: 2;
  }
  .booking-state {
    grid-column: 2;
    justify-self: start;
  }
  .booking-card-arrow {
    grid-column: 3;
    grid-row: 1/4;
  }
  .booking-date-block {
    grid-row: 1/4;
  }
  .admin-booking-body {
    padding: 14px;
  }
}
@media (max-width: 520px) {
  .booking-filter-grid {
    grid-template-columns: 1fr;
  }
  .booking-filter-grid > .btn {
    grid-column: auto;
  }
  .booking-filter-panel {
    padding: 14px;
  }
  .booking-date-chips a {
    flex: 1;
  }
  .admin-booking-card > summary {
    grid-template-columns: 62px minmax(0, 1fr) 18px;
  }
  .booking-place {
    display: none;
  }
  .booking-date-block strong {
    font-size: 1.2rem;
  }
}
.admin-content .dashboard-action-strip {
  gap: 12px !important;
  margin: 24px 0 !important;
  padding-top: 24px !important;
}
.admin-content .dashboard-action-strip .dashboard-action {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) 18px !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  min-height: 88px !important;
  padding: 14px 16px !important;
  border-radius: 12px !important;
  text-align: left !important;
}
.admin-content .dashboard-action-strip .dashboard-action span {
  grid-column: 1 !important;
  grid-row: 1/3 !important;
  width: 36px !important;
  height: 36px !important;
  margin: 0 !important;
  font-size: 1.1rem !important;
}
.admin-content .dashboard-action-strip .dashboard-action b {
  grid-column: 2 !important;
  grid-row: 1 !important;
  font-size: 0.92rem !important;
}
.admin-content .dashboard-action-strip .dashboard-action small {
  grid-column: 2 !important;
  grid-row: 2 !important;
  margin-top: 3px !important;
  font-size: 0.72rem !important;
}
.admin-content .dashboard-action-strip .dashboard-action:after {
  grid-column: 3 !important;
  grid-row: 1/3 !important;
  font-size: 1.35rem !important;
}
@media (max-width: 900px) {
  .admin-content .dashboard-action-strip .dashboard-action {
    min-height: 84px !important;
  }
}
@media (max-width: 600px) {
  .admin-content .dashboard-action-strip .dashboard-action {
    min-height: 80px !important;
  }
}
.dashboard-action-strip {
  position: relative;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
  margin-top: 34px;
  padding-top: 28px;
}
.dashboard-action-strip:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "QUICK ACTIONS";
  color: #176b9e;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.13em;
}
.dashboard-action {
  position: relative;
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr) 22px !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  min-height: 100px !important;
  padding: 18px !important;
  border: 1px solid #cddfe9 !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #173c55 !important;
  box-shadow: 0 3px 10px #153c5510 !important;
  transform: none !important;
}
.dashboard-action:hover {
  border-color: #1685c8 !important;
  background: #f5fbfe !important;
  box-shadow: 0 7px 16px #153c551a !important;
}
.dashboard-action:after {
  grid-column: 3;
  grid-row: 1/3;
  content: "›";
  color: #5e8397;
  font-size: 1.8rem;
  font-weight: 400;
  text-align: right;
}
.dashboard-action span {
  grid-column: 1;
  grid-row: 1/3;
  width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  border-radius: 9px !important;
  color: #176b9e !important;
  background: #e7f4fa !important;
  font-size: 1.2rem !important;
}
.dashboard-action b {
  grid-column: 2;
  grid-row: 1;
  font-size: 1rem !important;
  line-height: 1.2 !important;
}
.dashboard-action small {
  grid-column: 2;
  grid-row: 2;
  margin-top: 5px !important;
  color: #6c8290 !important;
  font-size: 0.76rem !important;
  line-height: 1.2 !important;
}
.dashboard-action.primary {
  background: #0b5d88 !important;
  color: #fff !important;
}
.dashboard-action.primary span {
  color: #fff !important;
  background: #ffffff22 !important;
}
.dashboard-action.primary:after {
  color: #fff;
}
.dashboard-action.payment {
  border-left: 5px solid #c75c59 !important;
}
.dashboard-action.payment span {
  color: #b33f39 !important;
  background: #fff0ee !important;
}
@media (max-width: 900px) {
  .dashboard-action-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 600px) {
  .dashboard-action-strip {
    grid-template-columns: 1fr !important;
  }
  .dashboard-action {
    min-height: 88px !important;
  }
}
.dashboard-action-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
  gap: 16px !important;
}
.dashboard-action {
  display: flex !important;
  min-height: 150px !important;
  padding: 24px !important;
  border-radius: 16px !important;
}
.dashboard-action span {
  width: 48px !important;
  height: 48px !important;
  font-size: 1.6rem !important;
}
.dashboard-action b {
  font-size: 1.12rem !important;
  line-height: 1.25 !important;
}
.dashboard-action small {
  font-size: 0.9rem !important;
  line-height: 1.45 !important;
}
.dashboard-action-strip + .dashboard-urgent {
  margin-top: 28px !important;
}
.dashboard-section-title h2,
.dashboard-urgent h2 {
  font-size: 1.7rem !important;
}
.dashboard-section-title .eyebrow,
.dashboard-urgent .eyebrow {
  font-size: 0.9rem !important;
}
.dashboard-urgent p {
  font-size: 1rem !important;
}
.dashboard-urgent-grid a span {
  font-size: 1rem !important;
}
.dashboard-urgent-grid a b {
  font-size: 2rem !important;
}
.dashboard-urgent-grid a small {
  font-size: 0.86rem !important;
}
.ops-timeline .queue-booking {
  min-height: 88px !important;
}
.queue-booking b {
  font-size: 1rem !important;
}
.queue-booking small,
.queue-booking time {
  font-size: 0.86rem !important;
}
.timing-category h3 {
  font-size: 1.12rem !important;
}
.timing-booking {
  min-height: 82px !important;
}
.timing-booking time {
  font-size: 0.88rem !important;
}
.timing-booking b {
  font-size: 0.95rem !important;
}
.timing-booking small {
  font-size: 0.8rem !important;
}
.needs-grid span {
  font-size: 0.9rem !important;
}
@media (max-width: 900px) {
  .dashboard-action-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 600px) {
  .dashboard-action-strip {
    grid-template-columns: 1fr !important;
  }
  .dashboard-action {
    min-height: 125px !important;
  }
}
/* Senior-friendly dashboard accessibility: larger type, stronger contrast, and larger targets. */
.dashboard-section,
.dashboard-urgent,
.dashboard-action-strip,
.ops-calendar {
  font-size: 1rem;
}
.dashboard-section-title h2,
.dashboard-urgent h2 {
  font-size: 1.55rem;
  letter-spacing: -0.01em;
}
.dashboard-section-title .eyebrow,
.dashboard-urgent .eyebrow {
  font-size: 0.82rem;
  letter-spacing: 0.1em;
}
.dashboard-action {
  min-height: 132px;
  padding: 20px;
}
.dashboard-action span {
  width: 42px;
  height: 42px;
  font-size: 1.35rem;
}
.dashboard-action b {
  font-size: 0.98rem;
}
.dashboard-action small {
  font-size: 0.78rem;
  line-height: 1.35;
}
.dashboard-urgent {
  padding: 28px;
}
.dashboard-urgent p {
  font-size: 0.9rem;
}
.dashboard-urgent > header > strong {
  width: 58px;
  height: 58px;
  font-size: 1.45rem;
}
.dashboard-urgent-grid a {
  min-height: 112px;
  padding: 18px;
}
.dashboard-urgent-grid a span {
  font-size: 0.92rem;
}
.dashboard-urgent-grid a b {
  font-size: 1.8rem;
}
.dashboard-urgent-grid a small {
  font-size: 0.78rem;
}
.dashboard-expand {
  font-size: 1rem;
}
.ops-timeline .queue-booking {
  min-height: 76px;
  padding: 18px 20px;
}
.queue-booking b {
  font-size: 0.9rem;
}
.queue-booking small,
.queue-booking time {
  font-size: 0.8rem;
}
.queue-booking .badge {
  font-size: 0.72rem;
  padding: 6px 9px;
}
.timing-board .timing-category {
  padding: 22px 24px !important;
}
.timing-category h3 {
  font-size: 1rem;
}
.timing-category > header > b {
  min-width: 32px;
  height: 32px;
  font-size: 0.8rem;
}
.timing-booking {
  min-height: 70px;
  padding: 16px 10px !important;
}
.timing-booking time {
  font-size: 0.8rem;
}
.timing-booking b {
  font-size: 0.85rem;
}
.timing-booking small {
  font-size: 0.74rem;
}
.ops-day {
  min-height: 125px;
}
.ops-day b {
  font-size: 1rem;
}
.ops-day > span,
.ops-day i {
  font-size: 0.72rem;
}
.ops-day-panel {
  padding: 20px;
  font-size: 0.9rem;
}
.calendar-legend,
.timing-status-legend {
  font-size: 0.8rem;
  gap: 16px;
}
.needs-grid a {
  min-height: 76px;
  padding: 18px;
}
.needs-grid b {
  font-size: 1.55rem;
}
.needs-grid span {
  font-size: 0.8rem;
}
.dashboard-action:focus-visible,
.dashboard-urgent-grid a:focus-visible,
.timing-booking:focus-visible,
.queue-booking:focus-visible,
.ops-day:focus-visible {
  outline: 4px solid #f0a000;
  outline-offset: 3px;
}
@media (max-width: 900px) {
  .dashboard-action {
    min-height: 115px;
  }
  .dashboard-action-strip {
    gap: 14px;
  }
}
@media (max-width: 600px) {
  .dashboard-action {
    min-height: 105px;
    padding: 16px;
  }
  .dashboard-action b {
    font-size: 0.9rem;
  }
  .dashboard-action small {
    font-size: 0.72rem;
  }
  .dashboard-urgent {
    padding: 20px;
  }
  .dashboard-urgent-grid a {
    min-height: 90px;
  }
  .dashboard-section-title h2,
  .dashboard-urgent h2 {
    font-size: 1.35rem;
  }
  .timing-board .timing-category {
    padding: 18px !important;
  }
}
.dashboard-expand > summary {
  display: none !important;
}
.dashboard-expand {
  display: block !important;
}
/* Keep facility names in customer booking rows on one vertical text edge. */
.expandable-booking > summary {
  display: flex !important;
  align-items: center !important;
  text-align: left !important;
}
.expandable-booking > summary > div:first-child {
  display: block !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  text-align: left !important;
  margin: 0 !important;
  align-self: stretch !important;
}
.expandable-booking > summary h2,
.expandable-booking > summary p {
  text-align: left !important;
}
.expandable-booking > summary > div:first-child h2 {
  display: block !important;
  width: 100% !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
  text-indent: 0 !important;
  transform: none !important;
}
/* A fixed status column prevents different status labels from shifting the facility column. */
@media (min-width: 1161px) {
  .admin-content .admin-booking-card > summary {
    grid-template-columns: 68px minmax(170px, 1.2fr) minmax(
        150px,
        1fr
      ) 150px 18px !important;
  }
}
@media (min-width: 761px) and (max-width: 1160px) {
  .admin-content .admin-booking-card > summary {
    grid-template-columns: 64px minmax(150px, 1fr) minmax(130px, 1fr) 145px 18px !important;
  }
}
.admin-content .admin-booking-card .booking-state {
  width: 100% !important;
  box-sizing: border-box !important;
  justify-content: center !important;
}
.admin-content .admin-booking-card[open] .admin-booking-body {
  margin-top: 12px !important;
  border-top: 1px solid #dce7ed !important;
}
/* Booking list alignment: every summary uses the same left edge on narrow screens. */
@media (max-width: 760px) {
  .admin-content .admin-booking-card > summary {
    display: grid !important;
    grid-template-columns: 58px minmax(0, 1fr) 20px !important;
    align-items: center !important;
    padding: 12px 16px !important;
    gap: 12px !important;
    box-sizing: border-box !important;
  }
  .admin-content .admin-booking-card .booking-customer,
  .admin-content .admin-booking-card .booking-place {
    grid-column: 2 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    justify-self: stretch !important;
  }
  .admin-content .admin-booking-card .booking-date-block {
    grid-column: 1 !important;
    grid-row: 1/4 !important;
    margin: 0 !important;
  }
  .admin-content .admin-booking-card .booking-place {
    grid-row: 2 !important;
  }
  .admin-content .admin-booking-card .booking-state {
    grid-column: 2 !important;
    grid-row: 3 !important;
    justify-self: start !important;
  }
  .admin-content .admin-booking-card .booking-card-arrow {
    grid-column: 3 !important;
    grid-row: 1/4 !important;
    justify-self: end !important;
  }
}
.dashboard-section:has(.timing-board) .dashboard-expand {
  overflow: hidden;
  border: 1px solid #d5e3eb;
  border-radius: 14px;
  background: #fff;
}
.dashboard-section:has(.timing-board) .timing-board {
  border: 0 !important;
  border-radius: 0 !important;
}
.dashboard-section:has(.ops-timeline) .dashboard-expand {
  overflow: hidden;
  border-radius: 14px;
}
.timing-board {
  margin: 0 !important;
  padding: 14px 16px 16px !important;
  border: 1px solid #d5e3eb !important;
  border-radius: 0 0 14px 14px !important;
  box-shadow: none !important;
  background: #fff !important;
}
.timing-board .timing-category,
.timing-board .timing-category:first-child,
.timing-board .timing-category:last-child {
  padding: 16px 18px !important;
  border: 0 !important;
  border-right: 1px solid #dce8ee !important;
  border-radius: 0;
  background: transparent;
}
.timing-board .timing-category:last-child {
  border-right: 0 !important;
}
.timing-board .timing-category > header {
  padding: 0 8px 12px;
}
.timing-board .timing-booking {
  padding: 14px 8px !important;
}
.dashboard-section:has(.ops-timeline) .dashboard-expand > summary {
  display: none;
}
.dashboard-section:has(.ops-timeline) .dashboard-expand {
  display: block;
}
.dashboard-section:has(.ops-timeline) .ops-timeline {
  border: 1px solid #d5e3eb;
  border-radius: 14px;
}
.timing-board {
  margin: 0 !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.timing-board .timing-category {
  padding: 16px 18px !important;
  border: 0;
  border-right: 1px solid #dce8ee !important;
  border-radius: 0;
  background: transparent;
}
.timing-board .timing-category:first-child {
  padding-left: 6px !important;
}
.timing-board .timing-category:last-child {
  padding-right: 6px !important;
  border-right: 0 !important;
}
.timing-board .timing-category > header {
  padding: 0 8px 12px;
}
.timing-board .timing-booking {
  padding: 14px 8px !important;
}
.timing-board .timing-booking time {
  padding-left: 2px;
}
.timing-board .timing-booking span {
  padding-inline: 6px;
}
@media (max-width: 900px) {
  .timing-board {
    padding: 0 !important;
  }
  .timing-board .timing-category,
  .timing-board .timing-category:first-child,
  .timing-board .timing-category:last-child {
    padding: 14px 10px !important;
    border-right: 0 !important;
    border-bottom: 1px solid #dce8ee;
  }
  .timing-board .timing-category:last-child {
    border-bottom: 0;
  }
}
.timing-booking {
  padding: 14px 12px !important;
  border-radius: 8px;
}
.timing-booking time {
  padding-left: 4px;
}
.timing-booking span {
  padding-inline: 5px;
}
.timing-booking .status-dot {
  margin-right: 4px !important;
}
.timing-status-legend,
.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 12px;
  color: #5f7481;
  font-size: 0.65rem;
  font-weight: 750;
}
.timing-status-legend span,
.calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.timing-status-legend i,
.calendar-legend span:before {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  content: "";
  background: #9aa8b1;
}
.legend-all i,
.calendar-legend .legend-all:before {
  background: #1685c8;
}
.legend-confirmed i,
.calendar-legend .legend-confirmed:before {
  background: #1a9b68;
}
.legend-checked-in i,
.calendar-legend .legend-checked-in:before {
  background: #7654bd;
}
.legend-pending i,
.calendar-legend .legend-pending:before {
  background: #d89a2a;
}
.status-dot {
  width: 10px !important;
  height: 10px !important;
  flex: 0 0 10px;
  border: 3px solid #dff4eb;
  background: #1a9b68 !important;
}
.status-dot.confirmed {
  background: #1a9b68 !important;
  border-color: #d9f4e7;
}
.status-dot.checked_in {
  background: #7654bd !important;
  border-color: #eee8fb;
}
.status-dot.pending_approval,
.status-dot.pending_payment {
  background: #d89a2a !important;
  border-color: #fff0c9;
}
.status-dot.completed {
  background: #65768a !important;
  border-color: #e5eaee;
}
.calendar-legend .legend-maintenance:before {
  background: #d38a29;
}
.calendar-legend .legend-closed:before {
  background: #c75c59;
}
.ops-day i.confirmed {
  background: #e7f7ef !important;
  color: #176b48 !important;
}
.ops-day i.checked_in {
  background: #f0eafb !important;
  color: #6142a0 !important;
}
.ops-day i.pending_approval,
.ops-day i.pending_payment {
  background: #fff4dc !important;
  color: #8b5a0b !important;
}
.timeline-booking {
  border-bottom: 1px solid #e5edf2;
}
.timeline-booking > summary {
  list-style: none;
  cursor: pointer;
}
.timeline-booking > summary::-webkit-details-marker {
  display: none;
}
.timeline-booking > summary i {
  color: #6b8290;
  font-style: normal;
  transition: transform 0.18s;
}
.timeline-booking[open] > summary i {
  transform: rotate(180deg);
}
.timeline-booking-details {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 12px 18px 16px 134px;
  background: #f7fbfd;
}
.timeline-booking-details p {
  margin: 0;
  color: #607987;
  font-size: 0.68rem;
}
.timeline-booking-details > div {
  display: flex;
  gap: 7px;
}
.timeline-booking-details .btn {
  padding: 7px 9px;
  font-size: 0.63rem;
}
.ops-day i.confirmed {
  background: #e7f7ef;
  color: #176b48;
}
.ops-day i.pending_approval,
.ops-day i.pending_payment {
  background: #fff4dc;
  color: #8b5a0b;
}
.ops-day i.completed {
  background: #edf0f3;
  color: #586976;
}
.ops-day i.cancelled,
.ops-day i.rejected {
  background: #fff0ee;
  color: #a13d35;
}
.ops-day i.maintenance {
  background: #fff5df;
  color: #9a6410;
}
.ops-day i.closure {
  background: #fff0ef;
  color: #a13d35;
}
.legend-confirmed {
  color: #1a9b68;
}
.legend-pending {
  color: #d89a2a;
}
.legend-completed {
  color: #65768a;
}
.legend-maintenance {
  color: #d38a29;
}
.legend-closed {
  color: #c75c59;
}
@media (max-width: 680px) {
  .timeline-booking-details {
    align-items: stretch;
    flex-direction: column;
    padding: 12px;
  }
  .timeline-booking-details > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .timeline-booking-details .btn {
    text-align: center;
  }
}
.dashboard-action-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 11px;
  margin: 0 0 24px;
}
.dashboard-action {
  display: flex;
  min-height: 105px;
  flex-direction: column;
  justify-content: center;
  padding: 16px;
  border: 1px solid #d7e5ed;
  border-radius: 14px;
  background: #fff;
  color: #173c55;
  text-decoration: none;
  box-shadow: 0 7px 22px #10233e0a;
  transition: 0.18s;
}
.dashboard-action:hover {
  transform: translateY(-3px);
  border-color: #62b7df;
  box-shadow: 0 13px 28px #10233e18;
}
.dashboard-action span {
  display: grid;
  width: 32px;
  height: 32px;
  margin-bottom: 9px;
  place-items: center;
  border-radius: 9px;
  color: #0873ad;
  background: #e5f5fc;
  font-size: 1.1rem;
  font-weight: 900;
}
.dashboard-action b {
  font-size: 0.78rem;
}
.dashboard-action small {
  margin-top: 4px;
  color: #738794;
  font-size: 0.63rem;
}
.dashboard-action.primary {
  color: #fff;
  border-color: #0c5886;
  background: linear-gradient(145deg, #0b4169, #0785bd);
}
.dashboard-action.primary span {
  color: #fff;
  background: #ffffff20;
}
.dashboard-action.payment {
  border-color: #efc8c3;
  background: #fff8f7;
}
.dashboard-action.payment span {
  color: #bd5149;
  background: #fbe1dd;
}
.dashboard-urgent {
  margin: 0 0 28px;
  padding: 22px;
  border: 1px solid #efc8c3;
  border-radius: 17px;
  background: linear-gradient(135deg, #fff8f7, #fffdfb);
  box-shadow: 0 10px 28px #bd514914;
}
.dashboard-urgent > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.dashboard-urgent h2 {
  margin: 3px 0;
  font-size: 1.4rem;
}
.dashboard-urgent p {
  margin: 0;
  color: #8b6e6b;
  font-size: 0.74rem;
}
.dashboard-urgent > header > strong {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  color: #bd5149;
  background: #fbe1dd;
  font-size: 1.25rem;
}
.dashboard-urgent-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.dashboard-urgent-grid a {
  display: grid;
  gap: 5px;
  padding: 14px;
  border: 1px solid #f0d8d4;
  border-radius: 11px;
  color: #5c3431;
  background: #fff;
  text-decoration: none;
}
.dashboard-urgent-grid a:hover {
  border-color: #dc958d;
}
.dashboard-urgent-grid b {
  font-size: 1.5rem;
  color: #bd5149;
}
.dashboard-urgent-grid small {
  color: #9b7773;
  font-size: 0.65rem;
}
.dashboard-section {
  margin: 0 0 28px;
}
.dashboard-section-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 12px;
}
.dashboard-section-title h2 {
  margin: 3px 0 0;
  color: #163c55;
  font-size: 1.3rem;
}
.dashboard-section-title a {
  color: #0873ad;
  font-size: 0.72rem;
  font-weight: 800;
}
.dashboard-expand {
  margin: 0;
}
.dashboard-expand > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border: 1px solid #d5e3eb;
  border-radius: 12px;
  background: #f5fafc;
  color: #1c4962;
  cursor: pointer;
  font-size: 0.73rem;
  font-weight: 850;
  list-style: none;
}
.dashboard-expand > summary::-webkit-details-marker {
  display: none;
}
.dashboard-expand[open] > summary {
  border-radius: 12px 12px 0 0;
}
.dashboard-expand > summary span {
  font-size: 1rem;
}
.dashboard-expand[open] .ops-timeline,
.dashboard-expand[open] .timing-board {
  border: 1px solid #d5e3eb;
  border-top: 0;
  border-radius: 0 0 14px 14px;
}
.timing-board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
  background: #fff;
}
.timing-category {
  min-width: 0;
  padding: 15px;
  border-right: 1px solid #e4edf2;
}
.timing-category:last-child {
  border-right: 0;
}
.timing-category > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.timing-category h3 {
  margin: 0;
  color: #163c55;
  font-size: 0.82rem;
}
.timing-category > header > b {
  display: grid;
  min-width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  color: #0873ad;
  background: #e4f4fb;
  font-size: 0.67rem;
}
.timing-empty {
  display: block;
  padding: 10px 0;
  color: #8697a0;
  font-size: 0.68rem;
}
.timing-booking {
  display: grid;
  grid-template-columns: 65px minmax(0, 1fr) 8px;
  align-items: center;
  gap: 7px;
  padding: 10px 0;
  border-top: 1px solid #edf2f5;
  color: #173c55;
  text-decoration: none;
}
.timing-booking time {
  color: #557487;
  font-size: 0.62rem;
  font-weight: 800;
}
.timing-booking span {
  min-width: 0;
}
.timing-booking b,
.timing-booking small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.timing-booking b {
  font-size: 0.68rem;
}
.timing-booking small {
  margin-top: 2px;
  color: #7a8e9b;
  font-size: 0.59rem;
}
.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #1685c8;
}
.status-dot.confirmed {
  background: #1a9b68;
}
.status-dot.pending_approval,
.status-dot.pending_payment {
  background: #d89a2a;
}
.status-dot.completed {
  background: #65768a;
}
.status-dot.cancelled,
.status-dot.rejected {
  background: #c75c59;
}
.needs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.needs-grid a {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 14px;
  border: 1px solid #d7e5ed;
  border-radius: 11px;
  background: #fff;
  color: #173c55;
  text-decoration: none;
}
.needs-grid a:hover {
  border-color: #63b6dc;
}
.needs-grid b {
  color: #bd5149;
  font-size: 1.3rem;
}
.needs-grid span {
  font-size: 0.67rem;
  font-weight: 750;
}
@media (max-width: 900px) {
  .dashboard-action-strip {
    grid-template-columns: repeat(2, 1fr);
  }
  .dashboard-action.primary {
    grid-column: span 2;
  }
  .dashboard-urgent-grid,
  .timing-board {
    grid-template-columns: 1fr;
  }
  .timing-category {
    border-right: 0;
    border-bottom: 1px solid #e4edf2;
  }
  .timing-category:last-child {
    border-bottom: 0;
  }
  .needs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .dashboard-action-strip {
    grid-template-columns: 1fr 1fr;
  }
  .dashboard-action {
    min-height: 95px;
    padding: 12px;
  }
  .dashboard-urgent {
    padding: 16px;
  }
  .dashboard-urgent-grid {
    grid-template-columns: 1fr;
  }
  .needs-grid {
    grid-template-columns: 1fr;
  }
}
.dashboard-expand {
  margin: 0 0 12px;
}
.dashboard-expand > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  border: 1px solid #d8e4eb;
  border-radius: 12px;
  background: #f4f9fc;
  color: #1b4560;
  cursor: pointer;
  font-size: 0.74rem;
  font-weight: 850;
  list-style: none;
}
.dashboard-expand > summary::-webkit-details-marker {
  display: none;
}
.dashboard-expand > summary span {
  font-size: 1rem;
}
.dashboard-expand[open] > summary {
  border-radius: 12px 12px 0 0;
  border-bottom-color: #d8e4eb;
}
.dashboard-expand[open] .ops-timeline {
  border-top: 0;
  border-radius: 0 0 15px 15px;
}
.day-event {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 8px;
  padding: 11px 12px;
  border-left: 4px solid #1685c8;
  border-radius: 8px;
  background: #f5fbff;
  text-decoration: none;
}
.day-event strong {
  color: #173c55;
  font-size: 0.76rem;
}
.day-event span {
  color: #607987;
  font-size: 0.67rem;
}
.day-event small {
  align-self: flex-start;
  padding: 3px 6px;
  border-radius: 5px;
  color: #176b9e;
  background: #e3f3fb;
  font-size: 0.6rem;
  font-weight: 850;
  text-transform: uppercase;
}
.day-event.confirmed {
  border-left-color: #1a9b68;
}
.day-event.pending_approval,
.day-event.pending_payment {
  border-left-color: #d89a2a;
}
.day-event.completed {
  border-left-color: #65768a;
}
.day-event.cancelled,
.day-event.rejected {
  border-left-color: #c75c59;
}
.day-event.maintenance {
  border-left-color: #d38a29;
  background: #fffaf1;
}
.day-event.closure {
  border-left-color: #c75c59;
  background: #fff5f5;
}
.timing-lane > div {
  padding: 0 14px;
}
.timing-category {
  padding: 12px 2px;
  border-bottom: 1px solid #e5edf2;
}
.timing-category:last-child {
  border-bottom: 0;
}
.timing-category > strong {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2px 2px 7px;
  color: #173c55;
  font-size: 0.76rem;
}
.timing-category > strong em {
  display: grid;
  min-width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  color: #176b9e;
  background: #e8f4fb;
  font-size: 0.63rem;
  font-style: normal;
}
.timing-category > small {
  display: block;
  padding: 4px 2px 6px;
  color: #8797a1;
  font-size: 0.67rem;
}
.timing-category .queue-booking {
  grid-template-columns: 58px minmax(0, 1fr);
  padding: 8px 2px;
}
.timing-category .queue-booking span {
  color: #4e7186;
  font-size: 0.65rem;
  font-weight: 800;
}
.timing-category .queue-booking b {
  font-size: 0.7rem;
}
.timing-category .queue-booking small {
  font-size: 0.61rem;
}
.simple-hero,
.simple-page-hero,
.facility-detail-hero,
.contact-hero,
.catalog-hero,
.print-service-hero {
  border-bottom-color: #123f63 !important;
  background: linear-gradient(125deg, #061d34, #082b4c 70%, #0a4778) !important;
  color: #fff !important;
}
.simple-hero h1,
.simple-page-hero h1,
.facility-detail-hero h1,
.contact-hero h1,
.catalog-hero h1,
.print-service-hero h1 {
  color: #fff !important;
}
.simple-hero .service-label,
.simple-page-hero .service-label {
  color: #74c8f5 !important;
}
.facility-detail-hero .back-link,
.contact-hero .back-link,
.catalog-hero .back-link,
.print-service-hero .back-link {
  color: #8fd3f7 !important;
}
.facility-detail-hero .badge,
.contact-hero .badge,
.catalog-hero .badge,
.print-service-hero .badge {
  border-color: #6ba8ce !important;
  background: rgba(255, 255, 255, 0.08) !important;
  color: #d9f1ff !important;
}
.facility-detail-hero .detail-status {
  border-color: rgba(255, 255, 255, 0.22) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}
.facility-detail-hero .detail-status b {
  color: #fff !important;
}
.facility-detail-hero .detail-status small {
  color: #9fc8df !important;
}

/* Transparent RDC brand mark extracted from the supplied official poster. */
.rdc-logo {
  display: inline-flex;
  width: 126px;
  flex: 0 0 auto;
  align-items: center;
}
.rdc-logo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.public-brand .rdc-logo {
  width: 112px;
}
.admin-sidebar-brand .rdc-logo {
  width: 76px;
}
.hero-brand .rdc-logo {
  filter: drop-shadow(0 5px 12px rgba(0, 0, 0, 0.25));
}

/* Older-friendly admin navigation: fewer visual layers, clear labels and larger targets. */
.admin-shell {
  grid-template-columns: 292px minmax(0, 1fr);
}
.admin-sidebar {
  color: #b8cddd;
  background: linear-gradient(180deg, #061d34, #082b4c 65%, #07365b);
  border-right: 0;
  box-shadow: 8px 0 32px #061d3440;
}
.admin-sidebar-brand {
  min-height: 78px;
  padding: 16px 20px;
  border-bottom-color: #ffffff14;
  background: transparent;
}
.admin-sidebar-brand strong {
  color: #fff;
}
.admin-sidebar-brand small {
  color: #9fc2d5;
}
.admin-sidebar-brand .rdc-logo {
  width: 82px;
}
.admin-sidebar-brand button {
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid #ffffff2b;
  border-radius: 12px;
  color: #e7f4fb;
  background: #ffffff12;
  font-size: 1.7rem;
  line-height: 1;
}
.admin-user-card {
  margin: 16px;
  padding: 14px;
  border-color: #ffffff14;
  background: #ffffff09;
}
.admin-user-card b {
  color: #fff;
}
.admin-user-card small {
  color: #9fc2d5;
}
.admin-user-card > span,
.admin-header-avatar {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}
.admin-nav-groups {
  padding: 0 15px 12px;
}
.admin-nav-intro {
  margin: 18px 8px 15px;
  padding: 12px 13px;
  border: 1px solid #ffffff1c;
  border-radius: 12px;
  background: #ffffff0d;
}
.admin-nav-intro span,
.admin-nav-intro strong {
  display: block;
}
.admin-nav-intro span {
  color: #91d3ef;
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .08em;
}
.admin-nav-intro strong {
  margin-top: 3px;
  color: #fff;
  font-size: .95rem;
}
.admin-nav-groups section {
  margin-bottom: 17px;
}
.admin-nav-groups section > p {
  margin: 17px 10px 8px;
  color: #9bb8ca;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .03em;
  text-transform: none;
}
.admin-nav-groups a {
  min-height: 52px;
  margin: 4px 0;
  padding: 9px 11px;
  gap: 12px;
  border-radius: 12px;
  color: #c0d4e0 !important;
  font-size: .95rem;
  font-weight: 750;
}
.admin-nav-groups a span {
  line-height: 1.25;
}
.admin-nav-groups a:hover {
  color: #fff !important;
  background: #ffffff12;
}
.admin-nav-groups a.active {
  color: #fff !important;
  background: linear-gradient(90deg, #1684ca45, #ffffff0d);
  box-shadow: inset 4px 0 #1684ca;
}
.admin-nav-icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  color: #8fd0ed;
  border-color: #ffffff20;
  background: #ffffff0d;
}
.admin-nav-groups a.active .admin-nav-icon {
  color: #07527f;
  border-color: #b9def0;
  background: #e7f5fd;
}
.admin-nav-count {
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  margin-left: auto;
  padding: 0 6px;
  border-radius: 999px;
  color: #fff;
  background: #d15a4d;
  font-size: .72rem;
  line-height: 1;
}
.admin-sidebar-footer {
  margin: 10px 15px 18px;
  padding-top: 14px;
  border-top-color: #ffffff1c;
}
.admin-sidebar-footer > a,
.admin-sidebar-footer button {
  min-height: 48px;
  padding: 7px 8px;
  gap: 12px;
  color: #b6cedd;
  font-size: .9rem;
  font-weight: 700;
}
.admin-sidebar-footer .admin-nav-icon {
  flex-basis: 34px;
  width: 34px;
  height: 34px;
}
@media (max-width: 1020px) {
  .admin-shell {
    grid-template-columns: 1fr;
  }
  .admin-sidebar {
    width: min(340px, 88vw);
  }
  .admin-sidebar-brand button {
    display: grid;
  }
  .admin-header-title button {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border: 1px solid #c9dce7;
    border-radius: 12px;
    color: #31586e;
    background: #f4f9fb;
    font-size: 1.65rem;
    line-height: 1;
  }
}

/* Keep the everyday menu short; less frequent admin pages are grouped under More management. */
.admin-nav-intro {
  margin-bottom: 12px;
}
.admin-nav-primary {
  margin-bottom: 12px !important;
}
.admin-nav-collapsible {
  margin: 8px 0 10px;
  padding-top: 6px;
  border-top: 1px solid #ffffff1c;
}
.admin-nav-collapsible > summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 8px 11px;
  border-radius: 12px;
  color: #c5dae5;
  font-size: .94rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
.admin-nav-collapsible > summary::-webkit-details-marker {
  display: none;
}
.admin-nav-collapsible > summary > span {
  line-height: 1.25;
}
.admin-nav-collapsible > summary > b {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  margin-left: auto;
  border: 1px solid #ffffff35;
  border-radius: 9px;
  color: #d6edf8;
  background: #ffffff12;
  font-size: 0;
  line-height: 1;
}
.admin-nav-toggle::before {
  content: "+";
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1;
}
.admin-nav-collapsible[open] .admin-nav-toggle::before {
  content: "−";
}
.admin-nav-collapsible > summary:hover,
.admin-nav-collapsible > summary:focus-visible {
  background: #ffffff12;
}
.admin-nav-collapsible-links {
  margin: 2px 0 10px 15px;
  padding-left: 10px;
  border-left: 2px solid #ffffff24;
}
.admin-nav-collapsible-links a {
  min-height: 46px;
  margin: 3px 0;
  padding: 7px 9px;
  font-size: .88rem;
}
.admin-nav-collapsible-links .admin-nav-icon {
  flex-basis: 34px;
  width: 34px;
  height: 34px;
}

/* Homepage */
.home-hero-v2 {
  position: relative;
  min-height: 620px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #061d34 url("/images/home-workshop-session.jpg") center/cover
    no-repeat;
  color: #fff;
}
.home-hero-v2:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 20, 39, 0.2), transparent 68%);
  pointer-events: none;
}
.home-hero-content {
  position: relative;
  z-index: 1;
  padding-block: 74px;
}
.hero-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 54px;
}
.hero-brand > span {
  padding-left: 14px;
  border-left: 1px solid #ffffff42;
  color: #b9d8ea;
  font-size: 0.78rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.hero-kicker {
  margin: 0 0 12px;
  color: #68c7f6;
  font-size: 0.75rem;
  font-weight: 850;
  letter-spacing: 0.18em;
}
.home-hero-v2 h1 {
  max-width: 760px;
  margin: 0;
  color: #fff;
  font-size: clamp(3rem, 6vw, 5.7rem);
  line-height: 0.97;
  letter-spacing: -0.055em;
}
.hero-lead {
  max-width: 590px;
  margin: 22px 0 28px;
  color: #d1e4ef;
  font-size: 1.08rem;
  line-height: 1.7;
}
.home-hero-v2 .hero-actions {
  display: flex;
  gap: 11px;
}
.hero-primary {
  border-color: #25a7e8 !important;
  background: #1684ca !important;
}
.hero-primary:hover {
  background: #0c6fae !important;
}
.hero-secondary {
  border-color: #ffffff70 !important;
  background: #ffffff0d !important;
  color: #fff !important;
}
.hero-secondary:hover {
  background: #ffffff1f !important;
}
.hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  margin-top: 32px;
  color: #b9d8e8;
  font-size: 0.8rem;
}
.home-packages,
.availability-section {
  padding: 78px 0;
}
.home-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}
.home-section-head h2 {
  max-width: 650px;
  margin: 3px 0 0;
  font-size: clamp(2rem, 4vw, 3rem);
}
.home-section-head > a:not(.btn) {
  color: #126ca7;
  font-weight: 750;
  text-decoration: none;
}
.package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.package-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 390px;
  padding: 27px;
  border: 1px solid #cfdde8;
  border-radius: 18px;
  background: linear-gradient(150deg, #fff, #f4f9fc);
  box-shadow: 0 14px 35px #092d4810;
}
.package-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px #092d4819;
}
.package-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 13px;
  background: #e2f3fd;
  color: #096b9f;
  font-size: 1.35rem;
}
.package-number {
  position: absolute;
  right: 26px;
  top: 28px;
  color: #91a9ba;
  font-size: 0.75rem;
  font-weight: 850;
}
.package-card h3 {
  margin: 25px 0 9px;
  font-size: 1.38rem;
}
.package-card > p {
  margin: 0;
  color: #607386;
  line-height: 1.65;
}
.package-price {
  display: flex;
  align-items: end;
  gap: 7px;
  margin-top: auto;
  padding-top: 24px;
}
.package-price strong {
  color: #082b4c;
  font-size: 2rem;
  letter-spacing: -0.04em;
}
.package-price span,
.package-card > small {
  color: #688095;
}
.package-card > a {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
  padding-top: 17px;
  border-top: 1px solid #dce7ee;
  color: #096da8;
  font-weight: 800;
  text-decoration: none;
}
.availability-section {
  background: #071f36;
  color: #fff;
}
.availability-head h2 {
  color: #fff;
}
.availability-head p:last-child {
  margin: 8px 0 0;
  color: #a9c5d8;
}
.availability-head .eyebrow {
  color: #63c4f5;
}
.availability-legend {
  display: flex;
  justify-content: flex-end;
  gap: 18px;
  margin: -10px 0 16px;
  color: #b8cfdd;
  font-size: 0.75rem;
}
.availability-legend span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.availability-legend i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.availability-legend .available {
  background: #36c68a;
}
.availability-legend .limited {
  background: #f3b747;
}
.availability-legend .full {
  background: #71869a;
}
.availability-calendar {
  overflow: auto;
  border: 1px solid #ffffff1c;
  border-radius: 16px;
  background: #ffffff07;
}
.calendar-grid {
  min-width: 850px;
  display: grid;
  grid-template-columns: 130px repeat(3, minmax(180px, 1fr));
}
.calendar-header {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #0d3150;
}
.calendar-header > div {
  padding: 15px 17px;
  color: #cce5f4;
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.calendar-day {
  border-top: 1px solid #ffffff12;
}
.calendar-day > div,
.availability-cell {
  padding: 14px 17px;
  border-right: 1px solid #ffffff12;
}
.calendar-date b,
.calendar-date span {
  display: block;
}
.calendar-date span {
  color: #91afc3;
  font-size: 0.72rem;
}
.availability-cell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #fff;
  text-decoration: none;
}
.availability-cell span {
  font-weight: 800;
}
.availability-cell small {
  color: #93b3c7;
}
.availability-cell.available span {
  color: #62dba7;
}
.availability-cell.limited span {
  color: #f6c565;
}
.availability-cell.full {
  background: #ffffff04;
}
.availability-cell.full span,
.closed .availability-cell span {
  color: #8398aa;
}
.availability-cell:hover {
  background: #ffffff0a;
}
.home-help {
  padding: 48px 0;
  background: #eaf4fa;
}
.home-help-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.home-help h2 {
  max-width: 770px;
  margin: 4px 0 8px;
}
.home-help p:last-child {
  margin: 0;
  color: #63788a;
}

/* Google Flights-inspired availability finder */
.flight-availability {
  padding: 78px 0;
  background: #f3f7fa;
}
.flight-section-title {
  text-align: center;
}
.flight-section-title .eyebrow {
  color: #1477b4;
}
.flight-section-title h2 {
  margin: 4px 0 8px;
  font-size: clamp(2rem, 4vw, 3rem);
}
.flight-section-title > p:last-child {
  margin: 0;
  color: #65798a;
}
.flight-search {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr auto;
  max-width: 1040px;
  margin: 30px auto -28px;
  padding: 16px;
  border: 1px solid #d2dee7;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 14px 38px #102f461c;
}
.flight-search label {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr;
  grid-template-rows: auto 1fr;
  align-items: center;
  padding: 5px 15px;
  border-right: 1px solid #dce5eb;
}
.flight-search label > span {
  grid-column: 2;
  color: #647887;
  font-size: 0.67rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.flight-field-icon {
  grid-row: 1/3;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  color: #176fa7;
}
.flight-search select,
.flight-search label button {
  grid-column: 2;
  width: 100%;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: #18364b;
  font-size: 0.9rem;
  font-weight: 750;
  text-align: left;
  outline: 0;
}
.flight-search label button {
  cursor: pointer;
}
.flight-submit {
  min-width: 190px;
  margin-left: 12px;
  padding: 10px 18px;
  border: 0;
  border-radius: 10px;
  background: #1779bd;
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}
.flight-submit span {
  margin-left: 8px;
}
.flight-submit:disabled {
  background: #a7bac8;
  cursor: not-allowed;
}
.flight-calendar {
  max-width: 1120px;
  margin: 0 auto;
  padding: 58px 28px 24px;
  border: 1px solid #d5e0e8;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 45px #102f4612;
}
.flight-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid #e2e9ee;
}
.flight-calendar-head > div {
  display: flex;
  align-items: center;
  gap: 14px;
}
.flight-calendar-head h3 {
  min-width: 190px;
  margin: 0;
  text-align: center;
}
.flight-calendar-head button {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #d3dfe7;
  border-radius: 50%;
  background: #fff;
  color: #285069;
  font-size: 1.35rem;
}
.flight-calendar-head p {
  margin: 0;
  color: #708391;
  font-size: 0.74rem;
}
.flight-calendar-head p i {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 5px;
  border-radius: 50%;
  background: #22ad72;
}
.flight-weekdays,
.flight-date-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.flight-weekdays {
  padding-top: 13px;
}
.flight-weekdays span {
  padding: 9px;
  color: #7b8b97;
  font-size: 0.69rem;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}
.flight-date-grid {
  gap: 5px;
}
.flight-date {
  position: relative;
  min-height: 92px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 7px;
  border: 2px solid transparent;
  border-radius: 11px;
  background: #fff;
  color: #20394b;
  cursor: pointer;
}
.flight-date:hover:not(:disabled) {
  background: #edf7fd;
}
.flight-date > span {
  position: absolute;
  left: 9px;
  top: 7px;
  font-size: 0.75rem;
}
.flight-date b {
  color: #176ca4;
  font-size: 0.84rem;
}
.flight-date small {
  margin-top: 3px;
  color: #18845c;
  font-size: 0.62rem;
}
.flight-date.limited {
  background: #fffaf0;
}
.flight-date.limited small {
  color: #966415;
}
.flight-date.full {
  background: #f4f6f7;
  color: #a3afb7;
  cursor: not-allowed;
}
.flight-date.full b,
.flight-date.full small {
  color: #99a6af;
}
.flight-date.selected {
  border-color: #176fae;
  background: #e5f4fd;
  box-shadow: 0 0 0 2px #176fae20;
}
.flight-calendar-note {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding-top: 17px;
  border-top: 1px solid #e2e9ee;
  color: #6c7f8d;
  font-size: 0.72rem;
}
.flight-calendar-note span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.flight-calendar-note i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.flight-calendar-note .available {
  background: #22ad72;
}
.flight-calendar-note .limited {
  background: #e8a82b;
}
.flight-calendar-note .full {
  background: #a2afb8;
}
.flight-calendar-note > b {
  margin-left: auto;
  color: #176ca4;
}

/* Dashboard refresh */
.customer-dashboard {
  background: #f2f7fa;
}
.dashboard-hero {
  padding: 28px 30px !important;
  border: 0 !important;
  border-radius: 18px;
  background: linear-gradient(120deg, #061d34, #0b4c78) !important;
  color: #fff;
}
.dashboard-hero h1 {
  color: #fff;
}
.dashboard-hero .eyebrow {
  color: #6dc8f5;
}
.dashboard-hero .btn.alt {
  border-color: #ffffff38;
  background: #ffffff10;
  color: #fff;
}
.dashboard-attention {
  margin-top: 16px;
  border-radius: 12px;
}
.dashboard-stat {
  border-radius: 13px !important;
}
.next-booking-card {
  border-radius: 17px !important;
  background: linear-gradient(120deg, #082b4c, #0b609d) !important;
}
.dashboard-list {
  border-radius: 14px !important;
}
.print-dashboard-card {
  border-radius: 14px !important;
  background: linear-gradient(145deg, #fff, #eef8fd) !important;
}
.admin-dashboard-hero {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 25px;
  margin-bottom: 20px;
  padding: 27px 30px;
  border-radius: 17px;
  background: linear-gradient(120deg, #061d34, #0b4f7d);
  color: #fff;
  box-shadow: 0 14px 32px #082b4c1c;
}
.admin-dashboard-hero h1 {
  margin: 3px 0 7px;
  color: #fff;
}
.admin-dashboard-hero p:last-child {
  margin: 0;
  color: #b9d3e4;
}
.admin-dashboard-hero .eyebrow {
  color: #70caf7;
}
.admin-hero-actions {
  display: flex;
  gap: 9px;
}
.admin-dashboard-hero .btn.alt {
  border-color: #ffffff40;
  background: #ffffff0e;
  color: #fff;
}
.admin-metrics-v2 {
  grid-template-columns: repeat(5, minmax(145px, 1fr));
  margin-bottom: 26px;
}
.admin-metrics-v2 .admin-metric {
  min-height: 120px;
  display: grid;
  grid-template-columns: 42px 1fr;
  align-items: center;
  text-decoration: none;
  border-radius: 14px;
}
.admin-metrics-v2 .admin-metric > i {
  grid-column: 2;
  color: #7f99aa;
  font-size: 0.66rem;
  font-style: normal;
}
.admin-metric-icon.green {
  background: #e5f8ef;
  color: #15724c;
}
.admin-metric-icon.amber {
  background: #fff3d8;
  color: #8e5b0e;
}
.admin-metric-icon.violet {
  background: #f1eafb;
  color: #69409c;
}
.admin-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) 330px;
  gap: 20px;
  align-items: start;
}
.admin-section-head .eyebrow {
  margin-bottom: 4px;
}
.admin-booking-stack {
  overflow: hidden;
  border: 1px solid #dce6ed;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 9px 28px #10233e0a;
}
.admin-booking-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto auto 12px;
  align-items: center;
  gap: 14px;
  padding: 14px 17px;
  border-bottom: 1px solid #e6edf2;
  color: #213a4d;
  text-decoration: none;
}
.admin-booking-row:last-child {
  border-bottom: 0;
}
.admin-booking-row:hover {
  background: #f4f9fc;
}
.booking-time {
  display: grid;
  height: 48px;
  place-items: center;
  border-radius: 10px;
  background: #e7f4fc;
  color: #0b6398;
}
.booking-time b {
  font-size: 1.15rem;
  line-height: 1;
}
.booking-time span {
  font-size: 0.58rem;
  font-weight: 850;
}
.admin-booking-row p {
  margin: 2px 0 0;
  color: #728493;
  font-size: 0.72rem;
}
.admin-booking-row time {
  color: #52697a;
  font-size: 0.76rem;
  font-weight: 750;
}
.admin-booking-row > i {
  color: #89a0b0;
  font-size: 1.25rem;
}
.admin-quick-panel {
  padding: 23px;
  border: 1px solid #dbe6ed;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 9px 28px #10233e0a;
}
.admin-quick-panel h2 {
  margin: 3px 0 16px;
}
.admin-quick-panel nav {
  display: grid;
  gap: 6px;
}
.admin-quick-panel nav > a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 10px;
  color: #294357;
  text-decoration: none;
}
.admin-quick-panel nav > a:hover {
  background: #eef7fc;
}
.admin-quick-panel nav > a > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 9px;
  background: #e5f3fb;
  color: #0b6b9f;
  font-weight: 900;
}
.admin-quick-panel b,
.admin-quick-panel small {
  display: block;
}
.admin-quick-panel small {
  color: #7b8d9b;
  font-size: 0.67rem;
}
.admin-tip {
  display: grid;
  gap: 3px;
  margin-top: 18px;
  padding: 14px;
  border-radius: 10px;
  background: #082b4c;
  color: #fff;
}
.admin-tip span {
  color: #b7d3e4;
  font-size: 0.72rem;
}

@media (max-width: 900px) {
  .home-hero-v2 {
    min-height: 580px;
    background-position: 62% center;
  }
  .home-hero-v2:before {
    content: "";
    position: absolute;
    inset: 0;
    background: #03182bb8;
  }
  .home-hero-content {
    z-index: 2;
  }
  .package-grid {
    grid-template-columns: 1fr;
  }
  .calendar-grid {
    grid-template-columns: 110px repeat(3, minmax(170px, 1fr));
  }
  .flight-search {
    grid-template-columns: 1fr 1fr;
    margin-inline: 18px;
  }
  .flight-search label:nth-child(2) {
    border-right: 0;
  }
  .flight-submit {
    margin: 10px 0 0;
    grid-column: 1/-1;
    min-height: 48px;
  }
  .admin-metrics-v2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .admin-dashboard-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 680px) {
  .home-hero-v2 {
    min-height: 610px;
  }
  .hero-brand {
    margin-bottom: 38px;
  }
  .home-hero-v2 h1 {
    font-size: 3rem;
  }
  .home-hero-v2 .hero-actions,
  .home-help-inner,
  .admin-dashboard-hero,
  .admin-hero-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .home-hero-v2 .btn,
  .home-help .btn,
  .admin-hero-actions .btn {
    width: 100%;
  }
  .home-section-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .availability-legend {
    justify-content: flex-start;
  }
  .flight-search {
    grid-template-columns: 1fr;
  }
  .flight-search label {
    border-right: 0;
    border-bottom: 1px solid #e1e8ed;
  }
  .flight-submit {
    grid-column: auto;
  }
  .flight-calendar {
    padding: 48px 10px 16px;
    border-radius: 14px;
  }
  .flight-calendar-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .flight-calendar-head p {
    display: none;
  }
  .flight-weekdays span {
    padding: 5px 1px;
  }
  .flight-date-grid {
    gap: 2px;
  }
  .flight-date {
    min-height: 78px;
    padding: 3px;
  }
  .flight-date > span {
    left: 5px;
    top: 4px;
  }
  .flight-date b {
    font-size: 0.68rem;
  }
  .flight-date small {
    font-size: 0.52rem;
  }
  .flight-calendar-note {
    flex-wrap: wrap;
  }
  .flight-calendar-note > b {
    width: 100%;
    margin-left: 0;
  }
  .admin-metrics-v2 {
    grid-template-columns: 1fr;
  }
  .admin-booking-row {
    grid-template-columns: 44px minmax(0, 1fr) auto;
  }
  .admin-booking-row time,
  .admin-booking-row > i {
    display: none;
  }
  .admin-booking-row .badge {
    grid-column: 2;
    justify-self: start;
  }
}

/* Facility detail */
.facility-showcase {
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #061d34;
  color: #fff;
}
.facility-showcase-image {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
}
.facility-showcase-content {
  position: relative;
  z-index: 1;
  padding-block: 62px;
}
.facility-showcase .back-link {
  display: inline-block;
  margin-bottom: 35px;
  color: #b9ddf3;
  font-weight: 750;
  text-decoration: none;
}
.facility-tag {
  display: block;
  color: #65c8f6;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.facility-showcase h1 {
  max-width: 720px;
  margin: 10px 0;
  color: #fff;
  font-size: clamp(2.8rem, 6vw, 5.2rem);
  line-height: 1;
}
.facility-showcase-content > p {
  max-width: 650px;
  color: #d3e5ef;
  font-size: 1.05rem;
  line-height: 1.7;
}
.facility-hero-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 28px 0;
}
.facility-hero-facts span {
  padding: 11px 15px;
  border: 1px solid #ffffff2c;
  border-radius: 10px;
  background: #ffffff0d;
  color: #bcd4e2;
  font-size: 0.77rem;
}
.facility-hero-facts b {
  display: block;
  color: #fff;
  font-size: 0.9rem;
}
.facility-content {
  padding: 70px 0;
  background: #f3f7fa;
}
.facility-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 42px;
}
.facility-content h2 {
  margin: 5px 0 24px;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
}
.offer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.offer-grid article {
  display: flex;
  gap: 14px;
  padding: 20px;
  border: 1px solid #d6e2e9;
  border-radius: 14px;
  background: #fff;
}
.offer-grid article > span,
.resource-symbol {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 10px;
  background: #e4f4fd;
  color: #0875b4;
  font-weight: 900;
}
.offer-grid h3 {
  margin: 1px 0 5px;
  font-size: 1rem;
}
.offer-grid p {
  margin: 0;
  color: #6c7f8d;
  font-size: 0.8rem;
  line-height: 1.5;
}
.facility-best,
.facility-resources,
.facility-process {
  margin-top: 55px;
}
.facility-best {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  padding: 30px;
  border-radius: 18px;
  background: #092d4e;
  color: #fff;
}
.facility-best h2 {
  margin-bottom: 0;
  color: #fff;
}
.facility-best ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.facility-best li {
  padding-bottom: 10px;
  border-bottom: 1px solid #ffffff1c;
  color: #d6e7f0;
}
.resource-list {
  overflow: hidden;
  border: 1px solid #d5e2ea;
  border-radius: 14px;
  background: #fff;
}
.resource-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 19px;
}
.resource-row + .resource-row {
  border-top: 1px solid #e2eaef;
}
.resource-row div {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}
.resource-row small {
  color: #718491;
}
.resource-state {
  padding: 6px 9px;
  border-radius: 999px;
  background: #e3f8ee;
  color: #12734f;
  font-size: 0.63rem;
  font-weight: 900;
}
.facility-process ol {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.facility-process li {
  display: flex;
  gap: 16px;
  padding: 19px;
  border-left: 3px solid #1685c8;
  background: #fff;
}
.facility-process li > b {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #dff2fd;
  color: #0873ae;
}
.facility-process li div {
  display: flex;
  flex-direction: column;
}
.facility-process li span {
  margin-top: 4px;
  color: #6d808e;
  font-size: 0.82rem;
}
.facility-content aside {
  display: flex;
  flex-direction: column;
  gap: 17px;
}
.facility-price-card,
.facility-addon-card {
  padding: 25px;
  border: 1px solid #d5e2e9;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 12px 30px #0b2e4610;
}
.facility-price-card {
  position: sticky;
  top: 20px;
}
.facility-rate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 0;
  border-bottom: 1px solid #e1e9ee;
}
.facility-rate div {
  display: flex;
  flex-direction: column;
}
.facility-rate small,
.facility-price-card > p:last-of-type,
.facility-addon-card > p {
  color: #738592;
  font-size: 0.76rem;
}
.facility-rate > strong {
  color: #096fa9;
  font-size: 1.25rem;
}
.btn-block {
  display: block;
  margin-top: 20px;
  text-align: center;
}
.facility-addon-card ul {
  display: grid;
  gap: 9px;
  margin: 15px 0;
  padding: 0;
  list-style: none;
}
.facility-addon-card li span {
  margin-right: 8px;
  color: #1484c5;
  font-weight: 900;
}
.facility-addon-card > a {
  color: #0871ac;
  font-weight: 800;
  text-decoration: none;
}

/* Staff operations calendar and timing lanes */
.ops-calendar {
  margin: 22px 0;
  padding: 24px;
  border-radius: 18px;
}
.ops-calendar > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}
.ops-calendar h2 {
  margin: 2px 0;
}
.ops-calendar > header > div:last-child {
  display: flex;
  gap: 7px;
}
.ops-calendar button {
  border: 1px solid #ccdbe5;
  border-radius: 8px;
  background: #fff;
  color: #173b55;
  font-weight: 750;
  cursor: pointer;
}
.ops-calendar > header button {
  min-height: 36px;
  padding: 0 12px;
}
.ops-weekdays,
.ops-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
}
.ops-weekdays span {
  padding: 8px;
  color: #748693;
  font-size: 0.68rem;
  font-weight: 850;
  text-align: center;
  text-transform: uppercase;
}
.ops-day {
  min-height: 105px;
  padding: 9px !important;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-color: #dae5eb !important;
}
.ops-day.blank {
  visibility: hidden;
}
.ops-day b {
  font-size: 0.82rem;
}
.ops-day > span {
  min-height: 15px;
  color: #778a97;
  font-size: 0.61rem;
}
.ops-day i {
  width: 100%;
  margin-top: 4px;
  overflow: hidden;
  padding: 4px 5px;
  border-radius: 5px;
  background: #e5f3fc;
  color: #116b9f;
  font-size: 0.58rem;
  font-style: normal;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ops-day.has-bookings {
  background: #f6fbfe;
}
.ops-day.selected {
  border-color: #1178b7 !important;
  box-shadow: 0 0 0 2px #1178b721;
}
.ops-day-panel {
  display: flex;
  gap: 10px;
  margin-top: 15px;
  padding: 16px;
  border-radius: 11px;
  background: #eff6fa;
}
.ops-day-panel > b {
  min-width: 140px;
}
.ops-day-panel > a {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding-left: 12px;
  border-left: 1px solid #ccdbe4;
  color: #173d58;
  text-decoration: none;
}
.ops-day-panel a span,
.ops-day-panel a small,
.ops-day-panel > span {
  color: #6e8290;
  font-size: 0.72rem;
}
.operations-board {
  margin-top: 32px;
}
.operations-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
}
.operation-lane {
  overflow: hidden;
  border: 1px solid #d4e1e9;
  border-radius: 15px;
  background: #fff;
}
.operation-lane > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid #e1e9ee;
}
.operation-lane > header > div {
  display: flex;
  align-items: center;
  gap: 8px;
}
.operation-lane h3 {
  margin: 0;
  font-size: 1rem;
}
.operation-lane header i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #738794;
}
.operation-lane.ongoing header i {
  background: #1cac70;
}
.operation-lane.upcoming header i {
  background: #1685c8;
}
.operation-lane.past header i {
  background: #87949c;
}
.operation-lane header > span {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: #edf4f8;
  font-size: 0.7rem;
  font-weight: 850;
}
.queue-booking {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  padding: 14px 16px;
  color: #163950;
  text-decoration: none;
}
.queue-booking + .queue-booking {
  border-top: 1px solid #e6edf1;
}
.queue-booking div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.queue-booking b,
.queue-booking small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.queue-booking small,
.queue-booking time {
  color: #718591;
  font-size: 0.67rem;
}
.queue-booking time {
  text-align: right;
}
.queue-booking .badge {
  grid-column: 1/-1;
  justify-self: start;
}
.lane-empty {
  padding: 20px;
  color: #7b8d98;
  font-size: 0.78rem;
}
.loading {
  opacity: 0.55;
  pointer-events: none;
}

@media (max-width: 900px) {
  .facility-content-grid {
    grid-template-columns: 1fr;
  }
  .facility-price-card {
    position: static;
  }
  .operations-columns {
    grid-template-columns: 1fr;
  }
  .ops-day-panel {
    flex-wrap: wrap;
  }
}
@media (max-width: 680px) {
  .facility-showcase {
    min-height: 590px;
  }
  .facility-showcase-image {
    background-position: 65% center;
  }
  .facility-showcase-content:before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 -20px;
    background: #061d34a8;
  }
  .facility-hero-facts {
    display: grid;
  }
  .offer-grid,
  .facility-best {
    grid-template-columns: 1fr;
  }
  .ops-calendar {
    padding: 12px;
  }
  .ops-day {
    min-height: 68px;
    padding: 5px !important;
  }
  .ops-day > span,
  .ops-day i {
    display: none;
  }
  .ops-day-panel {
    flex-direction: column;
  }
  .ops-day-panel > a {
    padding: 8px 0 0;
    border-left: 0;
    border-top: 1px solid #ccdbe4;
  }
}

/* Unified responsive repair: booking, account, management and shared content. */
.booking-overview {
  display: block !important;
  align-items: initial !important;
}
.booking-overview > .card-title-row {
  width: 100%;
}
.booking-summary-list {
  width: 100%;
}
.detail-section > h3 {
  margin: 20px 0 4px;
  font-size: 0.82rem;
}
.detail-section > p {
  margin: 0;
  color: #405363;
  line-height: 1.6;
}
.detail-checks {
  display: grid;
  gap: 12px;
  margin: 15px 0 0;
  padding: 0;
  list-style: none;
}
.detail-checks li {
  position: relative;
  padding-left: 29px;
  color: #52687a;
  line-height: 1.5;
}
.detail-checks li:before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  width: 19px;
  height: 19px;
  place-items: center;
  border-radius: 50%;
  background: #e3f7ed;
  color: #13815a;
  font-size: 0.68rem;
  font-weight: 900;
}
.booking-detail-side > .card,
.booking-detail-main > .card {
  min-width: 0;
}
.payment-summary + .arrival-card,
.arrival-card + .action-disclosure {
  margin-top: 0;
}
.payment-summary form {
  display: grid;
  gap: 10px;
}
.declaration-check {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 9px;
  align-items: start;
  margin: 10px 0;
  color: #415666;
  font-size: 0.8rem;
  line-height: 1.45;
}
.declaration-check input {
  margin-top: 3px;
}
.payment-facts dd,
.booking-summary-list dd {
  overflow-wrap: anywhere;
}
.card-title-row > .badge {
  flex: 0 0 auto;
}
.action-disclosure {
  overflow: hidden;
}
.action-disclosure[open] summary {
  margin-bottom: 15px;
}
.danger-disclosure {
  border-color: #f0d4d1 !important;
  background: #fffafa !important;
}
.page-header h1 {
  max-width: 900px;
  line-height: 1.08;
  letter-spacing: -0.035em;
}
.tablewrap {
  max-width: 100%;
  overflow-x: auto;
}
.table {
  min-width: 720px;
}
.admin-content,
.main,
.page-shell,
.wrap {
  min-width: 0;
}
.admin-filter > * {
  min-width: 0;
}
.admin-filter .input {
  width: 100%;
}
.mobile-menu {
  max-height: calc(100vh - 84px);
  overflow-y: auto;
}
.mobile-menu form {
  width: 100%;
}

@media (max-width: 1020px) {
  .booking-detail-layout {
    grid-template-columns: minmax(0, 1fr) 310px;
  }
  .admin-dashboard-hero {
    align-items: flex-start;
  }
  .admin-metrics-v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .facility-content-grid {
    gap: 25px;
  }
}
@media (max-width: 820px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }
  .wrap,
  .page-shell,
  .page-shell.wide,
  .page-shell.narrow {
    width: min(100% - 32px, 1180px);
  }
  .page-shell,
  .page-shell.wide,
  .page-shell.narrow {
    padding-block: 30px 44px;
  }
  .page-header {
    margin-bottom: 18px;
  }
  .page-header h1 {
    margin-top: 6px;
    font-size: clamp(2rem, 8vw, 2.75rem);
  }
  .booking-detail-layout,
  .payment-layout,
  .dashboard-columns,
  .print-request-layout,
  .print-detail-grid,
  .checkin-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }
  .booking-detail-main,
  .booking-detail-side,
  .payment-layout > *,
  .dashboard-columns > *,
  .print-request-layout > *,
  .print-detail-grid > *,
  .checkin-layout > * {
    width: 100%;
    min-width: 0;
  }
  .booking-detail-side,
  .payment-summary,
  .print-help-card,
  .print-summary-card,
  .checkin-action {
    position: static !important;
  }
  .booking-detail-main,
  .booking-detail-side {
    display: grid !important;
    gap: 14px !important;
  }
  .detail-section,
  .payment-summary,
  .booking-overview,
  .booking-timeline,
  .arrival-card,
  .action-disclosure {
    margin: 0 !important;
    padding: 21px !important;
    border-radius: 12px !important;
  }
  .booking-detail-side .payment-summary {
    order: initial;
  }
  .booking-summary-list {
    grid-template-columns: 1fr 1fr;
  }
  .booking-overview {
    padding: 22px !important;
  }
  .admin-dashboard-hero,
  .home-section-head,
  .admin-section-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .admin-hero-actions {
    width: 100%;
  }
  .admin-metrics-v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .operations-columns {
    grid-template-columns: 1fr;
  }
  .ops-calendar {
    overflow: hidden;
  }
  .ops-calendar > header {
    align-items: flex-start;
    flex-direction: column;
  }
  .ops-weekdays,
  .ops-calendar-grid {
    gap: 3px;
  }
  .ops-day {
    min-height: 78px;
  }
  .ops-day i {
    display: none;
  }
  .ops-day-panel {
    flex-wrap: wrap;
  }
  .facility-content-grid {
    grid-template-columns: 1fr;
  }
  .facility-content aside {
    order: -1;
  }
  .facility-price-card {
    position: static;
  }
  .flight-calendar {
    max-width: calc(100vw - 32px);
  }
}
@media (max-width: 520px) {
  :root {
    font-size: 15px;
  }
  .wrap,
  .page-shell,
  .page-shell.wide,
  .page-shell.narrow {
    width: calc(100% - 20px);
  }
  .page-shell,
  .page-shell.wide,
  .page-shell.narrow {
    padding-block: 22px 34px;
  }
  .card {
    border-radius: 10px;
  }
  .page-header h1 {
    font-size: 2rem;
  }
  .eyebrow {
    font-size: 0.67rem;
    letter-spacing: 0.1em;
  }
  .public-nav {
    min-height: 62px !important;
    gap: 9px !important;
  }
  .public-brand .rdc-logo {
    width: 82px;
  }
  .mobile-nav summary {
    padding: 8px 10px;
  }
  .mobile-menu {
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    top: 66px !important;
    width: auto !important;
    max-height: calc(100dvh - 76px);
    border-radius: 10px !important;
    box-shadow: 0 18px 45px #071f3740 !important;
  }
  .booking-confirmation {
    padding: 16px 0 28px !important;
  }
  .booking-confirmation > .wrap {
    width: calc(100% - 20px) !important;
  }
  .booking-confirmation-head {
    align-items: stretch !important;
    flex-direction: column !important;
  }
  .booking-confirmation-head h1 {
    font-size: 1.45rem !important;
  }
  .confirmation-head-actions {
    grid-template-columns: 1fr !important;
  }
  .confirmation-head-actions .status-large {
    justify-content: center;
  }
  .booking-detail-main,
  .booking-detail-side {
    gap: 10px !important;
  }
  .detail-section,
  .payment-summary,
  .booking-overview,
  .booking-timeline,
  .arrival-card,
  .action-disclosure,
  .booking-detail-main > .card,
  .booking-detail-side > .card,
  .booking-detail-main > details {
    padding: 16px !important;
    border-radius: 9px !important;
  }
  .detail-facts {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    overflow: hidden;
    border: 1px solid #dbe5eb !important;
    border-radius: 8px !important;
  }
  .detail-facts > div {
    min-height: 0 !important;
    padding: 13px !important;
    border: 0 !important;
    border-bottom: 1px solid #dbe5eb !important;
    border-radius: 0 !important;
  }
  .detail-facts > div:last-child {
    border-bottom: 0 !important;
  }
  .detail-section > h2 {
    margin: 1px 0 15px;
    font-size: 1.25rem;
  }
  .detail-section > h3 {
    margin-top: 16px;
  }
  .detail-checks {
    gap: 10px;
  }
  .payment-total {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .payment-total strong {
    font-size: 1.4rem;
  }
  .btn-block {
    min-height: 44px;
  }
  .declaration-check {
    font-size: 0.78rem;
  }
  .booking-summary-list {
    grid-template-columns: 1fr !important;
    margin-top: 12px;
  }
  .booking-summary-list > div,
  .booking-summary-list > div:nth-child(odd):not(.summary-wide),
  .booking-summary-list > div:nth-child(even) {
    padding: 10px 0 !important;
    border-left: 0 !important;
  }
  .card-title-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .card-title-row > .badge {
    align-self: flex-start;
  }
  .booking-summary-list dd {
    font-size: 0.9rem;
  }
  .qr-card-wide {
    display: flex !important;
    align-items: stretch !important;
    flex-direction: column !important;
    text-align: left !important;
  }
  .qr-code-frame {
    width: min(240px, 100%) !important;
    margin: auto;
  }
  .payment-facts > div {
    align-items: flex-start;
  }
  .arrival-card {
    display: block !important;
  }
  .danger-disclosure summary {
    padding: 2px 0 !important;
  }
  .form-card {
    padding: 17px !important;
  }
  .formgrid,
  .ui-grid,
  .ui-grid.three,
  .print-specs,
  .checkin-facts,
  .audit-change,
  .payment-admin-details {
    grid-template-columns: 1fr !important;
  }
  .actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }
  .actions .btn {
    width: 100%;
  }
  .input,
  select.input,
  textarea.input {
    max-width: 100%;
    font-size: 16px;
  }
  .admin-content,
  .main {
    padding: 16px 10px 36px !important;
  }
  .admin-dashboard-hero {
    padding: 20px !important;
  }
  .admin-dashboard-hero h1 {
    font-size: 1.65rem;
  }
  .admin-hero-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .admin-metrics-v2 {
    grid-template-columns: 1fr;
  }
  .admin-metric {
    min-height: 82px;
  }
  .ops-calendar {
    padding: 10px;
  }
  .ops-calendar > header > div:last-child {
    width: 100%;
    display: grid;
    grid-template-columns: auto 1fr auto;
  }
  .ops-calendar > header button {
    padding-inline: 9px;
  }
  .ops-weekdays span {
    padding: 6px 0;
    font-size: 0.58rem;
  }
  .ops-day {
    min-height: 50px !important;
    padding: 5px !important;
    align-items: center;
    justify-content: center;
  }
  .ops-day > span,
  .ops-day i {
    display: none !important;
  }
  .ops-day-panel {
    flex-direction: column;
  }
  .ops-day-panel > b {
    min-width: 0;
  }
  .queue-booking {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 12px;
  }
  .tablewrap {
    margin-inline: -2px;
  }
  .table {
    min-width: 660px;
  }
  .flight-search {
    margin-inline: 10px;
  }
  .flight-calendar {
    max-width: calc(100vw - 20px);
    padding-inline: 7px;
  }
  .flight-calendar-head h3 {
    min-width: 0;
    font-size: 1.05rem;
  }
  .flight-weekdays span {
    font-size: 0.55rem;
  }
  .flight-date {
    min-height: 63px !important;
  }
  .flight-date b {
    font-size: 0.58rem !important;
  }
  .flight-date small {
    display: none;
  }
  .flight-date > span {
    font-size: 0.7rem;
  }
  .flight-calendar-note {
    gap: 9px;
    font-size: 0.62rem;
  }
  .home-hero-v2 h1 {
    font-size: 2.5rem;
  }
  .home-hero-content {
    padding-block: 48px;
  }
  .hero-brand {
    margin-bottom: 28px;
  }
  .package-card {
    min-height: 340px;
    padding: 21px;
  }
  .facility-showcase {
    min-height: 530px;
  }
  .facility-showcase h1 {
    font-size: 2.5rem;
  }
  .facility-showcase-content {
    padding-block: 38px;
  }
  .facility-content {
    padding: 38px 0;
  }
  .facility-best {
    padding: 21px;
  }
  .offer-grid article {
    padding: 16px;
  }
  .site-footer {
    padding-top: 32px;
  }
  .footer-main,
  .footer-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px;
  }
  .footer-contact {
    display: block !important;
  }
}

/* Shared booking calendar and Studio package selector */
.booking-create-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 20px;
  align-items: start;
}
.booking-create-main {
  display: grid;
  gap: 16px;
}
.booking-create-side {
  position: sticky;
  top: 85px;
}
.booking-create-summary {
  padding: 24px;
}
.booking-create-summary h2 {
  margin: 5px 0 18px;
}
.booking-create-summary dl {
  margin: 0 0 22px;
}
.booking-create-summary dl > div {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 10px 0;
  border-bottom: 1px solid #dce6ec;
}
.booking-create-summary dt {
  color: #607482;
  font-size: 0.72rem;
}
.booking-create-summary dd {
  margin: 0;
  max-width: 60%;
  font-weight: 800;
  text-align: right;
}
.package-choice > span {
  display: block;
  margin-bottom: 7px;
}
.package-choice > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.package-choice label {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 8px;
  padding: 12px;
  border: 1px solid #d4e1e9;
  border-radius: 9px;
  background: #f9fbfc;
  cursor: pointer;
}
.package-choice input {
  grid-row: 1/3;
}
.package-choice small {
  color: #647987;
  font-size: 0.67rem;
}
.package-choice label:has(input:checked) {
  border-color: #147dbb;
  background: #eaf6fd;
  box-shadow: 0 0 0 2px #147dbb18;
}
.studio-time-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 14px;
}
.booking-calendar-card {
  padding: 22px;
}
.booking-calendar-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.booking-calendar-card h2 {
  margin: 3px 0;
}
.booking-calendar-card > header > div:last-child {
  display: flex;
  gap: 7px;
}
.booking-calendar-card > header button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid #d1dfe7;
  border-radius: 50%;
  background: #fff;
  color: #164561;
  font-size: 1.3rem;
  cursor: pointer;
}
.booking-calendar-card > header button:disabled {
  cursor: wait;
  opacity: 0.55;
}
.booking-calendar-card.loading .booking-calendar-grid {
  opacity: 0.58;
  transition: opacity 0.15s ease;
}
.booking-weekdays,
.booking-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
}
.booking-weekdays span {
  padding: 7px;
  color: #718491;
  font-size: 0.66rem;
  font-weight: 850;
  text-align: center;
  text-transform: uppercase;
}
.booking-calendar-day {
  min-height: 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid #d8e4eb;
  border-radius: 9px;
  background: #fff;
  color: #183b52;
  cursor: pointer;
}
.booking-calendar-day small {
  margin-top: 4px;
  color: #268360;
  font-size: 0.58rem;
}
.booking-calendar-day.limited {
  background: #fff8e8;
}
.booking-calendar-day.limited small {
  color: #94670e;
}
.booking-calendar-day.full {
  background: #f3f5f6;
  color: #9aa8b1;
  cursor: not-allowed;
}
.booking-calendar-day.full small {
  color: #9aa8b1;
}
.booking-calendar-day.unselected,
.booking-calendar-day.unselected.selected {
  border-color: #d9e0e4;
  background: #eef2f4;
  color: #9aa8b1;
  box-shadow: none;
  cursor: not-allowed;
}
.booking-calendar-day.unselected small {
  color: #8c9ba4;
}
.booking-calendar-day.selected {
  border-color: #0879b8;
  background: #e7f5fd;
  box-shadow: 0 0 0 2px #0879b820;
}
.booking-calendar-day.blank {
  visibility: hidden;
}
.booking-calendar-help {
  margin: 14px 0 0;
  color: #59707f;
  font-size: 0.78rem;
}
@media (max-width: 900px) {
  .booking-create-layout {
    grid-template-columns: 1fr;
  }
  .booking-create-side {
    position: static;
  }
  .booking-create-summary {
    display: block;
  }
}
@media (max-width: 520px) {
  .booking-create-page {
    width: calc(100% - 16px) !important;
  }
  .booking-create-layout {
    gap: 10px;
  }
  .booking-calendar-card {
    padding: 12px;
  }
  .booking-calendar-card > header {
    align-items: flex-start;
  }
  .booking-calendar-card h2 {
    font-size: 1.25rem;
  }
  .booking-weekdays,
  .booking-calendar-grid {
    gap: 2px;
  }
  .booking-weekdays span {
    padding: 5px 0;
    font-size: 0.55rem;
  }
  .booking-calendar-day {
    min-height: 51px;
    border-radius: 6px;
  }
  .booking-calendar-day small {
    display: none;
  }
  .package-choice > div,
  .studio-time-fields {
    grid-template-columns: 1fr;
  }
  .booking-create-summary {
    padding: 17px;
  }
  .booking-create-side {
    order: -1;
  }
}

@media (min-width: 901px) {
  .flight-search {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }
  .flight-submit {
    min-width: 170px;
  }
}

/* Expandable booking records and installment ledger */
.expandable-bookings {
  display: grid;
  gap: 12px;
}
.expandable-booking {
  padding: 0 !important;
  overflow: hidden;
}
.expandable-booking > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px;
  cursor: pointer;
  list-style: none;
}
.expandable-booking > summary::-webkit-details-marker {
  display: none;
}
.expandable-booking > summary h2 {
  margin: 8px 0 3px;
  font-size: 1.15rem;
}
.expandable-booking > summary p {
  margin: 0;
  color: #627786;
  font-size: 0.78rem;
}
.booking-summary-money {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
}
.booking-summary-money small {
  color: #6e8290;
}
.booking-summary-money strong {
  color: #0a6fa8;
  font-size: 1.25rem;
}
.booking-summary-money span {
  margin-top: 5px;
  color: #506879;
  font-size: 0.66rem;
}
.expandable-booking[open] .booking-summary-money span {
  transform: rotate(180deg);
}
.expandable-booking-body {
  padding: 20px 22px;
  border-top: 1px solid #dce6ec;
  background: #f8fbfd;
}
.booking-expanded-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.booking-expanded-facts > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 12px;
  border: 1px solid #dde7ed;
  border-radius: 8px;
  background: #fff;
}
.booking-expanded-facts small {
  color: #6f8290;
  font-size: 0.66rem;
  text-transform: uppercase;
}
.booking-expanded-facts b {
  margin-top: 4px;
  overflow-wrap: anywhere;
}
.booking-expanded-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
}
.booking-expanded-actions form {
  margin: 0;
}
.booking-payment-history {
  scroll-margin-top: 90px;
}
.payment-ledger {
  display: grid;
  margin-top: 15px;
  border-top: 1px solid #dce6ec;
}
.payment-ledger article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 12px;
  padding: 13px 0;
  border-bottom: 1px solid #dce6ec;
}
.payment-ledger article > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.payment-ledger small {
  color: #6b7f8c;
  font-size: 0.68rem;
}
.payment-ledger a {
  color: #0873ad;
  font-weight: 800;
}
.booking-balance-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 18px;
  padding: 16px;
  border-radius: 10px;
  background: #edf7fc;
}
.booking-balance-action > div {
  display: flex;
  flex-direction: column;
}
.booking-balance-action small {
  color: #607684;
}
.booking-balance-action strong {
  font-size: 1.3rem;
}
.admin-booking-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border: 0;
  border-bottom: 1px solid #dce6ec;
  background: #eef6fa;
  color: #173c55;
  text-align: left;
  cursor: pointer;
}
.admin-booking-toggle span {
  font-weight: 850;
}
.admin-booking-toggle small {
  margin-left: auto;
  color: #657a88;
}
.admin-booking-toggle b {
  font-size: 1.2rem;
}
.admin-booking-expand-body {
  display: none;
}
.operation-card.expanded .admin-booking-expand-body {
  display: block;
}
.operation-card.expanded .admin-booking-toggle b {
  transform: rotate(180deg);
}
.queue-booking {
  cursor: pointer;
}
.queue-booking.expanded {
  grid-template-columns: 1fr auto;
}
.queue-inline-actions {
  grid-column: 1/-1;
  display: flex;
  gap: 7px;
  padding-top: 8px;
}
.queue-inline-actions a {
  padding: 7px 9px;
  border-radius: 6px;
  background: #e6f3fb;
  color: #096da7;
  font-size: 0.68rem;
  font-weight: 800;
  text-decoration: none;
}
@media (max-width: 600px) {
  .expandable-booking > summary {
    align-items: flex-start;
    padding: 16px;
  }
  .booking-summary-money span {
    display: none;
  }
  .expandable-booking-body {
    padding: 14px;
  }
  .booking-expanded-facts {
    grid-template-columns: 1fr 1fr;
  }
  .booking-expanded-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .booking-expanded-actions .btn,
  .booking-expanded-actions form,
  .booking-expanded-actions button {
    width: 100%;
  }
  .payment-ledger article {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .payment-ledger article .badge,
  .payment-ledger article > a {
    grid-column: auto;
  }
  .booking-balance-action {
    align-items: stretch;
    flex-direction: column;
  }
  .booking-balance-action .btn {
    width: 100%;
  }
  .admin-booking-toggle small {
    display: none;
  }
}
.admin-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 0 18px;
}
.admin-quick-actions .btn {
  min-height: 38px;
  padding: 9px 13px;
  font-size: 0.72rem;
}
.admin-metric {
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.admin-metric:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px #10233e16;
}
.admin-metric.danger {
  border-color: #f1c9c5;
  background: #fffaf9;
}
.admin-metric.danger strong {
  color: #bd5149;
}
.operations-board {
  margin-top: 24px;
}
.operations-columns {
  grid-template-columns: 1.15fr 0.85fr;
}
.operation-lane.urgent {
  border-color: #efcbc6;
  background: #fffafa;
}
.operation-lane.urgent > header {
  background: #fff3f1;
}
.operation-lane.urgent > header span {
  color: #b84e47;
  background: #fbe0dc;
}
.ops-timeline {
  overflow: hidden;
  border: 1px solid #d8e4eb;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 7px 22px #10233e09;
}
.ops-timeline .queue-booking {
  grid-template-columns: 116px minmax(0, 1fr) auto auto;
  align-items: center;
}
.ops-timeline .queue-booking + .queue-booking {
  border-top: 1px solid #e5edf2;
}
.ops-timeline .queue-booking .badge {
  grid-column: auto;
}
.ops-timeline .queue-booking .btn {
  padding: 7px 10px;
  font-size: 0.64rem;
}
.ops-timeline time {
  font-weight: 800;
  color: #31566d;
}
.calendar-legend {
  margin: 8px 0 14px;
  color: #6f8290;
  font-size: 0.68rem;
}
.calendar-legend::first-letter {
  color: #1786c5;
}
.ops-calendar {
  border: 1px solid #d8e4eb !important;
  box-shadow: 0 7px 22px #10233e09 !important;
}
.timeline-maintenance {
  background: #fffaf1;
}
.timeline-closure {
  background: #fff5f5;
}
@media (max-width: 680px) {
  .admin-quick-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .admin-quick-actions .btn {
    width: 100%;
    text-align: center;
  }
  .ops-timeline .queue-booking {
    grid-template-columns: 1fr auto;
  }
  .ops-timeline .queue-booking time {
    grid-column: 1/-1;
    text-align: left;
  }
  .ops-timeline .queue-booking .badge {
    grid-column: 1;
  }
  .ops-timeline .queue-booking .btn {
    grid-column: 2;
    grid-row: 2;
  }
}
/* RDC visual theme overrides and page-specific layout refinements. */

/* Final mobile layout pass: preserve the task order and prevent narrow-screen overflow. */
@media (max-width: 700px) {
  html,
  body,
  .site-shell,
  .admin-body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .page-shell,
  .page-shell.wide,
  .page-shell.narrow,
  .admin-content,
  .management-workspace,
  .reports-workspace,
  .availability-hub,
  .setup-page {
    min-width: 0;
    max-width: 100%;
  }

  .card,
  .form-card,
  .management-create-panel,
  .management-record-card,
  .promo-card,
  .availability-record,
  .report-panel {
    min-width: 0;
  }

  .tablewrap,
  .report-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table,
  .report-table {
    width: max-content;
    min-width: 100%;
  }

  .admin-page-head,
  .management-hero,
  .reports-hero,
  .availability-hub-hero,
  .setup-hero,
  .notifications-hero,
  .payments-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-page-head > .btn,
  .management-primary-action,
  .management-hero-actions,
  .reports-export {
    width: 100%;
  }
}

@media (max-width: 520px) {
  /* The customer must choose the facility/date before reviewing payment. */
  .booking-create-side {
    order: 0 !important;
  }

  .booking-flow-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .booking-flow-steps span {
    width: 100%;
    justify-content: flex-start;
  }

  .booking-create-main > .form-card,
  .booking-create-side .booking-create-summary {
    padding: 16px !important;
  }

  .booking-create-summary dl > div {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    align-items: start;
  }

  .booking-create-summary dd {
    max-width: 100%;
    text-align: left;
  }

  .booking-create-summary .form-section {
    padding-inline: 0;
  }

  .booking-create-summary .btn {
    min-height: 48px;
  }
}
