:root{
  --rg-primary:#0b61d6;      /* IRCTC-style blue */
  --rg-primary-dark:#0b3c8c; /* hover/gradient */
  --rg-accent:#fbbf24;
  --rg-surface:#ffffff;
  --rg-muted:#f1f5f9;
  --rg-border:#e2e8f0;
  --rg-text:#0f172a;
}

html,body{ background:var(--rg-muted); }

body{
  font-family:'Mukta',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--rg-text);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-variant-numeric:tabular-nums;
}

.font-hindi{ font-family:"Noto Sans Devanagari",sans-serif; }
.font-latin{ font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; }

.rg-heading,h1,h2{ font-size:1.125rem;font-weight:800;line-height:1.35;letter-spacing:.2px; }

.question-box{ font-family:'Mukta',sans-serif;font-size:1.05rem;line-height:1.6; }

.option-text,.rg-input,select,label,p{ font-size:1rem;font-weight:400; }

/* Cards */
.rg-card{
  background:var(--rg-surface);
  border:1px solid var(--rg-border);
  border-radius:16px;
  box-shadow:0 6px 18px rgba(2,8,23,.04);
}

/* Inputs */
.rg-input{
  background:#fff;border:1px solid var(--rg-border);border-radius:12px;
  height:42px;line-height:42px;outline:none;
  transition:box-shadow .2s,border-color .2s,background .2s;padding:0 .75rem;
}
.rg-input:focus{ border-color:rgba(11,97,214,.55); box-shadow:0 0 0 4px rgba(11,97,214,.14); }
input[type="number"].rg-input{ height:44px; }

/* Safe areas */
.safe-top{ padding-top:env(safe-area-inset-top); }
.safe-bottom{ padding-bottom:env(safe-area-inset-bottom); }

/* Header polish */
header .brand{ letter-spacing:.4px; }
header .timer-badge{ box-shadow:inset 0 -1px 0 rgba(0,0,0,.05),0 2px 10px rgba(0,0,0,.08); }

/* Table (marksheet/compare) */
table th,table td{ border-color:var(--rg-border); }
thead tr{ border-bottom:1px solid var(--rg-border); }
tbody tr{ background:#fff; }
tbody tr:nth-child(even){ background:#fafafa; }

/* Filter bar elevation */
#filter-bar > div > div{
  box-shadow:0 14px 32px rgba(11,97,214,.18)!important;
  border-color:rgba(11,97,214,.25)!important;
}

/* Buttons */
.rg-btn{ transition:transform .06s ease; }
.rg-btn:active{ transform:translateY(1px) scale(.995); }

/* Container width */
.rg-container{ max-width:1100px; }

/* Mode themes */
.theme-single .rg-card{ background:#fff;border:1px solid var(--rg-border); }
.theme-dual   .rg-card{ background:#f8fbff;border:1px solid rgba(11,97,214,.25); }

/* Headings */
.heading-primary{ color:var(--rg-primary); }

/* Ribbon */
.ribbon-under:after{
  content:"";display:block;height:3px;width:120px;margin:.55rem auto 0;
  background:linear-gradient(90deg,var(--rg-primary-dark),var(--rg-primary));
  border-radius:999px;
}

/* CTA */
.rg-cta{
  background:var(--rg-primary);color:#fff;padding:.9rem 1.6rem;border-radius:12px;
  font-weight:700;box-shadow:0 10px 18px rgba(11,97,214,.25);
  transition:transform .08s,box-shadow .15s,background .15s;
}
.rg-cta:hover{ background:var(--rg-primary-dark);box-shadow:0 12px 22px rgba(11,97,214,.33); }

.rg-ghost{ background:#0f172a;color:#fff;padding:.85rem 1.3rem;border-radius:12px;font-weight:600;opacity:.92; }
.rg-ghost:hover{ opacity:1; }

/* ---------- Single panel ---------- */
.rg-single-panel{
  background:#edf6ff;border:1px solid rgba(11,97,214,.25);border-radius:16px;
  padding:18px;box-shadow:0 10px 24px rgba(11,97,214,.10);
}
@media (min-width:640px){ .rg-single-panel{ padding:22px; } }

.rg-single-note{ color:#0b61d6;font-weight:700;margin-bottom:10px; }
.rg-single-note b,.rg-single-note strong{ color:#d32f2f; }

.rg-single-grid{ display:grid;grid-template-columns:1fr;gap:14px; }
@media (min-width:1024px){ .rg-single-grid{ grid-template-columns:1.2fr auto;align-items:end; } }

.rg-single-label{ display:block;font-weight:700;color:#0f172a;margin-bottom:6px; }
.rg-single-help{ margin-top:10px;color:#b45309;font-weight:600;font-size:.95rem; }

/* Bigger CTA */
.rg-cta-lg{ padding:1rem 1.8rem;font-size:1.05rem;border-radius:14px;box-shadow:0 16px 28px rgba(11,97,214,.22); }
.rg-cta-lg:hover{ box-shadow:0 18px 34px rgba(11,97,214,.28); }

/* Visibility */
.single-only{ display:block; }
.theme-dual .single-only{ display:none; }
.theme-single .dual-only{ display:none!important; }

/* Steps */
.rg-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.rg-step{display:flex;gap:10px;align-items:center;background:#edf6ff;border:1px solid rgba(11,97,214,.25);padding:10px;border-radius:12px}
.rg-step .dot{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#cfe5ff;color:#0b3c8c;font-weight:800}
.rg-step .txt .t{font-weight:800;color:#0b3c8c;line-height:1}
.rg-step .txt .s{font-size:.85rem;color:#3b82f6}
.rg-step.current{outline:3px solid rgba(11,97,214,.18)}
.rg-step.done{background:#eafff2;border-color:rgba(16,185,129,.35)}
.rg-step.done .dot{background:#22c55e;color:#fff}
.rg-step.done .txt .t{color:#166534}
.rg-step.locked{opacity:.55}

/* Lane */
.rg-lane{background:#f8fbff;border:1px dashed rgba(11,97,214,.35);border-radius:14px;padding:12px}
.lane-row{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:900px){.lane-row{grid-template-columns:1fr 1fr}}
.lbl{font-weight:800;color:#0f172a;margin-bottom:6px;display:block}
.lane-actions{display:flex;align-items:center;gap:10px;margin-top:12px}
#qrSlot{width:68px;height:68px;border-radius:10px;background:#fff;border:1px solid #e5e7eb;display:none}
.lane-help{margin-top:8px;color:#334155;display:flex;gap:10px;align-items:center}
.pill{background:#ffffff;border:1px solid #cbd5e1;padding:3px 8px;border-radius:999px;font-family:monospace}

/* Start row */
.rg-start{margin-top:14px;display:flex;justify-content:flex-end}
.rg-cta-lg{padding:1rem 1.6rem;font-size:1.05rem;border-radius:14px}
.rg-start button[disabled]{opacity:.5;cursor:not-allowed}

/* Devanagari fallback font */
@font-face{
  font-family:"Lohit Devanagari";
  src:url("/fonts/lohit-devanagari.woff2") format("woff2"),
      url("/fonts/lohit-devanagari.woff")  format("woff");
  font-weight:400;font-style:normal;font-display:swap;
}

/* ===================================================================
   QUIZ AREA — Ultra Exam Pattern (paper-like, OMR bubbles)
   =================================================================== */
#quiz_area{
  --qa-surface:#f8f8f8; --qa-border:#e5e7eb; --qa-shadow:0 10px 24px rgba(2,8,23,.06);
  --qa-accent:#2563eb; --qa-accent-2:#1d4ed8;
  --qa-ok:#16a34a; --qa-ink:#0f172a; --qa-dash:#d8dee9;
  --qa-opt-1:#f9fbff; --qa-opt-2:#f3f7ff;

  /* default text color only at container (children will inherit) */
  color: var(--rg-text);
}

/* Card */
#quiz_area .question-box{
  background:var(--qa-surface)!important;border:1px solid var(--qa-border)!important;
  border-radius:14px!important;padding:14px 14px 12px!important;
  box-shadow:var(--qa-shadow)!important;position:relative!important;overflow:hidden!important;
  transition:box-shadow .15s,transform .06s;
}
#quiz_area .question-box:hover{ box-shadow:0 14px 32px rgba(2,8,23,.08)!important; }

/* top strip */
#quiz_area .question-box::before{
  content:"";position:absolute;left:0;right:0;top:0;height:6px;
  background:linear-gradient(90deg,var(--qa-accent),#22c55e 60%,#f59e0b);opacity:.9;
}

/* header row */
#quiz_area .question-box .mb-2{
  padding-top:4px!important;padding-bottom:10px!important;border-bottom:1px dashed var(--qa-dash)!important;margin-bottom:8px!important;
}

/* Q no & Question text → NO forced color (inherit) */
#quiz_area .question-box .mb-2 .shrink-0{ font-size:15.5px!important;line-height:1.2!important;color:inherit!important; }
#quiz_area .question-box .mb-2 .flex-1{
  font-weight:800!important;font-size:15.5px!important;line-height:1.35!important;letter-spacing:.1px!important;color:inherit!important;
}
@media (min-width:640px){
  #quiz_area .question-box .mb-2 .flex-1{ font-size:16.5px!important; }
}

/* ---- Options: OMR look ---- */
#quiz_area .ibps-option-block{
  display:flex!important;align-items:center!important;gap:10px!important;padding:9px 12px!important;
  border-radius:10px!important;min-height:36px!important;background:var(--qa-opt-1)!important;border:1px solid transparent!important;
  transition:background .12s,border-color .12s,box-shadow .12s;
}
#quiz_area .ibps-option-block:nth-child(even){ background:var(--qa-opt-2)!important; }
#quiz_area .ibps-option-block:hover{ background:#d7e5ef!important;border-color:#cfe0ff!important; }
#quiz_area .ibps-option-block:has(input:checked){
  background:#e8f1ff!important;border-color:var(--qa-accent)!important;box-shadow:0 0 0 3px rgba(37,99,235,.16) inset!important;
}

/* Option text → NO forced color (inherit) */
#quiz_area .ibps-option-text{ font-size:16px!important;line-height:1.24!important;display:inline-block!important;color:inherit!important; }

/* (A)/(B) marker → inherit (no forced blue) */
#quiz_area .ibps-option-text > span:first-child{
  font-size:18px!important;font-weight:800!important;margin-right:.55rem!important;line-height:1!important;color:inherit!important;
}

/* OMR radios */
#quiz_area .ibps-radio{
  appearance:none!important;-webkit-appearance:none!important;width:18px!important;height:18px!important;flex:0 0 18px!important;margin:0!important;
  border:2px solid #64748b!important;border-radius:999px!important;background:#fff!important;position:relative!important;top:1px!important;
  box-shadow:inset 0 0 0 2px #fff!important;transition:border-color .12s,box-shadow .12s,background .12s;
}
#quiz_area .ibps-radio:checked{ border-color:var(--qa-accent)!important;background:radial-gradient(var(--qa-accent) 56%,transparent 57%)!important; }
#quiz_area .ibps-radio:focus-visible{ outline:2px solid rgba(37,99,235,.65)!important; outline-offset:2px!important; }

/* Links inside question */
#quiz_area .question-box a{ color:var(--qa-accent-2)!important;font-weight:700!important;text-underline-offset:3px!important; }
#quiz_area .question-box a:hover{ color:var(--qa-accent)!important;text-decoration-thickness:2px!important; }

/* Font lock */
#quiz_area,#quiz_area *{
  font-family:"Gurumaa-2.04","Noto Sans Devanagari","Mukta","Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;
}

/* Print */
@media print{
  #quiz_area .question-box{ box-shadow:none!important;border-color:#cbd5e1!important; }
  #quiz_area .question-box::before{ display:none!important; }
  #quiz_area .ibps-option-block,
  #quiz_area .ibps-option-block:nth-child(even){ background:#fff!important;box-shadow:none!important; }
}

/* ==============================================================
   Result highlight — WRONG/RIGHT (इनके colors रहने दें)
   ============================================================== */
#quiz_area{ --qa-bad:#ef4444; --qa-badbg:#fff1f2; --qa-good:#16a34a; --qa-goodbg:#ecfdf5; }

#quiz_area .question-box[data-status="wrong"],
#quiz_area .question-box.wrong,
#quiz_area .question-box.incorrect{ border-color:#fecaca!important; box-shadow:0 0 0 3px rgba(239,68,68,.15) inset!important; }
#quiz_area .question-box[data-status="correct"],
#quiz_area .question-box.correct{ border-color:#bbf7d0!important; box-shadow:0 0 0 3px rgba(16,185,129,.15) inset!important; }

#quiz_area .ibps-option-block.is-wrong,
#quiz_area .ibps-option-block.wrong,
#quiz_area .ibps-option-block.incorrect,
#quiz_area .ibps-option-block[data-state="wrong"],
#quiz_area .ibps-option-block:has(input.ibps-radio[data-state="wrong"]),
#quiz_area .ibps-option-block:has(input.ibps-radio[data-correct="0"][data-checked="1"]){
  background:var(--qa-badbg)!important;border-color:var(--qa-bad)!important;box-shadow:0 0 0 3px rgba(239,68,68,.18) inset!important;
}

#quiz_area .ibps-option-block.is-correct,
#quiz_area .ibps-option-block.correct,
#quiz_area .ibps-option-block[data-state="correct"],
#quiz_area .ibps-option-block:has(input.ibps-radio[data-state="correct"]),
#quiz_area .ibps-option-block:has(input.ibps-radio[data-correct="1"]){
  background:var(--qa-goodbg)!important;border-color:var(--qa-good)!important;box-shadow:0 0 0 3px rgba(22,163,74,.18) inset!important;
}

/* bubble tint when wrong/correct */
#quiz_area .ibps-option-block.is-wrong .ibps-radio,
#quiz_area .ibps-option-block.wrong .ibps-radio,
#quiz_area .ibps-option-block.incorrect .ibps-radio{
  border-color:var(--qa-bad)!important;background:radial-gradient(var(--qa-bad) 56%,transparent 57%)!important;
}
#quiz_area .ibps-option-block.is-correct .ibps-radio,
#quiz_area .ibps-option-block.correct .ibps-radio{
  border-color:var(--qa-good)!important;background:radial-gradient(var(--qa-good) 56%,transparent 57%)!important;
}

/* text tint only in result state */
#quiz_area .ibps-option-block.is-wrong .ibps-option-text,
#quiz_area .ibps-option-block.wrong .ibps-option-text{ color:#7f1d1d!important; }
#quiz_area .ibps-option-block.is-correct .ibps-option-text,
#quiz_area .ibps-option-block.correct .ibps-option-text{ color:#065f46!important; }

/* (A)/(B) badge tint in result state */
#quiz_area .ibps-option-block.is-wrong .ibps-option-text > span:first-child{ color:var(--qa-bad)!important; }
#quiz_area .ibps-option-block.is-correct .ibps-option-text > span:first-child{ color:var(--qa-good)!important; }

/* Preserve random color for option texts even after result */
#quiz_area .question-box[data-status] .ibps-option-text,
#quiz_area .question-box[data-status] .ibps-option-text > span:first-child{
  color: inherit !important;  /* result state में भी वही random text color रहे */
}


/* ===== Result badges (symbol only; text color inherit रहे) ===== */
#quiz_area .rg-badge{
  margin-left:auto;          /* flex में right-end पर चला जाएगा */
  font-weight:800;
  font-size:18px;
  line-height:1;
  padding-left:.5rem;
  user-select:none;
}
#quiz_area .rg-badge.rg-ok { color: var(--qa-good); }  /* ✅ */
#quiz_area .rg-badge.rg-bad{ color: var(--qa-bad);  }  /* ❌ */
