/*
 * Plan-gated elements the viewer's plan does not include.
 *
 * Rendered by `{% plan_gate %}` (apps/home/templatetags/feature_access_tag.py),
 * which adds `.plan-locked` and `data-plan-locked`; subscription-check.js blocks
 * the click and shows the upgrade message. A locked button is the existing
 * `btn-secondary` (the tag swaps it in) plus a lock glyph — not a new widget.
 */
.plan-locked {
  position: relative;
  cursor: not-allowed;
}

.btn.plan-locked {
  /* Grey whatever the button's own colour (outline, primary, success). */
  filter: grayscale(1);
  opacity: 0.65;
  box-shadow: none;
}

.plan-locked::after {
  /* Inline, after the label — a corner badge was clipped at the page edge
     and too small to read on a grey button. */
  content: "lock";
  font-family: "Material Symbols Rounded";
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  font-size: 1em;
  font-weight: normal;
  line-height: 1;
  display: inline-block;
  margin-left: 0.35rem;
  vertical-align: middle;
  pointer-events: none;
}
.dark-version .plan-locked::after {
  color: inherit;
}

/* Sidebar links and tab labels: dim the label, lock inline after it. */
.nav-link.plan-locked {
  opacity: 0.6;
}

/* 3D workspace layer switches. */
.form-check-input.plan-locked {
  opacity: 0.5;
}
.dark-version .form-check-input.plan-locked {
  opacity: 0.4;
}
