
/* ============================================================
   v56: safe fixed modals + salary remove/restore shifts
   ============================================================ */

/* Salary statement remove/restore */
.salary-v5-btn--danger-soft{
  border-color:#ffd7d4!important;
  background:#fff3f2!important;
  color:#b42318!important;
}

.salary-v5-excluded{
  margin-top:16px;
  padding:14px;
  border:1px dashed #fecaca;
  border-radius:22px;
  background:#fff7f6;
}

.salary-v5-excluded__head{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:12px;
}

.salary-v5-excluded__head strong{
  color:#b42318;
  font-weight:900;
  font-size:15px;
}

.salary-v5-excluded__head span{
  color:#667085;
  font-size:13px;
}

.salary-v5-shift--excluded{
  opacity:.88;
  background:#fff!important;
  border-color:#fee4e2!important;
}

.salary-v5-period-toggle--exclude{
  border-color:#fee4e2!important;
  background:linear-gradient(180deg,#fff7f6,#fff)!important;
}

.salary-v5-period-toggle--exclude input{
  accent-color:#d92d20!important;
}

/* Safe modal lock: no infinite observer, no page jumping */
:root{
  --pvz-modal-vh: 100dvh;
  --pvz-modal-top: 0px;
}

html.pvz-v56-modal-open,
body.pvz-v56-modal-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}

body.pvz-v56-modal-open{
  touch-action:none!important;
}

body.pvz-v56-modal-open .mobile-bottom,
body.pvz-v56-modal-open .bottom-nav,
body.pvz-v56-modal-open .mobile-nav{
  transform:translate3d(0, 120%, 0)!important;
  pointer-events:none!important;
}

.modal-backdrop,
.salary-v5-modal-backdrop,
.pvz-modal-backdrop,
.pvz-confirm-backdrop,
.pvz-confirm-overlay,
.confirm-backdrop{
  position:fixed!important;
  inset:0!important;
  top:var(--pvz-modal-top)!important;
  height:var(--pvz-modal-vh)!important;
  min-height:var(--pvz-modal-vh)!important;
  z-index:900000!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  padding:18px!important;
}

.modal,
.salary-v5-modal,
.modal-card,
.pvz-modal,
.pvz-confirm,
.confirm-dialog,
dialog[open]{
  width:min(780px, calc(100vw - 36px))!important;
  max-width:calc(100vw - 36px)!important;
  max-height:calc(var(--pvz-modal-vh) - 36px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))!important;
  border-radius:26px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  margin:0!important;
  transform:none!important;
  overscroll-behavior:contain!important;
}

.modal form,
.modal-body,
.modal-content,
.salary-v5-modal__body,
.pvz-modal__body,
.pvz-confirm__body,
.form-grid{
  min-height:0!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
}

.modal-head,
.modal-header,
.salary-v5-modal__head,
.pvz-modal__head,
.pvz-confirm__head{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:3!important;
  background:#fff!important;
}

.modal-actions,
.salary-v5-modal__actions,
.pvz-modal__actions,
.pvz-confirm__actions{
  flex:0 0 auto!important;
  background:#fff!important;
  padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px))!important;
}

/* iOS focus zoom prevention */
.modal input,
.modal textarea,
.modal select,
.salary-v5-modal input,
.salary-v5-modal textarea,
.salary-v5-modal select,
.modal-card input,
.modal-card textarea,
.modal-card select,
.pvz-modal input,
.pvz-modal textarea,
.pvz-modal select{
  font-size:16px!important;
}

@media(max-width:860px){
  .modal-backdrop,
  .salary-v5-modal-backdrop,
  .pvz-modal-backdrop,
  .pvz-confirm-backdrop,
  .pvz-confirm-overlay,
  .confirm-backdrop{
    padding:calc(12px + env(safe-area-inset-top, 0px)) 12px calc(12px + env(safe-area-inset-bottom, 0px))!important;
  }

  .modal,
  .salary-v5-modal,
  .modal-card,
  .pvz-modal,
  .pvz-confirm,
  .confirm-dialog,
  dialog[open]{
    width:calc(100vw - 24px)!important;
    max-width:calc(100vw - 24px)!important;
    max-height:calc(var(--pvz-modal-vh) - 24px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))!important;
  }

  .salary-v5-modal__actions,
  .modal-actions{
    position:sticky!important;
    bottom:0!important;
    z-index:4!important;
    border-top:1px solid #eef2f7!important;
  }
}
