/* ═══════════════════════════════════════════
   JSBE Institute Master Plugin – Frontend CSS
   ═══════════════════════════════════════════ */

/* ── Shared buttons ──────────────────────── */
.jsbe-btn {
  display:inline-block;padding:11px 26px;border-radius:8px;font-size:14px;
  font-weight:600;cursor:pointer;border:none;text-decoration:none;
  transition:all .2s;letter-spacing:.4px;font-family:inherit;line-height:1.4;
}
.jsbe-btn-primary { background:#1a237e;color:#fff !important; }
.jsbe-btn-primary:hover { background:#283593;transform:translateY(-1px); }
.jsbe-btn-outline { background:#fff;color:#1a237e !important;border:2px solid #1a237e; }
.jsbe-btn-outline:hover { background:#e8eaf6; }
.jsbe-btn-lg { font-size:16px;padding:14px 40px;min-width:220px; }

/* ── Registration Wrapper ────────────────── */
.jsbe-wrap { max-width:740px;margin:30px auto;font-family:'Segoe UI',Arial,sans-serif; }

.jsbe-form-header {
  background:#1a237e;color:#fff;text-align:center;
  padding:32px 20px 26px;border-radius:14px 14px 0 0;
}
.jsbe-form-header-icon { font-size:36px;margin-bottom:8px; }
.jsbe-form-header h2 { margin:0 0 6px;font-size:26px;letter-spacing:1px;color:#fff !important;border:none !important; }
.jsbe-form-header p  { margin:0;font-size:14px;opacity:.85; }

#jsbe-reg-form {
  background:#fff;border:1px solid #e0e0e0;border-top:none;
  padding:32px 36px 28px;border-radius:0 0 14px 14px;
  box-shadow:0 6px 24px rgba(26,35,126,.08);
}

.jsbe-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px 24px; }
.jsbe-full  { grid-column:1/-1; }

.jsbe-section-divider {
  font-size:11px;font-weight:700;color:#1a237e;text-transform:uppercase;
  letter-spacing:1.5px;padding:10px 0 2px;border-top:1px solid #e8eaf6;margin-top:8px;
}

.jsbe-field { display:flex;flex-direction:column; }
.jsbe-field label { font-size:13px;font-weight:600;color:#333;margin-bottom:6px; }
.jsbe-field .req { color:#e53935; }
.jsbe-field .jsbe-optional { font-size:11px;color:#999;font-weight:400; }
.jsbe-field-note { font-size:12px;color:#f57c00;margin-top:4px; }

.jsbe-field input,
.jsbe-field select,
.jsbe-field textarea {
  padding:11px 14px;border:1.5px solid #c5cae9;border-radius:8px;
  font-size:14px;color:#222;outline:none;transition:border .2s;
  background:#fafbff;width:100%;box-sizing:border-box;font-family:inherit;
}
.jsbe-field input:focus,
.jsbe-field select:focus,
.jsbe-field textarea:focus { border-color:#1a237e;background:#fff; }

/* ── Upload ──────────────────────────────── */
.jsbe-upload {
  border:2px dashed #c5cae9;border-radius:10px;padding:20px;
  text-align:center;background:#f5f7ff;transition:border .2s;cursor:pointer;
}
.jsbe-upload:hover { border-color:#1a237e; }
#jsbe-upload-placeholder p     { margin:8px 0 3px;font-size:14px;color:#555; }
#jsbe-upload-placeholder small { color:#999;font-size:12px; }

/* ── Loading / error ─────────────────────── */
.jsbe-loading { padding:11px 14px;background:#e8eaf6;border-radius:8px;font-size:14px;color:#555; }
.jsbe-error-box { background:#ffebee;border-left:4px solid #e53935;color:#b71c1c;padding:12px 16px;border-radius:6px;font-size:14px;margin-bottom:18px; }

/* ── Success screen ──────────────────────── */
.jsbe-success-screen {
  background:#fff;border:1px solid #e0e0e0;border-radius:14px;
  padding:52px 32px;text-align:center;box-shadow:0 6px 24px rgba(26,35,126,.08);
}
.jsbe-success-icon { width:72px;height:72px;background:#43a047;color:#fff;border-radius:50%;font-size:38px;line-height:72px;margin:0 auto 20px;font-weight:700; }
.jsbe-success-screen h2 { color:#1a237e;font-size:24px;margin-bottom:6px; }
.jsbe-success-screen p  { color:#555;font-size:15px;margin-bottom:12px; }
.jsbe-roll-badge { display:inline-block;background:#1a237e;color:#fff;font-size:24px;font-weight:800;letter-spacing:4px;padding:16px 36px;border-radius:10px;margin:10px 0 14px; }
.jsbe-roll-note  { font-size:13px;color:#777;margin-bottom:20px !important; }

/* ═══════════════════════════════════════════
   Result / Marksheet Portal
   ═══════════════════════════════════════════ */

/* Lookup screens */
.srp-lookup-wrap {
  max-width:520px;margin:40px auto;background:#fff;
  border:1px solid #e0e0e0;border-radius:14px;
  padding:40px 36px;text-align:center;
  box-shadow:0 6px 24px rgba(0,0,0,.06);font-family:'Segoe UI',Arial,sans-serif;
}
.srp-lookup-logo { max-height:64px;margin-bottom:14px; }
.srp-lookup-wrap h2 { font-size:22px;color:#1a237e;margin:0 0 6px; }
.srp-lookup-wrap p  { font-size:14px;color:#666;margin:0 0 24px; }
.srp-lookup-form    { display:flex;flex-direction:column;gap:14px;align-items:center; }
.srp-lookup-input   { padding:12px 16px;border:1.5px solid #c5cae9;border-radius:8px;font-size:15px;width:100%;max-width:340px;box-sizing:border-box;font-family:inherit;outline:none; }
.srp-lookup-input:focus { border-color:#1a237e; }

/* Outer marksheet wrapper */
.srp-outer { font-family:'Times New Roman',Georgia,serif; }

.srp-wrap {
  max-width:960px;margin:20px auto;background:#fff;
  border:2px solid #000;padding:28px 32px;position:relative;
}

/* Watermark */
.srp-watermark {
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);opacity:.04;z-index:0;pointer-events:none;
}
.srp-watermark img { max-width:280px; }

/* Header */
.srp-header {
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  border-bottom:2px solid #000;padding-bottom:12px;margin-bottom:20px;
  position:relative;z-index:2;
}
.srp-logo img  { max-height:70px; }
.srp-branch img{ max-height:55px; }
.srp-title     { text-align:center;flex:1;padding:0 16px; }
.srp-title h1  { margin:0;font-size:22px;color:#000; }
.srp-title p   { margin:3px 0;font-size:13px;color:#444; }

/* Profile */
.srp-profile { display:grid;grid-template-columns:1fr 160px;gap:16px;margin-bottom:20px;position:relative;z-index:2; }
.srp-info-table { width:100%;border-collapse:collapse; }
.srp-info-table td { padding:6px 8px;font-size:14px;border-bottom:1px solid #eee;vertical-align:top; }
.srp-info-table td:first-child { font-weight:bold;width:38%;color:#111; }
.srp-photo img { width:140px;height:180px;border:1px solid #000;object-fit:cover;display:block; }

/* Results table */
.srp-table { width:100%;border-collapse:collapse;margin-top:10px;font-size:14px;position:relative;z-index:2; }
.srp-table th,.srp-table td { border:1px solid #000;padding:10px;text-align:center; }
.srp-table th { background:#f5f5f5;font-weight:bold; }

/* Status badges */
.srp-status { font-weight:bold; }
.srp-status.pass         { color:#1b7e1b; }
.srp-status.fail         { color:#c62828; }
.srp-status.not-attempted{ color:#e65100; }

/* Totals row */
.srp-totals {
  display:flex;gap:12px;margin-top:16px;position:relative;z-index:2;
  flex-wrap:wrap;
}
.srp-total-box {
  flex:1;min-width:160px;border:1px solid #ddd;border-radius:6px;
  padding:12px 16px;text-align:center;background:#fafafa;
}
.srp-result-pass { background:#f1f8e9;border-color:#81c784; }
.srp-result-fail { background:#ffebee;border-color:#ef9a9a; }
.srp-total-label { display:block;font-size:12px;color:#666;margin-bottom:4px; }
.srp-total-val   { display:block;font-size:18px;font-weight:bold;color:#000; }

/* Note & actions */
.srp-note {
  margin-top:18px;font-size:13px;color:#555;
  border-top:1px solid #e0e0e0;padding-top:12px;position:relative;z-index:2;
}
.srp-actions { margin-top:14px;text-align:right;position:relative;z-index:2; }

/* ── Responsive ──────────────────────────── */
@media(max-width:600px){
  .jsbe-grid { grid-template-columns:1fr; }
  #jsbe-reg-form { padding:20px 16px; }
  .srp-profile { grid-template-columns:1fr; }
  .srp-photo { text-align:center; }
  .srp-header { flex-direction:column;gap:8px; }
  .srp-title { text-align:center; }
  .srp-totals { flex-direction:column; }
}
@media print {
  .srp-actions,.srp-note { display:none; }
  .srp-wrap { border:none;padding:0; }
}

/* ══ Login Page ═══════════════════════════════ */
.jsbe-login-wrap {
  max-width:440px;margin:40px auto;font-family:'Segoe UI',Arial,sans-serif;
  border-radius:14px;overflow:hidden;box-shadow:0 6px 28px rgba(26,35,126,.12);
}
.jsbe-login-header {
  background:#1a237e;color:#fff;text-align:center;padding:32px 24px 26px;
}
.jsbe-login-header h2 { margin:0 0 6px;font-size:24px;color:#fff !important;border:none !important; }
.jsbe-login-header p  { margin:0;font-size:14px;opacity:.85; }
.jsbe-login-body {
  background:#fff;padding:30px 32px 28px;
  border:1px solid #e0e0e0;border-top:none;
}
