.smfml-open-btn{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:0.7em 1.4em;
  background:#2eaadc;
  color:#fff;
  border:1px solid #2eaadc;
  border-radius:24px;
  font-weight:bold;
  cursor:pointer;
  transition:filter .15s ease-in-out, transform .1s ease-in-out;
}
.smfml-open-btn:hover{
  filter:brightness(0.95);
  transform:translateY(-1px);
}

.smfml-modal{isolation:isolate;
  position:fixed;
  inset:0;
  z-index:2147483647;
  display:none;
}
.smfml-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.55);
  opacity:0;
  transition:opacity .2s ease-out;
}
.smfml-modal__dialog{
  position:relative;
  margin:5vh auto 0 auto;
  max-width:640px;
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 35px rgba(0,0,0,.35);
  transform:translateY(20px);
  opacity:0;
  transition:opacity .2s ease-out, transform .2s ease-out;
}
.smfml-modal.is-open .smfml-modal__backdrop{
  opacity:1;
}
.smfml-modal.is-open .smfml-modal__dialog{
  opacity:1;
  transform:translateY(0);
}
.smfml-modal__content{
  padding:18px 20px;
}


.smfml-form{
  display:flex;
  flex-direction:column;
  gap:12px;
  font-family:inherit;
  font-size:16px;
}
.smfml-field label{
  display:block;
  margin-bottom:4px;
  font-weight:600;
}
.smfml-form input,
.smfml-form textarea{
  width:100%;
  box-sizing:border-box;
  padding:9px 10px;
  border-radius:8px;
  border:1px solid #ddd;
}
.smfml-form textarea{
  min-height:120px;
  resize:vertical;
}
.smfml-actions{
  margin-top:4px;
}
.smfml-submit-btn{
  padding:0.7em 1.4em;
  border-radius:10px;
  border:1px solid #000;
  background:#000;
  color:#fff;
  cursor:pointer;
  font-weight:600;
  display:flex;
  align-items:center;
  justify-content:center;
}
.smfml-submit-btn:hover{
  filter:brightness(0.95);
}

.smfml-success,
.smfml-error{
  margin-bottom:14px;
  padding:10px 12px;
  border-radius:8px;
  font-size:0.95em;
}
.smfml-success{
  background:#f1fff1;
  border:1px solid #b4e2b4;
  color:#205320;
}
.smfml-error{
  background:#fff4f4;
  border:1px solid #e9a3a3;
  color:#a32121;
}
.smfml-field-error{
  display:block;
  margin-top:4px;
  font-size:0.85em;
  color:#c02020;
}
.smfml-retry-hint{
  margin-top:8px;
  font-size:0.9em;
  color:#555;
}

/* --- improved close button styles --- */
.smfml-modal__close{
  position:absolute;
  right:14px;
  top:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 10px rgba(0,0,0,.08);
  color:#222;
  font-size:20px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  transition:background .15s ease-in-out, box-shadow .15s ease-in-out, transform .12s ease-in-out;
}
.smfml-modal__close:hover{
  background:#fff;
  box-shadow:0 4px 14px rgba(0,0,0,.12);
  transform:scale(1.03);
}
.smfml-modal__close:active{
  transform:scale(0.98);
}
.smfml-modal__close:focus-visible{
  outline:2px solid #2eaadc;
  outline-offset:2px;
}
