/* ============================================================
   INBOX / NOTIFICATIONS
   ============================================================ */

.inbox-dropdown {
  width: 430px;
  max-width: calc(100vw - 24px);
  border: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .16);
}


/* ------------------------------------------------------------
   Wrapper
   ------------------------------------------------------------ */

.inbox-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0;
}


/* ------------------------------------------------------------
   Header
   ------------------------------------------------------------ */

.inbox-header {
  padding: 15px 16px;
  background: var(--bs-body-bg, #fff);
  border-bottom: 1px solid var(--bs-border-color, #e7e7e7);
}

.inbox-header-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;

  display: flex;
  align-items: center;
  justify-content: center;

  margin-right: 11px;

  background: rgba(255, 193, 7, .14);
  color: #f0ad00;

  font-size: 16px;
}

.inbox-header-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 18px;
  color: var(--bs-heading-color, #384551);
}

.inbox-header-subtitle {
  margin-top: 2px;

  font-size: 11px;
  line-height: 14px;

  color: var(--bs-secondary-color, #8592a3);
}

.inbox-mark-all {
  padding: 4px 6px;

  color: var(--bs-primary, #696cff) !important;

  font-size: 12px;
  font-weight: 600;

  text-decoration: none !important;
}

.inbox-mark-all:hover {
  opacity: .75;
}


/* ------------------------------------------------------------
   Scroll
   ------------------------------------------------------------ */

.inbox-scroll {
  max-height: 430px;
  overflow-y: auto;
  overflow-x: hidden;

  scrollbar-width: thin;
}


/* ------------------------------------------------------------
   List
   ------------------------------------------------------------ */

.inbox-list {
  display: flex;
  flex-direction: column;
}


/* ------------------------------------------------------------
   Notification
   ------------------------------------------------------------ */

.inbox-notification {
  position: relative;

  display: flex;

  padding: 14px 38px 14px 16px;

  border-bottom: 1px solid var(--bs-border-color, #eeeeee);

  background: var(--bs-body-bg, #fff);

  transition:
    background-color .15s ease,
    transform .2s ease,
    opacity .2s ease;
}

.inbox-notification:last-child {
  border-bottom: 0;
}

.inbox-notification:hover {
  background: rgba(105, 108, 255, .045);
}


/* ------------------------------------------------------------
   Unread indicator
   ------------------------------------------------------------ */

.inbox-notification-indicator {
  flex-shrink: 0;

  width: 7px;
  height: 7px;

  margin-top: 6px;
  margin-right: 10px;

  border-radius: 50%;

  background: var(--bs-primary, #696cff);

  box-shadow: 0 0 0 3px rgba(105, 108, 255, .12);
}


/* ------------------------------------------------------------
   Icon
   ------------------------------------------------------------ */

.inbox-notification-icon {
  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 11px;

  border-radius: 9px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(105, 108, 255, .10);
  color: var(--bs-primary, #696cff);

  font-size: 14px;
}


/* ------------------------------------------------------------
   Content
   ------------------------------------------------------------ */

.inbox-notification-content {
  min-width: 0;
  flex: 1;
}

.inbox-notification-title {
  min-width: 0;

  font-size: 13px;
  font-weight: 700;
  line-height: 17px;

  color: var(--bs-heading-color, #384551);

  overflow: hidden;
  text-overflow: ellipsis;
}

.inbox-notification-date {
  flex-shrink: 0;

  font-size: 10px;
  line-height: 15px;

  color: var(--bs-secondary-color, #a1acb8);
}

.inbox-notification-message {
  margin-top: 4px;

  font-size: 12px;
  line-height: 17px;


  overflow-wrap: anywhere;
}

.inbox-notification-message p {
  margin-bottom: 0;
}


/* ------------------------------------------------------------
   Actions
   ------------------------------------------------------------ */

.inbox-notification-actions {
  margin-top: 8px;
}

.inbox-open {
  padding: 3px 9px;

  font-size: 11px;
  line-height: 16px;

  border-radius: 6px;
}


/* ------------------------------------------------------------
   Dismiss button
   ------------------------------------------------------------ */

.inbox-dismiss {
  position: absolute;

  top: 10px;
  right: 9px;

  width: 25px;
  height: 25px;

  padding: 0;

  border: 0;
  border-radius: 6px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: transparent;
  color: var(--bs-secondary-color, #a1acb8);

  font-size: 12px;

  cursor: pointer;

  transition:
    background-color .15s ease,
    color .15s ease;
}

.inbox-dismiss:hover {
  background: rgba(220, 53, 69, .10);
  color: #dc3545;
}


/* ------------------------------------------------------------
   Empty
   ------------------------------------------------------------ */

.inbox-empty {
  padding: 45px 20px;

  text-align: center;
}

.inbox-empty-icon {
  width: 48px;
  height: 48px;

  margin: 0 auto 12px;

  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(108, 117, 125, .10);
  color: #8592a3;

  font-size: 18px;
}

.inbox-empty-title {
  font-size: 13px;
  font-weight: 700;

  color: var(--bs-heading-color, #384551);
}

.inbox-empty-text {
  margin-top: 3px;

  font-size: 11px;

  color: var(--bs-secondary-color, #a1acb8);
}


/* ------------------------------------------------------------
   Remove animation
   ------------------------------------------------------------ */

.inbox-notification.inbox-removing {
  opacity: 0;
  transform: translateX(35px);
}


/* ------------------------------------------------------------
   Badge
   ------------------------------------------------------------ */

#inbox_total_unread {
  min-width: 18px;
  height: 18px;

  padding: 0 5px;

  display: flex;
  align-items: center;
  justify-content: center;

  top: 0;
  right: -4px;

  font-size: 12px;
  font-weight: 700;

  border: 2px solid var(--bs-body-bg, #fff);
}


/* ------------------------------------------------------------
   Mobile
   ------------------------------------------------------------ */

@media (max-width: 575.98px) {

  .inbox-dropdown {
    position: fixed !important;

    top: 58px !important;
    right: 12px !important;
    left: 12px !important;

    width: auto !important;
    max-width: none !important;

    margin: 0 !important;

    border-radius: 13px;
  }

  .inbox-scroll {
    max-height: calc(100vh - 140px);
  }

  .inbox-notification {
    padding-left: 13px;
    padding-right: 36px;
  }

  .inbox-header {
    padding: 13px;
  }

}


.overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.8);
  z-index: 10;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 0.9rem;
}
/* =========================
   BASE
========================= */
.bootstrap-table {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
/* =========================
   CARD CONTAINER
========================= */
.bootstrap-table .card-view {
  padding: 6px 8px;
  border-bottom: 1px solid #f4f7fa;
}
.bootstrap-table .card-view:last-child {
  border: 0px;
}

/* =========================
   ROW (FORZATURA TOTALE INLINE)
========================= */
.bootstrap-table .card-view .card-view-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  justify-content: space-between;

  width: 100% !important;
  padding: 4px 0;

  /* 🔥 fondamentale: impedisce wrap interno */
  white-space: nowrap;
}

/* =========================
   LABEL (FORZATA INLINE)
========================= */
.bootstrap-table .card-view .card-view-title {
  display: inline-block !important;

  flex: 0 0 40%;
  max-width: 40%;

  font-size: 12px;
  font-weight: 600;

  /* evita a capo */
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* =========================
   VALUE (FORZATA INLINE)
========================= */
.bootstrap-table .card-view .card-view-value {
  display: inline-block !important;

  flex: 1;
  text-align: right;

  font-size: 13px;
  color: #111827;

  /* evita a capo */
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* =========================
   CARD LOOK MODERNO
========================= */
.bootstrap-table .card-view {
  display: block;
}

/* separazione soft tra righe */
.bootstrap-table .card-view .card-view-row:not(:last-child) {
  border-bottom: 1px solid rgba(15, 23, 42, 0.04);
  padding-bottom: 6px;
  margin-bottom: 6px;
}

/* =========================
   PRIMA RIGA (TITLE PRINCIPALE)
========================= */
.bootstrap-table .card-view .card-view-row:first-child .card-view-value {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}

/* =========================
   SAFETY MOBILE
========================= */
@media (max-width: 576px) {
  .bootstrap-table .card-view .card-view-title {
    max-width: 38%;
    font-size: 11px;
  }

  .bootstrap-table .card-view .card-view-value {
    font-size: 13px;
  }
}
/* =========================
   TAP FEEDBACK MOBILE
========================= */
.bootstrap-table .card-view:active {
  transform: scale(0.99);
}

/* =========================
   TABLE DESKTOP CLEAN
========================= */
.bootstrap-table .table thead {
  background: #f8fafc;
}

.bootstrap-table .table th {
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
}

.bootstrap-table .table td {
  font-size: 14px;
  color: #0f172a;
  vertical-align: middle;
}

/* =========================
   PAGINATION MODERNA
========================= */
.bootstrap-table .pagination {
  --bs-pagination-border-radius: 10px;
}

.bootstrap-table .page-link {
  border: none;
  color: #334155;
  margin: 0 2px;
  border-radius: 8px;
}

.bootstrap-table .page-item.active .page-link {
  background: #0d6efd;
  color: #fff;
}



.input-group-merge .form-control {
  border-right: 1px solid #d9dee3!important; /* o var(--bs-border-color) */
}
.fix-inputs .form-control {
  border: 1px solid #d9dee3!important;
  border-radius: 0.375rem!important;
}


.glow {
  position: relative;
  z-index: 1;
  overflow: hidden;
}

/* 🔴 LAYER COLORATO */
.glow::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 0.375rem;
  opacity: 0.35;
  z-index: -2;
  animation: glowPulse 2s infinite;
}

/* ⚪ LAYER BIANCO */
.glow::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 0.375rem;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%);
  opacity: 0.25;
  z-index: -1;
  animation: glowWhite 2s infinite;
}

/* ✨ LAMPEGGIO ESTERNO (QUI STA IL FIX) */
.btn-primary.glow { animation: borderPrimary 1.8s infinite; }
.btn-secondary.glow { animation: borderSecondary 1.8s infinite; }
.btn-success.glow { animation: borderSuccess 1.8s infinite; }
.btn-danger.glow { animation: borderDanger 1.8s infinite; }
.btn-warning.glow { animation: borderWarning 1.8s infinite; }
.btn-info.glow { animation: borderInfo 1.8s infinite; }
.btn-light.glow { animation: borderLight 1.8s infinite; }
.btn-dark.glow { animation: borderDark 1.8s infinite; }

/* ANIMAZIONI INTERNE */
@keyframes glowPulse {
  0%, 100% { opacity: 0.25; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.25); }
}

@keyframes glowWhite {
  0%, 100% { opacity: 0.15; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.15); }
}

/* 🎨 COLORI + GLOW ESTERNO */

@keyframes borderPrimary {
  0%,100% { box-shadow: 0 0 6px rgba(13,110,253,0.6); }
  50% { box-shadow: 0 0 18px rgba(13,110,253,1); }
}
.btn-primary.glow::after {
  background: radial-gradient(circle, rgba(13,110,253,0.7), transparent);
}

@keyframes borderSecondary {
  0%,100% { box-shadow: 0 0 6px rgba(108,117,125,0.6); }
  50% { box-shadow: 0 0 18px rgba(108,117,125,1); }
}
.btn-secondary.glow::after {
  background: radial-gradient(circle, rgba(108,117,125,0.7), transparent);
}

@keyframes borderSuccess {
  0%,100% { box-shadow: 0 0 6px rgba(25,135,84,0.6); }
  50% { box-shadow: 0 0 18px rgba(25,135,84,1); }
}
.btn-success.glow::after {
  background: radial-gradient(circle, rgba(25,135,84,0.7), transparent);
}

@keyframes borderDanger {
  0%,100% { box-shadow: 0 0 6px rgba(220,53,69,0.6); }
  50% { box-shadow: 0 0 18px rgba(220,53,69,1); }
}
.btn-danger.glow::after {
  background: radial-gradient(circle, rgba(220,53,69,0.7), transparent);
}

@keyframes borderWarning {
  0%,100% { box-shadow: 0 0 6px rgba(255,193,7,0.6); }
  50% { box-shadow: 0 0 18px rgba(255,193,7,1); }
}
.btn-warning.glow::after {
  background: radial-gradient(circle, rgba(255,193,7,0.7), transparent);
}

@keyframes borderInfo {
  0%,100% { box-shadow: 0 0 6px rgba(13,202,240,0.6); }
  50% { box-shadow: 0 0 18px rgba(13,202,240,1); }
}
.btn-info.glow::after {
  background: radial-gradient(circle, rgba(13,202,240,0.7), transparent);
}

@keyframes borderLight {
  0%,100% { box-shadow: 0 0 6px rgba(173,181,189,0.6); }
  50% { box-shadow: 0 0 18px rgba(173,181,189,1); }
}
.btn-light.glow::after {
  background: radial-gradient(circle, rgba(173,181,189,0.7), transparent);
}

@keyframes borderDark {
  0%,100% { box-shadow: 0 0 6px rgba(33,37,41,0.6); }
  50% { box-shadow: 0 0 18px rgba(33,37,41,1); }
}
.btn-dark.glow::after {
  background: radial-gradient(circle, rgba(33,37,41,0.7), transparent);
}



@keyframes blinkTextSoft {
  0% { opacity: 1; }
  50% { opacity: 0.4; }
  100% { opacity: 1; }
}

.blink-text {
  animation: blinkTextSoft 1.2s infinite;
}

.menu .app-brand.demo {
  height: 64px;
  margin-top: 12px;
}

/* di default nascondo il bottone "mostra meno" */
.amenities-wrapper .btn-less {
  display: none;
}

/* quando il collapse è aperto */
.amenities-wrapper:has(.collapse.show) .btn-more {
  display: none;
}

.amenities-wrapper:has(.collapse.show) .btn-less {
  display: inline-block;
}




.structure_maps {
  width: 100%;
  height: 100%;
}

.avatar-lg {
  --bs-avatar-size: 6rem;
}
.avatar-xxl {
  --bs-avatar-size: 18rem;
}

.fc .fc-multimonth {
  overflow: auto!important;
}

.leaflet-control-attribution {
  display: none;
}

@media (max-width: 768px) {
  .bootstrap-table .fixed-table-toolbar {
    overflow: visible !important;  /* permette che gli elementi vadano a capo */
  }

  .bootstrap-table .columns-right {
    display: flex;
    flex-wrap: wrap !important;    /* elementi uno sotto l'altro */
    align-items: center;
    gap: 0.5rem;
  }

  .bootstrap-table .columns-right > div {
    flex: 1 1 100%; /* ogni div occupa tutta la riga su mobile */
  }
}

.amenity-badge {
  white-space: nowrap;      /* una sola riga */
  overflow: hidden;         /* nasconde l’eccesso */
  text-overflow: ellipsis;  /* ... */
}

/* contenitore del link già relative */
#inbox_total {
  position: relative;   /* mantiene badge posizionato rispetto a questo */
}

/* badge posizionato sopra l'icona */
#inbox_total_unread {
  position: absolute;   /* fondamentale */
  top: 10%;             /* abbassa leggermente rispetto al top dell'icona */
  right: 0;             /* allinea a destra */
  transform: translate(50%, -50%); /* centra sopra l'angolo */
  font-size: 12px;
  min-width: 1.2em;
  height: 1.2em;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff;
}
/*
.layout-navbar .navbar-dropdown .dropdown-menu {
  overflow: scroll!important;
}*/


.scrollable-container {
  max-height: 300px;
  overflow-y: auto;
}

.dropdown-footer {
  background: #fff;
}


hr.divider {
  margin: 1rem 0;
  color: inherit;
  background-color: currentColor;
  border: 0;
  opacity: 0.25;
}
/*
.layout-navbar {
  background: none;
  box-shadow: none!important;
}
*/
.rounded-flag {
    display: inline-block;
    width: 2em;
    aspect-ratio: 4 / 3;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid #ccc;
}

.fa-angle-down.transition {
  transition: transform 0.3s ease;
}
.nav-link[aria-expanded="true"] .fa-angle-down {
  transform: rotate(180deg);
}
.icon-container {
    position: relative;
    display: inline-block;
  }
  .icon-container .asset-status {
    position: absolute;
    top: -5px;
    right: -5px;
    background-color: white;
    border-radius: 50%;
  }


  .carousel-control-prev-icon,
  .carousel-control-next-icon {
    background-color: rgba(0, 0, 0, 0.6);
    background-size: 50% 50%;
    border-radius: 50%;
    padding: 1.25rem;
  }

  .structure-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 0.5rem;
  }
  .service-badge {
    margin-right: 0.5rem;
    margin-bottom: 0.3rem;
  }
  .service-obligatory {
    background-color: #0d6efd;
    color: white;
  }
  .service-optional {
    background-color: #6c757d;
    color: white;
  }
  /* Contenitore stile Booking */
  .overbooking-searchbar {
      padding: 10px;
      gap: 10px;
  }
  .overbooking-field {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 40px;
  }
  .overbooking-field i {
    color: #8b929a;
    font-size: 16px;
  }
  .overbooking-divider {
      width: 1px;
      height: 32px;
      background-color: #2f3439;
  }
  #loading {
      display: none;
  }
  /*
  table.table thead th {
    background: linear-gradient(
      to bottom,
      #8a9299,
      #6c757d
    );
    color: #f8f9fa;
    border-bottom: 2px solid #ffc107!important;
  }

  table.table tbody tr {
    cursor:pointer;
  }
  table.table tbody tr td {
    padding: 0.3rem!important;
  }

  table.table tfoot th {
    background-color: #8a9299;
    color: #f8f9fa;
    border-top: 2px solid #ffc107!important;
  }
  */

.fa-1_5x {
  font-size: 1.5em;
}
ol.breadcrumb li a {
  color: var(--bs-warning);
}
div.table-responsive table tbody tr {
  background-color: #fff;
}

.badge-reservation-confirmed {
  background-color: #198754 !important;
}
.badge-reservation-pending {
  background-color: #ffc107 !important;
  color:black;
}
.badge-reservation-denied, .badge-reservation-canceled {
  background-color: #dc3545 !important;
}

.badge-reservation-cancel_pending {
  background-color: rgb(105, 108, 255) !important;
  color: white!important;
}
.card-title-structure {
  margin-block-start: -1px!important;
  padding-block: 1.05rem!important;
  text-transform:uppercase!important;
  font-size: 14px!important;
  margin-bottom: 0px!important;
  font-weight: bold!important;
}

.direct-chat-text {
  background-color: #fff;
}
.card.card-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  margin: 0 !important;
  border-radius: 0 !important;
  z-index: 2000 !important;
}
.bootstrap-table .fixed-table-pagination .pagination-detail {
  padding-left: 2px!important;
}


.bootstrap-table .fixed-table-pagination .pagination {
  padding-right: 2px!important;
}

.page-item .page-link {
  border-radius: 0px!important;
}
