/* V105 — Minimum peserta per jadwal/kelompok */

.v105-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:6px 10px;
  border:1px solid #dfe8f5;
  border-radius:999px;
  background:#f7f9fc;
  color:#60728d;
  font-size:11px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
}
.v105-status-pill.tercapai{background:#eefaf5;color:#087b58;border-color:#d3f0e3}
.v105-status-pill.menunggu{background:#fff8eb;color:#a85a08;border-color:#f6e4be}
.v105-status-pill.dibatalkan{background:#fff2f2;color:#c73737;border-color:#f4d3d3}
.v105-status-pill.tanpa_minimum{background:#f4f7fb;color:#63748c}
.v105-separator{margin:0 3px;color:#9aa9bc}
.v105-manage-button{white-space:nowrap}

.v105-filter-grid{
  display:grid;
  grid-template-columns:minmax(180px,.7fr) minmax(320px,1.5fr) auto;
  gap:14px;
  align-items:end;
}
.v105-overview-head,.v105-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.v105-overview-head>div>span,.v105-section-head>div>span{
  color:#2861d8;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}
.v105-overview-head h2,.v105-section-head h2{margin:7px 0 4px;color:#123a74}
.v105-overview-head p,.v105-section-head p{margin:0;color:#71819a}
.v105-metric-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:20px 0;
}
.v105-metric-grid article{
  padding:16px;
  border:1px solid #e3eaf4;
  border-radius:16px;
  background:#fff;
}
.v105-metric-grid small,.v105-metric-grid strong,.v105-metric-grid span{display:block}
.v105-metric-grid small{color:#71819a;font-size:12px}
.v105-metric-grid strong{margin:6px 0 4px;color:#123a74;font-size:24px;font-weight:700}
.v105-metric-grid span{color:#8a99ad;font-size:12px}
.v105-minimum-form{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  gap:14px;
  align-items:end;
  padding-top:18px;
  border-top:1px solid #edf2f8;
}
.v105-minimum-form .btn{min-height:46px}
.v105-decision-card,.v105-participant-card{margin-top:20px}
.v105-cancel-form{margin-top:16px}
.v105-cancel-note{
  margin:16px 0;
  padding:15px 16px;
  border:1px solid #f3d7d7;
  border-radius:15px;
  background:#fff7f7;
}
.v105-cancel-note b{color:#b52e2e}
.v105-cancel-note p{margin:5px 0 0;color:#7f6470}
.v105-participant-list{display:grid;gap:10px;margin-top:18px}
.v105-participant-list article{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(170px,.45fr) auto;
  align-items:center;
  gap:14px;
  padding:14px;
  border:1px solid #e4ebf5;
  border-radius:16px;
  background:#fff;
}
.v105-student-main{display:flex;align-items:center;gap:11px;min-width:0}
.v105-student-main>span{
  width:40px;height:40px;display:grid;place-items:center;flex:0 0 40px;
  border-radius:999px;background:#edf4ff;color:#2861d8;font-weight:800
}
.v105-student-main b,.v105-student-main small,.v105-paid b,.v105-paid small{display:block}
.v105-student-main b{color:#123a74}
.v105-student-main small,.v105-paid small{margin-top:3px;color:#7b8aa0;font-size:12px}
.v105-paid b{margin-top:4px;color:#123a74}
.v105-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.v105-actions .btn{min-height:40px;padding:8px 12px}

/* Public catalog — minimum information lives inside each schedule card. */
.v105-public-schedule-card{position:relative}
.v105-public-schedule-card.dibatalkan{opacity:.76;background:#fbfbfc}
.v105-public-schedule-card .v7631-card-title{align-items:flex-start}
.v105-public-schedule-card .v105-status-pill{margin-left:auto}
.v105-group-name{display:block;margin-top:5px;color:#7b8ba1;font-size:11px}
.v105-public-minimum-row{
  display:grid;
  grid-template-columns:auto auto 1fr;
  gap:10px;
  align-items:center;
  margin-top:14px;
  padding:12px 13px;
  border:1px solid #e4ebf5;
  border-radius:14px;
  background:#fafcff;
}
.v105-public-minimum-row>div{min-width:82px}
.v105-public-minimum-row small,.v105-public-minimum-row b{display:block}
.v105-public-minimum-row small{color:#7d8ca2;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.v105-public-minimum-row b{margin-top:3px;color:#123a74;font-size:17px}
.v105-public-minimum-row p{margin:0;color:#687b96;font-size:12px;line-height:1.45}
.v105-public-schedule-card.menunggu .v105-public-minimum-row{background:#fffaf0;border-color:#f3e5c8}
.v105-public-schedule-card.tercapai .v105-public-minimum-row{background:#f2fbf7;border-color:#d9eee5}
.v105-public-schedule-card.dibatalkan .v105-public-minimum-row{background:#fff6f6;border-color:#efd8d8}
.v105-activity-warning{
  margin:12px 0;padding:11px 12px;border:1px solid #efd8d8;border-radius:12px;
  background:#fff6f6;color:#b13939;font-size:12px;line-height:1.45
}

/* Registration and student account */
.v105-registration-minimum,.v105-student-minimum{
  display:block;
  width:max-content;
  max-width:100%;
  margin-top:7px;
  padding:5px 8px;
  border:1px solid #dfe8f4;
  border-radius:999px;
  background:#f7f9fc;
  color:#61738d;
  font-size:10px;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.v105-registration-minimum:not([hidden]){display:block}
.choice-card.is-cancelled-v105{opacity:.72;background:#fbfbfc}
.schedule-cancelled-badge-v105{
  display:block;margin-top:7px;color:#c23636;font-size:11px;font-weight:700
}
.v105-student-schedule-summary{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 10px;
  margin:8px 0;
  padding:9px 10px;
  border:1px solid #e3eaf4;
  border-radius:12px;
  background:#f8faff;
  color:#65758d;
  font-size:11px;
}
.v105-student-schedule-summary b{color:#183f78}
.v105-student-schedule-summary.dibatalkan{background:#fff5f5;border-color:#efd7d7}
.student-cancelled-info-v105{
  margin:7px 0;padding:9px 10px;border-radius:11px;background:#fff5f5;color:#b93a3a;font-size:11px
}
.is-cancelled-v105{color:#c43737!important;background:#fff0f0!important}

@media(max-width:980px){
  .v105-filter-grid{grid-template-columns:1fr}
  .v105-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v105-minimum-form{grid-template-columns:1fr}
  .v105-participant-list article{grid-template-columns:1fr}
  .v105-actions{justify-content:flex-start}
}

@media(max-width:640px){
  .v105-overview-head,.v105-section-head{flex-direction:column;align-items:stretch}
  .v105-status-pill{align-self:flex-start;white-space:normal;text-align:center}
  .v105-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .v105-metric-grid article{padding:13px;border-radius:14px}
  .v105-metric-grid strong{font-size:20px}
  .v105-minimum-form .btn,.v105-cancel-form .btn{width:100%;min-height:46px}
  .v105-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .v105-actions .btn{width:100%}
  .v105-public-minimum-row{grid-template-columns:1fr 1fr}
  .v105-public-minimum-row p{grid-column:1/-1}
  .v105-public-schedule-card .v7631-card-title{display:grid;grid-template-columns:auto 1fr;gap:10px}
  .v105-public-schedule-card .v105-status-pill{grid-column:1/-1;margin-left:0}
}

/* =========================================================
   V105.3 — Public minimum participants, refined presentation
   ========================================================= */
.v105-public-minimum-row{
  display:block !important;
  margin-top:16px !important;
  padding:16px 17px !important;
  border:1px solid #e3eaf4 !important;
  border-radius:18px !important;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(20,46,84,.045) !important;
  color:#163b70;
}

.v105-public-schedule-card.menunggu .v105-public-minimum-row,
.v105-public-schedule-card.tercapai .v105-public-minimum-row,
.v105-public-schedule-card.dibatalkan .v105-public-minimum-row{
  background:#fff !important;
  border-color:#e3eaf4 !important;
}

.v105-minimum-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.v105-minimum-heading>div{
  min-width:0;
}

.v105-minimum-heading small,
.v105-minimum-unlimited small{
  display:block;
  margin:0 0 4px;
  color:#8492a7;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.35;
  text-transform:uppercase;
}

.v105-minimum-heading strong,
.v105-minimum-unlimited strong{
  display:block;
  color:#173b70;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
}

.v105-minimum-state{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:6px 10px;
  border:1px solid #e2e9f3;
  border-radius:999px;
  background:#f6f8fc;
  color:#60728c;
  font-size:10px;
  font-weight:700;
  white-space:nowrap;
}

.v105-minimum-state.is-reached{
  background:#f1faf6;
  border-color:#d9eee4;
  color:#187553;
}

.v105-minimum-numbers{
  display:grid;
  grid-template-columns:auto auto auto 1fr;
  align-items:end;
  gap:12px;
  margin-top:14px;
}

.v105-minimum-number{
  min-width:78px;
}

.v105-minimum-number strong{
  display:block;
  color:#123a74;
  font-size:24px;
  font-weight:700;
  line-height:1;
}

.v105-minimum-number span{
  display:block;
  margin-top:5px;
  color:#7b8aa0;
  font-size:10px;
  font-weight:600;
  line-height:1.3;
}

.v105-minimum-divider{
  align-self:center;
  color:#a1adbd;
  font-size:11px;
  font-weight:600;
}

.v105-minimum-percent{
  justify-self:end;
  color:#355f9e;
  font-size:18px;
  font-weight:700;
  line-height:1;
}

.v105-minimum-progress{
  width:100%;
  height:7px;
  margin-top:14px;
  overflow:hidden;
  border-radius:999px;
  background:#edf2f8;
}

.v105-minimum-progress span{
  display:block;
  height:100%;
  min-width:0;
  border-radius:inherit;
  background:linear-gradient(90deg,#2e67dc 0%,#4b83ee 100%);
  transition:width .35s ease;
}

.v105-public-schedule-card.tercapai .v105-minimum-progress span{
  background:linear-gradient(90deg,#188b63 0%,#38ad82 100%);
}

.v105-minimum-footnote{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:9px;
  color:#7b8aa0;
  font-size:10px;
  line-height:1.35;
}

.v105-minimum-footnote span:last-child{
  color:#516782;
  font-weight:700;
  text-align:right;
}

.v105-minimum-unlimited{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.v105-minimum-unlimited>div{
  min-width:0;
}

.v105-minimum-unlimited>span{
  max-width:58%;
  color:#718198;
  font-size:11px;
  line-height:1.45;
  text-align:right;
}

@media(max-width:700px){
  .v105-public-minimum-row{
    padding:14px !important;
    border-radius:16px !important;
  }

  .v105-minimum-heading{
    align-items:center;
  }

  .v105-minimum-numbers{
    grid-template-columns:auto auto auto 1fr;
    gap:9px;
  }

  .v105-minimum-number{
    min-width:64px;
  }

  .v105-minimum-number strong{
    font-size:21px;
  }

  .v105-minimum-percent{
    font-size:16px;
  }

  .v105-minimum-unlimited{
    align-items:flex-start;
    flex-direction:column;
  }

  .v105-minimum-unlimited>span{
    max-width:none;
    text-align:left;
  }
}

@media(max-width:420px){
  .v105-minimum-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:9px;
  }

  .v105-minimum-state{
    min-height:28px;
  }

  .v105-minimum-numbers{
    grid-template-columns:1fr auto 1fr;
  }

  .v105-minimum-percent{
    grid-column:1 / -1;
    justify-self:start;
    margin-top:2px;
    font-size:13px;
  }

  .v105-minimum-footnote{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }

  .v105-minimum-footnote span:last-child{
    text-align:left;
  }
}

/* =========================================================
   V105.4 — Public minimum participants, minimal presentation
   ========================================================= */
.v105-public-minimum-row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-top:12px !important;
  padding:10px 12px !important;
  border:1px solid #e5ebf4 !important;
  border-radius:12px !important;
  background:#f8faff !important;
  box-shadow:none !important;
}

.v105-public-schedule-card.menunggu .v105-public-minimum-row,
.v105-public-schedule-card.tercapai .v105-public-minimum-row,
.v105-public-schedule-card.dibatalkan .v105-public-minimum-row{
  background:#f8faff !important;
  border-color:#e5ebf4 !important;
}

.v105-minimum-summary{
  min-width:0;
  color:#61738d;
  font-size:12px;
  font-weight:500;
  line-height:1.4;
}

.v105-minimum-compact-status{
  flex:0 0 auto;
  color:#60728c;
  font-size:11px;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
}

.v105-minimum-compact-status.is-reached{
  color:#187553;
}

/* Hide obsolete elaborate public minimum elements if an older cached markup remains. */
.v105-public-minimum-row .v105-minimum-heading,
.v105-public-minimum-row .v105-minimum-numbers,
.v105-public-minimum-row .v105-minimum-progress,
.v105-public-minimum-row .v105-minimum-footnote,
.v105-public-minimum-row .v105-minimum-unlimited{
  display:none !important;
}

@media(max-width:520px){
  .v105-public-minimum-row{
    align-items:flex-start !important;
    flex-direction:column !important;
    gap:3px !important;
    padding:9px 10px !important;
  }

  .v105-minimum-summary,
  .v105-minimum-compact-status{
    font-size:11px;
    white-space:normal;
  }
}
