/* Pan Szybka – Drawer-style modals (works with Bootstrap 4/5 modals) */

/* Smooth slide-in */
.modal.modal-drawer-right .modal-dialog,
.modal.modal-drawer-top .modal-dialog {
  transition: transform .25s ease-in-out;
  pointer-events: none;
}
.modal.modal-drawer-right .modal-content,
.modal.modal-drawer-top .modal-content {
  pointer-events: auto;
}

/* Right drawer (reservation details) */
.modal.modal-drawer-right .modal-dialog {
  position: fixed;
  top: 0;
  right: 0;
  margin: 0;
  height: 100%;
  width: min(860px, 100%);
  max-width: 860px;
  transform: translateX(100%);
}
.modal.modal-drawer-right.show .modal-dialog {
  transform: translateX(0);
}
.modal.modal-drawer-right .modal-content {
  height: 100%;
  border-radius: 0;
}
.modal.modal-drawer-right .modal-header {
  position: sticky;
  top: 0;
  z-index: 1056;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.modal.modal-drawer-right .modal-footer {
  position: sticky;
  bottom: 0;
  z-index: 1056;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.06);
}

/* Top drawer (warehouse picker) */
.modal.modal-drawer-top .modal-dialog {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: 0;
  width: 100%;
  max-width: 100%;
  height: min(80vh, 920px);
  transform: translateY(-100%);
}
.modal.modal-drawer-top.show .modal-dialog {
  transform: translateY(0);
}
.modal.modal-drawer-top .modal-content {
  height: 100%;
  border-radius: 0 0 16px 16px;
}
.modal.modal-drawer-top .modal-header {
  position: sticky;
  top: 0;
  z-index: 1056;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.modal.modal-drawer-top .modal-body {
  overflow: auto;
}

/* Booking parts section inside reservation drawer */
.booking-parts-panel {
  background: rgba(245, 248, 250, 0.75);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  padding: 16px;
}
.booking-parts-panel .table td,
.booking-parts-panel .table th {
  white-space: nowrap;
}
.booking-parts-panel .table td:nth-child(2) { /* Device column */
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Picker toolbar spacing */
#bookingPartsPickerModal .form-control,
#bookingPartsPickerModal .form-select {
  height: 42px;
}

/* Make picker table header more readable */
/* Make picker table header more readable (bez sticky – unikamy konfliktów z top-sheet) */
#bpp_results thead th {
  background: rgba(245, 248, 250, 0.95);
  color: #5e6278;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .02em;
  border-bottom: 1px solid rgba(0,0,0,.06);
  white-space: nowrap;
}


/* Modal -> Offcanvas TOP look (Booking Parts Picker) */
.bpp-topsheet.modal {
  padding: 0 !important;
}

.bpp-topsheet.modal .modal-dialog {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 !important;
  height: min(82vh, 920px);
}

.bpp-topsheet.modal .modal-content {
  height: 100%;
  border-radius: 0 0 16px 16px !important;
  border: 0 !important;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.25) !important;
}

/* “uchwyt” jak w offcanvas */
#bookingPartsPickerModal.bpp-topsheet .modal-content::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 64px;
  height: 5px;
  border-radius: 999px;
  background: rgba(0,0,0,.18);
  z-index: 6;
}

#bookingPartsPickerModal.bpp-topsheet .modal-header {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 5;
  border-bottom: 1px solid rgba(0,0,0,.08);
  padding: 14px 18px;
}

#bookingPartsPickerModal.bpp-topsheet .modal-title {
  font-weight: 600;
  color: #181c32;
}

.bpp-topsheet.modal .modal-body {
  overflow: auto;
  padding: 12px 16px;
}

.bpp-topsheet.modal .modal-footer {
  position: sticky;
  bottom: 0;
  background: #fff;
  z-index: 5;
  border-top: 1px solid rgba(0,0,0,.08);
  padding: 10px 16px;
}

/* Filtry – „panel” */
#bookingPartsPickerModal .bpp-filters {
  background: rgba(245, 248, 250, 0.85);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  padding: 12px;
}

#bookingPartsPickerModal .bpp-filters .btn {
  height: 42px;
  font-weight: 600;
}

#bookingPartsPickerModal .bpp-filters .form-check {
  padding-top: 6px;
}

/* Wyniki – tabela w “karcie” */
#bookingPartsPickerModal .bpp-table-wrap {
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

#bookingPartsPickerModal #bpp_results {
  margin-bottom: 0;
}

#bookingPartsPickerModal #bpp_results tbody td {
  vertical-align: top;
}

#bookingPartsPickerModal #bpp_results td:last-child {
  min-width: 360px;
}

/* Breakdown magazynów: badge + przycisk w jednej linii */
#bookingPartsPickerModal #bpp_results td:last-child .mb-1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

#bookingPartsPickerModal #bpp_results td:last-child .badge {
  background: rgba(239, 242, 245, 0.9) !important;
  border: 1px solid rgba(0,0,0,.06);
  font-weight: 500;
  color: #181c32 !important;
}

#bookingPartsPickerModal .bpp_reserve_btn {
  font-weight: 600;
  white-space: nowrap;
}

/* Paginacja */
#bookingPartsPickerModal #bpp_pagination_info {
  font-size: 0.9rem;
}

/* Alert – delikatniej i “produktowo” */
#bookingPartsPickerModal #bpp_error {
  border-radius: 14px;
}

/* Mobile: więcej wysokości + mniej “ramki” */
@media (max-width: 576px) {
  .bpp-topsheet.modal .modal-dialog {
    height: 92vh;
  }
  .bpp-topsheet.modal .modal-content {
    border-radius: 0 !important;
  }
  #bookingPartsPickerModal #bpp_results td:last-child {
    min-width: 260px;
  }
}

/* ===== Booking Parts Picker (modal top-sheet) – polish tabeli ===== */
#bookingPartsPickerModal .bpp-results-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.08);
  font-weight: 600;
  font-size: 12px;
  color: rgba(108,117,125,1);
  text-transform: uppercase;
  letter-spacing: .02em;
  white-space: nowrap;
}

#bookingPartsPickerModal .bpp-results-table tbody td {
  padding-top: 10px;
  padding-bottom: 10px;
  border-top: 1px solid rgba(0,0,0,.04);
  vertical-align: top;
}

#bookingPartsPickerModal .bpp-results-table.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: rgba(245, 248, 250, 0.55);
}

#bookingPartsPickerModal .bpp-results-table tbody tr:hover > * {
  background-color: rgba(235, 240, 245, 0.65);
}

/* Szerokości nagłówków – stabilny układ */
#bookingPartsPickerModal .bpp-th-sku   { width: 120px; }
#bookingPartsPickerModal .bpp-th-brand { width: 160px; }
#bookingPartsPickerModal .bpp-th-device{ width: 260px; }
#bookingPartsPickerModal .bpp-th-part  { width: 170px; }
#bookingPartsPickerModal .bpp-th-type  { width: 130px; }
#bookingPartsPickerModal .bpp-th-qty   { width: 120px; }
#bookingPartsPickerModal .bpp-th-wh    { min-width: 520px; text-align: left; }

/* Multiline w kolumnach – mniej „pustki” */
#bookingPartsPickerModal .bpp-col-brand,
#bookingPartsPickerModal .bpp-col-device {
  font-size: 12px;
  line-height: 1.25;
}

#bookingPartsPickerModal .bpp-col-device {
  white-space: pre-line;
  color: rgba(108,117,125,1);
}

#bookingPartsPickerModal .bpp-col-qty {
  font-variant-numeric: tabular-nums;
}

/* Magazyny: badge po lewej, przycisk po prawej, pełna szerokość linii */
#bookingPartsPickerModal .bpp-col-wh { min-width: 520px; }

#bookingPartsPickerModal .bpp-wh-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  margin-bottom: 6px;
}

#bookingPartsPickerModal .bpp-wh-row:last-child { margin-bottom: 0; }

#bookingPartsPickerModal .bpp-wh-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(239, 242, 245, 0.90) !important;
  color: rgba(33,37,41,1) !important;
  font-weight: 500;
  max-width: 100%;
  white-space: nowrap;
}

#bookingPartsPickerModal .bpp-wh-btn {
  min-width: 96px;
  white-space: nowrap;
}




/* ==============================
   Warehouse Receipt (Nowe przyjęcie)
   ============================== */

/* Warehouse – Nowe przyjęcie: kompaktowy pasek nagłówka */
#Modal_Receipt_New .receipt-header-card {
  background: rgba(245, 248, 250, 0.75);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
}

#Modal_Receipt_New .receipt-header-compact .form-control,
#Modal_Receipt_New .receipt-header-compact .form-select {
  height: 40px;
  background-color: white;
}

#Modal_Receipt_New .receipt-attach {
  max-width: 360px;
}


#Modal_Receipt_New .receipt-modal-body{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden; /* scroll robimy w sekcji listy */
  min-height: 0;
}

#Modal_Receipt_New .receipt-sticky-footer{
  flex: 0 0 auto;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.06);
}

#Modal_Receipt_New .tab-content{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

#Modal_Receipt_New .tab-pane.active{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

#Modal_Receipt_New .receipt-items-scroll{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: auto;
}

/* Sugestie bez opacity (żeby nie przebijało tło spod spodem) */
#Modal_Receipt_New .receipt-suggest-primary{
  background: rgba(239,242,245,.9);
}

#Modal_Receipt_New .receipt-suggest-secondary{
  background: #fff;
}

#Modal_Receipt_New #ReceiptSkuSuggest .list-group-item{
  background-clip: padding-box;
}

/* Review: kandydaci bardziej kompaktowi */
#Modal_Receipt_New #ReceiptReviewList .list-group-item{
  border-radius: 10px;
  margin-bottom: 8px;
}


/* Warehouse Receipt – opis pozycji w tabeli */
#Modal_Receipt_New #ReceiptItemsBody td:nth-child(2) .fw-bolder {
  line-height: 1.2;
}

#Modal_Receipt_New #ReceiptItemsBody td:nth-child(2) .fs-8 {
  line-height: 1.2;
  white-space: normal;
}



/* Reservation drawer – compact layout */
.reservation-compact-drawer .modal-dialog {
  width: min(850px, 100%);
  max-width: 850px;
}

.reservation-compact-drawer .modal-content {
  overflow: hidden;
}

.reservation-compact-drawer .reservation-compact-body {
  height: calc(100vh - 154px);
  overflow: auto;
  padding: 16px 20px 20px;
}

.reservation-compact-drawer .reservation-section {
  max-width: 100%;
}

.reservation-compact-drawer .form-label {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
}

.reservation-compact-drawer .form-control-sm {
  min-height: 38px;
}

.reservation-compact-drawer .reservation-notes {
  min-height: 72px;
  resize: vertical;
}

.reservation-compact-drawer .reservation-meta-line {
  display: flex;
  align-items: center;
  overflow: hidden;
  white-space: nowrap;
}

.reservation-compact-drawer .booking-parts-panel {
  padding: 14px;
}

.reservation-compact-drawer .reservation-compact-footer .btn {
  min-width: 118px;
}

@media (max-width: 767.98px) {
  .reservation-compact-drawer .reservation-compact-body {
    height: calc(100vh - 170px);
    padding: 14px;
  }

  .reservation-compact-drawer .reservation-compact-footer .btn {
    min-width: auto;
  }
}

/* Reservation drawer – highlighted status switch */
.reservation-compact-drawer .reservation-status-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 90px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.06);
  background: linear-gradient(180deg, rgba(245,248,250,.95), rgba(255,255,255,.95));
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
  cursor: pointer;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out, transform .15s ease-in-out;
}

.reservation-compact-drawer .reservation-status-card:hover {
  border-color: rgba(0,158,247,.28);
  box-shadow: 0 10px 28px rgba(0,158,247,.10);
  transform: translateY(-1px);
}

.reservation-compact-drawer .reservation-status-card__label {
  color: #7e8299;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 4px;
}

.reservation-compact-drawer .reservation-status-card__value {
  font-size: 26px;
  line-height: 1.15;
  font-weight: 800;
  color: #009ef7;
  text-align: center;
}

.reservation-compact-drawer .reservation-status-card__hint {
  margin-top: 8px;
  color: #7e8299;
  font-size: 12px;
  font-weight: 600;
}

.reservation-compact-drawer #reservation_status_headertext {
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .reservation-compact-drawer .reservation-status-card {
    min-height: 96px;
  }

  .reservation-compact-drawer .reservation-status-card__value {
    font-size: 22px;
  }
}




/*!* Reservation / reusable stock picker suggestions *!*/
/*.reservation-compact-drawer #BookingSkuSuggest {*/
/*  border: 1px solid rgba(0,0,0,.06);*/
/*  border-radius: 10px;*/
/*  overflow: hidden;*/
/*  background: #fff;*/
/*}*/

/*.reservation-compact-drawer #BookingSkuSuggest .list-group-item {*/
/*  min-height: 58px;*/
/*  padding: 9px 12px;*/
/*  border-left: 0;*/
/*  border-right: 0;*/
/*  background-clip: padding-box;*/
/*}*/

/*.reservation-compact-drawer #BookingSkuSuggest .list-group-item:first-child {*/
/*  border-top: 0;*/
/*}*/

/*.reservation-compact-drawer #BookingSkuSuggest .list-group-item:last-child {*/
/*  border-bottom: 0;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-primary {*/
/*  background: rgba(239,242,245,.92);*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-secondary {*/
/*  background: #fff;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-row {*/
/*  display: flex;*/
/*  align-items: center;*/
/*  justify-content: space-between;*/
/*  gap: 14px;*/
/*  min-width: 0;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-main {*/
/*  min-width: 0;*/
/*  flex: 1 1 auto;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-title {*/
/*  font-weight: 700;*/
/*  color: #181c32;*/
/*  line-height: 1.15;*/
/*  white-space: nowrap;*/
/*  overflow: hidden;*/
/*  text-overflow: ellipsis;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-subtitle {*/
/*  margin-top: 4px;*/
/*  display: flex;*/
/*  align-items: center;*/
/*  gap: 6px;*/
/*  color: #5e6278;*/
/*  font-size: 12px;*/
/*  line-height: 1.15;*/
/*  white-space: nowrap;*/
/*  overflow: hidden;*/
/*  text-overflow: ellipsis;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-dot {*/
/*  color: #a1a5b7;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-side {*/
/*  flex: 0 0 auto;*/
/*  min-width: 120px;*/
/*  text-align: right;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-badges {*/
/*  display: flex;*/
/*  justify-content: flex-end;*/
/*  gap: 6px;*/
/*  margin-bottom: 4px;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-badge {*/
/*  font-size: 11px;*/
/*  line-height: 1;*/
/*  padding: 5px 8px;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-sku {*/
/*  color: #7e8299;*/
/*  font-size: 12px;*/
/*  line-height: 1.15;*/
/*  margin-right: 8px;*/
/*  white-space: nowrap;*/
/*}*/

/*@media (max-width: 767.98px) {*/
/*  .reservation-compact-drawer .booking-suggest-row {*/
/*    align-items: flex-start;*/
/*  }*/

/*  .reservation-compact-drawer .booking-suggest-side {*/
/*    min-width: 110px;*/
/*  }*/

/*  .reservation-compact-drawer .booking-suggest-badges {*/
/*    flex-direction: column;*/
/*    align-items: flex-end;*/
/*    gap: 3px;*/
/*  }*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-title-row {*/
/*  display: flex;*/
/*  align-items: center;*/
/*  justify-content: space-between;*/
/*  gap: 10px;*/
/*  min-width: 0;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-stock {*/
/*  display: flex;*/
/*  align-items: center;*/
/*  gap: 6px;*/
/*  flex-wrap: nowrap;*/
/*}*/

/*.reservation-compact-drawer .booking-suggest-stock-badge {*/
/*  font-size: 11px;*/
/*  padding: 4px 7px;*/
/*  line-height: 1;*/
/*  white-space: nowrap;*/
/*}*/

/*!* lekkie wyróżnienie hover jak receipt *!*/
/*.reservation-compact-drawer #BookingSkuSuggest .list-group-item:hover {*/
/*  background: #f5f8fa;*/
/*}*/



/*!* Reservation drawer – reserved parts table aligned with pick rows *!*/
/*.reservation-compact-drawer .booking-reserved-table {*/
/*  table-layout: fixed;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-table .booking-col-sku {*/
/*  width: 14%;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-table .booking-col-name {*/
/*  width: 39%;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-table .booking-col-wh {*/
/*  width: 25%;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-table .booking-col-qty {*/
/*  width: 10%;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-table .booking-col-actions {*/
/*  width: 12%;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-row td {*/
/*  padding-top: 10px;*/
/*  padding-bottom: 10px;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-title {*/
/*  font-weight: 700;*/
/*  color: #181c32;*/
/*  line-height: 1.15;*/
/*  white-space: nowrap;*/
/*  overflow: hidden;*/
/*  text-overflow: ellipsis;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-subtitle {*/
/*  margin-top: 4px;*/
/*  color: #5e6278;*/
/*  font-size: 12px;*/
/*  line-height: 1.15;*/
/*  white-space: nowrap;*/
/*  overflow: hidden;*/
/*  text-overflow: ellipsis;*/
/*}*/

/*.reservation-compact-drawer .booking-reserved-wh {*/
/*  font-size: 11px;*/
/*  padding: 5px 8px;*/
/*}*/


.event.event-has-parts {
  position: relative;
  box-shadow: inset -4px 0 0 rgba(255,255,255,.85);
}

.event.event-has-parts .event_name {
  display: block;
  padding-right: 40px;
}

.event .event-parts-badge {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border-radius: 999px;
  background: rgba(245,248,250,.96);
  color: #5e6278;
  border: 1px solid rgba(255,255,255,.9);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0,0,0,.16);
}

.event .event-parts-badge i {
  font-size: 12px;
  line-height: 1;
  color: #5e6278;
}
