.fm-toggle--on {
  border-color: #22c55e !important;
  color: #22c55e !important;
}
.fm-toggle--compact {
  padding: 6px 10px;
  font-size: 0.85rem;
}

.fm-modal {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.fm-modal[hidden] { display: none; }

.fm-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(2px);
}

.fm-modal__panel {
  position: relative;
  width: min(420px, 100%);
  background: #14161c;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 22px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
  color: #f5f5f7;
}

.fm-modal__title {
  margin: 0 0 8px;
  font-size: 1.2rem;
}
.fm-modal__body {
  margin: 0 0 16px;
  color: #b6b8c0;
  line-height: 1.45;
  font-size: 0.95rem;
}

.fm-modal__pin-label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
  font-size: 0.85rem;
  color: #b6b8c0;
}
.fm-modal__pin-label[hidden] { display: none; }
.fm-modal__pin {
  font-size: 1.4rem;
  letter-spacing: 0.5em;
  text-align: center;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: #0d0f14;
  color: #fff;
}
.fm-modal__pin:focus {
  outline: none;
  border-color: #e11d48;
}

.fm-modal__error {
  margin: -6px 0 12px;
  color: #f87171;
  font-size: 0.85rem;
}
.fm-modal__error[hidden] { display: none; }

.fm-modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
