/* Reservations */
.gsv2-reservation-list{display:grid;gap:12px}
.gsv2-reservation{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:var(--fived-ink);padding:14px;position:relative;overflow:hidden}
.gsv2-reservation:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gsv2-gold)}
.gsv2-reservation.is-cancelled:before{background:var(--gsv2-red)}
.gsv2-date{width:64px;height:64px;border:1px solid var(--gsv2-gold-border);border-radius:18px;display:grid;place-items:center;background:rgba(201,168,76,.08);color:var(--gsv2-gold-light)}
.gsv2-date strong{font-size:27px;line-height:1}
.gsv2-date span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gsv2-muted)}
.gsv2-reservation-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.gsv2-reservation h3{color:#fff;font-size:16px;margin:0}
.gsv2-reservation p{color:var(--gsv2-muted);font-size:13px;line-height:1.55;margin:6px 0 0}
.gsv2-reservation-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.gsv2-pill,.gsv2-mobile-status{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.04);color:#ddd;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;padding:6px 9px}
.gsv2-pill.green,.gsv2-mobile-status.green{color:var(--gsv2-green)}
.gsv2-pill.red,.gsv2-mobile-status.red{color:#ff9b9b}
.gsv2-pill.amber,.gsv2-mobile-status.amber{color:var(--gsv2-amber)}
.gsv2-actions{display:flex;gap:8px;align-items:center}
.gsv2-icon-btn{width:42px;height:42px;padding:0;border-radius:14px;background:var(--fived-panel)}
.gsv2-icon-btn svg{width:17px;height:17px;stroke:currentColor;fill:none}


/* 5D fix: cards da fila de reservas mais limpos e com cursor clicável */
.ge-staff-v2 .gsv2-reservation {
  cursor: pointer;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  gap: 18px;
  padding: 16px 18px;
  min-height: 118px;
  border-color: rgba(201, 168, 76, .14);
  background:
    radial-gradient(circle at 100% 0%, rgba(201, 168, 76, .08), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.035), rgba(255,255,255,.012)),
    #090909;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 18px 42px rgba(0,0,0,.22);
  transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease;
}

.ge-staff-v2 .gsv2-reservation:hover,
.ge-staff-v2 .gsv2-reservation:focus-within {
  transform: translateY(-1px);
  border-color: rgba(201, 168, 76, .34);
  background:
    radial-gradient(circle at 100% 0%, rgba(201, 168, 76, .12), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,.045), rgba(255,255,255,.015)),
    var(--fived-ink);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 22px 52px rgba(0,0,0,.28);
}

.ge-staff-v2 .gsv2-reservation::before {
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: linear-gradient(180deg, rgba(201,168,76,.25), var(--gsv2-gold), rgba(201,168,76,.25));
}

.ge-staff-v2 .gsv2-reservation .gsv2-date {
  width: 60px;
  height: 60px;
  border-radius: 18px;
  background: linear-gradient(160deg, rgba(201,168,76,.14), rgba(201,168,76,.04));
  box-shadow: inset 0 0 0 1px rgba(201,168,76,.08);
}

.ge-staff-v2 .gsv2-reservation .gsv2-date strong {
  font-size: 25px;
}

.ge-staff-v2 .gsv2-reservation-title-row {
  align-items: center;
}

.ge-staff-v2 .gsv2-reservation h3 {
  font-family: var(--gsv2-serif, "Cormorant Garamond"), serif;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: .01em;
}

.ge-staff-v2 .gsv2-reservation p {
  margin-top: 8px;
  color: rgba(239, 231, 220, .72);
}

.ge-staff-v2 .gsv2-reservation-meta {
  gap: 9px;
  margin-top: 12px;
}

.ge-staff-v2 .gsv2-reservation .gsv2-pill,
.ge-staff-v2 .gsv2-reservation .gsv2-mobile-status {
  min-height: 28px;
  padding: 6px 11px;
  background: rgba(255,255,255,.035);
  border-color: rgba(255,255,255,.1);
  color: #f7f0e7;
}

.ge-staff-v2 .gsv2-reservation .gsv2-mobile-status {
  margin-left: auto;
  background: rgba(255,255,255,.04);
}

.ge-staff-v2 .gsv2-reservation .gsv2-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 230px;
}

.ge-staff-v2 .gsv2-reservation .gsv2-icon-btn {
  width: auto;
  min-width: 58px;
  height: 36px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(201,168,76,.24);
  background: rgba(255,255,255,.025);
  color: var(--gsv2-gold-light, var(--fived-gold-light));
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.ge-staff-v2 .gsv2-reservation .gsv2-icon-btn:hover,
.ge-staff-v2 .gsv2-reservation .gsv2-icon-btn:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(201,168,76,.48);
  background: rgba(201,168,76,.1);
  color: #fff;
}

.ge-staff-v2 .gsv2-reservation .gsv2-icon-btn.pay {
  min-width: 94px;
}

@media (max-width: 1280px) {
  .ge-staff-v2 .gsv2-reservation {
    grid-template-columns: 70px minmax(0, 1fr);
  }

  .ge-staff-v2 .gsv2-reservation .gsv2-actions {
    grid-column: 2;
    justify-self: start;
    min-width: 0;
    margin-top: 2px;
  }
}

@media (max-width: 768px) {
  .ge-staff-v2 .gsv2-reservation {
    cursor: default;
    -webkit-tap-highlight-color: transparent;
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px;
    min-height: 0;
  }

  .ge-staff-v2 .gsv2-reservation::before {
    top: 0;
    left: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    height: 3px;
    border-radius: 22px 22px 0 0;
  }

  .ge-staff-v2 .gsv2-reservation .gsv2-date {
    width: 58px;
    height: 58px;
  }

  .ge-staff-v2 .gsv2-reservation-title-row {
    align-items: flex-start;
    gap: 8px;
  }

  .ge-staff-v2 .gsv2-reservation h3 {
    font-size: 18px;
  }

  .ge-staff-v2 .gsv2-reservation .gsv2-actions {
    grid-column: auto;
    width: 100%;
    justify-content: stretch;
    flex-wrap: wrap;
    gap: 8px;
  }

  .ge-staff-v2 .gsv2-reservation .gsv2-icon-btn,
  .ge-staff-v2 .gsv2-reservation .gsv2-icon-btn.pay {
    flex: 1 1 96px;
    min-width: 0;
    height: 38px;
  }
}

/* 5D fix: remover badge duplicado de estado no topo do card da fila */
.ge-staff-v2 .gsv2-reservation .gsv2-mobile-status {
  display: none !important;
}

@media (max-width: 768px) {
  .ge-staff-v2 .gsv2-reservation .gsv2-mobile-status {
    display: none !important;
  }
}

/* 5D fix: cores por estado nos cards da fila de reservas */
.ge-staff-v2 .gsv2-reservation.is-pending::before {
  background: linear-gradient(180deg, rgba(255,167,38,.24), #FFA726, rgba(255,167,38,.24)) !important;
}

.ge-staff-v2 .gsv2-reservation.is-partial::before {
  background: linear-gradient(180deg, rgba(96,165,250,.22), #60A5FA, rgba(96,165,250,.22)) !important;
}

.ge-staff-v2 .gsv2-reservation.is-marked::before {
  background: linear-gradient(180deg, rgba(0,200,83,.22), #00C853, rgba(0,200,83,.22)) !important;
}

.ge-staff-v2 .gsv2-reservation.is-cancelled::before {
  background: linear-gradient(180deg, rgba(255,82,82,.22), #FF5252, rgba(255,82,82,.22)) !important;
}

.ge-staff-v2 .gsv2-reservation .gsv2-pill.status.amber,
.ge-staff-v2 .gsv2-reservation .gsv2-mobile-status.amber {
  color: #FFD08A !important;
  border-color: rgba(255,167,38,.34) !important;
  background: rgba(255,167,38,.08) !important;
}

.ge-staff-v2 .gsv2-reservation .gsv2-pill.status.blue,
.ge-staff-v2 .gsv2-reservation .gsv2-mobile-status.blue {
  color: #A9D5FF !important;
  border-color: rgba(96,165,250,.38) !important;
  background: rgba(96,165,250,.09) !important;
}

.ge-staff-v2 .gsv2-reservation .gsv2-pill.status.green,
.ge-staff-v2 .gsv2-reservation .gsv2-mobile-status.green {
  color: #8CF2B6 !important;
  border-color: rgba(0,200,83,.34) !important;
  background: rgba(0,200,83,.08) !important;
}

.ge-staff-v2 .gsv2-reservation .gsv2-pill.status.red,
.ge-staff-v2 .gsv2-reservation .gsv2-mobile-status.red {
  color: #FFB3B3 !important;
  border-color: rgba(255,82,82,.36) !important;
  background: rgba(255,82,82,.09) !important;
}

.ge-staff-v2 .gsv2-reservation.is-pending .gsv2-date {
  border-color: rgba(255,167,38,.36);
  background: linear-gradient(160deg, rgba(255,167,38,.13), rgba(255,167,38,.035));
  color: #FFD08A;
}

.ge-staff-v2 .gsv2-reservation.is-partial .gsv2-date {
  border-color: rgba(96,165,250,.36);
  background: linear-gradient(160deg, rgba(96,165,250,.12), rgba(96,165,250,.035));
  color: #A9D5FF;
}

.ge-staff-v2 .gsv2-reservation.is-marked .gsv2-date {
  border-color: rgba(0,200,83,.34);
  background: linear-gradient(160deg, rgba(0,200,83,.11), rgba(0,200,83,.03));
  color: #8CF2B6;
}

.ge-staff-v2 .gsv2-reservation.is-cancelled .gsv2-date {
  border-color: rgba(255,82,82,.36);
  background: linear-gradient(160deg, rgba(255,82,82,.12), rgba(255,82,82,.035));
  color: #FFB3B3;
}


/* 5D fix: paginação premium da Fila de reservas + carrossel mobile */
.ge-staff-v2 #reservas .ge-reservas-carousel-dots {
  display: none !important;
}

.ge-staff-v2 #reservas .ge-mock-pagination.ge-mock-pagination-v2 {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 0 2px;
  margin: 4px 0 0;
  border: 0 !important;
  border-top: 1px solid rgba(201,168,76,.14) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ge-staff-v2 #reservas .ge-page-controls {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px;
  margin: 0 !important;
  border: 1px solid rgba(201,168,76,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.018);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}

.ge-staff-v2 #reservas .ge-page-btn,
.ge-staff-v2 #reservas .ge-page-dots {
  min-width: 34px;
  height: 34px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent !important;
  border-radius: 999px;
  background: transparent !important;
  color: rgba(239,231,220,.78) !important;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.ge-staff-v2 #reservas a.ge-page-btn:hover,
.ge-staff-v2 #reservas a.ge-page-btn:focus-visible {
  color: #fff !important;
  border-color: rgba(201,168,76,.28) !important;
  background: rgba(201,168,76,.08) !important;
  transform: translateY(-1px);
}

.ge-staff-v2 #reservas .ge-page-btn.is-current {
  color: #090909 !important;
  border-color: var(--gsv2-gold, var(--fived-gold)) !important;
  background: linear-gradient(135deg, var(--fived-gold-light), var(--fived-gold)) !important;
}

.ge-staff-v2 #reservas .ge-page-btn.is-disabled {
  opacity: .34;
  pointer-events: none;
}

.ge-staff-v2 #reservas .ge-page-arrow {
  min-width: 38px;
  font-size: 19px;
  font-family: var(--gsv2-serif, "Cormorant Garamond"), serif;
  font-weight: 700;
}

@media (max-width: 768px) {
  .ge-staff-v2 #reservas {
    overflow: visible;
  }

  .ge-staff-v2 #reservas .gsv2-reservation-list {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    display: flex !important;
    gap: 14px;
    overflow-x: auto;
    overflow-y: visible;
    padding: 0 16px 10px;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 16px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .ge-staff-v2 #reservas .gsv2-reservation-list::-webkit-scrollbar {
    display: none;
  }

  .ge-staff-v2 #reservas .gsv2-reservation {
    flex: 0 0 calc(100vw - 32px);
    width: calc(100vw - 32px);
    max-width: calc(100vw - 32px);
    scroll-snap-align: center;
  }

  .ge-staff-v2 #reservas .ge-mock-pagination.ge-mock-pagination-v2 {
    display: none !important;
  }

  .ge-staff-v2 #reservas .ge-reservas-carousel-dots {
    width: 100%;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 12px 0 2px;
    padding: 0;
  }

  .ge-staff-v2 #reservas .ge-reservas-carousel-dots button {
    width: 7px;
    height: 7px;
    min-width: 7px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(232,212,139,.28);
    cursor: pointer;
    transition: width .2s ease, background .2s ease, opacity .2s ease;
  }

  .ge-staff-v2 #reservas .ge-reservas-carousel-dots button.is-active {
    width: 22px;
    background: var(--gsv2-gold-light, var(--fived-gold-light));
  }
}

/* 5D fix: desktop usa paginação numérica; mobile usa todos os cards no carrossel. */
@media (min-width: 769px) {
  .ge-staff-v2 #reservas .gsv2-reservation.is-desktop-hidden {
    display: none !important;
  }
}

/* 5D fix: seta da paginação perfeitamente centrada. */
.ge-staff-v2 #reservas .ge-page-arrow {
  position: relative;
  font-size: 0 !important;
  line-height: 1 !important;
  transform: none !important;
}

.ge-staff-v2 #reservas .ge-page-arrow::before {
  display: block;
  font-family: var(--gsv2-serif, "Cormorant Garamond"), serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  transform: translateY(-1px);
}

.ge-staff-v2 #reservas .ge-page-arrow.is-prev::before {
  content: "‹";
}

.ge-staff-v2 #reservas .ge-page-arrow.is-next::before {
  content: "›";
}

@media (max-width: 768px) {
  .ge-staff-v2 #reservas {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 18px 16px 16px !important;
    overflow: hidden !important;
  }

  .ge-staff-v2 #reservas .gsv2-reservation-list {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: -16px !important;
    margin-right: -16px !important;
    padding: 0 16px 12px !important;
  }

  .ge-staff-v2 #reservas .gsv2-reservation,
  .ge-staff-v2 #reservas .gsv2-reservation.is-desktop-hidden {
    display: grid !important;
    flex: 0 0 calc(100vw - 32px) !important;
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
  }

  .ge-staff-v2 #reservas .gsv2-date {
    width: 62px !important;
    height: 62px !important;
    display: grid !important;
    grid-template-rows: 1fr auto !important;
    align-content: center !important;
    justify-items: center !important;
    padding: 8px 0 7px !important;
    border-radius: 18px !important;
  }

  .ge-staff-v2 #reservas .gsv2-date strong {
    display: block !important;
    font-size: 25px !important;
    line-height: .92 !important;
    letter-spacing: .01em !important;
  }

  .ge-staff-v2 #reservas .gsv2-date span {
    display: block !important;
    margin-top: 4px !important;
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
    text-align: center !important;
  }
}
