/* =========================================================
   File: /Hotel/css/forms_pms_compact.css
   Scopo: controlli compatti PMS + fix BookingModal
   Versione: v0.3.1.56
   ========================================================= */

:root{
  --pms-ctl-minh: calc(1.5em + .5rem + 2px);
  --pms-ctl-pad-y: .25rem;
  --pms-ctl-pad-x: .5rem;
  --pms-ctl-font: .875rem;
}

.form-control:not(textarea),
.form-select{
  min-height: var(--pms-ctl-minh) !important;
  padding: var(--pms-ctl-pad-y) var(--pms-ctl-pad-x) !important;
  font-size: var(--pms-ctl-font) !important;
  line-height: 1.5 !important;
  background-color: #f8f9fa !important;
  border-radius: var(--pms-radius-md, 12px) !important;
}

textarea.form-control{
  padding: var(--pms-ctl-pad-y) var(--pms-ctl-pad-x) !important;
  font-size: var(--pms-ctl-font) !important;
  line-height: 1.5 !important;
  background-color: #f8f9fa !important;
  border-radius: var(--pms-radius-md, 12px) !important;
}

.input-group > .form-control,
.input-group > .form-select,
.input-group > .btn{
  min-height: var(--pms-ctl-minh) !important;
}

input.pms-number,
#bookingModal input[type="number"]{
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

#bookingModal .bk-booking-grid .form-label{
  margin-bottom: .25rem;
}

#bookingModal .bk-booking-grid .bi-info-circle{
  cursor: help;
}

#bookingModal .bk-booking-grid .form-control,
#bookingModal .bk-booking-grid .form-select{
  width: 100%;
}

#bookingModal .bk-group-picker{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .5rem;
  align-items: stretch;
}

#bookingModal .bk-group-picker__swatchbox{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(var(--pms-ctl-minh) + .75rem);
  padding: 0 .75rem;
  border: 1px solid #ced4da;
  border-radius: var(--pms-radius-md, 12px);
  background-color: #f8f9fa;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
}

#bookingModal .bk-group-picker__select{
  min-width: 0;
}

#bookingModal .bk-group-picker__select > .form-select,
#bookingModal .bk-group-picker__select > .select2-container{
  width: 100% !important;
}

#bookingModal .bk-group-picker__select .select2-container--default .select2-selection--single,
#bookingModal .bk-group-picker__select .select2-container--bootstrap-5 .select2-selection--single{
  height: 100% !important;
}

#bookingModal .bk-group-picker__add{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(var(--pms-ctl-minh) + .75rem);
  padding: 0 .85rem;
  border-radius: var(--pms-radius-md, 12px) !important;
}

#bookingModal .bk-group-picker__add .bi{
  line-height: 1;
}

/* =========================================================
   BookingModal: header/footer visibili e body scrollabile
   Nota: il form è wrappato dentro .modal-content, quindi serve
   ricreare la struttura flex che Bootstrap si aspetta.
   ========================================================= */
#bookingModal .modal-dialog{
  height: calc(100% - 1rem);
}

#bookingModal .modal-content{
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 1rem);
  overflow: hidden;
}

#bookingModal #bookingForm{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

#bookingModal #bookingForm > .modal-footer{
  flex: 0 0 auto;
  background: var(--bs-modal-bg, #fff);
}
#bookingModal #bookingForm > .modal-header{
  flex: 0 0 auto;
  /* background gestito da .bk-modal-header */
}

#bookingModal #bookingForm > .modal-body{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-bottom: 1rem;
}

#bookingModal #bookingForm > .modal-footer{
  position: sticky;
  bottom: 0;
  z-index: 3;
  border-top: 1px solid var(--bs-border-color, rgba(0,0,0,.125));
  box-shadow: 0 -4px 10px rgba(0,0,0,.06);
}

/* ═══════════════════════════════════════════════
   BOOKING MODAL — RESTYLING v1.173
   ═══════════════════════════════════════════════ */

/* Header con gradiente */
#bookingModal .bk-modal-header {
  background: linear-gradient(135deg, #1a56db 0%, #0ea5e9 100%) !important;
  color: #fff !important;
  border-bottom: none;
  padding: .9rem 1.25rem;
}
#bookingModal .bk-modal-header .btn-close {
  filter: invert(1) brightness(2);
  opacity: .8;
}
#bookingModal .bk-modal-header .btn-close:hover { opacity: 1; }

/* Icona tonda nell'header */
#bookingModal .bk-modal-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  font-size: 1.15rem;
  color: #fff;
  flex-shrink: 0;
}

/* Subtitle header (camera + cliente) */
#bookingModal .bk-modal-subtitle {
  font-size: .72rem;
  opacity: .78;
  min-height: .9rem;
  margin-top: .05rem;
  color: rgba(255,255,255,.9);
  letter-spacing: .02em;
}

/* Dot colorato accanto a "Stato" */
#bookingModal .bk-stato-dot {
  font-size: .55rem;
  vertical-align: middle;
  transition: color .2s;
}

/* Sezione date/prezzi — card con sfondo leggero */
#bookingModal .bk-section-dates {
  background: rgba(13,110,253,0.04);
  border: 1px solid rgba(13,110,253,0.10);
  border-radius: 10px;
  padding: .85rem 1rem .6rem;
  margin-top: .25rem;
}

/* Tab — look più pulito con icone */
#bookingModal .nav-tabs .nav-link {
  font-size: .85rem;
  padding: .45rem .9rem;
  color: #6c757d;
  border-color: transparent;
}
#bookingModal .nav-tabs .nav-link.active {
  color: #1a56db;
  font-weight: 600;
  border-bottom-color: #1a56db;
}
#bookingModal .nav-tabs .nav-link .bi {
  opacity: .75;
}
#bookingModal .nav-tabs .nav-link.active .bi {
  opacity: 1;
}

/* Label con icone — colore leggermente più caldo */
#bookingModal .form-label .bi {
  font-size: .8em;
}

/* Prezzo suggerito — background read-only più visibile */
#bookingModal input[name="prezzo_suggerito"] {
  background: rgba(0,0,0,0.03);
  color: #6c757d;
  font-style: italic;
}

/* Prezzo finale — evidenzia il campo importante */
#bookingModal input[name="prezzo_finale"] {
  font-weight: 600;
  border-color: rgba(25,135,84,.35);
  background: rgba(25,135,84,.03);
}
#bookingModal input[name="prezzo_finale"]:focus {
  border-color: #198754;
  box-shadow: 0 0 0 .2rem rgba(25,135,84,.2);
}

/* Check-in/out — bordo colorato sottile */
#bookingModal input[name="check_in"] {
  border-left: 3px solid #198754;
}
#bookingModal input[name="check_out"] {
  border-left: 3px solid #dc3545;
}

/* Note textarea */
#bookingModal textarea[name="note"] {
  border-radius: 8px;
  resize: vertical;
  min-height: 80px;
  background: #fafbff;
}

/* Modal body — sfondo leggermente azzurrino (coerente col progetto) */
#bookingModal .modal-body {
  background: var(--pms-modal-bg, #dbe7f7);
}

/* Footer — bottone Salva più prominente */
#bookingModal .modal-footer .btn-primary {
  min-width: 90px;
  font-weight: 600;
}

/* ═══════════════════════════════════════════════
   PMS MODAL HEADERS — stile globale v1.175
   ═══════════════════════════════════════════════ */

.pms-modal-header {
  padding: .85rem 1.2rem !important;
  border-bottom: none !important;
  border-radius: calc(var(--bs-modal-inner-border-radius, .5rem) - 1px) calc(var(--bs-modal-inner-border-radius, .5rem) - 1px) 0 0;
  color: #fff !important;
  background: var(--pms-mh-bg) !important;
}
.pms-modal-header .modal-title { color: #fff !important; font-weight: 600; font-size: .98rem; }
.pms-mh-close { filter: invert(1) brightness(2); opacity: .8; }
.pms-mh-close:hover { opacity: 1; }

/* Icona tonda */
.pms-mh-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
  font-size: 1.05rem;
  flex-shrink: 0;
}

/* Varianti gradiente */
.pms-mh-primary  { --pms-mh-bg: linear-gradient(135deg,#1a56db 0%,#0ea5e9 100%); }
.pms-mh-teal     { --pms-mh-bg: linear-gradient(135deg,#0d9488 0%,#22d3ee 100%); }
.pms-mh-indigo   { --pms-mh-bg: linear-gradient(135deg,#4f46e5 0%,#818cf8 100%); }
.pms-mh-slate    { --pms-mh-bg: linear-gradient(135deg,#475569 0%,#94a3b8 100%); }
.pms-mh-info     { --pms-mh-bg: linear-gradient(135deg,#0284c7 0%,#38bdf8 100%); }
.pms-mh-danger   { --pms-mh-bg: linear-gradient(135deg,#dc2626 0%,#f87171 100%); }

/* Override specifico per bookingModal (già usava bk-modal-header) */
#bookingModal .bk-modal-header {
  --pms-mh-bg: linear-gradient(135deg,#1a56db 0%,#0ea5e9 100%);
}

/* ═══════════════════════════════════════════════
   BOOKING MODAL — redesign prudente v.3.1.h
   ═══════════════════════════════════════════════ */
#bookingModal .bk-modal-dialog{
  max-width: 1180px;
}
#bookingModal .bk-modal-content{
  border: 0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(31, 41, 55, .18);
}
#bookingModal .bk-modal-header{
  padding: 1rem 1.25rem;
  background: linear-gradient(135deg, #2555b8 0%, #3469d6 100%) !important;
}
#bookingModal .bk-modal-header .modal-title{
  font-size: 1.05rem;
  font-weight: 700;
}
#bookingModal .bk-modal-subtitle{
  font-size: .78rem;
  opacity: .92;
}
#bookingModal .bk-modal-body{
  background: #eef3fb;
  padding: 1rem;
}
#bookingModal .bk-panel{
  background: #f7f9fd;
  border: 1px solid #d9e1f1;
  border-radius: 14px;
  padding: 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}
#bookingModal .bk-panel__title{
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: #7f8aa5;
  text-transform: uppercase;
}
#bookingModal .bk-panel__title:after{
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: #d9e1f1;
}
#bookingModal .form-label{
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #7f8aa5;
  margin-bottom: .35rem;
}
#bookingModal .form-control,
#bookingModal .form-select,
#bookingModal .select2-container--bootstrap-5 .select2-selection,
#bookingModal .select2-container--default .select2-selection--single{
  min-height: 40px;
  border-radius: 8px;
  border-color: #cfd8ea;
  background: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
}
#bookingModal textarea.form-control{
  min-height: 92px;
}
#bookingModal .bk-group-picker__swatchbox{
  height: 40px;
  border-radius: 8px;
  border-color: #cfd8ea;
  background: #fff;
}
#bookingModal .bk-section-dates{
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}
#bookingModal #bk_tax_wrap{
  border-top: 1px solid #d9e1f1;
  padding-top: 12px;
}
#bookingModal #bk_tax_wrap h6{
  font-size: .82rem;
  font-weight: 700;
  color: #6b7a99;
}
#bookingModal #bk_tax_recalc,
#bookingModal #bk_sc_open,
#bookingModal #bk_tax_save{
  min-width: 92px;
}
#bookingModal .table > :not(caption) > * > *{
  background: transparent;
}
#bookingModal .bk-modal-footer{
  background: #f3f6fc;
  border-top: 1px solid #d9e1f1;
  padding: .8rem 1rem;
}
#bookingModal .bk-footer-summary{
  gap: .75rem;
}
#bookingModal .bk-footer-saldo{
  font-size: 1.25rem;
  font-weight: 800;
  color: #315fe2;
}
#bookingModal .bk-footer-saldo #bkTotalePrenotazione{
  color: #315fe2;
}
#bookingModal .bk-footer-pagato-wrap .badge{
  padding: .38rem .65rem;
  border-radius: 999px;
  font-weight: 600;
}
#bookingModal .bk-actions-booking .btn-primary,
#bookingModal .modal-footer > .btn-outline-secondary{
  min-width: 84px;
}
@media (max-width: 991.98px){
  #bookingModal .bk-footer-summary{
    flex-direction: column;
    align-items: stretch !important;
  }
  #bookingModal .bk-footer-summary > div:last-child{
    width: 100%;
    justify-content: flex-end;
  }
}


/* ═══════════════════════════════════════════════
   BOOKING MODAL — contrasto e gestione gruppo v.3.1.i
   ═══════════════════════════════════════════════ */
#bookingModal .bk-modal-body{
  background: #e8eef8;
}
#bookingModal .bk-panel{
  background: #fdfefe;
  border-color: #c7d2e6;
  box-shadow: 0 1px 0 rgba(255,255,255,.92), 0 1px 3px rgba(37, 85, 184, .06);
}
#bookingModal .bk-panel__title{
  color: #66789d;
}
#bookingModal .bk-panel__title:after{
  background: #ccd6ea;
}
#bookingModal .form-label{
  color: #6a7da3;
}
#bookingModal .form-control,
#bookingModal .form-select,
#bookingModal .select2-container--bootstrap-5 .select2-selection,
#bookingModal .select2-container--default .select2-selection--single,
#bookingModal .bk-group-picker__swatchbox{
  border-color: #bccae3;
  color: #24324a;
}
#bookingModal .form-control:focus,
#bookingModal .form-select:focus,
#bookingModal .select2-container--bootstrap-5.select2-container--focus .select2-selection,
#bookingModal .select2-container--default.select2-container--focus .select2-selection--single{
  border-color: #5d82d9;
  box-shadow: 0 0 0 .18rem rgba(49,95,226,.14);
}
#bookingModal input[name="check_in"],
#bookingModal input[name="check_out"]{
  border-left-width: 4px;
}
#bookingModal .bk-modal-footer{
  background: #eef3fb;
  border-top-color: #ccd6ea;
}
#bookingModal .bk-group-manage-wrap{
  display: flex;
  align-items: center;
}
#bookingModal .bk-group-manage-link{
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  color: #4f6696 !important;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
#bookingModal .bk-group-manage-link:hover,
#bookingModal .bk-group-manage-link:focus{
  color: #2555b8 !important;
}
#bookingModal .bk-group-manage-link .bi{
  font-size: .9rem;
}


/* ═══════════════════════════════════════════════
   BOOKING MODAL — ispirazione prenotazione.html v.3.1.j
   ═══════════════════════════════════════════════ */
#bookingModal .bk-modal-content{
  border-radius: 20px;
  box-shadow: 0 24px 60px rgba(27, 42, 89, .22);
}
#bookingModal .bk-modal-header{
  padding: 1.05rem 1.2rem;
  background: linear-gradient(135deg, #1b3e78 0%, #2e69db 100%) !important;
}
#bookingModal .bk-modal-icon{
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(255,255,255,.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
}
#bookingModal .bk-modal-chip{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 22px;
  padding: 0 .45rem;
  border-radius: 999px;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: #fff;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.28);
}
#bookingModal .bk-modal-subtitle{
  color: rgba(255,255,255,.72);
  font-size: .76rem;
  margin-top: .1rem;
}
#bookingModal #bkTabs{
  gap: .35rem;
  border-bottom: 1px solid #d4dced;
  margin: 0 -1rem 1rem;
  padding: 0 1rem;
  background: #f8faff;
}
#bookingModal #bkTabs .nav-link{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .72rem 1.05rem;
  font-size: .87rem;
  font-weight: 600;
  color: #697798;
  border: 1px solid transparent;
  border-bottom: none;
  border-radius: 10px 10px 0 0;
  background: transparent;
}
#bookingModal #bkTabs .nav-link.active{
  background: #ffffff !important;
  color: #2555b8 !important;
  border-color: #d4dced !important;
  box-shadow: 0 -1px 0 rgba(255,255,255,.9) inset;
}
#bookingModal #tab-conto-btn.active{
  color: #7a4d13 !important;
}
#bookingModal .bk-modal-body{
  background: #eef3fb;
}
#bookingModal .bk-panel{
  background: #f8fbff;
  border: 1px solid #d3dced;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(32, 63, 131, .06), inset 0 1px 0 rgba(255,255,255,.9);
}
#bookingModal .bk-panel__title{
  font-size: .69rem;
  color: #8591ad;
  letter-spacing: .09em;
  margin-bottom: 1rem;
}
#bookingModal .bk-panel__title:after{
  background: #d7dfef;
}
#bookingModal .form-label{
  color: #7a87a7;
  font-size: .71rem;
  letter-spacing: .05em;
}
#bookingModal .form-control,
#bookingModal .form-select,
#bookingModal .select2-container--bootstrap-5 .select2-selection,
#bookingModal .select2-container--default .select2-selection--single,
#bookingModal .bk-group-picker__swatchbox{
  min-height: 42px;
  border-radius: 10px;
  border-color: #c8d3e6;
  background: #fff;
  color: #1f2e49;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92);
}
#bookingModal .form-control::placeholder{
  color: #9aa6c0;
}
#bookingModal .form-control:focus,
#bookingModal .form-select:focus,
#bookingModal .select2-container--bootstrap-5.select2-container--focus .select2-selection,
#bookingModal .select2-container--default.select2-container--focus .select2-selection--single{
  border-color: #5e84de;
  box-shadow: 0 0 0 .2rem rgba(59, 111, 245, .12);
}
#bookingModal input[name="prezzo_suggerito"]{
  background: #f3f6fb;
  color: #7e88a1;
  font-style: normal;
}
#bookingModal input[name="prezzo_finale"]{
  background: rgba(22, 163, 74, .03);
  border-color: rgba(34, 139, 84, .35);
  color: #114e31;
}
#bookingModal .bk-group-picker{
  grid-template-columns: 52px minmax(0, 1fr);
  gap: .55rem;
}
#bookingModal .bk-group-picker__swatchbox{
  min-width: 52px;
  padding: 0;
}
#bookingModal .bk-group-manage-wrap{
  margin-top: .45rem !important;
}
#bookingModal .bk-group-manage-link{
  color: #6a7899 !important;
  font-size: .78rem;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
#bookingModal .bk-group-manage-link:hover,
#bookingModal .bk-group-manage-link:focus{
  color: #2555b8 !important;
}
#bookingModal textarea.form-control{
  min-height: 96px;
  background: #fff;
}
#bookingModal #bk_tax_wrap{
  border-top: 1px solid #d7dfef;
}
#bookingModal .bk-modal-footer{
  background: #f7f9fd;
  border-top: 1px solid #d6deef;
  box-shadow: 0 -4px 14px rgba(31, 41, 55, .05);
}
#bookingModal .bk-footer-summary > .d-flex.gap-3{
  row-gap: .35rem !important;
}
#bookingModal .bk-footer-saldo{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: 1.1rem;
  color: #2f5ce0;
}
#bookingModal .bk-footer-pagato-wrap .badge{
  padding: .32rem .65rem;
  border-radius: 999px;
  font-weight: 600;
}
#bookingModal .btn-outline-secondary{
  border-color: #b7c4dc;
  color: #586b90;
}
#bookingModal .btn-outline-secondary:hover{
  background: #eef3fb;
  color: #2d4d92;
  border-color: #9fb1d5;
}
#bookingModal .bk-actions-booking .btn-primary{
  min-width: 94px;
  font-weight: 700;
  box-shadow: 0 6px 14px rgba(37, 85, 184, .18);
}
@media (max-width: 767.98px){
  #bookingModal .bk-modal-header{
    padding: .95rem 1rem;
  }
  #bookingModal .bk-modal-content{
    border-radius: 16px;
  }
  #bookingModal #bkTabs .nav-link{
    padding: .65rem .85rem;
    font-size: .82rem;
  }
}


/* Booking modal v.3.1.k — prezzi in colonna, header pulito */
#bookingModal .bk-modal-chip{display:none !important;}
#bookingModal .bk-price-stack{display:grid;grid-template-columns:1fr;gap:.7rem;}
#bookingModal .bk-price-stack__item{display:flex;flex-direction:column;gap:.35rem;}
#bookingModal .bk-price-stack__item .form-label{margin-bottom:0;}
#bookingModal .bk-price-stack__item .form-control{min-height:42px;}
@media (min-width: 992px){
  #bookingModal .bk-booking-grid > [class*="col-lg-8"]{padding-right:calc(var(--bs-gutter-x) * .5 + .25rem);}
  #bookingModal .bk-booking-grid > [class*="col-lg-4"]{padding-left:calc(var(--bs-gutter-x) * .5 + .15rem);}
  #bookingModal .bk-price-stack{padding-left:.15rem;}
}
#bookingModal .bk-price-stack__item--suggested .form-control{background:#f3f6fb;color:#7e88a1;}
#bookingModal .bk-price-stack__item--final .form-control{background:rgba(22,163,74,.03);border-color:rgba(34,139,84,.35);color:#114e31;font-weight:700;}
#bookingModal .bk-price-stack__item--deposit .form-control{background:#fff;}


/* Booking modal v.4.0.y — etichette inline e date compatte */
#bookingModal .bk-inline-field{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  align-items:center;
  gap:.55rem;
}
#bookingModal .bk-inline-field .form-label{
  margin:0;
  white-space:nowrap;
  display:flex;
  align-items:center;
  gap:.2rem;
}
#bookingModal .bk-inline-field .form-control,
#bookingModal .bk-inline-field .form-select{
  min-width:0;
}
#bookingModal .bk-inline-field--price .form-control{
  max-width:220px;
  justify-self:end;
}
#bookingModal .bk-inline-field--date .form-control{
  max-width:190px;
  justify-self:end;
}
#bookingModal .bk-price-stack{
  gap:.55rem;
}
@media (max-width: 991.98px){
  #bookingModal .bk-inline-field{
    grid-template-columns:1fr;
    gap:.3rem;
  }
  #bookingModal .bk-inline-field--price .form-control,
  #bookingModal .bk-inline-field--date .form-control{
    max-width:none;
    width:100%;
    justify-self:stretch;
  }
}
