:root {
  --bjs-indigo: #1D0045;
  --bjs-deep: #140039;
  --bjs-purple: #38105F;
  --bjs-saffron: #F1951A;
  --bjs-gold: #F5CD96;
  --bjs-cream: #FFF8EC;
  --bjs-soft: #FFF1D6;
  --bjs-white: #FFFFFF;
  --bjs-text: #241934;
  --bjs-muted: #6B617C;
}

.bjs-services,
.bjs-home-quick-access {
  font-family: Montserrat, Arial, sans-serif;
  color: var(--bjs-text);
}

.bjs-services {
  max-width: 1100px;
  margin: 40px auto;
}

.bjs-services__hero {
  background: linear-gradient(135deg, var(--bjs-indigo), var(--bjs-purple));
  color: var(--bjs-white);
  padding: clamp(28px, 5vw, 56px);
  border-radius: 22px 22px 0 0;
}

.bjs-services__eyebrow,
.bjs-home-quick-access span {
  display: block;
  color: var(--bjs-gold);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
}

.bjs-services__hero h2 {
  margin: 10px 0;
  color: var(--bjs-white);
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.12;
}

.bjs-services__hero p {
  max-width: 760px;
  margin: 0;
  opacity: .9;
}

.bjs-attendance-rule {
  padding: 18px 24px;
  background: var(--bjs-saffron);
  color: var(--bjs-deep);
  font-size: 15px;
}

.bjs-card,
.bjs-panel {
  padding: clamp(22px, 4vw, 38px);
  background: var(--bjs-white);
  border: 1px solid #eadbc7;
  box-shadow: 0 14px 40px rgba(29, 0, 69, .07);
}

.bjs-verify-card {
  border-radius: 0 0 22px 22px;
}

.bjs-section-heading {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 22px;
}

.bjs-section-heading span {
  background: var(--bjs-soft);
  color: var(--bjs-indigo);
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.bjs-section-heading h3 {
  margin: 0;
  color: var(--bjs-indigo);
  font-size: 24px;
}

.bjs-form label {
  display: block;
  color: var(--bjs-text);
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 18px;
}

.bjs-form input[type="text"],
.bjs-form input[type="email"],
.bjs-form input[type="tel"],
.bjs-form input[type="date"],
.bjs-form input[type="password"],
.bjs-form textarea,
.bjs-form input[type="file"] {
  box-sizing: border-box;
  width: 100%;
  margin-top: 8px;
  padding: 13px 14px;
  border: 1px solid #cbbdd6;
  border-radius: 10px;
  background: var(--bjs-white);
  color: var(--bjs-text);
  font: inherit;
}

.bjs-form input:focus,
.bjs-form textarea:focus {
  border-color: var(--bjs-saffron);
  outline: 3px solid rgba(241, 149, 26, .16);
}

.bjs-grid {
  display: grid;
  gap: 18px;
}

.bjs-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bjs-grid--otp {
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
}

.bjs-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 46px;
  padding: 12px 20px;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

.bjs-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(29, 0, 69, .15);
}

.bjs-button:disabled,
.is-busy .bjs-button {
  cursor: not-allowed;
  opacity: .58;
  transform: none;
  box-shadow: none;
}

.bjs-button--primary {
  background: var(--bjs-indigo);
  color: var(--bjs-white);
}

.bjs-button--saffron {
  background: var(--bjs-saffron);
  color: var(--bjs-deep);
}

.bjs-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  margin-top: 30px;
  background: var(--bjs-deep);
  padding: 5px;
  border-radius: 14px 14px 0 0;
}

.bjs-tab {
  border: 0;
  border-radius: 10px;
  padding: 15px;
  background: transparent;
  color: var(--bjs-white);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.bjs-tab.is-active {
  background: var(--bjs-saffron);
  color: var(--bjs-deep);
}

.bjs-panel {
  display: none;
  border-radius: 0 0 18px 18px;
}

.bjs-panel.is-active {
  display: block;
}

.bjs-attendance-result {
  display: grid;
  grid-template-columns: minmax(220px, .7fr) 1.8fr;
  gap: 20px;
}

.bjs-attendance-score {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 190px;
  padding: 24px;
  border-radius: 16px;
  text-align: center;
}

.bjs-attendance-score span,
.bjs-attendance-score small {
  font-weight: 700;
}

.bjs-attendance-score strong {
  margin: 8px 0;
  font-size: 42px;
}

.bjs-attendance-score--safe { background: #d9ead3; color: #174b25; }
.bjs-attendance-score--caution { background: #fff2cc; color: #735600; }
.bjs-attendance-score--danger { background: #f4cccc; color: #7a1612; }
.bjs-attendance-score--neutral { background: var(--bjs-soft); color: var(--bjs-indigo); }

.bjs-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.bjs-metrics div {
  padding: 16px;
  border: 1px solid #eadbc7;
  border-radius: 12px;
  background: var(--bjs-cream);
}

.bjs-metrics span,
.bjs-metrics strong {
  display: block;
}

.bjs-metrics span {
  color: var(--bjs-muted);
  font-size: 12px;
  font-weight: 700;
}

.bjs-metrics strong {
  margin-top: 6px;
  color: var(--bjs-indigo);
  font-size: 19px;
}

.bjs-alert,
.bjs-status {
  margin: 16px 0;
  padding: 13px 15px;
  border-radius: 10px;
  font-size: 14px;
}

.bjs-alert--success,
.bjs-status--success { background: #d9ead3; color: #174b25; }
.bjs-alert--warning { background: #fff2cc; color: #735600; }
.bjs-alert--error,
.bjs-status--error { background: #f4cccc; color: #7a1612; }
.bjs-status--info { background: var(--bjs-soft); color: var(--bjs-indigo); }

.bjs-student-verified {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  align-items: center;
  margin-bottom: 22px;
  padding: 16px;
  border-left: 4px solid var(--bjs-saffron);
  background: var(--bjs-cream);
}

.bjs-student-verified strong { color: var(--bjs-indigo); }
.bjs-student-verified span { color: var(--bjs-muted); font-size: 13px; }

.bjs-checkbox {
  display: flex !important;
  gap: 10px;
  align-items: flex-start;
}

.bjs-checkbox input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--bjs-indigo);
}

.bjs-note,
.bjs-privacy-note,
.bjs-otp-message {
  color: var(--bjs-muted);
  font-size: 13px;
  line-height: 1.6;
}

.bjs-hidden { display: none !important; }

.bjs-home-quick-access {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  align-items: center;
  margin: 36px 0;
  padding: clamp(24px, 4vw, 40px);
  border-radius: 18px;
  background: linear-gradient(135deg, var(--bjs-indigo), var(--bjs-purple));
  color: var(--bjs-white);
}

.bjs-home-quick-access h2 {
  margin: 8px 0;
  color: var(--bjs-white);
}

.bjs-home-quick-access p { margin: 0; opacity: .9; }

.bjs-home-actions a {
  display: inline-block;
  white-space: nowrap;
  padding: 13px 19px;
  border-radius: 9px;
  background: var(--bjs-saffron);
  color: var(--bjs-deep);
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 760px) {
  .bjs-grid--2,
  .bjs-grid--otp,
  .bjs-attendance-result,
  .bjs-metrics,
  .bjs-tabs {
    grid-template-columns: 1fr;
  }

  .bjs-home-quick-access {
    align-items: flex-start;
    flex-direction: column;
  }

  .bjs-home-actions a { white-space: normal; }
}


/* First-time student registration */
#bjs-registration-card { margin-top: 24px; }
.bjs-form select {
  width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #d9cde4;
  border-radius: 10px; background: #fff; color: #241934; font-family: Montserrat, Arial, sans-serif;
}
.bjs-form input[readonly] { background: #f4eff8; color: #4c3d5d; cursor: not-allowed; }

/* Unified services and parent communication */
.bjs-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bjs-student-session { margin-top: 26px; border-radius: 16px; padding: 20px 24px; }
.bjs-student-session .bjs-student-verified { margin-bottom: 8px; }
.bjs-student-session .bjs-note { margin: 0; }
.bjs-file-label input[type="file"] { border-style: dashed; background: var(--bjs-cream); }
.bjs-form select:focus { border-color: var(--bjs-saffron); outline: 3px solid rgba(241,149,26,.16); }
#bjs-message-panel .bjs-section-heading span { background: #f7e8ff; }

@media (max-width: 900px) {
  .bjs-tabs { grid-template-columns: 1fr; }
}


/* Unified ERP portal v1.3.0 */
.bjs-form select{box-sizing:border-box;width:100%;margin-top:8px;padding:13px 14px;border:1px solid #cbbdd6;border-radius:10px;background:var(--bjs-white);color:var(--bjs-text);font:inherit}
.bjs-button--outline{background:var(--bjs-white);color:var(--bjs-indigo);border:1px solid var(--bjs-indigo)}
.bjs-student-session__row{display:flex;gap:18px;align-items:center;justify-content:space-between}
.bjs-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.bjs-subheading{margin:30px 0 14px;color:var(--bjs-indigo);font-size:18px;border-bottom:2px solid var(--bjs-gold);padding-bottom:8px}
.bjs-metrics--fee{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}
.bjs-empty{padding:22px;border:1px dashed #cbbdd6;border-radius:12px;background:var(--bjs-cream);color:var(--bjs-muted);text-align:center}
.bjs-table-wrap{overflow-x:auto;border:1px solid #eadbc7;border-radius:12px}
.bjs-data-table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}
.bjs-data-table th{background:var(--bjs-indigo);color:#fff;text-align:left;padding:12px;font-size:12px;letter-spacing:.03em}
.bjs-data-table td{padding:12px;border-bottom:1px solid #eee;vertical-align:top;font-size:13px}
.bjs-data-table tr:last-child td{border-bottom:0}
.bjs-text-link{display:inline-block;margin-right:12px;color:var(--bjs-purple);font-weight:800;text-decoration:underline}
.bjs-record-list{display:grid;gap:14px}
.bjs-record{padding:20px;border:1px solid #eadbc7;border-radius:14px;background:var(--bjs-cream)}
.bjs-record h4{margin:10px 0;color:var(--bjs-indigo)}
.bjs-record p{white-space:pre-line}
.bjs-record__meta,.bjs-record__footer{display:flex;flex-wrap:wrap;gap:10px 18px;color:var(--bjs-muted);font-size:12px;font-weight:700}
@media(max-width:900px){.bjs-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.bjs-metrics--fee{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.bjs-student-session__row{align-items:flex-start;flex-direction:column}.bjs-tabs{grid-template-columns:1fr}.bjs-metrics--fee{grid-template-columns:1fr}}


/* Homepage builder-safe access */
.bjs-student-services-inline-button,
.bjs-student-services-float {
  font-family: Montserrat, Arial, sans-serif;
  text-decoration: none !important;
  font-weight: 800;
}
.bjs-student-services-inline-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 12px 20px; border-radius: 10px;
  background: var(--bjs-saffron); color: var(--bjs-deep) !important;
  box-shadow: 0 10px 24px rgba(29,0,69,.16);
}
.bjs-student-services-float {
  position: fixed; right: 20px; bottom: 20px; z-index: 999999;
  display: inline-flex; align-items: center; gap: 9px;
  padding: 13px 18px; border: 2px solid rgba(255,255,255,.75);
  border-radius: 999px; background: var(--bjs-indigo); color: #fff !important;
  box-shadow: 0 16px 42px rgba(20,0,57,.32);
  transition: transform .18s ease, box-shadow .18s ease;
}
.bjs-student-services-float span { color: var(--bjs-saffron); font-size: 18px; line-height: 1; }
.bjs-student-services-float:hover,
.bjs-student-services-float:focus { transform: translateY(-2px); box-shadow: 0 20px 48px rgba(20,0,57,.38); }
@media (max-width: 600px) {
  .bjs-student-services-float { right: 12px; bottom: 12px; padding: 11px 15px; font-size: 13px; }
}

/* v1.3.2 — calm, full-width public status messages */
.bjs-verify-card .bjs-status {
  display: block;
  width: 100%;
  box-sizing: border-box;
  clear: both;
  margin: 18px 0 0;
  border-left: 4px solid currentColor;
  line-height: 1.55;
}
.bjs-verify-card .bjs-status[hidden],
.bjs-verify-card .bjs-status:empty { display: none !important; }
.bjs-verify-card .bjs-status--error {
  background: #fff3f1;
  color: #7a1612;
  border-color: #c0392b;
}
.bjs-verify-card .bjs-status--info {
  background: #fff8ec;
  color: #1d0045;
  border-color: #f1951a;
}
.bjs-verify-card .bjs-status--success {
  background: #eef8ea;
  color: #174b25;
  border-color: #2e7d32;
}
