/* SG Modules Selector (Schools) - Voxel vx-* column grid compatible
   Usage: add CSS class to each module switcher field:
   vx-1-3 sg-module-card
*/

.sg-module-card{
  border:1px solid rgba(23,140,171,0.22);
  border-radius:14px;
  padding:68px 18px 16px; /* reserve top row for selector + ring */
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,0.04);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, opacity .15s ease;
  position:relative;
  cursor:pointer;
  overflow:hidden;
}

.sg-module-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(0,0,0,0.07);
  border-color:rgba(23,140,171,0.45);
}

/* Active state */
.sg-module-card.is-checked,
.sg-module-card.is-active,
.sg-module-card[data-checked="1"]{
  border-color:rgba(23,140,171,0.95);
  box-shadow:0 10px 30px rgba(23,140,171,0.10);
}

/* Locked state */
.sg-module-card.sg-module-locked{
  opacity:.72;
  background:linear-gradient(180deg, #f8f8f8 0%, #f1f1f1 100%);
  border-color:rgba(120,120,120,0.35);
  filter:saturate(.65);
}

.sg-module-card.sg-module-locked:hover{
  transform:none;
}

.sg-module-card.sg-module-locked:after{
  content:'Locked';
  position:absolute;
  top:10px;
  right:12px;
  font-size:12px;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid rgba(254,138,1,0.55);
  background:rgba(254,138,1,0.10);
  z-index:3;
}

/* Overlay top row */
.sg-module-card .sg-switch-anchor{
  position:absolute;
  top:14px;
  left:16px;
  z-index:3;
}

.sg-module-card .sg-progress-ring{
  position:absolute;
  top:10px;
  right:12px;
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:3;
}

.sg-module-card.sg-module-locked .sg-progress-ring,
.sg-module-card[data-locked="1"] .sg-progress-ring{
  display:none !important;
}

.sg-module-card .sg-progress-ring__chart{
  position:relative;
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.sg-module-card .sg-progress-ring svg{
  display:block;
  transform:rotate(-90deg);
}

.sg-module-card .sg-progress-ring__value{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  margin:0;
  font-size:10px;
  line-height:1;
  font-weight:700;
}

/* Force all normal card content below the overlaid top row */
.sg-module-card > :not(.sg-switch-anchor):not(.sg-progress-ring){
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  clear:both !important;
  float:none !important;
  position:relative;
  z-index:1;
}

/* Native title row */
.sg-module-card .sg-title-native,
.sg-module-card .ts-form-label,
.sg-module-card .field-label,
.sg-module-card .ts-field-label,
.sg-module-card .elementor-heading-title{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  clear:both !important;
  float:none !important;
  margin:0 0 10px 0 !important;
  padding:0 !important;
  text-align:left !important;
  line-height:1.35;
}

/* Native description row */
.sg-module-card .sg-desc-native,
.sg-module-card .field-description,
.sg-module-card .ts-description,
.sg-module-card .description,
.sg-module-card p{
  display:block;
  width:100%;
  max-width:100%;
  clear:both;
  float:none !important;
  margin:0;
  padding:0;
  text-align:left;
}

/* Hide stray meta fragments if they leak inline */
.sg-module-card .optional,
.sg-module-card .required,
.sg-module-card .is-optional,
.sg-module-card .is-required,
.sg-module-card .field-optional,
.sg-module-card .field-required{
  display:none !important;
}

/* Remove field-level info tooltip/icon from module cards */
.sg-module-card .ts-field-info,
.sg-module-card .field-info,
.sg-module-card .field-tooltip,
.sg-module-card [data-tippy-content],
.sg-module-card .vx-dialog{
  display:none !important;
}

/* Prevent accidental inline layout from wrappers */
.sg-module-card label,
.sg-module-card small,
.sg-module-card span,
.sg-module-card strong{
  white-space:normal;
}

/* Note blocks used in form */
.sg-note{
  border:1px solid rgba(23,140,171,0.18);
  border-left:4px solid rgba(23,140,171,0.85);
  border-radius:12px;
  padding:12px 14px;
  background:rgba(23,140,171,0.04);
}

/* Toast */
.sg-toast{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%) translateY(20px);
  opacity:0;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,0.12);
  background:rgba(20,20,20,0.92);
  color:#fff;
  font-size:14px;
  z-index:999999;
  transition:opacity .18s ease, transform .18s ease;
  max-width:min(520px, calc(100vw - 32px));
  text-align:center;
}

.sg-toast.is-on{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
