
.ws-ofs { 
  font-family: inherit;
}
.ws-ofs__title{
  font-weight: 700;
  font-size: 18px;
  margin: 0 0 10px 0;
  color: var(--ws-label-color);
}
.ws-ofs__form{
  background: var(--ws-form-bg);
  border: var(--ws-form-border-width) solid var(--ws-form-border);
  border-radius: var(--ws-form-radius);
  padding: 14px;
  display: grid;
  gap: 12px;
  max-width: 520px;
}
.ws-ofs__label{
  display: block;
  font-size: 13px;
  margin: 0 0 6px 0;
  color: var(--ws-label-color);
}
.ws-ofs__req{
  color: var(--ws-error-text);
}
.ws-ofs__input{
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: var(--ws-input-border-width) solid var(--ws-input-border);
  border-radius: var(--ws-input-radius);
  background: var(--ws-input-bg);
  color: var(--ws-input-text);
  outline: none;
}
.ws-ofs__input::placeholder{
  color: var(--ws-placeholder-color);
}
.ws-ofs__input:focus{
  border-color: var(--ws-focus-border);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.ws-ofs__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 14px;
  border: none;
  border-radius: var(--ws-btn-radius);
  background: var(--ws-btn-bg);
  color: var(--ws-btn-text);
  cursor: pointer;
  font-weight: 600;
}
.ws-ofs__btn:hover{
  background: var(--ws-btn-bg-hover);
  color: var(--ws-btn-text-hover);
}
.ws-ofs__btn:disabled{
  opacity: .7;
  cursor: not-allowed;
}
.ws-ofs__spinner{
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.6);
  border-top-color: rgba(255,255,255,1);
  animation: ws_ofs_spin .9s linear infinite;
}
@keyframes ws_ofs_spin { to { transform: rotate(360deg); } }

.ws-ofs__notice{
  padding: 10px 12px;
  border-radius: 10px;
  margin: 0 0 12px 0;
  font-size: 14px;
}
.ws-ofs__notice--success{
  background: var(--ws-success-bg);
  color: var(--ws-success-text);
}
.ws-ofs__notice--error{
  background: var(--ws-error-bg);
  color: var(--ws-error-text);
}


/* Fast installment modal */
.ws-ofs-fast-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:12px;
  border:1px solid #d1d5db;
  cursor:pointer;
}
.ws-ofs-fast-modal.is-open{ position:fixed; inset:0; z-index:99999; }
.ws-ofs-fast-overlay{
  position:fixed; inset:0;
  background: var(--ws-ofs-fast-overlay, rgba(0,0,0,0.6));
}
.ws-ofs-fast-dialog{
  position:fixed;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:min(92vw, 420px);
  background: var(--ws-ofs-fast-bg, #fff);
  border-radius: var(--ws-ofs-fast-radius, 12px);
  border:1px solid var(--ws-ofs-fast-border, #d1d5db);
  padding:16px;
  z-index:100000;
}
.ws-ofs-fast-close{
  position:absolute; right:10px; top:6px;
  background:transparent; border:0; font-size:26px; line-height:1; cursor:pointer;
}
.ws-ofs-fast-title{ margin:0 0 12px 0; }
.ws-ofs-submit-fast{
  width:100%;
  padding:12px 14px;
  border:0;
  border-radius: var(--ws-ofs-fast-radius, 12px);
  background: var(--ws-ofs-fast-btn-bg, #111827);
  color: var(--ws-ofs-fast-btn-text, #fff);
  cursor:pointer;
}
.ws-ofs-note-fast{ margin-top:10px; padding:10px 12px; border-radius:10px; border:1px solid var(--ws-ofs-fast-border, #d1d5db); }
.ws-ofs-note-fast.is-success{ border-color: #10b981; }
.ws-ofs-note-fast.is-error{ border-color: #ef4444; }


/* Fast modal - full UI controls */
.ws-ofs-fast-dialog{
  background: var(--ws-ofs-fast-form-bg, #fff);
  border: var(--ws-ofs-fast-form-border-width, 1px) solid var(--ws-ofs-fast-form-border, #e5e7eb);
  border-radius: var(--ws-ofs-fast-form-radius, 12px);
  color: var(--ws-ofs-fast-label-color, #111827);
}
.ws-ofs-fast-dialog .ws-ofs-row label{
  color: var(--ws-ofs-fast-label-color, #111827);
}
.ws-ofs-fast-dialog .ws-ofs-row input{
  width:100%;
  background: var(--ws-ofs-fast-input-bg, #fff);
  border: var(--ws-ofs-fast-input-border-width, 1px) solid var(--ws-ofs-fast-input-border, #d1d5db);
  border-radius: var(--ws-ofs-fast-input-radius, 999px);
  color: var(--ws-ofs-fast-input-text, #111827);
}
.ws-ofs-fast-dialog .ws-ofs-row input::placeholder{
  color: var(--ws-ofs-fast-placeholder-color, #9ca3af);
}
.ws-ofs-fast-dialog .ws-ofs-row input:focus{
  outline:none;
  border-color: var(--ws-ofs-fast-focus-border, #2563eb);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.15);
}
.ws-ofs-submit-fast{
  background: var(--ws-ofs-fast-btn-bg, #2563eb);
  color: var(--ws-ofs-fast-btn-text, #fff);
  border-radius: var(--ws-ofs-fast-btn-radius, 6px);
}
.ws-ofs-submit-fast:hover{
  background: var(--ws-ofs-fast-btn-bg-hover, #1d4ed8);
  color: var(--ws-ofs-fast-btn-text-hover, #fff);
}
.ws-ofs-note-fast.is-success{
  background: var(--ws-ofs-fast-success-bg, #ecfdf5);
  color: var(--ws-ofs-fast-success-text, #065f46);
}
.ws-ofs-note-fast.is-error{
  background: var(--ws-ofs-fast-error-bg, #fef2f2);
  color: var(--ws-ofs-fast-error-text, #991b1b);
}


/* Fast installment modal (UI - Fast bindings) */
.ws-ofs-fast-modal.is-open{ position:fixed; inset:0; z-index:99999; }
.ws-ofs-fast-overlay{
  position:fixed; inset:0;
  background: var(--ws-ofs-fast-overlay, rgba(0,0,0,0.6));
}
.ws-ofs-fast-dialog{
  position:fixed;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:min(92vw, 420px);
  background: var(--ws-ofs-fast-bg, #fff);
  border-radius: var(--ws-ofs-fast-radius, 12px);
  border:1px solid var(--ws-ofs-fast-border, #d1d5db);
  padding:16px;
  z-index:100000;
}
.ws-ofs-fast-title{ margin:0 0 12px 0; color: var(--ws-ofs-fast-primary, #111827); }
.ws-ofs-fast-dialog .ws-ofs-row label{ color: var(--ws-ofs-fast-label, #111827); }
.ws-ofs-fast-dialog .ws-ofs-row input{
  width:100%;
  background: var(--ws-ofs-fast-input-bg, #fff);
  color: var(--ws-ofs-fast-input-text, #111827);
  border:1px solid var(--ws-ofs-fast-input-border, #d1d5db);
  border-radius: var(--ws-ofs-fast-radius, 12px);
  padding:10px 12px;
}
.ws-ofs-submit-fast{
  width:100%;
  padding:12px 14px;
  border:0;
  border-radius: var(--ws-ofs-fast-radius, 12px);
  background: var(--ws-ofs-fast-btn-bg, #111827);
  color: var(--ws-ofs-fast-btn-text, #fff);
  cursor:pointer;
}
.ws-ofs-note-fast{
  margin-top:10px;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid var(--ws-ofs-fast-border, #d1d5db);
}
.ws-ofs-note-fast.is-success{
  background: var(--ws-ofs-fast-success-bg, #ecfdf5);
  color: var(--ws-ofs-fast-success-text, #065f46);
}
.ws-ofs-note-fast.is-error{
  background: var(--ws-ofs-fast-error-bg, #fef2f2);
  color: var(--ws-ofs-fast-error-text, #991b1b);
}


.ws-ofs-phone-note{ margin-top:6px; font-size: 13px; color: var(--ws-ofs-hint, #6b7280); }
