/* Modal */
#bms-gate-modal.bms-gate-hidden{ display:none; }
#bms-gate-modal{ position:fixed; inset:0; z-index:99999; }
#bms-gate-modal .bms-gate-backdrop{ position:absolute; inset:0; background:var(--bms-backdrop); }
#bms-gate-modal .bms-gate-dialog{
  position:relative; max-width:var(--bms-max-width); margin:10vh auto;
  background:var(--bms-bg); border-radius:var(--bms-radius); padding:24px;
  box-shadow:var(--bms-shadow); font-family:system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color:var(--bms-text);
}
#bms-gate-modal h3{ margin:0 0 8px; font-size:22px; }
#bms-gate-modal .bms-gate-subtitle{ margin:0 0 16px; color:var(--bms-muted); }

/* Inline */
#bms-gate-inline .bms-inline-card{
  max-width:var(--bms-max-width);
  background:var(--bms-bg);
  border-radius:var(--bms-radius);
  box-shadow:var(--bms-shadow);
  padding:20px;
  margin:0 0 16px 0;
  color:var(--bms-text);
}
#bms-gate-inline h3{ margin:0 0 8px; font-size:20px; }
#bms-gate-inline .bms-gate-subtitle{ margin:0 0 12px; color:var(--bms-muted); }

/* Forms */
.bms-form{ display:flex; flex-direction:column; gap:10px; }
.bms-form label{ display:flex; flex-direction:column; gap:6px; font-size:14px; }
.bms-form .bms-label{ color:var(--bms-muted); }
.bms-form input[type="text"],
.bms-form input[type="email"],
.bms-form input[type="tel"]{ width:100%; padding:10px 12px; border:1px solid #ddd; border-radius:8px; font-size:16px; }
.bms-form label.bms-gate-consent{ display:flex; gap:8px; align-items:flex-start; font-size:14px; color:var(--bms-text); }
.bms-form button[type="submit"]{ padding:10px 14px; font-size:16px; border:0; border-radius:8px; background:var(--bms-button-bg); color:var(--bms-button-text); cursor:pointer; }
.bms-form button[type="submit"]:focus{ outline:2px solid #4B9BFF; outline-offset:2px; }
.bms-form .bms-gate-privacy{ font-size:12px; color:var(--bms-muted); margin:6px 0 0; }
.bms-form .bms-gate-error{ color:#b00020; font-size:14px; min-height:18px; margin-top:4px; }

/* Locked area overlay */
.bms-gated-area{ position:relative; }
.bms-gated-area .bms-locked{ position:relative; }
.bms-gated-area.bms-locked-area .bms-locked::after{
  content:'';
  position:absolute; inset:0;
  background:var(--bms-lock-bg);
  border-radius:8px;
}
.bms-gated-area.bms-locked-area .bms-locked::before{
  content:'';
  position:absolute; width:24px; height:24px; right:8px; top:8px;
  background: currentColor;
  color: var(--bms-lock-icon);
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="%23000" d="M12 1a5 5 0 0 0-5 5v3H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-2V6a5 5 0 0 0-5-5m-3 8V6a3 3 0 0 1 6 0v3z"/></svg>') center/24px 24px no-repeat;
          mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="%23000" d="M12 1a5 5 0 0 0-5 5v3H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-2V6a5 5 0 0 0-5-5m-3 8V6a3 3 0 0 1 6 0v3z"/></svg>') center/24px 24px no-repeat;
}
.bms-gated-area.bms-locked-area .bms-locked{ cursor:not-allowed; }

/* Mobile tabs helper */
.bms-tab-select{
  display:none; /* shown below breakpoint via JS */
  width:100%;
  max-width:var(--bms-max-width);
  margin:0 0 12px 0;
  padding:10px 12px;
  border-radius:8px;
  border:1px solid #ddd;
  background:#fff;
  color:#111;
  font-size:16px;
}