/* =========================================================
   BOOTSTRAP MODAL / OFFCANVAS CLICK + MOBILE FIT FIX
   Clean merged version
========================================================= */

/* ===== MODAL / OFFCANVAS STACKING ===== */
.modal{
  z-index:1080 !important;
  padding-right:0 !important;
}

.modal.show{
  display:block;
}

.modal-backdrop{
  z-index:1070 !important;
  --bs-backdrop-opacity:.45;
  opacity:.45 !important;
  pointer-events:none !important;
}

.offcanvas{
  z-index:1080 !important;
}

.offcanvas-backdrop{
  z-index:1070 !important;
  --bs-backdrop-opacity:.45;
  opacity:.45 !important;
}

/* ===== DIALOG / CONTENT ===== */
.modal-dialog{
  position:relative;
  z-index:1085 !important;
  margin:1rem auto;
  pointer-events:none !important; /* bootstrap pattern */
  opacity:1 !important;
  transform:none !important;
}

.modal.fade .modal-dialog{
  transition:transform .18s ease-out, opacity .18s ease-out;
}

.modal.show .modal-dialog{
  transform:none !important;
  opacity:1 !important;
}

.modal-content{
  position:relative;
  z-index:1086 !important;
  pointer-events:auto !important;
  overflow:hidden;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  background:#ffffff !important;
  border:none;
  border-radius:1.25rem;
  box-shadow:var(--shadow-lg, 0 24px 60px rgba(15,23,42,.18));
}

.modal-dialog .modal-content{
  pointer-events:auto !important;
}

/* ===== INNER SECTIONS ===== */
.modal-header,
.modal-body,
.modal-footer,
.offcanvas-header,
.offcanvas-body{
  position:relative;
  z-index:2;
  pointer-events:auto !important;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  background:transparent;
}

.modal-header,
.modal-footer{
  background:#fff;
  border-color:#f1f5f9;
}

.modal-body{
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}

/* ===== REMOVE WEIRD FILTERS ===== */
.modal *,
.offcanvas *{
  filter:none !important;
}

/* ===== CLICKABLE CONTROLS ===== */
.modal .btn,
.modal button,
.modal a,
.modal input,
.modal select,
.modal textarea,
.modal label,
.offcanvas .btn,
.offcanvas button,
.offcanvas a,
.offcanvas input,
.offcanvas select,
.offcanvas textarea,
.offcanvas label{
  position:relative;
  z-index:3;
  pointer-events:auto !important;
  visibility:visible !important;
}

.modal form{
  position:relative;
  z-index:4;
  pointer-events:auto !important;
}

.modal form button[type="submit"],
.modal form input[type="submit"]{
  position:relative;
  z-index:5 !important;
  pointer-events:auto !important;
  cursor:pointer !important;
}

.modal .btn-close,
.offcanvas .btn-close{
  position:relative;
  z-index:6 !important;
  pointer-events:auto !important;
  cursor:pointer !important;
}

/* ===== FORM / CARD SAFETY ===== */
.modal .card,
.modal .panel-card,
.modal .stat-card,
.modal .list-group-item,
.modal .table-responsive,
.modal .form-control,
.modal .form-select,
.modal .form-check-input,
.offcanvas .card,
.offcanvas .panel-card,
.offcanvas .stat-card,
.offcanvas .list-group-item,
.offcanvas .table-responsive,
.offcanvas .form-control,
.offcanvas .form-select,
.offcanvas .form-check-input{
  background:#ffffff !important;
  opacity:1 !important;
  filter:none !important;
}

.modal .text-muted,
.modal .text-secondary,
.offcanvas .text-muted,
.offcanvas .text-secondary{
  opacity:1 !important;
}

/* keep disabled controls disabled */
.btn.disabled,
.btn:disabled{
  opacity:.65 !important;
  pointer-events:none !important;
  cursor:not-allowed !important;
}

/* ===== KEEP OTHER FIXED ELEMENTS BELOW MODAL ===== */
.app-mobile-nav{
  z-index:1040 !important;
  transition:opacity .2s ease, transform .2s ease;
}

body.modal-open .app-mobile-nav{
  opacity:0;
  pointer-events:none !important;
  transform:translateY(120%);
}

body.modal-open .sticky-top,
body.modal-open .sticky-bottom,
body.modal-open .fixed-top,
body.modal-open .fixed-bottom{
  z-index:1030 !important;
}

body.modal-open{
  overflow:hidden;
}

/* ===== STOCK / DETAIL MODAL SPECIFIC ===== */
.device-detail-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.detail-card{
  background:#f8f9fa;
  border-radius:14px;
  padding:14px;
  border:1px solid #edf0f2;
}

.detail-card.full{
  grid-column:1 / -1;
}

.detail-label{
  font-size:.8rem;
  color:#6c757d;
  margin-bottom:4px;
}

.detail-value{
  font-weight:600;
  color:#212529;
  word-break:break-word;
}

/* ===== TABLE SAFETY UNDER MODAL ===== */
@media (max-width:991.98px){
  .stock-table{
    min-width:100%;
  }
}

/* ===== TABLET / SMALL LAPTOP ===== */
@media (max-width:991.98px){
  .modal-dialog.modal-lg,
  .modal-dialog{
    max-width:calc(100vw - 1rem);
    width:calc(100vw - 1rem);
    margin:.5rem auto !important;
  }

  .modal-content{
    max-height:calc(100vh - 1rem);
    border-radius:1rem;
  }

  .modal-header{
    padding:.9rem 1rem .5rem;
  }

  .modal-body{
    padding:.75rem 1rem 1rem;
    max-height:calc(100vh - 8.5rem);
  }

  .modal-footer{
    padding:.65rem 1rem 1rem;
    display:flex;
    gap:.65rem;
    flex-wrap:wrap;
  }

  .modal-footer .btn,
  .modal-body .btn,
  .offcanvas-body .btn{
    flex:1 1 140px;
    min-height:46px;
    font-weight:700;
  }

  .modal input,
  .modal select,
  .modal textarea,
  .offcanvas input,
  .offcanvas select,
  .offcanvas textarea{
    min-height:44px;
    font-size:16px;
  }

  .device-detail-grid{
    grid-template-columns:1fr !important;
    gap:10px;
  }

  .detail-card,
  .detail-card.full{
    grid-column:auto !important;
    border-radius:12px;
    padding:12px;
  }

  .modal-title{
    font-size:1rem;
    line-height:1.25;
    padding-right:2rem;
  }

  .btn-close{
    transform:scale(.92);
  }
}

/* ===== MOBILE ===== */
@media (max-width:575.98px){
  .modal-dialog.modal-lg,
  .modal-dialog{
    max-width:calc(100vw - .5rem);
    width:calc(100vw - .5rem);
    margin:.25rem auto !important;
  }

  .modal-content{
    max-height:calc(100vh - .5rem);
    border-radius:.95rem;
  }

  .modal-header{
    padding:.8rem .85rem .4rem;
  }

  .modal-body{
    padding:.65rem .85rem .85rem;
    max-height:calc(100vh - 7.8rem);
  }

  .modal-footer{
    padding:.5rem .85rem .85rem;
  }

  .modal-footer .btn,
  .modal-body .btn{
    width:100%;
  }

  .detail-label{
    font-size:.76rem;
  }

  .detail-value{
    font-size:.95rem;
  }
}