/* Lock body while modal open */ 
body.sir-lock { overflow: hidden; }
.sir-modal { transform: none !important;  position: fixed; inset: 0; z-index: 1000001; display: grid; place-items: center; background: rgba(15,23,42,.6); backdrop-filter: blur(2px); }
.sir-modal-content { width: min(800px, 92vw); max-height: 92vh; display:flex; flex-direction:column; background:#fff; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.25); overflow:hidden; }
.sir-modal-header { background: linear-gradient(90deg,#1e40af,#2563eb); color:#fff; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; }
.sir-modal-header h2 { margin:0; font-size:16px; font-weight:600; }
.sir-close { cursor:pointer; font-size:20px; opacity:.9 } .sir-close:hover { opacity:1 }
.sir-modal-body { flex:1 1 auto; min-height:0; padding:16px; display:grid; gap:12px; overflow-y:auto; overflow-x:hidden;
  overscroll-behavior: contain;
}
.sir-actions { position: sticky; bottom: 0; display:flex; gap:10px; justify-content:flex-end; padding:12px 16px; background:#fff; border-top:1px solid #e5e7eb; }
.sir-btn { padding:10px 14px; border-radius:10px; border:0; cursor:pointer; font-weight:600; }
.sir-btn.secondary { background:#f1f5f9; color:#0f172a } .sir-btn.primary { background:#2563eb; color:#fff } .sir-btn.primary:hover { background:#1d4ed8 }
.sir-field { display:grid; gap:6px; } .sir-field.two { grid-template-columns: 1fr 1fr; gap:12px; }
.sir-field label { font-size:12px; font-weight:600; color:#334155; letter-spacing:.2px }
.sir-field input, .sir-field select { width:100%; padding:10px 12px; border:1px solid #e2e8f0; border-radius:10px; font-size:14px; }
.sir-loader { display:none; align-items:center; gap:10px; color:#0f172a; font-weight:600; }
.sir-spinner { width:18px; height:18px; border:3px solid #e5e7eb; border-top-color:#2563eb; border-radius:50%; animation:sir-spin .9s linear infinite; }
@keyframes sir-spin { to { transform: rotate(360deg) } }
.sir-toast { position:fixed; top:16px; right:16px; z-index:1000002; background:#16a34a; color:#fff; padding:10px 14px; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.2); }
.sir-cropper-wrap { display:block; padding-bottom:6px; }
.sir-cropper {position:relative; width:100%; height: clamp(180px, 34vh, 340px); max-height: 44vh; overflow:hidden; border:1px solid #e2e8f0; border-radius:10px; background:#0b1020; padding: 0; box-sizing: content-box;
  overflow: hidden;
  touch-action: none;
}
.sir-cropper img { display:block; max-width:none; transform-origin:0 0; user-select:none; -webkit-user-drag:none;
  will-change: transform;
}
.sir-crop-rect { position:absolute; border:2px solid #22c55e; box-shadow:0 0 0 9999px rgba(0,0,0,.35); cursor:move; border-radius:4px; z-index:2; display:none; }
.sir-help { color:#475569; font-size:12px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sir-fit-btn { padding:6px 10px; }
.sir-cropper-wrap{ overscroll-behavior: contain; }
